730 likes | 892 Views
第6章 TCPとUDP. 6.1. トランスポート層の役割. 4407402 丹野 雅弘. 1. トランスポート層とは. 次にどのアプリケーションにパケットを渡せばよいか識別する。 通信をする「プログラム」を指定する役割をする。 この役割を実現する手法:ポート番号という識別子. 2.1. 通信の処理(1). クライアントがサーバにサービスなどを要求 サーバーが要求を処理してサービスを提供 この際に、サ-バープログラムが 起動されている必要がある。. 2.2. 通信の処理(2). サーバープログラム ・ UNIX ・・・デーモン( Demon )
E N D
第6章 TCPとUDP 情報通信ネットワーク
6.1. トランスポート層の役割 4407402 丹野 雅弘 情報通信ネットワーク
1. トランスポート層とは • 次にどのアプリケーションにパケットを渡せばよいか識別する。 • 通信をする「プログラム」を指定する役割をする。 この役割を実現する手法:ポート番号という識別子 情報通信ネットワーク
2.1. 通信の処理(1) クライアントがサーバにサービスなどを要求 サーバーが要求を処理してサービスを提供 この際に、サ-バープログラムが 起動されている必要がある。 情報通信ネットワーク
2.2. 通信の処理(2) • サーバープログラム ・UNIX・・・デーモン(Demon) HTTPでは、httpd(HTTPデーモン) TELNETでは、telnetd(テルネットデーモン) • さらに、この代表として、inetdというスーパーデーモンも存在する。 情報通信ネットワーク
2.3. 通信の処理(3) • 要求がどのパケットに向けられたものかは宛先ポート番号で識別 ex)TCPの接続要求パケット受信 ポート番号が23番 → telnetd 80番 → httpd • TCP、UDPのトランスポートプロトコルは、受信したデータの宛先をポート番号で特定 情報通信ネットワーク
2.4. 通信の処理(4) 情報通信ネットワーク
3.1 2つのトランスポートプロトコル(1) • 代表的なトランスポートプロトコルには、 「TCP」と「UDP」が存在 TCPはTransmission Control Protocol UDPはUser DatagramProtocol の略 情報通信ネットワーク
3.2 2つのトランスポートプロトコル(2) • TCP -コネクション志向で、信頼性のある ストリーム(切れ目がないデータ構造)型 プロトコル -送信した順に相手にデータが届く だが、データの切れ目が不明 情報通信ネットワーク
3.3 2つのトランスポートプロトコル(3) • TCPでは、信頼性の提供 ・順序制御 ・再送制御 ・フロー制御(流量制御) ・ふくそう回避制御 このほかに、ネットワークの利用効率を向 上させる仕組みなど、多機能 情報通信ネットワーク
3.4 2つのトランスポートプロトコル(4) • UDP -信頼性のないデータ型プロトコル -細かい処理は上位層のアプリケーションが決定 -データの大きさは保たれるが、パケットが到達 する保障はない 再送処理が必要な場合もある 情報通信ネットワーク
3.5 2つのトランスポートプロトコル(5) • ソケットは、TCPやUDPを利用する時に使われるAPI(Application Programming Interface)の名称。 • アプリケーションはソケットを利用して、通信相手のIPアドレスやポート番号を設定したり、データの送受信の要求をする。 情報通信ネットワーク
4. TCPとUDPの使い分け • トランスポート層で信頼性のある通信を実現する必要がある場合にはTCP • 同報通信、高速性やリアルタイム性重視の通信にはUDP 情報通信ネットワーク
6.2 ポート番号 4407402 丹野 雅弘 情報通信ネットワーク
1. ポート番号とは • トランスポートプロトコルにおけるアドレス • 同一コンピュータ内で通信を行っている複数のプログラムを識別する 情報通信ネットワーク
2. ポート番号によるアプリケーションの識別 • トランスポートプロトコルは、ポート番号を使って、通信しているプログラムを識別する。 情報通信ネットワーク
3.IPアドレスとポート番号とプロトコル番号による通信の識別3.IPアドレスとポート番号とプロトコル番号による通信の識別 • 宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号、プロトコル番号の5つの数字を組み合わせて通信を識別する。 情報通信ネットワーク
4.1. ポート番号の決め方(1) • 静的な割り当て方法 アプリケーションごとに、ポート番号を固定的に割り当てる方法。 ウェルノウンポート番号は0~1023までの番号から割り当てられている。 ウェルノウンポート番号以外にも正式登録されているポート番号1024~49151がある。 情報通信ネットワーク
4.2. ポート番号の決め方(2) • 動的な割り当て方法 サービスを受ける側のアプリケーションが、自分のポート番号を決定せずに、OSに割り当てを任せる方法。 OSがアプリケーションごとに同じ値にならないように制御しながら番号を割り当てる。 ポート番号は49152~65535まで割り当てられているが、これを無視して1024以上の使われない番号が使用されていることがある。 情報通信ネットワーク
5. ポート番号とプロトコル • ポート番号は使用されるトランスポートプロトコルごとに決定。 • データがIP層に到着すると、IPヘッダ中のプロトコル番号がチェックされ、それぞれのプロトコルのモジュールに渡される。 • ウェルノウンポート番号はプロトコルに関係なく同じ番号は同じアプリケーションに割り当てられる。 情報通信ネットワーク
6.3 UDP(User Datagram Protocol) 4407402 丹野 雅弘 情報通信ネットワーク
1.UDPの目的と特徴 • 複雑な制御を行わないコネクションレス的な通信サービスを提供する。 • 通常通信では最初にコネクションを確立する(送信元から送信先に通信許可の要請および通信先から通信元への許可)が必要になるが、UDPは送りっぱなし。 • 輻輳を回避する動作は行わない。 • Userが全てを考慮して上位層のプロトコルを考えたり、アプリケーションを作成しなければいけない。 情報通信ネットワーク
2.UDPのまとめ • UDPの通信方法 ⇒ 一方的にデータを 送りっぱなしの通信 • ヘッダが8オクテッドしかない(TCPは20オクテッド) • 処理簡単 ⇒ 高速に動作する • マルチキャストやブロードキャストに利用可 情報通信ネットワーク
3.UDPの使用例 • 総パケット数が少ない通信 (DNS,SNMPなど) • 動画や音声などのマルチメディア通信 • LANなどの特定ネットワークに限定したアプリケーションの通信 • 同報性が必要な通信 (ブロードキャスト、マルチキャスト) 情報通信ネットワーク
6.4 TCP 4407036 榊原 悠 情報通信ネットワーク
TCP(Transmission Control Protocol) • 伝送、送信、通信を制御するプロトコル • データを送信するときの制御機能が充実 • IPというコネクションレス型のネットワークで高い信頼性 情報通信ネットワーク
TCPの目的と特徴 • 信頼性のある通信 • チェックサム • シーケンス番号 • 確認応答 • 再送制御 • コネクション管理 • ウインドウ制御 情報通信ネットワーク
シーケンス番号と確認応答 • 受信ホストが送信 ホストに到達した ことを知らせる • 無事に届いたとき のみ応答 A B 時間 データ1~1000 × 喪失 一定時間 データ1~1000 確認応答(次は1001~) 情報通信ネットワーク
再送タイムアウト時間の決定 • 再送せずに確認応答を待つ時間のこと。 • パケットを送信するためにラウンドリップ時間とその揺らぎを計測し順応。 • UNIXやWindowsは0.5秒単位で制御。 揺らぎが大きい場合 時間 再送タイムアウト時間 RTT 情報通信ネットワーク
コネクション管理 ホストA ホストB (クライアント) (サーバー) • TCPはコネクション 指向の通信を提供 • ヘッダの制御用の フィールドを使用 コネクション確立要求 確認応答+コネクション切断要求 確認応答 時間 コネクション切断要求 確認応答 コネクション切断要求 確認応答 確認応答 情報通信ネットワーク
セグメント単位でデータを送信 • コネクション確立時にデータ単位を決定。 • この最大データ長でデータが区切られて送信される。 情報通信ネットワーク
ウインドウ制御で速度向上 • 1セグメントではなく大きな単位で転送すると転送時間が大幅に短縮される 情報通信ネットワーク
ウインドウ制御と再送制御 • ウィンドウ制御を行わない場合、確認応答が失われるとデータは届いているにもかかわらず再送しなければならない • ウィンドウ制御を行うと、ある程度の確認応答が失われても再送する必要がなくなる 時間 データ 確認応答 1~1000 次は1001 1001~2000 次は2001 2001~3000 次は3001 3001~4000 次は4001 4001~5000 次は5001 5001~6000 次は6001 情報通信ネットワーク
高速再送制御 • 送信セグメントが失われた場合、受信ホストが今までに受信したデータの確認応答を返す。 • 一度受け取った確認応答が3回連続して受け取った場合、その確認応答が示しているデータを再送する。これを高速再送制御という。 時間 データ 確認応答 1~1000 1001~2000 次は1001 2001~3000 3001~4000 4001~5000 次は1001 3つの重複 確認応答 3つの重複応答を受け取ると再送する 次は1001 5001~6000 次は1001 6001~7000 次は1001 1001~2000 次は1001 次は7001 7001~8000 8001~9000 9001~10000 次は8001 次は9001 高速再送制御の図 情報通信ネットワーク
フロー制御(流動制御) • 受信ホストが送信ホストに対して受信可能なデータサイズ(ウィンドウサイズ)を通知するようにする。 • 受信側のバッファが溢れそうになるとウィンドウの値を小さくして送信ホストの送信量を抑制する。このような処理をフロー制御という 時間 データ 確認応答 ウィンドウ 1~1000 次は1001 3000 1001~2000 2001~3000 次は2001 2000 3001~4000 次は3001 1000 次は4001 0 ウィンドウロープを定期的に送信する バッファが満杯の状態 ウィンドウロープ 次は4001 0 4001~5000 次は4001 3000 5001~6000 ウィンドウ更新通知 ウィンドウ更新通知が途切れ、通信不能になるのを避けるためウィンドロープと呼ばれる小さなデータを送信する。 フロー制御の図 情報通信ネットワーク
ふくそう制御(ネットワークの混雑解消) • ネットワークに、通信開始時から大量のパケットを送信するとネットワークがパンクする可能性がある • その危険性をなくすため、スロースタートと呼ばれるアルゴリズムに従い送信する ふくそうウィンドウ データ 確認応答 1000 1~1000 次は1001 2000 1001~2000 2000 2001~3000 次は2001 次は3001 3000 3001~4000 4000 4001~5000 次は4001 4000 5001~6000 次は5001 4000 6001~7000 次は6001 次は7001 スロースタートの図 情報通信ネットワーク
TCPのウインドウの変化 • パケットが往復するたびに、ふくそうウィンドウが1・2・4と指数関数的に急激に大きくなってしまうのを防ぐために、スロースタート閾値を用意する ふくそうウィンドウ の大きさ タイムアウト タイムアウト ふくそう ウィンドウ 重複確認応答 半分 半分 3セグメント 時間 スロースタート閾値 指数関数的にウィンドウが増加 情報通信ネットワーク
ネットワークの利用効率を高める仕組み • Nagleアルゴリズム 送信すべきデータがあっても、そのデータが少ない場合には送信を遅らせる処理 ・全ての送信済みデータが確認応答されている場合 ・最大セグメント長(MSS)のデータを送信できる場合 以上の状態に当てはまる場合にTCPはデータを送信する 情報通信ネットワーク
ネットワークの利用効率を高める仕組み • 遅延確認応答 データを受信してもすぐに確認応答を行わないで遅らせる方法 ・2×最大セグメント長のデータを受信するまで確認応答をしない ・そうでない場合は確認応答を最大で0.5秒遅延させる 情報通信ネットワーク
ネットワークの利用効率を高める仕組み • ピギーバック 確認応答と返事のデータパケットを1つのパケットで送り、送受信するパケット数を減らすことができる アプリケーションがデータを処理して返事のデータを送信するまで確認応答が遅延されなければピギーバックは起こらない 情報通信ネットワーク
TCPを利用するアプリケーション • TCPの複雑な制御は時と場合により使い分けることが必要 • アプリケーションが細かい制御をしたほうがよい場合は、UDPを用いたほうがよい • データの転送量が比較的に多く,信頼性が必要としているが、難しいことを考えたくない場合にはTCPを用いるのがよい 情報通信ネットワーク
6.5.その他のトランスポートプロトコル 4407010 榎本健太 情報通信ネットワーク
6.5.1.UDP-Lite (Lightweight User Datagram Protocol) UDPではチェックサムエラーが発生すると、パケット全体が廃棄される • 映像や音声のデータフォーマットアプリケーションの性能を低下させてしまう。 • UDPでチェックサムを無効にすると、UDPヘッダ中のポート番号が壊れたパケットや、IPヘッダ中のIPアドレスが壊れたパケットを受信してしまう恐れがある。 情報通信ネットワーク
それらの問題を解決するため、UDP-Liteでは・・・それらの問題を解決するため、UDP-Liteでは・・・ UDP-Liteでは、チェックサムを計算する範囲をアプリケーションが決めることができる。 • パケット全体、ヘッダ、疑似ファイル、データの先頭から途中までのチェックサムを計算可能。 • エラーが発生してはいけない部分に関してのみ、チェックサムで検査することができる。 情報通信ネットワーク
6.5.2.SCTP (Stream Contorol Transmission Protocol) TCPと同様。特徴は • メッセージ単位の送受信 • マルチホーミングに対応 • 複数のストリームの通信 • メッセージの生存時間を定義できる 情報通信ネットワーク
6.5.3.DCCP (Datagram Congestion Control Protocol) • UDPと同様に、データの到達性に関する信頼性はない。 • コネクション指向で、コネクションの確立と切断処理がある。コネクションの確立と切断の処理には信頼性がある。 • ネットワークの混雑に合わせた輻輳制御を行うことができる。DCCPを利用するアプリケーションの特性により、「TCPライクな輻輳制御」と「TCPフレンドリーなレート制御」のどちらかの方法を選択できる。 • 輻輳制御を行うため、パケットを受信した側は確認応答(ACK)を返す。この確認応答を使って再送をすることも可能。 情報通信ネットワーク
6.6.UDPヘッダのフォーマット 4407010 榎本健太 情報通信ネットワーク
6.6UDPヘッダのフォーマット 16bit 16bit 送信ポート番号 SourcePort 宛先ポート番号 Destination Port UDP ヘッダ チェックサム Checksum パケット長 Length データ data 情報通信ネットワーク
送信元ポート番号(Source Port) • 16ビット長のフィールドで、ポート番号を示す。 • 指定しないことも可能(返事を必要としない通信で利用)。 情報通信ネットワーク
宛先ポート番号( Destination Port ) • 16ビット長のフィールドで、宛先のポート番号を示す。 情報通信ネットワーク