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)))

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 - NetB
  • GW1が自分の知っているネットワーク(NetAを含む)とそこまでの距離を NetBに放送(Broadcast)する
  • GW2 は次のネットワーク(NetB)にその情報を伝える。
    • 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 に拡張)

本日の問題

  • インターネットのバックボーンと、自律システムでは、それぞれ異なる経路制御プロトコルが使用され、それぞれ、EGP, IGP と総称される。RIP は (EGP|IGP) で使用される(距離ベクトル型|リンク状態型)の経路制御プロトコルである。