简述TCP三次握手和四次挥手

发布于 2022-10-24 16:47 阅读 119

三次握手

是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

可以想象两人用对讲机交谈。

A:我准备好了你准备好了吗,收到请回答。
B:收到收到,我也准备好了,收到请回答。
A:收到收到

四步挥手

客户端:“兄弟,我这边没数据要传了,咱关闭连接吧。”
服务端:“收到,我看看我这边有木有数据了。”
服务端:“兄弟,我这边也没数据要传你了,咱可以关闭连接了。”
客户端:“好嘞。”

699bc943363b4f258d57c029423aae69.png

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

这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。

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

来源

https://www.dandelioncloud.cn/article/details/1498121783957073921

广而告之,我的新作品《语音助手》上架Google Play了,欢迎下载体验