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  # 加载配置
相关推荐
jerryinwuhan1 小时前
《系统部署与运维》开篇 课程介绍
运维
ltl3 小时前
实时 OS 巡礼:VxWorks、QNX、Zephyr 与 PREEMPT_RT
linux
我是谁??3 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
圣殿骑士-Khtangc4 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
Shell运维手记4 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
朴马丁4 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
这个DBA有点耶5 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
Elastic 中国社区官方博客5 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
测试运维日常笔记6 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
像风一样自由20206 小时前
加强版VScode结合remote-ssh远程连接服务器开发指南
服务器·vscode·ssh