TCP(続き)/ルーティング
by
菊地時夫
—
last modified
2009-07-09 11:18
TCP 続き/ルーティング
再送タイムアウトの決定
- 通信相手が近い/遠い
- ネットワークが混雑/空いている
- RTT (Round Trip Time) が変化
- Smoothed RTT を計算
- SRTT = ( ALPHA * SRTT ) + ((1-ALPHA) * RTT)
- 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 秒遅らせる
ピギーバック
- 豚の背(ついで)
- 上位層の応答パケットに確認応答フラグを付ける
ルーティングプロトコル
- 経路制御の必要性
- 経路制御のアルゴリズム
- RIP/OSPF/BGP
経路制御
- Routing
- traceroute で見てみる
- パケットの道筋を決める
経路制御の必要性
- 隣のネットワークへの出口 (Gateway) は?
- Gateway が1つなら ... default route
- Gateway が2つ以上なら
- バックボーン・ネットワークでは複雑になる
Static/Dynamic
- スタティック・ルーティング (Static Routing)
- ダイナミック・ルーティング (Dynamic Routing)
- ルーティングのための情報を交換する
- 経路の変更に対応できる
バックボーンのルーティング
- 自律システム (Autonomous System)
- IGP ... 自律システム内のルーティング
- Internal Gateway Protocol
- EGP ... 自律システム間のルーティング
- External Gateway Protocol
経路制御のアルゴリズム
- 距離ベクトル型 (Distance-Vector)
- リンク状態型 (Link-State)
距離ベクトル型
- NetA - GW1 - NetB - GW2 - NetB
- GW1が自分の知っているネットワーク(NetAを含む)とそこまでの距離を NetBに放送(Broadcast)する
- GW2 は次のネットワーク(NetB)にその情報を伝える。
- 経路が複数あるときには、距離が小さいほうを選択
リンク状態型
- 各ルータがネットワーク全体の接続状態を理解する
- 全てのルータが同じ情報を持つ
- 経路探索アルゴリズムによって次のルータを選択
- グラフ --- Dijkstra のアルゴリズム (Wiki )
RIP
- Routing Information Protocol
- ブロードキャスト(v1) or マルチキャスト(v2)
- UDP port 520, 224.0.0.9 (Assigned Numbers)
- 30秒ごと
- unix で管理権限があれば
- tcpdump udp port 520
- 経路制御表
BGP
本日の問題
- インターネットのバックボーンと、自律システムでは、それぞれ異なる経路制御プロトコルが使用され、それぞれ、EGP, IGP と総称される。RIP は (EGP|IGP) で使用される(距離ベクトル型|リンク状態型)の経路制御プロトコルである。