JPH11252097A - Device and method for sending packet - Google Patents

Device and method for sending packet

Info

Publication number
JPH11252097A
JPH11252097A JP4965298A JP4965298A JPH11252097A JP H11252097 A JPH11252097 A JP H11252097A JP 4965298 A JP4965298 A JP 4965298A JP 4965298 A JP4965298 A JP 4965298A JP H11252097 A JPH11252097 A JP H11252097A
Authority
JP
Japan
Prior art keywords
packet
value
group
round
packets
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.)
Granted
Application number
JP4965298A
Other languages
Japanese (ja)
Other versions
JP3431484B2 (en
Inventor
Yoshimitsu Shimojo
義満 下條
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP04965298A priority Critical patent/JP3431484B2/en
Publication of JPH11252097A publication Critical patent/JPH11252097A/en
Application granted granted Critical
Publication of JP3431484B2 publication Critical patent/JP3431484B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To facilitate the selection of a packet and to suppress a burst to a minimum by sending packets from respective groups until a cumulative value considering the weight of a transmission packet amount for the each group exceeds a threshold value on a relevant round and setting a maximum value among the cumulative values of the respective groups at the time point of the preceding round end to a threshold value on the following round. SOLUTION: A packet sending device is provided with a packet queue (VQ) 2 for every group for storing packets for every group and a list managing part 8 for managing a list (SQ) 4 of identifiers of the QV in which an output waiting the packets exist. Further, a selector 6 is provided for repeatedly outputting the packet from the relevant VQ continuously as much as an amount corresponding to conditions while referring to the identifier of the VQ existing in the head of the SQ at the list managing part 8. Since the packet of the VQ for every group is fairly outputted based on the weight, the variable of F (e.g. transmission packet amount/weight, for example,) is calculated for every the VQ.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術の分野】本発明は、パケット通信網
の構成要素の中で複数のグループに分類され出力を待つ
パケットをグループ毎の重みに基づいて公平に送出する
パケット送出装置及びパケット送出方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a packet transmitting apparatus and a packet transmitting method for fairly transmitting packets which are classified into a plurality of groups and awaiting output in the components of a packet communication network based on the weight of each group. About.

【0002】[0002]

【従来の技術】近年、情報通信の重要性が高まってい
る。特にインターネットと呼ばれるパケット通信網は、
World Wide Webを代表とする魅力的なア
プリケーションの登場により、ビジネスの世界でも個人
の娯楽としても世界中の多くの人を引き付けている。こ
のインターネットはその重要性の認識が広がるとともに
利用者が増加してきた。そして利用者が増えることによ
りその重要性がさらに増している。このように今日、多
くの企業や個人がインターネットを代表とするパケット
通信網の技術の発展を大きく期待している。
2. Description of the Related Art In recent years, the importance of information communication has been increasing. In particular, the packet communication network called the Internet
With the advent of attractive applications represented by the World Wide Web, it has attracted many people around the world, both in the business world and as personal entertainment. The Internet has gained increasing awareness of its importance and its use has increased. And its importance is further increased by the increase in users. Thus, today, many companies and individuals are greatly expecting the development of packet communication network technology represented by the Internet.

【0003】パケット通信網の利点のひとつは、複数の
ユーザが物理回線を柔軟に共有できることである。この
利点を生かすために、物理回線容量をユーザ間で公平に
分け合うことを保証するパケット送出装置が提案されて
いる。
One of the advantages of a packet communication network is that a plurality of users can flexibly share a physical line. In order to take advantage of this advantage, there has been proposed a packet transmission device that guarantees that the physical line capacity is fairly shared among users.

【0004】M.Shreedhar and G.V
arghese:“Efficient Fair Q
ueueing Using Deficit Rou
ndRobin”,pp231−242,SIGCOM
M ’95,1995.にて、DRR(Deficit
Round Robin)と呼ばれるパケット送出ア
ルゴリズムが示された。DRRは送出待ちパケットが存
在するフローの識別子をアクティブリストと呼ばれるキ
ューで管理する。フローとは、送信者アドレスや受信者
アドレスなどの組合せで識別されるパケットのグループ
である。アクティブリストの先頭からフロー識別子を取
り出し、そのフローのパケットを、フロー毎に定められ
た重みに基づいてまとめて送出する。具体的には、送出
するパケット長の合計がそのフローに設定された重み値
を越えない範囲でそのフローのパケットの送出を連続し
て行う。重み値いっぱいまで送出した後まだそのフロー
に出力待ちパケットが存在するなら、そのフロー識別子
をアクティブリストの末尾へ再び入れる。
[0004] M. Shredhar and G. V
Argese: “Efficient Fair Q
ueueing Using Definit Rou
ndRobin ", pp231-242, SIGCOM
M '95, 1995. At DRR (Deficit
A packet sending algorithm called Round Robin) was shown. The DRR manages an identifier of a flow in which a packet waiting to be transmitted exists in a queue called an active list. A flow is a group of packets identified by a combination of a sender address, a recipient address, and the like. The flow identifier is extracted from the head of the active list, and the packets of the flow are collectively transmitted based on the weight determined for each flow. Specifically, the packets of the flow are continuously transmitted within a range in which the total length of the packets to be transmitted does not exceed the weight value set for the flow. If there is still a packet waiting to be output in the flow after transmitting the weight value to the full value, the flow identifier is re-entered at the end of the active list.

【0005】DRRは、フロー毎に適当な重み値を設定
することで物理回線に送出するスループットをフロー毎
に所望の割合に設定することができる。重みが大きいほ
ど割り当てられるスループットの割合が大きくなる。
In the DRR, by setting an appropriate weight value for each flow, it is possible to set a throughput to be transmitted to a physical line to a desired ratio for each flow. The higher the weight, the higher the percentage of assigned throughput.

【0006】また、次にどのフローのパケットを出力す
べきかという決定をするためにはアクティブリストの先
頭のフロー識別子だけ参照すればよいため、フロー数が
多くなっても出力すべきパケットの選択に必要な処理量
が一定であり少ないという利点がある。
In order to determine which packet of a flow should be output next, it is only necessary to refer to the flow identifier at the head of the active list. There is an advantage that the required processing amount is constant and small.

【0007】しかしこの特徴を生かすため、DRRは重
みの大きさをフローに想定される最大パケット長以上の
値に設定する必要がある。この制約条件のため、小さな
スループットに設定したいフローが大きな最大パケット
長を持つほど大きな重み値を設定しなければならない。
大きな重みを設定するということは、ひとつのフローか
ら一時的にまとまった量のパケットがバースト的に出力
されるということになる。
However, in order to make use of this feature, it is necessary to set the weight of the DRR to a value equal to or larger than the maximum packet length assumed for the flow. Due to this constraint, a larger weight value must be set as the flow to be set to a smaller throughput has a larger maximum packet length.
Setting a large weight means that a temporarily large amount of packets are output in bursts from one flow.

【0008】結局、従来のパケット送出装置では、パケ
ット選択が容易である利点はあったが、短いパケットを
送出する際にも予想される最大パケット長を基準として
設定された重みを使用するためフロー毎のバースト性が
高くなってしまい、結果的にネットワーク内におけるパ
ケットのバッファ溢れが発生し易いという欠点があっ
た。
In the end, the conventional packet transmitting apparatus has an advantage that packet selection is easy. However, even when a short packet is transmitted, a weight set based on the expected maximum packet length is used. There is a drawback that the burst property of each packet becomes high, and as a result, the buffer overflow of the packet easily occurs in the network.

【0009】[0009]

【発明が解決しようとする課題】以上述べたように、従
来のパケット送出装置は、短いパケットを送出する際に
も予想される最大パケット長を基準として設定された重
みを使用するためフロー毎のバースト性が高くなってし
まい、結果的にネットワーク内におけるパケットのバッ
ファ溢れが発生し易いという問題点があった。
As described above, the conventional packet transmitting apparatus uses a weight set on the basis of the expected maximum packet length even when transmitting a short packet. There is a problem that the burst property is increased, and as a result, the buffer overflow of the packet in the network easily occurs.

【0010】本発明は、上記事情を考慮してなされたも
ので、送出するパケットの選択が容易である利点を持ち
つつ、各フローからのパケット送出を必要最小限のバー
ストに抑えることのできるパケット送出装置及びパケッ
ト送出方法を提供することを目的とする。
The present invention has been made in view of the above circumstances, and has an advantage that a packet to be transmitted is easy to select, and a packet which can suppress packet transmission from each flow to a necessary minimum burst. An object of the present invention is to provide a transmission device and a packet transmission method.

【0011】[0011]

【課題を解決するための手段】本発明(請求項1)は、
送出すべきパケットが存在するグループの識別子のリス
トに基づいてパケットを送出するパケット送出装置であ
って、リストに基づくパケット送出の各ラウンド(巡
回)において、各々のグループ毎の送出パケット量の重
みを考慮した累積値(実施形態におけるF)が、当該ラ
ウンドでのしきい値(実施形態におけるFmax)を越
えるまで、各々のグループからパケットを送出する手段
と、先行するラウンドの終了時点における各グループの
累積値(F)のうちの最大値を後続するラウンドでのし
きい値(Fmax)として設定する手段とを備えたこと
を特徴とする。
Means for Solving the Problems The present invention (claim 1) provides:
A packet transmitting apparatus for transmitting packets based on a list of identifiers of groups to which packets to be transmitted exist, wherein in each round of packet transmission based on the list, a weight of a transmitted packet amount for each group is set. Until the considered cumulative value (F in the embodiment) exceeds the threshold value (Fmax in the embodiment) in the round, means for transmitting packets from each group, and means for sending out packets from each group at the end of the preceding round. Means for setting a maximum value of the accumulated values (F) as a threshold value (Fmax) in a subsequent round.

【0012】好ましくは、前記送出する手段は、1つの
パケットを送出するごとに、該パケットの属するグルー
プについて予め定められた重みで該パケットのパケット
長を割った値を、それまでの該グループの累積値に加算
して、新たな累積値を得るものであるようにしてもよ
い。
[0012] Preferably, each time one packet is transmitted, the transmitting means divides a value obtained by dividing a packet length of the packet by a predetermined weight for a group to which the packet belongs to a value of the group up to that time. A new cumulative value may be obtained by adding to the cumulative value.

【0013】好ましくは、前記送出する手段は、1つの
パケットを送出するごとに、該パケットの属するグルー
プの累積値を求め、求められた累積値が依然として当該
ラウンドでのしきい値以下であり、かつ、該グループに
依然として送出待ちのパケットが存在する場合には、続
けて該グループから1つのパケットを送出するものであ
るようにしてもよい。
Preferably, the transmitting means calculates the cumulative value of the group to which the packet belongs each time one packet is transmitted, and the calculated cumulative value is still less than or equal to the threshold value in the round. If there is still a packet waiting to be transmitted in the group, one packet may be continuously transmitted from the group.

【0014】好ましくは、新たに送出すべきパケットが
発生し前記リストに前記識別子が入力されたグループの
累積値を、そのラウンドでのしきい値または該しきい値
より小さい所定の値に設定する手段をさらに備えるよう
にしてもよい。
Preferably, a cumulative value of a group in which a packet to be newly transmitted is generated and the identifier is input to the list is set to a threshold value in the round or a predetermined value smaller than the threshold value. Means may be further provided.

【0015】好ましくは、所定のタイミングで前記累積
値および前記しきい値をそれらの関係を保ってより小さ
い値に変換する手段をさらに備えるようにしてもよい。
好ましくは、1つのパケットが序列を持つ複数のセルで
構成される場合に、該パケットを構成する最後のセルが
到着した時点で、該パケットが到着したものとして扱う
ための手段をさらに備えるようにしてもよい。
Preferably, the apparatus may further comprise means for converting the accumulated value and the threshold value into smaller values at a predetermined timing while maintaining their relationship.
Preferably, in the case where one packet is composed of a plurality of cells having an order, when the last cell constituting the packet has arrived, the apparatus further comprises means for treating the packet as having arrived. You may.

