Document

ネットワークアーキテクチャ
第02回(2003/10/06)
「回線交換とパケット交換」
村井 純
2016/7/9
Network Architecture 2003f
2003年度秋学期授業日程
09/29
10/06
10/13
10/20
10/27
11/03
11/10
11/17
11/24
11/26
12/01
12/08
12/15
12/22
~
01/08
01/12
01/19
2016/7/9
(最新情報はSoI*で確認してください)
(1)
講義概要/インターネットのアーキテクチャ
(2)
パケット交換と回線交換
今日はここ
体育の日
(3)
階層モデルとIP(Internet Protocol)
(4)
識別子
文化の日
(5)
データリンク
(6)
ルーティング
勤労感謝の日の振替休日
(7)
TCP/UDP
(8)
DNS
(9)
セキュリティ
(10)
モバイル
(11)
サーバ/クライアント ・ P2P
冬休み
(12)
これからのシステム
成人の日
(13)
最終試験
Network Architecture 2003f
<-(水曜日)
<-(木曜日)
今日のお品書き
電話のアーキテクチャ(おさらい)
回線交換
パケット交換
階層化について

2016/7/9
Network Architecture 2003f
電話のアーキテクチャ(おさらい)
2016/7/9
Network Architecture 2003f
基本的な電話のアーキテクチャ
受話器を取ると交換機から電流が流れ、
電話回線が繋がる。
2016/7/9
Network Architecture 2003f
電話のネットワークアーキテクチャ
そこで、中央の交換機が電話回線を切り替えること
によってコミュニケーションを仲介する。
交換機
2016/7/9
Network Architecture 2003f
通話の手順
受話器を取ると交換機のバッテリーから電流が流れ、
通話をしようとしていることが分かる。
もしもし?
交換機のスイッチが閉じて
回線が繋がる。
発呼信号
発信音(ツー)
選択信号(電話番号)
はいはい?
呼出し音(プルルル)
呼出し信号
(ベル鳴らせ!)
応答信号
(=電流が流れる)
2016/7/9
Network Architecture 2003f
交換機
バッテリー
回線交換
2016/7/9
Network Architecture 2003f
回線交換
• 相手と直接繋がる回線を用意して通信するモデ
ル
• 特徴
– 通信が始まる前に回線が確保される
– 通信が終わるまでずっと接続したまま
• 代表的な例
– 電話
2016/7/9
交換機
Network Architecture 2003f
回線交換
• 電車みたいなもの?
–
–
–
–
経路は駅員さんが決めてくれる
道(線路)が確保されている
基本的に邪魔が入らない
1号車から順番に着く
駅
2016/7/9
1
2
3
Network Architecture 2003f
回線交換
• 利点
– 誰かに邪魔されることがない
– 常に一定の帯域幅が保証される
2016/7/9
Network Architecture 2003f
回線交換
• 欠点
– 何もしゃべっていなくても回線は占有されたまま
– 占有している回線の距離と時間に応じたコストがかか
る
2016/7/9
Network Architecture 2003f
パケット交換
2016/7/9
Network Architecture 2003f
パケット交換
• 分割したデータをリレーしながら相手まで届ける
通信モデル
• 特徴
– みんなで回線を共有する
– 順番通りに届くとは限らない
2016/7/9
Network Architecture 2003f
パケット交換
送信先
送信元
2016/7/9
Network Architecture 2003f
パケット交換
• 車みたいなもの?
–
–
–
–
2016/7/9
行き先は標識を見て決める
道はみんなのもの
同時に出発しても誰が早く着くかわからない
バイクでも走れる
Network Architecture 2003f
パケット交換
• 利点
– 回線を占有する必要がない
– 多地点間で通信できる
B
B
B
B
C
C
A
2016/7/9
C
Network Architecture 2003f
C
C
パケット交換
• 欠点
– 恒常的な品質を保つのが難しい
– ルールを守らないやつがいると困る
2016/7/9
Network Architecture 2003f
階層化について
階層化の概念
OSI7層モデル

