udp通信——7k的数据包占用50多k的接收缓冲区
请教:最近碰到一个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:0000CC88 00:00000000 00000000 0 0 29522 2 dd247440 0