【0016】好ましくは、1つのパケットが序列を持つ
複数のセルで構成される場合に、予め定められたグルー
プに属するパケットを構成する最初のセルが到着した時
点で、該パケットが到着したものとして扱うための手段
と、前記最初のセルが到着したパケットを構成する最後
のセルを送出するまで、予め定められた他のグループに
属するパケットを送出させないための制御を行う手段と
をさらに備えるようにしてもよい。
Preferably, when one packet is composed of a plurality of cells having an order, when the first cell constituting a packet belonging to a predetermined group arrives, the packet is regarded as having arrived. Means for handling, and means for controlling so as not to transmit packets belonging to another predetermined group until the first cell transmits the last cell constituting the packet that has arrived. You may.

【0017】本発明(請求項8)は、入力されたパケッ
トをグループ毎に蓄積する手段と、送出すべきパケット
が存在するグループの識別子のリストを管理する手段
と、前記リストに基づいて、パケット送出すべきグルー
プを1つずつ繰り返し選択する手段と、選択されたグル
ープについて、1つパケットを送出するごとに、該グル
ープについて予め定められた重みで該パケットのパケッ
ト長を割った値をそれまでの該グループの累積値(実施
形態におけるF)に加算して新たな累積値(F)を求
め、求められた新たな累積値(F)が依然として当該時
点でのしきい値(実施形態におけるFmax)以下であ
る場合は、続けて該グループから1つのパケットを送出
する処理を繰り返す手段と、この手段による処理が、前
記リスト内に存在するすべての識別子に対して一通り実
行された場合に、当該時点における各グループの累積値
(F)のうちの最大値を新たなしきい値(Fmax)と
して設定する手段とを備えたことを特徴とする。
The present invention (claim 8) provides a means for storing input packets for each group, a means for managing a list of identifiers of groups to which packets to be sent exist, and a method for storing packets based on the list. Means for repeatedly selecting a group to be transmitted one by one; and, for each packet transmitted for the selected group, a value obtained by dividing a packet length of the packet by a predetermined weight for the group until then. Is added to the cumulative value of the group (F in the embodiment) to obtain a new cumulative value (F), and the obtained new cumulative value (F) is still the threshold value at the time (Fmax in the embodiment). If the following is true, means for continuously repeating the processing of sending one packet from the group and processing by this means are present in the list. Means for setting the maximum value among the accumulated values (F) of the respective groups at the time point as a new threshold value (Fmax) when all the identifiers have been executed. And

【0018】本発明(請求項9)は、送出すべきパケッ
トが存在するグループの識別子のリストに基づいてパケ
ットを送出するパケット送出装置におけるパケット送出
方法であって、リストに基づくパケット送出の各ラウン
ド(巡回)において、各々のグループ毎の送出パケット
量の重みを考慮した累積値(実施形態におけるF)が、
当該ラウンドでのしきい値(実施形態におけるFma
x)を越えるまで、各々のグループからパケットを送出
し、各ラウンドの終了時点における各グループの累積値
(F)のうちの最大値を次のラウンドでのしきい値(F
max)とすることを特徴とする。
According to a ninth aspect of the present invention, there is provided a packet transmitting method in a packet transmitting apparatus for transmitting a packet based on a list of identifiers of groups in which a packet to be transmitted exists, wherein each round of packet transmission based on the list is provided. (Circulation), the cumulative value (F in the embodiment) in consideration of the weight of the transmission packet amount for each group is:
The threshold value in the round (Fma in the embodiment)
Until x), packets are transmitted from each group, and the maximum value of the accumulated value (F) of each group at the end of each round is set to the threshold value (F) in the next round.
max).

【0019】本発明(請求項10)は、各ラウンド毎
に、送出すべきパケットが存在するグループの識別子の
リストに基づいてパケットを送出するパケット送出装置
におけるパケット送出方法であって、リストに基づいて
選択された1つのグループについて、1つパケットを送
出するごとに、該グループについて予め定められた重み
で該パケットのパケット長を割った値をそれまでの該グ
ループの累積値(実施形態におけるF)に加算して新た
な累積値(F)を求め、求められた新たな累積値(F)
が依然として当該ラウンドでのしきい値(実施形態にお
けるFmax)以下である場合は、続けて該グループか
ら1つのパケットを送出し、求められた累積値(F)が
当該ラウンドでのしきい値(Fmax)を越えた場合に
は、次のグループをリストに基づいて選択する処理を、
前記リスト内に存在するすべての識別子に対して実行す
るまで繰り返し、このラウンドの終了時点における各グ
ループの累積値(F)のうちの最大値を次のラウンドで
のしきい値(Fmax)とすることを特徴とする。
The present invention (claim 10) relates to a packet transmitting method in a packet transmitting apparatus for transmitting packets based on a list of identifiers of groups in which packets to be transmitted exist in each round, wherein the packet is transmitted based on the list. Each time one packet is transmitted for one selected group, the value obtained by dividing the packet length of the packet by a predetermined weight for the group is calculated as the cumulative value of the group up to that point (F in the embodiment). ) Is added to obtain a new cumulative value (F), and the obtained new cumulative value (F) is obtained.
Is still equal to or smaller than the threshold value in the round (Fmax in the embodiment), one packet is continuously transmitted from the group, and the obtained cumulative value (F) is determined as the threshold value in the round (Fmax). Fmax), a process of selecting the next group based on the list is performed.
The process is repeated until the process is performed for all identifiers existing in the list, and the maximum value among the cumulative values (F) of the respective groups at the end of this round is set as a threshold value (Fmax) in the next round. It is characterized by the following.

【0020】本発明は、例えば、インターネット網のル
ータにおけるパケット送出スケジューラや、ATM通信
網のATMスイッチのセル送出スケジューラに適用でき
る。なお、装置に係る本発明は方法に係る発明としても
成立し、方法に係る本発明は装置に係る発明としても成
立する。
The present invention can be applied to, for example, a packet transmission scheduler in a router of the Internet network or a cell transmission scheduler of an ATM switch in an ATM communication network. Note that the present invention relating to the apparatus is also realized as an invention relating to a method, and the present invention relating to a method is also realized as an invention relating to an apparatus.

【0021】また、装置または方法に係る本発明は、コ
ンピュータに当該発明に相当する手順を実行させるため
の(あるいはコンピュータを当該発明に相当する手段と
して機能させるための、あるいはコンピュータに当該発
明に相当する機能を実現させるための)プログラムを記
録したコンピュータ読取り可能な記録媒体としても成立
する。
Further, the present invention relating to an apparatus or a method is provided for causing a computer to execute a procedure corresponding to the present invention (or for causing a computer to function as means corresponding to the present invention, or for causing a computer to correspond to the present invention). The present invention is also realized as a computer-readable recording medium in which a program for realizing the function of performing the above is recorded.

【0022】本発明によれば、パケット送出の各ラウン
ドにおいて、各々のグループ毎の送出パケット量の重み
を考慮した累積値が、当該ラウンドでのしきい値を越え
るまで、各々のグループからパケットを送出するととも
に、各ラウンドの終了時点における各グループの累積値
のうちの最大値を次のラウンドでのしきい値として設定
するので、送出するパケットの選択がグループ数、例え
ばフロー数、に依存せず容易に可能であり、かつ、その
時々で実際に送出しているパケット量と重みを用いて、
各グループが1ラウンドに送出できるパケット量を動的
に決定することができるため、各グループのパケット送
出を必要最小限のバーストに抑えることができる。
According to the present invention, in each round of packet transmission, packets are transmitted from each group until the cumulative value in consideration of the weight of the transmission packet amount for each group exceeds the threshold value in the round. At the same time as sending, the maximum value of the accumulated value of each group at the end of each round is set as a threshold value in the next round, so that the selection of packets to be sent depends on the number of groups, for example, the number of flows. Using the amount of packets and weights that are actually being sent out from time to time,
Since the amount of packets that each group can transmit in one round can be dynamically determined, the packet transmission of each group can be suppressed to the minimum necessary burst.

【0023】[0023]

【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。図1は本発明を適用したパケッ
ト送出装置の一構成例である。本パケット送出装置は、
例えば、ATMスイッチやIPルータの場合、各ポート
の出力処理部分に相当する。もし、各ポートが複数のク
ラスの優先制御や帯域分割制御などを行っている場合に
は、そのうちの1つまたは複数のクラスのそれぞれにお
ける出力処理部分に相当する。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows an example of the configuration of a packet transmission device to which the present invention is applied. This packet transmission device
For example, in the case of an ATM switch or an IP router, it corresponds to an output processing portion of each port. If each port performs priority control or band division control of a plurality of classes, it corresponds to an output processing portion in each of one or a plurality of classes.

【0024】まず、本パケット送出装置の基本的な構成
について説明する。図1に示されるように、本パケット
送出装置は、パケットをグループ毎に蓄積するグループ
毎パケットキュー(VQ)2と、出力待ちパケットの存
在するVQの識別子のリスト(SQ)4を管理するリス
ト管理部8と、リスト管理部8のSQの先頭にあるVQ
の識別子を参照し、該当するVQからパケットを後述す
る条件に応じた数量だけ(1つまたは複数のパケット
を)連続して出力させる、ことを繰り返し行うための、
セレクタ6とを有する。ここで、「連続して」の意味
は、同一SQで管理するパケットの中で連続してという
ことであり、複数のSQが優先制御などで組み合わせら
れている場合には、その間に他のSQからのパケットが
出力される場合もある。
First, a basic configuration of the present packet transmitting apparatus will be described. As shown in FIG. 1, the present packet transmitting apparatus includes a group-based packet queue (VQ) 2 for storing packets for each group, and a list (SQ) 4 for managing a list (SQ) 4 of VQ identifiers in which packets to be output exist. Management unit 8 and VQ at the head of SQ of list management unit 8
, And repeatedly outputting packets (one or more packets) from the corresponding VQ by an amount corresponding to a condition to be described later.
And a selector 6. Here, the meaning of “continuously” means that it is continuous in packets managed by the same SQ, and when a plurality of SQs are combined by priority control or the like, another SQ May be output.

【0025】あるグループに対応するVQに送出待ちの
パケットが発生すると、リスト管理部8のSQにそのV
Qを示す識別子が入れられる。SQの先頭にあるVQの
識別子は、セレクタ6に参照された後にSQから取り出
されるとともに、まだその識別子により示されるVQ内
に送出待ちのパケットが存在する場合には、その識別子
はSQの末尾に再度、入れられる。
When a packet waiting to be transmitted is generated in a VQ corresponding to a certain group, the SQ of the list
An identifier indicating Q is entered. The VQ identifier at the head of the SQ is extracted from the SQ after being referred to by the selector 6, and if there is still a packet waiting to be transmitted in the VQ indicated by the identifier, the identifier is added to the end of the SQ. It is put in again.

【0026】次に、図1のVQに関して説明する。前述
のように、VQは、グループ毎に分けられた、送出すべ
きパケットを蓄積するキューである。以下では、VQの
識別子をVCIと呼ぶことにする。ここでいうグループ
の分類は、例えば、仮想コネクション別、IPパケット
のフロー別、アプリケーション別、または品質クラス別
などである。
Next, the VQ shown in FIG. 1 will be described. As described above, the VQ is a queue for storing packets to be transmitted, which is divided into groups. Hereinafter, the identifier of VQ will be referred to as VCI. The classification of the group referred to here is, for example, by virtual connection, by IP packet flow, by application, or by quality class.

【0027】ところで、本パケット送出装置のパケット
キュー構成は、その用途に応じて種々の構成が考えられ
る。すなわち、(1)図1に例示したもののように、全
ての「VQ」を単純なFIFOキューにする構成の他
に、(2)一部の「VQ」は単純なFIFOキューであ
るが、他の「VQ」については、その「VQ」の中にさ
らに優先度や重みでスケジューリングされる複数のVQ
があるような階層構造を持つような構成、(3)全ての
「VQ」が階層構造を持つような構成が考えられる。
By the way, as the packet queue configuration of the present packet transmitting apparatus, various configurations can be considered according to the application. That is, (1) In addition to the configuration illustrated in FIG. 1, all “VQs” are simple FIFO queues, and (2) some “VQs” are simple FIFO queues. "VQ", a plurality of VQs scheduled by priority and weight are further included in the "VQ".
And (3) a configuration in which all “VQs” have a hierarchical structure.

