第12章 Reliable Stream Transport Service (TCP) IPに対して実質的に新たな機能が 付加される. TCP 大量のデータを送る – 誤り検出・回復 • プログラマの仕事となると大変である. – 必要な専門知識を持ったプログラマは少ない. – 汎用のものを用意しよう. • 一般的な,一様なインターフェースを提供 TCP 応用プログラムとのインターフェース stream 志向 – オクテット(バイト)のストリーム virtual circuit 接続 – 双方で連絡を取り合い,コネクションを確立する. – 接続を authorize – 通信中に事故が起これば,双方に通知し,それぞれ の応用プログラムに知らせる. – 仮想的な通信路 TCP Buffered transfer – 応用プログラムは好きな大きさの単位で読み書きでき る. – 通信プロトコル・ソフトは通信に最適な大きさの単位で 転送をすればよい. – 「push」…バッファが一杯にならないでも送る.相手方 にも引渡しをする. Unstructured stream – 「データ列を区切る」というサービスをしない. – 応用プログラムj同士が事前に取り決めておく必要が ある. TCP Full Duplex 全二重接続 – 双方向同時通信 – 制御情報も送ることができる. 高信頼 (紛失・二重配送を防ぐ) – 低信頼の手段で,どのようにして高信頼を確 保するか? 「肯定応答と再送による」 肯定応答 時間 再送 パケット紛失と多重受信 多重受信 – 輻輳で起きることがある. • 転送途中で再送が起きる. – ACKもダブルかもしれない. • どれの返事かわからなくなる. 一連番号をつけて調べる. ACKにもその番号を送り返す. Sliding window Sliding window 単純なACK 通信時間を無駄に待つ. 先行送信 window方式 window size = 1 … ウィンドウなしと同じ window size を大きくするとネットワークの idle time を減らせる. – 定常状態でネットワークの能力いっぱいまで 能率 windowの大きさとネットワークの能 力による. Sliding window どのような問題を解決するか? TCP The Transmission Control Protocol 通信規約 (programは一応用例) 何を提供するか – format,通信手順,受け取り手の識別 – 障害からの回復(紛失,多重受信) – 開始と終了の手順 何を提供しないか – 応用プログラムとのインターフェース 下層の通信システムをあまり選ばない TCP ポート,コネクション,Endpoint Port – UDPとTCPはプロトコルが異なるので混同し ない. – 同じサービスには同じ番号 connection (endpoint, endpoint) endpoint (IPaddress, port) コネクションの確立をはじめに行う. – Passive Open と Active Open TCP port Multiplex/demultiplex connection brahms.net.is.uec.ac.jp (130.153.66.130, 1069) isl.stanford.edu (36.60.0.10, 1184) roo.cc.uec.ac.jp (130.153.27.161, 25) (130.153.27.161, 53) m-unix.cc.u-tokyo.ac.jp (130.69.241.99, 1184) セグメント セグメント 転送の単位 sliding window の目的 – 効率 – 流量制御 – octet レベルでの sliding window – 送受側双方で4つのwindow • 一方向で送受各1 • 双方向でそれぞれに. 流量制御 end-to-end の流量制御 – 中間のマシン(ルータ)でのあふれは ICMP 可変長window size window advertisement – acknowledge octet のほかにあとどのくらい 受け取れるかを知らせる. – Window size を変更 – 0 にすると送信停止 (バッファが足りない!) 再送アルゴリズムと congestion control – TCPの実装次第で • 輻輳を強めたり弱めたりする. TCPセグメントの format – Seq# 送出ストリームのoctet番号 – Ack# 次に受信したいoctet番号 • 便乗(piggyback) TCPセグメントの format – code bit – window – checksum advertize (便乗) psuedo header を含める. Out of Band Data – 割り込み,中断信号 ^C, ^\, ^Z – Urgent ptr … Urg data の終わり位置 – stream に入れない. – normal mode urgent mode 最大セグメント長 option を用いて受信したい最大長を通知 計算機の規模,MTUに合わせる. – 過小だと効率が悪い. • TCP+IP hdr 40 octet – 過大だと, • fragmentation, 紛失,再送 最適値はなかなか難しい. 確認応答と再送 – ACK: 次に待つ octet stream sequence番号 cumulative scheme – はじめからの連続受信領域のみを知らせる. – 利点 • ACKが簡単に生成でき,あいまいさがない. • 紛失ACKの再送が不要 – 短所 • 成功した受信をすべて知らせるわけではないので 効率が悪い.
© Copyright 2024 ExpyDoc