前回は、TCP/IPの4階層モデルのネットワークインタフェース層について、OSI参照モデルの「物理層」に当たる階層について説明しました。今回は、ネットワークインタフェース層のうち、「データリンク層」に当たる階層の役割やプロトコルを紹介します。
Ethernetのデータリンク層の役割
データリンク層では、同一ネットワークで接続された複数のホスト(コンピュータやルータなどのネットワーク機器)の間でデータを伝送するための機能を提供します。
同一ネットワークで複数のホストが接続されている場合、送信したいホストを識別する必要があり、ホストの識別にはアドレスを使用します。データリンク層では、MACアドレスと呼ばれる物理アドレスを使用して識別します。このMACアドレスで、どのホストから送付したのか、どのホストへ送付するのかを示します。
MACアドレスとは
MACアドレスは、ネットワークに接続する機器に設定されている固有の識別番号です。MACアドレスは原則として、世界に1つしかない番号でIEEEによって管理されています。アドレスは48ビットで構成されており、4ビットずつ16進数で表記されます。
前半の24ビットはベンダーコードと呼ばれIEEEが各ベンダーへ付与したIDです。後半24ビットは製品個々に付与するシリアル番号となります。これにより、原則、世界に一つしかないアドレスとなります。
例えば、皆さんが使用されているPCも、ネットワークに接続して通信をするために、ネットワークアダプターがMACアドレスを持っています。ご自分のPCに割り当てられているMACアドレスを確認したい場合は、コマンドプロンプトで、「ipconfig /all」というコマンドを入力します。
以下に実行例を示します。イーサネットアダプタにこのPCの各種アドレス情報が記載されています。その中の「物理アドレス」がこのPCのMACアドレスです。ご自身のPCでも確認してみてください。
Ethernetのヘッダ情報
データリンク層でのデータの単位のことをフレームと呼んでいます(第2回参照)。EthernetではEthernetフレームとも呼んでいます。Ethernetフレームでは、下図の情報をデータリンク層のヘッダ情報としてカプセル化します。
以下が、Ethernetの各ヘッダの概要です
(1)Destination MAC Address:送信先MACアドレス
(2)Source MAC address:発信元MACアドレス
これにより同一ネットワーク内でどのホストから送付したのか、データを送付したいホストはどこなのかを識別することができます。
(3)Etype:上位層であるネットワーク層でどのプロトコルを使用しているかを識別する番号
もし、ネットワーク層でIPというプロトコルを使用している場合は、0800を使用します。この番号は16進数で表現しています。0800以外に、ARPは0806となり、IPv6は86DDという番号を使用します。
(4)FCS(Frame Check Sequence):エラーを検出
宛先アドレス、送信元アドレス、Etype、データの各フィールドから計算した値をFCSへ設定します。受信側でも同じ様に計算し、FCSフィールドの値と一致しない場合はエラーと見なし、そのフレームを破棄します。
次にPC-AからPC-Bへデータを転送する際のカプセル化された例を示します。
PC-Aからフレームを送信するため、(1)の送信元MACアドレスには、AAが入ります。フレームを送り届ける相手はPC-Bであるため、(2)の宛先MACアドレスにはBBが入ります。このようにMACアドレスを示すことで、無関係のPC-Cは自分宛の通信ではないことがわかりますので、フレームは破棄します。正式な宛先であるPC-Bだけがフレームを受け取ることになります。フレームを受け取った後は、(4)のFCSの値と、受け取ったフレームから受信側でも同じ計算をして、フレームにエラーが発生していないかを確認します。そして、(3)に示されているEtypeから、上位層の処理プロセスにデータを渡すことができます。
このように同一ネットワークで複数のホストがいる場合でも送信したいホストへデータを送付することが可能です。
第4回まとめ
- データリンク層では、MACアドレスを使用して、同一ネットワークで接続された複数のホスト間でデータ伝送する機能を提供する。
- MACアドレスは、ネットワーク機器に固有の物理アドレスで、48ビットで構成されている。
- Ethernetフレームのヘッダは、送信先MACアドレス、発信元MACアドレス、Etypeなどで構成されている。
板倉 恭子
ネットワンシステムズ株式会社 ビジネス推進本部 第1応用技術部 ネットワークアカデミーチーム所属
ネットワークインストラクター歴13年で、過去にCisco認定インストラクター試験の試験官にも従事。
ネットワークをベーススキルとして、オリジナルコースや顧客要望に合わせたカスタマイズコースのカリキュラム作成やコンサルタント業務を担当。