JP2005210301A - Sequence control program and method of packet transmission - Google Patents
Sequence control program and method of packet transmission Download PDFInfo
- Publication number
- JP2005210301A JP2005210301A JP2004013267A JP2004013267A JP2005210301A JP 2005210301 A JP2005210301 A JP 2005210301A JP 2004013267 A JP2004013267 A JP 2004013267A JP 2004013267 A JP2004013267 A JP 2004013267A JP 2005210301 A JP2005210301 A JP 2005210301A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- packet
- buffers
- transmitted
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、送信すべきパケットを一時的に蓄積した複数のバッファを有し、該バッファを選択して次に送信するパケットを取り出す、パケット送出の順序制御プログラム及び方法に関する。 The present invention relates to a packet transmission order control program and method that have a plurality of buffers that temporarily store packets to be transmitted, and that select the buffers to retrieve the next packet to be transmitted.
パケットを送信する順序制御は、アプリケーションプログラムからのパケット送信要求に対し、通信プログラムがそのパケットの送信要求を処理し、ネットワークに送信する順序によって行われる。両プログラムのインタフェースとしては、ネットワーク用API(Application Program Interface)がある。これは、相手側通信ノードとの間でコネクション(通信路)を確立するものであり、代表的なものとしてはSocketインタフェースがある。ここで確立されたコネクションに対して、通常のファイル入出力用のread/writeによって、データを送受信することができる。 The order control for transmitting packets is performed according to the order in which the communication program processes the packet transmission request and transmits it to the network in response to the packet transmission request from the application program. As an interface between both programs, there is a network API (Application Program Interface). This establishes a connection (communication path) with a counterpart communication node, and a typical example is a Socket interface. Data can be transmitted / received to / from the connection established here by normal read / write for file input / output.
このようなインタフェースは、パケットを一時的に蓄積するバッファ機能を有する。そして、何れのバッファのパケットを取り出して次に送信するかは、OS(Operating System)のスケジューラによって決定される場合が多い。例えばルータについては、QoS(Quality of Service)機能によってフロー制御されているとしても、それは一般的な制御となっている。 Such an interface has a buffer function for temporarily storing packets. In many cases, an OS (Operating System) scheduler determines which buffer packet is to be extracted and transmitted next. For example, even if a router is flow-controlled by a QoS (Quality of Service) function, it is a general control.
しかしながら、バッファからパケットを取り出す順序をOSのスケジューラに任せた場合、以下のような問題が生じる。第1に、アプリケーションが一定間隔毎にパケットをバッファに書き込んだとしても、バッファに蓄積されるだけで、回線上に一定間隔で送出されない場合がある。第2に、リアルタイム性が要求されるアプリケーションと、そうでないアプリケーションが同一に扱われるため、優先されるべきパケットが優先されないことがある。第3に、多数のバッファがある場合、バッファから取り出す順番を指定できない。第4に、QoS機能を有するルータ等もあるが、それらは予め設定された情報に基づくパケット取り出しを優先する動作しか行わないため、パケット種別又はパケットの待ち時間に応じた動的な取り出しができない。 However, when the order of extracting packets from the buffer is left to the OS scheduler, the following problems occur. First, even if the application writes packets to the buffer at regular intervals, the packets are only stored in the buffer and may not be transmitted on the line at regular intervals. Second, since an application that requires real-time processing and an application that does not need to be treated in the same manner, packets that should be prioritized may not be prioritized. Third, when there are a large number of buffers, the order in which the buffers are taken out cannot be specified. Fourth, there are routers that have a QoS function, but since they only perform operations that prioritize packet extraction based on preset information, they cannot be dynamically extracted according to packet type or packet waiting time. .
従って、本発明は、これらの問題を解決するべく、バッファに優先度を持たせた上で、ある程度公平にデータを取り出して送信する順序制御プログラム及び方法を提供することを目的とする。 Accordingly, an object of the present invention is to provide an order control program and method for extracting and transmitting data fairly fairly while giving priority to buffers in order to solve these problems.
本発明の順序制御プログラムによれば、
バッファi毎に、パケットの取り出し優先度P(i)の情報と、パケットが存在するにもかかわらず送信しなかった回数を示す待ち加算度WA(i)の情報と、バッファに蓄積されたパケット量の割合を示すデータ量係数D(i)の情報とを有し、
全てのバッファについて、送信すべきパケットがあれば待ち加算度WA(i)を1増分し、送信すべきパケットがなければ待ち加算度WA(i)を0にする第1のステップと、
全てのバッファについて、現在のパケット量B(i)×バッファ量BS(i)からなるデータ量係数D(i)を導出する第2のステップと、
全てのバッファについて、優先度P(i)×待ち加算度WA(i)×データ量係数D(i)からなる取り出し指数K(i)を導出する第3のステップと、
取り出し指数Kが最大となるバッファIからパケットを取り出して送信する第4のステップと、
バッファIにおける待ち加算度WA(I)を0にする第5のステップと
を有し、第1から第5のステップを繰り返すようにコンピュータを実行させることを特徴とする。
According to the sequence control program of the present invention,
For each buffer i, information on the packet extraction priority P (i), information on the wait addition level WA (i) indicating the number of packets that have not been transmitted despite the presence of the packet, and packets accumulated in the buffer Data amount coefficient D (i) information indicating the proportion of the amount,
For all buffers, if there is a packet to be transmitted, the first step of incrementing the waiting addition degree WA (i) by 1;
A second step of deriving a data amount coefficient D (i) consisting of the current packet amount B (i) × buffer amount BS (i) for all buffers;
A third step of deriving an extraction index K (i) consisting of priority P (i) × waiting addition WA (i) × data amount coefficient D (i) for all buffers;
A fourth step of extracting and transmitting a packet from the buffer I having the maximum extraction index K;
And a fifth step of setting the wait addition degree WA (I) in the buffer I to 0, and the computer is executed so as to repeat the first to fifth steps.
本発明の順序制御プログラムにおける他の実施形態によれば、ネットワーク用APIに適用されることも好ましい。更に、そのネットワーク用APIは、Socketインタフェースであってもよい。 According to another embodiment of the sequence control program of the present invention, it is also preferably applied to a network API. Further, the network API may be a Socket interface.
本発明の順序制御方法によれば、
バッファi毎に、パケットの取り出し優先度P(i)の情報と、パケットが存在するにもかかわらず送信しなかった回数を示す待ち加算度WA(i)の情報と、バッファに蓄積されたパケット量の割合を示すデータ量係数D(i)の情報とを有し、
全てのバッファについて、送信すべきパケットがあれば待ち加算度WA(i)を1増分し、送信すべきパケットがなければ待ち加算度WA(i)を0にする第1のステップと、
全てのバッファについて、現在のパケット量B(i)×バッファ量BS(i)からなるデータ量係数D(i)を導出する第2のステップと、
全てのバッファについて、優先度P(i)×待ち加算度WA(i)×データ量係数D(i)からなる取り出し指数K(i)を導出する第3のステップと、
取り出し指数Kが最大となるバッファIからパケットを取り出して送信する第4のステップと、
バッファIにおける待ち加算度WA(I)を0にする第5のステップと
を有し、第1から第5のステップを繰り返すことを特徴とする。
According to the sequence control method of the present invention,
For each buffer i, information on the packet extraction priority P (i), information on the wait addition level WA (i) indicating the number of packets that have not been transmitted despite the presence of the packet, and packets accumulated in the buffer Data amount coefficient D (i) information indicating the proportion of the amount,
For all buffers, if there is a packet to be transmitted, the first step of incrementing the waiting addition degree WA (i) by 1;
A second step of deriving a data amount coefficient D (i) consisting of the current packet amount B (i) × buffer amount BS (i) for all buffers;
A third step of deriving an extraction index K (i) consisting of priority P (i) × waiting addition WA (i) × data amount coefficient D (i) for all buffers;
A fourth step of extracting and transmitting a packet from the buffer I having the maximum extraction index K;
And a fifth step of setting the waiting addition degree WA (I) in the buffer I to 0, and the first to fifth steps are repeated.
本発明の順序制御プログラム及び方法によれば、各バッファに蓄積されたデータの有するトラヒック特性に合わせてデータを送出することができる。また、単にバッファの優先度に基づいてデータを取り出すのではなく、待ち加算度WA及びデータ量係数Dを用いることで、バッファ間の公平性を保つことができる。特に、待ち加算度WA及びデータ量係数Dは、常時計算されているので、動的なトラヒック制御が可能になる。 According to the sequence control program and method of the present invention, data can be transmitted in accordance with the traffic characteristics of the data stored in each buffer. Further, the fairness between the buffers can be maintained by using the waiting addition degree WA and the data amount coefficient D, instead of simply taking out the data based on the priority of the buffer. In particular, since the waiting addition degree WA and the data amount coefficient D are constantly calculated, dynamic traffic control is possible.
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。 Hereinafter, the best mode for carrying out the present invention will be described in detail with reference to the drawings.
図1は、本発明におけるプログラムの機能構成図である。 FIG. 1 is a functional configuration diagram of a program in the present invention.
図1によれば、取得バッファ選択部1と、データ取得部2と、バッファ31〜34とからなる。取得バッファ選択部1は、複数のバッファ31〜34のうち、次に送信すべきデータを取得するバッファを選択するものである。データ取得部2は、取得バッファ選択部1によって決定されたバッファからデータを取り出し、回線側に送信するものである。バッファ31〜34は、Socketインタフェースを介して上位層から受信したデータを、一時的に蓄積するものである。
According to FIG. 1, it includes an acquisition
取得バッファ選択部1は、以下のような表1のデータ取得管理テーブルを保持する。
バッファ番号i(=1〜n): バッファ毎に割り当てられた識別子
優先度P(i): バッファiにおけるデータ取り出しの優先度
バッファサイズBS(i): バッファiにおけるデータ蓄積容量
現在のバッファ量B(i): バッファiにおいて現在蓄積されているデータ量
データ量係数 D(i): バッファiにおける現在のデータの蓄積割合を示す係数
待ち加算度WA(i): バッファiにおいてデータが存在するのに取り出さなかった回数
取り出し指数K(i): バッファiにおける取り出し必要度を示す指数
Buffer number i (= 1 to n): Identifier assigned to each buffer Priority P (i): Priority of data retrieval in buffer i Buffer size BS (i): Data storage capacity in buffer i Current buffer amount B (i): Data amount currently stored in buffer i Data amount coefficient D (i): Coefficient indicating the current data storage ratio in buffer i Waiting addition WA (i): Data exists in buffer i The number of times when the data was not taken out The taking index K (i): index indicating the degree of necessity for taking out in the buffer i
図2は、本発明における取得バッファ選択部のフローチャートである。 FIG. 2 is a flowchart of the acquisition buffer selection unit in the present invention.
このフローチャートの処理は、データの取り出しトリガによって開始される。 The processing of this flowchart is started by a data extraction trigger.
最初に、全てのバッファについて、優先度P(i)とバッファサイズBS(i)とが指定される。尚、優先度Pは、値が大きいほど、そのバッファからパケットを送信する必要度が高いことを意味する。
(S201)最大取り出し指数のバッファ番号Iにおける取り出し指数K(I)=0とする。
(S202)全てのバッファi=1〜nについて、S210までの間の処理を行う。
(S203)バッファiについて現在蓄積されているデータ量B(i)を取得する。
(S204)バッファiについて現在のバッファ量B(i)が0か否かを判定する。
(S205)現在のバッファ量B(i)が0でない場合、待ち加算度WA(i)が1増分され、データ量係数Dが算出される。
D(i)=B(i)/BS(i)
(S206)現在のバッファ量B(i)が0である場合、待ち加算度WA(i)が0にされ、データ量係数D(i)も0にされる。
(S207)優先度P(i)と、待ち加算度WA(i)と、データ量係数D(i)とを乗算して、取り出し指数K(i)が算出される。
K(i)=P(i)×WA(i)×D(i)
(S208)バッファ番号iにおける取り出し指数K(i)が、最大取り出し指数のバッファ番号Iにおける取り出し指数K(I)よりも大きいか否かを判定する。
(S209)K(i)がK(I)よりも大きいならば、最大取り出し指数のバッファ番号Iを、バッファ番号iにする。
(S210)全てのバッファi=1〜nについて、S202との間で繰り返す。
(S211)データ取得部2に対して、バッファ番号Iからデータを取得するべく指示する。これにより、データ取得部2は、バッファ番号Iのバッファからデータを取得して、送信する。
(S212)最大取り出し指数のバッファ番号Iにおける待ち加算度WA(I)を0にする。
First, the priority P (i) and the buffer size BS (i) are specified for all the buffers. Note that the higher the value of the priority P, the higher the necessity of transmitting a packet from the buffer.
(S201) The extraction index K (I) = 0 in the buffer number I of the maximum extraction index is set.
(S202) The processing up to S210 is performed for all the buffers i = 1 to n.
(S203) The data amount B (i) currently accumulated for the buffer i is acquired.
(S204) It is determined whether or not the current buffer amount B (i) is 0 for the buffer i.
(S205) If the current buffer amount B (i) is not 0, the waiting addition degree WA (i) is incremented by 1, and the data amount coefficient D is calculated.
D (i) = B (i) / BS (i)
(S206) When the current buffer amount B (i) is 0, the waiting addition degree WA (i) is set to 0, and the data amount coefficient D (i) is also set to 0.
(S207) The takeout index K (i) is calculated by multiplying the priority P (i), the waiting addition degree WA (i), and the data amount coefficient D (i).
K (i) = P (i) × WA (i) × D (i)
(S208) It is determined whether or not the extraction index K (i) in the buffer number i is larger than the extraction index K (I) in the buffer number I having the maximum extraction index.
(S209) If K (i) is larger than K (I), the buffer number I of the maximum extraction index is set to the buffer number i.
(S210) It repeats between S202 about all the buffers i = 1-n.
(S211) The
(S212) The waiting addition degree WA (I) in the buffer number I of the maximum extraction index is set to zero.
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。 In the various embodiments of the present invention described above, various changes, modifications, and omissions in the scope of the technical idea and the viewpoint of the present invention can be easily made by those skilled in the art. The above description is merely an example, and is not intended to be restrictive. The invention is limited only as defined in the following claims and the equivalents thereto.
1 取得バッファ選択部
2 データ取得部
31〜34 バッファ
DESCRIPTION OF
Claims (4)
前記バッファi毎に、パケットの取り出し優先度P(i)の情報と、パケットが存在するにもかかわらず送信しなかった回数を示す待ち加算度WA(i)の情報と、バッファに蓄積されたパケット量の割合を示すデータ量係数D(i)の情報とを有し、
全ての前記バッファについて、送信すべきパケットがあれば待ち加算度WA(i)を1増分し、送信すべきパケットがなければ待ち加算度WA(i)を0にする第1のステップと、
全ての前記バッファについて、現在のパケット量B(i)×バッファ量BS(i)からなるデータ量係数D(i)を導出する第2のステップと、
全ての前記バッファについて、優先度P(i)×待ち加算度WA(i)×データ量係数D(i)からなる取り出し指数K(i)を導出する第3のステップと、
前記取り出し指数Kが最大となる前記バッファIから前記パケットを取り出して送信する第4のステップと、
前記バッファIにおける待ち加算度WA(I)を0にする第5のステップと
を有し、前記第1から第5のステップを繰り返すようにコンピュータを実行させることを特徴とするパケット送出の順序制御プログラム。 In a sequence control program that has a plurality of buffers that temporarily store packets to be transmitted, and that causes the computer to function by selecting the buffers and extracting the packets to be transmitted next.
For each buffer i, information on the packet extraction priority P (i), information on the waiting addition level WA (i) indicating the number of times the packet was not transmitted despite the presence of the packet, and the buffer accumulated Data amount coefficient D (i) information indicating the ratio of the packet amount,
For all the buffers, a first step of incrementing the wait addition degree WA (i) by 1 if there is a packet to be transmitted and setting the wait addition degree WA (i) to 0 if there is no packet to be transmitted;
A second step of deriving a data amount coefficient D (i) consisting of the current packet amount B (i) × buffer amount BS (i) for all the buffers;
A third step of deriving an extraction index K (i) consisting of priority P (i) × wait addition degree WA (i) × data amount coefficient D (i) for all the buffers;
A fourth step of extracting and transmitting the packet from the buffer I having the maximum extraction index K;
And a fifth step of setting the wait addition degree WA (I) in the buffer I to 0, and causing the computer to repeat the first to fifth steps. program.
前記バッファi毎に、パケットの取り出し優先度P(i)の情報と、パケットが存在するにもかかわらず送信しなかった回数を示す待ち加算度WA(i)の情報と、バッファに蓄積されたパケット量の割合を示すデータ量係数D(i)の情報とを有し、
全ての前記バッファについて、送信すべきパケットがあれば待ち加算度WA(i)を1増分し、送信すべきパケットがなければ待ち加算度WA(i)を0にする第1のステップと、
全ての前記バッファについて、現在のパケット量B(i)×バッファ量BS(i)からなるデータ量係数D(i)を導出する第2のステップと、
全ての前記バッファについて、優先度P(i)×待ち加算度WA(i)×データ量係数D(i)からなる取り出し指数K(i)を導出する第3のステップと、
前記取り出し指数Kが最大となる前記バッファIから前記パケットを取り出して送信する第4のステップと、
前記バッファIにおける待ち加算度WA(I)を0にする第5のステップと
を有し、前記第1から第5のステップを繰り返すことを特徴とするパケット送出の順序制御方法。
In a plurality of buffers temporarily storing packets to be transmitted, and an order control method for selecting the buffers and extracting packets to be transmitted next,
For each buffer i, information on the packet extraction priority P (i), information on the waiting addition level WA (i) indicating the number of times the packet was not transmitted despite the presence of the packet, and the buffer accumulated Data amount coefficient D (i) information indicating the ratio of the packet amount,
For all the buffers, a first step of incrementing the wait addition degree WA (i) by 1 if there is a packet to be transmitted and setting the wait addition degree WA (i) to 0 if there is no packet to be transmitted;
A second step of deriving a data amount coefficient D (i) consisting of the current packet amount B (i) × buffer amount BS (i) for all the buffers;
A third step of deriving an extraction index K (i) consisting of priority P (i) × wait addition degree WA (i) × data amount coefficient D (i) for all the buffers;
A fourth step of extracting and transmitting the packet from the buffer I having the maximum extraction index K;
And a fifth step of setting the waiting addition degree WA (I) in the buffer I to 0, and repeating the first to fifth steps.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004013267A JP4411980B2 (en) | 2004-01-21 | 2004-01-21 | Packet transmission sequence control program and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004013267A JP4411980B2 (en) | 2004-01-21 | 2004-01-21 | Packet transmission sequence control program and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005210301A true JP2005210301A (en) | 2005-08-04 |
JP4411980B2 JP4411980B2 (en) | 2010-02-10 |
Family
ID=34899389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004013267A Expired - Fee Related JP4411980B2 (en) | 2004-01-21 | 2004-01-21 | Packet transmission sequence control program and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4411980B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008010905A (en) * | 2006-06-27 | 2008-01-17 | Nec Corp | Priority control method and apparatus at packet transmission |
JP2012019445A (en) * | 2010-07-09 | 2012-01-26 | Fujitsu Ltd | Telegraph message transmission control program, communication device, and telegraph message transmission control method |
-
2004
- 2004-01-21 JP JP2004013267A patent/JP4411980B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008010905A (en) * | 2006-06-27 | 2008-01-17 | Nec Corp | Priority control method and apparatus at packet transmission |
JP2012019445A (en) * | 2010-07-09 | 2012-01-26 | Fujitsu Ltd | Telegraph message transmission control program, communication device, and telegraph message transmission control method |
Also Published As
Publication number | Publication date |
---|---|
JP4411980B2 (en) | 2010-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9264369B2 (en) | Technique for managing traffic at a router | |
US9853906B2 (en) | Network prioritization based on node-level attributes | |
US20120278400A1 (en) | Effective Circuits in Packet-Switched Networks | |
JP2010081641A (en) | System and method for regulating message flow in digital data network | |
JP4771988B2 (en) | Load balancing device and network device | |
CN110708242B (en) | Traffic scheduling method and device, electronic equipment and storage medium | |
JP7487316B2 (en) | Service level configuration method and apparatus | |
CN109688070A (en) | A kind of data dispatching method, the network equipment and retransmission unit | |
US10594631B1 (en) | Methods and apparatus for memory resource management in a network device | |
US20160142333A1 (en) | Method and apparatus for performing a weighted queue scheduling using a set of fairness factors | |
JP5520316B2 (en) | Method for transmitting frames in mesh network, and mesh apparatus and mesh network therefor | |
CN117749726A (en) | Method and device for mixed scheduling of output port priority queues of TSN switch | |
JP4411980B2 (en) | Packet transmission sequence control program and method | |
CN108768860B (en) | Portal system message sending method and device | |
CN111163016A (en) | Queue management method and device | |
CN114500544B (en) | Method, system, equipment and medium for balancing load among nodes | |
CN107870925B (en) | Character string filtering method and related device | |
CN111324438A (en) | Request scheduling method and device, storage medium and electronic equipment | |
CN107087010B (en) | Intermediate data transmission method and system and distributed system | |
KR101046597B1 (en) | Data processing method, data transceiver and computer readable recording medium in network environment | |
CN117155844B (en) | Communication link selection method, system, electronic equipment and storage medium | |
CN114968507B (en) | Image processing task scheduling method and device | |
US20230412505A1 (en) | System and method for transmitting a data packet | |
CN111277513B (en) | PQ queue capacity expansion realization method, device, equipment and storage medium | |
KR20020025234A (en) | Low delay and low loss packet switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090407 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090603 |
|
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: 20091027 |
|
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: 20091109 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121127 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |