(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したRSTPにおいて、障害からの復帰時には、経路の再構成時にパケットロスが発生するおそれがあった。以下、図面を参照して説明する。
【0005】
図7において、スイッチA、B、Cは、それぞれL2スイッチ等で構成されており、これらのスイッチは単一のループ状に接続されている。また、
図7においては、スイッチAがルートブリッジであるとする。また、各スイッチにおいて、RSTPが有効なポートは全て同じ通信速度とする(例えば、通信速度が100Mbpsの場合は、パスコストは200000となり、以下このパスコストで説明する)。また、スイッチBはスイッチCよりもブリッジIDにより優先度が高くなるように設定され、初期状態としてスイッチCのスイッチB側のポートをディスカーディング状態(ブロック状態)として、ループ状態を解消しているとする(図中×印)。
【0006】
図7の初期状態では、通常の通信が行われている。この状態では、各スイッチ間で定期的にBPDU(Bridge Protocol Data Unit)の送受信が行われている。
【0007】
ここで、スイッチA−スイッチB間が障害により切断すると(
図8)、スイッチAのスイッチB側のポートと、スイッチBのスイッチA側のポートはディスカーディング状態(ブロック状態)となる(図中×印)。また、スイッチBからのBPDUにより、スイッチCはブロック状態のポートをフォワーディング状態に遷移させる(
図8)。このとき、スイッチA−スイッチB間は切断されているので、スイッチA−スイッチB間でBPDUの送受信は行われず、スイッチAからスイッチBへの通信はスイッチCを経由して行われる。
【0008】
次に、スイッチA−スイッチB間が障害から復旧すると(
図9)、スイッチA−スイッチB間でBPDUのやり取りがおこなわれる。スイッチBから送信されるBPDUのパスコストは自身とスイッチCのパスコストが積算(200000+200000)され400000となる。一方、スイッチAから送信されるBPDUはスイッチAがルートブリッジであるためパスコストは0となる。そのため、スイッチAはスイッチBよりも優先度が高いと判定し、ブロック状態のポートをフォワーディング状態に遷移させる(
図10)。
【0009】
一方、スイッチBはスイッチCに対してもBPDUを送信する(
図10)。このBPDUのパスコストは自身とスイッチAのパスコストが積算(200000+0)され200000となる。このBPDUを受信したスイッチCは、パスコストは同じであるもののブリッジIDにより優先度がスイッチBの方が高いので、スイッチB側のポートをブロック状態とし、さらにスイッチBに対してBPDUを送信する(
図11)。
【0010】
スイッチCからBPDUを受信したスイッチBはスイッチA側のポートをフォワーディング状態に遷移させる。このようにして初期状態に復帰する(
図12)。
【0011】
ここで、
図11に示した状態は、スイッチAからスイッチBに至る経路が全て遮断されており、スイッチAからのBPDU以外の通常のパケットが受信できない状態となる。つまり、パケットロスが発生するおそれがある。
【0012】
スイッチBが上述した状態になったとしても、TCP(Transmission Control Protocol)のように受信側が受信したか確認する動作を行うプロトコルであればパケットロスは発生しないが、UDP(User Datagram Protocol)のように受信側が受信したか確認する動作を行わないプロトコルの場合、パケットロスが発生し、データの欠落等、通信に影響が生じてしまう。
【0013】
そこで、本発明は、RSTPによる経路構成をするネットワークにおいて、パケットロスの発生を抑えることができる通信装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題を解決するためになされた請求項1に記載された発明は、単一ループ構造を有するネットワークでブリッジとして用いられる通信装置であって、前記単一ループ構造を構成するポートのうちディスカーディング状態となっているポートの再接続を検出する検出部と、前記検出部が再接続を検出したポートが接続されている経路を不使用状態に維持する制御部と、を備え
、前記制御部は、前記検出部が再接続を検出したポートから当該再接続後に受信した制御情報に含まれるパスコストよりも大きな値のパスコストを含む制御情報を送信元に返信する、ことを特徴とする通信装置である。
【0016】
請求項
2に記載された発明は、請求項
1に記載された発明において、前記検出部が検出した再接続の情報を保持する保持部を更に備えることを特徴とする。
【発明の効果】
【0017】
本発明によれば、再接続を検出したポートが接続されている経路を不使用状態に維持するので、再接続前と経路が変更されないため、パケットロスが発生しないようにすることができる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の一実施形態を、
図1〜
図6を参照して説明する。
図1は、本発明の一実施形態にかかる通信装置を用いたネットワーク1の構成図である。ネットワーク1は、複数のスイッチ10が単一のループ状に接続されており、
図1では、スイッチA10a、スイッチB10b、スイッチC10cで構成されている。即ち、スイッチA10aのポートP1がスイッチB10bのポートP1と接続され、スイッチB10bのポートP2がスイッチC10cのポートP1と接続され、スイッチC10cのポートP2がスイッチA10aのポートP2と接続されている。また、スイッチ10は、L2スイッチやルータ等のブリッジで構成することができる。
【0020】
図2にスイッチ10の概略構成図を示す。
図2はL2スイッチとして構成した例である。スイッチ10は、スイッチング部11と、制御部12と、を備えている。また、スイッチング部11は、PHY部111、112と、MAC部113、114と、バッファ115と、を備えている。
【0021】
PHY部111は、ポートP1と接続され、OSI(Open System Interconnection)参照モデルの物理層に係る処理を実行する。PHY部112は、ポートP2と接続され、OSI参照モデルの物理層に係る処理を実行する。
【0022】
MAC部113は、PHY部111と接続され、OSI参照モデルのデータリンク層のMAC副層に係る処理を実行する。MAC部114は、PHY部112と接続され、OSI参照モデルのデータリンク層のMAC副層に係る処理を実行する。
【0023】
バッファ115は、MAC部113、114と制御部12との間で相互にデータを授受すると共に、MAC部113、114間でデータを受け渡す。
【0024】
制御部12は、スイッチング部11が処理するデータリンク層より上位層の処理を実行する。この制御部12は、CPU(Central Processing Unit)等を備えたマイクロコンピュータ等で構成され、前述したRSTP処理や後述する本発明の処理をソフトウェアで実行する。つまり、本発明は、制御部12のソフトウェアを変更することにより実現可能となっている。
【0025】
また、ネットワーク1の例では、スイッチA10aがルートブリッジであるものとし、スイッチA10aとスイッチC10cは本発明が適用されているスイッチで、スイッチB10bは従来のスイッチとする。また、各スイッチにおいて、RSTPが有効なポートは全て同じ通信速度とする(例えば、通信速度が100Mbpsの場合は、パスコストは200000となり、以下このパスコストで説明する)。また、スイッチB10bはスイッチC10cよりも優先度が高くなるようにブリッジIDが設定されているとする。
【0026】
上述した構成及び設定のネットワーク1において、再接続時の動作を
図3及び
図4を参照して説明する。
【0027】
まず、
図3は、上述した
図9と同じ状態である。このとき、スイッチA10a−スイッチB10b間でBPDUのやり取りがおこなわれる。スイッチB10bから送信されるBPDUのパスコストは自身とスイッチC10cのパスコストが積算され400000となる。ここで、本実施形態では、スイッチA10aは、スイッチB10bへ返信するBPDUのパスコストを400000よりも大きな値である600000とする。
【0028】
スイッチA10aは自身がルートブリッジであるので、スイッチB10bよりも優先度が高いと判定し、ブロック状態のポートP1をフォワーディング状態に遷移させる(
図4)。また、スイッチB10bでは、スイッチA10a側のパスコストがスイッチC10c側のパスコストよりも大きくなるため、ブロック状態が維持される。したがって、スイッチA−スイッチB切断時の状態が維持される。
【0029】
本実施形態では、スイッチA−スイッチB切断時の状態が維持されるので、スイッチB10bでは、スイッチA10aからの経路が遮断されることがなく、パケットロスが発生しない。
【0030】
次に、上述したスイッチ10の動作を
図5及び
図6を参照して説明する。
図5及び
図6に示したフローチャートは、主に通信装置の制御部12で実行される。
図5は、従来の通信装置(スイッチB10b)の動作を示している。
図1に示したネットワーク1では、従来の通信装置も含まれており、上記に説明したように、ネットワーク1として従来のスイッチ10の動作も関連するため、まずは従来の通信装置の動作を説明する。
【0031】
制御部12は、切断ポートが再接続されたことを検出すると(ステップS101)、切断ポートの接続相手とBPDUを送受信する(ステップS102)。次に、制御部12は、ステップS102で受信したBPDUに基づいて切断ポートの接続相手と自身とで優先度を判断し、自優先度が高い場合は(ステップS103:Y)、切断ポートをフォワーディング状態に遷移させる(ステップS104)。ここで、優先度は、パスコストで判断するが、パスコストが同じ場合はブリッジIDで判断する。
【0032】
一方、ステップS103の判断の結果、自優先度が低い場合は(ステップS103:N)、制御部12は、受信したBPDUのパスコスト等を更新して他方のポートの接続相手に転送する(ステップS105)。ここで、他方のポートとは、ループを構成するポートのうち切断ポートではない方のポートである。
【0033】
次に、制御部12は、ステップS103でBPDUを転送した相手(他方のポートの接続相手)からBPDUを受信し(ステップS106)、そのBPDUに基づいて他方のポートの接続相手と自身とで優先度を判断し、自優先度が高い場合は(ステップS107:Y)、切断ポートをフォワーディング状態に遷移させる(ステップS108)。一方、ステップS107の判断の結果、自優先度が低い場合は(ステップS107:N)、制御部12は、切断ポートのブロック状態を維持させる(ステップS109)。
【0034】
以上が、切断ポートを有する従来のスイッチ10(
図1のスイッチB10b)のRSTP動作である。次に、切断ポートを有しない従来のスイッチ10の動作を説明する。
【0035】
制御部12は、ステップS105で送信されたBPDUを一方のポートから受信し(ステップS201)、そのBPDUに基づいて一方のポートの接続相手と自身とで優先度を判断し、自優先度が低い場合は(ステップS202:N)、一方のポートをブロック状態に遷移させる(ステップS203)。そして、制御部12は、一方のポートの接続相手にBPDUを更新して転送する(ステップS204)。
【0036】
一方、ステップS202で一方のポートの接続相手と自身とで優先度を判断した結果、自優先度が高い場合は(ステップS202:Y)、制御部12は、一方のポートのフォワーディング状態を維持させ(ステップS205)、一方のポートの接続相手にBPDUを転送する(ステップS204)。
【0037】
次に、本発明を適用したスイッチ10(スイッチA10a)の動作を
図6のフローチャートに示す。
図6のフローチャートで、ステップS303を通るルートは接続相手が本発明適用品の場合のルートである。一方で、ステップS304〜S308を通るルートは接続相手が本発明適用品でない場合のルートであり、接続相手は
図5のフローチャートに沿って動作することとなる。
【0038】
まず、制御部12は、切断ポートが再接続されたことを検出すると(ステップS301)、切断ポートの接続相手が本発明の適用されたスイッチ10であるか判断する(ステップS302)。切断ポートの接続相手が本発明の適用されたスイッチ10であるかは、例えば、BPDUの送信元MACアドレスの上位3バイトの値を本発明適用品は特定の数値とすることが挙げられる。つまり、障害等が発生する前のBPDUのやり取り時に含まれる情報から予め識別することが可能である。即ち、制御部12は、ディスカーディング状態となっているポートの再接続を検出する検出部として機能する。
【0039】
ステップS302で判断の結果、切断ポートの接続相手が本発明適用品である場合は(ステップS302:Y)、制御部12は、ルート(経路)を変更せず(ステップS303)、後述するステップS309に進む。ステップS303のルートを変更しないとは、現状のポートの状態(ブロック状態)を互いに維持することで、ルートの変更を発生させないようにすることである。このステップの通信相手は互いに本発明適用品であるため、パケットロスを発生させないために再接続時はルート変更しない(当該経路を不使用状態に維持する)という制御を互いにすることで足りる。
【0040】
一方、ステップS302で判断の結果、切断ポートの接続相手が本発明適用品でない場合は(ステップS302:N)、制御部12は、切断ポートの接続相手からBPDUを受信し(ステップS304)、パスコストをアップ(大きく)して切断ポートの接続相手にBPDUを転送(返信)する(ステップS305)。パスコストを大きくする値は上述の例では600000としていたが、接続相手から受信したパスコストよりも大きな値であれば他の値でもよい。即ち、制御部12は、検出部が再接続を検出したポートから再接続後に受信したBPDU(制御情報)に含まれるパスコストよりも大きな値のパスコストを含む制御情報を送信元に返信する制御部として機能する。
【0041】
次に、制御部12は、切断ポートの接続相手と自身との優先度を判断し、自優先度が高い場合は(ステップS306:Y)、切断ポートをフォワーディング状態に遷移させる(ステップS307)。ステップS306の判断の結果、自優先度が低い場合は(ステップS306:N)、制御部12は、切断ポートのブロック状態を維持させる(ステップS308)。
【0042】
そして、制御部12は、切断ポートが再接続されたこと(復帰情報)を保持する(ステップS309)。この情報は、例えば、今回障害が発生した経路とは別の経路に障害が発生した際に、今回障害が発生して復帰した経路を速やかに利用できるようにするために保持するものである。即ち、制御部12は、検出部が検出した再接続の情報を保持する保持部として機能する。
【0043】
本実施形態によれば、スイッチ10は、制御部12が、ディスカーディング状態となっているポートの再接続を検出し、再接続を検出したポートから再接続後に受信したBPDUに含まれるパスコストよりも大きな値のパスコストを含むBPDUを送信元に返信する。このようにすることにより、再接続を検出したポートから受信したパスコストよりも大きな値を返信するので、接続相手が本発明を適用されていなくても、RSTPの動作によりディスカーディング状態を継続することができる。したがって、再接続前と経路が変更されないため、パケットロスを発生しないようにすることができる。
【0044】
また、標準化された規格であるRSTPを利用することができるので、本発明を適用していない通信装置との混在が可能となる。
【0045】
また、経路を変更しないため、BPDUの送受信が少なくなり、BPDUの占有時間を少なくすることができる。
【0046】
また、接続相手が本発明適用品の場合は、ルートを変更しないようにしているので、当該ルートを不使用状態に維持することができる。したがって、再接続前と経路が変更されないため、パケットロスを発生しないようにすることができる。
【0047】
また、制御部12は、検出した再接続の情報を保持するので、他の経路に障害が発生した場合に速やかに復帰させることができる。
【0048】
なお、上述した実施例では、3台構成のネットワークで説明したが、勿論3台に限らず、4台以上であってもよい。その場合は単一ループを構成し、少なくとも1台おきに本発明が適用された通信装置が設けられていればよい。また、通信装置が有するポート数は2つに限られず、3以上であってもよい。
【0049】
なお、本発明は上記実施形態に限定されるものではない。即ち、当業者は、従来公知の知見に従い、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。かかる変形によってもなお本発明の通信装置の構成を具備する限り、勿論、本発明の範疇に含まれるものである。
【解決手段】スイッチ10は、制御部12が、ディスカーディング状態となっているポートの再接続を検出し、再接続を検出したポートから再接続後に受信したBPDUに含まれるパスコストよりも大きな値のパスコストを含むBPDUを送信元に返信する。