はじめに
前回はNICやMACアドレスがどのようなものかについて説明しました。今回はIPアドレスがどのようなものかについて説明したいと思います!
IPアドレスとは
Part1では、「NetworkがNetwork of networksに進化した際、PCに人や組織が扱いやすい住所のようなものを付けた」ということを説明しました。
上の図では、1.1や3.2のような番号の部分です。この番号に対応するのがIPアドレスです。IPアドレスの特徴を以下に示します。
- IPアドレスにはIPv4とIPv6の2つのバージョンがある
- IPv4は4Byte(32bit)、IPv6は16Byte(128bit)で構成される番号である
- IPアドレスはNICごと割り当てられ、変更される場合がある
- サブネットマスクにより、ネットワーク部とホスト部に分けられる
4つ目の特徴は特に重要だと思います。IPアドレスは単調な番号でなく、ネットワークの階層構造を示すアドレスであるということです。
IPアドレスとMACアドレスの特徴を比較した表を以下に示します。
IPアドレス | MACアドレス | |
---|---|---|
桁数 | IPv4は4Byte、IPv6は16Byte | 6Byte |
割り当て単位 | NICごと | NICごと |
役割 | WAN間の通信 | LAN内のホスト間の通信 |
変更されるか | 変更されうる | 基本的に変更されない |
例えばIPアドレスを用いてgoogleのDNSサーバ(8.8.8.8)と通信するには以下のpingコマンドを発行します。
ping 8.8.8.8
#実行結果
#PING 8.8.8.8 (8.8.8.8): 56 data bytes
#64 bytes from 8.8.8.8: icmp_seq=0 ttl=112 time=11.525 ms
#64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=14.366 ms
#64 bytes from 8.8.8.8: icmp_seq=2 ttl=112 time=14.369 ms
インターネット通信の概要
さて、IPアドレスが導入されたので、インターネット通信ができるようになりました。先ほどのpingコマンドでgoogleのサーバと通信できることを確認できましたね!
では、本パートの最後に先ほどの「ping 8.8.8.8」の動作について簡単に説明したいと思います。以下に、関係するネットワーク構成要素についての図を示します。
クライアント側のLANにはpingを送るクライアントコンピュータとWANに接続するためのルータ(デフォルトゲートウェイ)が存在しています。LANの先にはインターネットが存在し、その先にgoogleのLANが接続されています。googleのDNSサーバのIPアドレスは8.8.8.8となっています。
まず、クライアントコンピュータがpingコマンドを発行します。
すると、クライアントコンピュータは通信先の8.8.8.8がLANのアドレスではないため、とりあえずデフォルトゲートウェイへパケットを送信します。このとき、デフォルトゲートウェイのMACアドレスを指定して通信を行います。
デフォルトゲートウェイがデータを受け取ると、宛先のIPアドレス(8.8.8.8)を参照して、WANやインターネット上の他のルータにパケットを転送します。そして、インターネット上に存在するルータもIPアドレス(8.8.8.8)を参照しながらパケット転送を行っていき、結果的に複数のルータを経由することで、少しずつgoogleのLANに近づいていきます。
最終的に、パケットがgoogleのゲートウェイまで到着すると、LAN内では8.8.8.8のIPアドレスを持つマシンにそのパケットを送信します。そして、8.8.8.8のマシンが応答を行うことになります。
このように、MACアドレスがLAN内のコンピューターどうしの通信を、IPアドレスがWANのネットワーク経路選択を行うことによって、インターネットでの通信が可能になります。
まとめ
今回はIPアドレスについて、pingの動作について概念的な説明を行いました。まとめると以下のようになります。
- IPアドレスはネットワークの階層を表す論理的なアドレスである
- IPアドレスはネットワーク部とホスト部から構成される
- pingコマンドによって、IPレベルでの通信ができる
- IPアドレスがLANネットワーク同士をつなぐ役割、MACアドレスがLAN内の機器間で通信する役割を担う
本パートまでで、通信の概念的な部分について扱ったので、次回以降のPartではより詳細な解説を行いたいと思います。