JP3843657B2 - ネットワーク装置 - Google Patents
ネットワーク装置 Download PDFInfo
- Publication number
- JP3843657B2 JP3843657B2 JP26155899A JP26155899A JP3843657B2 JP 3843657 B2 JP3843657 B2 JP 3843657B2 JP 26155899 A JP26155899 A JP 26155899A JP 26155899 A JP26155899 A JP 26155899A JP 3843657 B2 JP3843657 B2 JP 3843657B2
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- bandwidth
- pause
- frame
- traffic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、サーバ−クライアントシステムを構成するネットワーク装置に係り、特に、1台又は複数のサーバからなるサーバファームと、クライアント装置を束ねるLANとの間に置かれてサーバからクライアントへの通信帯域(トラフィック量)制御に関する。
【0002】
【従来の技術】
IEEE802.3では、ローカル・エリア・ネットワーク(LAN)について規定している。多くのネットワークシステムが、IEEE802.3で規定のLANで構成されている。
【0003】
近年、このネットワークシステムの構成装置の主体が、共有バスネットワークを構築するハブ装置から、スイッチングネットワークを構築するLANスイッチへと変化している。この変化に従い、ネットワークシステムを構成する装置のネットワーク・インタフェース同士を接続するリンクも、変化してきている。すなわち、従来は、共有バスで使用される半二重リンクであったものが、全二重リンクへと変化してきている。この全二重リンクとは、リンクに接続する装置が共に、同時に送受信可能なリンクである。また、ネットワークシステムを構成する装置とは、例えば、LANスイッチ等のネットワーク装置、サーバ/PC等のホスト装置等である。
【0004】
全二重リンクは、送信用と受信用にそれぞれ専用の通信線がある。全二重リンクによれば、データ衝突が発生しないので、連続したフレーム送信が可能である。しかし、その送信トラフィックが受信側装置の受信処理能力を超えてしまうとフレーム廃棄が発生する。このフレーム廃棄を回避する手段として、IEEE802.3xと呼ばれる標準仕様が規定されている。IEEE802.3xは、全二重リンクで接続する装置間のトラフィックを抑制する技術である。
【0005】
IEEE802.3xでは、全二重リンクで接続される2台の装置において、一方の装置が相手装置からのフレーム送信を一定期間止めたい場合について規定されている。この場合に、相手装置に対して「PAUSE(ポーズ)」と呼ばれる制御フレームを送信する。そのPAUSEフレームを受信した相手装置は、PAUSEフレームで指定される期間、フレームの送信を止めることとなる。
【0006】
具体的な内容を、図15を用いて説明する。図15に示すように、全二重リンク2で接続するネットワーク装置151およびサーバ装置3は、MAC(Media Access Control)チップセット4、5及びMAC制御部6、7を備える。MACチップセット4、5及びMAC制御部6、7がIEEE802.3x規格のPAUSE機能を備える場合、次のような動作をする。
【0007】
MAC制御部6、7は、上位プログラム等からPAUSE時間の情報を含むPAUSEフレーム送信指示を受ける。MACチップセット4、5は、この送信指示により、指示されたPAUSE時間がセットされたPAUSEフレームを生成する。MACチップセット4、5は、PAUSEフレームを生成した後、PAUSEフレームを送信する。また、MACチップセット4、5は、接続先の装置からPAUSEフレームを受信する。MAC制御部6、7は、受信したPAUSEフレームの内容を解読する。解読の後、MAC制御部6、7は、指定されたPAUSE時間を、内蔵するPAUSEタイマ8、9にセットする。MAC制御部6、7は、セットと同時に、セットした時点での実行中のフレームの送信が終了するのを待つ。MAC制御部6、7は、送信終了後に、PAUSEタイマ8、9をスタートさせる。そして、サーバ装置3は、PAUSE時間が経過するまでの間、フレームの送信を中断する。
【0008】
このPAUSE時間は、1から65535の範囲で指定される。1PAUSE時間の単位は、64バイトのフレーム1個の送信時間である。すなわち、512ビットの送信に費やす時間(512ビット時間)である。
【0009】
一方、近年イントラネットの構成が変化している。この変化により、組織の中心にあるエンタープライズ・サーバ群(サーバ・ファーム)と各部門のクライアント間との通信トラフィックの比率が高くなっている。また、IEEE802.3z規格等の高速LANや、装置間の高速接続方式であるリンク・アグリゲーション技術(IEEE802.3ad規格)が登場してきた。これらの登場により、サーバ装置からの送信トラフィックが大きくなる傾向にある。なお、トラフィックとは、通信帯域量のことであり、送信トラフィックとは、単位時間における送信帯域量のことである。
【0010】
一般に、サーバ−クライアントシステムでは、末端クライアントが接続するLANの帯域は小さい。従って、サーバ装置からの送信トラフィックが大きい場合、途中のネットワーク装置で輻輳が発生する。従来のネットワーク装置は、輻輳の発生に伴い、フレームを廃棄していた。
【0011】
【発明が解決しようとする課題】
通常、通信ネットワークシステムを構成する装置においては、その処理能力を超えたトラフィックを受信したときに、フレームを廃棄する。廃棄されたフレームは再送される。従って、さらにトラフィックは増大する。その結果、さらなるフレーム廃棄を招くという悪循環が生じる。
【0012】
このように、フレーム廃棄によるトラフィック制御では、輻輳を解決できない。高トラフィックの送信元は、サーバ・ファームである。従って、サーバ装置自身に送信トラフィックを抑制させる手段が求められる。
【0013】
また、ネットワーク管理者においては、サーバ・トラフィックをアプリケーション単位に帯域制御する。これにより、輻輳を回避しつつネットワーク・ユーザが満足する通信帯域を提供する手段が求められている。
【0014】
上述のように、IEEE802.3x規格は、2台の装置間で接続先からの送信トラフィックを抑制する目的で提案されている。IEEE802.3x規格では、PAUSEフレーム送信を起動させて帯域制御を実施する手段は規定されていない。従って、上記の課題解決のためには新たな手段が必要である。
【0015】
本発明の目的は、サーバ−クライアントシステムを構成するネットワークシステムにおいて、輻輳を回避させることである。また、本発明の目的は、サーバ・トラフィックをネットワーク管理者が設定する単位(アプリケーションや宛先IPアドレス等)で、帯域を制御することである。さらに、本発明の他の目的は、不要な送信遅延を起こすことなく、帯域を制御することである。
【0016】
【課題を解決するための手段】
上記目的を達成するための手段について述べる。ネットワーク装置は、1台または複数のサーバ装置に直接接続して、ネットワークシステムの構成要素となる。ネットワーク装置において、ネットワーク管理者は、各々のサーバ装置からの送信トラフィックに対して、予め任意の帯域を割り当てる。ネットワーク装置は、各々のサーバ装置に対して、定期的にPAUSEフレームを送信するよう送信指示を行う帯域制御手段を有する。ネットワーク装置は、帯域制御手段の送信指示に従い、各々のサーバ装置に対して、全二重リンクで接続された各々のポートから定期的にPAUSEフレームを送信する。PAUSEフレームには、サーバ装置からのフレームの送信を中断させる中断期間がセットされている。サーバ装置は、ネットワーク装置から送信されたPAUSEフレームを受信する。サーバ装置は、受信したPAUSEフレームにセットされた中断期間に関連する期間だけ、ネットワーク装置に対するフレームの送信を中断する。サーバ装置は、中断期間が経過した後に、ネットワーク装置に対するフレームの送信を開始する。このようにサーバ装置のフレームの送信の中断期間を有効に利用することにより、各々のサーバ装置からの送信トラフィックを、予め設定された帯域量以内に制御することが可能となる。
【0017】
また、本発明の他の実施の形態では、上記帯域制御手段は、各々のサーバ装置からの送信トラフィックが予め設定された帯域量を超えたときだけ、PAUSEフレームを送信するようにしてもよい。予め設定された帯域量を超えたときだけPAUSEフレームが送信されることにより、定期的なサーバ装置のフレーム送信の中断による不要な送信遅延を防ぐことが可能となる。
【0018】
【発明の実施の形態】
(実施例1)
以下、本発明の実施例を、図1を用いて説明する。
【0019】
なお、本実施例で記述する時間の単位は、特に指定しない限り、「従来の技術」の欄で説明したIEEE802.3xにおける時間単位(512ビット時間)である。
【0020】
図1は、本発明によるネットワーク装置1と、ネットワーク装置1にリンク2で接続するサーバ装置3を示す。リンク2は、ネットワーク装置1−サーバ装置3の間で、全二重通信を行うことに用いられる物理的な伝送媒体である。ネットワーク装置1及びサーバ装置3は、MACチップセット4、5及びMAC制御部6、7を備える。MACチップセット4、5及びMAC制御部6、7は、共にIEEE802.3x規格のPAUSE機能を備えている。図中、MACチップセット4、5、物理層チップセット、データメモリ14、15は、それぞれハードウェアおよびソフトウェアで構成されている。MAC制御部6、7、帯域制御プログラム10、11、PAUSEタイマ8、9、タイマ12、レジスタ群13は、それぞれソフトウェアで構成されている。
【0021】
本発明による帯域制御プログラム10は、MACクライアントプログラムを含む。帯域制御プログラム10は、タイマ12とレジスタ群13を備える。レジスタ群には、サーバ装置3の送信トラフィックの帯域使用率n(%)、PAUSE時間a、PAUSE送信間隔bを設定するための複数のレジスタが設けられる。帯域使用率nとは、リンク2の有する帯域のうち、サーバ装置3から送信されるフレームの送信帯域が、リンク2の物理帯域を使用する割合である。PAUSE時間aとは、PAUSEフレームにより、サーバ装置3からのフレームの送信が止められる時間のことである。PAUSE送信間隔bとは、PAUSEフレームの送信される間隔のことである。
【0022】
ネットワーク管理者は、ネットワーク装置1とサーバ装置3を接続するリンク2の帯域に対しての帯域使用率nを設定する。帯域使用率nの値は、レジスタ群13にセットされる。また、PAUSE送信間隔bは、予め設定されている。
【0023】
帯域制御プログラム10は、PAUSE送信間隔bと、帯域使用率nの値から、PAUSE時間aを計算する。PAUSE時間aの計算の後、帯域制御プログラム10は、PAUSEフレームの送信を指示する。MACチップセット4は、この送信指示に従って、指示されたPAUSE時間がセットされたPAUSEフレームを生成する。生成されたPAUSEフレームは、データメモリ14に保持される。また、MACチップセット4は、PAUSEフレームを送信する。
【0024】
PAUSE時間a、PAUSE送信間隔bおよび帯域使用率nの関係について説明する。
【0025】
PAUSE時間a、PAUSE送信間隔bおよび帯域使用率nには、数1の関係がある。
【0026】
【数1】
(b−a)/b=n/100 ・・・(数1)
即ちPAUSE機能により、PAUSE送信間隔bの時間内でサーバ装置3が送信可能な時間の比率は(b−a)/bとなる。この値がユーザにより設定されるn/100に等しくなるようにPAUSE時間aを求める。
【0027】
IEEE802.3x規格では、ネットワーク装置1のPAUSE送信時と、受信側のサーバ装置3のPAUSE開始時の2回のタイミングにおいて、それぞれPAUSE送信、またはPAUSE開始が遅れてしまう。この遅れは、ネットワーク装置1またはサーバ装置3が、データフレーム送信中である場合に生じる。この遅れの長さは、送信中のフレームの長さに対応するものである。また、サーバ装置3が、PAUSEしている期間中に、次のPAUSEフレームを受信した場合は、そのPAUSEフレームを受信した時点でPAUSEタイマ8を上書きする。
【0028】
数1の関係式がサイズの大きいデータフレーム送信の影響を受けることのないように、PAUSE送信またはPAUSE開始の遅れを考慮しなければならない。従って、サーバ装置3が送信する最大フレームサイズM(単位:バイト)に対して、PAUSE時間aおよびPAUSE送信間隔bは、数2の関係式を満たす必要がある。
【0029】
【数2】
b−a>2×M/64 ・・・(数2)
ここで、64の単位は、バイト/時間であり、上述の如く、単位時間に送信されるフレームのバイト数である。
【0030】
数2について、図13を用いて説明する。図13は、PAUSE時間aとPAUSE送信間隔bとの関係を示すグラフである。201は、Mバイトのフレームを送信した場合の送信トラフィックと送信時間を示す。PAUSEフレーム送信時にネットワーク装置の送信リンク2にMバイトのフレームが送信中である場合、最大遅延時間として、M/64が発生する。なお、M/64は、Mバイトのフレームの送信に費やされる時間である。さらに、サーバ装置3でPAUSE受信後、PAUSE開始のタイミングで、サーバ装置3からの送信リンク2上でMバイトのフレームが送信中である場合、最大遅延時間として、M/64がさらに追加される。数1で説明したように、PAUSE時間a、bの比率で帯域制御を行うので、PAUSE時間aはPAUSE送信間隔bの時間内に収まる必要がある。そのために、数2の条件式が求められる。
【0031】
さらに、サーバ装置3がPAUSEしている期間中においては、サーバ装置3が搭載するアプリケーションからの送信データが、データメモリ15に滞留される。しかし、サーバ装置3のアプリケーションは、順次、送信を要求する。よって、PAUSE期間中には、データメモリ15がオーバフローすることを防止しなければならない。従って、データメモリ15の容量CとPAUSE時間aは、数3の関係式を満たす必要がある。
【0032】
【数3】
C>64×a(単位:バイト) ・・・(数3)
ここで、64の単位は、バイト/PAUSE時間である。
【0033】
数3の条件からPAUSE時間aの最大値が決まる。次に、数2からPAUSE送信間隔bの最小値が決まる。このPAUSE時間a,PAUSE送信間隔bの値と、数1から、帯域使用率nの値の最小値が得られる。PAUSE送信間隔bの値を大きく取ると、サーバの送信トラフィックの帯域使用率nの最小値が大きくなり、ネットワーク管理者が設定できる帯域の範囲が小さくなる。以上を考慮してPAUSE送信間隔bの値を設定する。
【0034】
図2に、帯域制御プログラム10の処理フローを示す。
【0035】
帯域制御プログラム10は、ネットワーク管理者からのコマンド入力でスタートする(21)。帯域使用率nの値は、コマンド入力時に設定するか、または事前に設定済みのパラメータ初期設定用のファイル等から読み込む。PAUSE送信間隔bは、予め帯域制御プログラム10に組込まれている。プログラム開始時にPAUSE時間aの値を計算し、PAUSEフレームを作成してデータメモリ14へ保管する(22)。次に、タイマ12にPAUSE送信間隔bの値をセットする(23)。タイマ12は、512ビット時間(100Mbpsのリンクでは5.12マイクロ秒)毎に1ずつ減算される(24)。タイムアップしたとき(25)に、帯域制御プログラム10は、MAC制御部6に対して、PAUSEフレームの送信を指示(以下、PAUSE送信指示という)を発行する(26)。
【0036】
PAUSE送信指示を受けたMAC制御部6は、MACチップセット4に対し、データメモリ14に対するDMA(Direct Memory Access)を指示する。指示を受けたMACチップセット4は、PAUSEフレームの送信を実行する。DMAは、MACチップセット4内のDMA制御部により制御される。
【0037】
以上で説明した図2の一連の処理が、PAUSE送信間隔bをサイクルタイムとして繰り返される。PAUSEフレームを受信したサーバ装置3のMACチップセット5及びMAC制御部7は、指示されたPAUSE時間aの期間中、PAUSEを実行する。この実行の結果、サーバ装置3からの送信トラフィックを、リンク2の送信帯域のn%以下とすることが可能となる。
【0038】
本実施例は、図1に示すネットワーク装置1とサーバ装置3との接続のみには限られない。
【0039】
図15に示すネットワーク装置151は、図1に示すサーバ装置3と同様のネットワークインタフェース制御部を備えている。従って、サーバ装置3をネットワーク装置151と置き換えた場合にも、本実施例が適用可能である。
【0040】
また、ネットワーク装置1同士を接続させた場合にも、本実施例が適用可能である。
【0041】
なお、ネットワーク装置とは、ハブ、LANスイッチ、ルータ等の装置のみに限られず、ネットワークシステムを介して情報のやり取りを行う装置、例えばPC(Personal Computer)、サーバ等の全般をいう。
【0042】
本実施例を用いた帯域制御の様子を図9に示す。点線100は、サーバ装置3のアプリケーションが要求する送信トラフィックを示す。実線101は、本実施例を用いた帯域制御されたネットワーク装置1−サーバ装置3間のリンク2上の送信トラフィックを示す。この図では、リンク2の総帯域100Mbpsに対して、ネットワーク管理者の設定した帯域使用率nを50%と設定した場合である。帯域使用率50%を超える分の要求トラフィックが時間的に後回しにされ、要求トラフィックの小さな時間帯へシフトしている様子が示されている。なお、設定した帯域使用率nに対応する帯域は、50Mbps(104)である。
【0043】
なお、図9のグラフにおいてリンク2上の送信トラフィック101は常に設定帯域104以下であるように示されている。しかし、これはマクロな時間軸で表現した場合を示す。
【0044】
図10は、図9に示す時間帯102を拡大したグラフである。ミクロな時間軸で表現した場合、トラフィックが0の時間帯と、トラフィックが100Mbpsの時間帯とは交互に表現される。このうち、トラフィックが0の時間帯は、サーバ装置3がPAUSEしている状態が存在することを示す。トラフィックが100Mbpsの時間帯は、サーバ装置3によるフレームが送信されている状態が存在することを示す。時間帯102の合計トラフィックを平均した分のトラフィックは、帯域使用率nに対応した帯域50Mbps(104)以下となる。
【0045】
なお、本実施例は、サーバ装置3が送信するトラフィックに無関係に定期的にPAUSEフレームを送信するものである。従って、サーバ装置3が送信するトラフィックが、ネットワーク管理者により設定された帯域使用率n以下であってもPAUSE機能によりサーバ装置3からのデータフレームの送信が中断される。これに関して、図9に示す時間帯103の時間軸を拡大して表したものが、図11のグラフである。点線100は、上述のように、サーバ装置3のアプリケーションが要求する送信トラフィックである。図中、ミクロに表現した場合、リンク2上の送信トラフィックが0である時間帯が存在する。しかし、リンク2上の送信トラフィックが0の時間帯においても、サーバ装置3のアプリケーションはフレームの送信を要求する。従って、送信トラフィックが0の時間帯に対応したトラフィック100の部分は、サーバ装置3の送信再開時に、その時間帯に本来送信されるべきトラフィック100の部分と合わせて送信される。リンク2上の送信トラフィックが0の時間帯に、送信データは、一時的に止められて、データメモリ15に滞留している。送信データは、送信再開時に、一気に送出される。この場合、PAUSE送信間隔bの時間での平均送信トラフィック量は、影響を受けない。しかし、個々のフレーム送信に対しては、PAUSE時間aの値を最大値とする送信遅延が発生する。
【0046】
この場合の送信トラフィック105の波形を、図12に正確に表現する。
【0047】
次に、この送信遅延を起こさずに帯域制御を行うことが可能な実施例について説明する。
【0048】
(実施例2)
本発明の他の実施例を説明する。
【0049】
図3のネットワーク装置31は、図1のネットワーク装置1に、新たにバイトカウンタ32を設けている。バイトカウンタ32は、ハードウェアおよびソフトウェアで構成されている。
【0050】
図3において、バイトカウンタ32は、サーバ装置3からの送信トラフィックを実測するものである。帯域制御プログラム33は、バイトカウンタ32の測定値を利用して、PAUSE時間eを計算する。計算されたPAUSE時間eは実施例1と同様に、サーバ装置3に指示される。なお、本実施例においては、実施例1と異なり、PAUSE時間をeで示す。
【0051】
本実施例では、バイトカウンタ32により実際のサーバ装置3の送信トラフィックを観測できる。観測をもとに、ネットワーク装置31は、サーバ装置3の送信トラフィックが、帯域使用率nを超えたときだけPAUSEフレームを送信する。従って、PAUSEフレームを送信するタイミングを可変的に決定するものである。
【0052】
以下、具体的に説明する。
【0053】
本発明による帯域制御プログラム33は、タイマ34とレジスタ群35とを有する。レジスタ群35は、レジスタn、レジスタc、レジスタpを有する。
【0054】
ネットワーク管理者は、リンク2の帯域に対して、サーバ装置3からのフレームの送信に要する帯域使用率n(%)の値を設定する。帯域使用率nは、レジスタ群のレジスタnにセットされる。
【0055】
帯域制御プログラム33は、トラフィック観測時間c毎に、リンク2のトラフィックを観測する。ネットワーク管理者は、予め、トラフィック観測時間cを設定する。このトラフィック観測時間cが、レジスタcに設定される。なお、トラフィック観測時間cとは、帯域制御プログラム33がバイトカウンタ32の測定する値を読み取る時間の間隔のことである。
【0056】
許可トラフィックp(単位:バイト)は、帯域使用率nを基に計算される。許可トラフィックpは、レジスタpに設定される。
【0057】
バイトカウンタ32は、サーバ装置3からの送信トラフィック(以下、サーバ送信トラフィックという)x(単位:バイト)を測定する。帯域制御プログラム33は、トラフィック観測時間cにおいて、サーバ送信トラフィックxが許可トラフィックpを超えた場合に、PAUSEフレームを生成する。帯域制御プログラム33は、数4の関係式を満たすPAUSE時間eを計算する。PAUSE時間eを計算した後、PAUSEフレームを生成して、発行する。PAUSE時間eとは、実施例1と同様に、PAUSEフレームにより、サーバ装置3からのフレームの送信が止められる時間のことである。
【0058】
【数4】
x/(64×(c+e))≦n/100 ・・・(数4)
すなわち、PAUSE機能により、トラフィック観測時間cとPAUSE時間eを合計した時間内でのサーバ送信トラフィックxの帯域使用率が、ユーザにより設定されるn/100以下になるようにPAUSE時間eを求める。
【0059】
許可トラフィックpは、PAUSEフレームの発行の判定基準となる。許可トラフィックpは、数5より得られる。
【0060】
【数5】
p=64×c×n/100 ・・・(数5)
ここで、64の単位は、バイト/時間であり、単位時間に送出されるフレームのバイト数である。
【0061】
数4および数5から、数6が得られる。数6は、PAUSE時間eの計算式である。実際、PAUSE時間eは、x−p>0の場合に、数6を満たす最小の整数値となる。
【0062】
【数6】
e≧((x−p)/64)×(100/n) ・・・(数6)
トラフィック観測時間cに対しては、図1の実施例と同様に、実装上の制約がある。ここでは、サーバ装置3が送信する最大フレームサイズM、またはサーバ装置内蔵データメモリ15の容量Cによる実装上の制約である。この実装上の制約について、数7および数8で示す。これらの式は、それぞれ、図1の実施例の数2および数3に対応するものである。
【0063】
【数7】
c>2×M/64 ・・・(数7)
【0064】
【数8】
C>64×c×(100−n)/n ・・・(数8)
上記のトラフィック観測時間c、サーバ送信トラフィックx、許可トラフィックp、PAUSE時間eの関係を図14に示す。トラフィック202は、トラフィック観測時間cに測定されたサーバ送信トラフィックxである。トラフィック203は、トラフィック観測時間cの経過の後に続けて観測される観測時間c+eの期間のうち、サーバ装置3によりPAUSEが実行されるまでの期間のサーバ送信トラフィックである。トラフィック204は、トラフィック観測時間cの経過の後に続けて観測される観測時間(c+e)の期間のうち、サーバ装置3によりPAUSEが実行された後の期間のサーバ送信トラフィックである。
【0065】
サーバ送信トラフィックxが、数5の許可トラフィックpを超える場合、帯域制御プログラム33は、数6からPUASE時間eを計算する。計算の後、帯域制御プログラム33は、PAUSEフレームの送信を指示する。ネットワーク装置31からPAUSEフレームが送信される。その後、サーバ装置3にてPAUSEが実施される。
【0066】
ネットワーク装置31側では、バイトカウンタ32が、トラフィック観測時間cの経過の後に、続けて観測時間c+eの期間、サーバ送信トラフィックxを観測する。観測の結果、帯域制御プログラム33は、トラフィック203とトラフィック204とを合わせたサーバ送信トラフィックx’の値を得る。このとき、サーバ送信トラフィックx’が、再び、許可トラフィックpを超える場合がある。この場合には、帯域制御プログラム33は、再び、PAUSE時間e’を計算して、次のPAUSEフレームの送信を指示する。以後、サーバ装置3−ネットワーク装置31間においては、これらの動作が繰り返される。
【0067】
帯域制御プログラム33の処理フローについて、図4を用いて説明する。
【0068】
帯域制御プログラム33は、ネットワーク管理者からのコマンド入力でスタートする(41)。帯域使用率nの値は、コマンド入力時に設定するか、又は事前に設定されたコンフィグレーションファイル等から読み込む。トラフィック観測時間cは、予めプログラム33に組み込まれている。プログラム開始時に許可トラフィックpの値を計算して、レジスタpにセットする(42)。次に、タイマ34にトラフィック観測時間cの値をセットして(43)、続けてバイトカウンタ32をリセットする(44)。タイマ34は、512ビット時間(100Mbpsのリンクでは5.12マイクロ秒)毎に1ずつ減算される(45)。減算の結果、タイムアップしたとき(46)に、バイトカウンタ32より、サーバ送信トラフィックxを読み取る(47)。サーバ送信トラフィックxが、帯域使用率nに対応する帯域量を超えているか否かの判定を行う(48)。サーバ送信トラフィックxが、帯域使用率nに対応する帯域量以下であれば、再度タイマ34に、トラフィック観測時間cの値をセット(49)して、処理(44)からの処理を繰り返す。
【0069】
一方、処理(48)の判定において、サーバ送信トラフィックxが帯域使用率nに対応する帯域量を超えている場合には、PAUSE時間eを計算する。計算の後、PAUSE時間eの値をセットしたPAUSEフレームの生成を指示して、MAC制御部6に対してPAUSEフレームを送信するための指示を発行する(50)。PAUSE送信指示を受けたMAC制御部6は、MACチップ4に対し、PAUSEフレームが保管されているメモリ14に対してのDMAを指示する。MACチップ4は、PAUSEフレームの送信を実行する。帯域制御プログラム33は、処理(50)に続けて、タイマ34に新たに観測時間(c+e)の値をセットする(51)。セットの後、処理(44)からの処理を繰り返す。タイマ34に(c+e)の値をセットする理由を述べる。PAUSE送信等がデータフレーム送信中に発行される。この場合に、PAUSE送信指示から実際のPAUSE開始までにタイムラグが生じる。従って、サーバ装置3が送信可能な時間の延べ時間がトラフィック観測時間cになるように観測する必要があるからである。
【0070】
図4を用いて説明した一連の処理が繰り返されることにより、指示されたPAUSE時間eの間、PAUSEが実施される。これにより、サーバ送信トラフィックxを、リンク2の帯域使用率n以下とすることが可能となる。さらに、PAUSEフレームの送信は、サーバ送信トラフィックxが帯域使用率nを超えたときのみ実行される。従って、帯域使用率n以下の間は、サーバ送信トラフィックxによる不要な送信遅延を生じることがない。
【0071】
以上、本発明の帯域制御機構について説明した。
【0072】
(実施例3)
次に、本発明の帯域制御機構を、拡張したネットワークシステムに適用した実施例について説明する。
【0073】
本実施例に示すネットワークシステムを、図5に示す。このネットワークシステムにおいて、ネットワーク装置は、複数の物理リンクを収容する。複数のサーバ装置は、複数の物理リンクの各々に接続される。
【0074】
本実施例では、ネットワーク装置に、LANスイッチを用いて説明する。LANスイッチは、本発明の帯域制御機構を備えているものとする。但し、本実施例は、LANスイッチに限らず、IEEE802.3x規格の技術をサポートしている全てのネットワーク装置に適用可能である。
【0075】
LANスイッチA(61)は、サーバ装置a(62)からサーバ装置d(65)の4台により構成されるサーバ装置(以下、「サーバ装置群」という)に接続されている。接続には、全二重通信を行えるリンクが用いられる。LANスイッチA(61)は、4台のサーバ装置のそれぞれと一台毎に接続できるポート(図示せず)を4個備えている。LANスイッチA(61)は、実施例1で示した帯域制御プログラム10、または実施例2で示した帯域制御プログラム33(以下、「帯域制御プログラム10、33」という。)を有する。LANスイッチA(61)の個々のポートには、それぞれ、MACチップおよびMAC制御部が設けられる。それぞれのMACチップおよびMAC制御部は、帯域制御プログラム10、33により制御される。帯域制御プログラム10、33の個数に対する限定はなく、個々のポートに対してそれぞれ設けられるものでもよい。また、全てのポートに対して、ただ一つ設けられるものでもよい。
【0076】
LANスイッチA(61)は、サーバ装置群と、クライアント群との間の通信を中継する位置にある。クライアント群は、LANスイッチ1(66)およびLANスイッチ2(67)に収容される。LANスイッチ1(66)およびLANスイッチ2(67)は、LANスイッチA(61)とリンクを介して接続する。
【0077】
サーバ装置a(62)からサーバ装置d(65)のそれぞれは、それぞれ別個のアプリケーションを搭載している。各々のサーバ送信トラフィックを、それぞれ、サーバ送信トラフィックa、b、c、dとする。ネットワークシステムのネットワーク管理者は、LANスイッチA(61)において、サーバ送信トラフィックaからd(68)のそれぞれに対して帯域使用率na、nb,nc、nd(図5の矢印aからdの幅が使用帯域を示す)を設定する。帯域制御プログラム10、33を起動することにより、サーバ装置群からクライアント群へ流れるサーバ送信トラフィックに対して、アプリケーション毎に所望の帯域を設定することが可能となる。
【0078】
また、本発明の帯域制御機構は、ネットワーク装置と1台のサーバ装置とを接続するリンクが、複数の場合にも適用可能である。この場合、各々のリンクに接続するポートに対応して、それぞれMAC制御部が設けられる。それぞれのMAC制御部を独立に動作させることにより、個々のリンク単位にサーバ送信トラフィックを制御することが可能である。1台のサーバ装置が複数のアプリケーションを搭載する場合に有効である。
【0079】
現在、IEEE802.3adでは、リンク・アグリゲーション(LA)規格についての標準化作業が進行中である。図8は、リンク・アグリゲーション(LA)規格を適用した場合のOSI(Basic Reference Model)基本参照モデルのデータリンク層におけるプロトコルの関係を示している。以下、図8を用いて説明する。
【0080】
本発明の帯域制御プログラム10、33の実装方法には、以下の2通りがある。1通り目は、帯域制御プログラム10、33を、LAサブレイヤ92の上位プログラム93として実装するものである。この場合、帯域制御プログラム10、33は、図8に示すMACクライアント93に相当する部分に該当する。LAサブレイヤ92は、1つ存在して、複数のMAC制御部91を集約する。LAサブレイヤ92は、複数のMAC制御部91を、上位のプログラムであるMACクライアント93に対して、1個のMACインタフェースとして見せる。従って、帯域制御プログラム10、33がPAUSE送信指示を発行した場合、LAサブレイヤ92は、PAUSE送信指示を、下位の全てのMAC制御部91に配布する。特に、実施例2の帯域制御機構の場合、帯域制御プログラム33は、バイトカウンタ32を使用する。バイトカウンタ32は、LAサブレイヤ92の配下にある全てのリンクのトラフィックを集計する。従って、バイトカウンタ32は、帯域制御プログラム33に集計データを伝えるように実装される。
【0081】
この1通り目の実装方法が適用されるネットワークシステムの一例を挙げる。この一例には、ネットワーク装置が、1台のサーバ装置につき、複数のリンクで接続される場合が該当する。サーバ装置とネットワーク装置とは、それぞれ、複数のポートを介して複数のリンクに接続される。この場合、それぞれのポートに対応するMAC制御部91は、上位の制御プログラムであるMACクライアント93で1つにまとめられて制御される。
【0082】
この場合のネットワークシステムの構成を、図6に示す。
【0083】
図6において、72から75の各サーバ装置は、複数のリンクでLANスイッチA(71)と接続している。複数のリンクは、LAで束ねられたものである。図5の場合と同様に、各サーバ装置(72から75)は、それぞれ別個のアプリケーションを搭載している。各々のサーバ送信トラフィックは、サーバ送信トラフィックa、b、c、dとする。LANスイッチA(71)は、本発明の帯域制御機構を有する。このネットワークシステムのネットワーク管理者は、LANスイッチA(71)において、帯域使用率nを設定する。帯域使用率nは、サーバ送信トラフィックaからd(78)に対して、それぞれ、帯域使用率na、nb、nc、ndと設定するものとする。帯域使用率nの設定後、帯域制御プログラム10、33を起動する。これにより、サーバ装置群からクライアント群へ流れるサーバ送信トラフィックに対して、アプリケーション毎に所望の帯域を設定することが可能となる。
【0084】
具体的には、図1に示す実施例1の帯域制御プログラム10では、各々のリンクに対して定期的にPAUSEフレームを送信する。従って、送信間隔bおよびPAUSE時間aは、個々のリンクの帯域をもとに個別に計算する。一方、図3に示す実施例2の帯域制御プログラム33では、LAで束ねられた全てのリンクの帯域の総和に対して帯域使用率nを設定する。トラフィック観測時間cおよびPAUSE時間eの計算も全てのリンクのトラフィックの集計値をもとに計算する。
【0085】
2通り目は、帯域制御プログラム10、33は、LAサブレイヤ92と並列に、個々のMAC制御部91に直接アクセスできるように実装するものである。この場合、帯域制御プログラム10、33は、図8に示すMACクライアントプログラム94に相当するものである。この場合、帯域制御プログラム10、33は、LAサブレイヤ92の存在を無視して、個々のリンク単位で独立に動作する。なお、現時点ではIEEE802.3においてこの位置にMACクライアントを置くことは規定されていない。
【0086】
この場合のネットワークシステムの構成の一例を、図7に示す。図7においては、図6と同様に、各サーバ装置(82、83)は、複数のリンクでLANスイッチA(81)と接続している。しかし、図6とは、次の点で異なる。1つは、各サーバ装置(82、83)が、各々が複数のアプリケーションを搭載している点である。もう1つは、アプリケーション毎に異なるリンク(84、85、86、87)を使用している点である。
【0087】
以上で説明したように、本発明によれば、図5、図6、図7に示すネットワークシステムにおいて、ネットワーク管理者が各サーバ装置またはリンクに対して設定した帯域使用率n以下になるように、送信トラフィックを制御することが可能である。
【0088】
なお、ネットワーク管理者が帯域使用率n等を設定する単位は、アプリケーション毎に限らず、例えば、宛先IPアドレス等を設定単位としてサーバ送信トラフィックを帯域制御することも好ましい。宛先IPアドレスを設定単位としてサーバ送信トラフィックを帯域制御する場合には、全てのサーバ装置が同一のアプリケーションを備えていることが条件となる。さらに、各々のサーバ装置は帯域制御の対象となるリンクに対して、宛先IPアドレスをもとに送信フレームを振り分けることも条件となる。
【0089】
なお、本実施例では、ネットワーク装置をLANスイッチとして説明したが、これがルータであるでも本発明を適用することが可能である。さらに、ルータにおいても、LANスイッチを用いた場合と同様の上記効果が得られる。
【0090】
【発明の効果】
本発明によれば、サーバ−クライアントシステムを構成するネットワークシステムにおいて、輻輳を回避させることが可能である。さらに、サーバ・トラフィックをネットワーク管理者が設定する単位(アプリケーションや宛先IPアドレス等)で、帯域を制御することが可能である。
【図面の簡単な説明】
【図1】本発明によるネットワーク装置1を用いたネットワークの構成図である。
【図2】帯域制御プログラム10の処理フローを示すフローチャートである。
【図3】本発明によるネットワーク装置31を用いたネットワークの構成図である。
【図4】帯域制御プログラム33の処理フローを示すフローチャートである。
【図5】本発明が適用されるネットワークシステムの一構成例である。
【図6】本発明が適用されるネットワークシステムの一構成例である。
【図7】個々のリンク毎に帯域制御するネットワークシステムの構成例である。
【図8】本発明をリンク・アグリゲーションと共に適用した場合のOSIのデータリンク層におけるプロトコルの関係を示す構成図である。
【図9】サーバ送信トラフィックのグラフである。
【図10】図9に示す時間帯102の時間軸をを拡大したグラフである。
【図11】図9に示す時間帯103の時間軸を拡大したグラフである。
【図12】図11のサーバ送信トラフィック105の波形を拡大したグラフである。
【図13】PAUSE時間aとPAUSE送信間隔bとの関係を示すグラフである。
【図14】トラフィック観測時間c、サーバ送信トラフィックx、許可トラフィックp、PAUSE時間eの関係を示すグラフである。
【図15】従来のネットワーク装置151を用いたネットワークの構成図である。
【符号の説明】
1、31、151・・・ネットワーク装置
2・・・リンク
3・・・サーバ装置
4、5・・・MACチップセット
6、7・・・MAC制御部
8、9・・・PAUSEタイマ
10、33・・・帯域制御プログラム
11・・・MACクライアントプログラム
12、34・・・タイマ
13、35・・・レジスタ群
32・・・バイトカウンタ
Claims (6)
- 少なくとも1つの他の装置と少なくとも1つの伝送媒体を介して接続されるネットワーク装置において、
前記少なくとも1つの他の装置からのフレームの送信を一時的に中断させる制御フレームを、前記少なくとも1つの他の装置に対して送信するよう指示する帯域コントローラと、前記少なくとも1つの伝送媒体と接続され、前記帯域コントローラからの指示に応じて前記制御フレームを前記少なくとも1つの伝送媒体に送信する送信部と、前記少なくとも1つの他の装置から送信されるフレームの送信帯域量を測定する測定部とを有し、
前記帯域コントローラは、予め設定された帯域量、前記少なくとも1つの他の装置にフレームの送信を中断させる中断期間、及び前記測定部によって測定された送信帯域量を定期的に読み取るためのトラフィック観測間隔を、それぞれ保持する複数のレジスタと、前記トラフィック観測間隔を計測するタイマとを更に備え、
前記タイマが前記トラフィック観測間隔を計測する毎に、前記帯域コントローラは前記測定部によって測定された送信帯域量を読み取り、該読み取った送信帯域量が前記予め設定された帯域量を超えていると判断した場合、前記中断期間を算出し、前記算出した中断期間を含む前記制御フレームの送信を前記送信部に対して指示し、
前記少なくとも1つの他の装置から送信されるフレームの送信帯域量を、前記予め設定された帯域量以下に制御することを特徴とするネットワーク装置。 - 請求項1に記載のネットワーク装置において、
前記帯域コントローラは、定期的に前記送信部に対して前記制御フレームの送信を指示することを特徴とするネットワーク装置。 - 請求項2に記載のネットワーク装置において、
予め決められた送信間隔を計測するタイマを更に備え、前記タイマが前記予め決められた送信間隔を計測する毎に、前記帯域コントローラは、前記制御フレームの送信を指示することを特徴とするネットワーク装置。 - 請求項1に記載のネットワーク装置において、
前記送信部は、前記少なくとも1つの他の装置に対応して設けられ、前記少なくとも1つの伝送媒体と接続される少なくとも1つのポートを含み、前記少なくとも1つのポートから前記制御フレームを送信することを特徴とするネットワーク装置。 - 請求項1に記載のネットワーク装置において、
前記予め設定された帯域量は、前記少なくとも1つの他の装置から送信されるフレームの送信帯域量の総和に対応して設定されており、前記帯域コントローラは、前記少なくとも1つの他の装置から送信されるフレームの送信帯域量の総和が、前記予め設定された帯域量を超えたときに、前記送信部に対して前記制御フレームの送信を指示することを特徴とするネットワーク装置。 - 請求項4に記載のネットワーク装置において、
前記予め設定された帯域量は、前記少なくとも1つの他の装置の各々に対応して設定されており、前記帯域コントローラは、前記少なくとも1つの他の装置から送信されるフレームの送信帯域量が、前記少なくとも1つの他の装置に対して予め設定された帯域量を超えたときに、前記送信部に対して、前記少なくとも1つの他の装置に対応して設けられたポートへ前記制御フレームを送信することを指示することを特徴とするネットワーク装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26155899A JP3843657B2 (ja) | 1999-09-16 | 1999-09-16 | ネットワーク装置 |
US09/660,362 US7046624B1 (en) | 1999-09-16 | 2000-09-12 | Network apparatus and a method for communicating by using the network apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26155899A JP3843657B2 (ja) | 1999-09-16 | 1999-09-16 | ネットワーク装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001086122A JP2001086122A (ja) | 2001-03-30 |
JP2001086122A5 JP2001086122A5 (ja) | 2005-02-24 |
JP3843657B2 true JP3843657B2 (ja) | 2006-11-08 |
Family
ID=17363577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26155899A Expired - Fee Related JP3843657B2 (ja) | 1999-09-16 | 1999-09-16 | ネットワーク装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7046624B1 (ja) |
JP (1) | JP3843657B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7433303B2 (en) * | 2002-08-02 | 2008-10-07 | Null Networks Llc | Preemptive network traffic control for regional and wide area networks |
US8051210B2 (en) * | 2002-10-15 | 2011-11-01 | Hewlett-Packard Development Company, L.P. | Server with LAN switch that connects ports based on connection information received from first and second LANs |
JP4789071B2 (ja) * | 2006-10-16 | 2011-10-05 | 日本電気株式会社 | 無線伝送装置 |
US8848547B2 (en) * | 2009-06-22 | 2014-09-30 | Nokia Corporation | Apparatus and method for signaling between a user equipment and a wireless network |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026075A (en) * | 1997-02-25 | 2000-02-15 | International Business Machines Corporation | Flow control mechanism |
US6098103A (en) * | 1997-08-11 | 2000-08-01 | Lsi Logic Corporation | Automatic MAC control frame generating apparatus for LAN flow control |
US6170022B1 (en) * | 1998-04-03 | 2001-01-02 | International Business Machines Corporation | Method and system for monitoring and controlling data flow in a network congestion state by changing each calculated pause time by a random amount |
CA2285167C (en) * | 1998-10-12 | 2004-12-07 | Jinoo Joung | Flow control method in packet switched network |
-
1999
- 1999-09-16 JP JP26155899A patent/JP3843657B2/ja not_active Expired - Fee Related
-
2000
- 2000-09-12 US US09/660,362 patent/US7046624B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001086122A (ja) | 2001-03-30 |
US7046624B1 (en) | 2006-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7987302B2 (en) | Techniques for managing priority queues and escalation considerations in USB wireless communication systems | |
Dovrolis et al. | HIP: hybrid interrupt-polling for the network interface | |
US6167029A (en) | System and method for integrated data flow control | |
Bai et al. | PIAS: Practical information-agnostic flow scheduling for commodity data centers | |
Dukkipati et al. | Why flow-completion time is the right metric for congestion control | |
US7480238B2 (en) | Dynamic packet training | |
US7072294B2 (en) | Method and apparatus for controlling network data congestion | |
US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
Zhang et al. | Sharing bandwidth by allocating switch buffer in data center networks | |
KR101242338B1 (ko) | 멀티 스트림 승인 스케쥴링 | |
US6754755B1 (en) | Service request system using an activity indicator to reduce processing overhead | |
EP1014649A2 (en) | Method and system of data transfer control | |
US6631434B1 (en) | Dynamic early indication system for a computer | |
Huang et al. | Adjusting packet size to mitigate TCP incast in data center networks with COTS switches | |
CN113687770B (zh) | 调节跨速率失配网络的NVMe-oF命令请求和数据流的系统和方法 | |
JP3956786B2 (ja) | 記憶装置の帯域制御装置、方法及びプログラム | |
Zec et al. | Estimating the impact of interrupt coalescing delays on steady state TCP throughput | |
JP4645325B2 (ja) | 通信装置および通信システム | |
US6173343B1 (en) | Data processing system and method with central processing unit-determined peripheral device service | |
Chaturvedi et al. | An adaptive and efficient packet scheduler for multipath TCP | |
JP3759487B2 (ja) | 帯域幅共有方法、共有帯域幅ネットワーク構成およびネットワーク装置 | |
JP3843657B2 (ja) | ネットワーク装置 | |
Leitao | Tuning 10Gb network cards on Linux | |
US8004991B1 (en) | Method and system for processing network information | |
Rezaei et al. | Slytherin: Dynamic, network-assisted prioritization of tail packets in datacenter networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040319 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060417 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060807 |
|
LAPS | Cancellation because of no payment of annual fees |