HTTPS和TCP协议三次握手设计

1. 我们的TCP 三次握手大概是长这样

HTTPS和TCP协议三次握手设计

 

 

2.那么为什么 TCP 要采取三次握手,而不是两次或其他

  首先我们要知道握手的目的:

为了保证通讯双方建立的连接是可靠的。

同时,为了保证性能,握手的次数要求尽可能少。

  那么什么才算是连接可靠?

通讯双方建立的连接可靠”就是要确保双方的发送和接收功能都正常。

  以下图为例,在握手前,双方的发送和接收能力尚未确认。

 

  第一次握手:

  客户端向服务端发送信息。当服务端接收到信息后,服务端可以明确接收功能是正常的。

 

HTTPS和TCP协议三次握手设计

 

  第二次握手:

  服务端向客户端发送信息作为应答。当客户端接收到信息后,客户端可以明确发送和接受功能都正常。

HTTPS和TCP协议三次握手设计

 

  第三次握手:

  客户端向服务端发送信息,当服务端接收到信息后,服务端可以明确发送功能是正常的。

HTTPS和TCP协议三次握手设计

   通过三次握手,就能明确双方的收发功能均正常,也就是说,保证了建立的连接是可靠的。而且,由上可见,三次是确保连接可靠的最少次数,再就多余。

HTTPS和TCP协议三次握手设计

 

3.都知道HTTPS是比HTTP更安全的连接方式,但为什么HTTPS会更安全?

因为HTTPS加入了SSL所以更安全,但为什么是SSL?

 

3.1我们先了解一下什么事对称加密,给大家讲一个故事。

古时候有两个人,一直通过写信相互联系

HTTPS和TCP协议三次握手设计

 

但他们总觉得邮差的样子很贼,害怕自己信件被偷看。

于是一次见面的时候,找来一个带锁的盒子和两把钥匙,商定每次寄信前都先锁上信件。

HTTPS和TCP协议三次握手设计

 

通过这种方式,他们觉得通信已经足够安全了。

直到有一天,其中一个人把钥匙弄丢了。

他想要发信通知另一人拷贝一把钥匙发回来,但深想,他没法将“拷贝一把新钥匙给我”这番话进行加密,也没法保证中途钥匙会不会被盗窃啊。

换言之,要继续维持原来的通信方式,只能约对方出来见面再拿新的钥匙了。

如果将这个问题放到当今的互联网,通讯前都要求两个人先见面取钥匙,那显然是不可能的。

于是有了非对称加密

 

3.2非对称加密

针对于上述钥匙交换的问题,人们想出了非对称加密的方式,简单来说,非对称加密有公钥和密钥,公钥可以公开由任何人持有,而私钥由自己持有。公钥加密的信息只能由对应的私密解密,同样,私钥加密的信息只能由对应的公钥解密。

利用这个特性,回到上面的例子,可以进行下面的通信方式:

1. 先将公钥交给邮差发送给对方

 

2. 对方使用公钥将信息加密之后将信息返回

HTTPS和TCP协议三次握手设计

 

3. 收到信件后,利用私钥对信息进行解密

HTTPS和TCP协议三次握手设计

 

这样就能保证信件的保密传递了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssdxz.html