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

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

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

コネクションレスは駅のアナウンス、コネクションオリエンテッドは電話

 続いて、UDP/TCPのPDU構造や振る舞いを説明したいところですが、その前にこれらのプロトコルを理解するのに重要な2つの考え方を紹介します。それが、コネクションレスコミュニケーションとコネクションオリエンテッドコミュニケーションです。

 これらの特徴は、それぞれ駅のアナウンスと電話における情報の送り方になぞらえることができます。まずはコネクションレスコミュニケーションですが、これは駅のアナウンスだと思ってください。つまり、下記のような特徴があります。

  • 複数の人に同時に情報を届けることができる
  • 情報を受け取るための特別な手続き(コネクション)は不要
  • 送り手は、受け手が情報を受け取ったか否かについて興味がない(送りっぱなし)
  • 受け手も、聞こえなかったとしても気にしない(※3)

(※3)重要なアナウンスだと気にしますが普段は聞き流しているはずです。

 一方、コネクションオリエンテッドコミュニケーションは電話ですので、下記のような流れが存在しています。

  • 情報をやりとりするための特別な手続き(コネクション)が必要(電話をかけて相手が出るのを確認する)
  • 1つのコネクションでやりとりすることができる相手は1人だけ
  • 送り手は受け手がきちんと聞いているかを気にするので、受け手は聞こえたら相づち(アクノリッジ)を返す
  • 送り手は受け手から相づちが返ってこないと、次の話はしない(もしくは繰り返す)
  • 話が終わったら電話を切る(コネクションを切る)

 UDPとTCPは、それぞれコネクションレスコミュニケーション、コネクションオリエンテッドコミュニケーションのプロトコルですので、そのために必要な制御情報や通信時の振る舞いが異なっています。では、それぞれ見ていきましょう。

UDPの振る舞いとヘッダ構造

 繰り返しになりますが、UDPはコネクションレスコミュニケーション、つまり駅のアナウンスなので、「出しっぱなし・送りっぱなし」ということです。従って制御情報も宛先(デスティネーション)ポート、送り元(ソース)ポート(※4)、データ長(※5)、そしてチェックサムの4つだけです(図2参照)。従って、エラー処理もシンプルで、受信側におけるチェックサム(※6)確認のみです。TCPと比較すると信頼性は劣りますが、オーバーヘッドが小さく、即時性に優れます。なおUDPにおけるPDU(PCI:ヘッダ+SDU:データ)はデータグラムとよばれます(※7)(図3参照)。

(※4)返信を期待しない処理の場合は、省略する(0とする)ことができます。
(※5)ヘッダと実データ長の合計、つまりはUDPデータグラム全体の長さです。
(※6)v4だと、これすら省略することもできます。
(※7)一般用語である「パケット」を使うこともあります。

図2:UDPヘッダフォーマットとイーサネットフレーム内での位置(クリックして拡大) 出典:ベクター
図3:データ転送(UDP)(※8)(クリックして拡大) 出典:ベクター

(※8)TCP/IPの世界での通信は一般的に「クライアント・サーバ通信」で、先に通信を始めるのはクライアント側です。

Copyright © ITmedia, Inc. All Rights Reserved.