(57)【要約】【課題】複数の通信ポートを備える処理装置において、一方の通信ポートにストームが発生し、パケットの送受信ができなくなった場合、処理装置内のＣＰＵの処理負荷が急増するため、その他の通信ポートも、パケットの送受信ができなくなる。【解決手段】ストームが発生した通信ポート上で、一定周期時間当たりに受信するパケットの合計数および合計データ容量の少なくとも一方に閾値を設け、受信するパケットがその閾値を上回った場合に、パケットの送受信を停止させることにより、処理装置内のＣＰＵの処理負荷を低下させ、その他の通信ポート上でパケットの送受信を継続する。【選択図】図４
2018117270.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信ポートを備える処理装置であって、
前記複数の通信ポートはそれぞれ異なるネットワークに接続され、
前記通信ポート毎に、一定周期時間当たりに受信するパケットの合計数および合計パケット容量の少なくとも一方に対して閾値を設け、
前記複数の通信ポートのいずれかの通信ポートが受信する前記一定周期時間当たりのパケットが前記閾値を超えたことを検出すると、前記閾値を超えている期間中は当該通信ポートによるパケットの送受信を停止する
ことを特徴とする処理装置。
【請求項２】
請求項１に記載の処理装置であって、
前記通信ポート毎に、前記ネットワークから送られてくる前記パケットを常時監視し、
前記パケットの送受信を停止している前記通信ポートに送られてくる前記パケットが前記閾値を下回ると、当該通信ポートは前記パケットの送受信を再開する
ことを特徴とする処理装置。
【請求項３】
請求項１または２に記載の処理装置であって、
前記通信ポートは、受信ＦＩＦＯを有する通信ＬＳＩにより構成される
ことを特徴とする処理装置。
【請求項４】
請求項１〜３のいずれか一項に記載の処理装置であって、
前記異なるネットワークは、鉄道の信号システムに用いる冗長化ネットワークである
ことを特徴とする処理装置。
【請求項５】
異なるネットワーク毎に送受信するパケットの処理方法であって、
前記異なるネットワーク毎に一定周期時間当たりに受信する前記パケットの合計数および合計パケット容量の少なくとも一方に対して閾値を設けるステップと、
前記異なるネットワーク毎に受信する前記パケットを常時監視するステップと、
前記異なるネットワーク毎に受信する前記パケットが前記一定周期時間当たりに前記閾値を超えることを検出すると、前記閾値を超えている期間中は当該パケットを送信したネットワークとのパケットの送受信を停止させるステップと
を有するパケットの処理方法。
【請求項６】
請求項５に記載のパケットの処理方法であって、
前記パケットの送受信を停止させた前記ネットワークが送信するパケットが前記閾値を下回ると、当該ネットワークとのパケットの送受信を再開させるステップを
更に有するパケットの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信ポートを有するネットワーク上の処理装置およびパケットの処理方法に関する。
【背景技術】
【０００２】
ネットワーク上に接続した処理装置やスイッチングハブが故障した場合、誤って大量のパケットをネットワーク上にブロードキャストで送信する場合がある。その大量のパケットを、制御を継続しているネットワーク上の他の処理装置が受信すると、受信処理の負荷が急増し、制御を継続できない可能性がある。
【０００３】
この対策として、特許文献１では、Ｄｏｓ攻撃等により過剰通信の状況にある場合において、システムダウンすることなく、通信相手からの受信パケットを廃棄し、制御装置の制御を継続する技術が示されている。そのために、特許文献１に示される技術は、ストームが発生すると、受信するパケットを間引いて制御を継続させるものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５４５７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の通信ポートを備える処理装置に対して、ネットワーク上にブロードキャストで大量にパケットが流れる、ブロードキャストストーム（以下、「ストーム」と略す）が発生すると、そのネットワーク上の処理装置が大量のパケットを受信するため、該処理装置は、その処理負荷が急増し、処理動作に遅延を来し、更にはパケットの受信漏れが発生するため、最終的には、制御動作を停止し、制御不能に陥る。
この対策として、複数の通信ポートを有する処理装置が、１つの通信ポートで大量のパケットを受信しても、パケットの受信を遮断し、他の通信ポートで制御を継続する方法を検討する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、複数の通信ポートを備える処理装置であって、複数の通信ポートはそれぞれ異なるネットワークに接続され、通信ポート毎に、一定周期時間当たりに受信するパケットの合計数および合計パケット容量の少なくとも一方に対して閾値を設け、複数の通信ポートのいずれかの通信ポートが受信する一定周期時間当たりのパケットが閾値を超えたことを検出すると、閾値を超えている期間中は通信ポートによるパケットの送受信を停止することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ストーム発生時に、ストームを受信した通信ポートからパケットを受信することを遮断し、ストームが発生していない通信ポートからパケットを受信することを継続するため、処理装置全体として動作制御を継続することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施例に係るシステムの構成を示す図である。
【図２】図２は、本発明の実施例に係るソフトウェアのアーキテクチャ構成を示す図である。
【図３】図３は、ストームの検出、継続および解除の流れを示す図である。
【図４】図４は、ソフトウェア領域とハードウェア領域の観点で、ストームの検出および解除の方法を示す図である。
【図５】図５は、パケットの種類によって、該パケットを処理するか廃棄するかを示す図である。
【発明を実施するための形態】
【０００９】
本発明を実施するための形態として、本発明の実施例について、図を参照しながら以下に説明する。
【実施例】
【００１０】
図１は、本発明の実施例に係り、処理装置を用いたシステムの構成を示す図である。
各処理装置は複数の通信ポートを有し、実施例では、処理装置Ａ１０１および処理装置Ｂ１０２は、それぞれ２つの通信ポート１０８と１０９、１１０と１１１を有する。
【００１１】
処理装置Ａ１０１および処理装置Ｂ１０２は、それぞれ異なるネットワーク１０６および１０７に接続される。処理装置Ａ１０１の２つの通信ポート１０８および１０９は、それぞれネットワーク１０６およびネットワーク１０７に接続され、処理装置Ｂ１０２の２つの通信ポート１１０および１１１は、それぞれネットワーク１０６およびネットワーク１０７に接続される。また、処理装置Ｃ１０３、処理装置Ｄ１０４および処理装置Ｅ１０５についても同様に、それぞれ異なるネットワーク１０６および１０７に接続される。
【００１２】
処理装置Ａ１０１は、同じデータをパケットとして、異なる通信ポート１０８および１０９を通じて、異なるネットワーク１０６および１０７と送受信する。また、他の処理装置（Ｂ１０２、Ｃ１０３、Ｄ１０４およびえ１０５）についても同様に、異なる通信ポートを通して、異なるネットワーク１０６および１０７上に同じデータをパケットとして送受信する。すなわち、異なるネットワーク１０６および１０７に同じデータを送信することにより、一つの通信ポートにパケットが届かない場合であっても、もう一方の通信ポートにパケットが届けば、処理装置として、制御可能となる。このようなシステム構成を採用する一例としては、例えば鉄道の信号システムのように、ネットワークを冗長化（２重化）しているケースがある。
【００１３】
しかし、ブロードキャストストーム（以下、「ストーム」と略す）が発生すると、各処理装置が大量のパケットを受信することとなり、ハードウェアの性能低下により大量のパケットを処理しきれず、処理装置が停止してしまう事態に陥る。そのために、一方のネットワーク上でストームが発生したとしても、他方のネットワーク上に影響しないように別々のネットワークになっているが、処理装置自体が処理しきれず、ストームが発生していない通信ポートも処理できない。
【００１４】
そこで、そのような事態に対処するために、ストームが発生したネットワークに接続している通信ポートについては、パケットが流れ込まないように通信を遮断し、もう一方の通信ポートについては制御可能とする。
【００１５】
図２は、各処理装置が備えるソフトウェアのアーキテクチャ構成例を示す図である。
処理装置２０１が備えるソフトウェアの例として、アプリケーション２０２、ミドルウェア２０３、通信を処理するプロトコルマネージャ２０４、通信ＬＳＩ２０８および２０９を制御するドライバ２０５、ＣＰＵ２０７の動きを制御するＯＳ２０６がある。また、処理装置２０１が備えるハードウェアの例として、ＣＰＵ２０７、パケットの送受信を制御する通信ＬＳＩ２０８および２０９がある。すなわち、処理装置は、通信ポートを複数備え、通信ポートの数だけ通信ＬＳＩを有する。実施例では、処理装置２０１が２つの通信ＬＳＩ２０８および２０９を備えることを前提にする。なお、ハードウェアとしてあるべきメモリについては省略することとする。
【００１６】
処理装置は、通信ポート上でパケットの合計数および合計データ容量の少なくともいずれかが、ある一定周期時間内にある閾値を超えた場合、ストームを検出したと判断し、パケットの送受信を停止する。また、処理装置は、ある一定周期時間内に、引続きストームを検出した場合、パケットの送受信を継続する。そして、処理装置は、通信ポート上でパケットの合計数および合計データ容量の少なくともいずれかがある閾値を下回った場合、ストームは解除したと判断し、パケットの送受信を再開する。
【００１７】
図３は、そのストーム発生時の検出、継続および解除の流れを示す図である。
周期時間Ｔ０内において、ストーム発生の有無を監視する。周期時間Ｔ０の終了時点でストームの発生が無い場合は、引き続きストーム発生の有無を周期時間Ｔ０で監視する。ある通信ポート上で、パケットの合計数および合計データ容量の少なくともいずれかがある閾値を超えた場合、ストーム発生と判断し、閾値を超えた通信ポート上のパケットの送受信を停止する。ここで、周期時間Ｔ０と閾値は、処理装置のハードウェア性能とシステム上に流れるパケット数に応じて決定する必要があり、システムに応じて個別に決定する。
【００１８】
次に、ストーム継続について述べる。ストーム発生後は、周期時間Ｔ１を用いて、ストーム状態の継続を監視する。パケットの合計数および合計データ容量の少なくともいずれかが閾値を引続き超えた場合は、ストーム継続中と判断し、引続き周期時間Ｔ１内でストーム発生の有無を監視する。パケットの合計数および合計データ容量の少なくともいずれかが閾値を下回った場合、ストームが停止し、ストームは解除されたと判断し、周期時間Ｔ１の終了時点からパケットの送受信を再開する。その後は、引続き周期時間Ｔ０でストーム発生の有無を監視する。
【００１９】
このようにして、ストームを検出した通信ポートは、ストームが解除されるまでパケットの送受信を停止するが、ストームを検出していない通信ポートは、ストームを検出した通信ポートの影響を受けることなく、引続きパケットの送受信を継続することができる。ここで、ストーム発生の有無を監視する周期期間Ｔ０とストーム状態の継続を監視する周期期間Ｔ１との関係は、Ｔ０≦Ｔ１であり、Ｔ１をＴ０より大きくする理由は、ストーム発生後にストーム状態であるか否かの切り替わりが頻繁に変動することを抑制するための措置である。
【００２０】
図４は、ソフトウェア領域４０１とハードウェア領域４０２の観点で、本発明に係るストーム検出および解除の方法を示す図である。
ソフトウェア領域４０１で管理する受信バッファ４０３に格納する受信パケット数およびハードウェア領域４０２で管理する受信ＦＩＦＯ４０４に格納する受信パケット数を監視することにより、ストームの発生を検出する。
【００２１】
図４の（１）に示す、ストーム発生無しの場合には、パケット４０５を受信した後、受信ＦＩＦＯ４０４に格納し、ハードウェア領域４０２からソフトウェア領域４０１へパケット４０５を転送し、受信バッファ４０３へ格納する。ストームが発生していないため、すべてのパケット４０５を受信バッファ４０３に格納することになる。
【００２２】
図４の（２）に示す、ストーム発生時には、大量のパケット４０５を受信ＦＩＦＯ４０４へ格納しようとするが、受信ＦＩＦＯ４０４がオーバーフローすることにより、図４の（２）で「Ａ」として示す分のパケットが廃棄される（このような廃棄処理は、例えばオーバーフロー検出による割り込み処理等により実行される）。廃棄されないパケット４０５は受信バッファ４０３へ格納されることになる。ストーム検出のための閾値としては、受信バッファ４０３に格納されるパケット数４１３と廃棄パケット数４１２の合計数（すなわち、受信ＦＩＦＯ４０４が受信するパケット数）を用いるか、あるいは受信パケットの合計データ容量の少なくとも一方を用いる。
【００２３】
図４の（３）に示す、ストーム検出後にパケットの送受信を停止した場合には、ハードウェア４０２の受信ＦＩＦＯ４０４はパケット４０５を受信するが、受信バッファ４０３へは格納されず、図４の（３）で「Ｂ」として示す全てのパケット４０５を廃棄する。
【００２４】
図４の（４）に示す、ストーム解除後には、引続き受信したパケット４０５を受信ＦＩＦＯ４０４から受信バッファ４０３へ転送する。
【００２５】
図５は、受信するパケットの種類によって、該パケットを処理するか廃棄するかを示す図である。
処理装置５０１は、通信ＬＳＩ５０２およびＣＰＵ５０３から構成され、通信ＬＳＩ５０２は、メモリとして受信ＦＩＦＯ５０５を有し、ＣＰＵ５０３は、パケット受信用としてメモリ５０４および受信バッファ５０６を有する。
【００２６】
パケットの種類としては、異常パケット５０７、処理装置５０１宛でないパケット５０８および処理装置５０１宛のパケット５０９がある。
【００２７】
異常パケット５０７としては、ＣＲＣエラーパケット、ショートパケット等がある。異常パケット５０７が受信ＦＩＦＯ５０５に格納された場合、通信ＬＳＩ５０２が異常パケットであると判断し廃棄する。
【００２８】
処理装置５０１宛でないパケット５０８としては、ＵＤＰパケットやＴＣＰパケット等があり、メモリ５０４に格納された場合に、ＣＰＵ５０３が処理装置５０１宛でないと判断し、パケットを廃棄する。
【００２９】
処理装置５０１宛のパケット５０９としては、ＵＤＰパケットやＴＣＰパケット等があり、このパケット５０９は、受信バッファ５０６に格納され、ＣＰＵ５０３が処理を実行する。
【００３０】
なお、ストーム検出のための閾値を超えているかの判定に当たっては、廃棄パケットと処理パケットを区別することなく、先に示したように、受信ＦＩＦＯ５０５が受信するパケットの合計数および合計データ容量の少なくとも一方を計算する。
【００３１】
以上のとおり、本発明に係る実施例により、ストームが発生した際、通信ポート上のパケットの送受信を停止し、ストームが発生していない通信ポート上のパケットの送受信を継続する。
【符号の説明】
【００３２】
１０１  処理装置Ａ
１０２  処理装置Ｂ
１０３  処理装置Ｃ
１０４  処理装置Ｄ
１０５  処理装置Ｅ
１０６、１０７  ネットワーク
１０８、１０９  処理装置Ａの通信ポート
１１０、１１１  処理装置Ｂの通信ポート
２０１、５０１  処理装置
２０２  アプリケーション
２０３  ミドルウェア
２０４  プロトコルマネージャ
２０５  ドライバ
２０６  ＯＳ
２０７、５０３  ＣＰＵ
２０８、２０９、５０２  通信ＬＳＩ
４０１  ソフトウェア領域
４０２  ハードウェア領域
４０３、５０６  受信バッファ
４０４、５０５  受信ＦＩＦＯ
４０５  受信パケット
５０４  メモリ
５０７  異常パケット
５０８  処理装置５０１宛でないパケット
５０９  処理装置５０１宛のパケット
【図１】
2018117270.tif 000003
【図２】
2018117270.tif 000004
【図３】
2018117270.tif 000005
【図４】
2018117270.tif 000006
【図５】
2018117270.tif 000007