计算机网络-半连接队列和全连接队列
1. 什么是半连接和全连接
- 在三次握手的过程当中,可能存在丢包的情况,就比如第一次握手之后,实际上可能过了很久才能进入到第二次握手
- 那么,第一次握手的结果,总是需要一个地方去存放的
- 为什么选择队列这个结构,因为first in first out
- 实际上的过程:
- 第一次握手
- 建立半连接
- 半连接放到半连接队列里面去
- 进行第二次握手
- 发起第三次握手
- 半连接升级成全连接
- 全连接被放到全连接队列里面去
- 程序执行
accect()
方法,把它取走使用,整个过程如下图
2. 如何查看半连接队列的大小
shell
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
# 4096
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 [::]:*