Nothing Special   »   [go: up one dir, main page]

JP5498889B2 - Packet relay apparatus and congestion control method - Google Patents

Packet relay apparatus and congestion control method 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
Japanese (ja)
Other versions
JP2012039330A (en
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/en
Priority to US13/190,908 priority patent/US8593955B2/en
Publication of JP2012039330A publication Critical patent/JP2012039330A/en
Application granted granted Critical
Publication of JP5498889B2 publication Critical patent/JP5498889B2/en
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

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 Patent Document 1, for example. In this technique, it is determined whether or not the value of the FIFO length counter for monitoring the number of packets buffered in the entire FIFO memory exceeds a predetermined threshold value. When the value of the FIFO length counter exceeds the threshold value, control is performed to uniformly lower the threshold value for monitoring the number of packets individually prepared for each connection. According to such control, a notification that congestion has occurred is made to the transmission source terminal connected to the connection having a larger number of packets buffered than the lowered threshold value. When receiving the notification, the transmission source terminal can reduce the transmission amount of the packet. Therefore, packets received from the connection are reduced from the FIFO memory, and congestion can be suppressed.

しかし特許文献1に開示された技術では、コネクション毎に用意された閾値を一律に低下させているため、低下した閾値よりもバッファリングされているパケット数の多いコネクションに接続している送信元端末のすべてに、輻輳が発生した旨の通知がなされる。そうすると、それら全ての送信元端末がパケットの送信量を同時に低下させるため、ネットワーク全体のスループットが急激に低下する場合がある。このような問題は、パケットに限らずネットワーク等の通信回線上を流れるデータの中継を行う装置に共通して生じ得る問題である。   However, in the technique disclosed in Patent Document 1, since the threshold value prepared for each connection is uniformly reduced, the source terminal connected to the connection having a larger number of packets buffered than the lowered threshold value All of these are notified that congestion has occurred. As a result, all the transmission source terminals simultaneously reduce the packet transmission amount, and the throughput of the entire network may be drastically reduced. Such a problem is a problem that may occur in common to apparatuses that relay data flowing on a communication line such as a network as well as a packet.

特開平10−173661号公報Japanese Patent Laid-Open No. 10-173661

上述の問題を踏まえ、本発明が解決しようとする課題は、ネットワーク全体のスループットが低下することを抑制可能な輻輳制御技術を提供することである。   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.

パケット中継装置の概略構成を示す説明図である。It is explanatory drawing which shows schematic structure of a packet relay apparatus. 輻輳通知処理部の詳細な構成を示す説明図である。It is explanatory drawing which shows the detailed structure of a congestion notification process part. 多段キュー構造の概念を示す説明図である。It is explanatory drawing which shows the concept of a multistage queue structure. 輻輳制御処理のフローチャートである。It is a flowchart of a congestion control process. 第1輻輳制御テーブルの一例を示す説明図である。It is explanatory drawing which shows an example of a 1st congestion control table. 第2輻輳制御テーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the 2nd congestion control table. 第2輻輳判定処理のフローチャートである。It is a flowchart of a 2nd congestion determination process. 輻輳通知確率の算出方法の概念をグラフによって示す説明図である。It is explanatory drawing which shows the concept of the calculation method of congestion notification probability with a graph. 第2実施例における多段キュー構造の概念を示す説明図である。It is explanatory drawing which shows the concept of the multistage queue structure in 2nd Example. 第2実施例における第2輻輳制御テーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the 2nd congestion control table in 2nd Example. 第2実施例における第2輻輳判定処理のフローチャートである。It is a flowchart of the 2nd congestion determination process in 2nd Example. 第1輻輳制御テーブルと第2輻輳制御テーブルとが異なるパケット中継装置に備えられている例を示す説明図である。It is explanatory drawing which shows the example with which the 1st congestion control table and the 2nd congestion control table are provided in the different packet relay apparatus. 輻輳通知判定部の動作に関する設定を行うコマンドを示す説明図である。It is explanatory drawing which shows the command which performs the setting regarding operation | movement of a congestion notification determination part. 第1輻輳制御テーブルおよび第2輻輳制御テーブルの設定を行うためのコマンドを示す説明図である。It is explanatory drawing which shows the command for setting a 1st congestion control table and a 2nd congestion control table.

以下、本発明の実施の形態を実施例に基づき次の順序で説明する。
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 packet relay device 100 as a first embodiment of the present invention. The packet relay apparatus 100 of this embodiment includes a buffer memory 122 that temporarily stores packets received from each terminal 10 via the network line 30. Then, the packet relay apparatus 100 performs step-by-step processing of packets stored in the buffer memory 122 by a plurality of queues including queues prepared for each packet flow and queues that collectively manage these queues. to manage. That is, the packet relay apparatus 100 of this embodiment employs a shared buffer type multi-stage queue structure. The shared buffer method is a method in which a buffer memory 122 having a capacity smaller than the total capacity of each queue is shared by all the queues based on the statistical multiplexing effect. According to such a shared buffer method, it is not necessary to prepare the buffer memory 122 having a capacity corresponding to the sum of the capacity of each queue, so that the capacity of the buffer memory can be reduced, thereby reducing the component cost and power consumption Can be reduced. Hereinafter, a queue prepared for each packet flow will be described as an “N-th stage queue”, and a queue that collectively manages these queues will be described as a “(N + 1) -th stage queue”. .

パケット中継装置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 packet relay device 100 includes a control unit 110, a memory unit 140, an interface unit 150, and a connection terminal 160. The control unit 110 is configured as a computer including a CPU, RAM, and ROM. The CPU of the control unit 110 functions as the congestion notification determination unit 120 and the congestion notification processing unit 130 by loading a predetermined control program stored in the ROM into the RAM and executing it. The congestion notification determination unit 120 and the congestion notification processing unit 130 may be realized by an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

メモリユニット140は、パケットが格納されるバッファメモリ122と、N段目のキューについて輻輳制御を行うための第1輻輳制御テーブル124と、(N+1)段目のキューについて輻輳制御を行うための第2輻輳制御テーブル126と、を有している。これらのテーブルに記録される制御情報の詳細については後述する。   The memory unit 140 includes a buffer memory 122 in which packets are stored, a first congestion control table 124 for performing congestion control for the Nth stage queue, and a first congestion control table for performing congestion control for the (N + 1) th stage queue. 2 congestion control table 126. Details of the control information recorded in these tables will be described later.

インタフェース部150は、複数の物理ポート151を備えている。各物理ポート151には、ネットワーク回線30を介して端末10や他のパケット中継装置が接続される。   The interface unit 150 includes a plurality of physical ports 151. Each physical port 151 is connected to the terminal 10 and other packet relay devices via the network line 30.

輻輳通知判定部120は、インタフェース部150を通じてパケットを受信し、そのパケットのヘッダ情報に基づいて、そのパケットのフローの判別をする。そして、判別されたフローに対応するバッファメモリ122内のキュー(N段目のキュー)にパケットを格納する。このとき輻輳通知判定部120は、第1輻輳制御テーブル124および第2輻輳制御テーブル126の更新も行う。具体的な更新方法については後述する。輻輳通知判定部120は、また、バッファメモリ122内の各キュー(N段目のキュー)から所定のスケジューリング方式に基づいて送出されたパケットを、インタフェース部150を通じてそのパケットの送信先に転送する機能を有する。   The congestion notification determination unit 120 receives a packet through the interface unit 150, and determines the flow of the packet based on the header information of the packet. Then, the packet is stored in a queue (Nth queue) in the buffer memory 122 corresponding to the determined flow. At this time, the congestion notification determination unit 120 also updates the first congestion control table 124 and the second congestion control table 126. A specific update method will be described later. The congestion notification determination unit 120 also has a function of transferring a packet transmitted from each queue (N-th stage queue) in the buffer memory 122 based on a predetermined scheduling method to the transmission destination of the packet through the interface unit 150. Have

輻輳通知判定部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 notification determination unit 120 determines whether or not to notify the transmission source of the received packet. Congestion notification refers to notifying a packet transmission source so as to perform control to suppress the occurrence of congestion. When the congestion notification determination unit 120 determines to perform the congestion notification, the congestion notification determination unit 120 transmits congestion information including the address of the transmission source of the packet and information indicating the congestion state (degree of congestion) to the congestion notification processing unit 130. The congestion notification determination unit 120 corresponds to the “queue determination unit”, “queue management unit”, and “congestion notification determination unit” of the present application.

図2は、輻輳通知処理部130の詳細な構成を示す説明図である。輻輳通知処理部130は、輻輳通知パケット生成部132と、輻輳通知パケット送信部134と、を備えている。輻輳通知パケット生成部132は、輻輳通知判定部120から受信した輻輳情報に基づき、輻輳通知を行うためのパケット(輻輳通知パケット)を生成する。この輻輳通知パケットには、パケットの送信先のアドレスと輻輳状態を示す情報とが含まれる。輻輳通知パケット送信部134は、インタフェース部150を通じて、この輻輳通知パケットを該当するアドレスに送信する。輻輳通知パケットを受信したパケットの送信元は、通知された輻輳の程度に応じて、パケットの送信量を制限する。   FIG. 2 is an explanatory diagram showing a detailed configuration of the congestion notification processing unit 130. The congestion notification processing unit 130 includes a congestion notification packet generation unit 132 and a congestion notification packet transmission unit 134. The congestion notification packet generation unit 132 generates a packet (congestion notification packet) for performing congestion notification based on the congestion information received from the congestion notification determination unit 120. This congestion notification packet includes an address of a packet transmission destination and information indicating a congestion state. The congestion notification packet transmission unit 134 transmits the congestion notification packet to the corresponding address through the interface unit 150. The transmission source of the packet that has received the congestion notification packet limits the amount of packet transmission according to the notified degree of congestion.

接続端子160(図1)には、所定のケーブルを介して管理装置20が接続される。管理装置20には、ディスプレイ等の表示装置や、キーボード、マウス等の入力装置が接続されている。パケット中継装置100を管理するユーザ(以下、「管理ユーザ」という)は、この管理装置20を用いて、当該パケット中継装置100に対する種々の設定を行なうことができる。設定内容の具体例については後述する。接続端子160と管理装置20とを接続するインタフェースとしては、様々な規格のものを適用可能である。例えば、シリアルインタフェースや、LANインタフェース、USBインタフェースなどを適用することができる。   The management device 20 is connected to the connection terminal 160 (FIG. 1) via a predetermined cable. The management device 20 is connected to a display device such as a display and an input device such as a keyboard and a mouse. A user who manages the packet relay apparatus 100 (hereinafter referred to as “management user”) can use the management apparatus 20 to make various settings for the packet relay apparatus 100. A specific example of the setting contents will be described later. As an interface for connecting the connection terminal 160 and the management apparatus 20, various standards can be applied. For example, a serial interface, a LAN interface, a USB interface, or the like can be applied.

図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 physical port 151. Specifically, for example, a packet from a certain user A is always stored in the Nth queue # 1, and a packet from a certain user Z is always stored in the Nth queue # 1000. Is possible.

本実施例では、統計多重効果を利用した共有バッファ方式の多段キュー構造を採用している。そのため、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 packet relay apparatus 100 repeatedly executes. This congestion control processing is executed simultaneously and in parallel with processing for the packet relay device 100 to queue and relay packets. Since processing for queuing and relaying packets is well known, description thereof is omitted in this embodiment.

この輻輳制御処理の実行が開始されると、輻輳通知判定部120は、インタフェース部104を通じてパケットを受信する(ステップS100)。そして、輻輳通知判定部120は、受信したパケットのヘッダ情報を解析してフローを判別し、そのパケットがN段目のキューのうちどのキューに属するかを判定する(ステップS200)。   When the execution of the congestion control process is started, the congestion notification determination unit 120 receives a packet through the interface unit 104 (step S100). Then, the congestion notification determination unit 120 determines the flow by analyzing the header information of the received packet, and determines to which queue of the N-th stage queue the packet belongs (step S200).

輻輳通知判定部120は、パケットの属するキュー(N段目のキュー)を判定すると、メモリユニット140内の第1輻輳制御テーブル124に記録されている制御情報に基づき、そのキュー(N段目のキュー)に輻輳が発生しているか否かを判定する(ステップS300)。以下、この判定処理を、第1輻輳判定処理という。この第1輻輳判定処理についての詳細は後述する。   When the congestion notification determination unit 120 determines the queue to which the packet belongs (Nth queue), the congestion notification determination unit 120 determines the queue (Nth queue) based on the control information recorded in the first congestion control table 124 in the memory unit 140. It is determined whether or not the queue is congested (step S300). Hereinafter, this determination process is referred to as a first congestion determination process. Details of the first congestion determination process will be described later.

第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 notification determination unit 120 determines whether the congestion has been determined by the first congestion determination process. Congestion information including the degree and information indicating the address of the transmission source of the packet received in step S100 is notified to the congestion notification processing unit 130. Upon receiving this notification, the congestion notification processing unit 130 generates a congestion notification packet based on the notified congestion information (step S700), and transmits the congestion notification packet to the transmission source of the packet received in step S100 (step S700). S800).

