(57)【特許請求の範囲】
【請求項１】
第１インターフェイスにおいて受信したフレームを第２インターフェイスから送信する通信装置であって、
前記第２インターフェイスでのリンクアップを検出する第１検出部と、
前記第１検出部がリンクアップを検出した場合、前記第２インターフェイスが送信すべきフレームを蓄積するバッファにおけるオーバーフローへの接近を検出する第２検出部と、
前記第２検出部がオーバーフローへの接近を検出した場合、前記第１インターフェイスにおける受信カウンタの値と前記第２インターフェイスにおける送信カウンタの値との差異がしきい値よりも小さいことによって、前記第２インターフェイスにおける送信失敗が非検出であれば、前記第１インターフェイスを介してフロー制御を実行し、
前記第１インターフェイスにおける受信カウンタの値と前記第２インターフェイスにおける送信カウンタの値との差異が前記しきい値以上であることによって、前記第２インターフェイスにおける送信失敗が検出されれば、前記第１インターフェイスを介したフロー制御を非実行とする制御部と、
を備えることを特徴とする通信装置。
【請求項２】
前記制御部は、前記第１インターフェイスを介したフロー制御を非実行とした場合、フロー制御の非実行を継続することを特徴とする請求項１に記載の通信装置。
【請求項３】
第１インターフェイスにおいて受信したフレームを第２インターフェイスから送信する通信装置での制御方法であって、
前記第２インターフェイスでのリンクアップを検出するステップと、
リンクアップを検出した場合、前記第２インターフェイスが送信すべきフレームを蓄積するバッファにおけるオーバーフローへの接近を検出するステップと、
オーバーフローへの接近を検出した場合、前記第１インターフェイスにおける受信カウンタの値と前記第２インターフェイスにおける送信カウンタの値との差異がしきい値よりも小さいことによって、前記第２インターフェイスにおける送信失敗が非検出であれば、前記第１インターフェイスを介してフロー制御を実行し、
前記第１インターフェイスにおける受信カウンタの値と前記第２インターフェイスにおける送信カウンタの値との差異が前記しきい値以上であることによって、前記第２インターフェイスにおける送信失敗が検出されれば、前記第１インターフェイスを介したフロー制御を非実行とするステップと、
を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術に関し、特にフレームを転送する通信装置、制御方法に関する。
【背景技術】
【０００２】
レイヤ２スイッチは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）上のステーションを相互に接続する。レイヤ２のデータリンク層において、ビットエラーやバッファ満杯状態が発生した場合、受信装置側は異常な受信フレームを破棄するだけである。レイヤ２スイッチは、フロー制御を行うことによって、バッファリソース不足によるフレーム損失を回避可能である。フロー制御とは、送信装置側が受信装置側で受信可能なデータフレームのレートよりも高い速度でデータフレームを送信してしまうのを防ぐ制御機構である。フロー制御では、受信装置側から送信装置側に向かって送信のフィードバック制御を行い、送信装置側の送信レートは、受信装置側のバッファの状況に応じて調整される（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２８９７４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通信システムは、例えば、複数のレイヤ２スイッチをピラミッド状に接続することによって形成される。そのような構成において、末端近くのレイヤ２スイッチのポートに接続されたケーブルに障害が発生した場合に、当該レイヤ２スイッチがフロー制御を実行すると、通信システム全体の通信が停止してしまうおそれがある。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、ケーブルに障害が発生しても、通信システム全体の通信停止を抑制する技術を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の通信装置は、第１インターフェイスにおいて受信したフレームを第２インターフェイスから送信する通信装置であって、第２インターフェイスでのリンクアップを検出する第１検出部と、第１検出部がリンクアップを検出した場合、第２インターフェイスが送信すべきフレームを蓄積するバッファにおけるオーバーフローへの接近を検出する第２検出部と、第２検出部がオーバーフローへの接近を検出した場合、第１インターフェイスにおける受信カウンタの値と第２インターフェイスにおける送信カウンタの値との差異がしきい値よりも小さいことによって、第２インターフェイスにおける送信失敗が非検出であれば、第１インターフェイスを介してフロー制御を実行し、第１インターフェイスにおける受信カウンタの値と第２インターフェイスにおける送信カウンタの値との差異がしきい値以上であることによって、第２インターフェイスにおける送信失敗が検出されれば、第１インターフェイスを介したフロー制御を非実行とする制御部と、を備える。
【０００７】
本発明の別の態様は、制御方法である。この方法は、第１インターフェイスにおいて受信したフレームを第２インターフェイスから送信する通信装置での制御方法であって、第２インターフェイスでのリンクアップを検出するステップと、リンクアップを検出した場合、第２インターフェイスが送信すべきフレームを蓄積するバッファにおけるオーバーフローへの接近を検出するステップと、オーバーフローへの接近を検出した場合、第１インターフェイスにおける受信カウンタの値と第２インターフェイスにおける送信カウンタの値との差異がしきい値よりも小さいことによって、第２インターフェイスにおける送信失敗が非検出であれば、第１インターフェイスを介してフロー制御を実行し、第１インターフェイスにおける受信カウンタの値と第２インターフェイスにおける送信カウンタの値との差異がしきい値以上であることによって、第２インターフェイスにおける送信失敗が検出されれば、第１インターフェイスを介したフロー制御を非実行とするステップと、を備える。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、ケーブルに障害が発生しても、通信システム全体の通信停止を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例に係る通信システムの構成を示す図である。
【図２】図１の通信装置の構成を示す図である。
【図３】図２の通信装置によるフロー制御の実行手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本発明を具体的に説明する前に、まず概要を述べる。本発明の実施例は、複数の通信装置がピラミッド状に接続されることによって形成される通信システムに関する。通信装置は、例えば、レイヤ２スイッチ、スイッチングハブである。通信装置でのバッファオーバーフローには、フロー制御が有効であるが、前述のごとく、フロー制御によって通信システム全体の通信が停止してしまう場合がある。これに対応するために、本実施例における通信装置は、バッファのオーバーフローへの接近を検出した場合、ケーブルに障害が発生していなければ、フロー制御を実行するが、ケーブルに障害が発生していれば、フロー制御を実行しない。
【００１２】
図１は、本発明の実施例に係る通信システム１００の構成を示す。通信システム１００は、サーバ１０、通信装置２０と総称される第１通信装置２０ａ、第２通信装置２０ｂ、第３通信装置２０ｃ、第４通信装置２０ｄ、第５通信装置２０ｅ、第６通信装置２０ｆ、第７通信装置２０ｇ、第８通信装置２０ｈ、第９通信装置２０ｉ、第１０通信装置２０ｊ、第１１通信装置２０ｋ、第１２通信装置２０ｌ、端末装置３０と総称される第１端末装置３０ａ、第２端末装置３０ｂ、第３端末装置３０ｃ、第４端末装置３０ｄ、第５端末装置３０ｅ、第６端末装置３０ｆ、第７端末装置３０ｇ、第８端末装置３０ｈ、第９端末装置３０ｉ、第１０端末装置３０ｊ、第１１端末装置３０ｋ、第１２端末装置３０ｌを含む。
【００１３】
通信システム１００は、複数の通信装置２０がピラミッド状に接続されることによって形成される。ピラミッド状に形成された通信システム１００の頂点の部分には、サーバ１０が配置される。また、サーバ１０には、第１通信装置２０ａ、第２通信装置２０ｂが接続される。さらに、第１通信装置２０ａ、第２通信装置２０ｂには、第３通信装置２０ｃ〜第６通信装置２０ｆが接続され、第３通信装置２０ｃ〜第６通信装置２０ｆには、第７通信装置２０ｇ〜第１２通信装置２０ｌが接続される。そのため、第７通信装置２０ｇ〜第１２通信装置２０ｌは、「２」つの通信装置２０を介してサーバ１０に接続され、第３通信装置２０ｃ〜第６通信装置２０ｆは、「１」つの通信装置２０を介してサーバ１０に接続される。一方、第１通信装置２０ａ、第２通信装置２０ｂは、サーバ１０に直接接続されているので、「０」の通信装置２０を介してサーバ１０に接続されているといえる。
【００１４】
ここで、サーバ１０との間に接続された通信装置２０の数が同一の通信装置２０は、同一階層の通信装置２０といえる。また、サーバ１０との間に接続された通信装置２０の数が少ない階層ほど「上位」であり、通信装置２０の数が多い階層ほど「下位」である。図１の場合、第１通信装置２０ａ、第２通信装置２０ｂが、サーバ１０の階層の次に上位の階層に含まれ、第７通信装置２０ｇ〜第１２通信装置２０ｌが、最も下位の階層に含まれる。さらに、第７通信装置２０ｇ〜第１２通信装置２０ｌには、複数の端末装置３０が接続される。なお、ピラミッド状に接続された通信装置２０の階層の数は、「３」に限定されない。また、各階層に含まれた通信装置２０の数は、図１と異なっていてもよい。さらに、上位の階層に含まれた通信装置２０に端末装置３０が接続されてもよい。
【００１５】
サーバ１０は、データが含まれたフレームを送信する。データは任意のものでよく、フレームの最終的な宛先は、端末装置３０である。また、送信は、ユニキャスト送信でもよく、マルチキャスト送信でもよく、ブロードキャスト送信でもよい。通信装置２０は、前述のごとく、レイヤ２スイッチ、スイッチングハブであり、フレームを転送する機能を有する。また、通信装置２０は、フロー制御を実行可能である。フロー制御は、２つのノード間において高速な送信側が低速な受信側をオーバーランさせてしまうことを防止するようデータレートを管理するプロセスであり、その一例がバックプレッシャである。バックプレッシャとは、通信装置２０内のバッファがオーバーフローになりそうになると、送信元に衝突信号を意図的に送信し、送信元にフレームの送信を抑制させる方式である。端末装置３０は、ユーザ等によって操作させる電子機器であり、通信装置２０を介してサーバ１０からのフレームを受信する。端末装置３０は、受信したフレームに含まれたデータに応じた処理を実行する。
【００１６】
このような通信システム１００の構成において、サーバ１０から通信装置２０を介して端末装置３０にブロードキャストフレームを送信する場合を想定する。例えば、サーバ１０は、ブロードキャストフレームを第１通信装置２０ａに送信し、第１通信装置２０ａは、受信したブロードキャストフレームを第３通信装置２０ｃに送信する。また、第３通信装置２０ｃは、受信したブロードキャストフレームを第７通信装置２０ｇに送信し、第７通信装置２０ｇは、受信したブロードキャストフレームを第１端末装置３０ａに送信する。第１端末装置３０ａにおいて処理能力が低下した場合、受信可能なデータレートが低下する。
【００１７】
これにより、第７通信装置２０ｇは、第３通信装置２０ｃから、高速なデータレートでブロードキャストフレームを受信しているにもかかわらず、第１端末装置３０ａに、低速なデータレートでしかブロードキャストフレームを送信できない。その結果、第７通信装置２０ｇの送信バッファがオーバーフローしそうになるので、第７通信装置２０ｇは、第３通信装置２０ｃに対してバックプレッシャを実行して、第３通信装置２０ｃのデータレートを低下させる。その後、第１端末装置３０ａにおける処理能力の低下が回復すると、第７通信装置２０ｇは、第３通信装置２０ｃに対するバックプレッシャを解除する。その結果、もとのデータレートへの復帰が実現される。
【００１８】
ここで、第７通信装置２０ｇと第１端末装置３０ａの間のケーブルに障害、例えば短絡が発生した場合も、第７通信装置２０ｇの送信バッファがオーバーフローしそうになるので、第７通信装置２０ｇは、第３通信装置２０ｃに対してバックプレッシャを実行する。なお、前述の第１端末装置３０ａの処理能力が低下した場合と異なって、ケーブルの障害は回復しない。そのため、バックプレッシャの実行によって、第３通信装置２０ｃの送信バッファもオーバーフローしそうになり、第３通信装置２０ｃは、第１通信装置２０ａに対してバックプレッシャを実行する。このように、送信バッファのオーバーフローが上位の階層まで伝播し、サーバ１０がブロードキャストフレームを送信できなくなる。その結果、通信システム１００全体の通信が停止されてしまう。このような状況の発生を抑制するために、通信装置２０は、下記の処理を実行する。
【００１９】
図２は、通信装置２０の構成を示す。通信装置２０は、上位装置４０、下位装置５０と総称される第１下位装置５０ａ、第２下位装置５０ｂ、第３下位装置５０ｃ、第Ｎ−１下位装置５０ｎ−１に接続される。通信装置２０は、ポート６０と総称される第１ポート６０ａ、第２ポート６０ｂ、第３ポート６０ｃ、第４ポート６０ｄ、第Ｎポート６０ｎ、スイッチ部６２、表示部６４を含む。スイッチ部６２は、送信バッファ６６と総称される第１送信バッファ６６ａ、第２送信バッファ６６ｂ、第３送信バッファ６６ｃ、第４送信バッファ６６ｄ、第Ｎ送信バッファ６６ｎ、第１検出部６８、第２検出部７０、制御部７２を含む。
【００２０】
上位装置４０は、通信装置２０よりも上位の階層に配置された他の通信装置２０あるいはサーバ１０であり、下位装置５０は、通信装置２０よりも下位の階層に配置された他の通信装置２０あるいは端末装置３０である。ポート６０は、ＬＡＮケーブルを接続可能であり、ＬＡＮケーブルを介して上位装置４０あるいは下位装置５０を接続する。そのため、ポート６０は、外部の上位装置４０あるいは下位装置５０との間でフレームを入出力するためのインターフェイスであるといえる。また、各ポート６０には、フレームを送信する際に使用される送信ピン（ＴＤピン）と、フレームを受信する際に使用される受信ピン（ＲＤピン）が含まれる。
【００２１】
スイッチ部６２は、１つのポート６０において入力したフレームの宛先ＭＡＣアドレスをもとに送信先のポート６０を決定し、決定したポート６０に当該フレームを転送する。なお、ブロードキャストフレームの場合、スイッチ部６２は、入力したポート６０以外のポート６０にブロードキャストフレームを転送する。例えば、第１ポート６０ａからブロードキャストフレームを入力した場合、スイッチ部６２は、第２ポート６０ｂから第Ｎポート６０ｎにブロードキャストフレームを転送する。また、第４ポート６０ｄからブロードキャストフレームを入力した場合、スイッチ部６２は、第１ポート６０ａから第３ポート６０ｃ、第Ｎポート６０ｎにブロードキャストフレームを転送する。ここで、転送する際、転送すべきフレームは送信バッファ６６に一旦蓄積される。送信バッファ６６は、ポート６０と１対１で対応づけられて配置される。例えば、第１ポート６０ａに対応するように第１送信バッファ６６ａが設けられる。他の送信バッファ６６も同様である。
【００２２】
第１検出部６８は、各ポート６０のリンクアップを検出する。これは、フレームの送信に使用するポート６０のリンクアップを検出することに相当する。例えば、リンクアップの検出は、ＲＤピンにおいてリンクパルス信号を受信しているか否かで判定され、受信していれば、リンクアップが検出される。第１検出部６８は、ポート６０毎にリンクアップを検出した場合、それを第２検出部７０に通知する。
【００２３】
第２検出部７０は、第１検出部６８からの通知を受けつけた場合、リンクアップが検出されたポート６０に対応した送信バッファ６６の空き容量を確認する。例えば、第２ポート６０ｂのリンクアップが検出された場合、第２検出部７０は、第２送信バッファ６６ｂの空き容量を確認する。空き容量が第１しきい値よりも小さい場合、第２検出部７０は、当該送信バッファ６６におけるオーバーフローへの接近を検出する。第２検出部７０は、送信バッファ６６におけるオーバーフローへの接近を検出した場合、それを制御部７２に通知する。
【００２４】
制御部７２は、第２検出部７０からの通知を受けつけた場合、オーバーフローへの接近が検出された送信バッファ６６に対応したポート６０において送信失敗が検出されているか否かを確認する。送信失敗を検出するために、制御部７２は、送信カウンタと受信カウンタとをポート６０毎に備える。送信カウンタは、一定期間、例えば、１００ｍｓｅｃの間に当該ポート６０から送信したフレーム数を計数する。一方、受信カウンタは、同一の一定期間に当該ポート６０において受信したフレーム数を計数する。フレームとしてブロードキャストフレームを対象にした場合、各通信装置２０は、１つのポート６０においてブロードキャストフレームを受信すると、残りのポート６０からブロードキャストフレームを転送する。
【００２５】
送信失敗の確認対象のポート６０が第２ポート６０ｂである場合、送信失敗が発生していなければ、第２ポート６０ｂ以外のポート６０での受信カウンタの合計値と、第２ポート６０ｂでの送信カウンタの値が等しくなるべきである。このことを利用し、制御部７２は、送信失敗の確認対象のポート６０以外のポート６０（以下、「受信側のポート６０」という）での受信カウンタの合計値と、送信失敗の確認対象のポート６０（以下、「送信側のポート６０」という）での送信カウンタの値との差異が第２しきい値よりも小さい場合、送信側のポート６０において送信失敗が非検出であると判定する。
【００２６】
一方、制御部７２は、差異が第２しきい値以上である場合、特に、受信カウンタの合計値が送信カウンタの値よりも大きい場合、送信側のポート６０において送信失敗を検出する。ケーブルに短絡等の障害が発生している場合、送信側のポート６０からブロードキャストフレームを送信しても、障害箇所でブロードキャストフレームが反射するので、送信が完了せず、送信カウンタの値が増加しないからである。なお、制御部７２は、差異が第２しきい値以上である場合、すぐに送信失敗を検出しなくてもよい。例えば、制御部７２は、所定の回数連続して、差異が第２しきい値以上である場合に、送信失敗を検出してもよい。所定の回数の一例は、「４」である。
【００２７】
その後、制御部７２は、送信側のポート６０において送信失敗が非検出であると判定した場合、受信側のポート６０を介して、バックプレッシャ等のフロー制御を実行する。なお、フロー制御には公知の技術が使用されればよいので、ここでは説明を省略する。一方、制御部７２は、送信側のポート６０において送信失敗が検出された場合、受信側のポート６０を介したフロー制御を非実行とする。この場合、制御部７２は、送信側のポート６０から送信すべきフレームを破棄する。ケーブルの障害が発生している場合、ケーブルを交換しなければ、データレートは回復しない。そのため、フロー制御を実行しても、フロー制御のためのフレームが無駄に受信側のポート６０から送信されるだけになり、そのようなフレームによって帯域が消費されてしまう。また、フロー制御をされた上位装置４０は、送信を待機した後、同フレームを再送処理するので、これも帯域の消費、上位装置４０でのオーバーフロー、通信システム１００全体の通信停止につながる。これらを抑制するために、送信側のポート６０において送信失敗が検出された場合、つまりケーブルの障害の発生を推定した場合、制御部７２は、フロー制御を実行しない。
【００２８】
さらに、制御部７２は、受信側のポート６０を介したフロー制御を非実行とした場合、通信装置２０を再起動させない限り、フロー制御の非実行を継続する。つまり、送信側のポート６０に対するリンクアップの検出、オーバーフローへの接近の検出、送信失敗の検出を実行せずに、制御部７２は、フロー制御を実行しないままにする。前述のごとく、ケーブルを交換しない限り、ケーブルの障害は復旧しないからである。なお、制御部７２は、第２検出部７０からの通知に応じて、送信側のポート６０、受信側のポート６０を変更しながら、前述の処理を実行する。
【００２９】
表示部６４は、制御部７２が送信失敗を検出した場合、制御部７２からの通知を受けつける。表示部６４は、複数のポート６０のそれぞれに対応したＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）を備え、通知において示されたポート６０に対応したＬＥＤを点灯あるいは点滅表示させる。これは、ＬＥＤによって示されたポート６０に接続したケーブルにおいて短絡等の障害が発生していることを通知することに相当する。
【００３０】
この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００３１】
以上の構成による通信システム１００の動作を説明する。図３は、通信装置２０によるフロー制御の実行手順を示すフローチャートである。第１検出部６８がポート６０のリンクアップを検出した場合（Ｓ１０のＹ）、第２検出部７０は、当該ポート６０に対応した送信バッファ６６の空き容量を確認する（Ｓ１２）。オーバーフローに接近し（Ｓ１４のＹ）、送信失敗を検出しない場合（Ｓ１６のＮ）、制御部７２は、フロー制御を実行する（Ｓ１８）。一方、送信失敗を検出した場合（Ｓ１６のＹ）、制御部７２は、フロー制御を実行しない（Ｓ２０）。第１検出部６８がポート６０のリンクアップを検出しない場合（Ｓ１０のＮ）、あるいはオーバーフローに接近していない場合（Ｓ１４のＮ）、処理は終了される。
【００３２】
本実施例によれば、オーバーフローへの接近を検出しても、送信失敗を検出すれば、フロー制御を実行しないので、無駄なフレームの送信を停止できる。また、無駄なフレームの送信が停止されるので、ケーブルに障害が発生しても、通信システム全体の通信停止を抑制できる。また、フロー制御の非実行を決定した場合、フロー制御の非実行を維持するので、リンクアップ、オーバーフローへの接近、送信失敗を判定するための処理を不要にできる。また、これらの処理が不要になるので、処理量を抑制できる。また、ケーブルの障害発生をＬＥＤにて通知するので、ケーブルの交換を促すことができる。また、フロー制御を実行しないので、上位装置における再送信の待機を回避できる。また、上位装置における再送信の待機が回避されるので、上位装置におけるオーバーフローを抑制できる。
【００３３】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００３４】
１０  サーバ、  ２０  通信装置、  ３０  端末装置、  ４０  上位装置、  ５０  下位装置、  ６０  ポート、  ６２  スイッチ部、  ６４  表示部、  ６６  送信バッファ、  ６８  第１検出部、  ７０  第２検出部、  ７２  制御部、  １００  通信システム。
【図１】
0006558167.tif 000002
【図２】
0006558167.tif 000003
【図３】
0006558167.tif 000004