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を用いる。
  3. ルータは2つのデータリンクに接続している。
  4. 一つのデータリンクには3つ以上のルータは接続できない。
  5. IPヘッダには宛先のIPアドレス,送信元のIPアドレス,送信元のMACアドレスが入っている。
  6. IPアドレスの上位プロトコルには,Web閲覧のためのHTTPやファイル転送のためのFTPなどが指定できる。
  7. IPはコネクション型であり,パケットが正しく到達してしないときの処理には,DHCPを用いる。
  8. 新規にクライアントをネットワークに接続して,動的にIPアドレスを取得するには,ICMPを用いる。
  9. DHCPは,IPアドレス設定を自動化したり一元管理する。
  10. IPアドレス枯渇の対策としてIPv6の普及が期待されている。

第2問

問1 テクニカルエンジニア(ネットワーク)平成16年秋問30
 OSI基本参照モデルのネットワーク層(第3層)の役割はどれか。
 ア エンドシステム間の会話を構成し,同期とデータ交換を管理する。
 イ 経路選択や中継機能に関与せずに,エンドシステム間の透過的なデータ転送を行う。
 ウ 隣り合うノード間のデータ転送を行い,伝送誤り制御を行う。
 エ 一つ又は複数の通信網を中継し,エンドシステム間のデータ転送を行う。

問2 テクニカルエンジニア(ネットワーク)平成16年秋問22
 TCP/IPにおけるARPの説明として,適切なものはどれか。
 ア IPアドレスからMACアドレスを得るプロトコルである。
 イ IPネットワークにおける誤り制御に使用されるプロトコルである。
 ウ ゲートウエイ間のホップ数によって経路を制御するプロトコルである。
 エ 端末に対して動的にIPアドレスを割り当てるためのプロトコルである。

問3 テクニカルエンジニア(ネットワーク)平成13年秋問28
 TCP/IPに関連するプロトコルであるRARPの説明として,適切なものはどれか。
 ア IPアドレスを基にMACアドレスを問い合わせるプロトコル
 イ IPプロトコルの誤り制御に使用されるプロトコル
 ウ MACアドレスを基にIPアドレスを問い合わせるプロトコル
 エ ルーティング情報を交換しながら,ルーティングテーブルを動的に作成するプロトコル

問4 テクニカルエンジニア(ネットワーク)平成13年秋問24
 インターネットで使われるコネクションレス型のプロトコルで,OSI基本参照モデルのネットワーク層に位置するものはどれか。  ア IP  イ SMTP  ウ SNMP  エ TCP

問5 テクニカルエンジニア(ネットワーク)平成13年秋問23
 TCP/IPのネットワークにおけるICMPに関する記述として,適切なものはどれか。
 ア MACアドレスだけが分かっているときにIPアドレスヘの解決を可能にする。
 イ グローバルなIPアドレスとプライベートなIPアドレスを相互に変換する。
 ウ 送信元ホストヘのIPパケットの送信エラー報告など制御メッセージを通知する。
 エ ネットワーク内のIPアドレスを一元管理し,クライアントに動的に割り当てる。

問6 テクニカルエンジニア(ネットワーク)平成13年秋問25
 IPv6に関する記述のうち,適切なものはどれか。
 ア グローバルなIPアドレスが重複しても問題が発生しないようにした。
 イ グローバルなIPアドレスの不足を解決できるようにした。
 ウ 通信衛星を介したインターネット接続に対応できるようにした。
 エ 光ファイバを用いたインターネット接続に対応できるようにした。

問7 テクニカルエンジニア(ネットワーク)平成15年秋問22
 IPv4(Internet Protocol version4)にはなく,IPv6(Internet Protocol version6)に追加・変更された仕様はどれか。
 ア アドレス空間として128ビツトを割り当てた。
 イ サブネットマスクの導入によって,アドレス空間の有効利用を図った。
 ウ ネットワークアドレスとサブネットマスクの対によってIPアドレスを表現し,クラス概念をなくした。
 エ プライベートアドレスの導入によって,IPアドレスの有効利用を図った。


本シリーズの目次へ