TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 プロセス ポート ftp 1100 SMTP HTTP TCP/UDP 1230 1300 ftp 20 SMTP 23 HTTP 80 port IP Host A Host B SMTP : Simple Mail Transfer Protocol POP : Post Office Protocol 1 ポート番号 発信元ポートと宛先ポートの二つのアプ リケーションのエンド・エンドで通信を するのがトランスポート層 このポートの先にマルチタスクOSのプロ セスが対応し,そのプロセス種別をイン ターネットサービスアプリケーションと して16ビットの数値で標準化して示す ポート番号23なら「TELNET」,20・21な ら「FTP」,25なら「SMTP」,79なら 「FINGER」,80なら「HTTP」 など 2 UDPの特徴 プロセス間通信のためのプロトコル 実際は何も仕事をしない 信頼性を保証しない コネクションレス 人が感覚で補える音声や画像通信に利用される 利点 TCPに比べて処理時間が小 欠点 メッセージの損失、重複、順序誤りが起こりうる 3 TCPの特徴 コネクションの開設 論理リンクを通した通信 信頼性ある通信 順序番号、チェックサム、応答確認 データの流量制御 ウィンドウコントロール 4 TCPフォーマット 5 コネクションの開設 エンドポイントの組でコネクションを開設 (Host A, Port X): (Host B, Port P) Host A process Port X Host C Host B TCPコネクション process process process Port P Port Y Port Z IP ネットワーク Connection 6 コネクション開設 任意の初期値 仮にSeq=10 任意の初期値 仮にSeq=100 Node2に期待された Seq=11を表示 かつNode1から2に 次は101番の期待を 示す Ackは,次にNode1 からは11番を期待 することを示す FlagフィールドにSynやSyn+Ackを表示これでNode1と2 の特定ポート間にTCPコネクションができる 7 信頼性の保証 順序番号(sequence number):順序管理 チェックサム(checksum):データの破損を検知 応答確認(Ack:Acknowledgement):損失データの再送 Sender send packet 1 send packet 2 send packet 3 通信エラー時 正常時 Receiver send ACK for packet 1 send ACK for packet 2 send ACK for packet 3 Sender send packet 1 resend packet 1 Receiver loss time out send ACK for packet 1 8 TCPのシーケンス番号管理 前ページの続きで,Dは送っているデータ量(バイト数)を示す. Seq(シーケンス番号)は送ったバイト数分進められる Ackにより相手から期待する次のデータの開始バイト番号(Seq)を 示す 9 ウィンドウ制御 ひとつずつAckを返していると効率がよく ないため,いくつかまとめて送り,まと めて確認する. 確認無しにまとめて送れるデータ量(こ れをウィンドウサイズと呼ぶ)は,相手 (受信側)の受信バッファの大きさに依 存するため,受信側が発信側にウィンド ウサイズを通知しておく 10 データの流量(フロー)制御 Ackの応答によりバッファから送出する データ量(ウィンドウサイズ)を調整 混雑(輻輳)に応じたエンド・エンドでの流量制御 送出済み 確認はまだ 時間が長くなる、オーバーフローすると、 ウィンドサイズを小さくする、 うまく行けば大きくなる Window(size=6) 1 2 3 4 5 6 7 8 9 10 11… send パケット3の受信確認 to be sent ここまで送出 未使用 利用可能 パケット9まで送出可能 1 2 3 4 5 6 7 8 9 10 11... 11 コネクションの開放 上位アプリケーションからコネクションを開放する要求が着たら,TCP層 で残っている送るべきデータが全て送れたらFINを送る 相手も同様に全てデータを送信処理したらFINを送る 12 輻輳制御 TCPは端末同士でネットワークの状況を推察して混 雑を避けるように転送速度(ウィンドウサイズ)を 調整 Slow start 順番にウィンドウサイズを1,2,4,8,と増やし ていく 輻輳検知 パケットロスなどで輻輳を検知するとそのときのウィ ンドウサイズの半分の値(A)を記憶してからウィンド ウを1に戻し,ふたたびslow startのフェーズに入る Aに達したら,線形に1ずつウィンドウを増やしてい く 13 輻輳制御 TCPは端末同士でネットワークの状況を推察して混雑を 避けるように転送速度(ウィンドウサイズ)を調整 50 Windows Size (packets) 45 Segment Loss Occurs Congestion Avoidance Phase 40 35 30 25 20 15 10 5 0 Slow Start Phase 1600 1800 2000 Time (msec) 2200 2400 輻輳検知時のウィンドウの半分の値=A 14
© Copyright 2024 ExpyDoc