実際にL2での通信の仕組みを見ていきます。L2はOSI参照モデルではデータリンク層に当たります。
L2の通信の仕組みはかなりシンプルですが、これを理解すると自宅のネットワークの通信がどうなっているかのイメージがつくようになります。
L2での通信での登場人物
L2における通信を理解する上で、抑えておきたい用語を先に解説します。
MACアドレス
MACアドレスとはMedia Access Control Addressの略で、ネットワークインターフェースカード(NIC)に付与されている番号のことです。
NICとは要するにLANケーブルを指すあのポートのことです。
LANケーブルを指す口自体はRJ45コネクタといい、コネクタから基盤を通してPCIeスロットなどに刺して、コンピューターに接続されます。そのコネクタと基盤、PCIeの端子が一緒になった部品のことをNICと呼びます。
この物理的な部品に対して、MACアドレスが付与されています。(コネクタ毎)
物理的と言いましたが、VMwareの仮想マシンであればネットワークアダプタに対してMACアドレスが割り当てられ、AWSのEC2であればENI単位でMACアドレスが割り当てられています。
IPアドレス
IPアドレスはIPv4とIPv6という2つのバージョンが有り、ここではIPv4のみに絞って話をします。
IPv4アドレスは8bit×4の数字で表される数字のことで、192.168.1.1のようなものがIPアドレスです。
基本的には、MACアドレスと1対1で紐付きます。
ARP
ARPとはAddress Resolution Protocolの略で、IPアドレスからMACアドレスを得るためのプロトコルのことです。MACアドレスからIPアドレスを得る逆向きのプロトコルはRARPといいます。
PCやサーバー、NW機器は各々がこのarpを使って接続されているNICの先にいる端末のMACアドレスとIPを紐付けて管理しています。この管理しているテーブルのことをARPテーブルと呼びます。
- ARPテーブルの例
? (172.20.10.1) at 10:c0:e:a8:5d:99 on en0 ifscope [ethernet] ? (239.255.255.250) at 9:2:3d:d7:58:b3 on en0 ifscope permanent [ethernet]
L2スイッチの仕組み
では実際にL2での通信がどのように行われているか追っていきます。
下のスライドの中で、PC①とNAS②が通信する場合を考えます。
PC①とNAS②の経路の間にはスイッチ①とスイッチ②があります。これらはどちらもスイッチングハブ、つまりL2スイッチです。
上の図だと分かりづらいですが、ハブにLANケーブルを刺してPC①に接続しているところを想像してみてください。
各端末がつながっているわけではなく、物理的にはスイッチが各端末とつながっている形を取ります。
つまり経路は PC①↔スイッチ②↔スイッチ①↔NAS②となります。
ラーニングブリッジ
スイッチの中にはラーニングブリッジの機能を保持しているものがあります(現在のスイッチはほとんど持っていると思います)
ラーニングブリッジとは、一度通信した相手側のMACアドレスを自分で保持しておいて、隣のセグメントに流すかどうかを自分で判断します。
- Step 1PC①からNAS②へ送信要求をスイッチ②に投げる
PC①は対向機器がスイッチ②しかないので、どの宛先だとしてもとりあえずスイッチ②にすべて送りつけます。
- Step 2スイッチ②がすべてのポートへ転送する
スイッチ②は受け取ったパケットをとりあえずすべてのポートに転送して応答が返ってくるのを待ちます。関係のない機器は自分宛てのパケットでなければ勝手に破棄します。
- Step 3スイッチ①がすべてのポートへ転送する
スイッチ②が転送した機器のうち、スイッチ①だけはまたすべてのポートにパケットを転送します。
- Step 4NAS②からのみスイッチ①へ応答が返ってくる
スイッチ①が転送したパケットはNAS②宛でしたので、NAS②のみが応答します。NAS②はスイッチ①へ応答を返します。
- Step 5スイッチ①は、その応答をスイッチ②へ転送する
スイッチ①は先程の通信でスイッチ②の先にPC①がいることがわかったので、スイッチ②にのみ応答パケットを転送します。
- Step 6スイッチ②はPC①に応答を転送する
スイッチ②はどこにPC①がいるかわかっているのでPC①にのみパケットを転送します。
このようにしてL2での通信が行われます。
まとめ
本記事ではL2での通信の流れを解説しました。
L2では特に難しいルーティングの考え方などもなく、直感的な流れだったと思います。
L2で学習すべき項目は他に無線LANや、VLANなどの技術がありますが、まずは基本となる上記の用語と通信フローを抑えておくと良いかと思います。
WEBページが表示されるまでのネットワークの基礎知識についてはこちらの記事でまとめています。
コメント