(57)【特許請求の範囲】
【請求項１】
少なくとも１つの他の装置と少なくとも１つの伝送媒体を介して接続されるネットワーク装置において、
前記少なくとも１つの他の装置からのフレームの送信を一時的に中断させる制御フレームを、前記少なくとも１つの他の装置に対して送信するよう指示する帯域コントローラと、前記少なくとも１つの伝送媒体と接続され、前記帯域コントローラからの指示に応じて前記制御フレームを前記少なくとも１つの伝送媒体に送信する送信部と、前記少なくとも１つの他の装置から送信されるフレームの送信帯域量を測定する測定部とを有し、
前記帯域コントローラは、予め設定された帯域量、前記少なくとも１つの他の装置にフレームの送信を中断させる中断期間、及び前記測定部によって測定された送信帯域量を定期的に読み取るためのトラフィック観測間隔を、それぞれ保持する複数のレジスタと、前記トラフィック観測間隔を計測するタイマとを更に備え、
前記タイマが前記トラフィック観測間隔を計測する毎に、前記帯域コントローラは前記測定部によって測定された送信帯域量を読み取り、該読み取った送信帯域量が前記予め設定された帯域量を超えていると判断した場合、前記中断期間を算出し、前記算出した中断期間を含む前記制御フレームの送信を前記送信部に対して指示し、
前記少なくとも１つの他の装置から送信されるフレームの送信帯域量を、前記予め設定された帯域量以下に制御することを特徴とするネットワーク装置。
【請求項２】
請求項１に記載のネットワーク装置において、
前記帯域コントローラは、定期的に前記送信部に対して前記制御フレームの送信を指示することを特徴とするネットワーク装置。
【請求項３】
請求項２に記載のネットワーク装置において、
予め決められた送信間隔を計測するタイマを更に備え、前記タイマが前記予め決められた送信間隔を計測する毎に、前記帯域コントローラは、前記制御フレームの送信を指示することを特徴とするネットワーク装置。
【請求項４】
請求項１に記載のネットワーク装置において、
前記送信部は、前記少なくとも１つの他の装置に対応して設けられ、前記少なくとも１つの伝送媒体と接続される少なくとも１つのポートを含み、前記少なくとも１つのポートから前記制御フレームを送信することを特徴とするネットワーク装置。
【請求項５】
請求項１に記載のネットワーク装置において、
前記予め設定された帯域量は、前記少なくとも１つの他の装置から送信されるフレームの送信帯域量の総和に対応して設定されており、前記帯域コントローラは、前記少なくとも１つの他の装置から送信されるフレームの送信帯域量の総和が、前記予め設定された帯域量を超えたときに、前記送信部に対して前記制御フレームの送信を指示することを特徴とするネットワーク装置。
【請求項６】
請求項４に記載のネットワーク装置において、
前記予め設定された帯域量は、前記少なくとも１つの他の装置の各々に対応して設定されており、前記帯域コントローラは、前記少なくとも１つの他の装置から送信されるフレームの送信帯域量が、前記少なくとも１つの他の装置に対して予め設定された帯域量を超えたときに、前記送信部に対して、前記少なくとも１つの他の装置に対応して設けられたポートへ前記制御フレームを送信することを指示することを特徴とするネットワーク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ−クライアントシステムを構成するネットワーク装置に係り、特に、1台又は複数のサーバからなるサーバファームと、クライアント装置を束ねるＬＡＮとの間に置かれてサーバからクライアントへの通信帯域（トラフィック量）制御に関する。
【０００２】
【従来の技術】
ＩＥＥＥ８０２．３では、ローカル・エリア・ネットワーク（ＬＡＮ）について規定している。多くのネットワークシステムが、ＩＥＥＥ８０２．３で規定のＬＡＮで構成されている。
【０００３】
近年、このネットワークシステムの構成装置の主体が、共有バスネットワークを構築するハブ装置から、スイッチングネットワークを構築するＬＡＮスイッチへと変化している。この変化に従い、ネットワークシステムを構成する装置のネットワーク・インタフェース同士を接続するリンクも、変化してきている。すなわち、従来は、共有バスで使用される半二重リンクであったものが、全二重リンクへと変化してきている。この全二重リンクとは、リンクに接続する装置が共に、同時に送受信可能なリンクである。また、ネットワークシステムを構成する装置とは、例えば、ＬＡＮスイッチ等のネットワーク装置、サーバ／ＰＣ等のホスト装置等である。
【０００４】
全二重リンクは、送信用と受信用にそれぞれ専用の通信線がある。全二重リンクによれば、データ衝突が発生しないので、連続したフレーム送信が可能である。しかし、その送信トラフィックが受信側装置の受信処理能力を超えてしまうとフレーム廃棄が発生する。このフレーム廃棄を回避する手段として、ＩＥＥＥ８０２．３ｘと呼ばれる標準仕様が規定されている。ＩＥＥＥ８０２．３ｘは、全二重リンクで接続する装置間のトラフィックを抑制する技術である。
【０００５】
ＩＥＥＥ８０２．３ｘでは、全二重リンクで接続される２台の装置において、一方の装置が相手装置からのフレーム送信を一定期間止めたい場合について規定されている。この場合に、相手装置に対して「ＰＡＵＳＥ（ポーズ）」と呼ばれる制御フレームを送信する。そのＰＡＵＳＥフレームを受信した相手装置は、ＰＡＵＳＥフレームで指定される期間、フレームの送信を止めることとなる。
【０００６】
具体的な内容を、図１５を用いて説明する。図１５に示すように、全二重リンク２で接続するネットワーク装置１５１およびサーバ装置３は、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）チップセット４、５及びＭＡＣ制御部６、７を備える。ＭＡＣチップセット４、５及びＭＡＣ制御部６、７がＩＥＥＥ８０２．３ｘ規格のＰＡＵＳＥ機能を備える場合、次のような動作をする。
【０００７】
ＭＡＣ制御部６、７は、上位プログラム等からＰＡＵＳＥ時間の情報を含むＰＡＵＳＥフレーム送信指示を受ける。ＭＡＣチップセット４、５は、この送信指示により、指示されたＰＡＵＳＥ時間がセットされたＰＡＵＳＥフレームを生成する。ＭＡＣチップセット４、５は、ＰＡＵＳＥフレームを生成した後、ＰＡＵＳＥフレームを送信する。また、ＭＡＣチップセット４、５は、接続先の装置からＰＡＵＳＥフレームを受信する。ＭＡＣ制御部６、７は、受信したＰＡＵＳＥフレームの内容を解読する。解読の後、ＭＡＣ制御部６、７は、指定されたＰＡＵＳＥ時間を、内蔵するＰＡＵＳＥタイマ８、９にセットする。ＭＡＣ制御部６、７は、セットと同時に、セットした時点での実行中のフレームの送信が終了するのを待つ。ＭＡＣ制御部６、７は、送信終了後に、ＰＡＵＳＥタイマ８、９をスタートさせる。そして、サーバ装置３は、ＰＡＵＳＥ時間が経過するまでの間、フレームの送信を中断する。
【０００８】
このＰＡＵＳＥ時間は、１から６５５３５の範囲で指定される。１ＰＡＵＳＥ時間の単位は、６４バイトのフレーム１個の送信時間である。すなわち、５１２ビットの送信に費やす時間（５１２ビット時間）である。
【０００９】
一方、近年イントラネットの構成が変化している。この変化により、組織の中心にあるエンタープライズ・サーバ群（サーバ・ファーム）と各部門のクライアント間との通信トラフィックの比率が高くなっている。また、ＩＥＥＥ８０２．３ｚ規格等の高速ＬＡＮや、装置間の高速接続方式であるリンク・アグリゲーション技術（ＩＥＥＥ８０２．３ａｄ規格）が登場してきた。これらの登場により、サーバ装置からの送信トラフィックが大きくなる傾向にある。なお、トラフィックとは、通信帯域量のことであり、送信トラフィックとは、単位時間における送信帯域量のことである。
【００１０】
一般に、サーバ−クライアントシステムでは、末端クライアントが接続するＬＡＮの帯域は小さい。従って、サーバ装置からの送信トラフィックが大きい場合、途中のネットワーク装置で輻輳が発生する。従来のネットワーク装置は、輻輳の発生に伴い、フレームを廃棄していた。
【００１１】
【発明が解決しようとする課題】
通常、通信ネットワークシステムを構成する装置においては、その処理能力を超えたトラフィックを受信したときに、フレームを廃棄する。廃棄されたフレームは再送される。従って、さらにトラフィックは増大する。その結果、さらなるフレーム廃棄を招くという悪循環が生じる。
【００１２】
このように、フレーム廃棄によるトラフィック制御では、輻輳を解決できない。高トラフィックの送信元は、サーバ・ファームである。従って、サーバ装置自身に送信トラフィックを抑制させる手段が求められる。
【００１３】
また、ネットワーク管理者においては、サーバ・トラフィックをアプリケーション単位に帯域制御する。これにより、輻輳を回避しつつネットワーク・ユーザが満足する通信帯域を提供する手段が求められている。
【００１４】
上述のように、ＩＥＥＥ８０２．３ｘ規格は、２台の装置間で接続先からの送信トラフィックを抑制する目的で提案されている。ＩＥＥＥ８０２．３ｘ規格では、ＰＡＵＳＥフレーム送信を起動させて帯域制御を実施する手段は規定されていない。従って、上記の課題解決のためには新たな手段が必要である。
【００１５】
本発明の目的は、サーバ−クライアントシステムを構成するネットワークシステムにおいて、輻輳を回避させることである。また、本発明の目的は、サーバ・トラフィックをネットワーク管理者が設定する単位（アプリケーションや宛先ＩＰアドレス等）で、帯域を制御することである。さらに、本発明の他の目的は、不要な送信遅延を起こすことなく、帯域を制御することである。
【００１６】
【課題を解決するための手段】
上記目的を達成するための手段について述べる。ネットワーク装置は、１台または複数のサーバ装置に直接接続して、ネットワークシステムの構成要素となる。ネットワーク装置において、ネットワーク管理者は、各々のサーバ装置からの送信トラフィックに対して、予め任意の帯域を割り当てる。ネットワーク装置は、各々のサーバ装置に対して、定期的にＰＡＵＳＥフレームを送信するよう送信指示を行う帯域制御手段を有する。ネットワーク装置は、帯域制御手段の送信指示に従い、各々のサーバ装置に対して、全二重リンクで接続された各々のポートから定期的にＰＡＵＳＥフレームを送信する。ＰＡＵＳＥフレームには、サーバ装置からのフレームの送信を中断させる中断期間がセットされている。サーバ装置は、ネットワーク装置から送信されたＰＡＵＳＥフレームを受信する。サーバ装置は、受信したＰＡＵＳＥフレームにセットされた中断期間に関連する期間だけ、ネットワーク装置に対するフレームの送信を中断する。サーバ装置は、中断期間が経過した後に、ネットワーク装置に対するフレームの送信を開始する。このようにサーバ装置のフレームの送信の中断期間を有効に利用することにより、各々のサーバ装置からの送信トラフィックを、予め設定された帯域量以内に制御することが可能となる。
【００１７】
また、本発明の他の実施の形態では、上記帯域制御手段は、各々のサーバ装置からの送信トラフィックが予め設定された帯域量を超えたときだけ、ＰＡＵＳＥフレームを送信するようにしてもよい。予め設定された帯域量を超えたときだけＰＡＵＳＥフレームが送信されることにより、定期的なサーバ装置のフレーム送信の中断による不要な送信遅延を防ぐことが可能となる。
【００１８】
【発明の実施の形態】
（実施例１）
以下、本発明の実施例を、図１を用いて説明する。
【００１９】
なお、本実施例で記述する時間の単位は、特に指定しない限り、「従来の技術」の欄で説明したＩＥＥＥ８０２．３ｘにおける時間単位（５１２ビット時間）である。
【００２０】
図１は、本発明によるネットワーク装置１と、ネットワーク装置１にリンク２で接続するサーバ装置３を示す。リンク２は、ネットワーク装置１−サーバ装置３の間で、全二重通信を行うことに用いられる物理的な伝送媒体である。ネットワーク装置１及びサーバ装置３は、ＭＡＣチップセット４、５及びＭＡＣ制御部６、７を備える。ＭＡＣチップセット４、５及びＭＡＣ制御部６、７は、共にＩＥＥＥ８０２．３ｘ規格のＰＡＵＳＥ機能を備えている。図中、ＭＡＣチップセット４、５、物理層チップセット、データメモリ１４、１５は、それぞれハードウェアおよびソフトウェアで構成されている。ＭＡＣ制御部６、７、帯域制御プログラム１０、１１、ＰＡＵＳＥタイマ８、９、タイマ１２、レジスタ群１３は、それぞれソフトウェアで構成されている。
【００２１】
本発明による帯域制御プログラム１０は、ＭＡＣクライアントプログラムを含む。帯域制御プログラム１０は、タイマ１２とレジスタ群１３を備える。レジスタ群には、サーバ装置３の送信トラフィックの帯域使用率ｎ（％）、ＰＡＵＳＥ時間ａ、ＰＡＵＳＥ送信間隔ｂを設定するための複数のレジスタが設けられる。帯域使用率ｎとは、リンク２の有する帯域のうち、サーバ装置３から送信されるフレームの送信帯域が、リンク２の物理帯域を使用する割合である。ＰＡＵＳＥ時間ａとは、ＰＡＵＳＥフレームにより、サーバ装置３からのフレームの送信が止められる時間のことである。ＰＡＵＳＥ送信間隔ｂとは、ＰＡＵＳＥフレームの送信される間隔のことである。
【００２２】
ネットワーク管理者は、ネットワーク装置１とサーバ装置３を接続するリンク２の帯域に対しての帯域使用率ｎを設定する。帯域使用率ｎの値は、レジスタ群１３にセットされる。また、ＰＡＵＳＥ送信間隔ｂは、予め設定されている。
【００２３】
帯域制御プログラム１０は、ＰＡＵＳＥ送信間隔ｂと、帯域使用率ｎの値から、ＰＡＵＳＥ時間ａを計算する。ＰＡＵＳＥ時間ａの計算の後、帯域制御プログラム１０は、ＰＡＵＳＥフレームの送信を指示する。ＭＡＣチップセット４は、この送信指示に従って、指示されたＰＡＵＳＥ時間がセットされたＰＡＵＳＥフレームを生成する。生成されたＰＡＵＳＥフレームは、データメモリ１４に保持される。また、ＭＡＣチップセット４は、ＰＡＵＳＥフレームを送信する。
【００２４】
ＰＡＵＳＥ時間ａ、ＰＡＵＳＥ送信間隔ｂおよび帯域使用率ｎの関係について説明する。
【００２５】
ＰＡＵＳＥ時間ａ、ＰＡＵＳＥ送信間隔ｂおよび帯域使用率ｎには、数１の関係がある。
【００２６】
【数１】
（ｂ−ａ）／ｂ＝ｎ／１００  ・・・（数１）
即ちＰＡＵＳＥ機能により、ＰＡＵＳＥ送信間隔ｂの時間内でサーバ装置３が送信可能な時間の比率は（ｂ−ａ）／ｂとなる。この値がユーザにより設定されるｎ／１００に等しくなるようにＰＡＵＳＥ時間ａを求める。
【００２７】
ＩＥＥＥ８０２．３ｘ規格では、ネットワーク装置１のＰＡＵＳＥ送信時と、受信側のサーバ装置３のＰＡＵＳＥ開始時の２回のタイミングにおいて、それぞれＰＡＵＳＥ送信、またはＰＡＵＳＥ開始が遅れてしまう。この遅れは、ネットワーク装置１またはサーバ装置３が、データフレーム送信中である場合に生じる。この遅れの長さは、送信中のフレームの長さに対応するものである。また、サーバ装置３が、ＰＡＵＳＥしている期間中に、次のＰＡＵＳＥフレームを受信した場合は、そのＰＡＵＳＥフレームを受信した時点でＰＡＵＳＥタイマ８を上書きする。
【００２８】
数１の関係式がサイズの大きいデータフレーム送信の影響を受けることのないように、ＰＡＵＳＥ送信またはＰＡＵＳＥ開始の遅れを考慮しなければならない。従って、サーバ装置３が送信する最大フレームサイズＭ（単位:バイト）に対して、ＰＡＵＳＥ時間ａおよびＰＡＵＳＥ送信間隔ｂは、数２の関係式を満たす必要がある。
【００２９】
【数２】
ｂ−ａ＞２×Ｍ／６４      ・・・（数２）
ここで、６４の単位は、バイト／時間であり、上述の如く、単位時間に送信されるフレームのバイト数である。
【００３０】
数２について、図１３を用いて説明する。図１３は、ＰＡＵＳＥ時間ａとＰＡＵＳＥ送信間隔ｂとの関係を示すグラフである。２０１は、Ｍバイトのフレームを送信した場合の送信トラフィックと送信時間を示す。ＰＡＵＳＥフレーム送信時にネットワーク装置の送信リンク２にＭバイトのフレームが送信中である場合、最大遅延時間として、Ｍ／６４が発生する。なお、Ｍ／６４は、Ｍバイトのフレームの送信に費やされる時間である。さらに、サーバ装置３でＰＡＵＳＥ受信後、ＰＡＵＳＥ開始のタイミングで、サーバ装置３からの送信リンク２上でＭバイトのフレームが送信中である場合、最大遅延時間として、Ｍ／６４がさらに追加される。数１で説明したように、ＰＡＵＳＥ時間ａ、ｂの比率で帯域制御を行うので、ＰＡＵＳＥ時間ａはＰＡＵＳＥ送信間隔ｂの時間内に収まる必要がある。そのために、数２の条件式が求められる。
【００３１】
さらに、サーバ装置３がＰＡＵＳＥしている期間中においては、サーバ装置３が搭載するアプリケーションからの送信データが、データメモリ１５に滞留される。しかし、サーバ装置３のアプリケーションは、順次、送信を要求する。よって、ＰＡＵＳＥ期間中には、データメモリ１５がオーバフローすることを防止しなければならない。従って、データメモリ１５の容量ＣとＰＡＵＳＥ時間ａは、数３の関係式を満たす必要がある。
【００３２】
【数３】
Ｃ＞６４×ａ（単位:バイト）      ・・・（数３）
ここで、６４の単位は、バイト／ＰＡＵＳＥ時間である。
【００３３】
数３の条件からＰＡＵＳＥ時間ａの最大値が決まる。次に、数２からＰＡＵＳＥ送信間隔ｂの最小値が決まる。このＰＡＵＳＥ時間ａ，ＰＡＵＳＥ送信間隔ｂの値と、数１から、帯域使用率ｎの値の最小値が得られる。ＰＡＵＳＥ送信間隔ｂの値を大きく取ると、サーバの送信トラフィックの帯域使用率ｎの最小値が大きくなり、ネットワーク管理者が設定できる帯域の範囲が小さくなる。以上を考慮してＰＡＵＳＥ送信間隔ｂの値を設定する。
【００３４】
図２に、帯域制御プログラム１０の処理フローを示す。
【００３５】
帯域制御プログラム１０は、ネットワーク管理者からのコマンド入力でスタートする（２１）。帯域使用率ｎの値は、コマンド入力時に設定するか、または事前に設定済みのパラメータ初期設定用のファイル等から読み込む。ＰＡＵＳＥ送信間隔ｂは、予め帯域制御プログラム１０に組込まれている。プログラム開始時にＰＡＵＳＥ時間ａの値を計算し、ＰＡＵＳＥフレームを作成してデータメモリ１４へ保管する（２２）。次に、タイマ１２にＰＡＵＳＥ送信間隔ｂの値をセットする（２３）。タイマ１２は、５１２ビット時間（１００Ｍｂｐｓのリンクでは５．１２マイクロ秒）毎に１ずつ減算される（２４）。タイムアップしたとき（２５）に、帯域制御プログラム１０は、ＭＡＣ制御部６に対して、ＰＡＵＳＥフレームの送信を指示（以下、ＰＡＵＳＥ送信指示という）を発行する（２６）。
【００３６】
ＰＡＵＳＥ送信指示を受けたＭＡＣ制御部６は、ＭＡＣチップセット４に対し、データメモリ１４に対するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を指示する。指示を受けたＭＡＣチップセット４は、ＰＡＵＳＥフレームの送信を実行する。ＤＭＡは、ＭＡＣチップセット４内のＤＭＡ制御部により制御される。
【００３７】
以上で説明した図２の一連の処理が、ＰＡＵＳＥ送信間隔ｂをサイクルタイムとして繰り返される。ＰＡＵＳＥフレームを受信したサーバ装置３のＭＡＣチップセット５及びＭＡＣ制御部７は、指示されたＰＡＵＳＥ時間ａの期間中、ＰＡＵＳＥを実行する。この実行の結果、サーバ装置３からの送信トラフィックを、リンク２の送信帯域のｎ％以下とすることが可能となる。
【００３８】
本実施例は、図１に示すネットワーク装置１とサーバ装置３との接続のみには限られない。
【００３９】
図１５に示すネットワーク装置１５１は、図１に示すサーバ装置３と同様のネットワークインタフェース制御部を備えている。従って、サーバ装置３をネットワーク装置１５１と置き換えた場合にも、本実施例が適用可能である。
【００４０】
また、ネットワーク装置１同士を接続させた場合にも、本実施例が適用可能である。
【００４１】
なお、ネットワーク装置とは、ハブ、ＬＡＮスイッチ、ルータ等の装置のみに限られず、ネットワークシステムを介して情報のやり取りを行う装置、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ等の全般をいう。
【００４２】
本実施例を用いた帯域制御の様子を図９に示す。点線１００は、サーバ装置３のアプリケーションが要求する送信トラフィックを示す。実線１０１は、本実施例を用いた帯域制御されたネットワーク装置１−サーバ装置３間のリンク２上の送信トラフィックを示す。この図では、リンク２の総帯域１００Ｍｂｐｓに対して、ネットワーク管理者の設定した帯域使用率ｎを５０％と設定した場合である。帯域使用率５０％を超える分の要求トラフィックが時間的に後回しにされ、要求トラフィックの小さな時間帯へシフトしている様子が示されている。なお、設定した帯域使用率ｎに対応する帯域は、５０Ｍｂｐｓ（１０４）である。
【００４３】
なお、図９のグラフにおいてリンク２上の送信トラフィック１０１は常に設定帯域１０４以下であるように示されている。しかし、これはマクロな時間軸で表現した場合を示す。
【００４４】
図１０は、図９に示す時間帯１０２を拡大したグラフである。ミクロな時間軸で表現した場合、トラフィックが０の時間帯と、トラフィックが１００Ｍｂｐｓの時間帯とは交互に表現される。このうち、トラフィックが０の時間帯は、サーバ装置３がＰＡＵＳＥしている状態が存在することを示す。トラフィックが１００Ｍｂｐｓの時間帯は、サーバ装置３によるフレームが送信されている状態が存在することを示す。時間帯１０２の合計トラフィックを平均した分のトラフィックは、帯域使用率ｎに対応した帯域５０Ｍｂｐｓ（１０４）以下となる。
【００４５】
なお、本実施例は、サーバ装置３が送信するトラフィックに無関係に定期的にＰＡＵＳＥフレームを送信するものである。従って、サーバ装置３が送信するトラフィックが、ネットワーク管理者により設定された帯域使用率ｎ以下であってもＰＡＵＳＥ機能によりサーバ装置３からのデータフレームの送信が中断される。これに関して、図９に示す時間帯１０３の時間軸を拡大して表したものが、図１１のグラフである。点線１００は、上述のように、サーバ装置３のアプリケーションが要求する送信トラフィックである。図中、ミクロに表現した場合、リンク２上の送信トラフィックが０である時間帯が存在する。しかし、リンク２上の送信トラフィックが０の時間帯においても、サーバ装置３のアプリケーションはフレームの送信を要求する。従って、送信トラフィックが０の時間帯に対応したトラフィック１００の部分は、サーバ装置３の送信再開時に、その時間帯に本来送信されるべきトラフィック１００の部分と合わせて送信される。リンク２上の送信トラフィックが０の時間帯に、送信データは、一時的に止められて、データメモリ１５に滞留している。送信データは、送信再開時に、一気に送出される。この場合、ＰＡＵＳＥ送信間隔ｂの時間での平均送信トラフィック量は、影響を受けない。しかし、個々のフレーム送信に対しては、ＰＡＵＳＥ時間ａの値を最大値とする送信遅延が発生する。
【００４６】
この場合の送信トラフィック１０５の波形を、図１２に正確に表現する。
【００４７】
次に、この送信遅延を起こさずに帯域制御を行うことが可能な実施例について説明する。
【００４８】
（実施例２）
本発明の他の実施例を説明する。
【００４９】
図３のネットワーク装置３１は、図１のネットワーク装置１に、新たにバイトカウンタ３２を設けている。バイトカウンタ３２は、ハードウェアおよびソフトウェアで構成されている。
【００５０】
図３において、バイトカウンタ３２は、サーバ装置３からの送信トラフィックを実測するものである。帯域制御プログラム３３は、バイトカウンタ３２の測定値を利用して、ＰＡＵＳＥ時間ｅを計算する。計算されたＰＡＵＳＥ時間ｅは実施例１と同様に、サーバ装置３に指示される。なお、本実施例においては、実施例1と異なり、ＰＡＵＳＥ時間をｅで示す。
【００５１】
本実施例では、バイトカウンタ３２により実際のサーバ装置３の送信トラフィックを観測できる。観測をもとに、ネットワーク装置３１は、サーバ装置３の送信トラフィックが、帯域使用率ｎを超えたときだけＰＡＵＳＥフレームを送信する。従って、ＰＡＵＳＥフレームを送信するタイミングを可変的に決定するものである。
【００５２】
以下、具体的に説明する。
【００５３】
本発明による帯域制御プログラム３３は、タイマ３４とレジスタ群３５とを有する。レジスタ群３５は、レジスタｎ、レジスタｃ、レジスタｐを有する。
【００５４】
ネットワーク管理者は、リンク２の帯域に対して、サーバ装置３からのフレームの送信に要する帯域使用率ｎ（％）の値を設定する。帯域使用率ｎは、レジスタ群のレジスタｎにセットされる。
【００５５】
帯域制御プログラム３３は、トラフィック観測時間ｃ毎に、リンク２のトラフィックを観測する。ネットワーク管理者は、予め、トラフィック観測時間ｃを設定する。このトラフィック観測時間ｃが、レジスタｃに設定される。なお、トラフィック観測時間ｃとは、帯域制御プログラム３３がバイトカウンタ３２の測定する値を読み取る時間の間隔のことである。
【００５６】
許可トラフィックｐ（単位:バイト）は、帯域使用率ｎを基に計算される。許可トラフィックｐは、レジスタｐに設定される。
【００５７】
バイトカウンタ３２は、サーバ装置３からの送信トラフィック（以下、サーバ送信トラフィックという）ｘ（単位:バイト）を測定する。帯域制御プログラム３３は、トラフィック観測時間ｃにおいて、サーバ送信トラフィックｘが許可トラフィックｐを超えた場合に、ＰＡＵＳＥフレームを生成する。帯域制御プログラム３３は、数４の関係式を満たすＰＡＵＳＥ時間ｅを計算する。ＰＡＵＳＥ時間ｅを計算した後、ＰＡＵＳＥフレームを生成して、発行する。ＰＡＵＳＥ時間ｅとは、実施例１と同様に、ＰＡＵＳＥフレームにより、サーバ装置３からのフレームの送信が止められる時間のことである。
【００５８】
【数４】
ｘ／（６４×（ｃ＋ｅ））≦ｎ／１００      ・・・（数４）
すなわち、ＰＡＵＳＥ機能により、トラフィック観測時間ｃとＰＡＵＳＥ時間ｅを合計した時間内でのサーバ送信トラフィックｘの帯域使用率が、ユーザにより設定されるｎ／１００以下になるようにＰＡＵＳＥ時間ｅを求める。
【００５９】
許可トラフィックｐは、ＰＡＵＳＥフレームの発行の判定基準となる。許可トラフィックｐは、数５より得られる。
【００６０】
【数５】
ｐ＝６４×ｃ×ｎ／１００        ・・・（数５）
ここで、６４の単位は、バイト／時間であり、単位時間に送出されるフレームのバイト数である。
【００６１】
数４および数５から、数６が得られる。数６は、ＰＡＵＳＥ時間ｅの計算式である。実際、ＰＡＵＳＥ時間ｅは、ｘ−ｐ＞０の場合に、数６を満たす最小の整数値となる。
【００６２】
【数６】
ｅ≧（（ｘ−ｐ）／６４）×（１００／ｎ）      ・・・（数６）
トラフィック観測時間ｃに対しては、図１の実施例と同様に、実装上の制約がある。ここでは、サーバ装置３が送信する最大フレームサイズＭ、またはサーバ装置内蔵データメモリ１５の容量Ｃによる実装上の制約である。この実装上の制約について、数７および数８で示す。これらの式は、それぞれ、図１の実施例の数２および数３に対応するものである。
【００６３】
【数７】
ｃ＞２×Ｍ／６４                  ・・・（数７）
【００６４】
【数８】
Ｃ＞６４×ｃ×（１００−ｎ）／ｎ  ・・・（数８）
上記のトラフィック観測時間ｃ、サーバ送信トラフィックｘ、許可トラフィックｐ、ＰＡＵＳＥ時間ｅの関係を図１４に示す。トラフィック２０２は、トラフィック観測時間ｃに測定されたサーバ送信トラフィックｘである。トラフィック２０３は、トラフィック観測時間ｃの経過の後に続けて観測される観測時間ｃ＋ｅの期間のうち、サーバ装置３によりＰＡＵＳＥが実行されるまでの期間のサーバ送信トラフィックである。トラフィック２０４は、トラフィック観測時間ｃの経過の後に続けて観測される観測時間（ｃ＋ｅ）の期間のうち、サーバ装置３によりＰＡＵＳＥが実行された後の期間のサーバ送信トラフィックである。
【００６５】
サーバ送信トラフィックｘが、数５の許可トラフィックｐを超える場合、帯域制御プログラム３３は、数６からＰＵＡＳＥ時間ｅを計算する。計算の後、帯域制御プログラム３３は、ＰＡＵＳＥフレームの送信を指示する。ネットワーク装置３１からＰＡＵＳＥフレームが送信される。その後、サーバ装置３にてＰＡＵＳＥが実施される。
【００６６】
ネットワーク装置３１側では、バイトカウンタ３２が、トラフィック観測時間ｃの経過の後に、続けて観測時間ｃ＋ｅの期間、サーバ送信トラフィックｘを観測する。観測の結果、帯域制御プログラム３３は、トラフィック２０３とトラフィック２０４とを合わせたサーバ送信トラフィックｘ’の値を得る。このとき、サーバ送信トラフィックｘ’が、再び、許可トラフィックｐを超える場合がある。この場合には、帯域制御プログラム３３は、再び、ＰＡＵＳＥ時間ｅ’を計算して、次のＰＡＵＳＥフレームの送信を指示する。以後、サーバ装置３−ネットワーク装置３１間においては、これらの動作が繰り返される。
【００６７】
帯域制御プログラム３３の処理フローについて、図４を用いて説明する。
【００６８】
帯域制御プログラム３３は、ネットワーク管理者からのコマンド入力でスタートする（４１）。帯域使用率ｎの値は、コマンド入力時に設定するか、又は事前に設定されたコンフィグレーションファイル等から読み込む。トラフィック観測時間ｃは、予めプログラム３３に組み込まれている。プログラム開始時に許可トラフィックｐの値を計算して、レジスタｐにセットする（４２）。次に、タイマ３４にトラフィック観測時間ｃの値をセットして（４３）、続けてバイトカウンタ３２をリセットする（４４）。タイマ３４は、５１２ビット時間（１００Ｍｂｐｓのリンクでは５．１２マイクロ秒）毎に１ずつ減算される（４５）。減算の結果、タイムアップしたとき（４６）に、バイトカウンタ３２より、サーバ送信トラフィックｘを読み取る（４７）。サーバ送信トラフィックｘが、帯域使用率ｎに対応する帯域量を超えているか否かの判定を行う（４８）。サーバ送信トラフィックｘが、帯域使用率ｎに対応する帯域量以下であれば、再度タイマ３４に、トラフィック観測時間ｃの値をセット（４９）して、処理（４４）からの処理を繰り返す。
【００６９】
一方、処理（４８）の判定において、サーバ送信トラフィックｘが帯域使用率ｎに対応する帯域量を超えている場合には、ＰＡＵＳＥ時間ｅを計算する。計算の後、ＰＡＵＳＥ時間ｅの値をセットしたＰＡＵＳＥフレームの生成を指示して、ＭＡＣ制御部６に対してＰＡＵＳＥフレームを送信するための指示を発行する（５０）。ＰＡＵＳＥ送信指示を受けたＭＡＣ制御部６は、ＭＡＣチップ４に対し、ＰＡＵＳＥフレームが保管されているメモリ１４に対してのＤＭＡを指示する。ＭＡＣチップ４は、ＰＡＵＳＥフレームの送信を実行する。帯域制御プログラム３３は、処理（５０）に続けて、タイマ３４に新たに観測時間（ｃ＋ｅ）の値をセットする（５１）。セットの後、処理（４４）からの処理を繰り返す。タイマ３４に（ｃ＋ｅ）の値をセットする理由を述べる。ＰＡＵＳＥ送信等がデータフレーム送信中に発行される。この場合に、ＰＡＵＳＥ送信指示から実際のＰＡＵＳＥ開始までにタイムラグが生じる。従って、サーバ装置３が送信可能な時間の延べ時間がトラフィック観測時間ｃになるように観測する必要があるからである。
【００７０】
図４を用いて説明した一連の処理が繰り返されることにより、指示されたＰＡＵＳＥ時間ｅの間、ＰＡＵＳＥが実施される。これにより、サーバ送信トラフィックｘを、リンク２の帯域使用率ｎ以下とすることが可能となる。さらに、ＰＡＵＳＥフレームの送信は、サーバ送信トラフィックｘが帯域使用率ｎを超えたときのみ実行される。従って、帯域使用率ｎ以下の間は、サーバ送信トラフィックｘによる不要な送信遅延を生じることがない。
【００７１】
以上、本発明の帯域制御機構について説明した。
【００７２】
（実施例３）
次に、本発明の帯域制御機構を、拡張したネットワークシステムに適用した実施例について説明する。
【００７３】
本実施例に示すネットワークシステムを、図５に示す。このネットワークシステムにおいて、ネットワーク装置は、複数の物理リンクを収容する。複数のサーバ装置は、複数の物理リンクの各々に接続される。
【００７４】
本実施例では、ネットワーク装置に、ＬＡＮスイッチを用いて説明する。ＬＡＮスイッチは、本発明の帯域制御機構を備えているものとする。但し、本実施例は、ＬＡＮスイッチに限らず、ＩＥＥＥ８０２．３ｘ規格の技術をサポートしている全てのネットワーク装置に適用可能である。
【００７５】
ＬＡＮスイッチＡ（６１）は、サーバ装置ａ（６２）からサーバ装置ｄ（６５）の４台により構成されるサーバ装置（以下、「サーバ装置群」という）に接続されている。接続には、全二重通信を行えるリンクが用いられる。ＬＡＮスイッチＡ（６１）は、４台のサーバ装置のそれぞれと一台毎に接続できるポート（図示せず）を４個備えている。ＬＡＮスイッチＡ（６１）は、実施例１で示した帯域制御プログラム１０、または実施例２で示した帯域制御プログラム３３（以下、「帯域制御プログラム１０、３３」という。）を有する。ＬＡＮスイッチＡ（６１）の個々のポートには、それぞれ、ＭＡＣチップおよびＭＡＣ制御部が設けられる。それぞれのＭＡＣチップおよびＭＡＣ制御部は、帯域制御プログラム１０、３３により制御される。帯域制御プログラム１０、３３の個数に対する限定はなく、個々のポートに対してそれぞれ設けられるものでもよい。また、全てのポートに対して、ただ一つ設けられるものでもよい。
【００７６】
ＬＡＮスイッチＡ（６１）は、サーバ装置群と、クライアント群との間の通信を中継する位置にある。クライアント群は、ＬＡＮスイッチ１（６６）およびＬＡＮスイッチ２（６７）に収容される。ＬＡＮスイッチ１（６６）およびＬＡＮスイッチ２（６７）は、ＬＡＮスイッチＡ（６１）とリンクを介して接続する。
【００７７】
サーバ装置ａ（６２）からサーバ装置ｄ（６５）のそれぞれは、それぞれ別個のアプリケーションを搭載している。各々のサーバ送信トラフィックを、それぞれ、サーバ送信トラフィックａ、ｂ、ｃ、ｄとする。ネットワークシステムのネットワーク管理者は、ＬＡＮスイッチＡ（６１）において、サーバ送信トラフィックａからｄ（６８）のそれぞれに対して帯域使用率ｎａ、ｎｂ，ｎｃ、ｎｄ（図５の矢印ａからｄの幅が使用帯域を示す）を設定する。帯域制御プログラム１０、３３を起動することにより、サーバ装置群からクライアント群へ流れるサーバ送信トラフィックに対して、アプリケーション毎に所望の帯域を設定することが可能となる。
【００７８】
また、本発明の帯域制御機構は、ネットワーク装置と１台のサーバ装置とを接続するリンクが、複数の場合にも適用可能である。この場合、各々のリンクに接続するポートに対応して、それぞれＭＡＣ制御部が設けられる。それぞれのＭＡＣ制御部を独立に動作させることにより、個々のリンク単位にサーバ送信トラフィックを制御することが可能である。１台のサーバ装置が複数のアプリケーションを搭載する場合に有効である。
【００７９】
現在、ＩＥＥＥ８０２．３ａｄでは、リンク・アグリゲーション（ＬＡ）規格についての標準化作業が進行中である。図８は、リンク・アグリゲーション（ＬＡ）規格を適用した場合のＯＳＩ（Ｂａｓｉｃ  Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）基本参照モデルのデータリンク層におけるプロトコルの関係を示している。以下、図８を用いて説明する。
【００８０】
本発明の帯域制御プログラム１０、３３の実装方法には、以下の２通りがある。１通り目は、帯域制御プログラム１０、３３を、ＬＡサブレイヤ９２の上位プログラム９３として実装するものである。この場合、帯域制御プログラム１０、３３は、図８に示すＭＡＣクライアント９３に相当する部分に該当する。ＬＡサブレイヤ９２は、１つ存在して、複数のＭＡＣ制御部９１を集約する。ＬＡサブレイヤ９２は、複数のＭＡＣ制御部９１を、上位のプログラムであるＭＡＣクライアント９３に対して、１個のＭＡＣインタフェースとして見せる。従って、帯域制御プログラム１０、３３がＰＡＵＳＥ送信指示を発行した場合、ＬＡサブレイヤ９２は、ＰＡＵＳＥ送信指示を、下位の全てのＭＡＣ制御部９１に配布する。特に、実施例２の帯域制御機構の場合、帯域制御プログラム３３は、バイトカウンタ３２を使用する。バイトカウンタ３２は、ＬＡサブレイヤ９２の配下にある全てのリンクのトラフィックを集計する。従って、バイトカウンタ３２は、帯域制御プログラム３３に集計データを伝えるように実装される。
【００８１】
この１通り目の実装方法が適用されるネットワークシステムの一例を挙げる。この一例には、ネットワーク装置が、１台のサーバ装置につき、複数のリンクで接続される場合が該当する。サーバ装置とネットワーク装置とは、それぞれ、複数のポートを介して複数のリンクに接続される。この場合、それぞれのポートに対応するＭＡＣ制御部９１は、上位の制御プログラムであるＭＡＣクライアント９３で１つにまとめられて制御される。
【００８２】
この場合のネットワークシステムの構成を、図６に示す。
【００８３】
図６において、７２から７５の各サーバ装置は、複数のリンクでＬＡＮスイッチＡ（７１）と接続している。複数のリンクは、ＬＡで束ねられたものである。図５の場合と同様に、各サーバ装置（７２から７５）は、それぞれ別個のアプリケーションを搭載している。各々のサーバ送信トラフィックは、サーバ送信トラフィックａ、ｂ、ｃ、ｄとする。ＬＡＮスイッチＡ（７１）は、本発明の帯域制御機構を有する。このネットワークシステムのネットワーク管理者は、ＬＡＮスイッチＡ（７１）において、帯域使用率ｎを設定する。帯域使用率ｎは、サーバ送信トラフィックａからｄ（７８）に対して、それぞれ、帯域使用率ｎａ、ｎｂ、ｎｃ、ｎｄと設定するものとする。帯域使用率ｎの設定後、帯域制御プログラム１０、３３を起動する。これにより、サーバ装置群からクライアント群へ流れるサーバ送信トラフィックに対して、アプリケーション毎に所望の帯域を設定することが可能となる。
【００８４】
具体的には、図１に示す実施例１の帯域制御プログラム１０では、各々のリンクに対して定期的にＰＡＵＳＥフレームを送信する。従って、送信間隔ｂおよびＰＡＵＳＥ時間ａは、個々のリンクの帯域をもとに個別に計算する。一方、図３に示す実施例２の帯域制御プログラム３３では、ＬＡで束ねられた全てのリンクの帯域の総和に対して帯域使用率ｎを設定する。トラフィック観測時間ｃおよびＰＡＵＳＥ時間ｅの計算も全てのリンクのトラフィックの集計値をもとに計算する。
【００８５】
２通り目は、帯域制御プログラム１０、３３は、ＬＡサブレイヤ９２と並列に、個々のＭＡＣ制御部９１に直接アクセスできるように実装するものである。この場合、帯域制御プログラム１０、３３は、図８に示すＭＡＣクライアントプログラム９４に相当するものである。この場合、帯域制御プログラム１０、３３は、ＬＡサブレイヤ９２の存在を無視して、個々のリンク単位で独立に動作する。なお、現時点ではＩＥＥＥ８０２．３においてこの位置にＭＡＣクライアントを置くことは規定されていない。
【００８６】
この場合のネットワークシステムの構成の一例を、図７に示す。図７においては、図６と同様に、各サーバ装置（８２、８３）は、複数のリンクでＬＡＮスイッチＡ（８１）と接続している。しかし、図６とは、次の点で異なる。１つは、各サーバ装置（８２、８３）が、各々が複数のアプリケーションを搭載している点である。もう１つは、アプリケーション毎に異なるリンク（８４、８５、８６、８７）を使用している点である。
【００８７】
以上で説明したように、本発明によれば、図５、図６、図７に示すネットワークシステムにおいて、ネットワーク管理者が各サーバ装置またはリンクに対して設定した帯域使用率ｎ以下になるように、送信トラフィックを制御することが可能である。
【００８８】
なお、ネットワーク管理者が帯域使用率ｎ等を設定する単位は、アプリケーション毎に限らず、例えば、宛先ＩＰアドレス等を設定単位としてサーバ送信トラフィックを帯域制御することも好ましい。宛先ＩＰアドレスを設定単位としてサーバ送信トラフィックを帯域制御する場合には、全てのサーバ装置が同一のアプリケーションを備えていることが条件となる。さらに、各々のサーバ装置は帯域制御の対象となるリンクに対して、宛先ＩＰアドレスをもとに送信フレームを振り分けることも条件となる。
【００８９】
なお、本実施例では、ネットワーク装置をＬＡＮスイッチとして説明したが、これがルータであるでも本発明を適用することが可能である。さらに、ルータにおいても、ＬＡＮスイッチを用いた場合と同様の上記効果が得られる。
【００９０】
【発明の効果】
本発明によれば、サーバ−クライアントシステムを構成するネットワークシステムにおいて、輻輳を回避させることが可能である。さらに、サーバ・トラフィックをネットワーク管理者が設定する単位（アプリケーションや宛先ＩＰアドレス等）で、帯域を制御することが可能である。
【図面の簡単な説明】
【図１】本発明によるネットワーク装置１を用いたネットワークの構成図である。
【図２】帯域制御プログラム１０の処理フローを示すフローチャートである。
【図３】本発明によるネットワーク装置３１を用いたネットワークの構成図である。
【図４】帯域制御プログラム３３の処理フローを示すフローチャートである。
【図５】本発明が適用されるネットワークシステムの一構成例である。
【図６】本発明が適用されるネットワークシステムの一構成例である。
【図７】個々のリンク毎に帯域制御するネットワークシステムの構成例である。
【図８】本発明をリンク・アグリゲーションと共に適用した場合のＯＳＩのデータリンク層におけるプロトコルの関係を示す構成図である。
【図９】サーバ送信トラフィックのグラフである。
【図１０】図９に示す時間帯１０２の時間軸をを拡大したグラフである。
【図１１】図９に示す時間帯１０３の時間軸を拡大したグラフである。
【図１２】図１１のサーバ送信トラフィック１０５の波形を拡大したグラフである。
【図１３】ＰＡＵＳＥ時間ａとＰＡＵＳＥ送信間隔ｂとの関係を示すグラフである。
【図１４】トラフィック観測時間ｃ、サーバ送信トラフィックｘ、許可トラフィックｐ、ＰＡＵＳＥ時間ｅの関係を示すグラフである。
【図１５】従来のネットワーク装置１５１を用いたネットワークの構成図である。
【符号の説明】
１、３１、１５１・・・ネットワーク装置
２・・・リンク
３・・・サーバ装置
４、５・・・ＭＡＣチップセット
６、７・・・ＭＡＣ制御部
８、９・・・ＰＡＵＳＥタイマ
１０、３３・・・帯域制御プログラム
１１・・・ＭＡＣクライアントプログラム
１２、３４・・・タイマ
１３、３５・・・レジスタ群
３２・・・バイトカウンタ
【図１】
0003843657.tif 000002
【図２】
0003843657.tif 000003
【図３】
0003843657.tif 000004
【図４】
0003843657.tif 000005
【図５】
0003843657.tif 000006
【図６】
0003843657.tif 000007
【図７】
0003843657.tif 000008
【図８】
0003843657.tif 000009
【図９】
0003843657.tif 000010
【図１０】
0003843657.tif 000011
【図１１】
0003843657.tif 000012
【図１２】
0003843657.tif 000013
【図１３】
0003843657.tif 000014
【図１４】
0003843657.tif 000015
【図１５】
0003843657.tif 000016