IPパケットに載せられて運ばれるもの、UDP/TCPとその上位プロトコル:はじめての車載イーサネット(4)(4/5 ページ)
今回は、このIPパケットに載せられて送られるトランスポートレイヤー(第4層)に相当するTCPセグメント/UDPデータグラムの構造や振る舞い、そして車載イーサネットで用いられる上位プロトコルを紹介していきたいと思います。
(4)ECU Bへのデータ送信
まずECU Aが10バイトのデータを送ります。ECU Bは10バイトのデータを受信しました。
(5)アクノリッジとECU Aへのデータ送信
ECU Bは、ACKをセットし受信したシーケンス番号(1301)+受信データバイト数(10)=1311を確認応答番号として「アクノリッジ」を返します。その際にECU Bは併せて20バイトのデータを送っています。ECU Aは20バイトのデータを受信しました。
(6)アクノリッジ
ECU Aは、送信されてきたACKと確認応答番号(1311)をチェックし、データが正しく受信されたことを確認します。またECU Bが送ってきたシーケンス番号(3501)+受信データバイト数(20)=3521を確認応答番号としてACKをセットし「アクノリッジ」を返します。ECU Bは、受け取った「アクノリッジ」の応答確認番号が送ったシーケンス番号(3501)+送ったデータバイト数(20)=3521であることで、データが正常に受信されたことを確認します。
そして最後には、コネクションを解放します(図7参照)。
(7)コネクション解放
データ転送が終了し、通信の必要がなくなったため、ECU AがFINをセットし「コネクション解放要求」を送ります。
(8)アクノリッジ
「コネクション解放要求」を受け取ったECU Bは、受信したシーケンス番号(1311)+1=1312を確認応答番号として「アクノリッジ」を送ります。それを受け取ったECU Aは、受信した「アクノリッジ」の応答確認番号が送ったシーケンス番号(1311)+1=1312であることで、「コネクション解放要求」が受け付けられたことを確認します。
(9)コネクション解放
コネクションが双方向でしたので、ECU BからECU Aへコネクション解放も行います。
(10)アクノリッジ
それに対し、ECU AはECU Bにアクノリッジを返します。なお、この例では双方1往復ずつのやりとりをしていますが、コネクション確立時と同様にスリーウェイで解放することもできます。
ここでは、簡単な例でTCPの動作の一部を紹介しました。実際にはTCPはエラー検出時のリトライや、到着したデータの正しい順番への並べ替え(※9)をはじめとする高機能かつ信頼性の高いプロトコルです。ただ即時性は、コネクション確立等のオーバーヘッドがあり、UDPと比較した際に劣ります。つまりTCP/UDPともに一長一短があるため、上位のプロトコル(サービス)が、用途に合わせて使い分けています。
(※9)インターネット上では必ずしも同じルートを通るわけではないので、到着順も保証されていません。そのためシーケンス番号を見ることで受信側は正しい順番にデータを並べ替えます。
Copyright © ITmedia, Inc. All Rights Reserved.