JPWO2009016692A1 - パケット処理装置 - Google Patents

パケット処理装置 Download PDF

Info

Publication number
JPWO2009016692A1
JPWO2009016692A1 JP2009525186A JP2009525186A JPWO2009016692A1 JP WO2009016692 A1 JPWO2009016692 A1 JP WO2009016692A1 JP 2009525186 A JP2009525186 A JP 2009525186A JP 2009525186 A JP2009525186 A JP 2009525186A JP WO2009016692 A1 JPWO2009016692 A1 JP WO2009016692A1
Authority
JP
Japan
Prior art keywords
discard
target
packet
queue length
probability
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.)
Granted
Application number
JP2009525186A
Other languages
English (en)
Other versions
JP4704500B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009016692A1 publication Critical patent/JPWO2009016692A1/ja
Application granted granted Critical
Publication of JP4704500B2 publication Critical patent/JP4704500B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/326Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ハードウェアでRED処理を構成し、かつ廃棄誤差の低減化を図る。パケットバッファ(11)は、パケットを格納するキュー(11a)を備える。実キュー長位置判別部(12)は、サンプリング周期毎に、パケットが格納されたキュー(11a)の占有状態である最新の実キュー長を取得し、ランダム初期検知区間に対して、実キュー長が存在する位置関係を判別して位置情報を出力する。廃棄確率演算処理部(13)は、位置情報にもとづいて、サンプリング周期毎に、パケットの廃棄確率を算出する。パケット廃棄処理部(14)は、廃棄確率にもとづいて、サンプリング周期毎に、キュー(11a)に格納される前のパケットの廃棄処理を行う。廃棄確率演算処理部(13)は、位置情報から、実キュー長がランダム初期検知区間内に存在することを認識すると、平均キュー長を算出し、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出する。

Description

本発明は、パケット処理装置に関し、特にパケットの廃棄処理を行って、ネットワークトラフィックの輻輳回避を行うパケット処理装置に関する。
ネットワーク上には、QoS(Quality of Service)制御によって、トラフィック種別に対応した通信品質が定められた様々な用途のパケットが流れている。QoS制御とは、回線の帯域やキューのバッファ容量などの限られたネットワーク資源を有効に活用するための技術である。
QoS制御の1つに、RED(Random Early Discarding(Detection):ランダム初期検知)と呼ばれるパケットの輻輳回避を行うアルゴリズムがある。REDとは、ネットワーク機器に到着したパケットを、キュー(Queue)に格納し、キューに格納されたデータ量を定期的に観測することでキューの伸長傾向(キューに格納されたデータ量の増減)を計算し、キューが溢れる前に、到着パケットを任意に設定された確率でランダムに廃棄して、キューが溢れることを回避する技術である。REDアルゴリズムは、特に固定長のパケットよりもランダム長のパケットであるEthernet(登録商標)フレーム等の処理に有効である。
REDによるパケット廃棄の従来技術として、ハードウェアの制御でパケット廃棄処理が可能となるように、近似の廃棄確率曲線を生成して輻輳制御を行う技術が提案されている(例えば、特許文献1)。
特開2005−94392号公報(段落番号〔0015〕〜〔0018〕,第1図)
REDによるパケット廃棄処理では、キュー長の伸長度合いに応じた到着パケットの廃棄確率を表す廃棄確率曲線にもとづいて、パケットの廃棄処理が行われるが、近年のネットワークの高速・大容量化に伴って、パケット廃棄処理にも高速化が求められている。
従来のREDによるパケット廃棄処理では、ハードウェアとファームウェア(ソフトウェア)を組み合わせた処理が一般的に行われていたが、このような構成では、ハードウェアとファームウェア間で通信を行うために発生する通信時間が高速処理の妨げとなり、また、マイコンやDSP(Digital Signal Processor)などを用いてファームウェア処理による乗算・除算処理等が行われるために、packet by packetでの高速廃棄処理ができず、高速ネットワークに対応可能な十分な処理速度を得られないといった問題があった。
一方、上記の従来技術(特開2005−94392号公報)は、REDによるパケット廃棄処理をハードウェアで構成することで、パケットの高速ランダム廃棄処理を行っている。しかし、回路設計を行う都合上、廃棄確率曲線の縦軸および横軸を2進数で分割して、階段状の廃棄確率曲線を生成して、この近似的な廃棄確率曲線にもとづいてパケット廃棄がなされているため、本来は直線形状である廃棄確率曲線を用いたパケット廃棄に比べて、廃棄誤差が大きく出てしまうといった問題が生じる。
本発明はこのような点に鑑みてなされたものであり、処理速度の高いハードウェアでREDによるパケット廃棄処理を構成し、かつ廃棄誤差の低減化を図ったパケット処理装置を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような、パケットの廃棄処理を行うパケット処理装置10において、パケットを格納するキュー11aを備えたパケットバッファ11と、サンプリング周期毎に、パケットが格納されたキュー11aの占有状態である実キュー長を取得し、パケットの廃棄が開始される実キュー長の最小値である最小しきい値と、パケットの全廃棄がなされる実キュー長の最大値である最大しきい値との範囲であるランダム初期検知区間に対して、実キュー長が存在する位置関係を判別して位置情報を出力する実キュー長位置判別部12と、位置情報にもとづいて、サンプリング周期毎にパケットの廃棄確率を算出する廃棄確率演算処理部13と、廃棄確率にもとづいて、サンプリング周期毎にキュー11aに格納される前のパケットの廃棄処理を行うパケット廃棄処理部14と、を有し、廃棄確率演算処理部13は、実キュー長が最大しきい値を超えずにランダム初期検知区間内に存在する場合には、キュー11aの占有状態の平均値である平均キュー長を算出し、廃棄すべきパケットの廃棄パケットデータ量の目標値である廃棄ターゲットと、サンプリング時刻に受信したパケットの受信パケットデータ量の目標値である受信ターゲットとを求めて、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出する、ことを特徴とするパケット処理装置10が提供される。
ここで、パケットバッファ11は、パケットを格納するキュー11aを備える。実キュー長位置判別部12は、サンプリング周期毎に、パケットが格納されたキュー11aの占有状態である実キュー長を取得し、パケットの廃棄が開始される実キュー長の最小値である最小しきい値と、パケットの全廃棄がなされる実キュー長の最大値である最大しきい値との範囲であるランダム初期検知区間に対して、実キュー長が存在する位置関係を判別して位置情報を出力する。廃棄確率演算処理部13は、位置情報にもとづいて、サンプリング周期毎に、パケットの廃棄確率を算出する。パケット廃棄処理部14は、廃棄確率にもとづいて、サンプリング周期毎に、キュー11aに格納される前のパケットの廃棄処理を行う。また、廃棄確率演算処理部13は、実キュー長が最大しきい値を超えずにランダム初期検知区間内に存在する場合には、キュー11aの占有状態の平均値である平均キュー長を算出し、廃棄すべきパケットの廃棄パケットデータ量の目標値である廃棄ターゲットと、サンプリング時刻に受信したパケットの受信パケットデータ量の目標値である受信ターゲットとを求めて、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出する。
本発明のパケット処理装置は、サンプリング周期毎に平均キュー長を算出し、ランダム初期検知区間に平均キュー長が存在する場合には、廃棄ターゲットと受信ターゲットとをサンプリング周期毎に更新して求めて、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出して、サンプリング周期毎に到着パケットの廃棄処理を行う構成とした。これにより、ハードウェアのみで構成したため高速処理が可能となり、また、サンプリング周期毎に廃棄確率を算出および更新して、パケット廃棄処理を行うので、本来直線状の廃棄確率曲線に追従することができ、廃棄誤差を低減して、高精度のパケット廃棄処理を行うことが可能になる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
パケット処理装置の原理図である。 REDの基本的なパケット廃棄処理を示す概念図である。 REDの基本的なパケット廃棄処理を示す概念図である。 REDの基本的なパケット廃棄処理を示す概念図である。 REDの廃棄確率曲線の一例を示す図である。 廃棄確率演算処理部の構成を示す図である。 廃棄確率算出部の構成を示す図である。 廃棄確率曲線の追従の様子を示す図である。 定数の大きさとRED区間の長さとの関係を示す図である。 定数の大きさとRED区間の長さとの関係を示す図である。 定数の設定例を示す図である。 パケット処理装置の構成を示す図である。 演算結果保持テーブルの構成例を示す図である。 パケット廃棄演算処理部の位置判別および演算動作の全体動作を示すフローチャートである。 パケット到着時の処理を示すフローチャートである。 廃棄フラグ制御の動作を示すフローチャートである。
以下、本発明の実施の形態を図面を参照して説明する。図1はパケット処理装置の原理図である。パケット処理装置10は、パケットバッファ11、実キュー長位置判別部12、廃棄確率演算処理部13、パケット廃棄処理部14、設定データ保持部15、サンプリング周期発生部16から構成され、REDアルゴリズムによるパケット廃棄処理を行う装置(パケット受信側の装置)である(以降ではREDアルゴリズムによるパケット廃棄処理をRED処理とも呼ぶ)。なお、イーサネットでは通常“フレーム”という用語が使用されるが、以降の説明では“パケット”と用語を統一して説明する。
パケットバッファ11は、パケットを格納するキュー11aを備える。図では1つのキュー11aのみ示しているが、実際には複数の出力ポート毎に複数のキューが備えられる。
実キュー長位置判別部12は、サンプリング周期毎に、パケットが格納されたキュー11aの占有状態である実キュー長を取得する。また、パケットの廃棄が開始される実キュー長の最小値である最小しきい値と、パケットの全廃棄がなされる実キュー長の最大値である最大しきい値との範囲であるランダム初期検知区間(以下、RED区間)に対して、実キュー長が存在する位置関係を判別して位置情報を出力する。なお、RED区間は、キュー11aのパケット格納領域の余領域(余裕)がなくなる前の、確率的(ランダム)にパケットの廃棄が行われる区間である。
廃棄確率演算処理部13は、位置情報にもとづいて、サンプリング周期毎に、パケットの廃棄確率を算出する。パケット廃棄処理部14は、廃棄確率にもとづいて、サンプリング周期毎に、キュー11aに格納される前のパケットの廃棄処理を行う。
設定データ保持部15は、上位から通知される各パラメータ(最小しきい値、最大しきい値または廃棄確率演算に必要な値等)を保持する。サンプリング周期発生部16は、任意に設定されたサンプリング周期を発生するカウンタである。
ここで、廃棄確率演算処理部13は、実キュー長が最大しきい値を超えずにRED区間内に存在する場合には、キュー11aの占有状態の平均値である平均キュー長を算出し、廃棄パケットデータ量の目標値である廃棄ターゲットと、受信パケットデータ量の目標値である受信ターゲットとを求めて、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出する(動作の詳細は図6以降で後述する)。なお、キュー11aに格納されたパケットは、図示しない読み出し制御部によって読み出されて出力ポートから出力される。
次に本発明の詳細を説明する前に、RED処理の基本概念について説明する。REDは、パケットを滞留させるFIFO(first in first out)キューが一杯にならないように制御して、ネットワークのトラフィック輻輳を回避するアルゴリズムのことである。
REDの基本処理では、キュー長(パケットが格納されるキューの占有状態)を、2つのしきい値(最小しきい値および最大しきい値)と比較することで、キューに到着する到着パケットの廃棄を決定する。
ここで、キューに格納されたパケットは、読み出し制御部によって順次読み出されていくので、一旦キューに書き込まれたパケットの廃棄は行わない。REDにおけるパケット廃棄処理とは、キューに書き込まれる前の到着パケット(キューへの入力パケット)を廃棄することを意味する。
図2〜図4はREDの基本的なパケット廃棄処理を示す概念図である。キュー11aにパケットが格納されている状態で、図2のように、キュー長Qが、最小しきい値minQ th(到着パケットの廃棄が開始されるキュー長の最小値)を下回っている場合には、キュー11aの格納領域には十分な余裕があるとみなして、到着順にパケットをキュー11aに収容し、パケット廃棄は生じない。
また、図3のように、キュー長Qが最大しきい値maxQ th(到着パケットの全廃棄が行われるキュー長の最大値)を上回る場合には、キュー11aが溢れる可能性があると判断して、キュー11aに新しく到着するすべてのパケットを廃棄する(なお、minQ thとmaxQ thの値は、運用側で任意に設定可能である)。
このとき、キュー長が、最大しきい値maxQ th以内に収まるまで(読み出し制御部からキュー11a内のパケットは順次読み出されているので、キュー11aに入力するパケットがなければ、キュー長Qが最大しきい値maxQ thより下回るときがいずれくる)、到着パケットの全廃棄が実行され続けることになる(到着パケットの全廃棄はtail dropとも呼ばれる)。
さらに、図4のように、キュー長Qが最小しきい値minQ thと最大しきい値maxQ thとの間にある場合には(すなわち、実キュー長Qが最大しきい値maxQ thを超えずにRED区間内に存在する場合)、任意に設定された廃棄確率にもとづいて、到着パケットの内、ランダムにパケットを選択し、選択したパケットが廃棄される。
図5はREDの廃棄確率曲線の一例を示す図である。縦軸は廃棄確率(%)、横軸はキュー長Qである。廃棄確率曲線は、キュー長Qの伸長度合いに応じた到着パケットの廃棄確率を表している。
キュー長Qが最小しきい値minQ thを超えない場合は、パケット廃棄確率は0%であり(パケットは廃棄されない)、キュー長Qが最大しきい値maxQ thを超える場合は、到着パケットの廃棄確率は100%となる(すべての到着パケットが廃棄される)。
また、キュー長Qが、最小しきい値minQ thと最大しきい値maxQ thとの間(RED区間)にある場合には、図5に示すような傾きを持った関数にもとづき、廃棄確率が決定する。ここで例えば、廃棄確率が10%の廃棄を行うとは、到着パケットの10%が廃棄されるということである(キュー11aに対するパケット書き込み処理に対して、例えば、100個の到着パケットの内の10個のパケット書き込みを行わないということ(パケットを固定長とした場合))。
なお、図中の最大廃棄確率maxPは、最小しきい値minQ thと最大しきい値maxQ thとの間の廃棄確率の傾きを決める値であって、キュー長Qが最大しきい値maxQ thまで伸長したときに、最大何%廃棄するかを示すものである(ここを超えると到着パケットは全廃棄となる)。
次に図1で示したパケット処理装置10の構成および動作について詳しく説明する。なお、以降では、キュー11aではバイト単位でバッファリングを行うものとし、RED処理はバイト単位で行われるものとする。
図6は廃棄確率演算処理部13の構成を示す図である。廃棄確率演算処理部13は、廃棄確率設定部13−1と廃棄確率算出部13−2から構成される。廃棄確率設定部13−1は、実キュー長位置判別部12から送信された位置情報を受信して、実キュー長が、最小しきい値を超えないことを認識した場合は、廃棄確率を0と設定する。また、実キュー長が、最大しきい値を超えることを認識した場合は、廃棄確率を1と設定する。
廃棄確率算出部13−2は、位置情報を受信して、実キュー長が、最小しきい値を超えて、最大しきい値を超えないRED区間内に存在することを認識した場合は、平均キュー長を算出して、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出する。
ここで、実キュー長の位置と廃棄確率Pbとの関係をまとめると、以下の(a)〜(c)となる。
(a)実キュー長が最小しきい値を超えないときは(Q<minQ th)、Pb=0と決定する。すなわち、このときのパケットデータは廃棄されず、パケット廃棄処理部14を全通過してキュー11aに格納される。
(b)実キュー長が最小しきい値を超えて、かつ最大しきい値を超えないときは(minQ th≦Q≦maxQ th)、廃棄確率算出部13−2で廃棄確率Pbが決定される。
(c)実キュー長が最大しきい値を超えるときは(最大しきい値maxQ th<Q)、Pb=1と決定する。すなわち、このときのパケットデータはパケット廃棄処理部14においてすべて廃棄される。
このように、実キュー長位置判別部12では、Q<minQ thであるのか、minQ th≦Q≦maxQ thであるのか、またはmaxQ th<Qであるのかを判別する。そして、廃棄確率設定部13−1は、それぞれの位置情報にもとづいて、Q<minQ thの場合は、廃棄確率Pb=0をパケット廃棄処理部14へ通知し、maxQ th<Qの場合は、廃棄確率Pb=1をパケット廃棄処理部14へ通知する。
また、位置情報がminQ th≦Q≦maxQ thの場合は、廃棄確率算出部13−2は、平均キュー長を算出して、廃棄ターゲットと受信ターゲットとの比率から、廃棄確率を算出する。
パケット廃棄処理部14では、廃棄確率Pb=0の通知を受信すると、到着パケットの廃棄は行わず通過させ、廃棄確率Pb=1の通知を受信すると、到着パケットをすべて廃棄する。また、廃棄確率算出部13−2で算出された廃棄確率Pbを受信した場合は、その廃棄確率にもとづいてパケットを廃棄する。
なお、REDアルゴリズムでは、パケットの送信側で、パケットにカラー(Green、Yellow、Red)を振り分けて送信することで、受信側でパケット廃棄をするときの処理を変えることができる。
具体的に、Greenパケットは、受信側での廃棄が禁止されたPb=0のパケットであり、RedパケットおよびYellowパケットは、受信側で任意に設定された、0≦Pb≦1の廃棄確率にもとづいて処理してよいパケットである。なお、Redパケットは、Yellowパケットよりも優先的に廃棄される。
したがって、パケット処理装置10においても、到着パケットがGreenパケットならば、無条件でキュー11aに書き込み、到着パケットがRedパケットならば、優先的に廃棄することになる。また、本発明のRED処理が対象とするパケットはYellowパケットのことである。
次に廃棄確率算出部13−2の構成について説明する。図7は廃棄確率算出部13−2の構成を示す図である。廃棄確率算出部13−2は、平均キュー長算出部13a、廃棄ターゲット算出部13b、受信ターゲット算出部13c、ターゲット補正部13d、補正廃棄ターゲットレジスタ13e、補正受信ターゲットレジスタ13f、廃棄確率決定部13gから構成される。
平均キュー長算出部13aは、実キュー長Qおよび重み付け値Wqにもとづいて平均キュー長を算出する。廃棄ターゲット算出部13bは、最大廃棄確率maxP、平均キュー長aveQおよび最小しきい値minQ thのパラメータ値にもとづいて、廃棄バイト量の目標値である廃棄ターゲットTDを算出して出力する。
受信ターゲット算出部13cは、最大しきい値maxQ thおよび最小しきい値minQ thのパラメータ値にもとづいて、受信バイト量の目標値である受信ターゲットTRを算出して出力する。
なお、受信ターゲットとは、あるサンプリング時刻に、出力ポート単位毎に受信されたバイト数のことを指し(あるサンプリング時刻に到着した到着パケットのバイト数と同じ)、廃棄ターゲットとは、あるサンプリング時刻の受信バイト数に対して廃棄すべきバイト数のことを指す。
ターゲット補正部13dは、廃棄ターゲットTDと受信ターゲットTRとを同じ定数(αとする)で除算して、廃棄ターゲットTDのビット値と受信ターゲットTRのビット値とを同一割合で低減させた補正後の補正廃棄ターゲットTDcおよび補正受信ターゲットTRcを求める。ターゲット補正を行う理由については後述する。
補正廃棄ターゲットレジスタ13eは、ビット値が低減された後の補正廃棄ターゲットTDcを格納し、補正受信ターゲットレジスタ13fは、ビット値が低減された後の補正受信ターゲットTRcを格納する。
廃棄確率決定部13gは、補正廃棄ターゲットTDcを補正受信ターゲットTRcで除算することで、廃棄ターゲットTDと受信ターゲットTRとの比率を求めて、廃棄確率Pbを算出する。
次に平均キュー長の算出について説明する。平均キュー長算出部13aは、サンプリング周期の開始タイミングで取得された最新の実キュー長(キュー11aに現在溜まっているバイト数に該当)にもとづいて平均キュー長を算出する。
ここで、サンプリング時刻t(n)における実キュー長をQ(n)、前回のサンプリング時刻t(n−1)における平均キュー長をaveQ(n−1)、重み付け値をWqとした場合に、サンプリング時刻t(n)における平均キュー長aveQ(n)は以下の式(1)で算出される。
aveQ(n)=(1−Wq)×aveQ(n−1)+Wq×Q(n)・・・(1)
次に廃棄ターゲット、受信ターゲットおよび廃棄確率の算出式について説明する。廃棄ターゲット算出部13bは、以下の式(2)で廃棄ターゲットTDを算出する。
TD=maxP×(aveQ−minQ th)・・・(2)
また、受信ターゲット算出部13cは、以下の式(3)で受信ターゲットTRを算出する。
TR=maxQ th−minQ th・・・(3)
ターゲット補正部13dは、廃棄ターゲットTDを定数αで割って補正廃棄ターゲットTDcを求め(式(2a))、受信ターゲットTRを定数αで割って補正受信ターゲットTRcを求める(式(3a))。
TDc=TD/α=maxP×(aveQ−minQ th)/α・・・(2a)
TRc=TR/α=(maxQ th−minQ th)/α・・・(3a)
廃棄確率決定部13gは、廃棄確率Pbを以下の式(4)で算出する(なお、maxPは%表示のため、分母に100を掛けている)。
Pb={maxP×(aveQ−minQ th)/α}/{((maxQ th−minQ th)/α)×100}・・・(4)
以上説明したように、パケット処理装置10では、周期的にキュー11aの蓄積量を読み出し、サンプリング周期毎に目標の受信パケットのバイト数である受信ターゲットと、目標の廃棄パケットのバイト数である廃棄ターゲットを割り出して、廃棄確率を算出する構成とした。
このような、サンプリング周期にもとづく制御を行うことにより、カウンタ等のビット数が明確化できるので、ハードウェア(論理回路)での実現が可能になり、処理速度を向上させることができる。また、サンプリング周期毎に廃棄確率を算出および更新して、パケット廃棄処理を行うので、本来直線状の廃棄確率曲線に追従することができる。
図8は廃棄確率曲線の追従の様子を示す図である。RED区間において、サンプリング時刻t1では、平均キュー長aveQ1が求まり、このときの廃棄確率はPb1が算出されている。同様にして、サンプリング時刻t2における平均キュー長aveQ2のときの廃棄確率はPb2が算出され、サンプリング時刻t3における平均キュー長aveQ3のときの廃棄確率はPb3が算出されている。
上述した従来技術では、階段状の廃棄確率曲線を生成して、近似的な廃棄確率曲線にもとづいてパケット廃棄を行っていたが、パケット処理装置10では、RED区間において、サンプリング周期毎に最新の実キュー長を取得して平均キュー長を求めて、各パラメータ(最大廃棄率、最小しきい値、最大しきい値、平均キュー長など)から廃棄確率を算出する。したがって、サンプリング周期毎に得られた廃棄確率でパケット廃棄を行うことになるので、本来直線状の廃棄確率曲線を追従していることになり、廃棄誤差が低減化されたRED処理を行うことができ、精度を向上させることが可能になる。
次にターゲット補正部13dについて説明する。ターゲット補正部13dでは、算出された廃棄ターゲットおよび受信ターゲットの両方を、同じ定数αで割って、廃棄ターゲットのビット値と受信ターゲットのビット値とを同一割合で低減させた補正廃棄ターゲットと補正受信ターゲットを生成している。この処理を行う理由を以下に示す。
パケット処理装置10では、ハードウェアのみでRED処理が行えるように構成するために、廃棄ターゲット算出部13bと受信ターゲット算出部13cで計算された廃棄ターゲットや受信ターゲットを、サンプリング周期毎に一時的に保持する記憶部(レジスタ)が必要である。
廃棄確率算出部13−2において、最終的に求めたいものは廃棄確率であるが、廃棄確率は、廃棄ターゲットと受信ターゲットの比率(廃棄ターゲット÷受信ターゲット)から求まるので、この比率を求める際は、廃棄ターゲットと受信ターゲットそれぞれの実算出値を必ずしも用いる必要はなく、廃棄ターゲットと受信ターゲットとは(分子と分母とは)、同じ割合で低減された値であればよい。
したがって、廃棄ターゲット算出部13bおよび受信ターゲット算出部13cで算出された計算値そのままを、レジスタに保持しておく必要はなく、同じ割合で低減した値(補正廃棄ターゲットと補正受信ターゲット)を生成しておいて、それをレジスタに保持するようにすれば、レジスタ容量の低減化につながることになる。
したがって、ターゲット補正部13dでは、同一割合で低減された補正廃棄ターゲットおよび補正受信ターゲットを生成しておき、レジスタとしては、廃棄ターゲットおよび受信ターゲットそれぞれの実計算値のビット数よりも少ないビット数のレジスタ(補正廃棄ターゲットレジスタ13eおよび補正受信ターゲットレジスタ13f)を使用することにする。これにより、レジスタ容量を低減化して、装置全体の回路規模の削減を行っている。
次に定数αの決め方について説明する。図9、図10は定数αの大きさとRED区間の長さとの関係を示す図である。図に示すように、RED区間の長さに比例して定数αの値も可変に設定する。
すなわち、図9のように、最小しきい値minQ thと最大しきい値maxQ thとの間隔であるRED区間が長いほど、定数αの値も大きく設定し、図10のように、RED区間が短いほど、定数αの値も小さく設定する(なお、図9、図10ともに、分かりやすいように、実キュー長の位置を平均キュー長の位置として示した)。
このように、ターゲット補正部13dは、定数αの値の大小を、RED区間の間隔の長短に比例して設定することで、RED区間の間隔が長い場合での定数αによって低減される割合と、RED区間の間隔が短い場合での定数αによって低減される割合とを一定にしている。
図11は定数αの設定例を示す図である。キュー11aの最大容量が2^24(A^B=AB)であり、最大しきい値maxQ thも2^24まで設定可能とした場合、図に示すように定数αを設定する。
ここで、補正廃棄ターゲットのビット容量について考える。(aveQ−minQ th)/αの最大ビット数は、aveQ≒maxQ thであるので、2^24/2^16=2^8の256byteとなる。また、maxP=50とすると、補正廃棄ターゲットは、maxP×(aveQ−minQ th)/αなので、50×256=12800となる。したがって、補正廃棄ターゲットレジスタ13eに必要なビット数は、14ビット(2^14=16384)あればよいことになる。
一方、補正受信ターゲットのビット容量については、補正廃棄ターゲットと同じで、(maxQ th−minQ th)の最大バイト数は256byteであるので、(maxQ th−minQ th)/α×100は、256×100=25600となる。したがって、補正受信ターゲットレジスタ13fに必要なビット数は、15ビットあれば(2^15=32768)よいことになる。
次にパケット処理装置10の機能を適用して具体的に実現した装置構成について説明する。図12はパケット処理装置の構成を示す図である。パケット処理装置20は、パケットバッファ21、パケット受信部22、サンプリングカウンタ23、設定データ保持部24、演算結果保持テーブル管理部25、パケット廃棄演算処理部26から構成される。
パケットバッファ21は、図1のパケットバッファ11に該当する。パケットバッファ21は、キューq1〜qmを含むキュー部21−1〜21−nが出力ポート#1〜#N毎に対応して配置される(出力ポート単位にキューが細分化されている)。
パケット受信部22は、図1のパケット廃棄処理部14の機能を有し、前段から送信された到着パケットを受信し、廃棄通知を受信するまで(廃棄処理演算が完了するまで)、パケットデータをシフトさせて保持する(現状の回路構成では7段シフトとしてある)。そして、受信した廃棄通知にもとづいてパケットの廃棄を行う。また、到着パケット受信時には、パケットヘッダまたはラベルから、出力ポート番号、Length長、クラス識別などを認識して、それらをパケット状態情報として出力する。
サンプリングカウンタ23は、図1のサンプリング周期発生部16に該当し、サンプリング周期をカウントする。例えば、80μs〜20.4msまでの範囲で80μs単位にサンプリング信号を発生させる。
設定データ保持部(設定レジスタ)24は、図1の設定データ保持部15に該当し、外部(外部CPU)から設定された各種パラメータのデータ(maxP、minQ th、maxQ thなど)を格納しておく。
演算結果保持テーブル管理部25は、パケット廃棄演算処理部26でパケット廃棄処理演算(RED演算)された演算結果およびフラグ情報などを格納管理する。なお、図7の補正廃棄ターゲットレジスタ13eおよび補正受信ターゲットレジスタ13fの機能を有する。
パケット廃棄演算処理部26は、図1の実キュー長位置判別部12および廃棄確率演算処理部13の機能を有し、設定データ保持部24からRED処理演算に必要な各パラメータを取得し、演算結果保持テーブル管理部25から、演算対象パケットの情報を取得して、パケット廃棄処理演算を行う。また、演算結果を演算結果保持テーブル管理部25へ書き戻し(Write Back:WB)、廃棄通知を生成してパケット受信部22へ送信する。
なお、パケット廃棄演算処理部26は、サンプリング周期毎に、設定データ保持部24に保持されているデータを読み出し、演算結果保持テーブル管理部25の設定内容を更新する。なお、サンプリング周期毎に設定データ保持部24を参照する理由は、インサービスにおける動的変更が発生した場合、minQ th、maxQ th、maxPが前回のサンプリング時刻で変更される場合があるためである。
ここで、パケット処理装置20では、パケット廃棄処理を行う場合に、個別モードと全体モードの2つのモード処理を有している。個別モードは、複数のキュー(キューq1〜qm)の中の1つのキューから実キュー長を取得し、1つのキューから取得した実キュー長である単一実キュー長にもとづいてパケット廃棄処理を行うモードである。
また、全体モードは、複数のキュー(キューq1〜qm)のキュー長をすべて加算して、加算値を実キュー長として取得し、複数のキューから取得した実キュー長である加算実キュー長にもとづいてパケット廃棄処理を行うモードである。
したがって、個別モード時には、サンプリング時刻t(n)における単一実キュー長をQa(n)、前回のサンプリング時刻t(n−1)における平均キュー長をaveQa(n−1)、重み付け値をWqとした場合には、サンプリング時刻t(n)における平均キュー長aveQa(n)は、以下の式(5a)で算出される。
aveQa(n)=(1−Wq)×aveQa(n−1)+Wq×Qa(n)・・・(5a)
また、全体モード時には、サンプリング時刻t(n)における加算実キュー長をQb(n)、前回のサンプリング時刻t(n−1)における平均キュー長をaveQb(n−1)、重み付け値をWqとした場合に、サンプリング時刻t(n)における平均キュー長aveQb(n)は、以下の式(5b)で算出される。
aveQb(n)=(1−Wq)×aveQb(n−1)+Wq×Qb(n)・・・(5b)
なお、単一実キュー長または加算実キュー長のいずれを使用しても、パケット廃棄の基本処理は変わらないので、以降の説明では特に厳密には区別はしないで説明する。
次に演算結果保持テーブル管理部25で管理されるテーブル情報について説明する。図13は演算結果保持テーブルの構成例を示す図である。演算結果保持テーブル25aは、RAM(Random Access Memory)で構成され、演算結果およびフラグ情報などが登録保持される。なお、演算結果保持テーブル25aは、パケット処理装置20が接続するネットワーク(WAN、LANなど)毎に設けられるものである。各テーブル項目内容を以下に示す。
“Add”は出力ポートの識別番号である(識別番号がRAMのアドレスとなる)。“PTY”は、パリティビットであり、「RED on/offから補正受信ターゲット」および「廃棄カウント+受信カウント」のそれぞれに1ビットを割り当てる。なお、PTYエラー時は、アラーム通知は行うが、基本的にパケット廃棄とはせずに上位からの制御指示に従う。
“RED on/off”は、RED処理実行時には1(ON)、RED処理を実行しないときは0(OFF)となる(サンプリング周期単位で設定される)。“全通過”は、サンプリング周期毎に最新実キュー長が最小しきい値minQ thを超えているか否かを示すビットで、超えていれば1(全通過)、超えていなければ0となる。
“全廃棄”は、サンプリング周期毎に最新実キュー長がmaxQ thを超えているか否かを示すビットで、超えていれば1(全廃棄)、超えていなければ0となる。“平均キュー長”は、サンプリング周期毎に平均キュー長を書き込む。
“廃棄フラグ”は、受信カウント値が受信ターゲットを超えた場合には1(ON)とし、廃棄カウント値が廃棄ターゲットを超えた場合には0(OFF)となる。“補正廃棄ターゲット”および“補正受信ターゲット”は、サンプリング周期毎に算出された補正廃棄ターゲットおよび補正受信ターゲットがそれぞれ書き込まれる。“廃棄カウント”は、実際に廃棄したパケットのバイト数である。“受信カウント”は、実際に受信したパケットのバイト数である。
次にパケット処理装置20の動作についてフローチャートを用いて説明する。図14はパケット廃棄演算処理部26の位置判別および演算動作の全体動作を示すフローチャートである。実キュー長の位置判別を行い、補正廃棄/補正受信ターゲット等を計算して、演算結果保持テーブル25aに演算結果を書き込むまでの処理の流れを示している。
〔S0〕サンプリング信号を受信すると処理を開始する。
〔S1〕パケット廃棄演算処理部26は、RED処理のモードとして、個別モード(キューq1〜qmの中の1つのキューから実キュー長を取得してパケット廃棄処理を行うモード)か、全体モード(キューq1〜qmのキュー長をすべて加算して、その加算値を実キュー長としてパケット廃棄処理を行うモード)かを判断する。
〔S2〕パケット廃棄演算処理部26は、RED区間に対して、実キュー長が存在する位置関係を判別する(なお、個別モードまたは全体モードに対応して、使用する実キュー長は変える)。
〔S3〕REDアルゴリズム処理を行うか否かを判断し、行わない場合はステップS4へいき、行う場合はステップS5へいく。
〔S4〕演算結果保持テーブル25aの該当出力ポートに対して、RED on/off=0、全通過=0、全廃棄=1または0(実キュー長の位置にもとづく)を設定する。さらに、廃棄フラグ、補正廃棄/補正受信ターゲット、廃棄/受信カウントおよび平均キュー長をクリアする。
〔S5〕最大しきい値を超えずに、RED区間に実キュー長が存在するか否かを判断し、存在しない場合はステップS6へいき、存在する場合はステップS7へいく。
〔S6〕演算結果保持テーブル25aの該当出力ポートに対して、RED on/off=1、全通過=0または1、全廃棄=1または0(実キュー長の位置にもとづく)を設定する。さらに、廃棄フラグ、補正廃棄/補正受信ターゲット、廃棄/受信カウントおよび平均キュー長をクリアする。
なお、ビット設定は、具体的には、Q<minQ thのときは、(全通過ビット、全廃棄ビット)=(1、0)であり、maxQ th<Qのときは、(全通過ビット、全廃棄ビット)=(0、1)であり、minQ th≦Q≦maxQ thのときは、(全通過ビット、全廃棄ビット)=(0、0)である。
〔S7〕平均キュー長、補正廃棄ターゲット、補正受信ターゲットおよび廃棄確率を計算する。
〔S8〕演算結果保持テーブル25aの該当出力ポートに対して、RED on/off=1、全通過=0、全廃棄=0を設定する。また、廃棄フラグおよび廃棄/受信カウントの変更はなく、補正廃棄/補正受信ターゲットおよび平均キュー長は算出値を上書きする。
図15はパケット到着時の処理を示すフローチャートである。演算結果保持テーブル25aに書き込んだ演算結果やフラグ値にもとづいて、パケットを廃棄または通過させるまでの処理の流れを示している。
〔S11〕パケット受信部22は、到着パケットのヘッダまたはラベルから、出力ポート番号、Length長、クラス情報、カラー情報などを抽出し、パケット状態情報として出力する。
〔S12〕パケット廃棄演算処理部26は、クラス情報を判別して、クラスA、Bの場合はステップS13へいき、クラスC、Dの場合はステップS14へいく。なお、クラスとは、キューに格納されたパケットの読み出し優先度を示すものである。クラスA、Bは、優先度の高いパケットを示すので、REDにおいて廃棄してはいけないパケットとなる。また、クラスC、Dは、優先度の低いパケットを示すので、REDにおいて廃棄してもよいパケットとなる。
〔S13〕パケット廃棄演算処理部26は、廃棄通知として“全通過”を送信し、パケット受信部22は、到着パケットを全通過させて、該当出力ポートのキューへ送信する。
〔S14〕パケット廃棄演算処理部26は、該当出力ポート番号をアドレスにして、演算結果保持テーブル25aから情報(RED on/off、全通過、全廃棄、廃棄フラグ、廃棄カウント、受信カウント、補正廃棄ターゲット、補正受信ターゲット、平均キュー長)を読み出す。
〔S15〕パケット廃棄演算処理部26は、REDアルゴリズム処理を行うか否かを判断し、行わない場合はステップS16へいき、行う場合はステップS19へいく。
〔S16〕パケット廃棄演算処理部26は、全廃棄=1か否かを判断する。1でない場合はステップS13へいき、1の場合はステップS17へいく
〔S17〕パケット廃棄演算処理部26は、カラーがYellowか否かを判断する。Yellowでなければ(Greenの場合)ステップS13へいき、YellowならばステップS18へいく。
〔S18〕パケット廃棄演算処理部26は、廃棄通知として“全廃棄”を送信し、パケット受信部22は、到着パケットを全廃棄する。
〔S19〕パケット廃棄演算処理部26は、(全通過ビット、全廃棄ビット)=(0、0)を認識すると廃棄フラグ制御(図16のフロー)へ進む。なお、(全通過ビット、全廃棄ビット)=(1、0)はステップS13へいき、(全通過ビット、全廃棄ビット)=(0、1)はステップS18へいく。なお、(全通過ビット、全廃棄ビット)=(1、1)の状態はありえないが、テーブル上に、もし、このような値が誤設定されていた場合は全廃棄へ向かう。
図16は廃棄フラグ制御の動作を示すフローチャートである。
〔S21〕パケット廃棄演算処理部26は、カラーがYellowか否かを判断する。Yellowでなければ(Greenの場合)ステップS22へいき、YellowならばステップS24へいく。
〔S22〕パケット廃棄演算処理部26は、廃棄通知として“全通過”を送信し、パケット受信部22は、到着パケットを全通過させて、該当出力ポートのキューへ送信する。
〔S23〕パケット廃棄演算処理部26は、第1の廃棄フラグ制御を行う(詳細は後述)。また、処理対象のネットワーク(WAN、LANなど)に対応する演算結果保持テーブル25aに対して、第1の廃棄フラグ制御で得た廃棄カウント、受信カウント、廃棄フラグのそれぞれの値を書き込む。
〔S24〕パケット廃棄演算処理部26は、全廃棄=1か否かを判断する、1でない場合はステップS22へいき、1の場合はステップS25へいく。
〔S25〕パケット廃棄演算処理部26は、廃棄通知として“全廃棄”を送信し、パケット受信部22は、到着パケットを全廃棄する。
〔S26〕パケット廃棄演算処理部26は、第2の廃棄フラグ制御を行う(詳細は後述)。また、処理対象のネットワークに対応する演算結果保持テーブル25aに対して、第2の廃棄フラグ制御で得た廃棄カウント、受信カウント、廃棄フラグのそれぞれの値を書き込む。
次に廃棄フラグ制御について説明する。廃棄フラグ(1bit)は、ONであれば受信パケットを廃棄するフラグである。フラグON/OFFの基本動作としては、受信カウント値が受信ターゲットを超えた場合には、廃棄フラグをONとし、廃棄カウント値が廃棄ターゲットを超えた場合には、廃棄フラグをOFFとする。ただし、以下に示す条件(1)、(2)にしたがって、カウント値/フラグ値は求められて、その値が演算結果保持テーブル25aへライトバックされる。
(1)演算結果保持テーブル25aから廃棄フラグを読み出したときに、廃棄フラグがOFFであった場合のライトバック制御(第1の廃棄フラグ制御)。
新廃棄カウントは、前回の廃棄カウントとし(新廃棄カウント==廃棄カウント)、新受信カウントは、Length長+前回の受信カウントとなる(新受信カウント==Length長+受信カウント)。
ここで、受信カウント+Length長≧補正受信ターゲットであり、かつ廃棄カウント≧補正廃棄ターゲットならば、受信カウントから補正受信ターゲット分減算させるが、廃棄フラグは立たせず、廃棄カウントから補正廃棄ターゲット分減算させる。
したがって、パケット廃棄演算処理部26は、廃棄カウントとして演算結果保持テーブル25aへライトバックする廃棄カウント(WB廃棄カウント)は、新廃棄カウント−補正廃棄ターゲットの値をライトバックし、受信カウントとして演算結果保持テーブル25aへライトバックする受信カウント(WB受信カウント)は、新受信カウント−補正受信ターゲットをライトバックし、廃棄フラグ(WB廃棄フラグ)として演算結果保持テーブル25aへライトバックする廃棄フラグは0をライトバックする。
また、廃棄カウント<補正廃棄ターゲットならば、受信カウントから補正受信ターゲット分減算させ、廃棄フラグを立たせて次の到着パケットを廃棄させる。したがって、演算結果保持テーブル25aにライトバックする情報(WB廃棄カウント、WB受信カウント、WB廃棄フラグ)は、WB廃棄カウント=新廃棄カウント、WB受信カウント=新受信カウント−補正受信ターゲット、WB廃棄フラグ=1となる。
さらに、受信カウント+Length長<補正受信ターゲットならば、廃棄フラグは立たせず、廃棄カウントの変更はない。したがって、演算結果保持テーブル25aにライトバックする情報(WB廃棄カウント、WB受信カウント、WB廃棄フラグ)は、WB廃棄カウント=新廃棄カウント、WB受信カウント=新受信カウント、WB廃棄フラグ=0となる。
(2)演算結果保持テーブル25aから廃棄フラグを読み出したときに、廃棄フラグがONであった場合のライトバック制御(第2の廃棄フラグ制御)。
新廃棄カウントは、Length長+前回の廃棄カウントとし(新廃棄カウント==Length長+廃棄カウント)、新受信カウントは、Length長+前回の受信カウントとなる(新受信カウント==Length長+受信カウント)。
ここで、廃棄カウント+Length長≧補正廃棄ターゲットであり、かつ受信カウント≧補正受信ターゲットならば、廃棄カウントから補正廃棄ターゲット分減算させ、廃棄フラグをクリアし、受信カウントから補正受信ターゲット分減算させる。したがって、演算結果保持テーブル25aにライトバックする情報(WB廃棄カウント、WB受信カウント、WB廃棄フラグ)は、WB廃棄カウント=新廃棄カウント−補正廃棄ターゲット、WB受信カウント=新受信カウント−補正受信ターゲット、WB廃棄フラグ=0となる。
また、受信カウント<補正受信ターゲットならば、廃棄カウントから補正廃棄ターゲット分減算させ、廃棄フラグをクリアさせる。したがって、演算結果保持テーブル25aにライトバックする情報(WB廃棄カウント、WB受信カウント、WB廃棄フラグ)は、WB廃棄カウント=新廃棄カウント−補正廃棄ターゲット、WB受信カウント=新受信カウント、WB廃棄フラグ=0となる。
さらに、廃棄カウント+Length長<補正廃棄ターゲットであり、かつ受信カウント+Length長≧補正受信ターゲットならば、廃棄カウントからは補正廃棄ターゲット分の減算はせず、廃棄フラグは立たせたままとする。したがって、演算結果保持テーブル25aにライトバックする情報(WB廃棄カウント、WB受信カウント、WB廃棄フラグ)は、WB廃棄カウント=新廃棄カウント、WB受信カウント=新受信カウント、WB廃棄フラグ=1となる。
さらにまた、受信カウント+Length長<補正受信ターゲットならば、廃棄カウントからは補正廃棄ターゲット分の減算はせず、廃棄フラグは立たせたままとする。したがって、演算結果保持テーブル25aにライトバックする情報(WB廃棄カウント、WB受信カウント、WB廃棄フラグ)は、WB廃棄カウント=新廃棄カウント、WB受信カウント=新受信カウント、WB廃棄フラグ=1となる。
以上説明したように、パケット処理装置10、20は、ハードウェアの構成のみで、周期的にパケットバッファキューの蓄積量を読み出し、その周期内でターゲットとなる受信パケットおよび廃棄パケットのバイト数を割り出し、その値に従って受信パケットの廃棄・透過を決定する構成とした。これにより、高速のパケット廃棄処理が可能となり、また、サンプリング周期毎に廃棄確率を算出および更新して、パケット廃棄処理を行うので、本来直線状の廃棄確率曲線に追従することができ、廃棄誤差を低減して、高精度のパケット廃棄処理を行うことが可能になる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
符号の説明
10 パケット処理装置
11 パケットバッファ
11a キュー
12 実キュー長位置判別部
13 廃棄確率演算処理部
14 パケット廃棄処理部
15 設定データ保持部
16 サンプリング周期発生部

