JP4426010B2 - Bandwidth guaranteed transmission method and apparatus - Google Patents

Bandwidth guaranteed transmission method and apparatus Download PDF

Info

Publication number
JP4426010B2
JP4426010B2 JP14563299A JP14563299A JP4426010B2 JP 4426010 B2 JP4426010 B2 JP 4426010B2 JP 14563299 A JP14563299 A JP 14563299A JP 14563299 A JP14563299 A JP 14563299A JP 4426010 B2 JP4426010 B2 JP 4426010B2
Authority
JP
Japan
Prior art keywords
transmission
bandwidth
traffic flow
guaranteed
data
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 - Lifetime
Application number
JP14563299A
Other languages
Japanese (ja)
Other versions
JP2000341321A (en
Inventor
賢 佐藤
愛一郎 金子
正士 池田
義人 左古
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP14563299A priority Critical patent/JP4426010B2/en
Publication of JP2000341321A publication Critical patent/JP2000341321A/en
Application granted granted Critical
Publication of JP4426010B2 publication Critical patent/JP4426010B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、通信制御システムにおける帯域保証送信方法及び装置に関する。
【0002】
【従来の技術】
従来、ネットワークのトラフィックが混雑すると、集中したトラフィックの優先度を優先度の高いものから低いものへと固定的に評価してデータ転送順序を決定していた。すなわち、優先度1(最高優先度)のトラフィックフローと優先度7(最低優先度)のトラフィックフローが同時に発生すると、優先度1のトラフィックフローが存在する限り優先度7のトラフィックフローの送信機会が無くなる場合があった。
【0003】
【発明が解決しようとする課題】
上述のような従来技術では、集中したトラフィックフロー相互の優先度関係によって、転送順序が偶然決定する場合が多い。すなわち、優先度1と優先度7のトラフィックフローが同時に発生する場合、優先度7のトラフィックフローの転送時間は、優先度1のトラフィックフローを優先することにより優先度7のトラフィックフロー単体で送信される場合に比べて多くの時間を要する。このように、従来の技術ではトラフィックフローの集中具合によって転送時間が不安定になることがあり、アプリケーションが安定して動作しない場合があった。
【0004】
本発明は、以上の点に鑑み、例えば以下のような目的を達成するものである。
・トラフィックフロー毎に、送信帯域を保証する送信処理スケジューリングを可能とすること。
・送信待ちキューにキューイングされたデータについて、最も保証帯域の達成度が低いトラフィックフローに最優先の送信スケジューリングを動的に行うことにより、送信待ちデータがある限り回線の空きなどの無駄が生じることがないようにすること。
・回線速度、平均パケット長に基づいて送信帯域を監視する単位時間を調整することにより、送信待ちキューの遅延時間と帯域保証の精度を調整すること。
【0005】
【課題を解決するための手段】
本発明では、保証送信帯域をトラフィックフロー(ある一連のデータ)毎に「単位時間内に送信を保証すべき送信オクテット数」と「それに対する達成度」で管理する。送信処理は、トラフィックフロー毎に送信待ちキューを設け、各キュー毎に送信したオクテット数を管理し、送信を保証すべきオクテット数に対して送信したオクテット数の達成度が最も低いキューを優先的に選択して送信するスケジューリング方式とする。送信処理の際、トラフィックフローの偏りを是正するため、単位時間毎に送信オクテット数、達成度の制御変数をリセットする。また、帯域を保証しないトラフィックフローは、保証帯域を達成したトラフィックフローと同等に扱う。これにより、帯域を保証すべきトラフィックフローで保証帯域を達成していないトラフィックフローが存在しない場合は、保証帯域を達成したトラフィックフロー、または帯域を保証しないトラフィックフローのいずれかを回線に送信することができ、回線の空きの発生を防ぐことが可能となる。
【0006】
本発明の第1の解決手段によると、
ある一連の転送データであるトラフィックフロー毎の送信待ちキューを有し、
前記トラフィックフロー毎の単位時間あたりに送信すべきデータ量を示す保証帯域と、前記トラフィックフロー毎に前記送信待ちキューから送信したデータ量を管理し、
前記送信すべきデータ量を示す前記保証帯域に対する前記送信したデータ量によって表される前記保証帯域の達成度を求め、前記達成度が低いトラフィックフローのキューを優先的に選択して送信するようにした帯域保証送信方法を提供する。
【0007】
本発明の第2の解決手段によると、
ある一連の転送データであるトラフィックフロー毎の送信待ちキューと、トラフィックフロー別に応じてデータをキューイングする送信待ちキューテーブルと、各トラフィックフロー毎に、単位時間あたりに保証する帯域幅をデータ数単位で管理する送信帯域保証テーブルと、各トラフィックフロー毎に単位時間内に送信したデータ数を管理する送信帯域値テーブルと、各トラフィックフロー毎に前記送信帯域値テーブルのラップアラウンド回数を管理する送信帯域値ラップアラウンド回数管理テーブルとを有するメモリと、
ネットワークに接続される入出力処理部と、
前記メモリに基づき、前記入出力処理部によるデータ送信を制御する制御部と
を備え、
前記制御部は、
前記トラフィックフロー毎の単位時間あたりに送信すべきデータ量を示す保証帯域と、前記トラフィックフロー毎に前記送信待ちキューから送信したデータ量を管理し、
前記送信すべきデータ量を示す前記保証帯域に対する前記送信したデータ量によって表される前記保証帯域の達成度を求め、前記達成度が低いトラフィックフローのキューを優先的に選択して送信するようにした帯域保証送信装置を提供する。
【0008】
【発明の実施の形態】
本発明の実施の形態を、以下に図面を用いて説明する。
【0009】
(I)単位時間について
まず、保証帯域とそれに対する達成度を監視する「単位時間」について考察する。単位時間は、帯域保証の効果が十分得られるほどに長く、かつ、トラフィックフローの偏り(特定のトラフィックフローの集中)の影響を長く残さないほどに短い時間に設定する必要がある。
【0010】
例えば、9,600ビット/秒の回線上に平均1,500オクテットのパケットを転送するシステムで単位時間を1秒に設定する場合を想定する。この場合、1パケットの転送で単位時間に送信可能なオクテット数を上回ることになり、帯域保証の効果は現れない(事実上のFirst In First Out方式になる)。つぎに、例えばこのような回線速度で平均パケット長のシステムにおいて単位時間を100秒に設定する場合を想定する。この場合、保証すべき保証帯域10%の96,000ビット/100秒のトラフィックフローが単位時間の最初に集中した場合、わずか8パケットの送信で保証帯域を達成してしまい、以降の90秒間は、保証帯域を達成していない他のトラフィックフローが存在する限り当該トラフィックフローの送信ができなくなり、トラフィックフローの偏りを長く残すとともに実用に耐えないシステムとなる。
【0011】
以上より、本発明では、単位時間はシステムの平均パケット長と回線速度から、帯域保証の精度と送信待ちキューでの待ちによる遅延時間を考慮して、以下のプロセスで最適な値を決定する。
【0012】
i)単位時間毎の回線のスループットに占める1パケットの割合の算出
例えば、9,600ビット/秒の回線上に平均1,500オクテットのパケットを転送するシステムで単位時間を1秒とすると、回線のスループットに占める1パケットの割合は、以下▲1▼式により125%となり、1パケットの転送が単位時間あたりの回線のスループットを超えているため、帯域保証の効果は現れない。
(1,500(オクテット)×8(ビット/オクテット))÷(9,600(ビット/秒)×1(秒(単位時間)))×100=125(%)−▲1▼
【0013】
また、例えば、9,600ビット/秒の回線上に平均1,500オクテットのパケットを転送するシステムで単位時間を100秒とすると、回線のスループットに占める1パケットの割合は、以下▲2▼式により1.25%となり、1.25%程度の精度での帯域保証が可能になる。ただし、既に述べたように送信待ちキューでの待ちによる遅延時間は約100秒になるケースもある。
(1,500(オクテット)×8(ビット/オクテット))÷(9,600(ビット/秒)×100(秒(単位時間)))×100=1.25(%)−▲2▼
【0014】
ii)帯域保証の精度と送信待ちキューの遅延時間の評価
i)で述べたとおり、単位時間は送信待ちキューの遅延を表し、単位時間の回線の送信スループットに占める1パケットの割合が帯域保証の精度を表す。また、単位時間と帯域保証の精度は互いに背反する関係にある。
【0015】
以上を考慮し、回線速度(固定値)、平均パケット長(固定値)から、帯域保証の精度、送信待ちキューの遅延を算出/評価して単位時間を決定する。
【0016】
上述i)の▲2▼式に示したように、9,600ビット/秒の回線上に平均1,500オクテットのパケットを転送するシステムで1%程度の精度の帯域保証を行うと送信待ちキューの遅延が大きくなりすぎる。仮に10%程度の精度の帯域保証を行うと、以下▲3▼式よりt=12.5秒となり、送信待ちキューでの遅延時間は12秒程度になる。(1,500(オクテット)×8(ビット/オクテット))÷(9,600(ビット/秒)×t(秒(単位時間)))×100=10(%)−▲3▼
【0017】
以上のように、互いに背反する帯域保証の精度と送信待ちキューの遅延を試算して、システムに最適な単位時間を決定する。
【0018】
(II)ハード構成
図1に、本発明を適用するシステムの構成図を示す。本発明の適用の一例としては、IPネットワークにおけるネットワーク間接続装置の送信待ちキューに適用するケースが考えられる。
【0019】
ネットワーク間接続装置1は、ネットワークとネットワークを接続するための装置である。ネットワーク間接続装置1は、CPU2、メモリ3、入出力処理部4を備える。ネットワーク間接続装置1は、また、メモリ3上に各制御テーブル類5、送信待ちキュー6を保持して各ネットワーク間でのデータのルーティング処理を実行する。ネットワーク間接続装置1では、回線速度が異なるネットワーク同士を接続するケースがあり、回線速度の速いネットワークから回線速度の遅いネットワークにデータを送信する時に、データ送信時のデータ送信待ちが発生する場合がある。ネットワーク間接続装置1をはじめとする各ネットワーク機器では、一般にこれらのデータ送信待ちに対して「送信待ちキュー6」を用いて待ち制御を行う。本発明は、例えば、この「送信待ちキュー6」からデータを取り出すスケジューリング処理に適用することができる。
【0020】
図2に、制御テーブル類5および送信待ちキュー6の説明図を示す。本発明では、処理に必要な以下のテーブル類を設ける。
(1)トラフィックフロー種別に応じてデータをキューイングする送信待ちキューテーブル21を設ける。トラフィックフロー種別の決定は、例えばIPパケットのTOS値、送信元/宛先IPアドレスに基づいて決定するなどが考えられる。
(2)各トラフィックフロー毎に、単位時間あたりに保証する帯域幅をオクテット数単位で管理する送信帯域保証テーブル22を設ける。なお、オクテット数単位以外にも、ビット数等の適宜の値で管理することもできる。
(3)各トラフィックフロー毎に単位時間内に送信したオクテット数を管理する送信帯域値テーブル23を設ける。なお、オクテット数以外にも、ビット数、割合等適宜の値で管理することができる。
(4)各トラフィックフロー毎に送信帯域値テーブル23のラップアラウンド回数を管理する送信帯域値ラップアラウンド回数管理テーブル24を設ける。ここで、カウンタなどが一巡することを、ラップアラウンド(wrap around)という。例えば、1バイトのカウンタを減算する場合、1→0→255で一巡となる。
(5)ラップアラウンド回数に応じて、どのキューにデータが存在するかを管理するキュー番号ビットマップテーブル25を設ける。
【0021】
以下に、本発明の処理方式を説明する。上述のような制御テーブル類5を用いて、以下に示す処理を行うことで、帯域保証制御を実現する。
【0022】
(III)処理概要
本実施の形態では、送信データをトラフィックフロー毎に送信待ちキューテーブル21にキューイングする。そして、キューイングされているトラフィックフローのうち、保証帯域に対する送信帯域の達成度が最も低いトラフィックフローを優先して送信する。
【0023】
本実施の形態では、達成度をキュー番号ビットマップテーブル25で管理するようにした。なお、キュー番号ビットマップテーブル25を設けずに、送信帯域値ラップアラウンド回数管理テーブル24で管理するようにしてもよい。キュー番号ビットマップテーブル25の配列の若番エントリ(ラップラウンド回数0)の達成度が低く、老番エントリ(ラップラウンド回数M)の達成度が高い。なお、最老番エントリは、帯域保証済みをあらわす。キュー番号ビットマップテーブル25のエントリ内の各ビットは、トラフィックフローにマッピングできる。最老番エントリ(帯域保証済み)は、帯域を保証しないトラフィックフローを固定的に割り当てて、他のトラフィックフローがすべて保証帯域を達成した、又は、送るべき他のトラフィックフローが存在しない場合のみ送信するという制御にも使うことができる。キュー番号ビットマップテーブル25は、2エントリ(保証帯域未達成エントリと保証帯域達成済みエントリ)の構成も可能であるが、その構成では保証帯域未達成のトラフィック相互の優先関係をきめ細かく制御できない。このため、保証帯域を数段階に分けてキュー番号ビットマップテーブル25のエントリ番号にマッピングする。図2を例にとると、エントリ0番からエントリM−1番が保証帯域未達成エントリで、エントリM番が保証帯域達成エントリである。なお、ここでは、M以上については、ひとつのエントリM番でまとめて扱っているが、これに限らずM+1番又は適宜のエントリとして記憶することもできる。
【0024】
保証帯域を何段階に分けるかについては、段階が多ければきめ細かな制御が可能となるが、本実施の形態のように送信オクテット数に基づいて帯域を管理する場合には、回線速度と平均パケット長に基づいて決定するアプローチが一例として考えられる。例えば、保証帯域16,000オクテット/秒、平均パケット長が1,500バイトのシステムの場合、約11パケットの送信で保証帯域を達成する。そこで、保証帯域を11段階に分けることで1パケットの送信がトラフィックフロー間の1段階の優先度の差異(即ち、キュー番号ビットマップテーブル25の値の1エントリの差異)となって現れることが期待できる。この場合、キュー番号ビットマップテーブル25の値のMは12となる。
【0025】
本発明では、また、上述のように帯域保証値を11段階に分ける場合、(保証帯域÷11)バイトを何回送信したかを管理するようにした。この管理を実現するため、トラフィックフロー毎に(保証帯域÷段階)値と、(保証帯域÷段階)値を何回送信したかを管理するテーブルを持つ。(保証帯域÷段階)値は、送信帯域保証テーブル22(図2-▲2▼)と送信帯域値テーブル23で管理する。何回送信したかは、送信帯域値ラップアラウンド回数管理テーブル24で管理する。
【0026】
例えば、保証帯域16,000オクテットのトラフィックフローでは、送信帯域保証テーブル22と送信帯域値テーブル23の該トラフィックフローに対応するエントリに、各々1500を設定する。送信帯域値ラップアラウンド回数管理テーブル24の各エントリは、0で初期化し、あるトラフィックフローでパケットを送信するたびに送信帯域値テーブル23の該エントリから送信オクテット長を減じて、ラップアラウンドが発生する毎に送信帯域値ラップアウンド回数管理テーブル24の該エントリを+1する。送信帯域値ラップアラウンド回数管理テーブルで管理しているトラフィックフロー毎のラップアラウンド回数は、保証帯域に対する達成度を表し、キュー番号ビットマップテーブル25のエントリにマッピングすることができる。
【0027】
本発明における処理としては、例えば、(1)制御テーブル類5の初期化処理、(2)送信要求の受付処理、(3)送信スケジューリング処理、(4)送信処理、(5)制御テーブル類5の再初期化処理に、大別することができる。
【0028】
送信要求受け付け処理は、送信待ちキューテーブル21のトラフィックフロー種別に対応するエントリに送信パケットをキューイングするとともに、送信帯域値ラップアラウンド回数管理テーブル24の達成度(即ち、ラップアラウンド回数)に対応するキュー番号ビットマップテーブル25のエントリのトラフィックフロー種別に対応するビットを1に設定して、当該キューにキューイングが発生していることを示す。送信スケジューリング処理は、キュー番号ビットマップテーブル25の若番エントリから順にビットを検索して、ビットが1に設定されているトラフィックフローについて送信待ちキューテーブル21からパケットを取り出して送信する。
【0029】
送信処理は、送信帯域値テーブル23の更新と、必要ならば送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25の更新を行う。さらに、送信スケジューリング処理が取り出したトラフィックフローに対応する送信帯域値テーブル23のエントリから送信パケットのオクテット数を減じる。この際にラップアラウンドが発生する場合(即ち、送信パケット長が送信帯域値テーブル23の当該エントリ値より大きいケース)は、当該エントリの初期値を送信帯域保証テーブル22から取り出して、ラップアラウンド処理を行う(即ち、送信帯域保証テーブル22の当該エントリ値をワーク変数に取り出し、ワーク変数から送信パケット長を減じたものを送信帯域値テーブル23の当該エントリに設定する。)。さらに、送信帯域値ラップアラウンド回数管理テーブル24のトラフィックフローに対応するエントリを加算し、キュー番号ビットマップテーブル25の加算前のラップアラウンド回数エントリのトラフィックフローに対応するビットをオフし、加算後のラップアラウンド回数エントリのトラフィックフローに対応するビットをオンする。これにより、達成度が上がった(即ち、ラップアラウンド回数増加)ことで、送信優先度が下がる(即ち、キュー番号ビットマップテーブル25のエントリが下がる。)。
【0030】
(IV)処理詳細
本処理の詳細について、テーブル状態遷移図とフローチャートを用いて、以下の条件の例に沿って説明する。また、図3〜図5に、各処理による制御テーブル類5の状態遷移図(1)〜(3)を示す。
(例)
回線速度:9,600bps
平均パケット長:800バイト
単位時間:5秒
単位時間に送信可能なデータ量:6,000バイト
保証帯域達成の段階:6段階(6段目は保証帯域達成済み)
保証帯域の最大誤差:約13%((800×8)÷(9,600×5)×100)
トラフィックフロー種別と各帯域:フロー0→30%、フロー1→70%
【0031】
なお、これら回線速度、単位時間、保証帯域達成の段階、トラフィックフロー毎の保証帯域などは、あらかじめ装置に設定しておくか、又は、外部からデータで渡すなどの手段を用いることができる。
【0032】
(1)制御テーブル類5の初期化処理
図6に、制御テーブル初期化処理のフローチャートを示す。
【0033】
まず、送信待ちキューテーブル21の全エントリを0クリアする(ステップ400)。つぎに、送信帯域保証テーブル22と送信帯域値テーブル23の全エントリに、各トラフィックフローの単位時間の保証帯域÷(保証帯域達成の段階-1)を設定する。但し、未使用のエントリには、例えば0を設定するなどで使用中エントリとの区別がつくようにする(ステップ410)。本例では、単位時間あたり30%の帯域を保証するフロー0の設定値は以下の式により360となり、単位時間あたり70%の帯域を保証するフロー1の設定値は同様に840となる。
(((9,600×5)÷8)×0.3)÷(6-1)=360
【0034】
つぎに、送信帯域値ラップアラウンド回数管理テーブル24の全エントリを0クリアする(ステップ420)。また、キュー番号ビットマップテーブル25の全エントリを0クリアする(ステップ430)。
【0035】
本例について初期化処理実行後の各種テーブル類の状態は、図3の状態番号▲1▼の通りとなる。
【0036】
(2)送信要求の受付処理
図7に、送信要求受け付け処理のフローチャートを示す。ここでは、データの送信要求を受け付けると、データ毎に以下の処理が実行される。
【0037】
まず、送信トラフィックフロー種別毎に、送信待ちキューテーブル21の対応するエントリに送信データをキューイングする(ステップ500)。つぎに、キューイングするトラフィックフローが、帯域を保証すべきトラフィックフローかどうかを判定する(ステップ510)。これを判定するために、トラフィックフロー毎の保証帯域が0%に設定されていたら、帯域保証する必要はないとみなすなどの判定方法が考えられる。つぎに、帯域を保証すべきトラフィックフローである場合、変数χに送信帯域値ラップアラウンド回数管理テーブル24の当該トラフィックフローに対応するエントリを取り出す(ステップ520)。変数χがM(キュー番号ビットマップテーブル25の最老番エントリ)より大きい場合は(ステップ530)、変数χにMを設定する(ステップ540)。帯域を保証しないトラフィックフローである場合も同様に変数χにMを設定する(ステップ540)。つぎに、キュー番号ビットマップテーブル25の変数χに対応するエントリの、当該トラフィックフローに対応するビットを1に設定する(ステップ550)。
【0038】
本例について、フロー0のデータ4個、フロー1のデータ6個の送信要求を受け付けたときの各種テーブル類の状態は、図3の状態番号▲2▼の通りになる。
【0039】
(3)送信スケジューリング処理
図8に、送信スケジュール処理のフローチャートを示す。本処理は、最初のデータ送信受付け直後または1データ送信完了時に、次の送信データを選択するために実行される。
【0040】
まず、キュー番号ビットマップテーブル25のエントリカウンタIを0に初期化する(ステップ600)。IがM(段階)以下の場合は以下の処理(キュー番号ビットマップテーブル25の変数I番目のエントリのビット’1’検索処理)を実行し、Mより大きい場合は処理を完了する(ステップ610)。IがM以下の場合、キュー番号ビットマップテーブル25エントリのビットカウンタJを0に初期化する(ステップ620)。なお、図2において、Iは縦方向のカウンタ(ラップアラウンド回数:0〜M)、Jは横方向のカウンタ(トラフィックフロー番号:0〜n)をそれぞれ示す。Jがn(トラフィックフロー種別数)以下の場合は以下の処理を実行し、nより大きい場合はIをカウントアップして、ステップ610に戻る(ステップ630、ステップ670)。Jがn以下の場合、キュー番号ビットマップテーブル25のI番目のエントリ値を検索し、J番目のビットが非ゼロなら当該のトラフィック種別の送信処理にI、Jを渡して呼び出しを行い(ステップ650)、ゼロならJをカウントアップして、ステップ630に戻る(ステップ660)。
【0041】
(4)送信処理
図9に、送信処理のフローチャートを示す。ここでは、図8で示した送信スケジューリング処理からの要求にしたがって送信処理を実行する。
【0042】
送信処理は、送信スケジューリング処理からキュー番号ビットマップテーブル25のエントリカウンタIとキュー番号ビットマップテーブル25エントリのビットカウンタJを指定して呼び出される(ステップ700)。つぎに、送信要求処理から指定されたトラフィックフロー番号(キュー番号ビットマップテーブルエントリのビットカウンタJ)に従い、送信待ちキューテーブル21の当該トラフィックフローのキューより1パケット送信する(ステップ710)。つぎに、送信データ長を送信帯域値テーブル23の当該トラフィックフローのエントリから減算する(ステップ720)。送信帯域値テーブル23がラップアラウンドしているかしていないかを判定し(ステップ730)、ラップアラウンドしていない場合は処理を終了し、ラップアラウンドしている場合は以下の処理を実行する。
【0043】
まず、送信帯域値ラップアラウンド回数管理テーブル24の当該トラフィックフローのエントリにラップアラウンドする回数を加算する(ステップ740)。この際、送信データ長カウンタが0から初期値になったらラップアラウンド1回発生と考え、当該カウンタの初期値は送信帯域保証テーブル22の当該トラフィックフローのエントリから取得する。そして、キュー番号ビットマップテーブル25のエントリカウンタIに対応するエントリの当該トラフィックフローに対応するビットをオフする(ステップ750)。また、キュー番号ビットマップテーブル25の更新後のラップアラウンド回数に対応するエントリの当該トラフィックフローに対応するビットをオンする(ステップ760)。
【0044】
以上、(3)送信スケジューリング処理、(4)送信の処理に関して、図3〜図5の例を用いて説明すると以下の通りとなる。
(i) 図3の状態番号▲2▼では、キュー番号ビットマップテーブル25からエントリ0のビット0を検出し、フロー0のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、800バイト送信)。これにより送信データ長カウンタは2ラップして280となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号▲3▼に示すような状態となる。
【0045】
(ii) 図3の状態番号▲3▼では、キュー番号ビットマップテーブル25からエントリ0のビット1を検出し、フロー1のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、1,600バイト送信)。これでは送信データ長カウンタのラップは発生せず、送信帯域値テーブル23を更新することで、各制御テーブル類5は状態番号▲4▼に示すような状態となる。
【0046】
(iii) 図4の状態番号▲4▼では、キュー番号ビットマップテーブル25からエントリ0のビット1を検出し、フロー1のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、2,400バイト送信)。これにより送信データ長カウンタは1ラップして80となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号▲5▼に示すような状態となる。
【0047】
(iv) 図4の状態番号▲5▼では、キュー番号ビットマップテーブル25からエントリ1のビット1を検出し、フロー1のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、3,200バイト送信)。これにより送信データ長カウンタは1ラップして120となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号▲6▼に示すような状態となる。
【0048】
(v) 図4の状態番号▲6▼では、キュー番号ビットマップテーブル25からエントリ2のビット0を検出し、フロー0のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、4,000バイト送信)。これにより送信データ長カウンタは2ラップして160となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号▲7▼に示すような状態となる。
【0049】
(vi) 図4の状態番号▲7▼では、キュー番号ビットマップテーブル25からエントリ2のビット1を検出し、フロー1のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、4,800バイト送信)。これにより送信データ長カウンタは1ラップして160となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号▲8▼に示すような状態となる。
【0050】
(vii) 図5の状態番号▲8▼では、キュー番号ビットマップテーブル25からエントリ3のビット1を検出し、フロー1のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、5,600バイト送信)。これにより送信データ長カウンタは1ラップして200となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号▲9▼に示すような状態となる。
【0051】
(viii) 図5の状態番号▲9▼では、キュー番号ビットマップテーブル25からエントリ4のビット0を検出し、フロー0のデータを800バイト送信する(単位時間で6,000バイト送信可能なうち、6,400バイト送信。すなわち、本処理で単位時間内の処理を終了する。)。これにより送信データ長カウンタは2ラップして80となり、送信帯域値テーブル23と送信帯域値ラップアラウンド回数管理テーブル24とキュー番号ビットマップテーブル25を更新することで、各制御テーブル類5は状態番号10に示すような状態となる。
【0052】
以上で単位時間内の処理を完了するが、結果は、フロー0:2,400バイト送信(37.5%)、フロー1:4,000バイト送信(62.5%)であり、13%以内の誤差に収まっている。
【0053】
(5)制御テーブル類5の再初期化処理
図10に、制御テーブル類5の再初期化処理のフローチャートを示す。
【0054】
この処理では、トラフィックの偏りを引きずらないように単位時間毎に制御テーブル類5をリセットする。まず、送信帯域値テーブル23の全エントリに送信帯域保証テーブル22の全エントリをコピーする(ステップ800)。つぎに、送信帯域値ラップアラウンド回数管理テーブル24の各エントリを0クリアする(ステップ810)。さらに、キュー番号ビットマップテーブル25のエントリ0にキュー番号ビットマップテーブル25のエントリ0からエントリMまでの論理和演算結果を設定する(ステップ820)。つぎに、キュー番号ビットマップテーブル25のエントリ1からエントリMまでに0を設定する(ステップ830)。また、キュー番号ビットマップテーブル25のエントリ0のうち、帯域保証を行わないフローに対応するビットをオフする(ステップ840)。そして、キュー番号ビットマップテーブル25のエントリMのうち、帯域保証を行わないフローに対応するビットをオンする(ステップ850)。
【0055】
本例について、制御テーブル類5再初期化後の各種テーブル類の状態は、図5の状態番号11の通りになる。
【0056】
【発明の効果】
本発明は、以上のように、例えば以下のような効果を奏する。
・トラフィックフロー毎に、送信帯域を保証する送信処理スケジューリングを可能となること。
・送信待ちキューにキューイングされたデータについて、最も保証帯域の達成度が低いトラフィックフローに最優先の送信スケジューリングを動的に行うことにより、送信待ちデータがある限り回線の空きなどの無駄が生じることがないこと。
・回線速度、平均パケット長に基づいて送信帯域を監視する単位時間を調整することで、送信待ちキューの遅延時間と帯域保証の精度を調整できること。
【図面の簡単な説明】
【図1】本発明を適用するシステムの構成図。
【図2】制御テーブル類5および送信待ちキュー6の説明図。
【図3】各処理による制御テーブル類5の状態遷移図(1)。
【図4】各処理による制御テーブル類5の状態遷移図(2)。
【図5】各処理による制御テーブル類5の状態遷移図(3)。
【図6】制御テーブル初期化処理のフローチャート。
【図7】送信要求受け付け処理のフローチャート。
【図8】送信スケジュール処理のフローチャート。
【図9】送信処理のフローチャート。
【図10】制御テーブル類5の再初期化処理のフローチャート。
【符号の説明】
1 ネットワーク間接続装置
2 CPU
3 メモリ
4 入出力処理部
5 制御テーブル類
6 送信待ちキュー
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a bandwidth guaranteed transmission method and apparatus in a communication control system.
[0002]
[Prior art]
Conventionally, when network traffic is congested, the priority of concentrated traffic is fixedly evaluated from high priority to low priority to determine the data transfer order. That is, when a priority 1 (highest priority) traffic flow and a priority 7 (lowest priority) traffic flow occur at the same time, as long as there is a priority 1 traffic flow, there is an opportunity for transmission of the priority 7 traffic flow. In some cases, it disappeared.
[0003]
[Problems to be solved by the invention]
In the prior art as described above, the transfer order is often determined by chance depending on the priority relationship between concentrated traffic flows. That is, when priority 1 and priority 7 traffic flows occur simultaneously, the priority 7 traffic flow transfer time is transmitted by priority 7 traffic flow alone by giving priority to the priority 1 traffic flow. It takes a lot of time compared to the case. As described above, in the conventional technique, the transfer time may become unstable due to the concentration of traffic flow, and the application may not operate stably.
[0004]
In view of the above points, the present invention achieves the following objects, for example.
• Enable transmission processing scheduling that guarantees transmission bandwidth for each traffic flow.
-For data queued in the transmission waiting queue, the highest priority transmission scheduling is dynamically performed for the traffic flow with the lowest guaranteed bandwidth achievement, and as long as there is data waiting for transmission, waste of the line etc. occurs. Make sure there is nothing.
-Adjust the delay time of the transmission waiting queue and the accuracy of bandwidth guarantee by adjusting the unit time for monitoring the transmission bandwidth based on the line speed and the average packet length.
[0005]
[Means for Solving the Problems]
In the present invention, the guaranteed transmission bandwidth is managed by “the number of transmission octets whose transmission should be guaranteed within a unit time” and “achievement degree for each” for each traffic flow (a certain series of data). In the transmission process, a transmission queue is provided for each traffic flow, the number of octets transmitted for each queue is managed, and the queue that achieves the lowest number of transmitted octets is prioritized for the number of octets for which transmission is guaranteed. The scheduling method is to select and transmit. At the time of transmission processing, the control variables of the number of transmission octets and the achievement level are reset every unit time in order to correct the deviation of traffic flow. A traffic flow that does not guarantee the bandwidth is handled in the same manner as a traffic flow that achieves the guaranteed bandwidth. As a result, if there is no traffic flow that does not achieve the guaranteed bandwidth in the traffic flow that should guarantee the bandwidth, either the traffic flow that achieved the guaranteed bandwidth or the traffic flow that does not guarantee the bandwidth should be sent to the line. It is possible to prevent the occurrence of a vacant line.
[0006]
According to the first solution of the present invention,
It has a transmission queue for each traffic flow that is a series of transfer data,
Said For each traffic flow Per unit time Amount of data to send Guaranteed bandwidth indicating from the transmission queue for each traffic flow Amount of data sent When Manage
Said Amount of data to send Indicating the guaranteed bandwidth Vs. To do Amount of data sent Represented by said Guaranteed bandwidth Ask for achievement, said Provided is a bandwidth-guaranteed transmission method in which a queue of a traffic flow with a low achievement level is preferentially selected and transmitted.
[0007]
According to the second solution of the present invention,
A transmission queue for each traffic flow that is a series of transfer data, a transmission queue table for queuing data according to each traffic flow, and the bandwidth guaranteed per unit time for each traffic flow in units of data The transmission bandwidth guarantee table managed in step 1, the transmission bandwidth value table for managing the number of data transmitted within a unit time for each traffic flow, and the transmission bandwidth for managing the number of wraparounds of the transmission bandwidth value table for each traffic flow A memory having a value wraparound count management table;
An input / output processing unit connected to the network;
A control unit for controlling data transmission by the input / output processing unit based on the memory;
With
The controller is
Said For each traffic flow Per unit time Amount of data to send Guaranteed bandwidth indicating from the transmission queue for each traffic flow Amount of data sent When Manage
Said Amount of data to send Indicating the guaranteed bandwidth Vs. To do Amount of data sent Represented by said Guaranteed bandwidth Ask for achievement, said Provided is a bandwidth-guaranteed transmission apparatus that preferentially selects and transmits a queue of a traffic flow with a low achievement level.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0009]
(I) Unit time
First, consider the “unit time” for monitoring the guaranteed bandwidth and the degree of achievement. The unit time needs to be set to a time that is long enough to obtain the effect of bandwidth guarantee and short enough not to leave the effect of traffic flow bias (concentration of specific traffic flows) long.
[0010]
For example, a case is assumed in which a unit time is set to 1 second in a system that transfers packets with an average of 1,500 octets on a 9,600 bit / second line. In this case, the number of octets that can be transmitted per unit time in the transfer of one packet is exceeded, and the effect of bandwidth guarantee does not appear (actual First In First Out method). Next, for example, a case is assumed where the unit time is set to 100 seconds in such a system having a line speed and an average packet length. In this case, if the traffic flow of 96,000 bits / 100 seconds with a guaranteed bandwidth of 10% is concentrated at the beginning of the unit time, the guaranteed bandwidth is achieved by transmitting only 8 packets, and the subsequent 90 seconds are guaranteed. As long as there is another traffic flow that does not achieve the bandwidth, the traffic flow cannot be transmitted, leaving the traffic flow uneven for a long time.
[0011]
As described above, in the present invention, the optimum unit time is determined from the average packet length and line speed of the system in consideration of the accuracy of bandwidth guarantee and the delay time due to waiting in the transmission waiting queue in the following process.
[0012]
i) Calculation of the ratio of one packet to the throughput of the line per unit time
For example, if the unit time is 1 second in a system that transfers packets with an average of 1,500 octets over a 9,600 bit / second line, the ratio of one packet to the line throughput is 125% according to the following equation (1): Since the packet transfer exceeds the line throughput per unit time, the effect of bandwidth guarantee does not appear.
(1,500 (octets) x 8 (bits / octet)) ÷ (9,600 (bits / second) x 1 (seconds (unit time))) x 100 = 125 (%)-1
[0013]
Also, for example, if the unit time is 100 seconds in a system that transfers packets with an average of 1,500 octets over a 9,600 bit / second line, the ratio of one packet to the line throughput is 1.25% according to equation (2) below. The bandwidth can be guaranteed with an accuracy of about 1.25%. However, as already mentioned, the delay time due to waiting in the transmission waiting queue may be about 100 seconds.
(1,500 (octets) x 8 (bits / octet)) ÷ (9,600 (bits / second) x 100 (seconds (unit time))) x 100 = 1.25 (%)-(2)
[0014]
ii) Evaluation of bandwidth guarantee accuracy and transmission queue delay time
As described in i), the unit time represents the delay of the transmission waiting queue, and the ratio of one packet to the transmission throughput of the line per unit time represents the accuracy of bandwidth guarantee. The unit time and the accuracy of bandwidth guarantee are in a trade-off relationship.
[0015]
Considering the above, the unit time is determined by calculating / evaluating the accuracy of bandwidth guarantee and the delay of the transmission queue from the line speed (fixed value) and average packet length (fixed value).
[0016]
As shown in equation (2) in i) above, if a bandwidth guarantee with an accuracy of about 1% is performed on a system that transfers packets with an average of 1,500 octets over a 9,600 bit / second line, the delay of the transmission queue will increase. Too much. If a bandwidth guarantee with an accuracy of about 10% is performed, t = 12.5 seconds from equation (3) below, and the delay time in the transmission waiting queue is about 12 seconds. (1,500 (octets) x 8 (bits / octet)) ÷ (9,600 (bits / second) x t (seconds (unit time))) x 100 = 10 (%)-(3)
[0017]
As described above, the optimum unit time for the system is determined by calculating the accuracy of the mutually guaranteed bandwidth guarantee and the delay of the transmission queue.
[0018]
(II) Hardware configuration
FIG. 1 shows a configuration diagram of a system to which the present invention is applied. As an example of application of the present invention, a case where the present invention is applied to a transmission waiting queue of an inter-network connection device in an IP network can be considered.
[0019]
The inter-network connection device 1 is a device for connecting networks. The inter-network connection device 1 includes a CPU 2, a memory 3, and an input / output processing unit 4. The inter-network connection device 1 also holds the control tables 5 and the transmission queue 6 on the memory 3 and executes data routing processing between the networks. In the inter-network connection device 1, there are cases where networks having different line speeds are connected to each other, and when data is transmitted from a network with a high line speed to a network with a low line speed, there is a case where data transmission waiting occurs during data transmission. is there. In each network device including the inter-network connection device 1, generally, waiting control is performed using the “transmission wait queue 6” for these data transmission waits. The present invention can be applied to, for example, a scheduling process for retrieving data from the “transmission waiting queue 6”.
[0020]
FIG. 2 is an explanatory diagram of the control tables 5 and the transmission queue 6. In the present invention, the following tables necessary for processing are provided.
(1) A transmission waiting queue table 21 for queuing data according to the traffic flow type is provided. For example, the traffic flow type may be determined based on the TOS value of the IP packet and the source / destination IP address.
(2) For each traffic flow, a transmission bandwidth guarantee table 22 is provided for managing the bandwidth guaranteed per unit time in units of octets. In addition to the octet number unit, it can be managed by an appropriate value such as the number of bits.
(3) A transmission band value table 23 for managing the number of octets transmitted within a unit time for each traffic flow is provided. In addition to the number of octets, the number of bits, the ratio, etc. can be managed with appropriate values.
(4) A transmission bandwidth value wraparound count management table 24 for managing the wraparound count of the transmission bandwidth value table 23 is provided for each traffic flow. Here, one round of the counter or the like is called wrap around. For example, when a 1-byte counter is subtracted, the cycle is 1 → 0 → 255.
(5) A queue number bitmap table 25 for managing in which queue the data exists is provided according to the number of wraparounds.
[0021]
The processing method of the present invention will be described below. Band guarantee control is realized by performing the following processing using the control tables 5 as described above.
[0022]
(III) Process overview
In this embodiment, transmission data is queued in the transmission queue table 21 for each traffic flow. Then, among the queued traffic flows, the traffic flow having the lowest achievement of the transmission band with respect to the guaranteed band is preferentially transmitted.
[0023]
In the present embodiment, the achievement level is managed by the queue number bitmap table 25. The queue number bitmap table 25 may be omitted, and the transmission band value wraparound count management table 24 may be used for management. The achievement degree of the young number entry (lap round number 0) in the array of the queue number bitmap table 25 is low, and the achievement degree of the old number entry (lap round number M) is high. The oldest entry indicates that the bandwidth has been guaranteed. Each bit in the queue number bitmap table 25 entry can be mapped to a traffic flow. The oldest entry (bandwidth guaranteed) is assigned a traffic flow that does not guarantee bandwidth, and is sent only when all other traffic flows have reached the guaranteed bandwidth or there is no other traffic flow to send. It can also be used for control to do. The queue number bitmap table 25 can be configured with two entries (an entry for which the guaranteed bandwidth has not been achieved and an entry for which the guaranteed bandwidth has been achieved). However, with this configuration, the priority relationship between the traffic that has not achieved the guaranteed bandwidth cannot be precisely controlled. For this reason, the guaranteed bandwidth is divided into several stages and mapped to the entry numbers in the queue number bitmap table 25. Taking FIG. 2 as an example, entry 0 to entry M-1 are guaranteed bandwidth unachieved entries, and entry M is a guaranteed bandwidth achieved entry. In this case, M and more are handled collectively by one entry M number, but the present invention is not limited to this and can be stored as M + 1 number or an appropriate entry.
[0024]
As for the number of stages of guaranteed bandwidth, fine control is possible if there are many stages. However, when bandwidth is managed based on the number of transmission octets as in this embodiment, the line speed and the average packet An approach based on length is considered as an example. For example, in the case of a system with a guaranteed bandwidth of 16,000 octets / second and an average packet length of 1,500 bytes, the guaranteed bandwidth is achieved by transmitting about 11 packets. Therefore, by dividing the guaranteed bandwidth into 11 steps, transmission of one packet may appear as a difference in priority of one step between traffic flows (that is, a difference in one entry of values in the queue number bitmap table 25). I can expect. In this case, the value M in the queue number bitmap table 25 is 12.
[0025]
In the present invention, when the bandwidth guarantee value is divided into 11 stages as described above, the number of (guaranteed bandwidth ÷ 11) bytes transmitted is managed. In order to realize this management, each traffic flow has a table for managing the (guaranteed bandwidth / step) value and how many times the (guaranteed bandwidth / step) value is transmitted. The (guaranteed bandwidth / step) value is managed by the transmission bandwidth guarantee table 22 (FIG. 2- (2)) and the transmission bandwidth value table 23. The number of times of transmission is managed by the transmission band value wraparound frequency management table 24.
[0026]
For example, in a traffic flow with a guaranteed bandwidth of 16,000 octets, 1500 is set in each entry corresponding to the traffic flow in the transmission bandwidth guarantee table 22 and the transmission bandwidth value table 23. Each entry in the transmission bandwidth value wraparound count management table 24 is initialized with 0, and every time a packet is transmitted in a certain traffic flow, the transmission octet length is subtracted from the entry in the transmission bandwidth value table 23, and wraparound occurs. Each time the entry in the transmission bandwidth value wrap-around count management table 24 is incremented by one. The number of wraparounds for each traffic flow managed in the transmission bandwidth value wraparound number management table represents the degree of achievement of the guaranteed bandwidth and can be mapped to an entry in the queue number bitmap table 25.
[0027]
The processing in the present invention includes, for example, (1) initialization processing of the control tables 5, (2) transmission request reception processing, (3) transmission scheduling processing, (4) transmission processing, and (5) control tables 5. The re-initialization process can be broadly classified.
[0028]
The transmission request acceptance process queues a transmission packet in an entry corresponding to the traffic flow type in the transmission queue table 21 and corresponds to the achievement level (that is, the number of wraparounds) of the transmission band value wraparound number management table 24. The bit corresponding to the traffic flow type of the entry in the queue number bitmap table 25 is set to 1 to indicate that queuing has occurred in the queue. In the transmission scheduling process, bits are searched in order from the youngest entry in the queue number bitmap table 25, and a packet is extracted from the transmission queue table 21 and transmitted for a traffic flow in which the bit is set to 1.
[0029]
In the transmission process, the transmission bandwidth value table 23 is updated, and if necessary, the transmission bandwidth value wraparound count management table 24 and the queue number bitmap table 25 are updated. Further, the number of octets of the transmission packet is subtracted from the entry of the transmission band value table 23 corresponding to the traffic flow extracted by the transmission scheduling process. When wraparound occurs at this time (that is, when the transmission packet length is larger than the entry value of the transmission bandwidth value table 23), the initial value of the entry is taken out from the transmission bandwidth guarantee table 22 and the wraparound process is performed. (In other words, the entry value of the transmission bandwidth guarantee table 22 is extracted as a work variable, and the value obtained by subtracting the transmission packet length from the work variable is set in the entry of the transmission bandwidth value table 23). Further, the entry corresponding to the traffic flow in the transmission bandwidth value wraparound count management table 24 is added, the bit corresponding to the traffic flow of the wraparound count entry before the addition in the queue number bitmap table 25 is turned off, and after the addition Turn on the bit corresponding to the traffic flow of the wraparound count entry. As a result, the achievement level is increased (that is, the wraparound count is increased), so that the transmission priority is decreased (that is, the entry of the queue number bitmap table 25 is decreased).
[0030]
(IV) Processing details
Details of this processing will be described using the table state transition diagram and a flowchart, along with the following example conditions. 3 to 5 show state transition diagrams (1) to (3) of the control table 5 by each processing.
(Example)
Line speed: 9,600bps
Average packet length: 800 bytes
Unit time: 5 seconds
Amount of data that can be sent per unit time: 6,000 bytes
Achieving guaranteed bandwidth: 6 stages (6th stage is guaranteed bandwidth)
Maximum guaranteed bandwidth error: Approximately 13% ((800 × 8) ÷ (9,600 × 5) × 100)
Traffic flow type and each band: Flow 0 → 30%, Flow 1 → 70%
[0031]
The line speed, unit time, guaranteed bandwidth achievement stage, guaranteed bandwidth for each traffic flow, etc. can be set in the apparatus in advance, or means such as passing data from the outside can be used.
[0032]
(1) Initialization processing of control tables 5
FIG. 6 shows a flowchart of the control table initialization process.
[0033]
First, all entries in the transmission queue table 21 are cleared to 0 (step 400). Next, in each entry of the transmission bandwidth guarantee table 22 and the transmission bandwidth value table 23, the guaranteed bandwidth of each traffic flow per unit time / (guaranteed bandwidth achievement stage-1) is set. However, an unused entry can be distinguished from an in-use entry by setting, for example, 0 (step 410). In this example, the setting value of flow 0 that guarantees a bandwidth of 30% per unit time is 360 by the following formula, and the setting value of flow 1 that guarantees a bandwidth of 70% per unit time is 840 in the same way.
(((9,600 × 5) ÷ 8) × 0.3) ÷ (6-1) = 360
[0034]
Next, all entries in the transmission bandwidth value wraparound count management table 24 are cleared to 0 (step 420). In addition, all entries in the queue number bitmap table 25 are cleared to 0 (step 430).
[0035]
In this example, the state of various tables after execution of the initialization process is as shown in state number (1) in FIG.
[0036]
(2) Transmission request reception processing
FIG. 7 shows a flowchart of the transmission request acceptance process. Here, when a data transmission request is received, the following processing is executed for each data.
[0037]
First, transmission data is queued to the corresponding entry in the transmission queue table 21 for each transmission traffic flow type (step 500). Next, it is determined whether the traffic flow to be queued is a traffic flow whose bandwidth should be guaranteed (step 510). In order to determine this, if the guaranteed bandwidth for each traffic flow is set to 0%, a determination method is considered such that it is not necessary to guarantee the bandwidth. Next, in the case of a traffic flow whose bandwidth is to be guaranteed, an entry corresponding to the traffic flow in the transmission bandwidth value wraparound count management table 24 is extracted as a variable χ (step 520). When the variable χ is larger than M (the oldest number entry in the queue number bitmap table 25) (step 530), M is set to the variable χ (step 540). Similarly, when the traffic flow does not guarantee the bandwidth, M is set to the variable χ (step 540). Next, the bit corresponding to the traffic flow in the entry corresponding to the variable χ in the queue number bitmap table 25 is set to 1 (step 550).
[0038]
In this example, the status of various tables when receiving a transmission request for 4 data of flow 0 and 6 data of flow 1 is as shown by status number (2) in FIG.
[0039]
(3) Transmission scheduling process
FIG. 8 shows a flowchart of the transmission schedule process. This process is executed to select the next transmission data immediately after receiving the first data transmission or when one data transmission is completed.
[0040]
First, the entry counter I of the queue number bitmap table 25 is initialized to 0 (step 600). If I is less than or equal to M (stage), the following process (search process for bit “1” of variable I-th entry in queue number bitmap table 25) is executed, and if greater than M, the process is completed (step 610). ). If I is less than or equal to M, the bit counter J of the queue number bitmap table 25 entry is initialized to 0 (step 620). In FIG. 2, I indicates a vertical counter (number of wraparounds: 0 to M), and J indicates a horizontal counter (traffic flow numbers: 0 to n). If J is n (the number of traffic flow types) or less, the following processing is executed. If J is greater than n, I is incremented, and the process returns to step 610 (steps 630 and 670). If J is n or less, the I-th entry value in the queue number bitmap table 25 is searched, and if the J-th bit is non-zero, a call is made by passing I and J to the transmission processing of the relevant traffic type (step 650), if zero, J is counted up and the process returns to step 630 (step 660).
[0041]
(4) Transmission processing
FIG. 9 shows a flowchart of the transmission process. Here, the transmission process is executed in accordance with a request from the transmission scheduling process shown in FIG.
[0042]
The transmission process is called from the transmission scheduling process by designating the entry counter I of the queue number bitmap table 25 and the bit counter J of the queue number bitmap table 25 entry (step 700). Next, one packet is transmitted from the queue of the traffic flow in the transmission queue table 21 in accordance with the traffic flow number (bit counter J of the queue number bitmap table entry) designated from the transmission request process (step 710). Next, the transmission data length is subtracted from the entry of the traffic flow in the transmission band value table 23 (step 720). It is determined whether or not the transmission band value table 23 is wrapping around (step 730). If it is not wrapping around, the process is terminated, and if it is wrapping around, the following process is executed.
[0043]
First, the number of times of wraparound is added to the entry of the traffic flow in the transmission bandwidth value wraparound number management table 24 (step 740). At this time, if the transmission data length counter becomes the initial value from 0, it is considered that the wraparound occurs once, and the initial value of the counter is acquired from the entry of the traffic flow in the transmission bandwidth guarantee table 22. Then, the bit corresponding to the traffic flow of the entry corresponding to the entry counter I of the queue number bitmap table 25 is turned off (step 750). Further, the bit corresponding to the traffic flow of the entry corresponding to the updated wraparound count of the queue number bitmap table 25 is turned on (step 760).
[0044]
The (3) transmission scheduling process and (4) transmission process will be described below with reference to the examples of FIGS.
(i) In state number {circle around (2)} in FIG. 3, bit 0 of entry 0 is detected from queue number bitmap table 25, and data of flow 0 is transmitted for 800 bytes (of which 6,000 bytes can be transmitted per unit time, 800 Byte transmission). As a result, the transmission data length counter wraps to 2 and becomes 280. By updating the transmission bandwidth value table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25, each control table 5 has a status number. The state is as shown in (3).
[0045]
(ii) In the state number {circle over (3)} in FIG. 3, bit 1 of entry 0 is detected from the queue number bitmap table 25, and 800 bytes of data of flow 1 are transmitted (of which 6,000 bytes can be transmitted per unit time, 1,600 Byte transmission). In this case, the transmission data length counter does not wrap, and by updating the transmission band value table 23, the control tables 5 are in the state shown by the state number (4).
[0046]
(iii) In state number {circle over (4)} in FIG. 4, bit 1 of entry 0 is detected from queue number bitmap table 25, and 800 bytes of flow 1 data are transmitted (of which 400 bytes can be transmitted per unit time, 2,400). Byte transmission). As a result, the transmission data length counter wraps by 1 to 80, and by updating the transmission bandwidth value table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25, each control table 5 has a state number. The state becomes as shown in (5).
[0047]
(iv) In the state number {circle over (5)} in FIG. 4, bit 1 of entry 1 is detected from the queue number bitmap table 25, and 800 bytes of data of flow 1 are transmitted (3,200 of which 6,000 bytes can be transmitted per unit time). Byte transmission). As a result, the transmission data length counter wraps 1 to 120, and the control bandwidth table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25 are updated so that each control table 5 has a state number. The state is as shown in (6).
[0048]
(v) In state number {circle around (6)} in FIG. 4, bit 0 of entry 2 is detected from the queue number bitmap table 25 and 800 bytes of data of flow 0 are transmitted (of which 6,000 bytes can be transmitted per unit time, 4,000 Byte transmission). As a result, the transmission data length counter wraps to 2 to 160, and by updating the transmission bandwidth value table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25, each control table 5 has a state number. The state is as shown in (7).
[0049]
(vi) In the state number (7) in FIG. 4, the bit 1 of the entry 2 is detected from the queue number bitmap table 25, and 800 bytes of data of the flow 1 are transmitted (4,800 of which 6,000 bytes can be transmitted per unit time). Byte transmission). As a result, the transmission data length counter wraps to 1 to 160, and the control band 5 is updated by updating the transmission bandwidth value table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25. The state becomes as shown in (8).
[0050]
(vii) In state number {circle around (8)} in FIG. 5, bit 1 of entry 3 is detected from queue number bitmap table 25, and 800 bytes of data of flow 1 are transmitted (of which 6,000 bytes can be transmitted per unit time, 5,600 Byte transmission). As a result, the transmission data length counter wraps by 1 to 200, and the control band 5 is updated by updating the transmission bandwidth value table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25. The state becomes as shown in (9).
[0051]
(viii) In the state number {circle over (9)} in FIG. 5, bit 0 of the entry 4 is detected from the queue number bitmap table 25, and 800 bytes of flow 0 data is transmitted (of which 6,400 bytes can be transmitted per unit time, 6,400 Byte transmission, that is, the process within the unit time is terminated in this process.) As a result, the transmission data length counter wraps to 2 to 80, and by updating the transmission bandwidth value table 23, the transmission bandwidth value wraparound count management table 24, and the queue number bitmap table 25, each control table 5 has a state number. The state is as shown in FIG.
[0052]
The processing within the unit time is completed as described above, but the results are flow 0: 2,400 bytes transmission (37.5%) and flow 1: 4,000 bytes transmission (62.5%), which are within 13% error.
[0053]
(5) Control table 5 re-initialization processing
FIG. 10 shows a flowchart of the reinitialization process of the control tables 5.
[0054]
In this process, the control tables 5 are reset every unit time so as not to deviate traffic. First, all entries in the transmission bandwidth guarantee table 22 are copied to all entries in the transmission bandwidth value table 23 (step 800). Next, each entry in the transmission bandwidth value wraparound count management table 24 is cleared to 0 (step 810). Further, the logical sum operation result from entry 0 to entry M in the queue number bitmap table 25 is set in entry 0 in the queue number bitmap table 25 (step 820). Next, 0 is set from entry 1 to entry M in the queue number bitmap table 25 (step 830). In addition, in the entry 0 of the queue number bitmap table 25, the bit corresponding to the flow for which the bandwidth is not guaranteed is turned off (step 840). Then, in the entry M of the queue number bitmap table 25, the bit corresponding to the flow for which the bandwidth is not guaranteed is turned on (step 850).
[0055]
In this example, the states of the various tables after the re-initialization of the control tables 5 are as shown by the state number 11 in FIG.
[0056]
【The invention's effect】
As described above, the present invention has the following effects, for example.
-Transmission processing scheduling that guarantees the transmission bandwidth for each traffic flow must be possible.
-For data queued in the transmission waiting queue, the highest priority transmission scheduling is dynamically performed for the traffic flow with the lowest guaranteed bandwidth achievement, and as long as there is data waiting for transmission, waste of the line etc. occurs. There is nothing.
-The delay time of the transmission waiting queue and the accuracy of bandwidth guarantee can be adjusted by adjusting the unit time for monitoring the transmission bandwidth based on the line speed and average packet length.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a system to which the present invention is applied.
FIG. 2 is an explanatory diagram of control tables 5 and a transmission waiting queue 6;
FIG. 3 is a state transition diagram (1) of the control table 5 by each processing.
FIG. 4 is a state transition diagram (2) of the control table 5 by each processing.
FIG. 5 is a state transition diagram (3) of the control table 5 by each processing.
FIG. 6 is a flowchart of control table initialization processing.
FIG. 7 is a flowchart of a transmission request acceptance process.
FIG. 8 is a flowchart of transmission schedule processing.
FIG. 9 is a flowchart of transmission processing.
FIG. 10 is a flowchart of reinitialization processing of the control tables 5;
[Explanation of symbols]
1 Network connection device
2 CPU
3 memory
4 I / O processor
5 Control tables
6 Waiting queue

