OSI参照モデルを紐解いていこう ー第2層(データリンク層) ①イーサネット
はじめに
皆さん、こんにちは。ネットワークスペシャリストの左門です。本連載では、難しいネットワークを、身近な事例に置き換えながらわかりやすくお伝えしていきます。
第2回では、OSI参照モデルとレイヤについて紹介し、第3回では、OSI参照モデルの第1層(物理層)について解説しました。今回は、第2層(データリンク層)です。今回も、引き続き身近な事例として、郵便に置き換えて解説していきます。
全国どこでもたった63円で
ハガキを送れる仕組み
はがきの料金は、全国一律63円です。手書きで書いた生のハガキを郵便局の人が直接届けてくれるのに、たった63円です。しかし、私たちが電車や飛行機、車などでハガキを直接届ける場合、63円ではとても届けることができません。なぜ、こんな料金で送ることができるのでしょうか。
理由はもちろんわかりますよね。いろいろなハガキをまとめて送っているからです。1通のハガキを北海道に送るためだけにトラックを走らせては63円では大損です。しかし、北海道宛ての大量のハガキをトラックでまとめて送ることで、1通あたりのコストを下げることができます。
実は、インターネットも同じ仕組みを利用しています。インターネットがない時代は、専用線を使って企業間でデータのやり取りをしていました。当たり前ですが、専用線はその企業専用の設備を用意する必要があるため、とても高額です。
例えば、株式会社オプテージの1Gbps専用線の場合、50㎞までの月額費用は600万円超です。50kmは大阪から京都くらいまでです。仮に北海道だったら、もっと膨大な金額になってしまいます。一方、皆さんの家庭のインターネットは1Gbpsでわずか6,000円くらいだと思います。非常に安価です。
専用線ではなく、インターネットでデータを送ると、なぜ安いのでしょうか。先の郵便と同じ理屈で、みんなが相乗りしているからです。同じ線の上にデータを流すことで、コストを下げているのです。
ここで皆さん、疑問がわきませんか? 専用線は1対1で通信相手は1つだけですから、その1つの宛先にデータを正しく届けられるでしょう。しかし、みんなが同じ線を使ってデータを流した場合、複数のデータがごちゃまぜになります。そして、データを届けるあて先もバラバラ。これで、うまく届けられるのでしょうか。
複数の荷物を
どうやって複数の宛先に正しく届けるか
イメージを膨らませていきましょう。荷物を運んでくれるトラックを思い浮かべてください。そこに、大勢の人が服やお菓子、書類など、送りたいものを好き勝手に投げ込んだとします。これだと、荷物がバラバラになってしまいますよね。ではどうするか。宅配便やゆうパックを思い浮かべれば簡単です。そうなんです。段ボールに入れれば良いのです。
服やお菓子、書類などを段ボールに入れれば、荷物がバラバラになりません。実は、ネットワークでも同様に、データを段ボールに入れるようなことをしています。具体的には、パケット(またはフレーム)という、ひとまとまりのデータにします。パケット(packet)は日本語で「小包」という意味です。小包にしておけば、データはバラバラになりません。
でも、次の疑問があります。小包にしても、みんなが同じトラックを共用していれば、どの段ボールがどの宛先の荷物なのかがわかりません。どうすれば良いのでしょう。これらも簡単です。宅配便のように宛名のラベルを書けば良いのです。「差出人」「宛名」「箱の中身」などを書けば、届けたい人にその荷物を届けることができます。
ITのネットワークの世界も同じで、パケットには「宛先」と「送信元」の情報を記載します。ついでに、どんなデータが入っているかという中身を「タイプ」として記載します。
イーサネットの仕組み
では、これまで説明してきたことを、ITのネットワークの世界でどうなっているか、詳しく説明します。
まず、連載第1回で、ネットワークの3分類としてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットがあることを紹介しました。ここでは、LANにおける通信の流れを説明します。LANは皆さんの会社の中でのネットワークと考えてください。
LANには、いくつかの規格があります。その中で、私たちが使っている規格はイーサネット(Ethernet)と呼ばれます。それ以外にもいくつかの規格がありますが、現在はほとんど使われていません。
イーサネットは、通信する速度やケーブルの種類によって、さらにいくつかの規格に分けられます。各社は規格に従った製品を作るので、規格を合わせておけば、異なるメーカや異機種でも相互に通信できます。
イーサネットの規格は、以下の表記方法を使います。この表記の意味は、左から順に、伝送速度(この場合は1000Mbps)、伝送方式(この場合はベースバンド方式※)、ケーブルの種類(この場合はツイストペアケーブルのT)です。
*ベースバンド方式は、デジタルデータをそのまま伝送する方式です。現在利用されているイーサネットはすべてベースバンド方式です。ベースバンド方式以外にも、デジタルデータをアナログデータに変換して伝送するブロードバンド方式がありますが、使用されていません。
イーサネットでは、宅配便の例えで述べたように、転送するデータに「宛先」と「送信元」の情報を付与して、イーサネットフレームにします(この処理を「カプセル化」と言います)。このとき、宛先や送信元に使う情報は、第1回で解説したMACアドレスを使用します。カプセル化されたイーサネットフレームは、下記のような構造になっています。
- 宛先MACアドレス:宅配便の宛名ラベルにおける「宛先の名前」です。通信相手のMACアドレスがここに入ります。
- 送信元MACアドレス:宅配便の宛名ラベルにおける「差出人の名前」です。フレームを送信する機器のMACアドレスがここに入ります。
- タイプ:宅配便の宛名ラベルにおける「荷物の中身」です。どんな内容のデータが入っているかがここに入ります。例えば、IPv4というプロトコルのデータなのか、IPv6のデータなのか、ここを見ればわかります。
- データ:送りたいデータの中身です。メールおよびその添付ファイルなどのデータが格納されていると考えてください。
- FCS(Frame Check Sequence):データが通信途中で欠落していないかをチェックするための情報です。
また、1~3の部分を、イーサネットヘッダと言います。
さて、ここでパケットとフレームという2つの言葉が出てきました。違いを簡単に説明しておきます。一般的には、データリンク層(第2層)ではフレーム、ネットワーク層(第3層)ではパケットという言葉を使います。ちなみに、トランスポート層(第4層)ではセグメントという言葉を使いますが、ネットワークの現場で、この言葉を使うことはあまりありません。
ただ、パケットとフレームを厳密に区別して使い分ける必要はありません。例えば、この後で流れるパケットを取得するパケットキャプチャを紹介しますが、レイヤ2のフレームでも「パケットキャプチャ」と言います。
実際のパケットを見てみよう
私が新入社員のころ、何冊もの本でネットワークを勉強しました。どの本にも、上図のようなフレーム構造が記載されています。しかし、何度読んでも心の底から理解することはできませんでした。それは、実際にフレームというものを見たことがないからです。ですが、実際に流れているフレームを見たことは、まさに「百聞は一見にしかず」でした。「なるほど、こういうことか」と初めて理解できたのです。
そこで、皆さんにも実際のフレームを見ていただきたいと思います。そのために利用するソフトが、無料で利用できる「Wireshark」です。Windows PCでは、画面上方にある「Windows Installer (64-bit)」をクリックするとダウンロードできます。
Wiresharkの詳細な操作説明は省略しますが、皆さんもネットなどでやり方を検索しながら、実際に通信するフレームを見てください。私の「目から鱗が落ちる」という気持ちに共感できると思います。
簡単に、データの見方を紹介しておきます。下図は、私のPCから自宅のWi-Fiルータに通信した場合のイーサネットフレームです。初めて見る人には見づらいでしょうが、まずは雰囲気を味わってください。
❶が生データです。16進数の数字が並んでいます。LANはデジタルデータで通信するため、0と1の信号を送ります。本来は「11010001110110100110010101000110111110…」というデータが流れているのですが、16進数に変換されて「34 76 c5 99 51 be…」と表示されています。そして、実はこれがイーサネットヘッダ(❷)なのです。特に、この34 76 c5 99 51 beという値は、❸にあるようにI-ODataのMACアドレスで、Destination、つまり宛先MACアドレスを示しています。
そして、❶の生データの続きを見ると「40 b8 9a 20 6f 1d」とあります。これは送信元MACアドレスであることが❸から見て取れるでしょう。また、生データの続きとして「08 00」があります。これは、❸からTypeとしてIPv4を示していることがわかります。つまり、先ほど記載したイーサネットフレームの構成の通りになっています。
何となくでも、LANのフレーム構造をイメージできたでしょうか。
おわりに
今回は、OSI参照モデルの第2層(データリンク層)について解説しました。データリンク層の仕組みや役割が、少しは理解できたでしょうか。
データリンク層には、大きく2つの役割があります。1つは、複数の人同士が通信できるようにカプセル化し、データをフレームにまとめます。もう1つは、データを正しく送信するために、宛先MACアドレスを付与したり、FCSで送信データのエラーがないかを確認します。
次回は、データリンク層の続きとして、データリンク層の重要な機器である「スイッチングハブ」について解説します。
左⾨ ⾄峰 著 |
ストーリーで学ぶ ネットワークの基本実務にひもづく基本知識が身に付く!
|
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OSI参照モデルを紐解いていこう ー第2層(データリンク層) ②スイッチングハブ
- イーサネットネットワークでのデータ送信
- OSI参照モデルを紐解いていこう ー第3層(ネットワーク層) ①ネットワーク層の役割とIPアドレス
- ネットワークにおいて、最もわかりづらい「プロトコル」を理解しよう
- ネットワークって何? 〜ネットワークと郵便は同じ仕組み〜
- OSI参照モデルを紐解いていこう ー第3層(ネットワーク層) ②ルーティング
- ネットワーク全体から見る「スイッチ超入門」
- ネットワーク層の機能(前編)―パケット転送時の役割―
- OSI 7階層参照モデルとは?
- OSI参照モデルを紐解いていこう ー第4層(トランスポート層)