摸着W5500学习计算机网络5——TCP的四次挥手

最近在用W5500做个项目,边做边加深对计算机网络这方面知识的了解。今天来探究一下TCP断开连接时的四次挥手。

    参与TCP连接的两个进程中的任何一个都能终止该连接。假设现在客户端打算要关闭连接,一共分下面几步:

1、客户端TCP向服务器进程发送一个特殊的TCP报文段,这个特殊的报文段让其首部中的FIN标志位置1。

2、服务器收到FIN报文段后,向客户端发送确认报文段。

3、服务器发送它自己的FIN报文段给客户端,要求终止连接。

4、客户端收到服务器的FIN报文段后,向服务器发送确认报文段。

至此,TCP连接就中断了。具体的过程大致如下图:

现在问题来了,为什么挥手的时候要四次?

因为TCP连接是全双工的,也就是说服务器往客户端发送数据、客户端往服务器发送数据可以同时进行,而且他们很有可能不是同时结束。客户端发送数据结束后,向服务器发送FIN报文段,就是告诉服务器,我的数据发送完成了,我要断开连接了。而此时服务器可能还在向客户端发送数据。服务器要等到它的数据发送完毕后,再向客户端发送FIN报文段,告诉客户端,我要发送的数据也发送完毕了,我也可以断开连接了。

下面是wireshark截取到的四次挥手的数据包:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值