上記ステップ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 notification determination unit 120 further performs the second congestion control. Based on the control information recorded in the table 126, a process of determining whether or not congestion has occurred in the (N + 1) -th stage queue (hereinafter referred to as “second congestion determination process”) is executed (step S500). ). Details of the second congestion determination process will be described later.

第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 notification determination unit 120 is determined by the second congestion determination process. The congestion notification processing unit 130 is notified of congestion information including the degree of congestion and information indicating the address of the transmission source of the packet received in step S100. Upon receiving this notification, the congestion notification processing unit 130 generates a congestion notification packet based on the notified congestion information (step S700), and transmits the congestion notification packet to the transmission source of the packet received in step S100 (step S700). S800).

一方、第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 notification determination unit 120 updates the first congestion control table 124 as follows. That is, the congestion notification determination unit 120 stores the received packet in the corresponding queue in the buffer memory 122 and simultaneously increases the queue length QLEN (N) of the corresponding queue number in the first congestion control table 124 by one. When a packet is later sent from the queue in the buffer memory 122, the congestion notification determination unit 120 decreases the queue length QLEN (N) of the corresponding queue number in the first congestion control table 124 by one.

輻輳通知判定部120は、上述した第1輻輳判定処理において、受信したパケットに対応するキューのキュー長QLEN(N)が、そのキューに設定された輻輳通知閾値CN_TH(N)未満の場合には、当該キューに輻輳は発生していないと判定する。一方、受信したパケットに対応するキューのキュー長QLEN(N)が、輻輳通知閾値CN_TH(N)以上の場合には、輻輳通知判定部120は、当該キューに輻輳が発生していると判定する。   In the first congestion determination process described above, the congestion notification determination unit 120 determines that the queue length QLEN (N) of the queue corresponding to the received packet is less than the congestion notification threshold CN_TH (N) set for the queue. It is determined that no congestion has occurred in the queue. On the other hand, if the queue length QLEN (N) of the queue corresponding to the received packet is equal to or greater than the congestion notification threshold CN_TH (N), the congestion notification determination unit 120 determines that congestion has occurred in the queue. .

