以下に、本開示の実施の形態にかかる通信システム、通信装置、通信方法、制御回路および記憶媒体を図面に基づいて詳細に説明する。なお、以下に示す各実施の形態では、非特許文献1に記載の技術、すなわち、IEEE1588を適用したステムについて説明を行うが、非特許文献2に記載のIEEE802.1ASを適用したシステムとしてもよい。
実施の形態1.
図1は、実施の形態1にかかる通信システム100の構成例を示す図である。図示しているように、実施の形態1にかかる通信システム100は、時刻受信装置11と、親局装置12と、中継装置13-1および13-2と、子局装置14とを備える。通信システム100を構成する各装置はLAN(Local Area Network)回線にて接続されている。また、通信システム100を構成する各装置は時計を有しており、非特許文献1に準拠したPTP(Precision Time Protocol)メッセージを送受信することによって、各装置の時刻を同期するように構成されている。時刻同期用のPTPメッセージについては別途説明する。
通信システム100は、例えばファクトリーオートメーションに適用される。通信システム100がファクトリーオートメーションに適用される場合、例えば、親局装置12は、生産現場の各種機械を制御する制御装置に接続される、または、制御装置に内蔵される。子局装置14は、生産現場の各種機械、すなわち、制御対象の機械に接続される、または、制御対象の機械に内蔵される。中継装置13-1および13-2は、親局装置12と子局装置14との間で送受信されるデータ、制御情報などを中継する通信装置である。また、通信システム100は、親局装置12と、中継装置13-1および13-2と、子局装置14が後述する動作を実行することで伝送遅延時間を測定する機能を有する。なお、図1に示す例では親局装置12と子局装置14との間に存在する中継装置を2台としたが、中継装置の数をこれに限定するものではない。
時刻受信装置11は、GPS(Global Positioning System)などを利用して正確な時刻情報を生成する時刻源(図示せず)から時刻情報を受信する。
図2は、実施の形態1にかかる親局装置12の構成例を示す図である。親局装置12は、時刻受信部21と、時刻同期管理部22と、制御部23と、受信部24と、送信部25とを備える。
時刻受信部21は、時刻受信装置11から時刻情報を受信する。
時刻同期管理部22は、親局装置12の内部時計を管理する。時刻同期管理部22は、時刻受信部21が時刻受信装置11から時刻情報を受信すると、この時刻情報に基づいて、管理している内部時計の時刻を調整する。すなわち、時刻同期管理部22は、内部時計の時刻を、時刻受信部21が時刻受信装置11から受信した時刻情報が示す時刻に合わせる。
制御部23は、親局装置12の全体を制御する。また、制御部23はフレームを生成して送信部25に出力する。制御部23は、例えば、PTPメッセージが格納されたフレームを生成する。また、制御部23は、受信部24が受信したフレームを解析し、解析結果に基づく処理を実行する。
受信部24は、LAN回線からフレームを受信するとともに、受信したフレームを制御部23に出力する。
送信部25は、制御部23からフレームが入力されるとこれをLAN回線に送信する。
ここで、親局装置12が中継装置13-1,13-2および子局装置14との間で送受信するフレームの一例として、PTPメッセージが格納されたフレームについて説明する。
図3は、実施の形態1にかかる通信システム100において送受信されるフレームの構成例を示す図である。具体的には、図3は、非特許文献1に準拠したPTPメッセージをカプセル化したフレームのフォーマットを示す。
図3には、VLAN(Virtual Local Area Network)タグ付きの2種類のフレーム210および220を示している。(a)に示すフレーム210はUDP(User Datagram Protocol)でPTPメッセージ(PTP message)を送受信する場合に使用される。(b)に示すフレーム220はEthernet(登録商標)フレームでPTPメッセージを送受信する場合に使用される。フレーム210および220でカプセル化されたPTPメッセージ230は、Common message header 231およびmessage field 232により構成されている。message field 232には、Sync/Delay_Req/Follow_Up/Delay_Respの各メッセージに準じたフィールド等が格納される。Common message header 231は、図4のように構成され、補正フィールドであるcorrectionField 2311が含まれる。なお、図4は、図3に示すPTPメッセージを構成するCommon message header 231の構成を示す図である。
親局装置12、中継装置13-1,13-2および子局装置14は、図3に示した構成のフレーム210((a) PTP over IPv4/v6 UDP(VLANタグ付))、または、フレーム220((b)PTP over IEEE802.3/Ethernet(VLANタグ付))を用いて、PTPメッセージを送受信する。
図5は、実施の形態1にかかる中継装置13-1および13-2の構成例を示す図である。中継装置13-1および13-2の構成は同一であり、第1受信部31と、第1送信部32と、第2受信部33と、第2送信部34と、情報設定部35と、制御部36と、時刻同期管理部37とを備える。
中継装置13-1および13-2には、隣接している装置の情報があらかじめ設定されており、中継装置13-1および13-2のそれぞれの制御部36は、隣接している装置を認識しているものとする。すなわち、中継装置13-1の制御部36は、第1受信部31および第1送信部32の先に親局装置12が接続されており、第2受信部33および第2送信部34の先に中継装置13-2接続されていることを認識している。中継装置13-2の制御部36は、第1受信部31および第1送信部32の先に中継装置13-1が接続されており、第2受信部33および第2送信部34の先に子局装置14が接続されていることを認識している。
第1受信部31は、親局装置12側のLAN回線からフレームを受信するとともに、受信したフレームを制御部36に出力する。すなわち、第1受信部31は、親局装置12から子局装置14に向けて送信されたフレームをLAN回線から受信し、受信したフレームを制御部36に出力する。
第1送信部32は、制御部36からフレームが入力されるとこれを親局装置12側のLAN回線に送信する。すなわち、第1送信部32は、子局装置14から親局装置12に向けて送信されたフレームを制御部36から受け取り、親局装置12側のLAN回線に送信する。
第2受信部33は、子局装置14側のLAN回線からフレームを受信するとともに、受信したフレームを制御部36に出力する。すなわち、第2受信部33は、子局装置14から親局装置12に向けて送信されたフレームをLAN回線から受信し、受信したフレームを制御部36に出力する。
第2送信部34は、制御部36からフレームが入力されるとこれを子局装置14側のLAN回線に送信する。すなわち、第2送信部34は、親局装置12から子局装置14に向けて送信されたフレームを制御部36から受け取り、子局装置14側のLAN回線に送信する。
情報設定部35は、第1受信部31が受信したフレームおよび第2受信部33が受信したフレームのそれぞれについて、フレームが定められた条件を満たすと、フレームに付与されているVLANタグの設定を変更する。
制御部36は、中継装置13-1または13-2の全体を制御する。また、制御部36は、第1受信部31が受信したフレームを受け取って解析し、解析結果に基づく処理を実行するとともに、第2受信部33が受信したフレームを受け取って解析し、解析結果に基づく処理を実行する。
時刻同期管理部37は、中継装置13-1または13-2の内部時計を管理する。また、時刻同期管理部37は、第1受信部31が特定種類のフレームを受信した場合の受信時刻およびこのフレームを第2送信部34が送信した時刻を記憶する処理、第2受信部33が特定種類のフレームを受信した場合の受信時刻およびこのフレームを第1送信部32が送信した時刻を記憶する処理、記憶した時刻からフレームの伝送遅延時間を求めて外部に通知する処理などを行う。
図6は、実施の形態1にかかる子局装置14の構成例を示す図である。子局装置14は、受信部41と、送信部42と、制御部43と、時刻同期管理部44と、伝送遅延時間集計部45とを備える。
受信部41は、LAN回線からフレームを受信するとともに、受信したフレームを制御部43に出力する。
送信部42は、制御部43からフレームが入力されるとこれをLAN回線に送信する。
制御部43は、子局装置14の全体を制御する。また、制御部43は、受信部41が受信したフレームを解析し、解析結果に基づく処理を実行する。
時刻同期管理部44は、子局装置14の内部時計を管理する。時刻同期管理部44は、管理している内部時計の時刻が親局装置12の内部時計の時刻と同じになるよう、管理している内部時計の時刻を適宜調整する。
伝送遅延時間集計部45は、中継装置13-1および13-2における伝送遅延時間の情報を収集し、収集した情報に基づいて、親局装置12から子局装置14までの通信経路におけるフレームの伝送遅延時間を算出する。
つづいて、通信システム100内を伝送されるフレームの伝送遅延時間をフレームの優先度ごとに測定する動作について説明する。
図7は、実施の形態1にかかる通信システム100におけるフレームの伝送遅延時間を測定する動作の一例を示すシーケンス図である。
図7に示すように、通信システム100においては、Syncメッセージ、Follow_Upメッセージ、Delay_ReqメッセージおよびDelay_Respメッセージの4種類のPTPメッセージを親局装置12と子局装置14との間で送受信させることで伝送遅延時間を測定する。
上記4種類のPTPメッセージそれぞれの送受信動作について以下に説明する。なお、各メッセージはカプセル化されてフレームとして送受信されるが、説明の簡単化のため、メッセージがカプセル化されたフレームの送受信を、メッセージの送受信と表現する場合がある。
[Syncメッセージの送受信動作]
第1の時刻同期フレームであるSyncメッセージがカプセル化されたフレームの送信元は親局装置12である。Syncメッセージを送信する場合、親局装置12では、時刻同期管理部22が、Syncメッセージを生成するよう制御部23に指示を行う。このとき、時刻同期管理部22は、Syncメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグあり(VID値=101、PCP(Priority Code Point)値=設定無し(例えばPCP値=0))、補正フィールド値=0、時刻=T1のフレーム生成を指示する情報も制御部23に通知する。ここで、VID値はPTPに割り当てられたVID値であり、時刻T1は、親局装置12の時刻同期管理部22が管理する内部時計が指す時刻である。また、PCP値はフレームの優先度を示し、0~7の範囲で設定が可能である。PCP値が大きいほど優先度が高くなる。PCP値はフレームの優先度に関する特性情報の一例である。補正フィールドは図4に示したcorrectionField 2311である。
時刻同期管理部22により指示を受けた制御部23は、指示内容に従ったSyncメッセージを生成して送信部25に出力する。送信部25は、制御部23から受け取ったSyncメッセージを中継装置13-1へ送信する(図7のステップS61)。
親局装置12から送信されたSyncメッセージが中継装置13-1に到着すると、中継装置13-1は、Syncメッセージが格納されたフレームにPCP値を設定して中継装置13-2へ転送する(図7のステップS62)。PCP値には、設定可能な範囲のいずれの値を設定してもよいが、以下では、一例として、フレームに設定するPCP値を「7」とする場合について説明する。後述するFollow_Upメッセージ、Delay_ReqメッセージおよびDelay_Respメッセージの送受信動作においても同様に、フレームに設定するPCP値を「7」とする。なお、図8では、PCP値を一般化してnと記載している。
Syncメッセージが格納されたフレームを転送するときの中継装置13-1の動作について説明する。
図8は、実施の形態1にかかる中継装置13-1がSyncメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13-2がSyncメッセージを中継する場合の動作の一例をフローチャートで示す場合も図8となる。
中継装置13-1では、第1受信部31がSyncメッセージを受信し(ステップS11)、時刻同期管理部37がSyncメッセージの受信時刻として現在時刻τ1を保持する(ステップS12)。図7に示す例では、中継装置13-1の第1受信部31がSyncメッセージを受信する時刻がt1である。そのため、ステップS12において、時刻同期管理部37は、τ1=t1を保持する。
次に、情報設定部35が、Syncメッセージの送信元が親局装置12か否かを確認し(ステップS13)、送信元が親局装置12ではない場合、すなわち、他の中継装置である場合(ステップS13:No)、ステップS15に進む。一方、Syncメッセージの送信元が親局装置12の場合(ステップS13:Yes)、情報設定部35は、Syncメッセージが格納されたフレームのVLANタグのPCP値=7に設定する(ステップS14)。中継装置13-1の場合、Syncメッセージの送信元が親局装置12であるため、ステップS13につづいてステップS14を実行し、情報設定部35がPCP値を7に設定する。なお、7以外の値をPCP値に設定する場合の中継装置13-1および13-2の動作フローはPCP値=7を設定する場合の動作フローと同じである。そのため、図8では、設定するPCP値を一般化してnと記載している。
Syncメッセージの送信元が親局装置12ではない場合(ステップS13:No)、および、ステップS14でVLANタグのPCP値を設定した場合、時刻同期管理部37がSyncメッセージの送信時刻として現在時刻τ2を保持し(ステップS15)、第2送信部34がSyncメッセージを送信し(ステップS16)、動作終了となる。図7に示す例では、中継装置13-1の第2送信部34がSyncメッセージを送信する時刻がt2である。そのため、中継装置13-1の時刻同期管理部37は、ステップS15において、τ2=t2を保持する。
中継装置13-1から送信されたSyncメッセージが中継装置13-2に到着すると、中継装置13-2は、Syncメッセージを子局装置14へ転送する(図7のステップS63)。このときの中継装置13-2の動作について説明する。
中継装置13-1からSyncメッセージが到着した場合の中継装置13-2は、図8のステップS11~S13、S15およびS16を実行する。すなわち、中継装置13-2では、第1受信部31がSyncメッセージを受信し、Syncメッセージを受信した時の現在時刻τ1を時刻同期管理部37が保持し、Syncメッセージを送信する時の現在時刻τ2を時刻同期管理部37が保持し、第2送信部34がSyncメッセージを送信する。図7に示す例では、中継装置13-2がSyncメッセージを受信する時刻がt3、Syncメッセージを送信する時刻がt4である。そのため、中継装置13-2の時刻同期管理部37は、Syncメッセージの受信時刻としてτ1=t3を保持し、送信時刻としてτ2=t4を保持する。
中継装置13-2から送信されたSyncメッセージが子局装置14に到着すると、子局装置14は、Syncメッセージを受信した時刻を保持する。具体的には、子局装置14では、受信部41がSyncメッセージを受信し、制御部43が、時刻同期管理部44にSyncメッセージを受信したことを通知する。時刻同期管理部44は、制御部43から通知を受けたときに内部時計が指している時刻、すなわち、Syncメッセージを受信した時刻を、T2として保持する。また、時刻同期管理部44は、Syncメッセージに記載されているT1を保持する。上述したように、T1は、親局装置12がSyncフレームを送信した時刻である。
[Follow_Upメッセージの送受信動作]
第2の時刻同期フレームであるFollow_Upメッセージがカプセル化されたフレームの送信元は親局装置12である。Follow_Upメッセージを送信する場合、親局装置12では、時刻同期管理部22が、Follow_Upメッセージを生成するよう制御部23に指示を行う。このとき、時刻同期管理部22は、Follow_Upメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグあり(VID値=101、PCP値=設定無し(例えばPCP値=0))、補正フィールド値=0のフレーム生成を指示する情報も制御部23に通知する。
時刻同期管理部22により指示を受けた制御部23は、指示内容に従ったFollow_Upメッセージを生成して送信部25に出力する。送信部25は、制御部23から受け取ったFollow_Upメッセージを中継装置13-1へ送信する(図7のステップS64)。
親局装置12から送信されたFollow_Upメッセージが中継装置13-1に到着すると、中継装置13-1は、Follow_Upメッセージが格納されたフレームのPCP値の設定および補正フィールド値の更新を行い、中継装置13-2へ転送する(図7のステップS65)。このときの中継装置13-1の動作について説明する。
図9は、実施の形態1にかかる中継装置13-1がFollow_Upメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13-2がFollow_Upメッセージを中継する場合の動作の一例をフローチャートで示す場合も図9となる。
中継装置13-1では、第1受信部31がFollow_Upメッセージを受信し(ステップS21)、時刻同期管理部37がFollow_Upメッセージの補正フィールドの値に対し、Syncメッセージを中継した時のSyncメッセージの滞留時間(τ2-τ1)を加算する(ステップS22)。図7に示す例では、中継装置13-1におけるSyncメッセージの滞留時間はt2-t1である。そのため、ステップS22において、時刻同期管理部37は、t2-t1を補正フィールドの値に加算する。
次に、情報設定部35が、Follow_Upメッセージの送信元が親局装置12か否かを確認し(ステップS23)、送信元が親局装置12ではない場合、すなわち、他の中継装置である場合(ステップS23:No)、ステップS25に進む。一方、Follow_Upメッセージの送信元が親局装置12の場合(ステップS23:Yes)、情報設定部35は、Follow_Upメッセージが格納されたフレームのVLANタグのPCP値=7に設定する(ステップS24)。中継装置13-1の場合、Follow_Upメッセージの送信元が親局装置12であるため、ステップS23につづいてステップS24を実行し、情報設定部35がPCP値を7に設定する。なお、7以外の値をPCP値に設定する場合の中継装置13-1および13-2の動作フローは、PCP値=7を設定する場合の動作フローと同じであるため、図9では、設定するPCP値を一般化してnと記載している。
Follow_Upメッセージの送信元が親局装置12ではない場合(ステップS23:No)、および、ステップS24でVLANタグのPCP値を設定した場合、第2送信部34がFollow_Upメッセージを送信し(ステップS25)、動作終了となる。中継装置13-1の第2送信部34は、ステップS25でFollow_Upメッセージを中継装置13-2へ送信する。
中継装置13-1から送信されたFollow_Upメッセージが中継装置13-2に到着すると、中継装置13-2は、Follow_Upメッセージを子局装置14へ転送する(図7のステップS66)。このときの中継装置13-2の動作について説明する。
中継装置13-1からFollow_Upメッセージが到着した場合の中継装置13-2の動作は、図9のステップS21~S23およびS25で示される。すなわち、中継装置13-2では、第1受信部31がFollow_Upメッセージを受信し、時刻同期管理部37がFollow_Upメッセージの補正フィールド値に対し、Syncメッセージの滞留時間(τ2-τ1)を加算する。第2送信部34は、Follow_Upメッセージを送信する。図7に示す例では、中継装置13-2におけるSyncメッセージの滞留時間はt4-t3である。そのため、時刻同期管理部37は、t4-t3を補正フィールドの値に加算する。
中継装置13-2から送信されたFollow_Upメッセージが子局装置14に到着すると、子局装置14は、Follow_Upメッセージに記載されている補正フィールドの値を保持する。具体的には、時刻同期管理部44が、Follow_UpメッセージのPCP値(n=7)と補正フィールドの値((t2-t1)+(t4-t3))とを関連付けて保持する。
[Delay_Reqメッセージの送受信動作]
第3の時刻同期フレームであるDelay_Reqメッセージがカプセル化されたフレームの送信元は子局装置14である。Delay_Reqメッセージを送信する場合、子局装置14では、時刻同期管理部44が、Delay_Reqメッセージを生成するよう制御部43に指示を行う。このとき、時刻同期管理部44は、Delay_Reqメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグあり(VID値=101、PCP値=設定無し(例えばPCP値=0))のフレーム生成を指示する情報も制御部43に通知する。また、時刻同期管理部44は、制御部43にDelay_Reqメッセージの生成を指示した時点で内部時計が指す時刻T3を保持する。
時刻同期管理部44により指示を受けた制御部43は、指示内容に従ったDelay_Reqメッセージを生成して送信部42に出力する。送信部42は、制御部43から受け取ったDelay_Reqメッセージを中継装置13-2へ送信する(図7のステップS67)。
子局装置14から送信されたDelay_Reqメッセージが中継装置13-2に到着すると、中継装置13-2は、Delay_Reqメッセージが格納されたフレームにPCP値を設定して中継装置13-1へ転送する(図7のステップS68)。このときの中継装置13-2の動作について説明する。
図10は、実施の形態1にかかる中継装置13-2がDelay_Reqメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13-1がDelay_Reqメッセージを中継する場合の動作の一例をフローチャートで示す場合も図10となる。
中継装置13-2では、第2受信部33がDelay_Reqメッセージを受信し(ステップS31)、時刻同期管理部37がDelay_Reqメッセージの受信時刻として現在時刻τ3を保持する(ステップS32)。図7に示す例では、中継装置13-2の第2受信部33がSyncメッセージを受信する時刻がt5である。そのため、ステップS32において、時刻同期管理部37は、τ3=t5を保持する。
次に、情報設定部35が、Delay_Reqメッセージの送信元が子局装置14か否かを確認し(ステップS33)、送信元が子局装置14ではない場合、すなわち、他の中継装置である場合(ステップS33:No)、ステップS35に進む。一方、Delay_Reqメッセージの送信元が子局装置14の場合(ステップS33:Yes)、情報設定部35は、Delay_Reqメッセージが格納されたフレームのVLANタグのPCP値=7に設定する(ステップS34)。中継装置13-2の場合、Delay_Reqメッセージの送信元が子局装置14であるため、ステップS33につづいてステップS34を実行し、情報設定部35がPCP値を7に設定する。なお、7以外の値をPCP値に設定する場合の中継装置13-1および13-2の動作フローは、PCP値=7を設定する場合の動作フローと同じであるため、図10では、設定するPCP値を一般化してnと記載している。
Delay_Reqメッセージの送信元が子局装置14ではない場合(ステップS33:No)、および、ステップS34でVLANタグのPCP値を設定した場合、時刻同期管理部37がDelay_Reqメッセージの送信時刻として現在時刻τ4を保持し(ステップS35)、第1送信部32がDelay_Reqメッセージを送信し(ステップS36)、動作終了となる。中継装置13-2の第1送信部32は、ステップS36でDelay_Reqメッセージを中継装置13-1へ送信する。図7に示す例では、中継装置13-2の第1送信部32がDelay_Reqメッセージを送信する時刻がt6である。そのため、ステップS35において、時刻同期管理部37は、τ4=t6を保持する。
中継装置13-2から送信されたDelay_Reqメッセージが中継装置13-1に到着すると、中継装置13-1は、Delay_Reqメッセージを親局装置12へ転送する(図7のステップS69)。このときの中継装置13-1の動作について説明する。
中継装置13-2からDelay_Reqメッセージが到着した場合の中継装置13-1の動作は、図10のステップS31~S33、S35およびS36で示される。すなわち、中継装置13-1では、第2受信部33がDelay_Reqメッセージを受信し、Delay_Reqメッセージを受信した時の現在時刻τ3を時刻同期管理部37が保持し、Delay_Reqメッセージを送信する時の現在時刻τ4を時刻同期管理部37が保持し、第1送信部32がDelay_Reqメッセージを送信する。図7に示す例では、中継装置13-1がDelay_Reqメッセージを受信する時刻がt7、Delay_Reqメッセージを送信する時刻がt8である。そのため、中継装置13-1の時刻同期管理部37は、Delay_Reqメッセージの受信時刻としてτ3=t7を保持し、送信時刻としてτ4=t8を保持する。
中継装置13-1から送信されたDelay_Reqメッセージが親局装置12に到着すると、親局装置12は、Delay_Reqメッセージを受信した時刻を保持する。具体的には、親局装置12では、受信部24がDelay_Reqメッセージを受信し、制御部23が、時刻同期管理部22にDelay_Reqメッセージを受信したことを通知する。時刻同期管理部22は、制御部23から通知を受けたときに内部時計が指している時刻、すなわち、Delay_Reqメッセージを受信した時刻を、T4として保持する。
[Delay_Respメッセージの送受信動作]
第4の時刻同期フレームであるDelay_Respメッセージがカプセル化されたフレームの送信元は親局装置12である。Delay_Respメッセージを送信する場合、親局装置12では、時刻同期管理部22が、Delay_Respメッセージを生成するよう制御部23に指示を行う。このとき、時刻同期管理部22は、Delay_Respメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグあり(VID値=101、PCP値=設定無し(例えばPCP値=0))、補正フィールド値=0、時刻=T4のフレーム生成を指示する情報も制御部23に通知する。
時刻同期管理部22により指示を受けた制御部23は、指示内容に従ったDelay_Respメッセージを生成して送信部25に出力する。送信部25は、制御部23から受け取ったDelay_Respメッセージを中継装置13-1へ送信する(図7のステップS70)。
親局装置12から送信されたDelay_Respメッセージが中継装置13-1に到着すると、中継装置13-1は、Delay_Respメッセージが格納されたフレームのPCP値の設定および補正フィールド値の更新を行い、中継装置13-2へ転送する(図7のステップS71)。このときの中継装置13-1の動作について説明する。
図11は、実施の形態1にかかる中継装置13-1がDelay_Respメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13-2がDelay_Respメッセージを中継する場合の動作の一例をフローチャートで示す場合も図11となる。
中継装置13-1では、第1受信部31がDelay_Respメッセージを受信し(ステップS41)、時刻同期管理部37がDelay_Respメッセージの補正フィールドの値に対し、Delay_Reqメッセージを中継した時のDelay_Reqメッセージの滞留時間(τ4-τ3)を加算する(ステップS42)。図7に示す例では、中継装置13-1におけるDelay_Reqメッセージの滞留時間はt8-t7である。そのため、ステップS42において、時刻同期管理部37は、t8-t7を補正フィールドの値に加算する。
次に、情報設定部35が、Delay_Respメッセージの送信元が親局装置12か否かを確認し(ステップS43)、送信元が親局装置12ではない場合、すなわち、他の中継装置である場合(ステップS43:No)、ステップS45に進む。一方、Delay_Respメッセージの送信元が親局装置12の場合(ステップS43:Yes)、情報設定部35は、Delay_Respメッセージが格納されたフレームのVLANタグのPCP値=7に設定する(ステップS44)。中継装置13-1の場合、Delay_Respメッセージの送信元が親局装置12であるため、ステップS43につづいてステップS44を実行し、情報設定部35がPCP値を7に設定する。なお、7以外の値をPCP値に設定する場合の中継装置13-1および13-2の動作フローは、PCP値=7を設定する場合の動作フローと同じであるため、図11では、設定するPCP値を一般化してnと記載している。
Delay_Respメッセージの送信元が親局装置12ではない場合(ステップS43:No)、および、ステップS44でVLANタグのPCP値を設定した場合、第2送信部34がDelay_Respメッセージを送信する(ステップS45)。中継装置13-1の第2送信部34は、ステップS45でDelay_Respメッセージを中継装置13-2へ送信する。
次に、情報設定部35が、PCP値(n)を1減算し(ステップS46)、1を減算後のnが0未満では無い場合(ステップS47:No)、処理を終了する。1を減算後のnが0未満の場合(ステップS47:Yes)、情報設定部35はnを7に変更し(ステップS48)、動作を終了する。ここでは、PCP値=7のため、ステップS48を実行せずに動作終了となる。
中継装置13-1から送信されたDelay_Respメッセージが中継装置13-2に到着すると、中継装置13-2は、Delay_Respメッセージを子局装置14へ転送する(図7のステップS72)。このときの中継装置13-2の動作について説明する。
中継装置13-1からDelay_Respメッセージが到着した場合の中継装置13-2の動作は、図11のステップS41~S43およびS45で示される。すなわち、中継装置13-2では、第1受信部31がDelay_Respメッセージを受信し、時刻同期管理部37がDelay_Respメッセージの補正フィールド値に対し、Delay_Reqメッセージの滞留時間(τ4-τ3)を加算する。第2送信部34は、Delay_Respメッセージを送信する。図7に示す例では、中継装置13-2におけるDelay_Reqメッセージの滞留時間はt6-t5である。そのため、時刻同期管理部37は、t6-t5を補正フィールドの値に加算する。
中継装置13-2から送信されたDelay_Respメッセージが子局装置14に到着すると、子局装置14は、Delay_Respメッセージに記載されている補正フィールドの値および時刻情報(T4)を保持する。具体的には、子局装置14では、受信部41がDelay_Respメッセージを受信し、制御部43が、時刻同期管理部44にDelay_Respメッセージを受信したことを通知する。時刻同期管理部44は、Delay_Respメッセージに記載されている補正フィールドの値((t8-t7)+(t6-t5))および時刻情報(T4)を保持する。また、制御部43から通知を受けたときに内部時計が指している時刻、伝送遅延時間集計部45が、Delay_RespメッセージのPCP値(n=7)と補正フィールドの値((t8-t7)+(t6-t5))とを関連付けて保持する。
以上のSyncメッセージ、Follow_Upメッセージ、Delay_ReqメッセージおよびDelay_Respメッセージの送受信動作を行うことにより、親局装置12から子局装置14までの通信経路における伝送遅延である平均経路遅延の計算が可能となる。
平均経路遅延は、子局装置14の時刻同期管理部44において、以下の式(1)のように計算される。式(1)において、「Syncの補正フィールド」は子局装置14が受信したSyncメッセージの補正フィールドに設定されている値、「Follow_Upの補正フィールド」は子局装置14が受信したFollow_Upメッセージの補正フィールドに設定されている値、「Delay_Respの補正フィールド」は子局装置14が受信したDelay_Respメッセージの補正フィールドに設定されている値、である。
(平均経路遅延)
={(T2-T3)+(T4-T1)-(Syncの補正フィールド)
-(Follow_Upの補正フィールド)
-(Delay_Respの補正フィールド)}/2 …(1)
子局装置14の時刻同期管理部44は、式(1)に従って算出した平均経路遅延を用いて、親局装置12の時刻からの子局装置14の時刻のずれである、子局装置時刻差を以下の式(2)のように計算する。子局装置時刻差を計算し子局装置14の時刻同期管理部44の時計を補正することで、子局装置14は親局装置12に時刻を合わせることができる。
(子局装置時刻差)=(T2-T1)-(平均経路遅延)
-(Syncの補正フィールド)
-(Follw_Upの補正フィールド) …(2)
Syncメッセージの滞留時間は下り方向(親局装置12から子局装置14への方向)のフレームの滞留時間、Delay_Reqメッセージの滞留時間は上り方向(子局装置14から親局装置12への方向)のフレームの滞留時間と考えることができる。上記の動作から、子局装置14の伝送遅延時間集計部45では、PCP値=7のときの下り方向のフレームの中継装置13-1及び13-2の滞留時間の合計値((t2-t1)+(t4-t3))と、PCP値=7のときの上りフレームの中継装置13-1及び13-2の滞留時間の合計値((t8-t7)+(t6-t5))とを保持していることになる。
上記の動作を、中継装置13-1または13-2がフレームを転送する際に設定するPCP値を変更して実行することで、各PCP値のときの上り方向及び下り方向のフレームの伝送遅延時間を子局装置14の伝送遅延時間集計部45が算出して保持することができる。
上記の動作について、測定対象キューへキューイングするために、PCP値を0~7まで(昇順)、もしくはランダム順に変更して繰り返し実行してもよい。
また、上記の動作について、SyncメッセージとDelay_RespとでPCP値を付与する順序を変えて実行してもよい。このとき、Follow_Upメッセージに付与(設定)するPCP値は直前のSyncメッセージに設定されているPCP値と同一とし、Delay_Respに付与(設定)するPCP値は直前のDelay_Reqメッセージに設定されているPCP値と同一とする。
同じPCP値について複数回測定することもできる。複数回測定したときの処理方法としては複数回の測定結果について、平均値、最大値、最小値を代表値とすることも可能であり、直近の測定結果のほうを重くもしくは軽く評価する加重平均をとり代表値としてもよい。
上記の動作の伝送遅延時間と対応付けるものとして、VLANタグのPCP値の代わりに、もしくは同時に、フレームの特性を表すほかの要素(例えば、IPv4ヘッダのToS(Type of Service)値、IPv6ヘッダのTraffic Class、フレーム長、フレームのペイロードの内容など)をフレームの特性情報として使用しても同様の結果(上り方向および下り方向のフレームの伝送遅延時間)を得ることができる。
各PTPメッセージには拡張フィールドが存在しているが、各PTPメッセージの送信時に、この拡張フィールドに、各中継装置で、自装置の滞留時間を記載し送信してもよい。このようにすることで、滞留時間の合計値だけでなくそれぞれの中継装置での滞留時間を、親局装置、他の中継装置、子局装置、または接続された他の装置に通知することが可能になる。
以上説明したように、本実施の形態にかかる通信システム100においては、親局装置12と子局装置14との間でフレームの中継を行う各中継装置(中継装置13-1および13-2)が、時刻同期用のPTPメッセージ(Syncメッセージ、Follow_Upメッセージ、Delay_Reqメッセージ、Delay_Respメッセージ)を含んだフレームに優先度を設定して中継することで、各中継装置におけるフレームの滞留時間を優先度ごとに算出し、算出した滞留時間を子局装置14に送信する。これにより、子局装置14が、各中継装置におけるフレームの滞留時間を優先度ごとに集計し、優先度ごとのフレームの伝送遅延時間を算出することが可能となる。また、時刻同期フレームを利用してフレームの伝送遅延時間を優先度ごとに測定できる。すなわち、専用のフレームを使用することなくフレームの伝送遅延時間を優先度ごとに測定できる。
つづいて、親局装置12、中継装置13-1,13-2および子局装置14を実現するハードウェア構成について説明する。
親局装置12について説明する。親局装置12は、例えば、図12に示すプロセッサ101、メモリ102、送信回路103および受信回路104により実現される。なお、図12は、親局装置12を実現するハードウェアの一例を示す図である。
プロセッサ101は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)、システムLSI(Large Scale Integration)などである。メモリ102は、RAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)などである。送信回路103は通信回線に信号を送信する電子回路、受信回路104は通信回線から信号を受信する電子回路である。
親局装置12の時刻受信部21、時刻同期管理部22および制御部23は、プロセッサ101およびメモリ102により実現することができる。すなわち、親局装置12の時刻受信部21、時刻同期管理部22および制御部23として動作するためのプログラムをメモリ102に格納しておき、このプログラムをプロセッサ101が読み出して実行することにより、親局装置12の時刻受信部21、時刻同期管理部22および制御部23を実現することが可能である。なお、メモリ102に格納される、時刻受信部21、時刻同期管理部22および制御部23として動作するためのプログラムは、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROMなどの記憶媒体に書き込まれた状態でユーザ等に提供される形態であってもよいし、ネットワークを介して提供される形態であってもよい。
また、図12は汎用のプロセッサ101およびメモリ102により親局装置12を実現する場合のハードウェアの例であるが、プロセッサ101およびメモリ102の代わりに専用の処理回路で親局装置12を実現してもよい。すなわち、専用の処理回路で親局装置12の時刻受信部21、時刻同期管理部22および制御部23を実現してもよい。ここで、専用の処理回路は、単一回路、複合回路、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせた回路である。なお、時刻受信部21、時刻同期管理部22および制御部23の一部をプロセッサ101およびメモリ102で実現し、残りを専用の処理回路で実現してもよい。
親局装置12の受信部24は受信回路104で実現され、送信部25は送信回路103で実現される。
なお、メモリ102は、プロセッサ101が各種演算処理を実行する際の一時メモリにも利用される。受信回路104は、時刻受信部21が時刻情報を受信する場合にも利用される。
中継装置13-1,13-2および子局装置14についても親局装置12を実現可能なハードウェアと同様のハードウェアで実現することができる。すなわち、中継装置13-1,13-2および子局装置14についても、図12に示すプロセッサ101、メモリ102、送信回路103および受信回路104と同様のハードウェアで実現することが可能である。
中継装置13-1および13-2の情報設定部35、制御部36および時刻同期管理部37は、これらの各部として動作するためのプログラムをプロセッサ101が実行することにより実現される。これらの各部を上述した単一回路、複合回路、ASIC等の専用の処理回路で実現してもよい。中継装置13-1および13-2の第1受信部31および第2受信部33は受信回路104で実現され、第1送信部32および第2送信部34は送信回路103で実現される。
子局装置14の制御部43、時刻同期管理部44および伝送遅延時間集計部45は、これらの各部として動作するためのプログラムをプロセッサ101が実行することにより実現される。これらの各部を上述した単一回路、複合回路、ASIC等の専用の処理回路で実現してもよい。子局装置14の受信部41は受信回路104で実現され、送信部42は送信回路103で実現される。
実施の形態2.
実施の形態1では、子局装置14が、優先度と伝送遅延時間とを関連付けて保持し、優先度ごとのフレームの伝送遅延時間を算出することとした。これに対して、実施の形態2では、中継装置が、優先度と伝送遅延時間とを関連付けて保持し、優先度ごとのフレームの伝送遅延時間を算出する。本実施の形態では、実施の形態1と共通の部分については説明を省略する。
図13は、実施の形態2にかかる通信システム100aの構成例を示す図である。図示しているように、実施の形態2にかかる通信システム100aは、時刻受信装置11と、親局装置12と、中継装置13a-1および13a-2と、子局装置14aとを備える。実施の形態1と同様に、通信システム100aを構成する各装置はLAN回線にて接続されている。すなわち、通信システム100aは、実施の形態1で説明した通信システム100の中継装置13-1、中継装置13-2および子局装置14を、それぞれ中継装置13a-1、中継装置13a-2および子局装置14aに置き換えたものである。本実施の形態では、実施の形態1と共通の部分については説明を省略する。通信システム100aを構成する各装置は時計を有しており、実施の形態1と同様に、PTPメッセージが格納されたフレームを送受信することによって、各装置の時刻を同期するように構成されている。
時刻受信装置11、親局装置12、中継装置13a-1,13a-2および子局装置14aは、実施の形態1と同様に、図3に示す構成のフレーム210またはフレーム220を使用してPTPメッセージの送受信を行う。
親局装置12の構成は実施の形態1と同一である。
図14は、実施の形態2にかかる中継装置13a-1および13a-2の構成例を示す図である。中継装置13a-1および13a-2は、実施の形態1にかかる中継装置13-1および13-2の情報設定部35および制御部36を情報設定部35aおよび制御部36aに置き換え、さらに、伝送遅延時間集計部38を追加した構成である。情報設定部35a、制御部36aおよび伝送遅延時間集計部38以外の各部については説明を省略する。
情報設定部35aおよび制御部36aの動作の概要は、実施の形態1にかかる中継装置13-1および13-2の情報設定部35および制御部36と同様であるが、動作の詳細が一部異なる。情報設定部35aおよび制御部36aの動作の詳細については後述する。
伝送遅延時間集計部38は、中継装置13a-1および13a-2における伝送遅延時間の情報を収集し、収集した情報に基づいて、親局装置12から子局装置14aまでの通信経路におけるフレームの伝送遅延時間を算出する。
図15は、実施の形態2にかかる子局装置14aの構成例を示す図である。子局装置14aは、実施の形態1にかかる子局装置14から伝送遅延時間集計部45を削除し、制御部43を制御部43aに置き換えた構成である。制御部43a以外の各部については説明を省略する。
制御部43aの動作の概要は、実施の形態1にかかる子局装置14の制御部43と同様であるが、動作の詳細が一部異なる。制御部43aの動作の詳細については後述する。
つづいて、通信システム100a内を伝送されるフレームの伝送遅延時間をフレームの優先度ごとに測定する動作について説明する。
図16は、実施の形態2にかかる通信システム100aにおけるフレームの伝送遅延時間を測定する動作の一例を示すシーケンス図である。
図16に示すように、通信システム100aにおいても、実施の形態1にかかる通信システム100と同様に、Syncメッセージ、Follow_Upメッセージ、Delay_ReqメッセージおよびDelay_Respメッセージの4種類のPTPメッセージを親局装置12と子局装置14aとの間で送受信させることで伝送遅延時間を測定する。
[Syncメッセージの送受信動作]
Syncメッセージを送信する場合、親局装置12では、時刻同期管理部22が、Syncメッセージを生成するよう制御部23に指示を行う。このとき、時刻同期管理部22は、Syncメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグなし、補正フィールド値=0、時刻=T1のフレーム生成を指示する情報も制御部23に通知する。
時刻同期管理部22により指示を受けた制御部23は、指示内容に従ったSyncメッセージを生成して送信部25に出力する。送信部25は、制御部23から受け取ったSyncメッセージを中継装置13a-1へ送信する(図16のステップS131)。
親局装置12から送信されたSyncメッセージが中継装置13a-1に到着すると、中継装置13a-1は、Syncメッセージが格納されたフレームに対し、PCP値を設定したVLANタグを付与して中継装置13a-2へ転送する(図16のステップS132)。PCP値には、設定可能な範囲のいずれの値を設定してもよいが、以下では、一例として、フレームに設定するPCP値を「7」とする場合について説明する。後述するFollow_Upメッセージ、Delay_ReqメッセージおよびDelay_Respメッセージの送受信動作においても同様に、フレームに設定するPCP値を「7」とする。なお、図16では、PCP値を一般化してnと記載している。
Syncメッセージが格納されたフレームを転送するときの中継装置13a-1の動作について説明する。
図17は、実施の形態2にかかる中継装置13a-1がSyncメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13a-2がSyncメッセージを中継する場合の動作の一例をフローチャートで示す場合も図17となる。
図17では、実施の形態1にかかる中継装置13-1および13-2の動作例を示す図8のフローチャートと共通の処理に同一のステップ番号を付している。
中継装置13a-1では、第1受信部31がSyncメッセージを受信し(ステップS11)、時刻同期管理部37がSyncメッセージの受信時刻として現在時刻τ1を保持する(ステップS12)。図16に示す例では、中継装置13a-1の第1受信部31がSyncメッセージを受信する時刻がt1である。そのため、ステップS12において、時刻同期管理部37は、τ1=t1を保持する。
次に、情報設定部35aが、Syncメッセージの送信元が親局装置12か否かを確認し(ステップS13)、送信元が親局装置12ではない場合、すなわち、他の中継装置である場合(ステップS13:No)、ステップS85に進む。
一方、Syncメッセージの送信元が親局装置12の場合(ステップS13:Yes)、情報設定部35aが、Syncメッセージが格納されたフレームにPCP値を7としたVLANタグ付与する(ステップS84)。中継装置13a-1の場合、Syncメッセージの送信元が親局装置12であるため、ステップS13につづいてステップS84を実行し、情報設定部35aがフレームにPCP値を7としたVALNタグを付与する。なお、PCP値を7以外とする場合の中継装置13a-1および13a-2の動作フローはPCP値を7とする場合の動作フローと同じである。そのため、図17では、設定するPCP値を一般化してnと記載している。
Syncメッセージの送信元が親局装置12ではない場合(ステップS13:No)、および、ステップS84でフレームにVLANタグを付与した場合、情報設定部35aは、Syncメッセージの宛先が子局装置14aか否かを確認する(ステップS85)。ここでの宛先とは、Syncメッセージを送信する相手先の装置であり、中継装置13a-1の場合は中継装置13a-2が宛先となる。また、中継装置13a-2の場合は子局装置14aが宛先となる。宛先が子局装置14aではない場合、すなわち、他の中継装置である場合(ステップS85:No)、ステップS15に進む。一方、Syncメッセージの宛先が子局装置14aの場合(ステップS85:Yes)、情報設定部35aは、Syncメッセージが格納されたフレームからVLANタグを削除する(ステップS86)。
Syncメッセージの宛先が子局装置14aではない場合(ステップS85:No)、および、ステップS86でVLANタグを削除した場合、時刻同期管理部37がSyncメッセージの送信時刻として現在時刻τ2を保持し(ステップS15)、第2送信部34がSyncメッセージを送信し(ステップS16)、動作終了となる。中継装置13a-1の場合、Syncメッセージの宛先が子局装置14aではないため、ステップS85を実行後にステップS15に進む。図16に示す例では、中継装置13a-1の第2送信部34がSyncメッセージを送信する時刻がt2である。そのため、中継装置13a-1の時刻同期管理部37は、ステップS15において、τ2=t2を保持する。
中継装置13a-1から送信されたSyncメッセージが中継装置13a-2に到着すると、中継装置13a-2は、Syncメッセージが格納されたフレームからVLANタグを削除してフレームを子局装置14aへ転送する(図16のステップS133)。このときの中継装置13a-2の動作について説明する。
中継装置13a-1からSyncメッセージが到着した場合の中継装置13a-2の動作は、図17のステップS11~S13、S85、S86、S15およびS16で示される。すなわち、中継装置13a-2では、第1受信部31がSyncメッセージを受信し、Syncメッセージを受信した時の現在時刻τ1を時刻同期管理部37が保持し、情報設定部35aが、Syncメッセージが格納されたフレームからVLANタグを削除する。そして、Syncメッセージを送信する時の現在時刻τ2を時刻同期管理部37が保持し、第2送信部34がSyncメッセージを送信する。図16に示す例では、中継装置13a-2がSyncメッセージを受信する時刻がt3、Syncメッセージを送信する時刻がt4である。そのため、中継装置13a-2の時刻同期管理部37は、Syncメッセージの受信時刻としてτ1=t3を保持し、送信時刻としてτ2=t4を保持する。
中継装置13a-2から送信されたSyncメッセージが子局装置14aに到着すると、子局装置14aは、Syncメッセージを受信した時刻を保持する。具体的には、子局装置14aでは、受信部41がSyncメッセージを受信し、制御部43aが、時刻同期管理部44にSyncメッセージを受信したことを通知する。時刻同期管理部44は、制御部43aから通知を受けたときに内部時計が指している時刻、すなわち、Syncメッセージを受信した時刻を、T2として保持する。また、時刻同期管理部44は、Syncメッセージに記載されているT1を保持する。上述したように、T1は、親局装置12がSyncフレームを送信した時刻である。
[Follow_Upメッセージの送受信動作]
Follow_Upメッセージを送信する場合、親局装置12では、時刻同期管理部22が、Follow_Upメッセージを生成するよう制御部23に指示を行う。このとき、時刻同期管理部22は、Follow_Upメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグなし、補正フィールド値=0のフレーム生成を指示する情報も制御部23に通知する。
時刻同期管理部22により指示を受けた制御部23は、指示内容に従ったFollow_Upメッセージを生成して送信部25に出力する。送信部25は、制御部23から受け取ったFollow_Upメッセージを中継装置13a-1へ送信する(図16のステップS134)。
親局装置12から送信されたFollow_Upメッセージが中継装置13a-1に到着すると、中継装置13a-1は、Follow_Upメッセージの補正フィールド値の更新を行い、また、Follow_Upメッセージが格納されたフレームに対し、PCP値を設定したVLANタグを付与して中継装置13a-2へ転送する(図16のステップS135)。このときの中継装置13a-1の動作について説明する。
図18は、実施の形態2にかかる中継装置13a-1がFollow_Upメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13a-2がFollow_Upメッセージを中継する場合の動作の一例をフローチャートで示す場合も図18となる。
図18では、実施の形態1にかかる中継装置13-1および13-2の動作例を示す図9のフローチャートと共通の処理に同一のステップ番号を付している。
中継装置13a-1では、第1受信部31がFollow_Upメッセージを受信し(ステップS21)、時刻同期管理部37がFollow_Upメッセージの補正フィールドの値に対し、Syncメッセージを中継した時のSyncメッセージの滞留時間(τ2-τ1)を加算する(ステップS22)。図16に示す例では、中継装置13a-1におけるSyncメッセージの滞留時間はt2-t1である。そのため、ステップS22において、時刻同期管理部37は、t2-t1を補正フィールドの値に加算する。
次に、伝送遅延時間集計部38が、Follow_Upメッセージの補正フィールドの値(t2-t1)を下りフレームの滞留時間の合計値としてVLANタグのPCP値(n=7)と関連付けて保持する(ステップS93)。なお、PCP値を7以外とする場合の中継装置13a-1および13a-2の動作フローは、PCP値を7とする場合の動作フローと同じであるため、図18では、VLANタグのPCP値を一般化してnと記載している。
次に、情報設定部35aが、Follow_Upメッセージの送信元が親局装置12か否かを確認し(ステップS94)、送信元が親局装置12ではない場合、すなわち、他の中継装置である場合(ステップS94:No)、ステップS96に進む。一方、Follow_Upメッセージの送信元が親局装置12の場合(ステップS94:Yes)、情報設定部35aは、Follow_Upメッセージが格納されたフレームにPCP値を7としたVLANタグを付与する(ステップS95)。中継装置13a-1の場合、Follow_Upメッセージの送信元が親局装置12であるため、ステップS94につづいてステップS95を実行し、情報設定部35aがフレームにPCP値を7としたVLANタグを付与する。
Follow_Upメッセージの送信元が親局装置12ではない場合(ステップS94:No)、および、ステップS95でフレームにVLANタグを付与した場合、情報設定部35aは、Follow_Upメッセージの宛先が子局装置14aか否かを確認する(ステップS96)。ここでの宛先とは、上述のSyncメッセージの宛先と同様に、Follow_Upメッセージを送信する相手先の装置である。宛先が子局装置14aではない場合、すなわち、他の中継装置である場合(ステップS96:No)、ステップS98に進む。一方、Follow_Upメッセージの宛先が子局装置14aの場合(ステップS96:Yes)、情報設定部35aは、Follow_Upメッセージが格納されたフレームからVLANタグを削除する(ステップS97)。中継装置13a-1の場合、Follow_Upメッセージの宛先が子局装置14aではないため、ステップS96を実行後にステップS98に進む。
Follow_Upメッセージの宛先が子局装置14aではない場合(ステップS96:No)、および、ステップS97でフレームからVLANタグを削除した場合、第2送信部34がFollow_Upメッセージを送信し(ステップS98)、動作終了となる。中継装置13a-1の場合、ステップS97を実行することなく、ステップS98で第2送信部34がFollow_Upメッセージを中継装置13a-2へ送信する。
中継装置13a-1から送信されたFollow_Upメッセージが中継装置13a-2に到着すると、中継装置13a-2は、Follow_Upメッセージの補正フィールド値の更新を行い、また、Follow_UpメッセージからVLANタグを削除して子局装置14aへ転送する(図16のステップS136)。このときの中継装置13a-2の動作について説明する。
中継装置13a-1からFollow_Upメッセージが到着した場合の中継装置13a-2の動作は、図18のステップS21、S22、S93、S94、S96~S98で示される。すなわち、中継装置13a-2では、第1受信部31がFollow_Upメッセージを受信し、時刻同期管理部37がFollow_Upメッセージの補正フィールド値に対し、Syncメッセージの滞留時間(τ2-τ1)を加算する。図16に示す例では、中継装置13a-2におけるSyncメッセージの滞留時間はt4-t3である。そのため、時刻同期管理部37は、t4-t3を補正フィールドの値に加算する。次に、伝送遅延時間集計部38がFollow_Upメッセージの補正フィールド値((t2-t1)+(t4-t3))を下りフレームの滞留時間の合計値としてPCP値(n=7)と関連付けて保持する。そして、情報設定部35aがFollow_UpメッセージからVLANタグを削除し、第2送信部34がFollow_Upメッセージを子局装置14aへ送信する。
中継装置13a-2から送信されたFollow_Upメッセージが子局装置14aに到着すると、受信部41がFollow_Upメッセージを受信する。
[Delay_Reqメッセージの送受信動作]
Delay_Reqメッセージを送信する場合、子局装置14aでは、時刻同期管理部44が、Delay_Reqメッセージを生成するよう制御部43aに指示を行う。このとき、時刻同期管理部44は、Delay_Reqメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグなしのフレーム生成を指示する情報も制御部43に通知する。また、時刻同期管理部44は、制御部43aにDelay_Reqメッセージの生成を指示した時点で内部時計が指す時刻T3を保持する。
時刻同期管理部44により指示を受けた制御部43aは、指示内容に従ったDelay_Reqメッセージを生成して送信部42に出力する。送信部42は、制御部43aから受け取ったDelay_Reqメッセージを中継装置13a-2へ送信する(図16のステップS137)。
子局装置14aから送信されたDelay_Reqメッセージが中継装置13a-2に到着すると、中継装置13a-2は、Delay_Reqメッセージが格納されたフレームに対し、PCP値を設定したVLANタグを付与して中継装置13a-1へ転送する(図16のステップS138)。このときの中継装置13a-2の動作について説明する。
図19は、実施の形態2にかかる中継装置13a-2がDelay_Reqメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13a-1がDelay_Reqメッセージを中継する場合の動作の一例をフローチャートで示す場合も図19となる。
図19では、実施の形態1にかかる中継装置13-1および13-2の動作例を示す図10のフローチャートと共通の処理に同一のステップ番号を付している。
中継装置13a-2では、第2受信部33がDelay_Reqメッセージを受信し(ステップS31)、時刻同期管理部37がDelay_Reqメッセージの受信時刻として現在時刻τ3を保持する(ステップS32)。図16に示す例では、中継装置13a-2の第2受信部33がSyncメッセージを受信する時刻がt5である。そのため、ステップS32において、時刻同期管理部37は、τ3=t5を保持する。
次に、情報設定部35aが、Delay_Reqメッセージの送信元が子局装置14aか否かを確認し(ステップS33)、送信元が子局装置14aではない場合、すなわち、他の中継装置である場合(ステップS33:No)、ステップS105に進む。一方、Delay_Reqメッセージの送信元が子局装置14aの場合(ステップS33:Yes)、情報設定部35aは、Delay_Reqメッセージが格納されたフレームにPCP値を7としたVLANタグを付与する(ステップS104)。中継装置13a-2の場合、Delay_Reqメッセージの送信元が子局装置14aであるため、ステップS33につづいてステップS104を実行し、情報設定部35aが、フレームにPCP値を7としたVALNタグを付与する。なお、PCP値を7以外とする場合の中継装置13a-1および13a-2の動作フローは、PCP値を7とする場合の動作フローと同じであるため、図19では、VLANタグのPCP値を一般化してnと記載している。
Delay_Reqメッセージの送信元が子局装置14aではない場合(ステップS33:No)、および、ステップS104でフレームにVLANタグを付与した場合、情報設定部35aは、Delay_Reqメッセージの宛先が親局装置12か否かを確認する(ステップS105)。ここでの宛先とは、上述のSyncメッセージの宛先と同様に、Delay_Reqメッセージを送信する相手先の装置である。中継装置13a-2の場合は中継装置13a-1が宛先となる。また、中継装置13a-1の場合は親局装置12が宛先となる。宛先が親局装置12ではない場合(ステップS105:No)、ステップS35に進む。一方、Delay_Reqメッセージの宛先が親局装置12の場合(ステップS105:Yes)、情報設定部35aは、Delay_Reqメッセージが格納されたフレームからVLANタグを削除する(ステップS106)。中継装置13a-2の場合、Delay_Reqメッセージの宛先が親局装置12ではないため、ステップS105を実行後にステップS35に進む。
Delay_Reqメッセージの宛先が親局装置12ではない場合(ステップS105:No)、および、ステップS106でフレームからVLANタグを削除した場合、時刻同期管理部37がDelay_Reqメッセージの送信時刻として現在時刻τ4を保持し(ステップS35)、第1送信部32がDelay_Reqメッセージを送信し(ステップS36)、動作終了となる。中継装置13a-2の第1送信部32は、ステップS36でDelay_Reqメッセージを中継装置13a-1へ送信する。図16に示す例では、中継装置13a-2の第1送信部32がDelay_Reqメッセージを送信する時刻がt6である。そのため、ステップS35において、時刻同期管理部37は、τ4=t6を保持する。
中継装置13a-2から送信されたDelay_Reqメッセージが中継装置13a-1に到着すると、中継装置13a-1は、Delay_ReqメッセージからVLANタグを削除して親局装置12へ転送する(図16のステップS139)。このときの中継装置13a-1の動作について説明する。
中継装置13a-2からDelay_Reqメッセージが到着した場合の中継装置13a-1の動作は、図19のステップS31~S33、S105、S106、S35およびS36で示される。すなわち、中継装置13a-1では、第2受信部33がDelay_Reqメッセージを受信し、Delay_Reqメッセージを受信した時の現在時刻τ3を時刻同期管理部37が保持する。次に、情報設定部35aが、Delay_ReqメッセージからVLANタグを削除し、Delay_Reqメッセージを送信する時の現在時刻τ4を時刻同期管理部37が保持し、第1送信部32がDelay_Reqメッセージを送信する。図16に示す例では、中継装置13a-1がDelay_Reqメッセージを受信する時刻がt7、Delay_Reqメッセージを送信する時刻がt8である。そのため、中継装置13a-1の時刻同期管理部37は、Delay_Reqメッセージの受信時刻としてτ3=t7を保持し、送信時刻としてτ4=t8を保持する。
中継装置13a-1から送信されたDelay_Reqメッセージが親局装置12に到着すると、親局装置12は、Delay_Reqメッセージを受信した時刻を保持する。具体的には、親局装置12では、受信部24がDelay_Reqメッセージを受信し、制御部23が、時刻同期管理部22にDelay_Reqメッセージを受信したことを通知する。時刻同期管理部22は、制御部23から通知を受けたときに内部時計が指している時刻、すなわち、Delay_Reqメッセージを受信した時刻を、T4として保持する。
[Delay_Respメッセージの送受信動作]
Delay_Respメッセージを送信する場合、親局装置12では、時刻同期管理部22が、Delay_Respメッセージを生成するよう制御部23に指示を行う。このとき、時刻同期管理部22は、Delay_Respメッセージを送信するフレームの構成に関する情報、具体的には、VLANタグなし、補正フィールド値=0、時刻T4のフレーム生成を指示する情報も制御部23に通知する。
時刻同期管理部22により指示を受けた制御部23は、指示内容に従ったDelay_Respメッセージを生成して送信部25に出力する。送信部25は、制御部23から受け取ったDelay_Respメッセージを中継装置13a-1へ送信する(図16のステップS140)。
親局装置12から送信されたDelay_Respメッセージが中継装置13a-1に到着すると、中継装置13a-1は、Delay_Respメッセージの補正フィールド値の更新を行い、また、Delay_Respメッセージが格納されたフレームに対し、PCP値を設定したVLANタグを付与して中継装置13a-2へ転送する(図16のステップS141)。このときの中継装置13a-1の動作について説明する。
図20は、実施の形態2にかかる中継装置13a-1がDelay_Respメッセージを中継する動作の一例を示すフローチャートである。なお、中継装置13a-2がDelay_Respメッセージを中継する場合の動作の一例をフローチャートで示す場合も図20となる。
中継装置13a-1では、第1受信部31がDelay_Respメッセージを受信し(ステップS41)、時刻同期管理部37がDelay_Respメッセージの補正フィールドの値に対し、Delay_Reqメッセージを中継した時のDelay_Reqメッセージの滞留時間(τ4-τ3)を加算する(ステップS42)。図16に示す例では、中継装置13a-1におけるDelay_Reqメッセージの滞留時間はt8-t7である。そのため、ステップS42において、時刻同期管理部37は、t8-t7を補正フィールドの値に加算する。
次に、時刻同期管理部37が、Delay_Respメッセージの補正フィールドの値(t8-t7)を上りフレームの滞留時間の合計値としてVLANタグのPCP値(n=7)と関連付けて保持する(ステップS113)。なお、PCP値を7以外とする場合の中継装置13a-1および13a-2の動作フローは、PCP値を7とする場合の動作フローと同じであるため、図20では、VLANタグのPCP値を一般化してnと記載している。
次に、情報設定部35aが、Delay_Respメッセージの送信元が親局装置12か否かを確認し(ステップS114)、送信元が親局装置12ではない場合、すなわち、他の中継装置である場合(ステップS114:No)、ステップS116に進む。一方、Delay_Respメッセージの送信元が親局装置12の場合(ステップS114:Yes)、情報設定部35aは、Delay_Respメッセージが格納されたフレームにPCP値を7としたVLANタグを付与する(ステップS115)。中継装置13a-1の場合、Delay_Respメッセージの送信元が親局装置12であるため、ステップS114につづいてステップS115を実行し、情報設定部35aがフレームにPCP値を7としたVALNタグを付与する。
Delay_Respメッセージの送信元が親局装置12ではない場合(ステップS114:No)、および、ステップS115でフレームにVLANタグを付与した場合、情報設定部35aは、Delay_Respメッセージの宛先が子局装置14aか否かを確認する(ステップS116)。ここでの宛先とは、上述のSyncメッセージの宛先と同様に、Delay_Respメッセージを送信する相手先の装置である。宛先が子局装置14aではない場合、すなわち、他の中継装置である場合(ステップS116:No)、ステップS118に進む。一方、Delay_Respメッセージの宛先が子局装置14aの場合(ステップS116:Yes)、情報設定部35aは、Delay_Respメッセージが格納されたフレームからVLANタグを削除する(ステップS117)。中継装置13a-1の場合、Delay_Respメッセージの宛先が子局装置14aではないため、ステップS116を実行後にステップS118に進む。
Delay_Respメッセージの宛先が子局装置14aではない場合(ステップS116:No)、および、ステップS117でフレームからVLANタグを削除した場合、第2送信部34がDelay_Respメッセージを送信する(ステップS118)。中継装置13a-1の第2送信部34は、ステップS118でDelay_Respメッセージを中継装置13a-2へ送信する。
次に、情報設定部35aが、PCP値(n)を1減算し(ステップS119)、1を減算後のnが0未満では無い場合(ステップS120:No)、処理を終了する。1を減算後のnが0未満の場合(ステップS120:Yes)、情報設定部35aはnを7に変更し(ステップS121)、動作を終了する。ここでは、PCP値=7のため、ステップS121を実行せずに動作終了となる。
中継装置13a-1から送信されたDelay_Respメッセージが中継装置13a-2に到着すると、中継装置13a-2は、Delay_Respメッセージの補正フィールド値の更新を行い、また、Delay_RespメッセージからVLANタグを削除して子局装置14aへ転送する(図16のステップS142)。このときの中継装置13a-2の動作について説明する。
中継装置13a-1からDelay_Respメッセージが到着した場合の中継装置13a-2の動作は、図20のステップS41、S42、S113,S114、S116~S120で示される。すなわち、中継装置13a-2では、第1受信部31がDelay_Respメッセージを受信し、時刻同期管理部37がDelay_Respメッセージの補正フィールド値に対し、Delay_Reqメッセージの滞留時間(τ4-τ3)を加算する。図16に示す例では、中継装置13a-2におけるDelay_Reqメッセージの滞留時間はt6-t5である。そのため、時刻同期管理部37は、t6-t5を補正フィールドの値に加算する。次に、時刻同期管理部37がDelay_Respメッセージの補正フィールド値((t8-t7)+(t6-t5))を上りフレームの滞留時間の合計値としてPCP値(n=7)と関連付けて保持する。そして、情報設定部35aがDelay_RespメッセージからVLANタグを削除し、第2送信部34がDelay_Respメッセージを子局装置14aへ送信する。また、情報設定部35aがPCP値(n)を1減算する。
中継装置13a-2から送信されたDelay_Respメッセージが子局装置14aに到着すると、子局装置14aは、Delay_Respメッセージに記載されている補正フィールドの値および時刻情報(T4)を保持する。具体的には、子局装置14aでは、受信部41がDelay_Respメッセージを受信し、制御部43aが、時刻同期管理部44にDelay_Respメッセージを受信したことを通知する。時刻同期管理部44は、Delay_Respメッセージに記載されている補正フィールドの値((t8-t7)+(t6-t5))および時刻情報(T4)を保持する。
以上のSyncメッセージ、Follow_Upメッセージ、Delay_ReqメッセージおよびDelay_Respメッセージの送受信動作を行うことにより、親局装置12から子局装置14aまでの通信経路における伝送遅延である平均経路遅延の計算が可能となる。
平均経路遅延は、子局装置14aの時刻同期管理部44において計算される。平均経路遅延の算出方法は実施の形態1と同様である。また、時刻同期管理部44は、平均経路遅延を用いて、親局装置12の時刻からの子局装置14aの時刻のずれである、子局装置時刻差を計算する。子局装置時刻差の算出方法は実施の形態1と同様である。
子局装置14aに隣接している中継装置13a-2の伝送遅延時間集計部38では、PCP値=7のときの下り方向のフレームの中継装置13a-1及び13a-2の滞留時間の合計値((t2-t1)+(t4-t3))と、PCP値=7のときの上りフレームの中継装置13a-1及び13a-2の滞留時間の合計値((t8-t7)+(t6-t5))とを保持していることになる。
上記の動作を、中継装置13a-1または13a-2がフレームを転送する際に設定するPCP値を変更して実行することで、各PCP値のときの上り方向及び下り方向のフレームの伝送遅延時間を中継装置13a-2の伝送遅延時間集計部38が算出して保持することができる。
上記の動作について、測定対象キューへキューイングするために、PCP値を0~7まで(昇順)、もしくはランダム順に変更して繰り返し実行してもよい。
また、上記の動作について、SyncメッセージとDelay_RespとでPCP値を付与する順序を変えて実行してもよい。このとき、Follow_Upメッセージに付与(設定)するPCP値は直前のSyncメッセージに設定されているPCP値と同一とし、Delay_Respに付与(設定)するPCP値は直前のDelay_Reqメッセージに設定されているPCP値と同一とする。
同じPCP値について複数回測定することもできる。複数回測定したときの処理方法としては複数回の測定結果について、平均値、最大値、最小値を代表値とすることも可能であり、直近の測定結果のほうを重くもしくは軽く評価する加重平均をとり代表値としてもよい。
上記の動作の伝送遅延時間と対応付けるものとして、VLANタグのPCP値の代わりに、もしくは同時に、フレームの特性を表すほかの要素(例えば、IPv4ヘッダのToS値、IPv6ヘッダのTraffic Class、フレーム長、フレームのペイロードの内容など)を使用し実行しても同様の結果(上り方向および下り方向のフレームの伝送遅延時間)を得ることができる。
各PTPメッセージには拡張フィールドが存在しているが、各PTPメッセージの送信時に、この拡張フィールドに、各中継装置で、自装置の滞留時間を記載し送信してもよい。このようにすることで、滞留時間の合計値だけでなくそれぞれの中継装置での滞留時間を、親局装置、他の中継装置、子局装置、または接続された他の装置に通知することが可能になる。
本実施の形態で説明した構成とした場合にも実施の形態1と同様の効果を得ることができる。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。