(57)【要約】【課題】データの伝送効率改善と通信品質確保との両立を維持し得るフロー制御を行うことができない。【解決手段】Priority抽出部９はPort１からのデータ受信回数をデータに含まれているPriority毎に計数する。クラス判定部１１は各Priority抽出部９から計数結果をもとに、各Port１に対してQoSクラスという優先度を割り当て、その結果をバッファ制御部１０へ通知する。計数結果は所定時間毎にリセットされる。バッファ制御部１０はクラス判定部１１からの通知内容をもとに、各Port１からの受信データをバッファ５の各QoSクラスに対応した領域に格納する。あるバッファ領域の使用量が閾値を超えた場合には、そのバッファ領域に対応したPort１のフロー制御部１０にのみフロー制御要求を出力する。【選択図】図１
2011182209.tif 000002
【特許請求の範囲】
【請求項１】
広帯域網と狭帯域網の間に接続されたデータ通信装置におけるフロー制御回路において、
前記広帯域網側に接続された複数の入出力ポートと、
前記入出力ポートから入力するデータを一時保存するための前記入出力ポートと１対１対応の領域を有するバッファと、
前記入出力ポートから入力するデータに含まれるPriority毎のデータ受信回数を計数する前記入出力ポートと１対１対応のPriority抽出部と、
前記Priorityと前記バッファ領域との対応が予め設定され、所定時間毎に、前記Priority抽出部全てにおけるPriority毎のデータ受信回数を読み出して前記入出力ポートの優先度を決定するとともに、前記Priority抽出部におけるPriority毎のデータ受信回数をリセットするクラス判定部と、
前記決定された優先度に従って前記入出力ポートを前記バッファ領域に割り当てて前記入出力ポートで受信するデータを当該バッファ領域に入力するとともに、前記バッファ領域の使用量を監視するバッファ制御部と、
前記監視により、前記バッファ領域の使用量が予め設定された閾値を超えた場合に当該入出力ポートの前記広帯域網における接続先へ送信停止あるいは速度制限をかける前記入出力ポートと１対１対応のフロー制御部とを有することを特徴とするフロー制御回路。
【請求項２】
前記クラス判定部は、QoS(Quality of Service)クラスを介して前記Priorityと前記バッファ領域とが対応されることを特徴とする請求項１に記載のフロー制御回路。
【請求項３】
前記バッファ領域の容量は、前記優先度の高いほど大きくしたことを特徴とする請求項１〜２に記載のフロー制御回路。
【請求項４】
複数の前記Priorityと１つの前記バッファ領域とを対応させることを特徴とする請求項１〜３に記載のフロー制御回路。
【請求項５】
前記入出力ポートの優先度は、高位のPriorityから降順に、そのPriorityのデータを検出した回数の順に高くし、データ受信回数が等しい入出力ポートの場合は、次に低いPriorityのデータのデータ受信回数で決めることを特徴とする請求項１〜４に記載のフロー制御回路。
【請求項６】
前記広帯域網から前記狭帯域網への変換率に応じて前記所定時間を設定することを特徴とする請求項１〜５記載のフロー制御回路。
【請求項７】
前記バッファ領域の容量と前記閾値に応じて前記所定時間を設定することを特徴とする請求項１〜５に記載のフロー制御回路。
【請求項８】
広帯域網と狭帯域網の間に接続されたデータ通信装置におけるフロー制御方法において、
前記広帯域網に接続された複数の入出力ポートから入力するデータを一時保存するための前記入出力ポートと同数の領域を有するバッファを備え、
前記入出力ポートから入力するデータのPriorityと前記バッファ領域との対応を予め設定するステップと、
前記入出力ポートから入力するデータのPriority毎のデータ受信回数を前記入出力ポートと１対１対応で計数するステップと、
所定時間毎に、全ての前記入出力ポートについて前記Priority毎のデータ受信回数を読み出して前記入出力ポートの優先度を決定するとともに前記Priority毎のデータ受信回数をリセットするステップと、
前記決定された優先度に従って前記入出力ポートを前記バッファ領域に割り当てて前記入出力ポートで受信するデータを当該バッファ領域に入力するとともに、バッファ領域の使用量を監視するステップと、
前記監視により、バッファ領域の使用量が予め設定された閾値を超えた場合に当該入出力ポートの広帯域網接続先へ送信停止あるいは速度制限をかけるステップを有することを特徴とするフロー制御方法。
【請求項９】
前記入出力ポートの優先度は、高位のPriorityから降順に、そのPriorityのデータを検出した回数の順に高くし、データ受信回数が等しい入出力ポートの場合は、次に低いPriorityのデータのデータ受信回数で決定することを特徴とする請求項８に記載のフロー制御方法。
【請求項１０】
請求項１〜７に記載のフロー制御装置を有するデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロー制御、特に、データ通信装置内あるいは伝送路上において広帯域から狭帯域へ帯域変更する際におけるデータのフロー制御に関する。
【背景技術】
【０００２】
広帯域網から狭帯域伝送網を介するEthernet（登録商標）網における機器間のデータ送受信において、広帯域網の端末から過度にデータが送信された場合、データをバッファに一時的に格納するが、バッファから溢れたデータは廃棄されてしまいデータの損失となる。このデータの損失を防ぐために、データのフロー制御が行われる。即ち、データがバッファから溢れそうになったり、受信側の機器が何らかの処理に忙殺されてデータの処理を進められないなどの場合には、これを送信側の機器にPauseフレームで通知して、送信を一時中断したり、送信速度を低下させたりすることで、データの廃棄を抑制するのである。
【０００３】
また、ある特定の通信のための帯域を予約し、一定の通信速度を保証する技術としてQuality of Service(QoS)が知られている。この技術は、音声や動画、テレビ電話など、通信の遅延や停止が許されないサービスにとって重要である。現在のQoSの一つのスケジューリング方式として、絶対優先(Strict Priority:SP)方式と重み付けラウンドロビン(Weighted Round Robin:WRR)方式とを組み合わせた方式がある。
【０００４】
この組合せ方式では、最も優先度の高いデータを絶対優先のデータとして最優先で送信し、その他の優先度の低いデータに対しては、絶対優先のデータが流れていないときにだけ、あらかじめ設定された重み付け比率でデータを送信するというように、QoSのクラス分けをして伝送する。
【０００５】
従って、絶対優先のデータが送信されている間は、優先度の低いデータは送信できずにバッファに蓄積されていく。特にバッファへの書込み速度が早く、データの読出し速度が遅いと、バッファの容量がデータで一杯の状態になり、入ってくるデータは次々と廃棄される。廃棄されたデータは再送制御がされるが、再送制御をするためにはデータではない制御信号が同一回線に流れるので、本来伝送したいデータの通信速度が更に低下するという問題がある。
【０００６】
図８はEthernet（登録商標）で使用されているIEEE 802.1p方式のMACフレーム構成を示す。このMACフレームは、プリアンブル、SFD(Start Frame Delimiter)、宛先アドレス、送信元アドレス、VLANタグ、長さ/タイプ、データ、FCS(Frame Check   Sequence)の各フィールドから成り、データのPriorityはVLANタグのフィールドに含まれている。
【０００７】
図７は、従来のフロー制御回路の一例を示す。このフロー制御回路は4つのLAN Port（以下、「Port」と記す）1-1〜1-4を装備し、各Port１は同じ機能であるため、各Port１に共通する事項はPort1-1を用いて説明する。Port１からの受信フレームはフレーム解析部２により、図８のMACフレームから宛先アドレスや長さ/タイプフィールドを検出することで、フレーム種別の解析とフレームフィルタリング（フレームの透過/廃棄の決定）を行う。フレーム種別の解析では、例えば、受信フレームの宛先アドレスが01:80:C2:00:00:01である場合は、そのフレームがPauseフレームであると識別し、また、長さ/タイプフィールドの値によってIPv4のフレーム、IPv6のフレーム等を識別する。フレームフィルタリングとは上記のような特別なフレームに対して透過/廃棄をする機能である。
【０００８】
QoSマッピング部３は、MACフレームに含まれるUser Priority(例えばIEEE 802.1p VLAN Tag内のUser PriorityやIPv4 Type of ServiceのUser Priority)を抽出し、そのPriorityを元にQoSのクラス分けをする。この例では、図８のMACフレームにおけるVLANタグのフィールドに含まれる8つのPriority(0〜7)を抽出し、そのPriorityを元に4つのQoSクラス(0〜3)に分ける。例えば、Priority0と1はQoSクラス3、Priority2と3はQoSクラス2、Priority4と5はQoSクラス1、Priority6と7はQoSクラス0とし、優先度をQoSクラス0＞QoSクラス1＞QoSクラス2＞QoSクラス3のようにクラス分けをする。
【０００９】
バッファ制御部４は、QoSクラスとフレームの種別等の情報を元にフレームをバッファ５へ一時的に格納する。図７には、バッファ５のバッファ内領域分割イメージも示されている。バッファ５は、フレームの送信方向やQoSクラスにより格納領域が分割されており、例えば、Port１側から無線側へフレームを伝送する際には、QoSクラス0〜QoSクラス3の何れかの格納領域に一時的にフレームを格納し、送信要求がある場合にバッファ制御部４により読出しが行われる。
【００１０】
また、各QoSクラスのバッファ容量は可変であり、優先度が高いものほど大きくとっており、容量の大きさはQoSクラス0のバッファ領域が最も大きく、QoSクラス3のバッファ領域が最も小さくなっている。
【００１１】
バッファ制御部４はバッファ容量監視機能を具備し、バッファ５のLAN(広帯域)側から無線(狭帯域)側への送信フレームを格納するQoSクラス0〜3のバッファの使用量が、どれか一つでも閾値を超えた場合はPort１全てのフロー制御部８にフロー制御要求（Pauseフレーム生成指示）を出す。フロー制御要求は全Port１一斉に要求を行い、フロー制御中は、バッファ５に対するデータの書込みを停止し、読出しのみ行う。バッファ５の使用容量が閾値を下回り、フロー制御が解除されればデータの書込みが再開される。
【００１２】
また、バッファ制御部４は、各QoSクラスの格納領域からデータを読み出し、出力キュー６へ出力する。例えば、QoSクラス0が絶対優先の場合は、QoSクラス0の格納領域のデータを全て読み出してから、次の優先度のQoSクラスの格納領域から予め設定された重付け比率でデータを読み出すというようにデータの出力制御を行う。
【００１３】
出力キュー６は、バッファ制御部４からのデータを狭帯域伝送側向けの1列のデータに変換（多重化）し、フレーム送受信部７へ出力する。フレーム送受信部７は、狭帯域網伝送用のフレームに変換する。狭帯域網を無線伝送網とした場合には、LANフレームを無線フレームに変換を行う。
【００１４】
一方、狭帯域網からの受信信号は、フレーム送受信部７で、例えば無線フレームからLANフレームに変換され、バッファ制御部４へ出力される。バッファ制御部４では、LANフレームを To LAN領域にデータを格納する。更に、バッファ使用量が閾値を超えていなければ（フロー制御が不要な状態）、To LAN領域からデータを読み出し、フロー制御部８にデータを出力する。フロー制御が必要な状態であれば、無線側へフロー制御要求を出力し、To LAN 領域への書込みを停止させる。To LAN領域の使用量が閾値を下回ったら、無線方向へフロー制御停止要求を行い、再びTo LAN領域へのデータ書込みを再開する。Port１は、フレーム制御部８からの受信フレームを広帯域網側の端末へ出力する。
【００１５】
上記のフロー制御回路では、どのPort１から、どのようなPriorityのデータが入力されるか分からないために、Priorityによらず、いずれか一つでもバッファ領域使用量の閾値を超えた場合は全てのPort１のフロー制御を行っている。これによって、低いPriorityのフレーム廃棄を抑制できるが、フロー制御の必要のない高いPriorityのデータにまでフロー制御の影響があり、遅延が許されないデータ等で通信品質を満足できないという問題が生じる場合がある。
【００１６】
このような問題点を解消するため、複数の個別チャネル側からのデータを多重化する共通チャネル側で個別チャネル毎にQoSクラスを設定して、個別チャネル毎にQoSにしたがって優先度（最高保証型、最低保障型、最前努力型等）の識別を行い、共通チャネル側の送出間隔を超えたデータを蓄積するバッファの使用量が閾値を超えると、優先度が低い個別チャネルのデータ伝送に対して制限をかけるようにした技術が公開されている。
【００１７】
また、IEEE 802.3x方式のPauseフレームを用いたフロー制御により、Pauseフレームの拡張領域を用い、制御対象のトラフィックを指定した拡張Pauseフレームを、通信システムを構成する各ネットワーク機器に配信し、拡張Pauseフレームにより指定されたトラフィックに対して、拡張Pauseフレームによる指定に従って送信を拒否又は許可するトラフィック制御を行うようにした技術も公開されている。
【００１８】
しかし、これら何れの技術もQoSの設定が固定化されているため、広帯域網から狭帯域網を介する伝送効率を改善できず、QoSを満足できない状態が顕著になるという欠点がある。
【００１９】
なお、Port番号に基づくデータ転送制御ではないが、MACテーブルとプライオリティテーブル情報に基づいて、宛先ノードとソースノードと使用キューを対応付けたキュー使用状態テーブルを設けて、キューの使用状況を判断してタグ割りあて処理を実行するデータ通信システムにおいて、キュー使用状態テーブルはネットワーク状況の監視情報または、自己が割り当てたタグ情報に基づいて逐次更新される、という技術も公開されている。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開2002-314593号公報
【特許文献２】特開2006-050361号公報
【特許文献３】特開2003-244148号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
発明が解決しようとする問題点は、データの伝送効率改善と通信品質確保との両立を維持し得るフロー制御を行うことができない点である。
【課題を解決するための手段】
【００２２】
本発明は、受信フレームのPriorityと流量に適応して各Portの優先度を決定し、かつ各Portの優先度を一定時間毎に再設定することを最も主要な特徴とする。
【発明の効果】
【００２３】
本発明のフロー制御回路およびフロー制御方法は、各Portで受信するフレームのPriority毎のデータ受信回数を計数し、各Portの計数結果から、Priorityの高いフレームをより多く受信しているPortが、より優先的にフレームを送信できるように優先度を設定し、更に、Port毎のデータ受信回数を一定時間毎にリセットすることにより優先度を再設定するため、広帯域網から狭帯域網を介する伝送の効率を改善できずQoSを満足できない状態を短時間に抑止することができるという利点がある。
【００２４】
なお、Port毎に優先度を設定するため、データ格納先であり送信優先順を示すQoSクラスのバッファ領域とPortとを１対１に対応させるため、あるQoSクラスのバッファ領域が受信フレームで溢れそうになったとしても、そのバッファ領域に対応しているPortにのみ、フロー制御を行うことが可能となるので、フロー制御の必要のない高い優先度のデータにまでフロー制御を及ぼし、遅延が許されないデータ等の通信品質を満足できなくする、という問題を回避することができるのは勿論のことである。
【図面の簡単な説明】
【００２５】
【図１】本発明のデータフロー制御回路の実施例１を示すブロック図である。
【図２】各Port１の優先度設定を説明するための第１の例を示す図である。
【図３】各Port１の優先度設定を説明するための第２の例を示す図である。
【図４】各Port１の優先度設定を説明するための第３の例を示す図である。
【図５】クラス判定の通知前後における各Port１の優先度を例示する図である。
【図６】本発明のデータフロー制御動作を示すフローチャートである。
【図７】従来のデータフロー制御回路を例示するブロック図である。
【図８】MACフレーム（IEEE802.1p方式）の構成図である。
【発明を実施するための形態】
【００２６】
データの伝送効率改善と通信品質確保との両立を維持するという目的を、Port毎に優先度を設定してバッファ領域とPortとを１対１に対応させ、Port個別にフロー制御を行なうとともに、この対応を可変にすることによって実現した。
【実施例１】
【００２７】
図１は本発明のデータフロー制御回路の実施例１を示す。同図中、同一構成部分には同一符号を付してある。図１を参照すると、このフロー制御回路は、図７に示した従来のフロー制御回路におけるQoSマッピング部３を削除して、Port１と１対１対応にPriority抽出部９および全てのPort１共通にクラス判定部１１を付加し、これに関連して図７におけるバッファ制御部４の機能を変更してバッファ制御部１０とした。他の構成要素であるPort１，フレーム解析部２，バッファ５，出力キュー６，フレーム送受信部７およびフロー制御部８の機能は略同じであるため、重複した説明は極力割愛する。
【００２８】
先ず、本発明の主要な特徴部分について説明する。Priority抽出部９は、受信フレームのPriorityを抽出し、Priority毎のデータ受信回数を測定する。例えばPriority0はa回、Priority1はb回、・・・、Priority7はh回というように測定する。また、下記のようにクラス判定部１１からPriorityデータ受信回数のリセット信号を受信した場合には、Priorityデータ受信回数を0に戻す機能をもつ。
【００２９】
クラス判定部１１はQoSマッピング機能をもつ。QoSマッピング機能とは、受信フレームのPriority毎のデータ受信回数に応じて装置内部のQoSクラスを割り当てることにより、Port１に優先度を設定する機能である。
【００３０】
クラス判定部１１は各Port１のPriority抽出部９から、一定時間毎にPriority毎のデータ受信回数を読み出し、各Port１の優先度を決定する。優先度の決定方法は、「送信優先度の最も高い受信フレームを一定時間の間に検出した回数の順にPort１の優先度を高くする。送信優先度の最も高い受信フレームのデータ受信回数が等しいPort１の場合は、次に送信優先度の高い受信フレームのデータ受信回数で決める」というものである。送信優先度、つまりPriorityとQoSクラスは必ずしも１対１対応ではないので、QoSクラスの割当てに際してデータ受信回数を参照すべきPriorityのグループを予めクラス判定部１１に設定しておき、高いPriorityのグループの順に参照して優先度の高い順にPort１を決定していく。
【００３１】
例えば、Port１が4個（Port1-1〜1-4）、QoSクラスも4個（QoSクラス0〜3）の場合で説明する。優先度順はQoSクラス0＞QoSクラス1＞QoSクラス2＞QoSクラス3とし、先ず、Priority6と7を検出した回数を合計し、その合計した数が最も大きいPort1-1がQoSクラス0に割り当てられる。つまり、Priority6と7のデータ受信回数の合計が、Port1-1で100回、Port1-2で80回、Port1-3で50回、Port1-4で20回とすると、Port1-1がQoSクラス0、Port1-2がQoSクラス1、Port1-3がQoSクラス2、Port1-4がQoSクラス3という割当てとなり、Port１の優先度はPort1-1＞Port1-2＞Port1-3＞Port1-4となる。
【００３２】
Priority6と7のデータ受信回数の合計が等しいPort１が存在した場合は、次に優先度の高いPriority4と5のデータ受信回数の合計で比較し、それでもデータ受信回数が等しい場合は次に優先度の高いPriorityを比較するというようにして、Port１の優先度を決定する。Priority6と７のデータ受信回数の合計からPriority0と1のデータ受信回数の合計までの全てが等しいPortが存在した場合は、Port番号の小さい方の優先度を高くする。例えば、Port1-1とPort1-2でPriority6と７のデータ受信回数の合計から比較していき、Priority4と5、Priority2と3およびPriority0と1の4段階で比較しても全く差がない場合は、Port1-1とPort1-2でPort番号の小さいPort１に対して優先度を高く設定する。
【００３３】
クラス判定部１１は、Port１の優先度が決定したら、その結果をバッファ制御部１０へ通知する。また、Priority抽出部９に対してはデータ受信回数の読出しと同時にリセット信号を送信する。Port優先度の決定およびバッファ制御１０への通知は一定時間毎に行われる。
【００３４】
バッファ制御部１０は、クラス判定部１１からのPort１の優先度の結果を受けて、各Port１からの受信フレームをQoSクラス毎の領域に格納していく。Port１の優先度がPort1-1＞Port1-2＞Port1-3＞Port1-4という結果の場合は、Port1-4からの受信フレームはQoSクラス3に、Port1-3からの受信フレームはQoSクラス2に、Port1-2からの受信フレームはQoSクラス1に、Port1-1からの受信フレームはQoSクラス0に格納する。
【００３５】
また、バッファ制御部１０は、バッファ容量監視機能を具備し、QoSクラス毎にバッファ使用量がある閾値を超えると、閾値を超えたQoSクラスを判定し、そのQoSクラスに設定されているPort１のフロー制御部８にフロー制御要求を出す。例えば、QoSクラス3のバッファ使用量が閾値を超えると、Port1-4のフロー制御部８のみにフロー制御要求を出す。各領域のバッファ容量を優先度の高さに応じてQoSクラス0＞QoSクラス1＞QoSクラス2＞QoSクラス3となるように割り当てることで、フロー制御発生度合いが変わることになる。結果として、Poｒｔ1-1毎の優先度がPort1-1＞Port1-2＞Port1-3＞Port1-4の順となる。
【００３６】
上記各部の作用により、各Port１に流れる受信フレームの優先度と流量に適応して一定時間毎にPort１の優先度を再設定することができる。さらに、Port１と各QoSクラスのバッファ領域を１対１に対応させることによりPort１単位でフロー制御を実施することが可能となる。その結果、他の優先度のPort１は必要のないフロー制御を受けなくなり、伝送効率を改善できる。
【００３７】
次に、図７に示した従来例との重複を厭わず本フロー制御回路について全般的に説明する。図１において、フレーム解析部２はPort１とPriority抽出部９とバッファ制御部１０に接続され、Port１からの受信フレーム（図８参照）を、宛先アドレスや長さ/タイプフィールドによりフレーム種別を解析し、フレームフィルタリング（フレームの透過/廃棄の決定）を行う。宛先アドレスは、フレームの送信先を指定し、12-34-56-78-9A-BCというように6オクテット（1オクテットは8bit）を16進数で表記する。
【００３８】
狭帯域網（無線）行きの受信フレームはPriority抽出部９とバッファ制御部１０へ送付する。しかし、特別な宛先アドレス「01-80-C2-00-00-01」のフレームは、Pauseフレームといい、これを受信した相手からの送信を待たせることができる。この宛先アドレスのフレームは他装置に送信する必要性が無いことから、フレーム解析部２にて廃棄をするというようにフィルタリング機能も持つ。
【００３９】
また、長さ/タイプフィールドは、データフィールドの長さやデータフィールドに格納する上位層プロトコルを示すIDを0x0800というように2オクテットを16進数で表記する。0xとは後に続く数字が16進数であることを示す。例えば、長さ/タイプフィールドが0x0800の場合はそのフレームがIPv4フレームであると認識する。また、長さ/タイプフィールドが0x86DDの場合はIPv6フレームとなる。
【００４０】
Priority抽出部９はフレーム解析部２とクラス判定部１１に接続され、フレーム解析部２から送付されてくる受信フレームからPriorityを検出し、Priorityごとのデータ受信回数を測定する。また、クラス判定部１１からのリセット信号を受信すると、Priorityデータ受信回数をリセットする機能をもつ。
【００４１】
Priorityの検出は受信フレームのPriorityを示す部分を読み出すことで行うが、QoSの制御方法によってフレーム内のPriorityを示す部分は異なる。QoSの制御方法にはType of Service（以下、ToS）やDifferentiated Services Code Point（以下、DSCP）等がある。ToSはIPv4フレームのヘッダー中に含まれる8bitの部分で、Priorityを示す部分はその中の3bitであり、0〜7の8段階の優先順位付けが可能である。DSCPではPriorityを示す部分が6bitに拡張されており、0〜63の64段階の優先順位付けが可能である。
【００４２】
Priority抽出部９はPriority毎のデータ受信回数を計測し、データ受信回数をリセットする機能を持つことが特徴である。各Portに流れるフレームのPriority毎のデータ受信回数を計測することで、どのPortがPriorityの高いデータを送信しようとしているかが分かる。また、常に特定のPortがPriorityの高いデータを送信しているとは限らず、ある時間毎に区切るとPriorityの高いデータを送信しようとしているPort１は変化することもあるため、一定時間毎にデータ受信回数をリセットする機能はQoS向上のための本特許の重要な機能である。
【００４３】
クラス判定部１１はPriority抽出部９とバッファ制御部１０に接続され、一定時間毎に各Port１のPriority抽出部９からPriority毎のデータ受信回数を読み出し、データ受信回数を比較してPort１の優先度を決定する機能と、Priority抽出部９のデータ受信回数をリセットする信号（リセット信号）を出力する機能をもつ。
【００４４】
いま、QoSクラスの割当てに際してデータ受信回数を参照すべきPriorityのグループがPriority6と7、Priority4と5、Priority2と3、Priority0と1という設定になっていたとする。しかし、この例に限られず、例えば、Priority7がQoSクラス0、Priority4、5、6がQoSクラス1、Priority1、2、3がQoSクラス2、Priority0がQoSクラス3というように、必ずしもPriorityを均等に割り当てる必要はない。この場合のPortの優先度決定方法は、まずPriority7から降順にデータ受信回数が多いものから昇順にQoSクラスを割り当てる。Priority7のデータ受信回数の等しいPort１が存在した場合は、Priority4、5、6のデータ受信回数の合計で比較する、というようにQoSクラスに割り当てられたPriorityを一つの単位としてデータ受信回数の合計を比較する。
【００４５】
Priority抽出部９がPrirority0〜7の検出された回数をPriority毎に計数した結果を、クラス判定部１１が読み出してデータ受信回数の合計が多いPort１から順にQoSクラスを割り当て、その割当て結果をバッファ制御部１０へ通知する。
【００４６】
Priority抽出部９におけるデータ受信回数をリセットするための一定時間は、本データフロー制御回路が含まれる装置内の固定値に限らず、例えば、装置内部のCPUや装置外部から設定できるようにしてもよい。このリセットは、クラス判定部１１が、Priority抽出部９からPriority毎のデータ受信回数を読み出す時にリセット信号を送信し、データ受信回数をリセットさせることにより行われる。
【００４７】
クラス判定部１１が一定時間毎に各Port１対応のPriority抽出部９からPriority毎のデータ受信回数を読み出し、データ受信回数を比較してPort１の優先度を決定する機能は、Port１とデータを格納するバッファ５のQoSクラス対応の領域を１対１に関連付けるための本特許の重要な機能である。この機能により、ある特定のQoSクラスの使用量が閾値を超えたためフロー制御要求を送信しなければならない場合においても、QoSクラス対応のバッファ５の領域にデータを入力するPort１が分かるので、そのPort１にのみフロー制御要求を送信すればよい。その結果、関係のない他のPort１は送信が停止されることがなくなる。
【００４８】
バッファ制御部１０はフレーム解析部２とバッファ５と出力キュー６とフロー制御部８とクラス判定部１１に接続され、フレーム解析部２から受信フレームを受け取り、クラス判定部１１からのPort１の優先度決定結果により、バッファ５のQoSクラス領域毎に一旦格納する機能をもつ。例えば、Port１の優先度決定結果により、Port1-1がQoSクラス0、Port1-2がQoSクラス1、Port1-3がQoSクラス2、Port1-4がQoSクラス3に設定されたとすると、Port1-1からの受信フレームはQoSクラス0のバッファ領域に、Port1-2からの受信フレームはQoSクラス1のバッファ領域に、Port1-3はQoSクラス2のバッファ領域に、Port1-4からの受信フレームはQoSクラス3のバッファ領域に格納する。
【００４９】
また、バッファ制御部１０はバッファ５のバッファ容量監視機能をクラス毎に対応するバッファ領域分だけ持ち、個々のバッファ領域の使用量がフロー制御開始の閾値を超えた場合には、閾値を超えたQoSクラスを検出し、該当クラスに設定されているPort１のフロー制御部８へフロー制御要求を送信する。例えば、上述の例において、QoSクラス3のバッファ使用量が閾値を超えた場合には、Port1-4のフロー制御部８へフロー制御要求を送信する。
【００５０】
バッファ５はバッファ制御部１０に接続され、QoSクラスやフレームの送信方向により格納領域が分割されている。バッファ５におけるQoSクラス0〜3対応領域は、各Port１からの受信フレームをPort１の優先度に従って一時的に格納し、バッファ５におけるTo LAN対応領域は狭帯域網から広帯域網への送信フレームを格納する。各QoSクラス0〜3クラス対応領域のバッファ容量は可変であり、優先度が高いものほど優先的に狭帯域網へ伝送できるように容量を大きくとっている。バッファ制御部１０から送信要求がある場合には、対応する領域からフレームの読出しが行われる。
【００５１】
フレーム送受信部７は、バッファ制御部１０と出力キュー６に接続され、出力キュー６からのフレームを狭帯域網伝送用フレームに変換して送信する。また、狭帯域側からの受信フレームに対しては、広帯域網伝送用フレームに変換してバッファ制御部１０へ送付する。例えば、広帯域網をLAN網、狭帯域網を無線伝送網とした場合には、LANフレームと無線フレームとの間で変換を行う。
【００５２】
フロー制御部８はバッファ制御部１０とPort１に接続され、バッファ制御部１０からフロー制御要求を受信した場合にフロー制御を対応するPort１に対して行う。
【００５３】
次に、本フロー制御回路の動作について説明する。受信フレームはIPv4フレーム、QoS制御方法はToSであるとし、Port１に対するQoSクラスの初期設定はPort1-1がQoSクラス0、Port1-2がQoSクラス1、Port1-3がQoSクラス2、Port1-4がQoSクラス3であるとする。各Port1-1〜1-4は同じ機能を有するため、Port１として説明するが、Port１によって処理が異なる部分についてはPort1-1〜1-4毎に記載する。
【００５４】
最初に、Port１と接続されている外部装置から何らかのフレーム（以下受信フレーム）が入力されてくると、受信フレームはフレーム解析部２へ送付される。フレーム解析部２では、受信フレームの宛先アドレスと長さ/タイプフィールドを参照し、受信フレームをどこへ送信すればよいか、どのようなフレームなのかを判断する。
【００５５】
この場合、受信フレームはIPv4のフレームであるため、長さ/タイプフィールドにはIPv4フレームを示す0x0800が設定されている。この0x0800を参照することによって、装置は受信フレームがIPv4フレームと認識して、特別な宛先アドレス以外のものはPriority抽出部９とバッファ制御部１０へ送信される。なお、長さ/タイプフィールドが0x86DDの場合はIPv6フレームとなる。
また、フレーム解析部２では、特別な宛先アドレスのフレームに対してフィルタリング機能を持つ。例えば、宛先アドレスが01-80-C2-00-00-01の場合、この宛先アドレスはPauseフレームを示すため、他装置に送信する必要性が無いことからフレーム解析部２にて廃棄をする。
【００５６】
Priority抽出部９では、フレーム解析部２から送付されてきた受信フレームについて、ここではQoS制御方法がToSなので優先度(Priority)を示す部分の3bit（0〜7）値をPriority値毎に検出し計測する。例えば、Port1-1〜1-4の全てのPriority抽出部９において、リセット信号を受けるまでの一定時間の間に合計１００個の受信フレームがあったとし、各Port１のPriority毎のデータ受信回数は図２のとおりりであるとする。計測されたPriority毎のデータ受信回数は、一定時間毎にクラス判定部１１に読み出されるとともに、クラス判定部１１からのリセット信号を受け、Priority毎の受信回数は0へとリセットされる。
【００５７】
クラス判定部１１は一定周期毎にPort1-1〜1-4のPriority抽出部9-1〜9-4からPriority毎の受信回数を読み出す機能、リセット信号をPort1-1〜1-4のPriority抽出部９へ送付する機能、読み出したPort1-1〜1-4のPriority毎の受信回数からPort1-1〜1-4の優先度を判定する機能をもつ。
【００５８】
クラス判定部１１は、Piority0〜5のデータ受信回数の合計に関わらず、Piority6と7のデータ受信回数の合計が大きいPort１からQoSクラス0〜3を順に割り当てていく。図２のようなデータ受信回数の結果の場合は、Priority6と7のデータ受信回数の合計がPort1-1>Port1-2>Port1-3>Port1-4となっていることから、Port1-1をQoSクラス0、Port1-2をQoSクラス1、Port1-3をQoSクラス2、Port1-4をQoSクラス3に割当て、割り当てた結果をバッファ制御部１０へ通知する。
【００５９】
次に、図３のようにPriority6と7のデータ受信回数の合計が等しいPortが存在する場合は、次に高いPriorityである4と5のデータ受信回数の合計で比較し、それでも等しい場合は、Priorityである2と3のデータ受信回数の合計でというように、Priority値の高い方のデータ受信回数で比較していく。図３のようなデータ受信回数の結果の場合は、Priority6と7のデータ受信回数の合計がPort1-1=Port1-2>Port1-3>Port1-4となっているため、Port1-3はQoSクラス2、Port1-4はQoSクラス3に決定する。Port1-1とPort1-2はPriority4と5のデータ受信回数の合計がPort1-2>Port1-1となっているため、Port1-2はQoSクラス0、Port1-1はQoSクラス1に割り当てられる。
【００６０】
さらに、図４のようなデータ受信回数の結果の場合は、Port1-1とPort1-2でPriority6と7のデータ受信回数の合計からPriority0と1のデータ受信回数の合計まで比較しても差がないため、最終的にPort番号の小さいPort1-1が優先され、Port1-1がQoSクラス0、Port1-2がQoSクラス1に割り当てられることとなる。
【００６１】
クラス判定部１１からバッファ制御１０への通知の前後で、図５のようにPort１に対するQoSクラスの割当てが変わり、この通知はクラス判定部１１が管理する一定時間毎に行なわれる。そのため、一定時間毎にPort１毎のQoSによる優先度が再設定される。よって、クラス判定部１１がPort１毎の優先度を更新する間にPort１に流れているフレームのPriority毎の流量に従って、次の周期のPort1-1の優先度が決定されることになる。
バッファ制御部１０はどのPort１からの受信フレームかによって、バッファ５各QoSクラス別の領域に受信フレームを格納する。
【００６２】
図５に示すように、クラス判定部１１からの通知を受ける前は、Port1-1からの受信フレームはQoSクラス0のバッファ領域に格納、Port1-2からの受信フレームはQoSクラス1のバッファ領域に、Port1-3からの受信フレームはQoSクラス2のバッファ領域に、Port1-4からの受信フレームはQoSクラス3のバッファ領域に格納される。つまり、各Port１の受信フレームは、通知前の設定に従ったQoSクラスのバッファ領域に格納される。通知を受けた後では、Port1-2からの受信フレームはQoSクラス0のバッファ領域に格納、Port1-1からの受信フレームはQoSクラス1のバッファ領域に、Port1-3からの受信フレームはQoSクラス2のバッファ領域に、Port1-4からの受信フレームはQoSクラス3のバッファ領域に格納されるようになる。
【００６３】
フレームをバッファ５に格納後、出力要求があった場合は、バッファ５から優先度ごとのデータを出力キュー６に出力する。また、バッファ５に格納する際、バッファ５に蓄積されたデータ容量がある閾値を上回っている場合は、該当QoSクラスに割り当てられたPort１に対するフロー制御要求をフロー制御部８に送信する。
【００６４】
図６は本発明におけるフロー制御方法のフローチャートである。各Port１がフレームを受信し（図６のステップS1）、フレーム解析部２へ送付する。フレーム解析部２では、受信フレームの宛先アドレスと長さ/タイプフィールドを参照し（ステップS2）、特殊なフレームの場合はフィルタリングを行うが、それ以外のフレームは、Priority抽出部９へ送付される。Priority抽出部９では、受信フレームのPriority毎のデータ受信回数を測定する（ステップS3）。
【００６５】
次に、クラス判定部１１が管理する一定時間が経過したかどうかを判断し（ステップS4）、一定時間経過している場合は、クラス判定部１１がPriority抽出部９からPriority毎のデータ受信回数を読み出し（ステップS5）、クラス判定部１１は読み出した結果をもとにしてPort1-1〜1-4をQoSクラス0〜3に割当てる（ステップS6）。さらに、割り当てた結果をバッファ制御部１０へ通知する（ステップS7）とともに、Priority抽出部９へリセット信号を送信しPriority毎のデータ受信回数をリセットする（ステップS8）。なお、クラス判定部１１が管理する一定時間を経過していない場合は上記ステップのS5〜S8は行わない。
【００６６】
Priority抽出部９から送付されたフレームをバッファ制御部１０で受信すると（ステップS9）、クラス判定部１１からの結果により各Port１に設定されたQoSクラスに対応したバッファ領域にフレームを格納する（ステップS10）。そして、バッファ制御部１０のバッファ容量監視機能により、各クラスのバッファ使用量がフロー制御開始の閾値を超えているかを監視する（ステップS11）。
【００６７】
いずれかのクラスのバッファ使用量が閾値を超えた場合（ステップS11でYes）は、バッファ制御部１０は閾値を超えたQoSクラスに対応したPriorityのフレームを多く送信しているPort1-1のフロー制御部８へフロー制御要求を行う（ステップS12）。例えば、Port1-3の送信フレームのPriorityデータ受信回数からQoSクラス3と設定されていた場合、QoSクラス3のバッファ使用量が閾値を超えた場合は、Port1-3のフロー制御部８にのみ、バッファ制御部１０がフロー制御要求を通知する。フロー制御要求中はTo LAN バッファ領域からのフレーム読出しを停止する（ステップS13）。フロー制御部８は、フロー制御要求を受信すると、フロー制御信号をPort1-3に送信する（ステップS14）。
【００６８】
その後、Port1-3からの送信フレームが抑制されたことでQoSクラス3のバッファ使用量が閾値を下回った場合は、再びフロー制御がSTARTからのステップS1,S2を経過し、バッファ使用量が設定閾値を下回ると（ステップS11でNo）、Port1-3のフロー制御部８にフロー解除要求を送信する（ステップS17）。フロー制御部８は、フロー解除要求を受信すると、フロー解除信号をPort1-3に送信し（ステップS18）、フロー制御の解除を行う（ステップS19）。
【００６９】
フロー制御OFFとなり通常状態となった場合には、バッファ５の各QoSクラスのバッファ使用量が閾値を下回り、フロー制御もOFF（S16でNo）となり、ステップS16からENDの経路を通る。
【００７０】
Port１に対してQoS割当ての更新がなく、フロー制御の必要がない場合では、START〜S4→S9〜S11→S16→ENDの経路を巡回する。また、Port１に対してQoS割当ての更新があり、フロー制御の必要がない場合では、START〜S11→S16→ENDの経路を通る。また、Port１に対してQoS割当ての更新がないが、フロー制御の必要がある場合では、START〜S4→S9〜S15→ENDの経路を通る。また、Port１に対してQoS割当ての更新があり、フロー制御の必要がある場合では、START〜S4〜S15→ENDの経路を通る。さらにバッファ使用量が閾値を下回った場合（S11）に、フロー制御ON（S15）状態ならS16〜S17〜S19→ENDの経路を通る。
【００７１】
本実施例によれば、Port毎に受信フレームのPriorityを検出し、Priority毎のデータ受信回数を元にQoSクラスを設定することで、バッファの格納領域も識別でき、特定のPort１に対してのみフロー制御を行うことが可能となる。
【００７２】
上記の動作説明では、フロー制御を１つのPort１向けに行っていたが、Priorityのデータ受信回数が同一の場合には、同一の２つのPort１に向けに制御することで、フロー制御ON状態を早々に解消させることも可能となる。また、特定の一つのPort１のみを絶対優先伝送させる場合には、その他のPort１を指定してフロー制御する設定も外部からできる。
【００７３】
また、本発明は上記の実施例に限定されるものではなく、Portが複数になったとしてもバッファの格納領域がクラスごとに分割できる範囲で適応することができるものである。
【実施例２】
【００７４】
上記の例のように、バッファ５における各領域の閾値を超えるとPauseフレームが生じて、該当Port1-1へのデータ送受信が制約される。このため、バッファ５の閾値を超える頻度を変更することで、Pauseフレームの発生頻度が変わり、フロー制御を最適化することが可能となる。
【００７５】
例えば、Priorityのデータ受信回数を計数する周期（リセット周期）を、広帯域網から狭帯域網への変換率に応じて変更することで実現できる。そのために、実施例２では、フレームのPriority毎のデータ受信回数をPort１毎に計数するための一定周期時間を、広帯域網から狭帯域網への変換率に応じて変更できる周期調整手段を備える。
【００７６】
上記の一定周期時間を短くすれば、Priority毎のデータ受信回数の判定結果が短時間に検出完了し、クラス判定時間が短縮できる。また、一定周期時間を長くすれば、Priority毎のデータ受信回数の判定結果が長くかかる。
【００７７】
変換率が小さければ(たとえば、100M帯域から10M帯域へ変換する0.1倍)、バッファ５へ格納されるデータも増えるため、クラス判定をより短時間に完了する必要がある。変換率が大きければ（たとえば、100M帯域から90M帯域へ変換する0.9倍）、バッファ５へ格納されるデータ量も減るため、バッファ５の使用に余裕が生じるため、クラス判定に要する時間も確保できる。
【００７８】
また、バッファ容量が大きければ、閾値を超える頻度も少なくなるため、上記Priorityデータ受信回数を計数する周期（リセット周期）も長く、クラス判定時間もより長く確保可能となる。よって、上記変換率や、バッファ量によって、リセット周期を調整することでフロー制御をより効果的に提供可能となる。バッファ容量が大きければ、Pauseフレームの発生頻度が低減できるため、外部にメモリを増設してバッファ５の容量を増やすこともある。この場合、上記Priority毎のデータ受信回数をPort１毎に計数するための一定周期時間を外部から変更できる手段を有する構成が有効となる。
【００７９】
上記の実施形態の一部又は前部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８０】
（付記１）広帯域網と狭帯域網の間に接続されたデータ通信装置におけるフロー制御回路において、前記広帯域網側に接続された複数の入出力ポートと、前記入出力ポートから入力するデータを一時保存するための前記入出力ポートと１対１対応の領域を有するバッファと、前記入出力ポートから入力するデータに含まれるPriority毎のデータ受信回数を計数する前記入出力ポートと１対１対応のPriority抽出部と、前記Priorityと前記バッファ領域との対応が予め設定され、所定時間毎に、前記Priority抽出部全てにおけるPriority毎のデータ受信回数を読み出して前記入出力ポートの優先度を決定するとともに、前記Priority抽出部におけるPriority毎のデータ受信回数をリセットするクラス判定部と、前記決定された優先度に従って前記入出力ポートを前記バッファ領域に割り当てて前記入出力ポートで受信するデータを当該バッファ領域に入力するとともに、前記バッファ領域の使用量を監視するバッファ制御部と、前記監視により、前記バッファ領域の使用量が予め設定された閾値を超えた場合に当該入出力ポートの前記広帯域網における接続先へ送信停止あるいは速度制限をかける前記入出力ポートと１対１対応のフロー制御部とを有することを特徴とするフロー制御回路。
【００８１】
（付記２）前記クラス判定部は、QoS(Quality of Service)クラスを介して前記Priorityと前記バッファ領域とが対応されることを特徴とする付記１に記載のフロー制御回路。
【００８２】
（付記３）前記バッファ領域の容量は、前記優先度の高いほど大きくしたことを特徴とする付記１〜２に記載のフロー制御回路。
【００８３】
（付記４）
複数の前記Priorityと１つの前記バッファ領域とを対応させることを特徴とする付記１〜３に記載のフロー制御回路。
【００８４】
（付記５）前記入出力ポートの優先度は、高位のPriorityから降順に、そのPriorityのデータを検出した回数の順に高くし、データ受信回数が等しい入出力ポートの場合は、次に低いPriorityのデータのデータ受信回数で決めることを特徴とする付記１〜４に記載のフロー制御回路。
【００８５】
（付記６）前記広帯域網から前記狭帯域網への変換率に応じて前記所定時間を設定することを特徴とする付記１〜５に記載のフロー制御回路。
【００８６】
（付記７）前記バッファ領域の容量と前記閾値に応じて前記所定時間を設定することを特徴とする付記１〜５に記載のフロー制御回路。
【００８７】
（付記８）広帯域網と狭帯域網の間に接続されたデータ通信装置におけるフロー制御方法において、前記広帯域網に接続された複数の入出力ポートから入力するデータを一時保存するための前記入出力ポートと同数の領域を有するバッファを備え、前記入出力ポートから入力するデータのPriorityと前記バッファ領域との対応を予め設定するステップと、前記入出力ポートから入力するデータのPriority毎のデータ受信回数を前記入出力ポートと１対１対応で計数するステップと、所定時間毎に、全ての前記入出力ポートについて前記Priority毎のデータ受信回数を読み出して前記入出力ポートの優先度を決定するとともに前記Priority毎のデータ受信回数をリセットするステップと、前記決定された優先度に従って前記入出力ポートを前記バッファ領域に割り当てて前記入出力ポートで受信するデータを当該バッファ領域に入力するとともに、バッファ領域の使用量を監視するステップと、前記監視により、バッファ領域の使用量が予め設定された閾値を超えた場合に当該入出力ポートの広帯域網接続先へ送信停止あるいは速度制限をかけるステップを有することを特徴とするフロー制御方法。
【００８８】
（付記９）前記入出力ポートの優先度は、高位のPriorityから降順に、そのPriorityのデータを検出した回数の順に高くし、データ受信回数が等しい入出力ポートの場合は、次に低いPriorityのデータのデータ受信回数で決定することを特徴とする付記８に記載のフロー制御方法。
【００８９】
（付記１０）付記１〜７に記載のフロー制御装置を有するデータ通信装置。
【００９０】
（付記１１）付記１〜７に記載のフロー制御装置を有するデータ通信システム。
【００９１】
（付記１２）付記８〜９に記載のフロー制御方法を有するデータ通信装置。
【００９２】
（付記１３）付記８〜９に記載のフロー制御方法を有するデータ通信システム。
【符号の説明】
【００９３】
１      LAN Port
２      フレーム解析部
３      QoSマッピング部
４      バッファ制御部
５      バッファ
６      出力キュー
７      フレーム送受信部
８      フロー制御部
９      Priority抽出部
１０    バッファ制御部
１１    クラス判定部
【図１】
2011182209.tif 000003
【図２】
2011182209.tif 000004
【図３】
2011182209.tif 000005
【図４】
2011182209.tif 000006
【図５】
2011182209.tif 000007
【図６】
2011182209.tif 000008
【図７】
2011182209.tif 000009
【図８】
2011182209.tif 000010