(57)【特許請求の範囲】
【請求項１】
信号を送受信する通信装置において、
前記通信装置にデータを送信する複数の対向装置に対して、前記通信装置に対するデータの送信を一時的に停止するように要求する送信停止信号を送信する送信停止信号送信部と、
前記対向装置ごとに規定された保証速度に基づいて、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度以上の速度となるように、前記送信停止信号の送信動作を送信先の前記対向装置ごとに制御する送信制御部と、
を有し、
前記送信制御部は、前記各対向装置が前記通信装置へのデータの送信を停止させる期間を示す停止期間情報と、前記各対向装置が前記通信装置へのデータ送信の停止動作を開始する間隔を示す停止間隔情報とを、前記各対向装置に対応する前記保証速度と所定の上限速度とに基づいて前記対向装置ごとに計算して、前記送信停止信号送信部に指定し、
前記送信停止信号送信部は、前記対向装置ごとに指定された前記停止期間情報および前記停止間隔情報に基づいて、前記送信停止信号を送信する、
ことを特徴とする通信装置。
【請求項２】
複数の前記対向装置から送信されたデータを一時的に保持するバッファと、
前記バッファに保持されたデータのデータ量が所定のしきい値に達したか否かを検出するデータ量検出部と、
をさらに有し、
前記送信停止信号送信部は、前記バッファのデータ量が前記しきい値以上となった場合に、前記送信停止信号を送信することを特徴とする請求項１記載の通信装置。
【請求項３】
前記送信制御部は、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度となるように、前記送信停止信号の送信動作を制御することを特徴とする請求項１または２記載の通信装置。
【請求項４】
前記送信制御部は、前記通信装置に対する前記各対向装置からのデータ送信速度が、前記各対向装置に対応する前記保証速度に対して速度加算値を加算した速度となるように、前記送信停止信号の送信動作を制御し、
前記速度加算値は、すべての前記対向装置に対応する前記保証速度を加算した加算値を前記所定の上限速度から減算した減算値を、前記対向装置の数で除算した値であることを特徴とする請求項１または２記載の通信装置。
【請求項５】
前記送信制御部は、前記通信装置に対する前記各対向装置からのデータ送信速度が、前記各対向装置に対応する前記保証速度に対して前記対向装置ごとに決められた速度加算値を加算した速度となるように、前記送信停止信号の送信動作を制御し、
一の前記対向装置に対応する前記速度加算値は、前記各対向装置の前記保証速度をすべて加算した加算値を前記所定の上限速度から減算した減算値と、当該対向装置に対応する前記保証速度の前記加算値に対する割合とを乗算した値であることを特徴とする請求項１または２記載の通信装置。
【請求項６】
前記各対向装置から前記通信装置に対するデータ入力速度を測定する速度測定部をさらに有し、
前記送信制御部は、前記対向装置のうち、前記データ入力速度の測定値が前記保証速度より大きい速度超過対向装置を認識し、前記通信装置に対する前記各速度超過対向装置からのデータ送信速度が、前記各速度超過対向装置に対応する前記保証速度に対して前記速度超過対向装置ごとに決められた速度加算値を加算した速度となるように、前記速度超過対応装置に対する前記送信停止信号の送信動作を制御し、
一の前記速度超過対向装置に対応する前記速度加算値は、当該速度超過対向装置に対応する前記保証速度から当該速度超過対向装置からの前記データ入力速度の測定値を減算した第１の減算値を、すべての前記速度超過対向装置に対応する前記第１の減算値を加算した第１の加算値で除算した除算値を算出するとともに、前記除算値と、前記各対向装置の前記保証速度をすべて加算した第２の加算値を前記所定の上限速度から減算した第２の減算値とを乗算することで求められることを特徴とする請求項１または２記載の通信装置。
【請求項７】
前記送信停止信号は、送信先の前記対向装置にデータ送信を停止させる期間を示す情報が挿入される期間情報領域を含み、
前記送信停止信号送信部は、前記期間情報領域に前記停止期間情報を挿入した前記送信停止信号を、前記停止間隔情報が示す間隔で送信することを特徴とする請求項１記載の通信装置。
【請求項８】
前記対向装置から送信されたデータから、当該対向装置に規定された前記保証速度を抽出する保証速度抽出部をさらに有することを特徴とする請求項１〜７のいずれか１項に記載の通信装置。
【請求項９】
信号を送受信する通信装置における通信制御方法であって、
前記通信装置にデータを送信する複数の対向装置ごとに規定された保証速度に基づいて、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度以上の速度となるように、前記各対向装置に対応する制御情報を出力し、
前記制御情報に基づいて、前記各対向装置に対して、前記通信装置に対するデータの送信を一時的に停止するように要求する送信停止信号を送信する、
処理を含み、
前記制御情報の出力では、前記各対向装置が前記通信装置へのデータの送信を停止させる期間を示す停止期間情報と、前記各対向装置が前記通信装置へのデータ送信の停止動作を開始する間隔を示す停止間隔情報とを、前記各対向装置に対応する前記保証速度と所定の上限速度とに基づいて前記対向装置ごとに計算し、前記制御情報として前記送信停止信号送信部に指定し、
前記送信停止信号の送信では、前記対向装置ごとに指定された前記停止期間情報および前記停止間隔情報に基づいて、前記送信停止信号を送信する、
ことを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号を送受信する通信装置、およびその通信装置における通信制御方法に関する。
【背景技術】
【０００２】
イーサネット（Ethernet，登録商標）は、最も代表的なＬＡＮ（Local Area Network）の規格であり、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．３などによって標準化されている。イーサネットでは、フロー制御用のフレームとしてポーズフレーム（Pause Frame）が定義されており、このポーズフレームをデータの送信側装置に送信することで、データの送信を一定期間止めるように要求することができるようになっている。
【０００３】
図１６は、ポーズフレームを用いたフロー制御の概要を説明する図である。
図１６に示す通信ノードＮ１は、インタフェース（Ｉ／Ｆ）８１０，８２０，８３０、スイッチ（Ｓ／Ｗ）８４０および制御部８５０を有している。インタフェース８１０，８２０，８３０は、他の通信ノードとイーサネットを通じてデータを送受信する。図１６の例では、インタフェース８２０は通信ノードＮ２と接続し、インタフェース８３０は通信ノードＮ３と接続する。また、インタフェース８１０は、図示しない他の通信ノードと接続するものとする。なお、図１６では、通信ノード間の最大伝送速度は１Ｇｂｐｓであるものとする。スイッチ８４０は、インタフェース８１０，８２０，８３０のそれぞれの間の接続を切り替える。制御部８５０は、主として、受信データの宛先に応じてスイッチ８４０の接続動作を切り替える。
【０００４】
ここで、例えば、通信ノードＮ２から通信ノードＮ１への送信データの伝送速度と、通信ノードＮ３から通信ノードＮ１への送信データの伝送速度との合計が１Ｇｐｂｓを超える場合、通信ノードＮ１では輻輳が発生する。通信ノードＮ１は、輻輳の発生を検出すると、通信ノードＮ２，Ｎ３に対してポーズフレームを送信する。
【０００５】
ポーズフレームには、データの送信を停止する停止時間を格納するフィールドが定義されている。ポーズフレームを受信した通信ノードＮ２，Ｎ３は、ポーズフレームに格納された停止時間が経過するまで、通信ノードＮ１へのデータの送信を停止する。これにより、通信ノードＮ２，Ｎ３から通信ノードＮ１へのトラフィックが制限される。
【０００６】
また、通信ノードでは、内部バッファのデータ量に基づいて輻輳の発生が検出されることが多い。例えば、図１６の通信ノードＮ１では、インタフェース８１０が備える出力バッファ８１１のデータ量を、制御部８５０が監視する。そして、制御部８５０は、出力バッファ８１１のデータ量が所定のしきい値以上となったとき、輻輳が発生したと判定する。
【０００７】
内部バッファのデータ量に基づいてポーズフレームを送信する方法としては、一般的に、次の２種類の方法がある。
図１７は、出力バッファのデータ量に基づくフロー制御手順の一例を説明する図である。
【０００８】
通信ノードＮ１は、例えば、出力バッファ８１１のデータ量がしきい値Ｔｈ１以上であるか否かを監視する。そして、出力バッファ８１１のデータ量がしきい値Ｔｈ１以上になったとき、通信ノードＮ１は、データ送信元の通信ノードに対してポーズフレームを出力する。例えば、出力バッファ８１１から送信先の通信ノードへのデータ伝送速度の上限をＸ（ｂｉｔ／ｓｅｃ）、出力バッファ８１１に格納されたデータ量をＹ（ｂｉｔ）としたとき、通信ノードＮ１は、ポーズフレームに格納する停止時間をＹ／Ｘ（ｓｅｃ）以下の値とする。また、通信ノードＮ１は、このようなポーズフレームを１回送信した後、Ｙ／Ｘ（ｓｅｃ）が経過したとき、出力バッファ８１１のデータ量がしきい値Ｔｈ１以上であれば、再度ポーズフレームを送信し、しきい値Ｔｈ１未満であれば、ポーズフレームの送信を中止する。
【０００９】
図１８は、出力バッファのデータ量に基づくフロー制御手順の別の例を説明する図である。
図１８の例では、出力バッファ８１１のデータ量の判別を２つのしきい値Ｔｈ１，Ｔｈ２（ただし、Ｔｈ１＞Ｔｈ２）に基づいて行う。通信ノードＮ１は、出力バッファ８１１のデータ量がしきい値Ｔｈ１以上になったとき、データ送信元の通信ノードに対してポーズフレームを出力する。このとき、ポーズフレームには、停止時間として、規定された最大値を格納する。また、通信ノードＮ１は、このようなポーズフレームを１回送信した後、停止時間の最大値の時間が経過したとき、出力バッファ８１１のデータ量がしきい値Ｔｈ２以上であれば、再度ポーズフレームを送信する。一方、しきい値Ｔｈ２未満であれば、停止時間として、規定された最小値（通常は０）を格納したポーズフレームを、データ送信元の通信ノードごとに出力する。停止時間として最小値が格納されたポーズフレームを受信した通信ノードは、通信ノードＮ１に対するデータの送信を開始する。
【００１０】
ところで、例えば、ＶＰＮ（Virtual Private Network）サービスなどに用いられるスイッチやルータなどの通信装置には、送信速度を保証する機能を備えるものがある。以下、保証された送信速度を“保証速度”と呼ぶ。このような通信装置を含むネットワークにおいて、ある通信ノードで内部輻輳が発生すると、この通信ノードからデータの送信元ノードに対してポーズフレームが送信されることでフロー制御が行われる。このとき、輻輳が発生した通信ノードは、前述のような内部バッファのデータ量に応じたフロー制御を行うことから、送信元ノードの送信速度が保証速度より低くなる可能性がある。
【００１１】
図１９は、送信元ノードの送信速度が保証速度を下回る場合の動作例を示す図である。
図１９の例では、通信ノードＮ２で規定された保証速度が５００Ｍｂｐｓであり、通信ノードＮ３で規定された保証速度が２５０Ｍｂｐｓである。ここで、通信ノードＮ２が、通信ノードＮ１に対して、保証速度を超える実伝送速度でデータを送信し、通信ノードＮ３も、通信ノードＮ１に対して、保証速度を超える実伝送速度でデータを送信したものとする。例えば、通信ノードＮ２から通信ノードＮ１への実伝送速度が８００Ｍｂｐｓとなり、通信ノードＮ３から通信ノードＮ１への実伝送速度が４００Ｍｂｐｓとなったとする。これにより、通信ノードＮ１に対する合計の伝送速度が、インタフェース８１０からの送信速度の上限である１Ｇｂｐｓを超えることから、通信ノードＮ１で輻輳が発生する。
【００１２】
通信ノードＮ１の制御部８５０は、前述のように、出力バッファ８１１のデータ量が所定のしきい値以上となった場合に、輻輳が発生したと判定する。この判定に基づき、通信ノードＮ１は、通信ノードＮ２，Ｎ３に対してポーズフレームを送信し、データの送信を一時的に停止させる。すなわち、通信ノードＮ１は、通信ノードＮ２，Ｎ３での保証速度に関係なくフロー制御を行うため、通信ノードＮ２，Ｎ３からのデータの伝送速度は、保証速度より低くなる可能性がある。
【００１３】
なお、ポーズフレームを用いてフロー制御を行う装置としては、次のようなものがある。例えば、出力ポートにおいて輻輳が発生すると、割当流量を超えた入力元ポートに対してポーズパケットを送信するスイッチングハブがある。また、別の例として、受信パケット量が第１のしきい値を超えると、上位側の対向装置にポーズパケットを送信し、受信パケット量がさらに大きい第２のしきい値を超えると、自装置のパケット送出を停止する伝送装置がある。さらに別の例として、複数の局装置に対してポーズフレームを送信することで、これらの局装置におけるデータ送信量を優先度情報に応じて決定する優先通信管理サーバがある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００２−２６１７６６号公報
【特許文献２】特開２００２−３５３９７９号公報
【特許文献３】特開２００４−７２１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上記のように、フロー制御の実行時には、データを送信する上流側の通信ノードからのデータ送信速度が、その通信ノードで規定された保証速度より低くなる可能性があることが問題となっていた。
【００１６】
本発明はこのような点に鑑みてなされたものであり、フロー制御対象の通信ノードからのデータ送信速度が過度に低下することを防止した通信装置および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、信号を送受信する通信装置が提供される。この通信装置は、前記通信装置にデータを送信する複数の対向装置に対して、前記通信装置に対するデータの送信を一時的に停止するように要求する送信停止信号を送信する送信停止信号送信部と、前記対向装置ごとに規定された保証速度に基づいて、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度以上の速度となるように、前記送信停止信号の送信動作を送信先の前記対向装置ごとに制御する送信制御部と、を有する。
【００１８】
また、上記目的を達成するために、上記の通信装置と同様の処理を行う通信制御方法が提供される。
【発明の効果】
【００１９】
上記の通信装置および通信制御方法によれば、対向装置からのデータ送信速度が過度に低下することを防止できる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施の形態に係る通信システムの構成を示す図である。
【図２】第２の実施の形態に係る通信システムの構成を示す図である。
【図３】通信装置の内部構成をより詳しく示す図である。
【図４】ポーズフレームの内容を示す図である。
【図５】第２の実施の形態において実行されるフロー制御を説明する図である。
【図６】ポーズフレームの出力処理手順を示すフローチャートである。
【図７】ポーズフレームの出力処理手順の別の例を示すフローチャートである。
【図８】第３の実施の形態において実行されるフロー制御を説明する図である。
【図９】第４の実施の形態において実行されるフロー制御を説明する図である。
【図１０】第５の実施の形態に係る通信装置の内部構成を示す図である。
【図１１】停止時間および停止間隔を計算する処理手順を示すフローチャートである。
【図１２】第５の実施の形態において実行されるフロー制御の例について説明する図である。
【図１３】ＬＬＤＰフレームの内容を示す図である。
【図１４】ＬＬＤＰフレームの受け渡し処理を説明する図である。
【図１５】第６の実施の形態に係る通信装置の内部構成を示す図である。
【図１６】ポーズフレームを用いたフロー制御の概要を説明する図である。
【図１７】出力バッファのデータ量に基づくフロー制御手順の一例を説明する図である。
【図１８】出力バッファのデータ量に基づくフロー制御手順の別の例を説明する図である。
【図１９】送信元ノードの送信速度が保証速度を下回る場合の動作例を示す図である。
【発明を実施するための形態】
【００２１】
以下、実施の形態を図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る通信システムの構成を示す図である。
【００２２】
図１に示す通信装置１は、複数の対向装置との間で信号を送受信する装置である。図１では、例として、２つの対向装置２，３を示している。また、通信装置１は、複数の対向装置に対して送信停止信号を送信することで、フロー制御を行う機能を有している。送信停止信号は、送信先の対向装置に対してデータの送信を停止するように要求する信号である。送信停止信号を受信した対向装置は、その送信停止信号に基づいて、通信装置１へのデータ送信動作を所定の時間停止する。例えば、送信停止信号は、送信先の対向装置にデータ送信を停止させる期間を示す停止期間情報を含む。この場合、送信停止信号を受信した対向装置は、送信停止信号に含まれる停止期間情報が示す期間、通信装置１へのデータ送信動作を停止する。
【００２３】
通信装置１は、送信停止信号送信部１１および送信制御部１２を有する。送信停止信号送信部１１は、通信装置１に対してデータを送信している対向装置に対して、前述の送信停止信号を送信する。なお、送信停止信号は、送信先の対向装置ごとに個別に送信される。送信制御部１２は、送信停止信号送信部１１による送信停止信号の送信動作を、送信先の対向装置ごとに制御する。
【００２４】
ここで、対向装置２，３から、通信装置１に対してそれぞれデータが送信された場合の送信制御部１２の処理について説明する。ただし、以下の処理は、３つ以上の対向装置から通信装置１に対してデータが送信される場合にも適用可能である。
【００２５】
対向装置２，３には、データ送信速度を保証する保証速度が、それぞれ個別に規定されている。このとき、送信制御部１２は、通信装置１に対する対向装置２，３からのデータ送信速度が、対向装置２，３にそれぞれ対応する保証速度以上の速度となるように、送信停止信号送信部１１における送信停止信号の送信動作を制御する。
【００２６】
例えば、送信制御部１２は、通信装置１に対する対向装置２，３からのデータ送信速度が、対向装置２，３にそれぞれ対応する保証速度となるように、送信停止信号の送信動作を制御する。
【００２７】
また、送信制御部１２は、通信装置１に対する対向装置２，３からのデータ送信速度が、対向装置２，３にそれぞれ対応する保証速度に対して所定の速度加算値を加算した速度となるように、送信停止信号の送信動作を制御してもよい。
【００２８】
ここで、対向装置２，３にそれぞれ対応する保証速度を加算した加算値を、所定の上限速度から減算した減算値を、速度差分値と呼ぶ。ただし、保証速度を加算した加算値は、上限速度以下になるものとする。この場合に、上記の速度加算値は、速度差分値を分割して対向装置２，３のそれぞれに割り当てた値とされる。例えば、速度加算値は、速度差分値を対向装置２，３の数で除算した値とされる。この場合、対向装置２，３のそれぞれには同一の速度加算値が割り当てられる。
【００２９】
なお、上記の上限速度は、例えば、通信装置１の管理者などにより任意に設定されればよい。例えば、通信装置１の処理能力や、その時点での処理負荷などに応じて設定される。また、例えば、通信装置１が、対向装置２，３から受信したデータを、それらの対向装置２，３とは別の送信側対向装置（図示せず）に対して転送する機能を有する場合には、上限速度は、通信装置１から送信側対向装置への最大データ伝送速度とされればよい。いずれの場合にも、速度差分値を分割した値を速度加算値として対向装置２，３に割り当てることにより、対向装置２，３からのデータ送信速度が必要以上に抑制されなくなる。
【００３０】
また、上記の速度加算値は、送信停止信号の送信先の対向装置２，３ごとに異なる値とされてもよい。例えば、対向装置２，３に割り当てられる速度加算値は、速度差分値を保証速度の大きさに応じた割合で分割した値とされる。あるいは、対向装置２，３に割り当てられる速度加算値は、対向装置２，３から通信装置１への現在のデータ入力速度に応じた割合で分割された値とされてもよい。
【００３１】
以上のような送信制御部１２の制御の下で送信停止信号が送信されることで、フロー制御の実行時にも、対向装置２，３からのデータ送信速度が、それぞれに規定された保証速度以上に維持されるようになる。
【００３２】
ところで、通信装置１は、図１に示すように、バッファ１３およびデータ量検出部１４を有していてもよい。バッファ１３は、複数の対向装置から送信されたデータを一時的に保持する。データ量検出部１４は、バッファ１３に保持されたデータ量を監視し、データ量が所定のしきい値に達したか否かを検出する。
【００３３】
なお、バッファ１３は、例えば、複数の対向装置からそれぞれ受信したデータを個別に、あるいは共通に保持する受信バッファである。受信バッファが対向装置ごとに設けられる場合、データ量検出部１４は、例えば、それらの受信バッファ内のデータ量の合計値を、所定のしきい値と比較する。また、例えば、通信装置１が、複数の対向装置から受信したデータを、それらの対向装置とは別の送信側対向装置に対して転送する機能を有する場合には、バッファ１３は、送信側対向装置に転送するデータを一時的に保持する送信バッファであってもよい。
【００３４】
送信停止信号送信部１１は、例えば、データ量検出部１４により、バッファ１３のデータ量が所定のしきい値以上であることが検出された場合に、送信制御部１２の制御の下で、通信装置１にデータを送信している対向装置に対して送信停止信号を送信する。
【００３５】
なお、送信停止信号送信部１１は、バッファ１３のデータ量とは無関係に送信停止信号を送信してもよい。例えば、送信停止信号送信部１１は、通信装置１における処理負荷が高くなった場合に、送信停止信号を送信する。あるいは、送信停止信号送信部１１は、通信装置１の管理者またはこの通信装置１を含む通信システムの管理者によって設定された期間に、送信停止信号を送信する。
【００３６】
次に、通信装置間がイーサネットにより接続される通信システムの例を挙げて説明する。また、送信停止信号を送信する通信ノードの例として、ＬＡＮスイッチを挙げる。
〔第２の実施の形態〕
図２は、第２の実施の形態に係る通信システムの構成を示す図である。
【００３７】
図２に示す通信装置１００，２００，３００は、それぞれ、イーサネットに接続された通信ノードの１つであり、イーサネットを通じて他の通信装置と接続し、信号を送受信する。本実施の形態では、例として、最高伝送速度が１Ｇｂｐｓのイーサネットを適用するものとする。なお、図２に記載した“１ＧｂＥ”は、最高伝送速度が１Ｇｂｐｓであるイーサネットのリンクを示している。
【００３８】
通信装置１００は、他の通信ノードからの受信パケットをその宛先に応じた別の通信ノードに送信するＬＡＮスイッチであり、例えば、Ｌ２（Layer 2）スイッチあるいはＬ３スイッチなどである。通信装置１００は、インタフェース（Ｉ／Ｆ）１１０，１２０，１３０、スイッチ（Ｓ／Ｗ）１４０および制御部１５０を有している。
【００３９】
インタフェース１１０，１２０，１３０は、それぞれ通信ポートごとに設けられており、他の通信ノードとイーサネットを通じてデータを送受信する。図２の例では、インタフェース１２０は通信装置２００と接続され、インタフェース１３０は通信装置３００と接続されている。また、インタフェース１１０は、図示しない他の通信ノードと接続されている。
【００４０】
スイッチ１４０は、インタフェース１１０，１２０，１３０のそれぞれの間のデータ伝送経路を切り替える。制御部１５０は、受信データの宛先に応じてスイッチ１４０の経路切り替え動作を制御する。また、後述するように、制御部１５０は、ポーズフレームの送信動作に必要な情報を、インタフェース１１０，１２０，１３０に対して出力する。
【００４１】
通信装置２００，３００は、イーサネットを通じて信号を送受信する機能を備えていれば、どのような装置でもよい。例えば、ＬＡＮスイッチでもよいし、あるいは、サーバ装置、端末装置などのコンピュータであってもよい。また、インタフェース１１０に接続される図示しない通信ノードに関しても同様である。
【００４２】
図２では例として、通信装置２００，３００は、基本的に、通信装置１００と同様の構成を有するものとする。例えば、通信装置２００は、インタフェース２１０，２２０，２３０、スイッチ２４０および制御部２５０を有している。インタフェース２１０，２２０，２３０、スイッチ２４０および制御部２５０は、通信装置１００のインタフェース１１０，１２０，１３０、スイッチ１４０および制御部１５０にそれぞれ対応する構成である。図２の例では、インタフェース２１０が通信装置１００と接続され、インタフェース２２０，２３０はそれぞれ図示しない他の通信ノードと接続されている。
【００４３】
同様に、通信装置３００は、インタフェース３１０，３２０，３３０、スイッチ３４０および制御部３５０を有している。インタフェース３１０，３２０，３３０、スイッチ３４０および制御部３５０は、通信装置１００のインタフェース１１０，１２０，１３０、スイッチ１４０および制御部１５０にそれぞれ対応する構成である。図２の例では、インタフェース３１０が通信装置１００と接続され、インタフェース３２０，３３０はそれぞれ図示しない他の通信ノードと接続されている。
【００４４】
図３は、通信装置の内部構成をより詳しく示す図である。
通信装置１００において、インタフェース１１０は、入力バッファ１１１、出力バッファ１１２、輻輳検出部１１３、ポーズフレーム出力部１１４および多重化部１１５を有している。
【００４５】
入力バッファ１１１は、図示しない通信ノードからの受信データを一時的に保持し、保持した受信データをＦＩＦＯ（First In First Out）方式で多重化部１１５に出力する。出力バッファ１１２は、スイッチ１４０から出力された送信データを一時的に保持し、保持した送信データをＦＩＦＯ方式で出力する。なお、出力バッファ１１２から出力された送信データは、図示しないＰＨＹ（Physical layer）回路を介して他の通信ノードに送信される。
【００４６】
輻輳検出部１１３は、出力バッファ１１２に格納されたデータのデータ量を監視し、データ量が所定のしきい値に達した場合に、輻輳が発生したと判定する。ポーズフレーム出力部１１４は、輻輳検出部１１３により輻輳の発生が検出されると、制御部１５０から取得した停止時間および停止間隔に基づいて、ポーズフレームを多重化部１１５に出力する。
【００４７】
多重化部１１５は、入力バッファ１１１から出力された受信データと、ポーズフレーム出力部１１４から出力されたポーズフレームのいずれか一方を、スイッチ１４０に出力する。ここで、ポーズフレームの送信先とされる通信ノードを“上流側ノード”と呼ぶことにする。例えば、通信装置２００，３００からの受信データがインタフェース１１０の出力バッファ１１２に転送されたときに、輻輳検出部１１３により輻輳の発生が検出された場合、ポーズフレームの送信先となる通信装置２００，３００は、上流側ノードとなる。
【００４８】
多重化部１１５は、ポーズフレーム出力部１１４からポーズフレームが出力された場合には、そのポーズフレームをスイッチ１４０に出力し、ポーズフレームが出力されていない場合には、入力バッファ１１１の先頭の受信データをスイッチ１４０に出力する。
【００４９】
なお、後述する保証速度が上流側ノードごとに異なることから、ポーズフレーム出力部１１４は、上流側ノードのそれぞれに送信するポーズフレームを個別に生成して、多重化部１１５に出力する。このとき、ポーズフレーム出力部１１４は、例えば、通信装置１００の内部でのみ使用されるローカルヘッダをポーズフレームに付加し、そのローカルヘッダに、上流側ノードに対応するインタフェースあるいはポートを識別する識別情報を書き込んでもよい。
【００５０】
この場合、入力バッファ１１１から多重化部１１５に出力されるフレームにも同様のローカルヘッダが付加され、その送信先に対応するインタフェースあるいはポートを識別する識別情報がローカルヘッダに書き込まれる。ローカルヘッダへの識別情報の書き込みは、例えば、制御部１５０の制御の下で実行される。その場合、スイッチ１４０は、入力されたフレームのローカルヘッダを参照して、識別情報に対応するインタフェースの出力バッファにフレームを転送する。また、フレームが送信先に対応するインタフェースの出力バッファに格納される時点で、ローカルヘッダは除去される。
【００５１】
インタフェース１２０，１３０は、ともにインタフェース１１０と同じ構成を有している。ただし、図３では、インタフェース１２０には、入力バッファ１２１および出力バッファ１２２のみ示し、インタフェース１３０には、入力バッファ１３１および出力バッファ１３２のみ示している。
【００５２】
制御部１５０は、停止時間／間隔計算部１５１を有している。停止時間／間隔計算部１５１は、データ送信元の通信ノードにデータ送信を一時的に停止させる期間を示す停止時間ＰＴと、その一時停止動作を開始させる間隔を示す停止間隔ＰＩ（ただし、ＰＩ≧ＰＴ）とを計算し、ポーズフレーム出力部１１４に出力する。停止時間／間隔計算部１５１は、データ送信元の通信ノードごとに保証された送信速度である保証速度に基づいて、上記の停止時間ＰＴおよび停止間隔ＰＩをデータ送信元の通信ノードごとに計算する。本実施の形態では、通信装置２００，３００においてそれぞれ保証速度が規定されており、停止時間ＰＴおよび停止間隔ＰＩは、通信装置２００，３００のそれぞれについて計算される。
【００５３】
なお、通信ノードごとの保証速度は、例えば、制御部１５０内に設けられたメモリ１５２に格納されて、停止時間／間隔計算部１５１に読み出される。保証速度は、例えば、メモリ１５２にあらかじめ格納されていてもよいし、あるいは、ユーザの操作入力に応じてメモリ１５２に格納されてもよい。
【００５４】
図４は、ポーズフレームの内容を示す図である。
ポーズフレームは、同期信号を含むプリアンブル、ＭＡＣ（Medium Access Control）フレームの先頭を示すＳＦＤ（Start Frame Delimiter）、宛先アドレス、送信元アドレス、長さ／タイプを示す情報、操作コード、停止時間（Pause Time）、パディング、および、ＭＡＣフレームチェック用のＦＣＳ（Frame Check Sequence）を有する。ポーズフレームを受信した通信ノードは、停止時間の領域に記載された時間だけ、ポーズフレームの送信元ノードに対するデータの送信を停止する。
【００５５】
なお、停止時間の領域には５１２ビットのデータが格納される。伝送速度１Ｇｂｐｓのイーサネットでは、ポーズフレーム内の停止時間の分解能は、１０-9×５１２＝０．５１２（μｓｅｃ）となる。また、１つのポーズフレームに設定可能な停止時間の最大値は、０．５１２×６５５３５≒３３．５（ｍｓｅｃ）となる。
【００５６】
次に、通信装置２００，３００から通信装置１００にデータが送信された際に、通信装置１００において輻輳が検出された場合の処理について説明する。図５は、第２の実施の形態において実行されるフロー制御を説明する図である。
【００５７】
図５の例では、通信装置２００に対して保証速度５００Ｍｂｐｓが規定され、通信装置３００に対して保証速度２５０Ｍｂｐｓが規定されているものとする。ここで、通信装置２００から通信装置１００に対してデータが送信される。このデータは、通信装置１００において受信された後、インタフェース１１０を介して、このインタフェース１１０に接続された他の通信ノードに送信される。一方、通信装置３００からも、通信装置１００に対してデータが送信される。このデータは、通信装置１００において受信された後、インタフェース１１０を介して、このインタフェース１１０に接続された他の通信ノードに送信される。
【００５８】
通信装置２００，３００から通信装置１００へのトラフィックが増加すると、通信装置１００では、インタフェース１１０内の出力バッファ１１２におけるデータ量が増加する。そして、出力バッファ１１２のデータ量が所定のしきい値以上になると、通信装置１００は、輻輳が発生したと判定する。例えば、図５に示すように、通信装置２００から通信装置１００に対して８００Ｍｂｐｓの速度でデータが送信され、通信装置３００から通信装置１００に対して４００Ｍｂｐｓの速度でデータが送信されたとする。この場合、入力データのトラフィックが、通信装置１００のインタフェース１１０に接続された出力伝送路におけるトラフィックの許容量を超えるため、インタフェース１１０内の出力バッファ１１２のデータ量が徐々に増加する。
【００５９】
通信装置１００は、出力バッファ１１２のデータ量が所定のしきい値以上になると、通信装置２００，３００に対してポーズフレームを送信し、通信装置１００に対するデータ送信を一時的に停止するように要求する。本実施の形態では、通信装置１００は、通信装置２００からのデータ送信速度が、通信装置２００に規定された保証速度となるように、通信装置２００に対してポーズフレームを送信する。これとともに、通信装置１００は、通信装置３００からのデータ送信速度が、通信装置３００に規定された保証速度となるように、通信装置３００に対してポーズフレームを送信する。
【００６０】
例えば、通信装置２００と通信装置１００との間の伝送路の最大伝送速度が１Ｇｂｐｓであることから、通信装置１００は、停止時間ＰＴが５００μｓｅｃとなり、停止間隔ＰＩが１ｍｓｅｃとなるように、通信装置２００に対してポーズフレームを送信する。このとき、通信装置２００は、５００μｓｅｃの期間だけ通信装置１００へのデータ送信を停止し、その後の５００μｓｅｃの期間だけ通信装置１００へのデータ送信を実行する。これにより、通信装置２００から通信装置１００へのデータ送信速度が、通信装置２００に規定された保証速度と同じ５００Ｍｂｐｓに抑制される。
【００６１】
また、通信装置１００は、例えば、停止時間ＰＴが７５０μｓｅｃとなり、停止間隔ＰＩが１ｍｓｅｃとなるように、通信装置３００に対してポーズフレームを送信する。このとき、通信装置３００は、７５０μｓｅｃの期間だけ通信装置１００へのデータ送信を停止し、その後の２５０μｓｅｃの期間だけ通信装置１００へのデータ送信を実行する。これにより、通信装置３００から通信装置１００へのデータ送信速度が、通信装置３００に規定された保証速度と同じ２５０Ｍｂｐｓに抑制される。
【００６２】
停止時間ＰＴおよび停止間隔ＰＩは、制御部１５０の停止時間／間隔計算部１５１によって、ポーズフレームの送信先となる上流側ノードごとに計算される。ここで、上流側ノードに規定された保証速度をＲｇｕｒ、通信ノード間の伝送路の最大伝送速度をＲｍａｘ（ただし、Ｒｍａｘ≧Ｒｇｕｒ）とすると、Ｒｇｕｒ／Ｒｍａｘ＝ＰＴ／ＰＩの関係が成立する。このことから、停止時間／間隔計算部１５１は、次の式（１）が成立するように停止時間ＰＴおよび停止間隔ＰＩを算出する。
ＰＴ＝（Ｒｇｕｒ／Ｒｍａｘ）×ＰＩ                                ・・・（１）
前述のように、停止時間／間隔計算部１５１は、メモリ１５２から、上流側ノードごとに保証速度を読み込み、上記の式（１）に従って停止時間ＰＴおよび停止間隔ＰＩを上流側ノードごとに計算する。そして、計算した停止時間ＰＴおよび停止間隔ＰＩを、ポーズフレーム出力部１１４に出力する。
【００６３】
ポーズフレーム出力部１１４は、輻輳検出部１１３により輻輳が検出された場合に、上流側ノードに対応する停止時間ＰＴおよび停止間隔ＰＩを停止時間／間隔計算部１５１から取得する。そして、上流側ノードごとにポーズフレームを生成して、多重化部１１５に出力する。
【００６４】
なお、ポーズフレームの送信先の通信ノードにおいて規定された保証速度が変化しない限り、各通信ノードに対応する停止時間ＰＴおよび停止間隔ＰＩは変化しない。このため、停止時間／間隔計算部１５１は、例えば、停止時間ＰＴおよび停止間隔ＰＩを通信装置１００の電源投入時に計算すればよい。また、停止時間／間隔計算部１５１は、メモリ１５２内の保証速度が更新された場合や、メモリ１５２に保証速度が新規に記憶された場合などに、停止時間ＰＴおよび停止間隔ＰＩを計算してもよい。
【００６５】
さらに、停止時間／間隔計算部１５１は、例えば、上記の式（１）を満たすような停止時間ＰＴと停止間隔ＰＩの組み合わせを通信ノードごとに保持したテーブルを参照して、停止時間ＰＴおよび停止間隔ＰＩを決定してもよい。この場合、テーブルは、例えば、メモリ１５２に記憶されていればよい。
【００６６】
また、停止時間／間隔計算部１５１によって計算された停止時間ＰＴおよび停止間隔ＰＩは、ポーズフレーム出力部１１４内のメモリなどに記憶されてもよい。
図６は、ポーズフレームの出力処理手順を示すフローチャートである。
【００６７】
以下の図６の処理は、上流側ノードごとに実行される。ここで、ポーズフレームの送信先とされる複数の上流側ノードのうち、ｍ番目（ただし、ｍは自然数）の上流側ノードに対してポーズフレームを送信する際の停止時間ＰＴおよび停止間隔ＰＩを、それぞれＰＴ＿ｍ，ＰＩ＿ｍとする。
【００６８】
［ステップＳ１１］ポーズフレーム出力部１１４は、輻輳検出部１１３の検出結果に基づき、出力バッファ１１２のデータ量が所定のしきい値以上であるか否かを判定する。ポーズフレーム出力部１１４は、例えば、この判定処理を一定時間ごとに繰り返し、データ量がしきい値以上であると判定すると、ステップＳ１２の処理を実行する。
【００６９】
［ステップＳ１２］ポーズフレーム出力部１１４は、停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを停止時間／間隔計算部１５１から取得する。なお、これらの情報の取得は、例えば、通信装置１００の電源投入時などにおいてあらかじめ取得されていてもよい。
【００７０】
［ステップＳ１３］ポーズフレーム出力部１１４は、停止時間ＰＴ＿ｍを格納したポーズフレームを生成して、多重化部１１５に出力する。
このポーズフレームは、スイッチ１４０を介して、ｍ番目の上流側ノードに対応するインタフェース（例えば、インタフェース１２０）に受け渡された後、上流側ノード（例えば、通信装置２００）に送信される。ポーズフレームを受信した上流側ノードは、停止時間ＰＴ＿ｍの間、通信装置１００に対するデータの送信を停止する。また、停止時間ＰＴ＿ｍが経過した後、ポーズフレームを受信しない場合には、通信装置１００へのデータの送信を再開する。
【００７１】
なお、このステップＳ１３では、次のような処理が実行されてもよい。まず、ポーズフレーム出力部１１４は、停止時間として最大値を格納したポーズフレームを、多重化部１１５に出力する。このポーズフレームを受信した通信ノードは、通信装置１００へのデータ送信を停止する。次に、ポーズフレーム出力部１１４は、時間をカウントし、停止時間ＰＴ＿ｍが経過したときに、停止時間として“０”を格納したポーズフレームを、多重化部１１５に出力する。このポーズフレームを受信した通信ノードは、データ送信の一時停止要求が解除されたものと判定して、通信装置１００へのデータ送信を再開する。
【００７２】
［ステップＳ１４］ポーズフレーム出力部１１４は、その内部に備えるカウンタなどにより時間をカウントし、停止間隔ＰＩ＿ｍが経過したか否かを判定する。停止間隔ＰＩ＿ｍが経過すると、ステップＳ１１の処理が再度実行される。
【００７３】
なお、停止時間／間隔計算部１５１は、例えば、上記の式（１）を満たすように停止時間ＰＴおよび停止間隔ＰＩを計算する際に、各上流側ノードに対応する停止間隔ＰＩを共通の値としてもよい。この場合には、図６の各ステップの処理タイミングを上流側ノードごとの処理で一致させることができる。
【００７４】
以上の第２の実施の形態では、通信装置１００がフロー制御を行うことで、上流側ノードからのデータ送信速度が、その上流側ノードに規定された保証速度に抑制される。従って、出力速度を保証したネットワークを容易に構築できるようになる。
【００７５】
ところで、上記の図６の処理では、ポーズフレームの送信の要否を、出力バッファ１１２のデータ量と１つのしきい値とを比較することで判定していた。しかしながら、この送信要否の判定処理は、次の図７に示すように、２つのしきい値Ｔｈ１，Ｔｈ２（ただし、Ｔｈ１＞Ｔｈ２）を用いて判定されてもよい。なお、図７の処理が実行される場合、輻輳検出部１１３は、出力バッファ１１２のデータ量がしきい値Ｔｈ１以上であるか否かを示す検出結果と、そのデータ量がしきい値Ｔｈ２未満であるか否かを示す検出結果とを、ポーズフレーム出力部１１４に通知する。
【００７６】
図７は、ポーズフレームの出力処理手順の別の例を示すフローチャートである。
［ステップＳ２１］ポーズフレーム出力部１１４は、輻輳検出部１１３の検出結果に基づき、出力バッファ１１２のデータ量がしきい値Ｔｈ１以上であるか否かを判定する。ポーズフレーム出力部１１４は、例えば、この判定処理を一定時間ごとに繰り返し、データ量がしきい値Ｔｈ１以上であると判定すると、ステップＳ２２の処理を実行する。
【００７７】
［ステップＳ２２］この処理ステップでは、図６のステップＳ１２と同様の処理が実行される。すなわち、ポーズフレーム出力部１１４は、停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを停止時間／間隔計算部１５１から取得する。
【００７８】
［ステップＳ２３］この処理ステップでは、図６のステップＳ１３と同様の処理が実行される。すなわち、ポーズフレーム出力部１１４は、停止時間ＰＴ＿ｍを格納したポーズフレームを生成して、多重化部１１５に出力する。
【００７９】
［ステップＳ２４］この処理ステップでは、図６のステップＳ１４と同様の処理が実行される。すなわち、ポーズフレーム出力部１１４は、停止間隔ＰＩ＿ｍが経過したか否かを判定する。停止間隔ＰＩ＿ｍが経過すると、ステップＳ２５の処理が実行される。
【００８０】
［ステップＳ２５］ポーズフレーム出力部１１４は、輻輳検出部１１３の検出結果に基づき、出力バッファ１１２のデータ量がしきい値Ｔｈ２未満であるか否かを判定する。データ量がしきい値Ｔｈ２未満である場合には、ステップＳ２１の処理が再度実行され、データ量がしきい値Ｔｈ２以上である場合には、ステップＳ２２の処理が再度実行される。
【００８１】
この図７の処理によれば、図６の処理と比較して、通信装置１００に対するトラフィックの抑制状態と抑制解除状態とが頻繁に切り替わらないようになる。
〔第３の実施の形態〕
上記の第２の実施の形態では、通信装置１００は、通信装置２００，３００からのデータ出力速度が、通信装置２００，３００のそれぞれに規定された保証速度を維持するように、フロー制御を行う。しかし、このようなフロー制御が行われている状態では、通信装置２００，３００からの合計のデータ出力速度が、通信ノード間の伝送路の最大伝送速度Ｒｍａｘより低くなることがある。すなわち、通信装置１００のインタフェース１１０の出力側伝送路には、さらに多くのデータを伝送する容量が残っている状態となる。これに対して、以下の第３の実施の形態では、通信装置２００，３００からのデータ送信速度の合計が、通信ノード間の伝送路の最大伝送速度Ｒｍａｘとなるように、フロー制御が行われる。
【００８２】
図８は、第３の実施の形態において実行されるフロー制御を説明する図である。
本実施の形態において、通信装置１００〜３００の基本的な内部構成は、第２の実施の形態と同様であるので、ここでは図示を省略する。ただし、通信装置１００の制御部１５０が有する停止時間／間隔計算部１５１において、停止時間ＰＴおよび停止間隔ＰＩを計算する手順が、第２の実施の形態とは異なる。
【００８３】
図８の例では、図５の例と同様に、通信装置２００に対して保証速度５００Ｍｂｐｓが規定され、通信装置３００に対して保証速度２５０Ｍｂｐｓが規定されているものとする。ここで、例えば、通信装置２００から通信装置１００に対して８００Ｍｂｐｓでデータが送信され、通信装置３００から通信装置１００に対して４００Ｍｂｐｓでデータが送信される。通信装置１００では、インタフェース１１０内の出力バッファ１１２におけるデータ量が増加し、出力バッファ１１２のデータ量が所定のしきい値以上になると、通信装置１００の輻輳検出部１１３は、輻輳が発生したと判定する。
【００８４】
通信装置１００は、出力バッファ１１２のデータ量が所定のしきい値以上になると、通信装置２００，３００に対してポーズフレームを送信し、通信装置１００に対するデータ送信を一時的に停止するように要求する。本実施の形態では、制御部１５０の停止時間／間隔計算部１５１は、次の手順で停止時間ＰＴおよび停止間隔ＰＩを計算する。
【００８５】
ポーズフレームの送信先とされる複数の上流側ノードのうち、ｍ番目の上流側ノードに規定された保証速度をＲｇｕｒ＿ｍとする。通信装置１００は、ｍ番目の上流側ノードからのデータ送信速度Ｒｏｕｔ＿ｍが、次の式（２）で求められる値となるように、ｍ番目の上流側ノードに対してポーズフレームを送信する。
Ｒｏｕｔ＿ｍ＝Ｒｇｕｒ＿ｍ＋Ｒａｄｄ                                ・・・（２）
ここで、Ｒａｄｄは、保証速度Ｒｇｕｒ＿ｍに対して加算される速度加算値であり、次の式（３）に従い、すべての上流側ノードに対して共通に求められる。なお、式（３）において、Ｒｔｏｔは、各上流側ノードに規定された保証速度Ｒｇｕｒをすべて合計した保証速度合計値を示し、ｎは、上流側ノードの数を示す（ただし、ｎ≧２）。
Ｒａｄｄ＝（Ｒｍａｘ−Ｒｔｏｔ）／ｎ                                ・・・（３）
停止時間／間隔計算部１５１は、上記の式（２），式（３）に従って、ｍ番目の上流側ノードからのデータ送信速度Ｒｏｕｔ＿ｍを計算する。ｍ番目の上流側ノードに対応する停止時間ＰＴおよび停止間隔ＰＩをそれぞれＰＴ＿ｍ，ＲＩ＿ｍとすると、Ｒｏｕｔ＿ｍ／Ｒｍａｘ＝ＰＴ＿ｍ／ＰＩ＿ｍの関係が成立する。このことから、停止時間／間隔計算部１５１は、次の式（４）が成立するように停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを算出する。
ＰＴ＿ｍ＝（Ｒｏｕｔ＿ｍ／Ｒｍａｘ）×ＰＩ＿ｍ                    ・・・（４）
通信装置１００のポーズフレーム出力部１１４は、停止時間／間隔計算部１５１からの停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍに基づいて、前述の図６または図７の処理手順に従ってポーズフレームを送信する。
【００８６】
図８の例では、速度加算値Ｒａｄｄは、式（３）により１２５Ｍｂｐｓと求められる。従って、通信装置２００についてのデータ送信速度Ｒｏｕｔは、式（２）より６２５Ｍｂｐｓとなる。通信装置１００は、例えば、停止時間ＰＴが６２５μｓｅｃ、停止間隔ＰＩが１ｍｓｅｃになるように、通信装置２００に対してポーズフレームを送信することで、通信装置２００からのデータ送信速度を６２５Ｍｂｐｓに維持する。また、通信装置３００についてのデータ送信速度Ｒｏｕｔは、式（２）より３７５Ｍｂｐｓとなる。通信装置１００は、例えば、停止時間ＰＴが３７５μｓｅｃ、停止間隔ＰＩが１ｍｓｅｃになるように、通信装置３００に対してポーズフレームを送信することで、通信装置３００からのデータ送信速度を３７５Ｍｂｐｓに維持する。
【００８７】
以上の処理によれば、通信装置１００は、ｍ番目の上流側ノードからのデータ送信速度Ｒｏｕｔ＿ｍを、保証速度Ｒｇｕｒ＿ｍ以上に維持するように、フロー制御を行う。さらに、通信装置１００は、式（３）中で（Ｒｍａｘ−Ｒｔｏｔ）と表される速度差分値を、各上流側ノードに対して均等に割り当てる。すなわち、ｍ番目の上流側ノードからのデータ送信速度として、保証速度Ｒｇｕｒ＿ｍに対してさらに速度加算値Ｒｏｕｔ＿ｍを上乗せする。このような処理により、通信装置１００のインタフェース１１０の出力側伝送路においては、データ伝送容量を最大限に使用してデータが伝送されるようになり、データ伝送効率が向上する。
【００８８】
〔第４の実施の形態〕
図９は、第４の実施の形態において実行されるフロー制御を説明する図である。
本実施の形態において、通信装置１００〜３００の基本的な内部構成は、第２，第３の実施の形態と同様であるので、ここでは図示を省略する。また、本実施の形態では、第３の実施の形態と同様に、通信装置２００，３００からのデータ送信速度の合計が、通信ノード間の伝送路の最大伝送速度Ｒｍａｘとなるように、通信装置１００によるフロー制御が行われる。ただし、第３の実施の形態とは異なり、通信装置１００の制御部１５０が有する停止時間／間隔計算部１５１は、式（３）中で（Ｒｍａｘ−Ｒｔｏｔ）と表される速度差分値を、上流側ノードに規定された保証速度Ｒｇｕｒの大きさに応じて割り当てる。
【００８９】
本実施の形態において、通信装置１００は、ｍ番目の上流側ノードからのデータ送信速度Ｒｏｕｔ＿ｍが、次の式（５）で求められる値となるように、ｍ番目の上流側ノードに対してポーズフレームを送信する。
Ｒｏｕｔ＿ｍ＝Ｒｇｕｒ＿ｍ＋Ｒａｄｄ＿ｍ                            ・・・（５）
ここで、Ｒａｄｄ＿ｍは、ｍ番目の上流側ノードに対して割り当てられる速度加算値であり、次の式（６）に従い、上流側ノードごとに個別に求められる。
Ｒａｄｄ＿ｍ＝（Ｒｍａｘ−Ｒｔｏｔ）×（Ｒｇｕｒ＿ｍ／Ｒｔｏｔ）  ・・・（６）
停止時間／間隔計算部１５１は、上記の式（５），式（６）に従って、ｍ番目の上流側ノードからのデータ送信速度Ｒｏｕｔ＿ｍを計算する。Ｒｏｕｔ＿ｍ／Ｒｍａｘ＝ＰＴ＿ｍ／ＰＩ＿ｍの関係が成立することから、停止時間／間隔計算部１５１は、前述の式（４）が成立するように停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを算出する。通信装置１００のポーズフレーム出力部１１４は、停止時間／間隔計算部１５１からの停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍに基づいて、前述の図６または図７の処理手順に従ってポーズフレームを送信する。
【００９０】
図９の例では、図５，図８の例と同様に、通信装置２００に対して保証速度５００Ｍｂｐｓが規定され、通信装置３００に対して保証速度２５０Ｍｂｐｓが規定されているものとする。この場合、通信装置２００についての速度加算値は、式（６）により１６６Ｍｂｐｓと求められる。従って、通信装置２００についてのデータ送信速度Ｒｏｕｔは、式（５）より６６６Ｍｂｐｓとなる。通信装置１００は、例えば、停止時間ＰＴが６６６μｓｅｃ、停止間隔ＰＩが１ｍｓｅｃになるように、通信装置２００に対してポーズフレームを送信することで、通信装置２００からのデータ送信速度を６６６Ｍｂｐｓに維持する。
【００９１】
また、通信装置３００についての速度加算値は、式（６）により８３Ｍｂｐｓと求められる。従って、通信装置３００についてのデータ送信速度Ｒｏｕｔは、式（５）より３３３Ｍｂｐｓとなる。通信装置１００は、例えば、停止時間ＰＴが３３３μｓｅｃ、停止間隔ＰＩが１ｍｓｅｃになるように、通信装置３００に対してポーズフレームを送信することで、通信装置３００からのデータ送信速度を３３３Ｍｂｐｓに維持する。
【００９２】
以上の処理によれば、保証速度Ｒｇｕｒが大きい上流側ノードほど、通信装置１００へのデータ送信速度が高くなるように、通信装置１００によるフロー制御が行われる。従って、通信装置１００のインタフェース１１０の出力側伝送路におけるデータ伝送効率が向上するとともに、フロー制御対象の通信ノードから通信装置１００への伝送路の伝送効率も高めることができる。
【００９３】
〔第５の実施の形態〕
図１０は、第５の実施の形態に係る通信装置の内部構成を示す図である。なお、図１０では、図３と同じ構成要素には同じ符号を付して示している。
【００９４】
図１０に示す通信装置１００ａは、インタフェース１１０，１２０ａ，１３０ａ、スイッチ１４０および制御部１５０ａを有している。インタフェース１２０ａは、図３に示したインタフェース１２０に対応する構成であり、入力バッファ１２１および出力バッファ１２２を備え、通信装置２００との間でデータを送受信する。インタフェース１２０ａはさらに、インタフェース１２０ａに対して入力される単位時間当たりのデータ量を測定する流量測定部１２３を備えている。
【００９５】
同様に、インタフェース１３０ａは、図３に示したインタフェース１３０に対応する構成であり、入力バッファ１３１および出力バッファ１３２を備え、通信装置３００との間でデータを送受信する。インタフェース１３０ａはさらに、インタフェース１３０ａに対して入力されるデータの流量（単位時間当たりのデータ量）を測定する流量測定部１３３を備えている。
【００９６】
制御部１５０ａは、図３に示した制御部１５０に対応する構成であり、上流側ノードにそれぞれ規定された保証速度Ｒｇｕｒを記憶するメモリ１５２を備える。また、制御部１５０ａは、停止時間／間隔計算部１５１ａを備える。
【００９７】
停止時間／間隔計算部１５１ａは、図３に示した停止時間／間隔計算部１５１と同様に、ポーズフレームを送信する際に使用する停止時間ＰＴおよび停止間隔ＰＩを、上流側ノードごとに計算する。ただし、停止時間／間隔計算部１５１ａは、インタフェース１２０ａ，１３０ａがそれぞれ備える流量測定部１２３，１３３からの測定結果に応じて、停止時間ＰＴおよび停止間隔ＰＩを動的に計算し、インタフェース１１０のポーズフレーム出力部１１４に出力する。停止時間／間隔計算部１５１ａは、前述の式（３），式（６）中で（Ｒｍａｘ−Ｒｔｏｔ）と表される速度差分値を、流量測定部１２３，１３３で測定される流量に応じて割り当てる。
【００９８】
図１１は、停止時間および停止間隔を計算する処理手順を示すフローチャートである。なお、この図１１では、ポーズフレームが送信される上流側ノードがｎだけ存在し、これらの上流側ノードにポーズフレームを送信する際に使用する停止時間ＰＴ＿１〜ＰＴ＿ｎおよび停止間隔ＰＩ＿１〜ＰＩ＿ｎを求めるものとする。
【００９９】
［ステップＳ３１］停止時間／間隔計算部１５１ａは、ｎ個のインタフェース（例えば、インタフェース１２０ａ，１３０ａ）にそれぞれ入力されるデータの流量Ｒｉｎ＿１〜Ｒｉｎ＿ｎを、各インタフェースの流量測定部（例えば、流量測定部１２３，１３３）から取得する。
【０１００】
［ステップＳ３２］停止時間／間隔計算部１５１ａは、変数ｍに１を設定する。
［ステップＳ３３］停止時間／間隔計算部１５１ａは、ｍ番目の上流側ノードからの流量Ｒｉｎ＿ｍが、その上流側ノードに規定された保証速度Ｒｇｕｒ＿ｍより大きいか否かを判定する。流量Ｒｉｎ＿ｍが保証速度Ｒｇｕｒ＿ｍより大きい場合には、ステップＳ３４の処理が実行され、流量Ｒｉｎ＿ｍが保証速度Ｒｇｕｒ＿ｍ以下である場合には、ステップＳ３５の処理が実行される。
【０１０１】
［ステップＳ３４］停止時間／間隔計算部１５１ａは、流量Ｒｉｎ＿ｍから保証速度Ｒｇｕｒ＿ｍを減算し、速度超過値Ｒｅｘｔ＿ｍを求める。この速度超過値Ｒｅｘｔ＿ｍは、ｍ番目の上流側ノードからの流量Ｒｉｎ＿ｍが、その上流側ノードに規定された保証速度Ｒｇｕｒ＿ｍよりどのくらい大きいかを示す。
【０１０２】
［ステップＳ３５］停止時間／間隔計算部１５１ａは、速度超過値Ｒｅｘｔ＿ｍを０とする。
［ステップＳ３６］停止時間／間隔計算部１５１ａは、変数ｍがｎであるか否かを判定する。変数ｍがｎ未満である場合には、ステップＳ３７の処理が実行され、変数ｍがｎである場合には、ステップＳ３８の処理が実行される。
【０１０３】
［ステップＳ３７］停止時間／間隔計算部１５１ａは、変数ｍに１を加算する。この後、別の上流側ノードに関して、ステップＳ３３の処理が再度実行される。
［ステップＳ３８］停止時間／間隔計算部１５１ａは、ｎ個の上流側ノードのそれぞれに対応するデータ送信速度Ｒｏｕｔ’＿１〜Ｒｏｕｔ’＿ｎを計算する。ｍ番目の上流側ノードに対応するデータ送信速度Ｒｏｕｔ’＿ｍは、次の式（７）によって求められる。
Ｒｏｕｔ’＿ｍ＝Ｒｇｕｒ＿ｍ＋Ｒａｄｄ’＿ｍ                        ・・・（７）
ここで、式（７）のＲａｄｄ’＿ｍは、ｍ番目の上流側ノードに対して割り当てられる速度加算値であり、次の式（８）によって求められる。また、式（８）のＲｅｘｔｏｔは、ステップＳ３４またはＳ３５においてｎ個の上流側ノードについて求められた速度超過値をすべて加算した加算値であり、式（９）によって求められる。
Ｒａｄｄ’＿ｍ＝（Ｒｍａｘ−Ｒｔｏｔ）×Ｒｅｘｔ＿ｍ／Ｒｅｘｔｏｔ ・・・（８）
Ｒｔｏｔ＝Ｒｅｘｔ＿１＋Ｒｅｘｔ＿２＋・・・＋Ｒｅｘｔ＿ｎ          ・・・（９）
［ステップＳ３９］停止時間／間隔計算部１５１ａは、ｎ個の上流側ノードのそれぞれに対応する停止時間ＰＴ＿１〜ＰＴ＿ｎおよび停止間隔ＰＩ＿１〜ＰＩ＿ｎを計算する。Ｒｏｕｔ’＿ｍ／Ｒｍａｘ＝ＰＴ＿ｍ／ＰＩ＿ｍの関係が成立することから、停止時間／間隔計算部１５１ａは、次の式（１０）が成立するように停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを算出する。
ＰＴ＿ｍ＝（Ｒｏｕｔ’＿ｍ／Ｒｍａｘ）×ＰＩ＿ｍ                ・・・（１０）
以上のステップＳ３１〜Ｓ３９の処理は、例えば一定時間ごとに、繰り返し実行される。通信装置１００ａのポーズフレーム出力部１１４は、停止時間／間隔計算部１５１ａからの停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍに基づいて、前述の図６または図７の処理手順に従ってポーズフレームを送信する。ただし、ポーズフレーム出力部１１４は、図６のステップＳ１２または図７のステップＳ２２において、その時点で停止時間／間隔計算部１５１ａで算出された最新の停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを取得する。
【０１０４】
なお、上記のステップＳ３１〜Ｓ３９の処理は、例えば、輻輳が検出された状態（すなわち、出力バッファ１１２のデータ量が所定のしきい値以上である状態）にのみ繰り返し実行されてもよい。
【０１０５】
図１２は、第５の実施の形態において実行されるフロー制御の例について説明する図である。
図１２の例では、通信装置２００に対して保証速度５００Ｍｂｐｓが規定され、通信装置３００に対して保証速度２５０Ｍｂｐｓが規定されている。また、通信装置１００ａのインタフェース１１０で輻輳が検出されたとき、通信装置２００から通信装置１００ａへの流量が８００Ｍｂｐｓであり、通信装置３００から通信装置１００ａへの流量が２５０Ｍｂｐｓであったとする。
【０１０６】
この場合、通信装置２００に対する式（７）の速度加算値は２５０Ｍｂｐｓと求められるので、通信装置１００ａは、通信装置２００からのデータ送信速度が７５０Ｍｂｐｓとなるように、通信装置２００に対してポーズフレームを送信する。例えば、停止時間ＰＴが７５０μｓｅｃとなり、停止間隔ＰＩが１ｍｓｅｃとなるようにポーズフレームが送信される。
【０１０７】
また、通信装置３００に対する式（７）の速度加算値は０と求められるので、通信装置１００ａは、通信装置３００からのデータ送信速度が２５０Ｍｂｐｓとなるように、通信装置３００に対してポーズフレームを送信する。例えば、停止時間ＰＴが２５０μｓｅｃとなり、停止間隔ＰＩが１ｍｓｅｃとなるようにポーズフレームが送信される。
【０１０８】
なお、上記の図１１の処理では、ポーズフレームが送信される上流側ノードのうち、通信装置１００ａに対する流量が保証速度以下である上流側ノードに対しても、ポーズフレームが送信される。すなわち、ステップＳ３８で計算されるデータ送信速度Ｒｏｕｔ’が保証速度Ｒｇｕｒと一致するため、データ送信速度が保証速度になるようにポーズフレームが送信される。
【０１０９】
しかしながら、測定された流量が保証速度以下である上流側ノードに対しては、ポーズフレームを送信しないようにしてもよい。例えば、ステップＳ３９においてｍ番目の上流側ノードについての停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを計算する際に、対応する速度超過値Ｒｅｘｔ＿ｍが０であれば、停止時間ＰＴ＿ｍおよび停止間隔ＰＩ＿ｍを算出しないようにする。この場合、ポーズフレーム出力部１１４は、出力バッファ１１２のデータ量がしきい値以上であっても、停止時間ＰＴおよび停止間隔ＰＩが停止時間／間隔計算部１５１ａから出力されていない上流側ノードについては、ポーズフレームを出力しないようにする。図１２の例では、通信装置３００に対しては、ポーズフレームが出力されない。
【０１１０】
また、上記の図１１の処理では、流量Ｒｉｎ＿ｍが保証速度Ｒｇｕｒ＿ｍ以下である場合には、ステップＳ３５において速度超過値Ｒｅｘｔ＿ｍを０としていた。これにより、式（８）における加算値Ｒｅｘｔｏｔの計算時に、流量Ｒｉｎ＿ｍが保証速度Ｒｇｕｒ＿ｍ以下である上流側ノードについての速度超過値が誤って加算されないようにしていた。
【０１１１】
しかし、この他の例としては、流量Ｒｉｎ＿ｍが保証速度Ｒｇｕｒ＿ｍ以下である上流側ノードについての速度加算値を、加算値Ｒｅｘｔｏｔの計算式から除外するようにしてもよい。この場合、ステップＳ３８では、流量Ｒｉｎ＿ｍが保証速度Ｒｇｕｒ＿ｍ以下である上流側ノードについてのデータ送信速度Ｒｏｕｔ’を計算しないようにすればよい。また、ステップＳ３９でも、この上流側ノードについての停止時間ＰＴおよび停止間隔ＰＩを計算しないようにし、この上流側ノードに対してはポーズフレームを送信しないようにすればよい。
【０１１２】
以上の第５の実施の形態では、式（８）中で（Ｒｍａｘ−Ｒｔｏｔ）と表される速度差分値を、各上流側ノードに対応する速度超過値Ｒｅｘｔの大きさに応じて、上流側ノードのそれぞれに対して割り当てる。その結果、速度超過値Ｒｅｘｔが大きい上流側ノードほど通信装置１００へのデータ送信速度が高くなるように、通信装置１００によるフロー制御が行われる。従って、通信装置１００のインタフェース１１０の出力側伝送路におけるデータ伝送効率が向上するとともに、フロー制御対象の通信ノードから通信装置１００への伝送路の伝送効率も高めることができる。
【０１１３】
〔第６の実施の形態〕
上記の第２〜第５の実施の形態では、上流側ノードのそれぞれに対応する保証速度Ｒｇｕｒは、例えば、ユーザの操作入力などにより通信装置１００，１００ａに記憶されていた。これに対して、本実施の形態では、フロー制御を行う通信装置が、上流側ノードからイーサネットを介して保証速度Ｒｇｕｒを取得できるようにする。本実施の形態では、このような動作を実現するために、ＩＥＥＥ８０２．１ＡＢにおいて標準化されたＬＬＤＰ（Link Layer Discovery Protocol）を利用して、保証速度Ｒｇｕｒを自動的に受け渡す。
【０１１４】
図１３は、ＬＬＤＰフレームの内容を示す図である。
ＬＬＤＰは、ネットワーク機器や端末の種類、設定情報などを近隣の通信ノードに通知する、レイヤ２レベルのプロトコルである。ＬＬＤＰでは、これらの情報がＬＬＤＰフレームと呼ばれるＭＡＣフレームに格納され、他の通信ノードに送信される。
【０１１５】
ＬＬＤＰフレームは、通常のＭＡＣフレームと同様に、プリアンブル、ＳＦＤ、宛先アドレス、送信元アドレスおよびＦＣＳを含む。そして、送信元アドレスとＦＣＳとの間に、ＬＬＤＰの識別子情報（LLDP Ethertype）と、ＬＬＤＰＤＵ（LLDP Data Unit）とが記述される。なお、ＬＬＤＰフレームはマルチキャストで送信され、宛先アドレスにはマルチキャストを示す値が格納される。
【０１１６】
ＬＬＤＰＤＵは、機器の識別情報（Chassis ID）、ポートの識別情報（Port ID）、情報の有効期間（Time-To-Live）、１つ以上のオプション情報（Optional）、および、終端情報（End-of-LLDPDU）を含む。これらの各項目は、情報の種類（TLV type）、値の長さ（TLV information string length）および実際の値（TLV information string）を有する、ＴＬＶ（Type, Length, Value）と呼ばれる情報として記述される。
【０１１７】
また、ＬＬＤＰＤＵ内の項目のうち、オプション情報には、ＩＥＥＥ８０２．１ＡＢにおいて規定された所定の情報を格納できるだけでなく、その他の任意の情報を格納することも可能になっている。そこで、本実施の形態では、オプション情報の領域に、ＬＬＤＰフレームの送信元ノードに規定された保証速度Ｒｇｕｒを格納する。
【０１１８】
図１４は、ＬＬＤＰフレームの受け渡し処理を説明する図である。なお、図１４では、図２と同じ構成要素には同じ符号を付して示している。
図１４において、通信装置１００ｂは、通信装置２００ｂ，３００ｂとイーサネットを介して接続されている。通信装置１００ｂは、インタフェース１１０，１２０ｂ，１３０ｂ、スイッチ１４０および制御部１５０ｂを有している。インタフェース１２０ｂは、図３のインタフェース１２０に対応する構成であり、通信装置２００ｂとの間でデータを送受信する。インタフェース１３０ｂは、図３のインタフェース１３０に対応する構成であり、通信装置３００ｂとの間でデータを送受信する。
【０１１９】
通信装置２００ｂ、３００ｂは、ともにＬＬＤＰフレームをマルチキャストで定期的に送信する。通信装置２００ｂは、自機に規定された保証速度Ｒｇｕｒを、送信するＬＬＤＰフレームに格納し、通信装置３００ｂは、自機に規定された保証速度Ｒｇｕｒを、送信するＬＬＤＰフレームに格納する。
【０１２０】
通信装置１００ｂは、ＬＬＤＰフレームを、通信装置２００ｂ，３００ｂのそれぞれから定期的に受信する。通信装置２００ｂから受信したＬＬＤＰフレームは、インタフェース１２０ｂから制御部１５０ｂに転送され、通信装置３００ｂから受信したＬＬＤＰフレームは、インタフェース１３０ｂから制御部１５０ｂに転送される。
【０１２１】
なお、図示しないが、通信装置１００ｂも、ＬＬＤＰフレームをマルチキャストで定期的に送信してもよい。
図１５は、第６の実施の形態に係る通信装置の内部構成を示す図である。なお、図１５では、図３と同じ構成要素には同じ符号を付して示している。
【０１２２】
インタフェース１２０ｂは、図３に示したインタフェース１２０と同様に、入力バッファ１２１および出力バッファ１２２を有する。また、通信装置２００ｂから受信したＬＬＤＰフレームは、インタフェース１２０ｂから制御部１５０ｂに転送される。インタフェース１３０ｂは、図３に示したインタフェース１３０と同様に、入力バッファ１３１および出力バッファ１３２を有する。また、通信装置３００ｂから受信したＬＬＤＰフレームは、インタフェース１３０ｂから制御部１５０ｂに転送される。
【０１２３】
制御部１５０ｂは、ポーズフレームの送信時に使用する停止時間ＰＴおよび停止間隔ＰＩを計算する停止時間／間隔計算部１５１と、上流側ノードに規定された保証速度Ｒｇｕｒを記憶するメモリ１５２とを有する。さらに、制御部１５０ｂは、インタフェース１２０ｂ，１３０ｂから転送されたＬＬＤＰフレームを処理するＬＬＤＰ処理部１５３を有する。
【０１２４】
ＬＬＤＰ処理部１５３は、転送されたＬＬＤＰフレームから、上流側ノードに規定された保証速度Ｒｇｕｒを抽出し、メモリ１５２に記憶する。また、例えば、上流側ノードにおいて保証速度Ｒｇｕｒが変更された場合には、ＬＬＤＰ処理部１５３は、その上流側ノードから受信したＬＬＤＰフレームの情報に基づき、メモリ１５２内の保証速度Ｒｇｕｒを更新する。
【０１２５】
停止時間／間隔計算部１５１は、前述の第２〜第４の実施の形態のいずれかで説明した処理手順で、停止時間ＰＴおよび停止間隔ＰＩを上流側ノードごとに計算し、インタフェース１１０のポーズフレーム出力部に出力する。また、停止時間／間隔計算部１５１の代わりに、第５の実施の形態で示した停止時間／間隔計算部１５１ａが適用されてもよい。
【０１２６】
以上の第６の実施の形態では、通信装置１００ｂは、ＬＬＤＰフレームに基づいて、上流側ノードに規定された保証速度Ｒｇｕｒを、ユーザが入力することなく、自動的に取得できる。従って、フロー制御機能を備えるイーサネットを効率的に運用できるようになる。
【０１２７】
なお、上記の第２〜第６の実施の形態では、出力バッファのデータ量に基づいて、ポーズフレームの送信の要否を判定した。しかし、ポーズフレームの送信の要否を判定する方法は、上記に限ったことではない。例えば、入力バッファあるいは出力バッファを１つの共有バッファとして実現し、共有バッファ内の記憶領域をポートごとに論理的に管理する通信装置がある。このような通信装置では、共有バッファのデータ量が所定のしきい値以上になった場合に、ポーズフレームを送信するようにしてもよい。
【０１２８】
また、出力バッファの代わりに入力バッファのデータ量に基づいて、ポーズフレームの送信の要否を判定してもよい。この場合、例えば、複数のポートにそれぞれ対応する入力バッファの総データ量を監視し、この総データ量が所定のしきい値以上になった場合に、これらのポートに接続された上流側ノードに対して、ポーズフレームを送信する。
【０１２９】
また、上記の第２〜第６の実施の形態では、バッファのデータ量が所定のしきい値以上になった場合にポーズフレームを送信した。しかし、ポーズフレームは、バッファのデータ量に関係なく送信されてもよい。例えば、管理者がポーズフレームの送信元ノードに対して設定した期間において、送信元ノードがポーズフレームを継続的に送信することで、ネットワーク上のトラフィックを軽減するようにしてもよい。
【０１３０】
また、上記の各実施の形態で示した通信装置（例えば、通信装置１００，１００ａ，１００ｂなど）が有する機能は、コンピュータによって実現することができる。その場合には、上記機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【０１３１】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
【０１３２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３３】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  信号を送受信する通信装置において、
前記通信装置にデータを送信する複数の対向装置に対して、前記通信装置に対するデータの送信を一時的に停止するように要求する送信停止信号を送信する送信停止信号送信部と、
前記対向装置ごとに規定された保証速度に基づいて、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度以上の速度となるように、前記送信停止信号の送信動作を送信先の前記対向装置ごとに制御する送信制御部と、
を有することを特徴とする通信装置。
【０１３４】
（付記２）  複数の前記対向装置から送信されたデータを一時的に保持するバッファと、
前記バッファに保持されたデータのデータ量が所定のしきい値に達したか否かを検出するデータ量検出部と、
をさらに有し、
前記送信停止信号送信部は、前記バッファのデータ量が前記しきい値以上となった場合に、前記送信停止信号を送信することを特徴とする付記１記載の通信装置。
【０１３５】
（付記３）  前記送信制御部は、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度となるように、前記送信停止信号の送信動作を制御することを特徴とする付記１または２記載の通信装置。
【０１３６】
（付記４）  前記送信制御部は、前記通信装置に対する前記各対向装置からのデータ送信速度が、前記各対向装置に対応する前記保証速度に対して速度加算値を加算した速度となるように、前記送信停止信号の送信動作を制御し、
前記速度加算値は、すべての前記対向装置に対応する前記保証速度を加算した加算値を所定の上限速度から減算した減算値を、前記対向装置の数で除算した値であることを特徴とする付記１または２記載の通信装置。
【０１３７】
（付記５）  前記各対向装置から送信されたデータを、前記各対向装置とは別の送信側対向装置に転送する転送制御部をさらに有し、
前記所定の上限速度は、前記通信装置から前記送信側対向装置への最大データ伝送速度であることを特徴とする付記４記載の通信装置。
【０１３８】
（付記６）  前記送信制御部は、前記通信装置に対する前記各対向装置からのデータ送信速度が、前記各対向装置に対応する前記保証速度に対して前記対向装置ごとに決められた速度加算値を加算した速度となるように、前記送信停止信号の送信動作を制御し、
一の前記対向装置に対応する前記速度加算値は、前記各対向装置の前記保証速度をすべて加算した加算値を所定の上限速度から減算した減算値と、当該対向装置に対応する前記保証速度の前記加算値に対する割合とを乗算した値であることを特徴とする付記１または２記載の通信装置。
【０１３９】
（付記７）  前記各対向装置から送信されたデータを、前記各対向装置とは別の送信側対向装置に転送する転送制御部をさらに有し、
前記所定の上限速度は、前記通信装置から前記送信側対向装置への最大データ伝送速度であることを特徴とする付記６記載の通信装置。
【０１４０】
（付記８）  前記各対向装置から前記通信装置に対するデータ入力速度を測定する速度測定部をさらに有し、
前記送信制御部は、前記対向装置のうち、前記データ入力速度の測定値が前記保証速度より大きい速度超過対向装置を認識し、前記通信装置に対する前記各速度超過対向装置からのデータ送信速度が、前記各速度超過対向装置に対応する前記保証速度に対して前記速度超過対向装置ごとに決められた速度加算値を加算した速度となるように、前記速度超過対応装置に対する前記送信停止信号の送信動作を制御し、
一の前記速度超過対向装置に対応する前記速度加算値は、当該速度超過対向装置に対応する前記保証速度から当該速度超過対向装置からの前記データ入力速度の測定値を減算した第１の減算値を、すべての前記速度超過対向装置に対応する前記第１の減算値を加算した第１の加算値で除算した除算値を算出するとともに、前記除算値と、前記各対向装置の前記保証速度をすべて加算した第２の加算値を所定の上限速度から減算した第２の減算値とを乗算することで求められることを特徴とする付記１または２記載の通信装置。
【０１４１】
（付記９）  前記各対向装置から送信されたデータを、前記各対向装置とは別の送信側対向装置に転送する転送制御部をさらに有し、
前記所定の上限速度は、前記通信装置から前記送信側対向装置への最大データ伝送速度であることを特徴とする付記８記載の通信装置。
【０１４２】
（付記１０）  前記送信制御部は、前記各対向装置が前記通信装置へのデータの送信を停止させる期間を示す停止期間情報と、前記各対向装置が前記通信装置へのデータ送信の停止動作を開始する間隔を示す停止間隔情報とを、前記送信停止信号送信部に指定し、
前記送信停止信号送信部は、前記対向装置ごとに指定された前記停止期間情報および前記停止間隔情報に基づいて、前記送信停止信号を送信することを特徴とする付記１〜９のいずれか１つに記載の通信装置。
【０１４３】
（付記１１）  前記送信停止信号は、送信先の前記対向装置にデータ送信を停止させる期間を示す情報が挿入される期間情報領域を含み、
前記送信停止信号送信部は、前記期間情報領域に前記停止期間情報を挿入した前記送信停止信号を、前記停止間隔情報が示す間隔で送信することを特徴とする付記１０記載の通信装置。
【０１４４】
（付記１２）  前記送信停止信号は、送信先の前記対向装置にデータ送信を停止させる期間が挿入される期間情報領域を含み、
前記送信停止信号送信部は、前記期間情報領域に前記停止時間情報が示す期間より十分長い期間を挿入した第１の送信停止信号を送信し、前記停止期間情報が示す期間が経過した後、前記期間情報領域に０を挿入した第２の送信停止信号を送信し、前記第１の送信停止信号および前記第２の送信停止信号を、前記停止間隔情報が示す間隔でそれぞれ送信することを特徴とする付記１０記載の通信装置。
【０１４５】
（付記１３）  前記対向装置から送信されたデータから、当該対向装置に規定された前記保証速度を抽出する保証速度抽出部をさらに有することを特徴とする付記１〜１２のいずれか１つに記載の通信装置。
【０１４６】
（付記１４）  前記各対向装置から送信されたデータを、前記各対向装置とは別の送信側対向装置に転送する転送制御部と、
前記各対向装置から送信されて、前記転送制御部により前記送信側対向装置に転送されるデータを一時的に保持する送信バッファと、
前記送信バッファに保持されたデータのデータ量が所定のしきい値に達したか否かを検出するデータ量検出部と、
をさらに有し、
前記送信停止信号送信部は、前記送信バッファのデータ量が前記しきい値以上となった場合に、前記送信停止信号を送信することを特徴とする付記１記載の通信装置。
【０１４７】
（付記１５）  信号を送受信する通信装置における通信制御方法であって、
前記通信装置にデータを送信する複数の対向装置ごとに規定された保証速度に基づいて、前記通信装置に対する前記各対向装置からのデータ送信速度が前記各対向装置に対応する前記保証速度以上の速度となるように、前記各対向装置に対応する制御情報を出力し、
前記制御情報に基づいて、前記各対向装置に対して、前記通信装置に対するデータの送信を一時的に停止するように要求する送信停止信号を送信する、
ことを特徴とする通信制御方法。
【符号の説明】
【０１４８】
１  通信装置
２，３  対向装置
１１  送信停止信号送信部
１２  送信制御部
１３  バッファ
１４  データ量検出部
【図１】
0005402484.tif 000002
【図２】
0005402484.tif 000003
【図３】
0005402484.tif 000004
【図４】
0005402484.tif 000005
【図５】
0005402484.tif 000006
【図６】
0005402484.tif 000007
【図７】
0005402484.tif 000008
【図８】
0005402484.tif 000009
【図９】
0005402484.tif 000010
【図１０】
0005402484.tif 000011
【図１１】
0005402484.tif 000012
【図１２】
0005402484.tif 000013
【図１３】
0005402484.tif 000014
【図１４】
0005402484.tif 000015
【図１５】
0005402484.tif 000016
【図１６】
0005402484.tif 000017
【図１７】
0005402484.tif 000018
【図１８】
0005402484.tif 000019
【図１９】
0005402484.tif 000020