• ベストアンサー

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

  • UDPの転送レートupについての手法について

    H261のファイル転送で、TCPとUDPの速度比較を行っていますが、UDPの転送レートがTCPの半分(10BASE-Tの環境でTCPはほぼ10Mbps、UDPは5Mbps)しかでません。 この原因について心当りのある方があれば教えて下さい。

  • TCPとTCP/IPの違いについて

    グローバルIPをもつサーバ同士のネットワークプロトコルの選択 を迫られております。 そこで質問があります。 TCP/IPでデータ転送を行う場合と TCPだけでデータ転送を行う場合の違いを教えてください。 よろしくお願い致します。

  • UDPについて

    こんばんは。 UDPについてうまく理解できず困っております。 お分かりになる方がいらっしゃいましたら、教えて下さい。 わからないのはUDPでのクライアント-サーバ間での通信方法です。 例えばこちらからあるコマンドを投げたとして、向こうから結果が返ってくるとします。 UDPなのでこちらからはじゃんじゃん投げます。 サーバからもじゃんじゃん返ってきます。 でも投げるコマンドによって処理時間が違うので 返ってくるデータの順番がバラバラになってしまう可能性があると思うのです。 TCPだとコネクションはって1対1というイメージがあるのですが、 UDPはやりたい放題(?)というイメージがあります。 順番がバラバラになってしまうのはもうどうしようもないことなのでしょうか? それともプログラミングのテクニック(?)で解消できるものなのでしょうか? 1コマンド1Threadにして管理すれば良いのでしょうか? (こうすると、このコマンドに対しての結果はこれって識別できますよね???) 一人ではどうにも前に進めないので、ご指導宜しくお願いします。 意味不明な部分は補足させていただきます。

  • UDPポートの開放について

    1ヶ月程前まではTCP・UDP共に開放出来ていたのですが 最近TCP・UDPポート開放必須のネットゲームをやろうと思い 新たにポート開放の設定をし、プレイしてみようとしたところ UDPポートが開いていないようなのです。 TCPポートに関しては確認サイトで開放確認出来ました。 以前から開放していたUDPポートも使えないようになっていました。 環境は以下の通りです。 ルータ:Aterm WR7805S 回線:フレッツ光プレミアム OS:WindowsXP SP3 フレッツ光なのでCTU設定画面から静的アドレス変換設定で TCPポートと同じように払い出しIPアドレスや接続先を設定するのですがUDPポートは色んな番号を試してみてもどれも駄目でした。 IPアドレスの固定は以前はしていなくても問題無く開放出来ていました。 念のため今回固定してみましたがやはりUDPポートは開放出来ませんでした。 同じ設定でTCPポートは開放出来るのにUDPポートが開放出来ないのは何が原因なのでしょうか?  ここ暫く回線機器や通信環境に変化はありません。 文章が拙く情報が足りない部分等あるかと思いますが 何か思い当たる解決策やアドバイス等あれば教えていただけると助かります。 よろしくお願いします。

  • 回線速度とTCPスループットについて

    質問を読んでいただきありがとうございます。 インターネット回線の速度について質問です。 TCPでは送信ホストは相手から通知されたウインドウを超える量のデータを送信することはできないためウインドウサイズとRTT(ラウンドトリップタイム)が決まれば最大のスループットが決まると言われてます。 ウインドウズサイズ x 8/ RTT時間(秒) = 最大スループット 一般的に考えてウインドウサイズを64Kbytesとした場合、100mbpsを出すにはRTT5m秒以内でなければならない計算になります。 64Kbytes x 8 / 0.005 = 102,400,000mbps (RTTが5m秒の場合) 64Kbytes x 8 / 0.006 = 85,333,333mbps (RTTが6m秒の場合) ということはRTTが5m秒以内のホストと通信をしない場合は100mbpsの回線でも1Gbpsの回線でも理論上はTCPの限界速度は同じということでしょうか?それともRTT5m秒以上でも1Gbpsのほうがスピードが出る要因がありますでしょうか? 長々とすいませんが、よろしくお願いします。

  • UDPデータ通信中の認識方法

    はじめまして。 表題の件について教えて下さい。 機器Aと機器BでUDPデータの通信をしている場合(機器Bのファイルを機器Aに転送しているとか)に受信側の機器Aはデータを受信している最中であるとどうやって認識しているのでしょうか? TCPだと最初にコネクションを確立して最後にコネクションを切断するのでデータ受信開始、受信中、受信完了はコネクション情報で確認できると思うのですが、UDPではコネクション確立がないのでTCPでのデータ受信開始、受信中、受信完了をどうやって識別しようか迷っています。 UDPでデータを受信している最中にLANケーブルを抜かれたらエラーとしたいのです。 その為に受信中であることを知りたいのですが。。。。

  • テキストをTCPで転送する場合のSIPのSDPの記述

    SIPを用いた通信で、テキストをTCPで転送する場合のSIPのSDPの記述方法について質問いたします。 RFC4566では、メディアストリームをSDPで、 m=<media> <port> <proto> <fmt> ... で定義し、<media>に"text"を指定できるように記述してあるので、テキストの転送も前提にしているようですが、 トランスポートプロトコルを記述する<proto>には、"udp","RTP/AVP","RTP/SAVP" 等のUDPベースしかなく、パケットロスしては困るテキスト等を転送するためのTCPを指定する方法が見当たりません。 また、コーデックを指定するための、「a=rtpmap」というRTPを前提とした定義になっていますが、TCPを想定していないように見えます。 もしテキスト等をTCPで転送する場合、指定する方法はないのでしょうか。

  • 回線高速化とUDPプロトコル

    うちは、ルータを使って2台のPCがネットにつながっています。そのうちの1台はハイスペックPCなのですが、無線LANでつながっておりなかなかスピードが出ません。(IEEE802.11b=ルータAP、IEEE802.11g=このPC) もう1台は比較的ロースペックPCなのですが、有線のためADSL本来のスピードを維持しています。 僕がよくネットゲームをするのですが、その有線PCでプレイするとロースペックのためスワップが発生し、処理落ちでラグくなります。ちなみに、このPCのスペックがすでにいっぱいいっぱいなので、とりあえず、このPCのスペックアップをしろというのは置いておいてください。一方、無線のほうはスワップはないのですが、なぜか通信スピードが約1/3にまで、下がってしまいます。 TCPプロトコルのレジストリ(MTU,RWIN)をいじると高速化を図れるとあり、いじった結果、約1/2までは高速化しました。しかし、ネットゲームの場合UDPプロトコルを使うので、ここでラグが発生してしまいます。 TCPはできるとわかったのですが、レジストリによるUDPの高速化はできないのでしょうか? OSは WindowsXP HomeEdition SP2 です。 ADSLの速度は有線で、約↓1.3Mbps、約↑312Kbps(なぜか、広告よりも約2.5倍早いです) 無線で、約↓500Kbps、約↑312Kbpsです。 無線LANに対する障害はないと思います。

  • UDP通信の信頼性

    ファイアーウォールを介した通信で、データ量の大きいファイル(回線を30分程度使用する)をやりとりします。その際に別端末からUDPパケットを1パケット飛ばした場合にそのパケットが破棄される可能性はどの程度ありますでしょうか?

  • 回線の伝送速度

    ソフトウェア開発技術者 平成15年度 春 問1 設問4 (b) 64kbpsの回線2本の場合と128kbpsの回線に変更した場合の違いを述べよという問題で 4kBのデータに関しての転送時間が64kbpsの回線2本の場合と、64kpbsの回線 1本の場合と変化がないという前提で解説があるのですが、どいういう意味なので しょうか? 私の考えでは 64kbps2本の場合 (4kB/2*8ビット)/64kbps =0.25秒 128kbps1本の場合 (4kB*8ビット)/128kbps =0.25秒 となり、転送時間が両者とも同じになってると感じてしまいます。 どなたか分かる方、回答お願いします。