Claims (12)

  1. パケットの廃棄処理を行うパケット処理装置において、
    パケットを格納するキューを備えたパケットバッファと、
    サンプリング周期毎に、パケットが格納された前記キューの占有状態である実キュー長を取得し、パケットの廃棄が開始される前記実キュー長の最小値である最小しきい値と、パケットの全廃棄がなされる前記実キュー長の最大値である最大しきい値との範囲であるランダム初期検知区間に対して、前記実キュー長が存在する位置関係を判別して位置情報を出力する実キュー長位置判別部と、
    前記位置情報にもとづいて、サンプリング周期毎にパケットの廃棄確率を算出する廃棄確率演算処理部と、
    前記廃棄確率にもとづいて、サンプリング周期毎に前記キューに格納される前のパケットの廃棄処理を行うパケット廃棄処理部と、
    を有し、
    前記廃棄確率演算処理部は、
    前記実キュー長が前記最大しきい値を超えずに前記ランダム初期検知区間内に存在する場合には、
    前記キューの占有状態の平均値である平均キュー長を算出し、廃棄すべきパケットの廃棄パケットデータ量の目標値である廃棄ターゲットと、サンプリング時刻に受信したパケットの受信パケットデータ量の目標値である受信ターゲットとを求めて、前記廃棄ターゲットと前記受信ターゲットとの比率から、前記廃棄確率を算出する、
    ことを特徴とするパケット処理装置。
  2. 前記廃棄確率演算処理部は、
    前記位置情報にもとづいて、前記実キュー長が、前記最小しきい値を超えないことを認識した場合は、前記廃棄確率を0と設定し、前記実キュー長が、前記最大しきい値を超えることを認識した場合は、前記廃棄確率を1と設定する廃棄確率設定部と、
    前記位置情報にもとづいて、前記実キュー長が、前記最小しきい値を超えて、前記最大しきい値を超えない前記ランダム初期検知区間内に存在することを認識した場合は、前記平均キュー長を算出して、前記廃棄ターゲットと前記受信ターゲットとの比率から、前記廃棄確率を算出する廃棄確率算出部と、
    から構成されることを特徴とする請求の範囲第1項記載のパケット処理装置。
  3. 前記廃棄確率算出部は、
    前記平均キュー長を算出する平均キュー長算出部と、
    前記廃棄ターゲットを算出する廃棄ターゲット算出部と、
    前記受信ターゲットを算出する受信ターゲット算出部と、
    算出された前記廃棄ターゲットと前記受信ターゲットとを同じ定数で除算して、前記廃棄ターゲットのビット値と前記受信ターゲットのビット値とを同一割合で低減させた補正後の補正廃棄ターゲットおよび補正受信ターゲットを求めるターゲット補正部と、
    ビット値が低減された後の前記補正廃棄ターゲットを格納する補正廃棄ターゲットレジスタと、
    ビット値が低減された後の前記補正受信ターゲットを格納する補正受信ターゲットレジスタと、
    前記補正廃棄ターゲットを前記補正受信ターゲットで除算することで、前記廃棄ターゲットと前記受信ターゲットとの比率を求めて、前記廃棄確率を算出する廃棄確率決定部と、
    を有することを特徴とする請求の範囲第2項記載のパケット処理装置。
  4. 前記平均キュー長算出部は、サンプリング時刻t(n)における前記実キュー長をQ(n)、前回のサンプリング時刻t(n−1)における前記平均キュー長をaveQ(n−1)、重み付け値をWqとした場合に、サンプリング時刻t(n)における前記平均キュー長aveQ(n)を以下の式
    aveQ(n)=(1−Wq)×aveQ(n−1)+Wq×Q(n)
    で算出することを特徴とする請求の範囲第3項記載のパケット処理装置。
  5. 前記平均キュー長をaveQ、前記ランダム初期検知区間内で最大の廃棄確率である最大廃棄確率をmaxP、前記最小しきい値をminQ th、前記最大しきい値をmaxQ th、前記定数をαとした場合に、
    前記廃棄ターゲット算出部は、前記廃棄ターゲットをmaxP×(aveQ−minQ th)で求め、
    前記受信ターゲット算出部は、前記受信ターゲットを(maxQ th−minQ th)で求め、
    前記ターゲット補正部は、前記補正廃棄ターゲットをmaxP×(aveQ−minQ th)/αで求め、前記補正受信ターゲットを(maxQ th−minQ th)/αで求めて、
    前記廃棄確率算出部は、前記廃棄確率Pbを以下の式
    Pb={maxP×(aveQ−minQ th)/α}/{((maxQ th−minQ th)/α)×100}
    で算出することを特徴とする請求の範囲第3項記載のパケット処理装置。
  6. 前記ターゲット補正部は、前記定数の値の大小を、前記ランダム初期検知区間の間隔の長短に比例して設定することで、前記ランダム初期検知区間の間隔が長い場合での前記定数によって低減される割合と、前記ランダム初期検知区間の間隔が短い場合での前記定数によって低減される割合とを一定にすることを特徴とする請求の範囲第3項記載のパケット処理装置。
  7. パケットの廃棄処理を行うパケット処理装置において、
    出力ポート単位にパケットを格納する複数のキューを備えたパケットバッファと、
    サンプリング周期毎に、パケットが格納された前記キューの占有状態である最新の実キュー長を取得し、パケットの廃棄が開始される前記実キュー長の最小値である最小しきい値と、パケットの全廃棄がなされる前記実キュー長の最大値である最大しきい値との範囲であるランダム初期検知区間に対して、前記実キュー長が存在する位置関係を判別して位置情報を生成し、前記位置情報にもとづいて、サンプリング周期毎にパケットの廃棄確率を算出するパケット廃棄演算処理部と、
    到着したパケットを受信し、前記廃棄確率にもとづいて、サンプリング周期毎に前記キューに格納される前のパケットの廃棄処理を行うパケット受信部と、
    を有し、
    前記パケット廃棄演算処理部は、
    個別モード時には、前記複数のキューの中の1つのキューから前記実キュー長を取得し、1つのキューから取得した前記実キュー長である単一実キュー長が、前記最大しきい値を超えずに前記ランダム初期検知区間内に存在する場合には、
    前記単一キュー長にもとづいて、前記キューの占有状態の平均値である平均キュー長を算出し、廃棄パケットデータ量の目標値である廃棄ターゲットと、受信パケットデータ量の目標値である受信ターゲットとを求めて、前記廃棄ターゲットと前記受信ターゲットとの比率から、前記廃棄確率を算出し、
    全体モード時には、出力ポート毎の前記複数のキューのキュー長をすべて加算して、加算値を前記実キュー長として取得し、前記複数のキューから取得した前記実キュー長である加算実キュー長が、前記最大しきい値を超えずに前記ランダム初期検知区間内に存在する場合には、
    前記加算実キュー長にもとづいて、前記キューの占有状態の平均値である平均キュー長を算出し、廃棄パケットデータ量の目標値である廃棄ターゲットと、受信パケットデータ量の目標値である受信ターゲットとを求めて、前記廃棄ターゲットと前記受信ターゲットとの比率から、前記廃棄確率を算出する、
    ことを特徴とするパケット処理装置。
  8. 前記パケット廃棄演算処理部は、
    前記位置情報から、前記単一実キュー長または前記加算実キュー長が、前記最小しきい値を超えないことを認識した場合は、前記廃棄確率を0と設定し、前記単一実キュー長または前記加算実キュー長が、前記最大しきい値を超えることを認識した場合は、前記廃棄確率を1と設定し、
    前記位置情報から、前記単一実キュー長または前記加算実キュー長が前記最小しきい値を超えて、前記最大しきい値を超えない前記ランダム初期検知区間内に存在することを認識した場合は、前記単一実キュー長または前記加算実キュー長から前記平均キュー長を算出して、前記廃棄ターゲットと前記受信ターゲットとの比率から、前記廃棄確率を算出する、
    ことを特徴とする請求の範囲第7項記載のパケット処理装置。
  9. 前記パケット廃棄演算処理部は、
    個別モード時には、サンプリング時刻t(n)における前記単一実キュー長をQa(n)、前回のサンプリング時刻t(n−1)における前記平均キュー長をaveQa(n−1)、重み付け値をWqとした場合に、サンプリング時刻t(n)における前記平均キュー長aveQa(n)を以下の式
    aveQa(n)=(1−Wq)×aveQa(n−1)+Wq×Qa(n)
    で算出し、
    全体モード時には、サンプリング時刻t(n)における前記加算実キュー長をQb(n)、前回のサンプリング時刻t(n−1)における前記平均キュー長をaveQb(n−1)、重み付け値をWqとした場合に、サンプリング時刻t(n)における前記平均キュー長aveQb(n)を以下の式
    aveQb(n)=(1−Wq)×aveQb(n−1)+Wq×Qb(n)
    で算出することを特徴とする請求の範囲第7項記載のパケット処理装置。
  10. 前記平均キュー長をaveQ、前記ランダム初期検知区間内で最大の廃棄確率である最大廃棄確率をmaxP、前記最小しきい値をminQ th、前記最大しきい値をmaxQ thとした場合に、前記パケット廃棄演算処理部は、
    前記廃棄ターゲットをmaxP×(aveQ−minQ th)で求め、
    前記受信ターゲットを(maxQ th−minQ th)で求め、
    定数をαとし、算出された前記廃棄ターゲットと前記受信ターゲットとを同じ前記定数αで除算して、前記廃棄ターゲットのビット値と前記受信ターゲットのビット値とを同一割合で低減させた補正後の補正廃棄ターゲットおよび補正受信ターゲットをそれぞれ、maxP×(aveQ−minQ th)/α、(maxQ th−minQ th)/αで求めて、
    前記廃棄確率Pbを以下の式
    Pb={maxP×(aveQ−minQ th)/α}/{((maxQ th−minQ th)/α)×100}
    で算出することを特徴とする請求の範囲第7項記載のパケット処理装置。
  11. 前記パケット廃棄演算処理部は、前記定数の値の大小を、前記ランダム初期検知区間の間隔の長短に比例して設定することで、前記ランダム初期検知区間の間隔が長い場合での前記定数によって低減される割合と、前記ランダム初期検知区間の間隔が短い場合での前記定数によって低減される割合とを一定にすることを特徴とする請求の範囲第10項記載のパケット処理装置。
  12. サンプリング周期毎に最新実キュー長が最小しきい値を超えているか否かを示す全通過ビット、サンプリング周期毎に最新実キュー長が最大しきい値を超えているか否かを示す全廃棄ビット、前記平均キュー長、前記補正廃棄ターゲット、前記補正受信ターゲット、パケットの受信バイト数である受信カウント、廃棄したパケットのバイト数である廃棄カウント、前記受信カウントが前記受信ターゲットを超えた場合にはON、廃棄カウントが廃棄ターゲットを超えた場合にはOFFとなる廃棄フラグ、の少なくとも1つが設定され、出力ポート番号をアドレスにして検索可能な演算結果保持テーブルを管理する演算結果保持テーブル管理部をさらに有することを特徴とする請求の範囲第7項記載のパケット処理装置。