【0028】上記の(2)や(3)において、階層構造
を持つ各VQについてそのキューの階層構造は2階層以
上あってもよい(例えば、「VQ」の中に優先度や重み
でスケジューリングされる複数の『VQ』があり、その
『VQ』の中にさらに優先度や重みでスケジューリング
される複数のVQがあるような構成であってもよい)。
もちろん、上記の(2)や(3)で階層構造を持つVQ
が複数ある場合に、階層構造を持つ全部のVQが同一の
階層構造を持つものであってもよいし、VQ毎に独自の
階層構造を持つものであってもよい。
In the above (2) and (3), for each VQ having a hierarchical structure, the queue may have two or more hierarchical structures (for example, scheduling is performed by priority or weight in "VQ"). There may be a configuration in which there are a plurality of “VQs”, and among the “VQs”, there are a plurality of VQs scheduled with priority and weight.
Of course, VQ having a hierarchical structure in (2) and (3) above
When there are a plurality of VQs, all the VQs having a hierarchical structure may have the same hierarchical structure, or may have a unique hierarchical structure for each VQ.

【0029】このパケットキューに階層構造を採用する
構成は、異なる性質や要求を持つグループ間で物理リン
クを共用するときに有効であり、そして、本発明(例え
ばその特徴的なスケジューリングアルゴリズム)は、こ
の各階層の重み付きスケジューリングをする部分にそれ
ぞれ適用することができる。例えば、図1のあるVQの
中に図1の構成が存在するような構成にすることが可能
である。
The configuration adopting a hierarchical structure for the packet queue is effective when sharing a physical link between groups having different characteristics and requirements, and the present invention (for example, its characteristic scheduling algorithm) The present invention can be applied to each of the portions that perform weighted scheduling in each layer. For example, it is possible to adopt a configuration in which the configuration of FIG. 1 exists in a certain VQ of FIG.

【0030】次に、図1のSQに関して説明する。前述
したように、パケットをどのVQから出力すべきかはS
Qにより指定される。SQは送出すべきパケットが存在
するVQのVCIのリストを管理し、VCIを順番にピ
ックアップすることでどのVQからパケットを出力すべ
きかを指示する。本発明はSQの具体的な実現方法に関
わらず有効に作用するが、SQは簡単にはDRRのアク
ティブリストのようにVCIのFIFOでよい。送出待
ちパケットがないアイドル状態のVQにパケットが到着
しアクティブ状態になった場合、SQの末尾にそのVC
Iをエンキューする。パケットの送出はSQの先頭のV
CIで示されるVQから行なう。今のVCIのパケット
送出を中断し次のVCIに進む場合にはSQの先頭のV
CIをFIFOからデキューし、SQの先頭を新しいV
CIにする。もし取り出したVCIのVQに送出すべき
パケットがまだ残っている場合には、再びSQの末尾に
そのVCIをエンキューしておく。
Next, the SQ of FIG. 1 will be described. As described above, from which VQ the packet should be output is S
Specified by Q. The SQ manages a list of VCIs of a VQ in which a packet to be transmitted exists, and indicates from which VQ the packet should be output by picking up the VCIs in order. Although the present invention works effectively regardless of the specific implementation method of the SQ, the SQ may simply be a VCI FIFO like an active list of a DRR. When a packet arrives at the idle VQ where there is no packet waiting to be transmitted and becomes active, the VC is added to the end of the SQ.
Enqueue I. The packet is sent at the beginning V of the SQ.
It starts from VQ indicated by CI. When interrupting the packet transmission of the current VCI and proceeding to the next VCI, the first V
CI is dequeued from the FIFO, and the head of SQ is changed to the new V
Set to CI. If there is still a packet to be transmitted to the VQ of the extracted VCI, the VCI is enqueued again at the end of the SQ.

【0031】次に、以下で用いる一連の処理の単位、ラ
ウンドについて説明する。SQが管理する全てのVCI
を一通り指示する期間を、ここでは、「ラウンド(巡
回)」と呼ぶ。ラウンドは繰り返されるので、あるラウ
ンドの終了時点は次のラウンドの開始時点になる。ラウ
ンドの具体的な定義によらず本発明は有効に作用するの
で、その正確な定義(例えば、隣接するラウンドの区切
りの定義)は本発明では必ずしも重要ではないが、簡単
な例としては、ラウンドの開始時点でSQ内に蓄積され
ているVCIの数をカウンタに設定し、VCIを1つ処
理する毎にそのカウンタをデクリメントして、0になっ
た時点をラウンドの終りとすれば、容易にそのラウンド
の終了時点を判定できる。
Next, a unit of a series of processing and a round used in the following will be described. All VCIs managed by SQ
Is referred to herein as a “round”. Since the rounds are repeated, the end point of one round is the start point of the next round. Since the present invention works regardless of the specific definition of a round, its precise definition (eg, the definition of a break between adjacent rounds) is not necessarily important in the present invention. If the number of VCIs stored in the SQ is set in the counter at the start of the process, the counter is decremented each time one VCI is processed, and the time when the value reaches 0 is the end of the round. The end point of the round can be determined.

【0032】次に、以下で用いる変数FとFmaxにつ
いて説明する。本発明では、各VQ(すなわち各グルー
プ)のパケットを重みに基づいて公平に出力するため
に、VQ毎にFという変数を計算する。Fは各VQの送
出パケット量の重みを考慮した値(例えば、送出パケッ
ト量/重み)である。例えば、あるVQからパケットを
出力する毎に、そのパケットのパケット長を重みで割っ
た値をFに加算する。重みはVQ毎に予め定められるも
のとする。
Next, variables F and Fmax used below will be described. In the present invention, a variable F is calculated for each VQ in order to fairly output the packets of each VQ (that is, each group) based on the weight. F is a value in consideration of the weight of the transmission packet amount of each VQ (for example, transmission packet amount / weight). For example, every time a packet is output from a certain VQ, a value obtained by dividing the packet length of the packet by the weight is added to F. The weight is determined in advance for each VQ.

【0033】本発明では、このFが各VQでなるべく同
じになるようにパケットを出力する。そのために、各ラ
ウンドで1つのしきい値Fmaxを定め、各VQのFが
Fmaxを越えるまでパケットを送出することが本発明
の特徴の1つである。
In the present invention, a packet is output so that F becomes as equal as possible in each VQ. Therefore, one of the features of the present invention is that one threshold value Fmax is determined in each round, and packets are transmitted until the F of each VQ exceeds Fmax.

【0034】本発明のもう1つの特徴は、各ラウンドの
開始時点(すなわち1つ前のラウンドの終了時点)にお
ける、各VQのFのうち最大のものを次のラウンドのF
maxとすることである。
Another feature of the present invention is that at the start of each round (ie, at the end of the previous round), the largest of the Fs in each VQ is replaced by the F in the next round.
max.

【0035】これにより、たまたまどれかのVQから長
いパケットが送出されたときだけは各VQからの送出パ
ケットが多くなるものの、短いパケットしか送出されな
いときには各VQからのパケット出力は少しずつにな
る。つまり、各VQからのパケット送出のバースト性が
なるべく低く抑えられるように、動的にFmaxの値が
調整される。
Thus, the number of packets transmitted from each VQ increases only when a long packet is transmitted from one of the VQs by chance, but the output of packets from each VQ becomes small when only short packets are transmitted. That is, the value of Fmax is dynamically adjusted so that the burstiness of packet transmission from each VQ is suppressed as low as possible.

【0036】なお、パケットを出力させているあるVQ
のFが依然としてFmax以下であっても、そのVQが
空になった場合には、このVQの識別子をSQからデキ
ューして、次の処理に移る。
It should be noted that a certain VQ outputting a packet
If the FQ is still equal to or smaller than Fmax, but the VQ becomes empty, the identifier of the VQ is dequeued from the SQ, and the process proceeds to the next process.

【0037】また、あるVQにおいて、最後の出力待ち
パケットを出力した時点で、そのFがFmaxを越え、
かつ、そのFが当該ラウンドの終了時点での最大値とな
る場合も考えられるが、このような場合には、そのFを
次のラウンドのFmaxとしてもよいが、次のラウンド
でSQ内にVCIの存在するVQのFのうちの最大値を
Fmaxとしてもよい。
Further, at the time when the last output waiting packet is output in a certain VQ, its F exceeds Fmax,
In addition, it is conceivable that the F becomes the maximum value at the end of the round. In such a case, the F may be set as the Fmax of the next round, but the VCI is included in the SQ in the next round. The maximum value of F of the VQ in which is present may be set to Fmax.

【0038】また、非常に長いパケット(すなわちパケ
ット長/重みを非常に大きくするパケット)の送出(特
に特定のVQで非常に長いパケットが連続する場合)に
よるバーストの増大を回避するために、隣接するラウン
ドでのFmaxの増分の最大値dmaxを決めておき、
Fの値がFmax+dmaxを越えるならば、Fの値を
Fmaxを当該ラウンドのFmax+dmaxとするな
どの処理を行ってもよい。このようにすれば、公平性は
多少弱まることがあるが、バースト性がより小さくなる
利点がある。
In order to avoid an increase in bursts due to transmission of a very long packet (that is, a packet having a very large packet length / weight) (especially when a very long packet continues at a specific VQ), it is necessary to use an adjacent packet. Determine the maximum value dmax of the increment of Fmax in the round to be performed,
If the value of F exceeds Fmax + dmax, processing such as changing the value of F from Fmax to Fmax + dmax of the round may be performed. In this case, the fairness may be slightly reduced, but there is an advantage that the burstiness is further reduced.

【0039】ここで、本発明を適用したパケット送出装
置の動作の一形態について、図2に例示したパケット送
出装置から送出されるパケットの送出順序の具体例を参
照しながら説明する。図2は、VQ[0]、VQ
[1]、VQ[2]の3つのVQに送出すべきパケット
が存在する場合の例である。図2の右のパケットから左
のパケットに向かって順に送出される。
Here, one mode of the operation of the packet transmitting apparatus to which the present invention is applied will be described with reference to a specific example of the transmission order of the packets transmitted from the packet transmitting apparatus illustrated in FIG. FIG. 2 shows VQ [0], VQ
This is an example in which there are packets to be transmitted to three VQs [1] and VQ [2]. The packets are transmitted in order from the right packet to the left packet in FIG.

【0040】ラウンドrのFmaxをFmax(r)で
表す。VQ[0]〜VQ[2]のそれぞれのFをF
(0)〜F(2)で表す。VQ[0]〜VQ[2]のそ
れぞれの重みをW(0)〜W(2)で表す。
The Fmax of the round r is represented by Fmax (r). F of each of VQ [0] to VQ [2] is F
(0) to F (2). The weights of VQ [0] to VQ [2] are represented by W (0) to W (2).

【0041】パケットpのパケット長をL(p)で表
す。この例ではラウンド0の開始時点のFmax(0)
およびF(0)〜F(2)の初期値を0とする。
The packet length of the packet p is represented by L (p). In this example, Fmax (0) at the start of round 0
And the initial values of F (0) to F (2) are set to 0.

【0042】また、各VQの重みW(0)〜W(2)は
適宜定められているものとする。すなわち、図2のパケ
ットを示す矩形の幅は、パケット長/重みに相当するも
のである。
Also, it is assumed that the weights W (0) to W (2) of each VQ are appropriately determined. That is, the width of the rectangle indicating the packet in FIG. 2 corresponds to the packet length / weight.

【0043】また、ここでは説明の便宜上、VQ
[0]、VQ[1]、VQ[2]の順番でパケット出力
がなされるものとする。さて、ラウンド0では、Fma
x(0)=F(0)=F(1)=F(2)=0で、どの
VQのFもFmax(0)を越えていないが、1つずつ
パケットを出力したところで、どのVQのFもFmax
(0)を越えることになる。すなわち、VQ[0]から
1つのパケットp00が出力され、VQ[1]から1つ
のパケットp10が出力され、VQ[2]から1つのパ
ケットp20が出力され、これでこのラウンド0でのパ
ケット送出は終了し、次のラウンド1に移行する。
Here, for convenience of explanation, VQ
It is assumed that packet output is performed in the order of [0], VQ [1], and VQ [2]. By the way, in round 0, Fma
x (0) = F (0) = F (1) = F (2) = 0, and F of any VQ does not exceed Fmax (0), but when packets are output one by one, F is also Fmax
(0) will be exceeded. That is, one packet p00 is output from VQ [0], one packet p10 is output from VQ [1], and one packet p20 is output from VQ [2]. Ends, and the process proceeds to the next round 1.

【0044】この時点での各VQのFの値は、それぞ
れ、F(0)=L(p00)/W(0)、F(1)=L
(p10)/W(1)、F(1)=L(p20)/W
(2)である。ここで、F(1)〜F(3)のうちで最
も大きい値を有するものは、F(0)であるので、ラウ
ンド1では、Fmax(1)の値は、ラウンド0の終了
時点におけるFの最大値であるF(0)の値になる。
At this point, the value of F of each VQ is F (0) = L (p00) / W (0) and F (1) = L
(P10) / W (1), F (1) = L (p20) / W
(2). Here, F (0) has the largest value among F (1) to F (3). Therefore, in Round 1, the value of Fmax (1) is the value of Fmax at the end of Round 0. Is the maximum value of F (0).

【0045】ラウンド1では、まず、VQ[0]からパ
ケットp01が出力される。すると、F(0)=L(p
00)/W(0)+L(p01)/W(0)がFmax
(1)を越えるので、これでラウンド1でのVQ[0]
からのパケット送出は終りとなる。同様に、VQ[1]
から1つのパケットp11が出力され、VQ[2]から
1つのパケットp21が出力されると、すべてのVQの
FはFmax(1)を越え、次のラウンド2へ移行す
る。
In round 1, first, packet p01 is output from VQ [0]. Then, F (0) = L (p
00) / W (0) + L (p01) / W (0) is Fmax
Since it exceeds (1), VQ [0] in round 1 is now
The transmission of the packet from is terminated. Similarly, VQ [1]
When one packet p11 is output from VQ and one packet p21 is output from VQ [2], the Fs of all VQs exceed Fmax (1) and shift to the next round 2.

【0046】ラウンド2のFmax(2)は、ラウンド
1の終了時点でFが最も大きいVQ[0]のFの値にな
る。ラウンド2においては、まず、VQ[0]からは1
つのパケットp02が出力される。Fmaxを与えるこ
ととなったVQではF=Fmaxであるので、1つだけ
のパケット出力となる。
Fmax (2) of round 2 becomes the value of F of VQ [0] where F is the largest at the end of round 1. In Round 2, first, VQ [0]
Two packets p02 are output. In the VQ to which Fmax is given, F = Fmax, so that only one packet is output.

【0047】次に、VQ[1]からパケットp12が出
力される。この場合、F(1)=L(p10)/W
(1)+L(p11)/W(1)+L(p12)/W
(1)が依然としてFmax(2)の値以下であるの
で、続けてVQ[1]からパケットp13が出力され
る。そして、この時点で、F(1)がFmax(2)を
越えるので、これでラウンド2でのVQ[1]からのパ
ケット送出は終りとなる。ここでは、最初に送出したp
12のパケット長が短かったためp13も送出すること
ができたことになる。
Next, packet p12 is output from VQ [1]. In this case, F (1) = L (p10) / W
(1) + L (p11) / W (1) + L (p12) / W
Since (1) is still equal to or smaller than the value of Fmax (2), the packet p13 is continuously output from VQ [1]. At this point, F (1) exceeds Fmax (2), and thus the packet transmission from VQ [1] in round 2 ends. Here, the first sent p
Since the packet length of No. 12 was short, p13 could also be transmitted.

【0048】そして、VQ[2]から1つのパケットp
22が出力されると、VQ[2]のFもFmax(2)
を越え、次のラウンド3へ移行する。ラウンド3のFm
ax(3)は、ラウンド2の終了時点でFが最も大きい
VQ[1]のFの値になる。
Then, one packet p from VQ [2]
When 22 is output, F of VQ [2] is also Fmax (2).
And moves to the next round 3. Round 3 Fm
ax (3) becomes the value of F of VQ [1] where F is the largest at the end of round 2.

【0049】以下、同様に、図2のようにして各VCか
らパケットが出力されていく。このように本発明は、実
際に送出されたパケット長に応じてFmaxの増加量を
調整するので、各VQからのパケット出力のバースト性
を可能な限り小さく抑える効果があることがわかる。
Thereafter, similarly, packets are output from each VC as shown in FIG. As described above, according to the present invention, the amount of increase in Fmax is adjusted according to the length of the packet actually transmitted, so that it is found that the burstiness of the packet output from each VQ is suppressed as much as possible.

【0050】例えば図2において、ラウンド2でVQ
[1]から出力されたパケットp13のパケット長が長
かったため、次のラウンドのFmax(3)とFmax
(2)の差は大きな値になっているが、ラウンド3で各
VQから送出されたパケット長が全て短かったため、次
のラウンド4では、max(4)とFmax(3)の差
は小さいことがわかる。すなわち、図2においては、長
いパケットが送出されたラウンドのFmaxと次のラウ
ンドのFmaxとの差だけが大きくなるり、バースト性
を最小限に抑えていることがわかる。
For example, in FIG.
Since the packet length of the packet p13 output from [1] is long, Fmax (3) and Fmax in the next round
Although the difference in (2) is a large value, the difference between max (4) and Fmax (3) in the next round 4 is small because the packet lengths transmitted from each VQ in round 3 were all short. I understand. That is, in FIG. 2, it can be seen that only the difference between the Fmax of the round in which a long packet is transmitted and the Fmax of the next round increases, and the burst property is minimized.

【0051】これに対して、従来のDRRを用いた場
合、例えば図2では最も長いパケット(p13)の長さ
に相当する量ずつ毎回固定的にFmaxが増加するよう
なパケット送出制御を行うので、短いパケットしか到着
していないときでもパケットがバースト的に出力されて
しまうことになる。
On the other hand, when the conventional DRR is used, for example, in FIG. 2, packet transmission control is performed such that Fmax is fixedly increased every time by an amount corresponding to the length of the longest packet (p13). Even when only short packets have arrived, packets are output in bursts.

【0052】また、公平性という観点では、図2を参照
しても分かる通り、各ラウンドで各VQのFの値のFm
axとの差は必ず1パケット以内であることがわかる。
すなわち、本発明のパケット送出装置は1パケット以内
の誤差で公平であるということが言える。
In addition, from the viewpoint of fairness, as can be seen from FIG. 2, the Fm of the F value of each VQ in each round.
It can be seen that the difference from ax is always within one packet.
In other words, it can be said that the packet transmission device of the present invention is fair with an error within one packet.

【0053】次に、各VQのFとFmaxの扱いに関し
て説明する。まず、各VQのFとFmaxの初期値につ
いては、すべてを0にしてもよいが、これに限定される
ものではなく、Fmaxの初期値を他の値に設定しても
よいし、また各VQのFをFmax以下の適当な値に設
定してもよい。
Next, the handling of F and Fmax of each VQ will be described. First, the initial values of F and Fmax of each VQ may all be set to 0, but the present invention is not limited to this, and the initial values of Fmax may be set to other values. F of VQ may be set to an appropriate value equal to or less than Fmax.

【0054】次に、あるVQのFがFmaxや他のFに
比べて非常に小さい値にとどまることがあった場合に、
そのままその小さいFの値を用いてそのVQからパケッ
トを送出させると、一時的に1つのVQから大なきバー
ストとしてパケットが出力がされることになってしま
う。そこで、このような場合には、例えば、Fmaxと
の差が小さくなるようにFを修正するのが好ましい。例
えば、空のVQにパケットが到着したときに、そのVQ
のFをそのときのFmaxと比較し、Fの方が小さけれ
ばFをFmaxに修正する方法が考えられる。
Next, when the F of a certain VQ is very small as compared with Fmax or another F,
If a packet is transmitted from the VQ using the small value of F as it is, a packet is temporarily output as a large burst from one VQ. Therefore, in such a case, for example, it is preferable to correct F so that the difference from Fmax is reduced. For example, when a packet arrives at an empty VQ, the VQ
Is compared with Fmax at that time, and if F is smaller, F can be corrected to Fmax.

【0055】次に、各VQのFやFmaxはパケット送
出とともに増大するが、各VQのFやFmaxの記憶の
ために割り当てられた記憶領域により表現できる最大値
にいずれかのFが達することが想定されないような場
合、例えば、該最大値にFが達する前に装置が初期化さ
れFとFmaxが初期値に戻るような場合には、各VQ
のFやFmaxはそのまま増大させても構わないが、そ
うでない場合には、各VQのFやFmaxが上記の最大
値を越えないように処理するのが好ましい。
Next, the F or Fmax of each VQ increases with the transmission of a packet, but any F reaches the maximum value that can be expressed by the storage area allocated for storing the F or Fmax of each VQ. In the case where it is not assumed, for example, when the device is initialized before F reaches the maximum value and F and Fmax return to the initial values, each VQ
F or Fmax may be increased as it is, but otherwise, it is preferable to perform processing so that F or Fmax of each VQ does not exceed the above-mentioned maximum value.

【0056】例えば、Fがその取り得る最大値を越える
ことになる場合には、最大値からの超過分をFに設定
し、かつ、超過フラグをonにして、超過フラグを考慮
してFmaxやFの計算を行うとともに、SQにVCI
が入っているVQのFの超過フラグがすべてonになっ
たならば、その超過フラグをすべてoffにする方法
(ただし、上記のようなFの値の修正も行うものとす
る)、あるラウンドの開始時点(もしくは終了時点)に
おいて、Fmaxがある一定の値を越えたならば、SQ
にVCIが入っているVQのFとFmaxのそれぞれか
ら同じ値を減じて処理する方法(ただし、上記のような
Fの値の修正も行うものとする)、あるラウンドの開始
時点(もしくは終了時点)において、すべてのVQのF
のうち0以外で最も小さい値(fminとする)を取る
ものを0にするように、すべてのVQのFとFmaxの
それぞれからfminを減ずる(ただし、下限を0とす
る)方法など、種々の方法が考えられる。
For example, if F exceeds the maximum value that can be taken, the excess from the maximum value is set to F, the excess flag is turned on, and Fmax and Fmax are set in consideration of the excess flag. Calculate F and VCI to SQ
If all the excess flags of the F of the VQ containing the “on” are turned on, a method of turning off all the excess flags (however, the value of F is also corrected as described above) If Fmax exceeds a certain value at the start time (or end time), SQ
A method in which the same value is subtracted from each of F and Fmax of the VQ containing the VCI (however, the value of F is also corrected as described above), the start time (or the end time) of a certain round ), The F of all VQs
Various methods such as a method of subtracting fmin from each of F and Fmax of all VQs (however, the lower limit is set to 0) such that the one that takes the smallest value (fmin) other than 0 is set to 0 There is a method.

【0057】なお、上記のFとFmaxのそれぞれから
同じ値を減じる操作は、例えば、各ラウンドにおいて、
SQからVCIをデキューする毎に、そのVQの更新後
のFの値からそのラウンドのFmaxを減じるようにす
れば簡単である。この場合、次のラウンドのFmaxは
減じた後のFの最大値となる。
The operation of subtracting the same value from each of F and Fmax is performed, for example, in each round.
It is easy to reduce the Fmax of the round from the updated F value of the VQ every time the VCI is dequeued from the SQ. In this case, Fmax of the next round becomes the maximum value of F after being reduced.

