用谈恋爱来理解TCP的三次握手和四次挥手 | 您所在的位置:网站首页 › 和男朋友握手 › 用谈恋爱来理解TCP的三次握手和四次挥手 |
一、TCP/IP的连接
当socket建立了TCP/IP连接之后,服务器会一直监听客户端的连接请求,连接成功之后就会是比较可靠的连接。之所以说TCP连接可靠,那是因为连接和断开都需要比较复杂的流程。 就好比如一对恋人。他们成为男女朋友之前,肯定会有一方不断地最求另一方,或者两人共同度过了一些难忘地时光,彼此相互有了依赖。然后其中一方说"做我的女(男)朋友吧"(这就是TCP连接的第一次握手),然后另一方答应了(就有了第二次握手),低三次握手自然是正式成为男女朋友。 二、三次握手 TCP的三次握手是为了确认连接,保证服务器和客户端能够正常的通信。“三次握手”是由客户端主动打开的,服务器被动打开。这个不难理解,我们在学习socket编程的时候,在对服务器进行编程的时候,有个监听连接的代码:listen,之后还有一个API :accpet 响应客户端的连接: 分久必合,合久必分,既然有握手就有分手,啊不…挥手。TCP的四次挥手是确认断开通信,其过程就是其中一端发起断开连接请求,另外一方回应断开请求。 即男女朋友间突然有一天有一个人觉得双方不合适,提出分手(就是TCP的第一次挥手);另外一方说好,可以分手(产生第二次挥手);分手可以,等我下班,下班之后还给你定情信物(FIN)(这是第三次挥手);接收到换回来的信物(FIN)确认分手,(第四次挥手)。 因为在那个女孩提分手的时候,我还在加班(接收端还在处理必要的程序),我只能告诉她,“好的我知道了”(接收端只能通过ACK告诉发送端,已收到断开请求),只有等加班完了之后才给把当年的定情信物还给她(接收端处理完程序之后,再发送 FIN+(ACK+1) 表示第三次挥手)。 师承:抖音 上官可编程 ->陈立臣 |
CopyRight 2018-2019 实验室设备网 版权所有 |