(57)【要約】【課題】コネクション型通信で用いられるプロトコルよりも上層のプロトコルによる記述を含むフレームを中継する際に、中継装置による処理負荷を軽減できるようにする。【解決手段】本開示の一態様は、スイッチは、Ｓ１１５で、フレーム送信元の通信装置が接続されたポートから受信フレームを受信し、受信フレームのヘッダ部分である上位ヘッダを参照して受信フレームの種別を判定する。また、Ｓ１４０、Ｓ１７０で、受信フレームの種別が予め設定された種別である場合に、受信フレームのヘッダ部分を予め設定された条件に従って書き換えた送信フレームを生成するまた、Ｓ１５０、Ｓ１８０で、送信フレームを送信先の通信装置が接続されたポートから送信するように構成される。【選択図】図４
2020167588.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置（２０、３１〜３４）に接続される複数の通信ポート（Ｐ０〜Ｐ４）を備え、前記複数の通信装置間で送受信されるコネクション型通信によるフレームを中継するように構成された中継装置（１０）であって、
フレーム送信元の通信装置が接続された通信ポートから受信フレームを受信し、該受信フレームのヘッダ部分を参照して該受信フレームの種別を判定するように構成された種別判定部（Ｓ１１５）と、
該受信フレームの種別が予め設定された種別である場合に、該受信フレームのヘッダ部分を予め設定された条件に従って書き換えた送信フレームを生成するように構成された書換部（Ｓ１４０、Ｓ１７０、Ｓ２２０、Ｓ２５０、Ｓ３２０、Ｓ３５０、Ｓ３５５、Ｓ３８０、Ｓ３８５、Ｓ４２０、Ｓ４５０、Ｓ４８０、Ｓ５２０、Ｓ６２０）と、
前記送信フレームを送信先の通信装置が接続された通信ポートから送信する送信部（Ｓ１５０、Ｓ１８０、Ｓ２３０、Ｓ２６０）と、
を備える中継装置。
【請求項２】
請求項１に記載の中継装置であって、
前記コネクション型通信を行うプロトコルを接続プロトコル、前記接続プロトコルよりも上層のプロトコルを上層プロトコルとして、
前記送信先の通信装置のアドレスについて、前記上層プロトコルでのアドレスを表す第１アドレスと、前記接続プロトコルでのアドレスを表す第２アドレスとを対応付けた転送先情報（１３）を記録するように構成された転送先記録部（１２）、をさらに備え、
前記受信フレームのヘッダ部分には、前記接続プロトコルで当該中継装置を宛先とする宛先アドレスと、前記上層プロトコルで前記送信先の通信装置を宛先とする上層アドレスとを含み、
前記書換部は、前記転送先情報に従って、前記上層アドレスと一致する前記第１アドレスから該第１アドレスに対応する前記第２アドレスを抽出し、前記受信フレームにおける前記宛先アドレスを、抽出した前記第２アドレスに変換する
ように構成された中継装置。
【請求項３】
請求項１又は請求項２に記載の中継装置であって、
当該中継装置は、前記複数の通信装置との間で、それぞれシーケンスナンバ及びＡＣＫナンバを交換するコネクション型通信でのフレームを通信するように構成され、
前記書換部は、前記複数の通信装置との間で通信されるデータ量に差が生じる場合、前記受信フレームに含まれるシーケンスナンバ及びＡＣＫナンバのうちの少なくとも一方を前記差に応じて補正しつつ、前記送信フレームを生成する
ように構成された中継装置。
【請求項４】
請求項３に記載の中継装置であって、
前記書換部は、前記データ量に差が生じる場合として、中継対象外の事前通信がある場合に、前記事前通信のデータ量に応じて、前記補正をしつつ、前記送信フレームを生成する
ように構成された中継装置。
【請求項５】
請求項３又は請求項４に記載の中継装置であって、
前記書換部は、前記データ量に差が生じる場合として、前記コネクション型通信よりも上層の上層プロトコルにおけるヘッダの変更又は削除により、前記コネクション型通信による接続プロトコルでのフレームサイズに変更がある場合に、前記受信フレームと前記送信フレームとのデータサイズ差分を演算し、前記補正をしつつ、前記送信フレームを生成する
ように構成された中継装置。
【請求項６】
請求項３から請求項５の何れか１項に記載の中継装置であって、
過去の送受信シーケンスナンバ、ＡＣＫナンバ、送信インデックス、ＡＣＫインデックスが記述されたシーケンステーブル（１５、１６）を記録するように構成されたナンバ記録部（１２）、をさらに備え、
前記書換部は、前記シーケンステーブルを参照することで前記データ量の差を認識し、前記送信フレームを生成する際に、前記シーケンステーブルを書き換える
ように構成された中継装置。
【請求項７】
請求項６に記載の中継装置であって、
３以上の転送先ポートを備えるとともに、
前記ナンバ記録部は、前記転送先ポート毎に、前記シーケンステーブルを備え、
前記書換部は、前記転送先ポート毎に前記シーケンステーブルを書き換える
ように構成された中継装置。
【請求項８】
請求項１から請求項７の何れか１項に記載の中継装置であって、
前記複数の通信装置との間でハンドシェイクによるコネクション確立を代理で行うように構成された代理部（Ｓ１１０、Ｓ１２５）、
をさらに備える中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数の通信装置間で送受信されるコネクション型通信によるフレームを中継するように構成された中継装置に関する。
【背景技術】
【０００２】
下記特許文献１には、中継装置がコネクション型通信によるフレームを中継する際に、中継装置は、それぞれの通信装置との間でコネクション型通信によるコネクションを確立し、その後、フレームを中継する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０６２１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、中継装置では、コネクション型通信で用いられるプロトコルよりも上層のプロトコルによる記述を含むフレームを中継するよう要求される場合がある。しかしながら、発明者の詳細な検討の結果、中継装置は、フレームのうちのヘッダ部分だけでなく、ペイロード部分まで解析しなければフレームの中継先を特定することができないことが一般的であり、中継装置による処理負荷が大きくなるという課題が見出された。
【０００５】
本開示の１つの局面は、コネクション型通信で用いられるプロトコルよりも上層のプロトコルによる記述を含むフレームを中継する際に、中継装置による処理負荷を軽減できるようにすることにある。
【課題を解決するための手段】
【０００６】
本開示の一態様は、複数の通信装置（２０、３１〜３４）に接続される複数の通信ポート（Ｐ０〜Ｐ４）を備え、複数の通信装置間で送受信されるコネクション型通信によるフレームを中継するように構成された中継装置（１０）である。中継装置は、種別判定部（Ｓ１１５）と、書換部（Ｓ１４０、Ｓ１７０、Ｓ２２０、Ｓ２５０、Ｓ３２０、Ｓ３５０、Ｓ３５５、Ｓ３８０、Ｓ３８５、Ｓ４２０、Ｓ４５０、Ｓ４８０、Ｓ５２０、Ｓ６２０）と、送信部（Ｓ１５０、Ｓ１８０、Ｓ２３０、Ｓ２６０）と、を備える。
【０００７】
種別判定部は、フレーム送信元の通信装置が接続された通信ポートから受信フレームを受信し、受信フレームのヘッダ部分を参照して受信フレームの種別を判定するように構成される。
【０００８】
書換部は、受信フレームの種別が予め設定された種別である場合に、受信フレームのヘッダ部分を予め設定された条件に従って書き換えた送信フレームを生成するように構成される。送信部は、送信フレームを送信先の通信装置が接続された通信ポートから送信するように構成される。
【０００９】
このような構成によれば、コネクション型通信を行う場合に、受信フレームのヘッダ部分を参照することで受信フレームの種別を認識し、ヘッダ部分を書き換えるだけで送信フレームを生成する。したがって、ペイロードから受信フレームの上層のプロトコルによる記述を解析する等の処理を不要とすることができる。よって、コネクション型通信で用いられるプロトコルよりも上層のプロトコルによる記述を含むフレームを中継する際に、中
継装置による処理負荷を軽減することができる。
【図面の簡単な説明】
【００１０】
【図１】通信システムの構成を示すブロック図である。
【図２】フレーム構成の一例を示す説明図である。
【図３】コネクショントンネルテーブルの一例を示す説明図である。
【図４】第１実施形態において、スイッチからツールを介してＥＣＵにフレーム送信する処理の一例を示すシーケンス図である。
【図５】データ管理テーブルの一例を示す説明図である。
【図６】ＥＣＵからツールを介してスイッチにフレーム送信する処理の一例を示すシーケンス図である。
【図７】中継前後のフレーム構成の一例を示す説明図である。
【図８】第２実施形態において、スイッチからツールを介してＥＣＵにフレーム送信する処理の一例を示すシーケンス図である。
【図９】シーケンスリングテーブルの一例を示す説明図である。
【図１０】第３実施形態において、スイッチからツールを介してＥＣＵにフレーム送信する処理の一例を示すシーケンス図である。
【図１１】フレームの一部がＥＣＵにて受信されない場合の処理の一例を示すシーケンス図である。
【図１２】フレームの一部がＥＣＵにて受信されない場合であって、フレーム中継直後におけるシーケンスリングテーブルの一例を示す説明図である。
【図１３】フレームの一部がＥＣＵにて受信されない場合であって、フレーム再送時におけるシーケンスリングテーブルの一例を示す説明図である。
【図１４】ＡＣＫの一部がスイッチにて受信されない場合の処理の一例を示すシーケンス図である。
【図１５】ＡＣＫの一部がスイッチにて受信されない場合におけるシーケンスリングテーブルの一例を示す説明図である。
【図１６】１つ目のＥＣＵについてのシーケンスリングテーブルの一例を示す説明図である。
【図１７】２つ目のＥＣＵについてのシーケンスリングテーブルの一例を示す説明図である。
【図１８】第４実施形態において、スイッチからツールを介してＥＣＵにフレーム送信する処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本開示の実施形態を説明する。
［１．概要］
車両におけるイーサネット（商標登録）スイッチ（以下スイッチ）では、DoIPによる診断が用いられることがある。DoIPはＬ２ネットワークが前提であるため、車両内ネットワークドメインに中継する場合、車両外Ｌ２ネットワークにつながる装置（スイッチ等)がＴＣＰコネクションを終端し、ＴＣＰペイロードのデータに従って中継する必要がある。このとき、スイッチはツールとＥＣＵそれぞれとＴＣＰコネクションを確立し、さらにペイロードの解析結果を用いて中継処理を行うため、中継処理の処理負荷が非常に大きいという課題がある。
【００１２】
このため、本開示では、スイッチにおけるコネクション管理を不要とする仮想コネクションを行う。つまり、スイッチでは、接続先装置と論理アドレスとが紐づけられたコネクショントンネルテーブルが準備され、ツールからのTCPデータがスイッチにて受信された後、ＴＣＰ受信処理を行うことなく、コネクショントンネルテーブルに従い中継先ＥＣＵに直接転送を行う。
【００１３】
このとき、問題点として、事前通信の有無によりシーケンスナンバやＡＣＫナンバにオフセットが生じること、或いは、中継前後に上位レイヤのヘッダサイズが違うことによりシーケンスナンバやＡＣＫナンバに累積的なオフセットが生じることが挙げられる。しかし、本開示では、このオフセットを演算し、シーケンスナンバやＡＣＫナンバの整合をとる。この構成により、スイッチは単純なフレーム変換及び中継処理だけをするにもかかわらず、ＥＣＵやツールからは、スイッチとコネクションを確立しているように見せかける仮想コネクションを実現することができる。よって、スイッチの処理負荷を大幅に低減できる。
【００１４】
以下に、上記構成の詳細について説明する。
［２．第１実施形態］
［２−１．構成］
本開示の一態様の通信システム１は、例えば、主要部が乗用車等の車両に搭載され、車両内外の各通信装置間でフレームの中継を行うためのシステムである。
【００１５】
図１に示す通信システム１は、中継装置であるスイッチ１０を備える。また、通信システム１は、ツール２０と、ＥＣＵ（Electronic Control Unit）３１と、ＥＣＵ３２と、ＥＣＵ３３と、ＥＣＵ３４と、を備えてもよい。また、スイッチ１０は、通信ポートＰ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４を備えてもよい。
【００１６】
ツール２０は、通信線４０に接続される。また、ＥＣＵ３１は、通信線４１に接続され、ＥＣＵ３２は、通信線４２に接続される。また、ＥＣＵ３３は、通信線４３に接続され、ＥＣＵ３４は、通信線４４に接続される。なお、ツール２０、ＥＣＵ３１、ＥＣＵ３２、ＥＣＵ３３、ＥＣＵ３４は、通信線４０〜４４及びスイッチ１０を介して互いに通信を行う通信装置を構成する。
【００１７】
５本の通信線４０〜４４は、順に、通信ポートＰ０〜Ｐ４に接続される。つまり、ツール２０は通信線４０を介して通信ポートＰ０に接続される。また、ＥＣＵ３１は通信線４１を介して通信ポートＰ１に接続され、ＥＣＵ３２は通信線４２を介して通信ポートＰ２に接続される。また、ＥＣＵ３３は通信線４３を介して通信ポートＰ３に接続され、ＥＣＵ３４は通信線４４を介して通信ポートＰ４に接続される。なお、通信ポートＰ０〜Ｐ４は、フレームの送受信を行うトランシーバとして機能する。
スイッチ１０は、ゲートウェイであるイーサネット（登録商標）スイッチとして構成される。スイッチ１０は、例えば、DoIP（Diagnostics over Internet Protocol）、イーサネット及びTCP（Transmission Control Protocol）等のプロトコルを利用して通信する。スイッチ１０は、通信線４０〜４４間でフレームをフィルタリングしつつ中継する。
【００１８】
スイッチ１０は、例えば、半導体デバイス等の回路を備えるハードウェアとして構成される。スイッチ１０は、制御部１１と、メモリ１２と、をさらに備える。
制御部１１は、フレームの中継の全般を管理する。制御部１１は、例えば集積回路やマイコン等によって構成される。メモリ１２は、例えば揮発性のメモリであるが、書き換え可能な不揮発性メモリであってもよい。
【００１９】
制御部１１は、例えば、予め準備されたフィルタリングルールに従って、受信したフレームを中継するか破棄するかを選択して実施する。なお、スイッチ１０の動作は、制御部１１によって実現される動作である。以下では、制御部１１が実行する処理をスイッチ１０が実行する処理として記述する。
【００２０】
また、フィルタリングルールとは、受信したフレームに含まれるアドレス、フレームの
形式、フレームのデータ長、フレームの種別等のフレームの特性に応じて、該フレームを中継するか破棄するか等の処理を決定するためのルールである。ここで、通信システム１において通信されるフレームは、例えば図２に示すようなフレームである。このフレームは、ＯＳＩ参照モデルでの第５層以上のプロトコルを取り扱うアプリケーションによって生成され、ＯＳＩ参照モデルでの第４層のプロトコルであるＴＣＰで通信をするためのＴＣＰヘッダを含む。本実施形態では、第５層以上のプロトコルとして、上述のDoIP、或いは診断用に準備された専用プロトコルを用いる。
【００２１】
また、このフレームは、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、上位ヘッダを含むヘッダ部と、実データであるペイロード部とを含む。ヘッダ部を構成する各ヘッダには、それぞれ、プリアンブル、宛先アドレス、送信元アドレス、タイプ等が含まれる。また、ＴＣＰヘッダには、これらのアドレス等に加えて、シーケンスナンバ、ＡＣＫナンバ、各種フラグを含む。また、上位ヘッダには、アプリケーションに応じたデータが含まれる。例えば、上位ヘッダには、アプリケーションで利用される宛先アドレスである論理アドレスを含む。
【００２２】
メモリ１２は、コネクショントンネルテーブル１３、シーケンスナンバ管理テーブル１４、及び第３実施形態以降で述べるシーケンスリングテーブル１５、１６を記録するように構成される。
【００２３】
コネクショントンネルテーブル１３では、図３に示すように、論理アドレスと、ＴＣＰコネクションにて利用される宛先アドレスであるＩＰアドレス又はＭＡＣアドレスとが対応付けられている。図３に示す例では、論理アドレス０１に対してＥＣＵ３１のＩＰアドレス又はＭＡＣアドレスが対応付けられている。また、論理アドレス０２に対して、ＥＣＵ３２のＩＰアドレス又はＭＡＣアドレスが対応付けられている。
【００２４】
なお、ＴＣＰは、本開示での接続プロトコルに、DoIPは、本開示での上層プロトコルに相当する。また、コネクショントンネルテーブル１３での論理アドレスは、本開示での第１アドレスに、コネクショントンネルテーブル１３でのＩＰアドレス又はＭＡＣアドレスは、本開示での第２アドレスに相当する。
【００２５】
シーケンスナンバ管理テーブル１４は、中継するフレームの内容が一時的に記述されるテーブルである。シーケンスナンバ管理テーブル１４の詳細については後述する。
ツール２０は、通信線４０に対して着脱自在に構成され、車両の点検時等、必要に応じて通信線４０を介してスイッチ１０に接続される。ツール２０は、通信線４０を介してスイッチ１０に接続された際に、予め設定された１又は複数のＥＣＵ３１〜３４と通信を行うことで、これらのＥＣＵ３１〜３４のメモリに記録されたダイアグ等の情報を読み出し、読み出した情報に基づいて車両診断を行う装置である。また、ツール２０は、ＥＣＵ３１〜３４にフレームを送信することによって、ＥＣＵ３１〜３４内に格納されたプログラムを書き換える機能も有する。
【００２６】
ＥＣＵ３１〜３４は、エンジン、エアコン、オーディオ等の、車両の構成要素を制御する機能を有する電子制御装置であり、加えて、上述のフレームを通信する通信機能を有する。
【００２７】
［２−２．処理］
次に、スイッチ１０及びＥＣＵ３１が、ツール２０を介してフレームのやり取りする処理の一例を、図４のシーケンス図を用いて説明する。なお、以下では、スイッチ１０の制御部１１が実行する構成を中心に説明する。
【００２８】
まず、ツール２０がＥＣＵ３１に対してフレームを送信しようとすると、ツール２０及びスイッチ１０は、Ｓ１１０で、フレームをツール２０とスイッチ１０との間でやり取りするための手続きを実施する。ここでは、まず、ツール２０とスイッチ１０との間でＴＣＰコネクションを確立するためのハンドシェイクが実施される。
【００２９】
つまり、スイッチ１０は、ＥＣＵ３１に代わってハンドシェイクを行う代理ハンドシェイクを実施する。ここでのハンドシェイクは、TCP SYN、TCP ACK SYN、TCP ACKを実施する3wayハンドシェイクが採用される。
【００３０】
次に、ツール２０は、スイッチ１０との間でＴＣＰコネクションが確立されると、スイッチ１０に、コネクショントンネル通信の開始要求を送信する。この開始要求には、上位ヘッダの内容として、上述の論理アドレスが含まれる。なお、コネクショントンネル通信は、フレームのうちの各ヘッダ部分を認識し、ヘッダ部分の一部を書き換えて、ペイロードを変化させることなく、フレームを中継する通信を示す。
【００３１】
次に、スイッチ１０は、Ｓ１１５で、コネクショントンネル通信の開始要求を受信し、Ｓ１２０で、コネクショントンネルコンフィグ、すなわち、コネクショントンネル通信のための設定を行う。後に詳述するが、ツール２０は、ＴＣＰで利用される宛先アドレスと、上位ヘッダに含まれる論理アドレスとが異なるフレームをスイッチ１０に送信する。
【００３２】
具体的には、ＴＣＰでの宛先アドレスは、スイッチ１０であり、論理アドレスは、ＥＣＵ３１等である。このため、スイッチ１０は、フレームの中継時に、ＴＣＰでの宛先アドレスを、スイッチ１０からＥＣＵ３１等に書き換える必要がある。
【００３３】
本実施形態の構成では、コネクショントンネルテーブル１３が準備されているので、上位ヘッダに含まれる論理アドレスに対応する宛先アドレスを、コネクショントンネルテーブル１３を参照すること特定できる。つまり、コネクショントンネルコンフィグでは、コネクショントンネルテーブル１３を参照することで、ＴＣＰコネクション確立中に次のフレームを受けたときに、簡素な処理でＴＣＰでの宛先アドレスを、スイッチ１０からＥＣＵ３１等に書き換えできるように設定する。
【００３４】
換言すれば、スイッチ１０は、フレーム送信元の通信装置が接続されたポートＰ０〜Ｐ４からフレームを受信し、このフレームのヘッダ部分である上位ヘッダを参照してフレームの種別を判定する。ここで、フレームの種別の判定は、フレームを受信する都度実施されてもよいが、本実施形態では、ＴＣＰコネクションを確立するときだけ実施し、ＴＣＰコネクション確立中には、フレームの種別の判定を省略する構成として説明する。
【００３５】
フレームの種別の判定を省略する場合、ＴＣＰコネクション確立中のフレームの種別は、ＴＣＰコネクションを確立するときに認識したフレームの種別と同じであるとみなして以下の処理を進める。フレームの種別の判定を省略する構成は、スイッチ及びツール２０間の通信だけでなく、スイッチ１０及びＥＣＵ３１〜３４間の通信でも同様に適用される。
【００３６】
なお、以下では、受信したフレームの種別がDoIP等の予め設定されたプロトコルによるフレームである場合の作動について説明する。予め設定されたプロトコルでない場合には、ＴＣＰによる通常の中継、すなわち、ペイロードを解析した上で中継を行うとよい。
【００３７】
スイッチ１０は、コネクショントンネルコンフィグが完了すると、コネクショントンネル通信の開始要求に対する応答をツール２０に送信する。すると、ツール２０は、宛先となるＥＣＵ３１〜３４に送信すべき実データを含むフレームの送信を開始する。
【００３８】
スイッチ１０は、Ｓ１２０でフレームを受信し、図５に示すシーケンスナンバ管理テーブル１４にて、データを管理する。すなわち、スイッチ１０は、フレームのヘッダ部に従って、シーケンスナンバ管理テーブル１４のうちの、送信元アドレス、宛先アドレス、ＴＣＰフラグ、データ長（len）を記述する。また、スイッチ１０は、適宜演算等を行うことで、フレームを受信したポートＰ０〜Ｐ４（SRCポート）、フレームの送信先が接続されたポートＰ０〜Ｐ４（DISTポート）、シーケンスナンバ（SeqNum）、ＡＣＫナンバ（AckNum）等を記述する。
【００３９】
ここでは、スイッチ１０は、ツール２０からフレームを受信し、例えば、図５における「＃」欄の「１」で示すように、宛先アドレスはスイッチ１０であり、送信元アドレスはツール２０であり、データ長（len）は1400バイトである等の記述を行う。
【００４０】
続いて、Ｓ１２５で、スイッチ１０は、宛先となるＥＣＵ３１〜３４との間で上述した代理ハンドシェイクと同様の代理ハンドシェイクを実施する。なお、本実施形態では、宛先がＥＣＵ３１である場合について述べる。この処理により、スイッチ１０は、ツール２０とＥＣＵ３１との双方の間でＴＣＰコネクションを確立した状態、換言すれば、コネクショントンネルが実行可能な状態になる。
【００４１】
続いて、Ｓ１３０で、スイッチ１０は、シーケンスナンバオフセットを演算する。シーケンスナンバオフセットには、初期オフセット及び累積オフセットが含まれる。
ここで、スイッチ１０は、実データを中継する前の通信である事前通信によって、送信元に対する通信データ量と、宛先に対する通信データ量とに差が生じる場合がある。ここでは、この差を上述の初期オフセットとして求める。
【００４２】
例えば、送信元に対する事前通信による通信データ量から宛先に対する事前通信による通信データ量を減算したときの差が＋２０バイトであれば、この差を初期オフセットとする。この場合、スイッチ１０は、送信元にフレームを送信する際に、シーケンスナンバ、ＡＣＫナンバに２０を加算し、宛先にフレームを送信する際に、シーケンスナンバ、ＡＣＫナンバから２０を減算する。
【００４３】
また、ポートＰ０〜Ｐ４によって通信プロトコルが異なる場合等、送信元からのフレームと宛先へのフレームとでデータ長が異なる場合には、データ長の差を上述の累積オフセットとして求める。ここでは、送信元からのフレームのデータ長が1400バイトであるのに対して、宛先へのフレームのデータ長が60バイト少なくなるため、宛先へのフレームのデータ長を1340バイトと記述するよう設定する。なお、初期オフセットは、フレームの送信回数によらず一定であるが、累積オフセットは、フレームの送信回数に比例して増加するため、フレーム送信の度に加減算される。
【００４４】
続いて、Ｓ１４０で、スイッチ１０は、宛先変換、及びシーケンスナンバ変換を行う。スイッチ１０は、宛先変換として、図５における「＃」欄の「２」で示すように、コネクショントンネルコンフィグに従って、宛先アドレスをスイッチ１０からＥＣＵ３１に変更し、送信元アドレスをツール２０からスイッチ１０に変更する。また、データ長を1400バイトから1340バイトに変更する。なお、シーケンスナンバ変換は、シーケンスナンバを補正する必要が生じた場合に実施される。
【００４５】
続いて、Ｓ１５０で、スイッチ１０は、宛先変換、及びシーケンスナンバ変換が行われたフレームをＥＣＵ３１に送信する。ＥＣＵ３１は、このフレームを受けると、スイッチ１０にＡＣＫを返す。すると、Ｓ１６０で、スイッチ１０は、このＡＣＫを受信する。
【００４６】
このときスイッチ１０が受信するフレームは、図５における「＃」欄の「３」で示すように、宛先アドレスはスイッチ１０であり、送信元アドレスはＥＣＵ３１であり、ＡＣＫナンバは1340である。
続いて、Ｓ１７０で、スイッチ１０は、宛先変換、及びＡＣＫナンバ変換を行う。スイッチ１０は、宛先変換として、図５における「＃」欄の「４」で示すように、コネクショントンネルコンフィグに従って、宛先アドレスをスイッチ１０からツール２０に変更し、送信元アドレスをＥＣＵ３１からスイッチ１０に変更する。また、ＡＣＫナンバを1340から1400に変更する。
【００４７】
つまり、ＥＣＵ３１は、データ長が1340バイトのフレームを受けたため、ＡＣＫナンバを1340で送信したが、ツール２０はデータ長が1400バイトのフレーム送信したため、受信するＡＣＫのＡＣＫナンバが1340のままでは齟齬が生じる。この齟齬を解消するために、スイッチ１０は、ＡＣＫナンバを1340から1400に変更する。なお、ＡＣＫナンバの補正量は、Ｓ１３０にて求められたデータ長の差と同様である。
【００４８】
続いて、Ｓ１８０で、スイッチ１０は、宛先変換、及びＡＣＫナンバ変換が行われたＡＣＫをツール２０に送信する。このようにして、ツール２０からＥＣＵ３１へのフレーム送信が実施される。
【００４９】
次に、ツール２０とスイッチ１０とのコネクション、及びスイッチ１０とＥＣＵ３１とのコネクションが確立された状態で、ＥＣＵ３１からツール２０にフレームを送信する際の作動例について、図６のシーケンス図を用いて説明する。
【００５０】
まず、ＥＣＵ３１は、スイッチ１０に対してフレームを送信し、Ｓ２１０で、スイッチ１０は、このフレームを受信する。このフレームにおいて、宛先アドレスはスイッチ１０であり、データ長は1400バイトである。
【００５１】
続いて、Ｓ２２０で、スイッチ１０は、宛先変換、及びシーケンスナンバ変換を行う。スイッチ１０は、宛先変換として、コネクショントンネルコンフィグに従って、宛先アドレスをスイッチ１０からツール２０に変更し、送信元アドレスをＥＣＵ３１からスイッチ１０に変更する。また、ここでは、データ長を1400バイトから1420バイトに変更する。
【００５２】
続いて、Ｓ２３０で、スイッチ１０は、宛先変換、及びシーケンスナンバ変換が行われたフレームをツール２０に送信する。ツール２０は、このフレームを受けると、スイッチ１０にＡＣＫを返す。すると、Ｓ２４０で、スイッチ１０は、このＡＣＫを受信する。
【００５３】
このときスイッチ１０が受信するフレームでは、宛先アドレスはスイッチ１０であり、ＡＣＫナンバは1420である。
続いて、Ｓ２５０で、スイッチ１０は、宛先変換、及びＡＣＫナンバ変換を行う。スイッチ１０は、宛先変換として、コネクショントンネルコンフィグに従って、宛先アドレスをスイッチ１０からＥＣＵ３１に変更し、送信元アドレスをツール２０からスイッチ１０に変更する。また、ＡＣＫナンバを1420から1400に変更する。
【００５４】
続いて、Ｓ２６０で、スイッチ１０は、宛先変換、及びＡＣＫナンバ変換が行われたＡＣＫをＥＣＵ３１に送信する。このようにして、ＥＣＵ３１からツール２０へのフレーム送信が実施される。
【００５５】
［２−３．効果］
以上詳述した第１実施形態によれば、以下の効果を奏する。
（２ａ）本開示の一態様は、ツール２０及びＥＣＵ３１〜３４に接続される複数のポー
トＰ０〜Ｐ４を備え、ツール２０及びＥＣＵ３１〜３４間で送受信されるコネクション型通信によるフレームを中継するように構成されたスイッチ１０である。スイッチ１０は、フレーム送信元の通信装置が接続されたポートＰ０〜Ｐ４から受信フレームを受信し、受信フレームのヘッダ部分である上位ヘッダを参照して受信フレームの種別を判定するように構成される。また、スイッチ１０は、受信フレームの種別が予め設定された種別である場合に、受信フレームのヘッダ部分を予め設定された条件に従って書き換えた送信フレームを生成するように構成される。また、スイッチ１０は、送信フレームを送信先の通信装置が接続されたポートＰ０〜Ｐ４から送信するように構成される。
【００５６】
このような構成によれば、コネクション型通信を行う場合に、受信フレームのヘッダ部分を参照することで受信フレームの種別を認識し、ヘッダ部分を書き換えるだけで送信フレームを生成する。したがって、ペイロードから受信フレームの上層のプロトコルによる記述を解析する等の処理を不要とすることができる。よって、コネクション型通信で用いられるプロトコルよりも上層のプロトコルによる記述を含むフレームを中継する際に、スイッチ１０による処理負荷を軽減することができる。
【００５７】
（２ｂ）本開示の一態様では、コネクション型通信を行うプロトコルを接続プロトコル、接続プロトコルよりも上層のプロトコルを上層プロトコルとする。そして、コネクショントンネルテーブル１３を記録するように構成されたメモリ１２をさらに備える。
【００５８】
コネクショントンネルテーブル１３では、送信先の通信装置のアドレスについて、上層プロトコルでのアドレスを表す論理アドレスと、接続プロトコルでのアドレスを表すＭＡＣアドレス又はＩＰアドレスとが対応付けられている。
【００５９】
また、受信フレームのヘッダ部分には、接続プロトコルで当該スイッチ１０を宛先とする宛先アドレス（例えばＭＡＣアドレス）と、上層プロトコルで送信先の通信装置を宛先とする上層アドレス（例えば上位ヘッダでの論理アドレス）とを含む。
【００６０】
そして、スイッチ１０は、論理アドレスに対応するＭＡＣアドレス又はＩＰアドレスをコネクショントンネルテーブル１３から抽出し、受信フレームにおける宛先アドレスを、論理アドレスに対応するＭＡＣアドレス又はＩＰアドレスに変換するように構成される。
【００６１】
このような構成によれば、受信フレームの上層アドレスを参照して宛先アドレスを送信先の通信装置に変更できるので、受信フレームの解析負荷を低減することができる。
（２ｃ）本開示の一態様では、当該スイッチ１０は、ツール２０及びＥＣＵ３１〜３４との間で、それぞれシーケンスナンバ及びＡＣＫナンバを交換するコネクション型通信でのフレームを通信するように構成される。スイッチ１０は、ツール２０及びＥＣＵ３１〜３４との間で通信されるデータ量に差が生じる場合、受信フレームに含まれるシーケンスナンバ及びＡＣＫナンバのうちの少なくとも一方を該データ量の差に応じて補正しつつ、送信フレームを生成する。
【００６２】
このような構成によれば、スイッチ１０とツール２０及びＥＣＵ３１〜３４のそれぞれとの間で通信されるデータ量が異なり、データ量に差が生じる場合であっても、シーケンスナンバ及びＡＣＫナンバを良好に補正しつつ中継を行うことができる。
【００６３】
（２ｄ）本開示の一態様では、スイッチ１０は、データ量に差が生じる場合として、コネクション型通信よりも上層の上層プロトコルにおけるヘッダの変更又は削除により、コネクション型通信による接続プロトコルでのフレームサイズに変更がある場合に、シーケンスナンバ及びＡＣＫナンバを補正しつつ、送信フレームを生成する。
【００６４】
このような構成によれば、上層プロトコルでシーケンスナンバ及びＡＣＫナンバを良好に補正しつつ中継を行うことができる。
（２ｅ）本開示の一態様では、スイッチ１０は、ツール２０及びＥＣＵ３１〜３４との間でハンドシェイクによるコネクション確立を代理で行うように構成される。
【００６５】
このような構成によれば、各通信装置は、スイッチ１０とのコネクションを確立するだけで、宛先又は送信元との間でコネクション型通信を行うことができる。
［３．第２実施形態］
［３−１．第１実施形態との相違点］
第２実施形態は、基本的な構成は第１実施形態と同様であるため、相違点について以下に説明する。なお、第１実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【００６６】
上述した第１実施形態では、ツール２０とＥＣＵ３１との間での１のフレームのやり取りについて説明した。これに対し、第２実施形態では、複数のフレームのやり取りについて説明する点で、第１実施形態と相違する。
【００６７】
第２実施形態の通信システム２では、ツール２０からＥＣＵ３１にフレームを送信する例を説明し、ＥＣＵ３１からツール２０にフレームを送信する例については同様であるため説明を省略する。
【００６８】
［３−２．処理］
次に、第２実施形態の通信システム２では、図７に示すように、ツール２０からスイッチ１０に送られるフレームを中継前データとし、スイッチ１０からＥＣＵ３１に送られるフレームを中継後データとする。中継後データは、中継前データと比較して、上位ヘッダに相当する20バイト分が削除され、データ長が20バイト短くなるよう設定される。
【００６９】
スイッチ１０からＥＣＵ３１に対して、ツール２０を介してフレームを送信する処理の一例を、図８のシーケンス図を用いて説明する。
なお、本実施形態では、シーケンスナンバオフセット、ＡＣＫナンバオフセットがそれぞれ100バイトに相当する100に設定される。また、本実施形態では、フレームの送信元は、ＡＣＫを待つことなく複数のフレームを連続して送信するよう構成される。具体的には、図８に示すように、ツール２０は、３つのフレームを連続して送信する。
【００７０】
スイッチ１０は、Ｓ３１０、Ｓ３４０、Ｓ３７０のそれぞれで、ツール２０から送信された３つのフレームを順次受信する。そして、スイッチ１０は、フレームを受信する度に、Ｓ３２０、Ｓ３５０、Ｓ３８０で、フレーム毎に、宛先変換、及びシーケンスナンバ変換を行う。
【００７１】
スイッチ１０は、Ｓ３１０で、シーケンスナンバ100、データ長1020のフレームを受信し、Ｓ３２０で、シーケンスナンバオフセットを考慮して、フレームを、シーケンスナンバ0、データ長1000に書き換える。つまり、シーケンスナンバから初期オフセット100を減算し、データ長からデータ長の差である20を減算する。なお、宛先変換については第１実施形態と同様であるため説明を省略する。
【００７２】
また、スイッチ１０が、Ｓ３４０で、シーケンスナンバ1120、データ長1020のフレームを受信すると、Ｓ３５０では、このフレームを、シーケンスナンバ1000、データ長1000に書き換える。つまり、シーケンスナンバから初期オフセット100と累積オフセット20を１回分乗じた値との和である120を減算し、データ長からデータ長の差である20を減算する。
【００７３】
同様に、スイッチ１０が、Ｓ３７０で、シーケンスナンバ2140、データ長1020のフレームを受信すると、Ｓ３８０では、このフレームを、シーケンスナンバ2000、データ長1000に書き換える。つまり、シーケンスナンバから初期オフセット100と累積オフセット20を２回分乗じた値との和である140を減算し、データ長からデータ長の差である20を減算する。
【００７４】
そして、Ｓ３３０、Ｓ３６０、Ｓ３９０で、スイッチ１０は、宛先変換、及びシーケンスナンバ変換が行われたフレームをＥＣＵ３１に送信する。
ＥＣＵ３１は、これらのフレームをスイッチ１０から受信すると、その都度、ＡＣＫを返す。スイッチ１０は、Ｓ４１０、Ｓ４４０、Ｓ４７０で、これらのＡＣＫをそれぞれ受信し、Ｓ４２０、Ｓ４５０、Ｓ４８０で、宛先変換、及びＡＣＫナンバ変換を行う。
【００７５】
詳細には、スイッチ１０は、Ｓ４１０で、シーケンスナンバ1000のフレームに対する、ＡＣＫナンバ1000のＡＣＫを受信する。そして、Ｓ４２０で、このＡＣＫについて、初期オフセット100及び累積オフセット20を１回分乗じた20を加算した1120に書き換える。
【００７６】
また、スイッチ１０は、Ｓ４４０で、シーケンスナンバ2000のフレームに対する、ＡＣＫナンバ2000のＡＣＫを受信する。そして、Ｓ４５０で、このＡＣＫについて、初期オフセット100及び累積オフセット20を２回分乗じた40を加算した2140に書き換える。
【００７７】
また、スイッチ１０は、Ｓ４７０で、シーケンスナンバ3000のフレームに対する、ＡＣＫナンバ3000のＡＣＫを受信する。そして、Ｓ４８０で、このＡＣＫについて、初期オフセット100及び累積オフセット20を３回分乗じた60を加算した3160に書き換える。
【００７８】
続いて、Ｓ４３０、Ｓ４６０、Ｓ４９０で、スイッチ１０は、宛先変換、及びＡＣＫナンバ変換が行われたＡＣＫをツール２０に送信する。このようにして、ツール２０からＥＣＵ３１へのフレーム送信が実施される。
【００７９】
［３−３．効果］
以上詳述した第２実施形態によれば、上述した第１実施形態の効果（２ａ）を奏し、さらに、以下の効果を奏する。
【００８０】
（３ａ）本開示の一態様では、スイッチ１０は、データ量に差が生じる場合として、中継対象外の事前通信がある場合に、事前通信のデータ量に応じて、シーケンスナンバ及びＡＣＫナンバを補正しつつ、送信フレームを生成する。
【００８１】
このような構成によれば、中継対象外の事前通信がある場合であっても、シーケンスナンバ及びＡＣＫナンバを良好に補正しつつ中継を行うことができる。
［４．第３実施形態］
［４−１．第２実施形態との相違点］
上記第２実施形態では、送信元がＡＣＫを正常に受信できない場合、３つのフレームを全て再送することが想定されるが、第３実施形態では、送信元が一部のＡＣＫを正常に受信できれば、正常に受信できなかったフレームのみを再送できるようにする。
【００８２】
［４−２．構成］
第３実施形態の通信システム３では、メモリ１２にシーケンスリングテーブル１５（図１参照）を備える。シーケンスリングテーブル１５は、図９に示すように、中継するフレーム毎に、前回送信インデックス、ＡＣＫインデックス、受信シーケンスナンバ、送信シーケンスナンバ、シーケンスナンバオフセット、送信ＡＣＫナンバ、受信ＡＣＫナンバが
記述されるテーブルである。また、シーケンスリングテーブル１５は、リング型のテーブルであり、最も古い記述が順次上書きされる。
【００８３】
前回送信インデックスは、スイッチ１０が最後に送信元から受信したフレームの位置を示し、ＡＣＫインデックスは、スイッチ１０が最後に受信したＡＣＫの位置を示す。前回送信インデックス及びＡＣＫインデックスは、フレームの中継が正常に行われている場合には、上から下に移動する。前回送信インデックスにＡＣＫインデックスが追い付いて、前回送信インデックス及びＡＣＫインデックスが同じフレームの位置にある場合、スイッチ１０が中継したフレームのＡＣＫの全てを受信したことを示す。
【００８４】
また反対に、ＡＣＫインデックスに前回送信インデックスが追い付く場合、シーケンスリングテーブル１５が満杯の状態であるため、スイッチ１０はフレームの中継を中止する。
なお、シーケンスリングテーブル１５には、ＡＣＫナンバが記述されるが、ＡＣＫナンバについては演算によって求めることが可能であるため、シーケンスリングテーブル１５に記述されることは必須でない。
【００８５】
［４−３．処理］
［４−３−１．通常の処理］
次に、第３実施形態の通信システム３では、第２実施形態と同様に、図１０に示すように、ツール２０からスイッチ１０を介してＥＣＵ３１にフレームを中継する例について説明する。
【００８６】
スイッチ１０は、第２実施形態同様に、Ｓ３１０、Ｓ３４０、Ｓ３７０のそれぞれで、３つのフレームを順次受信する。そして、スイッチ１０は、フレームを受信する度に、Ｓ３２０、Ｓ３５０、Ｓ３８０で、フレーム毎に、宛先変換、及びシーケンスナンバ変換を行う。
【００８７】
ここでは、スイッチ１０は、Ｓ３２０、Ｓ３５０、Ｓ３８０で、上述のようにフレームを書き換え、加えて、書換前後の情報をシーケンスリングテーブル１５に記述する。スイッチ１０は、Ｓ３２０で、シーケンスリングテーブル１５にて、受信シーケンスナンバに書換前のシーケンスナンバ100を、送信シーケンスナンバにシーケンスナンバ0をそれぞれ記述する。また、シーケンスリングテーブル１５にて、シーケンスナンバオフセットに初期オフセット100及び累積オフセット20を加算した120を、送信ＡＣＫナンバに送信フレームのシーケンスナンバ1120を、受信ＡＣＫナンバに受信フレームのシーケンスナンバ1000をそれぞれ記述する。
【００８８】
このとき、前回送信インデックスは、当該フレームの位置に設定され、ＡＣＫインデックスは初期位置に設定される。初期位置は、当該フレームの直前の位置、図９に示す例では、シーケンスリングテーブル１５の最下段である。
【００８９】
スイッチ１０は、Ｓ３５０、Ｓ３８０で、Ｓ３２０と同様にしてシーケンスリングテーブル１５を記述する。このとき、前回送信インデックスは、新たに記述されたフレームの位置に設定され、ＡＣＫインデックスは更新されない。その後、Ｓ３３０、Ｓ３６０、Ｓ３９０で、スイッチ１０は、宛先変換、シーケンスナンバ変換、及びシーケンスリングテーブル１５の記述が行われたフレームをＥＣＵ３１に送信する。
【００９０】
スイッチ１０は、第２実施形態と同様に、Ｓ４１０、Ｓ４４０、Ｓ４７０で、これらのＡＣＫをそれぞれ受信し、Ｓ４２０、Ｓ４５０、Ｓ４８０で、宛先変換、及びＡＣＫナンバ変換を行う。ただし、スイッチ１０は、Ｓ４２０、Ｓ４５０、Ｓ４８０で、シーケンス
リングテーブル１５の更新をする。
【００９１】
詳細には、スイッチ１０は、Ｓ４２０で、シーケンスリングテーブル１５における、Ｓ４１０にて受信したＡＣＫナンバ1000に対応する記述の位置に、ＡＣＫインデックスを移動させる。また、スイッチ１０は、Ｓ４５０で、シーケンスリングテーブル１５における、Ｓ４４０にて受信したＡＣＫナンバ2000に対応する記述の位置に、ＡＣＫインデックスを移動させる。また、スイッチ１０は、Ｓ４８０で、シーケンスリングテーブル１５における、Ｓ４７０にて受信したＡＣＫナンバ3000に対応する記述の位置に、ＡＣＫインデックスを移動させる。その後、Ｓ４３０、Ｓ４６０、Ｓ４９０で、スイッチ１０は、宛先変換、ＡＣＫナンバ変換、及びシーケンスリングテーブル１５の更新が行われたフレームをツール２０に送信する。
【００９２】
［４−３−２．ＥＣＵ３１がフレーム受信できない場合の処理］
次に、スイッチ１０からＥＣＵ３１に送信されるフレームの一部がＥＣＵ３１にて受信されない場合の例を、図１１のシーケンス図を用いて説明する。この例では、スイッチ１０がＳ３６０で送信するシーケンスナンバ1000のフレームが、ＥＣＵ３１で受信されない場合を示す。
【００９３】
図１１に示すように、ＥＣＵ３１がフレームを受信しない場合でも、スイッチ１０がＳ３９０で送信するシーケンスナンバ2000のフレームは、ＥＣＵ３１に送信される。このとき、スイッチ１０は、シーケンスリングテーブル１５において、送信シーケンスナンバ2000に対応する位置、すなわち、図１２に示すように、シーケンスリングテーブル１５の上から３段目の位置に、前回送信インデックスを移動させる。
【００９４】
この状態で、スイッチ１０は、Ｓ４１０で、ＥＣＵ３１からＡＣＫナンバ1000のＡＣＫを受信し、Ｓ４２０で、ＡＣＫインデックスを受信ＡＣＫナンバ1000の位置に移動させる。スイッチ１０は、Ｓ４３０で、ツール２０にＡＣＫナンバ1120のＡＣＫを送信するが、他のＡＣＫを送信できない。このため、ツール２０は、ＡＣＫ受信のタイムアウトになり、ＡＣＫを受信できなったフレーム、つまり、シーケンスナンバ1120及び2140のフレームを再送する。
【００９５】
スイッチ１０は、これらのフレームをＳ３４５及びＳ３７５で受信し、Ｓ３５５及びＳ３８５で、宛先変換、ＡＣＫナンバ変換、及びシーケンスリングテーブル１５の更新を行う。スイッチ１０は、Ｓ３５５で、直前に受信したフレームのシーケンスナンバと前回送信インデックスが位置するフレームのシーケンスナンバとを比較し、直前に受信したフレームのシーケンスナンバが小さい又は同じ場合に、再送されたフレームと判定する。
【００９６】
再送されたフレームであれば、スイッチ１０は、図１３に示すように、シーケンスリングテーブル１５において、このフレームの記述を上書きし、このフレームよりもシーケンスナンバが大きいフレームに関する記述を削除する。図１３に示す例では、図１２に示す例と比較して、送信シーケンスナンバ2000に対応するフレーム、つまり、上から３段目のフレームが削除されている。そして、前回送信インデックスを受信したフレームの位置に戻すように移動させる。
【００９７】
なお、Ｓ３８５で、スイッチ１０は、Ｓ３８０と同様にシーケンスリングテーブル１５の更新をする。また、Ｓ３６５、Ｓ３９５で、スイッチ１０は、Ｓ３６０、Ｓ３９０と同様に、フレームの送信を行う。
【００９８】
［４−３−３．スイッチ１０がＡＣＫ受信できない場合の処理］
次に、ＥＣＵ３１にて送信されるＡＣＫの一部がスイッチ１０にて受信されない場合の
例を、図１４のシーケンス図を用いて説明する。この例では、スイッチ１０がＳ４１０で受信されるべきＡＣＫナンバ1000のフレームとスイッチ１０がＳ４４０で受信されるべきＡＣＫナンバ2000のフレームとを受信できない場合を示す。
【００９９】
図１４に示すように、スイッチ１０は、Ｓ３１０〜Ｓ３９０の処理を正常に実施し、ＥＣＵ３１は、スイッチ１０からのフレームを正常に受信する。そして、ＥＣＵ３１は、それぞれＡＣＫを送信するが、スイッチ１０は、Ｓ４１０及びＳ４４０で受信されるべきＡＣＫである、ＡＣＫナンバ1000及び2000のＡＣＫを受信できない。
【０１００】
ただし、スイッチ１０は、Ｓ４７０で、ＡＣＫナンバ3000のＡＣＫを受信する。すると、スイッチ１０は、Ｓ４８０で、図１５に示すように、ＡＣＫナンバ3000に対応するフレームの位置にＡＣＫインデックスを移動させる。続いて、スイッチ１０は、Ｓ４９０で、ＡＣＫナンバ3160のＡＣＫをツール２０に送信する。
【０１０１】
上記の説明では、ツール２０は、Ｓ４３０及びＳ４６０で受信すべきＡＣＫナンバ1120及び2140のＡＣＫを受信していないが、これらよりも大きいＡＣＫナンバ3160のＡＣＫを受信できているので、それ以前のフレームは送信できていると判定する。このため、フレームの再送は実施されない。この場合、図１５に示すように、前回送信インデックスにＡＣＫインデックスが追い付いた状態となり、換言すれば全てのフレームの送信が完了した状態となる。ただし、ツール２０は、ＡＣＫナンバ2140のＡＣＫを受信できていて、それよりも大きなＡＣＫナンバ3160のＡＣＫを受信できない場合、このフレームを再送すべきと判定し、該当するフレーム（受信シーケンスナンバが2140のフレーム）のみが再送される。
【０１０２】
［４−４．効果］
以上詳述した第３実施形態によれば、上述した第１実施形態の効果（２ａ）を奏し、さらに、以下の効果を奏する。
【０１０３】
（４ａ）本開示の一態様では、過去の送受信シーケンスナンバ、ＡＣＫナンバ、前回送信インデックス、ＡＣＫインデックスが記述されたリング型のシーケンスリングテーブル１５を記録するように構成されたメモリ１２をさらに備える。スイッチ１０は、シーケンスリングテーブル１５を参照することでデータ量の差を認識し、送信フレームを生成する際に、シーケンスリングテーブル１５を書き換える。
【０１０４】
このような構成によれば、シーケンスリングテーブル１５を用いてスイッチ１０とツール２０及びＥＣＵ３１〜３４との間のデータ量の差を管理することができる。また、前回送信インデックス及びＡＣＫインデックスを移動させることで、どのフレームがＥＣＵ３１〜３４に送信されたかやどのフレームが再送信必要かを判断することができる。そのため、ツール２０とＥＣＵ３１〜３４間の通信信頼性を向上させることができる。
［５．第４実施形態］
［５−１．第１〜第３実施形態との相違点］
上記第１〜第３実施形態では、ツール２０がスイッチ１０を介して１つの宛先であるＥＣＵ３１との間でフレームを中継する例について説明した。しかし、第４実施形態の通信システム４では、ツール２０がスイッチ１０を介して複数の宛先であるＥＣＵ３１及び３２との間でフレームを中継する点で第１〜第３実施形態と異なる。
【０１０５】
［５−２．構成］
第４実施形態の通信システム４では、メモリ１２において、宛先となるＥＣＵ３１及び３２用の複数のシーケンスリングテーブル１５、１６（図１参照）を備える。シーケンスリングテーブル１５は、図１６に示すように、ＥＣＵ３１専用のテーブルであり、上述の
シーケンスリングテーブル１５と同様の構成である。また、シーケンスリングテーブル１６は、図１７に示すように、ＥＣＵ３２専用のテーブルであり、上述のシーケンスリングテーブル１５と同様の構成である。
【０１０６】
［５−３．処理］
次に、第４実施形態の通信システム４において、ツール２０からスイッチ１０を介してＥＣＵ３１及び３２にフレームを中継する例について、図１８のシーケンス図を用いて説明する。
【０１０７】
スイッチ１０は、上述のＳ３１０及びＳ３４０でツール２０から宛先がＥＣＵ３１のフレームを受信するとともに、これらのフレームの間のＳ５１０で、宛先がＥＣＵ３２のフレームを受信する。つまり、ツール２０は、宛先がＥＣＵ３１のフレーム、宛先がＥＣＵ３２のフレーム、宛先がＥＣＵ３１のフレームを、順に連続して送信する。
【０１０８】
宛先がＥＣＵ３１のフレームに対して、スイッチ１０は、上述の処理と同様に、Ｓ３２０、Ｓ３３０、Ｓ３５０、Ｓ３６０の処理を実施する。なお、ＥＣＵ３１用のシーケンスリングテーブル１５が書き換えられるとき、ＥＣＵ３２用のシーケンスリングテーブル１６に影響を与えない。
【０１０９】
宛先がＥＣＵ３２のフレームに対して、スイッチ１０は、Ｓ５２０、Ｓ５３０で、上述のＳ３２０、Ｓ３３０と同様の処理を実施する。ただし、スイッチ１０は、Ｓ５２０で、ＥＣＵ３２用のシーケンスリングテーブル１６に対する記述を行う。なお、ＥＣＵ３２用のシーケンスリングテーブル１６が書き換えられるとき、ＥＣＵ３１用のシーケンスリングテーブル１５に影響を与えない。
【０１１０】
スイッチ１０は、Ｓ４１０、Ｓ４４０で、ＥＣＵ３１に送信したフレームに対するＡＣＫをＥＣＵ３１から受信し、Ｓ４２０、Ｓ４５０と同様に、宛先変換、ＡＣＫナンバ変換、及びＥＣＵ３１用のシーケンスリングテーブル１５の更新を行う。その後、Ｓ４３０、Ｓ４６０で、スイッチ１０は、宛先変換、ＡＣＫナンバ変換、及びシーケンスリングテーブル１５の更新が行われたフレームをツール２０に送信する。
【０１１１】
また、スイッチ１０は、Ｓ６１０で、ＥＣＵ３２に送信したフレームに対するＡＣＫをＥＣＵ３２から受信し、Ｓ６２０で、Ｓ４２０と同様に、宛先変換、ＡＣＫナンバ変換、及びＥＣＵ３２用のシーケンスリングテーブル１６の更新を行う。その後、Ｓ６３０で、スイッチ１０は、宛先変換、ＡＣＫナンバ変換、及びシーケンスリングテーブル１６の更新が行われたフレームをツール２０に送信する。
【０１１２】
［５−４．効果］
以上詳述した第３実施形態によれば、上述した第１実施形態の効果（２ａ）を奏し、さらに、以下の効果を奏する。
【０１１３】
（５ａ）本開示の一態様では、３以上の転送先ポートを備えるとともに、メモリ１２は、転送先ポート毎に、シーケンスリングテーブル１５、１６を備える。スイッチ１０は、転送先ポート毎にシーケンスリングテーブル１５、１６を書き換える。
【０１１４】
このような構成によれば、スイッチ１０は、ツール２０と、複数のＥＣＵ３１〜３４に対して同時にコネクション型通信を行うことができる。
［６．他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【０１１５】
（６ａ）上記実施形態では、スイッチ１０に接続される通信線の本数が５である場合を例示するが、これに限定されるものではない。例えば、通信線の本数は、２以上であればどのような数でもよい。
【０１１６】
（６ｂ）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。
【０１１７】
（６ｃ）上述したスイッチ１０等の中継装置の他、当該中継装置を構成要素とするシステム、当該中継装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、中継方法など、種々の形態で本開示を実現することもできる。
【０１１８】
［７．実施形態の構成と本開示の構成との対応関係］
上記実施形態においてスイッチ１０は本開示での中継装置に相当し、上記実施形態においてツール２０及びＥＣＵ３１〜３４は本開示での通信装置に相当する。また、上記実施形態においてメモリ１２は本開示での転送先記録部及びナンバ記録部に相当し、上記実施形態においてコネクショントンネルテーブル１３は本開示での転送先情報に相当する。また、上記実施形態においてシーケンスリングテーブル１５、１６は本開示でのシーケンステーブルに相当する。
【０１１９】
また、上記実施形態においてＴＣＰプロトコルによる通信は本開示でのコネクション型通信に相当し、上記実施形態においてスイッチ１０が実行する構成のうちのＳ１１５の構成は本開示での種別判定部に相当する。上記実施形態においてＳ１４０、Ｓ１７０、Ｓ２２０、Ｓ２５０、Ｓ３２０、Ｓ３５０、Ｓ３５５、Ｓ３８０、Ｓ３８５、Ｓ４２０、Ｓ４５０、Ｓ４８０、Ｓ５２０、Ｓ６２０の構成は本開示での書換部に相当する。
【０１２０】
また、上記実施形態においてＳ１５０、Ｓ１８０、Ｓ２３０、Ｓ２６０の構成は本開示での送信部に相当し、上記実施形態においてＳ１１０、Ｓ１２５の構成は本開示での代理部に相当する。
【符号の説明】
【０１２１】
１〜４…通信システム、１０…スイッチ、１１…制御部、１２…メモリ、１３…コネクショントンネルテーブル、１３…コネクショントンネルテーブル、１４…シーケンスナンバ管理テーブル、１５〜１６…シーケンスリングテーブル、２０…ツール、３１〜３４…ＥＣＵ、４０〜４４…通信線。
【図１】
2020167588.tif 000003
【図２】
2020167588.tif 000004
【図３】
2020167588.tif 000005
【図４】
2020167588.tif 000006
【図５】
2020167588.tif 000007
【図６】
2020167588.tif 000008
【図７】
2020167588.tif 000009
【図８】
2020167588.tif 000010
【図９】
2020167588.tif 000011
【図１０】
2020167588.tif 000012
【図１１】
2020167588.tif 000013
【図１２】
2020167588.tif 000014
【図１３】
2020167588.tif 000015
【図１４】
2020167588.tif 000016
【図１５】
2020167588.tif 000017
【図１６】
2020167588.tif 000018
【図１７】
2020167588.tif 000019
【図１８】
2020167588.tif 000020