JP5498889B2 - Packet relay apparatus and congestion control method - Google Patents
Packet relay apparatus and congestion control method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 77
- 239000000872 buffer Substances 0.000 claims description 43
- 230000005540 biological transmission Effects 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 41
- 230000014509 gene expression Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 description 53
- 238000012545 processing Methods 0.000 description 31
- 239000013256 coordination polymer Substances 0.000 description 30
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000007423 decrease Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 3
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、パケット中継装置において輻輳制御を行う技術に関する。 The present invention relates to a technique for performing congestion control in a packet relay device.
ネットワーク上でパケットやフレームの中継を行う中継装置として、例えば、ルータやスイッチなどが知られている。このような中継装置に対して、許容能力を大きく超える通信要求があると、中継装置の内部で通信が滞ることがある。このような現象を、一般的に、「輻輳」という。輻輳は、ネットワークの規模にかかわらず、LANやWAN、インターネット等において発生し得る現象である。 For example, a router or a switch is known as a relay device that relays packets and frames on a network. If such a relay device has a communication request that greatly exceeds the permissible capacity, communication may be delayed inside the relay device. Such a phenomenon is generally called “congestion”. Congestion is a phenomenon that can occur in a LAN, WAN, Internet, etc., regardless of the scale of the network.
こうした輻輳を抑制する技術として、例えば、特許文献1に記載された技術がある。この技術では、FIFOメモリ全体にバッファリングされているパケット数を監視するためのFIFO長カウンタの値が所定の閾値を超えたか否かを判断する。そして、このFIFO長カウンタの値が閾値を超えた場合には、コネクション毎に個別に用意されたパケット数を監視するための閾値を一律に低下させる制御を行っている。このような制御によれば、低下した閾値よりもバッファリングされたパケット数の多いコネクションに接続されている送信元端末には、輻輳が発生した旨の通知がなされる。送信元端末は、この通知を受信すると、パケットの送信量を低下させることができる。そのため、そのコネクションから受信されるパケットがFIFOメモリから減っていき、輻輳の発生を抑制することが可能になる。
As a technique for suppressing such congestion, there is a technique described in
しかし特許文献1に開示された技術では、コネクション毎に用意された閾値を一律に低下させているため、低下した閾値よりもバッファリングされているパケット数の多いコネクションに接続している送信元端末のすべてに、輻輳が発生した旨の通知がなされる。そうすると、それら全ての送信元端末がパケットの送信量を同時に低下させるため、ネットワーク全体のスループットが急激に低下する場合がある。このような問題は、パケットに限らずネットワーク等の通信回線上を流れるデータの中継を行う装置に共通して生じ得る問題である。
However, in the technique disclosed in
上述の問題を踏まえ、本発明が解決しようとする課題は、ネットワーク全体のスループットが低下することを抑制可能な輻輳制御技術を提供することである。 In light of the above-described problems, the problem to be solved by the present invention is to provide a congestion control technique capable of suppressing a decrease in the throughput of the entire network.
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。 SUMMARY An advantage of some aspects of the invention is to solve at least a part of the problems described above, and the invention can be implemented as the following forms or application examples.
[適用例1]パケット中継装置であって、パケットが一時的に格納される複数のキューを含むバッファメモリと、前記各キューのキュー長をそれぞれ示す複数の第1のキュー長と、前記複数の第1のキュー長の合計に応じた値を示す第2のキュー長と、がそれぞれ記憶される記憶部と、パケットを受信する受信部と、前記パケットが属するキューを前記複数のキューの中から判別するキュー判別部と、前記バッファメモリ内の前記判別されたキューに対して前記パケットを一時的に格納し、前記第1のキュー長と前記第2のキュー長とを更新するキュー管理部と、前記判別されたキューに対応する前記第1のキュー長と、前記第2のキュー長とに応じて、前記パケットの送信元に対して輻輳通知を行うか否かを判定する輻輳通知判定部と、前記輻輳通知を前記送信元に対して送信する輻輳通知送信部と、を備えるパケット中継装置。 [Application Example 1] A packet relay apparatus, which includes a buffer memory including a plurality of queues in which packets are temporarily stored, a plurality of first queue lengths respectively indicating queue lengths of the respective queues, A storage unit storing a second queue length indicating a value corresponding to a total of the first queue lengths, a receiving unit receiving a packet, and a queue to which the packet belongs from the plurality of queues A queue discriminating unit for discriminating; a queue managing unit for temporarily storing the packet in the discriminated queue in the buffer memory and updating the first queue length and the second queue length; A congestion notification determination unit that determines whether or not to perform a congestion notification to the transmission source of the packet according to the first queue length and the second queue length corresponding to the determined queue And before Packet relay apparatus and a congestion notification transmission unit that transmits the congestion notification to the sender.
このような構成であれば、受信したパケットの属するキューの第1のキュー長と、複数の第1のキュー長の合計に応じた値を示す第2のキュー長とに基づいて、そのパケットの送信元に輻輳通知を行うか否かを判断するため、複数のキューのそれぞれについて個別に輻輳制御を行うことが可能になる。よって、輻輳制御に伴ってネットワーク全体のスループットが低下してしまうことを抑制することができる。 In such a configuration, based on the first queue length of the queue to which the received packet belongs and the second queue length indicating a value corresponding to the total of the plurality of first queue lengths, In order to determine whether or not to send a congestion notification to the transmission source, it becomes possible to individually perform congestion control for each of the plurality of queues. Therefore, it is possible to suppress a decrease in throughput of the entire network due to congestion control.
[適用例2]適用例1に記載のパケット中継装置であって、前記輻輳通知判定部は、前記第1のキュー長が長いほど高い確率となり、かつ、前記第2のキュー長が長いほど高い確率となる輻輳通知確率を所定の演算式に基づいて求め、該輻輳通知確率に基づき、前記判定を行う、パケット中継装置。
このような構成であれば、第1のキュー長が長いほどパケットの送信元に輻輳通知を行う確率を高くすることができ、また、第2のキュー長が長いほどパケットの送信元に輻輳通知を行う確率を高くすることができる。そのため、バッファメモリ内の全体のキュー長(第2のキュー長)と、各キューの個別のキュー長(第1のキュー長)とに応じて輻輳通知を行う確率を求めることができる。
Application Example 2 In the packet relay apparatus according to Application Example 1, the congestion notification determination unit has a higher probability as the first queue length is longer, and is higher as the second queue length is longer. A packet relay apparatus that obtains a congestion notification probability as a probability based on a predetermined arithmetic expression and makes the determination based on the congestion notification probability.
With such a configuration, the longer the first queue length, the higher the probability of notifying the packet transmission source of congestion, and the longer the second queue length, the higher the queue length is. The probability of performing can be increased. Therefore, the probability of performing congestion notification can be obtained according to the entire queue length (second queue length) in the buffer memory and the individual queue length (first queue length) of each queue.
[適用例3]適用例2に記載のパケット中継装置であって、前記輻輳通知判定部は、前記第2のキュー長が予め設定された第1の閾値以下の場合には前記演算式に拘わらず前記輻輳通知確率を0%とし、前記第2のキュー長が予め設定された第2の閾値以上の場合には前記演算式に拘わらず前記輻輳通知確率を100%とする、パケット中継装置。
このような構成であれば、明らかに輻輳通知が必要になる状況や明らかに輻輳通知が不要な状況においてまで輻輳通知確率を演算する必要がないため、処理の簡略化を図ることができる。
[Application Example 3] In the packet relay apparatus according to Application Example 2, the congestion notification determination unit is responsive to the arithmetic expression when the second queue length is equal to or smaller than a preset first threshold value. The packet relay device, wherein the congestion notification probability is 0%, and the congestion notification probability is 100% regardless of the arithmetic expression when the second queue length is equal to or greater than a preset second threshold.
With such a configuration, it is not necessary to calculate the congestion notification probability even in a situation where congestion notification is clearly required or a situation where congestion notification is not clearly required, so that the processing can be simplified.
[適用例4]適用例2または適用例3に記載のパケット中継装置であって、前記演算式または該演算式に含まれる定数を設定する設定部を備える、パケット中継装置。
このような構成であれば、パケット中継装置が置かれるネットワークの状況や使用状態に応じて柔軟な輻輳制御を行うことが可能になる。
Application Example 4 A packet relay device according to Application Example 2 or Application Example 3, comprising a setting unit that sets the arithmetic expression or a constant included in the arithmetic expression.
With such a configuration, it becomes possible to perform flexible congestion control according to the state of the network in which the packet relay device is placed and the usage state.
[適用例5]適用例1に記載のパケット中継装置であって、前記輻輳通知判定部は、前記第1のキュー長に応じて、前記受信したパケットをクラス分けし、該クラス毎に予め設定された閾値と前記第2のキュー長とに基づいて、前記判定を行う、パケット中継装置。
このような構成であれば、第1のキュー長に応じて予め設定された閾値と第2のキュー長とを比較するだけで輻輳通知を行うか否かを判定することができるので、パケット中継装置の処理負担を軽減しつつ、複数のキューのそれぞれについて個別に輻輳制御を行うことができる。
[Application Example 5] The packet relay apparatus according to Application Example 1, wherein the congestion notification determination unit classifies the received packet according to the first queue length, and sets the class for each class in advance. A packet relay device that performs the determination based on the determined threshold value and the second queue length.
With such a configuration, it is possible to determine whether or not to perform congestion notification only by comparing a threshold set in advance according to the first queue length and the second queue length. Congestion control can be performed individually for each of a plurality of queues while reducing the processing load on the apparatus.
[適用例6]適用例5に記載のパケット中継装置であって、前記クラス毎の閾値を設定する設定部を備える、パケット中継装置。
このような構成であれば、パケット中継装置が置かれるネットワークの状況や使用状態に応じて柔軟な輻輳制御を行うことが可能になる。
[Application Example 6] The packet relay apparatus according to Application Example 5, including a setting unit that sets a threshold value for each class.
With such a configuration, it becomes possible to perform flexible congestion control according to the state of the network in which the packet relay device is placed and the usage state.
[適用例7]適用例1から適用例6までのいずれか一項に記載のパケット中継装置であって、前記記憶部は、前記第1のキュー長および前記第2のキュー長を、前記パケットの数またはデータ量によって記憶している、パケット中継装置。
このような構成であれば、パケット中継装置が置かれるネットワークの状況や使用状態に応じて第1のキュー長および第2のキュー長の単位を選択することができる。
[Application Example 7] The packet relay device according to any one of Application Example 1 to Application Example 6, wherein the storage unit sets the first queue length and the second queue length to the packet Packet relay device that stores the number of data or the amount of data.
With such a configuration, the unit of the first queue length and the second queue length can be selected according to the state of the network in which the packet relay device is placed and the usage state.
[適用例8]適用例1から適用例7までのいずれか一項に記載のパケット中継装置であって、前記輻輳通知判定部は、更に、前記第2のキュー長に応じて輻輳の程度を判定し、前記輻輳通知送信部は、前記輻輳通知に前記輻輳の程度を含ませる、パケット中継装置。
このような構成であれば、輻輳通知を受信したパケットの送信元に対して輻輳制御を行うための有益な情報を提供することができる。
[Application Example 8] The packet relay device according to any one of Application Example 1 to Application Example 7, wherein the congestion notification determination unit further determines the degree of congestion according to the second queue length. A packet relay device that determines and the congestion notification transmission unit includes the degree of congestion in the congestion notification.
With such a configuration, it is possible to provide useful information for performing congestion control on the transmission source of the packet that has received the congestion notification.
[適用例9]適用例8に記載のパケット中継装置であって、前記輻輳の程度は、前記送信元において、前記パケットの送信量を制限するために用いられる、パケット中継装置。
このような構成であれば、パケットの送信元は、パケット中継装置から受信した輻輳通知を利用して容易に輻輳制御を行うことが可能になる。
[Application Example 9] The packet relay apparatus according to Application Example 8, wherein the degree of congestion is used to limit a transmission amount of the packet at the transmission source.
With such a configuration, the packet transmission source can easily perform congestion control using the congestion notification received from the packet relay apparatus.
[適用例10]適用例1から適用例9までのいずれか一項に記載のパケット中継装置であって、前記バッファメモリの全容量は、前記複数のキューのキュー長の合計よりも少ない、パケット中継装置。
このような構成であれば、統計多重効果に基づいて、少ない容量のバッファメモリによって、効率的にパケットのキューイングを行うことができる。
[Application Example 10] The packet relay device according to any one of Application Example 1 to Application Example 9, wherein the total capacity of the buffer memory is smaller than the total queue length of the plurality of queues. Relay device.
With such a configuration, packet queuing can be efficiently performed with a small capacity buffer memory based on the statistical multiplexing effect.
本発明は、上述したパケット中継装置としての構成のほか、パケット中継装置による輻輳制御方法や、コンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやCD−ROM、DVD−ROM、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。 In addition to the configuration as the packet relay device described above, the present invention can also be configured as a congestion control method by the packet relay device and a computer program. The computer program may be recorded on a computer-readable recording medium. As the recording medium, for example, various media such as a flexible disk, a CD-ROM, a DVD-ROM, a magneto-optical disk, a memory card, and a hard disk can be used.
以下、本発明の実施の形態を実施例に基づき次の順序で説明する。
A.第1実施例:
A−1.装置構成:
A−2.輻輳制御処理:
A−3.第1輻輳判定処理:
A−4.第2輻輳判定処理:
B.第2実施例:
C.第3実施例:
D.第4実施例:
E.変形例:
Hereinafter, embodiments of the present invention will be described in the following order based on examples.
A. First embodiment:
A-1. Device configuration:
A-2. Congestion control processing:
A-3. First congestion determination process:
A-4. Second congestion determination process:
B. Second embodiment:
C. Third embodiment:
D. Fourth embodiment:
E. Variations:
A.第1実施例:
A−1.装置構成:
図1は、本発明の第1実施例としてのパケット中継装置100の概略構成を示す説明図である。本実施例のパケット中継装置100は、ネットワーク回線30を介して各端末10から受信したパケットを一時的に蓄積するバッファメモリ122を備えている。そして、パケット中継装置100は、バッファメモリ122内に蓄積されたパケットを、パケットフロー毎に用意されたキューと、これらのキューを統括的に管理するキューとを含む複数段のキューによって段階的に管理する。つまり、本実施例のパケット中継装置100は、共有バッファ方式の多段キュー構造を採用している。共有バッファ方式とは、統計多重効果に基づき、各キューの容量の総和よりも少ない容量のバッファメモリ122を、全てのキューで共有する方式である。このような共有バッファ方式によれば、各キューの容量の総和分の容量のバッファメモリ122を用意しなくてもよいため、バッファメモリの容量を小さくすることができ、部品コストの削減や消費電力の低減を実現することが可能になる。以下では、パケットフロー毎に用意されたキューのことを、「N段目のキュー」として説明し、これらのキューを統括的に管理するキューを、「(N+1)段目のキュー」として説明する。
A. First embodiment:
A-1. Device configuration:
FIG. 1 is an explanatory diagram showing a schematic configuration of a
パケット中継装置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)によって実現されることとしてもよい。
The
メモリユニット140は、パケットが格納されるバッファメモリ122と、N段目のキューについて輻輳制御を行うための第1輻輳制御テーブル124と、(N+1)段目のキューについて輻輳制御を行うための第2輻輳制御テーブル126と、を有している。これらのテーブルに記録される制御情報の詳細については後述する。
The
インタフェース部150は、複数の物理ポート151を備えている。各物理ポート151には、ネットワーク回線30を介して端末10や他のパケット中継装置が接続される。
The
輻輳通知判定部120は、インタフェース部150を通じてパケットを受信し、そのパケットのヘッダ情報に基づいて、そのパケットのフローの判別をする。そして、判別されたフローに対応するバッファメモリ122内のキュー(N段目のキュー)にパケットを格納する。このとき輻輳通知判定部120は、第1輻輳制御テーブル124および第2輻輳制御テーブル126の更新も行う。具体的な更新方法については後述する。輻輳通知判定部120は、また、バッファメモリ122内の各キュー(N段目のキュー)から所定のスケジューリング方式に基づいて送出されたパケットを、インタフェース部150を通じてそのパケットの送信先に転送する機能を有する。
The congestion
輻輳通知判定部120は、第1輻輳制御テーブル124および第2輻輳制御テーブル126に記録された制御情報に基づいて、受信したパケットの送信元に対して輻輳通知を行うか否かを判断する。輻輳通知とは、輻輳の発生を抑制する制御を行うようパケットの送信元に通知を行うことをいう。輻輳通知判定部120は、輻輳通知を行うと判断すると、そのパケットの送信元のアドレスと輻輳状態(輻輳の程度)を表す情報とを含む輻輳情報を、輻輳通知処理部130に送信する。なお、輻輳通知判定部120は、本願の「キュー判別部」、「キュー管理部」、および、「輻輳通知判定部」に相当する。
Based on the control information recorded in the first congestion control table 124 and the second congestion control table 126, the congestion
図2は、輻輳通知処理部130の詳細な構成を示す説明図である。輻輳通知処理部130は、輻輳通知パケット生成部132と、輻輳通知パケット送信部134と、を備えている。輻輳通知パケット生成部132は、輻輳通知判定部120から受信した輻輳情報に基づき、輻輳通知を行うためのパケット(輻輳通知パケット)を生成する。この輻輳通知パケットには、パケットの送信先のアドレスと輻輳状態を示す情報とが含まれる。輻輳通知パケット送信部134は、インタフェース部150を通じて、この輻輳通知パケットを該当するアドレスに送信する。輻輳通知パケットを受信したパケットの送信元は、通知された輻輳の程度に応じて、パケットの送信量を制限する。
FIG. 2 is an explanatory diagram showing a detailed configuration of the congestion
接続端子160(図1)には、所定のケーブルを介して管理装置20が接続される。管理装置20には、ディスプレイ等の表示装置や、キーボード、マウス等の入力装置が接続されている。パケット中継装置100を管理するユーザ(以下、「管理ユーザ」という)は、この管理装置20を用いて、当該パケット中継装置100に対する種々の設定を行なうことができる。設定内容の具体例については後述する。接続端子160と管理装置20とを接続するインタフェースとしては、様々な規格のものを適用可能である。例えば、シリアルインタフェースや、LANインタフェース、USBインタフェースなどを適用することができる。
The
図3は、本実施例における多段キュー構造の概念を示す説明図である。この図3には、N段目に1000個のキューが存在している例を示している。本実施例では、N段目の複数のキューは、それぞれ、パケットのフローに個別に対応している。ただし、N段目のキューは、パケットのフローに限らず、パケットの送信元のユーザや物理ポート151に個別に対応させることも可能である。具体的には、例えば、あるユーザAからのパケットは必ずN段目のキュー#1に格納され、またあるユーザZからのパケットは必ずN段目のキュー#1000に格納されるといったキューイングが可能である。
FIG. 3 is an explanatory diagram showing the concept of the multistage queue structure in the present embodiment. FIG. 3 shows an example in which 1000 queues exist in the Nth stage. In the present embodiment, each of the plurality of queues in the Nth stage individually corresponds to a packet flow. However, the queue of the Nth stage is not limited to the packet flow, but can be individually associated with the packet transmission source user and the
本実施例では、統計多重効果を利用した共有バッファ方式の多段キュー構造を採用している。そのため、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)とを示している。これらの閾値の用法については後述する。 In this embodiment, a shared buffer type multi-stage queue structure using a statistical multiplexing effect is employed. Therefore, the total number of packets stored in each of the N-th stage queues is managed by the (N + 1) -th stage queues. Specifically, the current queue length QLEN (N + 1) of the (N + 1) -th queue is the total value of the current queue lengths QLEN (N) of a plurality of N-th queues. FIG. 3 shows a congestion notification threshold CN_TH (N) for determining a congestion state in the N-th stage queue, and a maximum congestion notification threshold MAX_CN_TH (N +) for determining a congestion state in the (N + 1) -th stage queue. 1) and a minimum congestion notification threshold value MIN_CN_TH (N + 1). The usage of these threshold values will be described later.
A−2.輻輳制御処理:
図4は、パケット中継装置100が繰り返し実行する輻輳制御処理のフローチャートである。この輻輳制御処理は、パケット中継装置100がパケットのキューイングや中継を行うための処理と同時並列的に実行される。パケットのキューイングや中継を行うための処理は周知であるため本実施例では説明を省略する。
A-2. Congestion control processing:
FIG. 4 is a flowchart of the congestion control process that the
この輻輳制御処理の実行が開始されると、輻輳通知判定部120は、インタフェース部104を通じてパケットを受信する(ステップS100)。そして、輻輳通知判定部120は、受信したパケットのヘッダ情報を解析してフローを判別し、そのパケットがN段目のキューのうちどのキューに属するかを判定する(ステップS200)。
When the execution of the congestion control process is started, the congestion
輻輳通知判定部120は、パケットの属するキュー(N段目のキュー)を判定すると、メモリユニット140内の第1輻輳制御テーブル124に記録されている制御情報に基づき、そのキュー(N段目のキュー)に輻輳が発生しているか否かを判定する(ステップS300)。以下、この判定処理を、第1輻輳判定処理という。この第1輻輳判定処理についての詳細は後述する。
When the congestion
第1輻輳判定処理によってN段目のキューに輻輳が発生していると判定された場合には(ステップS400:Yes)、輻輳通知判定部120は、第1輻輳判定処理によって判定された輻輳の程度と、ステップS100で受信したパケットの送信元のアドレスを示す情報とを含む輻輳情報を輻輳通知処理部130に通知する。輻輳通知処理部130は、この通知を受けると、通知された輻輳情報に基づき輻輳通知パケットを生成し(ステップS700)、その輻輳通知パケットをステップS100で受信したパケットの送信元に送信する(ステップS800)。
When it is determined by the first congestion determination process that congestion has occurred in the N-th queue (step S400: Yes), the congestion
上記ステップS300における第1輻輳判定処理によって、N段目のキューに輻輳が発生していないと判定された場合には(ステップS400:No)、輻輳通知判定部120は、更に、第2輻輳制御テーブル126に記録されている制御情報に基づき、(N+1)段目のキューに輻輳が発生しているか否かを判定する処理(以下、「第2輻輳判定処理」という)を実行する(ステップS500)。この、第2輻輳判定処理についての詳細は後述する。
When it is determined by the first congestion determination process in step S300 that congestion has not occurred in the N-th queue (step S400: No), the congestion
第2輻輳判定処理によって、(N+1)段目のキューに輻輳が発生していると判定された場合には(ステップS600:Yes)、輻輳通知判定部120は、第2輻輳判定処理によって判定された輻輳の程度と、ステップS100で受信したパケットの送信元のアドレスを示す情報とを含む輻輳情報を輻輳通知処理部130に通知する。輻輳通知処理部130は、この通知を受けると、通知された輻輳情報に基づき輻輳通知パケットを生成し(ステップS700)、その輻輳通知パケットをステップS100で受信したパケットの送信元に送信する(ステップS800)。
When it is determined by the second congestion determination process that congestion has occurred in the (N + 1) -th stage queue (step S600: Yes), the congestion
一方、第2輻輳判定処理によって、(N+1)段目のキューに輻輳が発生していないと判定された場合には(ステップS600:No)、ステップS700およびステップS800の処理をスキップして当該輻輳制御処理を終了する。 On the other hand, when it is determined by the second congestion determination processing that no congestion has occurred in the (N + 1) -th stage queue (step S600: No), the processing of steps S700 and S800 is skipped and the congestion The control process ends.
A−3.第1輻輳判定処理:
続いて、上述した第1輻輳判定処理の具体的な処理内容について説明する。
図5は、第1輻輳判定処理で用いる第1輻輳制御テーブル124の一例を示す説明図である。第1輻輳制御テーブル124には、個別のキュー番号で表されるN段目のキュー毎に、そのキューに格納可能な最大パケット数を表す最大格納閾値MAX_TH(N)と、輻輳通知を行うか否かを判定するための輻輳通知閾値CN_TH(N)と、当該キューに現在格納されているパケット数を表すキュー長QLEN(N)とが、制御情報として記録される。
A-3. First congestion determination process:
Subsequently, specific processing contents of the first congestion determination processing described above will be described.
FIG. 5 is an explanatory diagram showing an example of the first congestion control table 124 used in the first congestion determination process. The first congestion control table 124 includes a maximum storage threshold MAX_TH (N) representing the maximum number of packets that can be stored in each queue for each N-th queue represented by an individual queue number, and whether congestion notification is performed. A congestion notification threshold CN_TH (N) for determining whether or not and a queue length QLEN (N) indicating the number of packets currently stored in the queue are recorded as control information.
輻輳通知判定部120は、第1輻輳制御テーブル124を次のように更新する。すなわち、輻輳通知判定部120は、受信したパケットをバッファメモリ122内の該当するキューに格納すると同時に、第1輻輳制御テーブル124の該当するキュー番号のキュー長QLEN(N)を1つ増加させる。後にバッファメモリ122内のキューからパケットが送出された場合には、輻輳通知判定部120は、第1輻輳制御テーブル124の該当するキュー番号のキュー長QLEN(N)を1つ減少させる。
The congestion
輻輳通知判定部120は、上述した第1輻輳判定処理において、受信したパケットに対応するキューのキュー長QLEN(N)が、そのキューに設定された輻輳通知閾値CN_TH(N)未満の場合には、当該キューに輻輳は発生していないと判定する。一方、受信したパケットに対応するキューのキュー長QLEN(N)が、輻輳通知閾値CN_TH(N)以上の場合には、輻輳通知判定部120は、当該キューに輻輳が発生していると判定する。
In the first congestion determination process described above, the congestion
例えば、図5に示した例であれば、キュー番号#4では、キュー長QLEN(N)が「90」であり、その輻輳通知閾値CN_TH(N)の「80」を超えているため、輻輳通知判定部120は、当該キューに輻輳が発生していると判定する。一方、他のキューは、キュー長QLEN(N)が全て、各輻輳通知閾値CN_TH(N)未満であるため、輻輳通知判定部120は、他のキューについては、輻輳は発生していないと判定する。輻輳通知判定部120は、輻輳が発生していると判定した場合には、輻輳通知閾値CN_TH(N)に対するキュー長QLEN(N)の割合を求め、この割合に応じて、輻輳の程度を判定する。輻輳の程度は、所定のテーブルに基づき、例えば、「軽輻輳」、「重輻輳」、のように判定することができる。
For example, in the example shown in FIG. 5, in
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)の合計値よりも少ない値となる。
A-4. Second congestion determination process:
Next, specific processing contents of the above-described second congestion determination processing will be described.
FIG. 6 is an explanatory diagram showing an example of the second congestion control table 126 used in the second congestion determination process. The second congestion control table 126 includes the (N + 1) -th queue number (one in this embodiment) and the maximum number of packets that can be stored in the (N + 1) -th queue (that is, the entire buffer memory 122). Representing the maximum storage threshold MAX_TH (N + 1), and the maximum congestion notification threshold MAX_CN_TH (N + 1) indicating the queue length to be notified of congestion to the transmission source of all packets transmitted to the queue, The minimum congestion notification threshold MIN_CN_TH (N + 1) that indicates the upper limit of the queue length for which congestion notification is not performed, and the probability that congestion notification will be performed when the average queue length QAVE described later reaches the maximum congestion notification threshold MAX_CN_TH (N + 1) Reference congestion notification probability STD_CP, a queue length QLEN (N + 1) indicating the total number of packets stored in the N-th stage queues, and a queue length QLEN (N +1) Average queue length QAVE indicating the average value is recorded as control information Is done. In FIG. 6, the maximum storage threshold MAX_TH (N + 1) is 1000, the maximum congestion notification threshold MAX_CN_TH (N + 1) is 800, the minimum congestion notification threshold MIN_CN_TH (N + 1) is 500, and the reference congestion notification probability STD_CP is 50. %, Queue length QLEN (N + 1) is 700, and average queue length QAVE is 700. In this embodiment, since the shared buffer method using the statistical multiplexing effect is adopted, the maximum storage threshold MAX_TH (N + 1) of the (N + 1) -th queue is the N-th stage shown in FIG. The value is smaller than the total value of the maximum queue storage threshold 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の更新を行う。
The congestion
図7は、第2輻輳判定処理の具体的な処理内容を示すフローチャートである。この第2輻輳判定処理が開始されると、パケットの受信に伴い第2輻輳制御テーブル126のキュー長QLEN(N+1)が更新されているため、輻輳通知判定部120は、まず、第2輻輳制御テーブル126の平均キュー長QAVEを更新する(ステップS510)。更新後の平均キュー長QAVEnewは、現在のキュー長QLEN(N+1)と更新前の平均キュー長QAVEoldとに基づき、以下の式(1)によって求めることができる。 FIG. 7 is a flowchart showing specific processing contents of the second congestion determination processing. When the second congestion determination process is started, the queue length QLEN (N + 1) of the second congestion control table 126 is updated with the reception of the packet. The average queue length QAVE in the congestion control table 126 is updated (step S510). The updated average queue length QAVEnew can be obtained by the following equation (1) based on the current queue length QLEN (N + 1) and the average queue length QAVEold before update.
QAVEnew = {QLEN(N+1) * 1/2^S} + {QAVEold * (1-1/2^S)} ・・・(1)
(ただし、Sは0よりも大きい重み係数。)
QAVEnew = {QLEN (N + 1) * 1/2 ^ S} + {QAVEold * (1-1 / 2 ^ S)} (1)
(However, S is a weighting factor larger than 0.)
上記式によれば、本実施例では、重み係数Sが大きいほど、更新後の平均キュー長QAVEnewに対する現在のキュー長QLEN(N+1)の影響が小さくなる。すなわち、重み係数Sを大きくすれば、現在のキュー長QLEN(N+1)が短期間のうちに大きく変動したとしても、平均キュー長QAVEの変動を小さくすることができる。 According to the above equation, in this embodiment, the larger the weighting factor S, the smaller the influence of the current queue length QLEN (N + 1) on the updated average queue length QAVEnew. That is, if the weighting factor S is increased, even if the current queue length QLEN (N + 1) varies greatly within a short period, the variation of the average queue length QAVE can be decreased.
続いて、輻輳通知判定部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段目のキュー)毎に異なった値を採る。
Subsequently, the congestion
図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のとり得る値の範囲を実線およびハッチングで示している。
FIG. 8 is an explanatory diagram showing a concept of a method for calculating the congestion notification probability CP by a graph. The congestion
(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)
(ただし、αは輻輳通知確率重み、βは輻輳通知閾値重み。)
(A) When QAVE ≧ MAX_CN_TH (N + 1):
CP = 100% (2)
(B) If QAVE ≦ MIN_CN_TH (N + 1) -β:
CP = 0% (3)
(C) When 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)
(Where α is a congestion notification probability weight and β is a congestion notification threshold weight.)
図8に示すように、平均キュー長QAVEが最大輻輳通知閾値MAX_CN_TH(N+1)に一致した場合における輻輳通知確率CPは、輻輳通知確率重みαが正の値の場合には、その絶対値が大きくなるほど、基準輻輳通知確率STD_CPより大きくなる。一方、平均キュー長QAVEが最大輻輳通知閾値MAX_CN_TH(N+1)に一致した場合における輻輳通知確率CPは、輻輳通知確率重みαが負の値の場合には、その絶対値が大きくなるほど、基準輻輳通知確率STD_CPより小さくなる。 As shown in FIG. 8, the congestion notification probability CP when the average queue length QAVE matches the maximum congestion notification threshold MAX_CN_TH (N + 1) is the absolute value when the congestion notification probability weight α is a positive value. Is larger than the reference congestion notification probability STD_CP. On the other hand, the congestion notification probability CP when the average queue length QAVE matches the maximum congestion notification threshold MAX_CN_TH (N + 1), the reference value increases as the absolute value increases when the congestion notification probability weight α is a negative value. It becomes smaller than the congestion notification probability STD_CP.
また、輻輳通知閾値重みβが正の値の場合には、その絶対値が大きくなるほど、輻輳通知が開始される閾値が、最小輻輳通知閾値MIN_CN_TH(N+1)よりも小さくなる。一方、輻輳通知閾値重みβが負の値の場合には、その絶対値が大きくなるほど、輻輳通知が開始される閾値が、最小輻輳通知閾値MIN_CN_TH(N+1)よりも大きくなる。すなわち、本実施例では、輻輳通知確率重みαおよび輻輳通知閾値重みβに応じて、(N+1)段目のキューが輻輳状態にあると判定される輻輳通知確率CPと平均キュー長QAVEとの関係が変動する。 When the congestion notification threshold weight β is a positive value, the threshold value at which the congestion notification is started becomes smaller than the minimum congestion notification threshold MIN_CN_TH (N + 1) as the absolute value increases. On the other hand, when the congestion notification threshold weight β is a negative value, the threshold value at which the congestion notification is started becomes larger than the minimum congestion notification threshold MIN_CN_TH (N + 1) as the absolute value increases. In other words, in this embodiment, the relationship between the congestion notification probability CP and the average queue length QAVE that are determined that the (N + 1) -th stage queue is in a congestion state according to the congestion notification probability weight α and the congestion notification threshold weight β. Fluctuates.
なお、輻輳通知確率重みαおよび輻輳通知閾値重みβは、受信したパケットに対応するN段目のキューのキュー長QLEN(N)および最大格納閾値MAX_TH(N)に基づいて、以下の式(5)、(6)によって求めることができる。なお、輻輳通知確率重みαおよび輻輳通知閾値重みβの計算方法は、以下に示す式に限定されず、種々の方法を採用することが可能である。 Note that the congestion notification probability weight α and the congestion notification threshold weight β are based on the queue length QLEN (N) and the maximum storage threshold MAX_TH (N) of the Nth queue corresponding to the received packet. ), (6). Note that the calculation method of the congestion notification probability weight α and the congestion notification threshold weight β is not limited to the following formulas, and various methods can be adopted.
α = αMAX * {QLEN(N)/MAX_TH(N) * 2-1} ・・・(5)
β = βMAX * {QLEN(N)/MAX_TH(N) * 2-1} ・・・(6)
(ここで、αMAX及びβMAXは、所定の定数である。)
α = αMAX * {QLEN (N) / MAX_TH (N) * 2-1} (5)
β = βMAX * {QLEN (N) / MAX_TH (N) * 2-1} (6)
(Here, αMAX and βMAX are predetermined constants.)
上記式(5),(6)によれば、受信したパケットが属するN段目のキューの最大輻輳通知閾値MAX_TH(N)に占めるキュー長QLEN(N)の割合が大きいほど、輻輳通知確率重みαおよび輻輳通知閾値重みβが大きくなる。そのため、受信したパケットが属するN段目のキューの最大輻輳通知閾値MAX_TH(N)に占めるキュー長QLEN(N)の割合が大きいほど、(N+1)段目のキューにおいて輻輳が発生していると判定される確率(輻輳通知確率CP)が高くなる。 According to the above formulas (5) and (6), the larger the ratio of the queue length QLEN (N) to the maximum congestion notification threshold MAX_TH (N) of the N-th queue to which the received packet belongs, the greater the congestion notification probability weight. α and congestion notification threshold weight β increase. Therefore, the greater the ratio of the queue length QLEN (N) to the maximum congestion notification threshold MAX_TH (N) of the Nth queue to which the received packet belongs, the greater the congestion in the (N + 1) th queue. The probability of determination (congestion notification probability CP) increases.
なお、式(5)のαMAXの値や式(6)のβMAXの値、および、式(1)の重み係数Sの値は、接続端子160に接続された管理装置20によって任意の値を設定可能とすることができる。こうすることで、輻輳通知確率重みα及び輻輳通知閾値重みβの変動する範囲と、重み係数Sを、管理ユーザが自由に設定・変更することが可能となる。例えば、管理ユーザは、パケット中継装置100に接続されたユーザ数や通信量等に合わせて、輻輳通知重みαおよび輻輳通知閾値重みβの変動する範囲、重み係数Sを適宜調整することができる。また、αMAX、βMAXの値および重み係数Sは、予め用意された複数の値の中から、管理ユーザが選択可能としてもよい。また、管理ユーザは、管理装置20を用いて、第1輻輳制御テーブル124や第2輻輳制御テーブル126に設定されている各値を任意に設定することが可能である。
Note that the value of αMAX in Expression (5), the value of βMAX in Expression (6), and the value of the weighting coefficient S in Expression (1) are set to arbitrary values by the
以上のようにして輻輳通知確率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では、当該キューには輻輳は発生していないと判定される。
When the congestion notification probability CP is calculated as described above, the congestion
以上のようにして、(N+1)段目のキューに輻輳が発生しているか否かを判定すると、続いて、輻輳通知判定部120は、最大輻輳通知閾値MAX_CN_TH(N+1)に対する平均キュー長QAVE(キュー長QLEN(N+1)でもよい)の割合を求め、第1輻輳判定処理と同様に、この割合に応じて輻輳の程度を判定する(ステップS550)。以上で説明した一連の処理により、第2輻輳判定処理は終了し、処理が、図4の輻輳制御処理に戻される。
When it is determined whether or not congestion has occurred in the (N + 1) -th queue as described above, the congestion
以上で説明した第1実施例によれば、複数のN段目のキューのうち、バッファメモリ122に格納されているパケット数が多いN段目のキューに対する輻輳通知確率CPが大きくなる一方で、バッファメモリ122に格納されているパケット数が少ないN段目のキューに対する輻輳通知確率CPが小さくなる。つまり、本実施例では、N段目のキュー毎に、そのキュー長に応じて輻輳通知を行う確率が動的に変動することになる。そのため、N段目の特定のキューのパケット数が増大したとしても、そのキューの対する輻輳通知確率CPが個別に大きくなるため、その特定のキューにパケットを送信した送信元に、選択的に、輻輳通知を行うことが可能になる。これにより、後段のキューに基づく輻輳制御において、前段の各キューの状態を反映させた制御が可能となり、輻輳の原因となっている送信元からの通信を的確に制限することができる。この結果、輻輳の原因となっていない送信元に対してまで制限が加わることがないため、ネットワーク全体のスループットが低下することを抑制することが可能になる。つまり、本実施例によれば、特定のキューによる共有バッファの占有を抑制し、他のキューが共有バッファを使用することができずに通信が阻害されることを抑制することができる。また、輻輳通知を受けた送信元は、通知された輻輳の状態に応じて通信量を抑えることができるため、消費電力を抑えることも可能になる。
According to the first embodiment described above, the congestion notification probability CP for the N-stage queue having a large number of packets stored in the
なお、本実施例では、図4にも示したように、N段目のキューについて第1輻輳判定処理を実行し、(N+1)段目のキューについて第2輻輳判定処理を実行することとした。しかし、第1輻輳判定処理の実行は省略してもよい。この場合であっても、第2の輻輳判定処理を実行するだけで、あたかも全てのキューで個別に段階的な輻輳制御が行われているようにパケット中継装置100は動作する。また、第2輻輳判定処理では、平均キュー長QAVEに替えて、キュー長QLEN(N+1)を輻輳通知確率CPの算出に用いることも可能である。
In this embodiment, as shown in FIG. 4, the first congestion determination process is executed for the N-th stage queue, and the second congestion determination process is executed for the (N + 1) -th stage queue. . However, the execution of the first congestion determination process may be omitted. Even in this case, only by executing the second congestion determination process, the
B.第2実施例:
図9は、第2実施例における多段キュー構造の概念を示す説明図である。上述した第1実施例との相違は、(N+1)段目のキューにおける輻輳通知判定において「輻輳クラス」という概念を用いるという点であり、N段目のキューについて実行する第1輻輳判定処理の処理内容や構成は第1実施例と同じである。
B. Second embodiment:
FIG. 9 is an explanatory diagram showing the concept of the multi-stage queue structure in the second embodiment. The difference from the first embodiment described above is that the concept of “congestion class” is used in the congestion notification determination in the (N + 1) -th stage queue, and the first congestion determination process executed for the N-th stage queue is different. The processing contents and configuration are the same as in the first embodiment.
図9に示す「輻輳クラス」は、受信したパケットが属するN段目のキューの状態(具体的には、キュー長QLEN(N))に応じてそのキューに格納されているパケットの優先度を分類するものである。本実施例では、受信したパケットが、高い優先度に分類された場合には、パケットの送信元に輻輳通知をされにくくし、低い優先度に分類された場合には、パケットの送信元に輻輳通知をされやすくする制御を行う。つまり、本実施例では、分類された輻輳クラスに応じて、パケットの送信元への輻輳通知のされやすさが変動することになる。 The “congestion class” shown in FIG. 9 indicates the priority of the packet stored in the queue according to the state of the N-th queue to which the received packet belongs (specifically, the queue length QLEN (N)). Classify. In this embodiment, when a received packet is classified as a high priority, congestion notification is made difficult for the packet transmission source, and when it is classified as a low priority, the packet transmission source is congested. Control to make notifications easier. That is, in this embodiment, the ease of notification of congestion to the packet transmission source varies according to the classified congestion class.
例えば、図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が占有されることを抑制することができる。
For example, in the case of FIG. 9, since the queue length QLEN (N) of the N-
図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のそれぞれについて異なる値が設定されており、優先度が高い輻輳クラスほど、大きな値に設定されている。
FIG. 10 is an explanatory diagram showing an example of the second congestion control table 126b in the second embodiment. In the second congestion control table 126b in the second embodiment, the maximum storage threshold MAX_TH (N + 1) representing the maximum number of packets that can be stored in the (N + 1) -th queue (that is, the entire buffer memory 122), and N A queue length QLEN (N + 1) indicating the total number of packets stored in the queue in the stage is stored. In the present embodiment, the four congestion notification
図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などと、その割合に応じて決定することができる。
FIG. 11 is a flowchart of the second congestion determination process in the second embodiment. When the second congestion determination process is started in the present embodiment, the congestion
輻輳クラスを決定すると、輻輳通知判定部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に示した輻輳制御処理に戻される。
When the congestion class is determined, the congestion
以上で説明した第2実施例では、パケットが属するN段目のキューのキュー長QLEN(N)によって輻輳クラスを決定し、当該輻輳クラス毎に設定された輻輳通知閾値とキュー長QLEN(N+1)に基づいて(N+1)段目のキューにおける輻輳通知判定を行なう。つまり、キュー長QLEN(N+1)と輻輳クラスに応じた閾値との単純な比較によって各キュー毎に輻輳通知を行うか否かを判定することできるので、パケット中継装置100の処理負担を軽減しつつ、第1実施例と同様の効果を奏することができる。
In the second embodiment described above, the congestion class is determined by the queue length QLEN (N) of the N-th queue to which the packet belongs, and the congestion notification threshold and queue length QLEN (N +) set for each congestion class are concerned. Based on 1), the congestion notification determination in the (N + 1) -th queue is performed. That is, since it is possible to determine whether or not congestion notification is to be performed for each queue by simple comparison between the queue length QLEN (N + 1) and a threshold value corresponding to the congestion class, the processing load on the
なお、図10に示した輻輳通知閾値TH#1〜TH#4の値や、輻輳クラスの割り当て方法、輻輳クラスの数は、上述した例に限られず任意に設定可能である。また、接続端子160に接続された管理装置20によって管理ユーザがこれらを任意に設定することも可能である。
Note that the values of the congestion notification threshold values
C.第3実施例:
上述した第1実施例および第2実施例では、1台のパケット中継装置100が、第1輻輳制御テーブル124と第2輻輳制御テーブル126とを備えている。これに対して、第3実施例では、第1輻輳制御テーブル124と第2輻輳制御テーブル126とが、異なるパケット中継装置に備えられている。
C. Third embodiment:
In the first embodiment and the second embodiment described above, one
図12は、第1輻輳制御テーブル124と第2輻輳制御テーブル126とが異なるパケット中継装置に備えられている例を示す説明図である。本実施例では、N段目のキューの管理を、パケット中継装置100A,100Bが行い、(N+1)段目のキューの管理を、パケット中継装置100Cが行う。パケット中継装置100A,100Bは、調停装置111を介して、パケット中継装置100Cに接続されている。調停装置111は、パケット中継装置100A,100Bから送信された制御情報をパケット中継装置100Cに転送するための装置である。各パケット中継装置と調停装置とは、ネットワークによって接続されていてもよいし、所定のバスによって接続されていてもよい。
FIG. 12 is an explanatory diagram illustrating an example in which the first congestion control table 124 and the second congestion control table 126 are provided in different packet relay apparatuses. In the present embodiment, the
パケット中継装置100A,100Bは、メモリユニット140A,140B内に、バッファメモリ122A,122Bと第1輻輳制御テーブル124A,124Bとを備えている。また、パケット中継装置100Cは、メモリユニット140C内に、バッファメモリ122Cと、第2輻輳制御テーブル126Cとを備えている。つまり、本実施例では、物理的にバッファメモリが分かれた個別バッファ方式の構成を採用している。なお、パケット中継装置100A,100Bは、それぞれ、N段目の異なるキューを管理することができる。
The
以下、本実施例における輻輳制御について説明する。まず、パケット中継装置100A,100Bがパケットを受け取ると、当該パケットがどのキューに属するかが輻輳通知判定部120A,120Bによって判定される。そして、輻輳通知判定部120A,120Bによって、上述した第1実施例における第1輻輳判定処理と同じ処理が実行される。この第1輻輳判定処理によって、受信したパケットの属するキューが輻輳状態にあると判定された場合には、輻輳通知処理部130A,130Bから、パケットの送信元に対して輻輳通知がなされる。一方、受信したパケットが輻輳状態にないと判定された場合には、輻輳通知はなされない。
Hereinafter, the congestion control in this embodiment will be described. First, when the
第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)段目のキューに基づき輻輳通知を行うか否かが判定される。
After the first congestion determination process, when the packet stored in the N-th stage queue is sent out, the data of the packet is read by the arbitration device 111 and the queue of the packet queue The long QLEN (N) is read from the first congestion control table 124A or 124B and transmitted to the
以上で説明した第3実施例のように、N段目のキューと(N+1)段目のキューとで、物理的にバッファメモリが分かれた構成であっても、第1,2実施例における共有バッファ方式と同様に、N段目のキューの状態を反映して、(N+1)段目における輻輳通知判定を実現することができる。 As in the third embodiment described above, even if the buffer memory is physically divided between the N-th queue and the (N + 1) -th queue, the sharing in the first and second embodiments. Similar to the buffer method, the congestion notification determination at the (N + 1) -th stage can be realized by reflecting the state of the queue at the N-th stage.
なお、本実施例では、複数のパケット中継装置において個別バッファ方式が採用されている例を説明した。しかし、個別バッファ方式は、1つのパケット中継装置において採用されてもよい。この場合には、図12に示した各構成が、すべて、1つのパケット中継装置に備えられる。 In this embodiment, the example in which the individual buffer method is adopted in the plurality of packet relay apparatuses has been described. However, the individual buffer method may be adopted in one packet relay device. In this case, all the components shown in FIG. 12 are provided in one packet relay device.
D.第4実施例:
上述した各実施例では、接続端子160に接続された管理装置20によって、輻輳通知判定部120の動作に関する設定や、第1輻輳制御テーブル124および第2輻輳制御テーブル126内の制御情報の設定を行うことが可能である。そこで、最後に、これらの設定を行うためのコマンドの具体例を示す。
D. Fourth embodiment:
In each of the above-described embodiments, the
図13は、輻輳通知判定部120の動作に関する設定を行うコマンドを示す説明図である。図13には、基準輻輳通知確率STD_CPや、重み係数S、輻輳通知確率重みα、輻輳通知閾値重みβ、輻輳クラスの数、各輻輳クラスの閾値、を設定するコマンドを示した。輻輳通知判定部120は、管理装置20からこれらのコマンドを受信すると、受信したコマンドに応じて、各制御情報の設定を行う。また、図13に示すように、これらの制御情報を表示するためのコマンドや、クリアするためのコマンドも用意されている。
FIG. 13 is an explanatory diagram illustrating commands for performing settings related to the operation of the congestion
図14は、第1輻輳制御テーブル124および第2輻輳制御テーブル126の設定を行うためのコマンドを示す説明図である。図14には、N段目のキューの数や、(N+1)段目のキューの最大輻輳通知閾値MAX_CN_TH(N+1)など、図5や図6に示した各制御情報を設定するためのコマンドを示した。輻輳通知判定部120は、管理装置20からこれらのコマンドを受信すると、受信したコマンドに応じて、第1輻輳制御テーブル124や第2輻輳制御テーブル126内の各制御情報の設定を行う。また、図14に示すように、これらの制御情報を表示するためのコマンドや、クリアするためのコマンドも用意されている。
FIG. 14 is an explanatory diagram showing commands for setting the first congestion control table 124 and the second congestion control table 126. In FIG. 14, the control information shown in FIGS. 5 and 6 such as the number of queues at the Nth stage and the maximum congestion notification threshold MAX_CN_TH (N + 1) of the (N + 1) th stage queue is set. The command was shown. Upon receiving these commands from the
以上で説明したように、輻輳通知判定部120の動作に関する設定や、第1輻輳制御テーブル124および第2輻輳制御テーブル126内の各値を、接続端子160に接続された管理装置20によって任意に設定可能とすれば、パケット中継装置100に接続された端末の数や通信量、ネットワークの状態、パケット中継装置100の使用状況等に応じて、きめ細かい輻輳制御を実現することが可能となる。
As described above, the settings related to the operation of the congestion
E.変形例:
以上、本発明のいくつかの実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、ソフトウェアによって実現した機能は、ハードウェアによって実現するものとしてもよく、逆に、ハードウェアで実現した機能をソフトウェアによって実現してもよい。そのほか、以下のような変形が可能である。
E. Variations:
As mentioned above, although several Example of this invention was described, this invention is not limited to these Examples, A various structure can be taken in the range which does not deviate from the meaning. For example, a function realized by software may be realized by hardware, and conversely, a function realized by hardware may be realized by software. In addition, the following modifications are possible.
・変形例1:
上述した各実施例では、N段目のキューや(N+1)段目のキューに蓄積されるパケットを、パケット数で管理している。つまり、第1輻輳制御テーブル124や第2輻輳制御テーブル126に格納されている各値は、それぞれ、パケットの数を表している。これに対して、各キューの管理は、通信量(例えば、バイト数)によって行うこととしてもよい。
・ Modification 1:
In each of the above-described embodiments, packets accumulated in the Nth queue and the (N + 1) th queue are managed by the number of packets. That is, each value stored in the first congestion control table 124 or the second congestion control table 126 represents the number of packets. On the other hand, the management of each queue may be performed according to the communication amount (for example, the number of bytes).
・変形例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輻輳制御処理のように、前段のキューの状態を反映させた輻輳判定処理を行ってもよい。
In each of the above-described embodiments, the configuration having the two-stage queues of the N-th stage queue and the (N + 1) -th stage queue has been described. The same can be applied. Specifically, in determining congestion notification of a packet in each stage queue, the congestion
・変形例3:
上記第1実施例では、パケット中継装置100が受信したパケットがN段目の複数のキューのうちのどのキューに属するのかを、輻輳通知判定部120が判定している。しかし、この判定は、パケット中継装置100とは別の他の装置が行なうこととしてもよい。また、輻輳通知判定部120とは異なる機能ブロックあるいは回路が行うこととしてもよい。
・ Modification 3:
In the first embodiment, the congestion
・変形例4:
上記第1実施例における輻輳通知確率CPを求めるための式や、輻輳通知確率重みα、輻輳通知閾値重みβを求めるための式は、一例であり、パラメータとしてN段目のキューにおける制御情報を含んでいれば、他の式であってもよい。また、輻輳通知確率CPを求めるための式や、輻輳通知確率重みα、輻輳通知閾値重みβを求めるための式、これらの式に含まれる定数、第2実施例における輻輳クラス毎に設定される輻輳通知閾値は、管理装置20を介して管理ユーザからの指示によって変更可能としてもよく、また、予め調整された複数の選択肢の中から選択可能としてもよい。こうすれば、ユーザ数や通信量の変化に応じて、パケットの輻輳通知判定の方式を適宜調整することが可能となる。
-Modification 4:
The formula for obtaining the congestion notification probability CP and the formula for obtaining the congestion notification probability weight α and the congestion notification threshold weight β in the first embodiment are examples, and control information in the queue at the Nth stage is used as a parameter. Other formulas may be used as long as they are included. Also, an expression for determining the congestion notification probability CP, an expression for determining the congestion notification probability weight α and the congestion notification threshold weight β, constants included in these expressions, and each congestion class in the second embodiment are set. The congestion notification threshold value may be changed by an instruction from the management user via the
・変形例5:
上記実施例では、接続端子160に管理装置20を接続し、この管理装置20から種々の設定を行うこととした。これに対して、パケット中継装置100に対して、直接、ディスプレイ等の表示装置やキーボード等の入力装置を接続し、これらを用いて設定を行うこととしてもよい。もちろん、パケット中継装置100自体が表示装置や入力装置を備えていてもよい。
Modification 5:
In the above embodiment, the
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…接続端子
DESCRIPTION OF
Claims (10)
パケットが一時的に格納される複数のキューを含むバッファメモリと、
前記各キューのキュー長をそれぞれ示す複数の第1のキュー長と、前記複数の第1のキュー長の合計に応じた値を示す第2のキュー長と、がそれぞれ記憶される記憶部と、
パケットを受信する受信部と、
前記パケットが属するキューを前記複数のキューの中から判別するキュー判別部と、
前記バッファメモリ内の前記判別されたキューに対して前記パケットを一時的に格納し、前記第1のキュー長と前記第2のキュー長とを更新するキュー管理部と、
前記判別されたキューに対応する前記第1のキュー長と、前記第2のキュー長とに応じて、前記パケットの送信元に対して輻輳通知を行うか否かを判定する輻輳通知判定部と、
前記輻輳通知を前記送信元に対して送信する輻輳通知送信部と、
を備え、
前記輻輳通知判定部は、前記第1のキュー長に応じて、前記受信したパケットをクラス分けし、該クラス毎に予め設定された閾値と前記第2のキュー長とに基づいて、前記判定を行う、
パケット中継装置。 A packet relay device,
Buffer memory containing multiple queues where packets are temporarily stored;
A storage unit for storing a plurality of first queue lengths indicating the queue lengths of the respective queues, and a second queue length indicating a value corresponding to a total of the plurality of first queue lengths;
A receiver for receiving the packet;
A queue determination unit for determining a queue to which the packet belongs from the plurality of queues;
A queue management unit for temporarily storing the packet in the determined queue in the buffer memory and updating the first queue length and the second queue length;
A congestion notification determination unit that determines whether or not to perform congestion notification to the transmission source of the packet according to the first queue length corresponding to the determined queue and the second queue length; ,
A congestion notification transmitter for transmitting the congestion notification to the transmission source;
Equipped with a,
The congestion notification determination unit classifies the received packet according to the first queue length, and performs the determination based on a threshold set in advance for each class and the second queue length. Do,
Packet relay device.
前記輻輳通知判定部は、前記第1のキュー長が長いほど高い確率となり、かつ、前記第2のキュー長が長いほど高い確率となる輻輳通知確率を所定の演算式に基づいて求め、該輻輳通知確率に基づき、前記判定を行う、パケット中継装置。 The packet relay device according to claim 1,
The congestion notification determination unit obtains a congestion notification probability that is higher as the first queue length is longer and is higher as the second queue length is longer based on a predetermined arithmetic expression. A packet relay device that performs the determination based on a notification probability.
前記輻輳通知判定部は、前記第2のキュー長が予め設定された第1の閾値以下の場合には前記演算式に拘わらず前記輻輳通知確率を0%とし、前記第2のキュー長が予め設定された第2の閾値以上の場合には前記演算式に拘わらず前記輻輳通知確率を100%とする、パケット中継装置。 The packet relay device according to claim 2,
The congestion notification determination unit sets the congestion notification probability to 0% regardless of the arithmetic expression when the second queue length is equal to or less than a preset first threshold, and the second queue length is set in advance. A packet relay device in which the congestion notification probability is set to 100% regardless of the arithmetic expression when the value is equal to or greater than the set second threshold value.
前記演算式または該演算式に含まれる定数を設定する設定部を備える、パケット中継装置。 The packet relay device according to claim 2 or 3, wherein
A packet relay device comprising a setting unit that sets the arithmetic expression or a constant included in the arithmetic expression.
前記クラス毎の閾値を設定する設定部を備える、パケット中継装置。 The packet relay device according to any one of claims 1 to 4 , wherein
A packet relay apparatus comprising a setting unit for setting a threshold value for each class.
前記記憶部は、前記第1のキュー長および前記第2のキュー長を、前記パケットの数またはデータ量によって記憶している、パケット中継装置。 The packet relay device according to any one of claims 1 to 5 , wherein
The packet relay device, wherein the storage unit stores the first queue length and the second queue length according to the number of packets or the amount of data.
前記輻輳通知判定部は、更に、前記第2のキュー長に応じて輻輳の程度を判定し、
前記輻輳通知送信部は、前記輻輳通知に前記輻輳の程度を含ませる、パケット中継装置。 The packet relay device according to any one of claims 1 to 6 , wherein
The congestion notification determination unit further determines the degree of congestion according to the second queue length,
The congestion notification transmission unit is a packet relay device that includes the degree of congestion in the congestion notification.
前記輻輳の程度は、前記送信元において、前記パケットの送信量を制限するために用いられる、パケット中継装置。 The packet relay device according to claim 7 ,
The degree of congestion is a packet relay apparatus used to limit the amount of packets transmitted at the transmission source.
前記バッファメモリの全容量は、前記複数のキューのキュー長の合計よりも少ない、パケット中継装置。 The packet relay device according to any one of claims 1 to 8 ,
The packet relay device, wherein a total capacity of the buffer memory is smaller than a total queue length of the plurality of queues.
前記パケット中継装置は、
パケットが一時的に格納される複数のキューを含むバッファメモリと、
前記各キューのキュー長をそれぞれ示す複数の第1のキュー長と、前記複数の第1のキュー長の合計に応じた値を示す第2のキュー長と、がそれぞれ記憶される記憶部と、を備え、
パケットを受信する工程と、
前記パケットが属するキューを前記複数のキューの中から判別する工程と、
前記バッファメモリ内の前記判別されたキューに対して前記パケットを一時的に格納し、前記第1のキュー長と前記第2のキュー長とを更新する工程と、
前記判別されたキューに対応する前記第1のキュー長と、前記第2のキュー長とに応じて、前記パケットの送信元に対して輻輳通知を行うか否かを判定する工程と、
前記輻輳通知を前記送信元に対して送信する工程と、
を備え、
前記輻輳通知を行うか否かを判定する工程では、前記第1のキュー長に応じて、前記受信したパケットをクラス分けし、該クラス毎に予め設定された閾値と前記第2のキュー長とに基づいて、前記判定を行う、
輻輳制御方法。 A congestion control method in which a packet relay device performs congestion control,
The packet relay device is:
Buffer memory containing multiple queues where packets are temporarily stored;
A storage unit for storing a plurality of first queue lengths indicating the queue lengths of the respective queues, and a second queue length indicating a value corresponding to a total of the plurality of first queue lengths; With
Receiving a packet;
Determining a queue to which the packet belongs from the plurality of queues;
Temporarily storing the packet in the determined queue in the buffer memory and updating the first queue length and the second queue length;
Determining whether to send a congestion notification to the transmission source of the packet according to the first queue length corresponding to the determined queue and the second queue length;
Transmitting the congestion notification to the source;
Equipped with a,
In the step of determining whether to perform the congestion notification, the received packets are classified according to the first queue length, and a threshold value set in advance for each class, the second queue length, Making the determination based on
Congestion control method.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010176853A JP5498889B2 (en) | 2010-08-06 | 2010-08-06 | Packet relay apparatus and congestion control method |
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 (en) | 2010-08-06 | 2010-08-06 | Packet relay apparatus and congestion control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012039330A JP2012039330A (en) | 2012-02-23 |
JP5498889B2 true JP5498889B2 (en) | 2014-05-21 |
Family
ID=45556104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010176853A Active JP5498889B2 (en) | 2010-08-06 | 2010-08-06 | Packet relay apparatus and congestion control method |
Country Status (2)
Country | Link |
---|---|
US (1) | US8593955B2 (en) |
JP (1) | JP5498889B2 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2010032533A1 (en) * | 2008-09-19 | 2012-02-09 | 日本電気株式会社 | Network protocol processing system and network protocol processing method |
US9154441B2 (en) * | 2013-01-25 | 2015-10-06 | Broadcom Corporation | Adaptive buffer allocation management |
CN103501353B (en) * | 2013-10-23 | 2017-12-12 | 北京经纬恒润科技有限公司 | A kind of data relay transmission method, apparatus and system |
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 |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
CN107547442B (en) * | 2016-06-27 | 2022-05-31 | 中兴通讯股份有限公司 | Data transmission buffer queue distribution method and device |
US10305805B2 (en) * | 2016-07-01 | 2019-05-28 | Intel Corporation | Technologies for adaptive routing using aggregated congestion information |
US10419366B1 (en) | 2017-01-31 | 2019-09-17 | Barefoot Networks, Inc. | Mechanism for communicating to remote control plane from forwarding element |
US10826840B1 (en) * | 2017-07-23 | 2020-11-03 | Barefoot Networks, Inc. | Multiple copies of stateful tables |
US10771387B1 (en) | 2017-09-28 | 2020-09-08 | Barefoot Networks, Inc. | Multiple packet data container types for a processing pipeline |
US11153211B2 (en) * | 2017-12-09 | 2021-10-19 | Intel Corporation | Fast data center congestion response |
JP2019125914A (en) * | 2018-01-16 | 2019-07-25 | アラクサラネットワークス株式会社 | Communication device and program |
WO2020236302A1 (en) * | 2019-05-23 | 2020-11-26 | Cray Inc. | Systems and methods for on the fly routing in the presence of errors |
Family Cites Families (39)
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 (en) * | 1993-09-16 | 1995-03-31 | Hitachi Ltd | Buffer control method for data communication node |
JP2639335B2 (en) * | 1993-12-22 | 1997-08-13 | 日本電気株式会社 | Congestion control method in ATM network |
US5541912A (en) * | 1994-10-04 | 1996-07-30 | At&T Corp. | Dynamic queue length thresholds in a shared memory ATM switch |
JP3434642B2 (en) * | 1995-07-07 | 2003-08-11 | 株式会社東芝 | Packet scheduling device |
JP3156752B2 (en) * | 1996-02-09 | 2001-04-16 | 日本電気株式会社 | ATM switch device and control method thereof |
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 (en) * | 1996-10-31 | 2005-01-05 | 富士通株式会社 | Feedback control device and cell scheduling device in cell switch |
JP3525656B2 (en) * | 1996-12-06 | 2004-05-10 | 株式会社日立製作所 | Packet switch and congestion notification method |
JP3000990B2 (en) * | 1997-12-18 | 2000-01-17 | 日本電気株式会社 | Discard priority control method and method |
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 (en) * | 2000-07-18 | 2002-01-31 | Fujitsu Ltd | Buffer unit and switching unit |
JP3526269B2 (en) * | 2000-12-11 | 2004-05-10 | 株式会社東芝 | Inter-network relay device and transfer scheduling method in the relay device |
DE10062640B4 (en) * | 2000-12-15 | 2006-11-02 | Infineon Technologies Ag | Method for timing the output of data packets from network nodes, network nodes and configured network |
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 |
CN1836411A (en) * | 2003-08-20 | 2006-09-20 | 日本电气株式会社 | Session relay device and relay method |
WO2005064862A1 (en) * | 2003-12-23 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and device for controlling a queue buffer |
WO2005069554A1 (en) * | 2004-01-14 | 2005-07-28 | Telefonaktiebolaget Lm 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 |
US20090147676A1 (en) * | 2005-08-31 | 2009-06-11 | Hideyuki Shimonishi | Communication system, communication terminal, relay node, communication method used therein, and program thereof |
US7961621B2 (en) * | 2005-10-11 | 2011-06-14 | Cisco Technology, Inc. | Methods and devices for backward congestion notification |
KR100757872B1 (en) * | 2006-02-06 | 2007-09-11 | 삼성전자주식회사 | Apparatus and method of backward congestion notification on network |
JP2007274476A (en) * | 2006-03-31 | 2007-10-18 | Anritsu Corp | Packet repeater |
US7936678B2 (en) * | 2006-09-13 | 2011-05-03 | Nokia Corporation | Energy aware early detection |
WO2008035600A1 (en) * | 2006-09-20 | 2008-03-27 | Panasonic Corporation | Relay transmission device and relay transmission method |
JP5157577B2 (en) * | 2008-03-27 | 2013-03-06 | 富士通株式会社 | Packet buffer management device for determining arrival packet discard and its discard determination method |
JP4465394B2 (en) * | 2008-04-08 | 2010-05-19 | 富士通株式会社 | Packet relay device, packet relay method, and packet relay program |
JP5104508B2 (en) * | 2008-04-16 | 2012-12-19 | 富士通株式会社 | Relay device and packet relay method |
JP2009290297A (en) * | 2008-05-27 | 2009-12-10 | Fujitsu Ltd | Communication device and control method for communication device |
JP5365415B2 (en) * | 2009-08-25 | 2013-12-11 | 富士通株式会社 | Packet relay apparatus and congestion control method |
JP5402581B2 (en) * | 2009-12-01 | 2014-01-29 | 富士通株式会社 | Packet relay apparatus and congestion control method |
-
2010
- 2010-08-06 JP JP2010176853A patent/JP5498889B2/en active Active
-
2011
- 2011-07-26 US US13/190,908 patent/US8593955B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8593955B2 (en) | 2013-11-26 |
US20120033550A1 (en) | 2012-02-09 |
JP2012039330A (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5498889B2 (en) | Packet relay apparatus and congestion control method | |
JP5340186B2 (en) | Packet relay apparatus and packet relay method | |
US10772081B2 (en) | Airtime-based packet scheduling for wireless networks | |
US8218437B2 (en) | Shared shaping of network traffic | |
US6556578B1 (en) | Early fair drop buffer management method | |
CN108600118B (en) | Message processing method and device and electronic equipment | |
US20210021545A1 (en) | Congestion drop decisions in packet queues | |
CN102984077B (en) | The control method of network congestion and system | |
Kasera et al. | Fast and robust signaling overload control | |
US11799803B2 (en) | Packet processing method and apparatus, communications device, and switching circuit | |
CN102461091B (en) | For the method and apparatus of congestion control | |
CN101547159A (en) | Method and device for preventing network congestion | |
CN111355673A (en) | Data processing method, device, equipment and storage medium | |
CN107835133B (en) | Stream priority control method based on multi-attribute decision | |
CN101414974A (en) | Data flux management method based on communication terminal | |
US6724776B1 (en) | Method and system for providing optimal discard fraction | |
CN112491736B (en) | Congestion control method and device, electronic equipment and storage medium | |
CN113438271A (en) | Memory, and method, device and equipment for data transmission management of Internet of things | |
CN109391558B (en) | Queue control method and device | |
US20080225729A1 (en) | Apparatus, methods and computer program products implementing fast bearer prioritization in a MAC-HS packet scheduler based on required activity detection | |
JP7156410B2 (en) | Communication device, communication control system, method and program | |
US8762567B2 (en) | Adaptive permutation group method for overload control | |
WO2024004153A1 (en) | Packet control system, packet control method, and packet control device | |
EP4282144A1 (en) | Method and system for buffer management based on predictive analytics | |
CN116489091A (en) | Flow scheduling method and device based on remote in-band telemetry and time delay |
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 |