JP2014068110A - 通信装置および切替制御方法 - Google Patents
通信装置および切替制御方法 Download PDFInfo
- Publication number
- JP2014068110A JP2014068110A JP2012210656A JP2012210656A JP2014068110A JP 2014068110 A JP2014068110 A JP 2014068110A JP 2012210656 A JP2012210656 A JP 2012210656A JP 2012210656 A JP2012210656 A JP 2012210656A JP 2014068110 A JP2014068110 A JP 2014068110A
- Authority
- JP
- Japan
- Prior art keywords
- output
- port
- frame
- lag
- queue
- 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.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
【課題】複数あるポートのいずれかで障害が発生した場合に通信断時間を低減可能な通信装置を得ること。
【解決手段】他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置であって、前記LAG設定ポート毎にフレームを格納する出力バッファを有するバッファメモリ80と、前記LAG設定ポートで障害の発生が検出された場合、障害発生ポートに対応する出力バッファに格納されているフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御部73と、を備える。
【選択図】図1
【解決手段】他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置であって、前記LAG設定ポート毎にフレームを格納する出力バッファを有するバッファメモリ80と、前記LAG設定ポートで障害の発生が検出された場合、障害発生ポートに対応する出力バッファに格納されているフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御部73と、を備える。
【選択図】図1
Description
本発明は、伝送路を設けて通信を行う通信装置に関する。
従来、Ethernet(登録商標)を使用したネットワークにおいて、スイッチやルータなどの通信装置間を接続する伝送路の数を複数設け、論理的に1つの回線として扱うリンクアグリゲーション(Link Aggregation、以下、LAとする)機能が、IEEE802.1AXで規格化されている(下記非特許文献1)。LAは、装置間の伝送路の広帯域化と同時に、伝送路の冗長化が可能である。そのため、例えば、論理的に1つの回線として登録してある複数の伝送路を同一LAグループ(Link Aggregation Group、以下、LAGとする)とすると、LAG内の1つの伝送路に障害が発生した場合、同じLAG内の別の障害の発生していない伝送路にデータの出力先を切り替えることにより、データの送受信を維持することができる利点がある。LA機能を持つ装置は、同一LAG内の伝送路の出力において、トラヒックの偏りがないように負荷分散を行う機能を持つ必要があるが、負荷分散方式の仕様は規定されておらず、ベンダにより仕様が異なる。一般的に用いられる負荷分散方式は、入力ポートにより出力先を振り分けるポートベース、MACアドレスやIPアドレスなどの情報により出力先を振り分けるアドレスベース、到着順に同一LAGのポートに振り分けるラウンドロビンなどがあるが、ラウンドロビンによる負荷分散はフレームの順序逆転が発生する可能性がある。
また、下記特許文献1では、集線装置における障害発生時の伝送路の高速な切替制御方式として、MACアドレス転送テーブルを検索することにより出力先が決定された後に現用時と予備時の宛先変換テーブルを設け、現用時の宛先に出力する伝送路の障害が発生すると、予備時の宛先に出力先を高速に切り替える技術が開示されている。
IEEE Std 802.1AX-2008 "IEEE Standard for Local and metropolitan area networks - Link Aggregation" 2008年
しかしながら、上記従来の技術(非特許文献1)によれば、動的なLA制御としてLACP(Link Aggregation Control Protocol)により障害を検出する方法が規定されているが、LACPで規定されている障害検出時間は秒単位である。そのため、障害が発生してから出力ポートが切り替わるまで最小でも障害検出時間分はフレーム廃棄が発生し、通信断時間が発生する、という問題があった。
また、LACPを適用せずに高速な接続性チェック用のフレームを用いることで障害検出時間を高速化したLA制御を行う方法も考えられ、この場合、障害検出時間に応じたフレーム廃棄数の削減と通信断時間の短縮が可能である。しかしながら、障害が発生した伝送路の出力ポート用の出力バッファにフレームが格納されていた場合、そのフレームは廃棄されることになる。そのため、障害発生時に該当の出力バッファにフレームが多数格納されていた場合、全てのフレームが廃棄され、その分、通信断時間が発生する、という問題があった。
また、上記従来の技術(特許文献1)によれば、現用時と予備時の宛先変換テーブルを設けることにより、現用ポートの伝送路の障害を検出した場合に予め設定していた予備ポートに高速に切り替えることが可能であるが、この場合も現用の出力ポート用の出力バッファにフレームが格納されている状態で障害が発生すると、出力バッファに格納されたフレームは廃棄される。そのため、障害発生時に該当の出力バッファに一時的にフレームが多数格納されていた場合、全てのフレームが廃棄され、そのフレーム数分、通信断時間が発生する、という問題があった。
本発明は、上記に鑑みてなされたものであって、複数あるポートのいずれかで障害が発生した場合に通信断時間を低減可能な通信装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置であって、前記LAG設定ポート毎にフレームを格納する出力バッファを有するバッファ手段と、前記LAG設定ポートで障害の発生が検出された場合、障害発生ポートに対応する出力バッファに格納されているフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御手段と、を備えることを特徴とする。
本発明によれば、複数あるポートのいずれかで障害が発生した場合に通信断時間を低減できる、という効果を奏する。
以下に、本発明にかかる通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本実施の形態の通信装置の構成例を示す図である。通信装置は、例えば、複数の入出力ポートを持つ集線装置であり、2つの集線装置間で複数の伝送路を設けて通信を行うことができる。レイヤ2スイッチ等の集線装置を2つ用いて、2つの装置間で複数の伝送路を設けて通信を行うネットワークにおいて、伝送路に障害が発生した場合に、出力先を切り替えることによりデータの損失を最小限とし、通信の継続を可能とする。通信装置は、入力処理部10と、多重部20と、転送先管理部30と、転送管理テーブル40と、LAGポート管理部50と、障害検出部60と、バッファ制御部70と、バッファメモリ80と、出力処理部90と、を備える。
図1は、本実施の形態の通信装置の構成例を示す図である。通信装置は、例えば、複数の入出力ポートを持つ集線装置であり、2つの集線装置間で複数の伝送路を設けて通信を行うことができる。レイヤ2スイッチ等の集線装置を2つ用いて、2つの装置間で複数の伝送路を設けて通信を行うネットワークにおいて、伝送路に障害が発生した場合に、出力先を切り替えることによりデータの損失を最小限とし、通信の継続を可能とする。通信装置は、入力処理部10と、多重部20と、転送先管理部30と、転送管理テーブル40と、LAGポート管理部50と、障害検出部60と、バッファ制御部70と、バッファメモリ80と、出力処理部90と、を備える。
入力処理部10は、図示しない各入出力ポートを入力ポートとして入力されるフレームに対して、エラーチェック等の処理を行う。多重部20は、複数の入出力ポートからの入力フレームを多重する。転送先管理部30は、転送管理テーブル40を検索してフレームの出力先を制御してフレームの転送先を決定し、障害が検出された入出力ポートへのフレームの出力を阻止する。転送管理テーブル40は、フレームの転送先を管理するメモリである。LAGポート管理部50は、LAGに属する入出力ポートのポート情報を管理する。障害検出部60は、各入出力ポートの障害の有無を監視する。バッファ制御部70は、入力したフレームのバッファメモリ80への書き込み、およびバッファメモリ80からフレームを読み出してフレームを出力する制御を行う。バッファメモリ80は、転送先毎または入力元毎に入力順にフレームを格納するバッファ(例えば、キュー)として機能するメモリである。出力処理部90は、入出力ポート毎に伝送速度の範囲内でバッファメモリ80から読み出されたフレームを、図示しない各入出力ポートを出力ポートとして外部へ出力するために必要な処理を行う。
上記において、入力処理部10に対してフレームの入力元となる入力ポートとして機能する入出力ポートと、出力処理部90においてフレームの出力先となる出力ポートとして機能する入出力ポートは同一である。以下、入出力ポートについて、入力側を示す場合は入力ポート、出力側を示す場合は出力ポートとして表すことがある。
入力処理部10は、入力ポート毎に、エラーチェック等の処理を行う構成を備える。例えば、入出力ポートがn本(ポート#1〜#nとする)の場合、入力処理部10は、ポート#1入力処理部10−1、ポート#2入力処理部10−2、…、ポート#n入力処理部10−n、を備える。
転送先管理部30は、LAG設定が有効な場合において、LAGに設定される複数の入出力ポートに対する出力の負荷分散を制御する出力負荷分散制御部31、を備える。
バッファ制御部70は、バッファメモリ80へのフレーム(データ)の書き込みを行う書込制御部71と、各出力ポートからフレームを出力する際の読出指示がある場合に、バッファメモリ80からフレーム(データ)を読み出し、フレーム(データ)を振り分ける読出制御部72と、LAG設定されている入出力ポート(以下、LAG設定ポートとする)に対して、LAG毎にバッファメモリ80内のキューに格納されているフレームのデータ量およびアドレスの管理と共に、優先制御および帯域制御などを含めたフレームの出力制御を行い、かつ、LAG設定ポートで障害検出時に同一LAGの別の出力ポートへの出力先の切替制御を行うLAG出力制御部73と、LAG設定されていない入出力ポート(以下、LAG未設定ポートとする)に対して、入出力ポート毎にバッファメモリ80内のキューに格納されているフレームのデータ量およびアドレスの管理と共に、優先制御および帯域制御などを含めたフレームの出力制御を行う出力制御部74と、を備える。
出力処理部90は、出力ポート毎に、伝送速度の範囲内でバッファメモリ80から読み出されたフレームを、各出力ポートから外部へ出力するために必要な処理を行う構成を備える。例えば、入出力ポートがn本の場合、出力処理部90は、ポート#1出力処理部90−1、ポート#2出力処理部90−2、…、ポート#n出力処理部90−n、を備える。
つづいて、通信装置において、入力したフレームを転送する際、出力ポートで障害を検出した場合に、出力先の出力ポートを切り替えてフレームを出力する動作について説明する。本実施の形態では、1つのLAGに2ポート設定されている場合として、通信装置において、ポート#1,#2以外の入力ポートから入力したフレームを、LAG設定されたポート#1,#2から出力する場合を例に説明する。なお、入力処理部10、多重部20、および出力処理部90における動作は従来同様の一般的な動作のため、詳細な説明については省略する。
まず、LAGポート管理部50は、予めLAGに属する入出力ポートを設定し、転送先管理部30の出力負荷分散制御部31、およびバッファ制御部70のLAG出力制御部73にLAG設定ポート情報を出力する。LAGポート管理部50は、LAGに属する入出力ポートを設定するテーブルを備える。図2は、本実施の形態のLAGのポート設定テーブルの構成例を示す図である。LAGのポート設定テーブルは、LAG番号と、LAGの有効(1)/無効(0)と、登録ポート番号と、から構成される。例えば、LAG番号1は、LAGが有効であり、ポート#1,#2から構成されていること、LAG番号2は、LAGが有効であり、ポート#3,#4から構成されていること、を示す。なお、1つのLAGに設定できるポート数は複数設定可能であるが、異なるLAGに同じ入出力ポートを登録することはできない。
障害検出部60は、各入出力ポートの障害状態を管理し、障害の発生・回復の情報(障害情報)を、転送先管理部30、およびバッファ制御部70のLAG出力制御部73に出力する。障害の発生・回復を検出する方法については、特に限定しないが、リンク状態の監視および隣接間の接続性チェック用のフレームを短い周期で送受するなど、高速に障害を検出する方法が望ましい。
転送先管理部30は、入力されたフレームに対して、LAGポート管理部50および障害検出部60から取得した情報に基づいて、転送管理テーブル40を検索して転送先を決定する。転送先がLAG設定ポートの場合には、該当LAGに対して、出力負荷分散制御部31が転送先の出力ポートを決定する。出力負荷分散制御部31での負荷分散方法は、トラヒック毎にフレームの順序逆転が起きないように、アドレスベースまたは入力ポートベースで行うこととする。
バッファ制御部70では、転送先管理部30で決定された転送先に従って、転送先となる出力ポート毎に出力キューを持つバッファメモリ80へ入力順にフレームを格納する。出力キューの構成は、FIFO(First In First Out)とする。なお、バッファメモリ80では、1つの転送先について、優先クラス、ユーザ情報などにより複数の出力キューを持つことが可能である。
バッファ制御部70では、書込制御部71が、出力制御部74またはLAG出力制御部73から出力キューへの書き込みの際に次に書き込むアドレス情報(書込アドレス情報)を取得し、また、出力キューへの書き込みが不可を示すFULL情報の取得状況に応じて、入力されたフレームを転送先の出力ポートに対応する出力キューに書き込む制御を行う。また、書込制御部71は、フレームを出力キューに書き込んだ際の書込情報(転送先、優先クラス、ユーザ情報などのキュー情報、フレームを書き込んだキューのキュー番号、キューに書き込んだフレーム長)を、出力制御部74またはLAG出力制御部73に通知する。書込制御部71では、上記処理を出力ポート毎に行う。
読出制御部72は、出力制御部74またはLAG出力制御部73から読出指示があった場合に、該当の出力キューのフレームを読み出す制御を行う。また、読出制御部72は、出力キューからフレームを読み出した際の読出情報(キュー情報、フレームを読み出したキューのキュー番号、読み出したフレームのフレーム長)を出力制御部74またはLAG出力制御部73に通知する。読出制御部72では、上記処理を出力ポート毎に行う。
ここで、LAG設定されていない場合、出力制御部74は、LAG未設定ポート毎に出力制御を行う。出力制御部74は、書込制御部71からのフレームの書込情報および読出制御部72からの読出情報に基づいて、出力キュー単位に書込/読出アドレス、各出力キューのデータ量(バッファ量)などの情報を管理する。出力制御部74は、次のフレームの書込アドレス情報、出力キューが溢れそうな場合にはFULL情報を書込制御部71に通知する。また、出力制御部74は、出力側において出力ポートの伝送速度を超えない範囲で、然るべきタイミングで、読出指示、および読み出す先頭フレームのアドレス、フレーム長などの必要な情報を示す先頭フレーム情報を読出制御部72に通知する。この際、1つの出力ポートに対して出力キューが複数ある場合、出力制御部74は、複数の出力キューからのフレームの読み出しについて、優先制御および/または帯域制御を行う。
これに対して、LAG設定されている場合、LAG出力制御部73は、LAG設定ポート毎に出力制御を行う。図3は、本実施の形態のLAG出力制御部73の構成例を示す図である。LAG出力制御部73は、キュー管理部731−1,731−2と、出力切替部732と、キュー出力制御部733−1,733−2と、を備える。キュー管理部731−1およびキュー出力制御部733−1はポート#1に対応し、キュー管理部731−2およびキュー出力制御部733−2はポート#2に対応する。
LAG出力制御部73のキュー管理部731−1,731−2は、LAG設定ポート毎に、出力するフレームに対して、書込制御部71からの書込情報および読出制御部72からの読出情報に基づいて、出力キュー単位に書込/読出アドレス、および各出力キューのデータ量(バッファ量)などの情報を管理する。また、キュー管理部731−1,731−2は、次のフレームに対する書込アドレス情報、出力キューが溢れそうな場合はFULL情報を書込制御部71に通知する。さらに、キュー管理部731−1,731−2は、障害の発生が検出された時には、障害検出時点でのLAG設定ポートの各出力キューのバッファサイズを保持して、その情報を出力切替部732に通知する。なお、図中の書込情報#1、書込情報#2、FULL情報#1、FULL情報#2、書込アドレス情報#1、書込アドレス情報#2に付与されている#1、#2はポート番号に対応する。
LAG出力制御部73の出力切替部732は、LAG設定ポートで障害が発生していない場合、各出力ポートのキュー管理部731−1,731−2からの情報を対応する該当出力ポートのキュー出力制御部733−1,733−2に通知する。一方、出力切替部732は、LAG設定ポートで障害を検出した場合、障害検出部60からのLAG設定ポート毎の障害の有無の情報(障害情報)およびLAGポート管理部50からのLAG設定ポート情報に基づいて、障害が発生した出力ポート(以下、障害発生ポートとする)に対応する出力キューに既に格納されていたフレームを、障害の発生していない出力ポート(以下、障害未発生ポートとする)から出力するため、例えば、障害発生ポートに対応するキュー管理部731−1(またはキュー管理部731−2)からの情報を、障害未発生ポートに対応するキュー出力制御部733−2(またはキュー出力制御部733−1)に通知する。
LAG出力制御部73のキュー出力制御部733−1,733−2は、LAG設定ポート毎に、伝送速度を超えない範囲で、然るべきタイミングで、読み出す出力キューに対する読出指示、および読み出す先頭フレームのアドレス、フレーム長などの必要な情報である先頭フレーム情報を読出制御部72に通知する。この際、キュー出力制御部733−1,733−2は、1つの出力ポートに対して出力キューが複数ある場合には優先制御および/または帯域制御を行う。
さらに、キュー出力制御部733−1,733−2は、同一LAGに設定された自出力ポート以外の出力ポートで伝送路障害が発生した場合には、2つの出力ポートに対応するキュー管理部731−1,731−2からの情報を受信し、障害発生ポート用の出力キューに格納されていたフレームと自出力ポート用の出力キューに格納されたフレームの両方のフレームを自出力ポートから出力するための出力制御を行う。なお、図中の読出指示#1、読出指示#2、先頭フレーム情報#1、先頭フレーム情報#2に付与されている#1、#2はポート番号に対応する。
具体的に、出力ポートに障害が発生していない場合と障害が発生した場合のLAG出力制御部73におけるフレームの出力制御について説明する。
図4は、本実施の形態の出力ポートに障害が発生していない場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを1つずつ持ち、両出力ポートで障害が発生していない場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、LAG1に出力するフレームについて、トラヒック毎にポート#1あるいはポート#2の何れかの出力キューに転送する制御を行う。
出力ポートに障害が発生していない場合、LAG出力制御部73では、出力切替部732は、キュー管理部731−1からの情報をキュー出力制御部733−1に通知し、キュー管理部731−2からの情報をキュー出力制御部733−2に通知する。この結果、ポート#1の出力キュー(ポート#1用出力キュー)に格納されたフレームはそのままポート#1から伝送路の速度以下で出力され、ポート#2の出力キュー(ポート#2用出力キュー)に格納されたフレームはそのままポート#2から伝送路の速度以下で出力される。
図5は、本実施の形態の出力ポートに障害が発生した場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを1つずつ持ち、ポート#1に障害が発生した時のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、障害検出部60からの情報によりポート#1で障害の発生を検知すると、これまでポート#1を転送先としていたトラヒックのフレームについて、同じLAGのポート#2を転送先として変更する。このため、このLAGに出力するフレームは、全てポート#2用出力キューにフレームが入力されることになる。
また、LAG出力制御部73では、障害検出時のポート#1用出力キューのキュー長が0以外、すなわち、障害発生までにポート#1用出力キューに格納されたフレームで障害検出時にまだ出力されていないフレームがある場合、ポート#1からフレームを出力しないように出力制御を行う。出力切替部732は、キュー管理部731−1およびキュー管理部731−2からの情報をキュー出力制御部733−2に通知する。この結果、ポート#1用出力キューに格納されたフレームの出力先は切り替えられてポート#2から伝送路の速度以下で出力され、ポート#2用出力キューに格納されたフレームはそのままポート#2から伝送路の速度以下で出力される。
このとき、キュー出力制御部733−2は、ポート#1用出力キューに格納されているフレームを優先的にキュー長が0、すなわち、ポート#1用出力キューが空になるまで優先的にポート#2から伝送路の速度以下で出力する制御を行う。キュー出力制御部733−2は、ポート#2用出力キューに格納されたフレームについて、障害発生ポートに対応するポート#1用出力キューが空になった後、ポート#2から伝送路の速度以下で出力する制御を行う。キュー出力制御部733−2は、ポート#1用出力キューのフレームを優先的にポート#2から出力するように、読出制御部72に対して読出指示および先頭フレーム情報を通知する。
なお、図4および図5では、それぞれの出力ポートに対して出力キューを1つずつ持っている場合の動作について説明したが、各出力ポートに対して出力キューを複数持つことも可能である。
図6は、本実施の形態の出力ポートに障害が発生していない場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを2つずつ持ち、両出力ポートで障害が発生していない場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、LAG1に出力するフレームについて、トラヒック毎にポート#1あるいはポート#2の何れかの該当クラスの出力キューに転送する制御を行う。このとき、LAG出力制御部73の出力切替部732の動作は出力キューが2つの場合(図4参照)と同様である。
この結果、ポート#1の出力キューに格納されたフレームについては、ポート#1用出力クラス1の出力キュー(ポート#1用出力クラス1キュー)に格納されたフレームをポート#1用出力クラス2の出力キュー(ポート#1用出力クラス2キュー)に格納されたフレームより優先する完全優先などの異なるクラス間の優先制御によりポート#1から伝送路の速度以下で出力される。同様に、ポート#2の出力キューに格納されたフレームについては、ポート#2用出力クラス1の出力キュー(ポート#2用出力クラス1キュー)に格納されたフレームをポート#2用出力クラス2の出力キュー(ポート#2用出力クラス2キュー)に格納されたフレームより優先する完全優先などの異なるクラス間の優先制御によりポート#2から伝送路の速度以下で出力される。
図7は、本実施の形態の出力ポートに障害が発生した場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを2つずつ持ち、ポート#1に障害が発生した時のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、障害検出部60からの情報によりポート#1の障害の発生を検知すると、これまでポート#1を転送先としていたトラヒックのフレームについて、同じLAGのポート#2を転送先として変更する。この際、各クラスに対応したクラスキューに格納することとする。このため、このLAGに出力するフレームは、全てポート#2の出力キューの各クラスキューにフレームが入力されることになる。
また、LAG出力制御部73では、障害検出時のポート#1に対応する各クラスキュー長が0以外、すなわち、障害発生前までにポート#1に対応する出力キューに格納されたフレームで障害検出時にまだ出力されていないフレームが各クラスキューにある場合、ポート#1からフレームを出力しないように出力制御を行う。このとき、LAG出力制御部73の出力切替部732の動作は出力キューが2つの場合(図5参照)と同様である。この結果、ポート#1に対応する各クラスキューに格納されたフレームの出力先は切り替えられてポート#2から伝送路の速度以下で出力され、ポート#2に対応する各クラスキューに格納されたフレームはそのままポート#2から伝送路の速度以下で出力される。
このとき、キュー出力制御部733−2は、ポート#1に対応する各クラスキューに格納されているフレームを優先的にキュー長が0、すなわち、ポート#1に対応する各クラスキューが空になるまで、クラスの優先制御を行った上で、優先的にポート#2から伝送路の速度以下で出力する制御を行う。キュー出力制御部733−2は、ポート#2に対応する各クラスキューに格納されたフレームについて、障害発生ポートであるポート#1に対応する各クラスキューが空になった後、クラスの優先制御を行った上で、ポート#2から伝送路の速度以下で出力する制御を行う。キュー出力制御部733−2は、ポート#1に対応する各クラスキューのフレームを優先的にポート#2から出力するように、読出制御部72に対して読出指示および先頭フレーム情報を通知する。
なお、図6および図7では、各出力ポートに対して出力キューを2クラス持っている場合の動作について説明したが、3クラス以上にすることも可能である。3クラス以上の出力キューを持つ場合も同様、障害検出時には同一LAGの障害未発生ポートに対応した出力キューに、クラス毎にフレームを格納する出力キューが切り替えられ、クラス1を最優先として、クラス毎には障害発生ポートに対応した出力キューに格納されているフレームを優先して、障害未発生ポートから出力することができる。
以上説明したように、本実施の形態によれば、通信装置では、複数のポートが同一LAGに設定され、LAG設定ポートのいずれかで障害の発生を検出した場合に、障害発生ポートに対応する出力キューへ格納していたフレームの転送先を同一LAGで障害未発生ポートに対応する出力キューへ変更し、また、障害発生ポートに対応する出力キューに格納されたフレームの出力先を、同一LAGの障害未発生ポートに切り替えることとした。これにより、フレーム廃棄を極力減らし、通信断時間を短くすることができる。また、障害発生ポートに対応する出力キューに格納されたフレームを優先して出力することにより、LAGで使用可能なポート数が減った場合でも、トラヒックフロー単位のフレームの順序逆転を防ぐことができる。
実施の形態2.
実施の形態1では、1つのLAGに2ポート設定され、片方の出力ポートで障害の発生を検出した場合に、他方の出力ポートに出力先を切り替え、障害検出時点で障害発生ポートに対応する出力キューに格納されていたフレームを優先的に障害未発生ポートから出力することで、フレームの廃棄を減らし、フロー毎のフレームの順序逆転を防いでいる。
実施の形態1では、1つのLAGに2ポート設定され、片方の出力ポートで障害の発生を検出した場合に、他方の出力ポートに出力先を切り替え、障害検出時点で障害発生ポートに対応する出力キューに格納されていたフレームを優先的に障害未発生ポートから出力することで、フレームの廃棄を減らし、フロー毎のフレームの順序逆転を防いでいる。
ここで、実施の形態1では、障害検出時に同一LAGの出力ポートに対応する出力キューにフレームが格納されている状態において、障害発生ポートに対応する出力キューからのフレームを優先的に出力するため、障害発生ポートに対応する出力キューに格納されたフレーム数が多いとそのフレームを全て出力するまで障害未発生ポートに対応する出力キューに格納されていたフレームを出力できず、出力遅延が大きくなり、出力キュー間で出力遅延に不公平性が生じる可能性がある。
本実施の形態では、1つのLAGに2ポート設定され、片方の出力ポートで障害を検出した場合に、出力キュー間での出力遅延時間を公平にする方法について説明する。
本実施の形態の通信装置および各部の構成は実施の形態1(図1〜図3参照)と同様である。以下に、障害検出時に各出力ポートに対応する出力キューに格納されていたフレームの出力遅延を公平にするLAG出力制御部73におけるフレームの出力制御について説明する。
図8は、本実施の形態の出力ポートに障害が発生していない場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを1つずつ持ち、両出力ポートで障害が発生していない場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、LAG1に出力するフレームについて、トラヒック毎にポート#1あるいはポート#2の何れかの出力キューに転送する制御を行う。
このとき、LAG出力制御部73の出力切替部732の動作は実施の形態1(図4参照)と同様である。この結果、ポート#1の出力キュー(ポート#1用出力キュー)に格納されたフレームはそのままポート#1から伝送路の速度以下で出力され、ポート#2の出力キュー(ポート#2用出力キュー)に格納されたフレームはそのままポート#2から伝送路の速度以下で出力される。
図9は、本実施の形態の出力ポートに障害が発生した場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを1つずつ持ち、ポート#1に障害が発生した時のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、障害検出部60からの情報によりポート#1で障害の発生を検知すると、これまでポート#1を転送先としていたトラヒックのフレームについて、同じLAGのポート#2を転送先として変更する。このため、このLAGに出力するフレームは、全てポート#2用出力キューにフレームが入力されることになる。
また、LAG出力制御部73では、障害検出時のポート#1用出力キューのキュー長が0以外、すなわち、障害発生前までにポート#1用出力キューに格納されたフレームで障害検出時にまだ出力されていないフレームがある場合、ポート#1からフレームを出力しないように出力制御を行う。このとき、LAG出力制御部73の出力切替部732の動作は実施の形態1(図5参照)と同様である。この結果、ポート#1用出力キューに格納されたフレームの出力先は切り替えられてポート#2から伝送路の速度以下で出力され、ポート#2用出力キューに格納されたフレームはそのままポート#2から伝送路の速度以下で出力される。
ここで、キュー出力制御部733−2は、実施の形態1と異なり、障害検出時のポート#1用出力キューのキュー長が0以外、すなわち、障害発生までにポート#1用出力キューに格納されたフレームで障害検出時にまだ出力されていないフレームがポート#1用出力キューにある場合、ポート#1用出力キューに格納されたフレームの出力ポートをポート#1から同じLAGのポート#2に切り替えて、障害発生ポートに対応するポート#1用出力キューに格納されているフレーム、および障害未発生ポートに対応するポート#2用出力キューに格納されているフレームに対して、障害発生ポートに対応するポート#1用出力キューのキュー長が0、すなわち、ポート#1用出力キューが空になるまで、WFQ(Weighted Fair Queuing)による出力制御によりポート#2から伝送路の速度以下で出力する。
キュー出力制御部733−2は、2つの出力キューからのフレームの出力に対して、障害検出時の両出力ポートに対応する出力キューのキュー長の値X,Yを保持し、その2つの出力ポートに対応する出力キューのキュー長比を各出力キューのウェイト値とし、ウェイト値に基づいたWFQによる出力制御を行い、ポート#2から伝送路の速度以下で両ポートの出力キューに格納されているフレームを出力する。キュー出力制御部733−2は、上記出力制御に従って、読出制御部72に対して読出指示および先頭フレーム情報を通知する。
なお、障害検出時の各出力ポートに対応する出力キューのキュー長の比がX:Yである場合、フロー毎のフレームの順序逆転が発生しないように、WFQのウェイト値をX:Yではなく、例えば、(X+伝送路を通る可能性がある最大フレーム長):Yなど、障害発生ポートの重みが若干大きくなるようなウェイト値の比を用いてもよい。また、WFQではなく、WRR(Weighted Round Robin)、DRR(Deficit Round Robin)などの方式を用いてもよい。
つづいて、各出力ポートに対して出力キューを複数持つ場合の動作について説明する。
図10は、本実施の形態の出力ポートに障害が発生していない場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを2つずつ持ち、両出力ポートで障害が発生していない場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、LAG1に出力するフレームについて、トラヒック毎にポート#1あるいはポート#2の何れかの該当クラスの出力キューに転送する制御を行う。このとき、LAG出力制御部73の出力切替部732の動作は出力キューが2つの場合(図8参照)と同様である。
この結果、ポート#1の出力キューに格納されたフレームについては、ポート#1用出力クラス1の出力キュー(ポート#1用出力クラス1キュー)に格納されたフレームをポート#1用出力クラス2の出力キュー(ポート#1用出力クラス2キュー)に格納されたフレームより優先する完全優先などの異なるクラス間の優先制御によりポート#1から伝送路の速度以下で出力される。同様に、ポート#2の出力キューに格納されたフレームについては、ポート#2用出力クラス1の出力キュー(ポート#2用出力クラス1キュー)に格納されたフレームをポート#2用出力クラス2の出力キュー(ポート#2用出力クラス2キュー)に格納されたフレームより優先する完全優先などの異なるクラス間の優先制御によりポート#2から伝送路の速度以下で出力される。
図11は、本実施の形態の出力ポートに障害が発生した場合の出力制御を示す図である。同一LAGに設定されたポート#1とポート#2において、それぞれの出力ポートに対して出力キューを2つずつ持ち、ポート#1に障害が発生した時のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、障害検出部60からの情報によりポート#1の障害の発生を検知すると、これまでポート#1を転送先としていたトラヒックのフレームについて、同じLAGのポート#2を転送先として変更する。この際、各クラスに対応したクラスキューに格納することとする。このため、このLAGに出力するフレームは、全てポート#2の出力キューの各クラスキューにフレームが入力されることになる。
また、LAG出力制御部73では、障害検出時のポート#1に対応する各クラスキュー長が0以外、すなわち、障害発生前までにポート#1に対応する出力キューに格納されたフレームで障害検出時にまだ出力されていないフレームが各クラスキューにある場合、ポート#1からフレームを出力しないように出力制御を行う。このとき、LAG出力制御部73の出力切替部732の動作は出力キューが2つの場合(図9参照)と同様である。この結果、ポート#1に対応する各クラスキューに格納されたフレームの出力先は切り替えられてポート#2から伝送路の速度以下で出力され、ポート#2に対応する各クラスキューに格納されたフレームはそのままポート#2から伝送路の速度以下で出力される。
ここで、キュー出力制御部733−2は、実施の形態1と異なり、障害検出時のポート#1に対応する各クラスキュー長が0以外、すなわち、障害発生までにポート#1に対応する出力キューに格納されたフレームで障害検出時にまだ出力されていないフレームが各クラスキューにある場合、ポート#1に対応する該当クラスキューに格納されたフレームの出力ポートをポート#1から同じLAGのポート#2に切り替えて、クラス毎に、障害発生ポートであるポート#1に対応する出力キューに格納されているフレーム、および障害未発生ポートであるポート#2に対応する出力キューに格納されているフレームに対して、障害発生ポートであるポート#1に対応する出力キューのキュー長が0、すなわち、出力キューが空になるまで、WFQによる出力制御によりポート#2から伝送路の速度以下で出力する。
キュー出力制御部733−2は、各出力キューからのフレームの出力に対して、障害検出時の両出力ポートのクラス1の出力キューのキュー長の値X1,Y1、両出力ポートのクラス2の出力キューのキュー長の値X2,Y2を保持し、クラス毎にその2つの出力ポートの出力キューのキュー長比を各出力キューのウェイト値とし、ウェイト値に基づいたWFQによる出力制御を行い、さらに、クラスの優先制御を実施した上で、ポート#2から伝送路の速度以下で両出力ポートに対応する出力キューに格納されているフレームを出力する。キュー出力制御部733−2は、上記出力制御に従って、読出制御部72に対して読出指示および先頭フレーム情報を通知する。
なお、障害検出時の各ポートに対応する各クラスの出力キューのキュー長の比がX1:Y1、X2:Y2である場合、フロー毎のフレームの順序逆転が発生しないように、WFQのウェイト値をXn:Ynではなく、例えば、(Xn+伝送路を通る可能性がある最大フレーム長):Yn(nはクラス数)など、障害発生ポートの重みが若干大きくなるようなウェイト値の比を用いてもよい。また、WFQではなく、WRR、DRRなどの方式を用いてもよい。
また、図10および図11では、各ポートに対して出力キューを2クラス持っている場合の動作について説明したが、3クラス以上にすることも可能である。3クラス以上の出力キューを持つ場合も同様、障害検出時には同一LAGの障害未発生ポートに対応した出力キューに、クラス毎にフレームを格納する出力キューが切り替えられ、障害検出時の障害発生ポートおよび障害未発生ポートに対応した各クラスのキュー長の比に従ってクラス毎に重み付けされた出力比で出力され、かつ、異なるクラス間の優先制御を実施して、障害未発生ポートから出力することができる。
以上説明したように、本実施の形態によれば、通信装置では、障害の発生を検出した時のフレームの出力制御において、障害検出時の各出力キューのキュー長の比に応じて出力制御することとした。これにより、実施の形態1の効果に加えて、各出力キューに格納されていたフレームの遅延時間の公平性を保つことが可能である。
実施の形態3.
本実施の形態では、バッファメモリ80において入力ポートに対応した入力キューにフレームを格納する場合について、1つのLAGに3ポート設定されているときを例にして説明する。実施の形態1と異なる部分について説明する。
本実施の形態では、バッファメモリ80において入力ポートに対応した入力キューにフレームを格納する場合について、1つのLAGに3ポート設定されているときを例にして説明する。実施の形態1と異なる部分について説明する。
図12は、本実施の形態の通信装置の構成例を示す図である。実施の形態1(図1参照)と同様であるが、1つのLAGに3ポート設定されている点が実施の形態1と異なる。
つづいて、通信装置において、入力したフレームを転送する際、出力ポートで障害を検出した場合に、出力先の出力ポートを切り替えてフレームを出力する動作について説明する。本実施の形態では、1つのLAGに3ポート設定されている場合として、通信装置において、ポート#4〜#9から入力したフレームをポート#1〜#3から出力する場合を例に説明する。
まず、LAGポート管理部50は、予めLAGに属する入出力ポートを設定し、転送先管理部30の出力負荷分散制御部31、およびバッファ制御部70のLAG出力制御部73にLAG設定ポート情報を出力する。LAGポート管理部50は、LAGに属する入出力ポートを設定するテーブルを備える。図13は、本実施の形態のLAGのポート設定テーブルの構成例を示す図である。テーブルの構成は実施の形態1(図2参照)と同様であるが、ここでは、1つのLAGに3ポートを設定している。例えば、LAG番号1は、LAGが有効であり、ポート#1,#2,#3から構成されていること、LAG番号2は、LAGが有効であり、ポート#4,#5,#6から構成されていること、を示す。
また、LAGポート管理部50は、出力負荷分散制御の設定テーブルを備える。図14は、本実施の形態の出力負荷分散制御の設定テーブルの構成例を示す図である。出力負荷分散制御の設定テーブルは、入力ポートと、障害発生有無のそれぞれの場合のLAG出力ポートと、から構成される。LAGの出力負荷分散制御が入力ポートベースである場合に、同一LAGに設定された3ポートのうち、1ポートが障害発生により通信できなくなった場合に出力するポートを予め設定しておく。例えば、入力ポートとしてポート#4から入力したフレームは、障害が発生していないときはポート#1から出力し、ポート#1で障害が発生しているときはポート#2から出力することを示す。
障害検出部60は、各入出力ポートの障害状態を管理し、障害の発生・回復の情報を、転送先管理部30、およびバッファ制御部70のLAG出力制御部73に出力する。障害の発生・回復を検出する方法については、実施の形態1と同様である。
転送先管理部30は、入力されたフレームに対して、LAGポート管理部50および障害検出部60から取得した情報に基づいて、転送管理テーブル40を検索して転送先を決定する。転送先がLAG設定のポートである場合には、該当LAGに対して、LAGポート管理部50で設定された出力負荷分散制御の設定テーブル(図14参照)の出力先に従って、出力負荷分散制御部31が転送先のポートを決定する。図14に示す出力負荷分散制御の設定テーブルは入力ポートベースモードにおける入力ポートに対する障害発生の有無による出力ポートの設定例であるが、出力負荷分散制御部31での負荷分散方法は、実施の形態1と同様、トラヒック毎にフレームの順序逆転が起きないように、アドレスベースまたは入力ポートベースで行うこととする。
バッファ制御部70では、転送先管理部30で決定された転送先に従って、フレームの入力元となる入力ポート毎に入力キューを持つバッファメモリ80へ入力順にフレームを格納する。入力キューの構成は、FIFO(First In First Out)とする。なお、バッファメモリ80では、1つの入力元について、優先クラス、ユーザ情報などにより複数の入力キューを持つことが可能である。
バッファ制御部70では、書込制御部71が、出力制御部74またはLAG出力制御部73から入力キューへの書き込みの際に次に書き込むアドレス情報(書込アドレス情報)を取得し、また、入力キューへの書き込みが不可を示すFULL情報の取得状況に応じて、入力されたフレームを入力元の入力ポートに対応する入力キューに書き込む制御を行う。また、書込制御部71は、フレームを入力キューに書き込んだ際の書込情報(転送先、優先クラス、ユーザ情報などのキュー情報、フレームを書き込んだキューのキュー番号、キューに書き込んだフレーム長)を、出力制御部74またはLAG出力制御部73に通知する。書込制御部71では、上記処理を入力ポート毎に行う。
読出制御部72は、出力制御部74またはLAG出力制御部73から読出指示があった場合に、該当の入力キューのフレームを読み出す制御を行う。また、読出制御部72は、入力キューからフレームを読み出した際の読出情報(キュー情報、フレームを読み出したキューのキュー番号、読み出したフレームのフレーム長)を出力制御部74またはLAG出力制御部73に通知する。読出制御部72では、上記処理を入力ポート毎に行う。
ここで、LAG設定されていない場合、出力制御部74は、LAG未設定ポート毎に出力制御を行う。出力制御部74は、書込制御部71からのフレームの書込情報および読出制御部72からの読出情報に基づいて、入力キュー単位に書込/読出アドレス、各入力キューのデータ量(バッファ量)などの情報を管理する。出力制御部74は、次のフレームの書込アドレス情報、入力キューが溢れそうな場合にはFULL情報を書込制御部71に通知する。また、出力制御部74は、出力側において出力ポートの伝送速度を超えない範囲で、然るべきタイミングで、読出指示および先頭フレーム情報を読出制御部72に通知する。この際、1つのポートに対して入力キューが複数ある場合、出力制御部74は、複数の入力キューからのフレームの読み出しについて、優先制御および/または帯域制御を行う。
これに対して、LAG設定されている場合、LAG出力制御部73は、LAG設定ポート毎に出力制御を行う。図15は、本実施の形態のLAG出力制御部73の構成例を示す図である。LAG出力制御部73は、キュー管理部731−4,731−5,…,731−9と、出力切替部732と、キュー出力制御部733−1,733−2,733−3と、を備える。キュー管理部731−4〜731−9はそれぞれポート#4〜#9に対応し、キュー出力制御部733−1〜733−3はそれぞれポート#1〜#3に対応する。
LAG出力制御部73のキュー管理部731−4〜731−9は、入力ポート毎に、LAG設定ポートを転送先とするフレームに対して、書込制御部71からの書込情報および読出制御部72からの読出情報に基づいて、入力キュー単位に書込/読出アドレス、各入力キューのデータ量(バッファ量)などの情報を管理する。また、キュー管理部731−4〜731−9は、次のフレームに対する書込アドレス情報、入力キューが溢れそうな場合はFULL情報を書込制御部71に通知する。さらに、キュー管理部731−4〜731−9は、障害の発生が検出された時には、障害検出時点での各入力キューのバッファサイズを保持して、その情報を出力切替部732に通知する。なお、図中の書込情報#4〜#9、FULL情報#4〜#9、書込アドレス情報#4〜#9に付与されている#4〜#9はポート番号に対応する。
LAG出力制御部73の出力切替部732は、障害検出部60からのLAG設定ポート毎の障害の有無の情報(障害情報)により、LAG設定ポートで障害が発生していない場合、LAGポート管理部50からの障害発生無しの状態における入力ポートに対する出力ポートの情報に基づいて、該当入力ポートのキュー管理部731−4〜731−9からの情報を該当出力ポートのキュー出力制御部733−1〜733−3のいずれかに通知する。また、出力切替部732は、障害検出部60からのLAG設定ポート毎の障害の有無の情報(障害情報)により、LAGポートで障害が発生している場合、LAGポート管理部50からの障害発生有りの状態における入力ポートに対する出力ポートの情報に基づいて、該当入力ポートのキュー管理部731−4〜731−9からの情報を該当出力ポートのキュー出力制御部733−1〜733−3のいずれかであって、障害発生無しのときとは異なるキュー出力制御部に切り替えて通知する。
LAG出力制御部73のキュー出力制御部733−1〜733−3は、障害未発生ポートについて、ポート毎に伝送速度を超えない範囲で、LAGポート管理部50で設定された複数の入力キューに格納されているフレームを入力キューに格納された順番に管理し、然るべきタイミングで、読み出す入力キューに対する読出指示、および読み出す先頭フレームのアドレス、フレーム長などの必要な情報である先頭フレーム情報を読出制御部72に通知する。この際、キュー出力制御部733−1〜733−3は、1つの出力ポートに対して入力キューが複数ある場合には、出力ポート単位にフレームの到着順を管理するキューを別途設け、フレームの入力順に出力する処理を行う。
さらに、キュー出力制御部733−1〜733−3は、同一LAGに設定された自出力ポート以外の出力ポートで伝送路障害が発生した場合には、障害発生ポートに出力されるはずであり、障害が発生した時は自ポートに出力が切り替えられる入力ポートに対応する入力キューのキュー管理部731−4〜731−9のいずれかからの情報を受信し、障害発生ポートに出力するはずであって障害発生後は自出力ポートに出力先が切り替わった入力ポート毎の入力キューに格納されていたフレームと、元々自出力ポートに出力されるべき入力ポート毎の入力キューに格納されていたフレームについて、複数のキューに格納されているフレームを自出力ポートから出力するための出力制御を行う。なお、図中の読出指示#4〜#9、先頭フレーム情報#4〜#9に付与されている#4〜#9はポート番号に対応する。
具体的に、出力ポートに障害が発生していない場合と障害が発生した場合のLAG出力制御部73におけるフレームの出力制御について説明する。
図16は、本実施の形態の出力ポートに障害が発生していない場合の出力制御を示す図である。同一LAGに設定されたポート#1〜#3に出力されるフレームに対して、入力ポートベースの出力負荷分散制御として、それぞれ入力ポート毎に入力キューを1つずつ持ち、各出力ポートで障害が発生していない場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、LAG1に出力するフレームについて、入力ポート毎にポート#4〜#9の何れかの入力キューに転送する制御を行う。
出力ポートに障害が発生していない場合、LAG出力制御部73では、出力切替部732は、キュー管理部731−4,731−5からの情報をキュー出力制御部733−1に通知し、キュー管理部731−6,731−7からの情報をキュー出力制御部733−2に通知し、キュー管理部731−8,731−9からの情報をキュー出力制御部733−3に通知する。この結果、ポート#1に出力されるポート#4,#5に対応する入力キュー(ポート#4用入力キュー、ポート#5用入力キュー)に格納されたフレームはポート#1から2つの入力キューを合わせて入力順に伝送路の速度以下で出力され、ポート#2に出力されるポート#6,#7に対応する入力キュー(ポート#6用入力キュー、ポート#7用入力キュー)に格納されたフレームはポート#2から2つの入力キューを合わせて入力順に伝送路の速度以下で出力され、ポート#3に出力されるポート#8,#9に対応する入力キュー(ポート#8用入力キュー、ポート#9用入力キュー)に格納されたフレームはポート#3から2つの入力キューを合わせて入力順に伝送路の速度以下で出力される。
図17は、本実施の形態の出力ポートに障害が発生した場合の出力制御を示す図である。同一LAGに設定されたポート#1〜#3に出力されるフレームに対して、入力ポートベースの出力負荷分散制御として、それぞれ入力ポート毎に入力キューを1つずつ持ち、ポート#1で障害が発生した場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、障害検出部60からの情報によりポート#1で障害の発生を検知すると、これまでポート#1を転送先としていたポート#4,#5のフレームについて、図14に示す出力負荷分散制御の設定テーブルの設定に基づいて、それぞれ同じLAGのポート#2,#3に入力ポート毎に出力先を切り替える。このため、このLAGに出力するフレームは、全て図示しないポート#2またはポート#3の出力キューにフレームが入力されることになる。
また、LAG出力制御部73では、障害検出時のポート#4用入力キュー、ポート#5用入力キューのキュー長が0以外、すなわち、障害発生までにポート#4用入力キュー、ポート#5用入力キューに格納されたフレームで障害検出時にまだポート#1から出力されていないフレームがある場合、ポート#1からフレームを出力しないように出力制御を行う。出力切替部732は、キュー管理部731−4からの情報をキュー出力制御部733−2に通知し、キュー管理部731−5からの情報をキュー出力制御部733−3に通知する。この結果、ポート#4用入力キューに格納されたフレームの出力先は切り替えられてポート#2から伝送路の速度以下で出力され、ポート#5用入力キューに格納されたフレームの出力先は切り替えられてポート#3から伝送路の速度以下で出力される。
このとき、キュー出力制御部733−2は、ポート#4用入力キューに格納されているフレームを優先的にキュー長が0、すなわち、ポート#4用入力キューが空になるまで優先的にポート#2から伝送路の速度以下で出力する制御を行う。キュー出力制御部733−2は、ポート#6用入力キュー、ポート#7用入力キューに格納されたフレームについて、ポート#4用入力キューが空になった後、ポート#2から伝送路の速度以下で出力する制御を行う。
同様に、キュー出力制御部733−3は、ポート#5用入力キューに格納されているフレームを優先的にキュー長が0、すなわち、ポート#5用入力キューが空になるまで優先的にポート#3から伝送路の速度以下で出力する制御を行う。キュー出力制御部733−3は、ポート#8用入力キュー、ポート#9用入力キューに格納されたフレームについて、ポート#5の入力キューが空になった後、ポート#3から伝送路の速度以下で出力する制御を行う。
なお、図16および図17では、それぞれ入力ポートに対して入力キューを1つずつ持っている場合の動作について説明したが、各入力ポートに対して入力キューを複数持つことも可能である。1つの入力ポートに対してクラスキューを複数持つ場合の動作については、同一クラスの複数の入力キューにおいて本実施の形態で説明した出力制御を行い、後段において実施の形態1の複数クラスキューを持つ場合の動作と同様にクラス間の優先制御を行う。
以上説明したように、本実施の形態によれば、通信装置では、複数のポートが同一LAGに設定され、LAG設定ポートのいずれかで障害の発生を検出した場合に、障害発生ポートへ出力する入力キューへ格納していたフレームの転送先を同一LAGで障害未発生ポートを出力先とする入力キューへ変更し、また、障害発生ポートへ出力する入力キューに格納されたフレームの出力先を、同一LAGの障害未発生ポートに切り替えることとした。これにより、フレーム廃棄を極力減らし、通信断時間を短くすることができる。また、障害発生ポートを出力先としていた入力キューに格納されたフレームを優先して出力することにより、LAGで使用可能なポート数が減った場合でも、トラヒックフロー単位のフレームの順序逆転を防ぐことができる。
実施の形態4.
実施の形態3では、1つのLAGに3ポート設定され、1つの出力ポートで障害の発生を検出した場合に、他の出力ポートに出力先を切り替え、障害検出時点で障害検出ポートへ出力するはずであった入力キューに格納されていたフレームを優先的に障害未発生ポートから出力することで、フレームの廃棄を減らし、フロー毎のフレームの順序逆転を防いでいる。
実施の形態3では、1つのLAGに3ポート設定され、1つの出力ポートで障害の発生を検出した場合に、他の出力ポートに出力先を切り替え、障害検出時点で障害検出ポートへ出力するはずであった入力キューに格納されていたフレームを優先的に障害未発生ポートから出力することで、フレームの廃棄を減らし、フロー毎のフレームの順序逆転を防いでいる。
ここで、実施の形態3では、障害検出時に出力先の出力ポートを切り替えた入力キューにフレームが格納されている状態において、この入力キューからのフレームを優先的に出力するため、この入力キューに格納されたフレーム数が多い場合に、そのフレームを全て出力するまで、元々切替先の出力ポートを出力先としていた入力キューに格納されていたフレームが出力されず、出力遅延が大きくなり、入力キュー間で出力遅延に不公平性が生じる可能性がある。
本実施の形態では、1つのLAGに3ポート設定され、1つの出力ポートで障害を検出した場合に、入力キュー間での出力遅延時間を公平にする方法について説明する。
本実施の形態の通信装置および各部の構成は実施の形態3(図12〜図15参照)と同様である。以下に、障害検出時に各入力ポートに対応する入力キューに格納されていたフレームの出力遅延を公平にするLAG出力制御部73におけるフレームの出力制御について説明する。
図18は、本実施の形態の出力ポートに障害が発生していない場合の出力制御を示す図である。同一LAGに設定されたポート#1〜#3に出力されるフレームに対して、入力ポートベースの出力負荷分散制御として、それぞれ入力ポート毎に入力キューを1つずつ持ち、各出力ポートで障害が発生していない場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、LAG1に出力するフレームについて、入力ポート毎にポート#4〜#9の何れかの入力キューに転送する制御を行う。
このとき、LAG出力制御部73の出力切替部732の動作は実施の形態3(図16参照)と同様である。この結果、ポート#1に出力されるポート#4,#5の入力キュー(ポート#4用入力キュー、ポート#5用入力キュー)に格納されたフレームはポート#1から2つの入力キューを合わせて入力順に伝送路の速度以下で出力され、ポート#2に出力されるポート#6,#7の入力キュー(ポート#6用入力キュー、ポート#7用入力キュー)に格納されたフレームはポート#2から2つの入力キューを合わせて入力順に伝送路の速度以下で出力され、ポート#3に出力されるポート#8,#9の入力キュー(ポート#8用入力キュー、ポート#9用入力キュー)に格納されたフレームはポート#3から2つの入力キューを合わせて入力順に伝送路の速度以下で出力される。
図19は、本実施の形態の出力ポートに障害が発生した場合の出力制御を示す図である。同一LAGに設定されたポート#1〜#3に出力されるフレームに対して、入力ポートベースの出力負荷分散制御として、それぞれ入力ポート毎に入力キューを1つずつ持ち、ポート#1で障害が発生した場合のLAG出力制御部73の動作例を示している。転送先管理部30の出力負荷分散制御部31は、障害検出部60からの情報によりポート#1で障害の発生を検知すると、これまでポート#1を転送先としていたポート#4,#5のフレームについて、図14に示す出力負荷分散制御の設定テーブルの設定に基づいて、それぞれ同じLAGのポート#2,#3に入力ポート毎に出力先を切り替える。このため、このLAGに出力するフレームは、全て図示しないポート#2またはポート#3の出力キューにフレームが入力されることになる。
また、LAG出力制御部73では、障害検出時のポート#4用入力キュー、ポート#5用入力キューのキュー長が0以外、すなわち、障害発生までにポート#4用入力キュー、ポート#5用入力キューに格納されたフレームで障害検出時にまだポート#1から出力されていないフレームがある場合、ポート#1からフレームを出力しないように出力制御を行う。このとき、LAG出力制御部73の出力切替部732の動作は実施の形態3(図17参照)と同様である。この結果、ポート#4用入力キューに格納されたフレームの出力先は切り替えられてポート#2から伝送路の速度以下で出力され、ポート#5用入力キューに格納されたフレームの出力先は切り替えられてポート#3から伝送路の速度以下で出力される。
このとき、キュー出力制御部733−2は、ポート#4用入力キューに格納されているフレーム、およびポート#2から予め出力していたポート#6用入力キュー、ポート#7用入力キューに格納されているフレームを、ポート#4用入力キューに格納されているフレームが無くなる(キュー長が0、すなわち、キューが空になる)まで、WFQによる出力制御によりポート#2から伝送路の速度以下で出力する制御を行う。
キュー出力制御部733−2は、3つのキューからのフレームの出力に対して、障害検出時の各入力ポートの入力キューのキュー長の値A,C,Dを保持し、障害発生によって切り替わったポート#4用入力キューのキュー長Aと予めポート#2に出力していたポート#6用入力キュー、ポート#7用入力キューのキュー長を加算した値(C+D)のキュー長比をウェイト値とし、ポート#4用入力キューとポート#6用入力キュー、ポート#7用入力キューを合算した入力キューとの間でウェイト値に基づいたWFQによる出力制御を行い、ポート#2から伝送路の速度以下で各入力ポートに対応する入力キューに格納されているフレームを出力する。
同様に、キュー出力制御部733−3は、ポート#5用入力キューに格納されているフレーム、およびポート#3から予め出力していたポート#8用入力キュー、ポート#9用入力キューに格納されているフレームを、ポート#5用入力キューに格納されているフレームが無くなる(キュー長が0、すなわち、キューが空になる)まで、WFQによる出力制御によりポート#3から伝送路の速度以下で出力する制御を行う。
キュー出力制御部733−3は、3つのキューからのフレームの出力に対して、障害検出時の各入力ポートの入力キューのキュー長の値B,E,Fを保持し、障害発生によって切り替わったポート#5用入力キューのキュー長Bと予めポート#3に出力していたポート#8用入力キュー、ポート#9用入力キューのキュー長を加算した値(E+F)のキュー長比をウェイト値とし、ポート#5用入力キューとポート#8用入力キュー、ポート#9用入力キューを合算した入力キューとの間でウェイト値に基づいたWFQによる出力制御を行い、ポート#3から伝送路の速度以下で各入力ポートに対応する入力キューに格納されているフレームを出力する。
なお、障害検出時の各入力ポートの入力キュー長の比がA:(C+D)、B:(E+F)である場合、フロー毎のフレームの順序逆転が発生しないように、WFQのウェイト値を(A+伝送路を通る可能性がある最大フレーム長):(C+D)、(B+伝送路を通る可能性がある最大フレーム長):(E+F)など、障害発生ポートの重みが若干大きくなるようなウェイト値の比を用いてもよい。また、WFQではなく、WRR、DRRなどの方式を用いてもよい。
また、図18および図19では、それぞれ入力ポートに対して入力キューを1つずつ持っている場合の動作について説明したが、各入力ポートに対して入力キューを複数持つことも可能である。1つの入力ポートに対してクラスキューを複数持つ場合の動作については、同一クラスの複数の入力キューにおいて本実施の形態で説明した出力制御を行い、後段において実施の形態2の複数クラスキューを持つ場合の動作と同様にクラス間の優先制御を行う。
以上説明したように、本実施の形態によれば、通信装置では、障害の発生を検出した時のフレームの出力制御において、障害検出時の各入力キューのキュー長の比に応じて出力制御することとした。これにより、実施の形態3の効果に加えて、各入力キューに格納されていたフレームの遅延時間の公平性を保つことが可能である。
なお、実施の形態3,4では、3つのポートが同一LAGに設定されている場合の動作について説明したが、これに限定するものではなく、同一LAGに4ポート以上設定される場合についても、同様に考えることができる。
また、実施の形態3,4では、出力負荷分散制御が入力ポートベースモードの場合の動作について説明したが、アドレスベースモードの場合は、出力キューを同一LAGに設定されているポートのうちのいずれか1ポートに切り替えるため、実施の形態1,2のように動作することになる。
実施の形態5.
実施の形態1〜4では、障害検出時に障害発生ポートに出力中であったフレームについては廃棄されてしまう。本実施の形態では、出力中のフレームの廃棄を防ぐ方法について、実施の形態1を例に説明する。
実施の形態1〜4では、障害検出時に障害発生ポートに出力中であったフレームについては廃棄されてしまう。本実施の形態では、出力中のフレームの廃棄を防ぐ方法について、実施の形態1を例に説明する。
LAG出力制御部73の出力ポート毎のキュー出力制御部733−1,733−2は、フレームを出力する際、読み出すキュー情報と先頭フレーム情報(フレーム長、読出先頭アドレス)を保持しておき、自出力ポートで障害の発生を検出したときに出力中のフレームがある場合は、そのフレームを出力先が切り替わってから再度出力する制御を行う。この際、出力中のフレームはまだ出力していないものとみなし、保持していたキュー情報、先頭フレーム情報を含めたキュー情報を出力切替先の同一LAGのポートから再送するように読出制御部72へ通知する。
これにより、実施の形態1〜4において、障害発生ポートから出力中であったフレームを出力切替先のポートから再送することが可能になり、通信装置間におけるフレームの廃棄を防ぐことができる。
以上のように、本発明にかかる通信装置は、複数の伝送路を用いて通信を行う通信装置に有用であり、特に、伝送路で障害発生した場合の制御に適している。
10 入力処理部、20 多重部、30 転送先管理部、31 出力負荷分散制御部、40 転送管理テーブル、50 LAGポート管理部、60 障害検出部、70 バッファ制御部、71 書込制御部、72 読出制御部、73 LAG出力制御部、731−1,731−2,731−4〜731−9 キュー管理部、732 出力切替部、733−1〜733−3 キュー出力制御部、74 出力制御部、80 バッファメモリ、90 出力処理部。
Claims (16)
- 他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置であって、
前記LAG設定ポート毎にフレームを格納する出力バッファを有するバッファ手段と、
前記LAG設定ポートで障害の発生が検出された場合、障害発生ポートに対応する出力バッファに格納されているフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御手段と、
を備えることを特徴とする通信装置。 - 前記LAG出力制御手段は、前記障害発生ポートに対応する出力バッファに格納されているフレームを、切替先の前記別のポートに対応する出力バッファに格納されているフレームより優先的に出力する、
ことを特徴とする請求項1に記載の通信装置。 - 前記LAG出力制御手段は、前記障害発生ポートに対応する出力バッファに格納されているフレームのバッファ量と、切替先の前記別のポートに対応する出力バッファに格納されているフレームのバッファ量との比に基づいてフレームを出力する、
ことを特徴とする請求項1に記載の通信装置。 - 前記LAG出力制御手段は、障害検出時に前記障害発生ポートに対応する出力バッファからフレーム出力中の場合、フレームを出力中の前記出力バッファのバッファ情報および出力中のフレームのフレーム情報を用いて、出力中であったフレームを切替先の前記別のポートから再送する、
ことを特徴とする請求項1、2または3に記載の通信装置。 - 他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置であって、
前記LAG設定ポートに出力するフレームを入力ポート毎に格納する入力バッファを有するバッファ手段と、
前記入力ポートに対応する前記入力バッファに格納されたフレームを前記LAG設定ポートのうちの1つのポートに出力し、前記LAG設定ポートが複数の前記入力バッファからフレームを受けて出力する制御を行い、前記LAG設定ポートで障害の発生が検出された場合、フレームの出力先が障害発生ポートに設定されていた入力バッファからのフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御手段と、
を備えることを特徴とする通信装置。 - 前記LAG出力制御手段は、前記障害発生ポートにフレームを出力する設定であった入力バッファに格納されているフレームを、切替先の前記別のポートをフレームの出力先に設定されている入力バッファに格納されているフレームより優先的に出力する、
ことを特徴とする請求項5に記載の通信装置。 - 前記LAG出力制御手段は、前記障害発生ポートにフレームを出力する設定であった入力バッファに格納されているフレームのバッファ量と、切替先の前記別のポートをフレームの出力先に設定されている入力バッファに格納されているフレームのバッファ量との比に基づいてフレームを出力する、
ことを特徴とする請求項5に記載の通信装置。 - 前記LAG出力制御手段は、障害検出時に前記障害発生ポートを出力先に設定されていた入力バッファから前記障害発生ポートへフレーム出力中の場合、フレームを出力中の前記入力バッファのバッファ情報および出力中のフレームのフレーム情報を用いて、出力中であったフレームを切替先の前記別のポートから再送する、
ことを特徴とする請求項5、6または7に記載の通信装置。 - 他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置の切替制御方法であって、
前記通信装置が前記LAG設定ポート毎にフレームを格納する出力バッファを有するバッファ手段を備え、
前記通信装置は、前記LAG設定ポートで障害の発生が検出された場合、障害発生ポートに対応する出力バッファに格納されているフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御ステップ、
を含むことを特徴とする切替制御方法。 - 前記LAG出力制御ステップでは、前記障害発生ポートに対応する出力バッファに格納されているフレームを、切替先の前記別のポートに対応する出力バッファに格納されているフレームより優先的に出力する、
ことを特徴とする請求項9に記載の切替制御方法。 - 前記LAG出力制御ステップでは、前記障害発生ポートに対応する出力バッファに格納されているフレームのバッファ量と、切替先の前記別のポートに対応する出力バッファに格納されているフレームのバッファ量との比に基づいてフレームを出力する、
ことを特徴とする請求項9に記載の切替制御方法。 - 前記LAG出力制御ステップでは、障害検出時に前記障害発生ポートに対応する出力バッファからフレーム出力中の場合、フレームを出力中の前記出力バッファのバッファ情報および出力中のフレームのフレーム情報を用いて、出力中であったフレームを切替先の前記別のポートから再送する、
ことを特徴とする請求項9、10または11に記載の切替制御方法。 - 他の通信装置との間を接続する複数の伝送路をリンクアグリゲーショングループ(LAG)設定し、LAG設定ポートに出力するフレームに対して出力負荷分散制御を行って出力ポートを決定する制御を行う通信装置の切替制御方法であって、
前記通信装置が前記LAG設定ポートに出力するフレームを入力ポート毎に格納する入力バッファを有するバッファ手段を備え、
前記通信装置は、前記入力ポートに対応する前記入力バッファに格納されたフレームを前記LAG設定ポートのうちの1つのポートに出力し、前記LAG設定ポートが複数の前記入力バッファからフレームを受けて出力する制御を行うフレーム出力ステップと、
前記通信装置は、前記LAG設定ポートで障害の発生が検出された場合、フレームの出力先が障害発生ポートに設定されていた入力バッファからのフレームの出力先を、前記障害発生ポートと同一LAG設定された別のポートに切り替えるLAG出力制御ステップと、
を含むことを特徴とする切替制御方法。 - 前記LAG出力制御ステップでは、前記障害発生ポートにフレームを出力する設定であった入力バッファに格納されているフレームを、切替先の前記別のポートをフレームの出力先に設定されている入力バッファに格納されているフレームより優先的に出力する、
ことを特徴とする請求項13に記載の切替制御方法。 - 前記LAG出力制御ステップでは、前記障害発生ポートにフレームを出力する設定であった入力バッファに格納されているフレームのバッファ量と、切替先の前記別のポートをフレームの出力先に設定されている入力バッファに格納されているフレームのバッファ量との比に基づいてフレームを出力する、
ことを特徴とする請求項13に記載の切替制御方法。 - 前記LAG出力制御ステップでは、障害検出時に前記障害発生ポートを出力先に設定されていた入力バッファから前記障害発生ポートへフレーム出力中の場合、フレームを出力中の前記入力バッファのバッファ情報および出力中のフレームのフレーム情報を用いて、出力中であったフレームを切替先の前記別のポートから再送する、
ことを特徴とする請求項13、14または15に記載の切替制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012210656A JP2014068110A (ja) | 2012-09-25 | 2012-09-25 | 通信装置および切替制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012210656A JP2014068110A (ja) | 2012-09-25 | 2012-09-25 | 通信装置および切替制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014068110A true JP2014068110A (ja) | 2014-04-17 |
Family
ID=50744134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012210656A Pending JP2014068110A (ja) | 2012-09-25 | 2012-09-25 | 通信装置および切替制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014068110A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016015333A1 (de) | 2015-12-28 | 2017-06-29 | Fanuc Corporation | Fertigungsdatenverarbeitungssystem mit einer Mehrzahl Fertigungsvorrichtungen |
JP2017157946A (ja) * | 2016-02-29 | 2017-09-07 | 三菱電機株式会社 | 通信装置および切替制御方法 |
WO2020031835A1 (ja) * | 2018-08-07 | 2020-02-13 | 株式会社オートネットワーク技術研究所 | 車載通信システム、車載中継装置、通信プログラム及び通信方法 |
-
2012
- 2012-09-25 JP JP2012210656A patent/JP2014068110A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016015333A1 (de) | 2015-12-28 | 2017-06-29 | Fanuc Corporation | Fertigungsdatenverarbeitungssystem mit einer Mehrzahl Fertigungsvorrichtungen |
US10310486B2 (en) | 2015-12-28 | 2019-06-04 | Fanuc Corporation | Manufacturing data processing system having a plurality of manufacturing apparatuses |
DE102016015333B4 (de) | 2015-12-28 | 2022-09-22 | Fanuc Corporation | Fertigungsdatenverarbeitungssystem mit einer Mehrzahl Fertigungsvorrichtungen |
JP2017157946A (ja) * | 2016-02-29 | 2017-09-07 | 三菱電機株式会社 | 通信装置および切替制御方法 |
WO2020031835A1 (ja) * | 2018-08-07 | 2020-02-13 | 株式会社オートネットワーク技術研究所 | 車載通信システム、車載中継装置、通信プログラム及び通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178001B2 (en) | Multi-stage switch fabric fault detection and handling | |
US7260066B2 (en) | Apparatus for link failure detection on high availability Ethernet backplane | |
US8976652B2 (en) | Relay device, method of controlling relay device, and relay system | |
US20040085893A1 (en) | High availability ethernet backplane architecture | |
US8416680B2 (en) | Apparatus and method for controlling data communication | |
US20080181241A1 (en) | Multipath virtual router redundancy | |
JP2003158539A (ja) | ネットワーク転送システム及び転送方法 | |
CN104104570A (zh) | Irf系统中的聚合处理方法及装置 | |
CN101682442A (zh) | 用于第2层链路聚合的动态负载均衡 | |
JP2008160227A (ja) | ネットワーク装置及び通信システム | |
CN101262407B (zh) | 一种虚拟路由器建立隧道的方法 | |
CN101964719B (zh) | 基于主控板倒换的数据处理方法、线卡及主控板 | |
US11349704B2 (en) | Physical layer interface with redundant data paths | |
JP5785608B2 (ja) | 通信ノード装置システム、装置、及び方法 | |
JP2014068110A (ja) | 通信装置および切替制御方法 | |
WO2016065804A1 (zh) | 一种流量负载均衡方法及路由设备 | |
CN102055673A (zh) | 多路由网络以及路由切换方法 | |
JP2010141845A (ja) | 複数のサーバを有する通信装置及び通信方法 | |
Liu et al. | Reducing flow completion time with replaceable redundant packets in data center networks | |
JP2015012455A (ja) | 伝送装置および伝送方法 | |
JPWO2007018164A1 (ja) | 通信システム、ノード、端末、プログラム及び通信方法 | |
KR101442567B1 (ko) | 링 네트워크 토폴로지에서 프레임기반 라우팅을 이용한 프레임 무손실 통신 방법 | |
CN102045259A (zh) | 分组交换设备以及管理用户业务的方法 | |
JP6099412B2 (ja) | スイッチ装置、通信システムおよび転送制御方法 | |
KR101544592B1 (ko) | 능동적 큐 할당 방식의 고가용성 분산임베디드 네트워크 송수신 방법 및 장치 |