[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4391346B2 - COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM - Google Patents

COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM Download PDF

Info

Publication number
JP4391346B2
JP4391346B2 JP2004204129A JP2004204129A JP4391346B2 JP 4391346 B2 JP4391346 B2 JP 4391346B2 JP 2004204129 A JP2004204129 A JP 2004204129A JP 2004204129 A JP2004204129 A JP 2004204129A JP 4391346 B2 JP4391346 B2 JP 4391346B2
Authority
JP
Japan
Prior art keywords
flow
user
packet
bandwidth
communication control
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.)
Expired - Fee Related
Application number
JP2004204129A
Other languages
Japanese (ja)
Other versions
JP2006033002A (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.)
Furukawa Electric Co Ltd
Original Assignee
Furukawa Electric Co Ltd
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 Furukawa Electric Co Ltd filed Critical Furukawa Electric Co Ltd
Priority to JP2004204129A priority Critical patent/JP4391346B2/en
Publication of JP2006033002A publication Critical patent/JP2006033002A/en
Application granted granted Critical
Publication of JP4391346B2 publication Critical patent/JP4391346B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、トークンバケツモデルを用いた通信制御方法において、余剰帯域及びバッファ容量を公平に配分する通信制御方法、その方法を用いた通信制御装置、制御プログラム及び記録媒体に関する。   The present invention relates to a communication control method for fair distribution of surplus bandwidth and buffer capacity in a communication control method using a token bucket model, a communication control device using the method, a control program, and a recording medium.

近年、通信ネットワークの接続サービスでは、FTTH(Fiber To The Home)の普及によって高速な接続サービスが低コストで提供できるようになってきている。   In recent years, in connection services for communication networks, high-speed connection services can be provided at low cost due to the widespread use of FTTH (Fiber To The Home).

例えば、音声データをデジタル化し、圧縮して、インターネット上またはIPネットワーク上を交換または伝送するVoIP(Voice over IP)や、インターネット電話が実用化されている。VoIPはデータパケットと音声データを1個のネットワーク上で混在して伝送できるので、ネットワークの建設費用、運用費用とも節減できる。さらに、その中でユーザの利用できる帯域を保証する通信サービスが普及してきている。   For example, VoIP (Voice over IP) and Internet telephone which digitize and compress voice data and exchange or transmit the data on the Internet or IP network have been put into practical use. Since VoIP can transmit data packets and voice data mixedly on a single network, it can save both network construction costs and operation costs. In addition, communication services that guarantee bandwidth available to users are becoming widespread.

このような通信ネットワークを流れるデータトラフィックは、その使用するアプリケーションに応じたQoS(Quality of Service:サービス品質)制御を行う必要がある。   Data traffic flowing through such a communication network needs to be subjected to QoS (Quality of Service) control according to the application used.

QoS制御により、帯域の調整を通してSLA(Service Level Agreement:サービスレベル契約)を施行する。SLAは、指定されたユーザまたはサービスタイプに対してネットワークが満たさなければならない保証基準を定義したものである。これらの基準には、保証される帯域、パケット損失等が含まれる。   With QoS control, SLA (Service Level Agreement) is enforced through bandwidth adjustment. SLA defines the assurance criteria that a network must meet for a specified user or service type. These criteria include guaranteed bandwidth, packet loss, and the like.

保証される帯域としては、使用可能な帯域の最小、平均、及びピーク保証値が指定できる。パケット損失は、送信後受信されていないパケットや、受信でエラーが発生したパケットの数または割合を示す。   As the guaranteed bandwidth, the minimum, average, and peak guaranteed values of the usable bandwidth can be designated. Packet loss indicates the number or percentage of packets that have not been received after transmission, or packets that have received errors.

このQoS制御を行うための技術方法としては、各フロー毎に異なるキューを構成し、各キューから送信されるパケットをスケジューラによって1回に1個づつ取り出し、スケジューリングするスケジューリング方法がある。   As a technical method for performing the QoS control, there is a scheduling method in which different queues are configured for each flow, and packets transmitted from the queues are extracted one by one by a scheduler and scheduled.

また、ネットワーク内の各通信制御装置(以下、ルータという)で、フローをユーザ毎、サービスタイプ毎のフローに分類して、各フローに対してそれぞれ帯域とバッファ容量を割り当て、フローの最大流量を制限するポリシング方法なども用いられている。   Also, each communication control device (hereinafter referred to as a router) in the network classifies flows into flows for each user and service type, assigns a bandwidth and buffer capacity to each flow, and sets the maximum flow rate of the flow. Restricting policing methods are also used.

図5は、スケジューリング方法の1態様を示す図である。
図5は、複数の情報ソース25−1〜25−n、キュー12−1〜12−n、フロー32−1〜32−n、1つの出リンク17を備えたスケジューラ13からなっている。
FIG. 5 is a diagram illustrating one aspect of the scheduling method.
FIG. 5 includes a scheduler 13 having a plurality of information sources 25-1 to 25 -n, queues 12-1 to 12 -n, flows 32-1 to 32 -n, and one outgoing link 17.

図5に示すように、スケジューリング方法とは、複数個の情報ソース25−1〜25−nからパケットが送信され、それぞれ、フロー32−1〜32−nを通じて、キュー12−1〜12−nに入る。スケジューラ13は1回に1個のパケットしかキュー12−1〜12−nから取り出すことができない。   As shown in FIG. 5, the scheduling method is a method in which packets are transmitted from a plurality of information sources 25-1 to 25-n, and queues 12-1 to 12-n are respectively transmitted through flows 32-1 to 32-n. to go into. The scheduler 13 can retrieve only one packet from the queues 12-1 to 12-n at a time.

フローが複数本の場合、スケジューラ13はパケットを複数本のキューに待たせて、所定の方法に従ってキューから1個ずつ順に、パケットを取り出して出リンクに送出する必要がある。この送出順序を選択する方法はスケジューリング方法と言われる。   When there are a plurality of flows, the scheduler 13 needs to wait for the packets in a plurality of queues, take out the packets one by one from the queue in accordance with a predetermined method, and send them to the outgoing link. This method of selecting the transmission order is called a scheduling method.

代表的なスケジューリング方法としては、パケットを到着順に出リンクに送出するFIFO(First In First Out)スケジューリング、可変長のパケットを扱う不足ラウンドロビンスケジューリング、フローの扱いの公平性を狙った重み付けフェアスケジューリング等がある。   Typical scheduling methods include FIFO (First In First Out) scheduling for sending packets to the outgoing link in the order of arrival, insufficient round-robin scheduling for handling variable-length packets, weighted fair scheduling for fair handling of flows, etc. There is.

また、アプリケーションがフローごとのプライオリティ(優先度)を定め、そのフローのすべてのパケットにフローのプライオリティを追加し、プライオリティで定まる優先度に従ってパケットを処理するプライオリティスケジューリングもある。   There is also priority scheduling in which an application determines a priority (priority) for each flow, adds the flow priority to all packets of the flow, and processes the packets according to the priority determined by the priority.

一方、1台のルータに収容されるユーザ数はコスト削減などの理由により増加傾向であり、数千から数万のユーザを収容することも珍しくない。また、回線速度も近年急速に高速化している。   On the other hand, the number of users accommodated in a single router is increasing for reasons such as cost reduction, and it is not uncommon to accommodate thousands to tens of thousands of users. Also, the line speed has been rapidly increased in recent years.

しかしながら、このような高速回線上で多数のユーザに対して個別にキューを構成し、パケットのスケジューリングを行うことは、ルータの処理能力的に困難である。また、専用のハードウェアで実現するとしても、設計回路が複雑になりコストが多大にかかる。   However, it is difficult in terms of processing capability of the router to individually configure queues for a large number of users on such a high-speed line and perform packet scheduling. Even if it is realized by dedicated hardware, the design circuit becomes complicated and the cost is very high.

また、スケジューリング方法ではパケットのバッファ容量の利用効率が非効率になる問題もある。仮にルータの持つバッファ容量が1メガバイトの容量であるとする。1000人のユーザに対して個別にキューを作り、各キューの最大キュー長を設定すると、1メガバイト÷1000ユーザ=1キロバイトのバッファ容量の割当となる。   In addition, the scheduling method has a problem in that the utilization efficiency of the packet buffer capacity becomes inefficient. Assume that the buffer capacity of the router is 1 megabyte. If queues are individually created for 1000 users and the maximum queue length of each queue is set, 1 megabyte ÷ 1000 users = 1 buffer capacity is allocated.

しかし、サービスを契約しているユーザが1000人いるとしても、ある時間に実際にフローを流しているユーザの数はそれほど多くないと考えられる。例えば、サービスを契約しているユーザが400人であれば、600人のユーザは実際にフローを流していないことになる。   However, even if there are 1000 users who have subscribed to the service, the number of users who are actually making a flow at a certain time is not so large. For example, if the number of users contracting for the service is 400, 600 users do not actually flow.