Claims (5)

ある一連の転送データであるトラフィックフロー毎の送信待ちキューを有し、
前記トラフィックフロー毎の単位時間あたりに送信すべきデータ量を示す保証帯域と、前記トラフィックフロー毎に前記送信待ちキューから送信したデータ量を管理し、
前記送信すべきデータ量を示す前記保証帯域に対する前記送信したデータ量によって表される前記保証帯域の達成度を求め、前記達成度が低いトラフィックフローのキューを優先的に選択して送信するようにした帯域保証送信方法。
It has a transmission queue for each traffic flow that is a series of transfer data,
The managing and guaranteed bandwidth indicating the amount of data to be transmitted per unit of each traffic flow time, and the amount of data transmitted from the transmission queue for each of the traffic flows,
Calculated achievement of the guaranteed bandwidth represented by the transmitted data amount against the guaranteed bandwidth that indicates the amount of data to be the transmission, transmitting the level of achievement of low traffic flow queues preferentially select and Bandwidth guaranteed transmission method.
請求項1に記載の帯域保証送信方法であって、
単位時間毎に、各トラフィックフローの送信したデータ量及び保証帯域の達成度を管理する制御変数を再初期化することで、トラフィックフローの偏りを是正することを特徴とする帯域保証送信方法。
The bandwidth-guaranteed transmission method according to claim 1,
A bandwidth-guaranteed transmission method that corrects a traffic flow bias by reinitializing a control variable that manages the amount of data transmitted by each traffic flow and the degree of achievement of the guaranteed bandwidth every unit time.
請求項1又は2に記載の帯域保証送信方法であって、
平均データパケット長及び回線速度に基づいて、帯域保証の精度と制御変数の再初期化時間を調整することを特徴とする帯域保証送信方法。
The bandwidth-guaranteed transmission method according to claim 1 or 2,
A bandwidth-guaranteed transmission method comprising adjusting the accuracy of bandwidth guarantee and the reinitialization time of a control variable based on an average data packet length and a line speed.
請求項1乃至3のいずれかに記載の帯域保証送信方法であって、
前記達成度は、トラフィックフロー毎のカウンタが一巡した回数であるラップアラウンド回数により管理することを特徴とする帯域保証送信方法。
The bandwidth-guaranteed transmission method according to any one of claims 1 to 3,
The achievement level is managed by a bandwidth-guaranteed transmission method, which is managed based on the number of times of wraparound, which is the number of times the counter for each traffic flow makes a round.
ある一連の転送データであるトラフィックフロー毎の送信待ちキューと、トラフィックフロー別に応じてデータをキューイングする送信待ちキューテーブルと、各トラフィックフロー毎に、単位時間あたりに保証する帯域幅をデータ数単位で管理する送信帯域保証テーブルと、各トラフィックフロー毎に単位時間内に送信したデータ数を管理する送信帯域値テーブルと、各トラフィックフロー毎に前記送信帯域値テーブルのラップアラウンド回数を管理する送信帯域値ラップアラウンド回数管理テーブルとを有するメモリと、
ネットワークに接続される入出力処理部と、
前記メモリに基づき、前記入出力処理部によるデータ送信を制御する制御部と
を備え、
前記制御部は、
前記トラフィックフロー毎の単位時間あたりに送信すべきデータ量を示す保証帯域と、前記トラフィックフロー毎に前記送信待ちキューから送信したデータ量を管理し、
前記送信すべきデータ量を示す前記保証帯域に対する前記送信したデータ量によって表される前記保証帯域の達成度を求め、前記達成度が低いトラフィックフローのキューを優先的に選択して送信するようにした帯域保証送信装置。
A transmission queue for each traffic flow that is a series of transfer data, a transmission queue table for queuing data according to each traffic flow, and the bandwidth guaranteed per unit time for each traffic flow in units of data The transmission bandwidth guarantee table managed in step 1, the transmission bandwidth value table for managing the number of data transmitted within a unit time for each traffic flow, and the transmission bandwidth for managing the number of wraparounds of the transmission bandwidth value table for each traffic flow A memory having a value wraparound count management table;
An input / output processing unit connected to the network;
A control unit for controlling data transmission by the input / output processing unit based on the memory;
The controller is
The managing and guaranteed bandwidth indicating the amount of data to be transmitted per unit of each traffic flow time, and the amount of data transmitted from the transmission queue for each of the traffic flows,
Calculated achievement of the guaranteed bandwidth represented by the transmitted data amount against the guaranteed bandwidth that indicates the amount of data to be the transmission, transmitting the level of achievement of low traffic flow queues preferentially select and Bandwidth guaranteed transmission device.
JP14563299A 1999-05-25 1999-05-25 Bandwidth guaranteed transmission method and apparatus Expired - Lifetime JP4426010B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14563299A JP4426010B2 (en) 1999-05-25 1999-05-25 Bandwidth guaranteed transmission method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14563299A JP4426010B2 (en) 1999-05-25 1999-05-25 Bandwidth guaranteed transmission method and apparatus

