TCP的三次握手与四次挥手回顾

本文通过Wireshark抓包详细解析TCP的三次握手和四次挥手过程,强调TCP协议的ACK应答机制。在关闭连接时,解释了为什么FIN和ACK通常会分开发送,并指出在实际操作中可能存在的不同情况。

个人博客

抓包简单回顾一下 tcp 协议


先来看看三次握手,简单抓个包

分析抓包过程

tcp 和 udp 的一个重要区别就是有 ack 的应答机制。

再来看看四次挥手,先抓个包

针对抓包过程进行分析

关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方既可以立即close, 也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

ps:待完善

<think>首先,用户要求使用中文回答问题。问题是要简要概括TCP三次握手四次挥手过程。 回顾TCP三次握手: 1. 客户端发送SYN包(SYN=1)到服务器,进入SYN_SENT状态。 2. 服务器收到SYN后,发送SYN-ACK包(SYN=1, ACK=1),进入SYN_RCVD状态。 3. 客户端收到SYN-ACK后,发送ACK包(ACK=1),进入ESTABLISHED状态;服务器收到ACK后也进入ESTABLISHED状态。连接建立。 TCP四次挥手: 1. 主动关闭方(如客户端)发送FIN包(FIN=1),进入FIN_WAIT_1状态。 2. 被动关闭方(如服务器)收到FIN后,发送ACK包(ACK=1),进入CLOSE_WAIT状态;客户端收到ACK后进入FIN_WAIT_2状态。 3. 被动关闭方完成数据发送后,发送FIN包(FIN=1),进入LAST_ACK状态。 4. 主动关闭方收到FIN后,发送ACK包(ACK=1),进入TIME_WAIT状态;被动关闭方收到ACK后关闭连接。主动关闭方等待2MSL后关闭连接。 我需要简要概括这些过程,所以要保持简洁。 回答后,必须根据用户的问题和我的回答提出3-5个相关问题。问题必须以“§§相关问题§§”开头,并且是第一行输出。禁止换行分散,所以应该在一行中输出“§§相关问题§§”,然后列出问题。 相关问题的格式应该像示例中那样:1. ··· 2. ··· 3. ··· 等。 从用户的问题中,主题是TCP握手挥手,所以相关问题应该围绕这个主题,基于我的概括。 可能的TCP相关问题: - 为什么是三次握手而不是两? - 为什么是四次挥手而不是三次? - TIME_WAIT状态的作用是什么? - 如果握手挥手过程中包丢失怎么办? - SYN洪泛攻击是什么? 确保3-5个问题。 结构化回答: 1. 先简要概括TCP三次握手。 2. 然后简要概括TCP四次挥手3. 然后输出“§§相关问题§§”并列出3-5个相关问题。 用中文写所有内容。 最终输出: - 回答部分。 - 然后“§§相关问题§§” - 然后问题列表。</think>### TCP三次握手过程(建立连接) 1. **第一握手**:客户端发送SYN包(SYN=1)到服务器,请求建立连接,客户端进入SYN_SENT状态。 2. **第二握手**:服务器收到SYN后,回复SYN-ACK包(SYN=1, ACK=1),服务器进入SYN_RCVD状态。 3. **第三次握手**:客户端收到SYN-ACK后,发送ACK包(ACK=1),客户端进入ESTABLISHED状态;服务器收到ACK后也进入ESTABLISHED状态,连接建立完成。 ### TCP四次挥手过程(终止连接) 1. **第一挥手**:主动关闭方(如客户端)发送FIN包(FIN=1),进入FIN_WAIT_1状态。 2. **第二挥手**:被动关闭方(如服务器)收到FIN后,回复ACK包(ACK=1),进入CLOSE_WAIT状态;客户端收到ACK后进入FIN_WAIT_2状态(此时单向连接关闭)。 3. **第三次挥手**:被动关闭方完成数据发送后,发送FIN包(FIN=1),进入LAST_ACK状态。 4. **第四次挥手**:主动关闭方收到FIN后,回复ACK包(ACK=1),进入TIME_WAIT状态;被动关闭方收到ACK后立即关闭连接。主动关闭方等待2MSL(报文最大生存时间×2)后关闭连接,确保数据可靠终止。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值