TCP 3握4挥

版权声明:有些文章写的很随意,那是仅作为个人记录的文章,建议直接关掉,多看一秒亏一秒 https://blog.csdn.net/qq_36523667/article/details/81226834

学习自https://mp.weixin.qq.com/s/yH3PzGEFopbpA-jw4MythQ

 文中出现的问题是

TCP 3握 完成,但是服务端响应不到这个连接,这一点在程序启动的时候尤其明显

(判断出现这个问题的现象:client的56911端口 established,但是server没有对应连接)

 推断出

accept队列满了(这里还有点深奥,后面细讲)

握手图

服务端一开始处于listen状态,然后有客户端发syn,这个时候服务端半连接队列会入栈1个元素,然后服务端发syn+ack,客户端再发ack,这个时候服务端半连接队列会出栈1个 元素,全连接队列会入栈1个元素。

如果在全连接队列满的时候,服务端就会晚一些发送syn+ack给客户端。

而syn、syn+ack后,客户端认为已经established了。两端出现了信息

这里的问题就出在全连接 队列的容量限制为50,在扩大到100后就不会再有这个问题了。

暂时就了解这么多了,挥手可能是对应 出栈入栈。

再讲一些老的知识点

为什么要挥手4次?

server需要发光报文

为什么最后一次ack后 还需要等待一会?

fin

ack

fin

ack->

wait

怕传送失败,打算超时重传来着!如果连接 保持着,资源就大大浪费了

猜你喜欢

转载自blog.csdn.net/qq_36523667/article/details/81226834
今日推荐