上图
-
第一次握手,client 发送 SYN 到 server,状态修改为 SYN_SEND,server 收到,状态改变为 SYN_REVD,并将该请求放入 sync queue 队列
-
第二次握手,server 回复 SYN + ACK 给 client,client 收到,状态改变为 ESTABLISHED,并发送 ACK 给 server
-
第三次握手,server 收到 ACK,状态改变为 ESTABLISHED,将该请求从 sync queue 放入 accept queue
其中
-
在 linux 2.2 之前,backlog 大小包括了两个队列的大小,在 2.2 之后,分别用下面两个参数来控制,windows这个参数不用在系统设置,是根据我们netty设置的值来的,windows下默认是200,linux默认128
-
sync queue - 半连接队列
-
大小通过 /proc/sys/net/ipv4/tcp_max_syn_backlog 指定,在
syncookies
启用的情况下,逻辑上没有最大值限制,这个设置便被忽略
-
-
accept queue - 全连接队列文章来源:https://www.toymoban.com/news/detail-481798.html
-
其大小通过 /proc/sys/net/core/somaxconn 指定文章来源地址https://www.toymoban.com/news/detail-481798.html
-
到了这里,关于Tcp的三次握手及netty和实际开发如何设置全连接队列参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!