JP2009525186A 2007-07-27 2007-07-27 パケット処理装置 Expired - Fee Related JP4704500B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/064734 WO2009016692A1 (ja) 2007-07-27 2007-07-27 パケット処理装置

Publications (2)

Publication Number Publication Date
JPWO2009016692A1 true JPWO2009016692A1 (ja) 2010-10-07
JP4704500B2 JP4704500B2 (ja) 2011-06-15

Family

ID=40303939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009525186A Expired - Fee Related JP4704500B2 (ja) 2007-07-27 2007-07-27 パケット処理装置

Country Status (3)

Country Link
US (1) US8194545B2 (ja)
JP (1) JP4704500B2 (ja)
WO (1) WO2009016692A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8897132B2 (en) * 2010-03-31 2014-11-25 Blue Coat Systems, Inc. Enhanced random early discard for networked devices
US9641447B2 (en) 2011-01-12 2017-05-02 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive relative bitrate manager for TCP depending flow control
US9680760B2 (en) * 2013-07-16 2017-06-13 Cisco Technology, Inc. Adaptive marking for WRED with intra-flow packet priorities in network queues
WO2018039034A1 (en) * 2016-08-24 2018-03-01 Google Llc Line rate ethernet traffic testing
JP6845448B2 (ja) * 2017-07-04 2021-03-17 富士通株式会社 通信装置、通信方法、及び通信システム
BR112020000807A2 (pt) * 2017-07-21 2020-07-14 Sony Corporation unidades de recepção e de transmissão, métodos de recepção e de transmissão, e, programa .
US10606604B2 (en) * 2017-08-22 2020-03-31 Bank Of America Corporation Predictive queue control and allocation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6333917B1 (en) * 1998-08-19 2001-12-25 Nortel Networks Limited Method and apparatus for red (random early detection) and enhancements.
SE514313C2 (sv) * 1999-04-07 2001-02-12 Telia Ab Förbättringar av, eller med avseende på, datapaketförmedling
JP3394478B2 (ja) 1999-10-01 2003-04-07 日本電気通信システム株式会社 Redによる輻輳回避装置及びその方法
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US6990529B2 (en) * 2000-02-24 2006-01-24 Zarlink Semiconductor V.N., Inc. Unified algorithm for frame scheduling and buffer management in differentiated services networks
JP2002330165A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd 輻輳制御装置
US7224670B2 (en) * 2002-06-03 2007-05-29 International Business Machines Corporation Flow control in computer networks
KR20040000336A (ko) * 2002-06-24 2004-01-03 마츠시타 덴끼 산교 가부시키가이샤 패킷 전송 장치와 그 방법, 트래픽 컨디셔너, 우선 제어기구 및 패킷 셰이퍼
JP2004104417A (ja) 2002-09-09 2004-04-02 Sony Corp データ中継装置、および中継データ制御方法、並びにコンピュータ・プログラム
US7636307B2 (en) * 2003-03-13 2009-12-22 Alcatel Lucent Random early packet discard (RED)
JP4318515B2 (ja) * 2003-09-18 2009-08-26 富士通株式会社 パケット処理装置
EP2064843A2 (en) * 2006-09-13 2009-06-03 Nokia Corporation Energy aware early detection