【0058】次に、本実施形態のパケット送出装置の具
体的な2つのアルゴリズムの例を説明する。本アルゴリ
ズムは、例えば、セレクタの一部として実装されるか、
あるいはセレクタに対する制御部として実装される。
Next, two specific examples of the algorithm of the packet transmitting apparatus according to this embodiment will be described. This algorithm may be implemented, for example, as part of a selector,
Alternatively, it is implemented as a control unit for the selector.

【0059】以下に、後に示すアルゴリズム中で使用す
る変数名とその意味をまとめておく。 vci : VQの識別子 F[vci] : 出力済みパケット量 Fmax : Fのしきい値。初期値は任意 Ftmp : Fmaxを決定するための変
数。初期値=0 Cnt : ラウンドの周期を計るカウン
タ。初期値=0 Weight[vci] : 重み。大きいほど大きな
帯域を獲得できる iWeight[vci] : 重みの逆数。小さいほ
ど大きな帯域を獲得できる pWeight[vci] : パケット数単位の重
み。pWmode以外のときは1 SQ_Len : SQのVCI数 PQ_Len[vci] : VQのパケット数 VQ_Len[vci] : VQのセル数 EoPi : 入力したセルがEnd of
Packetセル EoPo : 送出したセルがEnd of
Packetセル BoP[vci] : 次に到着するユーザセルはパケ
ットの先頭セル mode[vci] : vciのモード。vciのモ
ードには、例えば、次のCELL、CT、SFの各モー
ドがある CELL:セル単位スケジューリング CT:パケット単位スケジューリングでCut Thr
ough SF:パケット単位スケジューリングでStore a
ndForward pWmode : パケット数単位の重みを設定す
るモード。このモードでのみpWeightを1以上に
設定可能で、かつ、F,Fmax,Ftmp,Cnt,
iWeightを使用しない blockSQ_flag : SQがブロックしてい
るかどうかを示すフラグ blockSQ_start_time: SQがブロ
ックしはじめた時刻 blockVQ−flag[vci] : VQがブロ
ックしているかどうかを示すフラグ now : 現在時刻 time_th : ブロック時間の上限 まず、図3に、本パケット送出装置にパケットが到着し
たときのエンキュー動作のフローチャートの一例を示
す。
The variable names used in the algorithm described below and their meanings are summarized below. vci: identifier of VQ F [vci]: amount of output packets Fmax: threshold value of F The initial value is arbitrary. Ftmp: A variable for determining Fmax. Initial value = 0 Cnt: Counter for measuring the round period. Initial value = 0 Weight [vci]: Weight. IWeight [vci]: Reciprocal of weight. A smaller band allows a larger band to be acquired. PWeight [vci]: Weight in packet number units. SQ_Len: SQ VCI number PQ_Len [vci]: VQ packet number VQ_Len [vci]: VQ cell number EoPi: Input cell is End of
Packet cell EoPo: The transmitted cell is End of
Packet cell BoP [vci]: The next arriving user cell is the first cell of the packet mode [vci]: The mode of vci. The vci mode includes, for example, the following CELL, CT, and SF modes. CELL: Cell-based scheduling CT: Cut-thru in packet-based scheduling
out SF: Store a in packet-by-packet scheduling
ndForward pWmode: a mode for setting a weight in packet number units. Only in this mode, pWeight can be set to 1 or more, and F, Fmax, Ftmp, Cnt,
Block not using iWeight blockSQ_flag: Flag indicating whether SQ is blocking blockSQ_start_time: Time when SQ starts blocking blockVQ-flag [vci]: Flag indicating whether VQ is blocking now: current time: time First, FIG. 3 shows an example of a flowchart of an enqueue operation when a packet arrives at the present packet transmitting apparatus.

【0060】このフローチャートは到着パケットの廃棄
判定の結果、パケットを廃棄しないと判定した場合に実
行する。まず、適切なVQを選びそのVQへパケットを
エンキューする(ステップS11)。
This flowchart is executed when it is determined that the packet is not to be discarded as a result of the discard judgment of the arriving packet. First, an appropriate VQ is selected and a packet is enqueued to the VQ (step S11).

【0061】次に、パケット入力処理を行なう。まず、
そのVQがアイドルからアクティブに変化したかどうか
を判定する(ステップS12)。そのために、VQ内の
パケット数を示す変数PQ_Len[vci]が1未満
かどうか、つまり0かどうかを判定する。
Next, a packet input process is performed. First,
It is determined whether the VQ has changed from idle to active (step S12). Therefore, it is determined whether the variable PQ_Len [vci] indicating the number of packets in the VQ is less than 1, that is, 0.

【0062】そのVQがアイドルからアクティブに変化
したと判定された場合には、新しいF[vci]の値
を、以前のF[vci]の値と現在のFmaxのうちの
大きな方に設定する(ステップS13)。
If it is determined that the VQ has changed from idle to active, the new F [vci] value is set to the larger of the previous F [vci] value and the current Fmax ( Step S13).

【0063】VQがアイドルからアクティブに変化した
と判定された場合には、さらにSQへvciをエンキュ
ーし、SQ内のVCI数であるSQ_Lenをインクリ
メントする(ステップS14,S15)。
If it is determined that VQ has changed from idle to active, vci is enqueued to SQ and SQ_Len, which is the number of VCIs in SQ, is incremented (steps S14, S15).

【0064】最後に、PQ_Len[vci]をインク
リメントして(ステップS16)、エンキュー処理を終
了する。次に、図4に、本パケット送出装置からパケッ
トを送出するデキューのフローチャートの一例を示す。
Finally, PQ_Len [vci] is incremented (step S16), and the enqueue process ends. Next, FIG. 4 shows an example of a flowchart of a dequeue for transmitting a packet from the packet transmitting apparatus.

【0065】このフローチャートは、このSQで管理し
ているVQが少なくともひとつはアクティブのとき、つ
まりSQ_Lenが0より大きいときに実行する。ま
ず、ラウンドの処理を行なう。
This flowchart is executed when at least one VQ managed by the SQ is active, that is, when SQ_Len is greater than zero. First, a round process is performed.

【0066】カウンタCntの値が0かどうかをチェッ
クする(ステップS21)。もし0ならラウンドの終了
を意味し、それは同時に新たなラウンドの開始を意味す
る。新たなラウンドの開始のための処理は、具体的に
は、Fmaxに変数Ftmpの値を設定し、CntにS
Q_Lenの値を設定する(ステップS22)。SQ_
LenはSQ内のVCI数である。
It is checked whether the value of the counter Cnt is 0 (step S21). If 0, it means the end of the round, which also means the start of a new round. Specifically, the process for starting a new round is to set the value of the variable Ftmp in Fmax and set Snt in Cnt.
The value of Q_Len is set (step S22). SQ_
Len is the number of VCIs in the SQ.

【0067】次に、SQの先頭のVCI値をvciとす
ると、vciで示されるVQからパケットを出力する
(ステップS23)。パケットを出力すると、そのVQ
のFの値であるF[vci]に、(出力パケット長)/
Weight[vci]を加える(ステップS24)。
Weight[vci]はvciの重みであり、大きい
ほど大きな帯域を獲得できる。
Next, assuming that the VCI value at the head of the SQ is vci, a packet is output from the VQ indicated by vci (step S23). When a packet is output, its VQ
F [vci], which is the value of F, is (output packet length) /
Weight [vci] is added (step S24).
Weight [vci] is the weight of vci, and the larger the weight, the higher the bandwidth.

【0068】続いて、パケット出力処理を行なう。ま
ず、加算で更新されたF[vci]の値をFmaxと比
較する(ステップS25)。もしF[vci]がまだF
maxの値以下ならば、次も同じVQからパケットを送
出すればよいため、その後の処理は簡単で、単にPQ_
Len[vci]をデクリメントすればよい(ステップ
S31)。
Subsequently, a packet output process is performed. First, the value of F [vci] updated by the addition is compared with Fmax (step S25). If F [vci] is still F
If the value is equal to or less than the value of max, the packet may be transmitted from the same VQ next time, and the subsequent processing is simple.
What is necessary is just to decrement Len [vci] (step S31).

【0069】そうではなく、FmaxよりもF[vc
i]の方が大きくなっていれば次は違うVQからパケッ
トを出力する。このとき、SQの先頭のvciをSQか
らデキューし、またSQ_Lenをデクリメントし(ス
テップS26)、さらに、そのVQがまだアクティブ
(PQ_Len[vci]>1)ならば(ステップS2
7)、そのvciをSQの末尾へ再エンキューし、また
SQ_Lenをインクリメントする(ステップS2
8)。そして、Fの最大値を決定するための変数である
FtmpをF[vci]の値に更新し(ステップS2
9)、ラウンドの終了を判定するための変数Cntをデ
クリメントする(ステップS30)。最後に、PQ_L
en[vci]もデクリメントする(ステップS3
1)。
Rather, F [vc
If i] is larger, the next packet is output from a different VQ. At this time, the vci at the head of the SQ is dequeued from the SQ, and SQ_Len is decremented (step S26). If the VQ is still active (PQ_Len [vci]> 1) (step S2)
7), re-enqueue the vci to the end of the SQ, and increment SQ_Len (step S2)
8). Then, Ftmp, which is a variable for determining the maximum value of F, is updated to the value of F [vci] (step S2).
9) The variable Cnt for determining the end of the round is decremented (step S30). Finally, PQ_L
en [vci] is also decremented (step S3)
1).

【0070】以上が本パケット送出装置の動作アルゴリ
ズムの一例である。このように、本実施形態では、送出
すべきパケットの属するVQの選択が単純なSQのエン
キューとデキュー操作で行なわれるので、扱うVQの数
によらず処理量が一定である。さらに、バースト性がな
るべく低くなるようにFmaxを動的に決定するため、
従来知られているDRR方式に比べてネットワークの廃
棄率特性がよくなることが期待できる。
The above is an example of the operation algorithm of the present packet transmitting apparatus. As described above, in the present embodiment, the selection of the VQ to which the packet to be transmitted belongs is performed by a simple SQ enqueue and dequeue operation, so that the processing amount is constant regardless of the number of VQs handled. Furthermore, in order to dynamically determine Fmax so that the burst property is as low as possible,
It can be expected that the discard rate characteristics of the network will be better than in the conventionally known DRR method.

【0071】次に、本発明をATM通信方式に応用した
場合の例を示す。エンキューのフローチャートの一例を
図5に、デキューのフローチャートの一例を図6と図7
に、そしてタイムアウト判定処理のフローチャートの一
例を図8にそれぞれ示す。
Next, an example in which the present invention is applied to an ATM communication system will be described. FIG. 5 shows an example of an enqueue flowchart, and FIGS. 6 and 7 show an example of a dequeue flowchart.
FIG. 8 shows an example of a flowchart of the timeout determination process.

【0072】ATM通信方式では、パケットをセルとい
う固定長短パケットに分割して転送する。パケットの分
割には、通常AAL5と呼ばれるサブレイヤ機能を用い
る。AAL5では、ATMセルのヘッダにパケットの分
割情報を入れる。具体的には、ユーザセルのヘッダに、
パケットの最後の部分を転送するセルかどうかを示す1
ビットの情報が書き込まれる。ここでは、パケットの最
後の部分を転送するセルをEoP(End of Pa
cket)セルと呼ぶ。また、最初の部分を転送するセ
ルをBoP(Begin of Packet)セルと
呼ぶ。
In the ATM communication system, a packet is divided into fixed-length and short packets called cells and transferred. A packet is divided using a sublayer function usually called AAL5. In AAL5, packet division information is put in the header of the ATM cell. Specifically, in the header of the user cell,
1 indicating whether this is the cell that transfers the last part of the packet
Bit information is written. Here, the cell for transferring the last part of the packet is referred to as EoP (End of Pa).
a) cell. Also, the cell that transfers the first part is called a BoP (Begin of Packet) cell.

