(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143710
(43)【公開日】2024-10-11
(54)【発明の名称】通信装置
(51)【国際特許分類】
H04L 47/24 20220101AFI20241003BHJP
【FI】
H04L47/24
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023056509
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】金子 悟士
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA14
5K030HB17
5K030KA08
5K030LA03
5K030MA06
(57)【要約】
【課題】複数の実行単位で任意の優先度を使用できる通信装置を提供すること。
【解決手段】ECUは、通信インターフェースを含むオペレーティングシステムと、他ECUとの通信処理を制御するためのプラットフォームと、オペレーティングシステムおよびプラットフォームを利用するアプリケーションとを有したソフトウェアと、ソフトウェアを実行する処理装置とを備えている。アプリケーションは、ソケットを共有する複数の実行単位を有している。ECUは、各実行単位が呼び出す送信システムコールイーサネットフレームに含まれるデータの優先度情報を設定する(S15~S17)。そして、ECUは、設定した優先度情報を含むイーサネットフレームを生成する(S18)。
【選択図】
図4
【特許請求の範囲】
【請求項1】
通信インターフェースを含むオペレーティングシステムと、他通信装置との通信処理を制御するためのプラットフォームと、前記オペレーティングシステムおよび前記プラットフォームを利用するアプリケーションとを有したソフトウェアと、前記ソフトウェアを実行する処理装置とを備え、
前記アプリケーションは、ソケットを共有する複数の実行単位を有し、
前記プラットフォームは、
各実行単位が呼び出す送信システムコールで通信フレームに含めるデータの優先度情報を設定する設定部(S15~S17)と、
前記設定部で設定した前記優先度情報を含む前記通信フレームを生成する生成部(S18)と、を備えている通信装置。
【請求項2】
前記実行単位は、サービスインスタンスである請求項1に記載の通信装置。
【請求項3】
前記実行単位は、イベントグループである請求項1に記載の通信装置。
【請求項4】
前記ソケットとしてUDPソケットを共有する場合、通信層バッファに前記優先度情報を格納する格納部(S22)を備え、
前記生成部は、前記通信層バッファに格納された前記優先度情報を含む前記通信フレームを生成する請求項1~3のいずれか1項に記載の通信装置。
【請求項5】
前記優先度情報は、通信層バッファに格納されるものであり、
前記ソケットとしてTCPソケットを共有する場合、前記優先度情報が異なるごとに格納する前記通信層バッファを分割する分割部(S36)を備えている請求項1~3のいずれか1項に記載の通信装置。
【請求項6】
TCPセグメントを構成する際に、前記優先度情報が同一である前記データのみを送信用バッファへ格納する格納部(S41~S44)を備えている請求項5に記載の通信装置。
【請求項7】
前記生成部は、前記通信フレームとしてのイーサネットフレームにおけるIEEE802.1Qのヘッダに前記優先度情報を設定する請求項1に記載の通信装置。
【請求項8】
前記プラットフォームは、AUTOSAR Adaptive Platformである請求項1に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置に関する。
【背景技術】
【0002】
従来、通信装置の一例として、特許文献1に開示された技術がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、通信装置は、複数のサービスインスタンスなどの実行単位でトランスポートレイヤーのポート番号を共有する場合、それぞれで使用する別の優先度を使い分けることができない可能性がある。また、通信装置では、たとえば、アプリケーションに優先度が異なるデータを提供する二つのサービスインスタンスが存在するシステムが考えられる。よって、通信装置は、一つのアプリケーションに対して一つのポート番号しか解放できない場合、サービスインスタンスごとに優先度が異なっていても同じ優先度を共有する必要がある。
【0005】
開示される一つの目的は、複数の実行単位で任意の優先度を使用できる通信装置を提供することである。
【課題を解決するための手段】
【0006】
ここに開示された通信装置は、
通信インターフェースを含むオペレーティングシステムと、他通信装置との通信処理を制御するためのプラットフォームと、オペレーティングシステムおよびプラットフォームを利用するアプリケーションとを有したソフトウェアと、ソフトウェアを実行する処理装置とを備え、
アプリケーションは、ソケットを共有する複数の実行単位を有し、
プラットフォームは、
各実行単位が呼び出す送信システムコールで通信フレームに含めるデータの優先度情報を設定する設定部(S15~S17)と、
設定部で設定した優先度情報を含む通信フレームを生成する生成部(S18)と、を備えていることを特徴とする。
【0007】
ここに開示された通信装置は、各実行単位が呼び出す送信システムコールで通信フレームに含めるデータの優先度情報を設定する。そのため、通信装置は、ソケットを共有する複数の実行単位で任意の優先度情報を使用できる。
【0008】
この明細書において開示された複数の態様は、それぞれの目的を達成するために、互いに異なる技術的手段を採用する。請求の範囲およびこの項に記載した括弧内の符号は、後述する実施形態の部分との対応関係を例示的に示すものであって、技術的範囲を限定することを意図するものではない。この明細書に開示される目的、特徴、および効果は、後続の詳細な説明、および添付の図面を参照することによってより明確になる。
【図面の簡単な説明】
【0009】
【
図2】ソフトウェアの概略構成を示すブロック図である。
【
図3】バッファの概略構成を示すイメージ図である。
【
図4】レイヤ3の送信処理を示すフローチャートである。
【
図5】UDPの送信処理を示すフローチャートである。
【
図6】TCPの送信処理を示すフローチャートである。
【
図7】TCPのストリーム送信処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下において、図面を参照しながら、本開示を実施するための形態を説明する。本実施形態では、ECU100,200に通信装置を適用する。また、本実施形態では、車両に搭載可能なECU100,200を採用する。ECU100,200は、通信装置を備えているともいえる。
【0011】
ECU100,200は、制御対象が異なるものの、基本的な構成は同様である。つまり、ECU100,200は、アプリケーションの機能の一部が異なる。そのため、以下においては、主にECU100に関して説明する。なお、本開示は、二つのECU100,200に限定されず、三つ以上のECUが車両に搭載されていてもよい。
【0012】
ECUは、Electronic Control Unitの略称である。また、図面では、ソフトウェア10をSFT、アプリケーション11をAPP、プラットフォーム12をPF、オペレーティングシステム13をOS、演算処理装置20をCPU、コントローラ30をMAC、トランシーバ40をPHY、スイッチングハブ300をESWと表記している。
【0013】
<ECU>
図1に示すように、ECU100とECU200は、スイッチングハブ300を介して接続される。具体的には、ECU100とスイッチングハブ300とが通信線を介して接続され、スイッチングハブ300とECU200とが通信線を介して接続されている。ECU100,200及びスイッチングハブ300は、VLANの規格であるIEEE802.1Qに準拠している。なお、スイッチングハブ300を含むECU100とECU200をつなぐ経路は、イーサネット経路ともいえる。VLANは、Virtual LANの略称である。
【0014】
ECU100は、ソフトウェア10と、ソフトウェア10を実行する演算処理装置20と、イーサネット通信を行うためのコントローラ30およびトランシーバ40とを備える。コントローラ30は、メディアアクセスコントローラともいえる。トランシーバ40は、VLANI/Fともいえるし、物理トランシーバともいえる。コントローラ30の一例として、EthernetMACともいえる。トランシーバ40の一例として、EthernetPHYともいえる。スイッチングハブ300の一例として、EthernetSwitchを採用する。Ethernet(イーサネット)は、登録商標である。I/Fは、interfaceの略称である。
【0015】
ソフトウェア10は、ECU100におけるメモリとしてのROMに記憶されている。演算処理装置20は、ソフトウェア10をROMなどからRAMにロードして実行する。演算処理装置20は、ソフトウェア10を実行することで、コントローラ30およびトランシーバ40を用いてイーサネット通信を行う。ROMは、Read Only Memoryの略称である。RAMは、Random Access Memoryの略称である。メモリはROMに限定されることはなく、他の記憶媒体であってもよい。
【0016】
<ソフトウェア>
図2に示すように、ソフトウェア10は、オペレーティングシステム13と、プラットフォーム12と、これらを利用するアプリケーション11とのコンポーネント層を有する。
【0017】
オペレーティングシステム13は、イーサネット通信のインターフェースとして、BSDソケット13aと、TCP/UDP13bや、IP13c及びEthernet13dの各層(レイヤ)を処理するプログラムと、イーサネット通信のドライバ(DRI)13eとを有する。本実施形態では、オペレーティングシステム13の一例として、POSIXOSを採用する。POSIXは、Portable Operating System Interfaceの略称である。POSIXOSは、POSIXに準拠したOSともいえる。
【0018】
なお、図面では、BSDソケット13aをBSDと略称で表記している。TCPは、Transmission Control Protocolの略称である。UDPは、User Datagram Protocolの略称である。IPは、Internet Protocolの略称である。
【0019】
TCP/UDP13bは、レイヤ4(トランスポート層)の通信プロトコルといえる。TCP/UDP13bでの通信では、通信相手のアプリケーションプロセスを示すポート番号が定義される。以下では、TCP13b、UDP13bとも記載する。
【0020】
IP13cは、TCP/UDP13bの下位層であるレイヤ3(ネットワーク層)の通信プロトコルといえる。Ethernet13dは、IP13cの下位層であるレイヤ2(データリンク層)の通信プロトコルといえる。
【0021】
BSDソケット13aは、後ほど説明するアプリケーション11がTCP/UDP13bを呼び出すときに用いられる。BSDソケット13aは、アプリケーション11がTCP/UDP13bを利用するときに使うAPIともいえる。また、BSDソケット13aは、送信システムコールとして、TCP送信の送信APIやUDP送信の送信APIを含むといえる。上記ポート番号は、BSDソケット13aで用いられる識別子といえる。APIは、Application Programming Interfaceの略称である。
【0022】
なお、TCP/UDP13b、IP13c及びEthernet13dの各層の処理を行う際には、
図3に示す通信層バッファが用いられる。通信層バッファは、各種ヘッダ、ペイロードデータ及びその他の情報が格納される。詳述すると、通信層バッファは、ペイロードデータのほかに、次要素を示すポインタの領域と、プライオリティ(優先度情報)の領域とを有する。次要素ポインタが次に送信する通信層バッファのポインタを持つことでデータを連結させることができる。なお、以下、ペイロードデータを単にペイロードとも記載する。
【0023】
プライオリティは、その通信層バッファのペイロードの優先度を示す情報である。プライオリティは、イーサネットフレーム(通信フレーム)を構成する際にヘッダの所定フィールドに設定される。たとえば、プライオリティは、IEEE802.1QヘッダのPCPに設定される。よって、プライオリティは、PCPの値とみなせる。PCPは、Priority Code Pointの略称である。プライオリティは、VLANPriorityともいえる。図面では、プライオリティをVPとも表記する。
【0024】
また、BSDソケット13aの処理を行う際には、
図3に示すソケットバッファが用いられる。ソケットバッファは、通信層バッファへのポインタの領域とプライオリティの領域を有するが用いられる。
図3に示すように、通信層バッファへのポインタにより、そのBSDソケット13aで送信する連続したペイロードや、それらプライオリティにアクセスできるようになる。イーサネットフレームを構成する際、通信層バッファにプライオリティが設定されていない場合、ソケットバッファのプライオリティを初期値としてPCPに設定する。
【0025】
プラットフォーム12は、ECU100,200間の通信処理を制御するコミュニケーションマネジメント(COM)12aのインターフェースを提供する。つまり、ECU100のプラットフォーム12は、ECU200などの他通信装置との通信処理を制御するためのものといえる。コミュニケーションマネジメント12aは、イーサネット通信で利用されるSOME/IP12bやDDS12cのプロトコルをバインドする。SOME/IPは、Scalable service-Oriented MiddlewarE over IPの略称である。DDSは、Data Distribution Serviceの略称である。本実施形態では、プラットフォーム12の一例として、AUTOSARAdaptivePlatformを採用する。
【0026】
アプリケーション11は、オペレーティングシステム13およびプラットフォーム12を利用する。アプリケーション11は、コミュニケーションマネジメント12aが提供するインターフェースを用いてサービスインスタンス11aやイベントグループ11bを構成する。また、アプリケーション11は、実行単位としてサービスインスタンス11aやイベントグループ11bを含んでいるといえる。本実施形態では、一例として、複数のイベントグループ11bを含むサービスインスタンス11aが複数構成されたアプリケーション11を採用している。
【0027】
サービスインスタンス11aは、ECU200などの他装置のアプリケーション11に対してサービスを提供するための通信サービスである。イベントグループ11bは、インターフェースをグループ化したものである。サービスインスタンス11aやイベントグループ11bは、送信APIを呼び出し可能に構成されている。
【0028】
サービスインスタンス11aとイベントグループ11bは、イベント通信のインターフェースを複数有することができる。図面では、サービスインスタンスをSI(ServiceIntance)、イベントグループをEG(EventGroup)と表記している。
【0029】
ECU100は、たとえばBSDソケット13aの送信APIでプライオリティを指定可能に構成されている。これによって、ECU100は、複数のサービスインスタンス11aや複数のイベントグループ11bがBSDソケット13aを共有しながら、異なるPCPを制御できるように構成されている。ECU100は、送信APIで指定されたデータに対し、データを送信するために必要なプロトコル処理が実行される。
【0030】
また、ECU100は、TCP13bおよびUDP13bの送信処理でデータ格納に用いる通信層バッファにプライオリティを持たせている。ECU100は、プライオリティが異なった時に通信層バッファを分断することで、1つのイーサネットフレームのPCPの値が一つに決まるようにしている。この点に関しては、後ほど詳しく説明する。
【0031】
<処理動作>
図4~
図7を用いて、処理動作に関して説明する。
図4~
図7のフローチャートは、演算処理装置20がソフトウェア10を実行することで行われる。よって、ソフトウェア10は、
図4~
図7の各ステップで示す手順(機能)を含んでいるともいえる。
【0032】
まず、
図4を用いて、レイヤ3の送信処理に関して説明する。本実施形態では、通信データが格納されている通信層バッファにプライオリティの領域が存在することを前提としている。
【0033】
ステップS10では、レイヤ3のヘッダを作成する。次に、ステップS11ではレイヤ2のヘッダを作成する。このように、レイヤ3のヘッダとレイヤ2のヘッダを順番に作成する。
【0034】
ステップS12では、VLANI/Fから送信するか否かを判定する。VLANのI/Fから送信すると判定すると、ステップS13へ進み、VLANのI/Fから送信すると判定しないと、ステップS18へ進む。
【0035】
ステップS13では、通信層バッファにプライオリティ(VP)が設定されているか否かを判定する。通信層バッファにプライオリティが設定されていると判定するとステップS17へ進み、設定されてないと判定するとステップS14へ進む。
【0036】
ステップS14では、BSDソケット13a(ソケットバッファ)にプライオリティが設定されているか否かを判定する。BSDソケット13aにプライオリティが設定されていると判定するとステップS16へ進み、設定されてないと判定するとステップS15へ進む。
【0037】
ステップS17では、通信層バッファのプライオリティをPCPに設定する。ステップS16では、BSDソケット13aのプライオリティを初期値としてPCPに設定する。また、通信層バッファとBSDソケット13aのどちらにもプライオリティが設定されてない場合は、ステップS15でVLANI/FのプライオリティをPCPに設定する。このように、ECU100では、送信APIでイーサネットフレームのプライオリティを設定できる。また、ソフトウェア10は、送信APIでイーサネットフレームのプライオリティを設定できる手順を備えているといえる。ステップS15~S17は、設定部に相当する。
【0038】
ステップS18では、フレームを構築する。つまり、レイヤ3のヘッダがとレイヤ2のヘッダが生成できたらレイヤ3のペイロードと連結してイーサネットフレームを生成する(生成部)。よって、VLANI/Fから送信する場合、ステップ18にてステップS15~S17のいずれかで設定したプライオリティをイーサネットフレームに設定する。
【0039】
ステップS19では、コントローラ30(MAC)を操作する。つまり、コントローラ30を制御することで、ステップS18で生成したイーサネットフレームを送信する。このとき、トランシーバ40を介して、イーサネットフレームをイーサネット経路上に送信する。
【0040】
ところで、SOME/IP Specification R21-11 PRS_SOMEIP_00163によると、AUTOSARAdaptivePlatformにおいて複数のSOME/IPサービスインスタンスは、同一のトランスポート層のポート番号を共有できる。また、Specification of Manifest R21-11 10.1.1 VLAN Priorityによると、AUTOSARAdaptivePlatformでは、サービスインスタンス毎にVLANPriorityを設定できる。さらに、AUTOSARAdaptivePlatformが前提とするLinux(登録商標)のようなPOSIXOSでは、トランスポート層のポート番号は、BSDソケットに1:1で対応し、VLANPriorityはBSDソケットに対して固有の値が設定される。これにより、BSDソケット単位でIEEE802.1Qに準拠するPCPの制御が可能となる。したがって、複数のサービスインスタンスがトランスポート層のポート番号を共有する場合、それぞれで使用したい別のIEEE802.1Qに準拠するPCPを使い分けることができない。
【0041】
しかしながら、例えば、アプリケーション11は、高い優先度のデータを提供するサービスインスタンス11aと低い優先度のデータを提供するサービスインスタンス11aの二つが存在しているものとする。この場合、システムの制約上一つのアプリケーション11に対して1つのポート番号しか解放できない場合、サービスインスタンス11a毎にデータの優先度が違っていてもプライオリティとして同じ値を共有しなければならない。これによって、トランシーバ40やスイッチングハブ300によるイーサネットフレームを通信する際の優先制御ができなくなることが考えられる。また、複数のイベントグループ間でも同様である。
【0042】
そこで、ECU100は、BSDソケット13aの送信APIからサービスインスタンス11aの単位でプライオリティを設定できるように構成している。そのため、ECU100は、BSDソケット13aを共有する複数のサービスインスタンス11aが任意のPCPの値を使用できる。同様に、ECU100は、送信APIからイベントグループ11bの単位でプライオリティを設定できる。
【0043】
そのため、ECU100は、BSDソケット13aを共有する複数のサービスインスタンス11aや複数のイベントグループ11bが任意のPCPの値を使用できる。つまり、ECU100は、トランスポート層のポート番号を共有する複数のサービスインスタンス11aや複数のイベントグループ11bで異なるPCPを制御可能といえる。さらに、ソフトウェア10は、BSDソケット13aを共有する複数のサービスインスタンス11a、または複数のイベントグループ11bで任意のPCPの値を使用させることができるともいえる。したがって、ECU100は、トランシーバ40やスイッチングハブ300によるイーサネットフレームの送信、受信、転送における優先制御が可能となる。なお、BSDソケット13aを共有するとは、ポート番号を共有することと同意である。
【0044】
次に、
図5を用いて、UDP送信処理に関して説明する。
図5のフローチャートは、UDPの送信APIが呼び出されると実行される。
【0045】
ステップS20では、通信層バッファを確保する。送信APIが呼び出されると、ペイロード(送信ペイロード)が格納できる通信層バッファを確保する。ステップS21では、通信層バッファへペイロードをコピーする。通信層バッファを確保した時、直前のストリームデータの次要素ポインタを更新することでデータを連結させる。
【0046】
ステップS22では、通信層バッファへプライオリティを格納する。引数で渡されたプライオリティを通信層バッファへ格納する(格納部)。ステップS23では、レイヤ4ヘッダを生成する。ここでは、UDPヘッダを生成する。そして、ステップS24では、レイヤ3の送信処理を実行する。
【0047】
ECU100は、複数のサービスインスタンス11aなどでUDPソケットを共有する場合、通信層バッファにプライオリティを直接設定できる。すなわち、ECU100は、UDP送信の送信APIで用いられるポート番号を共有する場合、通信層バッファにプライオリティを直接設定できる。この場合、ECU100は、ステップS13、S17を実行することになる。そのため、ECU100は、ステップS18で、通信層バッファに格納されたプライオリティを含むイーサネットフレームを生成する。よって、ECU100は、UDPのイーサネットフレームのPCPの値を送信APIの単位で変更できる。また、ECU100は、UDPの一つのイーサネットフレームのPCPの値を一つとすることができる。
【0048】
次に、
図6、
図7を用いて、TCP送信処理に関して説明する。TCP送信処理は、TCPの送信APIが呼び出されたときの処理と、TCPストリームを送信するときの処理に分けられる。
【0049】
図6は、TCPの送信APIが呼び出されると実行される。ステップS30では、既存の通信層バッファに空き領域があるか否かを判定する。空き領域があると判定するとステップS31へ進み、空き領域がないと判定するとステップS34へ進む。
【0050】
ステップS31では、格納済みの直前のストリームデータ(SD)とプライオリティ(VP)が一致しているか否かを判定する。つまり、直前のストリームデータのプライオリティと、今回送信するストリームデータのプライオリティが一致しているか否かを判定する。一致していると判定するとステップS32へ進み、一致してないと判定するとステップS34へ進む。ストリームデータは、データに相当する。ストリームデータは、送信ペイロードともいる。
【0051】
通信層バッファに空きがあり、かつ、ストリームデータとプライオリティが一致している場合は、ステップS32、S33を実行する。ステップS32では、直前のストリームデータを格納している通信層バッファの空き領域に送信ペイロードをコピーする。ステップS33では、同一プライオリティの送信ストリームサイズ(TSS)サイズを更新する。
【0052】
通信層バッファに空きがない場合やストリームデータとプライオリティが一致してない場合は、ステップS34~S37を実行する。ステップS34では、ペイロードが格納できる通信層バッファを確保する。ステップS35では、その通信層バッファに送信ペイロードをコピーする。なお、通信層バッファを確保したとき、直前のストリームデータの次要素ポインタを更新することでデータを連結させる。
【0053】
ステップS36では、次に引数で渡されたプライオリティを通信層バッファへ格納する(分割部)。ステップS37では、通信層バッファをストリームキューへ連結する。そして、ステップS38のTCPストリームの送信処理に進む。
【0054】
このように、ECU100は、複数のサービスインスタンス11aなどでTCPソケットを共有する場合、プライオリティが異なるごとに格納する通信層バッファを分割する。すなわち、ECU100は、TCP送信の送信APIで用いられるポート番号を共有する場合、プライオリティが異なるごとに格納する通信層バッファを分割する。また、ECU100は、TCPソケットを共有する場合、ストリームデータのプライオリティが変わる位置で通信層バッファを分割するといえる。よって、ECU100は、TCPのイーサネットフレームのPCPの値を送信APIの単位で変更できる。また、ECU100は、TCPの一つのイーサネットフレームのPCPの値を一つとすることができる。
【0055】
次に、
図7を用いて、TCPストリームの送信処理に関して説明する。なお、
図7は、ACK受信処理で呼び出された場合にも実行される。よって、ECU200などの通信相手からの肯定的な応答の受信処理で実行されてもよい。ACKは、ACKnowledgementの略称である。
【0056】
ステップS40では、送信可能な状態になるまで待つ。つまり、送信可能サイズ(TPS)に空きがでるまで待機する。そして、送信可能サイズに空きがでると、ステップS41へ進む。また、送信可能サイズに空きがなくなるまで、ステップS41~S46を繰り返し実行する。なお、送信可能サイズは、ACKの応答を待つことなく送信できるデータ量である。送信可能サイズは、一つのイーサネットフレームを送信できるサイズともいえる。
【0057】
ステップS41では、同一プライオリティの送信ストリームサイズ(TSS)が送信可能サイズ(TPS)より大きいか否か判定する。送信ストリームサイズ>送信可能サイズと判定するとステップS42へ進み、送信ストリームサイズ>送信可能サイズでないと判定するとステップS43へ進む。なお、送信ストリームサイズは、ストリームデータのサイズ(データ量)である。
【0058】
これは、TCPのセグメントサイズ(SGS)を決定するためである。また、同一プライオリティの送信ストリームサイズとしているのは、異なるプライオリティが1つのイーサネットフレームに混在してしまうことを防ぐためである。セグメントサイズは、TCPセグメント(ヘッダとデータを含む)のサイズであり、TCPで送受信される伝送単位である。
【0059】
ステップS42では、セグメントサイズ=送信可能サイズとする。つまり、送信ストリームサイズの方が大きい場合は、1つのイーサネットフレームですべてのストリームデータを送りきることはできない。そのため、セグメントサイズは、送信可能サイズとする。
【0060】
ステップS43では、セグメントサイズ=同一プライオリティの送信ストリームサイズとする。送信ストリームサイズの方が小さいまたは送信可能サイズと同じ場合は、1つのイーサネットフレームで同一プライオリティのストリームデータを送りきることができる。そのため、セグメントサイズは、同一プライオリティの送信ストリームサイズとする。
【0061】
ステップS44では、セグメントサイズ分のペイロードとプライオリティを通信層バッファへコピーする(格納部)。ここでの通信層バッファは、データ送信用に確保しなおしたものであり、送信用バッファに相当する。
【0062】
このように、ECU100は、TCPセグメントを構成する際に、プライオリティが同一であるペイロード(データ)のみを送信用バッファへ格納する。つまり、ECU100は、TCPセグメントを構成するとき、同一のプライオリティのストリームデータのみを取得するともいえる。また、ECU100は、同一プライオリティのソケットバッファからのみ、ストリームデータを取得するともいえる。
【0063】
そして、ステップS45では、レイヤ4ヘッダを生成する。ステップS44でコピーしたペイロードデータに対してレイヤ4のヘッダを生成する。ここでは、TCPヘッダを生成する。ステップS46では、レイヤ3の送信処理を実行する。
【0064】
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。
【0065】
本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態が本開示に示されているが、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範畴や思想範囲に入るものである。
【符号の説明】
【0066】
10…ソフトウェア、20…演算処理装置、30…コントローラ、40…ランシーバ11…アプリケーション、12…プラットフォーム、13…オペレーティングシステム、100,200…ECU、300…スイッチングハブ