第六講 ネットワークアーキテクチャ - WIDE Project · 2006-10-31 · お知らせ...

Post on 02-Jun-2020

2 views 0 download

transcript

第六講ネットワークアーキテクチャ

環境情報学部 湧川隆次

2006年度秋学期 前半の授業日程(注)予定変更しました

09/26 アーキテクチャとは

10/03 インターネットアーキテクチャ

10/10 ルーティングアーキテクチャ

10/17 トランスポートプロトコル概説

10/24 トランスポートプロトコル詳説

10/31 トランスポートプロトコル詳説(続)授業内容前半まとめ

11/07 中間テスト

前半はインターネットの基本事項についてまとめ、最後にこれからのインターネットについて概説する

お知らせ

次回の講義時間中(第7講)に中間テストを実施します出題範囲第一講~第六講

問題出題数 50問(選択式)+筆記テスト時間 1時間テスト解説 30分

関連情報場所: ι11持参: 学生証、鉛筆・シャープペン (マークシート記入用)

公欠の方は早めに連絡を下記の宛先までnetarch06@sfc.wide.ad.jp

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 …

おしまい

次回は中間テスト