2016/7/9
Network Architecture 2003f
計算機の通信アーキテクチャを考える
登場人物1
ハードウェア
登場人物は3人
•ハードウェア
•OS
•アプリケーション
登場人物3
アプリケーション
WEBブラウザ
LANカード
メーラー
登場人物2
OS
ケーブル
デバイスドライバ
システムコール
ネットワークゲーム
2016/7/9
Network Architecture 2003f
役割分担:階層モデル(言語伝達)
発話者
聞き手
伝えたい情報
情報を獲得
思考から言葉
への変換
言葉・音
言葉・音
空気
2016/7/9
Network Architecture 2003f
役割分担:階層モデル(デジタル情報の伝
達)
発信者
受信者
伝えたい情報
情報を獲得
思考から言葉
への変換
デジタル情報
として入力
文字・信号
ネットワーク
2016/7/9
Network Architecture 2003f
階層化とその意義
• 責任範囲の限定
• 各階層が独立
– 各階層は 自分の階層の
仕事のみに責任を持つ
– 自分の上下の階層とのみ
やりとりを行う
– 共通のインターフェイス
– 同一レベルの階層同士を
交換出来る
• 例: 電車と駅の階層化
湘南台
湘南台駅
上りホーム
新宿駅
西口改札
改札の中
小田急
小田急 山手線
ホーム のホーム
線路
線路
2016/7/9
三田
改札の中
西口改札
改札の中
田町駅
Network Architecture 2003f
山手線
山手線
のホーム
線路
OSI7層モデル
アプリケーション層
アプリケーション層
プレゼンテーション層
プレゼンテーション層
セッション層
セッション層
トランスポート層
トランスポート層
ネットワーク層
ネットワーク層
ネットワーク層
データリンク層
データリンク層
データリンク層
物理層
エンドノード
2016/7/9
物理層
中継ノード
Network Architecture 2003f
物理層
エンドノード
OSIモデルとインターネットアーキテクチャ
アプリケーション
プレゼンテーション
アプリケーション
セッション
TCP
トランスポート
2016/7/9
UDP
ネットワーク
IP
データリンク
Network Interface
物理
物理
Network Architecture 2003f
インターネットの階層化
送信元から中継ノード(ルータ)を通ってあて先に
到達する例
FTP
FTP
TCP
TCP
IP
IP
Ethernet/10M
CAT5
エンドノード
2016/7/9
10M
IP
100M
CAT5 CAT5
中継ノード
Network Architecture 2003f
100M/Ethernet
CAT5
エンドノード
プロトコルスタックとカプセル化
ビルからビルの間で荷物を送るとき、上の階から各階で順番にラッピングをする
受け取った荷物は、ラッピングを順番にほどいていく
包装紙をかける
リボンを付ける
宛先をつける
宛先
2016/7/9
宛先
Network Architecture 2003f
プロトコルの階層化
ping
HTTP,MAIL
TCP
nfs,Domain
UDP
IP
ICMP
ARP
transport
layer
IGMP
network
layer
RARP
hardware
interface
media
2016/7/9
application
layer
Network Architecture 2003f
data link
layer
データリンク層
2016/7/9
Network Architecture 2003f
前回の糸電話の例を思い出してみよう
複数の友達同士が糸電話を使って
コミュニケーションをとる例を考えてみよう!
Q1.
Q2.
複数人でどうやって一本の糸をシェアする?
(それぞれの顔が見えないとして)
皆が平等にコミュニケーションを取るためには
どんなルールが必要?
→実はこれはデータリンク層におけるアーキテクチャの
設計そのもの
それぞれの登場人物の特性や制約を考えてやる必要が
ある。
2016/7/9
Network Architecture 2003f
複数人で一斉に喋り出した場合
2016/7/9
Network Architecture 2003f
複数人で一斉に喋り出した場合
線が皆の声で埋まってしまって分からない
→モデルを捉え直す必要がある
おーい
2016/7/9
おーい
Network Architecture 2003f
おーい
喋る口と聞く耳を分けて考える
口で喋って、耳で検知。
でも、一斉に喋った場合はどうする?
→ルール(アルゴリズム)が必要!
ふむ
ふむ
2016/7/9
ふむ
ふむ
Network Architecture 2003f
おーい
ルールその1
それぞれに喋ってよい時間を割り当てる
→トークンリング方式
ふむ
ふむ
2016/7/9
おーい ふむ
ふむ
おーいふむ
ふむ
Network Architecture 2003f
おーい
ルールその2
一斉に喋ったら、口をつぐむ
ふむ
ふむ
2016/7/9
おーい ふむ
ふむ
おーいふむ
ふむ
Network Architecture 2003f
おーい
CSMA/CD
(Carrier Sense Multiple Access/Collision Detection)
• 搬送波感知多重アクセス/衝突検出方式
A
B
Cはケーブルの通信状況を監視し
(Carrier Sense)
ケーブルが空くと通信を開始する
2016/7/9
C
Network Architecture 2003f
パケット
CSMA/CD(cont.)
(Carrier Sense Multiple Access/Collision Detection)
• 搬送波感知多重アクセス/衝突検出方式
A
AとCが同時に通信するとデータが
衝突するので(Collision Detection)
両者が送信を中止し、ランダムな時
C
間を待って送信する
2016/7/9
Network Architecture 2003f
B
この方法により複数の
ノードが1本のケーブル
を共有できる(Multiple
Access)
CSMA/CD
[Collision Domain]
Aがデータを送信
A
B
A
AのデータがBに届く前に
B
Bがデータを送信
A
A
2016/7/9
Bが衝突を検知
Aが衝突を検知
Network Architecture 2003f
B
B
ネットワーク層
2016/7/9
Network Architecture 2003f
ネットワーク層(IP)の役割
• アドレス付け
– 世界中にコンピュータに一意な識別子をふる
• ルーティング
– 宛先アドレスに従ってデータを配送
• あとは、アウトソーシング
– 流れてきたデータを、他のソフトウェアに渡す
– 他のソフトウェアから渡されたデータを、通信媒体特
有の技術を使って配送
2016/7/9
Network Architecture 2003f
アドレス付け
• IPアドレス
– 133.27.4.121 など
– 世界中で一意な識別子
– 各コンピュータは一つ以上のIPアドレスを持つ
216.239.57.99
www.google.com
133.27.4.121
Ns0.sfc.keio.ac.jp
203.178.142.130
133.27.10.11
203.178.138.99
www.soi.wide.ad.jp
2016/7/9
133.27.100.100
Network Architecture 2003f
ルーティング
• バケツリレーでデータを配送
– データの中継装置 = ルータ
– 宛先のIPアドレスを見て、誰に渡すかを判断
216.239.57.99に届けて
こっちだ
あっちだ
216.239.57.99
www.google.com
あっちだ
2016/7/9
ここだ
Network Architecture 2003f
アウトソーシング
複雑なことは他の技術に任せよう
認証
信頼性
帯域保証
インターネット
アドレス付け
ADSL
2016/7/9
ルーティング
送りかたは各リンクの
技術を使おう
Ethernet
各伝送媒体の技術
Network Architecture 2003f
電話線
トランスポート層
2016/7/9
Network Architecture 2003f
トランスポート層の役割
1. 通信のend pointを一意に定義する
2. 通信の性質を決める
•
フローの形成
①通信するホストのIPアドレス
(ネットワーク層によって提供)
②トランスポートプロトコル
③ポート番号
2016/7/9
Network Architecture 2003f
通信の性質を決める : 手紙とFAXの例
• FAX
• 手紙
– 送った順番には届かない
– 送信者の動作は単純
– 必ず送った順番に届く
– 送信者の動作は少し複雑
• 相手を指定
• FAX同士が準備する(初期
化)
• データを転送
• 終了処理
• あて先を明記
• ポストに投函
– 中継者の動作は単純
• 順番を考えずに転送
• 受け取ったら次に渡す
– 中継者の動作は大変
– 受信者の動作は少し複雑
通信中通信路を確保
受け取った手紙を順番に
• データグラムという
2016/7/9
– 受信者の動作は複雑
• 送信者と協調して動作
• バーチャルサーキットとい
う
Network Architecture 2003f
バーチャルサーキット
2016/7/9
Network Architecture 2003f
データグラム
2016/7/9
Network Architecture 2003f
コネクション指向・コネクションレス指向
• トランスポート層の大きな役割のひとつ
• 通信の性質を決める
• トランスポート層ではUDP/TCPとして提供される
– UDP(User Datagram Protocol)
• 信頼性のないデータグラム型通信
• CL (Connectionless)
– TCP(Transmission Control Protocol)
• 信頼性のあるストリーム型通信
• CO (Connection Oriented)
• Virtual Circuit
2016/7/9
Network Architecture 2003f
ポート番号
• 1つのホスト中で個別の通信を識別する。
• フローは、(ホストAのIPアドレス、ポート番号)と(ホ
ストBのIPアドレス、ポート番号)の組み合わせで
識別される
• サービス毎の識別子
– 16bit(65536)
– トランスポートプロトコル独立
– Wellknownポート(1~1023番)
• ftp
• dns
21番
53番
telnet 23番
http
80番
– /etc/services
2016/7/9
Network Architecture 2003f
フローの形成(FTPによる接続の例)
クライアント
サーバ
クライアントのポート64381番
からサーバのポート21番まで
のフローが形成される
アプリケーションFTP Client
TCP
Port 64381
IP
133.27.61.175
ネットワーク
物理
2016/7/9
FTP Server
Port 21
アプリケーション
TCP
203.178.143.233
IP
ネットワーク
物理
Network Architecture 2003f
UDP
2016/7/9
Network Architecture 2003f
UDP
• User Datagram Protocol
• 非コネクション指向
• データグラム型通信
• 要は、、、、、
– パケットのサイズを決めて一方的に相手に送りつける
– 相手が受け取れているかはおかまいなし
2016/7/9
Network Architecture 2003f
UDPデータフローの特徴
• 到達パケットの完全性
– UDPチェックサム検証
• ホスト到達性非保証
• ポート到達不可検知
– ICMP Port Unreachable
2016/7/9
Network Architecture 2003f
UDPヘッダフォーマット
0
15 16
31
発信元ポート番号
宛先ポート番号
UDPデータ長
UDPチェックサム
データ
2016/7/9
Network Architecture 2003f
UDPを用いたサービスの種類
• パケット損失率や伝播遅延の変動が少ない安定
した通信路を想定
– NFS, TFTP, SNMP
• 即時性、実時間性重視
– DNS, 音声/動画ストリーミングアプリケーション
• 一対多通信
– ブロードキャスト/マルチキャストアプリケーション
2016/7/9
Network Architecture 2003f
RTP
• Real-time Transport Protocol
• UDPデータグラムのペイロードに対する情報付加
– シーケンス番号
– タイムスタンプ
– ペイロードタイプ ,etc.
• RTP/UDPを用いるアプリケーション
– VoIP
– DVTS
2016/7/9
Network Architecture 2003f
TCP
2016/7/9
Network Architecture 2003f
TCP
• コネクション指向
• ストリーム型通信
• 特徴
– 信頼性を提供する
• 到達するパケットの完全性を保証
• データの逐次性&到達性保証
2016/7/9
Network Architecture 2003f
TCPの仕組み(コネクションの確立方法)
• 3 way handshake
– SYN: コネクションを初期化する
– ACK: 確認応答
コネクション要求者
アクティブオープン
コネクション提供者
SYN
パッシブオープン
SYN + ACK
ACK
コネクション
確立
2016/7/9
Network Architecture 2003f
TCPの仕組み(再転送)
パケット送信者
パケット受信者
1パケット目送信
3
2
1
1パケット目届いた
2パケット目送信
あれ?
返事がない
しょうがない
もう1回送ろう
Packet loss
1
2パケット目送信
2パケット目届いた
3パケット目送信
3パケット目届いた
2016/7/9
1
Network Architecture 2003f
2
1
3
2
1
再転送タイマー
• 転送実行毎にタイマー起動
– RTTを平滑化した値に基づく
• 低遅延ネットワーク ⇒ 短いタイマー
• 高遅延ネットワーク ⇒ 長いタイマー
– タイマー再起動
• 指数Back-off
• 最大値64sec
2016/7/9
Network Architecture 2003f
TCPの仕組み(コネクションの終了~通常時)
コネクション要求者
コネクション提供者
アクティブクローズ
FIN
ACK
パッシブクローズ
FIN
FIN + ACK
終了
2016/7/9
Network Architecture 2003f
TCPの仕組み(コネクションの終了~ハーフクロー
ズ)
コネクション要求者
コネクション提供者
アクティブクローズ
FIN
FIN + ACK
残データ
残データのACK
ハーフクローズ
状態
パッシブクローズ
FIN
FIN + ACK
2016/7/9
Network Architecture 2003f
MSL
• 最大セグメント寿命
– 寿命: IPデータグラムのTTL
– 30秒、1分、2分(実装依存)
• 2MSL待ち状態
– アクティブクローズしたホストによる、最後のFIN+ACK
セグメントの到達性は非保証
– パッシブクローズしようとするホストが、FINセグメント
を再転送する機会を作る。
2016/7/9
Network Architecture 2003f
TCPの仕組み(コネクションの終了~RESET)
• RSTセグメント
– 存在しないポートへのコネクション要求
• リセットセグメントを受信
*) UDPのICMP Port Unreachable
– 中断リリース
• リセットセグメントを送信
2016/7/9
Network Architecture 2003f
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
2016/7/9
Close
SYN_SENT
FIN/ACK
Close/FIN
CLOSING
FIN+ACK/ACK
FIN/ACK
Active close
CLOSE_WAIT
ACK
TIME_WAIT
Network Architecture 2003f
LAST_ACK
Passive close
ACK
TCPヘッダフォーマット
15 16
0
発信元ポート番号
31
宛先ポート番号
シーケンス番号
確認応答番号
ヘッダ長
予約済み
フラグ
TCPチェックサム
緊急ポインタ
オプション
データ
2016/7/9
ウィンドウサイズ
Network Architecture 2003f
TCPの役割
• フローコントロール
– 相手のバッファ要領にあわせたフロー制御
– 通信の高速化
• コンジェスチョンコントロール
– 途中経路でのパケットの損失に対処
• フローの識別
– セキュリティーフィルター
– パケットの優先順位を最適化
2016/7/9
Network Architecture 2003f
フローコントロール
②
もちょっとゆっくり
送って。
受信者
送信者
もちょっとゆっくり
③ 送るか。
①
キュー(バッファ)
早すぎてバッファがあふれる
2016/7/9
Network Architecture 2003f
フローコントロール
②
もっとはやく
送って。
受信者
送信者
③
じゃはやくおくるか
①
キュー(バッファ)
遅いから余裕があるな
2016/7/9
Network Architecture 2003f
コンジェスチョンコントロール
②
もちょっとゆっくり
送ろう。
送信者
受信者
輻輳
①
2016/7/9
受信者からしばらく応答がない
輻輳(コンジェスチョン)が発生して
パケットがとどいてなさそうだ
Network Architecture 2003f
フローの識別
• トラフィックの特性
– インタラクティブ
• telnet , rlogin, ssh
– 間欠転送
• http, VoIP
– 連続転送
• ftp, scp
• TCPデータフロー
• SYNで開始して、FINで終了するデータ集合
2016/7/9
Network Architecture 2003f
フローの応用例 : セキュリティ・フィルター
• パケットの転送を制限
– hostAはhost Bからのパケットのみを受け取る
• permit hostB to hostA
• deny all to hostA
– hostAはsshのパケットのみを受け取る
• permit all to hostB port=22
• deny all to hostB
2016/7/9
Network Architecture 2003f
フローの応用例 : パケット転送時の応用
• 例1: http
– 送信するデータは少ない(要求のみ)
– 受信するデータは多い(テキスト、画像など)
– 行きの経路は低帯域でも良い
– 帰りの経路は広帯域が望ましい
2016/7/9
Network Architecture 2003f
フローの応用例 : パケット転送時の応用
• 例2: インターネット電話
– データ量は送受信とも同程度
– 遅延が小さい方が良い
– 高速でパケットを転送する
– 途中経路において論理パスを設定する
2016/7/9
Network Architecture 2003f
フローの応用例:QoS: Quality of Service
• 中継ノードでサービスが識別できると便利
– 始点・終点のIPAddress, Port番号
– サービス(とその特徴)
• MPLS Cut through
• QoS Routing
• レイヤ・バイオレーション
2016/7/9
Network Architecture 2003f