<本発明の実施形態の概要>
以下、本発明の実施形態の概要を列記して説明する。
(1) 本実施形態に係る通信システムは、第1通信装置と、第2通信装置と、を備え、前記第1通信装置は、前記第2通信装置との間での制御プロトコルのセッション中に、前記制御プロトコルによる前記第2通信装置との通信を停止させる原因が前記第1通信装置に生じるか否かを判定する判定部と、前記判定部によって前記原因が生じると判定された場合に、タイムアウト時間の延長を要求するための延長要求データを送信する送信部と、を有し、前記第2通信装置は、前記第1通信装置によって送信された前記延長要求データを受信する受信部と、前記受信部によって前記延長要求データが受信された場合に、第1タイムアウト時間から、前記第1タイムアウト時間よりも長い第2タイムアウト時間に設定を変更する設定部と、を有する。これにより、第2通信装置との通信を停止させる原因が生じる前に、タイムアウト時間を延長することができる。したがって、通信システムを簡素な構成としつつ、タイムアウトが発生することによるセッションの切断を回避することができる。
(2) また、本実施形態に係る通信システムにおいて、前記延長要求データは、延長後のタイムアウト時間として前記第2タイムアウト時間を指定する領域を含んでもよい。これにより、第1通信装置において任意の第2タイムアウト時間を指定することができる。
(3) また、本実施形態に係る通信システムにおいて、前記送信部は、前記第2タイムアウト時間への設定の変更後において、前記タイムアウト時間の短縮を要求する短縮要求データを送信し、前記設定部は、前記受信部によって前記短縮要求データが受信された場合に、前記第2タイムアウト時間から、前記第2タイムアウト時間より短いタイムアウト時間に設定を変更してもよい。これにより、延長されたタイムアウト時間を短縮することができる。
(4) また、本実施形態に係る通信システムにおいて、前記短縮要求データは、短縮後のタイムアウト時間を指定する領域を含んでもよい。これにより、第1通信装置において任意の短縮後のタイムアウト時間を指定することができる。
(5) また、本実施形態に係る通信システムにおいて、前記設定部は、前記第2タイムアウト時間が設定されている場合において、タイムアウトが発生した後、前記第2タイムアウト時間より短いタイムアウト時間に設定を変更してもよい。これにより、タイムアウトが発生した後に、延長されたタイムアウト時間を短縮することができる。
(6) また、本実施形態に係る通信システムにおいて、前記送信部は、前記第2タイムアウト時間への設定の変更後において、前記原因に異常が生じた場合に、前記タイムアウト時間の短縮を要求する短縮要求データを送信し、前記設定部は、前記受信部によって前記短縮要求データが受信された場合に、前記第2タイムアウト時間から、前記第2タイムアウト時間より短いタイムアウト時間に設定を変更してもよい。これにより、通信を停止させる原因に異常が発生し、通信が停止されなくなった場合に、延長されたタイムアウト時間を短縮させることができる。
(7) また、本実施形態に係る通信システムにおいて、前記原因は、前記第1通信装置における制御プログラムの更新であってもよい。これにより、制御プログラムの更新の間に通信が停止しても、タイムアウトの発生によるセッションの切断を回避することができる。
(8) また、本実施形態に係る通信システムにおいて、前記制御プロトコルは、Link OAM(Operations, Administration, Maintenance)、LACP(Link Aggregation Control Protocol)、ETH−OAM(Ethernet OAM)、MQTT(Message Queuing Telemetry Transport)のうちの少なくとも1つを含んでもよい。これにより、Link OAM、LACP、ETH−OAM、MQTTのうちの少なくとも1つにおいて、タイムアウトの発生によるセッションの切断を回避することができる。
(9) 本実施形態に係る通信装置は、対向通信装置と制御プロトコルによる通信を行う通信装置であって、前記対向通信装置との間での前記制御プロトコルのセッション中に、前記制御プロトコルによる前記対向通信装置との通信を停止させる原因が自装置に生じるか否かを判定する判定部と、前記判定部によって前記原因が生じると判定された場合に、タイムアウト時間の延長を要求するための延長要求データを前記対向通信装置に送信する送信部と、を備える。これにより、対向通信装置との通信を停止させる原因が生じる前に、タイムアウト時間を延長することができる。したがって、通信システムを簡素な構成としつつ、タイムアウトが発生することによるセッションの切断を回避することができる。
(10) 本実施形態に係る通信装置は、対向通信装置と制御プロトコルによる通信を行う通信装置であって、前記対向通信装置との間での前記制御プロトコルのセッション中に、前記対向通信装置によって送信された、タイムアウト時間の延長を要求するための延長要求データを受信する受信部と、前記受信部によって前記延長要求データが受信された場合に、第1タイムアウト時間から、前記第1タイムアウト時間よりも長い第2タイムアウト時間に設定を変更する設定部と、を備える。これにより、対向通信装置との間での制御プロトコルのセッション中に、タイムアウト時間を延長することができる。したがって、通信システムを簡素な構成としつつ、タイムアウトが発生することによるセッションの切断を回避することができる。
(11) 本実施形態に係る通信方法は、第1通信装置と第2通信装置とが制御プロトコルによる通信を行う通信方法であって、前記第1通信装置が、前記第2通信装置との間での前記制御プロトコルのセッション中に、前記制御プロトコルによる前記第2通信装置との通信を停止させる原因が前記第1通信装置に生じるか否かを判定するステップと、前記第1通信装置が、前記原因が生じると判定された場合に、タイムアウト時間の延長を要求するための延長要求データを送信するステップと、前記第2通信装置が、前記第1通信装置によって送信された前記延長要求データを受信するステップと、前記第2通信装置が、前記延長要求データを受信した場合に、第1タイムアウト時間から、前記第1タイムアウト時間よりも長い第2タイムアウト時間に設定を変更するステップと、を有する。これにより、第2通信装置との通信を停止させる原因が生じる前に、タイムアウト時間を延長することができる。したがって、通信システムを簡素な構成としつつ、タイムアウトが発生することによるセッションの切断を回避することができる。
<本発明の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
本実施形態では、Link OAMによる通信を行う通信システムについて説明する。
[1.通信システムの構成]
図1は、本実施形態に係る通信システムの構成の一例を示す図である。図1に示すように、通信システム10は、親局装置(第1通信装置)1と、子局装置(第2通信装置)2と、通信回線3とを備える。
第1及び第2通信装置1,2は、それぞれ回線終端装置として機能する通信装置である。従って、通信回線3は、第1及び第2通信装置1,2との接続端において終端する。
通信回線3は、光ファイバ又は同軸ケーブルなどの通信ケーブルよりなる。通信回線3の代わりに、無線通信の伝送路を採用することもできる。なお、本実施形態では、通信回線3が光ファイバである場合を想定する。
通信システム10の上位側に位置する第1通信装置1は、上位網5と通信可能に接続され、通信システム10の下位側に位置する第2通信装置2は、下位網6と通信可能に接続されている。下位網6は、例えば、宅内LAN(Local Area Network)又は社内LANなどよりなる。
第1及び第2通信装置1,2は、イーサネット(登録商標)フレーム、IPパケット等のPDU(Protocol Data Unit)である通信データを送受信可能であり、ETH−OAMに対応する通信機器である。また、第1及び第2通信装置1,2は、IEEE802.3ahに規定するLink OAMの機能を有する。
Link OAMは、一対のイーサネット機器間の物理回線や通信状態の監視などを目的とする、P2P(Point to Point)での利用を前提とするOAM機能であり、制御プロトコルである。
図1の例では、上位側の回線終端装置である第1通信装置1が「親局装置1」であり、下位側の回線終端装置である第2通信装置2が「子局装置2」である。
[2.親局装置の内部構成]
図2は、親局装置1の内部構成の一例を示すブロック図である。図2において、実線の矢印は通信データの伝送方向を示し、破線の矢印は制御信号の内部バスを示す。
図2に示すように、本実施形態の親局装置1は、上位側インタフェース部11、制御部12、受信処理部13、送信処理部14、対向側インタフェース部15、上りバッファ16、及び下りバッファ17を備える。
上位側インタフェース部11は、上り方向及び下り方向の電気信号に対して、レイヤ1及びレイヤ2の通信処理を実行する集積回路を含む。
制御部12、受信処理部13及び送信処理部14は、上り方向及び下り方向の通信データに対して、IEEE 802.3ahなどの所定の通信規格に則った通信処理を実行する集積回路(例えば、MACチップ)よりなる。
図3は、制御部12のハードウェア構成の一例を示すブロック図である。具体的な一例では、制御部12は、CPU(Central Processing Unit)12aと、ROM(Read Only Memory)からなる非一過性メモリ12bと、RAM(Random Access Memory)からなる一過性メモリ12cと、通信データ及び制御信号の入出力を行う入出力部12dとを有する。
非一過性メモリ12bには、制御プログラム12eが記憶される。親局装置1は、コンピュータを備えて構成され、親局装置1の設定機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムである制御プログラム12eがCPU12aによって実行されることで発揮される。制御プログラム12eは、CD−ROMなどの記録媒体に記憶させることができる。CPU12aは、制御プログラム12eを実行することができる。CPU12aが制御プログラム12eを実行することにより、親局装置1は後述するような処理を実行することができる。
なお、制御部12の構成は上記に限られない。制御部12は、FPGA(Field-Programmable Gate Array)によって構成されていてもよい。
再び図2を参照する。受信処理部13及び送信処理部14は、特定の情報処理が可能となるように設計された論理回路デバイスよりなり、例えば、ASIC(Application Specific Integrated Circuit)及びFPGAのうちの少なくとも1つを含む。
対向側インタフェース部15は、光信号を送受信する素子を含む光通信デバイス(例えば、プラガブル光トランシーバ)よりなる。
対向側インタフェース部15は、光ファイバ3から受信した光信号を電気信号よりなる通信データに変換し、変換した通信データを受信処理部13に出力する。対向側インタフェース部15は、送信処理部14からの通信データを光信号に変換し、変換した光信号を光ファイバ3に送出する。
受信処理部13は、「制御プロトコル判定処理」を実行可能である。この処理は、対向側インタフェース部15から入力された通信データが、制御プロトコルの制御データ(以下、「制御プロトコルデータ」という)であるか否かを判定する処理である。制御プロトコルデータには、Link OAM、LACP、及びETH−OAMそれぞれの通信フレーム、MQTTの通信パケットが含まれる。本実施形態では、制御プロトコルデータをLink OAMの通信フレームとする。即ち、制御プロトコル判定処理では、入力された通信データが、Link OAMの通信フレームであるか、それ以外のPDUであるかが判定される。
受信処理部13は、入力された通信データが制御プロトコルデータであると判定された場合に、当該制御プロトコルデータを制御部12に出力する。受信処理部13は、入力された通信データが制御プロトコルデータでないと判定された場合に、当該通信データを上りバッファ16に出力する。
上位側インタフェース部11は、上位網5から受信した搬送信号を通信データに変換し、変換した通信データを下りバッファ17に出力する。
上位側インタフェース部11は、上りバッファ16に通信データがあれば、その通信データを搬送信号に変換し、変換した搬送信号を上位網5に送出する。
送信処理部14は、下りバッファ17に通信データがあれば、制御部12から制御プロトコルデータが入力される合間に下りバッファ17から通信データを取り出し、対向側インタフェース部15に出力する。
制御部12は、「状態管理処理」と、「第1判定処理」と、「第2判定処理」と、「延長要求データ生成処理」と、「短縮要求データ生成処理」とを実行可能である。
状態管理処理は、制御プロトコルによるセッションが確立された状態であるか、セションが切断された状態であるかを判定する処理である。
第1判定処理は、子局装置2との間での制御プロトコルのセッション中に、制御プロトコルによる子局装置2との通信を停止させる原因が親局装置1に生じるか否かを判定する処理である。具体的な一例では、制御プロトコルによる子局装置2との通信を停止させる原因は、制御プログラム12eの更新である。つまり、第1判定処理において、制御部12のCPU12aは、子局装置2との間での制御プロトコルのセッション中に、制御プログラム12eの更新が必要であるか否かを判定する。
第2判定処理は、制御プロトコルによる子局装置2との通信を停止させる原因に異常が発生したか否かを判定する処理である。具体的な一例では、第2判定処理において、CPU12aは、制御プログラム12eの更新処理において異常が発生したか否かを判定する。
「延長要求データ生成処理」は、第1判定処理において、制御プロトコルによる子局装置2との通信を停止させる原因が生じたと判定された場合に、タイムアウト時間の延長を要求するための制御プロトコルデータである延長要求データを生成する処理である。
「短縮要求データ生成処理」は、制御プロトコルによる子局装置2との通信を停止させる原因が無くなった場合、又は、当該原因に異常が発生したと判定された場合に、タイムアウト時間の短縮を要求するための制御プロトコルデータである短縮要求データを生成する処理である。つまり、CPU12aは、制御プログラム12eの更新が完了した場合に、短縮要求データを生成する。CPU12aは、制御プログラムの更新処理において異常が発生したと判定された場合に、短縮要求データを生成する。
本実施形態では、延長要求データ及び短縮要求データは、Link OAMのInformation OAMフレームとして生成される。図4は、Information OAMフレームのフォーマットを示す模式図である。Information OAMフレームは、イーサネットフレームの一種であり、宛先アドレス、送信元アドレス、長さ/タイプ、データ等のフィールドを有する。Information OAMフレームのデータフィールドは、Local Information TLVフィールド、Remote Information TLVフィールド、及びInformation TLV#3フィールドを含む。
本実施形態に係る通信システム10では、Information TLV#3フィールドにおいて、タイムアウト時間が指定される。
延長要求データでは、Information TLV#3フィールドにおいて、延長後のタイムアウト時間(第2タイムアウト時間)が指定される。Information TLV#3フィールドは、タイプ(Type)、長さ(Length)、値(Value)の3つのサブフィールドを有する。具体的な一例では、延長要求データにおけるInformation TLV#3フィールドのTypeフィールドにはベンダ独自タイプを示す0xFEが指定され、Lengthフィールドには2バイトを示す0x02が指定され、Valueフィールドには延長後のタイムアウト時間が指定される。
短縮要求データでは、Information TLV#3フィールドにおいて、短縮後のタイムアウト時間が指定される。具体的な一例では、短縮要求データにおけるInformation TLV#3フィールドのTypeフィールドにはベンダ独自タイプを示す0xFEが指定され、Lengthフィールドには2バイトを示す0x02が指定され、Valueフィールドには短縮後のタイムアウト時間が指定される。
再び図2を参照する。制御部12は、制御プロトコルデータを生成し、送信処理部14に出力する。送信処理部14は、制御部12から下り方向の制御プロトコルデータが入力されると、入力された制御プロトコルデータを対向側インタフェース部15に出力する。対向側インタフェース部15は、入力された下り方向の制御プロトコルデータを光ファイバ3に送出する。
制御部12は、子局装置2が送信元の制御プロトコルデータを受信処理部13から入力されると、制御プロトコルデータに関する情報処理として、当該制御プロトコルデータの内容に応じた所定の処理を実行する。
例えば、制御部12は、子局装置2が送信元の制御プロトコルデータに応じて、対向側インタフェース部15又は上位側インタフェース部11の送受信速度を変更したり、受信処理部13又は送信処理部14の動作を停止又は開始したりする。
[3.子局装置の内部構成]
図5は、子局装置2の内部構成の一例を示すブロック図である。図5において、実線の矢印は通信データの伝送方向を示し、破線の矢印は制御信号の内部バスを示す。
図5に示すように、本実施形態の子局装置2は、下位側インタフェース部21、制御部22、受信処理部23、送信処理部24、対向側インタフェース部25、上りバッファ26、及び下りバッファ27を備える。
下位側インタフェース部21は、上り方向及び下り方向の電気信号に対して、レイヤ1及びレイヤ2の通信処理を実行する集積回路を含む。
制御部22、受信処理部23及び送信処理部24は、上り方向及び下り方向の通信データに対して、IEEE 802.3ahなどの所定の通信規格に則った通信処理を実行する集積回路(例えば、MACチップ)よりなる。
図6は、制御部22のハードウェア構成の一例を示すブロック図である。具体的な一例では、制御部22は、CPU22aと、ROMからなる非一過性メモリ22bと、RAMからなる一過性メモリ22cと、通信データ及び制御信号の入出力を行う入出力部22dとを有する。
非一過性メモリ22bには、制御プログラム22eが記憶される。子局装置2は、コンピュータを備えて構成され、子局装置2の設定機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムである制御プログラム22eがCPU22aによって実行されることで発揮される。制御プログラム22eは、CD−ROMなどの記録媒体に記憶させることができる。CPU22aは、制御プログラム22eを実行することができる。CPU22aが制御プログラム22eを実行することにより、子局装置2は後述するような処理を実行することができる。
なお、制御部22の構成は上記に限られない。制御部22は、FPGAによって構成されていてもよい。
再び図5を参照する。受信処理部23及び送信処理部24は、特定の情報処理が可能となるように設計された論理回路デバイスよりなり、例えば、ASIC及びFPGAのうちの少なくとも1つを含む。
対向側インタフェース部25は、光信号を送受信する素子を含む光通信デバイス(例えば、プラガブル光トランシーバ)よりなる。
対向側インタフェース部25は、光ファイバ3から受信した光信号を電気信号よりなる通信データに変換し、変換した通信データを受信処理部23に出力する。対向側インタフェース部25は、送信処理部24からの通信データを光信号に変換し、変換した光信号を光ファイバ3に送出する。
受信処理部23は、「制御プロトコル判定処理」を実行可能である。この処理は、対向側インタフェース部25から入力された通信データが、制御プロトコルデータであるか否かを判定する処理である。即ち、制御プロトコル判定処理では、入力された通信データが、Link OAMの通信フレームであるか、それ以外のPDUであるかが判定される。
受信処理部23は、入力された通信データが制御プロトコルデータであると判定された場合に、当該制御プロトコルデータを制御部22に出力する。受信処理部23は、入力された通信データが制御プロトコルデータでないと判定された場合に、当該通信データを上りバッファ26に出力する。
下位側インタフェース部21は、下位網6から受信した搬送信号を通信データに変換し、変換した通信データを上りバッファ26に出力する。
下位側インタフェース部21は、下りバッファ27に通信データがあれば、その通信データを搬送信号に変換し、変換した搬送信号を下位網6に送出する。
送信処理部24は、上りバッファ26に通信データがあれば、制御部22から制御プロトコルデータが入力される合間に上りバッファ26から通信データを取り出し、対向側インタフェース部25に出力する。
制御部22は、「状態管理処理」と、「タイムアウト時間設定処理」とを実行可能である。
状態管理処理は、制御プロトコルによるセッション中であるか否かを判定する処理である。
タイムアウト時間設定処理は、タイムアウト時間を設定する処理である。具体的な一例では、タイムアウト時間設定処理において、制御部22のCPU22aは、入力された制御プロトコルデータが延長要求データである場合に、その時点で設定されているタイムアウト時間(第1タイムアウト時間)から、延長要求データで指定されるタイムアウト時間(第2タイムアウト時間)に設定を変更する。CPU22aは、入力された制御プロトコルデータが短縮要求データである場合に、その時点で設定されているタイムアウト時間から、短縮要求データで指定されるタイムアウト時間に設定を変更する。
制御部22は、制御プロトコルデータを生成する。制御部22は、生成した制御プロトコルデータを送信処理部24に送出する。送信処理部24は、制御部22から上り方向の制御プロトコルデータが入力されると、入力された制御プロトコルデータを対向側インタフェース部25に出力する。対向側インタフェース部25は、入力された上り方向の制御プロトコルデータを光ファイバ3に送出する。
制御部22は、親局装置1が送信元の制御プロトコルデータを受信処理部23から入力されると、制御プロトコルに関する情報処理として、当該制御プロトコルデータの内容に応じた所定の処理を実行する。
例えば、制御部22は、親局装置1が送信元の制御プロトコルデータに応じて、対向側インタフェース部25又は下位側インタフェース部21の送受信速度を変更したり、受信処理部23又は送信処理部24の動作を停止又は開始したりする。
なお、図2及び図5では省略したが、親局装置1は子局装置2と同様に、「タイムアウト時間設定処理」を実行することが可能であり、子局装置2は親局装置1と同様に、「第1判定処理」、「第2判定処理」、「延長要求データ生成処理」及び「短縮要求データ生成処理」を実行することが可能である。ただし、本実施形態では、説明を簡単にするため、親局装置1が「第1判定処理」、「第2判定処理」、「延長要求データ生成処理」及び「短縮要求データ生成処理」を実行し、子局装置2が「タイムアウト時間設定処理」を実行することとする。
[4.通信システムの動作]
以下に、本実施形態に係る通信システム10の動作を説明する。Link OAMでは、タイムアウト時間のデフォルト値が5秒である。親局装置1及び子局装置2のそれぞれは、1秒周期でInformation OAMフレームを送信する。対向通信装置(親局装置1にとっての対向通信装置は子局装置であり、子局装置2にとっての対向通信装置は親局装置1である。)から5秒以上Information OAMフレームを受信しなければ、タイムアウトが発生する。
制御プロトコルのセッションには2つの状態がある。1つの状態はセッションが切断された状態(以下、「セッション切断状態」という)であり、もう1つの状態はセッションが確立された状態(以下、「セッション確立状態」という)である。タイムアウトが発生すると、Link OAMのセッションが切断される。
子局装置2のCPU22aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション確立状態である場合、CPU22aは、下位側インタフェース部21を動作させ、下位網6との通信を行わせる。セッション切断状態である場合、CPU22aは、下位側インタフェース部21を停止させ、下位網6との通信を停止させる。このため、セッション切断状態の場合、子局装置2によるデータ転送が停止する。
なお、親局装置1も同様の動作を行うことが可能である。つまり、CPU12aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション切断状態の場合、CPU12aは、上位側インタフェース部11を停止させる。
本実施形態に係る通信システム10は、上記のような子局装置2によるデータ転送の停止を抑制するため、子局装置2のタイムアウト時間を延長するタイムアウト時間制御処理を実行する。
図7は、本実施形態に係る通信システム10によるタイムアウト時間制御処理の手順を示すフローチャートである。
親局装置1のCPU12aは、子局装置2との通信を停止させる原因が生じるか否かを判定する(ステップS101)。具体的な一例では、CPU12aは、制御プロブラム12eの更新が発生するか否かを判定する。
通信を停止させる原因が生じない場合(ステップS101においてNO)、CPU12aは、ステップS101の処理を再度実行する。これにより、通信が停止させる原因が生じるまで、ステップS101の処理が繰り返される。
通信を停止させる原因が生じる場合(ステップS101においてYES)、CPU12aは、延長要求データを生成する(ステップS102)。具体的には、CPU12aは、Link OAMにおけるタイムアウト時間のデフォルト値である5秒よりも長い時間(例えば、100秒)を、延長後のタイムアウト時間に決定する。さらに好ましくは、延長後のタイムアウト時間は、通信が停止させる原因がなくなるために十分な時間が、延長後のタイムアウト時間とされる。CPU12aは、Information TLV#3フィールドにおいて、延長後のタイムアウト時間が指定されたInformation OAMフレームを、延長要求データとして生成する。
CPU12aは、生成された延長要求データを、送信処理部14に出力する(ステップS103)。送信処理部14は、電気信号である延長要求データを、対向側インタフェース部15に出力する。対向側インタフェース部15は、入力された電気信号を光信号に変換し、延長要求データを光信号として子局装置2に送信する。
子局装置2の対向側インタフェース部25は、光信号を受信する。対向側インタフェース部25は、受信された光信号を元の電気信号に変換し、変換された電気信号を受信処理部13に出力する。受信処理部13は、入力された通信データが制御プロトコルデータであるか否かを判定する。延長要求データは制御プロトコルデータであるので、受信処理部13は、入力された延長要求データを、制御部12に出力する。
子局装置2のCPU22aは、延長要求データを受信したか否かを判定する(ステップS104)。延長要求データが制御部12に入力されない場合(ステップS104においてNO)、CPU22aは、ステップS104の処理を再度実行する。これにより、子局装置2によって延長要求データが受信されるまで、ステップS104の処理が繰り返される。
延長要求データが子局装置2によって受信された場合(ステップS104においてYES)、CPU22aは、タイムアウト時間を延長する(ステップS105)。つまり、CPU22aは、その時点におけるタイムアウト時間(第1タイムアウト時間)から、これより長い新たなタイムアウト時間に設定を変更する。例えば、CPU22aは、Link OAMのタイムアウト時間のデフォルト値である5秒が設定されている場合、デフォルト値よりも長いタイムアウト時間(例えば、100秒)に設定を変更する。具体的な一例では、CPU22aは、延長要求データにおいて指定されるタイムアウト時間を、新たなタイムアウト時間として設定する。
タイムアウト時間の延長要求データを送信した後、親局装置1のCPU12aは、制御プログラム12eの更新を開始する(ステップS106)。制御プログラム12eの更新中は、CPU12aは、制御プロトコルデータの処理を実行できない。このため、制御プログラム12eの更新中は、制御プロトコルによる子局装置2との通信が停止される。
CPU12aは、通信を停止させる原因に異常が発生したか否かを判定する(ステップS107)。具体的な一例では、CPU12aは、制御プログラム12eの更新に異常が発生したか否かを判定する。
通信を停止させる原因に異常が発生していない場合(ステップS107においてNO)、CPU12aは、通信を停止させる原因がなくなったか否かを判定する(ステップS108)。具体的な一例では、CPU12aは、制御プログラム12eの更新が終了したか否かを判定する。
通信を停止させる原因がなくなっていない場合(ステップS108においてNO)、CPU12aは、ステップS107に処理を戻す。これにより、通信を停止させる原因に異常が生じるか、又は通信を停止させる原因がなくなるまで、ステップS107及びS108の処理が繰り返される。
通信を停止させる原因に異常が発生した場合(ステップS107においてYES)、又は、通信を停止させる原因がなくなった場合(ステップS108においてYES)、CPU12aは、短縮要求データを生成する(ステップS109)。具体的には、制御プログラム12eの更新に異常が生じるか、又は、制御プログラム12eの更新が終了した場合、CPU12aは、延長されたタイムアウト時間(例えば、100秒)よりも短い時間を、短縮後のタイムアウト時間に決定する。短縮後のタイムアウト時間は、タイムアウト時間のデフォルト値(5秒)であってもよいし、デフォルト値以外の値であってもよい。CPU12aは、Information TLV#3フィールドにおいて、短縮後のタイムアウト時間が指定されたInformation OAMフレームを、短縮要求データとして生成する。
CPU12aは、生成された短縮要求データを、送信処理部14に出力する(ステップS110)。送信処理部14は、電気信号である短縮要求データを、対向側インタフェース部15に出力する。対向側インタフェース部15は、入力された電気信号を光信号に変換し、短縮要求データを光信号として子局装置2に送信する。
子局装置2の対向側インタフェース部25は、光信号を受信する。対向側インタフェース25は、受信された光信号を元の電気信号に変換し、変換された電気信号を受信処理部13に出力する。受信処理部13は、入力された通信データが制御プロトコルデータであるか否かを判定する。短縮要求データは制御プロトコルデータであるので、受信処理部13は、入力された短縮要求データを、制御部12に出力する。
子局装置2のCPU22aは、短縮要求データを受信したか否かを判定する(ステップS111)。短縮要求データが制御部12に入力されない場合(ステップS111においてNO)、CPU22aは、制御プロトコルデータを親局装置1から受信することなく、タイムアウト時間が経過したか否か、即ち、タイムアウトが発生したか否かを判定する(ステップS112)。
タイムアウトが発生していない場合(ステップS112においてNO)、CPU22aは、ステップS111へ処理を戻す。これにより、短縮要求データを受信するか、又は、タイムアウトが発生するまで、ステップS111及びS112の処理が繰り返される。
子局装置2が短縮要求データを受信したか(ステップS111においてYES)、又は、タイムアウトが発生した場合(ステップS112においてYES)、CPU22aは、タイムアウト時間を短縮する(ステップS113)。
タイムアウト時間の指定を含む短縮要求データを子局装置2が受信した場合、CPU22aは、受信された短縮要求データにおいて指定されるタイムアウト時間を、新たなタイムアウト時間として設定する。
タイムアウトが発生した場合、CPU22aは、延長されたタイムアウト時間より短いタイムアウト時間を、新たなタイムアウト時間として設定する。短縮後のタイムアウト時間は、タイムアウト時間のデフォルト値であってもよいし、デフォルト値以外のタイムアウト時間であってもよい。
以上で、タイムアウト時間制御処理が終了する。
なお、延長要求データ及び短縮要求データにおいて、新たなタイムアウト時間の指定が含まれなくてもよい。この場合、子局装置2は、延長後のタイムアウト時間及び短縮後のタイムアウト時間を例えば非一過性メモリ22bに記憶しておき、延長要求データを受信した場合は記憶された延長後のタイムアウト時間に設定を変更し、短縮要求データを受信した場合は記憶された延長後のタイムアウト時間に設定を変更する。
[5.変形例]
[5−1.第1変形例]
第1変形例では、通信システム10が、LACPにおけるタイムアウト時間の延長を行う。
第1変形例では、延長要求データ及び短縮要求データは、LACPフレームとして生成される。図8は、LACPフレームのフォーマットを示す模式図である。LACPフレームは、イーサネットフレームの一種であり、宛先アドレス、送信元アドレス、長さ/タイプ、データ等のフィールドを有する。LACPフレームのデータフィールドは、Other TLVsフィールドを含む。
第1変形例に係る通信システム10では、Other TLVsフィールドにおいて、タイムアウト時間が指定される。
延長要求データでは、Other TLVsフィールドにおいて、延長後のタイムアウト時間(第2タイムアウト時間)が指定される。Other TLVsフィールドは、タイプ(Type)、長さ(Length)、値(Value)の3つのサブフィールドを有する。具体的な一例では、延長要求データにおけるOther TLVsフィールドのTypeフィールドには標準未規定タイプを示す0xA0が指定され、Lengthフィールドには2バイトを示す0x02が指定され、Valueフィールドには延長後のタイムアウト時間が指定される。
短縮要求データでは、Other TLVsフィールドにおいて、短縮後のタイムアウト時間が指定される。具体的な一例では、短縮要求データにおけるOther TLVsフィールドのTypeフィールドには標準未規定タイプを示す0xA0が指定され、Lengthフィールドには2バイトを示す0x02が指定され、Valueフィールドには短縮後のタイムアウト時間が指定される。
LACPでは、LACPフレームのActor_StateのLACP_Timeoutに指定される値(時間)を1周期として、親局装置1及び子局装置2のそれぞれが周期的にLACPフレームを送信する。対向通信装置(親局装置1にとっての対向通信装置は子局装置であり、子局装置2にとっての対向通信装置は親局装置1である。)から3周期以上LACPフレームを受信しなければ、タイムアウトが発生する。つまり、タイムアウト時間のデフォルト値は、Actor_StateのLACP_Timeoutに指定される値の3倍である。
子局装置2のCPU22aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション確立状態である場合、CPU22aは、対向側インタフェース部25を動作させ、親局装置1との通信を行わせる。セッション切断状態である場合、CPU22aは、対向側インタフェース部25を停止させ、親局装置1との通信を停止させる。このため、セッション切断状態の場合、親局装置1と子局装置2との通信が停止する。
なお、親局装置1も同様の動作を行うことが可能である。つまり、CPU12aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション切断状態の場合、CPU12aは、対向側インタフェース部15を停止させる。
第1変形例に係る通信システム10は、上記のような親局装置1と子局装置2との通信の停止を抑制するため、子局装置2のタイムアウト時間を延長するタイムアウト時間制御処理を実行する。
第1変形例では、図7のステップS102において、CPU12aは、LACPにおけるタイムアウト時間のデフォルト値よりも長い時間(例えば、100周期分の時間)を、延長後のタイムアウト時間に決定する。CPU12aは、Other TLVsフィールドにおいて、延長後のタイムアウト時間が指定されたLACPフレームを、延長要求データとして生成する。
ステップS105において、CPU22aは、その時点におけるタイムアウト時間(第1タイムアウト時間)から、これより長い新たなタイムアウト時間に設定を変更する。例えば、CPU22aは、LACPのタイムアウト時間のデフォルト値が設定されている場合、デフォルト値よりも長いタイムアウト時間(例えば、100周期分の時間)に設定を変更する。具体的な一例では、CPU22aは、延長要求データにおけるOther TLVsフィールドにおいて指定されたタイムアウト時間を、新たなタイムアウト時間として設定する。
ステップS109において、CPU12aは、延長されたタイムアウト時間(例えば、100周期分の時間)よりも短い時間を、短縮後のタイムアウト時間に決定する。短縮後のタイムアウト時間は、タイムアウト時間のデフォルト値(3周期)であってもよいし、デフォルト値以外の値であってもよい。CPU12aは、Othre TLVsフィールドにおいて、短縮後のタイムアウト時間が指定されたLACPフレームを、短縮要求データとして生成する。
タイムアウト時間の指定を含む短縮要求データを子局装置2が受信した場合、ステップS113において、CPU22aは、受信された短縮要求データのOther TLVsフィールドにおいて指定されるタイムアウト時間を、新たなタイムアウト時間として設定する。
[5−2.第2変形例]
第2変形例では、通信システム10が、ETH−OAMにおけるタイムアウト時間の延長を行う。
第1変形例では、延長要求データ及び短縮要求データは、ETH−OAM VSM(Vendor-Specific OAM Message)フレームとして生成される。図9は、VSMフレームのフォーマットを示す模式図である。VSMフレームは、イーサネットフレームの一種であり、宛先アドレス、送信元アドレス、長さ/タイプ、データ等のフィールドを有する。VSMフレームは、MEL、Version、OpCode、Flags、TLV Offset、OUI、SubOpCode、optional VSM data、End TLVの各フィールドを有する。
MELフィールドには、タイムアウト時間を指定するMEP(MEG(Maintenance Entity Group)End Point)のMEL(MEG Level)が指定される。親局装置1はMEPであり、延長要求データ及び短縮要求データのMELフィールドには、親局装置1のMELが指定される。
Flagsフィールドには、タイムアウト時間を指定する場合には「0」が、タイムアウト時間の指定を解除する場合には「1」が指定される。延長要求データ及び短縮要求データのFlagsフィールドには「0」が指定される。なお、短縮要求データがタイムアウト時間の延長の解除(つまり、デフォルト値への復帰)を要求するデータである場合、Flagsフィールドには「1」が指定される。
延長要求データ及び短縮要求データでは、TLV Offsetフィールドに「4」が指定され、OUI(Organizationally Unique Identifier)フィールドには「00−25−DC」が指定され、SubOpCodeフィールドには「0」が指定される。
第1変形例に係る通信システム10では、VSMフレームのoptional VSM dataフィールドにおいて、タイムアウト時間が指定される。
延長要求データでは、optional VSM dataフィールドにおいて、延長後のタイムアウト時間(第2タイムアウト時間)が指定される。optional VSM dataフィールドは、タイプ(Type)、長さ(Length)、値(Value)の3つのサブフィールドを有する。具体的な一例では、延長要求データにおけるoptional VSM dataフィールドのTypeフィールドには0x01が指定され、Lengthフィールドには2バイトを示す0x02が指定され、Valueフィールドには延長後のタイムアウト時間が指定される。
短縮要求データでは、optional VSM dataフィールドにおいて、短縮後のタイムアウト時間が指定される。具体的な一例では、短縮要求データにおけるoptional VSM dataフィールドのTypeフィールドには0x01が指定され、Lengthフィールドには2バイトを示す0x02が指定され、Valueフィールドには短縮後のタイムアウト時間が指定される。
ETH−OAMでは、CCM(Continuity Check Message)フレームのPeriodフィールドに指定される値(時間)を1周期として、親局装置1及び子局装置2のそれぞれが周期的にCCMフレームを送信する。対向通信装置(親局装置1にとっての対向通信装置は子局装置であり、子局装置2にとっての対向通信装置は親局装置1である。)から3.5周期以上CCMフレームを受信しなければ、タイムアウトが発生する。つまり、タイムアウト時間のデフォルト値は、CCMフレームのPeriodフィールドに指定される値の3.5倍である。
子局装置2のCPU22aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション確立状態である場合、CPU22aは、下位側インタフェース部21及び対向側インタフェース部25を動作させ、下位網6及び親局装置1との通信を行わせる。セッション切断状態である場合、CPU22aは、下位側インタフェース部21及び対向側インタフェース部25の少なくとも一方を停止させる。このため、セッション切断状態の場合、子局装置2によるデータ転送が停止する。
なお、親局装置1も同様の動作を行うことが可能である。つまり、CPU12aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション切断状態の場合、CPU12aは、上位側インタフェース部11及び対向側インタフェース部15の少なくとも一方を停止させる。
第2変形例に係る通信システム10は、上記のような子局装置2によるデータ転送の停止を抑制するため、子局装置2のタイムアウト時間を延長するタイムアウト時間制御処理を実行する。
第2変形例では、図7のステップS102において、CPU12aは、ETH−OAMにおけるタイムアウト時間のデフォルト値よりも長い時間(例えば、100周期分の時間)を、延長後のタイムアウト時間に決定する。CPU12aは、optional VSM dataフィールドにおいて、延長後のタイムアウト時間が指定されたVSMフレームを、延長要求データとして生成する。
ステップS105において、CPU22aは、その時点におけるタイムアウト時間(第1タイムアウト時間)から、これより長い新たなタイムアウト時間に設定を変更する。例えば、CPU22aは、ETH−OAMのタイムアウト時間のデフォルト値が設定されている場合、デフォルト値よりも長いタイムアウト時間(例えば、100周期分の時間)に設定を変更する。具体的な一例では、CPU22aは、延長要求データにおけるoptional VSM dataフィールドにおいて指定されたタイムアウト時間を、新たなタイムアウト時間として設定する。
ステップS109において、CPU12aは、延長されたタイムアウト時間(例えば、100周期分の時間)よりも短い時間を、短縮後のタイムアウト時間に決定する。短縮後のタイムアウト時間は、タイムアウト時間のデフォルト値(3.5周期)であってもよいし、デフォルト値以外の値であってもよい。CPU12aは、optional VSM dataフィールドにおいて、短縮後のタイムアウト時間が指定されたVSMフレームを、短縮要求データとして生成する。また、CPU12aは、Flagsフィールドにおいて「1」が指定されたVSMフレームを、短縮要求データとして生成してもよい。
タイムアウト時間の指定を含む短縮要求データを子局装置2が受信した場合、ステップS113において、CPU22aは、受信された短縮要求データのoptional VSM dataフィールドにおいて指定されるタイムアウト時間を、新たなタイムアウト時間として設定する。
[5−3.第3変形例]
第2変形例では、通信システム10が、MQTTにおけるタイムアウト時間の延長を行う。
図10は、第3変形例に係る通信システム10の構成の一例を示す図である。第3変形例に係る通信システム10は、1:N型の接続形態であり、1つの親局装置1に対して、複数の子局装置2が接続される。即ち、親局装置1は、接続される子局装置2とのそれぞれとの間で、MQTTのセッションを確立し、MQTTによる通信を行う。MQTTでは、親局装置1がブローカーと呼ばれ、子局装置2がクライアントと呼ばれる。
第3変形例では、ブローカーがCONNECTパケットを各クライアントにマルチキャスト送信する。延長要求データ及び短縮要求データは、CONNECTパケットとして生成される。図11は、CONNECTパケットのフォーマットを示す模式図である。CONNECTパケットはIPパケットの1つであり、Ethernetヘッダ、IPヘッダ、TCPヘッダ及びTCPデータの各フィールドを含む。TCPデータフィールドには、Keep Alive Timerフィールドが含まれる。
第3変形例に係る通信システム10では、CONNECTパケットのKeep Alive Timerフィールドにおいて、タイムアウト時間が指定される。Keep Alive Timerフィールドには、Keep Alive Timer MSBフィールドと、Keep Alive Timer LSBフィールドとが含まれる。Keep Alive Timer MSBフィールドには、全体で16ビットのタイムアウト時間の上位8ビットが指定され、Keep Alive Timer LSBフィールドには、タイムアウト時間の下位8ビットが指定される。
延長要求データでは、Keep Alive Timerフィールドにおいて、延長後のタイムアウト時間(第2タイムアウト時間)が指定される。
短縮要求データでは、Keep Alive Timerフィールドにおいて、短縮後のタイムアウト時間が指定される。
MQTTでは、各クライアントがブローカーに対し、一定周期でPINGREQパケットを送信する。ブローカーはPINGREQパケットを受信すると、PINGRESPONSEパケットを送り返す。クライアントはPINGRESPONSEパケットを規定時間以上受信しなければ、タイムアウトが発生する。タイムアウト時間は、クライアントがブローカーに対してセッションを開始する際に送信するCONNECTのKeep Alive Timerフィールドにおいて指定される。
子局装置2のCPU22aは、セッション確立状態であるか、セッション切断状態であるかを判定する。セッション確立状態である場合、CPU22aは、下位側インタフェース部21を動作させ、下位網6との通信を行わせる。セッション切断状態である場合、CPU22aは、下位側インタフェース部21を停止させる。このため、セッション切断状態の場合、子局装置2によるデータ転送が停止する。
第3変形例に係る通信システム10は、上記のような子局装置2によるデータ転送の停止を抑制するため、子局装置2のタイムアウト時間を延長するタイムアウト時間制御処理を実行する。
第3変形例では、図7のステップS102において、CPU12aは、セッション開始時に子局装置2(クライアント)から指定されたタイムアウト時間の初期値(例えば、5秒)よりも長い時間(例えば、100秒)を、延長後のタイムアウト時間に決定する。CPU12aは、Keep Alive Timerフィールドにおいて、延長後のタイムアウト時間が指定されたCONNECTパケットを、延長要求データとして生成する。
ステップS105において、CPU22aは、その時点におけるタイムアウト時間(第1タイムアウト時間)から、これより長い新たなタイムアウト時間に設定を変更する。例えば、CPU22aは、タイムアウト時間の初期値(例えば、5秒)が設定されている場合、初期値よりも長いタイムアウト時間(例えば、100秒)に設定を変更する。具体的な一例では、CPU22aは、延長要求データにおけるKeep Alive Timerフィールドにおいて指定されたタイムアウト時間を、新たなタイムアウト時間として設定する。
ステップS109において、CPU12aは、延長されたタイムアウト時間(例えば、100秒)よりも短い時間を、短縮後のタイムアウト時間に決定する。短縮後のタイムアウト時間は、タイムアウト時間の初期値であってもよいし、初期値以外の値であってもよい。CPU12aは、Keep Alive Timerフィールドにおいて、短縮後のタイムアウト時間が指定されたCONNECTパケットを、短縮要求データとして生成する。
タイムアウト時間の指定を含む短縮要求データを子局装置2が受信した場合、ステップS113において、CPU22aは、受信された短縮要求データのKeep Alive Timerフィールドにおいて指定されるタイムアウト時間を、新たなタイムアウト時間として設定する。
[5−4.その他の変形例]
なお、親局装置1が、延長要求データにおいて、延長後のタイムアウト時間を指定するのではなく、タイムアウト時間の無効化を指定してもよい。例えば、Link OAMの場合にはInformation OAMフレームのTLVのVlueフィールドにおいて、LACPの場合にはLACPフレームのOther TLVsフィールド中のValueフィールドにおいて、ETH−OAMの場合にはVSMフレームのoptional VSM dataフィールド中のValueフィールドにおいて、MQTTの場合にはブローカーによって送信されるCONNECTパケットのKeep Alive Timerフィールドにおいて、延長後のタイムアウト時間に代えて、タイムアウト時間の無効化を示す値(例えば、0xFFFF)が指定されてもよい。このような通信データを受信した子局装置2は、タイムアウト時間を無効化することができる。
親局装置1は、通信を停止させる原因がなくなった場合に、タイムアウト時間の無効化を解除するための短縮要求データを送信してもよい。例えば、Link OAMの場合にはInformation OAMフレームのTLVのVlueフィールドにおいて、LACPの場合にはLACPフレームのOther TLVsフィールド中のValueフィールドにおいて、ETH−OAMの場合にはVSMフレームのoptional VSM dataフィールド中のValueフィールドにおいて、MQTTの場合にはブローカーによって送信されるCONNECTパケットのKeep Alive Timerフィールドにおいて、短縮後のタイムアウト時間に代えて、タイムアウト時間の無効化の解除を示す値(例えば、0x0000)が指定されてもよい。このような通信データを受信した子局装置2は、タイムアウト時間を無効化を解除することができる。
[6.効果]
以上のように、通信システム10は、第1通信装置1と、第2通信装置2と、を備える。第1通信装置1は、第2通信装置2との間での制御プロトコルのセッション中に、制御プロトコルによる第2通信装置との通信を停止させる原因が第1通信装置1に生じるか否かを判定する判定部と、判定部によって原因が生じると判定された場合に、タイムアウト時間の延長を要求するための延長要求データを送信する送信部と、を有する。第2通信装置2は、第1通信装置1によって送信された延長要求データを受信する受信部と、受信部によって前記延長要求データが受信された場合に、第1タイムアウト時間から、第1タイムアウト時間よりも長い第2タイムアウト時間に設定を変更する設定部と、を有する。これにより、第2通信装置2との通信を停止させる原因が生じる前に、タイムアウト時間を延長することができる。したがって、通信システム10を簡素な構成としつつ、タイムアウトが発生することによるセッションの切断を回避することができる。
延長要求データは、延長後のタイムアウト時間として第2タイムアウト時間を指定する領域を含んでもよい。これにより、第1通信装置1において任意の第2タイムアウト時間を指定することができる。
第1通信装置1は、第2タイムアウト時間への設定の変更後において、タイムアウト時間の短縮を要求する短縮要求データを送信してもよい。第2通信装置2は、短縮要求データが受信された場合に、第2タイムアウト時間から、第2タイムアウト時間より短いタイムアウト時間に設定を変更してもよい。これにより、延長されたタイムアウト時間を短縮することができる。
短縮要求データは、短縮後のタイムアウト時間を指定する領域を含んでもよい。これにより、第1通信装置1において任意の短縮後のタイムアウト時間を指定することができる。
第2通信装置2は、第2タイムアウト時間が設定されている場合において、タイムアウトが発生した後、第2タイムアウト時間より短いタイムアウト時間に設定を変更してもよい。これにより、タイムアウトが発生した後に、延長されたタイムアウト時間を短縮することができる。
第1通信装置1は、第2タイムアウト時間への設定の変更後において、通信を停止させる原因に異常が生じた場合に、タイムアウト時間の短縮を要求する短縮要求データを送信してもよい。第2通信装置は、短縮要求データが受信された場合に、第2タイムアウト時間から、第2タイムアウト時間より短いタイムアウト時間に設定を変更してもよい。これにより、通信を停止させる原因に異常が発生し、通信が停止されなくなった場合に、延長されたタイムアウト時間を短縮させることができる。
通信を停止させる原因は、第1通信装置1における制御プログラム12eの更新であってもよい。これにより、制御プログラム12eの更新の間に通信が停止しても、タイムアウトの発生によるセッションの切断を回避することができる。
制御プロトコルは、Link OAM(Operations, Administration, Maintenance)、LACP(Link Aggregation Control Protocol)、ETH−OAM(Ethernet OAM)、MQTT(Message Queuing Telemetry Transport)のうちの少なくとも1つを含んでもよい。これにより、Link OAM、LACP、ETH−OAM、MQTTのうちの少なくとも1つにおいて、タイムアウトの発生によるセッションの切断を回避することができる。
[7.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。