680 likes | 746 Views
6章まとめ. 4406011 岩瀬彰宏. 6.1 トランスポート層の役割. トランスポート層とは・・・. 次にどのアプリケーションにパケットを渡せばよいか識別する 通信をする「プログラム」を指定する役割 この役割を実現する手法 - ポート番号 という識別子. 宛先の判断. 通信の処理(1). クライアントがサーバにサービスなどを要求 サーバーが要求を処理してサービスを提供 この際に、サ-バープログラムが起動されて いる必要がある. 通信の処理(2). サーバープログラム ・ UNIX ・・・デーモン( Demon )
E N D
6章まとめ 4406011 岩瀬彰宏
トランスポート層とは・・・ • 次にどのアプリケーションにパケットを渡せばよいか識別する • 通信をする「プログラム」を指定する役割 この役割を実現する手法 -ポート番号という識別子
通信の処理(1) クライアントがサーバにサービスなどを要求 サーバーが要求を処理してサービスを提供 この際に、サ-バープログラムが起動されて いる必要がある
通信の処理(2) • サーバープログラム ・UNIX・・・デーモン(Demon) HTTPでは、httpd(HTTPデーモン) TELNETでは、telnetd(テルネットデーモン) • さらに、この代表として、inetdというスーパーデーモンも存在
通信の処理(3) • 要求がどのパケットに向けられたものかは宛先ポート番号で識別 ex)TCPの接続要求パケット受信 ポート番号が23番 telnetd 80番 httpd • TCP、UDPのトランスポートプロトコルは、受信したデータの宛先をポート番号で特定
TCPとUDP(1) • 代表的なトランスポートプロトコルには、 「TCP」と「UDP」が存在 TCPはTransmission Control Protocol UDPはUser DatagramProtocol の略
TCPとUDP(2) • TCP -コネクション志向で、信頼性のある ストリーム(切れ目がないデータ構造)型 プロトコル -送信した順に相手にデータが届く だが、データの切れ目が不明
TCPとUDP(3) • TCPでは、信頼性の提供 ・順序制御 ・再送制御 ・フロー制御(流量制御) ・ふくそう回避制御 このほかに、ネットワークの利用効率を向 上させる仕組みなど、多機能
TCPとUDP(4) • UDP -信頼性のないデータ型プロトコル -細かい処理は上位層のアプリケーションが決定 -データの大きさは保たれるが、パケットが到達 する保障はない 再送処理が必要な場合もある
ソケット(1) • TCPやUDPを利用する時に使われるAPI(Application Programming Interface)の名称。 • アプリケーションはソケットを利用して、通信相手のIPアドレスやポート番号を設定したり、データの送受信の要求をする。
TCPとUDPの使い分け • トランスポート層で信頼性のある通信を実現する必要がある場合にはTCP • 同報通信、高速性やリアルタイム性重視の通信にはUDP
ポート番号とは • トランスポートプロトコルにおけるアドレス • 同一コンピュータ内で通信を行っている複数のプログラムを識別する
ポート番号によるアプリケーションの識別 • トランスポートプロトコルは、ポート番号を使って、通信しているプログラムを識別する ホストA 172.23.12.14 宛先172.23.12.14 データ & IP
IPアドレスとポート番号とプロトコル番号による通信の識別IPアドレスとポート番号とプロトコル番号による通信の識別 • 宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号、プロトコル番号の5つの数字を組み合わせて通信を識別
ポート番号の決め方 • 静的な割り当て方法 アプリケーションごとに、ポート番号を固定的に割り当てる方法。(ウェルノウンポート番号) • 動的な割り当て方法 サービスを受ける側のアプリケーションが、自分のポート番号を決定せずに、OSが割り当てる方法。
ポート番号とプロトコル • ポート番号は使用されるトランスポートプロトコルごとに決定。 ex)TCPとUDPで同じポート番号を使用可能 • データがIP層に到着すると、IPヘッダ中のプロトコル番号がチェックされ、それぞれのプロトコルのルーチンに渡される。 • ウェルノウンポート番号はプロトコルに関係なく同じ番号は同じアプリケーションに割り当てられる。
6.3.1 UDPの目的と特徴 • ネットワークが混雑していたとしても、送信量を制御しない。 • パケットが失われても、再送制御はしない。 • これらの制御が必要なら、UDPを利用するアプリケーションプログラムが制御しなければならない。
UDPの用途 • 総パケット数が少ない通信 • 動画や音声などのマルチメディア通信 • LANなどの特定のネットワークに限定したアプリケーションの通信 • 同報性が必要な通信(ブロードキャスト、マルチキャスト)
TCPの目的と特徴 • 伝送、送信、通信を制御するプロトコル。 • 送信時の制御機能が充実。 • IPというコネクションレス型のネットワーク上で高い信頼性。
シーケンス番号と確認応答 • 受信ホストが送信ホストに到達したことを知らせる。 • 無事に届いたときのみ応答。 A B 時間 データ1~1000 × 喪失 一定時間 データ1~1000 確認応答(次は1001~)
再送タイムアウト時間の決定 • 再送せずに確認応答を待つ時間のこと。 • パケットを送信するためにラウンドリップ時間とその揺らぎを計測し順応。 • UNIXやWindowsは0.5秒単位で制御。 揺らぎが大きい場合 時間 再送タイムアウト時間 RTT
コネクション管理 • TCPはコネクション指向の通信を提供。 • ヘッダの制御用のフィールドを使用。
セグメント単位でデータを送信 • コネクション確立時にデータ単位を決定。 • この最大データ長でデータが区切られて送信される。
ウィンドウ制御で速度向上 • 1セグメントではなく大きな単位で。
6.4.8-11TCP(TRANSMISSION CONTROL PRITICOL)6.4.8-11TCP(TRANSMISSION CONTROL PRITICOL)
6.4.8 フロー制御(流動制御) 時間 • 受信ホストが送信ホストに対して受信可能なデータサイズ(ウィンドウサイズ)を通知するようにする。 • 受信側のバッファが溢れそうになるとウィンドウの値を小さくして送信ホストの送信量を抑制する。このような処理をフロー制御という。 データ 確認応答 ウィンドウ 1~1000 次は1001 3000 1001~2000 2001~3000 次は2001 2000 3001~4000 次は3001 1000 次は4001 0 ウィンドウロープを定期的に送信する バッファが満杯の状態 ウィンドウロープ 次は4001 0 4001~5000 次は4001 3000 5001~6000 ウィンドウ更新通知 ウィンドウ更新通知が途切れ、通信不能になるのを避けるためウィンドロープと呼ばれる小さなデータを送信する。 フロー制御の図
6.4.9 ふくそう制御(ネットワークの混雑解消) ふくそうウィンドウ *ネットワークに、通信開始時から大量のパケットを送信するとネットワークがパンクする可能性がある データ 確認応答 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セグメント 時間 スロースタート閾値 指数関数的にウィンドウが増加
6.4.10 ネットワークの利用効率を高める仕組み(1)6.4.10 ネットワークの利用効率を高める仕組み(1) • Nagleアルゴリズム 送信すべきデータがあっても、そのデータが少ない場合には送信を遅らせる処理 ・全ての送信済みデータが確認応答されている場合 ・最大セグメント長(MSS)のデータを送信できる場合 以上の状態に当てはまる場合にTCPはデータを送信する
6.4.10 ネットワークの利用効率を高める仕組み(2)6.4.10 ネットワークの利用効率を高める仕組み(2) • 遅延確認応答 データを受信してもすぐに確認応答を行わないで遅らせる方法 ・2×最大セグメント長のデータを受信するまで確認応答をしない ・そうでない場合は確認応答を最大で0.5秒遅延させる
6.4.10 ネットワークの利用効率を高める仕組み(3)6.4.10 ネットワークの利用効率を高める仕組み(3) • ピギーバック 確認応答と返事のデータパケットを1つのパケットで送り、送受信するパケット数を減らすことができる アプリケーションがデータを処理して返事のデータを送信するまで確認応答が遅延されなければピギーバックは起こらない
6.4.11 TCPを利用するアプリケーション ・ TCPの複雑な制御は時と場合により使い分けることが必要 ・ アプリケーションが細かい制御をしたほうがよい場合は、UDPを用いたほうがよい ・ データの転送量が比較的に多く,信頼性が必要としているが、難しいことを考えたくない場合にはTCPを用いるのがよい
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.6UDPヘッダのフォーマット 16bit 16bit 送信ポート番号 SourcePort 宛先ポート番号 Destination Port UDP ヘッダ チェックサム Checksum パケット長 Length データ data
送信元ポート番号(SOURCE PORT) • 16ビット長のフィールドで、ポート番号を示す。 • 指定しないことも可能(返事を必要としない通信で利用)。
宛先ポート番号( DESTINATION PORT ) • 16ビット長のフィールドで、宛先のポート番号を示す。
パケット長( LENGTH ) • UDPヘッダの長さとデータの長さの和が格納される。 • 単位はオクテット長。
チェックサム • UDPのヘッダとデータに信頼性を提供するためのもの。