udp通信——7k的数据包占用50多k的接收缓冲区

时间:2021-07-24 07:00:13
请教:最近碰到一个udp丢包问题,定位发现是recv缓冲区满了引起。奇怪的是client只发送一个7k的数据包,在server用tcpdump抓到的也是7k的数据包,但是通过查看cat /proc/net/udp查看,该端口的rx_queue却占用了50多k(0xCC88)。尝试发1k,10k的数据包,发现在recv缓冲区的占用都在原数据的7,8倍?有在别的系统上测试,正常的情况,实际数据包大小与占用recv缓冲区空间大小的比例,应该是1:1.2。目前通过tcpdump已排除没有接收别的udp数据。
请问还有什么手段查看为什么占用那么大空间?
  cat /proc/net/udp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops
   76: 00000000:BBDD 00000000:0000 07 00000128:00000000 00:00000000 00000000     0        0 29523 2 dd247680 0
  248: 00000000:0489 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 29520 2 dd246fc0 0
  249: 00000000:048A 00000000:0000 07 00000000:0000 CC88 00:00000000 00000000     0        0 29522 2 dd247440 0

2 个解决方案

#1


求大神指点 udp通信——7k的数据包占用50多k的接收缓冲区

#1


求大神指点 udp通信——7k的数据包占用50多k的接收缓冲区