Also Published As

Publication number Publication date
WO2009016692A1 (ja) 2009-02-05
US8194545B2 (en) 2012-06-05
JP4704500B2 (ja) 2011-06-15
US20100091785A1 (en) 2010-04-15

Similar Documents

Publication Publication Date Title
JP4704500B2 (ja) パケット処理装置
KR101203471B1 (ko) 네트워크 브리지에서 이더넷 프레임을 전달하는 방법 및상기 브리지 장치
US7957392B2 (en) Method and apparatus for high-performance bonding resequencing
CN108243116B (zh) 一种流量控制方法及交换设备
CN112311494B (zh) 一种报文传输方法、装置及系统
US8072998B2 (en) Systems and methods for congestion control using random early drop at head of buffer
WO2012109911A1 (zh) 网络流量监管方法及装置
US9444741B2 (en) Facilitating network flows
JP2005236351A (ja) パケット整形装置、ルーター、帯域制御装置及び制御方法
JP2020507245A (ja) 通信信号フレームを送信する方法、エンティティ及びプログラム
US8189578B2 (en) Simple fairness protocols for daisy chain interconnects
JP2002330165A (ja) 輻輳制御装置
JP2009253768A (ja) パケット中継装置、パケット中継方法およびパケット中継プログラム
JP4530806B2 (ja) パケット伝送装置
US6829224B1 (en) Method and apparatus for smoothing the rate of packet discards for random early detection in an ATM switch
US6650650B1 (en) Method and apparatus for transmitting voice data over network structures
CN111404840A (zh) 报文处理方法和装置
US20230261973A1 (en) Method for distributing multipath flows in a direct interconnect network
US6940852B1 (en) Probabilistic counter
CN108337181B (zh) 一种交换网拥塞管理方法和装置
JP4276094B2 (ja) パケットの優先制御を行う通信装置及び優先制御方法
US7500012B2 (en) Method for controlling dataflow to a central system from distributed systems
JP5604919B2 (ja) パケット転送装置およびパケット転送方法
US11706144B2 (en) Marking packets based on egress rate to indicate congestion
CN117596217A (zh) 一种用于数据包限流的数据处理方法及装置

Legal Events

Date Code Title Description
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: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110309

R150 Certificate of patent or registration of utility model

Ref document number: 4704500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees