关于tcp/ip的一场美好的邂逅(三次握手四次挥手)

Posted daoyouzhanzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于tcp/ip的一场美好的邂逅(三次握手四次挥手)相关的知识,希望对你有一定的参考价值。

  基于对tcp/ip的的三次握手,四次挥手不是很了解,所以花了一点时间查询了相关知识,并对其知识点进行了汇总,并且给自己理了下记忆思路。

  •  三次握手

  ① 第一次握手

  客户端发送请求(synsynchronization),并选择一个初始化序号(seqsequence

  syn=1;seq=x

  客户端状态变为(syn-sentsynchronization_sent

  ② 第二次握手

  服务器做出响应:listen---->syncrcvd(synchronizationrecieved);

  从监听变为收到请求  状态变为established

  syn=1   ACK=1

  ack=x+1(q确认编号)

  发送序号seq=y

  ③ 第三次握手

  客户端收到服务端发送端的TCP建立的验证请求,

  状态变为established

  确认收到请求,返回服务器信息

  ACK=1  ack=y+1(q确认编号)

  发送序号 seq=x+1

技术图片

 

  •  四次挥手

  ① 第一次挥手

   客户端进程释放报文,发送报文FIN=1;

   序列号seq=u;

   状态为FIN-WAIT-1

  ② 第二次挥手

   服务端收到报文 ACK=1 确认编号ack=u+1

   发送信息给客户端 序列号seq=v

   状态为CLOSE_WAIT

  ③ 第三次挥手

   服务器继续发出报文 FIN=1;

   再次确认收到报文ACK=1 确认编号ack=u+1

   发送信息给客户端 序列号seq=w;

   进入最后确认状态Last_ACK;

  ④ 第四次挥手

   客户端收到服务器的信息

  确认收到ACK=1 确认编号ack=w+1;

  seq=u+1;

  状态变为CLOSED

  

  技术图片

  


 

  以上是基于对tcp/ip三次握手四次挥手过程的解释,但是由于解释过于官方,似乎不太好理解,甚至很难记住,甚至容易混淆两者的关系。

  

  因此,我脑补了这样一段情节帮助理解记忆,我现在把客户端当作一个羞涩的男孩,服务端当作一个矜持的女孩

  现在规定两者进行对话,每次说一句话,记作seq并且记录其特有的编号,ACK表示确认收到对方的消息,并且后面需要跟上ack(认可对方的语句并在其特有标号后+1)

 

  于是故事是这样的,一个羞涩的男孩邂逅了一个矜持的女孩,他认可她(syn:synchronization作为标记),他尝试这给女方对话,说出了他的第一句话(seq=x);

  女方收到了男方的消息,并且也认可了男孩,先确认(ACK,ack=x+1),女孩给男孩回了一句(seq=y),此时男孩欣喜若狂也很礼貌的做了回应(ACK,ack=y+1),在他原来沟通的基础上

  继续沟通(seq=x+1),就这样,两人的初步认识了,也开始了交流(信息传输过程)。

 

  但是,相遇总是短暂的,马上到了分离的时分,作为男方,虽然不舍但是很绅士提出要分开的意思(fina=1)并发送了消息,女孩一如既往的确认消息并回复,但是因为出于矜持,她用只有自己能听到

  声音说了很多想对男孩话(发送语句从v变w不连续的原因),终于她向男孩说出了,时间不早了,这将是她们这次的最后一次谈话(fina=1)并再也不发声了,男孩收到消息后沉默了数秒并确认消息并道别。

  望着对方渐行渐远的背影,他们结束了这段对话,分离是为了下一次更好的邂逅。

 

  具体脑补只能根据自己理解到这种程度,请轻喷,如有错误之处,请指正。

  三次握手四次挥手两者的状态(情绪)如下

  

  •  三次握手:双方状态

客户端状态

 syn-sent---------------------------------------->established

服务端状态

                    listen---------->syncrcvd------------------------->established

 

  • 四次挥手:双方状态 

客户端状态

established--->fin-wait-1------------------->fin-wait-2----------------->time_wait------------------------------>closed

服务端状态

established------------------>close-wait---------------------->fin-ack------------------------->closed

 

以上是关于关于tcp/ip的一场美好的邂逅(三次握手四次挥手)的主要内容,如果未能解决你的问题,请参考以下文章

干货超具体讲解TCP/IP三次握手与四次挥手

TCP/IP三次握手与四次挥手的正确姿势

TCP/IP三次握手四次挥手

TCP协议:三次握手,四次挥手

TCP/IP链接的三次握手与四次挥手

TCP/IP三次握手四次挥手过程