TCPとUDPの通信速度と 信頼性について 株式会社 エーアイネット・テクノロジ 牧田 智 2002.05.24
1 動機 新人研修第2部で会員管理システムを複数クライアント対応のマルチスレッドC/Sシステムとして作成した 1 動機 新人研修第2部で会員管理システムを複数クライアント対応のマルチスレッドC/Sシステムとして作成した クライアントからサーバへ接続要求があると、サーバはそのクライアント用のスレッドを用意する その後、クライアント/スレッド間で 会員情報などを通信する
1 動機 サーバ ソケット通信 クライアント1
2 目的 ソケット通信とTCP/IPについての調査 通信速度の観点からプロセス間通信に使用するプロトコルを考察 2 目的 ソケット通信とTCP/IPについての調査 通信速度の観点からプロセス間通信に使用するプロトコルを考察 信頼性の観点からプロセス間通信に使用するプロトコルを考察
3.1 ソケットの特徴 windows UNIX ソケット機能 Mac メインフレーム 3.1 ソケットの特徴 windows UNIX ソケット機能 Mac インフレームからwindowsやMacまでソケット機能を提供しているのでOSに依存せずにシステムの作成が可能 メインフレーム
3.2 TCP/IPの特徴 特定のベンダー独自のプロトコルではない 政府機関から民間機関まで利用している インターネット用プロトコル群 トランスポートプロトコルとしてTCPとUDPを提供している
3.3 TCPの特徴 データはシーケンシャルに受信する ユーザプロセスに対し、リライアブルな全二重のバイトストリームを提供する コネクション指向のプロトコル ほとんどのインターネットアプリケーションが利用している
3.3 TCPの特徴 ~通信方法~
3.3 TCPの特徴 ~通信方法~
3.4 UDPの特徴 データを送信順に受信することを保証しない UDPのデータグラムが意図した相手に届くかは保証されていない 3.4 UDPの特徴 データを送信順に受信することを保証しない UDPのデータグラムが意図した相手に届くかは保証されていない コネクションレスで動作するため必要なオーバーヘッドと能力はごく小さいもので済む DNSやリアルオーディオのストリーミング再生などに利用されている TCPに比べて高速である
3.4 UDPの特徴 ~通信方法~
3 ソケット通信 -まとめ- ソケットを利用してプロセス間通信をする場合にはプロトコルにTCPまたはUDPを使うのが一般的である 3 ソケット通信 -まとめ- ソケットを利用してプロセス間通信をする場合にはプロトコルにTCPまたはUDPを使うのが一般的である TCPの特徴は信頼性にある UDPの特徴は速度にある
4.1 実験の目的 TCPとUDPの実際の通信速度、及びデータの順序性とパケット欠落率について検証することを本実験の目的とする
4.2 実験の手順 データを連続して送信するプログラムとそれを受信するプログラムを作成する 4.2 実験の手順 データを連続して送信するプログラムとそれを受信するプログラムを作成する 1から10000までを順に送信し、1回目の受信から最後の受信までの時間を測定する 総受信数をカウントする シーケンシャルに受信していない部分をカウントする 測定回数はTCP・UDP共に10回ずつとする
4.2 実験手順 -実験環境- oscar 2002年5月23日午後1時より実験開始 4.2 実験手順 -実験環境- 2002年5月23日午後1時より実験開始 TCPテストを連続10回実施後、UDPテストを連続10回実施 oscarからデータを送信しoscarでデータを受信 送信用ポート:19782 oscar 受信用ポート:19781
4.3 実験の結果
4.3 実験結果 -UDPによる受信回数のばらつき-
5 考察 -実験結果のまとめ- TCPはUDPの159倍の通信時間がかかった UDPのパケット欠落率は42% 5 考察 -実験結果のまとめ- TCPはUDPの159倍の通信時間がかかった UDPのパケット欠落率は42% UDPの受信データで連続性がない箇所は2.7箇所 そのため、パケットはまとめて欠落したと考えられる
5 考察 -考察- oscarからoscarへ送信したためにパケットの衝突が大量発生したのではないか?
資料:peunut→oscar -衝突が少ない場合-
5 考察 -考察- 衝突が極端に少ない場合、TCPによる通信の方が早くなる場合がある 5 考察 -考察- 衝突が極端に少ない場合、TCPによる通信の方が早くなる場合がある しかし、日常のネット環境にはある程度のトラフィックがあり、必ずしもpeunut→oscarのような恵まれた環境であるとは言えず、oscar→oscarという実験環境はある程度、現実的であるとも言える。
5 考察 -考察- TCPは1つのパケットも欠落することなく確実に通信したい場合には便利だが、トラフィックの多い環境でパケット衝突が多発した場合、通信速度が大幅に遅くなる。 →一つのパケット欠落も許されない分野では、TCPは高いメリットを持つプロトコルである。
5 考察 -考察- UDPはアプリケーションにパケット欠落時の処理を受け渡すことで、パケットの欠落に関する自由度とTCPに勝る通信速度を持つ。 →UDPは、今後さらに発展していくと考えられる映像や音声のストリーミング配信など、ある程度のデータ欠落が問題にならない分野においては、高いメリットを持つプロトコルであると言える。