`

TCP的四次挥手

 
阅读更多

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状态。

欢迎关注我的微信公众号



 

 

  • 大小: 80.7 KB
  • 大小: 92.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics