你看Http的 三次握手

Posted wg-console

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你看Http的 三次握手相关的知识,希望对你有一定的参考价值。

你看Http的 三次握手

按层次分,TCP位于传输层,而且TCP协议能够确认数据是否送达到对方,所以在客户端请求资源的时候,你得让俺知道咱俩关系是不是已经确定了啊,对不。这跟谈恋爱一样一样的,得先确定好关系,才能进入下一步。如图:

技术图片

客户端会创立一个Tcp链接,当TCP链接成功创建之后,然后在发送http request 请求。
那么,问题来了,怎么知道这对情侣确定好关系了呢? 这需要传说中的TCP三次握手来帮忙了哇。请看下面的时序图

技术图片

  1. 首先客户端会送一个数据包 包含(SYN,Seq=x) 为什么叫这个名字俺也不知道,可能是甲鱼的臀部——龟腚 即SYN就是询问: 你能听得到吗? ACK就是回到: 我能听得到啊。
  2. 服务端接受这个数据包,并且返回一个数据包(SYN,ACK = X+1 ,Seq = y),这里多个ACK验证,并且值是穿过来的x+1,Seq赋值给了y
  3. 客户端接受数据包,并且又发送一个数据包(ACK = Y+1 Seq = Z)告诉服务端:咱俩关系确定了,接下来可以自由传输数据了。

为什么一定是三次才能确定关系呢?

举个栗子:
如果客户端给服务端发了个第一次握手,服务端返回的数据由于一些种种原因,客户端并没有收到,客户端一般都会有设置超时时间,到点了人家客户端就关闭了,但是由于木有收到服务端的回应,无法给那个可怜的服务端发送回应数据包,咱服务端就一直在傻傻的等着,服务端就是个老实人,这样做多伤害人家。

两次不能确定关系嘛?

两个人约会两次就想确定关系? 比如女方在微信问你:你爱我嘛?,男方答:我爱你一万年,然后就没了,此时男方说了我爱你之后,没有收到女方回应,那这样单纯的服务端怎么办,一直在哪等女方回应,为了实现爱与和平的世界,三次握手是目前促使两人终成眷属的最有效方式。

以上是关于你看Http的 三次握手的主要内容,如果未能解决你的问题,请参考以下文章

HTTP中的TCP三次握手-详细解析(TCP ConnectionTCP的三次握手介绍为什么创建TCP三次握手)

Wireshark浅析Tcp三次握手

HTTP的三次握手

HTTP从入门到入土——TCP三次握手

http三次握手和四次挥手

HTTPS的作用和过程,详解为啥要 三次握手 四次挥手