我们有一个应用程序以 RTP(使用 UDP)数据包的形式接收 DTMF 数字。以前的服务器版本是 RHEL 5.7,一切运行正常。现在,由于我们迁移到 RHEL 6.8,数据包经常被丢弃。数据包无法到达应用程序,
netstat -su
显示 UDP 数据包接收错误增加。我们使用常用的 C 函数 recvfrom() 从套接字接收数据包。
将值设置/proc/sys/net/core/rmem_max
为33554432使用
sysctl -w net.core.rmem_max=33554432
使系统正常运行。
现在为什么 RHEL 6.8 而不是 5.7 需要进行此项更改,这是否只会延迟问题,因为当此缓冲区被填满时,数据包是否会再次开始丢弃?