JP5498889B2 - パケット中継装置および輻輳制御方法 - Google Patents

パケット中継装置および輻輳制御方法 Download PDF

Info

Publication number
JP5498889B2
JP5498889B2 JP2010176853A JP2010176853A JP5498889B2 JP 5498889 B2 JP5498889 B2 JP 5498889B2 JP 2010176853 A JP2010176853 A JP 2010176853A JP 2010176853 A JP2010176853 A JP 2010176853A JP 5498889 B2 JP5498889 B2 JP 5498889B2
Authority
JP
Japan
Prior art keywords
congestion
queue
packet
congestion notification
queue length
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
JP2010176853A
Other languages
English (en)
Other versions
JP2012039330A (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 JP2010176853A priority Critical patent/JP5498889B2/ja
Priority to US13/190,908 priority patent/US8593955B2/en
Publication of JP2012039330A publication Critical patent/JP2012039330A/ja
Application granted granted Critical
Publication of JP5498889B2 publication Critical patent/JP5498889B2/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/11Identifying congestion

Description

本発明は、パケット中継装置において輻輳制御を行う技術に関する。
ネットワーク上でパケットやフレームの中継を行う中継装置として、例えば、ルータやスイッチなどが知られている。このような中継装置に対して、許容能力を大きく超える通信要求があると、中継装置の内部で通信が滞ることがある。このような現象を、一般的に、「輻輳」という。輻輳は、ネットワークの規模にかかわらず、LANやWAN、インターネット等において発生し得る現象である。
こうした輻輳を抑制する技術として、例えば、特許文献1に記載された技術がある。この技術では、FIFOメモリ全体にバッファリングされているパケット数を監視するためのFIFO長カウンタの値が所定の閾値を超えたか否かを判断する。そして、このFIFO長カウンタの値が閾値を超えた場合には、コネクション毎に個別に用意されたパケット数を監視するための閾値を一律に低下させる制御を行っている。このような制御によれば、低下した閾値よりもバッファリングされたパケット数の多いコネクションに接続されている送信元端末には、輻輳が発生した旨の通知がなされる。送信元端末は、この通知を受信すると、パケットの送信量を低下させることができる。そのため、そのコネクションから受信されるパケットがFIFOメモリから減っていき、輻輳の発生を抑制することが可能になる。
しかし特許文献1に開示された技術では、コネクション毎に用意された閾値を一律に低下させているため、低下した閾値よりもバッファリングされているパケット数の多いコネクションに接続している送信元端末のすべてに、輻輳が発生した旨の通知がなされる。そうすると、それら全ての送信元端末がパケットの送信量を同時に低下させるため、ネットワーク全体のスループットが急激に低下する場合がある。このような問題は、パケットに限らずネットワーク等の通信回線上を流れるデータの中継を行う装置に共通して生じ得る問題である。
特開平10−173661号公報
上述の問題を踏まえ、本発明が解決しようとする課題は、ネットワーク全体のスループットが低下することを抑制可能な輻輳制御技術を提供することである。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
[適用例1]パケット中継装置であって、パケットが一時的に格納される複数のキューを含むバッファメモリと、前記各キューのキュー長をそれぞれ示す複数の第1のキュー長と、前記複数の第1のキュー長の合計に応じた値を示す第2のキュー長と、がそれぞれ記憶される記憶部と、パケットを受信する受信部と、前記パケットが属するキューを前記複数のキューの中から判別するキュー判別部と、前記バッファメモリ内の前記判別されたキューに対して前記パケットを一時的に格納し、前記第1のキュー長と前記第2のキュー長とを更新するキュー管理部と、前記判別されたキューに対応する前記第1のキュー長と、前記第2のキュー長とに応じて、前記パケットの送信元に対して輻輳通知を行うか否かを判定する輻輳通知判定部と、前記輻輳通知を前記送信元に対して送信する輻輳通知送信部と、を備えるパケット中継装置。
このような構成であれば、受信したパケットの属するキューの第1のキュー長と、複数の第1のキュー長の合計に応じた値を示す第2のキュー長とに基づいて、そのパケットの送信元に輻輳通知を行うか否かを判断するため、複数のキューのそれぞれについて個別に輻輳制御を行うことが可能になる。よって、輻輳制御に伴ってネットワーク全体のスループットが低下してしまうことを抑制することができる。
[適用例2]適用例1に記載のパケット中継装置であって、前記輻輳通知判定部は、前記第1のキュー長が長いほど高い確率となり、かつ、前記第2のキュー長が長いほど高い確率となる輻輳通知確率を所定の演算式に基づいて求め、該輻輳通知確率に基づき、前記判定を行う、パケット中継装置。
このような構成であれば、第1のキュー長が長いほどパケットの送信元に輻輳通知を行う確率を高くすることができ、また、第2のキュー長が長いほどパケットの送信元に輻輳通知を行う確率を高くすることができる。そのため、バッファメモリ内の全体のキュー長(第2のキュー長)と、各キューの個別のキュー長(第1のキュー長)とに応じて輻輳通知を行う確率を求めることができる。
[適用例3]適用例2に記載のパケット中継装置であって、前記輻輳通知判定部は、前記第2のキュー長が予め設定された第1の閾値以下の場合には前記演算式に拘わらず前記輻輳通知確率を0%とし、前記第2のキュー長が予め設定された第2の閾値以上の場合には前記演算式に拘わらず前記輻輳通知確率を100%とする、パケット中継装置。
このような構成であれば、明らかに輻輳通知が必要になる状況や明らかに輻輳通知が不要な状況においてまで輻輳通知確率を演算する必要がないため、処理の簡略化を図ることができる。
[適用例4]適用例2または適用例3に記載のパケット中継装置であって、前記演算式または該演算式に含まれる定数を設定する設定部を備える、パケット中継装置。
このような構成であれば、パケット中継装置が置かれるネットワークの状況や使用状態に応じて柔軟な輻輳制御を行うことが可能になる。
[適用例5]適用例1に記載のパケット中継装置であって、前記輻輳通知判定部は、前記第1のキュー長に応じて、前記受信したパケットをクラス分けし、該クラス毎に予め設定された閾値と前記第2のキュー長とに基づいて、前記判定を行う、パケット中継装置。
このような構成であれば、第1のキュー長に応じて予め設定された閾値と第2のキュー長とを比較するだけで輻輳通知を行うか否かを判定することができるので、パケット中継装置の処理負担を軽減しつつ、複数のキューのそれぞれについて個別に輻輳制御を行うことができる。
[適用例6]適用例5に記載のパケット中継装置であって、前記クラス毎の閾値を設定する設定部を備える、パケット中継装置。
このような構成であれば、パケット中継装置が置かれるネットワークの状況や使用状態に応じて柔軟な輻輳制御を行うことが可能になる。
[適用例7]適用例1から適用例6までのいずれか一項に記載のパケット中継装置であって、前記記憶部は、前記第1のキュー長および前記第2のキュー長を、前記パケットの数またはデータ量によって記憶している、パケット中継装置。
このような構成であれば、パケット中継装置が置かれるネットワークの状況や使用状態に応じて第1のキュー長および第2のキュー長の単位を選択することができる。
[適用例8]適用例1から適用例7までのいずれか一項に記載のパケット中継装置であって、前記輻輳通知判定部は、更に、前記第2のキュー長に応じて輻輳の程度を判定し、前記輻輳通知送信部は、前記輻輳通知に前記輻輳の程度を含ませる、パケット中継装置。
このような構成であれば、輻輳通知を受信したパケットの送信元に対して輻輳制御を行うための有益な情報を提供することができる。
[適用例9]適用例8に記載のパケット中継装置であって、前記輻輳の程度は、前記送信元において、前記パケットの送信量を制限するために用いられる、パケット中継装置。
このような構成であれば、パケットの送信元は、パケット中継装置から受信した輻輳通知を利用して容易に輻輳制御を行うことが可能になる。
[適用例10]適用例1から適用例9までのいずれか一項に記載のパケット中継装置であって、前記バッファメモリの全容量は、前記複数のキューのキュー長の合計よりも少ない、パケット中継装置。
このような構成であれば、統計多重効果に基づいて、少ない容量のバッファメモリによって、効率的にパケットのキューイングを行うことができる。
本発明は、上述したパケット中継装置としての構成のほか、パケット中継装置による輻輳制御方法や、コンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやCD−ROM、DVD−ROM、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
パケット中継装置の概略構成を示す説明図である。 輻輳通知処理部の詳細な構成を示す説明図である。 多段キュー構造の概念を示す説明図である。 輻輳制御処理のフローチャートである。 第1輻輳制御テーブルの一例を示す説明図である。 第2輻輳制御テーブルの一例を示す説明図である。 第2輻輳判定処理のフローチャートである。 輻輳通知確率の算出方法の概念をグラフによって示す説明図である。 第2実施例における多段キュー構造の概念を示す説明図である。 第2実施例における第2輻輳制御テーブルの一例を示す説明図である。 第2実施例における第2輻輳判定処理のフローチャートである。 第1輻輳制御テーブルと第2輻輳制御テーブルとが異なるパケット中継装置に備えられている例を示す説明図である。 輻輳通知判定部の動作に関する設定を行うコマンドを示す説明図である。 第1輻輳制御テーブルおよび第2輻輳制御テーブルの設定を行うためのコマンドを示す説明図である。
以下、本発明の実施の形態を実施例に基づき次の順序で説明する。
A.第1実施例:
A−1.装置構成:
A−2.輻輳制御処理:
A−3.第1輻輳判定処理:
A−4.第2輻輳判定処理:
B.第2実施例:
C.第3実施例:
D.第4実施例:
E.変形例:
A.第1実施例:
A−1.装置構成:
図1は、本発明の第1実施例としてのパケット中継装置100の概略構成を示す説明図である。本実施例のパケット中継装置100は、ネットワーク回線30を介して各端末10から受信したパケットを一時的に蓄積するバッファメモリ122を備えている。そして、パケット中継装置100は、バッファメモリ122内に蓄積されたパケットを、パケットフロー毎に用意されたキューと、これらのキューを統括的に管理するキューとを含む複数段のキューによって段階的に管理する。つまり、本実施例のパケット中継装置100は、共有バッファ方式の多段キュー構造を採用している。共有バッファ方式とは、統計多重効果に基づき、各キューの容量の総和よりも少ない容量のバッファメモリ122を、全てのキューで共有する方式である。このような共有バッファ方式によれば、各キューの容量の総和分の容量のバッファメモリ122を用意しなくてもよいため、バッファメモリの容量を小さくすることができ、部品コストの削減や消費電力の低減を実現することが可能になる。以下では、パケットフロー毎に用意されたキューのことを、「N段目のキュー」として説明し、これらのキューを統括的に管理するキューを、「(N+1)段目のキュー」として説明する。
パケット中継装置100は、制御ユニット110と、メモリユニット140と、インタフェース部150と、接続端子160と、を備えている。制御ユニット110は、CPUやRAM、ROMを備えるコンピュータとして構成されている。制御ユニット110のCPUは、ROMに記憶された所定の制御プログラムをRAMにロードして実行することで、輻輳通知判定部120および輻輳通知処理部130として機能する。なお、輻輳通知判定部120や輻輳通知処理部130は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)によって実現されることとしてもよい。
メモリユニット140は、パケットが格納されるバッファメモリ122と、N段目のキューについて輻輳制御を行うための第1輻輳制御テーブル124と、(N+1)段目のキューについて輻輳制御を行うための第2輻輳制御テーブル126と、を有している。これらのテーブルに記録される制御情報の詳細については後述する。
インタフェース部150は、複数の物理ポート151を備えている。各物理ポート151には、ネットワーク回線30を介して端末10や他のパケット中継装置が接続される。
輻輳通知判定部120は、インタフェース部150を通じてパケットを受信し、そのパケットのヘッダ情報に基づいて、そのパケットのフローの判別をする。そして、判別されたフローに対応するバッファメモリ122内のキュー(N段目のキュー)にパケットを格納する。このとき輻輳通知判定部120は、第1輻輳制御テーブル124および第2輻輳制御テーブル126の更新も行う。具体的な更新方法については後述する。輻輳通知判定部120は、また、バッファメモリ122内の各キュー(N段目のキュー)から所定のスケジューリング方式に基づいて送出されたパケットを、インタフェース部150を通じてそのパケットの送信先に転送する機能を有する。
輻輳通知判定部120は、第1輻輳制御テーブル124および第2輻輳制御テーブル126に記録された制御情報に基づいて、受信したパケットの送信元に対して輻輳通知を行うか否かを判断する。輻輳通知とは、輻輳の発生を抑制する制御を行うようパケットの送信元に通知を行うことをいう。輻輳通知判定部120は、輻輳通知を行うと判断すると、そのパケットの送信元のアドレスと輻輳状態(輻輳の程度)を表す情報とを含む輻輳情報を、輻輳通知処理部130に送信する。なお、輻輳通知判定部120は、本願の「キュー判別部」、「キュー管理部」、および、「輻輳通知判定部」に相当する。
図2は、輻輳通知処理部130の詳細な構成を示す説明図である。輻輳通知処理部130は、輻輳通知パケット生成部132と、輻輳通知パケット送信部134と、を備えている。輻輳通知パケット生成部132は、輻輳通知判定部120から受信した輻輳情報に基づき、輻輳通知を行うためのパケット(輻輳通知パケット)を生成する。この輻輳通知パケットには、パケットの送信先のアドレスと輻輳状態を示す情報とが含まれる。輻輳通知パケット送信部134は、インタフェース部150を通じて、この輻輳通知パケットを該当するアドレスに送信する。輻輳通知パケットを受信したパケットの送信元は、通知された輻輳の程度に応じて、パケットの送信量を制限する。
接続端子160(図1)には、所定のケーブルを介して管理装置20が接続される。管理装置20には、ディスプレイ等の表示装置や、キーボード、マウス等の入力装置が接続されている。パケット中継装置100を管理するユーザ(以下、「管理ユーザ」という)は、この管理装置20を用いて、当該パケット中継装置100に対する種々の設定を行なうことができる。設定内容の具体例については後述する。接続端子160と管理装置20とを接続するインタフェースとしては、様々な規格のものを適用可能である。例えば、シリアルインタフェースや、LANインタフェース、USBインタフェースなどを適用することができる。
図3は、本実施例における多段キュー構造の概念を示す説明図である。この図3には、N段目に1000個のキューが存在している例を示している。本実施例では、N段目の複数のキューは、それぞれ、パケットのフローに個別に対応している。ただし、N段目のキューは、パケットのフローに限らず、パケットの送信元のユーザや物理ポート151に個別に対応させることも可能である。具体的には、例えば、あるユーザAからのパケットは必ずN段目のキュー#1に格納され、またあるユーザZからのパケットは必ずN段目のキュー#1000に格納されるといったキューイングが可能である。
本実施例では、統計多重効果を利用した共有バッファ方式の多段キュー構造を採用している。そのため、N段目のキューのそれぞれに格納されるパケット数の合計を、(N+1)段目のキューによって管理する。具体的には、(N+1)段目のキューの現在のキュー長QLEN(N+1)は、N段目の複数のキューの現在のキュー長QLEN(N)の合計値となる。図3には、N段目のキューにおいて輻輳状態を判定するための輻輳通知閾値CN_TH(N)と、(N+1)段目のキューにおいて輻輳状態を判定するための最大輻輳通知閾値MAX_CN_TH(N+1)、および、最小輻輳通知閾値MIN_CN_TH(N+1)とを示している。これらの閾値の用法については後述する。
A−2.輻輳制御処理:
図4は、パケット中継装置100が繰り返し実行する輻輳制御処理のフローチャートである。この輻輳制御処理は、パケット中継装置100がパケットのキューイングや中継を行うための処理と同時並列的に実行される。パケットのキューイングや中継を行うための処理は周知であるため本実施例では説明を省略する。
この輻輳制御処理の実行が開始されると、輻輳通知判定部120は、インタフェース部104を通じてパケットを受信する(ステップS100)。そして、輻輳通知判定部120は、受信したパケットのヘッダ情報を解析してフローを判別し、そのパケットがN段目のキューのうちどのキューに属するかを判定する(ステップS200)。
輻輳通知判定部120は、パケットの属するキュー(N段目のキュー)を判定すると、メモリユニット140内の第1輻輳制御テーブル124に記録されている制御情報に基づき、そのキュー(N段目のキュー)に輻輳が発生しているか否かを判定する(ステップS300)。以下、この判定処理を、第1輻輳判定処理という。この第1輻輳判定処理についての詳細は後述する。
第1輻輳判定処理によってN段目のキューに輻輳が発生していると判定された場合には(ステップS400:Yes)、輻輳通知判定部120は、第1輻輳判定処理によって判定された輻輳の程度と、ステップS100で受信したパケットの送信元のアドレスを示す情報とを含む輻輳情報を輻輳通知処理部130に通知する。輻輳通知処理部130は、この通知を受けると、通知された輻輳情報に基づき輻輳通知パケットを生成し(ステップS700)、その輻輳通知パケットをステップS100で受信したパケットの送信元に送信する(ステップS800)。
上記ステップS300における第1輻輳判定処理によって、N段目のキューに輻輳が発生していないと判定された場合には(ステップS400:No)、輻輳通知判定部120は、更に、第2輻輳制御テーブル126に記録されている制御情報に基づき、(N+1)段目のキューに輻輳が発生しているか否かを判定する処理(以下、「第2輻輳判定処理」という)を実行する(ステップS500)。この、第2輻輳判定処理についての詳細は後述する。
第2輻輳判定処理によって、(N+1)段目のキューに輻輳が発生していると判定された場合には(ステップS600:Yes)、輻輳通知判定部120は、第2輻輳判定処理によって判定された輻輳の程度と、ステップS100で受信したパケットの送信元のアドレスを示す情報とを含む輻輳情報を輻輳通知処理部130に通知する。輻輳通知処理部130は、この通知を受けると、通知された輻輳情報に基づき輻輳通知パケットを生成し(ステップS700)、その輻輳通知パケットをステップS100で受信したパケットの送信元に送信する(ステップS800)。
一方、第2輻輳判定処理によって、(N+1)段目のキューに輻輳が発生していないと判定された場合には(ステップS600:No)、ステップS700およびステップS800の処理をスキップして当該輻輳制御処理を終了する。
A−3.第1輻輳判定処理:
続いて、上述した第1輻輳判定処理の具体的な処理内容について説明する。
図5は、第1輻輳判定処理で用いる第1輻輳制御テーブル124の一例を示す説明図である。第1輻輳制御テーブル124には、個別のキュー番号で表されるN段目のキュー毎に、そのキューに格納可能な最大パケット数を表す最大格納閾値MAX_TH(N)と、輻輳通知を行うか否かを判定するための輻輳通知閾値CN_TH(N)と、当該キューに現在格納されているパケット数を表すキュー長QLEN(N)とが、制御情報として記録される。
輻輳通知判定部120は、第1輻輳制御テーブル124を次のように更新する。すなわち、輻輳通知判定部120は、受信したパケットをバッファメモリ122内の該当するキューに格納すると同時に、第1輻輳制御テーブル124の該当するキュー番号のキュー長QLEN(N)を1つ増加させる。後にバッファメモリ122内のキューからパケットが送出された場合には、輻輳通知判定部120は、第1輻輳制御テーブル124の該当するキュー番号のキュー長QLEN(N)を1つ減少させる。
輻輳通知判定部120は、上述した第1輻輳判定処理において、受信したパケットに対応するキューのキュー長QLEN(N)が、そのキューに設定された輻輳通知閾値CN_TH(N)未満の場合には、当該キューに輻輳は発生していないと判定する。一方、受信したパケットに対応するキューのキュー長QLEN(N)が、輻輳通知閾値CN_TH(N)以上の場合には、輻輳通知判定部120は、当該キューに輻輳が発生していると判定する。
例えば、図5に示した例であれば、キュー番号#4では、キュー長QLEN(N)が「90」であり、その輻輳通知閾値CN_TH(N)の「80」を超えているため、輻輳通知判定部120は、当該キューに輻輳が発生していると判定する。一方、他のキューは、キュー長QLEN(N)が全て、各輻輳通知閾値CN_TH(N)未満であるため、輻輳通知判定部120は、他のキューについては、輻輳は発生していないと判定する。輻輳通知判定部120は、輻輳が発生していると判定した場合には、輻輳通知閾値CN_TH(N)に対するキュー長QLEN(N)の割合を求め、この割合に応じて、輻輳の程度を判定する。輻輳の程度は、所定のテーブルに基づき、例えば、「軽輻輳」、「重輻輳」、のように判定することができる。
A−4.第2輻輳判定処理:
次に、上述した第2輻輳判定処理の具体的な処理内容について説明する。
図6は、第2輻輳判定処理で用いる第2輻輳制御テーブル126の一例を示す説明図である。第2輻輳制御テーブル126には、(N+1)段目のキュー番号(本実施例では1つ)と、(N+1)段目のキュー(つまり、バッファメモリ122全体)に格納可能な最大パケット数を表す最大格納閾値MAX_TH(N+1)と、キューに送信されてきたすべてのパケットの送信元に対して輻輳通知を行うことになるキュー長を示す最大輻輳通知閾値MAX_CN_TH(N+1)と、輻輳通知が行われないキュー長の上限示す最小輻輳通知閾値MIN_CN_TH(N+1)と、後述の平均キュー長QAVEが最大輻輳通知閾値MAX_CN_TH(N+1)に達する際に輻輳通知が行われる確率の基準となる基準輻輳通知確率STD_CPと、N段目の複数のキューに格納されているパケット数の合計を示すキュー長QLEN(N+1)と、時系列的に変動するキュー長QLEN(N+1)の平均的な値を示す平均キュー長QAVEと、が制御情報として記録される。図6には、最大格納閾値MAX_TH(N+1)が1000、最大輻輳通知閾値MAX_CN_TH(N+1)が800、最小輻輳通知閾値MIN_CN_TH(N+1)が500、基準輻輳通知確率STD_CPが50%、キュー長QLEN(N+1)が700、平均キュー長QAVEが700、と記録されている例を示している。なお、本実施例では、統計多重効果を利用した共有バッファ方式を採用しているため、(N+1)段目のキューの最大格納閾値MAX_TH(N+1)は、図5に示したN段目キューの最大格納閾値MAX_TH(N)の合計値よりも少ない値となる。
輻輳通知判定部120は、第2輻輳制御テーブル126を次のように更新する。すなわち、輻輳通知判定部120は、受信したパケットをバッファメモリ122内の該当するN段目のキューに格納すると同時に、第2輻輳制御テーブル126内のキュー長QLEN(N+1)を1つ増加させ、更に、後述の方法により、平均キュー長QAVEの更新を行う。後にバッファメモリ122内からパケットが送出された場合には、輻輳通知判定部120は、第2輻輳制御テーブル126内のキュー長QLEN(N+1)を1つ減少させるとともに、平均キュー長QAVEの更新を行う。
図7は、第2輻輳判定処理の具体的な処理内容を示すフローチャートである。この第2輻輳判定処理が開始されると、パケットの受信に伴い第2輻輳制御テーブル126のキュー長QLEN(N+1)が更新されているため、輻輳通知判定部120は、まず、第2輻輳制御テーブル126の平均キュー長QAVEを更新する(ステップS510)。更新後の平均キュー長QAVEnewは、現在のキュー長QLEN(N+1)と更新前の平均キュー長QAVEoldとに基づき、以下の式(1)によって求めることができる。
QAVEnew = {QLEN(N+1) * 1/2^S} + {QAVEold * (1-1/2^S)} ・・・(1)
(ただし、Sは0よりも大きい重み係数。)
上記式によれば、本実施例では、重み係数Sが大きいほど、更新後の平均キュー長QAVEnewに対する現在のキュー長QLEN(N+1)の影響が小さくなる。すなわち、重み係数Sを大きくすれば、現在のキュー長QLEN(N+1)が短期間のうちに大きく変動したとしても、平均キュー長QAVEの変動を小さくすることができる。
続いて、輻輳通知判定部120は、受信したパケットの属するN段目のキューのキュー長QLEN(N)と、輻輳通知閾値CN_TH(N)とを、第1輻輳制御テーブル124から取得する(ステップS520)。第1輻輳制御テーブル124からキュー長QLEN(N)と輻輳通知閾値CN_TH(N)とを取得すると、輻輳通知判定部120は、取得したキュー長QLEN(N)および輻輳通知閾値CN_TH(N)と、第2輻輳制御テーブル126に記録された制御情報とに基づいて、輻輳通知確率CPの算出を行う(ステップS530)。この算出処理によって、輻輳通知確率CPは、受信したパケットの属するキュー(N段目のキュー)毎に異なった値を採る。
図8は、輻輳通知確率CPの算出方法の概念をグラフによって示す説明図である。輻輳通知判定部120は、まず、輻輳通知確率CPを算出するにあたり、ステップS510で算出した平均キュー長QAVEと、第2輻輳制御テーブル126に記録された最大輻輳通知閾値MAX_CN_TH(N+1)と、最小輻輳通知閾値MIN_CN_TH(N+1)と、に応じて演算式の場合分けを行う。具体的には、以下の(A)、(B)、(C)のように場合分けを行う。そして、各場合に応じて、以下に示す式(2)〜(4)に基づき、輻輳通知確率CPを算出する。図8には、こうして算出される輻輳通知確率CPのとり得る値の範囲を実線およびハッチングで示している。
(A)QAVE≧MAX_CN_TH(N+1)の場合:
CP=100% ・・・(2)
(B)QAVE≦MIN_CN_TH(N+1)-βの場合:
CP=0% ・・・(3)
(C)MIN_CN_TH(N+1)-β<QAVE<MAX_CN_TH(N+1)の場合:
CP=(STD_CP+α)(QAVE-MIN_CN_TH(N+1)+β)/(MAX_CN_TH(N+1)-MIN_CN_TH(N+1)+β) ・・・(4)
(ただし、αは輻輳通知確率重み、βは輻輳通知閾値重み。)
図8に示すように、平均キュー長QAVEが最大輻輳通知閾値MAX_CN_TH(N+1)に一致した場合における輻輳通知確率CPは、輻輳通知確率重みαが正の値の場合には、その絶対値が大きくなるほど、基準輻輳通知確率STD_CPより大きくなる。一方、平均キュー長QAVEが最大輻輳通知閾値MAX_CN_TH(N+1)に一致した場合における輻輳通知確率CPは、輻輳通知確率重みαが負の値の場合には、その絶対値が大きくなるほど、基準輻輳通知確率STD_CPより小さくなる。
また、輻輳通知閾値重みβが正の値の場合には、その絶対値が大きくなるほど、輻輳通知が開始される閾値が、最小輻輳通知閾値MIN_CN_TH(N+1)よりも小さくなる。一方、輻輳通知閾値重みβが負の値の場合には、その絶対値が大きくなるほど、輻輳通知が開始される閾値が、最小輻輳通知閾値MIN_CN_TH(N+1)よりも大きくなる。すなわち、本実施例では、輻輳通知確率重みαおよび輻輳通知閾値重みβに応じて、(N+1)段目のキューが輻輳状態にあると判定される輻輳通知確率CPと平均キュー長QAVEとの関係が変動する。
なお、輻輳通知確率重みαおよび輻輳通知閾値重みβは、受信したパケットに対応するN段目のキューのキュー長QLEN(N)および最大格納閾値MAX_TH(N)に基づいて、以下の式(5)、(6)によって求めることができる。なお、輻輳通知確率重みαおよび輻輳通知閾値重みβの計算方法は、以下に示す式に限定されず、種々の方法を採用することが可能である。
α = αMAX * {QLEN(N)/MAX_TH(N) * 2-1} ・・・(5)
β = βMAX * {QLEN(N)/MAX_TH(N) * 2-1} ・・・(6)
(ここで、αMAX及びβMAXは、所定の定数である。)
上記式(5),(6)によれば、受信したパケットが属するN段目のキューの最大輻輳通知閾値MAX_TH(N)に占めるキュー長QLEN(N)の割合が大きいほど、輻輳通知確率重みαおよび輻輳通知閾値重みβが大きくなる。そのため、受信したパケットが属するN段目のキューの最大輻輳通知閾値MAX_TH(N)に占めるキュー長QLEN(N)の割合が大きいほど、(N+1)段目のキューにおいて輻輳が発生していると判定される確率(輻輳通知確率CP)が高くなる。
なお、式(5)のαMAXの値や式(6)のβMAXの値、および、式(1)の重み係数Sの値は、接続端子160に接続された管理装置20によって任意の値を設定可能とすることができる。こうすることで、輻輳通知確率重みα及び輻輳通知閾値重みβの変動する範囲と、重み係数Sを、管理ユーザが自由に設定・変更することが可能となる。例えば、管理ユーザは、パケット中継装置100に接続されたユーザ数や通信量等に合わせて、輻輳通知重みαおよび輻輳通知閾値重みβの変動する範囲、重み係数Sを適宜調整することができる。また、αMAX、βMAXの値および重み係数Sは、予め用意された複数の値の中から、管理ユーザが選択可能としてもよい。また、管理ユーザは、管理装置20を用いて、第1輻輳制御テーブル124や第2輻輳制御テーブル126に設定されている各値を任意に設定することが可能である。
以上のようにして輻輳通知確率CPの算出を行うと、輻輳通知判定部120は、算出された輻輳通知確率CPに基づいて、(N+1)段目のキュー(換言すれば、バッファメモリ122全体)に輻輳が発生しているか否かを判定する(ステップS540)。具体的には、例えば、図6に示したように、最大格納閾値MAX_TH(N+1)が1000、最大輻輳通知閾値MAX_CN_TH(N+1)が800、最小輻輳通知閾値MIN_CN_TH(N+1)が500、基準輻輳通知確率STD_CPが50%、キュー長QLEN(N+1)が700、平均キュー長QAVEが700であり、定数αMAXが40%、定数βMAXが400、であるとする。そうすると、パケットが属するN段目のキューのキュー長QLEN(N)が最大格納閾値MAX_TH(N)の3/4の場合には、輻輳通知確率重みαは20%、輻輳通知閾値重みβは200と算出される。また、(N+1)段目のキューの平均キュー長QAVEは700であることから、当該パケットの(N+1)段目のキューにおける輻輳通知確率CPは56%と算出される。そのため、上記ステップS540では、56%の確率で輻輳が発生していると判定されることになる。その他、例えば、パケットが属するN段目のキューのキュー長QLEN(N)が、最大格納閾値MAX_TH(N)の1/8の場合には、輻輳通知確率重みαは−30%、輻輳通知閾値重みβは−300と算出される。また、(N+1)段目のキューの平均キュー長QAVEは700であることから、当該パケットの(N+1)段目のキューにおける輻輳通知確率CPは0%となる。そのため、上記ステップS540では、当該キューには輻輳は発生していないと判定される。
以上のようにして、(N+1)段目のキューに輻輳が発生しているか否かを判定すると、続いて、輻輳通知判定部120は、最大輻輳通知閾値MAX_CN_TH(N+1)に対する平均キュー長QAVE(キュー長QLEN(N+1)でもよい)の割合を求め、第1輻輳判定処理と同様に、この割合に応じて輻輳の程度を判定する(ステップS550)。以上で説明した一連の処理により、第2輻輳判定処理は終了し、処理が、図4の輻輳制御処理に戻される。
以上で説明した第1実施例によれば、複数のN段目のキューのうち、バッファメモリ122に格納されているパケット数が多いN段目のキューに対する輻輳通知確率CPが大きくなる一方で、バッファメモリ122に格納されているパケット数が少ないN段目のキューに対する輻輳通知確率CPが小さくなる。つまり、本実施例では、N段目のキュー毎に、そのキュー長に応じて輻輳通知を行う確率が動的に変動することになる。そのため、N段目の特定のキューのパケット数が増大したとしても、そのキューの対する輻輳通知確率CPが個別に大きくなるため、その特定のキューにパケットを送信した送信元に、選択的に、輻輳通知を行うことが可能になる。これにより、後段のキューに基づく輻輳制御において、前段の各キューの状態を反映させた制御が可能となり、輻輳の原因となっている送信元からの通信を的確に制限することができる。この結果、輻輳の原因となっていない送信元に対してまで制限が加わることがないため、ネットワーク全体のスループットが低下することを抑制することが可能になる。つまり、本実施例によれば、特定のキューによる共有バッファの占有を抑制し、他のキューが共有バッファを使用することができずに通信が阻害されることを抑制することができる。また、輻輳通知を受けた送信元は、通知された輻輳の状態に応じて通信量を抑えることができるため、消費電力を抑えることも可能になる。
なお、本実施例では、図4にも示したように、N段目のキューについて第1輻輳判定処理を実行し、(N+1)段目のキューについて第2輻輳判定処理を実行することとした。しかし、第1輻輳判定処理の実行は省略してもよい。この場合であっても、第2の輻輳判定処理を実行するだけで、あたかも全てのキューで個別に段階的な輻輳制御が行われているようにパケット中継装置100は動作する。また、第2輻輳判定処理では、平均キュー長QAVEに替えて、キュー長QLEN(N+1)を輻輳通知確率CPの算出に用いることも可能である。
B.第2実施例:
図9は、第2実施例における多段キュー構造の概念を示す説明図である。上述した第1実施例との相違は、(N+1)段目のキューにおける輻輳通知判定において「輻輳クラス」という概念を用いるという点であり、N段目のキューについて実行する第1輻輳判定処理の処理内容や構成は第1実施例と同じである。
図9に示す「輻輳クラス」は、受信したパケットが属するN段目のキューの状態(具体的には、キュー長QLEN(N))に応じてそのキューに格納されているパケットの優先度を分類するものである。本実施例では、受信したパケットが、高い優先度に分類された場合には、パケットの送信元に輻輳通知をされにくくし、低い優先度に分類された場合には、パケットの送信元に輻輳通知をされやすくする制御を行う。つまり、本実施例では、分類された輻輳クラスに応じて、パケットの送信元への輻輳通知のされやすさが変動することになる。
例えば、図9の場合では、N段目のキュー#1000はキュー長QLEN(N)が比較的短いため、輻輳通知判定部120は、N段目のキュー#1000に属するパケットを、優先度の高い輻輳クラス4に割り当てる。一方、N段目のキュー#1はキュー長QLEN(N)が比較的長いため、輻輳通知判定部120は、N段目のキュー#1に属するパケットを、優先度の低い輻輳クラス2に割り当てる。すなわち、キュー長QLEN(N)の長いN段目のキューに属するパケットは、優先度の低い輻輳クラスに分類されることになり、(N+1)段目のキューにおける第2輻輳判定処理においてキューが輻輳状態にあると判定される可能性が高くなる。これにより、キュー長QLEN(N)の長い特定のキューによってバッファメモリ122が占有されることを抑制することができる。
図10は、第2実施例における第2輻輳制御テーブル126bの一例を示す説明図である。第2実施例における第2輻輳制御テーブル126bには、(N+1)段目のキュー(つまり、バッファメモリ122全体)に格納可能な最大パケット数を表す最大格納閾値MAX_TH(N+1)と、N段目のキューに格納されているパケットの合計を示すキュー長QLEN(N+1)と、が格納されている。また、本実施例では、第2輻輳制御テーブル126bに、輻輳クラス1〜4に対してそれぞれ設定された4つの輻輳通知閾値TH#1〜TH#4が格納されている。図9にも示すように、輻輳通知閾値TH#1〜TH#4は、輻輳クラス1〜4のそれぞれについて異なる値が設定されており、優先度が高い輻輳クラスほど、大きな値に設定されている。
図11は、第2実施例における第2輻輳判定処理のフローチャートである。本実施例において第2輻輳判定処理が開始されると、輻輳通知判定部120は、まず、受信したパケットの属するN段目のキューのキュー長QLEN(N)に応じてそのパケットの輻輳クラス(1〜4)を決定する(ステップS510b)。輻輳クラスは、例えば、そのキューに設定された輻輳通知閾値CN_TH(N)(あるいは、最大格納閾値MAX_TH(N))に対するキュー長QLEN(N)の割合を求め、求めた割合が25%までならクラス1、50%までならクラス2、75%までならクラス3、75%以上ならクラス4などと、その割合に応じて決定することができる。
輻輳クラスを決定すると、輻輳通知判定部120は、決定された輻輳クラスに対応付けられた輻輳通知閾値と、(N+1)段目のキューのキュー長QLEN(N+1)とを第2輻輳制御テーブル126bから取得し(ステップS520b)、これらを比較する(ステップS540b)。この比較の結果、キュー長QLEN(N+1)が輻輳クラスに応じた輻輳通知閾値以上の場合には、輻輳通知判定部120は、当該キューが輻輳状態にあると判定し、輻輳通知を行うと決定する。一方、キュー長QLEN(N+1)が輻輳クラスに応じた輻輳通知閾値未満の場合には、当該キューは輻輳状態にないと判定する。最後に、輻輳通知判定部120は、輻輳通知閾値に対するキュー長QLEN(N+1)の割合を求め、この割合に応じて、輻輳の程度を判定する(ステップS550b)。以上で説明した一連の処理により、第2実施例における第2輻輳判定処理は終了し、処理が、図4に示した輻輳制御処理に戻される。
以上で説明した第2実施例では、パケットが属するN段目のキューのキュー長QLEN(N)によって輻輳クラスを決定し、当該輻輳クラス毎に設定された輻輳通知閾値とキュー長QLEN(N+1)に基づいて(N+1)段目のキューにおける輻輳通知判定を行なう。つまり、キュー長QLEN(N+1)と輻輳クラスに応じた閾値との単純な比較によって各キュー毎に輻輳通知を行うか否かを判定することできるので、パケット中継装置100の処理負担を軽減しつつ、第1実施例と同様の効果を奏することができる。
なお、図10に示した輻輳通知閾値TH#1〜TH#4の値や、輻輳クラスの割り当て方法、輻輳クラスの数は、上述した例に限られず任意に設定可能である。また、接続端子160に接続された管理装置20によって管理ユーザがこれらを任意に設定することも可能である。
C.第3実施例:
上述した第1実施例および第2実施例では、1台のパケット中継装置100が、第1輻輳制御テーブル124と第2輻輳制御テーブル126とを備えている。これに対して、第3実施例では、第1輻輳制御テーブル124と第2輻輳制御テーブル126とが、異なるパケット中継装置に備えられている。
図12は、第1輻輳制御テーブル124と第2輻輳制御テーブル126とが異なるパケット中継装置に備えられている例を示す説明図である。本実施例では、N段目のキューの管理を、パケット中継装置100A,100Bが行い、(N+1)段目のキューの管理を、パケット中継装置100Cが行う。パケット中継装置100A,100Bは、調停装置111を介して、パケット中継装置100Cに接続されている。調停装置111は、パケット中継装置100A,100Bから送信された制御情報をパケット中継装置100Cに転送するための装置である。各パケット中継装置と調停装置とは、ネットワークによって接続されていてもよいし、所定のバスによって接続されていてもよい。
パケット中継装置100A,100Bは、メモリユニット140A,140B内に、バッファメモリ122A,122Bと第1輻輳制御テーブル124A,124Bとを備えている。また、パケット中継装置100Cは、メモリユニット140C内に、バッファメモリ122Cと、第2輻輳制御テーブル126Cとを備えている。つまり、本実施例では、物理的にバッファメモリが分かれた個別バッファ方式の構成を採用している。なお、パケット中継装置100A,100Bは、それぞれ、N段目の異なるキューを管理することができる。
以下、本実施例における輻輳制御について説明する。まず、パケット中継装置100A,100Bがパケットを受け取ると、当該パケットがどのキューに属するかが輻輳通知判定部120A,120Bによって判定される。そして、輻輳通知判定部120A,120Bによって、上述した第1実施例における第1輻輳判定処理と同じ処理が実行される。この第1輻輳判定処理によって、受信したパケットの属するキューが輻輳状態にあると判定された場合には、輻輳通知処理部130A,130Bから、パケットの送信元に対して輻輳通知がなされる。一方、受信したパケットが輻輳状態にないと判定された場合には、輻輳通知はなされない。
第1輻輳判定処理の後、N段目のキューに格納されているパケットが送出される順番になった場合には、調停装置111によってそのパケットのデータが読み出されるとともに、そのパケットのキューのキュー長QLEN(N)が第1輻輳制御テーブル124Aあるいは124Bから読み出され、パケット中継装置100Cに送信される。これと同時に第1輻輳制御テーブル124A,124B内のキュー長QLEN(N)は1つ減少し、第2輻輳制御テーブル126Cのキュー長QLEN(N+1)は1つ増加する。パケットおよびキュー長QLEN(N)を受け取ったパケット中継装置100Cでは、上述した第1実施例の第2輻輳判定処理と同じ処理が実行され、これにより、(N+1)段目のキューに基づき輻輳通知を行うか否かが判定される。
以上で説明した第3実施例のように、N段目のキューと(N+1)段目のキューとで、物理的にバッファメモリが分かれた構成であっても、第1,2実施例における共有バッファ方式と同様に、N段目のキューの状態を反映して、(N+1)段目における輻輳通知判定を実現することができる。
なお、本実施例では、複数のパケット中継装置において個別バッファ方式が採用されている例を説明した。しかし、個別バッファ方式は、1つのパケット中継装置において採用されてもよい。この場合には、図12に示した各構成が、すべて、1つのパケット中継装置に備えられる。
D.第4実施例:
上述した各実施例では、接続端子160に接続された管理装置20によって、輻輳通知判定部120の動作に関する設定や、第1輻輳制御テーブル124および第2輻輳制御テーブル126内の制御情報の設定を行うことが可能である。そこで、最後に、これらの設定を行うためのコマンドの具体例を示す。
図13は、輻輳通知判定部120の動作に関する設定を行うコマンドを示す説明図である。図13には、基準輻輳通知確率STD_CPや、重み係数S、輻輳通知確率重みα、輻輳通知閾値重みβ、輻輳クラスの数、各輻輳クラスの閾値、を設定するコマンドを示した。輻輳通知判定部120は、管理装置20からこれらのコマンドを受信すると、受信したコマンドに応じて、各制御情報の設定を行う。また、図13に示すように、これらの制御情報を表示するためのコマンドや、クリアするためのコマンドも用意されている。
図14は、第1輻輳制御テーブル124および第2輻輳制御テーブル126の設定を行うためのコマンドを示す説明図である。図14には、N段目のキューの数や、(N+1)段目のキューの最大輻輳通知閾値MAX_CN_TH(N+1)など、図5や図6に示した各制御情報を設定するためのコマンドを示した。輻輳通知判定部120は、管理装置20からこれらのコマンドを受信すると、受信したコマンドに応じて、第1輻輳制御テーブル124や第2輻輳制御テーブル126内の各制御情報の設定を行う。また、図14に示すように、これらの制御情報を表示するためのコマンドや、クリアするためのコマンドも用意されている。
以上で説明したように、輻輳通知判定部120の動作に関する設定や、第1輻輳制御テーブル124および第2輻輳制御テーブル126内の各値を、接続端子160に接続された管理装置20によって任意に設定可能とすれば、パケット中継装置100に接続された端末の数や通信量、ネットワークの状態、パケット中継装置100の使用状況等に応じて、きめ細かい輻輳制御を実現することが可能となる。
E.変形例:
以上、本発明のいくつかの実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、ソフトウェアによって実現した機能は、ハードウェアによって実現するものとしてもよく、逆に、ハードウェアで実現した機能をソフトウェアによって実現してもよい。そのほか、以下のような変形が可能である。
・変形例1:
上述した各実施例では、N段目のキューや(N+1)段目のキューに蓄積されるパケットを、パケット数で管理している。つまり、第1輻輳制御テーブル124や第2輻輳制御テーブル126に格納されている各値は、それぞれ、パケットの数を表している。これに対して、各キューの管理は、通信量(例えば、バイト数)によって行うこととしてもよい。
・変形例2:
上述した各実施例では、N段目のキューと(N+1)段目のキューとの2段のキューを有する構成について説明したが、本発明は、3段以上のキューを有する構成に対しても同様に適用することができる。具体的には、各段のキューにおけるパケットの輻輳通知判定において、輻輳通知判定部120は、前段以前のキューの制御情報とその段のキューの制御情報とに基づいて、輻輳通知判定を行う。例えば、N段目のキューを管理するための第1輻輳制御テーブル124が複数種類あり、(N+1)段目キューを管理するための第2輻輳制御テーブル126がそれぞれの第1輻輳制御テーブル124に対して1つずつ用意されているとすると、更に、これらの第2輻輳制御テーブル126をまとめて(N+2)段目のキューとして管理するための第3の輻輳制御テーブルを用意することができる。この場合、(N+1)段目のキューでは、上述した第1輻輳制御処理のように、単純に、(N+1)段目のキュー長と所定の閾値とを対比するだけの輻輳判定処理を行うこととしてもよいし、上述した第2輻輳制御処理のように、前段のキューの状態を反映させた輻輳判定処理を行ってもよい。
・変形例3:
上記第1実施例では、パケット中継装置100が受信したパケットがN段目の複数のキューのうちのどのキューに属するのかを、輻輳通知判定部120が判定している。しかし、この判定は、パケット中継装置100とは別の他の装置が行なうこととしてもよい。また、輻輳通知判定部120とは異なる機能ブロックあるいは回路が行うこととしてもよい。
・変形例4:
上記第1実施例における輻輳通知確率CPを求めるための式や、輻輳通知確率重みα、輻輳通知閾値重みβを求めるための式は、一例であり、パラメータとしてN段目のキューにおける制御情報を含んでいれば、他の式であってもよい。また、輻輳通知確率CPを求めるための式や、輻輳通知確率重みα、輻輳通知閾値重みβを求めるための式、これらの式に含まれる定数、第2実施例における輻輳クラス毎に設定される輻輳通知閾値は、管理装置20を介して管理ユーザからの指示によって変更可能としてもよく、また、予め調整された複数の選択肢の中から選択可能としてもよい。こうすれば、ユーザ数や通信量の変化に応じて、パケットの輻輳通知判定の方式を適宜調整することが可能となる。
・変形例5:
上記実施例では、接続端子160に管理装置20を接続し、この管理装置20から種々の設定を行うこととした。これに対して、パケット中継装置100に対して、直接、ディスプレイ等の表示装置やキーボード等の入力装置を接続し、これらを用いて設定を行うこととしてもよい。もちろん、パケット中継装置100自体が表示装置や入力装置を備えていてもよい。
10…端末
20…管理装置
30…ネットワーク回線
100,100A,100B,100C…パケット中継装置
104…インタフェース部
110…制御ユニット
111…調停装置
120,120A,120B,120C…輻輳通知判定部
122,122A,122B,122C…バッファメモリ
124,124A,124B…第1輻輳制御テーブル
126,126C…第2輻輳制御テーブル
126b…第2輻輳制御テーブル
130,130A,130B,130C…輻輳通知処理部
132…輻輳通知パケット生成部
134…輻輳通知パケット送信部
140,140A,140B,140C…メモリユニット
150…インタフェース部
151…物理ポート
160…接続端子

Claims (10)

  1. パケット中継装置であって、
    パケットが一時的に格納される複数のキューを含むバッファメモリと、
    前記各キューのキュー長をそれぞれ示す複数の第1のキュー長と、前記複数の第1のキュー長の合計に応じた値を示す第2のキュー長と、がそれぞれ記憶される記憶部と、
    パケットを受信する受信部と、
    前記パケットが属するキューを前記複数のキューの中から判別するキュー判別部と、
    前記バッファメモリ内の前記判別されたキューに対して前記パケットを一時的に格納し、前記第1のキュー長と前記第2のキュー長とを更新するキュー管理部と、
    前記判別されたキューに対応する前記第1のキュー長と、前記第2のキュー長とに応じて、前記パケットの送信元に対して輻輳通知を行うか否かを判定する輻輳通知判定部と、
    前記輻輳通知を前記送信元に対して送信する輻輳通知送信部と、
    を備え
    前記輻輳通知判定部は、前記第1のキュー長に応じて、前記受信したパケットをクラス分けし、該クラス毎に予め設定された閾値と前記第2のキュー長とに基づいて、前記判定を行う、
    パケット中継装置。
  2. 請求項1に記載のパケット中継装置であって、
    前記輻輳通知判定部は、前記第1のキュー長が長いほど高い確率となり、かつ、前記第2のキュー長が長いほど高い確率となる輻輳通知確率を所定の演算式に基づいて求め、該輻輳通知確率に基づき、前記判定を行う、パケット中継装置。
  3. 請求項2に記載のパケット中継装置であって、
    前記輻輳通知判定部は、前記第2のキュー長が予め設定された第1の閾値以下の場合には前記演算式に拘わらず前記輻輳通知確率を0%とし、前記第2のキュー長が予め設定された第2の閾値以上の場合には前記演算式に拘わらず前記輻輳通知確率を100%とする、パケット中継装置。
  4. 請求項2または請求項3に記載のパケット中継装置であって、
    前記演算式または該演算式に含まれる定数を設定する設定部を備える、パケット中継装置。
  5. 請求項1から請求項4までのいずれか一項に記載のパケット中継装置であって、
    前記クラス毎の閾値を設定する設定部を備える、パケット中継装置。
  6. 請求項1から請求項までのいずれか一項に記載のパケット中継装置であって、
    前記記憶部は、前記第1のキュー長および前記第2のキュー長を、前記パケットの数またはデータ量によって記憶している、パケット中継装置。
  7. 請求項1から請求項までのいずれか一項に記載のパケット中継装置であって、
    前記輻輳通知判定部は、更に、前記第2のキュー長に応じて輻輳の程度を判定し、
    前記輻輳通知送信部は、前記輻輳通知に前記輻輳の程度を含ませる、パケット中継装置。
  8. 請求項に記載のパケット中継装置であって、
    前記輻輳の程度は、前記送信元において、前記パケットの送信量を制限するために用いられる、パケット中継装置。
  9. 請求項1から請求項までのいずれか一項に記載のパケット中継装置であって、
    前記バッファメモリの全容量は、前記複数のキューのキュー長の合計よりも少ない、パケット中継装置。
  10. パケット中継装置が輻輳制御を行う輻輳制御方法であって、
    前記パケット中継装置は、
    パケットが一時的に格納される複数のキューを含むバッファメモリと、
    前記各キューのキュー長をそれぞれ示す複数の第1のキュー長と、前記複数の第1のキュー長の合計に応じた値を示す第2のキュー長と、がそれぞれ記憶される記憶部と、を備え、
    パケットを受信する工程と、
    前記パケットが属するキューを前記複数のキューの中から判別する工程と、
    前記バッファメモリ内の前記判別されたキューに対して前記パケットを一時的に格納し、前記第1のキュー長と前記第2のキュー長とを更新する工程と、
    前記判別されたキューに対応する前記第1のキュー長と、前記第2のキュー長とに応じて、前記パケットの送信元に対して輻輳通知を行うか否かを判定する工程と、
    前記輻輳通知を前記送信元に対して送信する工程と、
    を備え
    前記輻輳通知を行うか否かを判定する工程では、前記第1のキュー長に応じて、前記受信したパケットをクラス分けし、該クラス毎に予め設定された閾値と前記第2のキュー長とに基づいて、前記判定を行う、
    輻輳制御方法。
JP2010176853A 2010-08-06 2010-08-06 パケット中継装置および輻輳制御方法 Active JP5498889B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010176853A JP5498889B2 (ja) 2010-08-06 2010-08-06 パケット中継装置および輻輳制御方法
US13/190,908 US8593955B2 (en) 2010-08-06 2011-07-26 Packet relay device and congestion control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010176853A JP5498889B2 (ja) 2010-08-06 2010-08-06 パケット中継装置および輻輳制御方法

Publications (2)

Publication Number Publication Date
JP2012039330A JP2012039330A (ja) 2012-02-23
JP5498889B2 true JP5498889B2 (ja) 2014-05-21

Family

ID=45556104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010176853A Active JP5498889B2 (ja) 2010-08-06 2010-08-06 パケット中継装置および輻輳制御方法

Country Status (2)

Country Link
US (1) US8593955B2 (ja)
JP (1) JP5498889B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838782B2 (en) * 2008-09-19 2014-09-16 Nec Corporation Network protocol processing system and network protocol processing method
US9154441B2 (en) * 2013-01-25 2015-10-06 Broadcom Corporation Adaptive buffer allocation management
CN103501353B (zh) * 2013-10-23 2017-12-12 北京经纬恒润科技有限公司 一种数据中继传输方法、装置及系统
US9419900B2 (en) 2013-12-31 2016-08-16 International Business Machines Corporation Multi-bit indicator set according to feedback based on an equilibrium length of a queue
EP3163818B1 (en) * 2014-07-14 2018-10-24 Huawei Technologies Co., Ltd. Packet processing method and related device for network device
US9621468B1 (en) * 2014-12-05 2017-04-11 Amazon Technologies, Inc. Packet transmission scheduler
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
CN107547442B (zh) * 2016-06-27 2022-05-31 中兴通讯股份有限公司 数据传输缓存队列分配方法及装置
US10305805B2 (en) * 2016-07-01 2019-05-28 Intel Corporation Technologies for adaptive routing using aggregated congestion information
US11245572B1 (en) 2017-01-31 2022-02-08 Barefoot Networks, Inc. Messaging between remote controller and forwarding element
US10505861B1 (en) * 2017-07-23 2019-12-10 Barefoot Networks, Inc. Bus for providing traffic management statistics to processing pipeline
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US11153211B2 (en) * 2017-12-09 2021-10-19 Intel Corporation Fast data center congestion response
JP2019125914A (ja) * 2018-01-16 2019-07-25 アラクサラネットワークス株式会社 通信装置及びプログラム
CN113728596A (zh) * 2019-05-23 2021-11-30 慧与发展有限责任合伙企业 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426640A (en) * 1992-01-21 1995-06-20 Codex Corporation Rate-based adaptive congestion control system and method for integrated packet networks
JPH0787133A (ja) * 1993-09-16 1995-03-31 Hitachi Ltd データ通信ノードのバッファ制御方法
JP2639335B2 (ja) * 1993-12-22 1997-08-13 日本電気株式会社 Atm網における輻輳制御方式
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
JP3434642B2 (ja) * 1995-07-07 2003-08-11 株式会社東芝 パケットスケジューリング装置
JP3156752B2 (ja) 1996-02-09 2001-04-16 日本電気株式会社 Atmスイッチ装置及びその制御方法
US6021116A (en) * 1996-03-28 2000-02-01 Lucent Technologies, Inc. Method and apparatus for controlling data transfer rate using virtual queues in asynchronous transfer mode networks
JP3607017B2 (ja) * 1996-10-31 2005-01-05 富士通株式会社 セル交換機におけるフィードバック制御装置及びセルスケジューリング装置
JP3525656B2 (ja) * 1996-12-06 2004-05-10 株式会社日立製作所 パケット交換機、および輻輳通知方式
JP3000990B2 (ja) * 1997-12-18 2000-01-17 日本電気株式会社 廃棄優先制御方法及び方式
US6252848B1 (en) * 1999-03-22 2001-06-26 Pluris, Inc. System performance in a data network through queue management based on ingress rate monitoring
US7133407B2 (en) * 2000-01-25 2006-11-07 Fujitsu Limited Data communications system
JP2002033749A (ja) * 2000-07-18 2002-01-31 Fujitsu Ltd バッファ装置およびスイッチング装置
JP3526269B2 (ja) * 2000-12-11 2004-05-10 株式会社東芝 ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
DE10062640B4 (de) * 2000-12-15 2006-11-02 Infineon Technologies Ag Verfahren zur zeitlichen Steuerung der Ausgabe von Datenpaketen aus Netzknoten, Netzknoten und konfiguriertes Netz
US6988160B2 (en) * 2001-02-12 2006-01-17 P-Cube Ltd. Method and apparatus for efficient messaging between memories across a PCI bus
EP1249972A1 (en) * 2001-04-09 2002-10-16 Telefonaktiebolaget L M Ericsson (Publ) Method of controlling a queue buffer
US20030130832A1 (en) * 2002-01-04 2003-07-10 Peter Schulter Virtual networking system and method in a processing system
US6654861B2 (en) * 2001-07-18 2003-11-25 Smart Matic Corp. Method to manage multiple communication queues in an 8-bit microcontroller
US7684422B1 (en) * 2002-01-17 2010-03-23 Juniper Networks, Inc. Systems and methods for congestion control using random early drop at head of buffer
US7359321B1 (en) * 2002-01-17 2008-04-15 Juniper Networks, Inc. Systems and methods for selectively performing explicit congestion notification
US7330433B2 (en) * 2003-02-28 2008-02-12 Mitsubishi Electric Research Laboratories, Inc. Dynamic resource control for high-speed downlink packet access wireless channels
US7369500B1 (en) * 2003-06-30 2008-05-06 Juniper Networks, Inc. Dynamic queue threshold extensions to random early detection
WO2005020523A1 (ja) * 2003-08-20 2005-03-03 Nec Corporation セッション中継装置及び中継方法
US20070091799A1 (en) * 2003-12-23 2007-04-26 Henning Wiemann Method and device for controlling a queue buffer
EP1723751A1 (en) * 2004-01-14 2006-11-22 Telefonaktiebolaget L M Ericsson (Publ) Methods and devices for controlling data unit handling
US7602720B2 (en) * 2004-10-22 2009-10-13 Cisco Technology, Inc. Active queue management methods and devices
WO2007026557A1 (ja) * 2005-08-31 2007-03-08 Nec Corporation 通信システム、通信端末、中継ノード及びそれに用いる通信方法並びにそのプログラム
US7961621B2 (en) * 2005-10-11 2011-06-14 Cisco Technology, Inc. Methods and devices for backward congestion notification
KR100757872B1 (ko) 2006-02-06 2007-09-11 삼성전자주식회사 네트워크에서의 혼잡 발생 예고 시스템 및 방법
JP2007274476A (ja) * 2006-03-31 2007-10-18 Anritsu Corp パケット中継装置
EP2064843A2 (en) * 2006-09-13 2009-06-03 Nokia Corporation Energy aware early detection
WO2008035600A1 (fr) * 2006-09-20 2008-03-27 Panasonic Corporation Dispositif et procédé de transmission de relais
JP5157577B2 (ja) * 2008-03-27 2013-03-06 富士通株式会社 到着パケット廃棄決定を行うパケットバッファ管理装置及びその廃棄決定方法
JP4465394B2 (ja) * 2008-04-08 2010-05-19 富士通株式会社 パケット中継装置、パケット中継方法およびパケット中継プログラム
JP5104508B2 (ja) * 2008-04-16 2012-12-19 富士通株式会社 中継装置およびパケット中継方法
JP2009290297A (ja) * 2008-05-27 2009-12-10 Fujitsu Ltd 通信装置および通信装置の制御方法
JP5365415B2 (ja) * 2009-08-25 2013-12-11 富士通株式会社 パケット中継装置および輻輳制御方法
JP5402581B2 (ja) * 2009-12-01 2014-01-29 富士通株式会社 パケット中継装置および輻輳制御方法

Also Published As

Publication number Publication date
US20120033550A1 (en) 2012-02-09
US8593955B2 (en) 2013-11-26
JP2012039330A (ja) 2012-02-23

Similar Documents

Publication Publication Date Title
JP5498889B2 (ja) パケット中継装置および輻輳制御方法
JP5340186B2 (ja) パケット中継装置及びパケットを中継する方法
US7738375B1 (en) Shared shaping of network traffic
US8730931B1 (en) Airtime-based packet scheduling for wireless networks
US11171891B2 (en) Congestion drop decisions in packet queues
US6556578B1 (en) Early fair drop buffer management method
CN108600118B (zh) 报文处理方法、装置以及电子设备
US11799803B2 (en) Packet processing method and apparatus, communications device, and switching circuit
WO2020134425A1 (zh) 一种数据处理方法、装置、设备及存储介质
CN107835133B (zh) 一种基于多属性决策的流优先级控制方法
CN110086728B (zh) 发送报文的方法、第一网络设备及计算机可读存储介质
US6724776B1 (en) Method and system for providing optimal discard fraction
CN112491736B (zh) 一种拥塞控制方法、装置、电子设备及存储介质
CN109391558B (zh) 一种队列的控制方法及控制装置
EP2119129B1 (en) Apparatus, methods and computer program products implementing fast bearer prioritization in a mac-hs packet scheduler based on required activity detection
JP7156410B2 (ja) 通信装置、並びに、通信制御システム、方法及びプログラム
US8762567B2 (en) Adaptive permutation group method for overload control
CN113438271A (zh) 存储器、物联网数据传输管理方法、装置和设备
Lebedenko et al. A queue management model on the network routers using optimal flows aggregation
JP7416334B1 (ja) パケット制御システム、パケット制御方法及びパケット制御装置
WO2022238998A1 (en) Method and system for buffer management based on predictive analytics
CN115460151A (zh) 一种流量控制方法、系统、存储介质及电子设备
JP2024518019A (ja) 予測分析に基づくバッファ管理のための方法およびシステム
CN116489091A (zh) 基于远程带内遥测和时延的流量调度方法和装置
CN115604119A (zh) 网络切片配置方法及装置、计算机可存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130904

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140310

R150 Certificate of patent or registration of utility model

Ref document number: 5498889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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