我有一个在发送方和接收方上运行的应用程序,使用 UDP 协议。 UDP缓冲区大小约为70或1024字节,因此不会发生UDP碎片。
从ifconfig/sar
级别,我没有看到明显的UDP丢失。
但从应用程序层面来看,我看到了约30%的损失。我在iperf3
/ ntttcp-for-Linux
/ netperf
看到相同的内容。
损失发生在哪里?这是由UDP引起的IP堆栈乱序吗?我该如何确认这个假设?
谢谢!
答案 0 :(得分:2)
事实证明接收器缓冲区太小了。
在接收方,Phrases
报告高" netstat
"在UDP: packet receive errors
。
通过放大接收缓冲区解决了问题:
netstat -s