2012-03-04 32 views
0

私は、TCPとUDP転送にいくつかの統計情報を提供するプログラムを構築しました。クライアントは30KBのデータを含むパケットを送信し、100回連続してサーバーに送信されます。この場合、クライアントとサーバーはイーサネットで接続されます。現在私が困っているのは私の結果です.TCPはUDPよりもほぼ2倍速いです。TCPはイーサネット経由のUDPより高速ですか?

私はいくつかの研究を行ってきましたが、私はMTUなどの説明を見てきましたが、私はそれらをすべて私の心の中に結びつけることはできません。誰かが何が起こっているのか説明できますか?私の結果は理にかなっていますか?

+0

etherealやwiresharkなどのネットワークトラフィック監視ツールを使用して送信を監視し、正確に何が起こっているかを確認できます。 –

+0

UDPで接続されたソケットを使用していますか、sendtoに電話していますか?また、クライアントとサーバーは同じLAN上にありますか? – mac

答えて

1

おそらく、あなたはナーグルアルゴリズムの効果を見ているでしょう。 http://en.wikipedia.org/wiki/Nagle 's_algorithm。

TCPは短時間の間、より多くのデータを「待機」し、UDPが個々のデータグラムを送信する単一のパケットにまとめて送信します。

+0

私はこれを理解していますが、なぜイーサネット経由で接続されているのにTCPが高速になっているのですが、いったんワイヤレスに切り替えると、UDPはより高速になります。 –

+0

naggleアルゴリズムは、MTUまでのパケットを "いっぱいに"処理しますが、この場合、パケットのサイズは30Kに変更されているので、影響はありません。ワイヤレスでのパフォーマンスに関しては、TCPを遅くする反面、UDPは気にしない – mac

関連する問題