第六講ネットワークアーキテクチャ
環境情報学部 湧川隆次
2006年度秋学期 前半の授業日程(注)予定変更しました
09/26 アーキテクチャとは
10/03 インターネットアーキテクチャ
10/10 ルーティングアーキテクチャ
10/17 トランスポートプロトコル概説
10/24 トランスポートプロトコル詳説
10/31 トランスポートプロトコル詳説(続)授業内容前半まとめ
11/07 中間テスト
前半はインターネットの基本事項についてまとめ、最後にこれからのインターネットについて概説する
お知らせ
次回の講義時間中(第7講)に中間テストを実施します出題範囲第一講~第六講
問題出題数 50問(選択式)+筆記テスト時間 1時間テスト解説 30分
関連情報場所: ι11持参: 学生証、鉛筆・シャープペン (マークシート記入用)
公欠の方は早めに連絡を下記の宛先まで[email protected]
TCPと輻輳制御
TCPの輻輳制御機能
輻輳
もちょっとゆっくり送ろう。
②
送信者 受信者
受信者からしばらく応答がない輻輳が発生してパケットが届いて
なさそうだ
①
輻輳制御の重要性
輻輳は悪化していく傾向がある
輻輳発生
二次災害
玉突き事故なんらかの対処をしなければ悪化する一方
輻輳制御の難しさ(1)
エンドノードはネットワークの状態が分からない
自分で推測してネットワークに送出するだけ
IPネットワーク
パケットを多く出す?少なくする?
ネットワークは教えてくれない
? ?
輻輳制御の難しさ(2)
インターネットの状態はわかりにくい
インターネットプロトコルの特徴
様々な通信媒体の性質を抽象化上位プロトコルから通信媒体の性質が見えにくい
中継システムの簡素化中継システムの機能が少ない
ネットワークの許容量がわからない
ネットワークの混雑度がわからない
輻輳制御の難しさ(3)
インターネットは自律的インターネット全体を制御する機構がない
ユーザの振る舞いを統括的に制御できない
インターネットはモデル化しにくい
スケールが大きすぎる
構成要素が多様、構成形態が多様
インターネットは変化する
昨日のインターネットは今日のインターネットではない
利用形態が多種多様
多種多様なアプリケーション
アプリケーションによって異なるフロー特性
インタラクティブ: TELNET, SSH間欠転送: HTTP, VoIP連続転送: FTP, SCP
多種多様な通信環境・通信帯域
無線、有線
TCP輻輳制御アルゴリズムの歴史
1988頃Tahoeスロースタート、輻輳回避アルゴリズムの採用Fast Retransmitアルゴリズムの採用
1990頃Reno
Fast Recoveryアルゴリズムの採用輻輳の度合が少ない場合、転送速度を大きく落さない
1996頃NewReno
Fast Recoveryアルゴリズムの修正パケットの損失率がやや大きい場合に対するアルゴリズムの不具合の修正
TCPの輻輳制御アルゴリズム(1)
TCPの割り切りネットワークの状態はよくわからない
単純なアルゴリズムによる転送制御
パケットが損失しない
ネットワークは空いている→転送速度を上げる
パケットが損失する
ネットワークは混んでいる→転送速度を下げる
パケット損失が起きるまで転送速度を上げ続ける
通信経路の限界をパケット損失で調べる
TCPの輻輳制御アルゴリズム(2)
ウィンドウサイズを増減させ転送制御送信者の輻輳ウィンドウ
受信者のウィンドウサイズ広告
2種類の通信状態によって輻輳制御スロー・スタート
輻輳回避状態
輻輳制御を効率化Fast RetransmitアルゴリズムFast Recoveryアルゴリズム
スロー・スタート(1)
スロー・スタート
エンドノード間の回線状態はわからない
回線の許容量以下に送信量を制御する必要がある
ネットワークへの突発的なトラフィック流入を防止可能
輻輳ウインドウ(cwnd)送信者が送信可能なセグメント数を決定
送信者のTCPが管理するウィンドウ(注)受信者の管理するウィンドウとはまた別
スロー・スタート(2)
スロー・スタートのアルゴリズム
通信開始時
輻輳ウィンドウサイズを初期化
セグメントサイズは受信者から広告されるMSSMSS=MTU-IPヘッダサイズ-TCPヘッダサイズ
Ack受信時輻輳ウィンドウをAck受信毎に増加輻輳ウィンドウは幾何級数的に増加
スロー・スタート(3)
初期windowサイズは1で送信
1に対してAckを返す
送信者 受信者
windowサイズを2で送信
2に対してAckを2つ返す
windowサイズを4で送信
1,2,4,8,,,,と幾何級数的にウィンドウサイズを大きくする
輻輳回避状態
1. 徐々に輻輳ウィンドウが増加される
2. 送信者は、パケットロスを検知する
3. スロースタートを停止し輻輳回避状態に移行する
4. 輻輳回避アルゴリズムに基づいた挙動を行う
輻輳回避アルゴリズム
2種類の変数を利用輻輳ウィンドウ(cwnd)スロー・スタートの閾値(ssthresh)
輻輳回避アルゴリズム
データが損失した場合ssthresh = cwnd / 2意味:スロースタートの閾値を決定
cwnd = cwnd / 2 … (a) or cwnd = 1 … (b)意味:輻輳ウィンドウサイズを減らす
(a) 重複確認応答による損失の検出(b) 再送タイムアウトによる損失の検出
データが損失しない場合
輻輳ウインドウサイズを増やす(転送速度を上げる)
Fast Retransmitアルゴリズム
受信者のTCPが順番の違うセグメントを受信確認応答(重複ACK)を生成する必要
単に順番が入れ替わった… (a)受信者はセグメントを並び替えて上位層に渡す
パケットロスが発生した… (b)送信者は該当するセグメントを再送する必要
Fast Retransmitアルゴリズム(a)、(b)をいち早く調べる方法以下の場合、パケット損失の可能性高と判断重複ACKを3つ受信した場合
Fast Retransmitアルゴリズム
再送タイムアウトを待たずに再送
迅速な再送による転送効率の向上
12345
発信元 宛て先
インターネット
1345
2番パケットを転送 Packet loss
3が届いた時点で1番へのACK
1番へのACKが3が届いた時、4が届いた時、5が通ったときの合計3回届く
2番のパケットが届いていない!
Fast Recoveryアルゴリズム
Fast Recoveryの目的Fast Retransmitが成功すれば輻輳は軽微だったと見倣す転送速度をパケット損失検出前の50%に落す
パケット再送後の挙動
さらに重複再送パケットが到着する
さらにパケットが到着しているので、cwndを一時的に増加新しいセグメントを送出する
新しいACKが到着するcwndをssthreshにセットする(パケット損失前の1/2)スロースタートには入らず、いきなり輻輳回避段階へ
アルゴリズム別に見た輻輳ウインドウ(cwnd)サイズの変化
Tahoeによる輻輳ウインドウの変化
Reno, NewRenoによる輻輳ウインドウの変化
TCPの輻輳制御アルゴリズムのねらい
ネットワークの状態の変化に対応する
輻輳が起これば転送速度を下げる
輻輳崩壊を避ける
輻輳が起こらない限り転送速度を増加させ続ける
ネットワークが空いた時にも適応
輻輳が起きないぎりぎりの転送速度で長く通信する
ssthresh < windowsize < limit の間で長く通信する
通信経路に適したウインドウサイズで通信するとセルフクロッキングが起きる
TCPと輻輳制御機構まとめ
ネットワークの状態を動的に推測
輻輳が発生すれば転送速度を落とす
輻輳が起きないギリギリまで転送速度を上げる
できるだけ早く最適なウィンドウサイズに到達する
ウィンドウサイズが安定すると通信も安定する
LONG FAT PIPE問題
帯域は増えるが遅延は減らない
XXXbpsの専用線→「速さ」ではなく「太さ」高速で遅延の大きなネットワーク
大規模データの高速転送は難しい
広告ウインドウ制御および輻輳ウィンドウ制御がAckの遅延時間に直接影響されるため
NetworkBandwidth
(bps)RTT(ms)
BWxRTT(B)
Ethernet 100M 3 37500
T1(大陸間) 1.5M 60 11.25
T(衛星) 1.5M 500 93.75
T3(大陸間) 45M 60 337500
OC12(大陸間) 622M 60 4665000
OC192(大陸間) 9600M 60 72000000
TCPのまとめ通信の信頼性
確認応答
送信済セグメントが正常に受信されたかの確認
Acknowledgement(ACK)
再送処理
確認応答が返らない場合に該当セグメント再送
再送タイマ、再送タイムアウト値(RTO)
パケットの順番を正す
アプリケーションにデータを渡す前に、シーケンス番号を基にセグメントを並び替える
TCPのまとめ通信・ネットワーク状態に応じたデータ転送の実現
通信の高速化、フローコントロール受信者のTCPから通知されるウインドウ広告受信者の受信可能なウインドウサイズの広告
送信者は受信者の受信可能セグメント数がわかる
輻輳制御送信者のTCPが保持する輻輳ウインドウ(cwnd)データ損失などの情報を基に自律的に設定される
スロー・スタート
データが損失しない:輻輳ウィンドウサイズは指数関数的に増加
データが損失した:輻輳ウィンドウサイズを1に設定Fast Recoveryデータが損失した:輻輳ウィンドウサイズを1/2に設定
ウインドウ広告とフローコントロール(1)
もちょっとゆっくり送って。
キュー(バッファ)もちょっとゆっくり送るか。
早すぎてバッファがあふれる
①
②
③
送信者 受信者
ウインドウ広告とフローコントロール(2)
もっとはやく送って。
キュー(バッファ)じゃはやくおくるか
①
②
③
送信者 受信者
遅いから余裕があるな
輻輳ウインドウによる輻輳制御
輻輳
もうちょっとゆっくり送ろう。
②
送信者 受信者
受信者からしばらく応答がない輻輳が発生してパケットが届いて
なさそうだ
①
TCPのまとめ例外処理
パーシストタイマ送信ウインドウが0になった場合のデッドロック防止ウインドウの更新を伝えるACKが喪失するなどの例外に対応
キープアライブタイマ一定間隔で通信相手にパケットが到達できるか確認する
終了手順なしに通信相手が通信を終了した場合などに有効
予想しないシステムのダウンなどの例外に対応
2MSLタイマMSL:セグメントがネットワークに滞在できる最大時間アクティブ・クローズ時に最後のACKが損失した場合の例外に対応
捕捉パーシストタイマ
Packet loss
ACK window = 0
ACK window = 1000
Sender Receiver
1 byte Data
捕捉2MSLタイマ
コネクション要求者 コネクション提供者
FIN
ACK
ACK
FIN
アクティブクローズ
再送タイマ計測開始
2MSLタイマ計測開始 Packet loss
再送タイマタイムアウト
ACK
FIN2MSL以下
UDPUser Datagram Protocol
コネクション指向・コネクションレス指向
TCP(Transmission Control Protocol)信頼性のあるストリーム型通信
コネクション指向
Virtual Circuit
UDP(User Datagram Protocol)信頼性のないデータグラム型通信
コネクションレス指向
TCPの場合コネクション指向
TCPヘッダフォーマット
発信元ポート番号 宛先ポート番号
シーケンス番号
確認応答番号
ウインドウサイズ
緊急ポインタTCPチェックサム
オプション
データ
フラグ予約済みヘッダ長
0 15 16 31
コネクション指向の通信を実現するためには多くの情報が必要
UDPの場合コネクションレス指向
UDPヘッダフォーマット
発信元ポート番号 宛先ポート番号
UDPデータ長 UDPチェックサム
データ
0 15 16 31
コネクションレス指向の通信は容易に実現できる
UDPの特徴
コネクションレス指向
データのホスト到達性非保証
パケットのサイズを決めて一方的に送信
ネットワークの状態は気にしない
通信の信頼性は保証しない
1パケット目
3パケット目
送信者 受信者
Packet loss無視!!
123
2パケット目
13
1
UDPとTCPの比較
UDPコネクションレス指向
データのホスト到達性は非保証
ネットワーク状態を気にせずにデータを送信
1対多通信に利用可能ブロードキャスト、マルチキャスト
TCPコネクション指向
データのホスト到達性を保証(再送メカニズム)
ネットワーク状態に合わせてデータ送信量を増減させる(輻輳制御)
TCP(いい子) vs. UDP(悪い子)
InternetInternet
お父さん
お母さん
僕ADSL8M
テレビ:UDP 5Mbps
電話:UDP 64Kbps
ファイル転送:TCP 100MB
• TCPとUDPがぶつかるとTCPが減る• UDPはパケット垂れ流し
ADSLルータ
TCP(いい子) vs. UDP(悪い子)
TCP sender
UDP sender
送信量
送信量
輻輳回避のため、送信量を減少
TCP packetUDP packet
輻輳制御機構がないので、送信量はそのまま
UDPを用いたサービスの種類
パケット損失率や伝播遅延の変動が少ない安定した通信路を想定
NFS, TFTP, SNMP
即時性、実時間性重視DNS, 音声/動画ストリーミングアプリケーション
一対多通信ブロードキャスト/マルチキャストアプリケーション
トランスポート層詳説おしまい
any question?
これまでの講義の復習
インターネットアーキテクチャ
ルーティングアーキテクチャ
インターネットの階層化
インターネットの階層化
送信元から中継ノード(ルータ)を通ってあて先に到達する例
CAT5
Ethernet/10M
IP
TCP
FTP
CAT5
10M
IP
CAT5
100M/Ethernet
IP
TCP
FTP
エンドノード エンドノード中継ノード
100M
CAT5
プロトコルスタックとカプセル化
送信側各層がそれぞれ必要な情報(ヘッダ)を付加して下層へ渡す
受信側各層はヘッダの情報をもとに処理を行い、そのヘッダ部分を取り除いて上層へ渡す
データ データ
例:HTTPヘッダ
TCPヘッダ
IPヘッダ
Ethernet Frame Network Interface
TCP
アプリケーション
物理
IP
送信側 受信側
Network Interface
TCP
アプリケーション
物理
IP
信号へ
階層化の特徴
責任範囲(役割)の規定、限定各階層が独立上位のプロトコルは、自分のすぐ下のプロトコルの使い方(インターフェース)さえ知っていれば、それより下で何が起きているかをまったく気にする必要がない
階層毎に共通のインターフェイスを定義
スケーラビリティ処理を各層に分散できる
新しい技術への柔軟性同一レベルの階層同士を交換出来る
新しく技術が開発された部分だけ交換すれば進化できる
ISDN→ADSL→FTTH、IPv4→IPv6階層化していないと、、規格が変わるとシステムすべてを更新する必要がある
識別子と階層構造
IPアドレス
インターネットプロトコル上の識別子IPv4:203.178.143.71IPv6:3ffe:501:100c:d210:2a0:24ff:fe29:314dIPv4 32bit、IPv6 128bitのアドレス空間階層構造を持つアドレス体系
表記法(IPv4)通常は10進数
133.27.4.120 (10進数)
コンピュータの中では2進数
10000101 00011011 00000100 01111000 (2進数)
サブネット
IPネットワークの最小構成単位割り当てられたアドレス空間を分割ネットワークアドレスと、サブネットの大きさをあわせて記述
セグメント
サブネット分割によってできたネットワーク
サーバセグメント ユーザーセグメント 無線セグメント ファイアウォールセグメント
192.168.0.0/24 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24
192.168.0.0/22
サブネットマスク
IPアドレスのネットワーク部の長さを示すネットマスクの長さにより、そのサブネットに収容できるホスト数が変化
131.113.209.140/25 というアドレスネットワーク部が25ビット、ホスト部が7ビットこのホストが接続するサブネットは131.113.209.128/25
1 0 0 0 1 1 0 01 1 0 1 0 0 0 11 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1131 113 209 140. . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0255 255 255 128
ネットワーク部 ホスト部
サブネット内で使用可能なIPアドレス
例:131.113.209.140/25131.113.209.128 ~ 131.113.209.255 が含まれる131.113.209.128ネットワークアドレス (ホスト部が全て0)
131.113.209.255ブロードキャストアドレス (ホスト部が全て1)
ルータに1個必要エンドノードに利用可能なアドレス数はサブネットの大きさ - 3個
ホストA131.113.209.130
ホストB131.113.209.131
ホストC131.113.209.132
ルータ
131.113.209.129
サブネットマスクと接続台数
サブネットマスクによる台数の最大値サブネットマスクが短いほど、一つのネットワークにたくさんのホストを接続できる
サブネットマスク 接続台数
/22 (255.255.252.0) 1022台
/23 (255.255.254.0) 510台
/24 (255.255.255.0) 254台
/25 (255.255.255.128) 126台
/26 (255.255.255.192) 62台
/27 (255.255.255.224) 30台
/28 (255.255.255.240) 14台
/29 (255.255.255.248) 6台
/30 (255.255.255.252) 2台
IPv4 - /24の割りあて例(1)
131.113.209.0/24を4つのオフィスで利用したい
横浜支社25台
131.113.209.128/27
大阪支社10台
131.113.209.224/28
名古屋支社11台
131.113.209.192/28
東京本社85台
131.113.209.0/25
IPアドレスの階層構造の利点
ネットワークアドレスはユニーク172.16.0.0/24に属する計算機を区別するのはR1のみR2,R3は計算機A,Bをまとめて172.16.0.0/24として扱えるルータの保持するべき経路表の数が激減する!
IPv4とIPv6のアドレス空間は膨大!ノード毎の管理はありえないIPv4: 2^32 = 4,294,967,296(約43億)IPv6: 2^128
A
R1R3 R2
B
172.16.0.0/24
IPアドレスの階層構造の利点
Autonomous System経路制御ポリシを共有するネットワークの集合外部からは1つのネットワークとして見える全国規模のISPも外部から見ると1つの巨大なネットワーク
インターネットは各ASが相互に接続されたもの
IPアドレスが階層構造を持つ利点AS内の計算機をまとめてひとつのネットワークアドレスとして扱えるルータの計算資源の節約管理するべき経路表の削減によるメモリ節約
OCN4713
IIJ2497
KDDI2516
SO-NET2527
WIDE2500
インターネット
IPアドレスの階層構造の利点
ASAS
ASAS
ASAS
ドメインネームと管理構造
ドメインネームの仕組み
国や組織名をつけてどこの誰だか分かるようにした
www.sfc.keio.ac.jpで考えてみよう!
www . sfc . keio . ac . jpWW
W
サーバ
学術機関
湘南藤沢キャンパス
慶應義塾大学
日本
ドメインツリーRoot Domain
階層的な名前空間
例:www.sfc.keio.ac.jp規模性を実現
ドメインの種類TLD: Top Level DomaingTLD: generic TLDccTLD: Country Code TLDSLD: Second Level Domain
jp orguk
・
orad coac
……
…
…
ccTLD
sfc
u-tokyokeio
SLD
cnn
com
cc
wide
gTLD
www.sfc.keio.ac.jp
名前解決の流れ
rootネームサーバ
jpネームサーバ
ac.jpネームサーバ
keio.ac.jpネームサーバ
sfc.keio.ac.jpネームサーバ
ローカルネームサーバ クライアント
www.sfc.keio.ac.jpを問い合わせ
www.sfc.keio.ac.jpを問い合わせ
www.sfc.keio.ac.jpを問い合わせ
www.sfc.keio.ac.jpを問い合わせ
www.sfc.keio.ac.jpを問い合わせ
jpのネームサーバを返答
ac.jpのネームサーバを返答
keio.ac.jpのネームサーバを返答
sfc.keio.ac.jpのネームサーバを返答
www.sfc.keio.ac.jpのアドレスを返答
www.sfc.keio.ac.jpのアドレスを返答
www.sfc.keio.ac.jpを問い合わせ
ゾーンの管理と委任
sfc.keio.ac.jpゾーン
委任
管理
jpドメイン
管理
委任
ac.jpドメイン
keio.ac.jpドメイン
keio.ac.jpゾーン
管理
委任
ac.jpゾーン
管理sfc.keio.ac.jpドメイン
jpゾーン
経路制御プロトコルと階層構造
経路表とIP Forwarding
prefix Next-hop10.0.0.0/24 ルータA172.16.0.0/24 ルータC
ルータBルータA ルータC
10.0.0.0/24 172.16.0.0/24
192.168.0.0/2410.0.0.0/24 172.16.0.0/24
Default Route
経路表にない宛先へIPパケットを送信・転送する際に用いる経路
上流のルータへ向けることが多い
ホストにはdefault routeだけ設定することが多い
ルータAInternet
どの宛先へIPパケットを送信する場合もnext-hopはルータA
経路決定のルール
最長一致(Longest Match)ルール宛先IPアドレスにmatchする経路が複数ある場合、最も長いネットワークアドレスがマッチする経路を優先
Default route(0.0.0.0/0の優先順位は一番低い
1 0 0 0 1 1 0 01 1 0 1 0 0 0 11 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1
131 113 209 140宛先IPアドレス
0 0 0 0 0 0 0 01 1 0 1 0 0 0 11 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1
131 113 209 0/24経路1
24bitまで一致
1 0 0 0 1 0 0 01 1 0 1 0 0 0 11 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1
131 113 209 128/28経路2
28bitまで一致→優先
静的経路制御(Static Routing)
動的に経路が変化しない
障害発生時代替経路があっても、静的に設定された経路のみを利用
管理者による設定変更が必要Internet
障害発生
Next-hop 10.0.0.3
10.0.0.1
10.0.0.3 10.0.0.2
Next-hop 10.0.0.1
10.0.0.1の経路表(抜粋)
Prefix Next-hop
0.0.0.0/0 10.0.0.2到達性のない経路のみが存在
動的経路制御(Dynamic Routing)
経路制御プロトコル(Routing Protocol)を利用自動的に各ルータの経路表が設定される
障害発生時
障害を検知し、自動的に代替経路を選択
障害箇所を迂回するよう経路表を更新
Internet
障害発生
10.0.0.1
10.0.0.3 10.0.0.2
Next-hop 10.0.0.1
Next-hop 10.0.0.3 Next-hop10.0.0.210.0.0.1の経路表(抜粋)
Prefix Next-hop0.0.0.0/0 10.0.0.20.0.0.0/0 10.0.0.3 到達性のない
経路は消去される
代替経路が利用される
経路制御の階層化
経路制御は、大きく2階層に分かれるAS間の経路制御AS内の経路制御
AS AAS E
AS D
AS間の経路制御
AS C
AS B
AS内の経路制御
EGPとIGP
EGP(Exterior Gateway Protocol)AS間を接続するための経路制御プロトコルAS間で共通のルーティングプロトコルAS間の接続ポリシを経路制御に反映BGP4
IGP(Interior Gateway Protocol)AS内で利用する経路制御プロトコルASの管理者が任意の経路制御プロトコルを選択迅速な経路制御を実現RIP, OSPF, IS-IS …
おしまい
次回は中間テスト