• ベストアンサー

100Mの回線でTCPとUDPではどの程度差が出るのか?

同じ100Mの回線で、 TCPによるデータ転送時間と UDPによるデータ転送時間とでは UDPのほうが速いのでしょうが、 2倍、3倍になるほどの違いがあるのでしょうか? それとも1割増し程度なのでしょうか? もしくはほぼ変化なし程度なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Yorisin
  • ベストアンサー率54% (364/663)
回答No.2

[転送時間]を何としているのか分かりませんが、 実時間(time)と考えた場合には、 ・A点(サーバー)からB点(クライアント)のデータ到達時間(遅延)は変わりません。 ・ただしTCPでは通常コントロールのためのデータが飛び交いますので、実データ(本当に送りたいデータ)を転送する度にリクエストやACKが入り実効時間は遅くなります。  (A<=>Bの到達時間を1msとすると、UDPはA→B:データの1msですむが、TCPの多くの場合はB→A:リクエスト、A→B:データ、B→A:ACKで初めて転送完了となり少なくとも3msはかかる) スループットと考えると ・遅れるデータ全体のスループットは変わりません。  100Mbpsは、TCPでもUDPでも100Mbpsです。  (実際には98.2Mbps) ・ただし、こちらも実データ(本当に送りたいデータ)で考えると変わります。  UDPはデータのみを送りつけるのでオーバーヘッドはEhternetヘッダ、IPヘッダ、プロトコルヘッダのみです。  しかしTCPでは上以外にコントロールのためのデータが飛び交います。  また相手の返答を待ってから次の転送を行うのでどうしても待ち時間が発生します。 僕が過去に測定した結果ではTCP(FTP)で90Mbpsでる環境ならUDPでは95Mbps程度だったイメージがあります。

その他の回答 (2)

  • wakko777
  • ベストアンサー率22% (1067/4682)
回答No.3

TCPとかUDPというプロトコルの違いで速度が変わることはありません。

回答No.1

自分でプログラム組んで試してみた方が早いと思いますが。 基本的に体感できくらいの速度差はでないと思います。 まぁプロトコル的にはUDPのほうが速いんでしょうがね。 わかりやすくいえば、 TCPはデータ転送保証有り、UDPは保証無しなので、 TCPの場合、データが相手に正しく転送されたかどうかのチェックをおこないます。正しく転送されていなかったら、もう一度データを再送します。 逆に、UDPは相手に転送されたかどうかチェックを行いません。つまり、垂れ流し状態です。 なので、相手の状況を判断して転送するTCPは転送速度は遅いかと。

関連するQ&A