(57)【要約】【課題】  同一ポートから、輻輳原因となっている特定のトラフィックのみの送信を抑止する。【解決手段】  受信手段は、入力フレームキューの輻輳を検出すると、該入力フレームキューに蓄積されているフレームを抑制対象フレームとして任意に選択する。そして、選択した抑制対象フレームを輻輳フィードバック情報として該フレームが入力された入出力ポートを介して前位装置に送信する。送信手段は、後位装置から輻輳フィードバック情報を受信すると、受信した輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキューを判定する。そして、その出力フレームキューから出力されるフレームであって、該輻輳フィードバック情報を受信した入出力ポートから送信されるフレームの送信を停止する。【選択図】      図１
2015089072.tif 000002
【特許請求の範囲】
【請求項１】
前位装置から受信したフレームを蓄積する入力フレームキューの輻輳を検出すると、前記入力フレームキューに蓄積されている前記フレームを、送信を抑制する抑制対象フレームとして任意に選択し、選択した前記抑制対象フレームを、送信の抑制を指示する輻輳フィードバック情報として該フレームが入力された入出力ポートを介して前記前位装置に送信する受信手段と、
後位装置から前記輻輳フィードバック情報を受信すると、受信した前記輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキューを判定し、判定した前記出力フレームキューから出力されるフレームであって、前記輻輳フィードバック情報が入力された前記入出力ポートから送信されるフレームの送信を停止する送信手段と
を備えることを特徴とする通信装置。
【請求項２】
前記抑制対象フレームの送信を通知する拡張ポーズフレームを生成し、前記輻輳フィードバック情報として、前記拡張ポーズフレームと前記抑制対象フレームを順次前記前位装置に送信するポーズフレーム生成手段と、
前記拡張ポーズフレームを受信すると、前記拡張ポーズフレームが入力された前記入出力ポートから次に受信するフレームを前記抑制対象フレームとして識別するフレーム判定手段
を含むことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記前位装置から受信したフレームを、該フレームが入力したポート情報と共に、第１の規則に従った優先度別に前記入力フレームキューに蓄積する入力フレーム振り分け手段と、
優先度別のいずれかの前記入力フレームキューの輻輳を検出すると、輻輳を検出した前記入力フレームキューに蓄積されている前記フレームを抑制対象フレームとして任意に選択して前記ポーズフレーム生成手段に通知する輻輳検出手段と、
を含むことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記後位装置に送信するフレームを、該フレームを出力するポート情報と共に、第２の規則に従った優先度別に前記出力フレームキューに蓄積する出力フレーム振り分け手段と、
前記輻輳フィードバック情報に含まれる情報に基づいて前記出力フレーム振り分け手段が特定した、前記輻輳フィードバック情報に含まれる情報に対応するフレームを蓄積する前記出力フレームキューから出力されるフレームであって、前記輻輳フィードバック情報が入力された前記入出力ポートから送信されるフレームの送信を停止する送信制御手段と
を含むことを特徴とする請求項３に記載の通信装置。
【請求項５】
前記送信制御手段は、優先度別の前記出力フレームキューのそれぞれに対応して、該出力フレームキューから出力されるフレームの送信先となるそれぞれの前記入出力ポートのポーズまたはポーズ解除の状態を示すキュー状態テーブルを含み、
前記送信制御手段は、前記輻輳フィードバック情報に含まれる情報に対応するフレームが振り分けられる出力フレームキューに対応する前記キュー状態テーブルにおいて、前記輻輳フィードバック情報が入力された前記入出力ポートをポーズに設定する
ことを特徴とする請求項４に記載の通信装置。
【請求項６】
前記第１の規則と前記第２の規則は、優先度を振り分けるそれぞれ異なる基準であることを特徴とする請求項４に記載の通信装置。
【請求項７】
前記抑制対象フレームの情報を含む拡張ポーズフレームを生成し、前記輻輳フィードバック情報として、前記抑制対象フレームに替えて前記拡張ポーズフレームを前記前位装置に送信するポーズフレーム生成手段と、
前記拡張ポーズフレームを受信すると、前記拡張ポーズフレームを前記輻輳フィードバック情報として識別するフレーム判定手段
を含むことを特徴とする請求項１乃至６のいずれかの請求項に記載の通信装置。
【請求項８】
前位装置から受信したフレームを蓄積する入力フレームキューの輻輳を検出すると、前記入力フレームキューに蓄積されている前記フレームを、送信を抑制する抑制対象フレームとして任意に選択し、
選択した前記抑制対象フレームを、送信の抑制を指示する輻輳フィードバック情報として該フレームが入力された入出力ポートを介して前記前位装置に送信し、
後位装置から前記輻輳フィードバック情報を受信すると、受信した前記輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキューを判定し、
判定した前記出力フレームキューから出力されるフレームであって、前記輻輳フィードバック情報が入力された前記入出力ポートから送信されるフレームの送信を停止する
ことを特徴とする輻輳制御方法。
【請求項９】
前記抑制対象フレームの送信を通知する拡張ポーズフレームを生成し、前記輻輳フィードバック情報として、前記拡張ポーズフレームと前記抑制対象フレームを順次前記前位装置に送信し、
前記後位装置から前記拡張ポーズフレームを受信すると、前記拡張ポーズフレームが入力された前記入出力ポートから次に受信するフレームを前記抑制対象フレームとして識別する
ことを特徴とする請求項８に記載の輻輳制御方法。
【請求項１０】
前記前位装置から受信したフレームを、該フレームが入力したポート情報と共に、第１の規則に従った優先度別に前記入力フレームキューに振り分けて蓄積し、
優先度別のいずれかの前記入力フレームキューの輻輳を検出すると、輻輳を検出した前記入力フレームキューに蓄積されている前記フレームを抑制対象フレームとして任意に選択して前記輻輳フィードバック情報を生成し、
前記後位装置に送信するフレームを、該フレームを出力するポート情報と共に、第２の規則に従った優先度別に前記出力フレームキューに振り分けて蓄積し、
前記後位装置から前記輻輳フィードバック情報を受信すると、前記輻輳フィードバック情報に含まれる情報に基づいて、前記輻輳フィードバック情報に含まれる情報に対応するフレームが振り分けられる出力フレームキューを特定し、
特定した前記出力フレームキューから出力されるフレームであって、前記輻輳フィードバック情報が入力された前記入出力ポートから送信されるフレームの送信を停止する
ことを特徴とする請求項９に記載の輻輳制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び輻輳制御方法に関し、特に、受信側装置の輻輳情報を送信側装置にフィードバックして輻輳時のフロー制御を行う通信装置及び輻輳制御方法に関する。
【背景技術】
【０００２】
ネットワークを構成する通信装置として、ＯＳＩ（Open Systems Interconnection）モデルの第２層であるデータリンク層のフレーム転送を行うＬ２（Layer 2）スイッチが使われている。Ｌ２スイッチによるネットワークでは、輻輳が発生したときにはポーズフレームを用いて送信側装置に輻輳を通知し、送信側装置が、ポーズフレームを受け取ったポートからの送信を一時的に停止するフロー制御により輻輳状態の解消を行っている。
【０００３】
しかし、近年のＬ２スイッチでは、同一の物理ポートから入出力するフレームであってもＶＬＡＮ（Virtual Local Area Network）などを用いて論理的にトラフィックを分割することが可能になっている。例えば、低優先度のフレームと高優先度のフレームが論理的に分割されて同一物理ポート上を流れている場合、ポーズフレームによる制御では、低優先度フレームも高優先度フレームも等しく送信を停止されてしまう。つまり、ポーズフレームを受け取った物理ポートからの送信が全て停止してしまうので、低優先度のフレームの輻輳が原因となって高優先度のフレーム送信に影響を与えることになる。
【０００４】
この種の問題を解決するために例えば特許文献１（特開2006-197110号公報）は、標準ポーズフレームのパディングの部分に通知情報を追加した拡張ポーズフレームを定義して、それをクライアント装置に送出する中継装置を開示する。この拡張ポーズフレームを受信したクライアント装置は拡張ポーズフレームを受信すると、通知された対象となる通信に対するフロー制御を行う。
【０００５】
また、特許文献２（特開2013-026680号公報）は、拡張ポーズフレームを使うことなく、ポーズフレームを受信したポートからのフレームを全て停止させずに通信を継続する技術を開示する。この技術は、送信側がポーズフレームを受信した際に選択的にフレームの送信を停止し、その結果、輻輳状態が解消されたか否かを判断することを繰り返すことで、輻輳の原因となっているトラフィックを推測するものである。
【０００６】
特許文献３（特開2008-236308号公報）は、ポーズフレームの中断時間フィールドに出力を停止する優先度のクラスを示す制御対象クラスを出力制御情報として設定した拡張ポーズフレームを定義して送信する技術を開示する。この拡張ポーズフレームを受信した送信側装置は、中断時間フィールドに示された優先度クラスのフレーム送信を停止する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2006-197110号公報
【特許文献２】特開2013-026680号公報
【特許文献３】特開2008-236308号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１が開示する技術は、拡張ポーズフレームの送信元となる装置（トラフィックの受信側装置）と受信先となる装置（トラフィックの送信側装置）で同じクラス分けができることが前提となっている。また、クラス分けも両装置間で一致したものでないと期待する動作を得ることができないため、拡張ポーズフレームの送信元と受信先の通信装置で同等のクラス分け能力を有している必要がある。さらに、クラス分けを行うためのポリシーも同じでなければならない。例えば、送信側装置ではＭＡＣ（Media Access Control）アドレスによる優先度制御を行い、受信側装置でＶＬＡＮタグによる優先度制御を行うような場合には、特許文献１が開示する技術は有効ではない。
【０００９】
また、特許文献２が開示する技術は、ポーズフレームの送信元となる通信装置での状態を考慮せずに送信停止するフレームを決定しているため、フレーム停止の効果が不確実で無駄なフレームの停止を行う可能性がある。
【００１０】
特許文献３が開示する技術においても、拡張ポーズフレームで通知される優先度クラスは送信側装置も受信側装置も同じ優先度クラス分けを行わなければ効果が得られないという前提がある。
【００１１】
本発明の目的は、上記に鑑みて、送信側装置と受信側装置で事前にトラフィックのクラス分けの整合を行わずとも、輻輳原因となっている特定のトラフィックの送信を抑止することができる通信装置および輻輳制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を実現するために、本発明の一形態である通信装置は、前位装置から受信したフレームを蓄積する入力フレームキューの輻輳を検出すると、前記入力フレームキューに蓄積されている前記フレームを、送信を抑制する抑制対象フレームとして任意に選択し、選択した前記抑制対象フレームを、送信の抑制を指示する輻輳フィードバック情報として該フレームが入力された入出力ポートを介して前記前位装置に送信する受信手段と、後位装置から前記輻輳フィードバック情報を受信すると、受信した前記輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキューを判定し、判定した前記出力フレームキューから出力されるフレームであって、前記輻輳フィードバック情報が入力された前記入出力ポートから送信されるフレームの送信を停止する送信手段と、を含むことを特徴とする。
【００１３】
また、本発明の他の形態である輻輳制御方法は、前位装置から受信したフレームを蓄積する入力フレームキューの輻輳を検出すると、前記入力フレームキューに蓄積されている前記フレームを、送信を抑制する抑制対象フレームとして任意に選択し、選択した前記抑制対象フレームを、送信の抑制を指示する輻輳フィードバック情報として該フレームが入力された入出力ポートを介して前記前位装置に送信し、後位装置から前記輻輳フィードバック情報を受信すると、受信した前記輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキューを判定し、判定した前記出力フレームキューから出力されるフレームであって、前記輻輳フィードバック情報が入力された前記入出力ポートから送信されるフレームの送信を停止することを特徴とする。
【発明の効果】
【００１４】
本発明は、送信側装置と受信側装置で事前にトラフィックのクラス分けの整合を行わずとも、輻輳原因となっている特定のトラフィックの送信を抑止することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態の通信装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態の通信装置の動作を示すフロー図である。
【図３】本発明の第２の実施形態の通信装置の構成を示すブロック図である。
【図４】入力フレームクラス分けテーブルの設定例を示す図である。
【図５】入力キュースケジューラの構成を示すブロック図である。
【図６】拡張ポーズフレームのフレームフォーマットを示す図である。
【図７】出力フレームクラス分けテーブルの設定例を示す図である。
【図８】出力キュースケジューラの構成を示すブロック図である。
【図９】キュー状態テーブルの設定例を示す図である。
【図１０】入力キュースケジューラの動作を示すフロー図である。
【図１１】フレーム判定部の動作を示すフロー図である。
【図１２】出力キュースケジューラの動作を示すフロー図である。
【発明を実施するための形態】
【００１６】
本発明を実施するための形態について図面を参照して説明する。
【００１７】
図１は、本発明の第１の実施形態の通信装置の構成を示すブロック図である。
【００１８】
尚、実施の形態は例示であり、開示の装置及びシステムは、以下の実施の形態の構成には限定されない。
【００１９】
第１の実施形態の通信装置１００は、受信手段１と送信手段２を含む構成になっている。
【００２０】
受信手段１は、前位装置から受信したフレームを蓄積する入力フレームキュー１１の輻輳を検出すると、その入力フレームキュー１１に蓄積されているフレームを抑制対象フレームとして任意に選択する。
【００２１】
そして、受信手段１は、選択した抑制対象フレームを、送信の抑制を指示する輻輳フィードバック情報として該フレームが入力された入出力ポート３を介して前位装置に送信する。
【００２２】
一方、送信手段２は、後位装置から輻輳フィードバック情報を受信すると、受信した輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキュー２１を判定する。
【００２３】
そして、送信手段２は、判定した出力フレームキュー２１から出力されるフレームであって、輻輳フィードバック情報を受信した入出力ポート３から送信されるフレームの送信を停止する。
【００２４】
また、図２は、本発明の第１の実施形態の通信装置の動作を示すフロー図である。図２（Ａ）は、第１の実施形態の通信装置の受信手段での動作を示し、図２（Ｂ）は、第１の実施形態の通信装置の送信手段での動作を示す。
【００２５】
図２（Ａ）を参照して、受信手段は以下のように動作する。
【００２６】
前位装置から受信したフレームを蓄積する入力フレームキューの輻輳を検出すると（Ｓ１０１）、その入力フレームキューに蓄積されているフレームを抑制対象フレームとして任意に選択する（Ｓ１０２）。
【００２７】
そして、選択した抑制対象フレームを、送信の抑制を指示する輻輳フィードバック情報として該フレームを受信した入出力ポートを介して前位装置に送信する（Ｓ１０３）。
【００２８】
また、図２（Ｂ）を参照して、送信手段は以下のように動作する。
【００２９】
後位装置から輻輳フィードバック情報を受信すると（Ｓ１０４）、受信した輻輳フィードバック情報に含まれる情報に対応するフレームが蓄積される出力フレームキューを判定する（Ｓ１０５）。
【００３０】
そして、判定した出力フレームキューから出力されるフレームであって、輻輳フィードバック情報を受信した入出力ポートから送信されるフレームの送信を停止する（Ｓ１０６）。
【００３１】
以上に説明したように、本実施形態の通信装置１００は、輻輳が発生した入力フレームキューから抑制対象フレームを任意に選択し、その抑制対象フレームを輻輳フィードバック情報として送信側装置に送信する。つまり、本実施形態の通信装置１００は、抑制対象フレームを送信することで、輻輳が発生しているフレームに関連する情報を限定せずに送信側装置にフィードバックする。
【００３２】
同一のキュー内にあるフレームについては同一の優先度で転送されるため、輻輳が発生しているキューに蓄積されているフレームを任意に１つ選択することで、輻輳に対して支配的なフレームが抑制対象フレームとされる可能性が高くなる。
【００３３】
一方、輻輳フィードバック情報を受信した送信側装置では、受信した輻輳フィードバック情報に含まれる情報に対応するフレームがどの出力フレームキューに蓄積されるのかを判定する。つまり、送信側装置は、受信側装置で輻輳の原因となっているフレームが、送信側装置のどの出力フレームキューから出力されたものなのかを判定する。
【００３４】
そして、判定した出力フレームキューから出力されるフレームであって、輻輳フィードバック情報を受信した入出力ポートから送信されるフレームの送信を停止する。つまり、同じ出力フレームキューから出力されるフレームであっても、輻輳が通知されたポート以外のポートに送信されるフレームの送信は停止しない。
【００３５】
以上のように構成された第１の実施形態の通信装置１００は、送信側装置と受信側装置で事前にトラフィックのクラス分けの整合を行わずとも、輻輳原因となっている特定のトラフィックの送信を抑止することができる。
【００３６】
次に、第２の実施形態を説明する。
【００３７】
図３は、本発明の第２の実施形態の通信装置の構成を示すブロック図である。第２の実施形態の通信装置２００は、Ethernet（登録商標）フレームの送受信を装置間で行い、装置内ではフレームの処理及び転送を行う。
【００３８】
第２の実施形態の通信装置２００は、輻輳フィードバック情報である抑制対象フレームを、それを受信した送信側装置で識別することができるように、ポーズフレームを拡張したフレーム（拡張ポーズフレーム）を定義する。
【００３９】
通信装置２００は、フレーム判定部２０１、入力フレームクラス分け処理部２０２、入力フレームクラス分けテーブル２０３、入力フレームキュー２０４および入力キュースケジューラ２０５を受信手段として備える。また、通信装置２００は、出力フレームクラス分け処理部２０６、出力フレームクラス分けテーブル２０７、出力フレームキュー２０８および出力キュースケジューラ２０９を出力手段として備える。さらに、通信装置２００は、プロトコル処理部２１０および入出力ポート２１１を備える。
【００４０】
各構成要素について説明する。
【００４１】
フレーム判定部２０１は、入出力ポート２１１から入力されたフレームの種別を識別する。フレームの種別としては、通常フレーム、ポーズフレーム、拡張ポーズフレームおよび抑制対象フレームがある。ここで通常フレームとはポーズフレームでも拡張ポーズフレームでも抑制対象フレームでもないEthernet（登録商標）に準拠したフレームのことを指す。なお、拡張ポーズフレームおよび抑制対象フレームについては後述する。
【００４２】
入力フレームクラス分け処理部２０２は、フレーム判定部２０１が識別した通常フレームを、当該フレームを入力したポート情報と共に後段の入力フレームキュー２０４に転送する。なお、特にことわりのない限り、通常フレームをフレームと称して以降は説明する。
【００４３】
ここで入力フレームクラス分け処理部２０２は、入力フレームクラス分けテーブル２０３を参照し、当該テーブルに規定された規則に従って、フレームを入力フレームキュー２０４の優先度別に配備されたフレームキュー１〜３に振り分ける。つまり、フレームは、入力フレームクラス分け処理部２０２で優先度が決定され、優先度に従って入力ポート情報と共に振り分け先のフレームキュー１〜３のいずれかのフレームキューに送られる。
【００４４】
入力フレームクラス分けテーブル２０３は、入力した各フレームの振り分け先となる入力フレームキュー２０４のフレームキュー１〜３を割り当てるための規則を格納する。規則にはフレームが入力したポート番号やフレーム内の各フィールドの値が定義されており、フレームはこの規則に従って対応する入力フレームキュー２０４のフレームキュー１〜３に振り分けられる。
【００４５】
図４は、入力フレームクラス分けテーブル２０３の設定例を示す図である。
【００４６】
図４には、次のような規則が設定されている。
【００４７】
フレームが入力したポート番号（入力ポート番号）＝１で、宛先ＭＡＣアドレス＝「00：00：00：11：22：33」のフレームは、入力フレームキュー２０４のフレームキュー１に割り振られる。入力ポート番号＝１で、イーサタイプ＝「0x8100」のフレームは、入力フレームキュー２０４のフレームキュー１に割り振られる。入力ポート番号＝２で、イーサタイプ＝「0x0800」のフレームは、入力フレームキュー２０４のフレームキュー２に割り振られる。上記以外の条件のフレームは、入力フレームキュー２０４のフレームキュー３に割り振られる。
【００４８】
入力フレームキュー２０４はファーストインファーストアウトのバッファ構造をしており、入力キュースケジューラ２０５により、キューからの読み出しタイミング制御が行われる。
【００４９】
入力キュースケジューラ２０５は定められた規則に従い、例えば、入力フレームキュー２０４の優先度が高いフレームキューから順にフレームを読み出して、プロトコル処理部２１０に転送する。また、入力キュースケジューラ２０５は入力フレームキュー２０４の輻輳状態を監視し、拡張ポーズフレームの生成を行う。
【００５０】
図５は、入力キュースケジューラ２０５の構成を示すブロック図である。
【００５１】
入力キュースケジューラ２０５は、送信制御部３０２、輻輳監視部３０１およびポーズフレーム生成部を含む構成になっている。
【００５２】
送信制御部３０２は入力フレームキュー２０４からのフレーム読み出しのタイミング制御を行う。
【００５３】
輻輳監視部３０１は入力フレームキュー２０４の状態を監視している。輻輳監視部３０１では、あらかじめ入力フレームキュー２０４の閾値が設定されており、フレームキュー内のフレーム蓄積量が閾値以上になった場合には、輻輳を検出した旨をポーズフレーム生成部３０３に通知する。なお、入力フレームキュー２０４のフレームキュー１〜３にはそれぞれ異なる閾値が設定されてもよいし、すべて同じ閾値が設定されてもよい。
【００５４】
また、輻輳監視部３０１は、輻輳を検出したフレームキューの中に格納されているフレームを任意に１つ選択する。ここで選択されたフレームを抑制対象フレームと称する。抑制対象フレームは、そのフレームを送信した送信側装置に対して、対応するフレームの送信を停止することを指示する意味を持つフレームである。
【００５５】
このように、同一のフレームキューに格納されたフレームは同一の優先度で転送されるため、輻輳が発生しているフレームキューに蓄積されているフレームを任意に１つ選択することで、輻輳に対して支配的なフレームが抑制対象フレームとして選択される。
【００５６】
例えば、抑制対象フレームはランダムに選択されてもよいし、フレーム長が一番長いフレームを選んでもよい。
【００５７】
ポーズフレーム生成部３０３は、輻輳監視部３０１から輻輳通知を受けると、拡張ポーズフレームを生成する。そして、ポーズフレーム生成部３０３は、拡張ポーズフレームと抑制対象フレームを、抑制対象フレームとなったフレームが入力されたポートに対応する入出力ポート２１１から、送信側装置に対して順次送信する。
【００５８】
このように、拡張ポーズフレームは、次のフレームが抑制対象フレームであることを通知するためのフレームで、抑制対象フレーム毎に送信される。なお、拡張ポーズフレームには、通常のポーズフレームと同様に、送信を停止する時間が中断時間フィールドに指定される。
【００５９】
なお、送信側装置に対してポート単位でフレームの送信を停止させる場合には、従来通りのポーズフレームを生成して、対応する入出力ポート２１１から送信する。
【００６０】
図６は、拡張ポーズフレームのフレームフォーマットを示す図である。
【００６１】
通常のポーズフレームの４２バイトあるパディング部分の先頭２バイトを「0xa55a」とすることで、拡張ポーズフレームであることを表す。
【００６２】
他のフィールドは、通常のポーズフレームのフレームフォーマットと同じである。つまり、宛先ＭＡＣアドレスに相当するフィールドがポーズフレームＭＡＣアドレスとして定義され、ポーズフレームであることを示す「01：80：C2：00：00：01」が設定される。中断時間フィールドには、抑制対象フレームの送信を停止すべき時間が設定される。
【００６３】
プロトコル処理部２１０は、フレームの情報を解析して、フレームに処理を行い、入出力ポート１０１から出力されるフレームの形式に変換して、出力すべきポートの情報と共に出力フレームクラス分け処理部２０６に転送する。つまり、プロトコル処理部２１０に送られたフレームは、各種ヘッダの処理が行われ、出力される入出力ポート１０１が決定された後に、出力フレームクラス分け処理部２０６に送られる。プロトコル処理部で行われる各種ヘッダ処理には転送テーブルによるアドレスやＶＬＡＮタグの書き換えなどがある。
【００６４】
出力フレームクラス分け処理部２０６は、出力フレームクラス分けテーブル２０７で規定された規則に従い、プロトコル処理部２１０から受け取ったフレームを、出力フレームキュー２０８の優先度別に配備されたフレームキュー１〜３に振り分ける。つまり、フレームは、出力フレームクラス分け処理部２０６で優先度が決定され、優先度に従って出力ポート情報と共に振り分け先のフレームキュー１〜３のいずれかのフレームキューに送られる。
【００６５】
出力フレームクラス分けテーブル２０７は、入力フレームクラス分けテーブル２０３と同様に、出力する各フレームの振り分け先となる出力フレームキュー２０８のフレームキュー１〜３を割り当てるための規則を格納する。規則には、フレームを出力するポート番号やフレーム内の各フィールドの値が定義されており、この規則に従ってフレームが、対応する出力フレームキュー２０８のフレームキュー１〜３に振り分けられる。
【００６６】
図７は、出力フレームクラス分けテーブル２０７の設定例を示す図である。
【００６７】
図７には、次のような規則が設定されている。
【００６８】
ＶＬＡＮタグの識別子（ＶＩＤ）＝１０のフレームは、出力フレームキュー２０８のフレームキュー１に割り振られる。同じく、ＶＩＤ＝１００のフレームは、出力フレームキュー２０８のフレームキュー１に割り振られる。また、フレームを出力するポート（出力ポート）＝１で、ＶＩＤ＝１０００のフレームは、出力フレームキュー２０８のフレームキュー２に割り振られる。そして、上記の条件以外のフレームは、出力フレームキュー２０８のフレームキュー３に割り振られる。
【００６９】
図４に示した入力フレームクラス分けテーブル２０３と図７に示した出力フレームクラス分けテーブル２０７から分かるように、本実施形態の通信装置２００は、受信側と送信側とで優先度をそれぞれ独立した基準で設定することができる。
【００７０】
出力フレームキュー２０８は、ファーストインファーストアウトのバッファ構造をしており、出力キュースケジューラ２０９により、キューからの読み出しタイミング制御が行われる。
【００７１】
出力キュースケジューラ２０９は、フレームを出力するポートの状態に応じて、出力フレームキュー２０８のフレームキュー１〜３からフレームを読み出して、入出力ポート２１１へのフレーム送信を制御する。
【００７２】
図８は、出力キュースケジューラ２０９の構成を示すブロック図である。
【００７３】
出力キュースケジューラ２０９は、送信制御部４０１と、出力フレームキュー２０８のフレームキュー１〜３に対応して配備されたキュー状態テーブル１〜３を含む出力キュー状態テーブル４０２を備えた構成になっている。送信制御部４０１は、キュー状態テーブル１〜３に設定されている情報に基づいて、対応するフレームキュー１〜３から入出力ポート２１１へのフレーム送信を制御する。キュー状態テーブル１〜３には、フレームを出力するポートの状態が設定されている。ポートの状態とは、ポーズフレームを受信してフレームの出力を停止する状態（ポーズ）か否（ポーズ解除）か、および停止状態の解除までの時間が示されている。
【００７４】
図９は、キュー状態テーブルの設定例を示す図である。
【００７５】
図９に示すキュー状態テーブルには、次のようなポート状態が例示されている。
【００７６】
ポート１はポーズ状態で、ポーズ状態は１０秒で解除される。ポート２とポート３はポーズ解除の状態である。ポート４はポーズ状態で、ポーズ状態は２０秒で解除される。
【００７７】
なお、キュー状態テーブル１〜３には、対応するフレームキュー１〜３に応じて異なる内容が設定されてもかまわない。
【００７８】
入出力ポート２１１は、対向装置と全二重方式でフレームの送信及び受信を行うことのできるEthernet（登録商標）のネットワークインタフェースである。
【００７９】
以上のように構成された、本実施形態の通信装置２００の動作を説明する。
【００８０】
まず、輻輳を検出した受信側の動作として入力キュースケジューラ２０５の動作を説明する。
【００８１】
図１０は、入力キュースケジューラ２０５の動作を示すフロー図である。
【００８２】
入力キュースケジューラ２０５は、入力フレームキュー２０４のフレームキュー１〜３のフレーム蓄積状態を監視している（Ｓ２０１）。入力キュースケジューラ２０５は、あるフレームキューのフレーム蓄積量があらかじめ設定した閾値以上になった場合を輻輳として検出する（Ｓ２０２）。
【００８３】
輻輳が発生したフレームキューを検出すると（Ｓ２０２、ＹＥＳ）、入力キュースケジューラ２０５は、輻輳が発生したフレームキューに蓄積されているフレームを任意に１つ選択する（Ｓ２０３）。
【００８４】
なお、輻輳が発生したフレームキューからのフレーム選択は、任意に選択してかまわない。例えば、ランダムにフレームを選択しても良いし、フレーム長が一番長いフレームを選んでもよい。
【００８５】
つまり、輻輳が発生しているフレームキューに蓄積されているフレームを任意に１つ選択することで、輻輳に対して支配的なフレームが選択される。
【００８６】
入力キュースケジューラ２０５は、輻輳が発生したフレームキューが拡張ポーズフレームを送信する対象のキューなのか、それとも従来のポーズフレームを送信する対象のキューなのかを識別する（Ｓ２０４）。
【００８７】
入力フレームキュー２０４の各フレームキューには、拡張ポーズフレーム送信対象のキューなのか否かを示す情報があらかじめ付されている。これは、入力フレームクラス分けテーブル２０３の設定内容に応じて拡張ポーズフレーム送信対象のキューであるか否かがあらかじめ決められていることを意味する。
【００８８】
例えば、図４に示す入力フレームクラス分けテーブル２０３の設定例を参照すると、フレームキュー１には、２つの条件のフレームが振り分けられるように設定されている。1つは「入力ポート１、宛先ＭＡＣアドレス＝00：00：00：11：22：33」の条件のフレームで、もう１つは「入力ポート＝１、イーサタイプ＝0x8100」の条件のフレームである。もし、入力ポート＝１に対応するポートに対してポーズフレームを送信すると、そのポーズフレームを受け取った送信側装置では、そのポートから送信されるすべてのフレームを停止してしまう。
【００８９】
このような場合には、拡張ポーズフレームを送信して、輻輳の原因となっている抑制対象フレームを送信側に通知して、抑制対象フレームに対応するフレームの送信を停止するように指示するのが望ましい。そのため、フレームキュー１には拡張ポーズフレーム送信対象のキューである旨の情報が付されている。
【００９０】
また、あるフレームキューが低優先度のフレームを扱うものであって、そのフレームキューに振り分けられる条件の入力ポートからは高優先度のフレームが送信されることがない場合には、そのポートに対してポーズフレームを送信してもかまわない。この場合、ポーズフレームを受け取った送信側装置は、対応するポートから送信されるすべてのフレームを停止する。このようなフレームキューには拡張ポーズフレーム送信対象のキューである旨の情報は付されていない。
【００９１】
輻輳が発生したフレームキューが拡張ポーズフレームを送信する対象のキューの場合（Ｓ２０４、ＹＥＳ）、入力キュースケジューラ２０５は拡張ポーズフレームを生成する（Ｓ２０５）。そして、入力キュースケジューラ２０５は、拡張ポーズフレームと、ステップＳ２０３で選択したフレームを抑制対象フレームとして、当該フレームを受信したポートに対応する入出力ポート２１１から順次送信する（Ｓ２０６）。
【００９２】
一方、輻輳が発生したフレームキューが拡張ポーズフレームを送信する対象のキューではない場合（Ｓ２０４、ＮＯ）、入力キュースケジューラ２０５はポーズフレームを生成する（Ｓ２０７）。そして、入力キュースケジューラ２０５は、ステップＳ２０３で選択したフレームを受信したポートに対応する入出力ポート２１１にポーズフレームを送信する（Ｓ２０８）。
【００９３】
なお、拡張ポーズフレームは、図６で説明したように、パディング部分に拡張コード「0xa55a」を有するフレームである。また、拡張ポーズフレームおよびポーズフレームのいずれにも、送信を停止すべき中断時間が設定されている。
【００９４】
次に、受信側装置から送信された拡張ポーズフレームおよび抑制対象フレームを受信した送信側装置の動作を説明する。
【００９５】
送信側装置の動作としては、受信したフレームの種別を判定するフレーム判定部２０１の動作がある。また、フレーム判定部２０１が判定したフレームの種別に基づいて、拡張ポーズフレーム、抑制対象フレームまたはポーズフレームを受信した場合の出力キュースケジューラ２０９の動作がある。
【００９６】
図１１は、フレーム判定部２０１の動作を示すフロー図である。
【００９７】
入出力ポート２１１からフレームを受け取った通信装置２００は、そのフレームをフレーム判定部２０１に送る。そして、フレーム判定部２０１は、入出力ポート２１１から受け取ったフレームの種別（ポーズフレーム、拡張ポーズフレーム、抑制対象フレームまたは通常フレーム）の判定を行う。
【００９８】
まず、フレーム判定部２０１は、入出力ポート２１１からフレームを受信する（Ｓ３０１）。
【００９９】
フレーム判定部２０１は、フレームを受信したポートの今の状態が「抑制対象フレーム待ち状態」なのかどうかを識別する（Ｓ３０２）。なお、「抑制対象フレーム待ち状態」については後述する。
【０１００】
対象とするポートが「抑制対象フレーム待ち状態」であると識別した場合（Ｓ３０２、ＹＥＳ）、フレーム判定部２０１は、ステップＳ３０１で受信したフレームを抑制対象フレームであると判断し、抑制対象フレームに対応する処理を行う（Ｓ３０３）。
【０１０１】
対象とするポートが「抑制対象フレーム待ち状態」でないと識別した場合（Ｓ３０２、ＮＯ）、フレーム判定部２０１は、ステップＳ３０１で受信したフレームの宛先ＭＡＣアドレスがポーズフレームを示す「01:80:c2:00:00:01」か、否かを判定する（Ｓ３０４）。
【０１０２】
宛先ＭＡＣアドレスがポーズフレームを示す「01:80:c2:00:00:01」ではないと判定した場合（Ｓ３０４、ＮＯ）、フレーム判定部２０１は、ステップＳ３０１で受信したフレームを通常フレームであると判断し、通常フレームに対応する処理を行う（Ｓ３０５）。
【０１０３】
宛先ＭＡＣアドレスがポーズフレームを示す「01:80:c2:00:00:01」であると判定した場合（Ｓ３０４、ＹＥＳ）、フレーム判定部２０１は、ステップＳ３０１で受信したフレームを、拡張ポーズフレームまたはポーズフレームであると判断する。そして、さらに、フレーム判定部２０１は、ステップＳ３０１で受信したフレームのパディング部分に拡張コードが付与されているか否かを判定する（Ｓ３０６）。つまり、パディング部分の先頭２バイトに「0xa55a」が付加されているか否かを確認する。
【０１０４】
フレームのパディング部分に拡張コードが付与されていないことを判定した場合（Ｓ３０６、ＮＯ）、フレーム判定部２０１は、ステップＳ３０１で受信したフレームを、ポーズフレームであると判断し、ポーズフレームに対応する処理を行う（Ｓ３０７）。
【０１０５】
一方、フレームのパディング部分に拡張コードが付与されていると判定した場合（Ｓ３０６、ＹＥＳ）、フレーム判定部２０１は、ステップＳ３０１で受信したフレームを、拡張ポーズフレームであると判断し、拡張ポーズフレームに対応する処理を行う（Ｓ３０８）。
【０１０６】
ステップＳ３０１で受信したフレームを、拡張ポーズフレームであると判断したフレーム判定部２０１は、当該フレームを受信したポートの状態を、ステップＳ３０２の判断で使用する「抑制対象フレーム待ち状態」に設定する。
【０１０７】
言い換えれば、フレーム判定部２０１は、拡張ポーズフレームを受信すると、受信したポートの状態を「抑制対象フレーム待ち状態」に設定する。このことは、拡張ポーズフレームは、次のフレームが抑制対象フレームであることを通知するためのフレームであって、拡張ポーズフレームを受信したポートから次に受信するフレームは抑制対象フレームであることを一意に識別することを意味する。
【０１０８】
また、通常フレームを受信した場合の処理は、前述したとおりで、以下の動作が行われる。
【０１０９】
フレーム判定部２０１が識別した通常フレームは、入力フレームクラス分け処理部２０２に転送される。そして、そこで入力フレームクラス分けテーブル２０３に規定された規則に従い優先度が決定され、対応する入力フレームキュー２０４のフレームキュー１〜３に振り分けられる。
【０１１０】
入力フレームキュー２０４のフレームキュー１〜３に格納されたフレームは、入力キュースケジューラ２０５により、定められた規則に従って読み出されてプロトコル処理部２１０に転送される。
【０１１１】
プロトコル処理部２１０に送られたフレームは、各種ヘッダの処理が行われ、出力される入出力ポート１０１が決定された後に、出力フレームクラス分け処理部２０６に送られる。
【０１１２】
出力フレームクラス分け処理部２０６に送られたフレームは、出力フレームクラス分けテーブル２０７に規定された規則に従って優先度が決定され、優先度に従って出力ポート情報と共に出力フレームキュー２０８のフレームキュー１〜３に振り分けられる。
【０１１３】
出力フレームキュー２０８のフレームキュー１〜３に格納されたフレームは、出力キュースケジューラ２０９により、定められた規則に従って読み出されて入出力ポート２１１から送信される。
【０１１４】
このとき、出力キュースケジューラ２０９は、フレームを出力するポートの状態が設定されている出力キュー状態テーブル４０２を参照する。なお、出力キュー状態テーブル４０２は、出力フレームキュー２０８のフレームキュー１〜３と対応して配備されているキュー状態テーブル１〜３を含む。
【０１１５】
次に、ポーズフレームを受信した場合の処理と、抑制対象フレームを受信した場合の処理を説明する。
【０１１６】
ポーズフレームを受信した場合の処理は以下のとおりである。
【０１１７】
フレーム判定部２０１は、ステップＳ３０１で受信したフレームをポーズフレームであると判断すると、ポーズフレームを受信した旨を出力キュースケジューラ２０９に通知する。このとき、フレーム判定部２０１は、ポーズフレームを受信したポート番号およびポーズフレームに設定されている停止時間を出力キュースケジューラ２０９に通知する。
【０１１８】
出力キュースケジューラ２０９は、出力キュー状態テーブル４０２において、出力フレームキュー２０８に対応するすべてのキュー状態テーブル１〜３を更新する。そして、すべてのキュー状態テーブル１〜３に、ポーズフレームを受信したポートのポート状態をポーズに設定し、ポーズ解除までの時間として、通知された停止時間を設定する。
【０１１９】
抑制対象フレームを受信した場合の処理は以下のとおりである。
【０１２０】
フレーム判定部２０１は、ステップＳ３０１で受信したフレームを抑制対象フレームであると判断すると、まず、拡張ポーズフレームの受信により「抑制対象フレーム待ち状態」になっていたポートの状態を解除する。
【０１２１】
そして、フレーム判定部２０１は、抑制対象フレームを受信した旨を出力キュースケジューラ２０９に通知する。このとき、フレーム判定部２０１は、抑制対象フレームを受信したポート番号および拡張ポーズフレームに設定されていた停止時間を出力キュースケジューラ２０９に通知する。
【０１２２】
また、フレーム判定部２０１は、受信した抑制対象フレームを出力フレームクラス分け処理部２０６に送り、そのフレームを受信したポート番号とそのフレームが抑制対象フレームであることを通知する。
【０１２３】
出力キュースケジューラ２０９は、抑制対象フレームを受信した旨の通知により、出力フレームクラス分け処理部２０６から抑制対象情報を受信するまで出力キュー状態テーブル４０２の更新を保留する。
【０１２４】
出力フレームクラス分け処理部２０６は、受信した抑制対象フレームが出力フレームクラス分けテーブル２０７に規定された規則では出力フレームキュー２０８のどのフレームキュー１〜３に振り分けられるかを判定する。これは、受信側装置の入力フレームキューで輻輳の原因となっているフレームが、送信側装置では出力フレームキュー２０８のどのフレームキュー１〜３に格納されているのかを判別する処理である。
【０１２５】
抑制対象フレームが格納される出力フレームキュー２０８のフレームキューを識別した出力フレームクラス分け処理部２０６は、そのフレームキューの情報を抑制対象情報として出力キュースケジューラ２０９に通知する。なお、出力フレームクラス分け処理部２０６は、フレーム判定部２０１から受信した抑制対象フレームを出力フレームキュー２０８の判別に使用するだけであり、出力フレームキュー２０８には格納しない。
【０１２６】
出力フレームクラス分け処理部２０６から抑制対象情報を受信した出力キュースケジューラ２０９は、出力フレームキュー２０８の対象となるフレームキューに対応するキュー状態テーブルのポート状態を更新する。
【０１２７】
出力キュースケジューラ２０９は、対応するキュー状態テーブルにおいて、抑制対象フレームを受信したポートのポート状態を確認する。出力キュースケジューラ２０９は、そのポート状態がポーズ解除になっていれば、ポート状態をポーズにしてポーズ解除までの時間を設定する。また、ポート状態が既にポーズになっているならば、ポート状態を変更せずにポーズ解除までの時間を加算する。
【０１２８】
つまり、抑制対象フレームが格納される出力フレームキュー２０８のフレームキューに対応するキュー状態テーブルにおいてのみ、抑制対象フレームを受信したポートに対応するポート状態がポーズに設定される。
【０１２９】
このことは、抑制対象フレームと同じ振り分け条件を有するフレームが格納されるフレームキューから、抑制対象フレームを受信したポートに出力されるフレームの送信が停止されることを意味する。そして、同じポートから出力されるフレームであっても、他のフレームキューに格納されているフレームは送信されることを意味する。
【０１３０】
出力キュースケジューラ２０９は、上記のように設定されている出力キュー状態テーブル４０２を参照して出力フレームキュー２０８に格納されているフレームの送信制御を行う。
【０１３１】
図１２は、出力キュースケジューラ２０９の動作を示すフロー図である。
【０１３２】
出力フレームキュー２０８のフレームキュー１〜３は優先度別に配備されており、高優先度のフレームキューから順次、図１２に示すフローでフレームが読み出されて送信処理が行われる。
【０１３３】
まず、処理対象としている出力フレームキュー２０８のフレームキューの先頭に格納されているフレームの処理を行う（Ｓ４０１）。
【０１３４】
出力キュースケジューラ２０９は、そのフレームを読み出して送信ポートを確認し、処理対象としているフレームキューに対応するキュー状態テーブルにおける当該ポートの状態を参照する（Ｓ４０２）。
【０１３５】
送信対象となるフレームが送信されるポートがポーズ解除状態であれば（Ｓ４０２、ポーズ解除）、出力キュースケジューラ２０９は、そのフレームをそのポートから送信する（Ｓ４０３）。
【０１３６】
一方、送信対象となるフレームが送信されるポートがポーズ状態であれば（Ｓ４０２、ポーズ）、出力キュースケジューラ２０９は、そのフレームの送信を停止する（Ｓ４０４）。
【０１３７】
１つのフレームの処理が済むと、出力キュースケジューラ２０９は、キュー状態テーブルの更新状態を確認し、ポーズ解除されたポートの有無を確認する（Ｓ４０５）。
【０１３８】
ポーズ解除されたポートが有る場合（Ｓ４０５、ＹＥＳ）、出力キュースケジューラ２０９は、処理対象としているフレームキューの先頭からフレームを読み出して、ステップＳ４０１乃至Ｓ４０４の処理を実行する。これは、送信停止されていたフレームがポーズ解除されたポートから送信できるようになった可能性があるから、出力されるフレームの順序性を保つためである。
【０１３９】
ポーズ解除されたポートが無い場合（Ｓ４０５、ＮＯ）、出力キュースケジューラ２０９は、処理対象としているフレームキューに蓄積されている他のフレームの有無を確認する（Ｓ４０６）。
【０１４０】
処理対象としているフレームキューに他のフレームが蓄積されている場合（Ｓ４０６、ＹＥＳ）、出力キュースケジューラ２０９は、次に格納されているフレームを読み出し（Ｓ４０７）、上述したステップＳ４０２の処理に戻る。
【０１４１】
また、処理対象としているフレームキューに他のフレームが蓄積されていない場合（Ｓ４０６、ＮＯ）、出力キュースケジューラ２０９は当該フレームキューに対する処理を終了する。つまり、処理対象としているフレームキューが空になった場合、出力キュースケジューラ２０９は、出力フレームキュー２０８の次の優先度のフレームキューを処理対象のフレームキューとして、図１２に示す処理を実行する。処理対象とするフレームキューを切り替えた場合、出力キュースケジューラ２０９は、参照するキュー状態テーブルも新たなフレームキューに対応するキュー状態テーブルに切り替える。
【０１４２】
以降、出力フレームキュー２０８のすべてのフレームキューに対して同様の処理が繰り返される。
【０１４３】
なお、出力キュースケジューラ２０９は高優先度のフレームキューから順次フレームを読み出すとしたが、これに限ることはなく、例えば、ラウンドロビンやフレーム内のフレーム数が多いフレームキューから読み出すとしてもよい。
【０１４４】
以上に説明したように、本実施形態の通信装置２００は、輻輳が発生した入力フレームキューから抑制対象フレームを任意に選択し、その抑制対象フレームを送信側の装置に送信する。送信側の装置では、抑制対象フレームに相当するフレームがどの出力フレームキューに振り分けられるのかを判定する。そして、判定した出力フレームキューから出力するフレームであって、抑制対象フレームを受信したポートに対応するポートから出力されるフレームの送信を停止する。なお、抑制対象フレームを受信したポートは、拡張ポーズフレームを受信したポートでもある。
【０１４５】
つまり、本実施形態の通信装置２００は、輻輳が起きている受信側により抑制対象フレームが決定され、それを送信することで、輻輳が発生しているフレームに関連する情報を限定せずに送信元にフィードバックする。そして、送信側ではフィードバックされた抑制対象フレームに相当するフレームを選択的に送信停止するため、少なくとも抑制対象フレームと同一フレームの送信が停止され、効果的に輻輳原因となるフレームの送信抑制を行うことができる。
【０１４６】
また、入力フレームキューは優先度が高い順に読み出されるので、高優先度の入力フレームキューほどフレームが溜まりにくい状況にある。逆に、優先度が低い入力フレームキューにはフレームが溜まりやすいので、受信側の装置においては優先度が低い入力フレームキューに滞留したフレームから抑制対象フレームが選択される傾向になる。
【０１４７】
また、本実施形態の通信装置２００は、受信側と送信側はそれぞれ独立した基準に基づいて優先度のクラス分けを行うことができる。そして、本実施形態の通信装置２００は、受信側で決定された抑制対象フレームに対して、送信側では受信側とは独立した基準に基づいてその抑制対象フレームを判別して送信停止することができる。
【０１４８】
このように第２の実施形態の通信装置２００は、送信側装置と受信側装置で事前にトラフィックのクラス分けの整合を行わずとも、輻輳原因となっている特定のトラフィックの送信を抑止することができる。
【０１４９】
第２の実施形態の変形例を説明する。
【０１５０】
第２の実施形態では輻輳が発生した出力フレームキューに格納されているフレームそのものを抑制対象フレームとして送信側に送るように構成した。しかし、抑制対象フレームに含まれるデータ部分は送信側においては意味をなさない。
【０１５１】
そこで、抑制対象フレームではなく特定の規則に基づいてフレーム内の情報を抽出して送信側に通知してもよい。
【０１５２】
送信側の出力フレームクラス分けテーブルの判定で使われ得る情報、例えば、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、タイプ、およびＶＬＡＮタグを、選択した抑制対象フレームから輻輳制御情報として抽出して送信側に通知してもよい。抽出する情報は上記の全てではなく、任意の組み合わせで抽出した情報でよい。また、フレームの先頭から特定のバイト数だけを抽出するというようにしてもよい。
【０１５３】
この送信側に通知する輻輳制御情報は、個別の特定フレームの形態で送信してもよいし、拡張ポーズフレームのパディング部分に格納して通知するようにしてもよい。前者の場合は、拡張ポーズフレームの次に送信されるフレームが輻輳制御情報を含む特定フレームであるとして識別することができる。後者の場合は、拡張ポーズフレームを受信したことで輻輳制御情報を含むものとして制御を行えばよい。また、パディング長を超える情報については、複数の拡張ポーズフレームに分割して送信してもよい。
【０１５４】
この変形例の場合、入力キュースケジューラ２０５は、入力フレームキュー２０４の輻輳を検出して、その中から抑制対象フレームを選択すると、当該フレームに含まれる上述した輻輳制御情報を抽出する。
【０１５５】
そして、輻輳制御情報を個別の特定フレームに含めて送信する場合、入力キュースケジューラ２０５は、拡張ポーズフレームと、輻輳制御情報を含む特定フレームを生成し、選択した抑制対象フレームを受信したポートに対応するポートから送信する。また、輻輳制御情報を拡張ポーズフレームに含めて送信する場合、入力キュースケジューラ２０５は、輻輳制御情報を含む拡張ポーズフレームを生成し、選択した抑制対象フレームを受信したポートに対応するポートから送信する。
【０１５６】
一方、送信側では、フレーム判定部２０１が、輻輳制御情報を含む特定フレームまたは輻輳制御情報を含む拡張ポーズフレームを判定して出力フレームクラス分け処理部２０６および出力キュースケジューラ２０９にその受信を通知する。輻輳制御情報を含む拡張ポーズフレームを受信した場合、フレーム判定部２０１は、その拡張ポーズフレームを出力フレームクラス分け処理部２０６に転送してもよいし、拡張ポーズフレームから抽出した輻輳制御情報を転送するようにしてもよい。
【０１５７】
出力フレームクラス分け処理部２０６および出力キュースケジューラ２０９は、第２の実施形態で説明した動作と同様の動作を実施する。
【０１５８】
つまり、出力フレームクラス分け処理部２０６は、受信側からフィードバックされた輻輳原因となるフレームに基づく輻輳制御情報を用いて、出力フレームクラス分けテーブル２０７を参照する。そして、出力フレームクラス分け処理部２０６は、その輻輳制御情報を有するフレームが出力フレームキュー２０８のどのフレームキューに振り分けられるかを判定する。そして、その振り分け先のフレームキューの情報を受けた出力キュースケジューラ２０９は、そのフレームキューに対応するキュー状態テーブルにおいて、拡張ポーズフレームを受信したポートのポート状態をポーズに設定する。
【０１５９】
また、この変形例において、輻輳制御情報を送信側の装置にフィードバックする手段として、拡張ポーズフレームの代わりに、ネットワーク内で定期的に送信されるフレームに規制すべきフレーム情報を格納して通知するようにしてもよい。例えば、ＢＰＤＵ（Bridge Protocol Data Unit）、ＬＬＤＰ(Link Layer Discovery Protocol)またはＥｔｈｅｒ−ＣＣ(Continuity Check)等のフレームを使うことができる。特定のパターンで輻輳制御情報を格納しておくことにより、これらのフレームを受信したフレーム判定部において輻輳制御情報を識別して、本実施形態と同様の処理が実施される。
【０１６０】
同様に、輻輳制御情報を送信側の装置にフィードバックする手段として、拡張ポーズフレームを送信する代わりに、送信側と受信側とであらかじめ決めた特定のＶＬＡＮを抑制対象フレーム転送用に設定してもよい。つまり、この特定のＶＬＡＮには受信側からの抑制対象フレームのみが転送され、その他のフレームの転送は禁止するように設定する。そして、送信側では、この特定のＶＬＡＮで受信したフレームを一意に抑制対象フレームと判別して、上述した抑制対象フレームの送信停止の処理を実行する。
【０１６１】
このように、第２の実施形態の変形例においても第２の実施形態の場合と同じ効果が得られる。
【０１６２】
第２の実施形態のその他の変形例を説明する。
【０１６３】
第２の実施形態のその他の変形例として、フレームキューやスケジューラは次のような構成を備えていてもよい。
【０１６４】
上記の実施形態ではフレームキューからフレームを読み出すスケジューラは優先度の高い順に出力する手法を採用したが、この規則に限らない。例えば、ラウンドロビンやフレームを多く蓄積しているフレームキューから読み出す手法を採用してもよい。
【０１６５】
また、スケジューラによって各フレームキューの出力帯域制御を行ってもよい。
【０１６６】
さらに、入力フレームキューの輻輳状態の判定を特定のアルゴリズムを用いて判定するようにしてもよい。
【０１６７】
例えば、フレームキュー内の過去のフレーム蓄積量の変化と現在のフレーム蓄積量を比較して、変化の度合いの一番大きいキューから抑制対象フレームを選択するようにしてもよい。この場合、特定の周期で各キューを監視しておき、周期間での蓄積変化量が一番大きいキューに溜まったフレームの中から抑制対象フレームを選択すればよい。このとき低優先度キューから優先して選択することで優先度の低いフレームを選択し、受信側の装置にとって優先度の低いフレームの送信を選択的に停止することができる。
【０１６８】
上記の実施形態ではフレームキューおよびフレームクラス分け処理部を入力用と出力用にそれぞれ１つの計２つ設ける構成を示したが、1つであってもよい。また、階層化ＱｏＳ（Quality of Service）に対応して３つ以上を設ける構成であってもよい。
【０１６９】
さらには、入力フレームキュースケジューラと出力フレームキュースケジューラが連携して、輻輳状態を判定する構成でもよい。例えば、入力フレームキューでは輻輳が起きないが出力フレームキューで輻輳が起きるような場合、出力フレームキュー内のフレーム数が閾値以上になった場合に、その出力フレームキューに関連する入力フレームキュー内のフレームから任意に抑制対象フレームを選択する構成とすればよい。
【０１７０】
なお、以上に説明した実施形態において、通信装置は、イーサネット（登録商標）フレームの転送装置として説明したが、本発明の対象となる通信装置はそれに限定されることはない。本発明の対象となる通信装置は、抑制対象フレームが入力したポートに基づいて送信停止の対象となるポートを判別することができるような通信装置であればよい。例えば、ＩＰ（Internet Protocol）パケット転送装置でもよい。送信側と受信側で違うプロトコルによる転送を行う装置でもよい。
【符号の説明】
【０１７１】
１００、２００    通信装置
１    受信手段
２    送信手段
３    入出力ポート
１１    入力フレームキュー
２１    出力フレームキュー
２０１    フレーム判定部
２０２    入力フレームクラス分け処理部
２０３    入力フレームクラス分けテーブル
２０４    入力フレームキュー
２０５    入力キュースケジューラ
２０６    出力フレームクラス分け処理部
２０７    出力フレームクラス分けテーブル
２０８    出力フレームキュー
２０９    出力キュースケジューラ
２１０    プロトコル処理部
２１１    入出力ポート
３０１    輻輳監視部
３０２    送信制御部
３０３    ポーズフレーム生成部
４０１    送信制御部
４０２    出力キュー状態テーブル
【図１】
2015089072.tif 000003
【図２】
2015089072.tif 000004
【図３】
2015089072.tif 000005
【図４】
2015089072.tif 000006
【図５】
2015089072.tif 000007
【図６】
2015089072.tif 000008
【図７】
2015089072.tif 000009
【図８】
2015089072.tif 000010
【図９】
2015089072.tif 000011
【図１０】
2015089072.tif 000012
【図１１】
2015089072.tif 000013
【図１２】
2015089072.tif 000014