JP6903436B2 - Communication device and communication method - Google Patents
Communication device and communication method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 48
- 238000004891 communication Methods 0.000 title claims description 47
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 3
- 238000007792 addition Methods 0.000 claims 1
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000007493 shaping process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
In
特許文献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.
サーバからユーザに向けたトラフィックは、通信速度が速いサーバに近い回線からネットワークを経由してユーザ回線を収容するエッジノードに送られる。ユーザ回線を収容するエッジノードは、ユーザ回線行きのトラフィックを蓄積するキューを有するが、ユーザ回線はネットワーク内の回線と比較し低速であるため、キューが溢れてパケットが廃棄される場合がある。
ネットワーク内のコアノードでユーザ毎に通信パケットのシェーピングを行えば、エッジノードでのパケットのロスを少なくできる。しかしその為には、通信していないユーザも含めすべてのユーザに対してキューを設け、さらにユーザ識別の為の通信パケットのヘッダ条件とキューの帯域をコアノードに設定する必要があり、多数のユーザ、例えば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
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.
以下、実施例を図面を用いて説明する。 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.
配信サーバ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
配信サーバ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
図2以降では、このエッジノード内のキュー3112、3212の溢れをコアノード1内で検知する方法及び検知する為の構成、及び検知後にエッジノード内のキューの溢れを回避する方法及び回避する為の構成を説明する。
図2は、本発明の一実施例におけるコアノード内の仮想キュー長計算部12の構成を示す図である。
図1のパケット中継部11がパケットの中継を行う毎に、パケット中継部11から仮想キュー長計算部12に中継を行ったパケットに関連するデータであるパケット関連データ14が送られる。
In FIGS. 2 and 2, a method for detecting the overflow of the
FIG. 2 is a diagram showing a configuration of a virtual queue
Every time the
パケット関連データのうち、宛先アドレス141がユーザ識別検索部121に送られ、ユーザ識別検索部121は宛先アドレスからユーザを識別し、ユーザ毎に一意のユーザ識別子123を出力する。ユーザ識別子123は、仮想キュー長更新部122に送られる。 パケット関連データのうち、パケット長142が仮想キュー長更新部122に送られる。仮想キュー長更新部122は、ユーザ識別検索部から出力されたユーザ識別子123とパケット長142に基づきユーザ毎の仮想キュー長を格納したテーブルである仮想キュー長テーブル1222内の該当するユーザの仮想キュー長を更新する。また、仮想キュー長計算部12は、仮想キュー長の今までの最大値を示す最大仮想キュー長を保存している。CPU部13がアクセスインタフェース15経由で仮想キュー長の今までの最大値を示す最大仮想キュー長を読み出した際に、仮想キュー長計算部12は、最大仮想キュー長リードクリアモードレジスタ1222の設定値により、最大仮想キュー長をクリアするか否かの動作を切り替えるようにする。
Of the packet-related data, the
図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
The virtual queue length table 1221 uses the
当該ユーザの出力帯域12215、リミット仮想キュー長12216は、網管理者が管理しているものであり、網管理者とユーザとの間の契約メニューに依存して値が変わる場合も有り得る。例えば安いメニューでは出力帯域が100Mbpsで、高いメニューでは出力帯域が1Gbpsのような場合も有り得る。リミット仮想キュー長12216は、一般的にはユーザからは判り難く、ユーザに開示する場合は少ないと考えられる。パケットの廃棄が頻発しているユーザに対しては、エッジノード31、32を、ユーザ行きのキュー3112、3212がより長い装置に置き換える、或いはキュー3112、3212が長いネットワークインタフェースカードをエッジノード31,32に入れることにより、当該ユーザ宛のパケットの廃棄を回避することができる。そのような場合、ユーザ毎にリミット仮想キュー長が異なる場合も有り得る。
The
図4は、図3に示す仮想キュー長テーブル1221内の仮想キュー長12213を更新するための仮想キューのモデルを表す図である。
仮想キューは、仮想キューに積まれているパケットデータの量を表す仮想キュー長によりエッジノードの実キュー長を模擬するものである。ユーザ宛てのパケット中継時に、当該ユーザの仮想キューの仮想キュー長の値に、中継するパケットのパケット長142を加算することでパケットが積まれる状態を模擬し、出力帯域12215から求められる時間あたりのパケット出力量に基づいて、時間の経過と共に仮想キュー長の値を減算することでパケットが引き抜かれる状態を模擬することで、エッジノードにおける実キュー長の推定値を求める、というモデルである。仮想キュー長として取り得る最大値をリミット仮想キュー長12216として設定しておく。仮想キューでは仮想キューの長さは管理するがパケットデータ自体は持たない為、パケットデータを保持しておく為のメモリは不要である。
FIG. 4 is a diagram showing a model of a virtual queue for updating the
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
図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
FIG. 5 shows the time change of the virtual queue length when the packet was relayed at the
図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
When the
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
When reading the maximum
S521で最大仮想キュー長の読み出し値として、仮想キュー長テーブル1221内の最大仮想キュー長12214を返すようにする。
S522で仮想キュー長を
(数9) 仮想キュー長=仮想キュー長−(現時刻−前回更新時刻)*帯域
により計算し、S523で
(数10) 仮想キュー長<0
か否かを判定する。YESの場合は、最大仮想キュー長読み出し時点で既に仮想キューが掃けていたことを意味するので、S524で
(数11) 仮想キュー長=0
を実行する。その後、S525で最大仮想キュー長リードクリアモードか否かの判定を行ない、YESの場合、リードクリアモードなので、S526で
(数12) 最大仮想キュー長=仮想キュー長
を実行する。これは、最大仮想キュー長がクリアされた後、直ぐに最大仮想キュー長に現在の仮想キュー長の値が入ったとみなした場合の値である。NOの場合はリードクリアモードではないので、最大仮想キュー長の値は保存される。
最後にS527で更新時刻を
(数13) 更新時刻=現時刻
のように更新し、S528で本フローチャートを終了する。
The maximum
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
さらに、最大仮想キュー長リードクリアモードレジスタ1222の値をリード時にクリアするモードに設定した場合には、CPU部13から最大仮想キュー長12214を読む度に最大仮想キュー長12214がクリアされるので、CPU部13から読んだ値は、前回読んだときから今回読んだときまでの間の最大値になる。これを周期的に繰り返すことにより、CPU部13から、仮想キュー長の最大値の時間変化を、最大値として取り込まないタイミングも無く、複数の重複する期間に同じ最大値を複数回取り込むことも無く、把握することができる。
Further, when the value of the maximum virtual queue length read
図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
The shaper queue is a queue having an output
When the virtual queue of a certain user, for example, user A, overflows in the virtual queue
図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
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
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
When the
図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
当該パケットの宛先アドレスが、シェーパキュー検索テーブル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
図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
FIG. 13 is a user information table for the
FIG. 14 is a shaper queue management information table for the
或いは、図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
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
The information of the virtual queue length table shown in FIG. 3 calculated by the virtual queue
更に、コアノード内のユーザ毎のリミット仮想キュー長を、エッジノード内の実キュー長として取り得る最大値(以後、リミット実キュー長と呼ぶ)より長くすることにより、溢れの程度を把握することができる。例えば、リミット仮想キュー長をリミット実キュー長の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
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
これに対し、第二の実施例を説明する図16のコアノード1は、複数のシェーパキューを備える点を特徴とする。第二の実施例においては、ユーザ毎のシェーパキューに登録されたユーザ行きのパケットはユーザ毎の複数のシェーパキュー1110のいずれかに積み、その他のユーザ行きのパケットは、振分部1131でユーザ識別情報をハッシュキーとしてハッシュ関数で得られたハッシュ値によりパケットを複数のシェーパキュー11320に振り分け、複数のシェーパキュー11320のいずれかに積むようにする。
On the other hand, the
図16において、ユーザA 311行きのパケットの通過経路が、ユーザ毎のシェーパキューに登録されたユーザ行きのパケットの通過経路の例である。ユーザA行きのパケットはユーザ毎のシェーパキュー111に積まれ、出力帯域制御部112により出力帯域制御が行われて出力される。ユーザB 321行きのパケットの通過経路が、その他のユーザ行きのパケットの通過経路の例である。ユーザB行きのパケットは振分部1131によりハッシュで振り分けた複数のシェーパキュー11320の一つであるキュー1132に積まれ、出力帯域制御部1133により出力帯域制御が行なわれて出力される。
In FIG. 16, the passage route of the packet destined for
キュー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
第二の実施例によれば、ユーザ毎の帯域制御の要否の判断に時間が掛かるので、あるユーザ行きのトラフィックが急に増えた場合に、トラフィックが増えてからユーザ毎のシェーパキューへ登録するまでの間、エッジノードの実キューで発生する可能性のある溢れを防止することができる。または、溢れを少なくすることができる。
また、第一の実施例のようにシェーパキューが一つの場合には、あるユーザ行きのトラフィック量が変化したときに、他のユーザ行きのトラフィックに対し、揺らぎが増えるなどの影響を与えるが、第二の実施例においては、ハッシュによりキューを分けているので、あるユーザ行きのトラフィック量が変化したときに、他のキューに積まれるユーザ行きのトラフィックには影響を与えないようにできる。
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 ...
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のシェーパキューの番号と前記ユーザ識別子とを前記パケット中継部に設定し、
前記パケット中継部が、前記設定に基づいて前記ユーザ毎の帯域制御を行うことを特徴とする通信装置。 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のシェーパキューに割り当てるユーザの追加削除を前記シェーパキュー検索テーブルに対して行うことを特徴とする通信装置。 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のシェーパキューとは別の第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.
シェーパキューと前記ユーザ識別子と前記ユーザ識別子の宛先アドレス範囲を対応づけたシェーパキュー検索テーブルと、
前記ユーザ識別子によって識別されるユーザ毎に、前記仮想キュー長の取りうる最大値であるリミット仮想キュー長の情報をさらに有し、
前記シェーパキュー検索テーブルと前記リミット仮想キュー長における最大仮想キュー長の割合である仮想キュー最大占有率に基づいて、前記第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.
前記通信装置の前記パケット中継部は、前記第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.
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)
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)
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 |
-
2017
- 2017-01-13 JP JP2017003781A patent/JP6903436B2/en active Active
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 | |
JP5340186B2 (en) | Packet relay apparatus 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 | |
CN113572655B (en) | Congestion detection method and system for non-lost network | |
US20230336486A1 (en) | Service flow scheduling method and apparatus, and system | |
US10326705B2 (en) | Communication device and communication method | |
KR20120055947A (en) | Method and apparatus for providing Susbscriber-aware per flow | |
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 | |
Hu et al. | A pi queueing delay controller enhanced by adaptive choke for aqm | |
JP5361001B2 (en) | ROUTING CONTROL DEVICE, ROUTING CONTROL METHOD, AND PROGRAM | |
JP2016066835A (en) | Transmission device and transmission method | |
JP4342395B2 (en) | Packet relay method and apparatus | |
KR100959397B1 (en) | Packet scheduling apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
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 | Request for written amendment filed |
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 | Request for written amendment filed |
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |