第8回講義資料

ネットワークアーキテクチャ
第8回(2004/11/29)
トランスポート層のアーキテクチャ
慶應義塾大学 環境情報学部
村井純
2004年度秋学期
復習:インターネットのアーキテクチャ
„
識別子の定義と割当 (Addressing)
„
„
通信の相手を特定
階層的な定義域毎で一意性を保証
„
„
e.g. MACアドレス、IPアドレス、ポート番号
それぞれのレベル(ドメイン)で責任を担保
„
„
インターネットの洗練された抽象化
経路選択によるパケットの転送 (Routing)
„
パケットの宛先に届くように経路選択
„
„
„
宛先に到達するための経路にあたるネットワークがどれかを
決定
経路表 (routing table)
該当経路にあるネットワーク(next hop)へ転送
(forwarding)
1
IPの基本
„
„
„
バケツリレー方式
中継ノードは自分宛てパケットでなければ次へ(TTL-1)
判断はネットワーク層で行う
„
通信終了
転送はリンク層(ARPによる対応)
TTL -1
TTL -1
TTL -1
通信開始
中継ノード3
中継ノード1
送信先
中継ノード2
発信元
経路制御の概念
„
「終点・次ホップ・インターフェース」の組
„
„
終点:ネットワークアドレス
次ホップ:IPアドレス
Routing Table Lookup
Dst NH I/F
A B B N1
C B N1
D B N1
N1
Routing Table Lookup
Dst NH I/F
A A N1
C C N2
D D N3
B
AからDへの通信
C
N2
D
N3
2
トランスポート層の
アーキテクチャ
トランスポート層の役割
2.
通信のend pointを一意に定義する
通信の性質を決める
„
フローの形成
1.
①通信するホストのIPアドレス
(ネットワーク層によって提供)
②トランスポートプロトコル
③ポート番号
3
通信の性質を決める : 手紙とFAXの例
„
手紙
„
„
送った順番には届か
ない
送信者の動作は単純
„
„
„
„
„
„
„
„
順番を考えずに転送
受け取ったら次に渡す
„
„
相手を指定
FAX同士が準備する
(初期化)
データを転送
終了処理
中継者の動作は大変
通信中通信路を確保
受信者の動作は少し
複雑
データグラムという
必ず送った順番に届く
送信者の動作は少し
複雑
„
あて先を明記
ポストに投函
„
受信者の動作は複雑
„
受け取った手紙を順番に
„
FAX
中継者の動作は単純
„
„
„
„
送信者と協調して動作
バーチャルサーキット
という
バーチャルサーキット
4
データグラム
コネクション指向・コネクションレス
„
„
„
トランスポート層の大きな役割のひとつ
通信の性質を決める
トランスポート層ではUDP/TCPとして提供される
„
UDP(User Datagram Protocol)
„
„
„
信頼性のないデータグラム型通信
CL (Connectionless)
TCP(Transmission Control Protocol)
„
„
„
信頼性のあるストリーム型通信
CO (Connection Oriented)
Virtual Circuit
5
ポート番号
„
„
„
1つのホスト中で個別の通信を識別する。
フローは、(ホストAのIPアドレス、ポート番号)と
(ホストBのIPアドレス、ポート番号)の組み合わせ
で識別される
サービス毎の識別子
„
„
„
16bit(65536)
トランスポートプロトコル独立
Wellknownポート(1∼1023番)
„
„
„
ftp
dns
21番 telnet 23番
53番 http
80番
/etc/services
フローの形成(HTTPによる接続の例)
クライアント
サーバ
クライアントのポート64381番
からサーバのポート80番まで
のフローが形成される
アプリケーションHTTP
Client
TCP
Port 64381
IP
133.27.61.175
ネットワーク
物理
HTTP Server
Port 80
203.178.143.233
アプリケーション
TCP
IP
ネットワーク
物理
6
UDP
„
User Datagram Protocol
コネクションレス
データグラム型通信
„
要は、、、、、
„
„
„
„
パケットのサイズを決めて一方的に相手に送
りつける
相手が受け取れているかはおかまいなし
UDPデータフローの特徴
„
到達パケットの完全性
„
„
„
UDPチェックサム検証
ホスト到達性非保証
ポート到達不可検知
„
ICMP Port Unreachable
7
UDPヘッダフォーマット
0
15 16
31
発信元ポート番号
宛先ポート番号
UDPデータ長
UDPチェックサム
データ
UDPを用いたサービスの種類
„
パケット損失率や伝播遅延の変動が少な
い安定した通信路を想定
„
„
即時性、実時間性重視
„
„
NFS, TFTP, SNMP
DNS, 音声/動画ストリーミングアプリケーショ
ン
一対多通信
„
ブロードキャスト/マルチキャストアプリケー
ション
8
RTP
„
„
Real-time Transport Protocol
UDPデータグラムのペイロードに対する情
報付加
„
„
„
„
シーケンス番号
タイムスタンプ
ペイロードタイプ ,etc.
RTP/UDPを用いるアプリケーション
„
„
VoIP
DVTS
TCP
„
„
„
コネクション指向
ストリーム型通信
特徴
„
信頼性を提供する
„
„
到達するパケットの完全性を保証
データの逐次性&到達性保証
9
TCPの仕組み(コネクションの確立方法)
„
3 way handshake
„
„
SYN: コネクションを初期化する
ACK: 確認応答
コネクション要求者
アクティブオープン
コネクション提供者
SYN
パッシブオープン
SYN + ACK
ACK
コネクション
確立
TCPの仕組み(再転送)
パケット送信者
3
2
1
パケット受信者
1パケット目送信
1パケット目届いた
2パケット目送信
あれ?
返事がない
しょうがない
もう1回送ろう
1
Packet loss
1
2パケット目送信
2パケット目届いた
3パケット目送信
3パケット目届いた
2
1
3
2
1
10
再転送タイマー
„
転送実行毎にタイマー起動
„
RTTを平滑化した値に基づく
„
„
„
低遅延ネットワーク ⇒ 短いタイマー
高遅延ネットワーク ⇒ 長いタイマー
タイマー再起動
„
„
指数Back-off
最大値64sec
TCPの仕組み(状態遷移)
CLOSED
Passive open
Close
Active open/SYN
LISTEN
SYN/SYN+ACK
SYN
SYN_RCVD
ACK
Close/FIN
ACK/ACK+SYN
ESTABLISHED
FIN/ACK
Close/FIN
FIN_WAIT_1
ACK
FIN_WAIT_2
Close
SYN_SENT
FIN/ACK
Close/FIN
CLOSING
FIN+ACK/ACK
FIN/ACK
CLOSE_WAIT
ACK
LAST_ACK
ACK
Passive close
TIME_WAIT
Active close
11
LONG FAT PIPE問題
„
帯域は増えるが遅延は減らない
„
„
„
XXXbpsの専用線→「速さ」ではなく「太さ」
高速で遅延の大きなネットワーク
大規模データの高速転送は難しい
„
Advertised Window ControlおよびCongestion Window Controlが
Ackの遅延時間に直接影響されるため
Network
Bandwidth
(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
いい子、悪い子共存モデル
お父さん
テレビ:UDP 5Mbps
• TCPとUDPがぶつかると
TCPが減る
• UDPはパケット垂れ流し
お母さん
電話:UDP 64Kbps
僕
ADSL
ルータ
ADSL8M
ファイル転送:TCP 100MB
Internet
Internet
12