連載
» 2020年04月20日 06時00分 公開

はじめての車載イーサネット(4):IPパケットに載せられて運ばれるもの、UDP/TCPとその上位プロトコル (1/5)

今回は、このIPパケットに載せられて送られるトランスポートレイヤー(第4層)に相当するTCPセグメント/UDPデータグラムの構造や振る舞い、そして車載イーサネットで用いられる上位プロトコルを紹介していきたいと思います。

[中村伸彦(ベクター・ジャパン),MONOist]

 前回は、データリンクレイヤーについて、そこで使われるMACアドレスとイーサネットフレームの構造に続いて、イーサネットフレームに載せられて送られるネットワークレイヤーに相当するIPパケットの構造とIPアドレス、IPアドレスとMACアドレスの違いについて説明しました。今回は、このIPパケットに載せられて送られるトランスポートレイヤー(第4層)に相当するTCP(Transmission Control Protocol)セグメント/UDP(User Datagram Protocol)データグラムの構造や振る舞い、そして車載イーサネットで用いられる上位プロトコルを紹介していきたいと思います。

≫連載「はじめての車載イーサネット」バックナンバー

TCP/UDPとポート

 まず、おさらいから入りましょう。OSIにおける第2層データリンクレイヤーにおけるPDUが、イーサネットフレーム、そのペイロード部分(SDU)に載せられて運ばれるのが第3層ネットワークレイヤーにおけるPDU、IPパケットでした。これと同じ関係が、IPパケットとTCPセグメント/UDPデータグラムの間にはあるわけです。つまりIPパケットのペイロード部分に載せられて運ばれるのが、第4層トランスポートレイヤーにおけるPDUであるTCPセグメントやUDPデータグラムです。もちろんこれらも上位層に渡すデータであるペイロード(SDU)と制御情報(PCI)であるヘッダに分かれています(図1参照)。

図1:各プロトコルレイヤーの関係(クリックして拡大) 出典:ベクター

 このヘッダには、イーサネットフレームやIPパケットのヘッダ部分同様に、宛先と送り元を示す情報が存在しています。その情報をTCP/UDPでは、ポート(Port)とよんでいます(※1)前回で使った乗換案内の例で改めて説明してみます。まずイーサネットフレームはIPパケットにとっての乗り物、つまり列車。IPパケットはその乗客でした。さらに列車の出発駅・到着駅を示すのがMACアドレス、乗客の出発駅・到着駅を示すのがIPアドレスです。

(※1)レイヤー4アドレスです。レイヤー2スイッチのポートとは違います。16ビットの情報で0-65535の値をとることができます。そのうち0-1023まではウエルノウン(Well known)ポートとよばれTCP/IPの主要なサービスが使用している予約された番号で、IANA(International Assigned Number Authority、IPアドレスやポート番号、プロトコル番号などの管理を行う組織)が管理しています。この番号は、それらのサービスを提供しているサーバ側で使われます。別の言い方をすると、勝手に使ってはいけないポートです。1024以降の扱いは2種類(TraditionalとRFC6056)あり、実装によってどちらを使うかが決まってきます。

 そして今回のポートは出発駅・到着駅に直結しているマンションTCP棟とUDP棟にある部屋番号にあたります。実はこの乗客(IPパケット)、駅の外には出られないのです。出発駅ではTCPやUDPという別の荷物担当(上位プロトコル)が、それぞれの担当する棟の部屋(ポート)から荷物を回収し箱(TCPセグメント/UDPデータグラム)に詰めて改札口で乗客に渡します。そして最終的にIPアドレスで示された駅に到着したら、乗客が荷物を改札でTCPまたはUDPに渡すと、それぞれの担当の棟のポートで示された部屋まで届けてくれるイメージです(※2)

(※2)それぞれの部屋にはTCPまたはUDPの上位プロトコルやアプリケーションがいるわけです。

       1|2|3|4|5 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.