美文网首页
TCP三次握手建立连接和四次挥手断开连接(个人理解)

TCP三次握手建立连接和四次挥手断开连接(个人理解)

作者: Tiny荣 | 来源:发表于2019-04-28 21:19 被阅读0次

TCP三次握手建立连接和四次挥手断开连接(个人理解)

TCP协议通过三次握手的方式建立连接:

1.客户端(李二狗)发送SYN请求给服务器(小红):喂,小红,我是李二狗,我想和你说话

2.服务器收到SYN,并回复给客户端一个确认字段ACK:(我是小红),我听到了

3.客户端收到ACK字段,发送第二个SYN请求给服务器:嘿嘿,小红,我听到了,咱俩开聊吧,嘻嘻!

于是服务器将这个连接状态更改为established,并将连接加入backlog队列,等待应用层收取数据包。

三次握手的目的是互相确认双方之间的信道畅通,有互相发送消息的能力,不是聋子或者哑巴。

TCP协议通过四次挥手断开连接:

还是李二狗和小红,这次要说再见了:

1.客户端(李二狗)发送FIN请求给服务器(小红):小红我有点事儿先不跟你聊了吧,咱俩挂断吧,你还有啥想说的吗

2.服务器收到FIN,立刻回复一个确认字段ACK:嗯,那行吧。

3.服务器紧接着主动向客户端发送一个FIN请求:我也没啥想说的了,今天咱先这样吧。

4.客户端收到服务器发送的FIN请求,再次回复一个ACK确认字段:好,再见。

随后客户端仍然需要继续等待2MSL的时间,期间没有收到任何回复,再彻底断开连接。2MSL是网络报文在网络上存活的最长时间,一般是一个经验值,从30秒到几分钟不等:我再等等吧,万一小红那边有什么事没说呢,啊,等30秒了,什么也没收到,她应该确实是挂断了,我也挂了吧

双方就通过这样四次交互彻底断开连接。

之所以要四次挥手,就是要保证双方都收到了彼此的断开确认

要点:

1.如果因为网络故障,客户端多次发送了FIN,那么只要收到一个服务器的ACK,就可以确认服务器知道要断开了。如果服务器先回复FIN,那么客户端就不能保证这个FIN是因为自己发送的FIN而触发的。所以服务器必须先回复ACK

2.如果服务器不回复ACK,那么客户端可以继续单方面接收服务器发送的任何信息,这种连接叫做半连接

3.客户端在收到服务器的FIN之后,不回复ACK,服务器也可以继续单向接收客户端的信息,也继续保持半连接。

4.最后一个ACK,服务器因为网络故障,很久才收到,或者没有收到,只要在2MSL的时间内,都可以再次向客户端发送一次FIN,再确认一次,反复确认直到双方都确实断开了连接。

5(重点,考试要考的).在2MSL时间内,双方原来使用的通信端口不能再次建立连接,任何试图绑定该端口的SOCKET请求都会失败。因此,服务器应该设置允许2MSL复用端口,客户端应选择新的端口与服务器建立连接(一般操作系统会随机生成一个新端口,用户不必操心)

TCP协议这样设计的目的,就是为了最大限度的保证网络连接的可靠性。

以上都是个人的理解,凭借记忆的知识点手敲出来的,如有纰漏和错误请见谅

相关文章

  • TCP三次握手建立连接和四次挥手断开连接(个人理解)

    TCP三次握手建立连接和四次挥手断开连接(个人理解) TCP协议通过三次握手的方式建立连接: 1.客户端(李二狗)...

  • 三次握手简单理解

    三次握手 四次挥手 建立TCP连接需要三次握手, 而断开连接需要执行四次挥手. 信号 SYN 同步 ASK 确认 ...

  • 三次握手和四次挥手

    三次握手是TCP建立连接时进行的,四次挥手是TCP断开连接是进行的,要弄明白三次握手和四次挥手,需要了解TCP的协...

  • TCP10问

    1.TCP建立连接时需要几次握手, 断开连接需要几次握手? TCP建立连接需要三次握手, 断开连接要四次握手。现有...

  • 知识点总结1-计算机网络

    1.TCP的三次握手和四次握手 建立TCP的话,需要三次握手才能建立,而断开连接则需要四次挥手 三次握手:通俗描述...

  • Alamofire前奏之TCP三握四挥

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。 一、TCP三次握手? TCP有6种标识:SYN(建立联...

  • Alamofire -- TCP三握四挥理解(转载)

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。 一、TCP三次握手? TCP有6种标识:SYN(建立联...

  • 了解TCP/IP协议

    TCP/IP 三次握手四次挥手 1. TCP 基本认识 2. TCP 连接建立 3. TCP 连接断开 4. so...

  • 一篇搞懂TCP中的三次握手和四次挥手的过程

    大家知道TCP建立连接需要经过三次握手,而断开连接需要经过四次挥手,那三次握手和四次分手分别做了什么和如何进行...

  • TCP与UDP的区别

    TCP:面向有连接,建立连接需要三次握手,断开连接需要四次挥手,报头至少需要20字节,TCP无边界。 UDP:面向...

网友评论

      本文标题:TCP三次握手建立连接和四次挥手断开连接(个人理解)

      本文链接:https://www.haomeiwen.com/subject/zwhsnqtx.html