そのため、上述のように最大キュー長を設定すると実際にはバッファ容量はほとんど使われていないにも関わらず、パケットの廃棄や遅延が発生することになり、バッファ容量の利用効率が非常に悪くなる。   Therefore, if the maximum queue length is set as described above, the packet capacity will be discarded or delayed even though the buffer capacity is practically scarcely used, and the efficiency of using the buffer capacity becomes very poor. .

さらに、特許文献2に開示されているように、複数のスケジューリング方法の中で1つのスケジューリング方法を使用し、バッファ容量を効率的に割当てることは難しく、実装することも極めて複雑となる。   Furthermore, as disclosed in Patent Document 2, it is difficult to efficiently allocate buffer capacity by using one scheduling method among a plurality of scheduling methods, and the implementation becomes extremely complicated.

一方、スケジューリング方法の代わりに、各フロー毎に帯域とバースト量を制限することができる通信制御方法、例えばポリシング方法等も提供される。   On the other hand, instead of the scheduling method, a communication control method capable of limiting the bandwidth and the burst amount for each flow, such as a policing method, is also provided.

ポリシング方法では、各フロー毎に帯域と許容バースト量の検定が行われる。即ち、ポリシング方法は、ポリサーと呼ばれる流量計を用いて、フローを常に測定している。帯域と許容バースト量の検定が行われた結果、不適合と判定された場合、即ち、ポリサーに設定した帯域の値をフローが超えた場合や、ポリサーに設定した許容バースト量をフローが超えた場合、パケットは廃棄または遅延される。   In the policing method, the bandwidth and the allowable burst amount are verified for each flow. In other words, the policing method always measures the flow using a flow meter called a policer. When the bandwidth and allowable burst amount are tested and determined to be nonconforming, that is, when the flow exceeds the bandwidth value set for the policer, or when the flow exceeds the allowable burst amount set for the policer The packet is discarded or delayed.

そして、帯域と許容バースト量の検定が行われた結果、適合と判定された場合、即ち、ポリサーに設定した帯域の値をフローが超えず、かつ、ポリサーに設定した許容バースト量をフローが超えない場合、パケットは次段の処理に入る方法である。 As a result of the verification of the bandwidth and the allowable burst amount, if it is determined to be compatible, that is, the flow does not exceed the bandwidth value set in the policer, and the flow exceeds the allowable burst amount set in the policer. If not, the packet is a method of entering the next stage of processing.

ポリシング方法の1つの方法として、トークンバケツモデルを用いたポリシング方法がある。   As one of the policing methods, there is a policing method using a token bucket model.

図6はトークンバケツモデルを用いたポリシング方法を模式的に説明する図である。
図6は、トークン26、トークンバケツ27、パケット28、ポリサー8、キュー12からなっている。
FIG. 6 is a diagram schematically illustrating a polishing method using a token bucket model.
FIG. 6 includes a token 26, a token bucket 27, a packet 28, a policer 8, and a queue 12.

図6で示すように、トークンバケツモデルを用いたポリシング方法は、トークン26と呼ばれるトラフィック送信権を表す仮想的な流量を用いる。そして、このトラフィックの流量を制限したいフローには、このトークン26をためておくための仮想的なトークンバケツ27が用意される。このトークンバケツ27にはフローの制限流量に等しい一定のレート、即ち、トークンバケツ27にトークン26が供給される速さで、トークン26が補充されている。   As shown in FIG. 6, the policing method using the token bucket model uses a virtual flow rate representing a traffic transmission right called a token 26. A virtual token bucket 27 for storing the token 26 is prepared for the flow whose flow rate is to be limited. The token bucket 27 is replenished with the token 26 at a constant rate equal to the flow limit flow rate, that is, at a speed at which the token 26 is supplied to the token bucket 27.

パケット28がポリサー8に到着すると、ポリサー8はこのパケットのデータ量に比例したトークン26をトークンバケツ27から取り出す。例えば、パケット28がポリサー8に到着し、そのパケット28が64バイト分のトークン26を必要とする場合、トークンバケツ27からトークン26を64バイト分取り出す。   When the packet 28 arrives at the policer 8, the policer 8 takes out the token 26 proportional to the data amount of the packet from the token bucket 27. For example, when the packet 28 arrives at the policer 8 and the packet 28 requires the token 26 for 64 bytes, the token 26 for 64 bytes is extracted from the token bucket 27.

パケット28は必要な量のトークン26を取り出すことで、トラフィック送信権を得て、パケット28は送信され、いったんキュー12に格納する。パケット28に必要な量のトークン26がトークンバケツ27から供給されない場合は、このパケット28は廃棄や遅延等の処理が行われる。そうすることで、フローの流量制限が実現される。   The packet 28 obtains the traffic transmission right by extracting the required amount of tokens 26, and the packet 28 is transmitted and temporarily stored in the queue 12. When the token 26 required for the packet 28 is not supplied from the token bucket 27, the packet 28 is subjected to processing such as discarding and delaying. By doing so, flow flow restriction is realized.

しかしながら、上述したポリサーは、特許文献1が開示するように、複数のフローに対して、フロー毎に帯域制限を行うものである。この場合には、パケットが送信されないフローが存在すると、余剰帯域は他のフローが使用できず、また、バッファ容量の効率的な割当てもできない。さらに、余剰帯域を各フローに公平に配分することは実装する上でも極めて困難である。
特開平6−178373号公報 特表2001−519120号公報
However, the above-described policer performs bandwidth limitation for each of a plurality of flows as disclosed in Patent Document 1. In this case, if there is a flow in which no packet is transmitted, the surplus bandwidth cannot be used by another flow, and the buffer capacity cannot be efficiently allocated. Furthermore, it is extremely difficult to implement the distribution of surplus bandwidth to each flow evenly.
JP-A-6-178373 JP-T-2001-519120

しかしながら、上述のトークンバケツモデルを用いたポリシング方法は、各フローを検定し、廃棄や遅延等をする機能だけを有しており、帯域とバッファ容量を公平に割り当てることができないという問題点があった。   However, the above-described policing method using the token bucket model has a problem in that each flow is verified and only a function of discarding or delaying is provided, and a bandwidth and a buffer capacity cannot be allocated fairly. It was.

本発明は、上述の問題点に鑑みなされたものであり、各フローに対して、帯域制限を行うとともに、各フローに対して公平に帯域およびバッファ容量を配分することができる通信制御方法、その方法を用いた通信制御装置、制御プログラム及び記録媒体の提供を目的とする。   The present invention has been made in view of the above-described problems. A communication control method capable of performing bandwidth limitation on each flow and fairly distributing the bandwidth and the buffer capacity to each flow, and its An object of the present invention is to provide a communication control device, a control program, and a recording medium using the method.

この発明の通信制御方法の第1の態様は、入力パケットデータに対してポリシング処理により帯域制御を行って伝送を行う通信制御方法であって、
前記入力パケットデータを少なくとも1ユーザ毎のフローに分類するステップと、
同時並行して伝送可能な複数の前記フローに対して前記伝送のために割当てられている全帯域を、実際に伝送すべき前記フローに割当てるポリシングステップとを備え
前記フローは帯域の割合に応じた重みが割当てられており、
前記ポリシングステップは、
実際に通信を行っているフロー番号iのフローの重みをW 、現在通信を行っているフロー全体の重みの合計値をA、パケットデータ長をLとした場合に、
当該フロー番号iの次パケットが到着する時間の理論的な予想値(TAT値)を、TAT =TAT +L×A/W の式から算出し、
該予想値を用いて前記ポリシング処理を行うことにより、
実際に通信を行っているフローに対し、W/Aの割合に基づいた帯域割当てをすることを特徴とする通信制御方法である。
A first aspect of the communication control method of the present invention is a communication control method for performing transmission by performing bandwidth control on input packet data by policing processing ,
Classifying the input packet data into flows for at least one user;
A policing step for allocating all the bandwidths allocated for the transmission to the flows to be transmitted in parallel to the flows to be actually transmitted ,
The flow is assigned a weight according to the bandwidth ratio,
The policing step includes:
When the weight of the flow of the flow number i that is actually communicating is W i , the total value of the weights of the entire flow that is currently communicating is A, and the packet data length is L,
The theoretical expected value (TAT value) of the arrival time of the next packet of the flow number i is calculated from the formula TAT i = TAT i + L × A / W i
By performing the policing process using the predicted value,
This is a communication control method characterized by allocating a bandwidth based on the ratio of W i / A to a flow that is actually communicating.

この発明の通信制御方法の第の態様は、少なくとも1ユーザ毎に、実際に伝送すべきフローに割当てる際、少なくとも1ユーザの送信するデータの伝送速度を可変することを特徴とする通信制御方法である。 According to a second aspect of the communication control method of the present invention, the transmission rate of data transmitted by at least one user is varied when allocating the flow to be actually transmitted at least for each user. It is.

