UDPクライアントが100Mbitサーバーに1Gbitで送信するのはなぜですか?

UDPクライアントが100Mbitサーバーに1Gbitで送信するのはなぜですか?

Linuxユーザースペースで作成した単純なUDPクライアント/サーバーアプリケーションでは、UDPクライアント(1Gbitイーサネットインターフェース)が100MbitイーサネットインターフェースUDPサーバーにのみ1Gbitのデータを送信していることがわかりました。もちろん、これはサーバー側で多くのパケット損失を引き起こします。

クライアント側で、次の手順を実行してNIC設定を調整する必要がありました。

ethtool -s eth0 スピード 100 デュアル完全自動調整オン

なぜ私はこれをするべきですか?自動的に処理してはいけませんか?

ベストアンサー1

UDPプロトコルこれは「実行後に忘れてしまう」送信方法なので、パケットが送信された後に何が起こっても構いません。これは、宛先への経路の特性にかかわらず、ソースシステムの送信速度で送信できることを意味する。ソースインターフェイスがネットワークが処理できるよりも速くパケットを送信すると、明らかにパケット損失が発生します。

これを自動的に処理する必要がある場合は、TCPまたはSCTPに切り替える必要があります。あるいは、UDPの上に独自のエラー処理プロトコルを構築することもできます。

特定の場合、宛先に到達するために100 Mbits / sを使用できる場合は、すべてのトラフィックを100 Mbits / sインターフェイス速度に制限するよりも、クライアントでトラフィック調整を使用する方がよいでしょう。

おすすめ記事