UDP广播接收小优化

  • Linux 系统排查与优化

    • 查看当前缓冲区大小(默认通常很小,如 212992 字节): bash

      运行

      复制代码
      sysctl net.core.rmem_default  # 默认接收缓冲区
      sysctl net.core.rmem_max      # 最大接收缓冲区
    • 临时调高缓冲区(立即生效,重启失效): bash

      运行

      复制代码
      sysctl -w net.core.rmem_default=26214400  # 25MB
      sysctl -w net.core.rmem_max=52428800      # 50MB
    • 永久生效:编辑 /etc/sysctl.conf,添加上述两行,执行 sysctl -p 加载。

优化接收端 IP 分片重组缓冲区(核心)

Linux/Windows 默认的 IP 分片重组缓冲区较小,若大包分片到达不及时 / 数量多,会导致重组失败,表现为 "抓包能看到所有分片,但应用层收不到 UDP 包"。

(1)Linux 系统优化(临时 + 永久)

bash

运行

复制代码
# 1. 查看当前分片重组配置
sysctl net.ipv4.ipfrag_high_thresh  # 重组缓冲区高阈值(默认131072字节)
sysctl net.ipv4.ipfrag_low_thresh   # 低阈值(默认196608字节,注意:高阈值 < 低阈值是正常的)
sysctl net.ipv4.ipfrag_time         # 分片保留时间(默认30秒,即分片需30秒内全部到达)

# 2. 临时调高缓冲区(立即生效,重启失效)
sysctl -w net.ipv4.ipfrag_high_thresh=524288  # 512KB
sysctl -w net.ipv4.ipfrag_low_thresh=1048576  # 1MB
sysctl -w net.ipv4.ipfrag_time=60             # 延长分片保留时间到60秒

# 3. 永久生效(编辑/etc/sysctl.conf)
echo "net.ipv4.ipfrag_high_thresh = 524288" >> /etc/sysctl.conf
echo "net.ipv4.ipfrag_low_thresh = 1048576" >> /etc/sysctl.conf
echo "net.ipv4.ipfrag_time = 60" >> /etc/sysctl.conf
sysctl -p  # 加载配置
相关推荐
Xの哲學3 小时前
Linux二层转发: 从数据包到网络之桥的深度解剖
linux·服务器·算法·架构·边缘计算
石像鬼₧魂石3 小时前
Termux ↔ Windows 靶机 反向连接实操命令清单
linux·windows·学习
yuguo.im3 小时前
Docker 两大基石:Namespace 和 Cgroups
运维·docker·容器
亮子AI3 小时前
application/json 服务器收到的是字符串,还是json对象?
运维·服务器·json
啃火龙果的兔子3 小时前
如何将D:\BaiduNetdiskDownload所有目录下的所有图片复制提取到D:\bacPic
linux·运维·服务器
FF-Studio3 小时前
RTX 5060 Ti Linux 驱动黑屏避坑指南:CUDA 13.1, Open Kernel 与 BIOS 设置
linux·运维·服务器·cuda
咕噜签名-铁蛋3 小时前
云服务器的核心优势
服务器
NetInside_4 小时前
2025 DEM 趋势 × NetInside 产品能力:行业深度解读
运维·网络