1. 我们的TCP 三次握手大概是长这样
2.那么为什么 TCP 要采取三次握手,而不是两次或其他
首先我们要知道握手的目的:
为了保证通讯双方建立的连接是可靠的。
同时,为了保证性能,握手的次数要求尽可能少。
那么什么才算是连接可靠?
通讯双方建立的连接可靠”就是要确保双方的发送和接收功能都正常。
以下图为例,在握手前,双方的发送和接收能力尚未确认。
第一次握手:
客户端向服务端发送信息。当服务端接收到信息后,服务端可以明确接收功能是正常的。
第二次握手:
服务端向客户端发送信息作为应答。当客户端接收到信息后,客户端可以明确发送和接受功能都正常。
第三次握手:
客户端向服务端发送信息,当服务端接收到信息后,服务端可以明确发送功能是正常的。
通过三次握手,就能明确双方的收发功能均正常,也就是说,保证了建立的连接是可靠的。而且,由上可见,三次是确保连接可靠的最少次数,再就多余。
3.都知道HTTPS是比HTTP更安全的连接方式,但为什么HTTPS会更安全?
因为HTTPS加入了SSL所以更安全,但为什么是SSL?
3.1我们先了解一下什么事对称加密,给大家讲一个故事。
古时候有两个人,一直通过写信相互联系
但他们总觉得邮差的样子很贼,害怕自己信件被偷看。
于是一次见面的时候,找来一个带锁的盒子和两把钥匙,商定每次寄信前都先锁上信件。
通过这种方式,他们觉得通信已经足够安全了。
直到有一天,其中一个人把钥匙弄丢了。
他想要发信通知另一人拷贝一把钥匙发回来,但深想,他没法将“拷贝一把新钥匙给我”这番话进行加密,也没法保证中途钥匙会不会被盗窃啊。
换言之,要继续维持原来的通信方式,只能约对方出来见面再拿新的钥匙了。
如果将这个问题放到当今的互联网,通讯前都要求两个人先见面取钥匙,那显然是不可能的。
于是有了非对称加密
3.2非对称加密
针对于上述钥匙交换的问题,人们想出了非对称加密的方式,简单来说,非对称加密有公钥和密钥,公钥可以公开由任何人持有,而私钥由自己持有。公钥加密的信息只能由对应的私密解密,同样,私钥加密的信息只能由对应的公钥解密。
利用这个特性,回到上面的例子,可以进行下面的通信方式:
1. 先将公钥交给邮差发送给对方
2. 对方使用公钥将信息加密之后将信息返回
3. 收到信件后,利用私钥对信息进行解密
这样就能保证信件的保密传递了。