admin管理员组

文章数量:1530845

2024年3月11日发(作者:)

一 TCP四次挥手原理及抓包情况

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户

端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产

生挥手操作,如图1所示。

图1 四次挥手原理图

第一次挥手:主动方发送一个FIN,用来关闭主动方到被动方的数据传送;

第二次挥手:被动方收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,

和SYN一样,一个FIN将占用一个序号;

第三次挥手:被动方关闭与主动方的连接,发送一个FIN给主动方;

第四次挥手:主动方发回ACK报文确认,并将确认序号设置为收到序号加1;被动方

关闭连接

通俗说就是

主动方对被动方说:我不爱你了,咱们离婚吧!--------------->(FIN_WAIT_1状态,

等待回应)

被动方回应:那离婚吧,把你的东西都拿走! --------------->(FIN_WAIT_2

状态,在关闭连接前将最后一点数据传完)

被动方又说:咱们来个Kiss Goodbye吧! --------------->( LAST_ACK,

关闭连接,并请求最后一次确认)

主动方回应:波儿~ --------------> (CLOSED,完毕)

图2 WIRESHARK抓包情况

二 思考题

2.1 、为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?

这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以

本文标签: 挥手连接被动关闭序号