この発明の通信制御方法の第の態様は、少なくとも1ユーザ毎に、割当てるパケット容量を可変することを特徴とする通信制御方法である。 A third aspect of the communication control method of the present invention is a communication control method characterized in that the packet capacity to be allocated is varied at least for each user.

この発明の通信制御装置の第1の態様は、入力パケットデータに対してポリシング処理により帯域制御を行って伝送を行う通信制御装置であって、
前記入力パケットデータを少なくとも1ユーザ毎のフローに分類するパケット分類機構と、
同時並行して伝送可能な複数のフローに対して伝送のために割当てられている全帯域を、実際に伝送すべき前記フローに割当てるポリシング処理部とを備え
前記フローは帯域の割合に応じた重みが割当て付けられており、
前記ポリシング処理部は、
実際に通信を行っているフロー番号iのフローの重みをW 、現在通信を行っているフロー全体の重みの合計値をA、パケットデータ長をLとした場合に、
当該フロー番号iの次パケットが到着する時間の理論的な予想値(TAT値)を、TAT =TAT +L×A/W の式から算出し、
該予想値を用いて前記ポリシング処理を行うことにより、
実際に通信を行っているフローに対し、W /Aの割合に基づいた帯域割当てをすることを特徴とする通信制御装置である。
A first aspect of the communication control apparatus of the present invention is a communication control apparatus that performs transmission by performing bandwidth control on input packet data by policing processing ,
A packet classification mechanism for classifying the input packet data into flows for at least one user;
A policing processing unit that allocates the entire bandwidth allocated for transmission to a plurality of flows that can be transmitted in parallel, to the flow to be actually transmitted ,
The flow is assigned a weight according to the bandwidth ratio,
The polishing processing unit
When the weight of the flow of the flow number i that is actually communicating is W i , the total value of the weights of the entire flow that is currently communicating is A, and the packet data length is L,
The theoretical expected value (TAT value) of the arrival time of the next packet of the flow number i is calculated from the formula TAT i = TAT i + L × A / W i
By performing the policing process using the predicted value,
The communication control apparatus is characterized in that a bandwidth is allocated based on a ratio of W i / A to a flow that is actually communicating .

この発明の通信制御装置の第の態様は、少なくとも1ユーザ毎に、実際に伝送すべきフローに割当てる際、少なくとも1ユーザの送信するデータの伝送速度を可変することを特徴とする通信制御装置である。 According to a second aspect of the communication control apparatus of the present invention, at least for each user, when allocating to a flow to be actually transmitted, a transmission rate of data transmitted by at least one user is varied. It is.

この発明の通信制御装置の第の態様は、少なくとも1ユーザ毎に、割当てるパケット容量を可変することを特徴とする通信制御装置である。 A third aspect of the communication control apparatus according to the present invention is a communication control apparatus characterized in that a packet capacity to be allocated is varied at least for each user.

この発明の制御プログラムの第1の態様は、入力パケットデータに対してポリシング処理により帯域制御を行って伝送を行う通信制御装置をコンピュータにより制御するための制御プログラムであって、
前記入力パケットデータを少なくとも1ユーザ毎のフローに分類させ、
同時並行して伝送可能な複数の前記フローに対して前記伝送のために割当てられている全帯域を、実際に伝送すべき前記フローに割当てるポリシング処理ステップを備え、
前記フローは帯域の割合に応じた重みが割り当てられており、
前記ポリシング処理ステップは、
実際に通信を行っているフロー番号iのフローの重みをW 、現在通信を行っているフロー全体の重みの合計値をA、パケットデータ長をLとした場合に、
当該フロー番号iの次パケットが到着する時間の理論的な予想値(TAT値)を、TAT =TAT +L×A/W の式から算出し、
該予想値を用いて前記ポリシング処理ステップを実行させることにより、
実際に通信を行っているフローに対し、W /Aの割合に基づいた帯域割当てを行わせることを特徴とする制御プログラムである。
According to a first aspect of the control program of the present invention, there is provided a control program for controlling, by a computer, a communication control device that performs transmission by performing bandwidth control by policing processing on input packet data.
Classifying the input packet data into at least one user flow;
A policing process step of allocating the entire bandwidth allocated for the transmission to a plurality of flows that can be transmitted in parallel to the flow to be actually transmitted ;
The flow is assigned a weight according to the bandwidth ratio ,
The policing processing step includes:
When the weight of the flow of the flow number i that is actually communicating is W i , the total value of the weights of the entire flow that is currently communicating is A, and the packet data length is L,
The theoretical expected value (TAT value) of the arrival time of the next packet of the flow number i is calculated from the formula TAT i = TAT i + L × A / W i
By causing the policing processing step to be executed using the predicted value,
This is a control program characterized by causing a flow in actual communication to perform bandwidth allocation based on the ratio of W i / A.

この発明の制御プログラムの第の態様は、少なくとも1ユーザ毎に、実際に伝送すべきフローに割当てる際、少なくとも1ユーザの送信するデータの伝送速度を可変することを特徴とする制御プログラムである。 According to a second aspect of the control program of the present invention, there is provided a control program characterized by varying the transmission rate of data transmitted by at least one user when allocating to a flow to be actually transmitted at least for each user. .

この発明の制御プログラムの第の態様は、少なくとも1ユーザ毎に、割当てるパケット容量を可変することを特徴とする制御プログラムである。 A third aspect of the control program of the present invention is a control program characterized in that the packet capacity to be allocated is varied at least for each user.

この発明の記録媒体の第1の態様は、上述の制御プログラムを記録するコンピュータ読取可能な記録媒体である。   A first aspect of the recording medium of the present invention is a computer-readable recording medium for recording the control program described above.

この発明の通信制御方法によって、複雑なスケジューリング方法を行わなくても、この発明で示した単純な通信制御方法によって各ユーザのフローに公平に帯域とバッファ容量を割り当てることができる。   According to the communication control method of the present invention, a bandwidth and a buffer capacity can be allocated to each user's flow in a fair manner by the simple communication control method shown in the present invention without performing a complicated scheduling method.

また、スケジューリング方法では困難であった、通信中のユーザのみを考慮してパケットのバッファ容量割当てを行うことができる。例えば、1000人のユーザを収容している装置でバッファ容量が1メガバイトの容量である時に、ある時点で通信を行っているユーザが10人しかいない場合、スケジューリングによる方法では各ユーザあたり1キロバイトの容量のバッファ容量を割当てることになる。   Further, it is possible to allocate a buffer capacity of a packet in consideration of only a user who is communicating, which is difficult with a scheduling method. For example, if a device that accommodates 1000 users and the buffer capacity is 1 megabyte, and there are only 10 users communicating at a certain point in time, the scheduling method uses 1 kilobyte for each user. A buffer capacity of a capacity is allocated.

しかし、この発明の通信制御方法を用いれば、ある時点で通信を行っているユーザが10人しかいない場合には、100キロバイトの容量のバッファ容量の割当てが可能になる。   However, when the communication control method of the present invention is used, when there are only 10 users who are communicating at a certain time, it is possible to allocate a buffer capacity of 100 kilobytes.

以下に、本発明の実施形態を、図面を参照しながら詳細に説明する。   Embodiments of the present invention will be described below in detail with reference to the drawings.

図1は、ポリサーを備えた通信制御装置の構造を示す図である。
図1に示すように、ルータ1は入出力ポート2−1〜2−n、スイッチファブリック3、ネットワークプロセッサ33を備えている。そして、ネットワークプロセッサ33はトラフィック調整機構6、トラフィック制御機構15を備えている。
FIG. 1 is a diagram illustrating a structure of a communication control apparatus including a policer.
As shown in FIG. 1, the router 1 includes input / output ports 2-1 to 2-n, a switch fabric 3, and a network processor 33. The network processor 33 includes a traffic adjustment mechanism 6 and a traffic control mechanism 15.

なお、ルータ1は当該ルータ1全体を制御するための図示しないCPUと、通信制御を行うための制御プログラムあるいは制御データを格納する図示しないROM、RAM等を備えて構成されており、以下における各種制御は、ROM内の制御プログラムに基づいてCPUが行っている。   The router 1 includes a CPU (not shown) for controlling the entire router 1 and a ROM, RAM, etc. (not shown) for storing a control program or control data for communication control. Control is performed by the CPU based on a control program in the ROM.

スイッチファブリック3は各入力ポートで受信したパケットを適切な宛先ポートにスイッチングする機構である。     The switch fabric 3 is a mechanism for switching a packet received at each input port to an appropriate destination port.

