Skip to content

计算机网络-半连接队列和全连接队列

1. 什么是半连接和全连接

image.png

  • 在三次握手的过程当中,可能存在丢包的情况,就比如第一次握手之后,实际上可能过了很久才能进入到第二次握手
  • 那么,第一次握手的结果,总是需要一个地方去存放的
  • 为什么选择队列这个结构,因为first in first out
  • 实际上的过程:
    1. 第一次握手
    2. 建立半连接
    3. 半连接放到半连接队列里面去
    4. 进行第二次握手
    5. 发起第三次握手
    6. 半连接升级成全连接
    7. 全连接被放到全连接队列里面去
    8. 程序执行accect()方法,把它取走使用,整个过程如下图

image.png

2. 如何查看半连接队列的大小

shell
cat /proc/sys/net/ipv4/tcp_max_syn_backlog

# 4096

image.png

3. 如何查看全连接队列大小

shell
# -n 不解析服务名称
# -t 只显示 tcp sockets
# -l 显示正在监听(LISTEN)的 sockets


ss -lnt
State      Recv-Q Send-Q    Local Address:Port         Peer Address:Port
LISTEN     0      128       [::]:2380                  [::]:*
LISTEN     0      128       [::]:80                    [::]:*
LISTEN     0      128       [::]:8080                  [::]:*
LISTEN     0      128       [::]:8090                  [::]:*

4. 半连接队列如何 drop

image.png