JP4952642B2 - パケット転送装置およびパケット破棄方法 - Google Patents

パケット転送装置およびパケット破棄方法 Download PDF

Info

Publication number
JP4952642B2
JP4952642B2 JP2008105684A JP2008105684A JP4952642B2 JP 4952642 B2 JP4952642 B2 JP 4952642B2 JP 2008105684 A JP2008105684 A JP 2008105684A JP 2008105684 A JP2008105684 A JP 2008105684A JP 4952642 B2 JP4952642 B2 JP 4952642B2
Authority
JP
Japan
Prior art keywords
packet
queue
period
address
pointer
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
JP2008105684A
Other languages
English (en)
Other versions
JP2009260535A (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
Priority to JP2008105684A priority Critical patent/JP4952642B2/ja
Priority to US12/361,655 priority patent/US8306045B2/en
Priority to GB0901569A priority patent/GB2459168B/en
Publication of JP2009260535A publication Critical patent/JP2009260535A/ja
Application granted granted Critical
Publication of JP4952642B2 publication Critical patent/JP4952642B2/ja
Active 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5682Threshold; Watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing

Description

本発明は、例えばIP(Internet Protocol)ネットワーク上に配置されるスイッチ等、パケットの転送処理を行うパケット転送装置に係り、より詳細には、パケット転送装置内のパケットバッファに所定期間を超えて滞留するパケットを破棄するための技術に関する。
IPネットワークにおいて、パケットを中継するルータやスイッチ等のパケット転送装置には、当該装置のデータ転送容量(帯域)を上回るトラフィックが入力することが予定されている。そのため、パケット転送装置にはパケットを一時的に格納するパケットバッファが設けられ、装置の転送可能容量を上回るトラフィックをパケットバッファに滞留させる制御が一般に行われる。
一方、音声、動画等のリアルタイム性の高いデータを含むパケットがパケットバッファ内に長期間滞留して転送された場合には、そのパケットは、パケット転送装置の後段にある受信端末側で破棄される場合がある。これは、リアルタイム性の高いデータを処理する受信端末では、遅延して到着したパケットに含まれるデータを再生する必要がないと上位のレイヤーにおいて判断される場合があるからである。このことは、パケット転送装置によって遅延を生じたパケットを送信したことにより、パケット転送装置から受信端末に至るネットワークの帯域が無駄に使用されたことを意味し、特に当該ネットワークが輻輳している場合には深刻な問題となる。
かかる問題を回避するため、パケット転送装置内でのパケットの滞留期間を測定し、滞留期間が所定の閾値を超えた場合に当該パケットを廃棄する制御が行われる。従来のパケット破棄制御方法として、特許文献1に開示されたパケット交換機(パケット転送装置)では、パケットの到着(入力)時刻と送信(出力)時刻との差分(すなわち、パケットの滞留期間)をパケットの制御フィールドに記述しておき、制御フィールドに基づいて、パケット交換機の後段の装置(特許文献1のPAD)が、所定期間遅延したパケットを廃棄するようにしている。
特開平5−207063号公報
特許文献1に開示されたパケット転送装置では、パケットバッファからパケットを読み出した後に、パケットの廃棄処理を行っている。つまり、このパケット転送装置では、後で破棄されるパケットが無駄にパケットバッファから読み出されるため、破棄されない有効パケットの読み出しが制限される。すなわち、この従来のパケット転送装置では、読み出しのためのデータ転送容量(帯域)を有効に利用できていない。
そこで本発明は、所定期間パケットバッファ内に滞留するパケットを、パケットバッファから読み出しを行うことなく実質的に破棄することを可能とするパケット転送装置およびパケット破棄方法を提供することを目的とする。
上記の課題を解決するためのパケット転送装置は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマと、パケットバッファを構成する複数のアドレス群の各々に対応する複数の第1キューと、パケットの特性に応じて設けられる複数の第2キューと、パケットの書き込みを実行するための第1制御部と、パケットの破棄を実行するための第2制御部とを備える。
複数の第1キューの各々は、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理するキューである。複数の第2キューの各々は、パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を管理するキューである。第1制御部は、書き込み対象のアドレス群を単位期間毎に切り替えることで各アドレス群と書き込み期間とを対応付け、書き込み対象のアドレス群に対し、そのアドレス群に対応する第1キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを当該パケットの特性に対応する第2キューに加える。第2制御部は、第2キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、その最初のアドレスが属するアドレス群から特定される第1書き込み期間と、タイマが示す現在時刻とに基づいて算出し、滞留期間に基づいてパケットを破棄することを決定したときには、第1書き込み期間内に書き込まれたすべてのアドレスを第2キューから除去する。
上記の課題を解決するためのパケット破棄方法は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対する方法であって、パケットバッファを構成する複数のアドレス群の各々に対応した複数の第1キューであって、各第1キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第1キューを用意するステップと、パケットの特性に応じた複数の第2キューを用意するステップと、書き込み対象のアドレス群を単位期間毎に切り替え、書き込み対象のアドレス群に対し、そのアドレス群に対応する第1キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、パケットが書き込まれたアドレスを、そのパケットの特性に対応する第2キューに加えるステップと、第2キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、最初のアドレスが属するアドレス群から特定される第1書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、滞留期間に基づいてパケットを破棄することを決定したときには、第1書き込み期間内に書き込まれたすべてのアドレスを前記第2キューから除去するステップと、を備える。
上述したパケット転送装置およびパケット破棄方法によれば、第2キューが示す最初のアドレスのキュー内の滞留期間に基づいてパケットを破棄することを決定した場合に、その最初のアドレスと同一の書き込み期間(第1書き込み期間)内に書き込まれたすべてのアドレスが第2キューから除去される。そして、第2キューから除去されたアドレスは上書き可能な状態となる。
上記の課題を解決するための他のパケット転送装置は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマと、第3キューと、パケットの特性に応じて設けられる複数の第4キューと、パケットの書き込みを実行するための第3制御部と、パケットの破棄を実行するための第4制御部とを備える。
第3キューは、パケットバッファのアドレスに対するパケットの書き込み順序を管理するキューである。複数の第4キューの各々は、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を、キュー内の各アドレスに対する書き込み期間とともに管理するキューである。第3制御部は、前記第3キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを書き込み時刻とともに当該パケットの特性に対応する第4キューに加える。第4制御部は、第4キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、その最初のアドレスに対する第1書き込み期間と、タイマが示す現在時刻とに基づいて算出し、滞留期間に基づいてパケットを破棄することを決定したときには、第1書き込み期間内に書き込まれたすべてのアドレスを第4キューから除去する。
上記の課題を解決するための他のパケット破棄方法は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対する方法であって、パケットバッファのアドレスに対するパケットの書き込み順序を管理する第3キューを用意するステップと、パケットの特性に応じた複数の第4キューを用意するステップと、第3キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、パケットが書き込まれたアドレスを書き込み期間とともに、そのパケットの特性に対応する第4キューに加えるステップと、第4キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、その最初のアドレスに対する第1書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、滞留期間に基づいてパケットを破棄することを決定したときには、第1書き込み期間内に書き込まれたすべてのアドレスを前記第4キューから除去するステップと、を備える。
上述したパケット転送装置およびパケット破棄方法によれば、第4キューが示す最初のアドレスのキュー内の滞留期間に基づいてパケットを破棄することを決定した場合に、その最初のアドレスと同一の書き込み期間(第1書き込み期間)内に書き込まれたすべてのアドレスが第4キューから除去される。そして、第4キューから除去されたアドレスは上書き可能な状態となる。
このパケット転送装置およびパケット破棄方法によれば、所定期間パケットバッファ内に滞留するパケットを、パケットバッファから読み出しを行うことなく実質的に破棄することが可能となる。
<第1実施形態>
以下、本発明のパケット転送装置の一実施形態を図面に関連付けて説明する。実施形態に係るパケット転送装置1は、例えばルータやスイッチ等のように、ネットワークの伝送路上に設けられ、ネットワーク上のあるノードから他のノードへパケットを転送するための装置である。
[パケット転送装置1の構成]
先ず、本実施形態に係るパケット転送装置1の構成について、図1に関連付けて説明する。図1は、実施形態に係るパケット転送装置1の概略構成を示すブロック図である。図1に示すように、このパケット転送装置1は、多重化部2、出力ポート設定部3、出力ポートテーブル4、パケットバッファ管理部5、パケットバッファ6およびスイッチング部7を備える。
なお、図1では入出力ポートを特定せずに、パケットのデータフロー(全体として図1の紙面上左から右の方向に太線で示す。)のみを表示してある。また、図1では、パケットがパケット転送装置1に設けられる出力ポートから出力される場合について示しているが、別の出力先、例えば、パケット転送装置1に装着される通信用カード、または、当該カード内に設定されている出力ポートである場合も同様の構成をとることが可能である。
このパケット転送装置1において、多重化部2は、ネットワークから複数のポート(図示せず)を介して入力されるパケットを多重化する。出力ポート設定部3は、出力ポートテーブル4を参照して、各パケットに含まれる宛先アドレスに対応する出力ポートを特定し、その特定した出力ポートの情報を各パケットに記録する。
パケットバッファ管理部5は、出力ポート設定部3から送出されるパケットを取り込み、パケットをパケットバッファ6に書き込む(格納する)ことで、パケットバッファ6内に滞留させる。
また、パケットバッファ管理部5は、定期的な、または、図示しない制御部からの読み出し要求に応じて、パケットバッファ6内のパケットを読み出し、スイッチング部7へ送出する。このとき、パケットバッファ管理部5は、パケットバッファ6内に一定期間滞留したパケットを破棄する。パケットバッファ6に対するパケットの書き込み、読み出しおよび破棄の処理については、後に詳細に説明する。
スイッチング部7では、パケットバッファ管理部5から送出されるパケットに記録された出力ポートの情報に基づいてスイッチングを行い、当該出力ポートからパケットを出力する。
[パケットバッファ管理部5]
以下、このパケット転送装置1のパケットバッファ管理部5について詳細に説明する。
パケットバッファ管理部5では、パケットバッファ6の書き込み可能なアドレスに対するパケットの書き込み順序を管理している。すなわち、パケットバッファ管理部5は、パケットバッファ6の空きアドレスと、到着したパケットを書き込むときの空きアドレスの順序とを管理している。また、パケットバッファ管理部5では、書き込み済みのアドレスからのパケットの読み出し順序を管理している。すなわち、パケットバッファ管理部5は、パケットバッファ6の書き込み済みアドレスと、パケットを読み出すときの書き込み済みアドレスの順序とを管理している。
上述したパケットの書き込み順序およびパケットの読み出し順序は、この実施形態では、ポインタによるキュー(後述する空きポインタキューおよびパケットキュー)によって管理される。
本実施形態に係るパケット転送装置1のパケットバッファ管理部5の構成について、図2を参照して説明する。図2は、パケットバッファ管理部5の構成をパケットバッファ6と関連付けて示すブロック図である。
図2に示すように、パケットバッファ管理部5は、書き込み制御部10(第1制御部)と、読み出し制御部20(第2制御部)と、ポインタ格納部30と、遅延閾値テーブル22(DTT)と、タイマ40と、書き込み管理テーブル50(WMT)とを備える。なお、図2では、パケットバッファ管理部5におけるパケットのデータフロー(入力パケットPK_INから出力パケットPK_OUTに至るフロー)を太線で示してある。また、この実施形態では、一例として、パケットに許容される最大遅延期間、すなわち、パケットバッファ6内に滞留可能な最長期間が128msである場合について説明する。
[タイマ40]
図2において、タイマ40は、所定の単位期間毎の時刻を計測する。
タイマ40によって計測される時刻は、パケットの書き込み処理および読み出し処理のタイミングの基準となるほか、パケットのパケットバッファ6内の滞留期間の算出にも用いられる。タイマ40の計測のための所定の単位期間(以下では適宜、「単位期間」と表記する。)は、遅延を許容できる期間が最も短いパケット、例えば音声や映像のリアルタイム再生のためのパケットの破棄判断を適切に行うことができる程度に短く設定される。この実施形態の説明では、一例として、タイマ40の計測における単位期間を1msとする。
[ポインタ格納部30(空きポインタキューおよびパケットキュー)]
ポインタ格納部30には、パケットバッファ6の各アドレスに対応したポインタアドレスを有するポインタによるキュー(ポインタによるリンクリストで形成される待ち行列)として、空きポインタキューとパケットキューが格納されている。ポインタ格納部30内の各キューは、パケットバッファ6とは独立したメモリで構成される。
ここで、空きポインタキューは、パケットバッファ6の書き込み可能なアドレスに対するパケットの書き込み順序を管理するキューである。パケットキューは、書き込み済みのアドレスからのパケットの読み出し順序を管理するキューである。
先ず、空きポインタキューについて説明する。
図3は、空きポインタキューの構成をパケットバッファ6と関連付けて説明するための図であって、(a)は空きポインタキュー、(b)はパケットバッファ6の構成を示す。
ポインタ格納部30には、パケットバッファ6の各アドレスに対応したポインタアドレスを備えたポインタが用意される。すなわち、図3に示すように、パケットバッファ6のアドレスA_1,A_2,A_3,A_4,…,A_m−3,A_m−2,A_m−1,A_mにそれぞれ対応したポインタアドレスに、ポインタP_1,P_2,P_3,P_4,…,P_m−3,P_m−2,P_m−1,P_mが設けられている。
以下の説明では、パケットバッファ6の各アドレスは、「ポインタP_x(x:1〜m)に対応するアドレス」として適宜参照される。
また、この実施形態では、図3に示すように、ポインタアドレス順に複数のポインタ群からなる128個の空きポインタキューQ1,Q2,…Q128(複数の第1キュー)が設けられる。これにより、各空きポインタキューが、パケットバッファ6の領域を仮想的に区画する複数のアドレス群の各々に対応して設けられることになる。
例えばポインタP_1,P_2,P_3,P_4を含む空きポインタキューQ1は、パケットバッファ6のアドレスA_1,A_2,A_3,A_4が属するアドレス群G1に対応して設けられ、ポインタP_m−3,P_m−2,P_m−1,P_mを含む空きポインタキューQ128は、パケットバッファ6のアドレスA_m−3,A_m−2,A_m−1,A_mが属するアドレス群G128に対応して設けられる。
空きポインタキューQ1〜Q128の各々では、ポインタのリンクリストによってキューが形成される。すなわち、各空きポインタキューでは、ポインタが次ポインタのポインタアドレスを指すことによって、全体として、ポインタのリンクリストが形成されている。さらに、各空きポインタキューに含まれるデータとして、各空きポインタキューのリンクリストの開始および終了をそれぞれ管理する、スタートポインタ(以下、適宜「SP」と略記する。)およびエンドポインタ(以下、適宜「EP」と略記する。)が設けられる。
例えば図3の空きポインタキューQ1では、ポインタP_1がポインタP_4を指し、ポインタP_4がポインタP_3を指すことで、全体としてP_1(スタートポインタ)→P_4→P_3(エンドポインタ)のリンクリストが形成された一例を示している。この場合、ポインタP_1は4番目のポインタアドレスを指し、ポインタP_4は3番目のポインタアドレスを指していることを意味する。この空きポインタキューQ1の一例は、パケットバッファ6のアドレスA_1,A_3,A_4が空きアドレスであって、パケットを書き込むときの空きアドレスの順序がA_1→A_4→A_3であることを示している。
次に、パケットキューについて説明する。
後述するように、パケットバッファ管理部5では、パケットバッファ6に対するパケットの書き込みがある度に、空きポインタキューが示す順序に従って空きポインタキューのリンクリストからポインタが外される。そして、この外されたポインタが順にリンクリストを形成することによって、パケットキューが形成される。すなわち、パケットキューでは、書き込まれたパケットのアドレスに対応するポインタアドレスを有するポインタが順序付けられる。このパケットキューによって、書き込み済みのアドレスからのパケットの読み出し順序が管理される。
図4は、パケットキューの構成をパケットバッファ6と関連付けて説明するための図であって、(a)はパケットキュー、(b)はパケットバッファ6の構成を示す。図4に示すように、ポインタ格納部30は、複数のパケットキューQa,Qb,Qc,…(複数の第2キュー)を備える。複数のパケットキューは、それぞれ転送対象のパケットの特性に応じて設けられている。ここで、パケットの特性は、例えば、パケットに記述されるVLAN制御情報に基づくクラスと関連付けられる。
パケットキューQa,Qb,Qc,…の各々では、ポインタのリンクリストによってキューが形成される。すなわち、各パケットキューでは、ポインタが次ポインタのポインタアドレスを指すことによって、全体として、ポインタのリンクリストが形成されている。さらに、各パケットキューに含まれるデータとして、各パケットキューのリンクリストの開始および終了をそれぞれ管理する、スタートポインタ(SP)およびエンドポインタ(EP)が設けられる。
例えば図4のパケットキューQaでは、ポインタP_2がポインタP_4を指し、ポインタP_4がポインタP_17を指すことで、全体としてP_2(スタートポインタ)→P_4→P_17(エンドポインタ)のリンクリストが形成された一例を示している。この場合、ポインタP_2は4番目のポインタアドレスを指し、ポインタP_4は17番目のポインタアドレスを指していることを意味する。このパケットキューQ1の一例は、パケットバッファ6の書き込み済みアドレスがアドレスA_2,A_4,A_17であって、パケットを読み出すときの書き込み済みアドレスの順序がA_2→A_4→A_17であることを示している。
パケットバッファ管理部5は、パケットバッファに対してパケットが書き込まれる度に、空きポインタキューからスタートポインタを借り受けることで、パケットキューのリンクリストを更新する。この実施形態の説明において、ポインタを「借り受ける」ことは、空きポインタキューのリンクリストからポインタを外し(除去し)、そのポインタをパケットキューのリンクリストに連結する(加える)ことを意味する。
また、パケットバッファ管理部5は、パケットバッファからパケットが読み出される度に、空きポインタキューに対して、読み出されたパケットのアドレスに対応するポインタを返却することで、パケットキューのリンクリストを更新する。この実施形態の説明において、ポインタを「返却する」ことは、いったん空きポインタキューから借り受けたポインタをパケットキューのリンクリストから外し(除去し)、そのポインタを空きポインタキューのリンクリストに再び連結する(加える)ことを意味する。
なお、この実施形態では、理解の容易のために、パケットバッファ6の各アドレスに単一のパケットが書き込まれ、または、読み出される場合について説明するが、単一のパケットがパケットバッファ6の複数のアドレスに書き込まれる場合もあり得る。その場合には、その複数のアドレスに対応する複数のポインタを、その複数のポインタ間のリンクを保持したまま借り受ける、または、返却するようにすればよい。
また、パケットバッファ6の各アドレスに単一のパケットが書き込まれる場合、各空きポインタキューに含まれるポインタの数(すなわち、パケットバッファにおいてアドレス群に含まれるアドレスの数)は、タイマ40の計測における単位期間(この実施形態では、1ms)に書き込み可能なパケットの数と同等か、それ以上となるように設定される。
[書き込み制御部10]
再び図2を参照して、書き込み制御部10(第1制御部)について説明する。
書き込み制御部10は、出力ポート設定部3から取り込むパケットPK_INの特性を判定して、そのパケットを、ポインタ格納部30に含まれる複数のパケットキューの内、いずれかのパケットキューと対応付ける。
書き込み制御部10は、タイマ40から単位期間(この実施形態では、1ms)毎の時刻情報TMを受信する。書き込み制御部10では、この単位期間を書き込み期間として書き込み制御を行う。具体的には、書き込み制御部10は、タイマ40からの時刻情報TMが変化しない場合、すなわち、ある書き込み期間内においては、同一のアドレス群内のアドレスに対してパケットの書き込みを行い、書き込み期間が変化する毎に、パケットを書き込むパケットバッファ6のアドレス群を順次切り替える。図3を参照すると、ある書き込み期間ではアドレス群G1に対してパケットが書き込まれ、その次の書き込み期間ではアドレス群G2に対してパケットが書き込まれることになる。
このように、書き込み制御部10では、パケットの書き込み対象となるパケットバッファ6のアドレス群と、そのパケットの書き込み期間とを互いに対応付けるようにして、パケットの書き込みを行う。この実施形態では、パケットバッファ6のアドレス群と書き込み期間との対応付けが、各アドレス群に対応する空きポインタキューを用いて行われる。
具体的には、書き込み制御部10は、ある書き込み期間におけるパケットの書き込みを、その書き込み期間に対応した空きポインタキューのリンクリストを参照して行う。すなわち、ある書き込み期間における書き込みは、対応する空きポインタキューからスタートポインタを借り受けるとともに、そのポインタに対応したアドレスを指定してパケットバッファ6にアクセスすることにより行われる。借り受けたポインタは、書き込み対象のパケットの特性に対応したパケットキューのリンクリストに連結される。従って、パケットバッファ管理部5では、空きポインタキューから借り受けたポインタのポインタアドレスを参照することで、そのポインタに対応するアドレスに書き込まれたパケットの書き込み期間を後で認識することが可能となっている。
書き込み制御部10は、同一の書き込み期間内においてパケットバッファ6に書き込んだパケットの数をカウントするためのカウンタ11(第1カウンタ)を備えている。このカウンタ11は、タイマ40から時刻情報TMを受信する毎にリセットされる。
書き込み制御部10では、書き込み期間毎に書き込み管理テーブル50(WMT)にアクセスし、各書き込み期間におけるパケット書き込み情報を記録する。このパケット書き込み情報について、図5を参照して説明する。図5は、書き込み管理テーブル50に記録されるデータの内容を示す図である。
図5に示すように、各書き込み期間(WP1,WP2,…,WP128)におけるパケット書き込み情報は、各パケットキュー(Qa,Qb,Qc,…)に対して記録される。そして、パケット書き込み情報は、対象となる書き込み期間(本期間)の先頭ポインタと、その1つ前の書き込み期間(前期間)の最終ポインタと、前期間で書き込まれたパケット数とを含む。
ここで、本期間の先頭ポインタ(以下、適宜「FP」と略記する。)とは、対象となる書き込み期間における最初のパケットの書き込み時に、空きポインタキューから借り受けてパケットキューに加えたポインタである。前期間の最終ポインタ(以下、適宜「LP」と略記する。)とは、1つ前の書き込み期間における最後のパケットの書き込み時に、空きポインタキューから借り受けてパケットキューに加えたポインタである。この最終ポインタ(LP)は、書き込み制御部10に内蔵されるテンポラリレジスタに一時的に格納され、タイマ40から時刻情報TMを受信したとき(すなわち、次の書き込み期間に移行したとき)、テンポラリレジスタから取り出されて、書き込み管理テーブル50に記録される。
例えば、書き込み期間WP1においてパケットキューQaに対応するパケットがパケットバッファ6のアドレスA_2,A_4に書き込まれ、書き込み期間WP2においてパケットキューQaに対応するパケットがアドレスA_17から書き込みが開始された場合を想定する。この場合には、図5に例示するように、書き込み期間WP2のパケットキューQaにおける先頭ポインタがP_17、最終ポインタがP_4、書き込みパケット数が2として、書き込み管理テーブル50に記録される。
[読み出し制御部20]
次に、再び図2を参照して、読み出し制御部20(第2制御部)について説明する。
読み出し制御部20は、タイマ40の単位期間(この実施形態では、1ms)毎の時刻情報TMを受信する。読み出し制御部20では、タイマ40の単位期間を読み出し期間として管理する。読み出し制御部20での読み出し処理は、パケットキュー毎の帯域などを管理するスケジューラ25からパケットキューの読み出し要求があった場合、または、タイマからの時刻情報TMの変化時(読み出し期間の変化時)に行われる。
この読み出し処理では、パケットバッファ6内に一定期間滞留したパケットの破棄も行われる。読み出し期間の変化時の読み出し処理は、パケットバッファ6内に一定期間滞留したパケットの破棄を目的に行われ、実際のパケットの読み出しおよび送出を行わない。
すでに説明したように、パケットキューを構成する各ポインタのポインタアドレスの値によって、各ポインタに対応するアドレスに書き込まれたパケットの書き込み期間を認識することができるため、読み出し制御部20は、パケットの破棄判断を次のように行う。すなわち、読み出し制御部20は先ず、各パケットキューのスタートポインタに対応する書き込み期間と、タイマ40から受信する現在の時刻情報(現在時刻)との差分から、当該ポインタに対応するアドレスのパケットの滞留期間を算出する。次に読み出し制御部20は、算出した滞留期間と、遅延閾値テーブル22(DTT)に格納されている遅延閾値とを比較し、滞留期間が遅延閾値を超えている場合に、そのパケットを破棄すべきと判断する。
図6は、遅延閾値テーブル22に格納されるデータの内容を示す図である。図6に示すように、遅延閾値テーブル22は、パケットキュー(Qa,Qb,Qc,…)毎の遅延閾値[ms]を示すデータを含む。パケットキューに対応するパケットの特性に基づいて、Qa,Qb,Qcの順に優先度が高い場合には、各パケットキューに対応する遅延閾値は、D1<D2<D3を満足するように設定される。例えばリアルタイム性の高い情報を含むパケットは、その特性に基づいて優先度が高いと考えられるため、小さな遅延閾値が予め設定される。
読み出し制御部20は、パケットを破棄すべきでないと判断した場合(すなわち、実際にパケットを読み出すべきであると判断した場合)には、パケットキューのスタートポインタに対応するパケットバッファ6のアドレスにアクセスしてパケットを読み出すとともに、そのポインタを空きポインタキューへ返却する。
逆に、読み出し制御部20は、パケットを破棄すべきであると判断した場合には、パケットバッファ6にアクセスすることなく、パケットキューのスタートポインタと同一の書き込み期間内に借り受けたすべてのポインタを空きポインタキューへ返却する。このとき、読み出し制御部20によって、書き込み管理テーブル50が参照される。空きポインタキューへ返却されたポインタは、その後の書き込み期間において書き込み制御部10によって借り受けられることが可能となるため、そのポインタに対応するアドレスには新たなパケットを上書きすることが可能となる。
読み出し制御部20は、同一の書き込み期間内に書き込まれたパケットの内、パケットバッファ6から読み出されたパケットの数をカウントするためのカウンタ21(第2カウンタ)を備えている。このカウンタ21は、各書き込み期間に書き込まれた先頭のパケットのアドレスに対応するポインタが、パケットキューから読み出される度にリセットされる。
読み出し制御部20は、読み出し期間毎に、書き込み管理テーブル50に記録されている書き込みパケット数から、このカウンタ21のカウント値(=読み出しパケット数)を減算して、破棄したパケット数(破棄パケット数)を算出する。従って、このパケット転送装置1では、破棄すべきパケットをパケットバッファから読み出すことなく、破棄パケット数が得られる。
[パケットバッファ管理部の動作]
次に、本実施形態のパケット転送装置1におけるパケットバッファ管理部の動作について説明する。
[パケット書き込み処理]
先ず、パケット書き込み処理におけるパケットバッファ管理部5の動作について図2および図7〜9に関連付けて説明する。図7は、パケット書き込み処理におけるパケットバッファ管理部5の動作を示すフローチャートである。図8は、パケット書き込み前後のパケットキューおよび空きポインタキューの一例を示す図である。図9は、パケット書き込み前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
以下、図7のフローチャートについて、図2と関連付けながら説明する。
図7において、書き込み制御部10が出力ポート設定部3からパケットPK_INを受信すると(ステップS101のYES)、例えばそのパケットに記述されるVLAN制御情報に基づくクラスによって、パケットの特性を判定する(ステップS102)。この特性判定により、受信したパケットが複数のパケットキューのいずれかと対応付けられる。そして、書き込み制御部10は、前回のパケット書き込み時から書き込み期間が変化したか否かを判断する(ステップS103)。この判断は、タイマ40からの時刻情報TMが変化したか否かに基づく。書き込み期間が変化していない場合には(ステップS103のNO)、書き込み制御部10はカウンタ11をカウントアップさせる(ステップS104)。
さらに、書き込み制御部10はポインタ格納部30を参照して、現時点の書き込み期間に対応した空きポインタキューのスタートポインタを借り受け、そのポインタに対応したパケットバッファ6のアドレスにパケットを書き込む。すなわち、書き込み制御部10は先ず、空きポインタキューのスタートポインタに対応したパケットバッファ6のアドレスを指定してパケットバッファ6にアクセスし、ステップS101で受信したパケットを書き込む(ステップS105)。次に書き込み制御部10は、借り受けたポインタを、ステップS102で対応付けられたパケットキューのリンクリストに連結する(ステップS106)。このとき、空きポインタキューにおいて、スタートポインタ(借り受けたポインタ)が指すポインタアドレスの次ポインタが新たなスタートポインタとして設定される。
最後に、書き込み制御部10は、書き込み期間が変化した後の処理(後述するステップS109)のために、借り受けたポインタを内部のテンポラリレジスタに記録しておく(ステップS107)。同一の書き込み期間内に複数のパケットの書き込みが行われる場合には、上記のステップS101〜107が繰り返し行われることになるが、テンポラリレジスタに対しては逐次上書きで記録しておけばよい。
パケットを受信した後に書き込み期間が変化した場合には(ステップS103のYES)、書き込み制御部10は、書き込み管理テーブル50(WMT)にアクセスして、該当する書き込み期間(新たな書き込み期間)に対応するパケット書き込み情報を記録する(ステップS108〜S110)。
具体的には、ステップS108において、書き込み制御部10はポインタ格納部30を参照し、新たな書き込み期間に対応した空きポインタキューのスタートポインタを、その書き込み期間における先頭ポインタ(FP)として、書き込み管理テーブル50(WMT)に記録する。この先頭ポインタ(FP)は、ステップS102で対応付けられたパケットキューと対応付けられて記録される。そして、書き込み制御部10は、テンポラリレジスタに記録されているポインタの値を、前期間(変化前の書き込み期間)の最終ポインタ(LP)として、書き込み管理テーブル50(WMT)に記録する。さらに、書き込み制御部10は、カウンタ11のカウント値を、前期間(変化前の書き込み期間)の書き込みパケット数(W_num)として、書き込み管理テーブル50(WMT)に記録する。
パケット書き込み情報の記録後、カウンタがリセットされ(ステップS111)、新たな書き込み期間としての処理が行われる(ステップS104以降)。
以上、パケット書き込み処理時のパケットバッファ管理部5の動作フローについて説明したが、さらに図8および図9に関連付けて、書き込み時の空きポインタキューおよびパケットキューのリンクリストの変化の例について具体的に説明する。
図8は、各キューとテンポラリレジスタのデータの一例について説明するための図であって、(a)1個のパケットを新たに書き込む前の状態と、(b)書き込み後の状態とを示している。ここでは、パケットの書き込み前において、空きポインタキューのポインタによるリンクリストがP_18(SP)→P_19→P_20となっており、パケットキューのポインタによるリンクリストがP_3をエンドポインタ(EP)として含む場合を想定する。この場合に、新たなパケットを書き込むときには、その時点の書き込み期間に対応する空きポインタキューのスタートポインタであるP_18を借り受ける。すなわち、図8(b)に示すように、空きポインタキューのスタートポインタであるP_18をパケットキューのリンクリストに連結して、このP_18をパケットキューの新たなエンドポインタ(EP)とする。そして、空きポインタキューでは、書き込み前のスタートポインタP_18が指していたポインタアドレスのポインタP_19(次ポインタ)が新たなスタートポインタ(SP)となる。さらに、借り受けたポインタ(この場合、P_18)がテンポラリレジスタに記録される。この一連の処理の例は、図7のステップS105〜S107において行われる。
図9は、図8と同一の例において、各キューのリンクリストと、リンクリストに対応するパケットバッファのアドレスとの関係を、(a)1個のパケットを新たに書き込む前の状態と、(b)書き込み後の状態とで示している。図9では、空きポインタキューのスタートポインタP_18を借り受ける場合の各キューのリンクリストに対する処理が、パケットバッファ6との関係で視覚的に理解しやすい形で記載されている。この例では、空きポインタキューから借り受けたポインタP_18に対応するパケットバッファのアドレスA_18に、パケットが書き込まれることになる。
[パケット読み出し処理]
次に、パケット読み出し処理におけるパケットバッファ管理部5の動作について図2および図10〜13に関連付けて説明する。以下で説明されるパケット読み出し処理は、(1)パケットを実際に読み出すときの処理と、(2)パケットを読み出さずに破棄するときの処理とを含む。なお、図10および図11は、パケット読み出し処理におけるパケットバッファ管理部5の動作を示すフローチャートである。図12は、実際にパケットを読み出す場合において、パケット読み出し前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。図13は、パケットを破棄する場合において、パケットの破棄前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
(1)パケットを実際に読み出すときの処理
図10のフローチャートについて、図2と関連付けながら説明する。
読み出し制御部20での読み出し処理は、パケットキュー毎の帯域などを管理するスケジューラ25からのパケットキューの読み出し要求をトリガとして実行される場合と、タイマ40からの時刻情報TMの変化時(読み出し期間の変化時)をトリガとして実行される場合がある。
図10において、スケジューラ25からのパケットキューの読み出し要求、または、タイマ40からの時刻情報TMの変化(読み出し期間の変化)に基づくトリガ入力が有る場合(ステップS201のYES)、読み出し制御部20は読み出し処理を実行する。この読み出し処理では、すべてのパケットキューに対してステップS202以降の処理が行われるが、以下では単一のパケットキューに対する処理のみについて説明する。
読み出し制御部20は先ず、パケットバッファ6に最も長く滞留するパケットに対する破棄判断を行うため、パケットキューのスタートポインタ(SP)を読み出す(ステップS202)。そして、読み出し制御部20は、ステップS202で読み出したスタートポインタ(SP)のアドレスが、そのスタートポインタ(SP)に対応する書き込み期間における先頭ポインタ(FP)であるか判定する(ステップS203)。そして、そのスタートポインタ(SP)が先頭ポインタ(FP)である場合は、カウンタ21をリセットする(ステップS204)。
次に、読み出し制御部20は遅延閾値テーブル22(DTT)を参照して、当該パケットキューに対応する遅延閾値を読み出し(ステップS205)、スタートポインタ(SP)に対応するパケットバッファ6のアドレスのパケットに対する破棄判断を行う(ステップS206)。
この破棄判断は、具体的には以下のように行われる。すなわち、先ず読み出し制御部20は、パケットキューのスタートポインタ(SP)に対応する書き込み期間と、タイマ40から受信する現在の時刻情報(現在時刻)との差分から、当該ポインタに対応するアドレスのパケットの滞留期間を算出する。次に読み出し制御部20は、算出した滞留期間と、ステップS203で読み出された遅延閾値とを比較し、滞留期間が遅延閾値を超えていない場合には、そのパケットを破棄すべきでないと判断する(ステップS206のNO)。
次に、読み出し制御部20は、処理の実行が読み出し期間の変化をトリガとしてなされたのか否かを判断する(ステップS207)。ステップS207の判断がNOの場合には、スケジューラ25からの読み出し要求をトリガとして実行されたことを意味するので、読み出し対象のパケットを実際に読み出すときの一連の処理(ステップS207〜S211)が行われる。逆に、ステップS207の判断がYESの場合には、パケットの読み出しは行われない。読み出し処理の実行が読み出し期間の変化時をトリガとしてなされるのは、パケットの破棄を目的とする場合のみであるためである。
ステップS207の判断がNOの場合には、読み出し制御部20はカウンタ21をカウントアップさせる(ステップS208)。カウンタ21は、処理対象のパケットキューのスタートポインタ(SP)が、対応する書き込み期間における先頭ポインタ(FP)と一致するときにリセットさせられ(ステップS204)、パケットを実際に読み出す場合にカウントアップさせられるので、カウンタ21のカウント値は、同一の書き込み期間内において読み出されたパケット数を示すことになる。
次に、読み出し制御部20はポインタ格納部30を参照して、パケットキューのスタートポインタ(SP)に対応したアドレスを指定してパケットバッファ6からパケットを読み出す(ステップS209)。この読み出したパケットは、パケットPK_OUT(図2参照)としてパケットバッファ管理部5から出力される。
そして、読み出し制御部20は、読み出したポインタを、そのポインタに対応する空きポインタキュー、すなわち借り受け元の空きポインタキューに返却する。これにより、返却されたポインタは、返却先の空きポインタキューのリンクリストに連結されて、その空きポインタキューのエンドポインタ(EP)となる(ステップS210)。さらに、パケットの読み出し後は、パケットキューのスタートポインタ(SP)をリンクリストから外す必要があるので、そのスタートポインタが指すポインタアドレスの次ポインタを当該パケットキューの新たなスタートポインタ(SP)とする(ステップS211)。
読み出し処理のためのトリガ入力が有る度に、ステップS202〜S211の一連の処理が繰り返し行われる。読み出されるパケットが同一の書き込み期間に書き込まれたものである間は、読み出したパケットの数がカウンタ21にカウントされていく。
(2)パケットを読み出さずに破棄するときの処理
一方、ステップS206において、読み出し制御部20は、滞留期間と遅延閾値とを比較し、滞留期間が遅延閾値を超えている場合に、そのパケットを破棄すべきであると判断する(ステップS206のYES)。これにより、読み出し制御部20は、図11に示すステップS301〜S305の処理を実行する。
読み出し制御部20は先ず、廃棄判断の対象となったスタートポインタ(SP)に対応する書き込み期間を特定し、書き込み管理テーブル50(WMT)にアクセスして、その特定した書き込み期間の次の期間(例えば、SPが書き込み期間WP1に対応する場合は書き込み期間WP2;図5参照)における、処理対象のパケットキューの先頭ポインタ(FP)、最終ポインタ(LP)および書き込みパケット数(W_num)を読み出す(ステップS301)。
次に、パケットキューのスタートポインタ(SP)を、そのポインタに対応する空きポインタキューのリンクリストに連結し(ステップS302)、その空きポインタキューのエンドポインタ(EP)をステップS210で読み出した最終ポインタ(LP)にする(ステップS303)。これにより、パケットキューのリンクリスト上、スタートポインタと同一の書き込み期間内に借り受けたすべてのポインタが空きポインタキューへ返却されることになる。さらに、返却したポインタを処理対象のパケットキューのリンクリストから除去するため、パケットキューのスタートポインタ(SP)をステップS210で読み出した先頭ポインタ(FP)にする(ステップS304)。
さらに、読み出し制御部20は、破棄パケット数を算出する(ステップS305)。破棄パケット数は、ステップS301で読み出した書き込みパケット数(W_num)から、カウンタ21のカウント値(=読み出しパケット数)を減算することで得られる。
以上、パケット読み出し処理時のパケットバッファ管理部5の動作フローについて説明したが、さらに図12および図13に関連付けて、読み出し処理時の空きポインタキューおよびパケットキューのリンクリストの変化の例について具体的に説明する。図12はパケットを実際に読み出すときの処理を示し、図13はパケットを読み出さずに破棄するときの処理を示している。図12および図13ともに、(a)が処理前の状態、(b)が処理後の状態を表す。
図12および図13ともに、処理前の状態において、パケットキューの一例として、P_2(SP)→P_4→P_5→P_7→P_8(EP)に示すポインタによるリンクリストが形成されている場合を想定する。さらに図13では、廃棄判断の対象となったスタートポインタ(SP)に対応する書き込み期間の次の期間において、先頭ポインタ(FP)としてP_7、最終ポインタ(LP)としてP_5が、書き込み管理テーブル50(WMT)記録されている場合を想定する。この例では、最終ポインタ(LP)がP_5であるので、P_2(SP)とP_4とP_5とが同一の書き込み期間内に借り受けたことになる。
この場合、図12に示すように、パケットを実際に読み出すときの処理では、図10のステップS207〜S209の処理を行うことにより、パケットキューのスタートポインタ(SP)であるP_2に対応するパケットバッファ6のアドレスA_2のパケットが読み出される。そして、P_2は、空きポインタキューに対して新たなエンドポインタ(EP)として返却される。
一方、図13に示すように、パケットを読み出さずに破棄するときの処理では、図11のステップS302〜S304の処理を行うことにより、パケットキューのリンクリスト上、スタートポインタP_2から前期間の最終ポインタ(LP)であるP_5までのすべてのポインタが空きポインタキューへ返却される。そして、返却したポインタをパケットキューから除去するため、本期間の先頭ポインタ(FP)であるP_7をパケットキューの新たなスタートポインタ(SP)とする。これらの処理により、返却したポインタ(P_2,P_4,P_5)に対応するパケットバッファ6のアドレス(A_2,A_4,A_5)のパケットは読み出されず、そのアドレスには、後のパケット書き込み処理において新たに受信したパケットが上書きされ得る。
[パケットの全体処理]
次に、パケットバッファ管理部5の全体処理について図14と関連付けて説明する。図14は、パケットバッファ管理部5の全体処理に伴う、時系列のパケットキューの変化一例を示す図であって、(a)は遅延閾値が小さいパケットキューの場合、(b)は遅延閾値が大きいパケットキューの場合である。
なお、図14では、書き込み期間(各1ms)がWP1→WP2→WP3→WP4→…と経過し、読み出し期間(各1ms)がRP1→RP2→RP3→RP4→…と経過している。「New」と表記されるポインタは、各書き込み期間での新たなパケット書き込みに伴って、その期間に新規に空きポインタキューから借り受けたポインタを示す。また、図14では、各期間における先頭ポインタ(FP)と最終ポインタ(LP)の記録の際にパケットキューからポインタが反映される様子を、点線で示してある。
図14の(a)に示すパケットキューに対する遅延閾値は、例えば1msに設定される。この例では、書き込まれたパケットが1ms以内に順次読み出されていくため、各期間のパケットキューには常に新規のパケットによるパケットキューがスタートポインタから形成されている。そのため、各期間において、パケットキューのスタートポインタに基づく滞留期間は常に遅延閾値以下となり、パケットは破棄されない。
一方、図14(b)に示すパケットキューに対する遅延閾値は、例えば2msに設定される。この例では、読み出し期間RP1〜RP3ではパケットの読み出しが行われず、書き込み期間WP1〜WP3では順次、新規のパケットの書き込みが行われる。これにより、書き込み期間WP1〜WP3では、パケットキューのリンクリストには、空きポインタキューから借り受けたポインタが順次連結されていく。
読み出し期間RP3では、パケットキューのスタートポインタ(SP)に基づく滞留期間が遅延閾値を超えることでパケットを破棄すべきである判断される。これにより、この期間のスタートポインタ(SP)に対応する書き込み期間(この場合、書き込み期間WP1)内に借り受けたすべてのポインタが返却される。そして、読み出し期間RP4におけるスタートポインタは、廃棄判断対象のスタートポインタ(SP)に対応する書き込み期間WP1の次の書き込み期間WP2の先頭ポインタ(FP)となる。
以上説明したように、本実施形態のパケット転送装置1では、パケットバッファ内に滞留するパケットを破棄するときに、実際にパケットバッファからの当該パケットの読み出しは行われず、当該パケットに対応するパケットキューを更新することによって行われる。具体的には、そのパケットのパケットバッファのアドレスに対応するポインタがパケットキューのリンクリストから外されて、空きポインタキューへ返却される。これにより、返却されたポインタに対応するアドレスに対するパケット書き込み(上書き)が可能な状態となる。従って、このパケット転送装置1では、破棄対象のパケットを無駄にパケットバッファから読み出すことがなく、読み出しのためのデータ転送容量(帯域)を有効に利用できる。
また、このパケット転送装置1では、パケット書き込み処理時において、書き込み期間と、複数の空きポインタキューの中からポインタの借り受け対象となる空きポインタキューとが対応付けられる。そのため、パケット読み出し処理時には、空きポインタキューから借り受けたポインタのポインタアドレスを参照することで、そのポインタに対応するアドレスに書き込まれたパケットの書き込み期間を後で認識することが可能となっている。そのため、このパケット転送装置1では、パケットの書き込み時刻を装置内のメモリ(または、パケット自体)に記憶させなくても、そのパケットのパケットバッファ内の滞留期間の算出が可能である。従って、このパケット転送装置1では、各パケットに対する時刻情報(書き込み時刻または受信時刻等)を記憶するためのメモリが必要ない。
<第2実施形態>
以下、本発明のパケット転送装置の他の実施形態に関し、特に第1実施形態のものと異なる点について図面に関連付けて説明する。本実施形態に係るパケット転送装置1’は、全体の構成は図2に示した第1実施形態のものと同様であるが、ポインタ格納部30内の空きポインタキューおよびパケットキューの構成が第1実施形態のものと異なる。なお、第2実施形態において、書き込み制御部および読み出し制御部は、それぞれ本発明の第3制御部および第4制御部に対応する。
以下では、本実施形態におけるパケットバッファ管理部5の構成について、第1実施形態のものとの差異を中心に説明する。先ず、本実施形態における空きポインタキューおよびパケットキューの構成について、それぞれ図15および図16に関連付けて説明する。
[空きポインタキュー]
図15は、第2実施形態における空きポインタキューの構成をパケットバッファ6と関連付けて説明するための図であって、(a)は空きポインタキュー、(b)はパケットバッファ6の構成を示す。図3に示したものと同様に、第2実施形態のポインタ格納部30の各ポインタアドレスはパケットバッファ6のアドレスと対応付けられている。図3に示したものと異なり、第2実施形態では、単一の空きポインタキュー(第3キュー)によって、パケットバッファ6のアドレスに対する書き込み順序が管理される。
[パケットキュー]
図16は、第2実施形態におけるパケットキューの構成をパケットバッファ6と関連付けて説明するための図であって、(a)はパケットキュー、(b)はパケットバッファ6の構成を示す。図16に示すように、第2実施形態では、複数のポインタキューQa’,Qb’,Qc’,…(複数の第4キュー)が設けられる。パケットキューQa’,Qb’,Qc’,…の各々には、パケットの特性に応じて、パケットバッファの書き込み済みのアドレスに対する読み出し順序を示す、ポインタによるリンクリストが形成される点は、第1実施形態と同様である。一方、第1実施形態のものと異なり、本実施形態のパケットキューでは、ポインタによるリンクリストと共に、リンクリスト上のポインタを借り受けたとき(=パケットを書き込んだとき)の書き込み期間の情報(WP1,WP2,…)が付加される。
次に、本実施形態におけるパケットバッファ管理部5の動作について、第1実施形態のものとの差異を中心に説明する。
[パケット書き込み処理]
書き込み制御部10は、パケットの書き込み処理時において、空きポインタキューのリンクリスト上のポインタに対応するパケットバッファ6のアドレスにパケットを書き込む。このパケットの書き込みに当たって単一の空きポインタキューからのポインタの借り受けが逐次行われる。第1実施形態の場合と異なり、第2実施形態では、異なる書き込み期間において常に単一の空きポインタキューから、空きポインタキューの示す順序に従ってポインタを借り受ける。また、第1実施形態の場合と異なり、パケット書き込み処理において、パケットキューには、リンクリストと共に、リンクリスト上のポインタに関連付けて書き込み期間の情報が付加される(図16参照)。
[パケット読み出し処理]
本実施形態におけるパケット読み出し処理は、滞留期間の算出方法が第1実施形態のものと異なる。具体的には、読み出し制御部20は、パケット読み出し処理時に、パケットキューのスタートポインタに付加された書き込み期間(図16参照)と現在時刻との差分からパケットの滞留期間を算出する。この滞留期間に基づくパケット破棄判断では、第1実施形態の場合と同様に、遅延閾値テーブル22が参照される。
パケットを実際に読み出すときの処理と、パケットを読み出さずに破棄するときの処理は、第1実施形態の場合と同じである。すなわち、この第2実施形態のパケット転送装置1’においても、第1実施形態のものと同様に、パケットバッファ内に滞留するパケットを破棄するときに、実際にパケットバッファからの当該パケットの読み出しは行われず、当該パケットに対応するパケットキューを更新することによって行われる。このとき、パケットキューのスタートポインタと同一の書き込み期間内に借り受けたすべてのポインタが空きポインタキューへ返却されるが、この処理は、本実施形態においては、パケットキューに付加された各ポインタの書き込み期間の情報を参照することで容易に実行できる。
従って、この実施形態のパケット転送装置においても、破棄対象のパケットを無駄にパケットバッファから読み出すことがなく、読み出しのためのデータ転送容量(帯域)を有効に利用できる。
<実施形態の変更例>
上述した各実施形態に係るパケット転送装置は例示に過ぎず、これに基づいて以下に示すような改良・改変を行うことが可能である。
[パケットキューの時分割処理]
先ず図17に関連付けて、各実施形態のパケット転送装置における好適な処理方法を説明する。図17は、パケットキューに対する時系列の処理を示す図であって、(a)は書き込み処理、(b)は読み出し処理の場合である。この図17に示すように、各実施形態のパケット転送装置では、各書き込み期間または各読み出し期間において、複数のパケットキュー(図17では、Qa,Qb,Qc,…)を時分割処理することが好ましい。このような処理により、パケット書き込み処理とパケット読み出し処理(パケット破棄を含む)に伴う複数のパケットキューに対するポインタ処理が単位期間内で分散され、パケットバッファ管理部における処理負荷が軽減される。
[パケットキューの優先処理]
各実施形態のパケット転送装置では、パケット書き込み処理とパケット読み出し処理(パケット破棄を含む)に伴う複数のパケットキューに対するポインタ処理は、優先度が高いパケットキューから実行することが好ましい。例えばパケットの破棄判断は、複数のパケットキューの内、優先度の高いパケットキューのスタートポインタに基づいて順に実行されることが好ましい。
パケットキューの優先度に基づく処理を図18に関連付けてさらに説明する。
図18は、優先度テーブル23を含むパケットバッファ管理部5の構成を示すブロック図である。この優先度テーブル23には、複数のパケットキューと、各パケットキューの優先度との対応関係が記述されている。各パケットキューは、例えばパケットに記述されるVLAN制御情報に基づくクラス等、パケットの特性と対応付けられているので、この優先度テーブルにはパケットの特性とその優先度との関係が記述されているに等しい。
一般的には、優先度テーブル23における各パケットキューの優先度は、遅延閾値が小さいほど高く設定されるが、この設定に限られない。例えば2以上のパケットキューに対して同一の遅延閾値が設定されている場合には、パケットキューに対応付けられたパケットの特性の差異に基づいて優先度に差異を設けるようにしてもよい。
図18に示す構成のパケットバッファ管理部5では、読み出し制御部20が2以上のパケットキューに対してパケットを破棄すべきであるという判断を行った場合には、優先度テーブル23が参照される。そして、読み出し制御部20は、その2以上のパケットキューの内、優先度が高い順に従って処理(図11に示した一連の処理)を行う。
ここでは、パケット破棄時のパケットキューのリンクリストに対する処理(図11および図13参照)の負荷が大きく、かつ、この処理が終わらないとパケットキューのスタートポインタが更新されないため後続の処理ができない点に注意を要する。かかる点に鑑み、上述したような、優先度に従ったパケットキューの順に処理を行うことによって、優先度の高いパケットキューに対する処理が優先され、優先度の高いパケットキューに対応するパケットを素早く装置から出力(転送)することが可能となる。
[その他の変更例]
各実施形態のパケット転送装置では、パケットの優先度に応じて、パケットを複数のパケットキューのいずれかと対応付ける場合について説明したが、これに限られない。単一のパケットキューを用いたパケット転送装置の場合であっても同様の作用および効果を奏する。
第1実施形態のパケット転送装置では、パケットバッファ6の各アドレス群をアドレス順に構成した例について示したが、このような構成例に限られない。パケットを書き込むパケットバッファのアドレス群を単位期間毎に切り替えることができれば、各アドレス群を、昇順で複数のアドレスから構成させる必要はなく、予め設定された複数のアドレスから構成するようにすればよい。
第1実施形態のパケット転送装置では、タイマ計測のための単位期間を1msとし、パケットに許容される最大遅延期間を128msとした場合を例に説明したが、これに限られない。より一般的には、タイマ計測のための単位期間をT1、パケットに許容される最大遅延期間をT2としたときに、空きポインタキューをT2/T1以上の数だけ設けるようにすればよい。これにより、ある書き込み期間において、当該期間に対応する空きポインタキューから借り受けたポインタが、その空きポインタキューを利用する次回の書き込み期間までに返却されることになる。そのため、空きポインタキューをT2/T1以上の数だけ設けるようにする限り、ポインタを空きポインタキューから借り受けることができないという状況が生じない。
各実施形態のパケット転送装置では、書き込みおよび読み出しのためのパケットバッファのアドレスに対するキューを、ポインタによるリンクリストによって管理する場合について説明したが、これに限られない。ポインタによるリンクリストを用いることは、パケットバッファのアドレス順序(アドレスのキュー)を管理するための一方策に過ぎない。パケットバッファのアドレス順序を管理するために、FIFO(First In First Out)を実現するためのいかなる他の公知のデータ構造も利用され得る。
<付記の開示>
以上の第1および第2実施形態に関し、さらに以下の付記を開示する。
(付記1)
転送対象のパケットを一時的に格納するためのパケットバッファと、
所定の単位期間毎の時刻を計測するタイマと、
前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第1キューであって、各第1キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第1キューと、
パケットの特性に応じて設けられる複数の第2キューであって、各第2キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を管理する、複数の第2キューと、
書き込み対象のアドレス群を前記単位期間毎に切り替えることで各アドレス群と書き込み期間とを対応付け、書き込み対象のアドレス群に対し、そのアドレス群に対応する第1キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを当該パケットの特性に対応する第2キューに加える第1制御部と、
第2キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第1書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第2キューから除去する第2制御部と、
を備えたパケット転送装置。(1)
(付記2)
前記パケットバッファの各アドレスに対応したポインタアドレスを有するポインタを備え、
前記第1キューは、対応するアドレス群の中でパケットを書き込み可能なアドレスに対応するポインタによるリンクリストで構成され、
前記第1制御部は、パケットの書き込み時において、書き込み期間に応じた第1キューのリンクリスト上のポインタに対応する前記パケットバッファのアドレスにパケットを書き込むとともに、そのポインタを第1キューのリンクリストから外し、かつ、そのポインタによって前記第2キューをポインタによるリンクリストとして形成し、
前記第2制御部は、第2キューのスタートポインタに基づきパケットを破棄することを決定したときには、当該スタートポインタと同一の書き込み期間内に前記第2キューに連結されたすべてのポインタを当該第2キューから外し、前記第1キューへ連結する、
付記1に記載のパケット転送装置。(2)
(付記3)
ある期間内に前記パケットバッファに書き込まれたパケットの数をカウントする第1カウンタと、
当該期間内に前記パケットバッファに書き込まれたパケットのうち、前記パケットバッファから読み出されたパケットの数をカウントする第2カウンタと、
をさらに備え、
前記第1カウンタのカウント値から前記第2カウンタのカウント値を減算することで、当該期間における破棄パケット数を算出する、
付記1または2に記載のパケット転送装置。(3)
(付記4)
パケットの特性に基づいて、前記複数の第2キューの各々に対する優先度が予め設定されており、
ある期間におけるパケットの破棄の決定が2以上の第2キューに基づいて行われたときには、その期間の当該2以上の第2キューに対する処理は、前記優先度の順に従って行われる、
付記1または2に記載のパケット転送装置。(4)
(付記5)
前記第1制御部および前記第2制御部の前記複数の第2キューに対する処理は、前記単位期間内において時分割で行われる、
付記1または2に記載のパケット転送装置。(5)
(付記6)
パケットの破棄判断を行うときに前記滞留期間と比較される遅延閾値を、前記複数の第2キューの各々に対して予め設定される、
付記1または2に記載のパケット転送装置。
(付記7)
前記所定の期間をT1、パケットに許容される最大遅延期間をT2としたときに、
前記第1キューがT2/T1以上の数だけ設けられる、
付記1または2に記載のパケット転送装置。
(付記8)
転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第1キューであって、各第1キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第1キューを用意するステップと、
パケットの特性に応じた複数の第2キューを用意するステップと、
書き込み対象のアドレス群を前記単位期間毎に切り替え、書き込み対象のアドレス群に対し、そのアドレス群に対応する第1キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
パケットが書き込まれたアドレスを、そのパケットの特性に対応する第2キューに加えるステップと、
前記第2キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第1書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第2キューから除去するステップと、
を備えたパケット破棄方法。(6)
(付記9)
転送対象のパケットを一時的に格納するためのパケットバッファと、
所定の単位期間毎の時刻を計測するタイマと、
前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第3キューと、
パケットの特性に応じて設けられる複数の第4キューであって、各第4キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を、キュー内の各アドレスに対する書き込み期間とともに管理する、複数の第4キューと、
前記第3キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを書き込み期間とともに当該パケットの特性に対応する第4キューに加える第3制御部と、
第4キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第1書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第4キューから除去する第4制御部と、
を備えたパケット転送装置。(7)
(付記10)
前記パケットバッファの各アドレスに対応したポインタアドレスを有するポインタを備え、
前記第3キューは、対応するアドレス群の中でパケットを書き込み可能なアドレスに対応するポインタによるリンクリストで構成され、
前記第3制御部は、パケットの書き込み時において、前記第3キューのリンクリスト上のポインタに対応する前記パケットバッファのアドレスにパケットを書き込むとともに、そのポインタを第3キューのリンクリストから外し、かつ、そのポインタによって前記第4キューをポインタによるリンクリストとして形成し、第4キューの各ポインタと書き込み期間とを関連付け、
前記第4制御部は、第4キューのスタートポインタと関連付けられた書き込み期間に基づきパケットを破棄することを決定したときには、当該スタートポインタと同一の書き込み期間内に前記第4キューに連結されたすべてのポインタを第4キューから外し、第3キューへ連結する、
付記9記載のパケット転送装置。
(付記11)
転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第3キューを用意するステップと、
パケットの特性に応じた複数の第4キューを用意するステップと、
前記第3キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
パケットが書き込まれたアドレスを書き込み期間とともに、そのパケットの特性に対応する第4キューに加えるステップと、
第4キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第1書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第4キューから除去するステップと、
を備えたパケット破棄方法。(8)
第1実施形態に係るパケット転送装置の概略構成を示すブロック図である。 パケットバッファ管理部の構成をパケットバッファと関連付けて示すブロック図である。 空きポインタキューの構成をパケットバッファと関連付けて説明するための図である。 パケットキューの構成をパケットバッファと関連付けて説明するための図である。 書き込み管理テーブルに記録されるデータの内容を示す図である。 遅延閾値テーブルに格納されるデータの内容を示す図である。 パケット書き込み処理におけるパケットバッファ管理部の動作を示すフローチャートである。 パケット書き込み前後のパケットキューおよび空きポインタキューの一例について説明するための図である。 パケット書き込み前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。 パケット読み出し処理におけるパケットバッファ管理部の動作を示すフローチャートである。 パケット読み出し処理におけるパケットバッファ管理部の動作を示すフローチャートである。 実際にパケットを読み出す場合において、パケット読み出し前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。 パケットを破棄する場合において、パケットの破棄前後の空きポインタキューおよびパケットキューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。 パケットバッファ管理部の全体処理に伴う、時系列のパケットキューの変化一例を示す図である。 第2実施形態に係るパケット転送装置における空きポインタキューの構成をパケットバッファと関連付けて説明するための図である。 第2実施形態に係るパケット転送装置におけるパケットキューの構成をパケットバッファと関連付けて説明するための図である。 パケットキューに対する時系列の処理を示す図である。 優先度テーブルを含むパケットバッファ管理部の構成を示すブロック図である。
符号の説明
2…多重化部
3…出力ポート設定部
4…出力ポートテーブル
5…パケットバッファ管理部
10…書き込み制御部
11…カウンタ
20…読み出し制御部
21…カウンタ
25…スケジューラ
22…遅延閾値テーブル
23…優先度テーブル
31,32…ポインタ格納部
40…タイマ
6…パケットバッファ
7…スイッチング部

Claims (8)

  1. 転送対象のパケットを一時的に格納するためのパケットバッファと、
    所定の単位期間毎の時刻を計測するタイマと、
    前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第1キューであって、各第1キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第1キューと、
    パケットの特性に応じて設けられる複数の第2キューであって、各第2キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を管理する、複数の第2キューと、
    書き込み対象のアドレス群を前記単位期間毎に切り替えることで各アドレス群と書き込み期間とを対応付け、書き込み対象のアドレス群に対し、そのアドレス群に対応する第1キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを当該パケットの特性に対応する第2キューに加える第1制御部と、
    第2キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第1書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第2キューから除去する第2制御部と、
    を備えたパケット転送装置。
  2. 前記パケットバッファの各アドレスに対応したポインタアドレスを有するポインタを備え、
    前記第1キューは、対応するアドレス群の中でパケットを書き込み可能なアドレスに対応するポインタによるリンクリストで構成され、
    前記第1制御部は、パケットの書き込み時において、書き込み期間に応じた第1キューのリンクリスト上のポインタに対応する前記パケットバッファのアドレスにパケットを書き込むとともに、そのポインタを第1キューのリンクリストから外し、かつ、そのポインタによって前記第2キューをポインタによるリンクリストとして形成し、
    前記第2制御部は、第2キューのスタートポインタに基づきパケットを破棄することを決定したときには、当該スタートポインタと同一の書き込み期間内に前記第2キューに連結されたすべてのポインタを当該第2キューから外し、前記第1キューへ連結する、
    請求項1に記載のパケット転送装置。
  3. ある期間内に前記パケットバッファに書き込まれたパケットの数をカウントする第1カウンタと、
    当該期間内に前記パケットバッファに書き込まれたパケットのうち、前記パケットバッファから読み出されたパケットの数をカウントする第2カウンタと、
    をさらに備え、
    前記第1カウンタのカウント値から前記第2カウンタのカウント値を減算することで、当該期間における破棄パケット数を算出する、
    請求項1または2に記載のパケット転送装置。
  4. パケットの特性に基づいて、前記複数の第2キューの各々に対する優先度が予め設定されており、
    ある期間におけるパケットの破棄の決定が2以上の第2キューに基づいて行われたときには、その期間の当該2以上の第2キューに対する処理は、前記優先度の順に従って行われる、
    請求項1または2に記載のパケット転送装置。
  5. 前記第1制御部および前記第2制御部の前記複数の第2キューに対する処理は、単位期間内において時分割で行われる、
    請求項1または2に記載のパケット転送装置。
  6. 転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
    前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第1キューであって、各第1キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第1キューを用意するステップと、
    パケットの特性に応じた複数の第2キューを用意するステップと、
    書き込み対象のアドレス群を前記単位期間毎に切り替え、書き込み対象のアドレス群に対し、そのアドレス群に対応する第1キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
    パケットが書き込まれたアドレスを、そのパケットの特性に対応する第2キューに加えるステップと、
    前記第2キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第1書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
    前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第2キューから除去するステップと、
    を備えたパケット破棄方法。
  7. 転送対象のパケットを一時的に格納するためのパケットバッファと、
    所定の単位期間毎の時刻を計測するタイマと、
    前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第3キューと、
    パケットの特性に応じて設けられる複数の第4キューであって、各第4キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を、キュー内の各アドレスに対する書き込み期間とともに管理する、複数の第4キューと、
    前記第3キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを書き込み期間とともに当該パケットの特性に対応する第4キューに加える第3制御部と、
    第4キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第1書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第4キューから除去する第4制御部と、
    を備えたパケット転送装置。
  8. 転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
    前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第3キューを用意するステップと、
    パケットの特性に応じた複数の第4キューを用意するステップと、
    前記第3キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
    パケットが書き込まれたアドレスを書き込み期間とともに、そのパケットの特性に対応する第4キューに加えるステップと、
    第4キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第1書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
    前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第1書き込み期間内に書き込まれたすべてのアドレスを前記第4キューから除去するステップと、
    を備えたパケット破棄方法。
JP2008105684A 2008-04-15 2008-04-15 パケット転送装置およびパケット破棄方法 Active JP4952642B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008105684A JP4952642B2 (ja) 2008-04-15 2008-04-15 パケット転送装置およびパケット破棄方法
US12/361,655 US8306045B2 (en) 2008-04-15 2009-01-29 Packet forwarding apparatus and method for discarding packets
GB0901569A GB2459168B (en) 2008-04-15 2009-02-02 Packet forwarding apparatus and method for discarding packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008105684A JP4952642B2 (ja) 2008-04-15 2008-04-15 パケット転送装置およびパケット破棄方法

Publications (2)

Publication Number Publication Date
JP2009260535A JP2009260535A (ja) 2009-11-05
JP4952642B2 true JP4952642B2 (ja) 2012-06-13

Family

ID=40469358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008105684A Active JP4952642B2 (ja) 2008-04-15 2008-04-15 パケット転送装置およびパケット破棄方法

Country Status (3)

Country Link
US (1) US8306045B2 (ja)
JP (1) JP4952642B2 (ja)
GB (1) GB2459168B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730238B1 (en) * 2005-10-07 2010-06-01 Agere System Inc. Buffer management method and system with two thresholds
CN102449094B (zh) * 2009-04-03 2014-10-22 亚什兰许可和知识产权有限公司 紫外辐射可固化压敏丙烯酸类粘合剂
US8897132B2 (en) * 2010-03-31 2014-11-25 Blue Coat Systems, Inc. Enhanced random early discard for networked devices
JP6254824B2 (ja) * 2013-11-06 2017-12-27 関西電力株式会社 通信装置、データ送信方法、及び、データ送信プログラム
US10484311B2 (en) * 2015-03-31 2019-11-19 Cavium, Llc Method and apparatus for using multiple linked memory lists
CN107615718B (zh) 2015-05-25 2020-06-16 华为技术有限公司 报文处理方法及装置
DE102016202331A1 (de) * 2016-02-16 2017-08-17 Siemens Aktiengesellschaft Netzknoteneinrichtung und Verfahren zur Vermittlung von Daten
JP7041339B2 (ja) * 2017-09-20 2022-03-24 富士通株式会社 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US10659374B2 (en) * 2017-09-29 2020-05-19 Electronics And Telecommunications Research Institute Method and apparatus for controlling frame transmission
US10819647B2 (en) * 2017-12-06 2020-10-27 Marvell Israel (M.I.S.L) Ltd. Network device having reduced latency

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05207063A (ja) 1991-12-04 1993-08-13 Nec Corp 音声パケット遅延制御方式
US6247058B1 (en) 1998-03-30 2001-06-12 Hewlett-Packard Company Method and apparatus for processing network packets using time stamps
US6570876B1 (en) * 1998-04-01 2003-05-27 Hitachi, Ltd. Packet switch and switching method for switching variable length packets
US6788682B1 (en) * 2000-08-02 2004-09-07 3Com Corporation Mapping of packets between links of trunk groups using Mux/Demux devices
JP4110733B2 (ja) * 2000-11-24 2008-07-02 沖電気工業株式会社 音声パケット通信の品質評価システム
JP2003283579A (ja) * 2002-03-26 2003-10-03 Matsushita Electric Ind Co Ltd パケット記憶回路及びパケット記憶装置
EP1532748B1 (en) * 2002-08-21 2010-10-13 Nxp B.V. Delay line for multiple propagation paths reception
US6754744B2 (en) * 2002-09-10 2004-06-22 Broadcom Corporation Balanced linked lists for high performance data buffers in a network device
JP2006174233A (ja) * 2004-12-17 2006-06-29 Nippon Telegr & Teleph Corp <Ntt> パケット処理装置
US7533109B2 (en) 2005-04-26 2009-05-12 Hewlett-Packard Development Company, L.P. Item queue management
KR100881925B1 (ko) 2006-01-16 2009-02-04 삼성전자주식회사 이동통신 기지국 시스템에서 하향 음성 패킷망 패킷스케줄링 장치 및 방법
JP4614909B2 (ja) * 2006-05-08 2011-01-19 三菱電機株式会社 パケットバッファ装置
US20100238801A1 (en) 2006-07-31 2010-09-23 Smith Donald L Method and system for stale data detection based quality of service
US7710953B2 (en) * 2007-03-30 2010-05-04 Alcatel-Lucent Usa Inc. Method and apparatus for operating fast switches using slow schedulers

Also Published As

Publication number Publication date
US20090257441A1 (en) 2009-10-15
GB0901569D0 (en) 2009-03-11
JP2009260535A (ja) 2009-11-05
GB2459168A (en) 2009-10-21
GB2459168B (en) 2012-07-18
US8306045B2 (en) 2012-11-06

Similar Documents

Publication Publication Date Title
JP4952642B2 (ja) パケット転送装置およびパケット破棄方法
US6965566B2 (en) Packet flow control apparatus and a method for controlling the same
US7016366B2 (en) Packet switch that converts variable length packets to fixed length packets and uses fewer QOS categories in the input queues that in the outout queues
US7120113B1 (en) Systems and methods for limiting low priority traffic from blocking high priority traffic
US8325749B2 (en) Methods and apparatus for transmission of groups of cells via a switch fabric
US20130070584A1 (en) Network impairment unit for concurrent delay and packet queue impairments
EP2306322A1 (en) Method for processing data packets in flow-aware network nodes
JP6036310B2 (ja) パケット交換装置、伝送装置、及びパケットスケジューリング方法
JP5711257B2 (ja) タイムスタンプの記録と中央制御装置を用いた多数のアダプタによるデータフレームの分散処理
JP5749732B2 (ja) キューの充填レベルの更新を制御することにより帯域幅を節約しながらデータを受信し記憶するアセンブリおよび方法
US20010040896A1 (en) Method and device for communicating between a first and a second network
CN113454957B (zh) 一种存储器的管理方法及装置
JP5087595B2 (ja) エッジノード、ウィンドウサイズ制御方法およびプログラム
JP2002033749A (ja) バッファ装置およびスイッチング装置
US8073999B2 (en) Data input-output control apparatus
US7782780B1 (en) System and method for arbitration of multicast data packets using holds
US8289989B1 (en) System and method for arbitration using availability signals
Meitinger et al. A hardware packet re-sequencer unit for network processors
US9922000B2 (en) Packet buffer with dynamic bypass
CN105099932B (zh) 基于直通转发技术的调度方法及装置
CN113347112B (zh) 一种基于多级缓存的数据包转发方法及装置
JPH11234333A (ja) ゲートウェイ装置
JPH0983525A (ja) セル出力帯域規制装置
JPH1117702A (ja) パケットデータメモリ装置
JP2012155440A (ja) 相互結合網制御システム、相互結合網制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120126

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4952642

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3