2017年10月
« 9月   11月 »
1234567
891011121314
15161718192021
22232425262728
293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

データリンク層

サブネット分割

前述のように、1つのバス型接続のネットワーク内部には、同時に設置できる機器の数には限界がある。このため、小さなネットワークに分割したもの(サブネット)を、ブリッジやルータで接続し、隣接するサブネットにサブネット内の通信情報が出ないように分割することを行う。

MACアドレスとデータリンク層

Ethernetに接続する機器は、機器ごとにユニークな番号(MACアドレス)を持っている。このMACアドレスは、8bit✕6個の48bitの値で、メーカー毎に割振られた範囲の値を、機器ごとに異なる値がついている。

通信は、一般的に1500byte程のパケットを単位として送受信が行われる。サブネット内の通信では、自分宛のパケットかどうかをMACアドレスを見て受け取る。これらのレイヤーは、データリンク層と呼ばれる。

ブリッジ

ブリッジは、2つのサブネット間に設置される機器で、MACアドレスを見てパケットを逆側に流すべきか、流す必要がないかを判断する。

旧式のHUB(リピータHUB)は、電気的に信号を増幅するだけなので、物理層(レイヤー1)だけで通信を行う。
スイッチングHUBは、MACアドレスを見て通信相手を判断(データリンク層)するので、レイヤ2スイッチとも呼ばれる。最近では、SW-HUBのコネクタ毎に、パケットにタグを付加することで、1本のネットワーク経路に仮想的な複数のネットワークを構築するタグV-LANといった方式を使う場合もある。

OSI参照モデル

前述の、物理層(レイヤ1),データリンク層(レイヤ2)といったものを、通信するプロトコルに合わせて細かくレイヤに分けたモデルを、OSI参照モデルと呼ぶ。

  1. 物理層
  2. データリンク層(MACアドレスによるサブネット内の通信)
  3. ネットワーク層(IPアドレスによるサブネット間通信)
  4. トランスポート層(TCP,UDPによるエラー訂正,再送制御)
  5. セッション層(通信開始から終了までの手順,接続が切れたら再接続)
  6. プレゼンテーション層(データの表現方法を合わせる取り決め)
  7. アプリケーション層(具体的な通信サービス)

ネットワーク層とIPアドレス

サブネットに分割し、隣接するサブネット、さらには上流のインターネットと通信をするためには、IPアドレスを用いた通信が行われる。

ネットワークに接続する機器には、それぞれユニークな32bitの番号(IPv4アドレス)を割り振る。

ネットワーク層の下のデータリンク層では、MACアドレスにより通信をするため、ネットワーク機器は自分に割り振られたIPアドレスとMACアドレスの情報をARPというプロトコルで同じサブネット内の機器に(IP,MAC)の情報を伝える。

コンピュータへのIPアドレスの設定には、(a)IPアドレス,(b)サブネットマスク,(c)ゲートウェイの情報が必要となる。

  • IPアドレス: 192.156.145.100 といった、0~255の8bitの値をピリオド区切りで4つ並べて表記するのが一般的。
  • サブネットマスク: 255.255.255.0 といった値で、IPアドレスを2進数で書き並べた32bitと、サブネットマスクの32bitで、2進数の論理積をとった値は、ネットワーク番号と呼ばれる。
    また、IPアドレスとサブネットマスクの否定と論理積をとった値は、ホスト番号と呼ばれる。
  • ゲートウェイ: 自分自身のネットワーク番号と通信相手のネットワーク番号が異なる場合は、異なるサブネットにいるので、パケットを中継してもらう機器(ルータ,ゲートウェイ)にパケットを送る。
IP-address:  10.10.21.51    00001010,00001010,00010101,00110011
Subnet-mask: 255.255.255.0  11111111,11111111,11111111,00000000
                            <-------- network -------> <-host->
network-number: 10.10.21.0  00001010,00001010,00010101,00000000
host-number:    0.0.0.51    00000000,00000000,00000000,00110011

通信相手が 10.10.22.100 の場合
network-number: 10.10.22.0 なので、異なるサブネットに属する。
このため、ゲートウェイ10.10.21.254 にパケット中継を依頼する。

----+---------------------+-----------------+-
    | gw:10.10.21.254     |                 |
  router                server:10.10.21.51  PC1:10.10.21.53
    |                          subnetmask:255.255.255.0
    | gw:10.10.22.254
  --+---------+-----------------+---
              |                 |
             PC2:10:10.22.100  PC3:10.10.22.102

ルータ

ルータは、隣接するサブネットの間に入る機器で、各サブネットにゲートウェイとなるインタフェースを持つ。ルータには、RIPというプロトコルにより、各サブネットのつながっている経路情報が送られてくる。この経路情報を見て、パケットのIPアドレスを見て、パケットの送り先を判断する。

((Windows の場合))
C:> ipconfig /all
インタフェース名:
 IPv4アドレス............192.168.xx.xx
 サブネットマスク.........255.255.255.0
 デフォルトゲートウェイ...192.168.xx.1
C:> arp -a
インタフェース:
 192.168.xx.xx     74-03-xx-xx-xx-xx 動的
 192.168.xx.yy     B0-05-xx-xx-xx-xx 動的
C:> netstat -r
ネットワーク宛先 ネットマスク ゲートウェイ インタフェース メトリック
       0.0.0.0         0.0.0.0   192.168.xx.1  192.168.xx.xx 45
  192.168.xx.0   255.255.255.0   ....

((Unix の場合))
$ ifconfig -a
en1: ....
     inet 192.168.xx.xx netmask 0xffffff00 ...
$ arp -an
.... (192.168.xx.xx) at 74:03:xx:xx:xx:xx ...
.... (192.168.xx.yy) at b0:05:xx:xx:xx:xx ...
$ netstat -rn
Destination  Gateway ...
default      192.168.xx.1  ...
192.168.xx   ...