TCP建立连接要进行三次握手,而断开连接要进行四次,这是由于tcp的半关闭造成的
因为TCP连接是全双工的(即数据可在两个方向上同时传递),所以进行关闭的每个方向
上都要单独进行关闭。这个方向的关闭就是半关闭,当一方完成它的数据发送任务,就发送
一个FIN来向另一方通告将要终止这个方向的连接。
1) 关闭客户端到服务器的连接:
首先客户端A发送一个FIN,用来关闭客户端到服务器端的数据传送,然后等待服务器确认。
其中终止标识位FIN=1,序列号seq=u
2),服务器收到这个FIN,它发回一个ACK,确认ACK为收到的序列号+1
3),关闭服务器到客户端的连接:同样是发送一个FIN给客户端
4),客户端收到FIN后,并发回一个ACK报文确认,并将确认序列号seq设置为收到序号+1
首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭
主机A发送FIN后,进入终止等待状态,服务器B收到主机A连接释放报文段后,就立即给主机A发送确认,
然后服务器B就进入close-wait状态,此时TCP服务器进程就通知高层应用进程,因而从A到B的连接就释放了。
此时是"半关闭"状态。即A不可以发送给B,但是B可以发送给A
此时,如果B没有数据要发送给A了,器应用进程就通知TCP释放连接,然后发送给A连接释放报文,并等待确认。
A发送确认ACK后,进入time-wait,注意此时TCP连接还没有释放掉,然后经过时间等待计时器设置的2MSL后,A才
进入到close状态。
欢迎关注我的微信公众号
相关推荐
TCP四次挥手 可以变成三次吗708 - 726
主要描述TCP协议三次握手四次挥手过程,很详细,非常值得拥有
10如何提升TCP四次挥手的性能?1
使用wireshark抓包分析,并且将特殊字段进行分析。
1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的... 4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手
五、TCP四次挥TCP四次挥过程和状态变迁TCP 断开连接是通过四次挥式双都可以主动断开连接,断开连接后主机中的「资源」将被释放客户端打算关闭连接,此时会发送个
TCP三次握手与四次挥手.pdf
该文档详细描述了wireshark抓包分析tcp三次握手四次挥手详解及网络命令,亲自整理,适合新手借鉴
Wireshark抓包分析TCP“三次握手,四次挥手”.doc
TCP三次握手及四次挥手详细图解 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. TCP三次握手 所谓三次握手...
TCP报文分析--三次握手 四次挥手 还介绍了一点 SYN洪水攻击
详解TCP三次握手和四次挥手
TCP三次握手及四次挥手
描述TCP三次握手,四次挥手的过程的图片
案例测试TCP的三次握手和四次挥手过程。包括C语言写的服务器端程序以及c#写的客户端程序,以及使用wirkshark进行的网络抓包分析TCP三次握手四次挥手的过程。
TCP 三次握手和四次挥手,面试题详解,图文并茂,欢迎技术交流
Wireshark协议分析之TCP的三次握手和四次挥手,内含两个数据包,一个是三次握手,一个是四次挥手
通过图解,简单明了的介绍了tcp三次握手/四次挥手的全过程,解释为什么建立连接协议是三次握手,而关闭连接却是四次握手
基于ajax请求过程分析Http协议的三次握手和四次挥手过程。 基于ajax请求过程分析Http协议的三次握手和四次挥手过程 基于ajax请求过程分析Http协议的三次握手和四次挥手过程 基于ajax请求过程分析Http协议的三次握手...