データリンク層

ネットワーク構成運用論

 MAC (Media Access Control)アドレス
 フレーム単位での通信（フレームヘッダ、データ）
 物理媒体上で結ばれた端末どうしの通信 同期のための制御

2004/06/07
芸術情報設計学科
藤村 直美

MACアドレス 誤り検出や訂正を行う
 フロー制御

ユニキャストノードを識別するための名前
IEEEが業者毎に指定して決定 世界中で唯一無二 6バイト

１ビット目はユニキャスト／マルチキャスト
２ビット目はユニバーサル／ローカル
ユニバーサルはIEEEが割り当て、ローカルは勝手に割り当て

放送アドレスでは全てのビットが１

http://www.wakasato.org/learn/nepc/course1/chapter03/section01.html

マルチキャスト

http://www.wakasato.org/learn/nepc/course1/chapter03/section01.html

ブロードキャスト

http://www.wakasato.org/learn/nepc/course1/chapter03/section01.html

1

ネットワーク情報の例

ネットワーク層
 端末のアドレス付け （ＩＰアドレス）
 経路制御

発信者から受信者までの中継点

 輻輳制御ネットワークの資源管理

 上位層からのPDUの分割と再組み立て

経路制御の必要性

経路情報の設定 異なるネットワーク間で通信する（ルータ） スタティックルーティング ネットワークの構成変更に対応



 方式



スタティックルーティング
ルータ毎に人手で設定
 ダイナミックルーティング
自動的に経路情報を相互に交換
相手までの経路が固定的な場合
他のネットワークへの経路がひとつ

 ダイナミックルーティング

ルータ同士で情報を交換
動的に経路を変更できる

ルータの役割

デフォールトゲートウェイ

 二つの異なるネットワーク間の通信を中継 同じネットワークなら簡単（ARPコマンド） ルータを経由して通信するためには

 同じネットワークでない場合自身と外部のネットワークを識別し、それぞれに対応してパケットを転送できる 中継用のルータを知っていて外部ネットワークあてのパケットを正しく送れる パケットを受け取るルータが正しく中継できる

ルータ経由でデータを転送 普通はネットワークの接続口は一つ
 中継をしているゲートウェイは複数の口

 外部に不要な通信を出さない

2

経路情報の設定と更新

経路のコスト 固定的経路制御

 宛先までのノード数（物理的距離）

人が定義した経路制御表にしたがう
 組織内ではよく使われる ICMP再転送メッセージによる学習


固定的経路制御に加えて、ICMP再転送メッセージで学習する

 RIP (Routing Information Protocol)

単純な距離ベクトル型

 遅延（時間的距離）
 帯域
 平均通信量 通信料金 待ち行列の長さ

経路制御のアルゴリズム

距離ベクトル型

 距離ベクトル型

 蓄積交換型

相手までのホップ数など
 私の知っていることはあなたが知っていることに基づいている 使いやすいが、大規模ネットワークには向かない？
 リンク状態型

 新しいノードやリンクができたという情報は速やかに伝わる
 何処かが切れたという情報は伝わり難い
 ピンポン現象が発生（例で説明）

ネットワークの構造を保持する
相互に経路情報を交換
 経路に重み付け 各ノードは隣接ノードとの距離情報を他の全てのノードに放送

リンク状態型

