三次握手四次挥手原理

本文围绕TCP通信中服务端和客户端的三次握手与四次挥手展开。详细介绍了三次握手和四次挥手的具体过程,即主机A与主机B建立和断开连接时各步骤发送的信息。还解释了建立连接用三次握手、断开用四次挥手的原因,与服务器处理报文方式有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么一次连接中服务端和客户端要进行三次握手和四次挥手?

在这里插入图片描述
主机A想要与主机B进行TCP通信。
第一次握手,首先他需要向B发送一个syn同步序列编号syncsynchronized squsequence number用来标记保持同步,第一次握手就结束了。
第二次握手开始,主机B向A发送一个syn同步序列号和ack确认号确认号为A主机发送的syn号+1,第二次握手结束。
第三次握手开始主机A向主机B发送ack确认码为主机B的syn号+1,到此,三次握手结束进入ESTABLISHED状态,开始进行数据传输。
主机A想要向主机B结束tcp长连接。
第一次挥手发送fin请求,第一次挥手结束。
第二次挥手开始,主机B向主机A发送ack确认码,为fin号+1,第二次挥手结束。
第三次握手开始主机B向A发送fin号结束,第三次握手结束。
第四次挥手开始主机A向B发送ack号为fin+1,这时tcp连接结束。
为什么建立连接是三次握手,断开要四次挥手?
总的来说,建立连接的时候,服务器在监听状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值