演習Index

【ちょっと座学】ネットワークの話

先の記事でpingの通信をWiresharkでキャプチャしていろいろ説明していますが、ARPとか、アドレス解決とか、キーワードを説明していないので、たぶん消化不良ですよね。パケットの世界で何が起きているのかを理解するには、ネットワークについて学習する必要があります。ちょっと座学しましょう。

 

ネットワーク

ネットワークという言葉はいろんなシーンで使われますが、実はTPOにあわせて少しずつニュアンスが違います。基本的にコンピューターの世界でネットワークという言葉は規模の大小にかかわらず、コンピューターとコンピューターを通信でつなぐことを指します。

  • 大きなスケールだと、世界中に張り巡らされたインターネットはネットワークです。
  • 中小のスケールだと、企業や家庭などの組織内のLANもネットワークです。
  • 企業の拠点のLAN同士(東京~大阪など)を接続するために通信キャリアが提供するものはWANと呼ばれますが、これもネットワークです。
  • PCとルーターの間を無線LANで接続する場合、これもネットワークです。
  • PCとPCをLANケーブルで直接接続した場合、このLANケーブルはネットワークです。

 最小構成のネットワーク

PCとPCをLANケーブル(クロスケーブル)で接続した場合、最小構成のネットワークができます。ポイント・ツー・ポイントでつなぐだけでもネットワークと呼んでかまいません。

 

f:id:wave1008:20170207184204p:plain

 

メディア

LANケーブルは銅線です(ここではそう解釈します)。コンピューターはこの銅線に電気信号を流して他のコンピューターに信号を伝えます。

  • 銅線は電気信号を伝えるメディア(媒体)です。
  • 同様に、光ファイバーは光信号を伝えるメディアです。
  • 同様に、空間は電波信号を伝えるメディアです。

 

f:id:wave1008:20170207184613p:plain

 

Media Access Control(MAC)

メディアを介してコンピューター間の相互アクセスを実現する制御のことをMedia Access Control(MAC)と呼びます。具体的には、メディアにどんな信号を流せばどういう意味になるのかを定めたルール(プロトコル)や、それを実装したものです。

 

MACアドレス

メディアに接続されたLANアダプタを識別するために使用する48ビットの識別情報をMACアドレスと呼びます。MACアドレスはLANアダプタに対して重複しないように一意に割り当てられます。

MACアドレスを重複させないため、IEEEという団体が番号を管理しています。上位の24ビットを企業(メーカー)に割り当てます。割り当てられた企業は自分の製品で重複しないように下位の24ビットを決定します。

f:id:wave1008:20170207190142p:plain

 

Ethernet

メジャーなLANの規格です。もともとは同軸ケーブル(太い銅線みたいなもの)に複数のコンピューターを繋いで通信するバス型のネットワークです。バス型なので複数のコンピューターがたまたま同時に喋ろうとすると信号の衝突(コリジョン)が発生します。

 

f:id:wave1008:20170211204740p:plain

 

リピータハブ

同軸ケーブルは扱いにくいので、各コンピューターとハブ状に接続できるようにした、電気信号をリピートする機器(リピータ)をリピータハブといいます。リピータハブは後述のスイッチングハブのように賢くないので、バカハブとも呼ばれます。物理的にはスター型のネットワークですが、論理的には前述の同軸ケーブルを使用したEthernetと同じバス型のネットワークです。

 

f:id:wave1008:20170211204832p:plain 

スイッチングハブ

リピータハブでは、あるコンピューターが流した電気信号はリピータハブに接続されているすべてのコンピューターに伝わってしまう(ブロードキャストされてしまう)ので、ネットワークの使い方が非効率です。本来データを送信したい宛先のMACアドレス以外には電気信号を伝えないようにしてスイッチのように振る舞うのがスイッチングハブです。

 

f:id:wave1008:20170211204909p:plain

 

フレーム(MACフレーム)

Ethernet上でやりとりするデータの単位はフレーム(MACフレーム)と呼びます。

以下の記事を参考に理解を深めてください。(リンクさせていただきます)

Ethernet LAN - イーサネットフレームのフォーマットとMACアドレス

 

フレームのタイプには0x0800(IPv4)や0x0806(ARP)が指定できます。MACフレームの上でIPv4ARPプロトコルは実現されます。

 

Media Access Controlの限界

EthernetのようにMedia Access Controlによってコンピューターを接続するネットワークは、そこにつなぐことができるコンピューターの台数に制限があります。電気信号や電波が効率よく伝わる距離には限界があるため、世界中のコンピューターを一つのメディアに接続して通信することはできません。また、バス型のネットワークでは接続するコンピューターの台数が増えると、ネットワークが混雑して通信速度が低下するという問題もあります。つまり、一つの大きなEthernetを用意して、世界中のみんながそこにつなぐという方法は機能しません。ネットワークの規模を大きくするには複数のEthernetに分割してそれらを相互に接続する技術(インターネットワーキング)が必要になります。

 