トラフィック調整機構6は各ユーザ毎、サービスタイプ毎にパケットを分類するパケット分類機構5とパケット分類機構5から送出されたパケットを廃棄や遅延を行うパケット調整機構7を備える。パケット分類機構5には、例えばクラシファイア等があり、CAM(Contents Addressable Memory:内容参照可能メモリ)等を用いている。   The traffic adjustment mechanism 6 includes a packet classification mechanism 5 that classifies packets for each user and each service type, and a packet adjustment mechanism 7 that discards and delays packets sent from the packet classification mechanism 5. The packet classification mechanism 5 includes a classifier, for example, and uses a CAM (Contents Addressable Memory).

即ち、トラフィック調整機構6は、到着するパケットが契約したフロー特性に適合しているか否かをチェックして、あらかじめ指定された所定の処理を施す。指定された所定の処理には、パケットに廃棄を与える処理やパケットに遅延を与える処理等がある。   That is, the traffic adjustment mechanism 6 checks whether or not the arriving packet conforms to the contracted flow characteristics and performs a predetermined process specified in advance. The designated predetermined process includes a process for discarding a packet and a process for delaying a packet.

パケット調整機構7はパケット分類機構5から送出されたパケットを廃棄処理や遅延処理を行ってもよいか否かを判定するポリサー8およびポリサー8で廃棄されると判定されたパケットを廃棄処理する廃棄処理部(ドロッパー)9を備えている。   The packet adjustment mechanism 7 discards the packet sent from the packet classification mechanism 5 and discards the packet determined to be discarded by the policer 8 and the policer 8 that determines whether or not the delay processing and the delay processing may be performed. A processing unit (dropper) 9 is provided.

トラフィック制御機構15は、キュー12にパケットを送出するキューマネージャ11、送出されたパケットを収容するキュー12、出リンク17に出力するパケットを選択するスケジューラ13を備えている。トラフィック制御機構15の中のキュー12を囲む矩形の点線はバッファ容量16を表している。即ち、キューマネージャ11とスケジューラ13はそれぞれのキュー12の出入口で、キュー12に出入するパケットを制御する機構である。   The traffic control mechanism 15 includes a queue manager 11 that sends packets to the queue 12, a queue 12 that contains the sent packets, and a scheduler 13 that selects packets to be output to the outgoing link 17. A rectangular dotted line surrounding the queue 12 in the traffic control mechanism 15 represents the buffer capacity 16. That is, the queue manager 11 and the scheduler 13 are mechanisms for controlling packets entering and leaving the queue 12 at the entrance and exit of each queue 12.

即ち、トラフィック制御機構15は、各フローの出力レートや遅延時間等の要求を満足させるように、出リンク17に送出するパケットの取捨選択、及び送出順序を制御する。   That is, the traffic control mechanism 15 controls the selection and transmission order of packets to be sent to the outgoing link 17 so as to satisfy the requirements such as the output rate and delay time of each flow.

まず、パケットが入力されると、スイッチ機能を有するスイッチファブリック3は各入力ポートから入力されたパケットの、例えばIPヘッダ部にある宛先IPアドレス情報を参照して、所定の宛先ポートにスイッチングする処理を行う。スイッチング処理が行われたパケットは、パケット分類機構5に送出される。   First, when a packet is input, the switch fabric 3 having a switch function refers to the destination IP address information in the IP header portion of the packet input from each input port, for example, and switches to a predetermined destination port. I do. The packet subjected to the switching process is sent to the packet classification mechanism 5.

次に、スイッチングされたパケットはパケット分類機構5により各ユーザ毎、サービスタイプ毎の個別のフローに分類される。パケット分類機構5は、例えばパケットのIPヘッダ部にある送受信IPアドレス、TCP/UDPヘッダ部にある送受信ポートを参照して、分類を行う。この時、パケットのヘッダ部にフロー番号を示す内部ヘッダが追加され、次段のポリサーに出力されている。   Next, the switched packets are classified by the packet classification mechanism 5 into individual flows for each user and each service type. The packet classification mechanism 5 performs classification with reference to, for example, a transmission / reception IP address in a packet IP header and a transmission / reception port in a TCP / UDP header. At this time, an internal header indicating the flow number is added to the header portion of the packet and output to the policer at the next stage.

さらに、ポリサー8によって、各フロー毎に帯域と許容バースト量の検定が行われる。即ち、ポリサー8と呼ばれる流量計を用いて、フローを常に測定している。そして、検定した結果、フローが不適合であると判定された場合、即ち、ポリサー8に設定した帯域の値をフローが超えた場合や、ポリサ−8に設定した許容バースト量を超えた場合、不適合時の処理が行われる。例えばパケットは廃棄され、廃棄処理部9へ転送される。   Furthermore, the policer 8 tests the bandwidth and the allowable burst amount for each flow. That is, the flow is constantly measured using a flow meter called a policer 8. As a result of the test, if the flow is determined to be incompatible, that is, if the flow exceeds the bandwidth value set for policer 8, or if the allowable burst amount set for policer 8 is exceeded, Time processing is performed. For example, the packet is discarded and transferred to the discard processing unit 9.

検定した結果、フローが適合であると判定された場合、即ち、ポリサーに設定した帯域の値をフローが超えず、かつ、ポリサーに設定した許容バースト量を超えない場合、パケットはトラフィック制御機構15へ転送される。   As a result of the test, if it is determined that the flow is suitable, that is, if the flow does not exceed the bandwidth value set in the policer and does not exceed the allowable burst amount set in the policer, the packet is transmitted to the traffic control mechanism 15. Forwarded to

キューマネージャ11は、キュー12に収容するパケットを選択する。キュー12では、前の段階のポリサーの許容バースト分のパケットが留められ、出力ポート速度に遅らせる。そして、スケジューラ13はパケットを1本または複数のキューに待たせて、所定の方法に従ってキューから1個ずつ順に、パケットを取り出す。所定の方法に従って1つに選択されたパケットは、スケジューラ13によって出リンク17に出力され、送信される。   The queue manager 11 selects a packet accommodated in the queue 12. In the queue 12, the packets for the allowable burst of the policer in the previous stage are retained and delayed to the output port speed. Then, the scheduler 13 waits for the packets in one or a plurality of queues, and sequentially extracts the packets one by one from the queue according to a predetermined method. The packet selected as one according to a predetermined method is output to the outgoing link 17 by the scheduler 13 and transmitted.

図2は、ポリサーの構造を模式的に説明をするための図である。   FIG. 2 is a diagram for schematically explaining the structure of the policer.

図2に示すように、ポリサー8は、ポリシング処理部18、フローテーブル19、レート格納部20、アクティブカウンタ部21、バースト格納部22、フロー状態格納部23、タイマー部24を備えている。   As shown in FIG. 2, the policer 8 includes a policing processing unit 18, a flow table 19, a rate storage unit 20, an active counter unit 21, a burst storage unit 22, a flow state storage unit 23, and a timer unit 24.

レート格納部20は、各フローでのレートを合計したレートの合計値R(bps)が格納されている。レートとは、トークンバケツにトークンが供給される速さを表している。例えば、出力ポートのレートの値と等しくしてもよい。バースト格納部22は、ポリシングの許容バースト値Bを格納している。許容バースト値は、連続して送信されるパケット列の長さを制限する値を示している。例えば、許容バースト値は出力ポートに割り当てられているパケットのバッファ容量と等しくしてもよい。   The rate storage unit 20 stores a total value R (bps) of the rates obtained by adding the rates in each flow. The rate represents the speed at which tokens are supplied to the token bucket. For example, it may be equal to the value of the output port rate. The burst storage unit 22 stores an allowable burst value B for policing. The allowable burst value indicates a value that limits the length of a packet sequence that is continuously transmitted. For example, the allowable burst value may be equal to the buffer capacity of the packet assigned to the output port.

フロー状態格納部23は、各フローの状態をActive状態からInactive状態にするためのチェック間隔Tの値を格納している。タイマー部24は、現在の時刻tを格納している。アクティブカウンタ部21は、現在通信を行っている、即ち、Active状態である各フローの重みの値を合計した重みの合計値Aを格納している。   The flow state storage unit 23 stores the value of the check interval T for changing the state of each flow from the Active state to the Inactive state. The timer unit 24 stores the current time t. The active counter unit 21 stores a total value A of weights obtained by summing up the weight values of the flows that are currently communicating, that is, in the active state.

