Skip to content

Latest commit

 

History

History
13 lines (7 loc) · 812 Bytes

SYN队列和Accept队列.md

File metadata and controls

13 lines (7 loc) · 812 Bytes

SYN 队列和 Accept 队列

(1)SYN 半链接队列

SYN队列存储了收到 SYN 包的连接,它的职责是回复 SYN+ACK 包,并且在没有收到 ACK 包时重传。发送完SYN+ACK之后,SYN 队列等待从客户端发出的ACK包(也即三次握手的最后一个包)。

当收到ACK包时,首先找到对应的SYN队列,再在对应的SYN队列中检查相关的数据看是否匹配,如果匹配,内核将该连接相关的数据从SYN队列中移除,创建一个完整的连接,并将这个连接加入Accept队列。

(2)Accept 全连接队列

(2)Accept(全连接)

Accept队列中存放的是已建立好的连接,也即等待被上层应用程序取走的连接。当进程调用accept(),这个socket从队列中取出,传递给上层应用程序。