f:id:wave1008:20170208134632p:plain

  

ルーターゲートウェイ

EthernetEthernetを接続する機器がルーターです。 正確に言うと、接続されるネットワークは違う規格のものでも構わないので、Ethernet光回線でも、無線LANでもかまいません。ここでは話を単純にするため、すべてEthernetとします。

ルーターを導入する場合、1つ1つのEhternetはセグメントと呼ばれます。ネットワーク全体をみたとき、分割されたものの一部という意味です。ルーターはセグメントの出入り口の役割を果たすのでゲートウェイという呼び方もされます。デフォルトゲートウェイでおなじみですね。

 

f:id:wave1008:20170208135434p:plain

 

 セグメントの数を増やしてルーター間をネットワークで相互に接続すれば、ネットワークの規模を拡大することができます。

 

f:id:wave1008:20170208142512p:plain

 

EthernetのようなMedia Access Controlではメディアにブロードキャストして通信相手にフレームを送信しますが、ルーターの接続によって拡大されたネットワークでブロードキャストしてしまうと、ネットワークはすぐに飽和してまともに機能しなくなります。したがって、ブロードキャスト以外の方法でルーター間で効率よくデータを転送する仕組みが必要になります。IP(Internet Protocol)のようなネットワーク層プロトコルがこの問題を解決します。

 

IP(Internet Protocol)

ネットワーク間でパケットを中継する仕組みを提供するプロトコルです。現在のインターネットのような世界規模の巨大なネットワークが実現できているのは、IPが貢献するところが大きいです。IPv4IPv6のバージョンがありますが、ここではIPv4で話を進めます。

 

パケット

Ethernet上でやりとりするデータの単位はフレーム(MACフレーム)でしたが、Internet Protocol上でやりとりするデータの単位はパケットと呼びます。パケットはサイズが大きい場合、複数のフレームに分割され送信されます。逆に受信側はフレームを組み立ててパケットを復元します。

 

IPアドレス

Internet Protocolでは、IPアドレスという、MACアドレスとは別のアドレス体系を使用します。IPアドレスはネットワーク部とホスト部で構成されています。つまり、IPアドレスはネットワークを識別することができるようになっています。この点はMACアドレスとの大きな違いです。

 

詳細は以下のサイトを参考にして理解を深めてください。(リンクさせていただきます)

IPアドレスとは

ただし、クラスAとかクラスBといったIPアドレスのクラスは現在では重要ではないので、さらっと読み飛ばしてください。現在はアドレスクラスではなくCIDRという仕組みを使います。以下のサイトを参考にしてください。(リンクさせていただきます)

CIDRによる割り当て | IPラーニング

 

ルーティング

IPアドレスを導入することでネットワークを識別できるようになったので、ルーターは受信したパケットのIPアドレスのネットワーク部をもとに、パケットをどのネットワークに中継すればよいのかを判別できます。ルーターに直接つながっているネットワーク宛のパケットならば、そのネットワークのセグメントにパケットを流します。セグメント内で特定のコンピューターにフレームを届けるのは、従来通りEthernetのようなMedia Access Controlの役割です。

 

IPアドレスMACアドレス

前述のように、ルーターをまたがって宛先ネットワークへパケットを届けるためにはIPアドレスを使用します。Ethernetのセグメント内でフレームを届けるにはMACアドレスを使用します。LANアダプターは製造時にMACアドレスが割り振られます。IPアドレスは組織内のネットワークの管理者がMACアドレスに対して割り当てます。

 

アドレス解決

同じEthernetにつながっているコンピューター間でIPで通信するケースを考えましょう。IPでパケットの送信を開始する際、宛先IPアドレスは事前に何らかの方法で分かっているものとします。パケットを分割してフレームにする際、宛先のMACアドレスが必要となります。IPアドレスから対応するMACアドレスを決定することを「アドレスを解決する」という言い方をします。アドレスを解決するには、IPアドレスMACアドレスの対応テーブルを保持し、それを利用することで実現します。この対応テーブルは静的に設定する方法と、動的に問い合わせを行って設定する方法があります。後者を実現するプロトコルARP(Address Resolution Protocol)です。また、この対応テーブルをARPテーブルと呼びます。

詳細については以下のサイトを参考にしてください。(リンクさせていただきます)

アドレス解決とARP

 

 

コンピューターネットワークがどういうものなのかという、わりと壮大な回り道をして、最後はアドレス解決の話に戻ってきました。なんとなく理解したところで、前回のパケットキャプチャの内容を読み返してみてください。