図3は、フローテーブルの構成例を示す図である。
図3で示すように、フローテーブルはフロー番号i(iは自然数)、重みW、TAT値(Theoretical Arrival Time)、通信状態を管理するフラグFを備えたテーブルとなっている。各添字で示されたiは、それぞれのフロー番号での重み、TAT値、フラグを示している。フローテーブルの重みWは各フローでの帯域の割合を表している。例えば、各フロー番号1、2、3での帯域が2Mbps、1Mbps、4Mbpsの設定要求があった場合、各フロー1、2、3にそれぞれ2:1:4の重みを持たせることになる。
FIG. 3 is a diagram illustrating a configuration example of a flow table.
As shown in FIG. 3, the flow table is a table having a flow number i (i is a natural number), a weight W i , a TAT i value (Theoretical Arrival Time), and a flag F i for managing a communication state. I indicated by each subscript indicates a weight, a TAT value, and a flag for each flow number. The weight W i of the flow table represents the ratio of the bandwidth in each flow. For example, when there is a setting request for the bandwidths of 2 Mbps, 1 Mbps, and 4 Mbps for each of the flow numbers 1, 2, and 3, each of the flows 1, 2, and 3 has a weight of 2: 1: 4.

フローテーブルのTAT値はフロー番号iでの次のパケットが到着する時間の理論的な予想値を示している。フローテーブルのフラグFに登録されているActiveとは、通信が行われている状態を示しており、また、Inactiveとは、通信が行われていない状態を示している。 The TAT i value in the flow table indicates the theoretical expected value of the arrival time of the next packet with flow number i. The Active registered in the flag F i of flow table shows a state in which communication is performed, In addition, the Inactive, communication indicates a state not carried out.

続いて、余剰帯域を公平に配分するポリシング方法について詳細に説明する。   Next, a policing method for distributing the surplus bandwidth fairly will be described in detail.

図4は、図2で示されたポリサーのポリシング処理部の動作を示すフローチャートである。
図4のフローチャートは、一般的なトークンバケツアルゴリズムを基本としているが、一般的なトークンバケツアルゴリズムと根本的に異なる点は、現在Active状態にあるすべてのフローのそれぞれの重みWの和Aをアクティブカウンタ部21に記憶しておき、Active状態にあるフローの重みWの割合に基づいて帯域の割り当てを行うように構成されている点である。
FIG. 4 is a flowchart showing an operation of the policing processing unit of the policer shown in FIG.
The flowchart of FIG. 4 is based on a general token bucket algorithm. However, the fundamental difference from the general token bucket algorithm is that the sum A of the respective weights W i of all flows currently in the active state is obtained. The point is that the bandwidth is allocated based on the ratio of the weight W i of the flow in the active state that is stored in the active counter unit 21.

具体的には、フローテーブル19に記憶されているTATにパケット長を加える際に、パケット長をLとすると、L1=L×A/Wで表される補正パケット長L1を加えている。これは、換言すれば、同一のパケット長であっても、現在Active状態にあるすべてのフローの中でより重みの高いフローのパケットに対してより大きな帯域を割り当てていることになる。 Specifically, when the packet length is added to TAT i stored in the flow table 19, the correction packet length L1 represented by L1 = L × A / W i is added, where L is the packet length. . In other words, even if the packet length is the same, a larger bandwidth is allocated to a packet of a flow having a higher weight among all flows that are currently in the active state.

詳細に説明すると、各フローのポリシングレートがトータルレートRのW/A倍となり、重みに応じて公平に帯域割当て行われることになる。また、各フローに許容されるバースト値もトータルの許容バースト値BのW/Aとなり、重みに応じて公平にバッファの容量を割り当てることが可能となる。 More specifically, the policing rate of each flow is W i / A times the total rate R, and bandwidth allocation is performed fairly according to the weight. Further, the burst value allowed for each flow is also W i / A of the total allowable burst value B, and the buffer capacity can be allocated fairly according to the weight.

まず、ポリシング方法は現在の時刻tと、前回各フローのActive状態をチェックした時刻t´とを差分する。そして、その差分値がフロー状態格納部に登録されているチェック間隔Tより大きいか否かを判定する(S101)。   First, the policing method makes a difference between the current time t and the time t ′ at which the Active state of each flow was checked last time. Then, it is determined whether or not the difference value is larger than the check interval T registered in the flow state storage unit (S101).

この時、現在の時刻tと前回各フローのActive状態をチェックした時刻t´との差分値が、フロー状態格納部に登録されているチェック間隔Tの値より大きい(S101;YES)と、フロー番号iに1を代入する(S102)。この代入処理は、すべてのフロー番号iに対して1から処理を始めることを意味する。   At this time, if the difference value between the current time t and the time t ′ at which the active state of each flow was previously checked is greater than the value of the check interval T registered in the flow state storage unit (S101; YES), the flow 1 is assigned to the number i (S102). This substitution process means that the process is started from 1 for all the flow numbers i.

次に、条件式TAT<R×tを満たしているか判定する(S103)。即ち、トークンバケツがトークンで満たされているか判定する。ここで、Rはトークンと呼ばれるトラフィック送信権がトークンバケツに供給されるレート(速さ)を表している。 Next, it is determined whether the conditional expression TAT i <R × t is satisfied (S103). That is, it is determined whether the token bucket is filled with tokens. Here, R represents a rate (speed) at which a traffic transmission right called a token is supplied to the token bucket.

条件式TAT<R×tが満たされている、即ち、トークンバケツがトークンで満たされている(S103;YES)場合は、TATにR×tで算出された値を代入する(S104)。この代入処理の目的は、現在時刻tを保持しているメモリのビット幅が有限であり、十分長い時間が過ぎればラップしてtの値が0に戻ってしまうことに対処するものである。即ち、その目的はTATと現在時刻tとの差を一定以内に保つことで以下の計算を正しく行えるようにするためのものである。 When the conditional expression TAT i <R × t is satisfied, that is, when the token bucket is satisfied with the token (S103; YES), the value calculated by R × t is substituted for TAT i (S104). . The purpose of this assignment process is to cope with the fact that the bit width of the memory holding the current time t is finite and the value of t returns to 0 after a sufficiently long time. That is, the purpose is to allow the following calculation to be performed correctly by keeping the difference between TAT i and the current time t within a certain range.

なお、条件式TAT<R×tが満たされていない場合、即ち、トークンバケツがトークンで満たされていない(S103;NO)場合は、TATにR×tで算出された値を代入する処理(S104)は行わず、次の処理はS107へ転送される。 When the conditional expression TAT i <R × t is not satisfied, that is, when the token bucket is not satisfied with the token (S103; NO), the value calculated by R × t is substituted for TAT i. The process (S104) is not performed, and the next process is transferred to S107.

次に、通信状態を管理する所定のフロー番号iでのフラグFの状態がActive状態であるか否かを判定する(S105)。所定のフロー番号iでのフラグの状態がActive状態である(S105;YES)場合、フラグFをInactive状態とし、アクティブカウンタ値をフローiの重みWだけ減少させる(S106)。これにより、フローiが使っていない帯域を他のActive状態であるフローが使えるようになる。 Next, it is determined whether or not the state of the flag F i in the predetermined flow number i for managing the communication state is the active state (S105). State of the flag at a predetermined flow number i is an Active state (S105; YES) If the flag F i to the Inactive state, reduces the active counter value by the weight W i of the flow i (S106). As a result, a flow in another active state can be used in a band not used by the flow i.

なお、所定のフロー番号iでのフラグFの状態がActive状態でない(S105;NO)場合、通信状態を管理するフラグFをInactive状態とし、アクティブカウンタ値をフローiの重みWだけ減少させる処理(S106)は行わず、次の処理はS107へ転送される。 The state of the flag F i at a given flow number i is not Active state (S105; NO) case, the flag F i to manage the communication and Inactive state, an active counter value by the weight W i of the flow i decrease The process to be performed (S106) is not performed, and the next process is transferred to S107.

次に、現在のフロー番号iに1を足すことで、次のフロー番号iの処理へ移る(S107)。例えば、S101からS106の処理でフロー番号iが3であるならば、S107でフロー番号iは4になる。   Next, by adding 1 to the current flow number i, the process proceeds to the next flow number i (S107). For example, if the flow number i is 3 in the processing from S101 to S106, the flow number i becomes 4 in S107.

さらに、条件式(フロー番号i)≦(最後のフロー番号i)であるか判定する(S108)。最後のフロー番号とは、パケット分類機構でユーザ毎、サービスタイプ毎に分類されたパケットのヘッダ部に追加された番号のうち、最大の番号が最後のフロー番号を表す。この条件式は、S107でフロー番号iに1を足した結果の値が、最後のフロー番号以下である(S108;YES)場合、S103に戻り、次のフロー番号の処理を行う。   Further, it is determined whether or not the conditional expression (flow number i) ≦ (last flow number i) (S108). The last flow number refers to the last flow number among the numbers added to the header part of the packet classified for each user and each service type by the packet classification mechanism. In this conditional expression, when the value obtained by adding 1 to the flow number i in S107 is equal to or smaller than the last flow number (S108; YES), the process returns to S103 and the next flow number is processed.

