(57)【要約】【課題】フレームをループバックさせなくても、ビット単位で誤りを検出できるようにする。【解決手段】通信装置１００は、記憶部１０１、通信部１０２、検出部１０３等を備える。記憶部１０１は、パターン定義情報１５０を記憶する。パターン定義情報１５０は、特定種類のフレームを構成するビット列のパターンを定義する情報である。通信部１０２は、ネットワークを介してフレームを受信する。検出部１０３は、通信部１０２により特定種類のフレームが受信されると、通信部１０２により受信されたフレームを構成するビット列のパターンと記憶部１０１に記憶されたパターン定義情報１５０で定義されたパターンとの比較結果に基づいて、通信部１０２により受信されたフレームに含まれるビットの誤りを検出する。【選択図】図１
2015228599.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して送信される複数種類のフレームのうち１種類のフレームを構成するビット列のパターンを定義する情報を記憶する記憶部と、
前記ネットワークを介してフレームを受信する通信部と、
前記通信部により前記１種類のフレームが受信されると、前記通信部により受信されたフレームを構成するビット列のパターンと前記記憶部に記憶された情報で定義されたパターンとを比較し、比較結果に基づいて、前記通信部により受信されたフレームに含まれるビットの誤りを検出する検出部と
を備えることを特徴とする通信装置。
【請求項２】
前記１種類のフレームは、前記複数種類のフレームのフォーマットを規定する通信プロトコルでビット列のパターンが規定されたフレームであることを特徴とする請求項１の通信装置。
【請求項３】
前記１種類のフレームは、通信の制御用のフレームであることを特徴とする請求項２の通信装置。
【請求項４】
前記１種類のフレームは、前記ネットワークを介して一定間隔で繰り返し送信されるフレームであることを特徴とする請求項１から３のいずれかの通信装置。
【請求項５】
前記１種類のフレームは、前記通信装置と前記ネットワークにて前記通信装置に隣接する他の通信装置との間で終端するフレームであることを特徴とする請求項１から４のいずれかの通信装置。
【請求項６】
前記通信部により前記１種類のフレームが受信されると、前記通信部により受信されたフレームから、前記１種類のフレームを構成するビット列のパターンを抽出し、抽出したパターンを定義する情報を前記記憶部に書き込む管理部
をさらに備え、
前記検出部は、前記１種類のフレームを構成するビット列のパターンを定義する情報が前記記憶部に書き込まれた後、前記通信部により前記１種類のフレームが受信される度に、前記通信部により受信されたフレームを構成するビット列のパターンと前記記憶部に記憶された情報で定義されたパターンとを比較し、比較結果に基づいて、前記通信部により受信されたフレームに含まれるビットの誤りを検出することを特徴とする請求項１から５のいずれかの通信装置。
【請求項７】
前記管理部は、Ｎを２以上の整数とし、前記通信部により同じビット列で構成された前記１種類のフレームがＮ回受信されると、当該同じビット列を、前記１種類のフレームを構成するビット列のパターンとして抽出することを特徴とする請求項６の通信装置。
【請求項８】
前記管理部は、Ｎを２以上の整数とし、前記通信部により前記１種類のフレームがＮ回受信されると、当該Ｎ回分の前記１種類のフレームで位置及び値が共通するビット群を、前記１種類のフレームを構成するビット列のパターンとして抽出することを特徴とする請求項６の通信装置。
【請求項９】
前記管理部は、前記ネットワークの状態の変化に合わせて、前記記憶部に記憶された情報を更新することを特徴とする請求項６から８のいずれかの通信装置。
【請求項１０】
前記管理部は、前記通信部により受信されたフレームに基づいて、前記ネットワークの状態を検知することを特徴とする請求項９の通信装置。
【請求項１１】
前記検出部により検出されたビットの誤りの数を集計して前記ネットワークのビット誤り率を算出する算出部
をさらに備えることを特徴とする請求項１から１０のいずれかの通信装置。
【請求項１２】
ネットワークを介して送信される複数種類のフレームのうち１種類のフレームを構成するビット列のパターンを定義する情報を記憶する記憶部を備える通信装置が、前記ネットワークを介してフレームを受信し、
前記通信装置が、前記１種類のフレームを受信すると、受信したフレームを構成するビット列のパターンと前記記憶部に記憶された情報で定義されたパターンとを比較し、比較結果に基づいて、受信したフレームに含まれるビットの誤りを検出することを特徴とするビット誤り検出方法。
【請求項１３】
ネットワークを介して送信される複数種類のフレームのうち１種類のフレームを構成するビット列のパターンを定義する情報を記憶する記憶部を備えるコンピュータに、
前記ネットワークを介してフレームを受信する受信処理と、
前記受信処理により前記１種類のフレームが受信されると、前記受信処理により受信されたフレームを構成するビット列のパターンと前記記憶部に記憶された情報で定義されたパターンとを比較し、比較結果に基づいて、前記受信処理により受信されたフレームに含まれるビットの誤りを検出する検出処理と
を実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及びビット誤り検出方法及び通信プログラムに関するものである。
【背景技術】
【０００２】
ネットワーク上の通信装置が互いに情報通信を行う場合、伝送路に流れる情報は、連続的或いはバースト的なビット流の形で送信される。
【０００３】
連続的なビット流を送信する方式としては、例えば、ＳＤＨ（Ｓｙｎｃｈｒｏｎｏｕｓ・Ｄｉｇｉｔａｌ・Ｈｉｅｒａｒｃｈｙ）がある。ＳＤＨでは、フォーマットが規定されたフレームを一定時間単位で隙間なく送信する。
【０００４】
バースト的なビット流を送信する方式としては、例えば、全世界で普及しているイーサネット（登録商標）（ＩＥＥＥ８０２．３規格）がある。イーサネット（登録商標）では、情報のかたまりとしての送信単位をイーサネット（登録商標）フレーム又は単にフレームと呼んでいる。フレームと次のフレームとの間には、ＩＦＧ（ＩｎｔｅｒＦｒａｍｅ・Ｇａｐ）を挿入する決まりがある。フレームフォーマットは、図１０に示すような構成で標準化されている。フレームは、宛先ＭＡＣ（Ｍｅｄｉａ・Ａｃｃｅｓｓ・Ｃｏｎｔｒｏｌ）アドレス（ノードＭＡＣ・ＤＡ）、送信元ＭＡＣアドレス（ノードＭＡＣ・ＳＡ）、長さ／プロトコルタイプ（Ｌｅｎｇｔｈ／Ｔｙｐｅ）等の情報を持ち、最後尾にＦＣＳ（Ｆｒａｍｅ・Ｃｈｅｃｋ・Ｓｅｑｕｅｎｃｅ）を持つ。ＦＣＳは、受信者である通信装置が、受け取ったフレームの宛先ＭＡＣアドレス以降の全ての情報について、情報の誤りがあるかどうかを判定するために利用される。通信装置は、フレームを受け取ると、そのフレームの宛先ＭＡＣアドレスからＦＣＳ直前までの情報に対して、ＦＣＳの計算を実施する。通信装置は、受け取ったフレームのＦＣＳと、計算したＦＣＳとを比較する。不一致の場合、通信装置は、受け取ったフレームに誤りがあると判定する。一致する場合、通信装置は、受け取ったフレームが正常であると判定し、フレーム内の必要な情報を上位のプロトコルの処理部或いは他の通信装置に向けて送信する。
【０００５】
従来、通信装置が送出したフレームをループバックさせてフレームの誤りを判定することで、ビット単位で誤りを検出する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１６８９４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述したように、イーサネット（登録商標）等、不連続かつバースト的なビット流が流れるネットワークにおいて使用されるフレームには、フレーム内の情報の正否を判定するため（誤りチェック用）の情報（例えば、ＦＣＳ）が付与されている。この情報を用いてフレーム内の情報に誤りがあるかどうかが判断される。フレームが正常であると判断されると、フレーム内の情報が上位の通信レイヤ或いは他の通信装置に転送される。フレームに誤りがあると判断されると、そのフレームは廃棄される。
【０００８】
例えば、ネットワークの伝送路の劣化状態を把握するために、通信装置が受け取ったフレームの誤りのチェック結果を利用して伝送路のＢＥＲ（Ｂｉｔ・Ｅｒｒｏｒ・Ｒａｔｉｏ）（ビット誤り率）を算出するという方法がある。しかし、ＦＣＳ等の情報からは、フレーム単位での誤りの有無を把握できるのみで、ビット単位での誤りの有無の判定は不可能である。よって、上記の方法で算出されるＢＥＲは低精度であり、伝送路の劣化状態は大雑把にしかわからない。
【０００９】
特許文献１に記載されている技術では、ビット単位で誤りを検出するために、通信装置が送出したフレームをループバックさせる必要がある。そのため、この技術を既存の通信装置に適用する場合には、通信装置へのループバック機能の追加が必要となる。ループバック専用の装置の追加、或いは、他の通信装置への機能追加も必要となる。また、伝送路上で余計な通信帯域の消費がなされることになる。
【００１０】
本発明は、例えば、フレームをループバックさせなくても、ビット単位で誤りを検出できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一の態様に係る通信装置は、
ネットワークを介して送信される複数種類のフレームのうち１種類のフレームを構成するビット列のパターンを定義する情報を記憶する記憶部と、
前記ネットワークを介してフレームを受信する通信部と、
前記通信部により前記１種類のフレームが受信されると、前記通信部により受信されたフレームを構成するビット列のパターンと前記記憶部に記憶された情報で定義されたパターンとを比較し、比較結果に基づいて、前記通信部により受信されたフレームに含まれるビットの誤りを検出する検出部とを備える。
【発明の効果】
【００１２】
本発明では、通信装置が、特定種類のフレーム（例えば、通信の制御用のフレーム）を受信すると、そのフレームと記憶部に記憶された情報で定義されたパターンとの比較結果に基づいてビットの誤りを検出する。このため、本発明によれば、フレームをループバックさせなくても、ビット単位で誤りを検出できる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る通信装置の構成例を示すブロック図。
【図２】実施の形態１に係る通信装置の動作を示すフローチャート。
【図３】実施の形態１に係る通信装置のステートマシンの一例を示す図。
【図４】実施の形態２に係る通信装置の構成例を示すブロック図。
【図５】実施の形態２に係る通信装置のステートマシンの一例を示す図。
【図６】実施の形態３に係る通信装置の構成例を示すブロック図。
【図７】実施の形態３に係る通信装置のステートマシンの一例を示す図。
【図８】実施の形態４に係る通信装置の構成例を示すブロック図。
【図９】本発明の実施の形態に係る通信装置のハードウェア構成の一例を示す図。
【図１０】イーサネット（登録商標）のフレームフォーマット（１５番目及び１６番目のオクテットにＶＬＡＮタグを含む）を示す図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図を用いて説明する。
【００１５】
実施の形態１．
図１は、本実施の形態に係る通信装置１００の構成例を示すブロック図である。図２は、通信装置１００の動作（即ち、本実施の形態に係るビット誤り検出方法、本実施の形態に係る通信プログラムの処理手順）を示すフローチャートである。
【００１６】
図１において、通信装置１００は、記憶部１０１、通信部１０２、検出部１０３、管理部１０４、算出部１０５を備える。通信装置１００は、ネットワーク（図示していない）に接続されている。
【００１７】
記憶部１０１は、パターン定義情報１５０を記憶する。パターン定義情報１５０は、ネットワークを介して送信される複数種類のフレームのうち特定の１種類のフレーム（以下、「特定種類のフレーム」という）を構成するビット列のパターンを定義する情報である。記憶部１０１は、パターン定義情報１５０として、特定種類のフレームを構成する正規の（即ち、誤りがない）ビット列そのもの（以下、「パターン定義情報Ａ」という）を記憶してもよいし、特定種類のフレームを構成するビット列の条件（例えば、値が固定されたビットの位置及びその値、或いは、値の範囲が指定された複数ビットの位置及びその値の範囲）を示す情報（以下、「パターン定義情報Ｂ」という）を記憶してもよい。
【００１８】
例えば、特定種類のフレームの長さがＰビットであり、Ｐビットの全てが固定値として規定されているとする。この場合、記憶部１０１は、パターン定義情報Ａとして、Ｐビットの正規のビット列を記憶する。Ｐ＝１２８であれば、記憶部１０１は、パターン定義情報Ａとして、１２８ビットのビット列を１個記憶する。或いは、記憶部１０１は、パターン定義情報Ｂとして、Ｐビットの各ビットの位置と正規の値との組み合わせを示す情報を記憶する。Ｐ＝１２８であれば、記憶部１０１は、パターン定義情報Ｂとして、１〜１２８番目のビットの値を示す情報を記憶する。
【００１９】
また、例えば、特定種類のフレームの長さがＰビットであり、ＰビットのうちＱビット（Ｐ＞Ｑ）が固定値、残りの（Ｐ−Ｑ）ビットが可変値（任意の値）として規定されているとする。この場合、記憶部１０１は、パターン定義情報Ａとして、正規のビット列に該当するＰビットのビット列を全て（（Ｐ−Ｑ）ビットがとり得る値の数だけ）記憶する。Ｐ＝１２８、Ｑ＝１２０、Ｐ−Ｑ＝８であれば、記憶部１０１は、パターン定義情報Ａとして、１２８ビットのビット列を２８個記憶する。或いは、記憶部１０１は、パターン定義情報Ｂとして、Ｑビットの各ビットの位置と正規の値との組み合わせを示す情報を記憶する。Ｐ＝１２８、Ｑ＝１２０、８９〜９６番目のビットが（Ｐ−Ｑ）ビット（可変値）であれば、記憶部１０１は、パターン定義情報Ｂとして、１〜８８，９７〜１２８番目のビットの値を示す情報を記憶する。なお、Ｑビットの位置は連続していなくてよい。（Ｐ−Ｑ）ビットの位置も連続していなくてよい。
【００２０】
また、例えば、特定種類のフレームの長さがＰビットであり、ＰビットのうちＲビット（Ｐ＞Ｒ）が固定値として規定され、残りの（Ｐ−Ｒ）ビットがとり得る値の範囲が規定されているとする。この場合、記憶部１０１は、パターン定義情報Ａとして、正規のビット列に該当するＰビットのビット列を全て（（Ｐ−Ｒ）ビットがとり得る値の数だけ）記憶する。Ｐ＝１２８、Ｒ＝１１２、（Ｐ−Ｒ）ビットの値が０以上９以下であれば、記憶部１０１は、パターン定義情報Ａとして、１２８ビットのビット列を１０個記憶する。或いは、記憶部１０１は、パターン定義情報Ｂとして、Ｒビットの各ビットの位置と正規の値との組み合わせを示す情報を記憶する。Ｐ＝１２８、Ｒ＝１１２、８１〜９６番目のビットが（Ｐ−Ｒ）ビット、（Ｐ−Ｒ）ビットの値が０以上９以下であれば、記憶部１０１は、パターン定義情報Ｂとして、１〜８０，９７〜１２８番目のビットの値と、８１〜９６番目のビットからなるビット列の値の範囲を示す情報を記憶する。
【００２１】
通信部１０２は、ネットワークを介してフレームを受信する（図２のＳ１１：通信処理）。
【００２２】
検出部１０３は、通信部１０２により特定種類のフレームが受信されると、そのことを任意の方法により検知する。例えば、通信部１０２でフレームが受信されたときに、そのフレームが特定種類のフレームである場合だけ、受信されたフレームが通信部１０２から検出部１０３に転送される。或いは、通信部１０２でフレームが受信される度に、受信されたフレームが通信部１０２から検出部１０３に転送され、そのフレームが特定種類のフレームであるかどうか検出部１０３にて判定される。
【００２３】
検出部１０３は、通信部１０２により特定種類のフレームが受信されたことを検知すると、通信部１０２により受信されたフレームを構成するビット列のパターンと記憶部１０１に記憶されたパターン定義情報１５０で定義されたパターンとを比較し、比較結果に基づいて、通信部１０２により受信されたフレームに含まれるビットの誤りを検出する（図２のＳ１２：検出処理）。
【００２４】
例えば、記憶部１０１が、パターン定義情報１５０として、特定種類のフレームを構成する正規のビット列そのもの（即ち、パターン定義情報Ａ）を記憶しているとする。この場合、検出部１０３は、通信部１０２により特定種類のフレームが受信されると、そのフレームを構成するビット列と記憶部１０１に記憶された正規のビット列とを比較する。全てのビットが一致すれば、検出部１０３は、ビットの誤りがないと判断する。一方、一致しないビットがあれば、検出部１０３は、そのビットに誤りがあると判断する。
【００２５】
また、例えば、記憶部１０１が、パターン定義情報１５０として、特定種類のフレームを構成するビット列で値が固定されたビットの位置及びその値を示す情報（即ち、パターン定義情報Ｂ）を記憶しているとする。この場合、検出部１０３は、通信部１０２により特定種類のフレームが受信されると、そのフレームを構成するビット列から、記憶部１０１に記憶されたパターン定義情報１５０で示される位置のビットの値を取得する。検出部１０３は、取得した値と、記憶部１０１に記憶されたパターン定義情報１５０で示される値とを比較する。値が一致すれば、検出部１０３は、当該位置のビットに誤りがないと判断する。一方、値が一致しなければ、検出部１０３は、当該位置のビットに誤りがあると判断する。検出部１０３は、記憶部１０１に記憶されたパターン定義情報１５０で示される位置ごとに、誤りの有無を判定する。
【００２６】
また、例えば、記憶部１０１が、パターン定義情報１５０として、特定種類のフレームを構成するビット列で値の範囲が指定された複数ビットの位置及びその値の範囲を示す情報（即ち、パターン定義情報Ｂ）を記憶しているとする。この場合、検出部１０３は、通信部１０２により特定種類のフレームが受信されると、そのフレームを構成するビット列から、記憶部１０１に記憶されたパターン定義情報１５０で示される位置の複数ビットの値を取得する。検出部１０３は、取得した値と、記憶部１０１に記憶されたパターン定義情報１５０で示される値の範囲とを比較する。値が範囲内であれば、検出部１０３は、当該位置の複数ビットに誤りがないと判断する。一方、値が範囲外であれば、検出部１０３は、当該位置の複数ビットに誤りがあると判断する。このとき、検出部１０３は、当該位置の複数ビットの全てに誤りがあると判断してもよいし、パターン定義情報１５０で示される値の範囲内の代表値を予め決めておき、この代表値と異なるビットだけに誤りがあると判断してもよいし、他の方法で当該位置の複数ビットのうちどのビットに誤りがあるかを判断してもよい。これにより、ビット単位で誤りを検出（厳密には、推定）できる。
【００２７】
このように、本実施の形態では、通信装置１００が、特定種類のフレームを受信すると、そのフレームと記憶部１０１に記憶されたパターン定義情報１５０で定義されたパターンとの比較結果に基づいてビットの誤りを検出する。このため、本実施の形態によれば、フレームをループバックさせなくても、ビット単位で誤りを検出できる。
【００２８】
特定種類のフレームとしては、例えば、複数種類のフレームのフォーマットを規定する通信プロトコルでビット列のパターンが規定されたフレームを利用することができる。そのようなフレームの一例として、通信の制御用のフレームがある。通信の制御用のフレーム（即ち、制御フレーム）は、任意のユーザデータを搬送するフレーム（即ち、データフレーム）に比べて、多くのビット値が既知であったり、一部のビット列でとり得る値の範囲が限られていたりするため、ビット列のパターンを予め定義しておくことが容易である。通信の制御用のフレームとしては、キープアライブ用のフレーム、障害通知用のフレーム等が挙げられる。キープアライブ用のフレームとは、ネットワーク上のノード間で接続又は動作が正常に行われているかどうか確認するためにネットワーク上で定期的に送受信されるフレームのことである。障害通知用のフレームとは、ネットワークの障害、或いは、ネットワーク上のノードの障害が発生しているかどうか通知するためにネットワーク上で定期的に送受信されるフレームのことである。
【００２９】
特定種類のフレームとしては、ネットワークを介して一定間隔で（例えば、１ミリ秒ごと、或いは、１０ミリ秒ごとに）繰り返し送信されるフレームを利用することが望ましい。そのようなフレームとしては、前述したキープアライブ用のフレーム、障害通知用のフレーム等がある。特定種類のフレームを一定間隔で繰り返し受信できれば、定期的にフレームの誤りの有無を確認できるため、ネットワークの伝送路の状態を常時監視することが可能となるとともに、ネットワークの通信品質（例えば、ＢＥＲ）を高精度で測定することが可能となる。
【００３０】
特定種類のフレームとしては、通信装置１００とネットワークにて通信装置１００に隣接する他の通信装置との間で終端するフレームを利用することが望ましい。そのようなフレームとしては、通信装置１００に隣接する他の通信装置が通信装置１００の接続又は動作を確認するために送信するキープアライブ用のフレーム等がある。通信装置１００と通信装置１００に隣接する他の通信装置との間で終端するフレームに誤りがある場合は、通信装置１００と当該他の通信装置との間で障害が発生したと推定することが可能となる。
【００３１】
パターン定義情報１５０は、通信部１０２による通信が始まる前に記憶部１０１に書き込まれていてもよいし、通信部１０２による通信が始まった後で、その通信の内容に応じて管理部１０４により生成されて記憶部１０１に書き込まれてもよい。以下では、後者の場合を想定する。
【００３２】
管理部１０４は、通信部１０２により特定種類のフレームが受信されると、そのことを任意の方法により検知する。例えば、通信部１０２でフレームが受信されたことが検出部１０３により検知されると、そのことが検出部１０３から管理部１０４に通知される。
【００３３】
管理部１０４は、通信部１０２により特定種類のフレームが受信されたことを検知すると、通信部１０２により受信されたフレームから、特定種類のフレームを構成するビット列のパターンを抽出する。そして、管理部１０４は、抽出したパターンを定義する情報を、パターン定義情報１５０として生成し、このパターン定義情報１５０を記憶部１０１に書き込む。
【００３４】
パターン定義情報１５０が記憶部１０１に書き込まれる前は、検出部１０３は、通信部１０２により特定種類のフレームが受信されても、何もしなくてよい。パターン定義情報１５０が記憶部１０１に書き込まれた後は、検出部１０３は、通信部１０２により特定種類のフレームが受信される度に、通信部１０２により受信されたフレームを構成するビット列のパターンと記憶部１０１に記憶されたパターン定義情報１５０で定義されたパターンとを比較する。そして、検出部１０３は、比較結果に基づいて、通信部１０２により受信されたフレームに含まれるビットの誤りを検出する。
【００３５】
このように、本実施の形態では、通信装置１００が、特定種類のフレームを受信する度に、そのフレームと記憶部１０１に記憶されたパターン定義情報１５０で定義されたパターンとの比較結果に基づいてビットの誤りを検出する。このため、本実施の形態によれば、継続的にフレームの誤りの有無を確認できるため、ネットワークの伝送路の状態を常時監視することが可能となるとともに、ネットワークの通信品質（例えば、ＢＥＲ）を高精度で測定することが可能となる。
【００３６】
なお、パターン定義情報１５０は、通信部１０２による通信が始まる前に一部が記憶部１０１に書き込まれていて、通信部１０２による通信が始まった後で、その通信の内容に応じて他の部分（例えば、送信元アドレスを示す正規のビット列）が管理部１０４により記憶部１０１に書き込まれてもよい。
【００３７】
管理部１０４は、通信部１０２により最初に受信された特定種類のフレームから、特定種類のフレームを構成するビット列のパターンを抽出してもよいし、通信部１０２により最初及びそれ以降に受信された複数の特定種類のフレームから、特定種類のフレームを構成するビット列のパターンを抽出してもよい。以下では、後者の場合を想定する。
【００３８】
例えば、管理部１０４は、通信部１０２により同じビット列で構成された特定種類のフレームがＮ回（Ｎ≧２）受信されると、当該同じビット列を、特定種類のフレームを構成するビット列のパターンとして抽出する。
【００３９】
或いは、管理部１０４は、通信部１０２により特定種類のフレームがＮ回受信されると、当該Ｎ回分の特定種類のフレームで位置及び値が共通するビット群を、特定種類のフレームを構成するビット列のパターンとして抽出する。
【００４０】
このように、本実施の形態では、通信装置１００が、特定種類のフレームを複数回受信して、特定種類のフレームを構成するビット列のパターンを学習してから、ビットの誤りの有無を確認する動作を開始する。このため、本実施の形態によれば、特定種類のフレームを構成するビット列のパターンを予め把握しておく必要がなくなる。
【００４１】
管理部１０４は、ネットワークの状態の変化に合わせて、記憶部１０１に記憶されたパターン定義情報１５０を更新してもよい。例えば、ネットワークに障害が発生し、通信経路の切り替えが必要になったとする。通信経路の切り替えが実施されると、特定種類のフレームに含まれる情報（特に、送信元アドレス）の内容が変わることになる。そのため、管理部１０４は、内容が変わった後のフレームを構成するビット列のパターンを定義する情報を、新たなパターン定義情報１５０として生成し、このパターン定義情報１５０で記憶部１０１に記憶されている古いパターン定義情報１５０を上書きする。
【００４２】
管理部１０４は、通信部１０２により受信されたフレームに基づいて、ネットワークの状態を検知することができる。例えば、管理部１０４は、障害通知用のフレームから、ネットワークに障害が発生したことを検知できる。
【００４３】
算出部１０５は、検出部１０３により検出されたビットの誤りの数を集計してネットワークのＢＥＲを算出する（図２のＳ１３：算出処理）。具体的には、算出部１０５は、検出部１０３により検出されたビットの誤りの数を、通信部１０２により受信された特定種類のフレームのビット数で割ることで、ＢＥＲを求める。
【００４４】
通信装置１００が接続されるネットワークとしては、特定種類のフレームが送受信されるものであれば、任意のネットワークを適用できる。ネットワークは、有線でもよいし、無線でもよいし、その両方の組み合わせでもよい。また、ネットワークのトポロジとしては、リング、スター、リニア、メッシュ、或いは、その他の任意のトポロジを適用することができる。
【００４５】
本実施の形態では、ネットワークの一例として、ＲＰＲ（Ｒｅｓｉｌｉｅｎｔ・Ｐａｃｋｅｔ・Ｒｉｎｇ）ネットワークを適用するものとする。トポロジは、二重リングである。図示していないが、ＲＰＲネットワーク上を流れるＲＰＲフレームは、ＲＰＲヘッダをイーサネット（登録商標）フレームの先頭に付与する形で標準化されている。
【００４６】
以下では、通信装置１００の詳細な構成について説明する。
【００４７】
通信部１０２は、上位レイヤ処理部１１１、フレーム多重・分離制御部１１２、ＷｅｓｔポートＩ／Ｆ部１１４（Ｗｅｓｔポートインタフェース部）、ＥａｓｔポートＩ／Ｆ部１１５（Ｅａｓｔポートインタフェース部）、Ｗｅｓｔ・ＰＨＹ部１１６、Ｅａｓｔ・ＰＨＹ部１１７、Ｗｅｓｔリングポート１１８、Ｅａｓｔリングポート１１９を備える。フレーム多重・分離制御部１１２は、ＲＰＲ制御処理部１１３を有する。
【００４８】
検出部１０３は、対象フレーム判定部１２１、フレーム情報比較部１２２を備える。検出部１０３は、Ｗｅｓｔ側（例えば、ネットワークの上り方向）及びＥａｓｔ側（例えば、ネットワークの下り方向）に対して１つずつ設けられている。なお、検出部１０３を１つだけ設けて、その検出部１０３でＷｅｓｔ側及びＥａｓｔ側の両方の処理を行うようにしてもよい。
【００４９】
管理部１０４は、ステートマシン管理部１２０、情報アクセス管理部１２３、チェック結果管理部１２４を備える。管理部１０４は、検出部１０３と同様に、Ｗｅｓｔ側及びＥａｓｔ側に対して１つずつ設けられている。なお、管理部１０４を１つだけ設けて、その管理部１０４でＷｅｓｔ側及びＥａｓｔ側の両方の処理を行うようにしてもよい。
【００５０】
上位レイヤ処理部１１１は、フレーム多重・分離制御部１１２から転送された情報について、上位レイヤ（レイヤ３以上）の処理を実施する。また、上位レイヤ処理部１１１は、上位レイヤの処理で得られた情報をフレーム多重・分離制御部１１２に転送する。上位レイヤとしては、例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ・Ｃｏｎｔｒｏｌ・Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ）を適用することができる。
【００５１】
フレーム多重・分離制御部１１２は、Ｗｅｓｔリングポート１１８及びＥａｓｔリングポート１１９のそれぞれに対して、リングポート出力処理と上位レイヤ出力処理とを実行する。リングポート出力処理では、フレーム多重・分離制御部１１２は、上位レイヤ処理部１１１から転送されたＡｄｄトラヒックのフレーム（上位レイヤの処理で得られた情報を含むフレーム）と、ＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５から転送されたＴｒａｎｓｉｔトラヒックのフレーム（最終的な宛先を他の通信装置として通信装置１００に送られてきたフレーム）とを多重化してネットワークに出力する。上位レイヤ出力処理では、フレーム多重・分離制御部１１２は、ＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５から転送されたＤｒｏｐトラヒックのフレーム（最終的な宛先を通信装置１００として送られてきたフレーム）を多重化して上位レイヤ処理部１１１に出力する。
【００５２】
ＲＰＲ制御処理部１１３は、フレーム多重・分離制御部１１２の内部にあり、ネットワーク制御プロトコルであるＲＰＲの制御を担っている。ＲＰＲ制御処理部１１３は、ＲＰＲヘッダの生成、付与、削除を行う。ＲＰＲ制御処理部１１３は、プロテクション機能、ＱｏＳ（Ｑｕａｌｉｔｙ・ｏｆ・Ｓｅｒｖｉｃｅ）機能、フェアネス制御機能、トポロジディスカバリ機能、フレームフォワーディング機能を有する。プロテクション機能とは、障害を検出し、障害発生経路を迂回するために通信経路を切り替える機能である。ＱｏＳ機能とは、高優先のトラヒックを優先的に選択して出力したり、必要な帯域を保証したりする機能である。フェアネス制御機能とは、ネットワークの帯域が圧迫されているときに、ネットワークに接続された各通信装置で未使用の帯域を共用する機能である。トポロジディスカバリ機能とは、ネットワークに接続された各通信装置の並びを把握してトポロジ情報テーブルに登録する機能である。フレームフォワーディング機能とは、トポロジ情報テーブルを利用して、他の通信装置から受け取ったフレームを上位レイヤ処理部１１１とＷｅｓｔポートＩ／Ｆ部１１４とＥａｓｔポートＩ／Ｆ部１１５とのいずれに転送するか判断する機能である。さらに、ＲＰＲ制御処理部１１３は、上記の各機能のためにＲＰＲで規定された制御フレームを生成してＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５に転送する。ＲＰＲ制御処理部１１３は、制御フレームを受け取った場合、その制御フレームに含まれる情報を管理部１０４に通知する。例えば、ＲＰＲ制御処理部１１３は、障害の発生を通知する制御フレーム（障害通知フレーム）を受け取ると、プロテクション機能により通信経路を切り替えるとともに、経路切り替えイベントをステートマシン管理部１２０に通知する。
【００５３】
ＷｅｓｔポートＩ／Ｆ部１１４は、受信処理と送信処理とを実行する。受信処理では、ＷｅｓｔポートＩ／Ｆ部１１４は、他の通信装置からＷｅｓｔ・ＰＨＹ部１１６を介して受け取ったフレームを識別し、受け取ったフレームが有効であるか無効であるかをチェックする。ＷｅｓｔポートＩ／Ｆ部１１４は、不正なプリアンブルを受け取った場合、又は、Ｗｅｓｔ・ＰＨＹ部１１６からエラー信号を受け取った場合には、無効と認識してフレーム多重・分離制御部１１２に通知するか、或いは、フレームを廃棄する。ＷｅｓｔポートＩ／Ｆ部１１４は、フレームを廃棄しない場合、そのフレームをフレーム多重・分離制御部１１２に渡す。さらに、ＷｅｓｔポートＩ／Ｆ部１１４は、有効と認識したフレームをＷｅｓｔ側の検出部１０３にも転送する。送信処理では、ＷｅｓｔポートＩ／Ｆ部１１４は、フレーム多重・分離制御部１１２から転送されたフレームをＷｅｓｔ・ＰＨＹ部１１６に渡す。
【００５４】
ＥａｓｔポートＩ／Ｆ部１１５は、ＷｅｓｔポートＩ／Ｆ部１１４と同様の受信処理と送信処理とを実行する。受信処理では、ＥａｓｔポートＩ／Ｆ部１１５は、他の通信装置からＥａｓｔ・ＰＨＹ部１１７を介して受け取ったフレームを識別し、受け取ったフレームが有効であるか無効であるかをチェックする。ＥａｓｔポートＩ／Ｆ部１１５は、不正なプリアンブルを受け取った場合、又は、Ｅａｓｔ・ＰＨＹ部１１７からエラー信号を受け取った場合には、無効と認識してフレーム多重・分離制御部１１２に通知するか、或いは、フレームを廃棄する。ＥａｓｔポートＩ／Ｆ部１１５は、フレームを廃棄しない場合、そのフレームをフレーム多重・分離制御部１１２に渡す。さらに、ＥａｓｔポートＩ／Ｆ部１１５は、有効と認識したフレームをＥａｓｔ側の検出部１０３にも転送する。送信処理では、ＥａｓｔポートＩ／Ｆ部１１５は、フレーム多重・分離制御部１１２から転送されたフレームをＥａｓｔ・ＰＨＹ部１１７に渡す。
【００５５】
Ｗｅｓｔ・ＰＨＹ部１１６は、ＰＨＹレイヤ処理を実行する。ＰＨＹレイヤ処理では、Ｗｅｓｔ・ＰＨＹ部１１６は、ネットワークからＷｅｓｔリングポート１１８を介して受信した通信媒体用信号（ビット流）からビット単位でデータを抽出する。Ｗｅｓｔ・ＰＨＹ部１１６は、抽出したデータをＷｅｓｔポートＩ／Ｆ部１１４にフレームの形式で転送する。また、Ｗｅｓｔ・ＰＨＹ部１１６は、ＷｅｓｔポートＩ／Ｆ部１１４からのフレームを通信媒体用信号（ビット流）に変換し、Ｗｅｓｔリングポート１１８を介してネットワークへ送信する。
【００５６】
Ｅａｓｔ・ＰＨＹ部１１７は、Ｗｅｓｔ・ＰＨＹ部１１６と同様のＰＨＹレイヤ処理を実行する。ＰＨＹレイヤ処理では、Ｅａｓｔ・ＰＨＹ部１１７は、ネットワークからＥａｓｔリングポート１１９を介して受信した通信媒体用信号（ビット流）からビット単位でデータを抽出する。Ｅａｓｔ・ＰＨＹ部１１７は、抽出したデータをＥａｓｔポートＩ／Ｆ部１１５にフレームの形式で転送する。また、Ｅａｓｔ・ＰＨＹ部１１７は、ＥａｓｔポートＩ／Ｆ部１１５からのフレームを通信媒体用信号（ビット流）に変換し、Ｅａｓｔリングポート１１９を介してネットワークへ送信する。
【００５７】
検出部１０３は、ＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５から受け取ったフレームが誤りチェック対象の制御フレームかどうかを判定する。対象の制御フレームである場合に、検出部１０３は、記憶部１０１からパターン定義情報１５０を読み取り、パターン定義情報１５０で示される制御フレームと、受け取った制御フレームとをビット単位で比較して誤りがあるかどうかを判定する。
【００５８】
管理部１０４は、検出部１０３から誤り検出数、誤り位置等の結果を得て、誤りチェック結果情報として算出部１０５に出力する。
【００５９】
ステートマシン管理部１２０は、誤りチェックの対象となる制御フレームの学習を完了したかどうか、誤りチェックを実施してよいかどうかといった状態をステートマシンで管理する。ＲＰＲ制御処理部１１３から通知される情報に応じて状態が遷移する場合もある。例えば、誤りチェックを実施している状態でＲＰＲ制御処理部１１３から経路切り替えイベントが通知されると、制御フレームの学習を再度行うために、誤りチェックを実施しない状態への遷移が行われる。ステートマシンの詳細については後述する。
【００６０】
対象フレーム判定部１２１は、ＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５から転送されるフレームを監視する。対象フレーム判定部１２１は、転送されたフレームが誤りチェックの対象（特定種類のフレーム）となる条件（予め設定されているものとする）に合致する場合、そのフレームをフレーム情報比較部１２２に転送する。また、その場合、対象フレーム判定部１２１は、対象フレームの受信をステートマシン管理部１２０に通知するとともに、フレームに関して学習すべき情報を情報アクセス管理部１２３に通知する。学習すべき情報がどのような情報であるかは後述する。不一致の場合、対象フレーム判定部１２１は、そのフレームを廃棄する。
【００６１】
フレーム情報比較部１２２は、対象フレーム判定部１２１から転送されるフレームを取得する。また、フレーム情報比較部１２２は、情報アクセス管理部１２３からパターン定義情報１５０を取得する。フレーム情報比較部１２２は、対象フレーム判定部１２１から取得したフレームと、情報アクセス管理部１２３から取得したパターン定義情報１５０で示されるフレームとをビット単位で比較する。フレーム情報比較部１２２は、両フレームが一致するかどうかを判定し、その判定結果をチェック結果管理部１２４に渡す。フレーム情報比較部１２２は、ステートマシン管理部１２０からフレームの比較を停止するように指示された場合は、フレームを比較しない。
【００６２】
情報アクセス管理部１２３は、対象フレーム判定部１２１から通知される情報に基づき、制御フレームの学習を行う。即ち、情報アクセス管理部１２３は、対象フレーム判定部１２１が受け取った制御フレームを構成するビット列のパターンを抽出する。情報アクセス管理部１２３は、抽出したパターンを定義する情報を、パターン定義情報１５０として生成し、このパターン定義情報１５０を記憶部１０１に書き込む。なお、パターン定義情報１５０は、外部から記憶部１０１に書き込まれてもよい。情報アクセス管理部１２３は、記憶部１０１からパターン定義情報１５０を読み取ってフレーム情報比較部１２２に渡す。
【００６３】
チェック結果管理部１２４は、フレーム情報比較部１２２から通知された判定結果を、誤りチェック結果情報として算出部１０５に出力する。
【００６４】
図３は、ステートマシン管理部１２０のステートマシンの一例を示す図である。
【００６５】
図３において、ＩＤＬＥは、初期状態である。ＬＥＡＲＮＩＮＧは、制御フレームの学習を行っている状態である。ＣＨＥＣＫは、誤りチェックを実施している状態である。
【００６６】
ＩＤＬＥで誤りチェック対象の制御フレームが受信されると、ステートマシンの状態がＬＥＡＲＮＩＮＧに遷移する。ＬＥＡＲＮＩＮＧで制御フレームの学習が完了すると、ステートマシンの状態がＣＨＥＣＫに遷移する。ＣＨＥＣＫで経路切り替えイベントが通知されると、ステートマシンの状態がＩＤＬＥに遷移する。外部からの制御によって、ＩＤＬＥからＣＨＥＣＫへの遷移、或いは、ＣＨＥＣＫからＩＤＬＥへの遷移を強制することも可能とする。
【００６７】
ここでは、誤りチェック対象の制御フレームとして、ネットワーク上で通信装置１００に隣接する他の通信装置によって周期的に生成及び送信され、通信装置１００で終端するＳＣＦＦ（Ｓｉｎｇｌｅ・Ｃｈｏｋｅ・Ｆａｉｒｎｅｓｓ・Ｆｒａｍｅ）を利用するものとする。ＳＣＦＦは、キープアライブ用のフレームの一例である。なお、誤りチェック対象の制御フレームとして、ＳＣＦＦ以外の制御フレームを利用しても構わない。
【００６８】
情報アクセス管理部１２３は、記憶部１０１にＳＣＦＦを構成するビット列のパターンを定義するパターン定義情報１５０を登録する。パターン定義情報１５０は、全体が情報アクセス管理部１２３により作成されてもよいが、ここでは、値が変更可能な箇所（例えば、送信元ＭＡＣアドレス）以外の不変な情報が外部から事前に登録されているものとする。情報アクセス管理部１２３は、対象フレーム判定部１２１からＳＣＦＦに関して学習すべき情報を受け取ると、その情報からＳＣＦＦの値が変更可能な箇所について自動的に学習する。例えば、情報アクセス管理部１２３は、対象フレーム判定部１２１からＳＣＦＦに含まれる送信元ＭＡＣアドレスのビット列を受け取ってメモリに格納する。情報アクセス管理部１２３は、ＳＣＦＦに含まれる送信元ＭＡＣアドレスのビット列を受け取る度に、前回メモリに格納したビット列と比較する。情報アクセス管理部１２３は、Ｎ回（ここでは、一例として、Ｎ＝３とする）連続で同じ送信元ＭＡＣアドレスのビット列を受け取った場合、そのビット列が正規のものであると判断し、学習が完了したことをステートマシン管理部１２０に通知する。ステートマシン管理部１２０は、情報アクセス管理部１２３からの通知を受けると、ステートマシンの状態をＬＥＡＲＮＩＮＧからＣＨＥＣＫに遷移させる。そして、ステートマシン管理部１２０は、フレーム情報比較部１２２に対し、誤りチェックを実施するように指示する。
【００６９】
学習済の情報に変更があった場合は、誤りチェックを一旦停止させる必要がある。例えば、ＲＰＲ制御処理部１１３でプロテクション機能による通信経路の切り替えが行われ、ＲＰＲ制御処理部１１３から経路切り替えイベントが通知されたときは、ＳＣＦＦの送信元が変わる可能性がある。そのため、ステートマシン管理部１２０は、ステートマシンの状態をＣＨＥＣＫからＩＤＬＥに遷移させる。そして、ステートマシン管理部１２０は、フレーム情報比較部１２２に対し、誤りチェックを停止するように指示するとともに、情報アクセス管理部１２３に対し、制御フレームの学習を再度行うように指示する。なお、外部から強制的に状態をＣＨＥＣＫからＩＤＬＥに遷移させてもよい（外部からの強制クリア指示による学習解除イベント）。
【００７０】
ステートマシンの状態はＩＤＬＥからスタートするが、外部からパターン定義情報１５０の全体が登録された場合は、制御フレームの学習が不要となる。その場合、外部から強制的に状態をＩＤＬＥからＣＨＥＣＫに遷移させることで（外部からの強制設定による学習済イベント）、直ちに誤りチェックを実施することが可能である。
【００７１】
このように、本実施の形態では、既存のネットワーク制御プロトコルに則って生成される制御フレームを利用して、ビット単位で誤りの有無を判定する。よって、新たなフレームフォーマットを追加することなく（開発コストが抑えられる）、フレーム単位で誤りの有無を判定する場合よりも高精度に誤りを検出することができる。
【００７２】
また、本実施の形態では、制御フレームに誤りがあるかどうか判定する際に、パターン定義情報１５０を利用する。ネットワークの構成に変更があった場合（例えば、通信装置１００に隣接する通信装置が変更されたことに伴い、ＳＣＦＦの送信元ＭＡＣアドレスにも変更がある場合）、ネットワーク制御プロトコルのイベントを利用して、パターン定義情報１５０を自動的に更新する。よって、ネットワークの変化にも追従することができる。
【００７３】
ネットワーク制御プロトコルは、一般的に、高信頼性が求められるネットワークに適用される。ネットワーク制御プロトコルを適用すれば、障害を検知することはできるが、それが遅延等の通信上の不具合によるものなのか、通信ケーブルや通信モジュール等の経年劣化によるものなのかを判別することは困難である。しかし、本実施の形態では、ビット単位でチェックした誤りの情報に基づいて、伝送路の品質を詳細かつ継続的に分析すること（例えば、ＢＥＲの算出、フレームの中で同時に発生したビット誤り数が閾値を超過していないかどうかの判定、複数フレームの同一箇所に発生するビット誤りの回数が閾値を超過していないかどうかの判定）ができる。品質の変化を観察することで、通信ケーブルや通信モジュール等の交換のタイミングを予測したり、決定したりすることが可能となる。
【００７４】
なお、本実施の形態において、誤りチェック対象とする制御フレームは、レイヤ２（ＭＡＣ層）のネットワーク制御プロトコルの制御フレームに限らず、レイヤ３（ネットワーク層）、或いは、それより上位のレイヤのネットワーク制御プロトコルの制御フレームであってもよい。
【００７５】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００７６】
図４は、本実施の形態に係る通信装置１００の構成例を示すブロック図である。
【００７７】
図４において、通信装置１００は、図１に示した実施の形態１のものと同様に、記憶部１０１、通信部１０２、検出部１０３、管理部１０４、算出部１０５を備える。
【００７８】
通信部１０２は、図１に示した実施の形態１のものと同様に、上位レイヤ処理部１１１、フレーム多重・分離制御部１１２、ＷｅｓｔポートＩ／Ｆ部１１４、ＥａｓｔポートＩ／Ｆ部１１５、Ｗｅｓｔ・ＰＨＹ部１１６、Ｅａｓｔ・ＰＨＹ部１１７、Ｗｅｓｔリングポート１１８、Ｅａｓｔリングポート１１９を備える。フレーム多重・分離制御部１１２は、ＲＰＲ制御処理部１１３を有する。
【００７９】
検出部１０３は、図１に示した実施の形態１のものと同様に、対象フレーム判定部１２１、フレーム情報比較部１２２を備える。
【００８０】
管理部１０４は、図１に示した実施の形態１のものと同様に、ステートマシン管理部１２０、情報アクセス管理部１２３、チェック結果管理部１２４を備えるほか、さらに、ＲＰＲ制御イベント・データ生成部１２５を備える。
【００８１】
実施の形態１では、ＲＰＲ制御処理部１１３が、制御フレームに含まれる情報を管理部１０４に通知する。一方、本実施の形態では、管理部１０４が備えるＲＰＲ制御イベント・データ生成部１２５が、制御フレームに含まれる情報を独自に取得する。そのため、ＲＰＲ制御処理部１１３から管理部１０４への情報通知が不要となる。
【００８２】
本実施の形態では、ＷｅｓｔポートＩ／Ｆ部１１４及びＥａｓｔポートＩ／Ｆ部１１５が、受信処理において、Ｗｅｓｔ・ＰＨＹ部１１６又はＥａｓｔ・ＰＨＹ部１１７から受け取り、有効と認識したフレームを検出部１０３だけでなく、管理部１０４にも転送する。
【００８３】
ＲＰＲ制御イベント・データ生成部１２５は、ＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５から転送されるフレームを監視する。ＲＰＲ制御イベント・データ生成部１２５は、転送されたフレームが制御フレームであれば、制御フレームに含まれる情報からイベント及びデータを生成する。例えば、ＲＰＲ制御イベント・データ生成部１２５は、障害の発生を通知する制御フレーム（障害通知フレーム）を受け取ると、ＲＰＲ制御処理部１１３のプロテクション機能により通信経路が切り替えられると判断して、経路切り替えイベントをステートマシン管理部１２０に通知する。
【００８４】
図５は、ステートマシン管理部１２０のステートマシンの一例を示す図である。
【００８５】
図５において、ＩＤＬＥ、ＬＥＡＲＮＩＮＧ、ＣＨＥＣＫは、いずれも図３に示した例と同じ状態である。
【００８６】
図３に示した例と同様に、ＩＤＬＥで誤りチェック対象の制御フレームが受信されると、ステートマシンの状態がＬＥＡＲＮＩＮＧに遷移する。ＬＥＡＲＮＩＮＧで制御フレームの学習が完了すると、ステートマシンの状態がＣＨＥＣＫに遷移する。ＣＨＥＣＫで経路切り替えイベントが通知されると、ステートマシンの状態がＩＤＬＥに遷移する。外部からの制御によって、ＩＤＬＥからＣＨＥＣＫへの遷移、或いは、ＣＨＥＣＫからＩＤＬＥへの遷移を強制することも可能とする。
【００８７】
学習済の情報に変更があった場合は、誤りチェックを一旦停止させる必要がある。例えば、ＲＰＲ制御イベント・データ生成部１２５から経路切り替えイベントが通知されたときは、ＳＣＦＦの送信元が変わる可能性がある。そのため、ステートマシン管理部１２０は、ステートマシンの状態をＣＨＥＣＫからＩＤＬＥに遷移させる。そして、ステートマシン管理部１２０は、フレーム情報比較部１２２に対し、誤りチェックを停止するように指示するとともに、情報アクセス管理部１２３に対し、制御フレームの学習を再度行うように指示する。なお、外部から強制的に状態をＣＨＥＣＫからＩＤＬＥに遷移させてもよい（外部からの強制クリア指示による学習解除イベント）。
【００８８】
本実施の形態では、実施の形態１と同様に、新たなフレームフォーマットを追加することなく、フレーム単位で誤りの有無を判定する場合よりも高精度に誤りを検出することができる。さらに、本実施の形態では、実施の形態１におけるＲＰＲ制御処理部１１３の機能の一部を管理部１０４に組み入れることで、フレーム内のビット誤りを判定する機能と、通信部１０２との独立性を保つことができる。そのため、通信部１０２として既存の通信モジュールを変更することなく適用して、フレーム内のビット誤りを判定する機能を実装することが可能となる。
【００８９】
実施の形態３．
本実施の形態について、主に実施の形態１との差異を説明する。
【００９０】
図６は、本実施の形態に係る通信装置１００の構成例を示すブロック図である。
【００９１】
図６において、通信装置１００は、図１に示した実施の形態１のものと同様に、記憶部１０１、通信部１０２、検出部１０３、管理部１０４、算出部１０５を備える。
【００９２】
本実施の形態では、ネットワークの一例として、ＥＲＰ（Ｅｔｈｅｒｎｅｔ・Ｒｉｎｇ・Ｐｒｏｔｅｃｔｉｏｎ）ネットワークを適用するものとする。トポロジは、二重リングである。
【００９３】
通信部１０２は、図１に示した実施の形態１のものと同様に、上位レイヤ処理部１１１、フレーム多重・分離制御部１１２、ＷｅｓｔポートＩ／Ｆ部１１４、ＥａｓｔポートＩ／Ｆ部１１５、Ｗｅｓｔ・ＰＨＹ部１１６、Ｅａｓｔ・ＰＨＹ部１１７、Ｗｅｓｔリングポート１１８、Ｅａｓｔリングポート１１９を備える。本実施の形態では、フレーム多重・分離制御部１１２が、図１に示したＲＰＲ制御処理部１１３の代わりに、ＥＲＰ制御処理部１３３を有する。
【００９４】
検出部１０３は、図１に示した実施の形態１のものと同様に、対象フレーム判定部１２１、フレーム情報比較部１２２を備える。
【００９５】
管理部１０４は、図１に示した実施の形態１のものと同様に、ステートマシン管理部１２０、情報アクセス管理部１２３、チェック結果管理部１２４を備える。
【００９６】
ＥＲＰ制御処理部１３３は、フレーム多重・分離制御部１１２の内部にあり、ネットワーク制御プロトコルであるＥＲＰの制御を担っている。ＥＲＰ制御処理部１３３は、プロテクション機能、フレームフォワーディング機能を有する。プロテクション機能とは、障害を検出し、ＥＲＰ規格に従った手順で障害発生経路を迂回するために通信経路を切り替える機能である。フレームフォワーディング機能とは、ＦＤＢ（Ｆｏｒｗａｒｄｉｎｇ・ＤａｔａＢａｓｅ）を利用して、他の通信装置から受け取ったフレームを上位レイヤ処理部１１１とＷｅｓｔポートＩ／Ｆ部１１４とＥａｓｔポートＩ／Ｆ部１１５とのいずれに転送するか判断する機能である。さらに、ＥＲＰ制御処理部１３３は、上記の各機能のためにＥＲＰで規定された制御フレームを生成してＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５に転送する。ＥＲＰ制御処理部１３３は、制御フレームを受け取った場合、その制御フレームに含まれる情報を管理部１０４に通知する。例えば、ＥＲＰ制御処理部１３３は、障害の発生を通知する制御フレーム（障害通知フレーム）を受け取ると、プロテクション機能により通信経路を切り替えるとともに、経路切り替えイベントをステートマシン管理部１２０に通知する。
【００９７】
図７は、ステートマシン管理部１２０のステートマシンの一例を示す図である。
【００９８】
図７において、ＩＤＬＥ、ＬＥＡＲＮＩＮＧ、ＣＨＥＣＫは、いずれも図３に示した例と同じ状態である。
【００９９】
図３に示した例と同様に、ＩＤＬＥで誤りチェック対象の制御フレームが受信されると、ステートマシンの状態がＬＥＡＲＮＩＮＧに遷移する。ＬＥＡＲＮＩＮＧで制御フレームの学習が完了すると、ステートマシンの状態がＣＨＥＣＫに遷移する。ＣＨＥＣＫで経路切り替えイベントが通知されると、ステートマシンの状態がＩＤＬＥに遷移する。外部からの制御によって、ＩＤＬＥからＣＨＥＣＫへの遷移、或いは、ＣＨＥＣＫからＩＤＬＥへの遷移を強制することも可能とする。
【０１００】
ここでは、誤りチェック対象の制御フレームとして、ネットワーク上で通信装置１００に隣接する他の通信装置によって周期的に生成及び送信され、通信装置１００で終端するＣＣＭ（Ｃｏｎｔｉｎｕｉｔｙ・Ｃｈｅｃｋ・Ｍｅｓｓａｇｅ）を利用するものとする。ＣＣＭは、キープアライブ用のフレームの一例である。なお、誤りチェック対象の制御フレームとして、ＣＣＭ以外の制御フレームを利用しても構わない。
【０１０１】
図３に示した例との主な違いは、ＳＣＦＦの代わりに、ＣＣＭを誤りチェック対象の制御フレームとしていることであり、状態遷移のしかたについては、図３に示した例と同様である。
【０１０２】
本例においても、学習済の情報に変更があった場合は、誤りチェックを一旦停止させる必要がある。例えば、ＥＲＰ制御処理部１３３でプロテクション機能による通信経路の切り替えが行われ、ＥＲＰ制御処理部１３３から経路切り替えイベントが通知されたときは、ＣＣＭの送信元が変わる可能性がある。そのため、ステートマシン管理部１２０は、ステートマシンの状態をＣＨＥＣＫからＩＤＬＥに遷移させる。そして、ステートマシン管理部１２０は、フレーム情報比較部１２２に対し、誤りチェックを停止するように指示するとともに、情報アクセス管理部１２３に対し、制御フレームの学習を再度行うように指示する。なお、外部から強制的に状態をＣＨＥＣＫからＩＤＬＥに遷移させてもよい（外部からの強制クリア指示による学習解除イベント）。
【０１０３】
このように、本実施の形態では、実施の形態１と同様に、既存のネットワーク制御プロトコルに則って生成される制御フレームを利用して、ビット単位で誤りの有無を判定する。よって、新たなフレームフォーマットを追加することなく（開発コストが抑えられる）、フレーム単位で誤りの有無を判定する場合よりも高精度に誤りを検出することができる。
【０１０４】
実施の形態４．
本実施の形態について、主に実施の形態３との差異を説明する。
【０１０５】
図８は、本実施の形態に係る通信装置１００の構成例を示すブロック図である。
【０１０６】
図８において、通信装置１００は、図６に示した実施の形態３のものと同様に、記憶部１０１、通信部１０２、検出部１０３、管理部１０４、算出部１０５を備える。
【０１０７】
通信部１０２は、図６に示した実施の形態３のものと同様に、上位レイヤ処理部１１１、フレーム多重・分離制御部１１２、ＷｅｓｔポートＩ／Ｆ部１１４、ＥａｓｔポートＩ／Ｆ部１１５、Ｗｅｓｔ・ＰＨＹ部１１６、Ｅａｓｔ・ＰＨＹ部１１７、Ｗｅｓｔリングポート１１８、Ｅａｓｔリングポート１１９を備える。フレーム多重・分離制御部１１２は、ＥＲＰ制御処理部１３３を有する。
【０１０８】
検出部１０３は、図６に示した実施の形態３のものと同様に、対象フレーム判定部１２１、フレーム情報比較部１２２を備える。
【０１０９】
管理部１０４は、図６に示した実施の形態３のものと同様に、ステートマシン管理部１２０、情報アクセス管理部１２３、チェック結果管理部１２４を備えるほか、さらに、ＥＲＰ制御イベント・データ生成部１３５を備える。
【０１１０】
実施の形態３では、ＥＲＰ制御処理部１３３が、制御フレームに含まれる情報を管理部１０４に通知する。一方、本実施の形態では、管理部１０４が備えるＥＲＰ制御イベント・データ生成部１３５が、制御フレームに含まれる情報を独自に取得する。そのため、ＥＲＰ制御処理部１３３から管理部１０４への情報通知が不要となる。
【０１１１】
本実施の形態では、ＷｅｓｔポートＩ／Ｆ部１１４及びＥａｓｔポートＩ／Ｆ部１１５が、受信処理において、Ｗｅｓｔ・ＰＨＹ部１１６又はＥａｓｔ・ＰＨＹ部１１７から受け取り、有効と認識したフレームを検出部１０３だけでなく、管理部１０４にも転送する。
【０１１２】
ＥＲＰ制御イベント・データ生成部１３５は、ＷｅｓｔポートＩ／Ｆ部１１４又はＥａｓｔポートＩ／Ｆ部１１５から転送されるフレームを監視する。ＥＲＰ制御イベント・データ生成部１３５は、転送されたフレームが制御フレームであれば、制御フレームに含まれる情報からイベント及びデータを生成する。例えば、ＥＲＰ制御イベント・データ生成部１３５は、障害の発生を通知する制御フレーム（障害通知フレーム）を受け取ると、ＥＲＰ制御処理部１３３のプロテクション機能により通信経路が切り替えられると判断して、経路切り替えイベントをステートマシン管理部１２０に通知する。
【０１１３】
ステートマシン管理部１２０のステートマシンとしては、例えば、図５に示したものを適用することができる。ただし、図７に示した例と同様に、ＳＣＦＦの代わりに、ＣＣＭを誤りチェック対象の制御フレームとする。
【０１１４】
本例においても、学習済の情報に変更があった場合は、誤りチェックを一旦停止させる必要がある。例えば、ＥＲＰ制御イベント・データ生成部１３５から経路切り替えイベントが通知されたときは、ＣＣＭの送信元が変わる可能性がある。そのため、ステートマシン管理部１２０は、ステートマシンの状態をＣＨＥＣＫからＩＤＬＥに遷移させる。そして、ステートマシン管理部１２０は、フレーム情報比較部１２２に対し、誤りチェックを停止するように指示するとともに、情報アクセス管理部１２３に対し、制御フレームの学習を再度行うように指示する。なお、外部から強制的に状態をＣＨＥＣＫからＩＤＬＥに遷移させてもよい（外部からの強制クリア指示による学習解除イベント）。
【０１１５】
本実施の形態では、実施の形態３と同様に、新たなフレームフォーマットを追加することなく、フレーム単位で誤りの有無を判定する場合よりも高精度に誤りを検出することができる。さらに、本実施の形態では、実施の形態３におけるＥＲＰ制御処理部１３３の機能の一部を管理部１０４に組み入れることで、フレーム内のビット誤りを判定する機能と、通信部１０２との独立性を保つことができる。そのため、通信部１０２として既存の通信モジュールを変更することなく適用して、フレーム内のビット誤りを判定する機能を実装することが可能となる。
【０１１６】
なお、ビット単位で誤りの有無を判定するために、実施の形態１，２ではＲＰＲの制御フレーム（例えば、ＳＣＦＦ）、実施の形態３，４ではＥＲＰの制御フレーム（例えば、ＣＣＭ）を利用しているが、他のネットワーク制御プロトコルの制御フレームを利用してもよい。例えば、レイヤ３におけるネットワーク制御プロトコルであるＯＳＰＦ（Ｏｐｅｎ・Ｓｈｏｒｔｅｓｔ・Ｐａｔｈ・Ｆｉｒｓｔ）の制御フレームを利用することもできる。
【０１１７】
図９は、本発明の実施の形態に係る通信装置１００のハードウェア構成の一例を示す図である。
【０１１８】
図９において、通信装置１００は、コンピュータであり、出力装置９１０、入力装置９２０、記憶装置９３０、処理装置９４０といったハードウェアを備える。ハードウェアは、通信装置１００の各部（本発明の実施の形態の説明において「部」として説明するもの）によって利用される。
【０１１９】
出力装置９１０は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）等の表示装置、プリンタ、通信モジュール（通信回路等）である。出力装置９１０は、本発明の実施の形態の説明において「部」として説明するものによってデータ、情報、信号の出力（送信）のために利用される。通信部１０２は、出力装置９１０（特に、通信モジュール）により実装することができる。
【０１２０】
入力装置９２０は、例えば、キーボード、マウス、タッチパネル、通信モジュール（通信回路等）である。入力装置９２０は、本発明の実施の形態の説明において「部」として説明するものによってデータ、情報、信号の入力（受信）のために利用される。
【０１２１】
記憶装置９３０は、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ・Ｓｔａｔｅ・Ｄｒｉｖｅ）である。記憶装置９３０には、プログラム９３１、ファイル９３２が記憶される。プログラム９３１には、本発明の実施の形態の説明において「部」として説明するものの処理（機能）を実行するプログラム（通信プログラム）が含まれる。ファイル９３２には、本発明の実施の形態の説明において「部」として説明するものによって演算、加工、読み取り、書き込み、利用、入力、出力等が行われるデータ、情報、信号（値）等が含まれる。記憶部１０１は、記憶装置９３０により実装することができる。
【０１２２】
処理装置９４０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。処理装置９４０は、バス等を介して他のハードウェアデバイスと接続され、それらのハードウェアデバイスを制御する。処理装置９４０は、記憶装置９３０からプログラム９３１を読み出し、プログラム９３１を実行する。処理装置９４０は、本発明の実施の形態の説明において「部」として説明するものによって演算、加工、読み取り、書き込み、利用、入力、出力等を行うために利用される。検出部１０３、管理部１０４、算出部１０５は、処理装置９４０により実装することができる。
【０１２３】
本発明の実施の形態の説明において「部」として説明するものは、「部」を「回路」、「装置」、「機器」に読み替えたものであってもよい。また、本発明の実施の形態の説明において「部」として説明するものは、「部」を「工程」、「手順」、「処理」に読み替えたものであってもよい。即ち、本発明の実施の形態の説明において「部」として説明するものは、ソフトウェアのみ、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせで実現される。ソフトウェアは、プログラム９３１として、記憶装置９３０に記憶される。プログラム９３１は、本発明の実施の形態の説明において「部」として説明するものとしてコンピュータを機能させるものである。或いは、プログラム９３１は、本発明の実施の形態の説明において「部」として説明するものの処理をコンピュータに実行させるものである。
【０１２４】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか１つ又はいくつかを部分的に実施しても構わない。例えば、これらの実施の形態の説明において「部」として説明するもののうち、いずれか１つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１２５】
１００  通信装置、１０１  記憶部、１０２  通信部、１０３  検出部、１０４  管理部、１０５  算出部、１１１  上位レイヤ処理部、１１２  フレーム多重・分離制御部、１１３  ＲＰＲ制御処理部、１１４  ＷｅｓｔポートＩ／Ｆ部、１１５  ＥａｓｔポートＩ／Ｆ部、１１６  Ｗｅｓｔ・ＰＨＹ部、１１７  Ｅａｓｔ・ＰＨＹ部、１１８  Ｗｅｓｔリングポート、１１９  Ｅａｓｔリングポート、１２０  ステートマシン管理部、１２１  対象フレーム判定部、１２２  フレーム情報比較部、１２３  情報アクセス管理部、１２４  チェック結果管理部、１２５  ＲＰＲ制御イベント・データ生成部、１３３  ＥＲＰ制御処理部、１３５  ＥＲＰ制御イベント・データ生成部、１５０  パターン定義情報、９１０  出力装置、９２０  入力装置、９３０  記憶装置、９３１  プログラム、９３２  ファイル、９４０  処理装置。
【図１】
2015228599.tif 000003
【図２】
2015228599.tif 000004
【図３】
2015228599.tif 000005
【図４】
2015228599.tif 000006
【図５】
2015228599.tif 000007
【図６】
2015228599.tif 000008
【図７】
2015228599.tif 000009
【図８】
2015228599.tif 000010
【図９】
2015228599.tif 000011
【図１０】
2015228599.tif 000012