tcp 的连接队列

连接队列

  它指的就是tcp状态节点的队列。tcp 状态分俩种,一种是完全连接状态即(established) , 一种是半连接状态(SYN_SEND 或 SYN_RECV)。
  对于服务器来说,listen状态的节点当收到syn同步报文段后,会进行三次握手,当三次握手完成后,就生成一个 established 节点放到完全连接队列中,本质上 listen状态的节点是不负责具体的通信的,它并不接受具体的数据报文段,它只负责监听。(这就是为什么accept 系统函数,执行完毕后并不是listensocket去通信,而是accept返回的socket去通信。

完全连接队列与半连接队列

  半连接队列都是处于SYN_SEND/SYN_RCVD状态的节点,它的大小由系统参数确定,/proc/sys/net/ipv4/tcp_max_syn_backlog来决定默认32位下512,64位下2048,最大8192。(测试环境是 Centos 6.5 32/64位)
  完全连接队列是由listen 函数中的backlog参数决定的。它的大小在 0~/proc/sys/net/core/somaxconn之间(我的默认该值是128)。

修改内核参数

  sudo sysctl -w net.core.somaxconn=2048 即可生效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值