•
これを繰り返す•
送信先に届いても、通常は受け取れないポート番号 になっているためにICMP Port Unreachable
を発信元 へ発信元
送信先
TTL=5
ICMP Port Unreachable
TTL=1 TTL=2
TTL=3 TTL=4
中継ルータ1
中継ルータ2
中継ルータ3
中継ルータ4
traceroute の仕組み
1 2 3 4
IP
ICMP TTL=4
IP ICMP TTL=1
Time Exceeded
IP
ICMP TTL=2
Time Exceeded
IP
ICMP TTL=3
Time Exceeded
Time Exceeded TTL=5
始点 終点
ところで、経路制御は
どうやって行うの?
経路制御のための課題
• End-to-End
の到達性を保証する•
最短経路の自動発見•
動的な対応の必要性•
障害が生じたときの迂回路の発見•
トラフィックの分散•
管理ポリシーとの調和経路制御プロトコル
•
経路情報•
隣接ルータを認識•
トポロジー情報を交換•
リンク情報を交換•
目的に応じて複数の経路制御プロトコル•
距離ベクトル型(RIP :
Routing Information Protocol)•
リンク状態型(OSPF:
Open Shortest Path First)•
パスベクトル型(BGP:
Border Gateway Protocol)IP 経路制御 (routing)
各routerが制御表に基づいて単純に判断
宛先が同一ネットワーク→直接転送
宛先が別ネットワーク→
default
ルータに転送制御表(routing table)の構造
宛先
addr
次hop
先 方向(InterFace)
宛先
addr
次hop
先 方向(InterFace)
宛先
addr
次hop
先 方向(InterFace)
宛先
addr
次hop
先 方向(InterFace)
… … …
Routing Table の利用
Router
はIP
パケットを受け取ると経路制御表を検索1. 宛先IP addrに適合するエントリ発見→データ転送
宛先とPtoP接続してる場合
2. 宛先Network addrに適合するエントリ発見→データ転送
宛先がlocalなnetworkに接続してる場合
3. defaultエントリ発見→データ転送
他のnetworkのrouterへ転送
4. 全てに該当しない場合→エラーを返す
host到達不可、network到達不可
Router
は次の順番でパケット処理経路制御表の取得
% netstat -rn Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire default 133.99.135.254 UGSc 4 6 en0
10.37.129/24 link#8 UCS 0 0 en2 10.37.129.2 127.0.0.1 UHS 0 3 lo0 10.211.55/24 link#9 UCS 0 0 en3 10.211.55.4 127.0.0.1 UHS 0 3 lo0 127 127.0.0.1 UCS 0 0 lo0 127.0.0.1 127.0.0.1 UH 18 7029 lo0 133.99.135/24 link#2 UCS 2 0 en0 133.99.135.42 127.0.0.1 UHS 0 3 lo0
133.99.135.251 0:17:f2:93:f2:6c UHLW 1 109148 en0 663
パケットの宛先
自ホストが接続しているネットワークのルータアドレス
宛先に向いている通信デバイス
現経路制御表にある経路が 失効するまでの時間(秒)
じゃぁ、通信量制御
はどうやって行うの?
TCP パケットの構造
TCPパケット
IPパケット
Ethernetパケット
本当に送りたいデータ TCPヘッダ
データ部
ポート番号
列番号
発信元 送信先
TCPパケットのデータ
IPヘッダ
TCP( 伝送制御プロトコル)
•
双方向の信頼性のある接続を実現•
パケットをシークエンス番号順に並べ替える•
データの破壊・損失重複・順序誤りがないこ とを保証•
パケットの損失・誤りの際は再送要求•
通信状況に応じて通信量を制御•
輻輳を防止する•
データがどのアプリで使われるかを知らせる•
ポート番号TCP の状態構造と動作は複雑
•
設計思想•
ネットワークにでなく端点に責任を持たせ る•
役割•
セッションの形で1
対1
通信を実現•
コネクション指向(接続確認)•
信頼性ある通信を実現•
欠損パケット再送などのエラー検出機能•
輻輳回避輻輳制御は難しい
•
輻輳は悪化していく傾向にある• IP
ネットワークには輻輳制御機能がない•
端点に高度な機能を要求←
公衆電話網と違 う•
端点はネットワークの状態が分からない•
自己責任で推測して送出せねばならない•
窓サイズを増減させて転送制御•
送信者の輻輳窓と受信者の窓広告• 2
段階の通信状態• slow
スタート、パケットロスで輻輳回避•
宛先コンピュータにパケットが到達するための 経路制御•
パケットでやり取りしてネットワーク回線を共有•
パケットは途中多くのルータを通過•
迂回路を用意して通信の信頼性に寄与•
コンピュータ同士の1
対1
の信頼性ある双方向通•
信を実現通信の輻輳回避、品質・信頼性の確保•
伝走経路でのデータ落ちの際に再送を要求•
容易なネットワーク拡張性•
端点に機能・責任を持たせるIP と TCP のまとめ
通信基盤としての TCP/IP
•
様々な機種のコンピュータを接続•
互いに独立に1
対1
双方向通信を可能• IP
アドレスで指定したマシンにパケットを配 送各種のアプリケーションプロトコルを利用
(互いに聞こえるけど、相手の話している言葉がわからないことがある)
では、ホスト間で実際にオシャベリをするには?