例えば、図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 queue number # 4, the queue length QLEN (N) is “90”, which exceeds the congestion notification threshold CN_TH (N) “80”. The notification determination unit 120 determines that congestion has occurred in the queue. On the other hand, since the queue lengths QLEN (N) of all other queues are all less than each congestion notification threshold CN_TH (N), the congestion notification determination unit 120 determines that no congestion has occurred for the other queues. To do. If the congestion notification determination unit 120 determines that congestion has occurred, the congestion notification determination unit 120 calculates the ratio of the queue length QLEN (N) to the congestion notification threshold CN_TH (N), and determines the degree of congestion according to this ratio. To do. The degree of congestion can be determined based on a predetermined table such as “light congestion” and “heavy congestion”.

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 notification determination unit 120 updates the second congestion control table 126 as follows. That is, the congestion notification determination unit 120 stores the received packet in the corresponding N-th stage queue in the buffer memory 122 and simultaneously increases the queue length QLEN (N + 1) in the second congestion control table 126 by one. Further, the average queue length QAVE is updated by the method described later. When a packet is transmitted later from the buffer memory 122, the congestion notification determination unit 120 decreases the queue length QLEN (N + 1) in the second congestion control table 126 by one and sets the average queue length QAVE to Update.

図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 notification determination unit 120 acquires the queue length QLEN (N) of the N-th queue to which the received packet belongs and the congestion notification threshold CN_TH (N) from the first congestion control table 124 (step S520). When the queue length QLEN (N) and the congestion notification threshold CN_TH (N) are acquired from the first congestion control table 124, the congestion notification determination unit 120 obtains the acquired queue length QLEN (N) and the congestion notification threshold CN_TH (N). Based on the control information recorded in the second congestion control table 126, the congestion notification probability CP is calculated (step S530). With this calculation process, the congestion notification probability CP takes a different value for each queue (N-th stage queue) to which the received packet belongs.