ＡＳ(Autonomous System）

 自分と隣接ノードとの距離情報を配布 インターネットの中の一つの自立したネットワー

 スパニングツリー

ク運用組織
 ＡＳ番号
 AS内はＩＧＰ（Interior Gateway Protocol）
AS間はＥＧＰ（Exterior Gateway Protocol）

 最小全域木

IGP

EGP
IGP

3

経路制御の方式

RIP

 IGB (Interior Gateway Protocol)

 中継するルータの数を距離と考える

RIP (Routing Information Protocol)
 RIP2
 OSPF (Open Shortest Path First)
 EGP (Exterior Gateway Protocol)
BGP (Border Gateway Protocol)

RIP(2)

 一回中継されるとホップ数が一つ増加
 ＲＩＰはホップ数が最大１５（越えると通信不能）
 30秒毎に経路情報を送出
 64Kbpsでは回線がパンクする事態もRIPの動作 （宛先IPアドレス、距離）の組の情報

RBRA

 要求と回答パケットをUDPで送受信
α サブネット情報がない

α０

直接

 RIP2ではサブネットマスクも追加

β０

直接γγ

１ＲＢ

 無限ループの検出（黒板で説明）

スプリットホライズン
 ポイズンリバース

６０秒後
δ２

直接γ０

直接０

直接δ０

直接

α１

ＲＡ

β１

ＲＢ

δ

１ＲＣ
α２

ＲＢ

β０

ＲＢ無限カウント

 スプリットホライズン

受信した情報を受け取ったインタフェースには送信しない処理のこと
 ポイズンリバース
 あるルータが駄目としたルートの情報を受け取った隣のルータが、「このルートは駄目を了解」という返事をすること

δ

３０秒後



無限ループの検出

RC

γ

β

ＲＡＲＢ

ＲＣαβγ



αβγ

０
１２

直接ＲＢ
ＲＢ

αβγ

１０
１ＲＡ直接ＲＣαβγ

２１０ＲＢ
ＲＢ
直接4

OSPF (Open Shortest Path First)
 一つの組織内のネットワークで使う

ＲＢとＲＣの間が切れると
αβγ０１２

直接ＲＢ
ＲＢ

αβγ１０４ＲＡ
直接ＲＢ

αβγ

１０３

ＲＡ
直接ＲＡ

αβγ

１０５

 ネットワークを領域に分割

領域内のルータ同士
他の領域のルータ同士
 組織外のルータとのやりとり


ＲＡ
直接ＲＡ

 ホップ数制限はない

OSPF

OSPF

 各ルータがネットワーク全体の構成を把握

 IPのタイプに応じて別々の経路を選択可能

 ルータ間の通信速度を経路制御に反映

 メトリック値で経路に重み付け どの経路を通ると一番コストが少ないか コストとは、100Mbps／回線速度あるいはRTT (Round Trip Time) 最小コスト経路を算出して、経路制御表を構成

OSPFの経路作成手順



複数の経路がある時に、複数の経路を使って負荷バランスを取れる

 サブネット情報を含む


CIDRに対応している

OSPFの例

 隣接ルータを見つける リンク状態情報データベースを作る 最小コストを計算する
 経路表を作成する

Ｃ

Ａ
２１Ｅ

３Ｂ

２Ｄ
４

送信元 A BCDE

宛先

B A C D B D B C E D

コスト

3 3 2 4 2 1 4 1 2 25

BGP （Border Gateway Protocol）

ルータＢの経路表
ＣＡ
２Ｂ

 距離ベクトル型の経路制御を想定

Ｅ

１３２Ｄ

４

 組織のネットワーク同士をつなぐ
 ＡＳ間の標準的なルーティングプロトコル なるべく少ないＡＳを経由する経路を選択

宛先
AC
DE

 隣接BGPルータはTCPで情報交換

次のルータ
ACCC

 行きの経路はこちらの思惑どおりだが、帰りは相手の方針

BGP

BGPの経路作成手順

 AS間で使用 (iBGP、 eBGP)

 ２台のBGP対応ルータ間でBGPピアを確立

 ASの運営ポリシイを反映可能

 BGPピアで経路情報を交換して、BGPテーブル

学術研究機関と企業
 国際回線を直接借りているプロバイダだけ ルータの経由数は問わない ASパスが最も短い経路を選択して表を作成


BGPの例を作成
 BGPテーブルから最適経路を選択して、経路表を作成
 他のBGP対応ルータに最適経路を伝える

輻輳制御
 ネットワーク自体は正常に動作しているが、

Ｂ
Ａ

（３）

Ｃ

（２）
Ｄ

Ｅ

パケットが過剰に発生し、混雑、処理能力の低下を期待している状態を輻輳 解決方法 事前にバッファを確保 パケット廃棄（インターネットの通常の対応）
 ネットワークに入ってくるパケットを抑制
 フロー制御による回避

Ｅ→ＡへはＤを経由

6

トランスポート層TCP

 発信元と宛先の間の転送の制御

 もとはARPANETのトランスポート層手順
 信頼性の低い（ベストエフォート型）ネットワーク

誤り制御
 フロー制御 トランスポート層の手順


TCP (Transmission Control Protocol)
UDP (User Diagram Protocol)

 接続方式CO (Connection Oriented)
CL (Connectionless)

TCPの通信手順


で、高信頼性の転送を行うための手順(CO) でバーチャルサーキット(VC)型の手順
 単純肯定応答方式とタイムアウト方式
 セグメントは可変長で、分解と組み立てを行う
 接続型

仕事内容
 コネクション管理 エラーの検出と訂正
 フロー制御 パケットの順序制御

セグメント形式
手順
 接続開始 全二重通信 接続終了 ポート番号（発信元、宛先）
 セグメント番号（順番号）

送信データのバイト単位の順番号を振る
 受け取り確認応答

接続手順
 ヘッダ長、ACK、PSH、RST、SYN、FIN
 ウインドウの大きさ
 誤り検出のための値（ヘッダ部に情報を追加して１６ビットで集計し、１の補数）
 様々な選択（データ部の最大長、ウインドウサイズ他）

相手のポート番号を指定し、接続要求(SYNをON、ACKをOFF）
 A←B SYNセグメントで受け取りの返事(SYNをON、ACKをON）
 A→B 返事に受け取りの確認(SYNをOFF、ACKをON）
 A→B

7

終了手順

タイマー問題

接続終了要求をFINセグメントで送信(FINをON）
 A←B 順番号を+1して返事を戻す(ACKをON)＋(FINをON、ACKをON）
 A→B 受け取り確認を送信(ACKをON）

 セグメントの受信確認がないとセグメントの再送

フロー制御

ポート番号

 キー入力とファイル転送

 １６ビットで内容の種類を示す

 ウインドウ方式では受信確認が届く前に送り

 例

 A→B

続ける(スライディングウインドウ） バッファのサイズをネゴシエーションする
 速度制御のフロー制御手法


送信側と受信側が送信速度を交渉
Network Block Transfer (NETBLT) は大量デー
タの転送手順 キープアライブを行う
 決定までの待ち時間は往復の遅延時間を参考に決定する
 タイミングが悪いと輻輳するか、転送性能が低下する

Telnetは２３
FTPは２１(制御）、２０（データ転送）
 SMTPは２５
 HTTPは８０ 0〜1023はWell-known PortでIANAが決定(the Internet Assigned Numbers Authority)
 /etc/services、/etc/inetd.conf



UDP

UDPの用途 非接続型の手順(上位で詳細に制御） 信頼性の高いネットワークでの、データ量の小さ

 受信応答確認なし

い通信 動画や音声などのマルチメディア系の通信（少しぐらいデータが落ちてもわからない）
 同報性が必要な通信 セグメント分割なし
 65507バイトのデータを運べる(65535-28) 簡単な問い合わせ、回答形式のプロトコル、

単発的なメッセージ
 NFS、TFTP

8