2017-08-16 5 views
2

私は、UDPプロトコルで、送信者と受信者で実行されているアプリケーションを持っています。 UDPバッファサイズは約70または1024バイトであるため、UDPフラグメンテーションは発生しません。Linux UDP:UDPデータグラムはどこで失われますか?

ifconfig/sarレベルから、私は有意なUDP損失を見ませんでした。

アプリケーションレベルからは、〜30%の損失があります。 iperf3/ntttcp-for-Linux/netperfと同じです。

紛失はどこで起こりますか?これは、UDPが到着したIPスタックの順序が乱れているのでしょうか?この仮定をどのように確認できますか?

ありがとうございました!

答えて

2

受信バッファが小さすぎることが判明しました。

netstatは、netstat -sに "UDP: packet receive errors"と高く表示されます。

問題は、受信バッファを大きくすることによって解決される:

# sysctl -w net.core.rmem_max=33554432 
# sysctl -w net.core.rmem_default=33554432 
+1

は、上記のsysctl変更を適用した後、アプリケーションを再起動してください。 –

関連する問題