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

2022-11-03 14:59:55 浏览数 (1)

三次握手

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

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

代码语言:javascript复制
A:我准备好了你准备好了吗,收到请回答。
B:收到收到,我也准备好了,收到请回答。
A:收到收到

四步挥手

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

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

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

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

来源

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

0 人点赞