S107でフロー番号iに1を足した結果の値が、最後のフロー番号を超える(S108;NO)場合、前回Active状態をチェックした時刻t´を現在の時刻tに更新して(S109)、次にActive状態をチェックする時間間隔を測り始める。   If the value obtained by adding 1 to the flow number i in S107 exceeds the last flow number (S108; NO), the time t ′ at which the previous active state was checked is updated to the current time t (S109). Next, the time interval for checking the Active state is started.

なお、S101でt−t´>Tでない(S101;NO)場合、即ち、現在の時刻tと、前回各フローのActive状態をチェックした時刻t´との差分値がフロー状態格納部に登録されているチェック間隔Tと等しくない場合は、S110に進む。   If t−t ′> T is not satisfied in S101 (S101; NO), that is, the difference value between the current time t and the time t ′ at which the Active state of each flow was checked last time is registered in the flow state storage unit. If it is not equal to the check interval T, the process proceeds to S110.

続いて、パケットがポリサーに到着したか否かを判定する(S110)。パケットがポリサーに到着している(S110;YES)場合、さらに、通信状態を管理するフラグFがInactive状態であるか否かを判定する(S111)。 Subsequently, it is determined whether the packet has arrived at the policer (S110). Packet has arrived to the policer (S110; YES) If, furthermore, the flag F i to manage the communication state determines whether the Inactive state (S 111).

ここで、パケットがポリサーに到着していない(S110;NO)場合には、S101に戻って、現在の時刻tと、前回各フローのActive状態をチェックした時刻t´とを差分する。そして、その差分値がフロー状態格納部に登録されているチェック間隔Tの値と等しいか否かを判定する。   If the packet has not arrived at the policer (S110; NO), the process returns to S101, and the current time t is differentiated from the time t ′ at which the Active state of each flow was checked last time. Then, it is determined whether or not the difference value is equal to the value of the check interval T registered in the flow state storage unit.

通信状態を管理するフラグFがInactive状態である場合(S111;YES)、アクティブカウンタにフローiの重みWを加えて、通信状態を管理するフラグFをActive状態にする(S112)。 If the flag F i to manage the communication state is Inactive state (S 111; YES), the addition of the weight W i of the flow i in the active counter, the flag F i to manage the communication state to the Active state (S112).

さらに、条件式TAT<R×tを満たすか否か、即ち、トークンバケツの中がトークンで満たされているか否かを判定する(S113)。条件式TAT<R×tを満たす(S113;YES)場合、即ち、トークンバケツがトークンで満たされている場合、TATにR×t+L×A/Wで算出された値を代入(S114)して、送信処理(S118)に進む。 Further, it is determined whether or not the conditional expression TAT i <R × t is satisfied, that is, whether or not the token bucket is filled with tokens (S113). When the conditional expression TAT i <R × t is satisfied (S113; YES), that is, when the token bucket is satisfied with tokens, the value calculated by R × t + L × A / W i is substituted for TAT i (S114). Then, the process proceeds to the transmission process (S118).

ここで、Lはパケット長を示しており、Aは各フロー番号での重みWを合計した合計値を示している。即ち、L×A/Wで算出された値はパケット長Lをアクティブカウンタの値と重みWの比率だけ倍にした値を示している。 Here, L is shows a packet length, A is shows the total value which is the sum of the weights W i for each flow number. That, L × value calculated by the A / W i indicates a value obtained by doubling the packet length L by the ratio value and the weight W i of the active counter.

条件式TAT<R×tを満たさない、即ち、トークンバケツがトークンで満たされていない(S113;NO)場合、さらに、条件式TAT+L×A/W−R×t<Bを満たすか否かを判定する(S115)。ここで、Bはバースト許容値を表す。この条件式は、現在トークンバケツに存在するトークンの量で、パケットに供給されるのに必要な分だけのトークンの量が存在しているか否かを判定している。 When the conditional expression TAT i <R × t is not satisfied, that is, when the token bucket is not satisfied with the token (S113; NO), the conditional expression TAT i + L × A / W i −R × t <B is further satisfied. It is determined whether or not (S115). Here, B represents a burst allowable value. This conditional expression determines whether or not there is an amount of tokens necessary to be supplied to the packet, which is the amount of tokens currently present in the token bucket.

条件式TAT+L×A/W−R×t<Bを満たさない(S115;NO)場合、即ち、現在トークンバケツに存在するトークンの量では、パケットに供給されるのに必要な分だけのトークンの量が存在しない場合、パケットは廃棄される(S116)。または、いったんパケットを所定のバッファ容量等に溜めておいて、トークンバケツにたまっているトークンの残量がパケットに必要な量以上になったときに、適合と判定するように設定することも可能である。 When the conditional expression TAT i + L × A / W i −R × t <B is not satisfied (S115; NO), that is, the amount of tokens currently existing in the token bucket is only an amount necessary to be supplied to the packet. If the token amount does not exist, the packet is discarded (S116). Alternatively, once the packet is stored in a predetermined buffer capacity, etc., it can be set to be determined to be suitable when the remaining amount of tokens in the token bucket exceeds the required amount for the packet. It is.

条件式TAT+L×A/W−R×t<Bを満たす(S115;YES)場合、即ち、現在トークンバケツに存在するトークンの量で、パケットに供給されるのに必要な分だけのトークンの量が存在している場合、TATにTAT+L×A/Wで算出された値を代入(S117)し、パケットはキューに送信(S118)される。 When the conditional expression TAT i + L × A / W i −R × t <B is satisfied (S115; YES), that is, the amount of tokens currently existing in the token bucket and only the amount necessary to be supplied to the packet If the amount of the token is present, assigns the value calculated in TAT i by TAT i + L × a / W i to (S117), the packet is sent to the queue (S118).

図7は、ポリサーを備えた通信制御装置を用いたネットワークを構成を示した図である。
図7は、ユーザ30−1〜30−5、LAN29、ルータ1、伝送路31、34からなる。1本の伝送路にユーザは数千人オーダのネットワークもあるが、ここでは、便宜的に5つのユーザとして説明する。また、現在、伝送路は10Gbpsを超えるものが現れているが、こちらも便宜的に伝送路31は100Mbps、伝送路34は1Gbpsとして説明する。
伝送路34を通して最大1Gbpsのレートで受信されたパケットはルータ1に備えられた本発明のポリサーによって伝送路31の最大レート100Mbpsに調整される。
FIG. 7 is a diagram illustrating a configuration of a network using a communication control device including a policer.
FIG. 7 includes users 30-1 to 30-5, LAN 29, router 1, and transmission paths 31 and 34. Although there is a network of several thousand users on one transmission line, here, it is assumed that there are five users for convenience. Currently, there are some transmission lines exceeding 10 Gbps. For convenience, the transmission line 31 is assumed to be 100 Mbps and the transmission line 34 is assumed to be 1 Gbps.
Packets received through the transmission line 34 at a maximum rate of 1 Gbps are adjusted to a maximum rate of 100 Mbps on the transmission line 31 by the policer of the present invention provided in the router 1.

図7に示すように、ユーザ5人が、最大100Mbpsの伝送路31を使用すると、最大100Mbpsをユーザ数5人で割った値が、その時にポリサーによって実現される公平な帯域の割当となる。つまり、この場合1人あたり使用する伝送路31は20Mbpsの帯域の割当てとなる。   As shown in FIG. 7, when five users use a transmission path 31 of a maximum of 100 Mbps, a value obtained by dividing the maximum of 100 Mbps by the number of users of five is the fair bandwidth allocation realized by the policer at that time. In other words, in this case, the transmission path 31 used per person is assigned a bandwidth of 20 Mbps.

さらに、ユーザ数を5人から1人ずつ減らしていくと、最大100Mbpsの伝送路をそれぞれ減っていったユーザ数で割った値が、その時の公平な帯域の割当となる。例えば、ユーザ数が2名であれば、100Mbps÷2=50Mbpsの帯域の割当てとなる。   Further, when the number of users is decreased from five to one, the value obtained by dividing the maximum 100 Mbps transmission path by the number of users that has been reduced is the fair bandwidth allocation at that time. For example, if the number of users is two, bandwidth allocation is 100 Mbps ÷ 2 = 50 Mbps.

即ち、ポリサーによる公平な帯域の割当の結果は表1のようになる。ただし、表1の3人使用のように割り切れない場合は、例えば、端数を切り捨てたものを採用する。つまり、33Mbps×3ユーザ分となる。または、限りなく均等に割当をおこなう。あるいは、予め割り切れる大きさの仮想的なトークンバケツモデルを用いたものを採用する。つまり、例えば、34Mbps×3ユーザ分の仮想的なトークンバケツモデルを102Mbpsとするものである。   That is, the result of fair bandwidth allocation by the policer is as shown in Table 1. However, if it is not divisible, as in the case of using three people in Table 1, for example, a value obtained by rounding down the fraction is adopted. That is, 33 Mbps × 3 users. Or, assign as much as possible evenly. Alternatively, a virtual token bucket model that is divisible in advance is used. That is, for example, a virtual token bucket model for 34 Mbps × 3 users is set to 102 Mbps.