図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 notification determination unit 120 first calculates the congestion notification probability CP by calculating the average queue length QAVE calculated in step S510 and the maximum congestion notification threshold MAX_CN_TH (N + 1) recorded in the second congestion control table 126. Depending on the minimum congestion notification threshold MIN_CN_TH (N + 1), the calculation formulas are divided into cases. Specifically, case classification is performed as in the following (A), (B), and (C). Then, according to each case, the congestion notification probability CP is calculated based on the following formulas (2) to (4). In FIG. 8, the range of values that can be taken by the congestion notification probability CP calculated in this way is indicated by a solid line and hatching.

(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 management device 20 connected to the connection terminal 160. Can be possible. By doing so, the management user can freely set and change the range in which the congestion notification probability weight α and the congestion notification threshold weight β vary, and the weight coefficient S. For example, the management user can appropriately adjust the fluctuation range of the congestion notification weight α and the congestion notification threshold weight β and the weighting factor S according to the number of users connected to the packet relay device 100, the communication amount, and the like. Further, the values of αMAX and βMAX and the weighting coefficient S may be selectable by the management user from a plurality of values prepared in advance. Further, the management user can arbitrarily set each value set in the first congestion control table 124 and the second congestion control table 126 by using the management device 20.

以上のようにして輻輳通知確率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 notification determination unit 120, based on the calculated congestion notification probability CP, the (N + 1) -th queue (in other words, the entire buffer memory 122). It is determined whether or not congestion has occurred (step S540). Specifically, for example, as shown 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, and the minimum congestion notification threshold MIN_CN_TH (N + 1). Is 500, the reference congestion notification probability STD_CP is 50%, the queue length QLEN (N + 1) is 700, the average queue length QAVE is 700, the constant αMAX is 40%, and the constant βMAX is 400. Then, when the queue length QLEN (N) of the N-th queue to which the packet belongs is 3/4 of the maximum storage threshold MAX_TH (N), the congestion notification probability weight α is 20% and the congestion notification threshold weight β is 200. Is calculated. Since the average queue length QAVE of the (N + 1) -th stage queue is 700, the congestion notification probability CP in the (N + 1) -th stage queue of the packet is calculated as 56%. Therefore, in step S540, it is determined that congestion has occurred with a probability of 56%. In addition, for example, when the queue length QLEN (N) of the N-th queue to which the packet belongs is 1/8 of the maximum storage threshold MAX_TH (N), the congestion notification probability weight α is −30%, the congestion notification threshold The weight β is calculated as −300. Further, since the average queue length QAVE of the (N + 1) -th stage queue is 700, the congestion notification probability CP in the (N + 1) -th stage queue of the packet is 0%. For this reason, in step S540, it is determined that no congestion has occurred in the queue.

以上のようにして、(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 notification determination unit 120 then determines the average queue length for the maximum congestion notification threshold MAX_CN_TH (N + 1). The ratio of QAVE (which may be queue length QLEN (N + 1)) is obtained, and the degree of congestion is determined according to this ratio in the same manner as in the first congestion determination process (step S550). Through the series of processes described above, the second congestion determination process ends, and the process returns to the congestion control process of FIG.

以上で説明した第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 buffer memory 122 among the plurality of N-stage queues increases. The congestion notification probability CP for the N-th queue with a small number of packets stored in the buffer memory 122 is reduced. That is, in this embodiment, for each Nth stage queue, the probability of performing congestion notification dynamically changes according to the queue length. Therefore, even if the number of packets in a specific queue at the N-th stage increases, the congestion notification probability CP for that queue individually increases. Congestion notification can be performed. Thereby, in the congestion control based on the queue in the subsequent stage, control reflecting the state of each queue in the previous stage is possible, and communication from the transmission source causing the congestion can be accurately restricted. As a result, no restriction is imposed on a transmission source that does not cause congestion, so that it is possible to suppress a decrease in throughput of the entire network. That is, according to the present embodiment, it is possible to suppress the occupation of the shared buffer by a specific queue, and it is possible to prevent communication from being inhibited because other queues cannot use the shared buffer. In addition, since the transmission source that has received the congestion notification can reduce the amount of communication according to the notified congestion state, it is also possible to reduce power consumption.

なお、本実施例では、図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 packet relay apparatus 100 operates as if the gradual congestion control is performed individually in all the queues. In the second congestion determination process, the queue length QLEN (N + 1) can be used for calculating the congestion notification probability CP instead of the average queue length QAVE.

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-th queue # 1000 is relatively short, the congestion notification determination unit 120 determines that the packets belonging to the N-th queue # 1000 Assign to high congestion class 4. On the other hand, the queue # 1 at the Nth stage has a relatively long queue length QLEN (N), so the congestion notification determination unit 120 assigns packets belonging to the queue # 1 at the Nth stage to the congestion class 2 having a low priority. . That is, packets belonging to the N-th stage queue having a long queue length QLEN (N) are classified into a low-priority congestion class. In the second congestion determination process in the (N + 1) -th stage queue, The possibility of being determined to be in a congestion state increases. As a result, the buffer memory 122 can be prevented from being occupied by a specific queue having a long queue length QLEN (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 thresholds TH # 1 to TH # 4 respectively set for the congestion classes 1 to 4 are stored in the second congestion control table 126b. As shown in FIG. 9, the congestion notification thresholds TH # 1 to TH # 4 are set to different values for each of the congestion classes 1 to 4, and the congestion class with higher priority is set to a larger value. Yes.

図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 notification determination unit 120 first determines the congestion class (N) of the packet according to the queue length QLEN (N) of the N-th queue to which the received packet belongs. 1-4) is determined (step S510b). For the congestion class, for example, the ratio of the queue length QLEN (N) to the congestion notification threshold CN_TH (N) (or the maximum storage threshold MAX_TH (N)) set for the queue is obtained, and if the obtained ratio is up to 25% Class 1 can be determined according to the ratio of class 2 up to 50%, class 2 up to 75%, class 4 up to 75% or more.

輻輳クラスを決定すると、輻輳通知判定部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 notification determination unit 120 sets the congestion notification threshold associated with the determined congestion class and the queue length QLEN (N + 1) of the (N + 1) -th stage queue to the second congestion control. Obtained from the table 126b (step S520b), and compares them (step S540b). As a result of this comparison, when the queue length QLEN (N + 1) is equal to or greater than the congestion notification threshold corresponding to the congestion class, the congestion notification determination unit 120 determines that the queue is in a congestion state and performs congestion notification. And decide. On the other hand, if the queue length QLEN (N + 1) is less than the congestion notification threshold corresponding to the congestion class, it is determined that the queue is not in a congestion state. Finally, the congestion notification determination unit 120 calculates a ratio of the queue length QLEN (N + 1) to the congestion notification threshold, and determines the degree of congestion according to this ratio (step S550b). Through the series of processes described above, the second congestion determination process in the second embodiment is completed, and the process returns to the congestion control process shown in FIG.

以上で説明した第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 packet relay device 100 is reduced. However, the same effect as the first embodiment can be obtained.

なお、図10に示した輻輳通知閾値TH#1〜TH#4の値や、輻輳クラスの割り当て方法、輻輳クラスの数は、上述した例に限られず任意に設定可能である。また、接続端子160に接続された管理装置20によって管理ユーザがこれらを任意に設定することも可能である。   Note that the values of the congestion notification threshold values TH # 1 to TH # 4, the congestion class assignment method, and the number of congestion classes shown in FIG. 10 are not limited to the above-described example, and can be arbitrarily set. Further, the management user can arbitrarily set these by the management device 20 connected to the connection terminal 160.

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 packet relay device 100 includes the first congestion control table 124 and the second congestion control table 126. In contrast, in the third embodiment, the first congestion control table 124 and the second congestion control table 126 are provided in different packet relay apparatuses.

図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 packet relay devices 100A and 100B manage the queue at the Nth stage, and the packet relay device 100C manages the queue at the (N + 1) th stage. The packet relay devices 100A and 100B are connected to the packet relay device 100C via the arbitration device 111. The arbitrating device 111 is a device for transferring control information transmitted from the packet relay devices 100A and 100B to the packet relay device 100C. Each packet relay device and the arbitrating device may be connected by a network or may be connected by a predetermined bus.

パケット中継装置100A,100Bは、メモリユニット140A,140B内に、バッファメモリ122A,122Bと第1輻輳制御テーブル124A,124Bとを備えている。また、パケット中継装置100Cは、メモリユニット140C内に、バッファメモリ122Cと、第2輻輳制御テーブル126Cとを備えている。つまり、本実施例では、物理的にバッファメモリが分かれた個別バッファ方式の構成を採用している。なお、パケット中継装置100A,100Bは、それぞれ、N段目の異なるキューを管理することができる。   The packet relay apparatuses 100A and 100B include buffer memories 122A and 122B and first congestion control tables 124A and 124B in the memory units 140A and 140B. The packet relay device 100C includes a buffer memory 122C and a second congestion control table 126C in the memory unit 140C. That is, in this embodiment, an individual buffer system configuration in which buffer memories are physically separated is employed. Note that the packet relay apparatuses 100A and 100B can manage different queues in the Nth stage.

以下、本実施例における輻輳制御について説明する。まず、パケット中継装置100A,100Bがパケットを受け取ると、当該パケットがどのキューに属するかが輻輳通知判定部120A,120Bによって判定される。そして、輻輳通知判定部120A,120Bによって、上述した第1実施例における第1輻輳判定処理と同じ処理が実行される。この第1輻輳判定処理によって、受信したパケットの属するキューが輻輳状態にあると判定された場合には、輻輳通知処理部130A,130Bから、パケットの送信元に対して輻輳通知がなされる。一方、受信したパケットが輻輳状態にないと判定された場合には、輻輳通知はなされない。   Hereinafter, the congestion control in this embodiment will be described. First, when the packet relay apparatuses 100A and 100B receive a packet, the congestion notification determination units 120A and 120B determine to which queue the packet belongs. The congestion notification determination units 120A and 120B perform the same process as the first congestion determination process in the first embodiment described above. When it is determined by the first congestion determination process that the queue to which the received packet belongs is in a congestion state, the congestion notification processing units 130A and 130B notify the congestion to the packet transmission source. On the other hand, when it is determined that the received packet is not in a congestion state, no congestion notification is made.

第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 packet relay device 100C. At the same time, the queue length QLEN (N) in the first congestion control tables 124A and 124B decreases by one, and the queue length QLEN (N + 1) in the second congestion control table 126C increases by one. In the packet relay device 100C that has received the packet and the queue length QLEN (N), the same processing as the second congestion determination processing of the first embodiment described above is executed, thereby causing congestion notification based on the (N + 1) -th stage queue. It is determined whether or not to perform.

以上で説明した第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 management device 20 connected to the connection terminal 160 sets the settings related to the operation of the congestion notification determination unit 120 and the control information in the first congestion control table 124 and the second congestion control table 126. Is possible. Therefore, finally, a specific example of a command for performing these settings will be shown.

図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 notification determination unit 120. FIG. 13 shows commands for setting the reference congestion notification probability STD_CP, the weight coefficient S, the congestion notification probability weight α, the congestion notification threshold weight β, the number of congestion classes, and the threshold value of each congestion class. When the congestion notification determination unit 120 receives these commands from the management device 20, the congestion notification determination unit 120 sets each control information according to the received commands. Further, as shown in FIG. 13, a command for displaying these control information and a command for clearing are also prepared.

図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 management device 20, the congestion notification determination unit 120 sets each control information in the first congestion control table 124 and the second congestion control table 126 according to the received command. Further, as shown in FIG. 14, a command for displaying the control information and a command for clearing are also prepared.

以上で説明したように、輻輳通知判定部120の動作に関する設定や、第1輻輳制御テーブル124および第2輻輳制御テーブル126内の各値を、接続端子160に接続された管理装置20によって任意に設定可能とすれば、パケット中継装置100に接続された端末の数や通信量、ネットワークの状態、パケット中継装置100の使用状況等に応じて、きめ細かい輻輳制御を実現することが可能となる。   As described above, the settings related to the operation of the congestion notification determination unit 120 and the values in the first congestion control table 124 and the second congestion control table 126 are arbitrarily set by the management device 20 connected to the connection terminal 160. If the setting is possible, fine congestion control can be realized according to the number of terminals connected to the packet relay device 100, the traffic, the state of the network, the usage status of the packet relay device 100, and the like.

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輻輳制御処理のように、前段のキューの状態を反映させた輻輳判定処理を行ってもよい。
Modification 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 notification determination unit 120 performs congestion notification determination based on the control information of the queue before the previous stage and the control information of the queue at that stage. For example, there are a plurality of types of first congestion control tables 124 for managing the N-th stage queue, and second congestion control tables 126 for managing the (N + 1) -th stage queue are included in the respective first congestion control tables 124. On the other hand, if one is prepared, a third congestion control table for managing these second congestion control tables 126 as a queue at the (N + 2) stage can be prepared. In this case, in the (N + 1) -th stage queue, as in the first congestion control process described above, the congestion determination process is simply performed by comparing the (N + 1) -th stage queue length with a predetermined threshold value. Alternatively, as in the second congestion control process described above, a congestion determination process reflecting the state of the previous queue may be performed.

・変形例3:
上記第1実施例では、パケット中継装置100が受信したパケットがN段目の複数のキューのうちのどのキューに属するのかを、輻輳通知判定部120が判定している。しかし、この判定は、パケット中継装置100とは別の他の装置が行なうこととしてもよい。また、輻輳通知判定部120とは異なる機能ブロックあるいは回路が行うこととしてもよい。
・ Modification 3:
In the first embodiment, the congestion notification determination unit 120 determines to which of the plurality of N-th queues the packet received by the packet relay device 100 belongs. However, this determination may be performed by another device different from the packet relay device 100. Moreover, it is good also as a functional block or circuit different from the congestion notification determination part 120 performing.

・変形例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 management device 20, or may be selected from a plurality of options adjusted in advance. This makes it possible to appropriately adjust the packet congestion notification determination method according to changes in the number of users and traffic.

・変形例5:
上記実施例では、接続端子160に管理装置20を接続し、この管理装置20から種々の設定を行うこととした。これに対して、パケット中継装置100に対して、直接、ディスプレイ等の表示装置やキーボード等の入力装置を接続し、これらを用いて設定を行うこととしてもよい。もちろん、パケット中継装置100自体が表示装置や入力装置を備えていてもよい。
Modification 5:
In the above embodiment, the management device 20 is connected to the connection terminal 160 and various settings are performed from the management device 20. On the other hand, a display device such as a display or an input device such as a keyboard may be directly connected to the packet relay device 100 and settings may be performed using these. Of course, the packet relay device 100 itself may include a display device and an input device.

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 SYMBOLS 10 ... Terminal 20 ... Management apparatus 30 ... Network line 100, 100A, 100B, 100C ... Packet relay apparatus 104 ... Interface part 110 ... Control unit 111 ... Arbitration apparatus 120, 120A, 120B, 120C ... Congestion notification determination part 122, 122A, 122B, 122C ... Buffer memory 124, 124A, 124B ... First congestion control table 126, 126C ... Second congestion control table 126b ... Second congestion control table 130, 130A, 130B, 130C ... Congestion notification processing unit 132 ... Congestion notification packet Generation unit 134 ... Congestion notification packet transmission unit 140, 140A, 140B, 140C ... Memory unit 150 ... Interface unit 151 ... Physical port 160 ... Connection terminal

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に記載のパケット中継装置であって、
前記輻輳通知判定部は、前記第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に記載のパケット中継装置であって、
前記輻輳通知判定部は、前記第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.
請求項2または請求項3に記載のパケット中継装置であって、
前記演算式または該演算式に含まれる定数を設定する設定部を備える、パケット中継装置。
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.
請求項1から請求項4までのいずれか一項に記載のパケット中継装置であって、
前記クラス毎の閾値を設定する設定部を備える、パケット中継装置。
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から請求項までのいずれか一項に記載のパケット中継装置であって、
前記記憶部は、前記第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.
請求項1から請求項までのいずれか一項に記載のパケット中継装置であって、
前記輻輳通知判定部は、更に、前記第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.
請求項1から請求項までのいずれか一項に記載のパケット中継装置であって、
前記バッファメモリの全容量は、前記複数のキューのキュー長の合計よりも少ない、パケット中継装置。
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.
JP2010176853A 2010-08-06 2010-08-06 Packet relay apparatus and congestion control method Active JP5498889B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* 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 (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

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