Q:LANスイッチはMACアドレスをどのように使っているの?
LANスイッチはMACアドレスを利用して、効率的にデータ(イーサネットではフレームと呼びます)を転送しています。この際に利用するのが「MACアドレス学習テーブル」(以下、学習テーブル)です。学習テーブルには、LANスイッチのポート(LANポート)と、その先につながるパソコンのMACアドレスの対応が登録されています。どのように動作するのか見てみましょう。
LANスイッチにパソコンをつないだ直後は、まだ学習テーブルには何も登録されていません。この状態でパソコンがフレームを送信すると、LANスイッチは宛先MACアドレスに対応するLANポートが分からないので、全ポートに向けてフレームを転送します。この動作は「フラッディング」と呼ばれています。LAN内の全端末にフレームが届くのですが、対応するMACアドレスを持った端末だけが受信して処理を始めます。それ以外の端末は自身に無関係なので廃棄します。
また、LANスイッチはパソコンからフレームを受信すると、受信したLANポートと送信元MACアドレスをセットにして学習テーブルに登録します。そして次回からLANスイッチは、フレームを受信しても全ポートに送り出さずに、学習テーブルを参照して宛先MACアドレスに対応したLANポートのみにフレームを送信します。
ただし、LANスイッチは定期的に学習テーブルの内容を消去します。パソコンをつなぎ替えた場合、学習テーブルの内容が古いままだと、誤ったLANポートにフレームを送り出してしまう可能性があります。これを防止するために消去するのです。
Q:MACアドレスとIPアドレスはどのように補完しているの?
インターネットの世界ではIPアドレスが“住所”の役割を果たします。データは「IPパケット」という形で転送され、その際にIPアドレスは宛先として使われます。これに対してイーサネットでは、IPパケットはフレームに格納されて運ばれます(Wi-Fiのフレームも同様です)。フレームの宛先はMACアドレスで指定するので、たとえ宛先IPパケットが分かっていても対応する宛先MACアドレスを知らなければフレームを送れません。
MACアドレスとIPアドレスをつなぐ役割を担うのは「ARP(Address Resolution Protocol)」というプロトコルです。これはIPアドレスに対応するMACアドレスを見つけるためのものです。
仕組みは次のようになります。まず送信端末は宛先IPアドレスに対応したMACアドレスについて、LAN内の全端末に問い合わせます。これは「ARP要求」と呼ばれます。この際に使われる宛先MACアドレスは「FF:FF:FF:FF:FF:FF」という特別なものが使われます。これは「ブロードキャストアドレス」と呼ばれ、このMACアドレスを持ったフレームを受信したLANスイッチは必ず全ポートから送り出します。前述のフラッディングとは一見すると似ていますが、別物なので注意が必要です。
全端末がARP要求を受け取りますが、返答するのは対応するIPアドレスを持った端末のみです。その端末は自身が持つMACアドレスを返します。これは「ARP応答」と呼ばれます。ARP応答を受け取った受信端末は「ARPキャッシュ」と呼ばれるメモリーに記録します。そして次回からは、ARP要求を出す前にまずARPキャッシュを参照して通信を始めます。
なおARPはIPv4で使われるプロトコルで、IPv6では「近隣探索」という別の仕組みが使われています。