【0073】ATM通信方式のパケット送出装置は、通
常はセルを単位としたスケジューリングを行なう。つま
り、セルが分割されたパケットのどの部分を転送するの
かに関わらず送出のスケジューリングを行なう。しか
し、場合によっては、パケットを単位としたスケジュー
リングが必要とされることがある。例えば、VCマージ
と呼ばれる機能が必要な場合である。VCマージは、V
Cのマルチポイント・ポイント接続またはマルチポイン
ト・マルチポイント接続を実現する方法の1つである。
この接続形態では、複数の入力リンクから到着したセル
が出力リンクのそれぞれへマージされる。AAL5で
は、本質的に1つのパケットを転送する複数のセルが、
別のパケットを転送する複数のセルと互いにインターリ
ーブして合流すると、元のパケットに分離できないとい
う問題点がある。マージを行なうATMスイッチで、各
入力リンクからのセルを別々のVQでバッファリング
し、パケットを単位として出力リンクへ送出すること
で、インターリーブを防ぐことができ、この問題を克服
できる。
The packet transmission device of the ATM communication system normally performs scheduling in units of cells. In other words, transmission scheduling is performed regardless of which part of the packet into which the cell is divided is transferred. However, in some cases, scheduling in units of packets may be required. For example, there is a case where a function called VC merge is required. VC merge is V
C is one of the methods for realizing a multipoint point connection or a multipoint multipoint connection.
In this topology, cells arriving from multiple input links are merged into each of the output links. In AAL5, a plurality of cells that essentially transfer one packet are:
When a plurality of cells that transfer another packet are interleaved and joined together, there is a problem that the original packet cannot be separated. The ATM switch that performs merging buffers the cells from each input link with separate VQs and transmits the packets in units of packets to the output link, thereby preventing interleaving and overcoming this problem.

【0074】以下に説明するパケット送出装置は、パケ
ットを単位としてスケジューリングを行なうことを可能
とする。パケットを単位としたスケジューリングには2
通りの方式がある。Cut Through(CT)モ
ードとStore andForward(SF)モー
ドである。
The packet transmitting apparatus described below enables scheduling on a packet basis. 2 for packet-by-packet scheduling
There are different methods. Cut Through (CT) mode and Store and Forward (SF) mode.

【0075】CTモードは、BoPセルが到着すると直
ちにそのパケットを出力リンクへ転送することができる
モードである。ただし、そのパケットのEoPセルが到
着するまで同じVCにマージされる他の入力リンクから
のセルを出力リンクへ転送することができない。
The CT mode is a mode in which a packet can be transferred to an output link as soon as a BoP cell arrives. However, cells from other input links that are merged into the same VC cannot be transferred to the output link until the EoP cell of the packet arrives.

【0076】その一方で、SFモードは、EoPセルが
到着するまでBoPセルの送出を開始しないモードであ
る。CTモードに比べてパケットの転送の遅延が大きく
なるが、送出を開始する1つのパケットを構成するセル
をEoPセルまで連続して出力することができ、他の入
力リンクから到着したセルの転送を妨げることが少ない
という利点がある。
On the other hand, the SF mode is a mode in which transmission of a BoP cell is not started until an EoP cell arrives. Although the packet transfer delay is larger than in the CT mode, the cells constituting one packet for starting transmission can be continuously output up to the EoP cell, and the transfer of cells arriving from another input link can be performed. There is an advantage that there is little hindrance.

【0077】CTモードでは、出力中のパケットのEo
Pセルが永遠に到着しない場合には、他の入力リンクか
らのパケットを永遠にブロックすることになってしまう
ため、タイマを用いてブロックしている時間の上限を決
め、それ以上はブロックしないようにする機構が必要で
ある。
In the CT mode, Eo of the packet being output is
If the PCell does not arrive forever, packets from other input links will be blocked forever. Therefore, the upper limit of the blocking time is determined using a timer, and the block is not blocked any longer. A mechanism is required.

【0078】まず、図5に、本パケット送出装置にセル
が到着したときのエンキュー動作のアルゴリズムの一例
を示す。このアルゴリズムは、到着セルの廃棄判定の結
果、パケットを廃棄しないと判定した場合に実行する。
First, FIG. 5 shows an example of an algorithm of an enqueue operation when a cell arrives at the present packet transmitting apparatus. This algorithm is executed when it is determined that the packet is not to be discarded as a result of the discard determination of the arrival cell.

【0079】まず、適切なVQを選びそのVQへセルを
エンキューし、VQに蓄積しているセル数を数える変数
VQ_Len[vci]をインクリメントする(ステッ
プS41)。
First, an appropriate VQ is selected, a cell is enqueued to the VQ, and a variable VQ_Len [vci] for counting the number of cells stored in the VQ is incremented (step S41).

【0080】続いて、ブロッキングの処理を行なう。ま
ず、そのVQが他のVQをブロックしていないかどうか
をblockVQ_flag[vci]で確認する(ス
テップS42)。もしブロックしているなら、ブロック
を解除するために、blockVQ_flag[vc
i]とblockSQ_flagをfalse(偽)に
する(ステップS43)。
Subsequently, a blocking process is performed. First, whether or not the VQ is blocking another VQ is confirmed by blockVQ_flag [vci] (step S42). If blocking, blockVQ_flag [vc] to unblock
i] and blockSQ_flag are set to false (step S43).

【0081】そして、そのVQのモードと到着したセル
から、パケットの入力処理を行なうかどうかを判定する
(ステップS44)。VQのモードには、セルを単位に
スケジューリングを行なうCELLモード、パケットを
単位にCut Throughのスケジューリングを行
なうCTモード、そしてパケットを単位にStorea
nd Forwardのスケジューリングを行なうSF
モードがある。セルについては、パケットの先頭のセル
であるBoPセルかどうか、パケットの末尾のセルであ
るEoPセルかどうかを判定する必要がある。CELL
モードの場合には、1セル到着する毎にパケットが到着
したものとみなす。CTモードの場合には、BoPセル
が到着した場合にパケットが到着したものとみなす。そ
して、SFモードの場合には、EoPセルが到着した場
合にパケットが到着したものとみなす。
Then, based on the VQ mode and the arriving cell, it is determined whether or not to perform the packet input process (step S44). The VQ mode includes a CELL mode in which scheduling is performed in units of cells, a CT mode in which scheduling of Cut Through is performed in units of packets, and a Store mode in which scheduling is performed in units of packets.
SF for scheduling nd Forward
There is a mode. It is necessary to determine whether the cell is a BoP cell, which is the head cell of the packet, or whether it is an EoP cell, which is the cell at the end of the packet. CELL
In the mode, each time one cell arrives, it is regarded that a packet has arrived. In the case of the CT mode, when a BoP cell arrives, it is regarded that a packet has arrived. Then, in the SF mode, when the EoP cell arrives, it is regarded that the packet has arrived.

【0082】パケットが到着したとみなされる場合に
は、パケット入力処理を行なう。このパケット入力処理
はpWeight[vci]が1の場合は図3と同じで
ある。すなわち、まず、そのVQがアイドルからアクテ
ィブに変化したかどうかを判定する(ステップS4
5)。そのために、VQ内のパケット数を示す変数PQ
_Len[vci]が1未満かどうか、つまり0かどう
かを判定する。
When it is determined that a packet has arrived, a packet input process is performed. This packet input process is the same as in FIG. 3 when pWeight [vci] is 1. That is, first, it is determined whether or not the VQ has changed from idle to active (step S4).
5). Therefore, a variable PQ indicating the number of packets in the VQ
It is determined whether _Len [vci] is less than 1, that is, 0.

【0083】そのVQがアイドルからアクティブに変化
したと判定された場合には、新しいF[vci]の値
を、以前のF[vci]の値と現在のFmaxのうちの
大きな方に設定する(ステップS46)。
If it is determined that the VQ has changed from idle to active, the new F [vci] value is set to the larger of the previous F [vci] value and the current Fmax ( Step S46).

【0084】VQがアイドルからアクティブに変化した
と判定された場合には、さらにSQへvciをエンキュ
ーし、SQ内のVCI数であるSQ_Lenをインクリ
メントする(ステップS47,S48)。
When it is determined that VQ has changed from idle to active, vci is enqueued to SQ, and SQ_Len, which is the number of VCIs in SQ, is incremented (steps S47, S48).

【0085】また、いずれの場合にも、PQ_Len
[vci]をインクリメントする(ステップS49)。
そして、エンキューの最後に、もし到着セルがEoPセ
ルであったら、次に到着するユーザセルをBoPセルと
みなすようにするための、VQ毎のフラグBoP[vc
i]を設定する(ステップS50)。
In each case, PQ_Len
[Vci] is incremented (step S49).
Then, at the end of the enqueue, if the arriving cell is an EoP cell, a flag BoP [vc] for each VQ to make the next arriving user cell a BoP cell.
i] is set (step S50).

【0086】次に、図6および図7は、本発明をATM
通信に適用した場合の本パケット送出装置からパケット
を送出するデキューのフローチャートの一例である。図
7は、図6に後続する部分である。
Next, FIG. 6 and FIG.
9 is an example of a flowchart of a dequeue for transmitting a packet from the present packet transmitting device when applied to communication. FIG. 7 is a portion subsequent to FIG.

【0087】このSQで管理しているVQが少なくとも
1つはアクティブである場合、すなわちSQ_Lenが
0より大きく、かつ、blockSQ_flagがfa
lseである場合に、このフローチャートを実行する。
When at least one VQ managed by this SQ is active, that is, SQ_Len is greater than 0 and blockSQ_flag is fa
If it is 1se, this flowchart is executed.

【0088】まず、ラウンドの処理を行なう。この処理
は、図4と同じである。すなわち、カウンタCntの値
が0かどうかをチェックする(ステップS61)。
First, a round process is performed. This process is the same as in FIG. That is, it is checked whether the value of the counter Cnt is 0 (step S61).

【0089】もし0ならラウンドの終了を意味し、それ
は同時に新たなラウンドの開始を意味する。新たなラウ
ンドの開始のための処理は、具体的には、Fmaxに変
数Ftmpの値を設定し、CntにSQ_Lenの値を
設定する(ステップS62)。SQ_LenはSQ内の
VCI数である。
If 0, it means the end of the round, which also means the start of a new round. In the process for starting a new round, specifically, the value of the variable Ftmp is set to Fmax, and the value of SQ_Len is set to Cnt (step S62). SQ_Len is the number of VCIs in the SQ.

【0090】次に、SQの先頭のvciをリードする
(ステップS63)。このステップではSQの先頭をリ
ードするだけでデキューはしない。続いて、タイムアウ
トに関する処理を行なう。
Next, the head vci of the SQ is read (step S63). In this step, only the head of the SQ is read, and no dequeue is performed. Subsequently, a process related to a timeout is performed.

【0091】本実施形態では、タイムアウトしているこ
とをVQ_Len[vci]が0のときにデキュー処理
が行なわれていることで判定している(ステップS6
4)。もしタイムアウトしていると判定された場合に
は、次の処理を行う(ステップS65)。そのVQから
ダミーのEoPセルを送出する。そして、blockV
Q_flag[vci]をfalseにして、ブロック
が解除された設定にする。また、BoP[vci]をt
rue(真)にする。これは、次に到着するセルは今送
出したダミーのEoPセルに続くBoPセルとして扱う
べきだからである。また、今ダミーのEoPセルを送出
したためEoPoをtrueにする。
In the present embodiment, it is determined that a timeout has occurred by performing dequeue processing when VQ_Len [vci] is 0 (step S6).
4). If it is determined that a timeout has occurred, the following processing is performed (step S65). A dummy EoP cell is transmitted from the VQ. And blockV
Q_flag [vci] is set to false to set the block to be released. Also, BoP [vci] is set to t
ru (true). This is because the next arriving cell should be treated as a BoP cell following the dummy EoP cell just transmitted. Also, since a dummy EoP cell has been transmitted, EoPo is set to true.

