JP6903436B2 - Communication device and communication method - Google Patents

Communication device and communication method Download PDF

Info

Publication number
JP6903436B2
JP6903436B2 JP2017003781A JP2017003781A JP6903436B2 JP 6903436 B2 JP6903436 B2 JP 6903436B2 JP 2017003781 A JP2017003781 A JP 2017003781A JP 2017003781 A JP2017003781 A JP 2017003781A JP 6903436 B2 JP6903436 B2 JP 6903436B2
Authority
JP
Japan
Prior art keywords
user
packet
virtual queue
queue length
shaper
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
JP2017003781A
Other languages
Japanese (ja)
Other versions
JP2017188870A (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 US15/455,627 priority Critical patent/US10326705B2/en
Publication of JP2017188870A publication Critical patent/JP2017188870A/en
Application granted granted Critical
Publication of JP6903436B2 publication Critical patent/JP6903436B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク内でバーストトラフィックなどによるパケット廃棄の検知、予測及びパケットフローの平滑化を行う通信装置及び方法に関する。 The present invention relates to a communication device and a method for detecting, predicting, and smoothing packet flow due to burst traffic or the like in a network.

ネットワーク内でパケットフローの帯域制御または通信品質の保証を行う技術として、例えば特許文献1および特許文献2に記載された技術がある。
特許文献1では、送信パケットをネットワーク内で各パケットのヘッダ情報に応じてそれぞれ個別の帯域を割り当てられた複数のキューグループに分類し、各キューグループ内で送信優先度別の複数のキューを形成するようにバッファメモリにキューイングする送信優先度制御装置と、バッファメモリの各キューグループから、該キューグループに割り当てられた帯域を保証しながら、送信優先度に応じて送信パケットを読み出すパケット読出し制御装置が開示されている。
As a technique for controlling the bandwidth of packet flow or guaranteeing the communication quality in a network, for example, there are techniques described in Patent Document 1 and Patent Document 2.
In Patent Document 1, transmission packets are classified into a plurality of queue groups to which individual bands are allocated according to the header information of each packet in the network, and a plurality of queues according to transmission priority are formed in each queue group. Packet read control that reads out transmission packets according to the transmission priority while guaranteeing the bandwidth allocated to the queue group from each queue group in the buffer memory and the transmission priority control device that queues to the buffer memory. The device is disclosed.

特許文献2には、キューとして用いるバッファの容量を抑制しつつ、多数のユーザやサービスに対応するフローの通信品質を確保するために、通信パケットの受け渡しに関する受渡情報を入力値として、出力が入力に対して集約される所定の関数によって求められた値に応じて、受信した通信パケットを複数のキューのいずれかへ振り分けて格納する振分部と、キューごとに帯域を制御して、複数のキューに蓄積された通信パケットを送信のために出力する帯域制御部を備えた中継装置が開示されている。 In Patent Document 2, in order to secure the communication quality of the flow corresponding to a large number of users and services while suppressing the capacity of the buffer used as a queue, the output is input with the transfer information regarding the transfer of communication packets as an input value. A distribution unit that distributes and stores received communication packets to one of a plurality of queues according to a value obtained by a predetermined function aggregated with respect to the queue, and a plurality of distribution units that control the bandwidth for each queue. A relay device including a band control unit that outputs communication packets stored in a queue for transmission is disclosed.

また、特許文献3には、実際にはパケットを挿入せずに、キュー長だけを管理する仮想パケットキューを用いて、仮想パケットキューが保持するキュー長と廃棄条件により、実際のパケットを実パケットキューに挿入するか廃棄するかの制御を行う技術が開示されている。この文献では、廃棄条件は、複数のキューの合計キュー長に基づいて定められるという記載がある。 Further, in Patent Document 3, a virtual packet queue that manages only the queue length without actually inserting a packet is used, and an actual packet is converted into an actual packet according to the queue length and the discard condition held by the virtual packet queue. A technique for controlling whether to insert or discard a queue is disclosed. In this document, it is stated that the disposal conditions are determined based on the total queue length of a plurality of queues.

特開平11−346246号公報Japanese Unexamined Patent Publication No. 11-346246 特開2013−34164号公報Japanese Unexamined Patent Publication No. 2013-34164 特開2005−295524号公報Japanese Unexamined Patent Publication No. 2005-295524

サーバからユーザに向けたトラフィックは、通信速度が速いサーバに近い回線からネットワークを経由してユーザ回線を収容するエッジノードに送られる。ユーザ回線を収容するエッジノードは、ユーザ回線行きのトラフィックを蓄積するキューを有するが、ユーザ回線はネットワーク内の回線と比較し低速であるため、キューが溢れてパケットが廃棄される場合がある。
ネットワーク内のコアノードでユーザ毎に通信パケットのシェーピングを行えば、エッジノードでのパケットのロスを少なくできる。しかしその為には、通信していないユーザも含めすべてのユーザに対してキューを設け、さらにユーザ識別の為の通信パケットのヘッダ条件とキューの帯域をコアノードに設定する必要があり、多数のユーザ、例えば10万といった規模のユーザを収容することは困難である。
Traffic from the server to the user is sent from a line close to the server with a high communication speed to the edge node accommodating the user line via the network. The edge node accommodating the user line has a queue for accumulating traffic to the user line, but since the user line is slower than the line in the network, the queue may overflow and packets may be discarded.
If communication packets are shaped for each user at the core node in the network, packet loss at the edge node can be reduced. However, for that purpose, it is necessary to provide a queue for all users including users who are not communicating, and to set the header condition of the communication packet for user identification and the bandwidth of the queue in the core node, and many users. It is difficult to accommodate users on the scale of, for example, 100,000.

特許文献1または特許文献2のように、ネットワーク内のノードで通信パケットのヘッダ情報や受渡情報からテーブルの参照や所定の関数によって複数キューのいずれかへ振り分ける方式では、収容可能なユーザ数を増やすことは可能だが、複数のユーザ回線行きの通信パケットが一つのキューに入るため、ユーザ毎にきめ細かく制御することができず、ユーザ毎の公平性の管理が難しいという課題があった。
本発明は、上記課題を解決するためになされたもので、多数のユーザが接続されるネットワークにおいて、コアノード内のシェーピングを行うキューの数が、全収容ユーザ数に比べて少ない場合でも、全ユーザに対しエッジノードにおけるパケットの溢れを回避する技術を提供することを目的とする。
In a method such as Patent Document 1 or Patent Document 2, in which a node in a network distributes communication packet header information and delivery information to one of a plurality of queues by table reference or a predetermined function, the number of users that can be accommodated is increased. However, since communication packets destined for a plurality of user lines are included in one queue, it is not possible to finely control each user, and it is difficult to manage fairness for each user.
The present invention has been made to solve the above problems, and in a network to which a large number of users are connected, all users even if the number of queues for shaping in the core node is smaller than the total number of accommodated users. It is an object of the present invention to provide a technique for avoiding packet overflow at an edge node.

上記課題を解決するために本発明においては、一例として、サーバから配信されるユーザ宛てのパケットをネットワークへ送信するとともにネットワークを介して受信したパケットをサーバに送信する通信装置であって、ユーザ宛てのパケットが、ネットワークのエッジに位置するエッジ装置からユーザに送信される場合に、通信装置において、パケットに含まれるパケット関連情報を抽出し、パケット関連情報とエッジ装置とユーザ間の回線の帯域情報に基づいて、ユーザ毎にエッジ装置におけるユーザ宛ての送信キューのキュー長の推定値である仮想キュー長を計算して保持し、仮想キュー長および予め定めた条件に基づいてユーザ毎に帯域制御の要否を判断し、帯域制御が必要と判断されたユーザ毎に、全ユーザ数より少ない数の第1のシェーパキューのいずれかを割り当てることによって、該ユーザ宛てのパケットの帯域制御を行うようにしたものである。 In order to solve the above problems, in the present invention, as an example, a communication device for transmitting a packet addressed to a user delivered from a server to a network and transmitting a packet received via the network to a server, which is addressed to the user. When the packet is sent from the edge device located at the edge of the network to the user, the communication device extracts the packet-related information contained in the packet, and the packet-related information and the bandwidth information of the line between the edge device and the user. Based on, the virtual queue length, which is an estimated value of the queue length of the transmission queue addressed to the user in the edge device, is calculated and held for each user, and the bandwidth is controlled for each user based on the virtual queue length and predetermined conditions. Bandwidth control of packets addressed to the user is performed by assigning one of the first shaper queues, which is less than the total number of users, to each user who is judged to be necessary or not and which is judged to require bandwidth control. It was done.

本発明によれば、多数のユーザが接続されるネットワークにおいて、コアノード内のシェーピングを行うキューの数が、全収容ユーザ数に比べて少ない場合でも、全ユーザに対しエッジノードにおけるパケットの溢れを回避することができる。 According to the present invention, in a network to which a large number of users are connected, even if the number of queues for shaping in the core node is smaller than the total number of accommodated users, packet overflow at the edge node is avoided for all users. can do.

本発明を適用するネットワーク構成の一例と、本発明の一実施例におけるコアノードの構成を示す図である。It is a figure which shows an example of the network configuration to which this invention applies, and the configuration of the core node in one Example of this invention. 本発明の一実施例におけるコアノード内の仮想キュー長計算部の構成を示す図である。It is a figure which shows the structure of the virtual queue length calculation part in the core node in one Example of this invention. 仮想キュー長更新部内の仮想キュー長テーブルの例を示す図である。It is a figure which shows the example of the virtual queue length table in the virtual queue length update part. キューを模擬する仮想キューのモデルを表す図である。It is a figure which shows the model of the virtual queue which simulates a queue. 仮想キュー長の時間変化を表す図である。It is a figure which shows the time change of a virtual queue length. パケット中継時の、仮想キュー長更新部内での仮想キュー長テーブル更新方法を説明するフローチャートである。It is a flowchart explaining the method of updating the virtual queue length table in the virtual queue length update part at the time of packet relay. CPU部からの最大仮想キュー長読み出し時の、仮想キュー長更新部内での仮想キュー長テーブル更新方法を説明するフローチャートである。It is a flowchart explaining the method of updating a virtual queue length table in a virtual queue length update part at the time of reading a maximum virtual queue length from a CPU part. 本発明の一実施例におけるコアノード内の仮想キューが溢れた場合のコアノード内の処理を説明する図である。It is a figure explaining the process in the core node when the virtual queue in the core node overflows in one Example of this invention. シェーパキューに登録するユーザの入れ替え方法を説明するフローチャートである。It is a flowchart explaining the replacement method of the user registered in a shaper queue. ユーザをシェーパキューに登録する処理を説明するフローチャートである。It is a flowchart explaining the process of registering a user in a shaper queue. パケット中継部内のシェーパキュー検索テーブルとシェーパのキューを示す図である。It is a figure which shows the shaper queue search table and the queue of a shaper in a packet relay part. 仮想キュー最大占有率順ユーザ識別子テーブルの例を示す図である。It is a figure which shows the example of the user identifier table in order of the virtual queue maximum occupancy rate. ユーザ情報テーブルの例を示す図である。It is a figure which shows the example of the user information table. シェーパキュー管理情報テーブルの例を示す図である。It is a figure which shows the example of the shaper queue management information table. 本発明による監視結果に基づき、エッジノードをキュー長が長い装置に交換することで実キューの廃棄を回避することを示す図である。It is a figure which shows that the discarding of an actual queue is avoided by exchanging an edge node with a device having a long queue length based on the monitoring result by this invention. 本発明の一実施例におけるコアノード内の仮想キューが溢れた場合のコアノード内の処理を説明する図である。It is a figure explaining the process in the core node when the virtual queue in the core node overflows in one Example of this invention.

以下、実施例を図面を用いて説明する。 Hereinafter, examples will be described with reference to the drawings.

図1は本発明を適用するネットワーク構成の一例と、本発明の一実施例におけるコアノードの構成を表す図である。
1は本発明を実施するコアノードであり、動画などのデータを配信する配信サーバ21、22から配信データが、コアノード1、コアノード1とエッジノード31、32の間のネットワーク17、エッジノード31、32を経由し、ユーザA 311、ユーザB 321に中継される。ネットワーク17は、コアノード1とエッジノード31、32間の中継装置を含むネットワークを表しているが、ネットワークの構成に依存し、中継装置が無く、コアノード1とエッジノード31、32が直結されている場合や、1個、或いは複数個の中継装置を経由する場合も有り得る。
FIG. 1 is a diagram showing an example of a network configuration to which the present invention is applied and a configuration of a core node in an embodiment of the present invention.
Reference numeral 1 denotes a core node for carrying out the present invention, in which distribution data from distribution servers 21 and 22 that distribute data such as moving images is distributed from the core node 1, the network 17 between the core node 1 and the edge nodes 31 and 32, and the edge nodes 31 and 32. Is relayed to user A 311 and user B 321 via the above. The network 17 represents a network including a relay device between the core node 1 and the edge nodes 31 and 32, but depending on the network configuration, there is no relay device and the core node 1 and the edge nodes 31 and 32 are directly connected. In some cases, it may go through one or more relay devices.

配信サーバ21、22は複数のユーザにサービスを提供するサーバであることから、ユーザA 311、ユーザB 321に比べ一般的には処理能力が高く、配信サーバ21、22からコアノード1に繋がる回線211、221は、エッジノード31からユーザA 311に繋がる回線3111、エッジノード32からユーザB 321に繋がる回線3211よりも一般的には速い回線が使用される。例えば、配信サーバ21、22に繋がる回線211、221は10Gbpsの速い回線が使用され、ユーザA 311、ユーザB 321に繋がる回線3111、3211は、それぞれ100Mbps、1Gbpsなど、遅い回線が使用される。 Since the distribution servers 21 and 22 are servers that provide services to a plurality of users, they generally have a higher processing capacity than the user A 311 and the user B 321 and are connected to the core node 1 from the distribution servers 21 and 22. , 221 generally uses a faster line than the line 3111 connecting the edge node 31 to the user A 311 and the line 3211 connecting the edge node 32 to the user B 321. For example, the lines 211 and 221 connected to the distribution servers 21 and 22 use fast lines of 10 Gbps, and the lines 3111 and 3211 connected to user A 311 and user B 321 use slow lines such as 100 Mbps and 1 Gbps, respectively.

配信サーバ21、22に繋がる回線211、221が、ユーザA 311、ユーザB 321に繋がる回線3111、回線3211よりも速い回線で、配信サーバ21、22からユーザA 311、ユーザB 321にパケットが連続して送られる場合に、配信サーバ21、22に繋がる回線211、221の速度で送られ、ユーザA 311に繋がる回線3111行きのエッジノード31内のキュー3112、ユーザB 321に繋がる回線3211行きのエッジノード32内のキュー3212が溢れる場合がある。 The lines 211 and 221 connected to the distribution servers 21 and 22 are faster than the lines 3111 and 3211 connected to the user A 311 and the user B 321. Packets are continuously transmitted from the distribution servers 21 and 22 to the user A 311 and the user B 321. The queue 3112 in the edge node 31 for the line 3111 connected to the user A 311 and the line 3211 connected to the user B 321 are sent at the speed of the lines 211 and 221 connected to the distribution servers 21 and 22. The queue 3212 in the edge node 32 may overflow.

図2以降では、このエッジノード内のキュー3112、3212の溢れをコアノード1内で検知する方法及び検知する為の構成、及び検知後にエッジノード内のキューの溢れを回避する方法及び回避する為の構成を説明する。
図2は、本発明の一実施例におけるコアノード内の仮想キュー長計算部12の構成を示す図である。
図1のパケット中継部11がパケットの中継を行う毎に、パケット中継部11から仮想キュー長計算部12に中継を行ったパケットに関連するデータであるパケット関連データ14が送られる。
In FIGS. 2 and 2, a method for detecting the overflow of the queues 3112 and 3212 in the edge node in the core node 1 and a configuration for detecting the overflow, and a method for avoiding the overflow of the queue in the edge node after the detection and for avoiding the overflow. The configuration will be described.
FIG. 2 is a diagram showing a configuration of a virtual queue length calculation unit 12 in a core node according to an embodiment of the present invention.
Every time the packet relay unit 11 of FIG. 1 relays a packet, the packet relay unit 11 sends packet-related data 14 which is data related to the relayed packet to the virtual queue length calculation unit 12.

パケット関連データのうち、宛先アドレス141がユーザ識別検索部121に送られ、ユーザ識別検索部121は宛先アドレスからユーザを識別し、ユーザ毎に一意のユーザ識別子123を出力する。ユーザ識別子123は、仮想キュー長更新部122に送られる。 パケット関連データのうち、パケット長142が仮想キュー長更新部122に送られる。仮想キュー長更新部122は、ユーザ識別検索部から出力されたユーザ識別子123とパケット長142に基づきユーザ毎の仮想キュー長を格納したテーブルである仮想キュー長テーブル1222内の該当するユーザの仮想キュー長を更新する。また、仮想キュー長計算部12は、仮想キュー長の今までの最大値を示す最大仮想キュー長を保存している。CPU部13がアクセスインタフェース15経由で仮想キュー長の今までの最大値を示す最大仮想キュー長を読み出した際に、仮想キュー長計算部12は、最大仮想キュー長リードクリアモードレジスタ1222の設定値により、最大仮想キュー長をクリアするか否かの動作を切り替えるようにする。 Of the packet-related data, the destination address 141 is sent to the user identification search unit 121, the user identification search unit 121 identifies the user from the destination address, and outputs a user identifier 123 unique to each user. The user identifier 123 is sent to the virtual queue length update unit 122. Of the packet-related data, the packet length 142 is sent to the virtual queue length update unit 122. The virtual queue length update unit 122 stores the virtual queue length for each user based on the user identifier 123 and the packet length 142 output from the user identification search unit. The virtual queue of the corresponding user in the virtual queue length table 1222. Update the length. Further, the virtual queue length calculation unit 12 stores the maximum virtual queue length indicating the maximum value of the virtual queue length so far. When the CPU unit 13 reads the maximum virtual queue length indicating the maximum value of the virtual queue length up to now via the access interface 15, the virtual queue length calculation unit 12 sets the maximum virtual queue length read / clear mode register 1222. To switch the operation of whether or not to clear the maximum virtual queue length.

図3は仮想キュー長更新部122内の仮想キュー長テーブル1221の例を示す図である。
仮想キュー長テーブル1221は、ユーザ識別子12211をインデクスとし、テーブルの要素として、仮想キュー長の更新時刻12212、仮想キュー長12213、仮想キュー長の今までの最大値を示す最大仮想キュー長12214、仮想キューの出力帯域12215、仮想キュー長の取り得る最大値であるリミット仮想キュー長12216、パケット中継時に更新後の仮想キュー長がリミット仮想キュー長を超えて仮想キューに積めなかったパケットの数を示す廃棄統計12217、パケット中継時に仮想キューに積めたパケットの数を示す中継統計12218から構成される。
FIG. 3 is a diagram showing an example of the virtual queue length table 1221 in the virtual queue length update unit 122.
The virtual queue length table 1221 uses the user identifier 12211 as an index, and as table elements, the virtual queue length update time 12212, the virtual queue length 12213, the maximum virtual queue length 12214 indicating the maximum value of the virtual queue length so far, and virtual. Indicates the output band 12215 of the queue, the limit virtual queue length 12216 which is the maximum value that the virtual queue length can take, and the number of packets whose updated virtual queue length exceeds the limit virtual queue length and cannot be loaded in the virtual queue at the time of packet relay. It is composed of discard statistics 12217 and relay statistics 12218 showing the number of packets loaded in the virtual queue at the time of packet relay.

当該ユーザの出力帯域12215、リミット仮想キュー長12216は、網管理者が管理しているものであり、網管理者とユーザとの間の契約メニューに依存して値が変わる場合も有り得る。例えば安いメニューでは出力帯域が100Mbpsで、高いメニューでは出力帯域が1Gbpsのような場合も有り得る。リミット仮想キュー長12216は、一般的にはユーザからは判り難く、ユーザに開示する場合は少ないと考えられる。パケットの廃棄が頻発しているユーザに対しては、エッジノード31、32を、ユーザ行きのキュー3112、3212がより長い装置に置き換える、或いはキュー3112、3212が長いネットワークインタフェースカードをエッジノード31,32に入れることにより、当該ユーザ宛のパケットの廃棄を回避することができる。そのような場合、ユーザ毎にリミット仮想キュー長が異なる場合も有り得る。 The output band 12215 and the limit virtual queue length 12216 of the user are managed by the network administrator, and the values may change depending on the contract menu between the network administrator and the user. For example, a cheap menu may have an output band of 100 Mbps, and a high menu may have an output band of 1 Gbps. The limit virtual queue length 12216 is generally difficult for the user to understand, and is considered to be rarely disclosed to the user. For users who frequently drop packets, replace edge nodes 31 and 32 with devices with longer queues 3112 and 3212 to the user, or replace network interface cards with longer queues 3112 and 3212 with edge nodes 31 and 32. By putting it in 32, it is possible to avoid discarding the packet addressed to the user. In such a case, the limit virtual queue length may differ for each user.

図4は、図3に示す仮想キュー長テーブル1221内の仮想キュー長12213を更新するための仮想キューのモデルを表す図である。
仮想キューは、仮想キューに積まれているパケットデータの量を表す仮想キュー長によりエッジノードの実キュー長を模擬するものである。ユーザ宛てのパケット中継時に、当該ユーザの仮想キューの仮想キュー長の値に、中継するパケットのパケット長142を加算することでパケットが積まれる状態を模擬し、出力帯域12215から求められる時間あたりのパケット出力量に基づいて、時間の経過と共に仮想キュー長の値を減算することでパケットが引き抜かれる状態を模擬することで、エッジノードにおける実キュー長の推定値を求める、というモデルである。仮想キュー長として取り得る最大値をリミット仮想キュー長12216として設定しておく。仮想キューでは仮想キューの長さは管理するがパケットデータ自体は持たない為、パケットデータを保持しておく為のメモリは不要である。
FIG. 4 is a diagram showing a model of a virtual queue for updating the virtual queue length 12213 in the virtual queue length table 1221 shown in FIG.
The virtual queue simulates the actual queue length of an edge node by the virtual queue length representing the amount of packet data stored in the virtual queue. When relaying packets addressed to a user, the state in which packets are piled up is simulated by adding the packet length 142 of the relayed packet to the value of the virtual queue length of the virtual queue of the user, and the time per time obtained from the output band 12215. This model obtains an estimated value of the actual queue length at the edge node by simulating a state in which packets are pulled out by subtracting the value of the virtual queue length over time based on the amount of packet output. The maximum value that can be taken as the virtual queue length is set as the limit virtual queue length 12216. The virtual queue manages the length of the virtual queue but does not have the packet data itself, so no memory is required to hold the packet data.

図5は、図4に示す仮想キューの仮想キュー長12213の時間変化を表す図である。
図5では前回時刻122121にパケットを中継した後、現時刻122122に再度パケットを中継したときの仮想キュー長の時間変化を表している。前回時刻122121ではパケット長142分だけ仮想キュー長12213が増加する。現時刻122122では、前回時刻122121から現時刻122122までの時間に仮想キューからパケットが出力された量である帯域*(現時刻−前回時刻)だけ仮想キュー長が減少した状態からパケット長142分だけ仮想キュー分だけ仮想キュー長12213が増加する。
FIG. 5 is a diagram showing a time change of the virtual queue length 12213 of the virtual queue shown in FIG.
FIG. 5 shows the time change of the virtual queue length when the packet was relayed at the previous time 122121 and then relayed again at the current time 122122. At the previous time 122121, the virtual queue length 12213 increases by the packet length 142 minutes. At the current time 122122, the packet length is only 142 minutes from the state where the virtual queue length is reduced by the band * (current time-previous time), which is the amount of packets output from the virtual queue during the time from the previous time 122121 to the current time 122122. The virtual queue length 12213 increases by the amount of the virtual queue.

図6は、パケット中継時の、仮想キュー長更新部122内での仮想キュー長テーブル更新方法を示すフローチャートである。
図1のパケット中継部11がパケットを中継し、仮想キュー長計算部12がパケット関連データ14を受け取ったときに、仮想キュー長計算部12は図6のフローチャートのSTART S500以下を実行する。S501でパケット到着直前の仮想キュー長を(数1) パケット到着直前の仮想キュー長=
仮想キュー長−(現時刻−更新時刻)*帯域により計算する。次にS502で
(数2) パケット到着直前の仮想キュー長<0
か否かを判定する。YESの場合は、パケット到着時点で既に仮想キューが掃けていたことを意味するので、S503で
(数3) パケット到着直前の仮想キュー長=0
を実行する。その後、S504で
(数4) 仮想キュー長=パケット到着直前の仮想キュー長+パケット長
により、仮想キュー長にパケット長を加算し、S505で
(数5) 仮想キュー長>リミット仮想キュー長
か否かを判定する。YESの場合は、当該パケットを仮想キューに積んだ場合にリミット仮想キュー長を超える。この場合、当該パケットが仮想キューに積めず、S506で
(数6) 仮想キュー長=パケット到着直前の仮想キュー長
のように、仮想キュー長には当該パケットのキュー長を加算せず、S507で仮想キューに積めずに廃棄したパケット数を示す仮想キュー廃棄統計を1つインクリメントする。
FIG. 6 is a flowchart showing a method of updating the virtual queue length table in the virtual queue length update unit 122 at the time of packet relay.
When the packet relay unit 11 of FIG. 1 relays the packet and the virtual queue length calculation unit 12 receives the packet-related data 14, the virtual queue length calculation unit 12 executes START S500 or less in the flowchart of FIG. In S501, the virtual queue length immediately before the packet arrives (Equation 1) Virtual queue length immediately before the packet arrival =
Virtual queue length- (current time-update time) * Calculated based on bandwidth. Next, in S502 (Equation 2), the virtual queue length <0 immediately before the packet arrives.
Judge whether or not. If YES, it means that the virtual queue has already been swept when the packet arrives. Therefore, in S503 (Equation 3), the virtual queue length immediately before the packet arrives = 0.
To execute. After that, in S504 (Equation 4) Virtual queue length = Virtual queue length immediately before the packet arrives + Packet length, the packet length is added to the virtual queue length, and in S505 (Equation 5) Virtual queue length> Limit virtual queue length Is determined. If YES, the limit virtual queue length is exceeded when the packet is loaded on the virtual queue. In this case, the packet cannot be loaded in the virtual queue, and the queue length of the packet is not added to the virtual queue length as in (Equation 6) virtual queue length = virtual queue length immediately before the packet arrives in S506, and in S507. The virtual queue discard statistic, which indicates the number of packets discarded without being loaded on the virtual queue, is incremented by one.

S505の判定結果がNOの場合は、当該パケットを仮想キューに積んだ場合にリミット仮想キュー長を超えないので、当該パケットを仮想キューに積むことができ、仮想キュー長はS504、数4に示すように、仮想キュー長に当該パケットのパケット長を加算する。パケットを仮想キューに積むことができた場合には、さらにS508で
(数7) 最大仮想キュー長=MAX(最大仮想キュー長、仮想キュー長)
のように仮想キュー長の今までの最大値を示す最大仮想キュー長を更新し、S509で仮想キュー長に積めたパケット数を示す仮想キュー中継統計を1つインクリメントする。
When the determination result of S505 is NO, the packet can be loaded in the virtual queue because the limit virtual queue length is not exceeded when the packet is loaded in the virtual queue, and the virtual queue length is shown in S504 and Equation 4. As described above, the packet length of the packet is added to the virtual queue length. If the packet can be loaded on the virtual queue, in S508 (Equation 7) Maximum virtual queue length = MAX (maximum virtual queue length, virtual queue length)
The maximum virtual queue length indicating the maximum value of the virtual queue length so far is updated as in the above, and the virtual queue relay statistics indicating the number of packets loaded in the virtual queue length in S509 is incremented by one.

最後に510で更新時刻を
(数8) 更新時刻=現時刻
のように更新し、511で本フローチャートが終了する。
Finally, the update time is updated as (Equation 8) update time = current time at 510, and this flowchart ends at 511.

図7は、図1のCPU部13からの最大仮想キュー長12214読み出し時の、仮想キュー長更新部122内での仮想キュー長テーブル1221更新方法を示すフローチャートである。
図1のCPU部13から最大仮想キュー長12214を読み出すときに、仮想キュー長計算部12は図7のフローチャートのSTART S520以下を実行する。このフローチャートは、図2の最大仮想キュー長リードクリアモードレジスタ1222の設定値が、クリアを示す設定値となっている場合に実行される。ここでは、例えば最大仮想キュー長リードクリアモードレジスタ1222の設定値が1のときにクリアする設定であるとする。最大仮想キュー長リードクリアモードレジスタ1222の設定値が1に設定されていた場合、最大仮想キュー長12214読み出し時にも最大仮想キュー長12214を更新する必要があることから、仮想キュー長計算部12は図7のフローチャートに示す処理を実行する。
FIG. 7 is a flowchart showing a method of updating the virtual queue length table 1221 in the virtual queue length update unit 122 when the maximum virtual queue length 12214 is read from the CPU unit 13 of FIG.
When reading the maximum virtual queue length 12214 from the CPU unit 13 of FIG. 1, the virtual queue length calculation unit 12 executes START S520 or less in the flowchart of FIG. This flowchart is executed when the set value of the maximum virtual queue length read / clear mode register 1222 in FIG. 2 is a set value indicating clearing. Here, for example, it is assumed that the setting is cleared when the set value of the maximum virtual queue length read / clear mode register 1222 is 1. When the set value of the maximum virtual queue length read clear mode register 1222 is set to 1, the maximum virtual queue length 12214 needs to be updated even when the maximum virtual queue length 12214 is read. The process shown in the flowchart of FIG. 7 is executed.

S521で最大仮想キュー長の読み出し値として、仮想キュー長テーブル1221内の最大仮想キュー長12214を返すようにする。
S522で仮想キュー長を
(数9) 仮想キュー長=仮想キュー長−(現時刻−前回更新時刻)*帯域
により計算し、S523で
(数10) 仮想キュー長<0
か否かを判定する。YESの場合は、最大仮想キュー長読み出し時点で既に仮想キューが掃けていたことを意味するので、S524で
(数11) 仮想キュー長=0
を実行する。その後、S525で最大仮想キュー長リードクリアモードか否かの判定を行ない、YESの場合、リードクリアモードなので、S526で
(数12) 最大仮想キュー長=仮想キュー長
を実行する。これは、最大仮想キュー長がクリアされた後、直ぐに最大仮想キュー長に現在の仮想キュー長の値が入ったとみなした場合の値である。NOの場合はリードクリアモードではないので、最大仮想キュー長の値は保存される。
最後にS527で更新時刻を
(数13) 更新時刻=現時刻
のように更新し、S528で本フローチャートを終了する。
The maximum virtual queue length 12214 in the virtual queue length table 1221 is returned as the read value of the maximum virtual queue length in S521.
In S522, the virtual queue length is calculated by (Equation 9) Virtual queue length = Virtual queue length- (Current time-Last update time) * Band, and in S523 (Equation 10) Virtual queue length <0
Judge whether or not. If YES, it means that the virtual queue has already been swept at the time of reading the maximum virtual queue length. Therefore, in S524 (Equation 11), the virtual queue length = 0.
To execute. After that, in S525, it is determined whether or not the maximum virtual queue length is in the read clear mode, and if YES, since it is in the read clear mode, (Equation 12) maximum virtual queue length = virtual queue length is executed in S526. This is the value when it is considered that the value of the current virtual queue length is entered in the maximum virtual queue length immediately after the maximum virtual queue length is cleared. If NO, the read clear mode is not set, so the value of the maximum virtual queue length is saved.
Finally, the update time is updated in S527 as (Equation 13) update time = current time, and this flowchart ends in S528.

ここで、CPU部13から仮想キュー長12213でなく、最大仮想キュー長12214を読んでいるのは、仮想キュー長12213そのものよりも、仮想キュー長の今までの最大値である最大仮想キュー長12214の方が、仮想キューの溢れの判定に、より有用だからである。仮想キュー長12213は、時間と共に激しく変化することが予想され、CPU部13から読んだときに、たまたま小さい値だった場合、溢れる可能性を過小評価してしまう危険性があるが、最大仮想キュー長12214は、仮想キュー長12213の今までの最大値であることから、溢れる可能性を、より正確に評価できる。 Here, reading the maximum virtual queue length 12214 instead of the virtual queue length 12213 from the CPU unit 13 is the maximum virtual queue length 12214, which is the maximum value of the virtual queue length so far, rather than the virtual queue length 12213 itself. Is more useful for determining the overflow of virtual queues. The virtual queue length 12213 is expected to change drastically with time, and if it happens to be a small value when read from the CPU unit 13, there is a risk of underestimating the possibility of overflow, but the maximum virtual queue Since the length 12214 is the maximum value of the virtual queue length 12213 so far, the possibility of overflow can be evaluated more accurately.

さらに、最大仮想キュー長リードクリアモードレジスタ1222の値をリード時にクリアするモードに設定した場合には、CPU部13から最大仮想キュー長12214を読む度に最大仮想キュー長12214がクリアされるので、CPU部13から読んだ値は、前回読んだときから今回読んだときまでの間の最大値になる。これを周期的に繰り返すことにより、CPU部13から、仮想キュー長の最大値の時間変化を、最大値として取り込まないタイミングも無く、複数の重複する期間に同じ最大値を複数回取り込むことも無く、把握することができる。 Further, when the value of the maximum virtual queue length read clear mode register 1222 is set to the mode of clearing at the time of reading, the maximum virtual queue length 12214 is cleared every time the maximum virtual queue length 12214 is read from the CPU unit 13. The value read from the CPU unit 13 is the maximum value between the time of the previous reading and the time of the current reading. By repeating this periodically, there is no timing at which the time change of the maximum value of the virtual queue length is not captured as the maximum value from the CPU unit 13, and the same maximum value is not captured multiple times in a plurality of overlapping periods. , Can be grasped.

図8は、コアノード1内の仮想キューが溢れたときに、溢れたユーザのパケットだけコアノード内のシェーパキューに積むことにより実キューの廃棄を回避する動作を説明する図である。
シェーパキューとは111のように出力側に出力帯域制御部112を持つキューのことである。パケット中継部11内には111のように出力帯域制御部112を持つキューが複数あり、その他に出力帯域制御部を持たないキュー113があり、各キューの出力のアービトレーションを114で行い、回線16にパケットを出力する。
仮想キュー長計算部12で、あるユーザ、例えばユーザAの仮想キューの溢れが発生した場合に、ユーザA行きのパケットをシェーパキュー111に積むようにすることで、ユーザA行きのパケットが出力帯域制御部112により帯域制限され、エッジノード31内のユーザA行きの実キュー3112での廃棄を回避することができる。
FIG. 8 is a diagram illustrating an operation of avoiding discarding the actual queue by loading only the overflowed user packets in the shaper queue in the core node when the virtual queue in the core node 1 overflows.
The shaper queue is a queue having an output band control unit 112 on the output side, such as 111. In the packet relay unit 11, there are a plurality of queues having an output bandwidth control unit 112 such as 111, and there is also a queue 113 having no output bandwidth control unit. The output of each queue is arbitrated by 114, and the line 16 is used. Output the packet to.
When the virtual queue of a certain user, for example, user A, overflows in the virtual queue length calculation unit 12, the packet destined for user A is output bandwidth controlled by loading the packet destined for user A on the shaper queue 111. The bandwidth is limited by the unit 112, and it is possible to avoid discarding in the real queue 3112 destined for the user A in the edge node 31.

図9は、図8に示すパケットの廃棄の回避方法を実現する為の、シェーパに登録するユーザの入れ替え方法を示すフローチャートである。
図9に示す処理はコアノード1内のCPU部13で実行される。
図9の処理は装置の起動後、START S540を開始し、S541からS551までの処理を繰り返すものである。
S541からS551までの間のループ内で、S542からS550までの間で、全ユーザ識別子につき、繰り返し処理を実行する。
S543は、あるユーザに対する処理を実行後に次のユーザの処理を行うまでの間隔を意味し、例えば待ち時間を1msとし、全ユーザ数を10万ユーザとすると、S542からS550までのループを抜ける時間、即ち全ユーザの処理を行うのに掛かる時間は100秒となる。この場合、あるユーザのパケットの廃棄が発生し始めてから100秒以内に当該ユーザ行きのトラフィックがシェーパキューに登録されるようになる。
S544では、最大仮想キュー長リードクリアモードレジスタの値を、最大キュー長をクリアするモードに設定し、CPU部13から当該ユーザ識別子の最大仮想キュー長、廃棄統計値を読む。
FIG. 9 is a flowchart showing a method of replacing users registered in the shaper in order to realize the method of avoiding packet discard shown in FIG.
The process shown in FIG. 9 is executed by the CPU unit 13 in the core node 1.
In the process of FIG. 9, START S540 is started after the device is started, and the processes from S541 to S551 are repeated.
In the loop between S541 and S551, iterative processing is executed for all user identifiers between S542 and S550.
S543 means an interval from executing a process for a certain user to performing a process for the next user. For example, assuming that the waiting time is 1 ms and the total number of users is 100,000, the time to exit the loop from S542 to S550. That is, the time required to perform the processing of all users is 100 seconds. In this case, the traffic destined for the user is registered in the shaper queue within 100 seconds after the packet of the user starts to be discarded.
In S544, the value of the maximum virtual queue length read / clear mode register is set to the mode for clearing the maximum queue length, and the maximum virtual queue length and the discard statistics value of the user identifier are read from the CPU unit 13.

S545では、当該ユーザをシェーパキューに登録済みか否かを判定する。ここで、「当該ユーザをシェーパキューに登録済」とは、シェーパのある一つのキューを確保し、当該キューに当該ユーザの帯域を設定し、当該ユーザ宛の宛先アドレス範囲を、後述する図11のシェーパキュー検索テーブル117に登録しているという意味である。
NO(当該ユーザをシェーパキューに登録済ではない)の場合、
(数14) 仮想キュー廃棄統計増加量=
仮想キュー廃棄統計値−前回仮想キュー廃棄統計値
により、当該ユーザの仮想キュー廃棄統計増加量を計算し、S547で、
(数15) 仮想キュー廃棄統計増加量>0
により、当該ユーザの仮想キュー廃棄統計が増加しているか否かを判定する。
In S545, it is determined whether or not the user has been registered in the shaper queue. Here, "the user has been registered in the shaper queue" means that one queue with a shaper is secured, the bandwidth of the user is set in the queue, and the destination address range addressed to the user is described in FIG. It means that it is registered in the shaper queue search table 117 of.
If NO (the user is not already registered in the shaper queue)
(Number 14) Increase in virtual queue discard statistics =
Virtual queue discard statistics-The increase in virtual queue discard statistics for the user is calculated from the previous virtual queue discard statistics, and in S547,
(Equation 15) Increase in virtual queue discard statistics> 0
Therefore, it is determined whether or not the virtual queue discard statistics of the user are increasing.

或いは、
(数16) 仮想キュー中継統計増加量=
仮想キュー中継統計値−前回仮想キュー中継統計値
により、当該ユーザの仮想キュー中継統計増加量を計算し、
(数17) 仮想キュー廃棄率=
仮想キュー廃棄統計増加量/
(仮想キュー中継統計増加量+仮想キュー廃棄統計増加量)
により、当該ユーザの仮想キュー廃棄率を計算し、S547を、
(数18) 仮想キュー廃棄率>廃棄率閾値
という条件にし、当該ユーザをシェーパキューに登録するか否かを判定することもできる。ここで、廃棄率閾値として、例えば10のマイナス6乗程度と小さくすることで、廃棄が極少量のユーザはシェーパキューに登録されないようにし、シェーパキューに登録されるユーザ数が上限に達するのを防止することもできる。
Or,
(Equation 16) Increase in virtual queue relay statistics =
Virtual queue relay statistics-Calculate the increase in virtual queue relay statistics for the user based on the previous virtual queue relay statistics.
(Number 17) Virtual queue discard rate =
Virtual queue discard statistics increase /
(Increase in virtual queue relay statistics + increase in virtual queue discard statistics)
Calculates the virtual queue discard rate of the user, and sets S547 to
(Equation 18) It is also possible to determine whether or not to register the user in the shaper queue under the condition that the virtual queue discard rate> the discard rate threshold value. Here, by reducing the discard rate threshold value to, for example, about 10 minus 6th power, users with a very small amount of waste are prevented from being registered in the shaper queue, and the number of users registered in the shaper queue reaches the upper limit. It can also be prevented.

或いは、S547を、当該ユーザの仮想キュー廃棄統計が増加しているか否かで判定する代わりに、
(数19) 最大仮想キュー長>リミット実キュー長*判定閾値
という条件で判定し、
(数20) 判定閾値<1
とすることで、溢れが発生する前に仮想キューが伸びてきていて溢れる可能性が高いユーザを検出することも可能である。この条件で判定することで、実キューの溢れが発生する前に当該ユーザのパケットをシェーパキューに登録することができ、実キューの溢れを未然に防ぐことができる。
Alternatively, instead of determining S547 based on whether the user's virtual queue discard statistics are increasing,
(Equation 19) Judgment is made under the condition of maximum virtual queue length> limit actual queue length * judgment threshold.
(Equation 20) Judgment threshold <1
By doing so, it is also possible to detect a user whose virtual queue is growing and is likely to overflow before the overflow occurs. By determining under this condition, the packet of the user can be registered in the shaper queue before the actual queue overflows, and the actual queue overflow can be prevented.

また、仮想キュー長は、実キュー長を模擬するものであり、仮想キューの溢れと実キューの溢れは正確に一致するものではないことから、模擬の正確性のマージンとして、例えば50%を越えたら実キューが溢れる危険性が高いと判断してシェーパキューに積む、という方法を採ることで、実キューの廃棄を、より確実に回避することができる。 Further, the virtual queue length simulates the real queue length, and the overflow of the virtual queue and the overflow of the real queue do not exactly match. Therefore, the margin of the accuracy of the simulation exceeds, for example, 50%. By adopting a method of determining that there is a high risk of the actual queue overflowing and loading it in the shaper queue, it is possible to more reliably avoid discarding the actual queue.

S547でYESの場合、当該ユーザ行きのパケットが仮想キューから溢れていることを意味するので、548で当該ユーザをシェーパキューに登録する。
S545でYESの場合、当該ユーザは仮想キューに登録済みであり、S549で仮想キュー最大占有率順ユーザ識別子テーブル内の当該ユーザの順位のみを更新する。ここで、仮想キュー最大占有率とは、当該ユーザの仮想キュー長リミット仮想キュー長に対して今迄どのくらいの割合まで最大仮想キュー長が伸びたことがあるかを示す値であり、
(数21) 仮想キュー最大占有率
=最大仮想キュー長/リミット仮想キュー長
で計算される。この値が100%にまで到達した場合、仮想キューで廃棄が発生している、と判断できる。
If YES in S547, it means that packets destined for the user are overflowing from the virtual queue, so the user is registered in the shaper queue at 548.
If YES in S545, the user is already registered in the virtual queue, and in S549, only the rank of the user in the virtual queue maximum occupancy order user identifier table is updated. Here, the maximum virtual queue occupancy rate is a value indicating how much the maximum virtual queue length has been increased with respect to the virtual queue length limit virtual queue length of the user.
(Number 21) Maximum occupancy rate of virtual queue
= Calculated by maximum virtual queue length / limit virtual queue length. When this value reaches 100%, it can be determined that the virtual queue has been discarded.

図10は、図9内のサブルーチン「当該ユーザをシェーパキューに登録」S548の処理を示すフローチャートである。
S54800で本サブルーチンに入る。
S54801で、シェーパキューに空きがあるか否かを判定する。
NOの場合、シェーパキューに空きが無いので、S54802に示すシェーパキューに既に登録されている他のユーザを追い出す処理を行った後に、当該ユーザを登録するようにする。
S54802は、既に登録されている他のユーザを追い出し空きを作る処理であり、後述する図12に示す仮想キュー最大占有率順ユーザ識別子テーブルから最大占有率の最も小さいユーザを選択し、仮想キュー最大占有率順ユーザ識別子テーブル、及び、シェーパキューから削除する。
S54803では、シェーパキューに空きがあるか、空きを作った後なので、当該ユーザを図12の仮想キュー最大占有率順ユーザ識別子テーブル、及び、シェーパキューに登録し、S54806で本サブルーチンを抜ける。
FIG. 10 is a flowchart showing the process of the subroutine “Registering the user in the shaper queue” S548 in FIG.
Enter this subroutine with S54800.
In S54801, it is determined whether or not there is a vacancy in the shaper queue.
In the case of NO, since there is no space in the shaper queue, the user is registered after performing the process of expelling another user already registered in the shaper queue shown in S54802.
S54802 is a process of expelling other registered users to create a vacancy, and selects the user with the smallest maximum occupancy rate from the user identifier table in order of the maximum occupancy rate of the virtual queue shown in FIG. 12, which will be described later, to maximize the virtual queue. Delete from the user identifier table in order of occupancy and the shaper queue.
In S54803, since there is a vacancy in the shaper queue or after the vacancy is created, the user is registered in the user identifier table in order of the maximum occupancy rate of the virtual queue in FIG. 12 and the shaper queue, and the subroutine is exited in S54806.

図11は、図8に示すパケットの廃棄の回避方法を実現する為の、パケット中継部11内のシェーパキュー検索テーブル117とシェーパのキューを示す図である。
117は、パケット中継部11内で、パケット中継時にシェーパキューに積むか否かの判定結果、及び、シェーパに積む場合のキュー番号を出力するための検索テーブルである。
パケット中継部11でパケット中継を行う際、宛先アドレスを検索キーとして、シェーパ検索テーブル117を検索する。当該パケットの宛先アドレスが、シェーパキュー検索テーブル117に登録されている何れかのエントリの宛先アドレス範囲に入っていた場合、当該エントリのシェーパキュー番号に対応するシェーパキューに当該パケットを積むようにする。ここで、シェーパキュー検索テーブル117のインデクスとして図11の例では宛先アドレス範囲を用いているのは、サブネットアドレスを格納することを一例として想定しているためである。
FIG. 11 is a diagram showing a shaper queue search table 117 and a shaper queue in the packet relay unit 11 for realizing the method of avoiding packet discard shown in FIG.
Reference numeral 117 denotes a search table for outputting the determination result of whether or not to load in the shaper queue at the time of packet relay and the queue number when loading in the shaper in the packet relay unit 11.
When the packet relay unit 11 relays a packet, the shaper search table 117 is searched using the destination address as a search key. When the destination address of the packet is within the destination address range of any of the entries registered in the shaper queue search table 117, the packet is loaded in the shaper queue corresponding to the shaper queue number of the entry. Here, the destination address range is used as the index of the shaper queue search table 117 in the example of FIG. 11 because it is assumed that the subnet address is stored as an example.

図11の例では、宛先アドレスを検索キーとしてシェーパ検索テーブル117を検索した結果、例えば、ユーザA宛のパケットが宛先アドレス範囲Aに入った場合、当該パケットをシェーパキュー番号100のキュー111に積み、ユーザC宛のパケットが宛先アドレス範囲Cに入った場合、シェーパキュー番号200のキュー115に当該パケットを積むようにする。 In the example of FIG. 11, as a result of searching the shaper search table 117 using the destination address as a search key, for example, when a packet addressed to the user A enters the destination address range A, the packet is loaded in the queue 111 of the shaper queue number 100. When a packet addressed to the user C enters the destination address range C, the packet is loaded in the queue 115 of the shaper queue number 200.

当該パケットの宛先アドレスが、シェーパキュー検索テーブル117に登録されているどのエントリの宛先アドレス範囲にも入っていなかった場合、シェーピングを行なわないキューに当該パケットを積むようにする。
例えば、ユーザB宛のパケットがシェーパキュー検索テーブル117のどのエントリの宛先アドレス範囲にも入っていなかった場合、シェーピングを行なわないキュー113に当該パケットを積むようにする。
If the destination address of the packet is not in the destination address range of any entry registered in the shaper queue search table 117, the packet is loaded in the queue that is not shaped.
For example, if the packet addressed to user B is not included in the destination address range of any entry in the shaper queue search table 117, the packet is loaded in the queue 113 that is not shaped.

図12は、図9、図10に示す処理に使用する仮想キュー最大占有率順ユーザ識別子テーブルの例である。この例では10ユーザについては仮想キュー最大占有率が100%に達し、仮想キューが溢れているが、11番目以降のユーザは仮想キュー最大占有率が100%に達していないことを示している。各ユーザ宛のトラフィックは時間的に変化するので、過去に仮想キューの溢れが発生しシェーパキューに登録されたユーザでも、時間が経つとトラフィックが減る場合がある。そこで常に仮想キュー最大占有率順にユーザをソートしておくことで、シェーパキューに空きが無くなった時点で、最大占有率が最も小さく、シェーパキューから追い出しても廃棄が発生する可能性が最も低いユーザから順に追い出すことで、全ユーザの実キューでの廃棄を、より確実に回避することができる。 FIG. 12 is an example of the virtual queue maximum occupancy rate order user identifier table used for the processing shown in FIGS. 9 and 10. In this example, the maximum occupancy rate of the virtual queue reaches 100% for 10 users, and the virtual queue is overflowing, but the 11th and subsequent users indicate that the maximum occupancy rate of the virtual queue does not reach 100%. Since the traffic destined for each user changes over time, even a user registered in the shaper queue due to an overflow of the virtual queue in the past may decrease in traffic over time. Therefore, by always sorting the users in the order of the maximum occupancy rate of the virtual queue, the maximum occupancy rate is the smallest when the shaper queue is full, and the user who is least likely to be discarded even if it is expelled from the shaper queue. By expelling them in order from the beginning, it is possible to more reliably avoid discarding in the actual queue of all users.

図13、及び、図14にCPU部13がコアノード1内でユーザ、及び、シェーパのキューの管理を行うのに必要な、図12以外のテーブルの例を示す。ここで示した例は一例であり、必ずしもこの通りのテーブル構成でなくても良い。
図13は、CPU部13がコアノード1内でユーザの管理を行う為のユーザ情報テーブルである。CPU部13はユーザ情報テーブルから、図3の仮想キュー長テーブル1221の各ユーザ識別子のエントリに出力帯域12215、リミット仮想キュー長12216を設定し、図11のシェーパキュー検索テーブル117の各インデクスのエントリに宛先アドレス範囲、ユーザ識別子、シェーパキュー番号を設定する。
図14は、CPU部13がコアノード1内でシェーパのキュー111、113、115の管理を行う為のシェーパキュー管理情報テーブルである。CPU部13はシェーパキュー管理情報テーブルから、シェーパキュー番号をインデクスとして図11のシェーパキュー検索テーブル117に登録する為のインデクス、図12の仮想キュー最大占有率順ユーザ識別子テーブルのインデクスを得る。
13 and 14 show examples of tables other than FIG. 12, which are required for the CPU unit 13 to manage the queues of users and shapers in the core node 1. The example shown here is an example, and the table configuration does not necessarily have to be the same as this.
FIG. 13 is a user information table for the CPU unit 13 to manage users in the core node 1. From the user information table, the CPU unit 13 sets the output band 12215 and the limit virtual queue length 12216 in the entry of each user identifier in the virtual queue length table 1221 in FIG. 3, and enters each index in the shaper queue search table 117 in FIG. Set the destination address range, user identifier, and shaper queue number in.
FIG. 14 is a shaper queue management information table for the CPU unit 13 to manage the shaper queues 111, 113, and 115 in the core node 1. From the shaper queue management information table, the CPU unit 13 obtains an index for registering the shaper queue number as an index in the shaper queue search table 117 of FIG. 11 and an index of the user identifier table in order of the virtual queue maximum occupancy rate of FIG.

或いは、図9、図10に示した処理をコアノード1内で自動的に行う代わりに、ユーザ毎の仮想キューの状態を網管理者に伝え、網管理者がパケット中継部11内のシェーパキューへのユーザの登録を、構成定義で行うようにすることもできる。この方法は、網管理者の管理ポリシーが、シェーパキューに登録されるユーザが自動的に入れ替わるよりも、シェーパキューに登録するユーザを管理したい、というポリシーの場合には適している。
ユーザ毎の仮想キューの状態の網管理者への伝え方としては、例えば、下記のような表形式で伝えることができる。表示順としては、例えば、仮想キュー最大占有率の大きい順にソートし、仮想キュー最大占有率が100%に達しているユーザに対しては仮想キューの廃棄があるので、仮想キュー廃棄率の大きい順に更にソートして表示すると、網管理者から、廃棄が発生しているユーザ、或いは廃棄が発生する可能性が高いユーザが判り易い。また、上記ソート順番で、表示するユーザ数を指定して上位のユーザのみ表示するようにしても良い。
表1 仮想キュー状態表示形式
−−−−−−−−−−−−−−−−−−−−
仮想キュー 仮想キュー ユーザ
最大占有率 廃棄率 識別子
−−−−−−−−−−−−−−−−−−−−
100% 10% ユーザA
100% 1% ユーザC
100% 0.1% :
99% 0% :
80% 0% :
50% 0% :
20% 0% :
5% 0% :
1% 0% :
0.1% 0% :
−−−−−−−−−−−−−−−−−−−−
表1に、仮想キュー廃棄統計増加量も併せて表示するようにしても良い。
また、ユーザ識別子だけでなく、当該ユーザが属するエッジノード、及び、エッジノード内でユーザが繋がる回線の番号、回線速度などのユーザの契約形態の情報も併せて表示するようにしても良い。
Alternatively, instead of automatically performing the processes shown in FIGS. 9 and 10 in the core node 1, the state of the virtual queue for each user is notified to the network administrator, and the network administrator sends the shaper queue in the packet relay unit 11. It is also possible to register the user in the configuration definition. This method is suitable when the management policy of the network administrator wants to manage the users registered in the shaper queue rather than automatically replacing the users registered in the shaper queue.
As a method of communicating the virtual queue status for each user to the network administrator, for example, the following tabular format can be used. As the display order, for example, the virtual queue is sorted in descending order of the maximum virtual queue occupancy rate, and the virtual queue is discarded for the user whose maximum virtual queue occupancy rate reaches 100%. Therefore, the virtual queue is discarded in descending order of the virtual queue discard rate. When the images are further sorted and displayed, it is easy for the network administrator to understand the user who has been discarded or the user who is likely to be discarded. Further, in the above sort order, the number of users to be displayed may be specified so that only the higher-ranking users are displayed.
Table 1 Virtual queue status display format −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Virtual Queue Virtual Queue User Maximum Occupancy Disposal Rate Identifier −−−−−−−−−−−−−−−−−−−−−−−−−−−−−
100% 10% User A
100% 1% User C
100% 0.1%:
99% 0%:
80% 0%:
50% 0%:
20% 0%:
5% 0%:
1% 0%:
0.1% 0%:
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−–
Table 1 may also display the amount of increase in the virtual queue discard statistics.
Further, not only the user identifier but also the edge node to which the user belongs, the number of the line connected to the user in the edge node, the line speed, and other information of the user's contract form may be displayed together.

図15は、仮想キュー監視サーバ23でコアノード1内の仮想キュー長を監視することでエッジノード31、32における実ユーザキューのパケット廃棄状況を推定し、必要に応じて人手でエッジノード31、32をキュー長が長い装置に交換することで実キュー3112、3212の廃棄を回避することを示す図である。
仮想キュー長計算部12で計算された、図3に示す仮想キュー長テーブルの情報をCPU部13から読み出し、仮想キュー監視サーバ23から最大仮想キュー長、仮想キュー廃棄統計、仮想キュー中継統計を含む統計情報を読み出すことにより、仮想キューで廃棄が発生しているユーザを把握し、廃棄が発生しているユーザ、例えばユーザAを収容するエッジノード31をキューが長い装置に交換する、或いはエッジノード31のネットワークインタフェースカードをキューが長いネットワークインタフェースカードに交換することにより廃棄を回避することができる。
In FIG. 15, the virtual queue monitoring server 23 monitors the virtual queue length in the core node 1 to estimate the packet discard status of the real user queues at the edge nodes 31 and 32, and manually edge nodes 31 and 32 as needed. It is a figure which shows that it is possible to avoid discarding the actual cues 3112 and 3212 by exchanging the cues with a device having a long cue length.
The information of the virtual queue length table shown in FIG. 3 calculated by the virtual queue length calculation unit 12 is read from the CPU unit 13, and includes the maximum virtual queue length, virtual queue discard statistics, and virtual queue relay statistics from the virtual queue monitoring server 23. By reading out the statistical information, the user who is being discarded in the virtual queue is grasped, and the user who is being discarded, for example, the edge node 31 accommodating the user A is replaced with a device having a long queue, or the edge node. Discarding can be avoided by replacing the 31 network interface cards with network interface cards with long queues.

更に、コアノード内のユーザ毎のリミット仮想キュー長を、エッジノード内の実キュー長として取り得る最大値(以後、リミット実キュー長と呼ぶ)より長くすることにより、溢れの程度を把握することができる。例えば、リミット仮想キュー長をリミット実キュー長の4倍程度にしておき、仮想キュー長の最大値がリミット実キュー長の2倍まで達していた場合、実キュー長を増やすことにより廃棄を回避する場合、2倍まで増やす必要があることが判る。 Furthermore, by making the limit virtual queue length for each user in the core node longer than the maximum value that can be taken as the actual queue length in the edge node (hereinafter referred to as the limit actual queue length), it is possible to grasp the degree of overflow. it can. For example, if the limit virtual queue length is set to about 4 times the limit actual queue length and the maximum value of the virtual queue length reaches twice the limit actual queue length, discarding is avoided by increasing the actual queue length. In that case, it turns out that it is necessary to double the number.

また、コアノード内でユーザ毎に、複数の送信帯域に対して仮想キュー長を同時に計算することによっても、溢れの程度を把握することができる。例えば、エッジノードに繋がる、あるユーザの回線の実送信帯域が100Mbpsの場合に、エッジノードで当該ユーザに対し、100Mbps、200Mbps、400Mbpsで同時に仮想キュー長を計算し、100Mbpsでは仮想キュー長がリミット仮想キュー長に達し、200Mbps以上では達していなかった場合、エッジノードの当該ユーザ行きの回線を増速することにより廃棄を回避する場合、200Mbpsまで増速する必要があることが判る
コアノードではユーザ毎の仮想キュー長を模擬するが、ユーザ毎の実キューを設ける必要が無いことから、実キューを設ける為に必要となるメモリが不要になり、多くのユーザ、例えば10万程度のユーザの仮想キュー長を模擬することができる。
ネットワーク内のコアノードでユーザ回線が繋がるエッジノード内のユーザ回線行きのキューのキュー長をコアノードで模擬するようにすることで、どのエッジノードでキューを伸ばすなどの増強が必要かをコアノードで集中して把握することができる。
これにより、エッジノードで最大キュー長などを覚えておき、集計装置から集計できるインタフェースを設ける必要が無くなり、コアノードに比べて大量に必要となるエッジノードに安価な装置を使用することができる。
更に、コアノードで模擬したユーザ毎の仮想キュー長が、リミット仮想キュー長に達した場合に、当該ユーザ行きのパケットをコアノード内でシェーピングを行う複数のキューの内の一つに積むようにすることで、シェーピングを行うキューの数が、全収容ユーザ数、例えば10万ユーザに比べて少ない、例えば1万個の場合でも、エッジノードで実キューの溢れが発生する可能性があるユーザが1万ユーザ以内の場合には、全ユーザに対し、エッジノードでのパケットの溢れを回避することができる。
The degree of overflow can also be grasped by simultaneously calculating the virtual queue length for a plurality of transmission bands for each user in the core node. For example, when the actual transmission band of a user's line connected to the edge node is 100 Mbps, the edge node calculates the virtual queue length for the user at the same time at 100 Mbps, 200 Mbps, and 400 Mbps, and the virtual queue length is limited at 100 Mbps. When the virtual queue length is reached and it is not reached at 200 Mbps or more, it is found that it is necessary to increase the speed to 200 Mbps when avoiding discarding by accelerating the line to the user of the edge node. However, since it is not necessary to provide a real queue for each user, the memory required to provide a real queue is not required, and the virtual queue of many users, for example, about 100,000 users. You can simulate the length.
By simulating the queue length of the queue for the user line in the edge node to which the user line is connected at the core node in the network, the core node concentrates on which edge node needs to be enhanced such as extending the queue. Can be grasped.
This eliminates the need to memorize the maximum queue length and the like at the edge node and provide an interface that can aggregate from the aggregation device, and it is possible to use an inexpensive device for the edge node that requires a large amount as compared with the core node.
Furthermore, when the virtual queue length for each user simulated by the core node reaches the limit virtual queue length, packets destined for the user are stacked in one of a plurality of queues that are shaped within the core node. , Even if the number of queues to be shaped is smaller than the total number of accommodated users, for example, 100,000 users, for example, 10,000, 10,000 users may overflow the actual queue at the edge node. If it is within the range, it is possible to avoid the overflow of packets at the edge node for all users.

次に、第二の実施例について説明する。
図16は、コアノード1内の仮想キューが溢れたときに、溢れたユーザのパケットだけコアノード内のシェーパキューに積むことにより実キューの廃棄を回避する動作を説明する図である。
第二の実施例では、コアノード内にシェーパキューを複数備えており、ユーザ毎のシェーパキューに登録されていないユーザ行きのパケットを、複数のシェーパキューにハッシュで振り分け、積む構成を示す。
第一の実施例の説明に用いた図8に示すコアノード1では、ユーザ毎のシェーパキューに登録されていないユーザ行きのパケットは、すべて出力帯域制御部を持たないキュー113に積んでいた。
Next, the second embodiment will be described.
FIG. 16 is a diagram illustrating an operation of avoiding discarding the actual queue by loading only the overflowed user packets in the shaper queue in the core node when the virtual queue in the core node 1 overflows.
In the second embodiment, a configuration is shown in which a plurality of shaper queues are provided in the core node, and packets destined for users who are not registered in the shaper queue for each user are distributed to a plurality of shaper queues by hash and stacked.
In the core node 1 shown in FIG. 8 used in the description of the first embodiment, all packets destined for users not registered in the shaper queue for each user are loaded in the queue 113 having no output bandwidth control unit.

これに対し、第二の実施例を説明する図16のコアノード1は、複数のシェーパキューを備える点を特徴とする。第二の実施例においては、ユーザ毎のシェーパキューに登録されたユーザ行きのパケットはユーザ毎の複数のシェーパキュー1110のいずれかに積み、その他のユーザ行きのパケットは、振分部1131でユーザ識別情報をハッシュキーとしてハッシュ関数で得られたハッシュ値によりパケットを複数のシェーパキュー11320に振り分け、複数のシェーパキュー11320のいずれかに積むようにする。 On the other hand, the core node 1 of FIG. 16 for explaining the second embodiment is characterized in that it includes a plurality of shaper cues. In the second embodiment, the packets destined for the user registered in the shaper queue for each user are loaded in one of the plurality of shaper queues 1110 for each user, and the packets destined for the other users are stored in the distribution unit 1131 by the user. The packet is distributed to a plurality of shaper queues 11320 according to the hash value obtained by the hash function using the identification information as a hash key, and is loaded on one of the plurality of shaper queues 11320.

図16において、ユーザA 311行きのパケットの通過経路が、ユーザ毎のシェーパキューに登録されたユーザ行きのパケットの通過経路の例である。ユーザA行きのパケットはユーザ毎のシェーパキュー111に積まれ、出力帯域制御部112により出力帯域制御が行われて出力される。ユーザB 321行きのパケットの通過経路が、その他のユーザ行きのパケットの通過経路の例である。ユーザB行きのパケットは振分部1131によりハッシュで振り分けた複数のシェーパキュー11320の一つであるキュー1132に積まれ、出力帯域制御部1133により出力帯域制御が行なわれて出力される。 In FIG. 16, the passage route of the packet destined for user A 311 is an example of the passage route of the packet destined for the user registered in the shaper queue for each user. The packet destined for user A is loaded in the shaper queue 111 for each user, and the output bandwidth control unit 112 performs output bandwidth control and outputs the packet. The passage route of the packet to user B 321 is an example of the passage route of the packet to other users. Packets destined for user B are loaded in queue 1132, which is one of a plurality of shaper queues 11320 distributed by hash by distribution unit 1131, and output band control is performed by output band control unit 1133 and output.

キュー111にはユーザA行きのパケットのみが積まれるので、キュー111の出力帯域制御部112で制御する帯域はユーザAに繋がる回線3111の帯域に対応して決められる。一方、キュー1132にはユーザB行きだけでなく複数のユーザ行きのパケットが積まれるので、キュー1132の出力帯域制御部11320で制御する帯域は、ユーザBに繋がる回線3211の帯域に対応しては決められない。キュー1132の出力帯域制御部11320で制御する帯域は、一般的にはユーザBに繋がる回線3211の帯域よりも大きい値にされる。 Since only packets destined for user A are loaded in the queue 111, the bandwidth controlled by the output bandwidth control unit 112 of the queue 111 is determined according to the bandwidth of the line 3111 connected to the user A. On the other hand, since the queue 1132 is loaded with packets not only for user B but also for a plurality of users, the bandwidth controlled by the output bandwidth control unit 11320 of queue 1132 should correspond to the bandwidth of the line 3211 connected to user B. can not decide. The band controlled by the output band control unit 11320 of the queue 1132 is generally set to a value larger than the band of the line 3211 connected to the user B.

第二の実施例によれば、ユーザ毎の帯域制御の要否の判断に時間が掛かるので、あるユーザ行きのトラフィックが急に増えた場合に、トラフィックが増えてからユーザ毎のシェーパキューへ登録するまでの間、エッジノードの実キューで発生する可能性のある溢れを防止することができる。または、溢れを少なくすることができる。
また、第一の実施例のようにシェーパキューが一つの場合には、あるユーザ行きのトラフィック量が変化したときに、他のユーザ行きのトラフィックに対し、揺らぎが増えるなどの影響を与えるが、第二の実施例においては、ハッシュによりキューを分けているので、あるユーザ行きのトラフィック量が変化したときに、他のキューに積まれるユーザ行きのトラフィックには影響を与えないようにできる。
According to the second embodiment, it takes time to determine the necessity of bandwidth control for each user. Therefore, when the traffic to a certain user suddenly increases, it is registered in the shaper queue for each user after the traffic increases. In the meantime, it is possible to prevent the overflow that may occur in the actual queue of the edge node. Alternatively, the overflow can be reduced.
In addition, when there is only one shaper queue as in the first embodiment, when the amount of traffic destined for a certain user changes, it has an effect such as an increase in fluctuations with respect to the traffic destined for another user. In the second embodiment, since the queue is divided by the hash, when the amount of traffic destined for one user changes, the traffic destined for the user loaded in the other queue can be prevented from being affected.

なお、本発明は上述した実施例に限定されるものではなく、様々な変形例も可能である。また、本発明は上述した実施形態に限られるものではなく、種々なる態様で実施できることは勿論である。また、上記の各構成、機能、処理等は、それらの一部又は全部を、ハードウェアで実現してもよく、ソフトウェアで実現してもよい。 The present invention is not limited to the above-described embodiment, and various modifications are possible. Further, the present invention is not limited to the above-described embodiment, and it goes without saying that the present invention can be carried out in various embodiments. Further, each of the above configurations, functions, processes and the like may be realized by hardware or software in part or all of them.

1…コアノード、11…パケット中継部、12…仮想キュー長計算部、13…CPU部、14…パケット関連データ、15…アクセスインタフェース21…配信サーバ、22…配信サーバ、31…エッジノード、32…エッジノード、311…ユーザA、321…ユーザB、3112…ユーザA行きの実キュー、3212…ユーザB行きの実キュー、121…ユーザ識別検索部、122…仮想キュー長更新部、1221…仮想キュー長テーブル、1222…最大仮想キュー長リードクリアモードレジスタ、142…パケット長、12213…仮想キュー長、12215…出力帯域、12216…リミット仮想キュー長、111…シェーパキュー、112…出力帯域制御部、113…出力帯域制御部を持たないキュー、114…キューの出力の調停部、115…シェーパキュー、116…出力帯域制御部、117…シェーパキュー検索テーブル、23…仮想キュー監視サーバ、1131…振分部、1110…ユーザ毎の複数のシェーパキュー、11320…ハッシュ関数により振り分け先を決定する複数のシェーパキュー。 1 ... Core node, 11 ... Packet relay unit, 12 ... Virtual queue length calculation unit, 13 ... CPU unit, 14 ... Packet-related data, 15 ... Access interface 21 ... Distribution server, 22 ... Distribution server, 31 ... Edge node, 32 ... Edge node, 311 ... User A, 321 ... User B, 3112 ... Real queue for user A, 3212 ... Real queue for user B, 121 ... User identification search unit, 122 ... Virtual queue length update unit, 1221 ... Virtual queue Length table, 1222 ... Maximum virtual queue length Read clear mode register, 142 ... Packet length, 12213 ... Virtual queue length, 12215 ... Output band, 12216 ... Limit virtual queue length, 111 ... Shaper queue, 112 ... Output band control unit, 113 ... Queue without output band control unit, 114 ... Queue output arbitration unit, 115 ... Shaper queue, 116 ... Output band control unit, 117 ... Shaper queue search table, 23 ... Virtual queue monitoring server, 1131 ... Distribution unit 11,10 ... Multiple shaper queues for each user, 11320 ... Multiple shaper queues for determining the distribution destination by a hash function.

Claims (14)

サーバから配信されるユーザ宛てのパケットをネットワークへ送信するとともにネットワークを介して受信したパケットをサーバに送信する通信装置であって、前記ユーザ宛てのパケットは、前記ネットワークのエッジに位置するエッジ装置からユーザに送信されるものであり、
通信装置は、
前記ユーザの全ユーザ数より少ない数の第1のシェーパキューを有し、前記サーバと前記ネットワーク間で送受信するパケットの中継およびパケットの帯域制御を行うとともにパケットに含まれるパケット関連情報を抽出するパケット中継部と、
前記パケット関連情報と前記エッジ装置とユーザ間の回線の帯域情報に基づいて、ユーザ毎に前記エッジ装置における前記ユーザ宛ての送信キューのキュー長の推定値である仮想キュー長を計算して保持する仮想キュー長計算部と、
前記仮想キュー長および予め定めた条件に基づいてユーザ毎に帯域制御の要否を判断し、帯域制御が必要と判断されたユーザ毎に前記第1のシェーパキューを割り当てることによって、前記パケット中継部において該ユーザ宛てのパケットの帯域制御を行うよう前記パケット中継部を制御する制御部とを有する通信装置。
A communication device that transmits a packet addressed to a user delivered from a server to a network and also transmits a packet received via the network to a server, and the packet addressed to the user is from an edge device located at the edge of the network. It is sent to the user and
Communication equipment
A packet that has a number of first shaper queues smaller than the total number of users of the user, relays packets sent and received between the server and the network, controls the bandwidth of the packet, and extracts packet-related information contained in the packet. With the relay part
Based on the packet-related information and the band band information of the line between the edge device and the user, the virtual queue length, which is an estimated value of the queue length of the transmission queue addressed to the user in the edge device, is calculated and held for each user. Virtual queue length calculation unit and
The packet relay unit is determined by determining the necessity of bandwidth control for each user based on the virtual queue length and predetermined conditions, and assigning the first shaper queue to each user who is determined to require bandwidth control. A communication device having a control unit that controls the packet relay unit so as to control the bandwidth of a packet addressed to the user.
請求項1に記載の通信装置であって、前記パケット中継部は、パケット関連情報として、パケット長および宛先アドレスを抽出し、前記仮想キュー長計算部においては、前記宛先アドレスに基づいてユーザ毎に一意の識別子を設定し、該ユーザ識別子を用いてユーザを識別して前記パケット長を用いて前記仮想キュー長の管理を行い、
前記制御部は、帯域制御が必要と判断されたユーザに対して割り当てた前記第1のシェーパキューの番号と前記ユーザ識別子とを前記パケット中継部に設定し、
前記パケット中継部が、前記設定に基づいて前記ユーザ毎の帯域制御を行うことを特徴とする通信装置。
The communication device according to claim 1, wherein the packet relay unit extracts a packet length and a destination address as packet-related information, and in the virtual queue length calculation unit, each user is based on the destination address. A unique identifier is set, the user is identified using the user identifier, and the virtual queue length is managed using the packet length.
The control unit sets the number of the first shaper queue and the user identifier assigned to the user determined to require bandwidth control in the packet relay unit.
A communication device in which the packet relay unit controls bandwidth for each user based on the settings.
請求項1に記載の通信装置であって、ユーザ毎の帯域制御の要否の判断は、前回クリアされて以降今までの仮想キュー長の最大値である最大仮想キュー長に基づいて判断することを特徴とする通信装置。 In the communication device according to claim 1, the determination as to whether or not bandwidth control is necessary for each user is made based on the maximum virtual queue length, which is the maximum value of the virtual queue length since it was cleared last time. A communication device characterized by. 請求項1に記載の通信装置であって、ユーザ毎の帯域制御の要否の判断は、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長を超えて、廃棄されると想定されるパケット数から求めた値に基づいて判断することを特徴とする通信装置。 In the communication device according to claim 1, it is assumed that the determination of the necessity of bandwidth control for each user exceeds the limit virtual queue length, which is the maximum value that the virtual queue length can take, and is discarded. A communication device characterized in that a judgment is made based on a value obtained from the number of packets. 請求項1に記載の通信装置であって、ユーザ毎の帯域制御の要否の判断は、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長に予め設定した閾値を掛けた値に基づいて判断することを特徴とする通信装置。 In the communication device according to claim 1, the determination of the necessity of bandwidth control for each user is based on a value obtained by multiplying the limit virtual queue length, which is the maximum value that the virtual queue length can take, by a preset threshold value. A communication device characterized by making a judgment. 請求項2に記載の通信装置であって、
前記パケット中継部は、シェーパキューと前記ユーザ識別子と前記ユーザ識別子の宛先アドレス範囲を対応づけたシェーパキュー検索テーブルを有し、
前記仮想キュー長計算部は、前記ユーザ識別子によって識別されるユーザ毎に、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長の情報をさらに有し、
前記制御部は、前記シェーパキュー検索テーブルと前記リミット仮想キュー長における最大仮想キュー長の割合である仮想キュー最大占有率に基づいて、前記第1のシェーパキューに割り当てるユーザの追加削除を前記シェーパキュー検索テーブルに対して行うことを特徴とする通信装置。
The communication device according to claim 2.
The packet relay unit has a shaper queue search table in which the shaper queue, the user identifier, and the destination address range of the user identifier are associated with each other.
The virtual queue length calculation unit further has information on the limit virtual queue length, which is the maximum value that the virtual queue length can take, for each user identified by the user identifier.
The control unit adds or deletes a user assigned to the first shaper queue based on the virtual queue maximum occupancy rate, which is the ratio of the maximum virtual queue length to the shaper queue search table and the limit virtual queue length. A communication device characterized by performing on a search table.
請求項1に記載の通信装置であって、
前記パケット中継部は、さらに、前記第1のシェーパキューとは別の第2の複数のシェーパキューを有し、
前記パケット中継部は、
前記制御部において前記第1のシェーパキューを割り当てられていないユーザ宛てのパケットを受信した場合に、前記第2の複数のシェーパキューのいずれか一つに前記パケットを格納することを特徴とする通信装置。
The communication device according to claim 1.
The packet relay unit further has a second plurality of shaper queues different from the first shaper queue.
The packet relay unit
When the control unit receives a packet addressed to a user to whom the first shaper queue is not assigned, the communication is characterized in that the packet is stored in any one of the second plurality of shaper queues. apparatus.
サーバから配信されるユーザ宛てのパケットをネットワークへ送信するとともにネットワークを介して受信したパケットをサーバに送信する通信装置における通信方法であって、
前記通信装置は、前記ユーザの全ユーザ数より少ない数の第1のシェーパキューを有するパケット中継部を有し、
前記ユーザ宛てのパケットは、前記ネットワークのエッジに位置するエッジ装置からユーザに送信されるものであり、
前記パケットに含まれるパケット関連情報を抽出し、
前記パケット関連情報と前記エッジ装置とユーザ間の回線の帯域情報に基づいて、ユーザ毎に前記エッジ装置における前記ユーザ宛ての送信キューのキュー長の推定値である仮想キュー長を計算して保持し、
前記仮想キュー長および予め定めた条件に基づいてユーザ毎に帯域制御の要否を判断し、帯域制御が必要と判断されたユーザ毎に、前記第1のシェーパキューのいずれかを割り当てることによって、該ユーザ宛てのパケットの帯域制御を行うことを特徴とする通信方法。
It is a communication method in a communication device that transmits a packet addressed to a user delivered from a server to a network and also transmits a packet received via the network to a server.
The communication device has a packet relay unit having a number of first shaper queues smaller than the total number of users of the user.
The packet addressed to the user is transmitted to the user from an edge device located at the edge of the network.
The packet-related information contained in the packet is extracted, and the packet-related information is extracted.
Based on the packet-related information and the bandwidth information of the line between the edge device and the user, the virtual queue length, which is an estimated value of the queue length of the transmission queue addressed to the user in the edge device, is calculated and held for each user. ,
By determining the necessity of bandwidth control for each user based on the virtual queue length and predetermined conditions, and assigning any of the first shaper queues to each user determined to require bandwidth control, A communication method characterized in that bandwidth control of a packet addressed to the user is performed.
請求項8に記載の通信方法であって、パケット関連情報として、パケット長および宛先アドレスを抽出し、前記宛先アドレスに基づいてユーザ毎に一意の識別子を設定し、該ユーザ識別子を用いてユーザを識別して前記パケット長を用いて前記仮想キュー長の管理を行い、帯域制御が必要と判断されたユーザに対して割り当てた前記第1のシェーパキューの番号と前記ユーザ識別子とに基づいて前記ユーザ毎の帯域制御を行うことを特徴とする通信方法。 The communication method according to claim 8, wherein the packet length and the destination address are extracted as packet-related information, a unique identifier is set for each user based on the destination address, and the user is used by using the user identifier. The user is identified and the virtual queue length is managed using the packet length, and the user is assigned based on the first shaper queue number and the user identifier assigned to the user who is determined to require bandwidth control. A communication method characterized in that band control is performed for each band. 請求項8に記載の通信方法であって、ユーザ毎の帯域制御の要否の判断は、前回クリアされて以降今までの仮想キュー長の最大値である最大仮想キュー長に基づいて判断することを特徴とする通信方法。 In the communication method according to claim 8, the determination of the necessity of bandwidth control for each user is made based on the maximum virtual queue length, which is the maximum value of the virtual queue lengths since the last time it was cleared. A communication method characterized by. 請求項8に記載の通信方法であって、ユーザ毎の帯域制御の要否の判断は、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長を超えて、廃棄されると想定されるパケット数から求めた値に基づいて判断することを特徴とする通信方法。 In the communication method according to claim 8, it is assumed that the determination of the necessity of bandwidth control for each user exceeds the limit virtual queue length, which is the maximum value that the virtual queue length can take, and is discarded. A communication method characterized in that a judgment is made based on a value obtained from the number of packets. 請求項8に記載の通信方法であって、ユーザ毎の帯域制御の要否の判断は、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長に予め設定した閾値を掛けた値に基づいて判断することを特徴とする通信方法。 In the communication method according to claim 8, the determination of the necessity of bandwidth control for each user is based on a value obtained by multiplying the limit virtual queue length, which is the maximum value that the virtual queue length can take, by a preset threshold value. A communication method characterized by making a judgment. 請求項9に記載の通信方法であって、
シェーパキューと前記ユーザ識別子と前記ユーザ識別子の宛先アドレス範囲を対応づけたシェーパキュー検索テーブルと、
前記ユーザ識別子によって識別されるユーザ毎に、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長の情報をさらに有し、
前記シェーパキュー検索テーブルと前記リミット仮想キュー長における最大仮想キュー長の割合である仮想キュー最大占有率に基づいて、前記第1のシェーパキューに割り当てるユーザの追加削除を前記シェーパキュー検索テーブルに対して行うことを特徴とする通信方法。
The communication method according to claim 9.
A shaper queue search table that associates the shaper queue with the user identifier and the destination address range of the user identifier.
For each user identified by the user identifier, information on the limit virtual queue length, which is the maximum value that the virtual queue length can take, is further provided.
Additions and deletions of users assigned to the first shaper queue are added to the shaper queue search table based on the virtual queue maximum occupancy rate, which is the ratio of the maximum virtual queue length to the shaper queue search table and the limit virtual queue length. A communication method characterized by performing.
請求項8に記載の通信方法であって、
前記通信装置の前記パケット中継部は、前記第1のシェーパキューとは異なる第2の複数のシェーパキューを有し、
前記第1のシェーパキューを割り当てられていないユーザ宛てのパケットを受信した場合に、前記第2の複数のシェーパキューのいずれか一つに前記パケットを格納することを特徴とする通信方法。
The communication method according to claim 8.
The packet relay unit of the communication device has a second plurality of shaper queues different from the first shaper queue.
A communication method characterized in that when a packet addressed to a user to whom the first shaper queue is not assigned is received, the packet is stored in any one of the second plurality of shaper queues.
JP2017003781A 2016-03-30 2017-01-13 Communication device and communication method Active JP6903436B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/455,627 US10326705B2 (en) 2016-03-30 2017-03-10 Communication device and communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016067048 2016-03-30
JP2016067048 2016-03-30

Publications (2)

Publication Number Publication Date
JP2017188870A JP2017188870A (en) 2017-10-12
JP6903436B2 true JP6903436B2 (en) 2021-07-14

Family

ID=60046545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017003781A Active JP6903436B2 (en) 2016-03-30 2017-01-13 Communication device and communication method

Country Status (1)

Country Link
JP (1) JP6903436B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7103883B2 (en) * 2018-07-27 2022-07-20 アラクサラネットワークス株式会社 Communication systems, communication control methods, and communication devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4216399B2 (en) * 1998-04-01 2009-01-28 株式会社日立製作所 Packet switch
JP4025692B2 (en) * 2003-06-30 2007-12-26 富士通株式会社 Bandwidth control device
JP2005295524A (en) * 2004-03-09 2005-10-20 Matsushita Electric Ind Co Ltd Packet output-controlling device, packet shaper, and packet repeater
JP4409401B2 (en) * 2004-10-08 2010-02-03 株式会社日立製作所 Packet transfer apparatus and storage system
JP5366905B2 (en) * 2010-08-25 2013-12-11 日本電信電話株式会社 Buffer control method and buffer control apparatus
JP5659125B2 (en) * 2011-01-26 2015-01-28 アラクサラネットワークス株式会社 Relay device and relay method
JP5421306B2 (en) * 2011-02-21 2014-02-19 日本電信電話株式会社 Data communication system, buffer control device, and buffer control method
JP2014045349A (en) * 2012-08-27 2014-03-13 Nippon Telegr & Teleph Corp <Ntt> Communication system

Also Published As

Publication number Publication date
JP2017188870A (en) 2017-10-12

Similar Documents

Publication Publication Date Title
CN110166380B (en) Method for scheduling message, first network device and computer readable storage medium
Bonald et al. Statistical performance guarantees for streaming flows using expedited forwarding
US5335224A (en) Service guarantees/congestion control in high speed networks
EP1798915B1 (en) Packet forwarding device avoiding packet loss of out of profile packets in the shaper by remarking and redirecting the packet to a lower priority queue
JP2011151601A (en) Packet relay device and packet relay method
JP2014517571A (en) Hierarchical scheduling and shaping
US8942090B2 (en) Technique for throughput control for packet switches
CN110086728B (en) Method for sending message, first network equipment and computer readable storage medium
JP3687501B2 (en) Transmission queue management system and management method for packet switch
CN107431667A (en) Packet is dispatched in the network device
JP7211765B2 (en) PACKET TRANSFER DEVICE, METHOD AND PROGRAM
JP6903436B2 (en) Communication device and communication method
JP4484810B2 (en) Packet transfer device
KR101737516B1 (en) Method and apparatus for packet scheduling based on allocating fair bandwidth
US20230336486A1 (en) Service flow scheduling method and apparatus, and system
US10326705B2 (en) Communication device and communication method
Sivasubramaniam et al. Enhanced core stateless fair queuing with multiple queue priority scheduler
Kozačinski et al. Configuration of quality of service parameters in communication networks
JPWO2014157460A1 (en) COMMUNICATION SYSTEM, CONTROL DEVICE, INFORMATION COLLECTION METHOD, AND PROGRAM
JP2016066835A (en) Transmission device and transmission method
JP4342395B2 (en) Packet relay method and apparatus
KR100959397B1 (en) Packet scheduling apparatus
De Vuyst et al. Delay differentiation by reserving space in queue
KR100745679B1 (en) Method and apparatus for packet scheduling using adaptation round robin
JP6082330B2 (en) Communication apparatus, program, and method for increasing accommodation efficiency of aggregated packets for each path in consideration of allowable waiting time

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170113

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180223

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180314

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210114

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210623

R150 Certificate of patent or registration of utility model

Ref document number: 6903436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150