JP4881886B2 - パケットスケジューリング方法および装置 - Google Patents

パケットスケジューリング方法および装置 Download PDF

Info

Publication number
JP4881886B2
JP4881886B2 JP2008018489A JP2008018489A JP4881886B2 JP 4881886 B2 JP4881886 B2 JP 4881886B2 JP 2008018489 A JP2008018489 A JP 2008018489A JP 2008018489 A JP2008018489 A JP 2008018489A JP 4881886 B2 JP4881886 B2 JP 4881886B2
Authority
JP
Japan
Prior art keywords
counter
transmission
queue
packet
unit
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.)
Active
Application number
JP2008018489A
Other languages
English (en)
Other versions
JP2009182545A (ja
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.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks Corp
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 Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2008018489A priority Critical patent/JP4881886B2/ja
Publication of JP2009182545A publication Critical patent/JP2009182545A/ja
Application granted granted Critical
Publication of JP4881886B2 publication Critical patent/JP4881886B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信分野におけるパケットスケジューリング機能および装置に関するものである。膨大のマルチキューを備えた通信装置において各キューの帯域リソースを重みに基づいて均等に分配する帯域制御技術を高速回線上で高精度に実現するパケット中継装置および方法に関する。
近年、ブロードバンドアクセスサービスとして普及するFTTH(Fiber To The Home)におけるアクセスネットワーク構成を図1に示す。図1において各エンドユーザそれぞれに構築されるLAN(Local Area Network)101は、ユーザ宅に設置される光信号-電気信号の変換機器であるONU(Optical Network Unit)102と、光信号を分岐・結合する光カプラ103と、局側に設置される光信号-電気信号の変換機器であるOLT(Optical Line Terminal)104と、エッジルータ105を介してインターネット106へのアクセスが行なわれる。一本の回線上に複数の利用者が収容される為にユーザ間の通信帯域の公平性を確保する事が求められる。このような用途に対する解決策として重み付け公平キューイングと呼ばれるスケジューリング・アルゴリズムが用いられることがある。この重み付け公平キューイングは複数のキューを持ち、パケットを送信するたびに当該キューに対して送信パケット長(length)と重みの逆数(1/Weight)の乗算した結果を毎度加算することによって帯域リソースを各キューに設定された重みに基づいて分配するアルゴリズムである。
次に図2を用いて、重み付け公平キューイングの原理を説明する。図2はトラフィック振り分け機能201と、受信パケットを格納するキューバッファーと送信計数器を管理している送信待ちキュー202と、パケットの送信スケジューラー203から構成される重み付け公平キューイングを実現するために必要な基本構成である。同図に示した各部位の機能について説明すると、トラフィック振り分け部201はパケットのL2/L3ヘッダ情報などを参照してパケット毎にそれぞれの送信待ちキュー202にパケット振り分けを行なう機能を備える。送信待ちキュー202は、トラフィック振り分け部201から受信したパケットをFIFOで格納するパケットバッファーの機能と、各キューの送信スケジューリングに使用される送信計数器を備える。図2に示す構成では、送信待ちキュー202(Queue#(1)・・・Queue#(n))のn個にて構成されていて、パケット送信時に当該キューの送信計数器に対して送信パケット(Length)と当該キューの重みの逆数(1/Weight)の乗算結果を当該の送信計数器に対して加算して更新する。
Tnew(n)=Told(n)+ Length(n)/Weight(n) …(式1)
()によって区切られた領域のnはキュー番号を示し、下付き文字のnewは更新後の送信予定時刻計数器、下付き文字のoldは更新前の送信予定時刻計数器の状態を示す。送信スケジューラー203は、送信待ちキュー202からの送信計数器およびキューにパケットが滞留しているかどうかの情報を受信、パケットが滞留しているキューの中から送信計数器の値が低い(もっとも早く送信して欲しい状態)キューを選出するスケジューリング処理を行なう。このような処理を実施することで重み付け公平キューイングによるスケジューリングが実現可能となる。
重み付け公平キューイングは処理が複雑でキュー数が多くなると計算量が増大する為、多キューの重み付け公平キューイングアルゴリズムを高速回線上で実装する事は困難であることがしばしば報告されている。これらの課題に対する解決手段として幾つの公知例が提案されている。
特許文献1に開示された従来のパケット転送制御装置では、アクティブキューの予約バンド幅の合計値の変動に対する該転送終了予定時刻の相対的な順位変動の依存性の低い先頭パケット同士をクラスタ化することによって、重み付け公平キューイングにおいてキュー数分の計算量のオーダO(N)が必要だったものを計算量のオーダO(N/M+M)に軽減する方式について記載がされている。
特許文献2に開示された従来のパケット転送制御装置では、出力によってキューが空になった場合にビットスキャンを追加して基準時刻を設ける事で重み付け公平キューイングによって生じる計算量を削減する方式について記載されている。
特開2000−101637号公報 特開2006−5338 号公報
特許文献1では、劇的に処理量が減る訳ではないのでキューが膨大(例えば、数千〜数万個)となると高速回線上においてイーサネット(登録商標)の最小パケット( 6 4 b y t e )を転送する時間内に行うことは困難だというキュー数の拡張性の問題と、アクティブキューの予約バンド幅の変異による送信順序の誤差がクラスタ内に生じると言うスケジューリング精度(誤差)の問題が内在するものと考えられる。
また、特許文献2によるビットスキャン処理は各キューのパケット有無をチェックだけ実施するために1キュー当たりの処理は非常に軽くする事が可能であるがキュー数が膨大(例えば、数千〜数万個)になったときに、検索の最後キューのみにパケットが存在するようなケースを考慮する必要があり、結果的に全キューをスキャンする必要があるので1キューの処理が軽くてもキュー数が数万個に及ぶと全体として非常に負荷が重くなってしまうのでキュー数の拡張性に問題があり、ビットスキャン検索によって探索される基準時刻は全キューの中の最小とならない為にパケット入力タイミングによって基準時刻のバラツキが生じ、設定された重みとは無関係な誤差が帯域分配に生じるスケジューリング精度(誤差)の問題が内在するものと考えられる。
本発明は、上記に示した特許文献1および特許文献2におけるスケジューリング精度とキューの拡張性の問題を解決するパケットスケジューリング方法および装置を提供することを目的とする。
本発明によるパケットスケジューリング手段を備えるパケット転送装置は、各キューに入力されたパケットデータを一時的に格納するキュー管理部と、各キューの計数器と各キューによって構成される二分木の計数器を管理する計数器管理部と、前記計数器管理部で記憶された計数器から有効であって計数器の値が最小となる二分木の優勝者(送信候補者)を短時間で探索する送信制御部と、前記優勝者の計数器の値を基準時刻として記憶する基準時刻管理部と、パケット受信とパケット送信時と計数器のアクティブチェック処理の際に該当キューの計数器管理部に対して処理開始のトリガーを与えるステートマシンを備えるものである。
本発明による第一の効果は、重み付け公平キューイングの原則に基づいて計数器へのアクセス回数および計算量の大幅な削減を図ることが可能となる点である。
第二の効果は全キューの中から最小であるキューを基準カウンターとして探索する手段を少ない計算量で提供、スケジューリング手段によって発生する誤差をゼロに抑えた高精度のスケジューリング処理を提供できる点である。
本実施形態を構成するスケジューリング装置の内部ブロック図を図4に示す。本実施形態によるスケジューリング機能を有する装置は、トラフィック識別部401と、ステートマシン402と、計数器管理部403と、キュー管理部404と、補正更新処理部405と、送信制御部406と、基準時刻管理部407と、アクティブチェック部408が具備されている。次に、同図に示す各部位の機能について説明する。
トラフィック識別部401について説明を行なう。当該ブロックは、入力されたパケットのL2/L3ヘッダ情報などを参照してパケット毎にキュー単位に分類して、キュー番号を示すキュー番号識別子とパケットデータを受信リクエスト情報としてステートマシン402に転送する機能を有する。なお、振り分けに用いる識別子は一般的なパケットヘッダだけではなく、新たに独自で作成した独自ヘッダ情報を用いても良い。
ステートマシン402について説明を行なう。当該ブロックはパケット受信時とパケット送信時とアクティブチェック時の処理の際に隣接する各ブロックと調停を行なう制御機能を有する。当該ブロックの処理をフローチャート化したものを図5に示す。
パケット受信時の処理のトリガーはトラフィック識別部401から受信リクエスト情報を受信することによって始まる(ステップ501のyes)。当該ブロックは受信したパケット情報を一旦メモリ内に格納する為にキュー管理部404に受信リクエスト情報をそのまま転送する(ステップ502)。受信リクエスト情報にはパケットデータの他、トラフィック識別部401によって付与されたキュー番号識別子が含まれており、キュー番号識別子に受信処理トリガーを付与し計数器管理部403に伝達する(ステップ503)ことでパケット受信時の当該ブロック処理が完了する。
パケット送信時の処理のトリガーは、送信制御部406から送信リクエスト情報を受信することによって始まる(ステップ504のyes)。当該ブロックはキュー管理部404に送信リクエスト情報をそのまま転送する(ステップ505)。送信リクエスト情報には送信リクエストの他、送信候補者のキュー番号識別子が含まれている。キュー管理部404から前記送信リクエスト情報として送信したキュー番号に関するキュー番号識別子とパケット長とValid情報とWeightを受信する(ステップ506)。Valid情報はパケット送信後の当該キューのパケット有無、Weightは当該キューに設定された重み情報である。これらの受信情報に送信処理トリガーを付与し計数器管理部403に伝達する(ステップ507)ことでパケット送信時の当該ブロック処理が完了する。
アクティブチェック処理のトリガーはアクティブチェック部408からアクティブチェック情報を受信することによって始まる(ステップ508のyes)。アクティブチェック情報にはアクティブチェックリクエストの他、アクティブチェック候補者のキュー番号識別子が含まれている。当該ブロックは受信したキュー番号識別子にアクティブチェック処理トリガーを付与し計数器管理部403に伝達する(ステップ509)ことでアクティブチェック処理時の当該ブロック処理が完了する。
計数器管理部403について説明を行なう。当該ブロックは各キューに対する計数器および各キューによって構成される二分木の各回戦勝者の計数器の情報を記録する記憶部を内蔵する機能を有する。ここで計数器とは、各キューに格納されるパケットの送信タイミングを管理するために保持されるものであり、基準時刻を基準として値が低いほど早く送信すべきであることを示す。また、当該ブロックでは、各キューの計数器の値と、各キュー同士の計数器の値の比較結果を図6に示すトーナメント方式で管理されている。図6の例では、各キュー(#1−#16)の計数器の値と、1回戦から4回戦までの各対戦における勝者(計数器の値が低かった方)の計数器の情報が管理される。ステートマシン402から受信/送信/アクティブチェック処理トリガーおよびキュー番号識別子を受信する事によって、当該ブロックは受信したキュー番号識別子が示すキューおよび当該キューの各回戦の対戦者の計数器情報が記憶されている記憶領域にアクセスを行なう。各回戦の対戦者の計数器情報は更新を行なうキュー番号識別子から一意に求める事ができる。また、計数器情報に含まれる情報は各キューに対する計数器だけではなく、各キューにパケットが存在しているかどうかを示すパケットバリッド(FV)と、各キューの計数が有効な値かどうかを識別するアクティブ情報(ACT)とキュー番号識別子が存在する。
図6に受信したキュー番号識別子に対して各回戦の対戦者がどのように決定されるかを説明する模式図を記載する。この例ではキュー番号識別子としてQueue#1の処理トリガー信号を受信した時にアクセスを行なう計数器の位置を示している。同図に示すとおりに一回戦の対戦者としてQueue#2、二回戦の対戦者としてQueue#3〜4の勝者、三回戦の対戦者としてQueue#5〜8の勝者、四回戦の対戦者としてQueue#9〜16の勝者が各回戦の勝者となる。
なお、ステートマシン402からは、3種類(受信処理、送信処理、アクティブチェック処理)の処理トリガー信号を受信するが、上記処理はどの信号においても共通の処理となる。
上記処理により、受信したキュー番号識別子に該当するキューとその対戦者の計数器情報を特定し、特定した計数器情報と、ステートマシン402から受信/送信/アクティブチェック処理トリガーとともに受信した全情報を補正更新処理部405に転送する。ここで、受信した全情報には、受信処理トリガーを受信した場合には受信パケットのキュー番号識別子が含まれ、送信処理トリガーを受信した場合には送信したキュー番号に関するキュー番号識別子とパケット長とValid情報とWeight情報が含まれ、アクティブチェック処理トリガーを受信した場合にはアクティブチェック候補者のキュー番号識別子が含まれる。
キュー管理部404について説明を行なう。当該ブロックは、各キューのパケットデータをスケジューリングによる送信順番が訪れるまで一時的に格納するパケットバッファー機能と、各キューに滞留したパケット数の管理機能と、各キューに設定するWeightを記憶する機能を有する。当該ブロックの処理のトリガーは、常にステートマシン402から受信する処理リクエスト信号によって開始される。ステートマシン402から受信処理リクエストを受信した場合、受信したキュー番号識別子を参照して該当するキュー番号のパケットバッファー情報に対してパケットデータを書き込み、当該キューの滞留パケット数を管理するパケット数情報を1増加させることにより、パケット受信時の当該ブロック処理が完了する。ステートマシン402から送信処理リクエスト受信した場合、受信したキュー番号識別子を参照して該当するキュー番号のパケットバッファー情報を読み出す処理を行なう。パケットデータについては、当該ブロックから直接的に外部の回線に向けて出力され、キュー番号識別子とパケット長とValid情報とWeightについてステートマシン402に対して応答する。Valid情報に関しては、例えばパケット送信時に該当キューに滞留しているパケット数が1個であったら送信処理によって当該キューに滞留するパケット数がゼロになるのでValid情報としては無効、滞留しているパケット数が2個以上であったら送信処理によって当該キューに滞留パケット数はゼロにはならないのでValid情報として有効を示す情報をステートマシン402に送る。当該キューの滞留パケット数を管理するパケット数情報を1減算させることにより、パケット送信時の当該ブロック処理が完了する。
補正更新処理部405について説明を行なう。当該ブロックは、計数器管理部403によって転送されてきた情報から基準時刻による補正処理とパケット送信などに伴って発生する計数器の更新処理とスケジューリング完了後に計数器に値を書き戻す前に基準時刻による逆補正処理を実施する。前記のとおりに、計数器管理部403からは、キュー番号識別子に該当するキューとその対戦者の計数器情報とステートマシン402から受信した全情報が当該ブロックに転送されてくる。
当該ブロックの処理をフローチャート化したものを図7〜9に示す。図7にはパケット受信時における更新処理フロー、図8にはパケット送信時における更新処理フロー、図9にはアクティブチェック処理における更新処理フローを記載する。
図7〜図9に共通する処理である補正処理(ステップ701、801、901)と逆補正処理(ステップ708、807、907)について説明する。
補正処理では、計数器管理部403から受信したキュー番号識別子に該当するキュー(以降、挑戦者という)とその対戦者の計数器情報を受信すると、受信した挑戦者および対戦者の計数器の値を後述する基準時刻に基づいて補正する。当該補正処理は、基準時刻をA、補正対象の計数器情報をB、補正後の計数器情報をXとすると次式で計算される。
X=B−A…(式2)
また、図7〜図9において送信制御部406によるヒープ処理(ステップ707、806、906のスケジューリング処理)が完了した後に、送信制御部406から送信される挑戦者とその対戦者の計数器情報を基準時刻に基づいて逆補正処理を行なう。基準時刻をA、補正対象の計数器情報をY、補正後の計数器情報をZとすると次式で計算される。
Z=Y+A…(式3)
図7に示す当該ブロックにおけるパケット受信時の計数器更新処理は、計数器管理部403から受信処理トリガー信号を受信することによって開始される。なお、図7の計数器更新処理は、挑戦者および全ての対戦者に対してそれぞれ個別に行われる。補正処理(ステップ701)完了後に挑戦者か対戦者かで処理内容が異なり(ステップ702)、該当データが対戦者の場合には計数器情報を更新せず、当該データが挑戦者の場合には計数器情報を次のように更新する。
挑戦者の計数器情報に含まれるパケットバリッド(FV)=1の場合は(ステップ703のyes)、挑戦者のキューに既にパケットが存在していることを示すため、計数器情報の更新は行わない。パケットバリッド(FV)=0、かつ、アクティブ情報(ACT)=1の場合は(ステップ704のyes)、挑戦者のキューにパケットは存在しないが、計数器の値に有効な値が設定されていることを示すため、FV=1に更新し、ACTおよび計数器の値は更新しない(ステップ705)。パケットバリッド(FV)=0、かつ、アクティブ情報(ACT)=0の場合は(ステップ704のno)、挑戦者のキューにパケットは存在せず、計数器の値に有効な値が設定されていないことを示すため、FV=1、ACT=1に更新し、計数器の値を基準時刻に更新する。
上記処理により更新された挑戦者およびその対戦者の計数器情報を送信制御部406に転送し、スケジューリング処理が完了するのを待つ(ステップ707)。その後、送信制御部406から送信される挑戦者とその対戦者の計数器情報を、基準時刻に基づいて逆補正処理を行い(ステップ708)、逆補正後の挑戦者およびその対戦者の計数器情報を計数器管理部403に転送し、図7の処理が完了する。なお、計数器管理部403は転送された逆補正後の計数器情報に基づいて自身が保持する計数器情報を更新する。
図8に示す当該ブロックにおけるパケット送信時の計数器更新処理は、計数器管理部403から送信処理トリガー信号を受信することによって開始される。なお、図8の計数器更新処理は、挑戦者および全ての対戦者に対してそれぞれ個別に行われる。補正処理(ステップ801)完了後に挑戦者か対戦者かで処理内容が異なり(ステップ802)、該当データが対戦者の場合には計数器情報を更新せず、当該データが挑戦者の場合には計数器情報を次のように更新する。
挑戦者の計数器情報に含まれるアクティブ情報(ACT)=1の場合は(ステップ803のyes)、計数器の値に有効な値が設定されていることを示すため、FVを計数器管理部403から受信したValid情報に基づいて更新し、ACTは更新せず(ACT=1のまま)、計数器の値を現在値に送信したパケットの「Length(パケット長)/Weight(重み)」の値を加えた値に更新する(ステップ804)。また、アクティブ情報(ACT)=0の場合は(ステップ803のno)、計数器の値に有効な値が設定されていないことを示すため、FVを計数器管理部403から受信したValid情報に基づいて更新し、ACT=1に更新し、計数器の値を基準時刻に送信したパケットの「Length(パケット長)/Weight(重み)」の値を加えた値に更新する(ステップ805)。
上記処理により更新された挑戦者およびその対戦者の計数器情報を送信制御部406に転送し、スケジューリング処理が完了するのを待つ(ステップ806)。その後、送信制御部406から送信される挑戦者とその対戦者の計数器情報を、基準時刻に基づいて逆補正処理を行い(ステップ807)、逆補正後の挑戦者およびその対戦者の計数器情報を計数器管理部403に転送し、図8の処理が完了する。なお、計数器管理部403は転送された逆補正後の計数器情報に基づいて自身が保持する計数器情報を更新する。
図9に示す当該ブロックにおけるアクティブチェック時の計数器更新処理は、計数器管理部403からアクティブチェック処理トリガー信号を受信することによって開始される。なお、図9の計数器更新処理は、挑戦者および全ての対戦者に対してそれぞれ個別に行われる。補正処理(ステップ901)完了後に挑戦者か対戦者かで処理内容が異なり(ステップ902)、該当データが対戦者の場合には計数器情報を更新せず、当該データが挑戦者の場合には計数器情報を次のように更新する。
挑戦者の計数器情報に含まれるパケットバリッド(FV)=1の場合は(ステップ903のyes)、挑戦者のキューに既にパケットが存在していることを示すため、ACTの内容にかかわらず計数器情報の更新は行わない。パケットバリッド(FV)=0、かつ、アクティブ情報(ACT)=0の場合は(ステップ904のno)、挑戦者のキューにパケットが存在しておらず、計数器の値も有効な値が設定されていないことを示すため、計数器情報の更新は行わない。パケットバリッド(FV)=0、かつ、アクティブ情報(ACT)=1の場合は(ステップ704のno)、挑戦者のキューにパケットは存在しないが、計数器の値に有効な値が設定されていないことを示すため、計測器の値と基準時刻の値を比較する。「計数器≦基準時刻」の条件を満たす場合は計測器には有効な値が設定されていないため、ACT=0に更新し、「計数器≦基準時刻」の条件を満たさない場合は計測器には有効な値が設定されているため、ACT=1のままで更新しない。なお、いずれの場合もFVの更新は行わない。
上記処理により更新された挑戦者およびその対戦者の計数器情報を送信制御部406に転送し、スケジューリング処理が完了するのを待つ(ステップ906)。その後、送信制御部406から送信される挑戦者とその対戦者の計数器情報を、基準時刻に基づいて逆補正処理を行い(ステップ907)、逆補正後の挑戦者およびその対戦者の計数器情報を計数器管理部403に転送し、図9の処理が完了する。なお、計数器管理部403は転送された逆補正後の計数器情報に基づいて自身が保持する計数器情報を更新する。
送信制御部406について説明を行なう。当該ブロックは、図7のステップ707、図8のステップ806、図9のステップ906において補正更新処理部405から転送された挑戦者およびその対戦者の計数器情報から二分木の更新を行なうヒープ処理と、二分木の優勝者の計数器情報を基準時刻管理部407に展開する処理と、送信リクエスト情報をステートマシン402に転送する機能を有する。
補正更新処理部405から受信される計数器情報には、FV、ACT、計数器、キュー番号識別子が含まれている。二分木のヒープトーナメントを更新するために、パラメータを{~FV、ACT、計数器}の順に並べ替えた値を大小比較して小さい方が勝者となるように二分木を更新し、挑戦者および各回戦の対戦者の情報を更新するために勝者の計数器情報を補正更新処理部405に送信する。補正更新処理部405は、当該勝者の計数器情報を元にステップ708、807、907の逆補正処理を行う。
また、二分木トーナメントの優勝者の計数器情報を基準時刻管理部407に伝達する機能を備える。これによって各キューの中で有効(パケットが存在)であって、計数器の値が最小となるような基準時刻を改めて特別に検索するのではなくて、優勝者(送信候補者)の計数器情報を基準時刻として退避して管理する事が可能となる。
また、当該ブロックは送信処理のトリガーとなる送信リクエスト情報をステートマシン402に伝達する。送信リクエスト情報の発信条件は、二分木トーナメントの優勝者の計数器情報がFV=1であって送信抑止信号を受信していない場合である。
なお、本実施形態では送信抑止の為に送信抑止信号と抽象的に記載しているが送信抑止は様々な条件を適用して良い。例えば、外部装置からのポーズパケット信号に抑止もあるし、当該装置から出力される送信帯域を監視してその監視帯域を超過しているときに送信を抑止するような手段を設けてよい。
基準時刻管理部407について説明を行なう。当該ブロックは、送信制御部406から二分木トーナメントの優勝者の計数器情報を得て、これを基準時刻として管理を行なう。パケット送信の度に二分木トーナメントの優勝者の計数器が基準時刻として採用される様子を示す模式図を図10に示す。同図ではパケット送信処理によって計数器の最小であるキュー番号が変わることによって、基準時刻がQueue#1→Queue#2→Queue#1→Queue#3の順に遷移している様子を示している。このように、基準時刻がパケットの送信とともに遷移し、その基準時刻から最も近い計数器の値を持つキューが次の基準時刻として選択され、次にパケットを送信するキューとして選択されるという動作を繰り返すことになる。このようにして得られる基準時刻は補正更新処理部405にて計数器情報の補正/逆補正処理として必要となったときに提供する。
アクティブチェック部408について説明を行なう。当該ブロックは本実施形態においてアクティブチェックと呼ぶ各キューの計数器情報が過去から未来に周回してしまう事を防止するアクティブチェック処理のトリガー信号を生成する。
計数器情報が過去から未来に周回してしまうとはどのような状態であるかと言うと、本実施形態によるスケジューリング手段では前記のとおりにパケット送受信する該当キューとその対戦者の情報のみを更新することによって計算量を節約しているので、例えば、パケット入力が行われないキューに対しては計数器情報の更新処理が一切行なわれない。フレーム送受信を行なわず、計数器情報が放置された状態が継続してしまうと、基準時刻が遷移して計数器が桁溢れによって周回した場合に放置された計数器の値が未来なのか過去なのか判別不能となる。
このような事を防ぐ為に、アクティブチェック処理と呼ぶ処理を用いてキューの計数器が有効な値なのかどうかをチェックする処理を実施する必要がある。具体的には、基準時刻に対して値が過去であるならば、計数器の値が無意味な状態であることを示す為にACTのフラグを落とす処理を設ける。このアクティブチェック処理は早い周期で定期的に実施できる方が好ましい。チェック周期が遅いと定期チェック前に計数器の値が一周する事を防ぐ為に、計数器のビット幅を増やす必要が出てしまい物量の増加に繋がる為である。但し、チェック周期を増やすと、単位時間当たりの計算量が増大すると言うトレードオフとなるので、実装を行なうLSIやCPUの性能や物量に合わせて最適なチェック周期を検討する必要がある。
本実施形態に掛かる重み付け均等キューイング制御技術を使用したとき計算量は以下のように求めることができる。補正処理更新部405によって行なう計数器情報の補正処理・逆補正処理と送信制御部406によって行なうヒープ処理の比較演算は、キュー数nに対して挑戦者および各回戦の対戦者のみに対して行なうので、それぞれの計算量は0(logn)となる。例えば、図6の模式図のようにキュー数が16個だとすると、1回のヒープ処理にかかる計算量は「挑戦者と対戦相手(1回戦)」「挑戦者と対戦相手(2回戦)」「挑戦者と対戦相手(3回戦)」「挑戦者と対戦相手(4回戦)」の比較処理の4回となる。また、パケット受信/パケット送信/アクティブチェックのそれぞれの処理に対して個別に補正・逆補正・ヒープ処理が必要となるため、各処理に対する計算量は3*0(logn)となり、パケット受信/パケット送信/アクティブチェック処理を決められたサイクル内にそれぞれ1回ずつ繰り返すと仮定すると1サイクル内の計算量は9*0(logn)となり、これが本実施形態にかかる重み付け均等キューイング制御の計算量となる。キュー数が2のべき乗で増加しても、計算量は9回しか増えないのでキュー数の拡張に対して計算量を抑えることが可能となる。また、送信制御部406によって、一時的に退避したヒープ処理の優勝者(送信候補者)の計数器情報を基準時刻管理部407で基準時刻として管理することにより基準時刻を求める為に特別な処理を設けることなく、一連の受信/送信/アクティブチェックなど処理中に基準時刻を選び出す手段を提供し、補正処理更新部405において計数器情報を補正処理・逆補正処理する際の基準時刻として利用することにより、高精度(誤差が発生しない)の重み付け均等キューイング制御技術が実現可能となる。
本実施形態における効果について整理すると、第一の効果は、重み付け公平キューイングの原則に基づいて計数器へのアクセス回数および計算量の大幅な削減を図ることが可能となる点である。計算量のオーダの合計はnをキュー数とすると、9*0(logn)で表すことができる。本計算量は1回の二分木探索処理で更新を行なう計数器は0(logn)であって、受信処理・送信処理・アクティブチェック処理に対して補正処理・比較処理・逆補正処理が必要となるために0(logn)に対して3x3の9倍の計算量が必要となることから算出される。本方式においてはキュー数が倍になっても計算量が劇的に増大する事はなく計算量は9増加するだけである。本実施形態によるスケジューリング手段をLSIなどのハードウェアで並列処理する事によって膨大なキューを備える重み付け公平スケジューリング機能を備えたパケット転送制御装置及びスケジューリング方法を高速回線上で提供することが可能となる。なお、キュー数の増加に伴って発生する計算量を大幅に軽減することは、単純に回線上に重み付け公平キューイングを実現するだけではなく、非高速回線上において大きな利点となる。計算量の軽減効果によって今まで高性能部品でしか実現できなかった処理が低性能部品でも実現可能となる為、部品原価および消費電力の低減の効果が期待できる点である。
第二の効果は、全キューの中から最小であるキューを基準カウンターとして探索する手段を少ない計算量で提供、スケジューリング手段によって発生する誤差をゼロに抑えた高精度のスケジューリング処理を提供できる点である。特許文献2では全キューの中から最小であるキューを探索するのは困難として最小カウンターを探索していないが、当該公知例では前記のとおりにスケジューリング誤差が生じてしまう問題点がある。本実施形態では、前記特許文献2よりも少ない計算量でありながら、全キューの中で最小であるキューを探索する手段を提供する事が可能である。
以上、上記処理を実施する事により前記課題を解決する膨大のマルチキューを備えた重み付け均等キューイング制御技術を高速回線上で高精度に実現する装置および方法を提供することが可能となる。本実施形態にかかる重み付け均等キューイング制御は、重み付け均等キューイング制御の原則に基づいている為、従来、重み付け均等キューイングが利用されていた応用領域についても適用可能である技術である。幾つかの応用領域の例を記載すると、例えば、キュー全体に対する送信可能帯域を設定して超過帯域を抑制するトラフィックシェーピング機能と組み合わせる事によって監視帯域リソースを重みで均等分配することが可能となる。また、キューを一個または複数個の単位でグループ化してグループ内で送信スケジューリングして、そのグループ間で送信スケジューリングまたは完全優先制御を実施することで階層的なスケジューリング制御を実現する事が可能となる。また、キュー毎に最大帯域を監視する手段を有する事で帯域リソースを重み付け均等キューイング方式で均等分配しつつも、キュー毎に設定された最大帯域を超過しないようにパケット送信スケジューリングを行なう事が可能となる。
一般的なアクセスネットワーク構成である。 重み付け公平キューイングの原理である。 重み付け公平キューイングによる帯域分配の例である。 本実施形態にかかるスケジューリング装置のブロック図である。 本実施形態にかかるステートマシンの処理フローである。 本実施形態にかかる二分木計数器管理方式の模式図である。 本実施形態にかかるパケット受信処理時の計数器更新フローである。 本実施形態にかかるパケット送信処理時の計数器更新フローである。 本実施形態にかかるアクティブチェック処理時の計数器更新フローである。 本実施形態にかかる基準時刻の遷移図である。
符号の説明
101 LAN(Local Area Network)
102 ONU(Optical Network Unit)
103 光カプラ
104 OLT(Optical Line Terminal)
105 エッジルータ
106 インターネット
201 トラフィック振り分け機能
202 キュー
203 送信スケジューラー
401 トラフィック識別部
402 ステートマシン
403 計数器管理部
404 キュー管理部
405 補正更新処理部
406 送信制御部
407 基準時刻管理部
408 アクティブチェック部

Claims (5)

  1. 複数の送信キューを備えたパケット中継装置であって、
    複数の前記送信キュー毎に、送信スケジューリングに使用する情報として計数器と前記計数器の有効性を管理するアクティブ情報とパケット有無を管理するパケットバリッド情報を管理する計数器管理部と、
    複数の前記送信キュー毎の計数器の中から、送信キューにパケットが有りかつ最小値の計数器を基準時刻として管理する基準時刻管理部と、
    前記計数器が前記基準時刻に対して過去の値であるか否かを確認することによって前記アクティブ情報である各計数器の有効性を定期的に監視するアクティブチェック管理部と、
    パケット送信の度にパケット送信対象の送信キューの計数器を送信パケット長とキュー毎に設定された重み情報に基づいて更新する更新部と、
    前記更新部によって更新された複数の前記送信キュー毎の計数器の中から送信キューにパケットが有りかつ計数器が最小値である送信キューをパケット送信対象の送信キューとして探索する送信制御部を有することを特徴とするパケット中継装置。
  2. 請求項1記載のパケット中継装置であって、
    前記計数器管理部は、複数の前記送信キュー毎の計数器を値が小さい計数器が勝ち残る二分木トーナメント形式で管理し、パケット送信の際に、パケット送信対象の送信キューの計数器と前記二分木トーナメントにおける対戦相手となる送信キューの計数器とを前記更新部に転送し、
    前記更新部は、前記計数器管理部から転送された前記パケット送信対象の送信キューの計数器を更新し、更新された前記計数器と前記計数器管理部から転送された前記対戦相手となる送信キューの計数器とを前記送信制御部に転送し、
    前記送信制御部は、前記更新部から転送された前記パケット送信対象の送信キューの更新された計数器および前記対戦相手となる送信キューの計数器に基づいて、各計数器を比較して小さい方が勝者となるように前記二分木トーナメントの前記パケット送信対象の送信キューの計数器から始まる各回戦における挑戦者および対戦相手の計数器を決定して前記更新部に転送し、
    前記更新部は、前記送信制御部から転送された各回戦における挑戦者および対戦相手の計数器に基づいて、前記計数器管理部が二分木トーナメント形式で管理する前記各回戦の計数器を更新させることを特徴とするパケット中継装置。
  3. 請求項2記載のパケット中継装置であって、
    前記更新部は、前記計数器管理部から転送された計数器から前記基準時刻を減算することにより前記計数器を補正して補正後の計数器を前記送信制御部に転送し、前記送信制御部から転送された計数器に前記基準時刻を加算することにより前記計数器を逆補正して逆補正後の計数器に基づいて前記計数器管理部が管理する計数器を更新させることを特徴とするパケット中継装置。
  4. 請求項3記載のパケット中継装置であって、
    キュー全体に対する送信可能帯域を設定して超過帯域を抑制するトラフィックシェーピング部を有することを特徴とするパケット中継装置。
  5. 請求項4記載のパケット中継装置であって、
    キューを一個または複数個の単位でグループ化してグループ内で送信スケジューリングするスケジューリング部と、
    前記グループ間で送信スケジューリングまたは完全優先制御を行う第2のスケジューリング部とを有することを特徴とするパケット中継装置。
JP2008018489A 2008-01-30 2008-01-30 パケットスケジューリング方法および装置 Active JP4881886B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008018489A JP4881886B2 (ja) 2008-01-30 2008-01-30 パケットスケジューリング方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008018489A JP4881886B2 (ja) 2008-01-30 2008-01-30 パケットスケジューリング方法および装置

Publications (2)

Publication Number Publication Date
JP2009182545A JP2009182545A (ja) 2009-08-13
JP4881886B2 true JP4881886B2 (ja) 2012-02-22

Family

ID=41036189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008018489A Active JP4881886B2 (ja) 2008-01-30 2008-01-30 パケットスケジューリング方法および装置

Country Status (1)

Country Link
JP (1) JP4881886B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101583325B1 (ko) * 2014-08-12 2016-01-07 주식회사 구버넷 가상 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4135007B2 (ja) * 2005-08-08 2008-08-20 株式会社日立製作所 Atmセル転送装置

Also Published As

Publication number Publication date
JP2009182545A (ja) 2009-08-13

Similar Documents

Publication Publication Date Title
US9106577B2 (en) Systems and methods for dropping data using a drop profile
US10153985B2 (en) Dragonfly processor interconnect network
US8599868B2 (en) Systems and methods for determining the bandwidth used by a queue
CN109104373B (zh) 网络拥塞的处理方法、装置及系统
US7558197B1 (en) Dequeuing and congestion control systems and methods
US7948882B2 (en) Dual leaky bucket flow control method and system
US20150078158A1 (en) Dequeuing and congestion control systems and methods for single stream multicast
US8009561B1 (en) Systems and methods for permitting queues to oversubscribe
CN108768876B (zh) 一种面向机器学习框架的流量调度方法
US20090089139A1 (en) Scheduling processing tasks used in active network measurement
US20140143777A1 (en) Resource Scheduling Method and Device
Shen et al. Probabilistic network-aware task placement for mapreduce scheduling
US7684422B1 (en) Systems and methods for congestion control using random early drop at head of buffer
JP4881886B2 (ja) パケットスケジューリング方法および装置
Wang et al. A knapsack-based message scheduling and drop strategy for delay-tolerant networks
CN109525315A (zh) 基于时间触发的光纤通道网络端系统
US20130247071A1 (en) System and method for efficient shared buffer management
JP2012060203A (ja) 帯域制御方法及び帯域制御装置
KR100745679B1 (ko) 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치
Simatos et al. Lingering issues in distributed scheduling
JP5772380B2 (ja) 通信装置、通信方法、および通信プログラム
Wieselthier et al. Ordinal optimization of admission control in wireless multihop integrated networks via standard clock simulation
CN108173784B (zh) 一种交换机的数据包缓存的老化方法及装置
Song et al. Inversion impact of approximate PIFO to Start-Time Fair Queueing
CN117978753A (zh) 一种基于流量排序的时间敏感网络调度方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110928

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4881886

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250