用谈恋爱来理解TCP的三次握手和四次挥手 您所在的位置:网站首页 和男朋友握手 用谈恋爱来理解TCP的三次握手和四次挥手

用谈恋爱来理解TCP的三次握手和四次挥手

#用谈恋爱来理解TCP的三次握手和四次挥手| 来源: 网络整理| 查看: 265

一、TCP/IP的连接

      当socket建立了TCP/IP连接之后,服务器会一直监听客户端的连接请求,连接成功之后就会是比较可靠的连接。之所以说TCP连接可靠,那是因为连接和断开都需要比较复杂的流程。       就好比如一对恋人。他们成为男女朋友之前,肯定会有一方不断地最求另一方,或者两人共同度过了一些难忘地时光,彼此相互有了依赖。然后其中一方说"做我的女(男)朋友吧"(这就是TCP连接的第一次握手),然后另一方答应了(就有了第二次握手),低三次握手自然是正式成为男女朋友。

二、三次握手

      TCP的三次握手是为了确认连接,保证服务器和客户端能够正常的通信。“三次握手”是由客户端主动打开的,服务器被动打开。这个不难理解,我们在学习socket编程的时候,在对服务器进行编程的时候,有个监听连接的代码:listen,之后还有一个API :accpet 响应客户端的连接: 在这里插入图片描述       每次握手都携带了一个报文:SYN 数据包。每次发送数据都要确认数据的完整性,就像是定情信物(第一次握手)。图中的ack 为应答信号,接收到SYN之后,把SYN给你然后附带自己的信物(第二次握手),证明我收到了你的定情信物SYN。第三次收到是我本人给你的SYN之后,确认可以交往(第三次握手),完成连接。

三、四次挥手

      分久必合,合久必分,既然有握手就有分手,啊不…挥手。TCP的四次挥手是确认断开通信,其过程就是其中一端发起断开连接请求,另外一方回应断开请求。       即男女朋友间突然有一天有一个人觉得双方不合适,提出分手(就是TCP的第一次挥手);另外一方说好,可以分手(产生第二次挥手);分手可以,等我下班,下班之后还给你定情信物(FIN)(这是第三次挥手);接收到换回来的信物(FIN)确认分手,(第四次挥手)。 在这里插入图片描述       第二次挥手的时候,发送的只有应答信号,因为接收方可能还在处理进程内的任务,等待任务完成后,才发送报文及应答这是第三次挥手。

五、为什么握手只要三次而挥手要四次

      因为在那个女孩提分手的时候,我还在加班(接收端还在处理必要的程序),我只能告诉她,“好的我知道了”(接收端只能通过ACK告诉发送端,已收到断开请求),只有等加班完了之后才给把当年的定情信物还给她(接收端处理完程序之后,再发送 FIN+(ACK+1) 表示第三次挥手)。

师承:抖音 上官可编程 ->陈立臣


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有