Figure 0004391346
Figure 0004391346

なお、通信の契約内容や装置の応答速度等によって制限のあるユーザが含まれる場合、あるいは、公平でなくても良い場合、例えば、ユーザ1が10Mbpsの上限、ユーザ2と3が20Mbpsの上限、ユーザ4と5が無制限とした場合は表2のようになる。つまり、制限のあるユーザ1,2と3については、あらかじめ定められた値で一定である。しかし、ユーザ4と5は、ユーザ1から3が使用している分を除いた部分を公平に分けるものである。また、制限によらず、ユーザ毎に任意の値を割当てることもできる。   In addition, when there is a user who is restricted depending on the content of communication contract, the response speed of the device, or the like, or when it is not fair, for example, user 1 has an upper limit of 10 Mbps, users 2 and 3 have an upper limit of 20 Mbps, When the users 4 and 5 are unlimited, it becomes as shown in Table 2. In other words, the limited users 1, 2 and 3 are constant at predetermined values. However, the users 4 and 5 divide the portion excluding the amount used by the users 1 to 3 fairly. Further, an arbitrary value can be assigned for each user regardless of the restriction.

Figure 0004391346
Figure 0004391346

ルータ1が伝送路31に接続されたポート上に持つバッファ容量も、ポリサーの機能によって上述の帯域と同様に各ユーザに公平に割当てが行われる。例えばルータ1の持つバッファ容量を1メガバイトとすると、割当ての結果は表3のようになる。 The buffer capacity that the router 1 has on the port connected to the transmission line 31 is also assigned to each user fairly by the function of the policer as in the above-described band. For example, if the buffer capacity of the router 1 is 1 megabyte, the allocation result is as shown in Table 3.

Figure 0004391346
Figure 0004391346

なお、通信の契約内容や装置種類等によっては制限のあるユーザが含まれる場合、あるいは公平でなくても良い場合、ユーザ毎に任意のバッファ容量を割当てることができる。   It should be noted that an arbitrary buffer capacity can be allocated to each user when there are limited users depending on the communication contract contents, device types, or the like, or when it is not necessary to be fair.

この発明の通信制御方法によって、複雑なスケジューリング方法を行わなくても、本稿で示した単純な方法によって各ユーザのフローを公平に帯域を割り当てることができる。   According to the communication control method of the present invention, the bandwidth of each user's flow can be allocated fairly by the simple method shown in this paper without performing a complicated scheduling method.

また、スケジューリング方法では困難であった、通信中のユーザのみを考慮してパケットのバッファ容量の割当てを行うことができる。例えば、1000人のユーザを収容している装置でバッファ容量が1メガバイトの容量である時に、ある時点で通信を行っているユーザが10人しかいない場合、スケジューリング方法では各ユーザあたり1キロバイトの容量のバッファ容量の割当てになる。
しかし、この発明の通信制御方法を用いれば100キロバイトの容量のバッファ容量の割当てが可能となる。
In addition, it is possible to allocate the buffer capacity of the packet in consideration of only the user who is communicating, which is difficult with the scheduling method. For example, when a device accommodating 1000 users has a buffer capacity of 1 megabyte and there are only 10 users communicating at a certain time, the scheduling method uses a capacity of 1 kilobyte for each user. Buffer capacity allocation.
However, if the communication control method of the present invention is used, a buffer capacity of 100 kilobytes can be allocated.

また、通信速度が向上した場合や、バッファ容量が増大した場合において、プログラムを修正や追加等することにより本発明は実施可能である。     In addition, when the communication speed is improved or the buffer capacity is increased, the present invention can be implemented by modifying or adding a program.

さらに、以上の説明においては、通信制御装置であるルータを制御するための制御プログラムが予めROM等に記憶されている場合について説明したが、各種磁気ディスク、光ディスク、メモリカード等の記録媒体に制御用のプログラムをあらかじめ記録し、これらの記録媒体から読み込み、インストールするように構成することもできる。   Further, in the above description, the case where a control program for controlling the router, which is a communication control device, is stored in advance in a ROM or the like has been described. However, control is performed on recording media such as various magnetic disks, optical disks, and memory cards. It is also possible to record the program for use in advance, read from these recording media, and install the program.

また、通信インタフェースを設け、インターネット、LAN等のネットワークを介して制御用プログラムをダウンロートし、インストールして実行するように構成することもできる。このように構成することにより、ソフトウェア的により高機能としたり、より信頼性の高い通信制御装置を構成することが可能となり、産業上の利用の可能性が高い。   In addition, a communication interface may be provided so that the control program can be downloaded, installed, and executed via a network such as the Internet or a LAN. By configuring in this way, it becomes possible to configure a software control function with higher functionality or a more reliable communication control device, and the possibility of industrial use is high.

図1は、ポリサーを備えた通信制御装置(ルータ)の構造を示した図である。FIG. 1 is a diagram showing a structure of a communication control device (router) provided with a policer. 図2は、ポリサーの構造を説明をするための図である。FIG. 2 is a diagram for explaining the structure of the policer. 図3は、フローテーブルの構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of a flow table. 図4は、ポリサーのポリシング処理部での動作を示すフローチャート図である。FIG. 4 is a flowchart showing the operation of the policer policing processing unit. 図5は、スケジューリング方法を模式的に説明するための図である。FIG. 5 is a diagram for schematically explaining the scheduling method. 図6は、トークンバケツモデルを用いたポリシング方法を模式的に説明するための図である。FIG. 6 is a diagram for schematically explaining a polishing method using a token bucket model. 図7は、ポリサーを備えたルータを使い、ネットワーク構成を示した図である。FIG. 7 is a diagram showing a network configuration using a router having a policer.

符号の説明Explanation of symbols

1 ルータ
2−1〜2−n 入出力ポート
3 スイッチファブリック
4 クロスバスイッチ
5 パケット分類機構
6 トラフィック調整機構
7 パケット調整機構
8 ポリサー
9 廃棄処理部(ドロッパー)
10 接続調停回路
11 キューマネージャー
12−1〜12−n キュー
13 スケジューラ
14 入出力ポート
15 トラフィック制御機構
16 バッファ容量
17 出リンク
18 ポリシング処理部
19 フローテーブル
20 レート格納部
21 アクティブカウンタ部
22 バースト格納部
23 フロー状態格納部
24 タイマー部
25−1〜25−n 情報ソース
26 トークン
27 トークンバケツ
28 パケット
29 LAN
30−1〜30−5 ユーザ
31、34 伝送路
32−1〜32−n フロー
33 ネットワークプロセッサ










DESCRIPTION OF SYMBOLS 1 Router 2-1-2-n Input / output port 3 Switch fabric 4 Crossbar switch 5 Packet classification mechanism 6 Traffic adjustment mechanism 7 Packet adjustment mechanism 8 Policer 9 Discard processing part (dropper)
DESCRIPTION OF SYMBOLS 10 Connection arbitration circuit 11 Queue manager 12-1 to 12-n Queue 13 Scheduler 14 Input / output port 15 Traffic control mechanism 16 Buffer capacity 17 Out link 18 Policing processing unit 19 Flow table 20 Rate storage unit 21 Active counter unit 22 Burst storage unit 23 Flow State Storage Unit 24 Timer Unit 25-1 to 25-n Information Source 26 Token 27 Token Bucket 28 Packet 29 LAN
30-1 to 30-5 User 31, 34 Transmission path 32-1 to 32-n Flow 33 Network processor










Claims (10)

