JP5923430B2 - 通信制御装置 - Google Patents

通信制御装置 Download PDF

Info

Publication number
JP5923430B2
JP5923430B2 JP2012223904A JP2012223904A JP5923430B2 JP 5923430 B2 JP5923430 B2 JP 5923430B2 JP 2012223904 A JP2012223904 A JP 2012223904A JP 2012223904 A JP2012223904 A JP 2012223904A JP 5923430 B2 JP5923430 B2 JP 5923430B2
Authority
JP
Japan
Prior art keywords
communication control
communication
packet
time
control devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012223904A
Other languages
English (en)
Other versions
JP2014078781A (ja
Inventor
丸山 龍也
龍也 丸山
山田 勉
山田  勉
城戸 三安
三安 城戸
吉田 昌司
昌司 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012223904A priority Critical patent/JP5923430B2/ja
Priority to US14/044,895 priority patent/US9485045B2/en
Publication of JP2014078781A publication Critical patent/JP2014078781A/ja
Application granted granted Critical
Publication of JP5923430B2 publication Critical patent/JP5923430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Description

本発明は、分散制御システムに使用される通信制御装置に関する。
分散された複数の通信制御装置から構成される制御システムにおいては、制御を実現するアプリケーションに応じて、通信制御装置間の時刻を同期することが求められる場合がある。ネットワークで接続された分散制御システムの場合は、ネットワークを介した時刻同期用パケットの送受信によって、時刻を同期することができる。
ネットワークを用いた時刻同期方式として、NTP(Network Time Protocol)、SNTP(Simple Network Time Protocol)、IEEE1588等が挙げられる。
ここで、図14、図15を用いて、IEEE1588の時刻同期プロトコルの実行手順を説明する。IEEE1588は、マスタ−スレーブ構成に適用される。
図14は、IEEE1588の時刻同期プロトコルの実行手順を説明する図である。図15は、IEEE1588におけるマスタとスレーブとの間のメッセージのやりとりを示す図である。
はじめに、マスタは、スレーブにSyncメッセージを送信する(S060)。
このとき、マスタは、Syncメッセージの送信時刻t1を記録する(S061)。
スレーブは、Syncメッセージを受信すると、その受信時刻t2を記録する(S062)。
マスタは、次のいずれかの方法で、Syncメッセージの送信時刻t1をスレーブに通知する(S063)。1つは、Syncメッセージに送信時刻t1の情報を乗せる方法である。もう1つは、Syncメッセージに続くFollow_Upメッセージに送信時刻t1の情報を乗せる方法である。
続いて、スレーブは、マスタにDelay_Reqメッセージを送信する(S064)。
このとき、スレーブはDelay_Reqメッセージの送信時刻t3を記録する(S065)。
マスタは、Delay_Reqメッセージを受信すると、その受信時刻t4を記録する(S066)。
そして、マスタは、Delay_Respメッセージに、Delay_Reqメッセージの受信時刻t4の情報を乗せ、受信時刻t4をスレーブに通知する(S067)。
Delay_Respメッセージを受信したスレーブは、時刻t1、t2、t3、t4から、マスタとスレーブ間の通信遅延と時刻の差分を計算する(S068)。
通信遅延の計算には、マスタとスレーブ間の通信遅延が往路と復路で等しいという前提がある。従って、片道の通信遅延tdは、式(1)で表わされる。
td=((t4−t3)+(t2−t1))/2 (1)
また、マスタとスレーブの時刻の差分tdiffは、式(2)で表わされる。
tdiff=((t4−t3)−(t2−t1))/2 (2)
スレーブは、このtdiffを用いて、マスタと時刻を同期する。
ネットワークが、ネットワークスイッチ等の中継装置を用いて構成されていると、時刻の同期精度が低下する。IEEE1588では、時刻同期用パケットのマスタとスレーブ間の往復の遅延が等しいか、又は往復の遅延に時間差がある場合でもその時間差が既知であるという前提に基づいている。
また、分散制御システムのように、複数の通信制御装置間でネットワークを共有する場合、ネットワークスイッチ等の中継装置内で時刻同期用パケットがキューイングされ、往復の遅延の時間差にゆらぎが生じるという課題がある。すなわち、時刻同期用パケットの遅延が往復で異なり、往復の遅延の時間差が未知であるため、IEEE1588の前提が崩れる。
非特許文献1は、end−to−end TC(Transparent Clock)やpeer−to−peer TCという仕組みを用いて、ネットワークデバイス内でのパケットの転送遅延を計測することができる。この計測した転送遅延をパケット内のデータに反映することで、往復の通信遅延の差を算出することができる。しかし、この方法を利用するには、end−to−end TCやpeer−to−peer TCの仕組みに対応したネットワークデバイスが必要である。このようなネットワークデバイスは、コストが高く、入手が容易でないため利用しづらいという課題がある。
また、特許文献1は、複数の遅延推定用パケットを所定の送信間隔で送信し、これらを受信した間隔と所定の送信間隔とを比較することで、ネットワークデバイス中のキューイング遅延を推定する。しかし、この方法では、マスタとスレーブの両方で時刻同期プロトコルを実行するので、マスタとスレーブの両方に標準規格に準拠した通信制御装置を用いることができない。このため、システムを標準規格に準拠した通信制御装置で構成することが困難となる。また、遅延推定用パケットを送信するため、時刻を同期するために用いるパケット以外のパケットの送受信量が少なくなり、システムで送受信する情報量が低下するという課題がある。
本発明は、ネットワーク中継装置を用いたネットワーク構成に利用でき、システムで送受信する情報量を低下させることなく、ネットワークで接続された他の通信制御装置と時刻を同期することが可能な通信制御装置を提供することを目的とする。
上記課題を解決するために、本発明による通信制御装置は、次のような特徴を有する。ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、前記複数の通信制御装置からの要求パケットの受信間隔を測定する受信間隔測定部と、前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定する。
本発明による通信制御装置は、ネットワーク中継装置を用いたネットワーク構成に利用でき、システムで送受信する情報量を低下させることなく、ネットワークで接続された他の通信制御装置と時刻を同期することが可能である。
本発明の実施例による通信制御装置を用いて構成する分散制御システムの例を示す図である。 本発明の実施例による通信制御装置のハードウェア構成を示す図である。 実施例1による通信制御装置の機能構成を示す図である。 パケットがネットワーク中継装置で衝突した場合の動作を示す図である。 実施例1における通信装置の機能構成を示す図である。 実施例1による通信制御装置の時刻同期処理の手順を説明する図である。 実施例2による通信制御装置の機能構成を示す図である。 実施例2によるグループ構成部を備える通信制御装置の時刻同期処理の手順を説明する図である。 実施例2によるIEEE1588規格のドメインを用いた通信装置の機能構成を示す図である。 遅延情報を基に、通信装置のグループを構成する例を示す図である。 時刻同期プロトコル以外のパケットが通信制御装置宛ではない場合の通信フローの例を示す図である。 実施例3における通信装置の機能構成を示す図である。 実施例3における通信装置の動作を示すフローチャートである。 IEEE1588の時刻同期プロトコルの実行手順を説明する図である。 IEEE1588におけるマスタとスレーブとの間のメッセージのやりとりを示す図である。 時刻同期制御装置を用いた分散制御システムの例を示す図である。 時刻同期制御装置の機能構成を示す図である。 実施例4におけるネットワーク中継装置の機能構成を示す図である。 実施例5における分散制御システムの構成を示す図である。 実施例6における分散制御システムの構成を示す図である。 実施例7における分散制御システムの構成を示す図である。 時刻同期手順以外の通信フローが、通信制御装置から通信装置へ送信された時刻同期用パケットと衝突する場合の通信フローの例を示す図である。 時刻同期に関係のない通信フローが存在する場合の通信フローの例を示す図である。 マスタとスレーブとの間のメッセージのやりとりを示す図である。
本発明による通信制御装置の実施例を、図面を用いて説明する。本発明による通信制御装置は、分散制御システムを構成し、ネットワーク中継装置を介して他の通信制御装置と接続される。以下の実施例では、着目している通信制御装置と区別するために、他の通信制御装置を便宜上「通信装置」と称する。IEEE1588のようにマスタ−スレーブ構成をとる場合、通信制御装置がマスタとなり、通信装置がスレーブとなる。NTPのようにサーバ−クライアント構成をとる場合、通信制御装置がサーバとなり、通信装置がクライアントとなる。本発明による通信制御装置は、マスタ−スレーブ構成ではサーバにもクライアントにもなることができ、サーバ−クライアント構成ではサーバにもクライアントにもなることができる。
本発明による通信制御装置は、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて、他の通信制御装置と時刻同期する。時刻同期を行うときには、他の通信制御装置からの要求パケットの衝突を検知し、検知結果に基づいて、要求パケットを送信した通信制御装置へ応答パケットを送信するか否かを決定する。
なお、以下の実施例では、時刻同期プロトコルとしてIEEE1588を実行するものとして説明する。以下の実施例で、スレーブの時刻をマスタに同期させる場合には、IEEE1588のDelay_Reqメッセージは、スレーブがマスタに時刻同期を要求するメッセージであり、Delay_Respメッセージは、マスタがスレーブに応答するメッセージである。従って、Delay_Reqメッセージのパケットが要求パケットとなり、Delay_Respメッセージのパケットが応答パケットとなる。Syncメッセージのパケットは、時刻同期を要求するための要求パケット、すなわち再要求パケットとなる。
本発明では、時刻同期プロトコルとして、NTP又はSNTPを実行してもよい。例えば、NTP又はSNTPを実行する場合には、クライアントからの要求に対してサーバが応答する。すなわち、クライアントが要求パケットをサーバに送信し、サーバは応答パケットをクライアントに送信する。
図1は、本実施例による通信制御装置120を用いて構成する分散制御システムの例を示す図である。分散制御システムは、通信制御装置120、通信装置123、ネットワーク122、及びネットワーク中継装置121から構成される。通信制御装置120と通信装置123、及び通信装置123同士は、ネットワーク122とネットワーク中継装置121を介して接続され、互いに通信する。
ネットワーク中継装置121の例としては、ネットワークスイッチ、ルータ、ゲートウェイ、及びOpenFlowにおけるOpenFlowスイッチ等が挙げられる。ネットワーク122の例としては、IEEE802.3、各種産業用ネットワーク、IEC61784、及びIEC61158等が挙げられる。
図2は、本実施例による通信制御装置120のハードウェア構成を示す図である。通信制御装置120は、CPU101、送受信機IC102、メモリ108、不揮発性記憶媒体109、及びバス110を備える。
CPU101は、不揮発性記憶媒体109からプログラムをメモリ108に転送し、このプログラムを実行する。実行するプログラムとしては、オペレーティングシステム(以下「OS」と称す)や、OS上で動作するアプリケーションプログラムを例示できる。
送受信機IC102は、ネットワーク122との通信機能を有する。送受信機IC102は、CPU101が実行するプログラムから通信要求を受け取り、ネットワーク122に対して通信する。送受信機IC102としては、IEEE802.3規格のMAC(Media Access Control)チップ、PHY(物理層)チップ、MACとPHYの複合チップ、FPGA、CPLD、ASIC、及びゲートアレイといったICを例示できる。なお、送受信機IC102は、CPU101や、コンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。
メモリ108は、CPU101が動作するための一時的な記憶領域であり、例えば、不揮発性記憶媒体109から転送されたOSやアプリケーションプログラムを格納する。
不揮発性記憶媒体109は、情報の記憶媒体であり、OS、アプリケーションプログラム、デバイスドライバ、及びCPU101を動作させるためのプログラムを保存し、プログラムの実行結果も保存する。不揮発性記憶媒体109としては、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、及びフラッシュメモリを例示できる。また、不揮発性記憶媒体109には、取り外しが容易な外部記憶媒体を用いてもよい。このような外部記憶媒体としては、例えば、フレキシブルディスク(FD)、CDやDVDなどの光ディスク、USBメモリやコンパクトフラッシュ(登録商標)などのフラッシュメモリを利用することができる。
バス110は、CPU101、送受信機IC102、メモリ108、及び不揮発性記憶媒体109を接続する。バス110としては、PCIバス、ISAバス、PCI Expressバス、システムバス、及びメモリバスを例示できる。
(通信制御装置の各機能の説明)
図3は、本発明の実施例1による通信制御装置120の機能構成を示す図である。通信制御装置120は、時刻同期処理部130、通信部131、受信間隔測定部134、及びキューイング発生判定部135を備える。
時刻同期処理部130は、時刻同期を実行する。実行する時刻同期プロトコルとしては、IEEE1588、NTP、及びSNTPが挙げられる。上述したように、本実施例では、時刻同期プロトコルとしてIEEE1588を実行するものとして説明する。ただし、NTP、又はSNTPを時刻同期プロトコルとして実行してもよい。
時刻同期処理部130は、CPU101が実行するソフトウェアで実現してもよいし、送受信機IC102をFPGAやCPLDで構成した場合のハードウェア論理として実現してもよい。又は、CPU101が実行するソフトウェアと送受信機IC102のハードウェア論理との両方で構成してもよい。この場合には、例えば、パケットの送信時刻と受信時刻の計測、又はパケットフォーマットの生成を、送受信機IC102で処理することができる。
通信部131は、送信部132と受信部133とを備え、時刻同期プロトコルにおける所定のパケットを送受信する。送信部132は、時刻同期プロトコルにおける所定のパケットを送信する。受信部133は、時刻同期プロトコルにおける所定のパケットを受信する。通信部131、送信部132、及び受信部133は、送受信機IC102による実現を例示できる。
受信間隔測定部134は、通信部131の受信部133で受信したパケットの受信間隔を測定する。受信間隔を測定するために、受信間隔測定部134は、受信部133がパケットを受信する時刻を計測する機能を有する。パケットの受信間隔は、受信部133が続けて受信した任意の2つのパケットの受信時刻の差分を計算することで測定してもよい。IEEE1588の規格に従う場合は、受信部133が受信した2つの時刻同期用パケット(例えば、Delay_Reqメッセージ)の受信時刻の差分を計算することで、パケットの受信間隔を測定してもよい。
受信間隔測定部134は、CPU101が実行するソフトウェアで実現してもよいし、送受信機IC102でハードウェアとして実現してもよい。又は、CPU101が実行するソフトウェアと送受信機IC102との組み合わせで実現してもよい。この場合には、例えば、送受信機IC102がパケットの受信時刻を計測し、CPU101が実行するソフトウェアが受信時刻の差分を求めることで、受信間隔を算出してもよい。この場合、送受信機IC102は、受信間隔を算出するための情報をCPU101に開示する。この情報は、送受信機IC102のレジスタを用いて保持してもよいし、送受信機IC102がメモリ108の所定の領域に書き込んでもよい。
キューイング発生判定部135は、ネットワーク中継装置121内のパケットバッファで時刻同期用パケットがキューイングしたかどうかを判定する。以下、ネットワーク中継装置121内のパケットバッファでパケットがキューイングして待ち時間が発生することを「衝突」と称する。
パケットが衝突したかどうかは、受信間隔測定部134で計測した実際のパケットの受信間隔Tと、パケットの通信処理時間Tp、フレーム間ギャップIFG、及びネットワーク中継装置121の通信処理時間Tsのうちの1つ又は複数の値を用いて算出した受信間隔Trとを比較することで、判定する。受信間隔Trは、パケットサイズと装置構成とから求められる値である。
任意のパケットの通信処理時間Tpは、式(3)で求まる。
Tp=Sp×8[bit/B]/Th (3)
ここで、Spはパケットサイズ(単位B)、Thは通信スループットである。例えば、64Bのパケットを100MbpsのIEEE802.3規格によるネットワーク上で送信した場合の通信処理時間Tpは、Tp=64[B]×8[bit/B]/100[Mbps]=5.12[μs]となる。
フレーム間ギャップIFGは、ネットワークで規定されるパケット間隔である。IEEE802.3規格は、フレームを通信経路上に送信後、後続のフレームを送信するまでの間隔をフレーム間ギャップ(Inter frame Gap、IFG)として規定している。フレーム間ギャップは、96bit時間と規定されており、式(4)でフレーム間ギャップIFGを求めることができる。
IFG=96[bit]/Th (4)
例えば、100MbpsのIEEE802.3規格によるネットワークでは、IFG=96[bit]/100[Mbps]=0.96[μs]である。
ネットワーク中継装置121の処理時間Tsは、個々のネットワーク中継装置121の処理内容に依存する。ネットワーク中継装置121の処理内容としては、宛先ポート情報の抽出や、ネットワーク中継装置121内でのパケットの転送処理を例示できる。ネットワーク中継装置121の処理時間Tsは、ネットワーク中継装置121のデータシートやマニュアルに記載されている値を用いてもよく、ネットワーク中継装置121の転送遅延を実験的に計測して求めた値を用いてもよい。
実験的にネットワーク中継装置121の転送遅延を計測する方法例としては、ある通信端末に2台の通信ポートを設けて、片方の通信ポートからテストパケットを送信後に、ネットワーク中継装置121を経由して、他方の通信ポートで受信させる。この時の通信遅延(例えば、パケットの先端を受信した時刻から、次のパケットの先端を送信した時刻を引く)から、式(3)によるパケットの通信処理時間Tpを引いた値が、ネットワーク中継装置121の処理時間Tsとなる。
ネットワーク中継装置121の通信処理時間Tsは、パケットサイズに比例する処理部分、着目しているパケットの前後にパケットが存在するか否か、及び管理する通信経路の情報量によって変化する可能性があるため、様々に条件を変えて、推定する必要がある。ネットワーク中継装置121の処理時間Tsを推定する方法の一例を、式(5)に示す。
Ts=A+kSp+B+mC (5)
Aは、パケット転送時にかかる固定の遅延を表す値であり、kは、パケットサイズSpに対する比例定数である。Bは、ネットワーク中継装置121のパケットバッファ中において、着目しているパケットの前にパケットが存在する場合の遅延を表す値である。Cは、通信経路の情報量、mは通信経路の情報量Cに対する比例定数である。
また、通信制御装置120と通信装置123の間に複数のネットワーク中継装置121がある場合、処理時間Tsには、通信制御装置120に隣接したネットワーク中継装置121のTsや、通信経路上のネットワーク中継装置121のTsの合計値又は最大値を用いることが例示できる。
図4は、パケットがネットワーク中継装置121で衝突した場合の動作を示す図である。バッファ142は、ネットワーク中継装置121中のパケット用のバッファである。バッファ142は、First−in First−out(FIFO)型のデータ構造とする。今、パケット140を送信処理中で、パケット141がパケット140に続いて、バッファ142内にキューイングされているとする。この時、パケット141は、バッファ142内で先行するパケット140によって送信が遅延され、待ち時間が発生している。すなわち、パケット141は、バッファ142内でパケット140と衝突している。
この時、図4で示す出力側に通信制御装置120が接続しているとする。通信制御装置120におけるパケット140とパケット141の受信間隔を見ることで、パケット141がパケット140と衝突していることを判定することができる。すなわち、パケット141とパケット140が衝突していれば、パケット140に係わる通信処理時間だけ、通信制御装置120がパケット141を受信する処理が遅延する。
パケットの先端を受信した時刻で判定すれば、衝突が発生している場合には、パケット140とパケット141の受信間隔Trは、式(6)で求められる。
Tr=Tp+IFG+Ts (6)
ここで、パケットの通信処理時間Tpは式(3)、フレーム間ギャップIFGは式(4)、ネットワーク中継装置121の処理時間Tsは式(5)で、それぞれ求めることができる。
又は、パケット140とパケット141の受信間隔Trは、ネットワーク中継装置121の処理時間Tsを省略して、式(7)で求めてもよい。ネットワーク中継装置121の処理時間Tsは、ネットワーク中継装置121の構成に応じて省略することができる。
Tr=Tp+IFG (7)
又は、パケットの後端を受信した時刻と次のパケットの先端を受信した時刻とを用いて判定すれば、衝突が発生している場合には、パケット140とパケット141の受信間隔Trは、式(8)又は式(9)で求められる。
Tr=IFG+Ts (8)
Tr=IFG (9)
式(9)では、ネットワーク中継装置121の処理時間Tsを省略している。
パケット141がパケット140と衝突していれば、ネットワーク上のパケットの量が多く、パケットの受信間隔が短くなる。衝突していなければ、ネットワーク上のパケットの量が少なくて、パケットの受信間隔が長くなる。このため、パケット141がパケット140と衝突していなければ、実際のパケットの受信間隔Tは、式(6)、式(7)、式(8)、又は式(9)で求めた受信間隔Trよりも長くなるはずである。従って、マージン(余裕度)をαとして、実際の受信間隔Tが式(10)を満たすとき、パケット141は衝突していないと判定する。
T>Tr+α (10)
マージンαは、任意の値(正の数値または零)とすることができ、予め定めておく。
(通信装置の機能構成)
図5は、本実施例による通信装置123の機能構成を示す図である。通信装置123は、時刻同期処理部130と通信部131を備える。
時刻同期処理部130は、通信制御装置120との間で時刻同期プロトコルを実行し、通信装置123の時刻を通信制御装置120の時刻と同期させる。時刻同期方式としては、NTP、SNTP、又はIEEE1588を用いることができる。IEEE1588のようにマスタ−スレーブ構成をとる場合、通信制御装置120がマスタとなり、通信装置123がスレーブとなる。
スレーブである通信装置123の時刻同期処理部130は、Delay_Respメッセージの受信後に、マスタとスレーブ間の通信遅延tdと時刻の差分tdiffを式(1)と式(2)を用いて計算する(図14のS068)。そして、時刻同期処理部130は、Syncメッセージ又はFollow_Upメッセージを受信したときに、マスタとスレーブ間の通信遅延tdと時刻の差分tdiffを用いて、通信装置123の時刻を通信制御装置120の時刻と同期させる。
通信部131は、送信部132と受信部133とを備え、時刻同期プロトコルにおける所定のパケットを送受信する。送信部132と受信部133の機能は、通信制御装置120の通信部131と同じなので、説明を省略する。
図6は、通信制御装置120の時刻同期処理の手順を説明する図である。上述したように本実施例では時刻同期プロトコルとしてIEEE1588を実行するとしているので、図6には、IEEE1588プロトコルを実行する場合の通信制御装置120の動作を示す。また、本実施例では、上述したように、通信制御装置120がIEEE1588プロトコルにおけるマスタとなる。
はじめに、通信制御装置120は、IEEE1588のマスタとなる(S001)。IEEE1588では、Best Master Clock(以下、「BMC」と称する)アルゴリズムにしたがって、通信制御装置120と各通信装置123間で情報(Announceメッセージ)をやりとりし、この情報の内容によって、マスタとなるかスレーブとなるかを決定する。本実施例では、通信制御装置120がマスタとなるように、予め通信制御装置120と各通信装置123のパラメータを設定しておく。通信制御装置120をマスタとする方法には、例えば、通信制御装置120がマスタとなるようにAnnounceメッセージをやりとりする情報の優先度を上げる方法がある。
又は、BMCアルゴリズムにおけるパラメータを特別に設定せずに、通信装置123の構成を通信制御装置120と同様にしてもよい。この場合、BMCアルゴリズムを実行した結果、マスタとなった装置を便宜上、通信制御装置120とし、スレーブとなった装置を通信装置123とする。
次に、時刻同期処理部130は、IEEE1588のプロトコルに従い、Syncメッセージをマルチキャストで通信装置123に送信する(S002)。なお、IEEE1588の仕様では、Syncメッセージの送信後にFollow_Upメッセージを送信するtwo stepモードが定義されている。本実施例では、Syncメッセージのみを送信するone stepモードを想定して説明するが、本実施例の効果は、two stepモードでもone stepモードと同様に得られる。
次に、時刻同期処理部130は、パケット(Delay_Reqメッセージ)の受信を待機する(S003)。
Delay_Reqメッセージを受信すると、通信制御装置120の受信間隔測定部134は、直前に受信したパケットとの受信間隔を測定する(S004)。なお、Delay_Reqメッセージが最初に受信したパケットである場合は、直前に受信したパケットとの受信間隔を計測できない。このため、この場合には、受信間隔を0とし、キューイング発生判定部135は衝突が発生していないと判定する。
次に、通信制御装置120のキューイング発生判定部135は、パケットの衝突が発生したかを判定する(S005)。
S005でパケットの衝突が発生したと判定した場合は、通信制御装置120の時刻同期処理部130は、衝突が発生したパケットの通信相手をメモリ108に記憶する(S006)。通信相手は、例えば、IPアドレス、又はIEEE1588上の識別可能な識別子(クロック識別子及びドメインなど)により記憶することができる。
S005でパケットの衝突が発生していないと判定した場合は、時刻同期処理部130は、Delay_Respメッセージを送信し、時刻同期プロトコルを継続する(S007)。
S006又はS007の後、時刻同期処理部130は、全ての通信相手からパケットを受信したかを判定する(S008)。全ての通信相手からパケットを受信していなければ、S003でパケット(Delay_Reqメッセージ)の受信を待機する。
S008で、全ての通信相手からパケットを受信したと判定すれば、時刻同期処理部130は、衝突が発生した通信相手があるか(S006で記憶した通信相手があるか)を判定する(S009)。なお、途中でパケットロスが発生することを考慮し、パケットを受信せずに予め定めた所定の時間が経過した場合に、S010へ進んでもよい。
S009で、パケットが衝突した通信相手があれば、ネットワーク中継装置121内でキューイングによる遅延が発生したこととなる。この場合は、通信制御装置120は、時刻同期プロトコル手順を再実行する。
この時、最初に送信したSyncメッセージと同様にマルチキャストメッセージを送信すると、再び全ての通信装置123が返信することとなる。これは、再度ネットワーク中継装置121内でパケットが衝突する可能性があるため、望ましくない。従って、パケットが衝突したと判定された通信相手とのみ通信をする必要がある。この通信を実現する方法の例としては、特定の通信相手とのみ通信するユニキャスト通信、別のマルチキャストアドレスを定義して利用する通信、VLAN機能に対応したネットワーク中継装置121を用いてVLANによるグルーピングを利用する通信が挙げられる。
これらのうちのいずれかの通信方法を利用して、パケットが衝突したと判定された通信相手とのみ通信をするように、時刻同期処理部130は、通信相手の宛先を変更する(S010)。それから、時刻同期処理部130は、パケットが衝突したと判定された通信相手に再度Syncメッセージを送信して、時刻同期プロトコルを再実行する(S002)。
S009で、パケットが衝突した通信相手がなければ、時刻同期処理部130は、パケットが衝突した通信相手の記録をクリアする(S011)。
次に、時刻同期処理部130は、終了条件を満足したかどうかを判定する(S012)。終了条件は、例えば、ユーザやシステム管理者が明示的に指示したときに終了するものとしてもよいし、システム稼働後の経過時間や時刻同期プロトコルの実行回数を用いて設定してもよい。終了条件を満足していれば、通信制御装置120は時刻同期処理を終了する。
終了条件を満足していなければ、通信制御装置120は、予め定めた所定の時間だけ待機し(S013)、時刻同期プロトコルを再度実行する(S002)。
なお、図6に示した手順では、パケットが衝突したと判定された通信相手に対して時刻同期プロトコルを再実行したが、再実行しなくてもよい。再実行しない場合は、通信制御装置120は、通信装置123との時刻同期が失敗したとして、所定の処理をとる。このような所定の処理の例としては、予め定めた所定の宛先に時刻同期が失敗したことと対象の通信装置123の識別子とを通知すること、及び所定の表示手段(例えば、通信制御装置120に接続されたモニタ、通信制御装置120に備えられたLEDランプ、又は通信制御装置120が発するアラーム音)によって、時刻同期が失敗したことを外部に通知することが挙げられる。
また、Syncメッセージを送信してから、最初のDelay_Reqメッセージを受信するまでの時間を計測し、この時間が予め定めた所定時間を超えた場合に最初のDelay_Reqメッセージのパケットに衝突が発生したと判定し、このDelay_Reqメッセージの送信相手と再度、時刻同期プロトコルを実行してもよい。所定時間は、他の通信フローを発生させずに、実験的にDelay_Reqメッセージを受信するまでの時間を計測して定めてもよい。
また、S013における待機時間は、S002でSyncメッセージを送信するタイミングが所定の周期となるように決定してもよいし、一定値でなく毎回変更してもよい。例えば、S013における待機時間は、キューイング発生判定部135が検知したDelay_Reqメッセージのパケットの衝突の回数に応じて毎回変更してもよい。S010からS002へ遷移した回数が多ければ(すなわち、パケットの衝突の回数が多ければ)、はじめに時刻同期した通信装置123は、次に同期するまでの時間が長くなり、同期せずに処理を実行する時間が長くなるため、なるべく早く時刻同期手順を実行した方がよい。S010からS002へ遷移した回数が少なければ、各通信装置123は比較的精度が高く同期されていると考えられ、待機時間を長めに設定してもよい。
以上説明したように、本実施例による通信制御装置120は、ネットワーク中継装置121を用いたネットワーク構成に利用でき、時刻同期プロトコルの応答メッセージの受信間隔によって、ネットワーク中継装置内でのパケットの衝突の有無を判定することができる。
パケットの衝突が発生した場合は、時刻同期手順を再実行し、パケットの衝突が発生しなかった場合は、そのまま時刻同期プロトコルを継続する。ネットワーク中継装置121を用いたネットワーク構成においても、時刻同期プロトコルを実現することができる。従って、ネットワークを共有した複数の通信装置間で時刻を同期させたシステムを構築することができる。また、ネットワーク中継装置を介してネットワークを中継し、延長することで、大規模な時刻同期システムを構築することができる。さらに、本実施例によれば、IEEE1588規格に準拠する通信装置123を用いて時刻同期システムを構成することができ、特殊な構成を有する通信装置123を必要としない。
実施例2では、通信制御装置120は、グループ構成部をさらに備え、通信装置123の時刻同期用パケットが衝突する確率を低減するために、複数の通信装置123をまとめたグループを活用して、時刻同期プロトコルを実行する。実施例2で用いる図面において、実施例1と同一の符号は、特に断りのない限り、実施例1で説明した機能や要素等と同一であるので、説明を省略する。
図7は、本発明の実施例2による通信制御装置120の機能構成を示す図である。実施例2による通信制御装置120は、図3に示した実施例1による通信制御装置120の構成要素を備え、さらにグループ構成部150とネットワーク構成情報記憶部151とを備える。
グループ構成部150は、ネットワーク構成の情報を基に、複数の通信装置123をグループにわけ、通信装置123のグループに識別子を付する。そして、Delay_Respメッセージの送信回数や各通信装置123との時刻同期の成否状況等に応じて、通信装置123のグループを時刻同期処理部130に通知する。例えば、時刻同期の成否状況として、時刻同期の成功回数や失敗回数、又は最後に時刻同期が成立してからの経過時間を基に、通信装置123のグループを時刻同期処理部130に通知する。
ネットワーク構成情報記憶部151は、グループ構成部150が通信装置123をグルーピングするために利用するネットワーク構成の情報を記憶する。ネットワーク構成の情報としては、ネットワークを構成する装置数、これらの装置に関する情報(装置を構成する部品の性能等)、ネットワークトポロジ、各装置までのホップ数、及び計測した各装置までの通信遅延を例示できる。
図8は、グループ構成部150を備える通信制御装置120の時刻同期処理の手順を説明する図である。図6に示した実施例1による通信制御装置120の時刻同期処理の手順との違いは、Syncメッセージの送信対象となるグループを決定する手順S020が加わったことである。また、通信相手の宛先を変更する手順S010がなく、S009の後で予め定めた所定の時間だけ待機して(S013)、S020を再度実行する点も異なる。
S020において、時刻同期処理部130は、送信対象となる通信装置123のグループをグループ構成部150に問い合わせる。問い合わせを受けたグループ構成部150は、送信対象となるグループの識別子を時刻同期処理部130に通知する。グループ構成部150は、グループの識別子ではなく、1つ又は複数の通信装置123の識別子を通知してもよい。例えば、通信制御装置120の通信相手となる通信装置123が少数(例えば、1つ)である場合は、少数の通信装置123をグルーピングしてグループを定義するよりは、通信装置123の識別子を通知する方がよい。
続くS002では、時刻同期処理部130は、S020でグループ構成部150から通知されたグループの識別子(又は通信装置123の識別子)を用いて、送信対象のグループにSyncメッセージを送信する。
グループの識別子を表現する方法の例としては、IEEE1588で定義されるドメイン、IEEE802.1QにおけるVLAN、又はIP(Internet Protocol)やIEEE802.3やその他の通信プロトコルで定義されるマルチキャストアドレスを用いる方法が挙げられる。その他、ネットワーク上での通信プロトコルに基づいて複数の通信端末間と通信可能な方法であればよい。
図9は、IEEE1588規格のドメインを用いた通信装置123の機能構成を示す図である。実施例2における通信装置123は、図5に示した実施例1における通信装置123の構成要素を備え、さらに同期時刻選択部161を備える。IEEE1588では、ドメインを用いてプロトコル上の操作やタイムスケールを独立して定義可能である。本実施例では、通信装置123内でドメインごとに同期時刻を管理する。このため、同期時刻選択部161は、複数の同期時刻160から1つを選択する。
同期時刻選択部161が同期時刻160を選択する基準は、同期時刻160の識別子、同期時刻プロトコルの実行状況、又は該当するドメインのIEEE1588のマスタの属性(時刻精度等)とすることができる。例えば、同期時刻プロトコルの実行頻度の多いドメインの同期時刻160、又はマスタの時刻精度が最も高いドメインの同期時刻160を選択することができる。
1つの通信装置123内にドメインを多重化して通信制御装置120と通信する方法は、ネットワーク中継装置121の経路制御情報で構成する(例えば、ドメインごとに経路を切り替える)方法でもよいし、通信装置123内でIEEE1588パケット上のドメイン番号を識別する方法でもよい。
IEEE802.1QにおけるVLANを用いてグループを識別する方法を説明する。複数の通信装置123のうちの1つ又は複数と通信制御装置120とによって構成するVLANを、定義するグループの数だけ定義する。
時刻同期処理部130は、図8に示したS002において、S020でグループ構成部150から通知されたVLANの識別子(VID)をVLAN用のタグに設定して、Syncメッセージを送信する。
この場合、ネットワーク中継装置121には、VLAN機能に対応したものを用いる。加えて、図8の手順を実行する前に、予め、各ネットワーク中継装置121にVLANのグルーピングを設定する。
又は、IPやIEEE802.3におけるマルチキャストアドレスを用いてグループを構成してもよい。この場合には、グループごとにマルチキャストアドレスを定義し、マルチキャストアドレスを実現する上で必要な設定を、IGMP(Internet Group Management Protocol)等を用いて、ネットワーク中継装置121、通信装置123、及び通信制御装置120に対して実施する。
次に、グループ構成部150におけるグループ構成方法の例について説明する。グループ構成は、なるべくネットワーク中のネットワーク中継装置121内におけるパケットの衝突確率が低くなることが望ましい。
例えば、通信制御装置120とネットワーク中継装置121間の通信遅延や、通信制御装置120と各通信装置123間の通信遅延を基準に、グループを構成する方法を用いることができる。事前のシステム構築の準備段階において、通信制御装置120と各通信装置123間で、1対1でIEEE1588等の時刻同期プロトコルを実行すれば、既に述べた図15に示す手順で通信遅延を求めることができる。
又は、ネットワークの構成に基づいてグループを構成してもよい。例えば、通信制御装置120と通信装置123との間にあるネットワーク中継装置121の数や性能、ネットワーク中継装置121間の通信性能、ネットワークの通信性能、又はネットワークメディアに基づいて、グループを構成することができる。ネットワーク中継装置121間の通信性能の例としては、IEEE802.3の通信スループット(10Mbps、100Mbps、又は1Gbps等)、有線通信か無線通信かという通信媒体の種類、及び通信規格の種類が挙げられる。
上記のように、遅延情報やネットワークの構成に基づき、各通信装置123をグルーピングするための指標を求めることができる。この指標に基づき、予め定めた所定のグループ数になり、かつ、同じ指標を持つ通信装置123が異なるグループにわかれるように、通信装置123のグループを構成すればよい。例えば、同じ通信遅延時間を持つ通信装置123が異なるグループにわかれるように、通信装置123のグループを構成する。
図10は、遅延情報を基に、通信装置のグループを構成する例を示す図である。図10に示す分散制御システムでは、通信制御装置120と6個の通信装置123a〜123fが、ネットワーク中継装置121を介してネットワーク122に接続されている。
各通信装置123a〜123fと通信制御装置120との通信遅延時間を、各々1ms、2ms、2ms、3ms、3ms、及び3msとする。通信装置を通信装置に付けた符号123a〜123fで表し、グループ数を3とすると、通信装置のグループ構成の一例は、(123a,123c,123d)、(123b、123e)、及び(123f)である。グループ数を2とすると、グループ構成の一例は、(123a,123c,123d)、及び(123b,123e,123f)である。ただし、この場合には、通信装置123dと通信装置123eは、返信パケットが衝突する確率が高まり、一方に対して再同期手順を実行することが予想される。
また、グループ構成の別の方法としては、前回の通信結果やDelay_Respメッセージの送信履歴に基づいてグループを構成してもよい。例えば、前回の時刻同期手順において時刻同期用パケットが衝突したと判定した通信装置123を時系列順に並べた列を作り、この列から通信装置123を1つおきに選択する方法がある。又は、前回の時刻同期手順の結果、時刻同期ができなかった残りの通信装置123の数が予め定めた所定数以下の場合、この残りの通信装置123の中から予め定めた所定数の通信装置123を選択してグルーピングする方法でもよい。システムが対応可能であれば、通信装置123ごとに同期処理を実行した方が容易だからである。
又は、図10を用いて例示した遅延情報に基づいてグループを構成する方法と、前回の時刻同期手順の結果に基づいてグループを構成する方法とを組み合わせてもよい。例えば、図10を用いて例示したグループ構成方法で構成したグループ候補から、前回の結果に基づいて構成したグループにおける通信装置123群を全て含んだグループを、時刻同期処理部130に通知してもよい。この方法では、例えば、時刻同期ができなかった通信装置が通信装置123b、123fであり、既に時刻同期が成立した通信装置が通信装置123eである場合であっても、(123b,123e,123f)のグループを通知することができる。
通信装置123のグループを構成する(通信装置123をグルーピングする)タイミングは、時刻同期通信やシステムアプリケーションに関する実稼働時前の準備段階でもよいし、システム稼働中に入手可能な情報に応じて決める動的なタイミングでもよい。
なお、時刻同期手順以外の通信フローが存在する場合、各パケットの受信間隔が変化する可能性がある。この場合は、時刻同期手順以外の通信フローに関する情報をネットワーク構成情報記憶部151で保持することにより、キューイング発生判定部115は、ネットワーク中継装置121内のパケットの衝突を判定することができる。
時刻同期プロトコル以外のパケットが通信制御装置120宛である場合は、時刻同期プロトコル以外のパケットと時刻同期用のパケットとの受信間隔を求める際には、式(3)と式(5)において、パケットサイズSpを時刻同期プロトコル以外のパケットのパケットサイズとする。式(8)と式(9)のように、パケットの後端を受信した時刻と次のパケットの先端を受信した時刻とを用いて受信間隔を求める場合は、データサイズに影響はない。
図11は、時刻同期プロトコル以外のパケットが通信制御装置120宛ではない場合の通信フローの例を示す図である。図11に示すように、通信装置123bから通信制御装置120へ時刻同期プロトコルの通信フロー170があり、通信装置123cから通信装置123aへ時刻同期プロトコル以外の通信フロー171があるとする。さらに、通信制御装置120と通信装置123aは、時刻が同期しているものとする。なお、図11では、ネットワーク中継装置に121a、121bと異なる符号を付けている。
通信フロー170のパケットは、ネットワーク中継装置121a、121bにおいて、通信フロー171のパケットと衝突する可能性がある。このパケットの衝突によって、通信フロー170のパケットがネットワーク中継装置121a、121bでどれだけ遅延したかを推定することは、従来技術では難しいが、本実施例では可能である。この遅延の推定は、通信装置123aと通信制御装置120を同期させた上で、通信装置123aにおける通信フロー171のパケットの受信時刻を取得することにより、可能である。
通信制御装置120は、通信フロー170のパケットを受信した際に、通信装置123aに対して、通信フロー171のパケットを受信していないかを問い合わせる。受信している場合は、受信時刻を問い合わせる。通信装置123aが通信フロー171のパケットを受信しており、このパケットの受信時刻と通信制御装置120における時刻同期用パケットの受信時刻との差を式(10)の受信間隔Tとしたときに、この受信間隔Tが式(10)を満たす場合には、衝突が発生したとして時刻同期手順を再実行する。
このように、パケットを受信するのが異なる装置(通信制御装置120と通信装置123a)であっても、異なる装置間での2つのパケットの受信間隔を求めて、衝突が発生したか否かを推定することが可能である。
なお、通信制御装置120が通信装置123aに問い合わせを実行する条件は、時刻同期用パケットを受信したときであり、受信したときの毎回でもよいし、受信したときのうち前のパケットとの受信間隔が予め定めた所定値よりも大きい場合でもよい。又は、時刻同期用パケット中の時刻情報を基に、問い合わせを実行するか否かを判断してもよい。通信装置123と通信制御装置120が同期された後であれば、通信制御装置120においても同期対象との通信遅延を推定することができ、現在までの平均値よりも推定した値が大きい場合は、通信フロー171との衝突が発生したと考えられる。このとき、ネットワーク構成情報記憶部151は、通信装置123宛の通信フローのパケットサイズ、通信フロー171のパケットサイズ、及び通信装置123の接続関係等の情報を保持することができる。
図22は、時刻同期手順以外の通信フローが通信装置123間で発生し、通信制御装置120から通信装置123へ送信された時刻同期用パケット(Syncメッセージ)と衝突する場合の通信フローの例を示す図である。図22では、通信装置123cから通信装置123bへの通信フロー171と、通信制御装置120から通信装置123bへの時刻同期プロトコルの通信フロー170とが存在する。
このような場合、時刻同期プロトコルの通信フロー170のSyncメッセージが、ネットワーク中継装置121a、121b内で、通信フロー171のパケットと衝突する可能性があり、時刻同期プロトコルの通信フロー170は往路と復路での通信遅延が等しくなるとは限らない。このような場合には、例えば、通信装置123cが、Syncメッセージを受信した後、予め定めた所定の時間内に、通信フロー171のパケットを通信装置123bへ送信すればよい。このようにすれば、ネットワーク中継装置121内でのパケットの衝突を回避することができる。
また、時刻同期手順以外の通信フローが存在する場合の対策として、後述する実施例6で説明するTC(IEEE1588規格で定義されるTransparent Clock)を、他の通信フロー171が流れる部分に導入する方法もある。
以上説明したように、通信制御装置120がグループ構成部150を備えて通信装置123のグループを構成することで、パケットの衝突確率を低減させて、ネットワーク中継装置121を用いた構成でも時刻同期を実行することができる。
実施例3は、実施例1、2において、通信装置123を工夫した実施例である。実施例3で用いる図面において、実施例1、2と同一の符号は、特に断りのない限り、実施例1、2で説明した機能や要素等と同一であるので、説明を省略する。
図12は、実施例3における通信装置123の機能構成を示す図である。実施例3における通信装置123は、図5に示した実施例1における通信装置123の構成要素を備え、さらに時刻同期実行制御部180を備える。
時刻同期実行制御部180は、時刻同期処理部130のパケットの送信タイミングを制御する。送信タイミングは、通信制御装置120から通知される情報に基づいて制御してもよいし、時刻同期処理部130の動作に基づいて制御してもよい。
図13は、通信装置123の動作を示すフローチャートである。
はじめに、Syncメッセージを受信するまで待機する(S030)。
Syncメッセージを受信したら、Syncメッセージの受信時刻t2を計測して記憶する(S031)。
次に、時刻同期実行制御部180は、Delay_Reqメッセージの送信タイミングを制御する(S032)。具体的には、予め定めた所定時間だけ待機する。
所定時間の経過後に、Delay_Reqメッセージを通信制御装置120に送信する(S033)。
次に、Delay_Reqメッセージの送信時刻t3を計測して記録する(S034)。
次に、時刻同期用パケットを受信するまで待機する(S035)。
時刻同期用パケットを受信したら、受信したパケットがSyncメッセージかどうかを判定する(S036)。Syncメッセージであれば、通信制御装置120が時刻同期手順を再実行したと判断して、S031〜S035の手順を実行する。
S036において、受信した時刻同期用パケットがSyncメッセージでなければ、同期処理を実行する(S037)。同期処理手順は、既に述べた図15に示す通りである。すなわち、図13に記載していないSyncメッセージ又はFollow_Upメッセージの中の時刻t1(マスタの送信時刻)と、Delay_Respメッセージの中の時刻t4(マスタにおけるDelay_Reqメッセージの受信時刻)と、上記の時刻t2、t3とを用いて、通信制御装置120と時刻を同期する。
本実施例における通信装置123は、時刻同期実行制御部180により、Delay_Reqメッセージの送信タイミングを制御できること(S032)が特徴である。すなわち、時刻同期実行制御部180は、Syncメッセージを受信してからDelay_Reqメッセージを送信するまでの待機時間を制御できる。この特徴を用いて、他の通信装置123の時刻同期用パケットの衝突確率を低減することができる。
Delay_Reqメッセージを送信するまでの待機時間は、通信制御装置120が通知する情報に基づいて通信装置123が決定してもよいし、通信装置123が通信制御装置120に依らずに決定してもよい。
通信制御装置120は、Delay_Reqメッセージの受信間隔によって、時刻同期実行制御部180の待機時間を制御することができる。例えば、通信制御装置120は、Delay_Reqメッセージの受信間隔からパケットが衝突したと判定すれば、パケットが衝突した通信装置123の待機時間を、予め定めた所定時間だけ長くすることや短くすることができる。
また、通信制御装置120は、IEEE1588の仕様によって、時刻同期実行制御部180の待機時間を制御することができる。IEEE1588では、スレーブのDelay_Reqメッセージの送信周期を、マスタのSyncメッセージの送信周期を基に制御することができる。具体的には、マスタがSyncメッセージを送信する所定の周期に1度、スレーブがDelay_Reqメッセージを送信する。この仕様を活用し、例えば、通信制御装置120がパケットが衝突したと判定すれば、パケットが衝突した通信装置123のDelay_Reqメッセージの送信頻度を上げることや下げることで、Delay_Reqメッセージの送信タイミングを制御する。
また、通信装置123は、Delay_Reqメッセージの送信後にSyncメッセージを受信すれば、通信制御装置120がパケットが衝突したと判断して時刻同期手順を再実行したものと推定できる。従って、Delay_Reqメッセージの送信後にSyncメッセージを受信した際に、時刻同期実行制御部180の待機時間を予め定めた所定の時間だけ長くすることや短くする方法もある。又は、通信制御装置120は、パケットの衝突を検知したことを、明示的に通信装置123へ通知してもよい。
なお、全ての通信装置123が本実施例の時刻同期実行制御部180を備えている必要はなく、少なくとも一部の通信装置123が時刻同期実行制御部180を備えていれば、その効果を享受できる。また、この場合、時刻同期実行制御部180を備えた通信装置123の識別子をネットワーク構成情報記憶部151で保持してもよい。通信制御装置120は、ネットワーク構成情報記憶部151に保持された通信装置123の識別子を用いて時刻同期実行制御部180を備えた通信装置123を判別し、この通信装置123の時刻同期実行制御部180に対して、待機時間の指令を送信することができる。
また、通信装置123が送信するDelay_Reqメッセージの中に、通信制御装置120が時刻同期を再実行する際に送信するSyncメッセージに必要な情報を埋め込むことができる。このような情報の例としては、Syncメッセージの宛先に係わる通信装置123の識別子や、図8のS020で決定する送信対象のグループについての情報が挙げられる。例えば、通信装置123が送信するDelay_Reqメッセージの中に、この通信装置123が属するIEEE1588仕様のドメイン情報を乗せ、通信制御装置120は、この通信装置123からのパケットが衝突したと判断すると、Delay_Reqメッセージに乗せられたドメイン情報を利用して、再度、Syncメッセージを送信することができる。この方法では、通信制御装置120は、グループ構成部150に送信対象のグループを問い合わせる必要がないため、短時間でSyncメッセージを送信することができる。この場合、通信制御装置120は、予め通信装置123にドメイン情報等のグループ構成情報を通知しておいてもよい。
通信装置123のDelay_Reqメッセージの送信タイミングは、他の通信装置123が制御することもでき、また、自身又は他の通信装置123に限らず、専用の装置やネットワーク中継装置121が制御することもできる。以下では、説明の便宜上、通信装置123の時刻同期用パケットの送信タイミングを制御する装置を、「時刻同期制御装置190」と称して説明する。
図16は、時刻同期制御装置190を用いた分散制御システムの例を示す図である。時刻同期制御装置190は、ネットワーク122を介して、通信制御装置120と通信装置123a〜123dに接続されている。
図17は、時刻同期制御装置190の機能構成を示す図である。時刻同期制御装置190は、図3に示した通信部131と、図7に示したネットワーク構成情報記憶部151と、図12に示した時刻同期実行制御部180とを備える。時刻同期制御装置190は、ネットワーク上のパケットを監視し、時刻同期用パケットが衝突して時刻同期手順を実行している通信装置123を検知すれば、この通信装置123がDelay_Reqメッセージを送信するのを、予め定めた所定の時間だけ遅らせたり早めたりする。又は、通信制御装置120は、時刻同期用パケットが衝突したことを、明示的に時刻同期制御装置190に通知してもよい。
パケットの監視は、通信部131の受信部133をプロミスキャスモードに設定するなどして、ネットワーク上のパケットを受信することで実行する。時刻同期制御装置190は、通信装置123がDelay_Reqメッセージを送信したのを確認した後に、同じ通信装置123宛にSyncメッセージが送信されたのを確認した場合には、通信制御装置120がパケットが衝突したと判断して時刻同期手順を再実行したものと推定し、時刻同期用パケットの衝突が発生したと判定する。
他の通信装置123のDelay_Reqメッセージの送信タイミングを制御する方法の例には、IEEE802.3におけるPAUSEフレームを用いて、予め定めた所定の時間だけ、他の通信装置123の送信を停止する方法や、専用のプロトコルを用いる方法が挙げられる。専用のプロトコルを用いる場合は、通信相手の情報と、送信タイミングを制御するための時間情報(待機時間、又は送信する時刻等)を少なくとも用いる。又は、専用プロトコルのパケットを受信した時点で送信してもよい。この場合、通信装置123は、この専用プロトコルのパケットを受信するまでは送信処理を実行しないように構成してもよい。
時刻同期制御装置190は、全ての通信装置123を制御する必要はなく、一部の通信装置123を制御してもよい。
なお、複数の通信装置123のDelay_Reqメッセージの送信タイミングを制御する場合には、通信装置123の属性や、現在までの同期手順結果に基づいて制御することもできる。例えば、通信装置123のそれぞれに優先度を設定しておき、優先度に応じて通信装置123の待機時間を設定することができる。又は、現在までの時刻同期手順におけるパケットの衝突頻度や、通信装置123の備えるクロックの精度に応じて、待機時間を調整することができる。パケットの衝突頻度に応じて待機時間を調整する場合には、例えば、衝突していない通信装置123ほど、待機時間を短く設定する。クロックの精度に応じて待機時間を調整する場合には、例えば、クロック精度の高い通信装置123ほど、待機時間を短く設定する。Delay_Reqメッセージの送信タイミングを制御するのに必要な情報は、時刻同期制御装置190内のネットワーク構成情報記憶部151で管理され、保持される。
以上説明したように、本実施例でも、ネットワーク中継装置121を用いた分散制御システムにおいて、時刻同期をすることができる。さらに、通信装置123でパケットの送信タイミングを制御することにより、パケットが衝突する確率を低減するとともに、分散処理によって通信制御装置120の計算や制御に係わる負荷も低減することができる。
実施例4は、ネットワーク中継装置121において、パケットの処理時間を一定値とすることで、パケットの衝突による往復の通信遅延の差を低減する実施例である。実施例4で用いる図面において、実施例1〜3と同一の符号は、特に断りのない限り、実施例1〜3で説明した機能や要素等と同一であるので、説明を省略する。
ネットワーク中継装置121内で時刻同期用パケットがキューイングされると、時刻同期用パケットは、往路と復路とで遅延時間が異なり、通信遅延に差が発生する。本実施例では、必要に応じて処理遅延を大きくとり、時刻同期用パケットの往復の遅延の差を低減する。ただし、システムの通信性能を向上させるためには、ネットワーク中継装置121内での時刻同期用パケットの待機時間を短くすることが望ましい。そこで、本実施例では、通信制御装置120等によるパケットの衝突判定結果を用いて、待機時間を短くする。
図18は、本実施例におけるネットワーク中継装置121の機能構成を示す図である。ネットワーク中継装置121は、パケット識別部200、経路制御部201、バッファ202、図4に示したバッファ142、図12に示した時刻同期実行制御部180、及び計時部203を備える。経路制御部201には、入力側に3つのバッファ142(入力バッファ)が接続され、出力側に3つのバッファ142(出力バッファ)が接続される。
パケット識別部200は、予め設定されたパケットの特徴に基づいて、パケットの種類を識別する。経路制御部201は、パケットに格納された情報から出力先のバッファ142を選択して、パケットを転送する。バッファ202は、パケットを保持する。
計時部203は、時刻を測定する。パケット識別部200、経路制御部201、及び時刻同期実行制御部180は、計時部203から時刻を取得することができる。なお、図18において、計時部203と他の部(パケット識別部200、経路制御部201、及び時刻同期実行制御部180)との関係を示す線は、図示を省略している。
本実施例におけるネットワーク中継装置121の動作手順について説明する。はじめに、パケット識別部200に、識別するパケットの特徴を設定する。識別するパケットの特徴は、通信制御装置120又は通信装置123からネットワーク122を経由して設定してもよいし、ネットワーク中継装置121に対して直接設定してもよい。ネットワーク中継装置121に対して直接設定する場合には、図18に示さない入力手段が必要である。設定する情報は、通信制御装置120と通信装置123間の通信フローを識別する情報であり、送信元アドレスと送信先アドレス、IEEE1588におけるドメイン、VLANの識別子、及びマルチキャストアドレスが例示できる。
ネットワーク中継装置121のバッファ142(入力バッファ)にパケットが入力すると、パケット識別部200は、このパケットの特徴が予め設定された特徴に一致するかを判別する。一致した場合は、パケット識別部200は、経路制御部201と時刻同期実行制御部180に、一致したことと一致した条件(特徴)とを通知する。同時に、パケット識別部200は、バッファ142にパケットが入力した時刻Tinを計時部203から取得し、時刻Tinを経路制御部201に通知する。
経路制御部201は、パケット識別部200からの通知を受信すると、パケットをバッファ142(出力バッファ)に転送せずに、バッファ202に転送する。バッファ202へ転送したパケットをパケット141aとする。また、パケット141aを転送すべき出力バッファをバッファ142aとする。
パケット141aをバッファ202で保持する時間は、他のパケットによる遅延時間を考慮して決定する必要がある。他のパケットによる遅延時間とは、バッファ142に先行して存在するパケットと、パケット141a受信後にバッファ142へ転送したパケットとの通信処理時間である。
パケットをバッファ202に転送後、経路制御部201は、バッファ142aに存在するパケットの数とデータサイズ、及びパケット141a受信後にバッファ142aへ転送したパケットの数とデータサイズを、時刻同期実行制御部180へ通知する。
時刻同期実行制御部180は、これらの通知された情報を基に、これらのパケットによる通信処理時間dを計算し、目標出力時刻Toutまでの残り時間Rから通信処理時間dを減算して、待機時間Twを算出する。すなわち、待機時間Twは、式(11)で求めることができる。目標出力時刻Toutは、時刻Tinに予め定めた滞留時間αを加えることで求められる。滞留時間αは、固定した値としてもよいし、パケットの往復ごとに変えてもよい。
Tw=R−d (11)
残り時間Rは、現在時刻から目標出力時刻Toutまでの時間(R=Tout−(現在時刻))である。現在時刻は、計時部203から取得可能である。通信処理時間dは、例えば式(3)で求めることができる。
時刻同期実行制御部180は、算出した待機時間Twを経路制御部201に通知する。なお、後続のパケットを受信するたびに通信処理時間dが変わるため、その都度、時刻同期実行制御部180は、待機時間Twを計算し、経路制御部201に通知する。
経路制御部201は、現在時刻から待機時間Twが経過したら、パケット141aをバッファ142aへ転送する。
ここで考慮すべきことは、ある後続のパケットをバッファ142aへ転送する場合に、パケット141aを保持すべき残り時間を経過してしまう可能性があることである。例えば、パケット141aをあと50μs保持する必要があり、後続のパケットの処理時間が60μsであるような場合である。このような場合には、後続のパケットをバッファ142aへ転送すると、ネットワーク中継装置121での滞留時間αを一定にできない。このため、このような後続のパケットに対しては、バッファ142aへ転送せずに、パケット141aを転送するまで保持(ブロック)することを、対処法として例示できる。
その後、経路制御部201は、時刻同期実行制御部180から通知された待機時間Twだけ、パケットをバッファ202に保持し、待機時間Twの経過後に、出力先にしたがってパケットをバッファ142に出力する。経路制御部201は、パケットをバッファ142に出力する時間を決定するために、計時部203を用いる。
経路制御部201がパケットを出力する時間を決定してバッファ142に出力する方法の例としては、計時部203から取得した時刻Tinに上述の待機時間を加えて時刻Toutを求め、時刻Toutに計時部203から経路制御部201に待機時間Twが経過したことを通知する方法がある。又は、待機時間Twが経過するまでの時刻を、経路制御部201が計時部203から予め定めた所定の間隔で取得してもよい。
滞留時間αの時刻同期実行制御部180への設定方法の例としては、パケットの衝突を検知した通信制御装置120からネットワーク122を介して、待機時間Twを時刻同期実行制御部180に通知する方法が挙げられる。又は、時刻同期実行制御部180がネットワーク中継装置121内を流れるパケットを監視し、Delay_Reqメッセージが流れた後にSyncメッセージが逆向きに流れた通信の組み合わせに対して、予め定めた所定の時間を長く又は短くすることで、設定する方法もある。
なお、ネットワーク中継装置121は、滞留時間α又は待機時間Twを外部から取得できるように構成してもよい。滞留時間α又は待機時間Twは、ネットワーク中継装置121に何らかの接続手段を設けることで取得してもよい。また、ネットワーク中継装置121は、ネットワーク122を用いて通信により、滞留時間α又は待機時間Twを外部へ伝送してもよい。例えば、所定のパケットフォーマットを認識すると、そのパケット内に滞留時間α又は待機時間Twを格納する。システム管理者は、これらの情報を用いて、滞留時間α又は待機時間Twが特に長い場合に、システムへの影響を考慮し、システムやネットワークの構成を変更することができる。
通信フローの識別には、パケット識別部200を用いることができる。
以上説明したように、本実施例によれば、ネットワーク中継装置121での衝突による遅延差を低減させて時刻同期が可能な分散制御システムを構築することができる。また、ネットワーク中継装置121の待機時間を最適化することで、ネットワーク全体の通信性能の低下を低減することができる。
実施例5は、通信制御装置120と通信装置123間のネットワーク中継装置121を通る経路が複数存在するとき、通信経路を変更することでパケットの衝突の確率を低減する方法を示す実施例である。実施例5で用いる図面において、実施例1〜4と同一の符号は、特に断りのない限り、実施例1〜4で説明した機能や要素等と同一であるので、説明を省略する。
図19は、本実施例における分散制御システムの構成を示す図である。図19の分散制御システムでは、通信制御装置120と、2台の通信装置123a、123bと、4台のネットワーク中継装置121が、ネットワーク122を介して接続されている。
通信装置123aと通信制御装置120との通信経路は、経路210aと経路210bの2つである。また、通信装置123bと通信制御装置120との通信経路も、経路210aと経路210bの2つである。このとき、通信装置123aと通信装置123bで、通信経路210aと通信経路210bを使いわければ、ネットワーク中継装置121内でパケットが衝突する確率を低減することができる。
これは、静的ルーティング、専用のルーティングプロトコル、又はMPLS(Multi-Protocol Label Switching)等を用いることで実現できる。また、経路ごとにグループ識別子(マルチキャストアドレス等)を使いわけてもよい。又は、OpenFlowプロトコルにおけるコントローラにおいて、宛先を区別して転送先ポートを使いわけるルールを設定して実現してもよい。
また、SyncメッセージとDelay_Reqメッセージとで、すなわち往路と復路とで、経路を変更してもよい。例えば、通信制御装置120から通信装置123aにSyncメッセージを送信するときは通信経路210aを利用し、通信装置123aから通信制御装置120にDelay_Reqメッセージを送信するときは、通信経路210bを利用してもよい。このとき、通信経路210aと通信経路210bでの通信遅延は、試験的に求める等により取得し、同期計算時に利用する。
通信経路210aと通信経路210bは、通信制御装置120のパケットの衝突の判定結果に基づいて、使いわけることができる。例えば、パケットが衝突したと通信制御装置120が判定した場合には、対象の通信装置123aを異なるグループとして、別の通信経路を利用するようにネットワークを設定することができる。
本実施例には、ネットワーク中継装置121を用いて、時刻同期システムを構築できるという効果がある。
実施例6は、IEEE1588規格で定義されるTransparent Clock(以下、「TC」と略記する)と、TCではないネットワーク中継装置121を混載してネットワークを構成する実施例である。実施例6で用いる図面において、実施例1〜5と同一の符号は、特に断りのない限り、実施例1〜5で説明した機能や要素等と同一であるので、説明を省略する。
TCは、ネットワーク中継装置121中の処理遅延を、各パケットに格納する。このパケットを受け取った通信装置123は、この処理遅延についての情報を用いて、往復の遅延の差を求めることができる。
図20は、本実施例における分散制御システムの構成を示す図である。図20の分散制御システムでは、通信制御装置120と、3台の通信装置123a〜123cと、ネットワーク中継装置121と、TC220が、ネットワーク122を介して接続されている。
通信装置123a〜123cのそれぞれからのDelay_Reqメッセージの送信に着目すると、TC220では通信フロー221bと通信フロー221cのパケットが衝突する可能性があり、ネットワーク中継装置121では通信フロー221a、通信フロー221b、及び通信フロー221cが衝突する可能性がある。
ただし、TC220内でパケットが衝突しても、衝突によって生じた遅延のゆらぎは、TCの機能により補正することができる。一方で、ネットワーク中継装置121では、遅延のゆらぎの補正が困難である。
本実施例では、通信制御装置120が、通信フロー221a〜221cのパケットの受信間隔を測定し、式(10)によってパケットが衝突したかどうかを判定する。
このとき、通信フロー221aの時刻同期用パケットを受信した後に、通信フロー221bと通信フロー221cの一方又は両方のパケットを受信し、これらのパケットの受信間隔によって、パケットが衝突したと判定した場合は、通信フロー221aのパケットと衝突した通信フローのパケットを送信した通信装置に対して、時刻同期処理を再実行する。
同様に、通信フロー221bと通信フロー221cの一方又は両方のパケットを受信した後に、通信フロー221aのパケットを受信し、通信フロー221aのパケットが衝突したと判定した場合も、時刻同期処理を再実行する。これは、ネットワーク中継装置121内で、通信フロー221aのパケットと、通信フロー221bと通信フロー221cの少なくとも一方のパケットとが衝突したと推定されるためである。
一方で、通信フロー221bのパケットと通信フロー221cのパケットとが衝突した場合は、TC220の機能により、同期処理を再実行する必要がない。TC220の機能によってTC220内での通信遅延を取得できるため、これらのパケットが衝突したとしても、TC220内の通信遅延を基に補正が可能である。通信フロー221bと通信フロー221cにおける時刻同期用パケットは、パケット内にTC220内の通信遅延が格納される。
図24は、マスタとスレーブとの間のメッセージのやりとりを示す図であり、図15と同じ図である。ただし、図24には、往路(Syncメッセージ)のパケットに格納された通信遅延Ttcgと、復路(Delay_Reqメッセージ)のパケットに格納された通信遅延Ttcrと、片道の通信遅延tdとが示されている。
片道の通信遅延tdと時刻の差分tdiffは、図14、図15にも示した時刻t1、t2、t3、t4を用いて、式(12)と式(13)で表わされる。
td=((t4−t1)−(t3−t2)−Ttcr−Ttcg)/2 (12)
tdiff
=((t4−(Ttcr−Ttcg)+t1)―(t3+t2))/2 (13)
このとき、通信遅延tdは、TC220の通信遅延を除いた値となる。
Syncメッセージを送信する際には、マルチキャストで衝突がないとすれば、(Ttcr−Ttcg)がTC220内での衝突によって生じた遅延とすることができる。
このとき、ネットワーク構成情報記憶部151は、TC220、ネットワーク中継装置121、及び通信装置123の接続順等のネットワーク構成情報を保持して、上記したパケットの衝突の判定に利用する。
図23は、時刻同期に関係のない通信フローが存在する場合の通信フローの例を示す図である。図23には、2台のTC(TC220aとTC220b)が存在する。図23に示すように、時刻同期用パケットの通信フロー170a及び170bが、通信装置123a及び123bから通信制御装置120へそれぞれ存在する。さらに、時刻同期に関係のない通信フロー171が、通信装置123cから通信装置123dに存在する。
通信フロー171のパケットは、TC220a、220b内で、時刻同期フロー170a又は170bのパケットと衝突する可能性がある。通信制御装置120からは、通信フロー171が時刻同期フロー170a又は170bに与える影響を検出できないため、通常は時刻同期が困難となる。
しかし、図23に示すように、時刻同期に関係のない通信フローが流入する部分にTC220aとTC220bを設けることで、TC220aとTC220b内での遅延情報を時刻同期用パケットに格納することができる。このため、TC220内での衝突を考慮する必要がなく、ネットワーク中継装置121内での衝突のみを、上記の実施例で述べた方法によって判定すればよい。
従って、通信制御装置120は、通信フロー170a、170bの時刻同期用パケットの受信間隔を測定し、衝突していないと判定した場合は、時刻同期プロトコルを継続すればよい。通信装置123a、123bは、式(12)と式(13)を用いて、通信制御装置120と同期すればよい。
本実施例によれば、TCを用いることにより、時刻同期処理の再実行によるオーバーヘッドを低減することができる。さらに、システムには部分的にTCを導入すればよいので、専用装置であるTCの導入数は少なくてよいという効果もある。
実施例7は、IEEE1588のマスタとなる通信制御装置120を変更することにより、衝突確率を低減する実施例である。IEEE1588では、分散制御システムを構成する通信制御装置のうち1つがマスタとなる(図6のS001を参照)が、本実施例では、マスタとなる通信制御装置を他の通信制御装置に変更する。実施例7で用いる図面において、実施例1〜6と同一の符号は、特に断りのない限り、実施例1〜6で説明した機能や要素等と同一であるので、説明を省略する。
図21は、本実施例における分散制御システムの構成を示す図である。図21に示すシステムでは、時刻同期プロトコルを実行する装置として、通信制御装置120a〜120eを備える。通信制御装置120a〜120eは、いずれも図3又は図7に示した構成を持ち、ネットワーク中継装置121a、121b、121cを介して接続されている。本実施例では、IEEE1588におけるマスタの役割を通信制御装置120a〜120e間で移動させる。すなわち、マスタである通信制御装置をスレーブにし、スレーブである通信制御装置のうちの1つをマスタにする。なお、分散制御システムに接続されている装置の全てが通信制御装置120である必要はない(すなわち、分散制御システムに接続されている装置の全てがマスタの機能を備える必要はない)。
以下、マスタとなる通信制御装置を他の通信制御装置に変更する手順を説明する。
はじめに通信制御装置120cがマスタであるとし、図6の手順で同期処理を実行する。通信制御装置120a、120b、120d、及び120eは、経由するネットワーク中継装置の数(マスタである通信制御装置120cとの間にあるネットワーク中継装置の数)が、いずれも2である。このため、ネットワーク中継装置121a〜121cの処理性能や通信経路の条件が同程度であれば、全ての返信タイミングが重なるとネットワーク中継装置121bで通信制御装置120a、120b、120d、120eからの4つのパケットが衝突する可能性がある。
本実施例では、通信制御装置120cがこの衝突を検知した際に、マスタを通信制御装置120aに変更する。マスタが通信制御装置120aになれば、スレーブとなる残りの通信制御装置120b〜120eにおいて、経由するネットワーク中継装置の数(マスタである通信制御装置120aとの間にあるネットワーク中継装置の数)が分散し、パケットの衝突確率を低減することができる。
マスタを変更する方法は、少なくとも変更後の通信制御装置120を識別する専用のプロトコルを用いる方法でもよいし、IEEE1588のBest Master Clock(以下、「BMC」と称する)アルゴリズムにおいて、マスタを決めるために判定される指標値を通信制御装置120a〜120e間で意図的に調整する方法でもよい。BMCでは、ユーザが定義可能なパラメータがあり、これを利用することができる。このユーザ定義可能なパラメータを、専用のプロトコルを用いて、通信制御装置120a〜120e間で交換する方法を用いることもできる。
新しいマスタの選択方法は、例えば、通信制御装置120a〜120eにおいて、指標値を設定して算出し、この指標値が最も高い通信制御装置を選ぶ方法を挙げることができる。指標値の算出方法には、通信制御装置120a〜120e間のネットワーク中継装置の数、通信遅延、通信帯域、又はクロックの精度を用いることを例示できる。例えば、通信制御装置120a〜120e間のネットワーク中継装置の数の分散を求め、分散が最も大きい通信制御装置をマスタに選択する方法を用いることができる。
また、STP(Spanning Tree Protocol)、RSTP(Rapid Spanning Tree Protocol)、又は通信経路の障害等によってトポロジが変化した場合に、マスタを変更してもよい。
本実施例によれば、マスタを変更することにより、時刻同期を再実行するオーバーヘッドを低減することができ、ネットワーク中継装置を用いた分散制御システムで時刻同期を実行することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル、測定情報、算出情報等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
101…CPU、102…送受信機IC、108…メモリ、109…不揮発性記憶媒体、110…バス、120、120a〜120e…通信制御装置、121、121a、121b、121c…ネットワーク中継装置、122…ネットワーク、123、123a〜123f…通信装置、130…時刻同期処理部、131…通信部、132…送信部、133…受信部、134…受信間隔測定部、135…キューイング発生判定部、140、141…パケット、142…バッファ、150…グループ構成部、151…ネットワーク構成情報記憶部、160…同期時刻、161…同期時刻選択部、170、170a、170b、171…通信フロー、180…時刻同期実行制御部、190…時刻同期制御装置、200…パケット識別部、201…経路制御部、202…バッファ、203…計時部、210a、210b…通信経路、220、220a、220b…TC(Transparent Clock)、221a、221b、221c…通信フロー。

Claims (14)

  1. ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    前記キューイング発生判定部が要求パケットの衝突を検知した場合に、前記複数の通信制御装置のうち、この要求パケットを送信した前記通信制御装置へ、時刻同期を要求するための再要求パケットを送信することを特徴とする通信制御装置。
  2. ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    要求パケットを予め定めた所定の時間内に受信しなかった場合は、前記複数の通信制御装置へ、時刻同期を要求するための再要求パケットを送信することを特徴とする通信制御装置。
  3. ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    前記キューイング発生判定部が要求パケットの衝突を検知した場合に、少なくとも、この要求パケットを送信した前記通信制御装置へ、時刻同期を要求するための再要求パケットを送信することを特徴とする通信制御装置。
  4. ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    前記受信間隔測定部が時刻同期を要求するための再要求パケットを前記複数の通信制御装置に送信した後、前記通信制御装置が前記複数の通信制御装置からの要求パケットを最初に受信するまでの時間が予め定めた所定時間を超えた場合に、前記キューイング発生判定部は、要求パケットが衝突したと判定することを特徴とする通信制御装置。
  5. ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    前記キューイング発生判定部が検知した要求パケットの衝突の回数に応じて、時刻同期を要求するための再要求パケットを送信するまでの時間を変更することを特徴とする通信制御装置。
  6. ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    前記複数の通信制御装置をグループにわけるグループ構成部をさらに備え、
    前記キューイング発生判定部の検知結果にしたがって、前記グループ構成部がわけたグループに対して要求パケットを送信するか否かを決定することを特徴とする通信制御装置。
  7. 前記グループ構成部は、前記複数の通信制御装置との通信遅延に基づいて、前記複数の通信制御装置をグループにわける請求項記載の通信制御装置。
  8. 前記グループ構成部は、応答パケットの送信回数、前記複数の通信制御装置との時刻同期の成功回数、前記複数の通信制御装置との時刻同期の失敗回数、及び前記複数の通信制御装置との時刻同期が成立してからの経過時間のうち、いずれか1つ又は複数に基づいて、前記複数の通信制御装置をグループにわける請求項記載の通信制御装置。
  9. 前記ネットワークの構成情報を保持するネットワーク構成情報記憶部をさらに備え、
    前記グループ構成部は、前記ネットワーク構成情報記憶部が保持する前記ネットワークの構成情報に基づいて、前記複数の通信制御装置をグループにわける請求項記載の通信
    制御装置。
  10. 前記ネットワーク構成情報記憶部が保持する前記ネットワークの構成情報は、前記ネットワークを構成する装置の数、前記装置の情報、ネットワークトポロジ、前記装置までのホップ数、前記装置までの通信遅延、前記ネットワークを構成する中継装置の性能、前記ネットワークの通信性能、及びネットワークメディアのうち、いずれか1つ又は複数である請求項記載の通信制御装置。
  11. 前記グループ構成部は、前記複数の通信制御装置との応答パケットの送信履歴に基づいて、前記複数の通信制御装置をグループにわける請求項記載の通信制御装置。
  12. 前記グループ構成部は、時刻同期ができなかった前記複数の通信制御装置の数が予め定めた所定数以下の場合、この時刻同期ができなかった前記複数の通信制御装置の中から予め定めた所定数の通信制御装置を選択することで、前記複数の通信制御装置をグループにわける請求項記載の通信制御装置。
  13. 前記複数の通信制御装置のうち、前記要求パケットを送信した前記通信制御装置は、時刻同期を要求するための再要求パケットを受信した後、予め定めた所定の時間内に、他の前記通信制御装置と通信する請求項記載の通信制御装置。
  14. ネットワーク中継装置内でのパケットの滞留時間を前記パケットに格納するネットワーク中継装置を用いたネットワーク構成に用いられ、
    ネットワークを介して複数の通信制御装置と接続され、少なくとも要求パケットと応答パケットとで構成される通信を用いた時刻同期手順を用いて前記複数の通信制御装置と時刻同期し、
    前記複数の通信制御装置から続けて受信した任意の2つの要求パケットの受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部が測定した要求パケットの受信間隔に基づいて、前記複数の通信制御装置のうち任意の通信制御装置からの要求パケットの衝突を検知するキューイング発生判定部とを備え、
    前記キューイング発生判定部の検知結果にしたがって、要求パケットを送信した前記通信制御装置へ応答パケットを送信するか否かを決定し、
    前記キューイング発生判定部は、
    前記ネットワーク中継装置を経由して連続して受信した第一の要求パケットと第二の要求パケットについて、第一の要求パケットを送信した第一の通信制御装置と第二の要求パケットを送信した第二の通信制御装置とが前記ネットワーク中継装置までの通信経路を共有せず、且つ第一の要求パケットに衝突がないと判断した場合に、第二の要求パケットは衝突がないと判断することを特徴とする通信制御装置。
JP2012223904A 2012-10-09 2012-10-09 通信制御装置 Active JP5923430B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012223904A JP5923430B2 (ja) 2012-10-09 2012-10-09 通信制御装置
US14/044,895 US9485045B2 (en) 2012-10-09 2013-10-03 Communication control equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012223904A JP5923430B2 (ja) 2012-10-09 2012-10-09 通信制御装置

Publications (2)

Publication Number Publication Date
JP2014078781A JP2014078781A (ja) 2014-05-01
JP5923430B2 true JP5923430B2 (ja) 2016-05-24

Family

ID=50432595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012223904A Active JP5923430B2 (ja) 2012-10-09 2012-10-09 通信制御装置

Country Status (2)

Country Link
US (1) US9485045B2 (ja)
JP (1) JP5923430B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579721B (zh) * 2013-10-10 2018-07-24 施耐德电器工业公司 通信装置及继电保护装置
EP3064545B1 (en) 2013-10-31 2018-06-20 JSR Corporation Member for tires, vibration-proofing member and member for belts
JP2016005214A (ja) * 2014-06-19 2016-01-12 日本電気通信システム株式会社 ネットワークシステム、車載システム、時刻同期方法、ノードおよびプログラム
JP6231453B2 (ja) * 2014-08-18 2017-11-15 株式会社日立製作所 通信制御装置
US10333611B2 (en) 2014-11-05 2019-06-25 Nec Corporation Communication system, time synchronization method, and radio relay device
WO2017033416A1 (ja) * 2015-08-27 2017-03-02 日本電気株式会社 中継装置、通信システム、及び障害検出方法
CN108521341B (zh) * 2018-03-23 2019-09-13 新华三信息技术有限公司 报文传输方法及装置
CN112703705A (zh) 2018-09-21 2021-04-23 三菱电机株式会社 通信装置、通信系统、通信方法及通信程序
JP6523589B1 (ja) 2018-09-21 2019-06-05 三菱電機株式会社 通信装置、通信システム、通信方法および通信プログラム
DE112018007890B4 (de) 2018-09-21 2022-07-07 Mitsubishi Electric Corporation Kommunikationsvorrichtung, kommunikationssystem, kommunikationsverfahren und kommunikationsprogramm
JP7278074B2 (ja) 2018-12-27 2023-05-19 キヤノン株式会社 時刻同期システム及び時刻同期システムの制御方法、放射線撮影システム、時刻クライアント、時刻クライアントの制御方法
JP7276094B2 (ja) * 2019-11-21 2023-05-18 株式会社デンソー 中継装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4931108B2 (ja) * 2005-11-09 2012-05-16 独立行政法人情報通信研究機構 高精度時刻同期処理装置およびそのプログラム,ならびにネットワーク混雑度警告装置およびそのプログラム
JP4542027B2 (ja) * 2005-11-30 2010-09-08 日本電信電話株式会社 時刻同期方法、時刻クライアント、時刻サーバ、アプリケーション装置及び時刻同期システム
US8397284B2 (en) * 2006-01-17 2013-03-12 University Of Maryland Detection of distributed denial of service attacks in autonomous system domains
EP2165541B1 (en) * 2007-05-11 2013-03-27 Audinate Pty Ltd Systems, methods and computer-readable media for configuring receiver latency
US7688802B2 (en) * 2008-05-23 2010-03-30 Honeywell International Inc. System and method for time synchronization in a wireless network
EP2342850B1 (en) * 2008-09-02 2015-05-27 Unify GmbH & Co. KG A method for synchronizing clocks in a communication network
JP5045624B2 (ja) 2008-09-19 2012-10-10 Kddi株式会社 ネットワークのキュー遅延時間及び回線使用率を推定するネットワーク負荷推定方法
US8446896B2 (en) * 2010-04-21 2013-05-21 Lsi Corporation Time synchronization using packet-layer and physical-layer protocols
JP5495323B2 (ja) * 2010-07-16 2014-05-21 Kddi株式会社 ネットワークを介した時刻同期装置
US20120275511A1 (en) * 2011-04-29 2012-11-01 Google Inc. System and method for providing content aware video adaptation
US9756153B2 (en) * 2011-06-01 2017-09-05 Finite State Research Llc Method for improving accuracy in computation of one-way transfer time for network time synchronization
JP5768624B2 (ja) * 2011-09-26 2015-08-26 富士通株式会社 中継装置及び中継方法
JP5734802B2 (ja) * 2011-09-27 2015-06-17 トヨタ自動車株式会社 通信装置及び通信方法
JP6147467B2 (ja) * 2011-11-14 2017-06-14 富士通株式会社 フレーム伝送装置及び同期方法

Also Published As

Publication number Publication date
JP2014078781A (ja) 2014-05-01
US20140098706A1 (en) 2014-04-10
US9485045B2 (en) 2016-11-01

Similar Documents

Publication Publication Date Title
JP5923430B2 (ja) 通信制御装置
US20210119718A1 (en) Symmetric path/link over lag interface using lldp for time synchronization between two nodes using ptp
JP6907203B2 (ja) ターゲット送信パスを取得する方法及びネットワークノード
JP5792884B2 (ja) 通信ネットワークにおける時間配信のための方法、装置およびシステム
US9577817B2 (en) Method and apparatus for providing in-vehicle network time synchronization using redundant grandmaster
US7730230B1 (en) Floating frame timing circuits for network devices
JP5891086B2 (ja) 通信制御システム、通信制御装置、および被制御装置
US20140355619A1 (en) Industrial network apparatus and data communication method
JP5127482B2 (ja) タイミング同期方法、同期装置、同期システム及び同期プログラム
JP6045950B2 (ja) 通信制御装置及び通信システム
JP7393530B2 (ja) パケット転送方法、デバイス、およびシステム
JP6231453B2 (ja) 通信制御装置
US10090952B2 (en) Master/slave negotiation associated with a synchronous ethernet network
JP2014127887A (ja) 通信制御装置
EP2713564B1 (en) Multicast protocol message sniffing method, apparatus and switch
JP6375635B2 (ja) ネットワークシステム、そのパラメータ決定装置
US10223323B2 (en) Apparatus and method for controlling the number of lanes used for transferring data between information processing apparatuses
JP6216692B2 (ja) 通信システム、通信方法、及び、通信プログラム
JP4994280B2 (ja) ルート変更型ネットワーク装置及びシステム
JP4896057B2 (ja) 送信タイミング変更型ネットワーク装置及びシステム
JP2009239449A (ja) 高精度同期型ネットワーク装置、ネットワークシステム及びフレーム転送方法
Nishijima et al. Minimum delay switch for Synchronous TDMA network
JP6326474B2 (ja) 通信制御装置
JP7475568B2 (ja) デバイストランスレータ、通信システム、通信方法、および通信プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5923430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150