(57)【要約】【課題】再送の高速化を図る。【解決手段】通信装置は、送信部と、受信部と、比較部と、再送制御部とを有する。送信部は、通信相手に向けて第１データを送信する。受信部は、通信相手によって受信された第１データが返送されたデータである、第２データを受信する。比較部は、データリンク層の処理部であり、送信された第１データと受信された第２データとを比較する。再送制御部は、データリンク層の処理部であり、比較部による比較の結果、送信された第１データと受信された第２データとが不一致である場合、第１データの再送を制御する。【選択図】図２
2018032934.tif 000002
【特許請求の範囲】
【請求項１】
通信相手に向けて第１データを送信する送信部と、
前記通信相手によって受信された前記第１データを前記通信相手が返送したデータである、第２データを受信する受信部と、
データリンク層の処理部であって、前記送信された第１データと前記受信された第２データとを比較する比較部と、
データリンク層の処理部であって、前記比較部による比較の結果、前記送信された第１データと前記受信された第２データとが不一致である場合、前記第１データの再送を制御する再送制御部と、
を具備する通信装置。
【請求項２】
前記第１データは、ヘッダが付加されており、
前記ヘッダは、前記第１データを受信した状態のまま返送することを前記通信相手に対して要求するミラー返送要求を含む、
請求項１記載の通信装置。
【請求項３】
前記ヘッダは、宛先アドレスフィールドと送信元アドレスフィールドとタイプフィールドとを含み、
前記送信部は、前記ミラー返送要求を、前記第１データに付加された前記ヘッダのタイプフィールドにマッピングするヘッダ調整部を有する、
請求項２記載の通信装置。
【請求項４】
前記送信部、前記受信部、前記比較部、及び前記再送制御部は、データリンク層の処理部である、
請求項３記載の通信装置。
【請求項５】
前記ヘッダ調整部は、前記データリンク層より上位層の処理部から前記第１データが前記ミラー返送要求の対象データであることを示す情報を受け取った場合、前記ミラー返送要求を、前記第１データに付加された前記ヘッダのタイプフィールドにマッピングする、
請求項４記載の通信装置。
【請求項６】
データリンク層の処理部であって、通信相手から送信されたデータを受信する受信部と、
データリンク層の処理部であって、前記受信されたデータを前記通信相手に向けて返送する送信部と、
を具備する通信装置。
【請求項７】
前記受信されたデータは、ヘッダが付加されており、
前記送信部は、前記ヘッダに、前記受信されたデータを受信した状態のまま返送することを要求するミラー返送要求が含まれる場合、前記受信されたデータを送信する、
請求項６記載の通信装置。
【請求項８】
前記受信部は、
前記受信されたデータを保持する受信バッファと、
前記受信されたデータに付加された前記ヘッダを復号して、前記ヘッダに前記ミラー返送要求が含まれているか否かを判定する受信制御処理部と、
を有し、
前記受信制御処理部は、
前記ヘッダに前記ミラー返送要求が含まれている場合、前記受信バッファに対して保持データを前記送信部へ出力させることにより、前記送信部に対して前記保持データを返送させ、
前記保持データの返送の後に、前記受信されたデータが前記通信相手から送信されたデータと一致しているための判定条件を満たした場合、前記受信バッファに対して前記保持データをデータ復号部へ出力させる、
請求項７記載の通信装置。
【請求項９】
前記ヘッダは、宛先アドレスフィールドと送信元アドレスフィールドとタイプフィールドとを含み、
前記送信部は、前記受信バッファから受け取った前記保持データに付加されているヘッダの宛先アドレスフィールドの内容と送信元アドレスフィールドの内容とを入れ替えると共に前記タイプフィールドにミラー返送識別子を格納するヘッダ調整部を有する、
請求項８記載の通信装置。
【請求項１０】
通信相手に向けて第１データを送信し、
前記通信相手によって受信された前記第１データを前記通信相手が返送したデータである、第２データを受信し、
データリンク層において、前記送信された第１データと前記受信された第２データとを比較し、
前記比較の結果、前記送信された第１データと前記受信された第２データとが不一致である場合、データリンク層において、前記第１データの再送を制御する、
再送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び再送制御方法に関する。
【背景技術】
【０００２】
通信の信頼性を高める技術として、例えば、特許文献１に開示されている、通信エラーを検出する技術がある。
【０００３】
また、通信の信頼性を高める他の技術として、例えば、特許文献２に開示されている、送信側装置から受信側装置へ送信されるデータの再送制御がある。特許文献２では、送信側装置である読取装置が画像データを受信側装置である制御装置へ送信し、受信側装置では、上位層（上位レイヤ）のソフトウェアが受信した画像データにエラーを検出した際に送信側装置へ再送を要求する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２８４６０５号公報
【特許文献２】特開２０１６−１２７６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、車に搭載されるネットワークにおいて通信量が増えてきており、これに伴い、車載ネットワークとしてEthernet（登録商標）等の全二重通信ネットワーク（復信方式の通信ネットワーク）を導入することが検討されている。この車載ネットワークに対しては、特に、通信の高信頼性及び低遅延性に関する要求がある。
【０００６】
本発明者は、通信の高信頼性及び低遅延性に関する要求に鑑みて、以下の問題を見出した。
上記特許文献２に開示されている再送技術を全二重通信ネットワーク（つまり、復信方式の通信ネットワーク）に適用しても、上位層のソフトウェアによる処理速度は遅いので、送信側装置がデータを送信してから受信側装置からの再送信要求を受け取るまでに長い時間を要し、結果として、再送が遅延してしまう可能性がある。
【０００７】
なお、上記特許文献１に開示された技術は、送信側装置が受信側装置へクロックを供給できるような近距離且つ低速の通信を前提としている。また、上記特許文献１に開示された技術は、送信データが伝送される信号線と返送データが伝送される信号線とをそれぞれ独立して設けることを前提としている。このため、上記特許文献１に開示された技術を、全二重通信ネットワーク（つまり、復信方式の通信ネットワーク）にそのまま適用することは難しい。
【０００８】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、通信装置は、通信相手によって受信された通信装置自身の送信データを通信相手が返送した、データを受信し、データリンク層にて、受信データと送信データの不一致が検出された場合、送信データの再送を制御する。
【発明の効果】
【００１０】
前記一実施の形態によれば、再送の高速化を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の通信システムの概要を示すブロック図である。
【図２】第１実施形態の送信ノードの一例を示すブロック図である。
【図３】第１実施形態の受信ノードの一例を示すブロック図である。
【図４】第１実施形態の送信ノードの動作例を示すフローチャートである。
【図５】第１実施形態の受信ノードの動作例を示すフローチャートである。
【図６】第２実施形態の送信ノードの具体的構成の一例を示すブロック図である。
【図７】第２実施形態のフレーム形式の一例を示す図である。
【図８】第２実施形態の受信ノードの具体的構成の一例を示すブロック図である。
【図９】第３実施形態の送信ノードの具体的構成の一例を示すブロック図である。
【図１０】第３実施形態の送信対象フレームの説明に供する図である。
【図１１】第３実施形態のフレーム形式の一例を示す図である。
【図１２】第３実施形態の受信ノードの具体的構成の一例を示すブロック図である。
【図１３】第３実施形態の送信ノードの動作例を示すフローチャートである。
【図１４】第３実施形態の受信ノードの動作例を示すフローチャートである。
【図１５】他の実施形態（３）の車載ネットワークの模式図である。
【図１６】他の実施形態（４）の通信装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、実施の形態について説明する。なお、同一の要素には、同一の符号を付し、重複する説明は省略される。
【００１３】
＜第１実施形態＞
＜通信システムの概要＞
図１は、第１実施形態の通信システムの概要を示すブロック図である。図１において、通信システム１は、通信装置１０，２０と、送受信インタフェース３０，４０と、ネットワークラインＬ１とを有している。
【００１４】
通信装置１０は、通信相手である通信装置２０に向けて、送信データ（以下では、「第１データ」と呼ぶことがある）を送信する。すなわち、ここでは、通信装置１０は、「送信ノード」として動作する。通信装置１０から送出された第１データは、送受信インタフェース３０、ネットワークラインＬ１、及び送受信インタフェース４０を介して、通信装置２０へ到達する。ここで、通信装置１０，２０と送受信インタフェース３０，４０とネットワークラインＬ１とは、全二重通信ネットワーク（つまり、復信方式のネットワーク）を構築していてもよく、以下では、全二重通信ネットワーク（つまり、復信方式のネットワーク）が構築されているものとして説明する。
【００１５】
通信装置２０は、通信装置１０から送信された第１データ（つまり、送信データ）を受信する。すなわち、ここでは、通信装置２０は、「受信ノード」として動作する。そして、通信装置２０は、受信した第１データを通信装置１０に向けて返送する。例えば、通信装置２０は、受信した第１データをそのままの状態で「ミラー返送」する。
【００１６】
ここで、通信装置２０における第１データの受信処理及び返送処理は、例えばネットワーク層等の上位のレイヤではなく、データリンク層で行われる。これにより、処理速度が遅い上位レイヤでの処理を回避できる。
【００１７】
そして、通信装置１０は、通信装置２０から返送された第１データ（つまり、返送データ）を復信方式によって受信する。以下では、この受信した返送データを「第２データ」と呼ぶことがある。そして、通信装置１０は、受信した第２データと送信した第１データとを比較して、両データが一致しなかった場合、第１データの再送を実行する。なお、両データが一致するケースは、通信装置１０から送信された第１データが通信装置２０で正しく受信されたことを意味するので、通信装置１０は一時的に保持しておいた第１データを削除することができる。
【００１８】
ここで、通信装置１０による、第２データの受信処理、第１データと第２データとの比較処理、及び、第１データの再送処理は、例えばネットワーク層等の上位のレイヤではなく、データリンク層で行われる。これにより、処理速度が遅い上位レイヤでの処理を回避できる。
【００１９】
以上のように通信システム１において通信装置１０は、自身の送信データが通信装置２０でデータリンク層の処理によって返送された、返送データを受信し、データリンク層にて、受信した返送データと送信データとの不一致が検出された場合、送信データの再送を制御する。これにより、処理速度が遅い上位レイヤではなく、データリンク層で再送制御を行うことができるので、再送の高速化を実現することができる。さらに、受信ノードである通信装置２０においてエラーチェック処理を行うことを回避できるので、受信ノードの処理負荷を軽減することができる。
【００２０】
＜送信ノードの構成例＞
図２は、第１実施形態の送信ノードの一例を示すブロック図である。上記の通り、ここでは、通信装置１０が送信ノードとして動作することを前提としているので、通信装置１０の構成として説明する。
【００２１】
図２において通信装置１０は、送信部１１と、受信部１２と、比較部１３と、再送制御部１４とを有する。送信部１１、受信部１２、比較部１３、及び再送制御部１４は、いずれもデータリンク層の処理部である。そして、送信部１１、受信部１２、比較部１３、及び再送制御部１４は、ハードウェアで構成されている。
【００２２】
送信部１１は、上位レイヤから出力された送信対象データ（つまり、上記の第１データ）を受け取り、受け取った送信対象データを送信データとして送受信インタフェース３０及び再送制御部１４へ出力する。これにより、送信データは、通信相手である受信ノードに向けて送信されると共に、再送制御部１４によって再送に備えて一時的に保持される。
【００２３】
受信部１２は、受信ノードで上記第１データが返送されたデータである、返送データ（つまり、上記の第２データ）を受信し、受信した返送データを比較部１３へ出力する。
【００２４】
比較部１３は、再送制御部１４に保持されている送信データ（つまり、上記の第１データ）と、受信部１２から受け取った返送データ（つまり、上記の第２データ）とを比較し、比較結果を再送制御部１４へ出力する。ここで、送信データ及び返送データがそれぞれ複数ビットからなるビット列である場合、当該ビット列のうちの１つのビットでも一致していなければ、送信データと返送データとは一致していない、としてもよい。
【００２５】
再送制御部１４は、送信部１１から受け取った送信データを一時的に保持する。また、再送制御部１４は、比較部１３から受け取った比較結果が送信データと返送データとの不一致を示している場合、保持している送信データを受信ノードに向けて再送する。一方、比較部１３から受け取った比較結果が送信データと返送データとの一致を示している場合、再送制御部１４は、一時的に保持していた送信データを削除する。
【００２６】
＜受信ノードの構成例＞
図３は、第１実施形態の受信ノードの一例を示すブロック図である。上記の通り、ここでは、通信装置２０が受信ノードとして動作することを前提としているので、通信装置２０の構成として説明する。
【００２７】
図３において通信装置２０は、受信部２１と、送信部２２とを有する。受信部２１及び送信部２２は、いずれも、データリンク層の処理部である。そして、受信部２１及び送信部２２は、ハードウェアで構成されている。
【００２８】
受信部２１は、送信ノードである通信装置１０から送信されたデータ（つまり、上記の第１データ）を受信する。そして、受信部２１は、この受信した第１データを一時保持すると共に送信部２２へ返送データとして出力する。この受信部２１による一時保持処理及び返送データの出力処理は、第１データの「受信成功判定条件」が満たされるまで、第１データの再送データを受信部２１が受信する度に行われる。第１データの「受信成功判定条件」が満たされると、受信部２１は、一時保持している第１データを、データリンク層よりも上位のレイヤへ出力する。ここで、「受信成功判定条件」とは、例えば、通信装置２０がデータを返送してから所定期間内に返送データに対応する再送データを受信しない、ことである。すなわち、通信装置２０がデータを返送したタイミングを基準として、当該基準タイミングから所定時間以内にその返送データに対応する再送データを通信装置２０が受信した場合、「受信成功判定条件」は満たされない。一方、その基準タイミングから所定時間以内にその返送データに対応する再送データを通信装置２０が受信しない場合、「受信成功判定条件」は満たされる。
【００２９】
送信部２２は、受信部２１から受け取った返送データを、送信ノードである通信装置１０に向けて送信する。ここで、上記の通り、受信部２１及び送信部２２は、データリンク層の処理部である。すなわち、受信ノードである通信装置２０では、データリンク層で返送データの返送処理が行われており、「受信成功判定条件」が満たされて初めて、データリンク層よりも上位のレイヤに受信データが渡される。
【００３０】
＜通信システムの動作例＞
以上の構成を有する通信システム１の動作例について説明する。図４は、第１実施形態の送信ノードの動作例を示すフローチャートである。図５は、第１実施形態の受信ノードの動作例を示すフローチャートである。
【００３１】
（送信ノードの動作例）
図４のフローチャートに示す処理は、例えば、送信部１１がデータリンク層よりも上位のレイヤから送信対象データを受け取った時点でスタートする。
【００３２】
まず、送信ノードである通信装置１０の送信部１１は、送信対象データ（つまり、上記の第１データ）を、受信ノードである通信装置２０に向けて送信する（ステップＳ１１）。上記の通り、この送信対象データは、通信装置２０によって受信された後に、返送データとして返送される。また、この送信対象データは、送信部１１から再送制御部１４に渡され、再送制御部１４によって一時的に保持される。
【００３３】
次に、受信部１２は、通信装置２０から送信された返送データを受信する（ステップＳ１２）。
【００３４】
次に、比較部１３は、再送制御部１４に保持されている送信対象データ（つまり、上記の第１データ）と、受信部１２で受信された返送データ（つまり、上記の第２データ）とを比較して、両者が一致するか否かを判定する（ステップＳ１３）。
【００３５】
送信対象データと返送データとが一致しない場合（ステップＳ１３ＮＯ）、再送制御部１４は、保持している送信対象データの再送を制御する（ステップＳ１４）。すなわち、再送制御部１４は、保持している送信対象データを、送信部１１を介して受信ノードに向けて送信する。このとき、送信対象データは、再送制御部１４によって引き続き保持される。これは、仮に送信対象データを今回再送してもこの再送データとこの再送データに対応する返送データとが一致しないときに実行される、次回の再送に備えるためである。
【００３６】
送信対象データと返送データとが一致する場合（ステップＳ１３ＹＥＳ）、再送制御部１４は、送信対象データが受信ノードで正しく受信できたと推定できるので、保持している送信対象データをバッファ（図示せず）から削除する（ステップＳ１５）。
【００３７】
（受信ノードの動作例）
図５において、まず、受信ノードである通信装置２０の受信部２１は、上記の「受信成功判定条件」が満たされたか否かを判定する（ステップＳ２１）。最初は「受信成功判定条件」が満たされることはないので、フローはステップＳ２２へ進む。
【００３８】
次に、受信部２１は、データを受信したか否かを判定する（ステップＳ２２）。送信ノードから送信対象データが未だ送信されていない場合には、受信部２１が送信ノードから送信されたデータを受信することはないので、フローはステップＳ２１に戻る。結果として、ステップＳ２１及びステップＳ２２が繰り返される。
【００３９】
一方、データを受信した場合（ステップＳ２２ＹＥＳ）、受信部２１が受信データを返送データとして送信部２２へ渡して、送信部２２が返送データを送信ノードに向けて返送する（ステップＳ２３）。このとき、受信部２１は、返送データを一時的に保持しておく。そして、フローは、ステップＳ２１に戻る。
【００４０】
そして、受信部２１は、例えば、送信部２２が返送データを返送したタイミングを基準として、当該基準タイミングから所定時間以内にその返送データに対応する再送データを受信部２１が受信しないときには「受信成功判定条件」が満たされた、と判定する（ステップＳ２１ＹＥＳ）。そして、受信部２１は、受信部２１が保持している返送データを、データリンク層よりも上位のレイヤへ渡す（ステップＳ２４）。
【００４１】
これに対して、未だ「受信成功判定条件」が満たされていないと判定された場合（ステップＳ２１ＮＯ）、受信部２１は、送信ノードから再送された再送データを受信したか否かを判定する（ステップＳ２２）。
【００４２】
以上のように第１実施形態によれば、送信ノードである通信装置１０において、比較部１３は、送信部１１から送信された第１データと、受信ノードによって受信された該第１データを受信ノードが返送したデータであり且つ受信部１２で受信された第２データとを比較する。そして、再送制御部１４は、比較部１３による比較の結果、送信部１１から送信された第１データと受信部１２で受信された第２データとが一致しない場合、第１データの再送を制御する。比較部１３及び再送制御部１４は、データリンク層の処理部である。
【００４３】
この通信装置１０の構成により、処理速度が遅い上位レイヤではなく、データリンク層で再送制御を行うことができるので、再送の高速化を実現することができる。また、受信ノードにおいてエラーチェック処理を行うことを回避できるので、受信ノードの処理負荷を軽減することができる。
【００４４】
また、受信ノードである通信装置２０において、受信部２１は、送信ノードから送信されたデータを受信する。そして、送信部２２は、受信部２１で受信されたデータを送信ノードに向けて返送する。受信部２１及び送信部２２は、データリンク層の処理部である。
【００４５】
この通信装置２０の構成により、処理速度が遅い上位レイヤではなく、データリンク層で返送処理を実行するので、高速に返送することができ、結果として、再送の高速化に寄与することができる。
【００４６】
また、通信装置２０において受信部２１は、「受信成功判定条件」が満たされて初めて、データリンク層よりも上位のレイヤに受信データを渡す。「受信成功判定条件」は、上記の通り、例えば、通信装置２０がデータを返送してから所定期間内に返送データに対応する再送データを受信しない、ことである。
【００４７】
この通信装置２０の構成により、「受信成功判定条件」が満たされていない状態で、上位レイヤが無駄に処理することを回避できるので、結果として、受信ノードの処理負荷を軽減することができる。
【００４８】
なお、以上の説明では、通信装置２０の構成として、受信部２１が「受信成功判定条件」が満たされて初めて、データリンク層よりも上位のレイヤに受信データを渡す、通信装置２０の構成を説明したが、通信装置２０の構成はこれに限定されるものではない。例えば、通信装置２０の構成は、受信部２１が「受信成功判定条件」が満たされていない状態であっても受信データを取りあえず上位レイヤに渡し、上位レイヤが「受信成功判定条件」が満たされて初めて受信データの処理を開始する、構成であってもよい。この構成によっても、「受信成功判定条件」が満たされていない状態で、上位レイヤが無駄に処理することを回避できるので、結果として、受信ノードの処理負荷を軽減することができる。
【００４９】
＜第２実施形態＞
第２実施形態は、第１実施形態で説明した送信ノード及び受信ノードの具体的構成の一例に関する。なお、第２実施形態の送信ノード及び受信ノードの基本構成は、第１実施形態の通信装置１０及び通信装置２０と同じなので、第２実施形態の通信システムの構成、並びに、第２実施形態の送信ノード及び受信ノードの基本構成については、図１〜図３を参照することができる。
【００５０】
＜送信ノードの構成例＞
図６は、第２実施形態の送信ノードの具体的構成の一例を示すブロック図である。図６において、第２実施形態の通信装置１０の送信部１１は、ヘッダ調整部１１Ａと、送信バッファ１１Ｂと、送信処理部１１Ｃとを有する。そして、送信処理部１１Ｃは、シフトレジスタ１１Ｄを有する。
【００５１】
ヘッダ調整部１１Ａは、上位レイヤから出力された送信対象データ（つまり、上記の第１データ）を受け取る。そして、ヘッダ調整部１１Ａは、受け取った送信対象データに付加されるヘッダに「ミラー返送要求」を含める。そして、ヘッダ調整部１１Ａは、「ミラー返送要求」を含むヘッダが付加された送信対象データを、送信バッファ１１Ｂへ出力する。
【００５２】
より具体的には、ヘッダ及び送信対象データは、例えば、図７に示すようなフレームの形式で送信される。図７は、フレーム形式の一例を示す図である。図７の上段には、通信装置１０から送信されるフレームの形式が示されている。以下では、送信ノードである通信装置１０から送信されるフレームを「ミラー要求フレーム」と呼ぶことがある。当該ミラー要求フレームは、データリンク層のヘッダ部分Ｐ１と、データ部分Ｐ２とを含んでいる。ヘッダ部分Ｐ１は、宛先アドレスフィールドＦ１と、送信元アドレスフィールドＦ２と、タイプフィールドＦ３とを含んでいる。通信装置１０から送信されるフレームにおいては、宛先アドレスフィールドＦ１には受信ノードである通信装置２０のアドレスが格納され、送信元アドレスフィールドＦ２には送信ノードである通信装置１０のアドレスが格納され、タイプフィールドＦ３には「ミラー要求識別子（つまり、ミラー返送要求）」が格納される。ここで、「ミラー要求識別子」とは、受信したデータを受信した状態のまま返送することを受信ノードに対して要求するための情報である。また、通信装置１０及び通信装置２０のアドレスとしては、それぞれ、通信装置１０及び通信装置２０のＭＡＣ（Media Access Control）アドレスが用いられてもよい。
【００５３】
図６の説明に戻り、送信バッファ１１Ｂは、「ミラー返送要求」を含むヘッダが付加された送信対象データを受け取り、受け取った送信対象データを送信処理部１１Ｃ及び再送制御部１４へ出力する。送信バッファ１１Ｂは、例えば、複数の送信対象データを受け取る場合、先入先出で送信対象データを出力する。
【００５４】
送信処理部１１Ｃにおいてシフトレジスタ１１Ｄは、送信バッファ１１Ｂから送信対象データを受け取り、受け取った送信対象データを送受信インタフェース３０へ順次出力する。また、シフトレジスタ１１Ｄは、再送制御部１４から再送データを受け取り、受け取った再送データを送受信インタフェース３０へ順次出力する。
【００５５】
受信部１２は、受信処理部１２Ａと、受信制御処理部１２Ｂと、受信バッファ１２Ｃとを有する。受信処理部１２Ａは、シフトレジスタ１２Ｄを有する。受信制御処理部１２Ｂは、デコーダ１２Ｅを有する。
【００５６】
受信処理部１２Ａにおいてシフトレジスタ１２Ｄは、返送データを送受信インタフェース３０経由で受け取り、受け取った返送データを受信制御処理部１２Ｂ及び受信バッファ１２Ｃへ順次出力する。これにより、返送データは受信バッファ１２Ｃに一時的に保持される。ここで、この返送データには、ヘッダが付加されており、受信バッファ１２Ｃには、このヘッダが付加されている状態の返送データが一時的に保持されてもよい。
【００５７】
受信制御処理部１２Ｂにおいてデコーダ１２Ｅは、返送データをデコードせずに、この返送データに付加されているヘッダをデコードする。そして、デコードしたヘッダが通信装置１０自身の送信データに対応する返送データに付加されて返送されてきたことを示す場合、受信制御処理部１２Ｂは、受信バッファ１２Ｃに対して保持している返送データを比較部１３へ出力させるための出力命令を、受信バッファ１２Ｃへ出力する。
【００５８】
ここで、第２実施形態の受信ノードである通信装置２０は、後述するように、受信したデータ（つまり、受信した第１データ）だけでなくヘッダも受信した状態のまま返送する。例えば、通信装置２０から送信されるヘッダ及び返送データは、図７の下段に示すようなフレームの形式で送信される。以下では、受信ノードである通信装置２０から返送されるフレームを「ミラー返送フレーム」と呼ぶことがある。すなわち、図７の下段に示すように、ミラー返送フレームのヘッダ部分Ｐ１の宛先アドレスフィールドＦ１、送信元アドレスフィールドＦ２、及びタイプフィールドＦ３には、ミラー要求フレームと同じ内容、つまり、通信装置２０のアドレス、通信装置１０のアドレス、及びミラー要求識別子がそれぞれ格納されている。
そして、受信制御処理部１２Ｂは、受信したフレームの宛先アドレスフィールドＦ１、送信元アドレスフィールドＦ２、及びタイプフィールドＦ３に、通信装置２０のアドレス、通信装置１０のアドレス、及びミラー要求識別子がそれぞれ格納されている場合に、そのフレームが通信装置１０自身宛のミラー返送フレームであると判定する。言い換えれば、受信制御処理部１２Ｂは、送信部１１から送信されたミラー要求フレームのヘッダと同じ内容のヘッダを含むフレームを受信した場合、その受信フレームを通信装置１０自身宛のミラー返送フレームであると判定する。すなわち、受信したフレームのヘッダの宛先アドレスフィールドＦ１、送信元アドレスフィールドＦ２、及びタイプフィールドＦ３のそれぞれに、通信装置２０のアドレス、通信装置１０のアドレス、及びミラー要求識別子がそれぞれ格納されている場合、そのヘッダは、通信装置１０自身の送信データに対応する返送データに付加されて返送されてきたことを示している。
【００５９】
図６の説明に戻り、再送制御部１４は、再送制御処理部１４Ａと、再送バッファ１４Ｂとを有する。
【００６０】
再送制御処理部１４Ａは、再送バッファ１４Ｂに一時的に保持されている送信データを比較部１３に渡して、比較部１３による送信データと返送データとの比較の結果を受け取る。そして、再送制御処理部１４Ａは、比較部１３から受け取った比較結果が送信データと返送データとの不一致を示す場合、再送バッファ１４Ｂに対して「再送命令」を出力する。一方、比較結果が送信データと返送データとの一致を示す場合、再送制御処理部１４Ａは、再送バッファ１４Ｂに対して「削除命令」を出力する。
【００６１】
再送バッファ１４Ｂは、送信バッファ１１Ｂから受け取った、「ミラー返送要求」を含むヘッダが付加された送信データを一時的に保持する。すなわち、例えば、再送バッファ１４Ｂは、図７の上段に示すようなミラー要求フレームを一時的に保持する。そして、再送バッファ１４Ｂは、再送制御処理部１４Ａから「再送命令」を受け取ると、保持しているヘッダ付きの送信データを再送データとして送信処理部１１Ｃへ出力する。また、再送バッファ１４Ｂは、再送制御処理部１４Ａから「削除命令」を受け取ると、保持しているヘッダ付きの送信データを削除する。
【００６２】
＜受信ノードの構成例＞
図８は、第２実施形態の受信ノードの具体的構成の一例を示すブロック図である。図８において、第２実施形態の通信装置２０は、データリンク層よりも上位のレイヤに対応する処理部として、データ復号部２３を有している。また、第２実施形態の通信装置２０の受信部２１は、受信処理部２１Ａと、受信制御処理部２１Ｂと、受信バッファ２１Ｃとを有する。受信処理部２１Ａは、シフトレジスタ２１Ｄを有する。受信制御処理部２１Ｂは、デコーダ２１Ｅを有する。
【００６３】
受信処理部２１Ａにおいてシフトレジスタ２１Ｄは、送信ノードである通信装置１０から送信された、「ミラー返送要求」を含むヘッダ付きのデータを送受信インタフェース４０経由で受信して、受信制御処理部２１Ｂ及び受信バッファ２１Ｃへ順次出力する。これにより、「ミラー返送要求」を含むヘッダ付きの受信データが受信バッファ２１Ｃに一時的に保持される。
【００６４】
受信制御処理部２１Ｂにおいてデコーダ２１Ｅは、受信処理部２１Ａから受け取った、データ部分をデコードせずに、このデータ部分に付加されているヘッダをデコードする。そして、デコードしたヘッダに上記の「ミラー返送要求」が含まれている場合、受信制御処理部２１Ｂは、受信バッファ２１Ｃに対して保持しているヘッダ付きのデータを送信部２２へ出力させるための出力命令を、受信バッファ２１Ｃへ出力する。これにより、受信バッファ２１Ｃに保持されていたヘッダ付きのデータが返送データとして送信ノードに向けて返送される。
【００６５】
また、受信制御処理部２１Ｂは、上記の「受信成功判定条件」が満たされたか否かを所定周期で判定する。そして、受信制御処理部２１Ｂは、「受信成功判定条件」が満たされた場合、受信バッファ２１Ｃに対して保持しているヘッダ付きのデータを、データリンク層よりも上位のレイヤへ出力させると共に、その保持しているヘッダ付きデータを削除させる。ここでは、データ復号部２３が上位のレイヤに対応する。
【００６６】
データ復号部２３は、受信バッファ２１Ｃからヘッダ付きのデータを受け取ると、そのデータを復号し、復号後のデータをこれを用いる後段の機能部（図示せず）へ出力する。
【００６７】
送信部２２は、送信バッファ２２Ａと、送信処理部２２Ｂとを有する。送信処理部２２Ｂは、シフトレジスタ２２Ｃを有する。
【００６８】
送信バッファ２２Ａは、入力されたヘッダ付きの返送データを送信処理部２２Ｂへ出力する。ここでは、送信バッファ２２Ａに入力されるヘッダ付きの返送データは、受信バッファ２１Ｃから出力されたものである。言い換えれば、このヘッダ付きの返送データは、受信処理部２１Ａで受信されたデータだけでなくヘッダも受信した状態のままである。すなわち、送信バッファ２２Ａは、例えば、図７の下段に示すようなミラー返送フレームを受信バッファ２１Ｃから受け取って、送信処理部２２Ｂへ出力する。
【００６９】
送信処理部２２Ｂにおいてシフトレジスタ２２Ｃは、送信バッファ１１Ｂから受け取ったヘッダ付きの返送データ（例えば、上記のミラー返送フレーム）を受け取って、送受信インタフェース４０へ順次出力する。
【００７０】
＜通信システムの動作例＞
以上の構成を有する第２実施形態の通信システム１の動作例について説明する。
【００７１】
（送信ノードの動作例）
第２実施形態の送信ノードである通信装置１０の動作フローの主要な流れは、第１実施形態の送信ノードと変わらないので、主に異なる点を図４を用いて説明する。
【００７２】
ステップＳ１１において、第２実施形態の通信装置１０の送信部１１は、「ミラー返送要求」を含むヘッダ付きの送信データを受信ノードに向けて送信する。すなわち、送信部１１は、例えば、上記のミラー要求フレームを受信ノードに向けて送信する。
【００７３】
ステップ１２において、受信部１２は、送信部１１が送信した送信データに付加されたヘッダと同じ内容のヘッダが付加されているデータを送受信インタフェース３０経由で受け取った場合、このデータが返送データであると判断する。すなわち、受信部１２は、例えば、送信部１１から送信されたミラー要求フレームのヘッダと同じ内容のヘッダを含むフレームを受信した場合、その受信フレームを通信装置１０自身宛のミラー返送要求フレームであると判定する。
【００７４】
（受信ノードの動作例）
第２実施形態の受信ノードである通信装置２０の動作フローの主要な流れは、第１実施形態の受信ノードと変わらないので、主に異なる点を図５を用いて説明する。
【００７５】
ステップＳ２２において、第２実施形態の通信装置２０の受信部２１は、「ミラー返送要求」を含むヘッダが付加されたデータを受信したか否かを判定する。そして、ステップＳ２３において、送信部２２は、「ミラー返送要求」を含むヘッダが付加された状態で受信されたデータを送信ノードに向けて送信する。
【００７６】
以上のように第２実施形態によれば、送信ノードである通信装置１０において、送信部１１は、「ミラー要求識別子（つまり、ミラー返送要求）」を含むヘッダが付加された送信対象データを受信ノードに向けて送信する。「ミラー要求識別子」とは、上記の通り、受信したデータを受信した状態のまま返送することを受信ノードに対して要求するための情報である。
【００７７】
この通信装置１０の構成により、データリンク層の処理で簡単に、受信ノードに対してミラー返送を要求することができる。また、この通信装置１０の構成により、受信ノードはヘッダだけをデコードすればミラー返送すべきデータであるか否かを判断できるので、データリンク層の処理でミラー返送することができ、この結果として、再送の高速化に寄与することができる。
【００７８】
また、送信部１１から送信される送信データに付加されたヘッダは、宛先アドレスフィールドと送信元アドレスフィールドとタイプフィールドとを含む。そして、送信部１１は、ミラー要求識別子をタイプフィールドにマッピングする。
【００７９】
この通信装置１０の構成により、Ethernet（登録商標）等の全二重通信ネットワークで用いられるフレーム構成を利用することができるので、全二重通信ネットワークに広く適用可能な通信装置を実現することができる。
【００８０】
また、受信部１２は、受信データに付加されたヘッダの宛先アドレスフィールド、送信元アドレスフィールド、及びタイプフィールドに、受信ノードのアドレス、通信装置１０自身のアドレス、及びミラー要求識別子がそれぞれ格納されている場合、通信装置１０自身宛の返送データであると判断する。
【００８１】
この通信装置１０の構成により、受信ノードでは受信データだけでなくヘッダもそのまま返送することができるので、受信ノードの処理負荷を低減することができる。
【００８２】
また、受信ノードである通信装置２０において、送信部１１は、受信部１２で受信されたデータに付加されたヘッダにミラー要求識別子が含まれている場合、そのデータを送信ノードに向けて返送する。
【００８３】
この通信装置２０の構成により、ヘッダだけをデコードすればミラー返送すべきデータであるか否かを判断できるので、データリンク層の処理で簡単に、ミラー返送することができ、この結果として、再送の高速化に寄与することができる。
【００８４】
また、受信部２１は、受信データを保持する受信バッファ２１Ｃと、受信データに付加されたヘッダを復号（デコード）して、このヘッダにミラー要求識別子が含まれているか否かを判定する受信制御処理部２１Ｂとを含んでいる。この受信制御処理部２１Ｂは、そのヘッダにミラー要求識別子が含まれている場合、受信バッファ２１Ｃに対して保持データを送信部１１へ出力させることにより、送信部１１に対してその保持データを送信ノードに向けて返送させる。また、受信制御処理部２１Ｂは、送信部１１による保持データの返送後に、「受信成功判定条件」が満たされた場合、受信バッファ２１Ｃに対して保持データをデータ復号部２３へ出力させる。
【００８５】
この通信装置２０の構成により、「受信成功判定条件」が満たされるまではヘッダだけ復号してデータを復号せず、「受信成功判定条件」が満たされて初めてデータを復号することができるので、都度データを復号するのに比べて、処理負荷を軽減することができる。
【００８６】
（変形例）
なお、以上の説明では、送信ノードである通信装置１０が送信データに付加されるヘッダに「ミラー要求識別子（つまり、ミラー返送要求）」を含めることを前提に説明を行った。しかしながら、通信装置１０の構成はこれに限定されるものではなく、送信データに付加されるヘッダに「ミラー要求識別子（つまり、ミラー返送要求）」を含めなくてもよい。この場合には、通信装置１０にヘッダ調整部１１Ａを設けなくてもよく、送信対象データが送信バッファ１１Ｂに入力されてもよい。この場合には、受信ノードである通信装置２０において受信制御処理部２１Ｂは、ヘッダのデコードを行うが、宛先アドレスフィールドに通信装置２０のアドレスが格納されていれば、受信バッファ２１Ｃに対して保持データを送信部１１へ出力させる。
【００８７】
＜第３実施形態＞
第３実施形態は、第１実施形態で説明した送信ノード及び受信ノードの具体的構成の他の一例に関する。なお、第３実施形態の送信ノード及び受信ノードの基本構成は、第１実施形態の通信装置１０及び通信装置２０と同じなので、第３実施形態の通信システムの構成、並びに、第３実施形態の送信ノード及び受信ノードの基本構成については、図１〜図３を参照することができる。
【００８８】
＜送信ノードの構成例＞
図９は、第３実施形態の送信ノードの具体的構成の一例を示すブロック図である。なお、第２実施形態の送信ノードの構成要素と、これと同等の第３実施形態の送信ノードの構成要素とには、同一の符号を付しており、重複する説明は省略される。
【００８９】
図９において、第３実施形態の通信装置１０の送信部１１は、送信制御処理部１１１Ａと、ヘッダ調整部１１１Ｂとを有する。
【００９０】
送信制御処理部１１１Ａは、上位レイヤから出力された送信対象データを受け取る。この受け取った送信対象データには、「送信コマンド」及びヘッダが付加されている。例えば、送信制御処理部１１１Ａは、図１０に示すように、「送信対象フレーム」の前に送信コマンドが付加された状態で「送信対象フレーム」を受け取る。「送信対象フレーム」は、例えば図７に示したフレーム形式と同様に、ヘッダ部分Ｐ１とデータ部分Ｐ２とを含んでいる。そして、ヘッダ部分Ｐ１は、宛先アドレスフィールドＦ１と、送信元アドレスフィールドＦ２と、タイプフィールドＦ３とを含んでいる。データ部分Ｐ２には、送信対象データが格納されている。
【００９１】
ここで、「送信コマンド」は、送信対象データがミラー返送要求対象のデータであるか否かを示す情報である。例えば、送信対象データがミラー返送要求対象データである場合、送信コマンドとしてビット値「１」が付加され、送信対象データがミラー返送要求対象データでない場合、送信コマンドとしてビット値「０」が付加されてもよい。さらに、制御データをミラー返送要求対象データとし、制御データ以外のデータ（例えば、音声データ、画像データ等）をミラー返送要求の対象でないデータとしてもよい。
【００９２】
また、送信制御処理部１１１Ａは、受け取った送信コマンドの内容に応じて、ヘッダ調整部１１１Ｂによるヘッダ調整の実行不実行を制御する。例えば、送信制御処理部１１１Ａは、受け取った送信対象データに付加された送信コマンドがミラー返送要求対象データを示す場合、「ヘッダをミラー返送要求ヘッダへ調整するためのヘッダ調整実行命令」をヘッダ調整部１１１Ｂへ出力する。一方、受け取った送信対象データに付加された送信コマンドがミラー返送要求対象データ以外のデータを示す場合、送信制御処理部１１１Ａは、「ヘッダ調整不実行命令」をヘッダ調整部１１１Ｂへ出力する。
【００９３】
ヘッダ調整部１１１Ｂは、送信制御処理部１１１Ａと同様に、送信コマンド及びヘッダが付加された送信対象データを、つまり、送信コマンドが付加された送信対象フレームを受け取る。そして、ヘッダ調整部１１１Ｂは、送信制御処理部１１１Ａから「ヘッダをミラー返送要求ヘッダへ調整するためのヘッダ調整実行命令」を受け取った場合、送信対象フレームから送信コマンドを除去すると共に、送信対象フレームのヘッダ部分Ｐ１のタイプフィールドＦ３に「ミラー要求識別子（つまり、ミラー返送要求）」を格納する。これにより、図１１の上段に示す「ミラー要求フレーム」が形成される。ヘッダ調整部１１１Ｂは、この「ミラー要求フレーム」を送信バッファ１１Ｂへ出力する。
【００９４】
一方、ヘッダ調整部１１１Ｂは、送信制御処理部１１１Ａから「ヘッダ調整不実行命令」を受け取った場合、ヘッダ調整を行わず、送信対象フレームから送信コマンドを除去だけする。これにより、「ミラー返送非要求フレーム」が形成される。このとき、ヘッダ部分Ｐ１のタイプフィールドＦ３に「ミラー要求識別子」以外の情報が格納されている。ヘッダ調整部１１１Ｂは、この「ミラー返送非要求フレーム」を送信バッファ１１Ｂへ出力する。
【００９５】
受信部１２は、受信制御処理部１１２Ａを有する。受信制御処理部１１２Ａは、第２実施形態の受信制御処理部１２Ｂと同様に、返送データをデコードせずに、この返送データに付加されているヘッダをデコードする。そして、デコードしたヘッダが通信装置１０自身の送信データに対応する返送データに付加されて返送されてきたことを示す場合、受信制御処理部１１２Ａは、受信バッファ１２Ｃに対して保持している返送データを比較部１３へ出力させる。
【００９６】
ここで、第３実施形態の受信ノードである通信装置２０は、後述するように、受信したデータを受信した状態のまま返送する一方、ヘッダに関しては、受信したヘッダの宛先アドレスフィールドの内容と送信元アドレスフィールドの内容とを入れ替えると共に、タイプフィールドに「ミラー返送識別子」を格納する。例えば、図１１の下段に示すように、ミラー返送フレームのヘッダ部分Ｐ１の宛先アドレスフィールドＦ１、送信元アドレスフィールドＦ２、及びタイプフィールドＦ３には、ミラー要求フレームと異なり、通信装置１０のアドレス、通信装置２０のアドレス、及びミラー返送識別子がそれぞれ格納されている。
そして、受信制御処理部１１２Ａは、受信したフレームの宛先アドレスフィールドＦ１、送信元アドレスフィールドＦ２、及びタイプフィールドＦ３に、通信装置１０のアドレス、通信装置２０のアドレス、及び「ミラー返送識別子」がそれぞれ格納されている場合に、そのフレームが通信装置１０自身宛のミラー返送フレームであると判定する。ここで、「ミラー返送識別子」は、このミラー返送識別子と共に送られてくるデータが返送データであることを示す情報である。すなわち、タイプフィールドＦ３に「ミラー返送識別子」が格納されたフレームのデータ部分Ｐ２には、返送データが格納されている。
【００９７】
＜受信ノードの構成例＞
図１２は、第３実施形態の受信ノードの具体的構成の一例を示すブロック図である。なお、第３実施形態の受信ノードの構成要素と、これと同等の第３実施形態の受信ノードの構成要素とには、同一の符号を付しており、重複する説明は省略される。
【００９８】
図１２において、第３実施形態の通信装置２０の受信部２１は、受信制御処理部１２１Ａを有する。受信制御処理部１２１Ａは、受信処理部２１Ａから、ヘッダが付加された受信データを受け取る。例えば、受信制御処理部１２１Ａは、ヘッダ及び受信データをフレーム形式で受け取る。受信制御処理部１２１Ａは、受信処理部２１Ａから受け取った受信フレームのデータ部分をデコードせずにヘッダをデコードする。そして、受信制御処理部１２１Ａは、受信フレームに含まれるデータが返送対象のデータであるか否かを判定する。そして、受信制御処理部１２１Ａは、デコードしたヘッダのタイプフィールドに上記の「ミラー要求識別子」が含まれている場合、受信フレームに含まれるデータが返送対象のデータであると判定して、第２実施形態の受信制御処理部２１Ｂと同じように動作する。すなわち、受信制御処理部１２１Ａは、受信バッファ２１Ｃに対して保持している受信フレームを送信部２２へ出力させるための出力命令を受信バッファ２１Ｃへ出力すると共に、上記の「受信成功判定条件」が満たされたか否かを所定周期で判定する。「受信成功判定条件」が満たされた場合の受信制御処理部１２１Ａの動きも「受信成功判定条件」が満たされていない場合の受信制御処理部１２１Ａの動きも、第２実施形態の受信制御処理部２１Ｂと同じである。
【００９９】
これに対して、受信制御処理部１２１Ａは、デコードしたヘッダのタイプフィールドに「ミラー要求識別子」以外の情報が含まれる場合、受信バッファ２１Ｃに対して保持している受信フレームをデータリンク層よりも上位のレイヤへ出力させるための出力命令を受信バッファ２１Ｃへ出力すると共に、その保持している受信フレームを削除させる。これは、その受信フレームのデータは、ミラー返送対象のデータではないからである。
【０１００】
ここで、受信バッファ２１Ｃは、例えば、図１１の上段に示すような受信フレーム（つまり、ヘッダ及びデータ）を保持している。そして、受信バッファ２１Ｃは、受信制御処理部１２１Ａによる制御によって、所定の場合に、保持しているフレームを送信部２２へ出力する。
【０１０１】
送信部２２は、ヘッダ調整部１２２Ａを有する。ヘッダ調整部１２２Ａは、受信バッファ２１Ｃから保持フレーム（つまり、受信フレーム）を受け取り、その保持フレームのヘッダの宛先アドレスフィールドＦ１の内容と送信元アドレスフィールドＦ２の内容とを入れ替えると共に、タイプフィールドＦ３に「ミラー返送識別子」を格納する。これにより、例えば、図１１の下段に示すようなミラー返送フレームが形成される。例えば、ミラー返送フレームは、宛先アドレスフィールドＦ１、送信元アドレスフィールドＦ２、及びタイプフィールドＦ３に、通信装置１０のアドレス、通信装置２０のアドレス、及び「ミラー返送識別子」がそれぞれ格納されている。
【０１０２】
＜通信システムの動作例＞
以上の構成を有する第３実施形態の通信システム１の動作例について説明する。
【０１０３】
（送信ノードの動作例）
図１３は、第３実施形態の送信ノードの動作例を示すフローチャートである。図１３のフローチャートに示す処理は、例えば、送信部１１がデータリンク層よりも上位のレイヤから送信対象フレームを受け取った時点でスタートする。
【０１０４】
まず、送信ノードである通信装置１０における送信部１１の送信制御処理部１１１Ａは、上位レイヤから受け取った送信対象フレーム内の送信対象データが返送要求対象のデータであるか否かを判定する（ステップＳ３１）。この判定には、上記の通り、送信対象フレームの前に付加されている送信コマンドが用いられる。
【０１０５】
送信対象データが返送要求対象のデータでない場合（ステップＳ３１ＮＯ）、送信制御処理部１１１Ａは、送信対象フレームがそのまま送信されるように、送信対象フレームの送信を制御する（ステップＳ３２）。例えば、送信制御処理部１１１Ａは、「ヘッダ調整不実行命令」をヘッダ調整部１１１Ｂへ出力し、ヘッダ調整部１１１Ｂは、送信コマンドだけ除去して、送信対象フレームを送信バッファ１１Ｂに出力する。これにより、上記の「ミラー返送非要求フレーム」が送信されることになる。
【０１０６】
一方、送信対象データが返送要求対象のデータである場合（ステップＳ３１ＹＥＳ）、送信部１１のヘッダ調整部１１１Ｂは、送信対象フレームのヘッダをミラー返送要求ヘッダへ調整する（ステップＳ３３）。具体的には、ヘッダ調整部１１１Ｂは、送信対象フレームから送信コマンドを除去すると共に、送信対象フレームのヘッダ部分Ｐ１のタイプフィールドＦ３にミラー要求識別子を格納する。これにより、ミラー要求フレームが形成される。
【０１０７】
次に、ヘッダ調整部１１１Ｂは、ミラー要求フレームを送信バッファ１１Ｂに出力することで受信ノードに向けて送信する（ステップＳ３４）。
【０１０８】
次に、受信部１２は、ミラー返送フレームを受信する。ステップＳ３６において、比較部１３は、再送バッファ１４Ｂに保持されている送信対象データと、ミラー返送フレームに含まれる返送データとを比較して、両者が一致するか否かを判定する（ステップＳ３５）。
【０１０９】
送信対象データと返送データとが一致しない場合（ステップＳ３６ＮＯ）、再送制御処理部１４Ａは、再送バッファ１４Ｂが保持している送信対象データの再送を制御する（ステップＳ３７）。
【０１１０】
送信対象データと返送データとが一致する場合（ステップＳ３６ＹＥＳ）、再送制御処理部１４Ａは、送信対象データが受信ノードで正しく受信できたと推定できるので、再送バッファ１４Ｂに対して保持している送信対象フレームを削除するように制御する（ステップＳ３８）。
【０１１１】
（受信ノードの動作例）
図１４は、第３実施形態の受信ノードの動作例を示すフローチャートである。
【０１１２】
まず、受信ノードである通信装置２０における受信部２１の受信制御処理部１２１Ａは、図５のステップＳ２１と同様に、「受信成功判定条件」が満たされたか否かを判定する（ステップＳ４１）。
【０１１３】
次に、受信制御処理部１２１Ａは、図５のステップＳ２２と同様に、フレームを受信したか否かを判定する（ステップＳ４２）。
【０１１４】
フレームを受信した場合（ステップＳ４２ＹＥＳ）、受信制御処理部１２１Ａは、受信フレームのデータ部分をデコードせずにヘッダをデコードする（ステップＳ４３）。
【０１１５】
次に、受信制御処理部１２１Ａは、受信フレームに含まれるデータが返送対象のデータであるか否かを判定する（ステップＳ４４）。この判定では、受信フレームのヘッダのタイプフィールドにミラー要求識別子が格納されていれば、その受信フレームに含まれるデータは返送対象であると判定される一方、ミラー要求識別子以外の情報が格納されていれば、返送対象でないと判定される。
【０１１６】
受信フレームに含まれるデータが返送対象のデータでない場合（ステップＳ４４ＮＯ）、受信制御処理部１２１Ａは、受信バッファ２１Ｃに対して保持している受信フレームを、データリンク層よりも上位のレイヤ（ここでは、データ復号部２３）へ出力させる（ステップＳ４７）。
【０１１７】
一方、受信フレームに含まれるデータが返送対象のデータである場合（ステップＳ４４ＹＥＳ）、受信制御処理部１２１Ａは、受信バッファ２１Ｃに対して保持しているフレームを、送信部２２のヘッダ調整部１２２Ａへ出力させる。そして、ヘッダ調整部１２２Ａは、受信バッファ２１Ｃから受け取ったフレームのヘッダを調整する（ステップＳ４５）。具体的には、ヘッダ調整部１２２Ａは、フレームのヘッダの宛先アドレスフィールドＦ１の内容と送信元アドレスフィールドＦ２の内容とを入れ替えると共に、タイプフィールドＦ３に「ミラー返送識別子」を格納する。これにより、ミラー返送フレームが形成される。
【０１１８】
次に、ヘッダ調整部１２２Ａは、ミラー返送フレームを送信バッファ２２Ａに出力することで送信ノードに向けて返送する（ステップＳ４６）。そして、フローは、ステップＳ４１に戻る。
【０１１９】
そして、受信制御処理部１２１Ａは、図５のステップＳ２２と同様に、例えば、送信部２２が返送データを返送したタイミングを基準として、当該基準タイミングから所定時間以内にその返送データに対応する再送データを受信部２１が受信しないときには「受信成功判定条件」が満たされた、と判定する（ステップＳ４１ＹＥＳ）。そして、受信制御処理部１２１Ａは、受信バッファ２１Ｃに対して保持している受信フレームを、データリンク層よりも上位のレイヤへ出力させる（ステップＳ４７）。
【０１２０】
以上のように第３実施形態によれば、送信ノードである通信装置１０において、送信部１１の送信制御処理部１１１Ａは、上位レイヤから、送信コマンドが付加された状態で「送信対象フレーム」を受け取り、当該送信コマンドの内容に基づいて、ヘッダ調整部１１１Ｂによるヘッダ調整の実行不実行を制御する。当該送信コマンドは、送信対象データがミラー返送要求対象のデータであるか否かを示す。
【０１２１】
この通信装置１０の構成により、送信制御処理部１１１Ａは送信コマンドの内容を確認するだけで、簡単にヘッダ調整部１１１Ｂによるヘッダ調整を制御することができる。
【０１２２】
そして、制御データをミラー返送要求対象データとし、制御データよりも重要度の低い、制御データ以外のデータ（例えば、音声データ、画像データ等）をミラー返送要求の対象でないデータとしてもよい。これにより、重要度の低いデータを含むフレームに対してはヘッダ調整部１１１Ｂによるヘッダ調整を不実行とすることができるので、送信ノードである通信装置１０の処理負荷を低減することができる。
【０１２３】
また、受信ノードである通信装置２０において、送信部２２のヘッダ調整部１２２Ａは、受信バッファ２１Ｃに保持されている受信フレーム（つまり、保持フレーム）のヘッダの宛先アドレスフィールドの内容と送信元アドレスフィールドの内容とを入れ替えて、ミラー返送フレームを形成する。
【０１２４】
この通信装置２０の構成により、Ethernet（登録商標）等の全二重通信ネットワークで用いられる宛先アドレス及び送信元アドレスの仕様でミラー返送フレームを形成することができる。また、この通信装置２０の構成により、送信ノードである通信装置１０と受信ノードである通信装置２０との間のネットワークラインにルータ等の中継ノードが存在している場合でも、ミラー返送フレームを高い確率で送信ノードである通信装置１０へ到達させることができる。
【０１２５】
さらに、送信部２２のヘッダ調整部１２２Ａは、受信バッファ２１Ｃに保持されている受信フレーム（つまり、保持フレーム）のヘッダのタイプフィールドにミラー返送識別子を格納して、ミラー返送フレームを形成する。
【０１２６】
この通信装置２０の構成により、Ethernet（登録商標）等の全二重通信ネットワークで用いられるフレーム構成を利用できるので、全二重通信ネットワークに広く適用可能なミラー返送フレームを形成することができる。
【０１２７】
（変形例１）なお、以上の説明では、通信装置２０が受信フレームのヘッダの宛先アドレスフィールドＦ１の内容と送信元アドレスフィールドＦ２の内容とを入れ替えると共にタイプフィールドＦ３にミラー返送識別子を格納することによって、ミラー返送フレームを形成することを前提に説明を行ったが、これに限定されるものではない。例えば、第２実施形態の通信装置２０と同様に、受信フレームをそのままミラー返送フレームとしてもよい。
【０１２８】
（変形例２）また、以上の説明では、送信ノードである通信装置１０は、例えば、図１３のフローチャートに示すように、ステップＳ３１で送信対象フレーム内の送信対象データが返送要求対象データであるか否かを判定し、この判定結果に応じて、ステップＳ３２を含む「非ミラー要求処理フロー」と、ステップＳ３３を含む「ミラー要求処理フロー」とを切り替えるものとして説明を行った。例えば、送信ノードである通信装置１０は、データリンク層のモードとして、次の様な「処理フロー切り替えモード（第１のモード）」、「非ミラー要求モード（第２モード）」、及び「ミラー要求モード（第３モード）」の中からいずれか１つのモードを設定可能に構成されてもよい。「処理フロー切り替えモード（第１のモード）」は、送信対象フレーム内の送信対象データが返送要求対象データであるか否かを判定し、この判定結果に応じて「非ミラー要求処理フロー」及び「ミラー要求処理フロー」のいずれか一方を実行するモードである。また、「非ミラー要求モード（第２モード）」は、送信対象フレーム内の送信対象データが返送要求対象データであるか否かを判定すること無しに、つまり、データの種別等に関わりなく、「非ミラー要求処理フロー」を実行するモードである。また、「ミラー要求モード（第３モード）」は、送信対象フレーム内の送信対象データが返送要求対象データであるか否かを判定すること無しに、「ミラー要求処理フロー」を実行するモードである。例えば、「ミラー要求モード（第３モード）」の処理フローとして、第１実施形態及び第２実施形態で説明した送信ノードの処理フローが用いられてもよい。
【０１２９】
また、以上の説明では、受信ノードである通信装置２０は、例えば、図１４のフローチャートに示すように、ステップＳ４４で受信フレームに含まれるデータが返送対象のデータであるか否かを判定し、この判定結果に応じて、ステップＳ４７を含む「非返送処理フロー」と、ステップＳ４５を含む「ミラー返送処理フロー」とを切り替えるものとして説明を行った。例えば、受信ノードである通信装置２０は、データリンク層のモードとして、次の様な「処理フロー切り替えモード（第４のモード）」、「非返送モード（第５のモード）」、及び「返送モード（第６のモード）」の中からいずれか１つのモードを設定可能に構成されてもよい。「処理フロー切り替えモード（第４のモード）」は、受信フレームに含まれるデータが返送対象のデータであるか否かを判定し、この判定結果に応じて、「非返送処理フロー」及び「ミラー返送処理フロー」のいずれか一方を実行するモードである。また、「非返送モード（第５のモード）」は、受信フレームに含まれるデータが返送対象のデータであるか否かを判定すること無しに、つまり、受信フレームに含まれるデータの種別等に関わりなく、「非返送処理フロー」を実行するモードである。また、「返送モード（第６のモード）」は、受信フレームに含まれるデータが返送対象のデータであるか否かを判定すること無しに、「ミラー返送処理フロー」を実行するモードである。
【０１３０】
＜他の実施形態＞
（１）第２実施形態及び第３実施形態では、通信装置１０において送信バッファ１１Ｂ及び再送バッファ１４Ｂがそれぞれ独立に設けられているものとして説明を行ったが、通信装置１０の構成はこれに限定されるものではなく、送信バッファ１１Ｂ及び再送バッファ１４Ｂが１つのバッファで実現されてもよい。
【０１３１】
（２）第１実施形態から第３実施形態では、通信装置１０の構成として送信ノードの構成を示し、通信装置２０の構成として受信ノードの構成を示したが、当然のことながら、通信装置１０及び通信装置２０のいずれもが送信ノードの構成及び受信ノードの構成の両方を有していてもよい。
【０１３２】
（３）第１実施形態から第３実施形態で説明した通信システム１は、種々の通信ネットワークで実現可能である。すなわち、第１実施形態から第３実施形態で説明した通信装置１０及び通信装置２０は、種々の通信ネットワークに適用可能である。例えば、適用可能な通信ネットワークの一例として、車載ネットワークを挙げることができる。図１５は、車載ネットワークの模式図である。図１５に示すように、車載ネットワークに含まれるノードは、大きく分けて、制御系、安全系、ボディ系、及び情報系に分けることができる。例えば、制御系には、エンジン、ブレーキ、及びステアリングが含まれ、安全系には、ＡＢＳ、センサ、エアバック、及びレーダが含まれる。また、ボディ系には、例えば、ドア、ウィンドウ、シート、及びライトが含まれ、情報系には、カメラ、オーディオ、ナビ、及びビデオが含まれる。図１５において黒丸は通信装置を表し、実線は通信線を表している。図１５に示すように、多数の通信装置が車載ネットワーク上に分散している。これら車載ネットワーク上に分散する多数の通信装置のうち、互いにデータを遣り取りする任意の２つの通信装置に、第１実施形態から第３実施形態で説明した通信装置１０及び通信装置２０をそれぞれ適用することができる。
そして、第３実施形態で説明した通信装置１０及び通信装置２０が通信ネットワーク上のどの２つのノードに適用されるかに応じて、通信装置１０及び通信装置２０に対して第３実施形態の（変形例２）で説明したいずれかのモードを設定してもよい。この場合、通信ネットワーク（つまり、通信システム１）には、互いに異なるモードに設定された複数の通信装置が混在することになる。例えば、通信ネットワーク（つまり、通信システム１）には、「処理フロー切り替えモード（第１のモード）」、「非ミラー要求モード（第２モード）」、及び「ミラー要求モード（第３モード）」のうちの１つのみが設定された通信装置（つまり、送信ノードとしてしか動作しない通信装置）が含まれてもよい。また、通信ネットワークには、「処理フロー切り替えモード（第４のモード）」、「非返送モード（第５のモード）」、及び「返送モード（第６のモード）」のうちの１つのみが設定された通信装置（つまり、送信ノードとしてしか動作しない通信装置）が含まれてもよい。また、第１のモード、第２モード、及び第３モードのうちの１つ、及び、第４のモード、第５モード、及び第６モードのうちの１つの両方が設定された通信装置が含まれてもよい。このように通信ネットワークの複数の通信装置の中に、「ミラー要求モード（第３モード）」以外のモードが設定された通信装置を含ませることにより、ネットワークのトラヒックを低減することができる。
【０１３３】
（４）図１６は、通信装置のハードウェア構成例を示す図である。第１実施形態から第３実施形態で説明した通信装置１０及び通信装置２０のそれぞれが図１６に示したハードウェア構成を有することができる。
【０１３４】
図１６において、通信装置２００は、通信回路２０１と、メッセージバッファ２０２と、プロセッサ２０３と、メモリ２０４とを有する。通信回路２０１は、送信回路２１１と、受信回路２１２と、制御回路２１３とを有する。
【０１３５】
第１実施形態から第３実施形態で説明した通信装置１０の送信部１１及び受信部１２は、送信回路２１１及び受信回路２１２によってそれぞれ実現される。また、通信装置１０の比較部１３及び再送制御部１４は、制御回路２１３によって実現される。通信装置１０における上位レイヤの処理部は、例えば、プロセッサ２０３がメモリ２０４に記憶されたプログラムを読み込んで実行することにより実現される。
【０１３６】
また、第１実施形態から第３実施形態で説明した通信装置２０の受信部２１及び送信部２２は、受信回路２１２及び送信回路２１１によってそれぞれ実現される。また、通信装置２０における上位レイヤの処理部（例えば、データ復号部２３）は、例えば、プロセッサ２０３がメモリ２０４に記憶されたプログラムを読み込んで実行することにより実現される。
【０１３７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１３８】
１  通信システム
１０，２０  通信装置
１１  送信部
１１Ａ  ヘッダ調整部
１１Ｂ  送信バッファ
１１Ｃ  送信処理部
１１Ｄ  シフトレジスタ
１２  受信部
１２Ａ  受信処理部
１２Ｂ  受信制御処理部
１２Ｃ  受信バッファ
１２Ｄ  シフトレジスタ
１２Ｅ  デコーダ
１３  比較部
１４  再送制御部
１４Ａ  再送制御処理部
１４Ｂ  再送バッファ
２１  受信部
２１Ａ  受信処理部
２１Ｂ  受信制御処理部
２１Ｃ  受信バッファ
２１Ｄ  シフトレジスタ
２１Ｅ  デコーダ
２２  送信部
２２Ａ  送信バッファ
２２Ｂ  送信処理部
２２Ｃ  シフトレジスタ
２３  データ復号部
３０，４０  送受信インタフェース
１１１Ａ  送信制御処理部
１１１Ｂ  ヘッダ調整部
１１２Ａ  受信制御処理部
１２１Ａ  受信制御処理部
１２２Ａ  ヘッダ調整部
２００  通信装置
２０１  通信回路
２０２  メッセージバッファ
２０３  プロセッサ
２０４  メモリ
２１１  送信回路
２１２  受信回路
２１３  制御回路
Ｆ１  宛先アドレスフィールド
Ｆ２  送信元アドレスフィールド
Ｆ３  タイプフィールド
Ｌ１  ネットワークライン
Ｐ１  ヘッダ部分
Ｐ２  データ部分
【図１】
2018032934.tif 000003
【図２】
2018032934.tif 000004
【図３】
2018032934.tif 000005
【図４】
2018032934.tif 000006
【図５】
2018032934.tif 000007
【図６】
2018032934.tif 000008
【図７】
2018032934.tif 000009
【図８】
2018032934.tif 000010
【図９】
2018032934.tif 000011
【図１０】
2018032934.tif 000012
【図１１】
2018032934.tif 000013
【図１２】
2018032934.tif 000014
【図１３】
2018032934.tif 000015
【図１４】
2018032934.tif 000016
【図１５】
2018032934.tif 000017
【図１６】
2018032934.tif 000018