車載ではIPv4がメインですが、v4とv6の違いについて、ここで簡単に触れておきます。IPパケットの届け先はインターネットが発達していくにつれて増加し、従来のv4アドレス(32ビット=4バイト、最大43億通り(※10))では立ち行かなくなりました。そのため、128ビット(=16バイト、最大3.4×1038通り(※11))という広大なアドレス空間を持つv6が導入されました(図7参照)。
(※10)グローバルアドレスとして割り当て可能な数は、もっと少ないです。
(※11)340澗(かん)通り。現時点では、実用上ほぼ無限と言っても差し支えないと考えます。
アドレスは従来の10進数ではなく、16進数で2バイト毎に、:(コロン)で区切って表記するようになっています。この2バイト毎の塊をブロック(Block)と呼び、それが8つ連なる形です。なお、アドレスに0(ゼロ、Zero)が連続した場合には、それらをまとめて表現する方法が2つあります。ブロックが0だけで構成される場合に1つの0でブロック全体を表す”Reduced zeros”と、その0だけで構成されるブロックが連続した場合にコロンを2つ連続で表記することでその区間は全て0であることを表す”Reduced blocks”です。
アドレス以外には、ヘッダ構造が簡素化された点が大きな違いとして挙げられますが、アドレスが4倍の大きさになったためヘッダサイズは約2倍になり、その分ペイロードサイズが小さくなっています。
さて、イーサネット(およびTCP/IP)を学ぶ際によく疑問に思われるポイントは、「なぜMACアドレスとIPアドレスがあるのか? 何が違うのか?」というところです。以下に、その点を説明していきます。
まずお伝えしたいのが、MACアドレスとIPアドレスは、それを扱っているレイヤーが違うということです。(前者はレイヤー2、後者はレイヤー3)。MACアドレスはイーサネットフレームの宛先、送信元を示すのに対して、IPアドレスはIPパケットの宛先、送信元を示しています。続いて思い出していただきたいのが、イーサネットフレームはIPパケットにとっての乗り物であるということです(図8参照)。イーサネットフレームを列車、IPパケットを乗客に例えると、列車の行き先を示すのがMACアドレス、乗客の行き先を示すのがIPアドレスです。
さて、現実世界で列車に乗って移動する際、鉄道ネットワークがさまざまな路線から成り立っている関係上、列車と乗客の行き先が同じ(路線)であるとは限らず、そうでない場合には乗り換えが必要です。現在のインターネットは、スイッチだけで構成された1ネットワークを無数につなぐ形で実現されています。そのネットワーク間をつなぐやりとりをつかさどるものの1つが、ルーター(※12)です。
(※12)IPアドレスに基づいて情報の経路振り分け(ルーティング)をするのがルーターですが、ゲートウェイと呼ばれることもあります。ただし、ゲートウェイの方が広い意味で使われることもあり、かつ、プロトコル変換を伴います。
列車での移動に例えるなら、乗換駅兼(次の乗換駅までの)乗換案内役というわけです。さまざまな情報をあらゆる所に届けるための方法が必要になった結果、乗り物であるイーサネットネットワークとその乗り物に乗って目的地に移動するためのIPネットワークという、階層の異なるネットワークが存在することになったのです。
では、ここでMACアドレスとIPアドレスの関係とルーターの役割を乗換案内に例えて説明してみます(図9参照)。例えば、東京の天王洲アイル駅から、名古屋のささしまライブ駅(※13)まで行くとしましょう。Webまたは乗換案内アプリで経路を検索すると「天王洲アイル駅-モノレール->浜松町駅-山手線->品川駅-新幹線->名古屋駅-あおなみ線->ささしまライブ駅」のような経路が出るはずです。ただ、インターネット上の経路は最適な経路が時々刻々と変化していますので、全ての経路が最初から決まっているわけではなく、ルーターがその時に最適であると判断した経路(※14)に従って乗換え(転送)を実現しています。
(※13)天王洲アイル駅、ささしまライブ駅はそれぞれ、ベクター・ジャパンの東京本社、名古屋支社の最寄り駅で、たまたま例として選びました。
(※14)現実世界でも、事故等が発生すると、初めに経路案内で示された経路ではなく、別の経路を取ることがあります。それと同様です。
そしてこの例では、各駅がルーターに当たります。従って乗客(IPパケット)は、まずは「天王洲アイル駅」からモノレールに乗り「浜松町駅」に向かいます。この時に乗るモノレールの行き先がMACアドレスのDAに相当します。「浜松町駅」に着いた乗客は、自分のIPの宛先アドレスを見せると(実際にはルーターが見て)、次は「品川駅」に山手線を使って行くように指示され山手線に乗り込むわけです。続いて「品川駅」に着いた乗客は……という風に繰り返していき、最終的には目的地である「ささしまライブ駅」に到着します。
ここでのポイントは、「出発地と目的地を示すIPアドレスは変わらないが、乗換えの際に乗る列車の行き先を示すMACアドレスは変わっていく」ということです。またIPパケットは無限に乗換え(転送)ができるわけではなく、決められた回数を超えてしまうと乗換えができなくなります。具体的には、IPヘッダの説明に出てくる”Time to Live”により、その上限が決められています。このフィールドは、ルーターから別のルーターに転送される際に「1」ずつ減らされていき、その値が「0」になると、それ以上の転送はされなくなります。先ほどの例でいえば、乗換えの回数券のようなものだと思ってください(3枚あれば行けますが、2枚だと名古屋駅どまり)。このフィールドは何らか(※15)の理由で目的地に到達できないIPパケットが無限にネットワーク上に存在することを防ぐために存在しています。
(※15)ルーターの設定ミスや経路上の障害など。
今回は、データリンクレイヤーについて、そこで使われるMACアドレス、イーサネットフレームの構造に続き、そのイーサネットフレームに載せられて送られるIPパケットの構造とIPアドレスおよびIPアドレスとMACアドレスの違いについて説明しました。次回は、このIPパケットに載せられて送られるTCPセグメント/UDPデータグラムの構造や振る舞いについて紹介していきたいと思います。
ベクター・ジャパンにて、AUTOSAR関連およびイーサネットのトレーニングサービスに従事。限られた時間のなかで、受講者の役に立つ情報を、より分かりやすく提供することを目指し、日々業務に取り組んでいる。
▼ベクター・ジャパン
▼トレーニングサービス専用サイト
Copyright © ITmedia, Inc. All Rights Reserved.