Publications (2)

Publication Number Publication Date
JP2000341321A JP2000341321A (en) 2000-12-08
JP4426010B2 true JP4426010B2 (en) 2010-03-03

Family

ID=15389508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14563299A Expired - Lifetime JP4426010B2 (en) 1999-05-25 1999-05-25 Bandwidth guaranteed transmission method and apparatus

Country Status (1)

Country Link
JP (1) JP4426010B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004266389A (en) * 2003-02-28 2004-09-24 Matsushita Electric Ind Co Ltd Method and circuit for controlling packet transfer
CN112311695B (en) * 2020-10-21 2022-09-30 中国科学院计算技术研究所 On-chip bandwidth dynamic allocation method and system

Also Published As

Publication number Publication date
JP2000341321A (en) 2000-12-08

Similar Documents

Publication Publication Date Title
US7710871B2 (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US6826147B1 (en) Method and apparatus for aggregate flow control in a differentiated services network
US9106577B2 (en) Systems and methods for dropping data using a drop profile
US8520517B2 (en) Switch fabric end-to-end congestion avoidance mechanism
US8913541B2 (en) Dequeuing and congestion control systems and methods for single stream multicast
US7885281B2 (en) Systems and methods for determining the bandwidth used by a queue
US20140105025A1 (en) Dynamic Assignment of Traffic Classes to a Priority Queue in a Packet Forwarding Device
US7636310B2 (en) Communication control system and communication control method
US8009561B1 (en) Systems and methods for permitting queues to oversubscribe
US8072998B2 (en) Systems and methods for congestion control using random early drop at head of buffer
US20080267073A1 (en) Method and System for Ethernet Congestion Management
US7342883B2 (en) Method and apparatus for managing network traffic
US10965605B2 (en) Communication system, communication control method, and communication apparatus
US7652988B2 (en) Hardware-based rate control for bursty traffic
JP4426010B2 (en) Bandwidth guaranteed transmission method and apparatus
CN112491736A (en) Congestion control method and device, electronic equipment and storage medium
JP2010258660A (en) Network device
JP4838739B2 (en) Router buffer management method and router using the management method
US7646724B2 (en) Dynamic blocking in a shared host-network interface
JP2001086154A (en) Distribution processing type router provided with traffic control function

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090805

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: 20091201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131218

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term