【0092】もしブロックしていないと判定された場合
には、次の処理を行う(ステップS66)。SQの先頭
のvciで示されるVQからセルを出力する。VQ内の
セル数を示すVQ_Len[vci]をデクリメント
し、出力したセルがEoPセルであったかどうかによっ
て、変数EoPoを設定する。
If it is determined that there is no block, the following processing is performed (step S66). A cell is output from VQ indicated by vci at the head of SQ. VQ_Len [vci] indicating the number of cells in the VQ is decremented, and a variable EoPo is set depending on whether or not the output cell is an EoP cell.

【0093】いずれの場合にも、セルを送出すると、そ
のVQのFの値を更新する(ステップS67)。図4と
同じ計算式でもよいが、ここではATM通信ではセル長
が一定であることを利用し、また重みの逆数を計算に使
用して、1セル出力する度にF[vci]にiWeig
htを加算する例を示した。
In any case, when the cell is transmitted, the value of F of the VQ is updated (step S67). Although the same formula as that of FIG. 4 may be used, here, the fact that the cell length is constant in the ATM communication is used, and the reciprocal of the weight is used for the calculation.
ht is added.

【0094】図6の処理が終わると、図7の処理へ進
む。図7では、まず、パケット出力処理をするかどうか
を決定する。そのvciがCELLモードの場合か、ま
たは、CTモードかSFモードの場合で送出したセルが
EoPセルであった場合にはパケット出力処理を行なう
(ステップS68)。
When the processing in FIG. 6 ends, the process proceeds to the processing in FIG. In FIG. 7, first, it is determined whether or not to perform the packet output process. If the vci is in the CELL mode, or if the cell transmitted in the CT mode or the SF mode is an EoP cell, a packet output process is performed (step S68).

【0095】その内容は、pWeight[vci]を
1とすれば図4で説明した通りである。すなわち、ま
ず、pWmodeでなく、かつ、加算で更新されたF
[vci]がまだFmaxの値以下であるならば(ステ
ップS69)、次も同じVQからパケットを送出すれば
よいため、PQ_Len[vci]をデクリメントして
(ステップS31)、ここでの処理は終わりとなる。
The contents are the same as those described with reference to FIG. 4 if pWeight [vci] is set to 1. That is, first, FWmode that is not pWmode and updated by addition
If [vci] is still equal to or smaller than the value of Fmax (step S69), PQ_Len [vci] is decremented (step S31) because a packet can be transmitted from the same VQ next time, and the processing here ends. Becomes

【0096】そうではなく、FmaxよりもF[vc
i]の方が大きくなってるか、または、pWmodeで
あれば、次は違うVQからパケットを出力する。このと
き、SQの先頭のvciをSQからデキューし、またS
Q_Lenをデクリメントし(ステップS70)、さら
に、そのVQがまだアクティブ(PQ_Len[vc
i]>pWeight[vci])ならば(ステップS
71)、そのvciをSQの末尾へ再エンキューし、ま
たSQ_Lenをインクリメントする(ステップS7
2)。そして、Fの最大値を決定するための変数である
FtmpをF[vci]の値に更新し(ステップS7
3)、ラウンドの終了を判定するための変数Cntをデ
クリメントする(ステップS74)。最後に、PQ_L
en[vci]もデクリメントし(ステップS75)、
ここでの処理は終わりとなる。
[0096] Instead, F [vc
If i] is larger or pWmode, then a packet is output from a different VQ. At this time, the head vci of the SQ is dequeued from the SQ,
Q_Len is decremented (step S70), and the VQ is still active (PQ_Len [vc)
i]> pWeight [vci]) (step S
71), the vci is re-enqueued to the end of the SQ, and SQ_Len is incremented (step S7)
2). Then, Ftmp, which is a variable for determining the maximum value of F, is updated to the value of F [vci] (step S7).
3) The variable Cnt for determining the end of the round is decremented (step S74). Finally, PQ_L
en [vci] is also decremented (step S75),
The process here ends.

【0097】その後、ブロッキング検出処理を行なう。
図7では、CTモードでPQ_Len[vci]が1、
つまりこのVQに送出すべきパケットが存在するとき
に、VQ_Len[vci]が0、つまりそのVQの送
出可能セル数が0であったら、ブロッキングが発生した
と判断する(ステップS76)。
Thereafter, a blocking detection process is performed.
In FIG. 7, PQ_Len [vci] is 1 in the CT mode,
That is, when there is a packet to be transmitted to this VQ, if VQ_Len [vci] is 0, that is, if the number of transmittable cells of the VQ is 0, it is determined that blocking has occurred (step S76).

【0098】ブロッキングが発生したと判断されたなら
ば、SQがブロッキングしているかどうかのフラグbl
ockSQ_flagと、VQがブロッキングしている
かどうかのフラグblockVQ_flagの両方をt
rueにし、blockSQ_start_timeを
現在時刻nowにする(ステップS76)。
If it is determined that blocking has occurred, a flag bl indicating whether the SQ is blocking
ockSQ_flag and a flag blockVQ_flag indicating whether or not VQ is blocking
true and blockSQ_start_time is set to the current time now (step S76).

【0099】blockSQ_start_time
は、ブロッキングの始まった時刻であり、このフローチ
ャートのようにブロッキングが始まったときに値now
を設定する方法でもよいが、別の方法としてBoPセル
を出力したら値nowを設定する方法でもよい。
BlockSQ_start_time
Is the time when the blocking started, and the value now when the blocking started as shown in this flowchart.
May be set, or as another method, a value now may be set when a BoP cell is output.

【0100】以上、デキュー処理について説明した。次
に、図8に、タイムアウト判定処理のフローチャートの
一例を示す。この処理は、タイムアウト時間の精度に応
じて適切な頻度で実行すればよく、これまでに説明した
図5のエンキュー処理や、図6および図7のデキュー処
理よりも実行回数を少なくしてよい。
The dequeue processing has been described above. Next, FIG. 8 shows an example of a flowchart of the timeout determination process. This process may be executed at an appropriate frequency in accordance with the accuracy of the timeout time, and may be executed fewer times than the enqueue process of FIG. 5 and the dequeue processes of FIGS. 6 and 7 described above.

【0101】処理の内容は、まず、blockSQ_f
lagをみてSQが現在ブロックしているかどうかを検
査し、もしそうなら、blockSQ_start_t
imeと現在時刻の差を計算してしきい値time_t
hよりも大きくなっているかどうかを判定する(ステッ
プS81)。
The contents of the processing are as follows: blockSQ_f
Check if the SQ is currently blocking by looking at the lag, and if so, blockSQ_start_t
The difference between the current time and the current time is calculated, and the threshold time_t is calculated.
It is determined whether or not h is larger than h (step S81).

【0102】もし、タイムアウトしているなら、ダミー
のEoPセルを送出するためblockSQ_flag
をfalseにしてそのSQに送出すべきセルが待って
いるかのような設定をする(ステップS82)。
If a timeout has occurred, blockSQ_flag is sent to transmit a dummy EoP cell.
Is set to false, and a setting is made as if a cell to be transmitted to the SQ is waiting (step S82).

【0103】図5、図7のフローチャートで使用するす
るpWeightは、パケット数単位の重みであり、Q
LWFQ(Y.Ohba:“QLWFQ:A Queu
eLenght Based Weightde Fa
ir QueueingAlgorithm in A
TM Networks”,Infocom‘97.)
と呼ばれるスケジューラで紹介されているセルの重み付
きスケジューリングの手法を実施するときに、1以上の
値を設定することがある。このQLWFQを実現する場
合には、図7にあるpWmodeをtrueにセットす
ればよい。このような設定でもCTモードやSFモード
のパケット単位のスケジューリング機能を実現すること
ができる。
PWeight used in the flowcharts of FIGS. 5 and 7 is a weight in units of the number of packets.
LWFQ (Y. Ohba: “QLWFQ: A Queu
eLength Based Weightde Fa
ir QueueingAlgorithm in A
TM Networks ", Infocom '97.)
When implementing a method of weighted scheduling of cells introduced by a scheduler called, a value of 1 or more may be set. In order to realize this QLWFQ, pWmode shown in FIG. 7 may be set to true. Even in such a setting, a scheduling function for each packet in the CT mode or the SF mode can be realized.

【0104】なお、図5〜図8はpWmodeを考慮し
たフローチャートになっているが、もちろん、pWmo
deを使用しない場合には、図5〜図8をpWmode
を考慮しないフローチャートに修正してもよい。
Although FIGS. 5 to 8 are flowcharts in consideration of pWmode, it is needless to say that pWmode is used.
When de is not used, FIGS. 5 to 8 show pWmode
May be modified to a flowchart that does not take into account.

【0105】なお、以上の各機能は、ソフトウェアとし
ても実現可能である。また、本実施形態は、コンピュー
タに所定の手順を実行させるための(あるいはコンピュ
ータを所定の手段として機能させるための、あるいはコ
ンピュータに所定の機能を実現させるための)プログラ
ムを記録したコンピュータ読取り可能な記録媒体として
実施することもできる。本発明は、上述した実施の形態
に限定されるものではなく、その技術的範囲において種
々変形して実施することができる。
The above functions can be realized also as software. Further, the present embodiment is a computer-readable computer that records a program for causing a computer to execute a predetermined procedure (or for causing the computer to function as predetermined means, or for causing the computer to realize a predetermined function). It can also be implemented as a recording medium. The present invention is not limited to the above-described embodiment, and can be implemented with various modifications within the technical scope.

【0106】[0106]

【発明の効果】本発明によれば、送出するパケットの選
択がフロー数に依存せず容易に可能であり、かつ、その
時々で実際に送出しているパケット量と重みを用いて、
各フローが1ラウンドに送出できるパケット量を動的に
決定するため、各フローのパケット送出を必要最小限の
バーストに抑えることができる。
According to the present invention, it is possible to easily select a packet to be transmitted irrespective of the number of flows, and to use the amount and weight of packets actually transmitted at each time.
Since the amount of packets that each flow can transmit in one round is dynamically determined, the packet transmission of each flow can be suppressed to the minimum necessary burst.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施形態に係るパケット送出装置の
構成例を示す図
FIG. 1 is a diagram illustrating a configuration example of a packet transmission device according to an embodiment of the present invention.

【図2】同実施形態に係るパケット送出装置から送出さ
れるパケットの送出順序を説明するための図
FIG. 2 is an exemplary view for explaining a transmission order of packets transmitted from the packet transmission device according to the embodiment;

【図3】エンキュー動作の一例を示すフローチャートFIG. 3 is a flowchart illustrating an example of an enqueue operation;

【図4】デキュー動作の一例を示すフローチャートFIG. 4 is a flowchart illustrating an example of a dequeue operation;

【図5】ATM通信方式におけるエンキュー動作の一例
を示すフローチャート
FIG. 5 is a flowchart illustrating an example of an enqueue operation in the ATM communication system;

【図6】ATM通信方式におけるデキュー動作の一例を
示すフローチャート
FIG. 6 is a flowchart illustrating an example of a dequeue operation in the ATM communication system;

【図7】ATM通信方式におけるデキュー動作の一例を
示すフローチャート
FIG. 7 is a flowchart showing an example of a dequeue operation in the ATM communication system;

【図8】ATM通信方式におけるタイムアウト判定処理
の一例を示すフローチャート
FIG. 8 is a flowchart illustrating an example of a timeout determination process in the ATM communication system;

【符号の説明】[Explanation of symbols]

2…グループ毎パケットキュー 4…識別子リスト 6…セレクタ 8…リスト管理部 2 ... packet queue for each group 4 ... identifier list 6 ... selector 8 ... list management unit

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】送出すべきパケットが存在するグループの
識別子のリストに基づいてパケットを送出するパケット
送出装置であって、 リストに基づくパケット送出の各ラウンドにおいて、各
々のグループ毎の送出パケット量の重みを考慮した累積
値が、当該ラウンドでのしきい値を越えるまで、各々の
グループからパケットを送出する手段と、 先行するラウンドの終了時点における各グループの累積
値のうちの最大値を後続するラウンドでのしきい値とし
て設定する手段とを備えたことを特徴とするパケット送
出装置。
1. A packet transmitting apparatus for transmitting packets based on a list of identifiers of groups in which packets to be transmitted are present, wherein in each round of packet transmission based on the list, the amount of packets transmitted for each group is determined. Means for transmitting packets from each group until the cumulative value taking into account the weight exceeds the threshold value in the corresponding round, and the maximum value of the cumulative value of each group at the end of the preceding round Means for setting a threshold value in a round.
【請求項2】前記送出する手段は、1つのパケットを送
出するごとに、該パケットの属するグループについて予
め定められた重みで該パケットのパケット長を割った値
を、それまでの該グループの累積値に加算して、新たな
累積値を得るものであることを特徴とする請求項1に記
載のパケット送出装置。
2. The transmitting means, each time one packet is transmitted, calculates a value obtained by dividing a packet length of the packet by a predetermined weight for a group to which the packet belongs, and accumulating the value of the packet up to that time. 2. The packet transmitting apparatus according to claim 1, wherein a new cumulative value is obtained by adding to the value.
【請求項3】前記送出する手段は、 1つのパケットを送出するごとに、該パケットの属する
グループの累積値を求め、 求められた累積値が依然として当該ラウンドでのしきい
値以下であり、かつ、該グループに依然として送出待ち
のパケットが存在する場合には、続けて該グループから
1つのパケットを送出するものであることを特徴とする
請求項1または2に記載のパケット送出装置。
3. The transmitting means calculates a cumulative value of a group to which the packet belongs each time one packet is transmitted, and the calculated cumulative value is still equal to or less than a threshold value in the round, and 3. The packet transmitting apparatus according to claim 1, wherein, when packets to be transmitted still exist in the group, one packet is continuously transmitted from the group.
【請求項4】新たに送出すべきパケットが発生し前記リ
ストに前記識別子が入力されたグループの累積値を、そ
のラウンドでのしきい値または該しきい値より小さい所
定の値に設定する手段をさらに備えたことを特徴とする
請求項1ないし3のいずれか1項に記載のパケット送出
装置。
4. A means for setting a cumulative value of a group in which a packet to be newly transmitted is generated and whose identifier is input to the list to a threshold value in the round or a predetermined value smaller than the threshold value. The packet transmitting apparatus according to claim 1, further comprising:
【請求項5】所定のタイミングで前記累積値および前記
しきい値をそれらの関係を保ってより小さい値に変換す
る手段をさらに備えたことを特徴とする請求項1ないし
4のいずれか1項に記載のパケット送出装置。
5. The apparatus according to claim 1, further comprising means for converting said accumulated value and said threshold value to a smaller value at a predetermined timing while maintaining their relationship. 3. The packet transmitting device according to 1.
【請求項6】1つのパケットが序列を持つ複数のセルで
構成される場合に、該パケットを構成する最後のセルが
到着した時点で、該パケットが到着したものとして扱う
ための手段をさらに備えたことを特徴とする請求項1に
記載のパケット送出装置。
6. When one packet is composed of a plurality of cells having an order, when the last cell constituting the packet arrives, the apparatus further comprises means for treating the packet as having arrived. The packet transmitting apparatus according to claim 1, wherein:
【請求項7】1つのパケットが序列を持つ複数のセルで
構成される場合に、予め定められたグループに属するパ
ケットを構成する最初のセルが到着した時点で、該パケ
ットが到着したものとして扱うための手段と、 前記最初のセルが到着したパケットを構成する最後のセ
ルを送出するまで、予め定められた他のグループに属す
るパケットを送出させないための制御を行う手段とをさ
らに備えたことを特徴とする請求項1に記載のパケット
送出装置。
7. When one packet is composed of a plurality of cells having an order, when the first cell constituting a packet belonging to a predetermined group arrives, the packet is treated as having arrived. Means for controlling transmission of packets belonging to another predetermined group until the first cell transmits the last cell constituting the arriving packet. The packet transmission device according to claim 1, wherein
【請求項8】入力されたパケットをグループ毎に蓄積す
る手段と、 送出すべきパケットが存在するグループの識別子のリス
トを管理する手段と、前記リストに基づいて、パケット
送出すべきグループを1つずつ繰り返し選択する手段
と、 選択されたグループについて、1つパケットを送出する
ごとに、該グループについて予め定められた重みで該パ
ケットのパケット長を割った値をそれまでの該グループ
の累積値に加算して新たな累積値を求め、求められた新
たな累積値が依然として当該時点でのしきい値以下であ
る場合は、続けて該グループから1つのパケットを送出
する処理を繰り返す手段と、 この手段による処理が、前記リスト内に存在するすべて
の識別子に対して一通り実行された場合に、当該時点に
おける各グループの累積値のうちの最大値を新たなしき
い値として設定する手段とを備えたことを特徴とするパ
ケット送出装置。
8. A means for storing input packets for each group, a means for managing a list of identifiers of groups in which packets to be transmitted exist, and one group to be transmitted based on the list. Means for repeatedly selecting each time, and for each packet transmitted for the selected group, a value obtained by dividing the packet length of the packet by a predetermined weight for the group is added to the accumulated value of the group up to that time. Adding a new accumulated value to obtain a new accumulated value, and if the obtained new accumulated value is still equal to or smaller than the threshold value at the time, repeating a process of continuously transmitting one packet from the group; When the processing by the means is executed once for all the identifiers present in the list, the cumulative value of each group at that time is calculated. Packet transmitting apparatus characterized by comprising a means for setting the Chino maximum value as a new threshold.
【請求項9】送出すべきパケットが存在するグループの
識別子のリストに基づいてパケットを送出するパケット
送出装置におけるパケット送出方法であって、 リストに基づくパケット送出の各ラウンドにおいて、各
々のグループ毎の送出パケット量の重みを考慮した累積
値が、当該ラウンドでのしきい値を越えるまで、各々の
グループからパケットを送出し、 各ラウンドの終了時点における各グループの累積値のう
ちの最大値を次のラウンドでのしきい値とすることを特
徴とするパケット送出方法。
9. A packet sending method in a packet sending apparatus for sending packets based on a list of identifiers of groups in which packets to be sent are present, wherein each round of packet sending based on the list includes Until the cumulative value considering the weight of the transmitted packet amount exceeds the threshold value in the round, packets are transmitted from each group, and the maximum value among the cumulative values of each group at the end of each round is A packet sending method characterized by using a threshold value in a round.
【請求項10】各ラウンド毎に、送出すべきパケットが
存在するグループの識別子のリストに基づいてパケット
を送出するパケット送出装置におけるパケット送出方法
であって、 リストに基づいて選択された1つのグループについて、
1つパケットを送出するごとに、該グループについて予
め定められた重みで該パケットのパケット長を割った値
をそれまでの該グループの累積値に加算して新たな累積
値を求め、求められた新たな累積値が依然として当該ラ
ウンドでのしきい値以下である場合は、続けて該グルー
プから1つのパケットを送出し、求められた累積値が当
該ラウンドでのしきい値を越えた場合には、次のグルー
プをリストに基づいて選択する処理を、前記リスト内に
存在するすべての識別子に対して実行するまで繰り返
し、 このラウンドの終了時点における各グループの累積値の
うちの最大値を次のラウンドでのしきい値とすることを
特徴とするパケット送出方法。
10. A packet transmitting method in a packet transmitting apparatus for transmitting packets based on a list of identifiers of groups to which packets to be transmitted exist in each round, wherein one group selected based on the list is provided. about,
Each time one packet is transmitted, a value obtained by dividing the packet length of the packet by a predetermined weight for the group is added to the cumulative value of the group so far to obtain a new cumulative value. If the new cumulative value is still less than or equal to the threshold value of the current round, one packet is continuously transmitted from the group. If the calculated cumulative value exceeds the threshold value of the current round, The process of selecting the next group based on the list is repeated until all identifiers present in the list are executed, and the maximum value among the accumulated values of each group at the end of this round is A packet transmission method characterized by using a threshold value in a round.
JP04965298A 1998-03-02 1998-03-02 Packet sending device and packet sending method Expired - Fee Related JP3431484B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04965298A JP3431484B2 (en) 1998-03-02 1998-03-02 Packet sending device and packet sending method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04965298A JP3431484B2 (en) 1998-03-02 1998-03-02 Packet sending device and packet sending method

Publications (2)

Publication Number Publication Date
JPH11252097A true JPH11252097A (en) 1999-09-17
JP3431484B2 JP3431484B2 (en) 2003-07-28

Family

ID=12837132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04965298A Expired - Fee Related JP3431484B2 (en) 1998-03-02 1998-03-02 Packet sending device and packet sending method

Country Status (1)

Country Link
JP (1) JP3431484B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001244963A (en) * 1999-12-22 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> Competition controller
US7106752B2 (en) 2001-05-22 2006-09-12 Nec Corporation Apparatus for scheduling packets and method of doing the same
JP2009290385A (en) * 2008-05-28 2009-12-10 Nec Corp Packet communication apparatus, band control method used in the same and its program
US8149856B2 (en) 2007-03-27 2012-04-03 Fujitsu Limited Packet relay device and queue scheduling method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352399B (en) * 2020-03-12 2020-12-11 秦皇岛艾科晟装备有限公司 Internet of things intelligent linkage control method and Internet of things intelligent linkage control device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001244963A (en) * 1999-12-22 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> Competition controller
US7106752B2 (en) 2001-05-22 2006-09-12 Nec Corporation Apparatus for scheduling packets and method of doing the same
US8149856B2 (en) 2007-03-27 2012-04-03 Fujitsu Limited Packet relay device and queue scheduling method
JP2009290385A (en) * 2008-05-28 2009-12-10 Nec Corp Packet communication apparatus, band control method used in the same and its program

Also Published As

Publication number Publication date
JP3431484B2 (en) 2003-07-28

Similar Documents

Publication Publication Date Title
US6934296B2 (en) Packet transfer device and packet transfer method adaptive to a large number of input ports
US7317727B2 (en) Method and systems for controlling ATM traffic using bandwidth allocation technology
US6724726B1 (en) Method of putting a flow of packets of a network for transporting packets of variable length into conformity with a traffic contract
JP3730846B2 (en) ATM communication apparatus and ATM cell transfer control method
EP0872988B1 (en) A method for supporting per-connection queuing for feedback-controlled traffic
US7046631B1 (en) Method and apparatus for provisioning traffic dedicated cores in a connection oriented network
US6587437B1 (en) ER information acceleration in ABR traffic
JPH1084383A (en) Packet scheduling equipment and packet transfer method
JP2001326688A (en) Shaper
US6246687B1 (en) Network switching system supporting guaranteed data rates
JP3673025B2 (en) Packet transfer device
JP3906231B2 (en) Packet transfer device
JP3431484B2 (en) Packet sending device and packet sending method
Li et al. On TCP performance in ATM networks with per-VC early packet discard mechanisms
Li et al. Performance of TCP over UBR service in ATM networks with per-vc early packet discard schemes
JP4135007B2 (en) ATM cell transfer device
Seckin et al. Real-time transmission of multilayer video over ATM networks
JP2000183888A (en) Vc mergeable lable switching router for ip communication on atm network
Chen et al. Hierarchical scheduling for multiple classes of applications in connection-oriented integrated-service networks
Chen A performance evaluation of multiplexer scheduling algorithms
KR100198443B1 (en) A congestion control method for the connectionless data service in atm network
Yu et al. An Intelligent Coherent Approach to Cooperation between TCP and ATM Congestion Control Algorithms—Modeling and Simulation Analysis
Pao Efficient buffer management and selective packet discard for TCP over ATM
Mingyu et al. Fair bandwidth allocations through queue management in core-stateless networks
Yin et al. Probability based weighted fair queueing algorithm with adaptive buffer management for high-speed network

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees