Web教材一覧ネットワーク

ネットワーク層とIP

学習のポイント

ここでは,ネットワーク層について学習します。ネットワーク層は複数のデータリンクをまたがる2点間の通信を可能にするものです。そのTCP/IPでのプロトコルがIPで,ルータが重要な役目をします。なお,IPアドレスの仕組みと経路制御については別章にまわします。

IPの位置づけ

キーワード

ARP,RARP,IPヘッダ,TTL,ICMP,DHCP,IPv6


IP(Inernet Protocol)の概要

データリンク層とIPの関係

IPは,OSI参照モデルのネットワーク層に相当するプロトコルです。データリンク層では,同一のデータリンク内で直接接続されたホスト間でパケットを送信しますが,IPでは,直接接続されていないホスト間でパケットの送信をします。すなわち,IPではいくつものデータリンクを経由して通信をします。

データリンク層とIPの比較図

データリンク層では,宛先をMACアドレスで指定していましたが,IPではそれをIPアドレスで指定します(IPアドレスの詳細については,別章「IPアドレス」参照)。すなわち,同一データリンク間での宛先はMACアドレスですが,それを超えた宛先にはIPアドレスを使うのです。

ARP(Address Resolution Protocol)/RARP(Reverse ARP)

ARPは,あるホストのIPアドレスを与えてMACアドレスを知るためのプロトコルです。同一のデータリンクにあるホストAがホストBのMACアドレスを知りたいときには,次のようにします。

  1. ホストAは,自分のMACアドレスとIPアドレス,ホストBのIPアドレスを含むARP要求パケットをブロードキャストします。
  2. すべてのホストがARP要求パケットを受けますが,求めているIPアドレスを持っているのはホストBだけです。それで,ホストBは自分のMACアドレスをつけて,ホストAにARP応答パケットを送信します。

ホストBが同一データリンクにないときは,ルータがホストBのIPアドレスにより,ホストBが同一データリンクにないことを判別できますので,ホストBではなくルータのMACアドレスをホストAに知らせます。すると,ホストAはルータにパケットを送り,それをホストBに転送するように依頼します。

なお,RARPはMACアドレスからIPアドレスを知るためのプロトコルです。

経路制御(ルーティング)

ルータが代行した後,どのようにホストBにパケットが送られるかを簡単に説明します。

バケツリレーの説明図

同一のネットワークに属するホストは,まとまったIPアドレスを持っており,ネットワーク自体もIPアドレスを持っています。そして,ルータは自分が接続しているネットワークのIPアドレスや,それに接続するルータのIPアドレスとその向こう側のネットワークのIPアドレスなどをルーティングテーブルに持っています。すなわち,ルータAは,
   ネットワーク1
   ネットワーク2
   ルータBとネットワーク3
   ルータCとネットワーク4
だけを知っています。そして,ルータAはホストAからのパケットをルータCに渡すと,ルータCはホストBが属するネットワーク6はルータEにあることを知っているので,さらにルータEに転送します。ネットワーク6に到達すれば,ARPでホストBのMACアドレスを知ることができるので,ホストBにパケットが届きます。

このように多くの多数のルータをバケツリレーすることにより経路を決定することを経路制御(ルーティング)といいます。ここで,なぜルータAがルータBではなくルータCに渡したのかがあいまいですが,詳細は別章「経路制御」で取扱います。


IPヘッダ

IPによりパケットを送信するときは,データの前にIPヘッダを付加します。IPヘッダのフォーマットは次の通りです。なお,IPの最新バージョンはIPv6ですが,未だIPv4が広く用いられていますので,ここではIPv4を用います(IPv6に関しては後述します)。

IPヘッダの図
始点IPアドレス/終点IPアドレス
始点とは送信元,終点は送信先(宛先)のことです。
上位プロトコル
伝送されるデータには,本文以外にTCPヘッダなどのヘッダが含まれています。それのプロトコルです。

TTL(生存期間)
IPでは,パケットは多くのルータを経由します。状況によっては,ルータ間がループになっていて,目的のホストに到着せず永久にループを巡回するようなことがあると,送信の制御もできないし,ネットワークに負荷がかかってしまいます。それを防ぐために,ルータを1回経由するたび(それをホップといいます)に,TTL(Time To Live)の値を1だけ減らし,それが0になったらパケットを破棄します。

IPに関連するプロトコル

ICMP(Internet Control Message Protocol)

IPはコネクションレス型(コネクション型/コネクションレス型については,別章「TCP」で説明)ですので,パケットが正しく到達しているかの保証もありませんし,障害が発生したときの通知もできません。ICMPは,障害が発生したときに通知をするネットワーク層に相当するプロトコルです。

到達不能メッセージ(Destination Unreachable)
宛先に到達できないとき,送信元のホストに到達不能メッセージが送られます。
時間経過メッセージ(Time Exceeded)
TTL(Tome To Live:生存時間)が0になったとき,送信元のホストに送られます。これを用いて,経由するルータと時間経過を知ることができる traceroute(UNIX)や tracert(Windows)コマンドがあります。
エコー要求(Echo Request),ping
送信先にパケットを送ることができるかどうかを確認するためのものです。pingコマンドはこれを用いています。

DHCP(Dynamic Host Configration Protocol)

DHCPは,IPアドレス設定を自動化したり一元管理するもので,次のような問題の解決に効果があります。

DHCPによるIPアドレスの取得

新規にクライアントをネットワークに接続して,動的にIPアドレスを取得する手順は次の通りです。

DHCP Discover
ネットワークに接続した時点では,クライアントはDHCPサーバのIPアドレスを知らないので,ネットワーク全体にブロードキャストします。クライアント自体のIPアドレスもないので,送信元のIPアドレスは 0.0.0.0 としておきます。
DHCP Offer
ブロードキャストを受けたDHCPサーバは,自分が保有しているIPアドレス(アドレスプールという)から,仮のIPアドレスをを割り当てて,それとDHCPサーバのIPアドレスをクライアントに返信します。このとき,DHCPサーバが複数あると(DHCPサーバは重要なサーバなので障害対策のために複数が起動している),クライアントに複数の返信が届きます。
DHCP Request
クライアントは,複数の返信から一つを選択して,その仮IPアドレスを入れたメッセージをブロードキャストします。
DHCP Ack
その仮IPアドレスを提供したDHCPサーバは,仮IPアドレスを正式のIPアドレスとしてアドレスプールから確保し,正式通知をクライアントに返信します。そして,クライアントはそのIPアドレスによりネットワーク環境を設定します。
DCHP Release
DHCPサーバがクライアントに正式IPアドレスを与えるのは,一定期間内の期限付き貸し出しです。その期限が近づくと,クライアントは必要に応じてDHCPサーバに延長要求を出します。それがないときは,DHCPサーバはIPアドレスをアドレスプールに戻して,他のホストからの要求を待ちます。

IPv6

IPv4では,IPアドレスは32ビットで構成されており,232≒43億個ですが,クラスなど非効率的な割り振りをしてきたために,インターネットの普及に伴い枯渇が心配されるようになりました。それを引き金として,これまでのIPが持つ不便な事項を一挙に解決するべきだとして,IPv6が採用されました。
 IPv4からIPv6への移行には多くの変更を伴うために,未だIPv4が広く用いられていますが,IPv6は多くの利点や適用分野があるので,着実に伸びてきています。

アドレス空間の拡大

IPv6では,IPアドレスは128ビットです。2128=3.4×1038ですから,事実上無限に近い個数になります。
 それにより,IPv4の 10.1.1.1 というような表記法では16個の数字になってしまいます。それで128ビットを16ビットごとの8個にわけて,それぞれを16進数で表現するようにしました。

 2進法表現
    0001 0000 1000 0000  0000 0000 0000 0000  0000 0000 0000 0000  0000 0000 0000 0000
    0000 0000 0000 1000  0000 1000 0000 0000  0010 0000 0000 1100  0100 0001 0111 1010
 16進表現
    1080:0:0:0:8:800:200C:417A (16桁ごとに:で区切る)
 16進表現(簡略)
    1080::8:800:200C:417A      (連続した0は::にできる。1ヶ所のみ)

IPv6の利点

アドレス空間の拡大
IPアドレスを128ビットにしたことにより,3.4×10^38という事実上無限に近い個数になります。それにより,情報家電や各種センサーなどをインターネットに接続できるので,IPv6化はユビキタス社会への対応の観点からも重要です。
セキュリティ対策の向上
プライベートIPアドレスが不要になり,すべてのホストにグローバルIPアドレスが付けられるので,相手のホストの識別がしやすくなります。
また,セキュリティ通信のIPSecの実装が必須とされていることから,セキュリティ対策がとりやすくなります。
効率の向上
IPアドレスを,地域や国,指定事業者のような構造に合わせるようにして,ルーティングテーブルを簡素化してルーティングの効率化を図っています。
また,特にチェックサムはTCP/UDPで行いIPでは省略するなど,IPv4と比べてヘッダの項目を簡略化して,ルータの負荷を減らしています。
プラグ&プレイ機能
IPv6では,機器をネットワークにつなぐと自動的にグローバルIPアドレスを取得できる機能を持たせています。

理解度チェック

第1問

  1. IPは,複数のデータリンクを通って相手のホストと接続するためのプロトコルであり,OSI参照モデルのネットワーク層に相当する。
  2. MACアドレスからIPアドレスを知るにはARPを用い,IPアドレスからMACアドレスを知るにはRARPを用いる。
    × ARPとRARPが逆
  3. ルータは2つのデータリンクに接続している。
    ○ それで他のデータリンクが接続する。
  4. 一つのデータリンクには3つ以上のルータは接続できない。
    × どのルータを選ぶかで経路選択ができる
  5. IPヘッダには宛先のIPアドレス,送信元のIPアドレス,送信元のMACアドレスが入っている。
    × MACアドレスはイーサーネットヘッダ
  6. IPアドレスの上位プロトコルには,Web閲覧のためのHTTPやファイル転送のためのFTPなどが指定できる。
    × TCPとUDP。HTTPなどはTCPヘッダで指定
  7. IPはコネクション型であり,パケットが正しく到達してしないときの処理には,DHCPを用いる。
    × コネクション型→コネクションレス型,DHCP→ICMP
  8. 新規にクライアントをネットワークに接続して,動的にIPアドレスを取得するには,ICMPを用いる。
    × ICMP→DHCP
  9. DHCPは,IPアドレス設定を自動化したり一元管理する。
  10. IPアドレス枯渇の対策としてIPv6の普及が期待されている。

本シリーズの目次へ