ネットワークアーキテクチャ 第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
© Copyright 2024 ExpyDoc