入力パケットデータに対してポリシング処理により帯域制御を行って伝送を行う通信制御方法であって、
前記入力パケットデータを少なくとも1ユーザ毎のフローに分類するステップと、
同時並行して伝送可能な複数の前記フローに対して前記伝送のために割当てられている全帯域を、実際に伝送すべき前記フローに割当てるポリシングステップとを備え
前記フローは帯域の割合に応じた重みが割当てられており、
前記ポリシングステップは、
実際に通信を行っているフロー番号iのフローの重みをW 、現在通信を行っているフロー全体の重みの合計値をA、パケットデータ長をLとした場合に、
当該フロー番号iの次パケットが到着する時間の理論的な予想値(TAT値)を、TAT =TAT +L×A/W の式から算出し、
該予想値を用いて前記ポリシング処理を行うことにより、
実際に通信を行っているフローに対し、W /Aの割合に基づいた帯域割当てをすることを特徴とする通信制御方法
A communication control method that performs transmission by performing bandwidth control by policing processing on input packet data,
Classifying the input packet data into flows for at least one user;
A policing step for allocating all the bandwidths allocated for the transmission to the flows to be transmitted in parallel to the flows to be actually transmitted ,
The flow is assigned a weight according to the bandwidth ratio,
The policing step includes:
When the weight of the flow of the flow number i that is actually communicating is W i , the total value of the weights of the entire flow that is currently communicating is A, and the packet data length is L,
The theoretical expected value (TAT value) of the arrival time of the next packet of the flow number i is calculated from the formula TAT i = TAT i + L × A / W i
By performing the policing process using the predicted value,
A communication control method, comprising: allocating a bandwidth based on a ratio of W i / A to a flow that is actually communicating .
前記少なくとも1ユーザ毎に、実際に伝送すべき前記フローに割当てる際、前記少なくとも1ユーザの送信するデータの伝送速度を可変することを特徴とする、請求項1記載の通信制御方法。 2. The communication control method according to claim 1, wherein when at least one user is assigned to the flow to be actually transmitted, a transmission rate of data transmitted by the at least one user is varied. 前記少なくとも1ユーザ毎に、割当てるパケット容量を可変することを特徴とする、請求項1または2に記載の通信制御方法。 The communication control method according to claim 1 or 2 , wherein a packet capacity to be allocated is varied for each of the at least one user. 入力パケットデータに対してポリシング処理により帯域制御を行って伝送を行う通信制御装置であって、
前記入力パケットデータを少なくとも1ユーザ毎のフローに分類するパケット分類機構と、
同時並行して伝送可能な複数のフローに対して伝送のために割当てられている全帯域を、実際に伝送すべき前記フローに割当てるポリシング処理部とを備え
前記フローは帯域の割合に応じた重みが割当て付けられており、
前記ポリシング処理部は、
実際に通信を行っているフロー番号iのフローの重みをW 、現在通信を行っているフロー全体の重みの合計値をA、パケットデータ長をLとした場合に、
当該フロー番号iの次パケットが到着する時間の理論的な予想値(TAT値)を、TAT =TAT +L×A/W の式から算出し、
該予想値を用いて前記ポリシング処理を行うことにより、
実際に通信を行っているフローに対し、W /Aの割合に基づいた帯域割当てをすることを特徴とする通信制御装置。
A communication control device that performs transmission by performing bandwidth control by policing processing on input packet data,
A packet classification mechanism for classifying the input packet data into flows for at least one user;
A policing processing unit that allocates the entire bandwidth allocated for transmission to a plurality of flows that can be transmitted in parallel, to the flow to be actually transmitted ,
The flow is assigned a weight according to the bandwidth ratio,
The polishing processing unit
When the weight of the flow of the flow number i that is actually communicating is W i , the total value of the weights of the entire flow that is currently communicating is A, and the packet data length is L,
The theoretical expected value (TAT value) of the arrival time of the next packet of the flow number i is calculated from the formula TAT i = TAT i + L × A / W i
By performing the policing process using the predicted value,
A communication control apparatus characterized by allocating a bandwidth based on a ratio of W i / A to a flow that is actually communicating .
前記少なくとも1ユーザ毎に、実際に伝送すべき前記フローに割当てる際、前記少なくとも1ユーザの送信するデータの伝送速度を可変することを特徴とする、請求項に記載の通信制御装置。 5. The communication control apparatus according to claim 4 , wherein when allocating the flow to be actually transmitted for each at least one user, a transmission rate of data transmitted by the at least one user is varied. 前記少なくとも1ユーザ毎に、割当てるパケット容量を可変することを特徴とする、請求項4または5に記載の通信制御装置。 6. The communication control apparatus according to claim 4 , wherein a packet capacity to be allocated is varied for each at least one user. 入力パケットデータに対してポリシング処理により帯域制御を行って伝送を行う通信制御装置をコンピュータにより制御するための制御プログラムであって、
前記入力パケットデータを少なくとも1ユーザ毎のフローに分類させ、
同時並行して伝送可能な複数の前記フローに対して前記伝送のために割当てられている全帯域を、実際に伝送すべき前記フローに割当てるポリシング処理ステップを備え、
前記フローは帯域の割合に応じた重みが割り当てられており、
前記ポリシング処理ステップは、
実際に通信を行っているフロー番号iのフローの重みをW 、現在通信を行っているフロー全体の重みの合計値をA、パケットデータ長をLとした場合に、
当該フロー番号iの次パケットが到着する時間の理論的な予想値(TAT値)を、TAT =TAT +L×A/W の式から算出し、
該予想値を用いて前記ポリシング処理ステップを実行させることにより、
実際に通信を行っているフローに対し、W /Aの割合に基づいた帯域割当てを行わせることを特徴とする制御プログラム
A control program for controlling a communication control device that performs transmission by performing bandwidth control by policing processing on input packet data,
Classifying the input packet data into at least one user flow;
A policing process step of allocating the entire bandwidth allocated for the transmission to a plurality of flows that can be transmitted in parallel to the flow to be actually transmitted ;
The flow is assigned a weight according to the bandwidth ratio ,
The policing processing step includes:
When the weight of the flow of the flow number i that is actually communicating is W i , the total value of the weights of the entire flow that is currently communicating is A, and the packet data length is L,
The theoretical expected value (TAT value) of the arrival time of the next packet of the flow number i is calculated from the formula TAT i = TAT i + L × A / W i
By causing the policing processing step to be executed using the predicted value,
A control program that causes a flow that is actually communicating to perform bandwidth allocation based on a ratio of W i / A.
前記少なくとも1ユーザ毎に、実際に伝送すべき前記フローに割当てる際、前記少なくとも1ユーザの送信するデータの伝送速度を可変することを特徴とする、請求項に記載の制御プログラム。 8. The control program according to claim 7 , wherein when at least one user is assigned to the flow to be actually transmitted, a transmission rate of data transmitted by the at least one user is varied. 9. 前記少なくとも1ユーザ毎に、割当てるパケット容量を可変することを特徴とする、請求項7または8に記載の制御プログラム。 Wherein at least every one user, characterized by varying the packet capacity assigned, the control program according to claim 7 or 8. 請求項7から9のいずれか1項に記載の制御プログラムを記録したことを特徴とするコンピュータ読取可能な記録媒体。 A computer-readable recording medium on which the control program according to any one of claims 7 to 9 is recorded.
JP2004204129A 2004-07-12 2004-07-12 COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM Expired - Fee Related JP4391346B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004204129A JP4391346B2 (en) 2004-07-12 2004-07-12 COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004204129A JP4391346B2 (en) 2004-07-12 2004-07-12 COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM

Publications (2)

Publication Number Publication Date
JP2006033002A JP2006033002A (en) 2006-02-02
JP4391346B2 true JP4391346B2 (en) 2009-12-24

Family

ID=35898887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004204129A Expired - Fee Related JP4391346B2 (en) 2004-07-12 2004-07-12 COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM

Country Status (1)

Country Link
JP (1) JP4391346B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3076616B1 (en) 2015-03-31 2017-04-12 Mitsubishi Electric R&D Centre Europe B.V. Method for data traffic management and network node for implementing the same

Also Published As

Publication number Publication date
JP2006033002A (en) 2006-02-02

Similar Documents

Publication Publication Date Title
US7936770B1 (en) Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
Semeria Supporting differentiated service classes: queue scheduling disciplines
US7123622B2 (en) Method and system for network processor scheduling based on service levels
US9344369B2 (en) System and methods for distributed quality of service enforcement
US6438135B1 (en) Dynamic weighted round robin queuing
US6795870B1 (en) Method and system for network processor scheduler
US6934250B1 (en) Method and apparatus for an output packet organizer
US8520522B1 (en) Transmit-buffer management for priority-based flow control
US6757249B1 (en) Method and apparatus for output rate regulation and control associated with a packet pipeline
US9608926B2 (en) Flexible recirculation bandwidth management
US7023856B1 (en) Method and system for providing differentiated service on a per virtual circuit basis within a packet-based switch/router
US20020191622A1 (en) System for and method of differentiated queuing in a routing system
JP4163044B2 (en) BAND CONTROL METHOD AND BAND CONTROL DEVICE THEREOF
WO2001078420A1 (en) Method and apparatus for distribution of bandwidth in a switch
AU2001244996A1 (en) Method and apparatus for distribution of bandwidth in a switch
WO2004077767A1 (en) Packet transfer control method and packet transfer control circuit
US7486617B2 (en) Network devices and traffic shaping methods
US11343193B2 (en) Apparatus and method for rate management and bandwidth control
JP3623420B2 (en) Traffic control method
US7266612B1 (en) Network having overload control using deterministic early active drops
JP2005236669A (en) Method and device for controlling communication quality
JP4087279B2 (en) BAND CONTROL METHOD AND BAND CONTROL DEVICE THEREOF
JP4391346B2 (en) COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM
JP2002305538A (en) Communication quality control method, server and network system
US20070133561A1 (en) Apparatus and method for performing packet scheduling using adaptation round robin

Legal Events

Date Code Title Description
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20061215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070201

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20081022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091007

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4391346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees