TCP四次挥手

客户机主机A端口1和服务器主机端口2建立连接后,使用4次报文段交互来关闭连接。如下图所示:


①主机A关闭A端口1到端口2的传输连接。

应用程序发送完数据,通知TCP关闭连接。

TCP收到对最后数据的确认后发送一个FIN报文段,FIN=1,seq=x。x为A发送数据的最后字节的序号加1.虽然是关闭连接,报文段的交换中也要使用序号。

②主机B响应连接

TCP软件对主机A的FIN报文段进行确认,ACK=1,确认序号ackseq=x+1。

通知本段的应用程序:A方传输已经结束。

③主机B关闭端口2到主机A端口1的传输连接。

应用程序发送完数据,通知TCP关闭连接。

TCP收到对最后数据的确认后,发送一个FiN报文段,FIN=1,seq=y,y为主机B发送数据的最后字节的序号加1,ACK=1,ackseq=x+1..

④主机A响应

TCP软件对主机B的FIN的报文段进行确认,ACK=1,确认序号ackseq=y+1。

通知本段的应用程序:B方传输已经结束。

为什么断开连接需要4次呢?我们知道,TCP的连接时全双工的,可以在两个方向上进行数据的独立传输,当A方的数据已经发送完毕时,TCP将单向关闭这个连接,此后A方不再传输数据,但是仍然可以接受数据。在相反方向上,连接还没有关闭,B方还可以继续发送数据,A方继续接受数据,这样的关闭状态为半关闭状态。当B方也关闭连接,TCP之间的连接才完全关闭。因此,TCP采用4次报文段的交换来关闭。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值