Note: The slideshow mode requires javascript.
TCP / ルーティング
Tokio Kikuchi
再送タイムアウトの決定
通信相手が近い/遠い
ネットワークが混雑/空いている
RTT (Round Trip Time) が変化
Smoothed RTT を計算
SRTT = ( ALPHA * SRTT ) + ((1-ALPHA) * RTT)
再送タイムアウトの決定 (contd)
Retransmission Timeout の求め方
RTO = min(UBOUND, max(LBOUND,(BETA*SRTT)))
ALPHA = 0.8?0.9, BETA = 1.3 ? 2.0
UBOUND ... 上限, LBOUND ... 下限
シミュレーションプログラム
Nagle アルゴリズム
送信すべきデータが溜まってから送る
但し以下の場合はすぐにデータを送信する。
全ての送信済みデータが確認応答されている場合
最大セグメント長のデータを送信できる場合
キーボードから入力した文字を順次送るとき
1文字送ったが、確認応答が来ない
相手の処理が遅れている
遅延確認応答
データを受信 -> バッファがいっぱい -> ウィンドウサイズは、バッファの残り(余裕分)
すぐに確認応答すると、ウィンドウサイズは小さくなる
上位層で処理されるのを待って確認応答すると、ウィンドウサイズが大きくなる
相手は、データをどんどん送れる
2 x 最大セグメント長のデータを受信するまで確認応答しない
確認応答を最大で 0.5 秒遅らせる
ピギーバック
豚の背(ついで)
上位層の応答パケットに確認応答フラグを付ける
ACK フラグを立てる
ルーティングプロトコル
経路制御の必要性
経路制御のアルゴリズム
RIP/OSPF/BGP
経路制御
Routing
traceroute で見てみる
パケットの道筋を決める
経路制御の必要性
隣のネットワークへの出口 (Gateway) は?
Gateway が1つなら ... default route
Gateway が2つ以上なら
IPパケットの宛先によって振り分ける
バックボーン・ネットワークでは複雑になる
Static/Dynamic
スタティック・ルーティング (Static Routing)
ルータにあらかじめ設定しておく
ダイナミック・ルーティング (Dynamic Routing)
ルーティングのための情報を交換する
経路の変更に対応できる
バックボーンのルーティング
自律システム (Autonomous System)
IGP ... 自律システム内のルーティング
Internal Gateway Protocol
EGP ... 自律システム間のルーティング
External Gateway Protocol
経路制御のアルゴリズム
距離ベクトル型 (Distance-Vector)
リンク状態型 (Link-State)
距離ベクトル型
NetA - GW1 - NetB - GW2 - NetC
GW1が自分の知っているネットワーク(NetAを含む)とそこまでの距離を NetBに放送(Broadcast)する
GW2 は次のネットワーク(NetC)にその情報を伝える。
NetB を追加
距離情報を +1
経路が複数あるときには、距離が小さいほうを選択
リンク状態型
各ルータがネットワーク全体の接続状態を理解する
全てのルータが同じ情報を持つ
経路探索アルゴリズムによって次のルータを選択
グラフ --- Dijkstra のアルゴリズム (
Wiki
)
RIP
Routing Information Protocol
ブロードキャスト(v1) or マルチキャスト(v2)
UDP port 520, 224.0.0.9 (
Assigned Numbers
)
30秒ごと
unix で管理権限があれば
tcpdump udp port 520
経路制御表
netstat -r
BGP
Border Gateway Protocol (179/tcp/udp)
RFC 1771
AS (Autonomous System)
AS number
16bit (32bit に拡張)
本日の問題
ダイナミックルーティングの経路決定アルゴリズムには _____________ 型と _____________ 型とがある。