当前位置:网站首页>Byte Qiu Zhao confused me on both sides, and asked me under what circumstances would the SYN message be discarded?
Byte Qiu Zhao confused me on both sides, and asked me under what circumstances would the SYN message be discarded?
2022-08-09 12:10:00 【InfoQ】
- 开启 tcp_tw_recycle 参数,并且在 NAT 环境下,造成 SYN 报文被丢弃
- accpet 队列满了,造成 SYN 报文被丢弃
坑爹的 tcp_tw_recycle
net.ipv4.ip_local_port_range
- 防止具有相同四元组的旧数据包被收到,也就是防止历史连接中的数据,被后面的连接接收,否则就会导致后面的连接收到一个无效的数据,
- 保证「被动关闭连接」的一方能被正确地关闭,即保证最后的 ACK 能让被动关闭方接收,从而帮助其正常关闭;
- net.ipv4.tcp_tw_reuse,如果开启该选项的话,客户端(连接发起方) 在调用 connect() 函数时,内核会随机找一个 time_wait 状态超过 1 秒的连接给新的连接复用,所以该选项只适用于连接发起方.
- net.ipv4.tcp_tw_recycle,如果开启该选项的话,允许处于 TIME_WAIT 状态的连接被快速回收;

accpet 队列满了
- 半连接队列,也称 SYN 队列;
- 全连接队列,也称 accepet 队列;
- Recv-Q:当前 accpet 队列的大小,也就是当前已完成三次握手并等待服务端 accept() 的 TCP 连接个数;
- Send-Q:当前 accpet 最大队列长度,上面的输出结果说明监听 8088 端口的 TCP 服务进程,accpet 队列的最大长度为 128;
- 调大 accpet 队列的最大长度,调大的方式是通过调大 backlog 以及 somaxconn 参数.
- 检查系统或者代码为什么调用 accept() 不及时;
边栏推荐
猜你喜欢
太卷了... 腾讯一面被问到内存满了,会发生什么?
元宇宙:下一代互联网启程(附元宇宙深度报告PDF)
人体解析(Human Parse)开源数据集整理
【Adobe Premiere Pro 2020】pr2020安装和基本操作【PR安装、新建项目流程、导入及管理素材项目文件、添加标记、创建出入点剪辑视频、快速剪接及自动音乐卡点的方法
JS 封装节流(后期优化)
WPF 实现带蒙版的 MessageBox 消息提示框
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
Visual Studio 2017 ASP.NET Framework MVC 项目 MySQL 配置连接
wait system call
虚拟机安装出现的问题汇总
随机推荐
PM2 configuration file
香港服务器如何进行加密?
二重指针-char **、int **的作用
web course design
bat文件(批处理文件)运行时一闪而过解决方法
【VQA survey】视觉问答中的语言学问题
字节秋招二面把我干懵了,问我SYN报文什么情况下会被丢弃?
MySQL执行sql语句的机制
[C language] creation and use of dynamic arrays
C# 获取系统已安装的.NET版本
父类的main方法可以被继承么?有什么特殊?
[现代控制理论]2_state-space状态空间方程
Apexsqlrecover无法连接数据库
Experiment record: the process of building a network
研发需求的验收标准应该怎么写? | 敏捷实践
shell脚本------函数的格式,传参,变量,递归,数组
Redis的常用数据结构和底层实现方式
推荐一个免费50时长的AI算力平台
PAT1002
JS封装防抖(代码持续优化)