本発明は、ポイントツーポイント接続されて全二重通信をする機器の輻輳を制御する方法およびそれを用いる装置に関する。
ブロードバンド・アクセス・ネットワークの普及が進み、大容量のデータを短時間で伝送することが可能になり、動画・音声などのリアルタイム通信が本格化している。リアルタイム通信では、その実時間性を満足させるためにUDP(User Datagram Protocol)が用いられることが多い。UDPはTCP(Transmission Control Protocol)とは異なり、エラー訂正・再配信要求などの機能を持たない高速で軽量なプロトコルである。したがって、パケットが失われた時のレポートの仕組みを備えていない。このため、インターネット上のストリーミングでは、パケットロスが発生し、通信品質劣化の要因となっている。リアルタイム系のパケットを効率的に転送するためには、パケットロスを無くし、遅延時間を短くすることが重要である。
実時間性を要求するアプリケーションなどのパケットを優先的に処理することにより、このような通信品質劣化に対応しようとする例えば、IntServ、DiffServ等の技術が開発されている。IntServ(Integrated Services)は、エンド・ホスト間での優先制御を行うサービスモデルで、RSVP(ネットワーク資源(帯域)予約プロトコル)等のシグナリング・プロトコルにより、ネットワークの帯域を予約するものである。個別アプリケーションのパケット流に対する通信品質の保証を行うことになる。しかし、IntServを実現するRSVPが複雑であり、運用する上で拡張性がないという欠点がある。また、WAN帯域のブロードバンド化の中で、全てのリアルタイム系パケットに対して、固定的な帯域を確保することは現実的ではない。
DeffServ(Differntiated Services)は、インターネットユーザが、送受信するトラフィックの種類を識別し、その種類に応じた通信品質を提供する技術である。これは、複数の優先クラス間で相対的な転送性能差をつけることにより優先制御を行う。DiffServでは、シグナリング手順を行わず、ユーザが転送するパケットそれぞれに優先情報が付加されるため、大規模化への対応性に優れている。しかし、ネットワークトラフィックが急峻に増大した場合、パケットロスを防止できない場合があり、アプリケーションの品質へ影響を及ぼしてしまう。
このように、インターネットにおいてはパケットロスを生じる輻輳を回避することは実質的に困難であるため、発生した輻輳を効率よく解消する輻輳制御技術が望まれる。これまで、輻輳制御技術としてIEEE802.3xが広く用いられている。IEEE802.3xは、イーサネット(登録商標)おいて、ポイントツーポイント接続された機器で全二重通信をする場合に用いる輻輳制御技術である。受信側の機器から送信側の機器に対して、MAC制御フレームを送信することにより“停止/再開”式の輻輳制御を実現している。IEEE802.3x技術を用いた従来の輻輳制御について、図1〜図4を参照して説明する。
まず、イーサネット(登録商標)においてデータを送受する単位となるフレームについて説明する。これは、MAC層のフレームであるため、MACフレームと称される。図1にMACフレームのフィールド構成が示されている。イーサネット(登録商標)におけるMACフレームは、IEEE802.3仕様(以下IEEE仕様)、DIX規格Ethernet(登録商標) ver.2(以下DIX仕様)の2つのフレームフォーマットがある。これらの仕様の大きな違いは、IEEE仕様は、上位プロトコルにLCCがのることを前提にしているのに対し、DIX仕様では上位に種々のプロトコルがのることを前提にしている。フィールドの区切り位置や名称等が異なっているが、どちらの仕様のMACフレームも同じネットワークで共存できるように規定されているため、共通的なフォーマットとして扱われることが多い。MACフレーム1のフォーマットは、図1に示されるように、プリアンブル11、フレーム開始デリミタ12、宛先MACアドレス13、送信元MACアドレス14、Length/Type15、データ部16、PAD17、FCS18のフィールドを備えている。
プリアンブル11は、7オクテットのフレーム同期用のフィールドであり、内容は1、0の交番符号である。フレーム開始デリミタ(SFD:Start Frame Delimiter)12は、フレームの開始を識別するための符号が設定されるフィールドである。設定される符号は、10101011という1オクテットのコードである。このフィールドは、IEEE仕様の場合のみ使われる。DIX仕様フレームのプリアンブルは、8オクテットで内容が1、0、1、0、...1、0、1、1であり、IEEE802.3仕様のプリアンブル11とフレーム開始デリミタ12を併せたものと同じになる。
宛先MACアドレス13は、6オクテットで記述された、このフレームの宛先を示すアドレス(MACアドレス)を示すフィールドである。送信元MACアドレス14は、6オクテットで記述された、このフレームの送信元のアドレス(MACアドレス)を示すフィールドである。
Length/Type15は、2オクテットのフィールドである。このフィールドは、IEEE仕様とDIX仕様では、同じ位置にあるが、全く違った意味になっている。IEEE仕様では、この後に続くLLC(Logical Link Control:論理リンク制御)部分の長さを表わす。DIX仕様では、フレームの種類(フレームタイプ)を表わす。どちらの仕様のフレームか識別できるようにDIX仕様で使うフレームタイプは、LLC部分の最大長である1500より大きな値が使われている。従って、DIX仕様のフレームとIEEE仕様のフレームが同じネットワークで共存できるようになっている。
データ部16は、フィールド長が46〜1500オクテットのフィールドである。IEEE仕様では、LLCのPDU(Protocol Data Unit)が続く。DIX仕様では、種々の上位プロトコルのパケットになり、このフィールドは、最低フレームサイズを満足するため46バイト以上の長さでなければならない。IEEE仕様の場合には、この後に続くPAD部で調整するので最低サイズは決められていない。
PAD17は、IEEE仕様の場合にのみ使われるフィールドで、フレームの最低サイズ64オクテットにするために不足する部分を補うダミーデータのフィールドである。フレームチェックシーケンス(FCS:Frame Check Sequence)18は、4オクテットで、誤り検出のために使用されるフィールドである。フレームのプリアンブル11、フレーム開始デリミタ12、FCS18部分を除いた部分について32ビットのCRCを計算して付加される。
このような構成のMACフレームによりステーション間でデータの授受を行っている。ステーション間での送受信処理をリアルタイムで制御する場合、MACフレーム1のLength/Type15に0x8808(“0x”は、続く数値が16進数であることを示す)が設定されたMAC制御フレーム2が用いられる。図2は、MAC制御フレーム2のフィールド構成を示している。MAC制御フレーム1のデータ部16は、46オクテットに固定され、MAC制御命令21、MAC制御パラメータ22、PAD23のフィールドに分割されている。
MAC制御命令21は、最初の2オクテットのフィールドで、操作コードが設定される。MAC制御フレーム2を受信したステーションは、そのコードによって様々な制御を行うようになっている。
次の2オクテットは、MAC制御パラメータ22のフィールドで、MAC制御命令21により指示される制御のパラメータが設定される。
なお、Length/Type15のフィールドには0x8808が設定されるが、MAC制御プロトコルをサポートしていないステーションがこのMAC制御フレーム受信した場合は、単に無視すればよい。
IEEE802.3xにおいて、MAC制御プロトコルでフロー制御を行う場合は、ポーズコマンドを使用する。ポーズコマンドは、図3に示されるように、MAC制御フレームの宛先MACアドレス13に01−80−C2−00−00−01(16進数表記、6オクテット)、MAC制御命令21に0x0001、MAC制御パラメータ22に中断時間を指定したポーズフレームを使用する。ポーズフレームを受信したステーションは、MAC制御パラメータ22に指定されている値に基づいて送信を中断する。中断時間は、次のように計算する。
中断時間=(MAC制御パラメータ22に指定された値)×512ビット時間
ここで、ビット時間は、1ビットを伝送する時間であり、伝送速度により異なる。また、512ビットは、フレームの最小サイズ(64オクテット×8ビット)である。
また、宛先MACアドレス13に指定する01−80−C3−00−00−01というアドレスは、ポーズフレーム用に予約されている特別なマルチキャストアドレスである。マルチキャストアドレスを使用するのは、送信を中断させたいステーションのMACアドレスを特定しなくてもよいようにするためである。通常、スイッチングハブなどは、宛先がマルチキャストアドレスであるフレームは、他の全てのセグメントに中継することになっている。しかし、ポーズフレームを受信した場合は、受信したスイッチングハブに対する指示であるため、他のセグメントにポーズフレームを中継しないようになっている。
ステーションAにおいて、バッファの空容量が残り少なくなったときに、ポーズフレームを対向するステーションBに送信する。ステーションBは、指定された中断時間だけ、ステーションAへの送信を中断する。ステーションBが送信を中断している間にステーションAが輻輳状態から回復した場合は、ステーションAは、MAC制御パラメータ22に”0”つまり中断時間0を指定してステーションBの送信中断を解除することもできる。ステーションBが送信を中断すると、その間にステーションAの出力処理が進み、バッファに余裕ができることになり、ステーションAは、輻輳状態から回復することができる。
このようなIEEE802.3x技術を用いて輻輳制御を行うネットワークについて説明する。図4は、そのネットワークの構成を示す図である。ネットワークは、100M全二重LANで、スイッチングハブ31〜33、機器41〜48を備えている。機器41〜48は、機器41、42、44〜46、48はサーバを、機器43と機器47は端末である。
スイッチングハブ33は、ポートAからサーバ45に、ポートBからサーバ46に、ポートCから端末47に、ポートDからサーバ48に接続されている。スイッチングハブ32は、ポートAから端末43に、ポートBからサーバ44に、ポートDからスイッチングハブ33のポートEに接続されている。スイッチングハブ31は、ポートAからサーバ41に、ポートBからサーバ42に、ポートDからスイッチングハブ32のポートEに接続されている。スイッチングハブ31は、さらにポートEから他のネットワークに接続されている。なお、スイッチングハブ31〜33に関する動作については、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
このように構成されるネットワークにおける輻輳に関連する動作を説明する。説明を簡単にするために、機器41〜48からスイッチングハブ31を経由して他のネットワークに到達するフレームのトラフィックだけに注目する。スイッチングハブ31から他のネットワークに出力されるフレームの最大トラフィック(帯域)を100%とした場合に、機器41〜48のそれぞれから他のネットワークに出力されるフレームの最大トラフィック(帯域)を、5%、30%、5%、20%、20%、20%、10%、10%とする。機器41〜48の最大トラフィックの合計は、120%になるが、定常的に最大トラフィックで交信しているわけではなく、この最大トラフィック以下のトラフィックで他のネットワークと交信しているため、スイッチングハブ31で輻輳は発生しない。しかし、機器41〜48が全て同時に最大トラフィックでフレームを出力した場合、スイッチングハブ31のトラフィックは120%となり、輻輳が発生する。
輻輳が発生した場合の動作について、図5を参照して説明する。まず、図5において、機器Xはスイッチングハブ31、機器Yはスイッチングハブ32、機器Zは機器43または機器44を表わすものとする。
スイッチングハブ31は、時刻t11から輻輳状態になったとする。受け取るフレームが無いものとすると、スイッチングハブ31は、出力処理が進み、時刻t12まで輻輳状態が続く。スイッチングハブ31は、時刻t12に余裕をみた時刻までの時間を中断時間Tとして、ポーズフレームP(T)をポートDからスイッチングハブ32のポートEに送出する(F11)。このとき、ポーズフレームの宛先MACアドレスは、マルチキャストアドレス(01−80−C2−00−00−01)である。時刻t13にポーズフレームP(T)を受け取ったスイッチングハブ32は、宛先がマルチキャストアドレスであるが、ポーズフレームであるため、他のセグメント、つまり、機器43、44、スイッチングハブ33との接続に対してポーズフレームを中継せず、受信したスイッチングハブ32に対する指示として終端する。したがって、スイッチングハブ32は、時刻t14までの時間Tの間、スイッチングハブ31に対するフレームの出力を中断する。
スイッチングハブ32は、ポーズフレームP(T)を他のセグメントに送出しないため、時刻t15において機器43(または44)からスイッチングハブ32のポートA(またはB)にデータフレームDが送られてくる(F12)。受け取ったデータフレームDは、中断時間Tが経過した後、時刻t16においてスイッチングハブ32のポートEからスイッチングハブ31のポートDに送出される(F13)。
ここで、輻輳が予想していた時間より早く解消した場合について図6を参照して説明する。図5の場合と同様に、図6の機器X、Y、Zは、スイッチングハブ31、32、機器43と読み替える。
スイッチングハブ31は、時刻t21から時刻t22まで輻輳状態であるとする。スイッチングハブ31は、解消時間をTと予想して、中断時間Tが設定されたポーズフレームP(T)をポートDからスイッチングハブ32のポートEに送出する(F21)。時刻t23にポーズフレームP(T)を受け取ったスイッチングハブ32は、時刻t24までの時間Tの間、スイッチングハブ31に対するフレームの出力を中断する。
輻輳が解消した時刻t22の後、スイッチングハブ31は、ポートDから中断時間を0にしたポーズフレームP(0)をスイッチングハブ32のポートEに対して送出する(F23)。スイッチングハブ32は、中断時間Tが経過する前の、中断時間0のポーズフレームを受け取った時刻t24にスイッチングハブ31に対する出力中断を解除する。
スイッチングハブ32は、出力中断中の時刻t25に機器43からデータフレームDを受け取っている(F22)。この出力中断中に受け取ったデータフレームDは、出力中断解除後の時刻t26にスイッチングハブ31のポートDに向けて送出される(F24)。
このように、IEEE802.3xの輻輳制御は、制御輻輳が解消すると、直ちに通常の動作に移行できるようになっている。しかし、この輻輳制御技術では、輻輳の原因となっている機器に対して直接フロー制御を行っていない。そのため、図7に示されるように、ネットワークに接続される他の機器に対して影響が波及することがある。
上述の同様に、図7の機器X、Y、Zは、スイッチングハブ31、32、機器43(または44)と読み替える。スイッチングハブ31は、時刻t31から時刻t32まで輻輳状態であるとする。スイッチングハブ31は、解消時間をTと予想して、中断時間Tが設定されたポーズフレームP(T)をポートDからスイッチングハブ32のポートEに送出する(F31)。
時刻t33にポーズフレームP(T)を受け取ったスイッチングハブ32は、時刻t34までの時間Tの間、スイッチングハブ31に対するフレームの出力を中断する。その出力中断中の時刻t35にスイッチングハブ32は、機器43(または44)からデータフレームDを受け取る(F32)。このとき、既に入力バッファの空容量が残り少なくなっていると、スイッチングハブ32も輻輳状態になる。スイッチングハブ32は、受け取るデータフレームを抑制するために、中断時間T’を設定したポーズフレームP(T’)を機器43、44、スイッチングハブ33に送出する(F33)。ポーズフレームP(T’)を受け取った機器43、44は、時刻t37からt38までの中断時間T’を設定して出力中断状態になる。
スイッチングハブ33は、ポーズフレームP(T’)を受け取ると、スイッチングハブ32に接続されているポートEの出力を中断する。このときスイッチングハブ33の入力バッファの空容量が残り少なくなっているとスイッチングハブ33もスイッチングハブ32と同様に輻輳状態になる。したがって、図7の機器Xがスイッチングハブ32、機器Yがスイッチングハブ33、機器Zが機器45〜48に読み替えた状態となり、ポーズフレームを下流の機器に対して送出する。
このようにして、輻輳の原因となっている機器に対するポーズ制御は、次々と伝搬していく。
つまり、ポーズフレームは、リンクセグメントに限定された範囲でしか効力がなく、ポーズフレームをLANスイッチの別のセグメントへ透過させることは出来ない。このため、スイッチングハブが多段接続されたLANにおいてこの技術を適用した場合、輻輳の原因となっている機器に対して直接制御できないため、優先度の高い機器に対しても影響を及ぼすという問題があった。また、この技術の適用により、パケットロスを防ぐことは可能となるが、遅延に敏感なアプリケーションに対して影響を及ぼすという問題があった。
輻輳制御(フロー制御)は、これまで様々な方法が考案されている。特表平11−506287号公報には、半二重イーサネット(登録商標)スイッチにおけるバックプレッシャー方式のフロー制御方法の技術が記載されている。これによると、フロー制御可能イーサネット(登録商標)スイッチは、使用中の行先ポートにデータパケットを送信しようと試みる入力ポートに背圧を与える。背圧はファントムパケットであり、IEEE802.3衝突検出システムを活性化してデータパケットの送信を打切る。後続の一連のファントムパケット(無効なもの)は、キャリア活動を提供し、これはパケットの再送信を禁じる。行先ポートが利用可能であると、ファントムパケットは停止され、データパケットの標準の再送信を可能にする。スイッチは優先順位付け機構(たとえばスロットルカウント)を含み、これを背圧が付与されているポートに優先順位を与えるのに用いる。
特表平11−506288号公報には、全二重イーサネット(登録商標)スイッチにおけるバックプレッシャー方式のフロー制御方法の技術が記載されている。これによると、フロー制御可能イーサネット(登録商標)スイッチは、使用中の行先ポートにデータパケットを送信しようと試みる入力ポートに背圧を与える。背圧はファントムパケットであり、データパケットの送信を打切るように活性化する。行先ポートが利用可能であると、ファントムパケットは再送信を制御し、データパケットの標準の再送信を可能にする。スイッチは優先順位付け機構を含んでもよく、これを背圧が付与されているポートに優先順位を与えるのに用いる。
特開2003−348144号公報によれば、各出力ポートにフロー毎の出力バッファを設けることなく、出力バッファ間の複雑な読み出し制御を行うことなく帯域制御を行う技術が知られている。ポート制御部20#1〜20#nは各入力ポート#1〜#nに共通の出力バッファを有している。パケット転送処理部は、ポート制御を介してパケットを受信した場合に、その送信先を判断して受信パケットをその送信先に対応するポート制御部の出力バッファに転送する。帯域制御部は、パケットの転送流量を測定してその測定量に基づいてその送信元に送信停止パケットを送信する。例えば、入力ポート毎及び出力ポート毎の個別超過流量が0より大きいか、また出力ポート毎のポート超過流量が0より大きく、なおかつ個別転送流量が最低保証帯域を超えている場合に送信停止パケットを送信するというものである。
特開2002−374272号公報によれば、これまで適切に処理することができなかった音声などのリアルタイム性の高いデータパケットをブロードキャストする技術が知られていている。この技術によるネットワークにおいて利用されるスイッチングハブは、PHY部、ポート優先制御部、スイッチ部を備えている。PHY部は、宛先に関する宛先情報を含むパケットを受信し、その受信したパケットを送信するためのポート1〜Lを保有する。ポート優先制御部は、接続の状態に応じたポート1〜Lについての送信の優先順位を保持する。スイッチ部は、受信されたパケットの宛先情報を検査し、その検査の結果、宛先情報がネットワークに対するブロードキャストを行うための情報であった場合には、保持されている送信の優先順位に基づいて受信されたパケットの送信を行うべきポート1〜Lの順位をPHY部1に指示する。
特開2002−247067号公報によれば、流れるフレームの質・量に応じて動的にネットワークの帯域割り当てを制御することのできる帯域制御装置を提供する技術が知られている。帯域制御装置は、ローカルエリアネットワークに接続するインタフェースを有している。帯域制御装置は、ネットワークを流れるフレームを監視し、ITU−T勧告論理チャンネル開設フレームを受信した場合には、そのフレームを解析してRTPセッションが使用するUDPポート番号を調べる。調べた結果により、トランスポート層プロトコルがUDPでポート番号が前記UDPポート番号であるフレームに対して帯域を確保するように中継装置に対して要求を行う。H.245論理チャンネル終結フレームを受信した場合には、確保していた帯域を解放するように中継装置204に対して要求を行う。
特開2002−111688号公報によれば、サブネット内の発生帯域情報に基づく動的な帯域制御を可能とする技術が知られている。ネットワークにそれぞれ通信アプリケーションプログラムで動作する複数のノードが接続されたネットワークシステムにおいて、ノードのそれぞれが、送信レート制御モジュール、帯域情報管理テーブル、帯域情報送信モジュール、帯域情報受信モジュールを有している。送信レート制御モジュールは、通信帯域を制御するために必要な通信属性を通信アプリケーションプログラムから取得する。帯域情報管理テーブルは、取得された通信属性を記憶する。帯域情報送信モジュールは、前記自ノードの帯域情報をネットワークに接続された他のノード全部に配信する。帯域情報受信モジュールは、他ノードの帯域情報送信モジュールにより配信された帯域情報を受信して帯域情報管理テーブルに記憶する。
特開2000−354057号公報によれば、スイッチングハブを介したエンド・トゥ・エンドでのデータ通信の優先制御を可能とする技術が知られている。
スイッチングハブ2が接続されているルータは、スイッチングハブに対してパケットの送信先MACアドレスとその送信先MACアドレスをもつパケットが有するIP Precedence値を、情報パケットを使用してスイッチングハブに通知する。スイッチングハブは、情報パケットの内容(パケットの送信先MACアドレスとその送信先MACアドレスをもつパケットが有するIP Precedence値)をブリッジテーブルに登録する。パケット送信時に送信先端末装置がどのインタフェースに接続されているかをブリッジテーブルによって検索する際に、スイッチングハブは、その端末装置1へのパケットがもつIP Precedence値も検索し、そのクラスが示す優先度に応じたデータ転送を実施する。
特開2000−209250号公報によれば、スイッチングハブにおけるポート毎の優先度を指定したフロー制御方式に関する技術が知られている。スイッチングハブは、複数のポートで受信した端末からのデータをバッファに格納する。このバッファ内のデータ量があるしきい値を超えたとき、各ポートに接続されている端末に対して送信停止時間をパラメータに持つ送信停止指示を出す。受信を休止するスイッチングハブにおいて、送信停止時間を各ポート毎に異なる値とする。
特表平11−506287
特表平11−506288
特開2003−348144
特開2002−374272
特開2002−247067
特開2002−111688
特開2000−354057
特開2000−209250
本発明の目的は、スイッチングハブ等が多段接続されるネットワークにおいて、リンクセグメントを越えた輻輳制御ができる輻輳制御装置、および、輻輳制御方法を提供することである。
本発明の他の目的は、輻輳時においても遅延に敏感なアプリケーションに与える影響が少ない輻輳制御装置、および、輻輳制御方法を提供することである。
また、本発明の他の目的は、優先順位を有する輻輳制御を行う輻輳制御装置、および、輻輳制御方法を提供することである。
さらに、本発明の他の目的は、従来技術による装置との親和性の高いインターフェースを備える輻輳制御装置、および、輻輳制御方法を提供することである。
また、本発明の他の目的は、既存のデバイスに低コストで実装可能な輻輳制御方法を提供することである。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の観点では、MAC(Media Access Control)フレームを送受信するシステムである輻輳制御システムは、MACフレームのうちポーズフレームと呼ばれるフレームを送受信して輻輳を制御するシステムである。前記MACフレームは、宛先アドレスフィールド、フレーム種別フィールド、MAC制御命令フィールド、MAC制御パラメータフィールドを具備している。ポーズフレームは、MACフレームのうち、各フィールドが以下のように設定されたものである。前記宛先アドレスフィールドに前記MACフレームの宛先を示す終端MACアドレス、前記フレーム種別フィールドに前記MACフレームの種別を示すコードのうちMAC制御プロトコルのフレームであることを示すMAC制御フレームコード、前記MAC制御命令フィールドに制御命令を示すコードのうちフロー制御を指示するフロー制御命令コード、前記MAC制御パラメータフィールドに前記フロー制御のパラメータが格納される。前記ポーズフレームの前記MAC制御フレームコードは、0x8808(0xは続く数値が16進表記であることを示す)である。
本発明の輻輳制御システムにおいて、前記終端MACアドレスは、ユニキャストアドレスであり、前記ポーズフレームを終端するポートのMACアドレスである。
本発明の輻輳制御システムにおいて、前記終端するポートが、前記宛先アドレスフィールドにマルチキャストアドレスが格納された前記ポーズフレームを受信したとき、前記終端するポートの前記フロー制御を行って輻輳を制御する。このときのマルチキャストアドレスは、01−80−C2−00−00−01(16進数表記)が用いられている。
本発明の輻輳制御システムにおいて、前記ポーズフレームは、さらに送信元アドレスフィールドを備える。前記送信元アドレスフィールドに示されるMACアドレスに向けて送信されるMACフレームに対して前記フロー制御を行う。
本発明の輻輳制御システムにおいて、前記フロー制御命令コードは、送信の中断を指示する出力中断命令コードである。前記出力中断命令コードが設定された前記ポーズフレームを終端する装置(64、66、68)は、前記ポーズフレームを受信した時点から前記MAC制御パラメータフィールドに示される出力中断時間を経るまで送信を中断する。
本発明の輻輳制御システムにおいて、前記出力中断時間が0であるポーズフレームは、送信の中断を解除し、送信を再開することを示す。
本発明の輻輳制御システムにおいて、前記ポーズフレームを生成する装置(51)は、前記宛先アドレスフィールドに設定されるMACアドレスと前記出力中断時間とを対応させて格納する中断時間優先制御テーブル(57)を備える。前記ポーズフレームを生成する装置は、前記終端MACアドレスに基づいて前記中断時間優先制御テーブル(57)を参照して前記出力中断時間を決定し、前記ポーズフレームを生成して送信する。
本発明の輻輳制御システムにおいて、出力中断命令コードは、現在フロー制御に用いられているコードと同じ0x0001であることが好ましい。
本発明の輻輳制御システムにおいて、前記フロー制御命令コードは、送信出力の帯域を制限する帯域制限命令コードである。前記帯域制限命令コードが設定された前記ポーズフレームを終端する装置(84、86、88)は、前記MAC制御パラメータフィールドに示される出力制限帯域を超えないようにシェーピングして送信する。
本発明の輻輳制御システムにおいて、前記出力制限帯域は、伝送路の伝送容量に対する帯域の割合で示される。
本発明の輻輳制御システムにおいて、前記出力制限帯域が0のとき、前記送信する帯域の制限が解除されることを示す。
本発明の輻輳制御システムにおいて、前記ポーズフレームを生成する装置(71)は、前記宛先アドレスフィールドに設定されるMACアドレスと前記出力制限帯域とを対応させて格納する出力帯域優先制御テーブル(77)を備える。前記ポーズフレームを生成する装置(71)は、前記終端MACアドレスに基づいて前記出力帯域優先制御テーブル(77)を参照して前記出力制限帯域を決定し、前記ポーズフレームを生成して送信する。
本発明の輻輳制御システムにおいて、前記帯域制限命令コードは、0x1001であることが好ましい。
本発明の他の観点では、輻輳制御装置(51)は、MACフレームを生成、送信して輻輳を制御する。前記MACフレームは、宛先アドレスフィールド、フレーム種別フィールド、MAC制御命令フィールド、MAC制御パラメータフィールドを備える。ポーズフレームは、MACフレームのうち、各フィールドが以下のように設定されたものである。前記宛先アドレスフィールドに前記MACフレームを終端するポートのMACアドレスを示す終端MACアドレス、前記フレーム種別フィールドに前記MACフレームの種別を示すコードのうちMAC制御プロトコルのフレームであることを示すMAC制御コード、前記MAC制御命令フィールドに制御命令を示すコードのうちフロー制御を指示するフロー制御命令コード、前記MAC制御パラメータフィールドに前記フロー制御のパラメータが格納される。輻輳制御装置(51)は、ポーズフレームを前記終端MACアドレスで示される前記ポートに送信して前記フロー制御を指示する。
本発明の前記フロー制御命令コードは、送信の中断を指示する出力中断命令コードである。輻輳制御装置(51)は、前記MAC制御パラメータフィールドに送信を中断する出力中断時間を格納した前記ポーズフレーム(4)を送信する。出力中断命令コードは、現在フロー制御に用いられているコードと同じ0x0001であることが好ましい。
本発明の輻輳制御装置(51)は、前記出力中断時間を0にした前記ポーズフレームを送信することにより中断している送信の再開を指示する。
本発明の輻輳制御装置(51)は、前記宛先アドレスフィールドに設定されるMACアドレスと前記出力中断時間とを対応させて格納する中断時間優先制御テーブル(57)を備える。輻輳制御装置(51)は、前記終端MACアドレスに基づいて前記中断時間優先制御テーブル(57)を参照して決定した前記出力中断時間を格納した前記ポーズフレームを生成して送信する。
本発明の前記フロー制御命令コードは、送信出力の帯域を制限する帯域制限命令コードである。輻輳制御装置(71)は、前記MAC制御パラメータフィールドに送信を制限する帯域を示す出力制限帯域を格納した前記ポーズフレーム(5)を送信する。
本発明の輻輳制御装置(71)は、前記出力制限帯域を0にした前記ポーズフレームを送信することにより出力の制限の解除を指示する。
本発明の輻輳制御装置(71)は、前記宛先アドレスフィールドに設定されるMACアドレスと前記出力制限帯域とを対応させて格納する制限帯域優先制御テーブル(77)を備える。輻輳制御装置(71)は、前記終端MACアドレスに基づいて前記制限帯域優先制御テーブル(77)を参照して決定した前記出力制限帯域を格納した前記ポーズフレームを生成して送信する。
また、本発明の他の観点では、輻輳制御装置(52、53)は、MACフレームを送受信して輻輳を制御する。前記MACフレームは、宛先アドレスフィールド、フレーム種別フィールド、MAC制御命令フィールド、MAC制御パラメータフィールドとを備える。ポーズフレームは、MACフレームのうち、各フィールドが以下のように設定されたものである。前記宛先アドレスフィールドに前記MACフレームの宛先を示す終端MACアドレス、前記フレーム種別フィールドに前記MACフレームの種別を示すコードのうちMAC制御プロトコルのフレームであることを示すMAC制御コード、前記MAC制御命令フィールドに制御命令を示すコードのうちフロー制御を指示するフロー制御命令コード、前記MAC制御パラメータフィールドに前記フロー制御のパラメータが格納される。輻輳制御装置(52、53)は、ポーズフレームを受信し、受信した前記ポーズフレーム(4)を前記終端MACアドレスで示される前記ポートに送信する。
本発明の前記フロー制御命令コードは、送信出力の中断を示す出力中断命令コードである。輻輳制御装置(52、53)は、前記MAC制御パラメータフィールドに送信を中断する出力中断時間を格納した前記ポーズフレーム(4)を受信する。輻輳制御装置(52、53)は、受信した前記ポーズフレーム(4)を前記終端MACアドレスで示される前記ポートに送信する。出力中断命令コードは、従来からフロー制御に用いられているコードと同じ0x0001であることが好ましい。
本発明の前記フロー制御命令コードは、送信の帯域を制限する帯域制限命令コードである。輻輳制御装置(72、73)は、前記MAC制御パラメータフィールドに送信を制限する帯域を示す出力制限帯域を格納した前記ポーズフレーム(5)を受信する。輻輳制御装置(72、73)は、受信した前記ポーズフレーム(5)を前記終端MACアドレスで示される前記ポートに送信する。帯域制限命令コードは、0x1001が好ましい。
さらに、本発明の他の観点では、輻輳制御装置(64、66、68)は、MACフレームを受信して終端することにより、輻輳を制御する。前記MACフレームは、宛先アドレスフィールド、フレーム種別フィールド、MAC制御命令フィールド、MAC制御パラメータフィールドとを備える。ポーズフレーム(4)は、MACフレームのうち、各フィールドが以下のように設定されたものである。前記宛先アドレスフィールドに前記MACフレームの宛先を示す終端MACアドレス、前記フレーム種別フィールドに前記MACフレームの種別を示すコードのうちMAC制御プロトコルのフレームであることを示すMAC制御コード、前記MAC制御命令フィールドに制御命令を示すコードのうちフロー制御を指示するフロー制御命令コード、前記MAC制御パラメータフィールドに前記フロー制御のパラメータが格納される。輻輳制御装置(64、66、68)は、ポーズフレームを受信し、前記ポーズフレームにより指示される前記フロー制御を行うことにより輻輳を制御する。
本発明の輻輳制御装置(64、66、68)において、受信したポーズフレームの前記終端MACアドレスは、前記ポーズフレームを受信したポートのMACアドレスである。
本発明の前記フロー制御命令コードは、送信の中断を示す出力中断命令コードである。輻輳制御装置(64、66、68)は、前記MAC制御パラメータフィールドに送信を中断する出力中断時間を格納した前記ポーズフレームを受信する。前記ポーズフレームを受信した輻輳制御装置(64、66、68)は、前記ポーズフレームを受信してから前記出力中断時間が経過するまで送信を中断する。
本発明の前記ポーズフレーム(4)は、前記ポーズフレームを生成して送信した送信ポートのMACアドレスを格納する発信元アドレスフィールドをさらに備える。輻輳制御装置(64、66、68)は、前記ポーズフレームを生成して送信した前記送信ポートに対する送信を中断する。
本発明の輻輳制御装置(64、66、68)は、前記出力中断時間が0である前記ポーズフレームを受信したとき、中断している送信を再開する。
本発明の前記フロー制御命令コードは、出力の帯域を制限する帯域制限命令コードである。輻輳制御装置(84、86、88)は、前記MAC制御パラメータフィールドに出力を制限する帯域を示す出力制限帯域を格納した前記ポーズフレーム(5)を受信し、送信する帯域が出力制限帯域を越えないようにシェーピングする。
本発明の前記ポーズフレーム(5)は、前記ポーズフレームを生成して送信した送信ポートのMACアドレスを格納する発信元アドレスフィールドをさらに備える。輻輳制御装置(84、86、88)は、前記送信ポートに対して送信する帯域が前記出力制限帯域を越えないようにシェーピングし、輻輳を制御する。
本発明の輻輳制御装置(84、86、88)は、前記出力制限帯域が0である前記ポーズフレームを受信したとき、帯域制限を解除する。
本発明によれば、スイッチングハブ等が多段接続されるネットワークにおいて、リンクセグメントを越えた輻輳制御ができる輻輳制御装置、および、輻輳制御方法を提供することができる。そのため、効果的にパケットロスを無くすことができる。
また、本発明によれば、輻輳発生時のポーズフレーム内に送信停止時間を設定できるため、輻輳時においても遅延に敏感なアプリケーションに与える影響が少ない輻輳制御装置、および、輻輳制御方法を提供することができる。
さらに、本発明によれば、優先順位を有する輻輳制御を行う輻輳制御装置、および、輻輳制御方法を提供することができる。したがって、優先順位の高いパケットに影響を及ぼさずに、輻輳制御が可能となるため、効率的な伝送を行うことができる。また、低位レイヤでこのような処理をすればするほど、転送されるパケット数が減少するため、効率的なパケット転送が実現できる。
また、本発明によれば、従来技術による装置との親和性の高いインターフェースを備える輻輳制御装置、および、輻輳制御方法を提供することができる。したがって、スイッチングハブ用デバイス及びNIC用デバイスに実装することは容易である。
さらに、本発明によれば、既存のデバイスに低コストで実装可能な輻輳制御方法を提供することができる。
また、本発明によれば、ユニキャストのMACアドレスを用いて輻輳制御したい機器を直接制御ため、既存のネットワークに対して影響を及ぼさない。また、本機能を搭載していない機器を含むネットワークであっても通常のデータ通信に対して悪影響はない。
本発明による輻輳制御は、IEEE802.3xの輻輳制御で用いられているMAC制御フレームの宛先アドレスを「ポーズフレームを受信させる機器のユニキャストアドレス」に変更し、スイッチングハブが多段接続されているLANにおいても、リンクセグメントを越えて輻輳の原因となっている機器に対して直接制御を行うことを特徴としている。
図8から図12を参照して第1の実施の形態を説明する。第1の実施の形態では、“停止/再開”方式の輻輳制御、つまり、出力中断時間を制御することにより輻輳制御するものである。
図8に示されるように、第1の実施の形態で用いられるMAC制御フレームのフィールドは、プリアンブル11、フレーム開始デリミタ12、宛先MACアドレス13、送信元MACアドレス14、Length/Type15、MAC制御命令21、MAC制御パラメータ22、PAD23、FCS18のフィールドを備えている。
従来技術の説明と重複するが、各フィールドについて再度説明する。プリアンブル11は、7オクテットのフレーム同期用のフィールドであり、内容は1、0の交番符号である。フレーム開始デリミタ(SFD:Start Frame Delimiter)12は、フレームの開始を識別するための符号が設定されるフィールドである。設定される符号は、10101011という1オクテットのコードである。このフィールドは、IEEE仕様の場合のみ使われる。DIX仕様フレームのプリアンブルは、8オクテットで内容が1、0、1、0、...1、0、1、1であり、IEEE802.3仕様のプリアンブル11とフレーム開始デリミタ12を併せたものと同じになる。
宛先MACアドレス13は、6オクテットで記述された、このフレームの宛先を示すアドレス(MACアドレス)を示すフィールドである。本発明において、この宛先はデータパケットの送信を制限する端末/サーバなどの機器のMACアドレスである。
送信元MACアドレス14は、6オクテットで記述された、このフレームの送信元のアドレス(MACアドレス)を示すフィールドである。
Length/Type15は、2オクテットのフィールドである。このフィールドには、MAC制御フレームで有ることを示す固定値0x8808が設定される。MAC制御プロトコルをサポートしていないステーションがこのMAC制御フレーム受信した場合は、単に無視すればよい。
MAC制御命令21は、2オクテットのフィールドで、操作コードが設定される。MAC制御フレーム2を受信したステーションは、そのコードによって様々な制御を行うようになっている。ポーズフレームの場合、MAC制御命令21に0x0001が設定される。
次の2オクテットは、MAC制御パラメータ22のフィールドで、MAC制御命令21により指示される制御のパラメータが設定される。ポーズフレームの場合、MAC制御パラメータ22に中断時間が設定される。中断時間は、次式のように計算する。
中断時間=(MAC制御パラメータ22に指定された値)×512ビット時間
ここで、ビット時間は、1ビットを伝送する時間であり、伝送速度により異なる。また、512ビットは、フレームの最小サイズ(64オクテット×8ビット)である。
PAD23は、IEEE仕様の場合にのみ使われるフィールドで、フレームの最低サイズ64オクテットにするために不足する部分を補うダミーデータのフィールドである。ポーズフレームでは42オクテットである。
フレームチェックシーケンス(FCS:Frame Check Sequence)18は、4オクテットで、誤り検出のために使用されるフィールドである。フレームのプリアンブル11、フレーム開始デリミタ12、FCS18部分を除いた部分について32ビットのCRCを計算して付加される。
このように宛先MACアドレスに、データパケットの送信を制限する端末/サーバなどの機器のMACアドレスが設定されたポーズフレームを用いて輻輳制御を行うことになる。
このポーズフレームを受け取ったスイッチングハブなどの機器は、受け取ったポートのMACアドレスが宛先MACアドレス13に示されたアドレスと一致しなければ、宛先MACアドレス13に示されたアドレスに向けて受け取ったポーズフレームを転送する。受け取ったポートのMACアドレスが宛先MACアドレス13に示されたアドレスと一致、または、宛先MACアドレスにマルチキャストアドレス01−80−C2−00−00−01が設定されていた場合には、ポーズフレームを終端する。つまり、ポーズフレームを受け取ったスイッチングハブなどの機器から、送信元MACアドレス14に向けてのデータパケットの送出を中断する。
このようなポーズフレームを用いて輻輳制御を行うネットワークについて説明する。図9は、そのネットワークの構成を示す図である。ネットワークは、100M全二重LANで、スイッチングハブ51〜53、機器61〜68を備えている。機器61、62、64〜66、68はサーバ、機器63と機器67は端末である。
スイッチングハブ53は、ポートAからサーバ65に、ポートBからサーバ66に、ポートCから端末67に、ポートDからサーバ68に接続されている。スイッチングハブ52は、ポートAから端末63に、ポートBからサーバ64に、ポートDからスイッチングハブ53のポートEに接続されている。スイッチングハブ51は、ポートAからサーバ61に、ポートBからサーバ62に、ポートDからスイッチングハブ52のポートEに接続されている。スイッチングハブ51は、さらにポートEから他のネットワークに接続されている。なお、スイッチングハブ51〜53に関する基本的動作については、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
このように構成されるネットワークにおける輻輳制御に関連する動作を説明する。説明を簡単にするために、機器61〜68からスイッチングハブ51を経由して他のネットワークに到達するフレームのトラフィックに注目する。スイッチングハブ51から他のネットワークに出力されるフレームの最大トラフィック(帯域)を100%とした場合に、機器61〜68のそれぞれから他のネットワークに出力されるフレームの最大トラフィック(帯域)を、5%、30%、5%、20%、20%、20%、10%、10%とする。機器61〜68の最大トラフィックの合計は、120%になるが、定常的に最大トラフィックで交信しているわけではなく、この最大トラフィック以下のトラフィックで他のネットワークと交信しているため、スイッチングハブ51で輻輳は発生しない。しかし、機器61〜68が全て同時に最大トラフィックでフレームを出力した場合、スイッチングハブ51のトラフィックは120%となり、輻輳が発生する。
スイッチングハブ51には、予め、輻輳が発生した場合にデータパケットの送信を制限する端末/サーバなどの機器のMACアドレスが設定されている。スイッチングハブ51は、図10に示されるように、送信制限する機器のMACアドレス58と中断時間(送信を制限する時間)59を対応させたテーブル57を備えている。輻輳が発生したときに、テーブル57に設定されているMACアドレスを有する機器に対して、そのポートからデータパケット送信を一時中断するようにポーズフレームを出力する。中断時間59は、絶対時間を格納しておいてもよいが、ポーズフレームに設定するポーズ値を格納しておくのが好ましい。
また、各機器に対する重み付けを施して中断時間を設定する。重み付けを施すことにより輻輳発生時の優先順位が決定される。例えば、輻輳発生時でも、最優先でパケットを通過させたい機器に対する中断時間設定は、“0”(中断解除または中断無し)として、リアルタイム性が強い通信を行う機器ほど中断時間を短くして優先度を高くする。ポーズフレームを受信した機器は、フレームのパラメータに指定されている期間、データフレームの送信を停止する。これにより、スイッチングハブ51などのポーズフレームを送信した機器は、バッファの輻輳状態を緩和するための時間を得ることができ、キューのなかにある自分宛てのフレームを処理するか、あるいはフレームを他のポートヘ移動または転送することが可能となる。ポーズフレームを受信した機器は、指定されている期間が経過したら、以前に停止した所からデータフレームの送信を再開する。
輻輳が発生したときの動作を、図11を参照して説明する。図11において、機器Xはスイッチングハブ51(ポートD:MACアドレスadr1)、機器Yはスイッチングハブ52(ポートE:MACアドレスadr21、ポートB:MACアドレスadr22)、機器Zは機器64(MACアドレスadr3)を表わすものとする。
スイッチングハブ51は、時刻t41からt42まで輻輳状態であったとする。スイッチングハブ51は、機器64の送信を制限するために、ポートDからスイッチングハブ52に対してポーズフレームP(T、adr3)を送出する(F41)。ポーズフレームP(T、adr3)は、宛先MACアドレス13に機器64のMACアドレスadr3を、MAC制御パラメータ22に中断時間Tが設定されたポーズフレーム4である。中断時間Tは、テーブル57に格納されているMACアドレスadr3に対応する重み付けされた中断時間である。図9において、機器64に対する中断時間Tは16384が設定されている。なお、中断時間16384は、16384×512×0.01μ秒=83.886m秒となる。
時刻t43にポーズフレームP(T、adr3)を受け取ったスイッチングハブ52は、宛先MACアドレスが、マルチキャストアドレスでも、ポートEのMACアドレスでもないため、宛先MACアドレス14に示されたMACアドレスを有する機器に転送する。宛先MACアドレス14にはadr3が設定されているため、スイッチングハブ52は、ポートBから機器64に向けてポーズフレームP(T、adr3)を転送する(F42)。
機器64は、時刻t44にポーズフレームP(T、adr3)を受け取ると、受け取ったポーズフレームの宛先MACアドレスが一致するため、ポーズフレームを終端する。つまり、機器64は、時刻t44からt45まで出力を中断する。時刻t44からt45までの時間Tは、ポーズフレームで指示された時間である。設定された中断時間Tを経過した後、機器64は、データパケットDをスイッチングハブ52に送出する(F43)。
スイッチングハブ52は、時刻t46にデータパケットDを受け取ると、スイッチングハブ51に向けてデータパケットDを転送する(F44)。スイッチングハブ51は、輻輳状態から回復した時点でデータパケットDを受け取ることになる。
このようにして輻輳状態に陥ったスイッチングハブ51は、輻輳状態から回復する。このとき、機器63に対してはスイッチングハブ51からポーズフレームが送出されていない。したがって、機器63からスイッチングハブ51に向けて通常動作と変わらずデータパケットが送出される。つまり、機器63が送出するリアルタイム通信などの優先度の高いデータパケットは、スイッチングハブ51の輻輳による制限を受けることなく送られることになる。
さらに、スイッチングハブ51から、機器66に対して、宛先MACアドレスに機器66のMACアドレスが指定され、ポーズ時間32768が指定されているポーズフレームが、機器68に対して、宛先MACアドレスに機器68のMACアドレスが指定され、ポーズ時間65536が指定されているポーズフレームが送出される。これらのポーズフレームは、スイッチングハブ52、53を経由して機器66、68に到達する。機器66、68は、それぞれ指定されたポーズ時間に対応する時間だけスイッチングハブ51に対するデータパケットの送信を中断する。なお、ポーズ時間32768は、167.77216m秒、ポーズ時間65536は、335.5392m秒となる。
これらの3ポーズフレームが送出され、機器64、66、68が出力を中断すると、各機器の最大のトラフィックが出力されたとしてもスイッチングハブ51の最大トラフィックの70%であるため、スイッチングハブ51は輻輳状態から回復できる。換言すれば、スイッチングハブ51が輻輳状態であっても、リアルタイム通信などの優先度の高いデータパケットは、制限を受けることなく送られることになる。つまり、ポーズフレームが送信されてない機器61、62、63等は、そのままデータパケットを出力することが可能である。
中断する時間がそれぞれ異なることから、出力中断から復旧する時刻が異なり、機器64がまず出力中断から復旧する。続いて機器66が復旧して最後に機器68が復旧することになる。このようにスイッチングハブ51が、輻輳したとき制限したいMACアドレスに出力中断時間を対応付けて格納し、輻輳状態に陥ったときにはテーブル57を参照してポーズフレームを生成し、送出することにより、通信内容に応じた優先制御を付けた輻輳制御ができる。
スイッチングハブ51がポーズフレームを発行した後、輻輳が回復した場合は、従来技術と同様に、MAC制御パラメータ22に中断時間0に設定したポーズフレームを送信することによって残りのポーズ時間をキャンセルすることも可能となっている。図12に残りポーズ時間をキャンセルするときの動作を示す。
図12において、機器Xはスイッチングハブ51(ポートD:MACアドレスadr1)、機器Yはスイッチングハブ52(ポートE:MACアドレスadr21、ポートB:MACアドレスadr22)、機器Zは機器64(MACアドレスadr3)を表わすものとする。
スイッチングハブ51は、時刻t51からt52まで輻輳状態であったとする。スイッチングハブ51は、機器64の送信を制限するために、ポートDからスイッチングハブ52に対してポーズフレームP(T、adr3)を送出する(F51)。
時刻t53にポーズフレームP(T、adr3)を受け取ったスイッチングハブ52は、宛先MACアドレス14に示されたMACアドレス(adr3)を有する機器、つまり、機器64に向けてポートBからポーズフレームP(T、adr3)を転送する(F52)。
機器64は、時刻t54にポーズフレームP(T、adr3)を受け取り、終端する。つまり、機器64は、時刻t54から出力中断時間Tが設定され、出力を中断する。スイッチングハブ51は、ポーズフレームP(T、adr3)を出力した後、時刻t52に輻輳から回復する。輻輳状態から回復したスイッチングハブ51は、通常の動作回復を通知するため、出力中断時間を0としたポーズフレームP(0、adr3)をスイッチングハブ52に出力する(F53)。スイッチングハブ52は、ポーズフレームP(0、adr3)を機器64に転送する(F54)。時刻t55にポーズフレームP(0、adr3)を受け取った機器64は、中断時間に0が指定されているため、出力中断を解除し、送信を中断していたデータパケットDをスイッチングハブ52に送出する。
スイッチングハブ52は、時刻t56にデータパケットDを受け取ると、スイッチングハブ51に向けてデータパケットDを転送する(F56)。スイッチングハブ51は、中断時間Tが経過するまで待機することなく、輻輳状態から回復した直後にデータパケットDを受け取ることになる。
なお、機器66、68に対しても、同様に図9の機器Yをスイッチングハブ53、機器Zを機器66、68と読み替えることにより、動作が説明できる。また、ここで、端末やサーバ等の機器で新しく受信されたポーズフレームは、その時点で実行されているすべてのポーズ動作を上書きする。また、同様にポーズフレームを発行した装置は、最初のポーズ期間を超過する前に、0でない中断時間をパラメータで設定した別のポーズフレームを発行することによって、ポーズ期間を延長することも可能となっている。
このようにして、リアルタイム通信などの優先度の高いデータパケットを扱う機器に対して優先的な通信が可能な、“停止/再開”方式の輻輳制御、つまり、出力中断時間を制御する輻輳制御が可能となる。
図13から図16を参照して、第2の実施の形態を説明する。第2の実施の形態は、基本的構成は第1の実施の形態と同様であるが、“停止/再開”方式の輻輳制御ではなく、“帯域保証”方式の輻輳制御である。特に遅延に敏感なアプリケーションのために、パケットの帯域を保証し、遅延の増加を防止するしながら輻輳制御するものである。
図13は、第2の実施の形態に係るMAC制御フレームのフィールド構成である。第1の実施の形態で説明した図8のMAC制御フレーム4(ポーズフレーム)との相違点は、MAC制御命令21のフィールドに拡張ポーズフレームを示すコード0x1001が設定され、MAC制御パラメータ22のフィールドに制限帯域を示す数値が設定されることである。以下MAC制御フレーム5を拡張ポーズフレームと称することにする。
図14は、第2の実施の形態を説明する100M全二重LANの構成を示し、機器構成、接続は、第1の実施の形態と同じである。スイッチングハブ71〜73、機器81〜88を備えている。機器81、82、84〜86、88はサーバ、機器83と機器87は端末である。
スイッチングハブ73は、ポートAからサーバ85に、ポートBからサーバ86に、ポートCから端末87に、ポートDからサーバ88に接続されている。スイッチングハブ72は、ポートAから端末83に、ポートBからサーバ84に、ポートDからスイッチングハブ73のポートEに接続されている。スイッチングハブ71は、ポートAからサーバ81に、ポートBからサーバ82に、ポートDからスイッチングハブ72のポートEに接続されている。スイッチングハブ71は、さらにポートEから他のネットワークに接続されている。なお、スイッチングハブ71〜73に関する基本的動作については、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
このように構成されるネットワークにおける輻輳制御に関連する動作を説明する。第1の実施の形態と同様に、説明を簡単にするために、機器81〜88からスイッチングハブ71を経由して他のネットワークに到達するフレームのトラフィックに注目する。スイッチングハブ71から他のネットワークに出力されるフレームの最大トラフィック(帯域)を100%とした場合に、機器81〜88のそれぞれから他のネットワークに出力されるフレームの最大トラフィック(帯域)を、5%、30%、5%、20%、20%、20%、10%、10%とする。機器81〜88の最大トラフィックの合計は、120%になるが、定常的に最大トラフィックで交信しているわけではなく、この最大トラフィック以下のトラフィックで他のネットワークと交信しているため、スイッチングハブ71で輻輳は発生しない。しかし、機器81〜88が全て同時に最大トラフィックでフレームを出力した場合、スイッチングハブ71のトラフィックは120%となり、輻輳が発生する。
スイッチングハブ71には、予め、輻輳が発生した場合にデータパケットの送信を制限する端末/サーバなどの機器のMACアドレスが設定されている。スイッチングハブ71は、図15に示されるように、送信制限する機器のMACアドレス78と帯域を制限する値79を対応させたテーブル77を備えている。輻輳が発生したときに、テーブル77に設定されているMACアドレスを有する機器に対して、そのポートからデータパケット送信の帯域を制限するように拡張ポーズフレーム5を出力する。帯域制限値79は、最大通信容量に対する割り当ての帯域の割合を格納しておく。リアルタイム性が強いパケット通信を行う機器ほど保証帯域を大きく、制限帯域を小さくして優先度を高くする。このように、輻輳発生時のパケット優先順位はMAC制御パラメータ内の帯域制限値(保証帯域)を設定することにより実現している。この帯域制限値79は、制限される以前に出力している帯域に対する割合(相対値)であってもよい。ここでは、最大通信容量に対する割り当ての帯域の割合として説明する。
帯域制限値“0”は、最優先、つまり、100Mビット/秒を示している。この値を指定されている拡張ポーズフレームは、帯域制限の解除時に用いられる。帯域制限値“65535”は、送信中断を示す。5Mビット/秒の帯域は、65535×(100M−5M)/100M=62258、10Mビット/秒の帯域は、65535×(100M−10M)/100M=58982、15Mビット/秒の帯域は、65535×(100M−15M)/100M=55705となる。この帯域制限を指示された機器は、送信元の機器内で、パケットのシェーピングを行い、指示された帯域内で送信するように制御する。
第2の実施の形態では、この帯域制限(保証帯域)を設けることにより輻輳発生時のパケット優先順位を決定する。図16を参照して輻輳が発生したときの動作を説明する。図16における機器X、Y、Zは、それぞれスイッチングハブ71(ポートD:MACアドレスadr1)、スイッチングハブ52(ポートE:MACアドレスadr21、ポートB:MACアドレスadr22)、機器84(MACアドレスadr3)を表わすものとする。
スイッチングハブ71は、時刻t61からt62まで輻輳状態であったとする。スイッチングハブ71は、機器84の送信を制限するために、ポートDからスイッチングハブ72に対して拡張ポーズフレームP’(W、adr3)を送出する(F61)。拡張ポーズフレームP’(W、adr3)は、宛先MACアドレス13に機器84のMACアドレスadr3を、MAC制御パラメータ22に帯域制限値Wが設定された拡張ポーズフレーム5である。帯域制限値Wは、テーブル77に格納されているMACアドレスadr3に対応する重み付けされた帯域制限値である。図14において、機器84に対する帯域制限値Wは55705が設定されている。帯域制限値W=55705によって保証される帯域は100Mビット/秒の15%、つまり、15Mビット/秒の帯域である。
時刻t63に拡張ポーズフレームP’(W、adr3)を受け取ったスイッチングハブ72は、宛先MACアドレスが、マルチキャストアドレスでも、ポートEのMACアドレスでもないため、宛先MACアドレス14に示されたMACアドレスを有する機器に転送する。宛先MACアドレス14にはadr3が設定されているため、スイッチングハブ72は、ポートBから機器84に向けて拡張ポーズフレームP’(W、adr3)を転送する(F62)。
機器84は、時刻t64に拡張ポーズフレームP’(W、adr3)を受け取ると、受け取ったポーズフレームの宛先MACアドレスが一致するため、ポーズフレームを終端する。つまり、機器84は、時刻t64から出力の帯域制限を行う。保証された帯域は、15Mビット/秒であるから、機器84は、出力帯域が15Mビット/秒以下になるようにシェーピングしながらデータパケットDを出力する(F63)。
データパケットD’は、スイッチングハブ72を透過してスイッチングハブ71に到達する(F64)。機器84、86、88が出力する帯域がそれぞれ、15Mビット/秒、10Mビット/秒、5Mビット/秒に制限されるため、スイッチングハブ71は、輻輳状態から回復する。帯域制限を解除するため、時刻t62において帯域制限値に“0”を指定した拡張ポーズフレームP’(0、adr3)を送出する(F65)。
この拡張ポーズフレームP’(0、adr3)は、スイッチングハブ72を透過して機器84に到達する(F66)。時刻t66に拡張ポーズフレームP’(0、adr3)を受け取った機器84は、出力制限を解除し、通常の通信状態に戻る。なお、機器86、88に対しても、同様に図16の機器Yをスイッチングハブ73、機器Zを機器86、88と読み替えることにより、動作が説明できる。
このように、帯域を保証して輻輳発生時の遅延を無くすことを可能としている。そのため、遅延に敏感なアプリケーションに対して影響を与えないという効果が得られる。
MACフレームのフィールド構成を示す図である。
MAC制御フレームのフィールド構成を示す図である。
従来のポーズフレームのフィールド構成を示す図である。
従来のポーズフレームによる輻輳制御を説明するネットワーク構成を示す図である。
従来のポーズフレームによる輻輳制御の時間的関係を説明する図(1)である。
従来のポーズフレームによる輻輳制御の時間的関係を説明する図(2)である。
従来のポーズフレームによる輻輳制御の時間的関係を説明する図(3)である。
本発明の第1の実施の形態に係るポーズフレームのフィールド構成を示す図である。
本発明の第1の実施の形態に係る輻輳制御を説明するネットワーク構成を示す図である。
本発明の第1の実施の形態に係るポーズ時間テーブルの構成を示す図である。
本発明の第1の実施の形態に係るポーズフレームによる輻輳制御の時間的関係を説明する図(1)である。
本発明の第1の実施の形態に係るポーズフレームによる輻輳制御の時間的関係を説明する図(2)である。
本発明の第2の実施の形態に係るポーズフレームのフィールド構成を示す図である。
本発明の第2実施の形態に係る輻輳制御を説明するネットワーク構成を示す図である。
本発明の第2の実施の形態に係る帯域制限値テーブルの構成を示す図である。
本発明の第2の実施の形態に係るポーズフレームによる輻輳制御の時間的関係を説明する図である。
符号の説明
31〜33、51〜53、71〜73 スイッチングハブ
41〜48、61〜68、81〜88 端末機器