JP2008099055A - Communication apparatus controlling load and communication network comprising the same - Google Patents

Communication apparatus controlling load and communication network comprising the same Download PDF

Info

Publication number
JP2008099055A
JP2008099055A JP2006279498A JP2006279498A JP2008099055A JP 2008099055 A JP2008099055 A JP 2008099055A JP 2006279498 A JP2006279498 A JP 2006279498A JP 2006279498 A JP2006279498 A JP 2006279498A JP 2008099055 A JP2008099055 A JP 2008099055A
Authority
JP
Japan
Prior art keywords
packet
rate
queue
target
input
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
JP2006279498A
Other languages
Japanese (ja)
Other versions
JP4822343B2 (en
Inventor
Shagdar Oyunchimeg
シャグダル オユーンチメグ
Nouri Shirazi Mahdad
ヌリ シラジ マハダド
Naoto Kadowaki
直人 門脇
Sadao Obana
貞夫 小花
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.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
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 ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2006279498A priority Critical patent/JP4822343B2/en
Publication of JP2008099055A publication Critical patent/JP2008099055A/en
Application granted granted Critical
Publication of JP4822343B2 publication Critical patent/JP4822343B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a communication apparatus stabilizing a communication network. <P>SOLUTION: In the communication apparatus, a load monitor module 11 detects the number of holding packets held in queues 4-6, operates a target input packet rate so that the number of held packets becomes closer to an allowable size of the queues 4-6, and transmits the target input packet rate to an upstream scheduler 7 and a cross-layer module 21. The upstream scheduler 7 adds the target input packet rate to packets to be put in queues 8, 9, puts the packets in the queues and transmits them to another wireless apparatus. The cross layer module 21 transmits the target input packet rate to an upper-layer rate controller 20, and the upper-layer rate controller 20 operates a target output packet rate on the basis of the target input packet rate and uses the operated target output packet rate to control an output rate of Voice 17 and Voice 18. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

この発明は、負荷を制御可能な通信装置およびそれを備えた通信ネットワークに関し、特に、自律的に確立される通信ネットワークを構成する通信装置およびそれを備えた通信ネットワークに関するものである。   The present invention relates to a communication device capable of controlling a load and a communication network including the communication device, and more particularly to a communication device constituting a communication network established autonomously and a communication network including the communication device.

標準的なネットワークプロトコルは、TCP(Transmission Control Protocol)/IP(Internet Protocol)レイヤ型モデルに基づいて構築されている。   A standard network protocol is constructed based on a TCP (Transmission Control Protocol) / IP (Internet Protocol) layer type model.

TCP/IPレイヤ型モデルは、リンク/MAC(Media Access Control)層と、ネットワーク層と、トランスポート層と、アプリケーション層とを備える。そして、TCP/IPレイヤ型モデルにおいて、リンク/MAC層、ネットワーク層、トランスポート層およびアプリケーション層は、異なる役割を果たす。   The TCP / IP layer type model includes a link / MAC (Media Access Control) layer, a network layer, a transport layer, and an application layer. In the TCP / IP layer type model, the link / MAC layer, the network layer, the transport layer, and the application layer play different roles.

即ち、リンク/MAC層は、2つの通信装置間を物理的に接続する経路の確立および2つの通信装置間における通信等を行なう。ネットワーク層は、ネットワーク上の経路選択および経路中断等を行なう。トランスポート層は、エンド−エンド間の通信処理および輻輳処理等を行なう。アプリケーション層は、特定のアプリケーションの詳細な動作に関する処理を行なう。   That is, the link / MAC layer establishes a path for physically connecting the two communication devices and performs communication between the two communication devices. The network layer performs route selection and route interruption on the network. The transport layer performs end-to-end communication processing, congestion processing, and the like. The application layer performs processing related to detailed operations of a specific application.

また、TCP/IPレイヤ型モデルは、構造的には、リンク/MAC層、ネットワーク層、トランスポート層およびアプリケーション層にそれぞれ属する複数のプロトコルが、相互に独立して、上述した各役割を果たすという特徴を有する。即ち、特定のレイヤにおけるプロトコルの変更は、他のレイヤにおけるプロトコルに影響することなく行なわれる。   Also, in the TCP / IP layer model, a plurality of protocols belonging to the link / MAC layer, the network layer, the transport layer, and the application layer are structurally independent of each other and play the respective roles described above. Has characteristics. In other words, the protocol change in a specific layer is performed without affecting the protocol in other layers.

有線ネットワークにおいて通信を行なう端末装置および無線ネットワークにおいて無線通信を行なう通信装置は、上述したTCP/IPレイヤ型モデルによって構成されている。   A terminal device that performs communication in a wired network and a communication device that performs wireless communication in a wireless network are configured by the above-described TCP / IP layer type model.

無線ネットワークは、有線ネットワークと以下の点で異なる。   The wireless network differs from the wired network in the following points.

(1)反射および遮断などにより電波状態が大きく変動する。   (1) The radio wave state greatly fluctuates due to reflection and blocking.

(2)同一通信範囲に位置する各無線装置は、無線チャネルを共用して通信を行なう。   (2) Each wireless device located in the same communication range communicates by sharing a wireless channel.

(3)無線装置が移動可能である。   (3) The wireless device is movable.

無線ネットワークは、有線ネットワークと(1)の異なる点を有している結果、マルチパス通信および一時的な通信の切断によりパケットロスが発生するなど、通信の品質が大きく異なる。   As a result of the difference (1) between the wireless network and the wired network, the quality of communication is greatly different, for example, packet loss occurs due to multipath communication and temporary communication disconnection.

また、無線ネットワークは、有線ネットワークと(2)の異なる点を有している結果、チャネルアクセスの際の無線装置間またはフロー間の公平性が重要な課題となる。   In addition, since the wireless network has (2) different points from the wired network, fairness between wireless devices or flows during channel access becomes an important issue.

更に、無線ネットワークは、有線ネットワークと(3)の異なる点を有している結果、ルートの切断およびネットワークの分裂等が生じる。   Further, the wireless network has (3) different points from the wired network, and as a result, route disconnection, network disruption, and the like occur.

従って、無線ネットワークにおいては、通信状態がダイナミックに変動する。そして、この通信状態の変動の原因を特定することは困難である。その結果、TCP/IPレイヤ型モデルを構成する複数のプロトコルの各々が独立して動作すると、通信の品質および効率が低下する。   Therefore, in the wireless network, the communication state dynamically changes. And it is difficult to specify the cause of this communication state fluctuation. As a result, when each of the plurality of protocols constituting the TCP / IP layer type model operates independently, the quality and efficiency of communication deteriorate.

このような理由から、無線ネットワークにおいて、高効率、かつ、高品質な無線通信を行なうには、TCP/IPレイヤ型モデルを構成する複数のプロトコルの相互間において情報交換を行ない、通信の品質および効率を向上させるクロスレイヤ処理が必要となる。   For these reasons, in order to perform high-efficiency and high-quality wireless communication in a wireless network, information is exchanged between a plurality of protocols constituting the TCP / IP layer model, and communication quality and Cross layer processing that improves efficiency is required.

そこで、従来、リンクレイヤにおける輻輳状態をTCPに知らせるECN(Explicit Congestion Notification)というクロスレイヤ処理が行なわれている(非特許文献1)。   Therefore, conventionally, a cross-layer process called ECN (Explicit Connection Notification) for notifying TCP of a congestion state in the link layer is performed (Non-patent Document 1).

このクロスレイヤ処理は、中継端末において輻輳によってパケットロスが発生した場合、中継端末は、ロスしたパケットの次に届いたパケットのヘッダにCE(Congestion Experienced)ビットを設定して送信先へ転送し、CEビットが設定されたパケットを受信した送信先がACK(Acknowledge)パケットのヘッダにECN−Echoビットを設定して送信元のTCPへ送信するというものである。   In this cross-layer process, when packet loss occurs due to congestion in the relay terminal, the relay terminal sets the CE (Congestion Experienced) bit in the header of the packet that arrives next to the lost packet, and transfers the packet to the transmission destination. The transmission destination that has received the packet in which the CE bit is set sets the ECN-Echo bit in the header of the ACK (Acknowledge) packet and transmits the packet to the transmission source TCP.

ECN−Echoビットが設定されたACKパケットを受信した送信元のTCPは、ACKパケットからECN−Echoビットを検出することにより、パケットが輻輳によってロスしたことを検知する。
K.Ramakrishnan and S.Floyd,“A Proposal to add Explicit Congestion Notification(ECN) to IP”,RFC 2481,Jan 1999.
The transmission source TCP that has received the ACK packet in which the ECN-Echo bit is set detects that the packet has been lost due to congestion by detecting the ECN-Echo bit from the ACK packet.
K. Ramakrishnan and S.M. Floyd, “A Proposal to add Explictation Notification (ECN) to IP”, RFC 2481, Jan 1999.

しかし、従来のパケット通信ネットワークにおいては、通信の流れであるトラフィックを多重化したり、ネットワークリソースを共有することが行なわれているため、ネットワークの負荷がゆらぎ、ネットワークが不安定化するという問題がある。   However, the conventional packet communication network has a problem that the load of the network fluctuates and the network becomes unstable because the traffic that is the communication flow is multiplexed or the network resource is shared. .

そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、通信ネットワークの安定化が可能な通信装置を提供することである。   Accordingly, the present invention has been made to solve such a problem, and an object thereof is to provide a communication device capable of stabilizing a communication network.

また、この発明の別の目的は、通信ネットワークの安定化が可能な通信装置を備えた通信ネットワークを提供することである。   Another object of the present invention is to provide a communication network including a communication device capable of stabilizing the communication network.

この発明によれば、通信装置は、自律的に確立される通信ネットワークを構成し、負荷を制御可能な通信装置であって、入力バッファと、検出手段と、制御手段とを備える。入力バッファは、パケットが入力される。検出手段は、入力バッファに保持された保持パケット数を検出する。制御手段は、検出手段によって検出された保持パケット数が入力バッファの許容サイズに近づくように入力バッファに入るパケット数を制御する。   According to the present invention, the communication device is a communication device that constitutes an autonomously established communication network and can control a load, and includes an input buffer, a detection unit, and a control unit. A packet is input to the input buffer. The detecting means detects the number of held packets held in the input buffer. The control means controls the number of packets entering the input buffer so that the number of retained packets detected by the detection means approaches the allowable size of the input buffer.

好ましくは、通信装置は、生成手段を更に備える。生成手段は、パケットを生成する。バッファは、第1および第2の入力バッファを含む。第1の入力バッファは、生成手段によって生成されたパケットが入力される。第2の入力バッファは、他の通信装置から送信されたパケットが入力される。そして、検出手段は、第1および第2の入力バッファにそれぞれ保持された第1および第2の保持パケット数を検出する。制御手段は、第1の保持パケット数が第1の入力バッファの第1の許容サイズに近づくように生成手段を制御するとともに、第2の保持パケット数が第2の入力バッファの第2の許容サイズに近づくように他の通信装置を制御する。生成手段は、制御手段からの制御に従って、第1の保持パケット数が第1の許容サイズに近づくように第1の入力バッファに入れる入力パケットレートを増減する。   Preferably, the communication device further includes a generation unit. The generation unit generates a packet. The buffer includes first and second input buffers. The first input buffer receives a packet generated by the generation unit. The second input buffer receives a packet transmitted from another communication device. Then, the detecting means detects the first and second held packet numbers held in the first and second input buffers, respectively. The control means controls the generating means so that the first held packet number approaches the first allowable size of the first input buffer, and the second held packet number is the second allowable value of the second input buffer. Control other communication devices to approach size. The generation unit increases or decreases the input packet rate to be input to the first input buffer so that the first held packet number approaches the first allowable size according to the control from the control unit.

好ましくは、制御手段は、第1および第2の演算手段と、出力手段とを含む。第1の演算手段は、第1の入力バッファに入れる入力パケットレートの目標値である第1の目標入力パケットレートを演算する。第2の演算手段は、生成手段がパケットを第1の入力バッファへ出力するときの出力パケットレートを第1の目標入力パケットレートを用いて演算する。出力手段は、演算された出力パケットレートを生成手段へ出力する。生成手段は、生成したパケットを出力パケットレートで第1の入力バッファへ出力する。   Preferably, the control means includes first and second calculation means and output means. The first computing means computes a first target input packet rate that is a target value of the input packet rate to be put into the first input buffer. The second calculating means calculates the output packet rate when the generating means outputs the packet to the first input buffer, using the first target input packet rate. The output means outputs the calculated output packet rate to the generation means. The generating means outputs the generated packet to the first input buffer at the output packet rate.

好ましくは、制御手段は、演算手段と、通知手段とを含む。演算手段は、第2の入力バッファに入れる入力パケットレートの目標値である第2の目標入力パケットレートを演算する。通知手段は、第2の目標入力パケットレートを他の通信装置へ通知する。   Preferably, the control means includes a calculation means and a notification means. The calculating means calculates a second target input packet rate that is a target value of the input packet rate to be put into the second input buffer. The notifying means notifies the second target input packet rate to another communication device.

好ましくは、通知手段は、第2の目標入力パケットレートを他の通信装置宛のパケットに含めて他の通信装置へ通知する。   Preferably, the notification unit includes the second target input packet rate in a packet addressed to another communication device and notifies the other communication device.

好ましくは、通知手段は、第2の目標入力パケットレートを専用パケットに含めて他の通信装置へ通知する。   Preferably, the notifying unit includes the second target input packet rate in a dedicated packet and notifies the other communication device.

好ましくは、通信装置は、送信手段と、出力バッファと、送信制御手段とを更に備える。送信手段は、各送信先へパケットを送信する。出力バッファは、保持しているパケットが空になると第1および/または第2の入力バッファからパケットを受けて送信先ごとに保持するとともに、保持したパケットを送信手段へ送信する。送信制御手段は、第1および第2の保持パケット数がそれぞれ第1および第2の許容サイズに近づくように出力バッファがパケットを送信手段へ送信するときの送信パケットレートを制御する。   Preferably, the communication apparatus further includes a transmission unit, an output buffer, and a transmission control unit. The transmission means transmits a packet to each transmission destination. When the held packet becomes empty, the output buffer receives the packet from the first and / or second input buffer, holds the packet for each destination, and transmits the held packet to the transmission unit. The transmission control means controls the transmission packet rate at which the output buffer transmits packets to the transmission means so that the first and second held packet numbers approach the first and second allowable sizes, respectively.

好ましくは、出力バッファは、パケットを送信可能であるアンロック状態とパケットを送信できないロック状態とが設定され、アンロック状態が設定されるとパケットを送信手段へ送信し、ロック状態が設定されるとパケットの送信手段への送信を停止する。送信制御手段は、アンロック状態の期間とロック状態の期間とを制御することによって送信パケットレートを制御する。   Preferably, the output buffer is set to an unlocked state in which the packet can be transmitted and a locked state in which the packet cannot be transmitted. When the unlocked state is set, the packet is transmitted to the transmission unit, and the locked state is set. And stop sending packets to the sending means. The transmission control means controls the transmission packet rate by controlling the period of the unlocked state and the period of the locked state.

好ましくは、送信制御手段は、第1の入力バッファに入れる入力パケットレートの目標値である第1の目標入力パケットレートを演算し、その演算した第1の目標入力パケットレートを用いて送信パケットレートを演算するとともに、演算した送信パケットレートの逆数をロック状態の期間として演算し、その演算したロック状態の期間に基づいて送信パケットレートを制御する。   Preferably, the transmission control unit calculates a first target input packet rate that is a target value of the input packet rate to be input to the first input buffer, and uses the calculated first target input packet rate to transmit the packet rate. And the reciprocal of the calculated transmission packet rate is calculated as the lock state period, and the transmission packet rate is controlled based on the calculated lock state period.

また、この発明によれば、通信ネットワークは、請求項1から請求項9のいずれか1項に記載の通信装置を備える。   Moreover, according to this invention, a communication network is provided with the communication apparatus of any one of Claims 1-9.

この発明による通信装置においては、入力バッファに保持される保持パケット数が入力バッファの許容サイズに近づくように入力バッファに入力されるパケット数が制御される。その結果、各通信装置における負荷が低減される。   In the communication apparatus according to the present invention, the number of packets input to the input buffer is controlled so that the number of held packets held in the input buffer approaches the allowable size of the input buffer. As a result, the load on each communication device is reduced.

従って、この発明によれば、通信ネットワークを安定化できる。   Therefore, according to the present invention, the communication network can be stabilized.

本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。   Embodiments of the present invention will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals and description thereof will not be repeated.

[実施の形態1]
図1は、この発明の実施の形態1による通信装置の構成を示す概略図である。この発明の実施の形態による通信装置100は、MACレイヤモジュール1と、リンクレイヤクラシファイア2と、トラフィッククラシファイア3と、キュー4〜6,8,9と、アップストリームスケジューラ7と、ダウンストリームスケジューラ10と、負荷モニタモジュール11と、下層レートコントローラ12と、ネットワークレイヤクラシファイア13と、ルーティングモジュール14と、UDP15と、TCP16と、Voice17と、Video18と、Text19と、上層レートコントローラ20と、クロスレイヤモジュール21とを備える。
[Embodiment 1]
1 is a schematic diagram showing a configuration of a communication apparatus according to Embodiment 1 of the present invention. A communication device 100 according to an embodiment of the present invention includes a MAC layer module 1, a link layer classifier 2, a traffic classifier 3, queues 4 to 6, 8, and 9, an upstream scheduler 7, and a downstream scheduler 10. , Load monitor module 11, lower layer rate controller 12, network layer classifier 13, routing module 14, UDP 15, TCP 16, Voice 17, Video 18, Text 19, upper layer rate controller 20, and cross layer module 21. Is provided.

MACレイヤモジュール1は、MAC層に属し、他の通信装置から受信したパケットをリンクレイヤクラシファイア2へ送信する。   The MAC layer module 1 belongs to the MAC layer and transmits a packet received from another communication device to the link layer classifier 2.

また、MACレイヤモジュール1は、2つの通信装置間における物理的な接続を制御する。   The MAC layer module 1 controls physical connection between the two communication devices.

更に、MACレイヤモジュール1は、チャネルアクセスしてチャネルが空いているとき、データリンク層から受けたパケットを所定のチャネルで送信する。   Further, the MAC layer module 1 transmits a packet received from the data link layer through a predetermined channel when the channel is accessed and the channel is free.

リンクレイヤクラシファイア2は、データリンク層に属し、MACレイヤモジュール1からパケットを受ける。そして、リンクレイヤクラシファイア2は、その受けたパケットが後述するレートコントロールを要求する信号Rate_signalを含むとき、その信号Rate_signalをパケットから取り出して下層レートコントローラ12へ送信し、残りのデータパケットをネットワーククラシファイア13へ送信する。   The link layer classifier 2 belongs to the data link layer and receives a packet from the MAC layer module 1. When the received packet includes a signal Rate_signal for requesting rate control, which will be described later, the link layer classifier 2 extracts the signal Rate_signal from the packet and transmits it to the lower layer rate controller 12, and the remaining data packet is transmitted to the network classifier 13. Send to.

トラフィッククラシファイア3は、データリンク層に属し、通信装置100が他の通信装置から受信したパケットまたは上位層から受信したパケットをパケットの送信元ごとに分類してキュー4〜6へ入れる。   The traffic classifier 3 belongs to the data link layer, classifies the packets received by the communication device 100 from other communication devices or the packets received from the upper layer for each packet transmission source, and puts them in the queues 4 to 6.

キュー4〜6の各々は、データリンク層に属し、トラフィッククラシファイア3から受けたパケットを保持するとともに、その保持したパケットをアップストリームスケジューラ7からの出力要求に応じてアップストリームスケジューラ7へ出力する。なお、キュー4,6は、通信装置100が他の通信装置から受信したパケットを保持し、キュー5は、通信装置100において生成されたパケットを保持する。   Each of the queues 4 to 6 belongs to the data link layer, holds a packet received from the traffic classifier 3, and outputs the held packet to the upstream scheduler 7 in response to an output request from the upstream scheduler 7. The queues 4 and 6 hold packets received by the communication apparatus 100 from other communication apparatuses, and the queue 5 holds packets generated in the communication apparatus 100.

アップストリームスケジューラ7は、データリンク層に属する。そして、アップストリームスケジューラ7は、キュー8または9が空になると、キュー4〜6から1個のパケットを読み出し、その読み出した1個のパケットをキュー8または9へ入れる。   The upstream scheduler 7 belongs to the data link layer. When the queue 8 or 9 becomes empty, the upstream scheduler 7 reads one packet from the queues 4 to 6 and puts the one read packet into the queue 8 or 9.

また、アップストリームスケジューラ7は、後述する目標入力パケットレートを含む信号Rate_signalを負荷モニタモジュール11から受けると、その受けた信号Rate_signalをデータパケットに追加してキュー8または9へ送信する。   Further, when receiving the signal Rate_signal including a target input packet rate described later from the load monitor module 11, the upstream scheduler 7 adds the received signal Rate_signal to the data packet and transmits the data packet to the queue 8 or 9.

キュー8,9の各々は、データリンク層に属し、パケットを出力できないロック状態とパケットを出力可能なアンロック状態とを有する。そして、キュー8,9の各々は、アップストリームスケジューラ7から受けた1個のパケットを保持するとともに、アンロック状態になり、かつ、ダウンストリームスケジューラ10からの出力要求に応じて、保持した1個のパケットをダウンストリームスケジューラ10へ出力する。   Each of the queues 8 and 9 belongs to the data link layer, and has a locked state where a packet cannot be output and an unlocked state where a packet can be output. Each of the queues 8 and 9 holds one packet received from the upstream scheduler 7, enters an unlocked state, and holds one packet in response to an output request from the downstream scheduler 10. Are output to the downstream scheduler 10.

ダウンストリームスケジューラ10は、データリンク層に属する。そして、ダウンストリームスケジューラ10は、MACレイヤモジュール1からパケットの出力要求を受け、かつ、キュー8,9の状態がアンロック状態になると、キュー8,9から1個のパケットを読み出してMACレイヤモジュール1へ送信する。   The downstream scheduler 10 belongs to the data link layer. When the downstream scheduler 10 receives a packet output request from the MAC layer module 1 and the queues 8 and 9 are unlocked, the downstream scheduler 10 reads one packet from the queues 8 and 9 and reads the MAC layer module. Send to 1.

負荷モニタモジュール11は、データリンク層に属し、キュー5〜6に保持されたパケット数をレートコントロール間隔ごとにモニタするとともに、制御方式に応じてキュー4〜6の許容サイズを後述する方法によって演算する。そして、負荷モニタモジュール11は、後述する方法によって、キュー4〜6に保持されているパケット数がキュー4〜6の許容サイズに近づくようにキュー4〜6に入れるパケットの目標レートである目標入力パケットレートをレートコントロール間隔ごとに計算する。そして、負荷モニタモジュール11は、キュー5の目標入力パケットレートを計算すると、その計算した目標入力パケットレートを含む信号Rate_signalをクロスレイヤモジュール21へ送信し、キュー4,6の目標入力パケットレートを計算すると、その計算した目標入力パケットレートを含む信号Rate_signalをアップストリームスケジューラ7へ送信する。   The load monitor module 11 belongs to the data link layer, monitors the number of packets held in the queues 5 to 6 for each rate control interval, and calculates the allowable size of the queues 4 to 6 by a method described later according to the control method. To do. Then, the load monitor module 11 uses a method to be described later, and a target input that is a target rate of packets to be put in the queues 4 to 6 so that the number of packets held in the queues 4 to 6 approaches the allowable size of the queues 4 to 6. Calculate the packet rate for each rate control interval. Then, when calculating the target input packet rate of the queue 5, the load monitor module 11 transmits a signal Rate_signal including the calculated target input packet rate to the cross layer module 21, and calculates the target input packet rate of the queues 4 and 6. Then, a signal Rate_signal including the calculated target input packet rate is transmitted to the upstream scheduler 7.

下層レートコントローラ12は、データリンク層に属する。そして、下層レートコントローラ12は、隣接する通信装置のキュー4〜6に保持されているパケット数がキュー4〜6の許容サイズになるようにキュー8,9からの出力パケットレートの制御を後述する方法によって行なう。   The lower layer rate controller 12 belongs to the data link layer. Then, the lower layer rate controller 12 will control the output packet rate from the queues 8 and 9 to be described later so that the number of packets held in the queues 4 to 6 of the adjacent communication devices becomes an allowable size of the queues 4 to 6. It is done by the method.

また、下層レートコントローラ12は、キュー8,9の状態をロック状態に設定するロック期間を後述する方法によって演算する。そして、下層レートコントローラ12は、その演算したロック期間を用いてキュー8,9からのパケットの出力パケットレートを制御する。   Further, the lower layer rate controller 12 calculates a lock period for setting the states of the queues 8 and 9 to the lock state by a method described later. The lower layer rate controller 12 controls the output packet rate of the packets from the queues 8 and 9 using the calculated lock period.

ネットワーククラシファイア13は、ネットワーク層に属し、リンクレイヤクラシファイア2から受けたパケットをルーティングモジュール14へ出力する。   The network classifier 13 belongs to the network layer, and outputs the packet received from the link layer classifier 2 to the routing module 14.

ルーティングモジュール14は、ネットワーク層に属し、ネットワーククラシファイア13からパケットを受ける。そして、ルーティングモジュール14は、ルーティングプロトコルに従って、その受けたパケットの送信先を決定し、その決定した送信先宛のパケットをトラフィッククラシファイア3を介してキュー(キュー4または6)へ入れる。また、ルーティングモジュール14は、UDP15およびTCP16からパケットを受ける。そして、ルーティングモジュール14は、ルーティングプロトコルに従って、その受けたパケットの送信先を決定し、その決定した送信先宛のパケットをトラフィッククラシファイア3を介してキュー5へ入れる。なお、この発明においては、ルーティングモジュール14が送信先を決定するために用いるルーティングプロトコルとしては、オンデマンド型のルーティングプロトコルとテーブル駆動型のルーティングプロトコルとがある。   The routing module 14 belongs to the network layer and receives packets from the network classifier 13. Then, the routing module 14 determines the transmission destination of the received packet according to the routing protocol, and puts the packet addressed to the determined transmission destination into the queue (queue 4 or 6) via the traffic classifier 3. The routing module 14 receives packets from the UDP 15 and the TCP 16. Then, the routing module 14 determines the destination of the received packet according to the routing protocol, and puts the packet addressed to the determined destination into the queue 5 via the traffic classifier 3. In the present invention, the routing protocol used by the routing module 14 to determine the transmission destination includes an on-demand routing protocol and a table-driven routing protocol.

UDP15は、トランスポート層に属し、アプリケーション層のプロトコル(例えば(Voice17,Video18)からパケットを受け、その受けたパケットをルーティングモジュール14へ送信する。   The UDP 15 belongs to the transport layer, receives a packet from an application layer protocol (for example, (Voice 17, Video 18)), and transmits the received packet to the routing module 14.

TCP16は、トランスポート層に属し、アプリケーション層から受けたデータを上層レートコントローラ20から受けた目標出力パケットレートでルーティングモジュール14へ送信する。   The TCP 16 belongs to the transport layer, and transmits data received from the application layer to the routing module 14 at a target output packet rate received from the upper layer rate controller 20.

Voice17は、アプリケーション層に属し、音声データを生成する。そして、Voice17は、上層レートコントローラ20から受けた目標出力パケットレートで音声データからなるパケットをUDP15へ送信する。   Voice 17 belongs to the application layer and generates audio data. Then, the Voice 17 transmits a packet made of audio data to the UDP 15 at the target output packet rate received from the upper layer rate controller 20.

Video18は、アプリケーション層に属し、映像データを生成する。そして、Video18は、上層レートコントローラ20から受けた目標出力パケットレートで画像データからなるパケットをUDP15へ送信する。   Video 18 belongs to the application layer and generates video data. Then, the Video 18 transmits a packet composed of image data to the UDP 15 at the target output packet rate received from the upper layer rate controller 20.

Text19は、アプリケーション層に属し、テキストデータを生成する。そして、Text19は、その生成したテキストデータをTCP16へ送信する。   Text 19 belongs to the application layer and generates text data. Then, Text 19 transmits the generated text data to TCP 16.

上層レートコントローラ20は、トランスポート層およびアプリケーション層に跨って属し、クロスレイヤモジュール21から目標入力パケットレートを含む信号Rate_signalを受けると、後述する方法によって目標出力パケットレートを演算する。そして、上層レートコントローラ20は、TCP16、Voice17およびVideo18からの出力パケットレートが演算した目標出力パケットレートになるようにTCP16、Voice17およびVideo18を制御する。   When receiving the signal Rate_signal including the target input packet rate from the cross layer module 21, the upper layer rate controller 20 operates across the transport layer and the application layer, and calculates the target output packet rate by a method described later. The upper layer rate controller 20 controls the TCP 16, Voice 17 and Video 18 so that the output packet rate from the TCP 16, Voice 17 and Video 18 becomes the calculated target output packet rate.

クロスレイヤモジュール21は、負荷モニタモジュール11から目標入力パケットレートを含む信号Rate_siganalを受けると、その受けた信号Rate_signalを上層レートコントローラ20へ送信する。   When receiving the signal Rate_signal including the target input packet rate from the load monitor module 11, the cross layer module 21 transmits the received signal Rate_signal to the upper layer rate controller 20.

図2は、自律的に確立される通信ネットワークであるアドホックネットワークの概念図である。通信装置100〜102は、アドホックネットワークを構成する。そして、例えば、通信装置101は、送信元の通信装置であり、通信装置102は、送信先の通信装置であり、通信装置100は、通信装置101と通信装置102との間でパケットを中継する中継通信装置である。中継通信装置である通信装置100においては、例えば、キュー4は、通信装置101から受信したパケットを保持し、キュー6は、通信装置102から受信したパケットを保持する。また、通信装置100においては、キュー8は、通信装置101宛てのパケットを保持し、キュー9は、通信装置102宛てのパケットを保持する。なお、通信装置101,102の各々は、図1に示す通信装置100と同じ構成からなる。   FIG. 2 is a conceptual diagram of an ad hoc network that is a communication network established autonomously. Communication devices 100 to 102 constitute an ad hoc network. For example, the communication device 101 is a transmission source communication device, the communication device 102 is a transmission destination communication device, and the communication device 100 relays a packet between the communication device 101 and the communication device 102. It is a relay communication device. In the communication device 100 that is a relay communication device, for example, the queue 4 holds a packet received from the communication device 101, and the queue 6 holds a packet received from the communication device 102. In the communication device 100, the queue 8 holds a packet addressed to the communication device 101, and the queue 9 holds a packet addressed to the communication device 102. Each of the communication devices 101 and 102 has the same configuration as the communication device 100 shown in FIG.

以下においては、図2に示すアドホックネットワークにおいて各通信装置100〜102が自己のキュー4〜6に保持されているパケット数がキュー4〜6の許容サイズに近づくように制御することによって、アドホックネットワーク全体を安定化させる方法について説明する。   In the following, in the ad hoc network shown in FIG. 2, each communication device 100 to 102 controls the number of packets held in its own queues 4 to 6 so as to approach the allowable size of the queues 4 to 6. A method of stabilizing the whole will be described.

[負荷のモニタ]
負荷モニタモジュール11がキュー4〜6に保持されているパケット数をモニタする方法について説明する。負荷モニタモジュール11は、システムのパラメータであるレートコントロール間隔ごとに、各々のキューに関して出力パケット数N_Dequeue_Pkt、失敗回数N_Dequeue_Fail、パケットサイズS_Dequeue_Pktおよび保持パケット数H_Pktを演算する。
[Monitor load]
A method by which the load monitor module 11 monitors the number of packets held in the queues 4 to 6 will be described. The load monitor module 11 calculates the number of output packets N_Dequee_Pkt, the number of failures N_Dequee_Fail, the packet size S_Dequee_Pkt, and the number of retained packets H_Pkt for each queue for each rate control interval that is a system parameter.

出力パケット数N_Dequeue_Pktは、前回の処理時刻以降にキューから出力されたパケット数である。失敗回数N_Dequeue_Pktは、前回の処理時刻以降にキューからのパケットの出力に失敗した回数である。パケットサイズS_Dequeue_Pktは、前回の処理時刻以降にキューから出力されたパケットのサイズの合計である。保持パケット数H_Pktは、現時点でキューに保持されているパケット数である。   The number of output packets N_Dequee_Pkt is the number of packets output from the queue after the previous processing time. The number of failures N_Dequee_Pkt is the number of failed packet output from the queue after the previous processing time. The packet size S_Dequeue_Pkt is the total size of packets output from the queue after the previous processing time. The number of held packets H_Pkt is the number of packets currently held in the queue.

負荷モニタモジュール11は、3つの制御方法のいずれかに従って各キュー4〜6に保持されている保持パケット数H_Pktが各キュー4〜6の許容サイズ(TQL:Tolerance Queue Length)にそれぞれ近づくように各キュー4〜6に入力されるパケットレートを制御する。   The load monitor module 11 is configured so that the number of held packets H_Pkt held in each of the queues 4 to 6 according to any one of the three control methods approaches the allowable size (SQL: Tolerance Queue Length) of each of the queues 4 to 6, respectively. The packet rate input to the queues 4 to 6 is controlled.

3つの制御方法は、Constant TQL(C−TQL)、Additive Increase/Decrease TQL(AIAD−TQL)およびDelay Based TQL(DB−TQL)である。C−TQLは、リンクレイヤにおけるパケットの輻輳状態を回避することによって、パケット落ちまたはキューにおける待ち時間を解消することを目的とする制御方法である。また、AIAD−TQLは、高いチャネル使用率を保持し、かつ、必要最小限のキュー長を保つことを目的とする制御方法である。更に、DB−TQLは、キューにおけるパケット遅延を特定の値以内に保つことを目的とする制御方法である。そして、この3つの制御方法のいずれの制御方法を用いるかによってキューの許容サイズ(TQL)の決定方法が異なる。   The three control methods are Constant SQL (C-SQL), Additive / Decrease SQL (AIAD-SQL), and Delay Based SQL (DB-SQL). C-SQL is a control method aimed at eliminating packet drop or queue waiting time by avoiding packet congestion at the link layer. Moreover, AIAD-SQL is a control method for maintaining a high channel usage rate and maintaining a necessary minimum queue length. Furthermore, DB-SQL is a control method aimed at keeping the packet delay in the queue within a specific value. The method for determining the allowable queue size (SQL) differs depending on which of the three control methods is used.

i)C−TQLを用いた場合のTQLの決定方法
C−TQLを用いた場合、TQLは、一定値C_TQLに保持され、この一定値C_TQLは、システムパラメータとして負荷モニタモジュール11に設定される。従って、この場合、負荷モニタモジュール11は、TQLを演算することはない。
i) Method for Determining TQL Using C-TQL When C-TQL is used, TQL is held at a constant value C_TQL, and this constant value C_TQL is set in the load monitor module 11 as a system parameter. Therefore, in this case, the load monitor module 11 does not calculate TQL.

一定値C_TQLは、次のように決定される。許容サイズTQLの最大値をTQL_maxとし、許容サイズTQLの最小値をTQL_minとすると、許容サイズの最大値TQL_maxは、次式によって決定される。   The constant value C_TQL is determined as follows. When the maximum value of the allowable size TQL is TQL_max and the minimum value of the allowable size TQL is TQL_min, the maximum value TQL_max of the allowable size is determined by the following equation.

TQL_max=(キューの最大サイズ(バイト)の70%)/(キューから出力されたパケットの平均サイズ(バイト))・・・(1)
また、許容サイズの最小値TQL_minは、次式によって決定される。
TQL_max = (70% of the maximum queue size (bytes)) / (average size of packets output from the queue (bytes)) (1)
Further, the minimum allowable value TQL_min is determined by the following equation.

TQL_min=(キューの最大サイズ(バイト)の10%)/(キューから出力されたパケットの平均サイズ(バイト))・・・(2)
そして、キューサイズ>TQL_max、かつ、キューサイズ<TQL_minであるとき、許容サイズTQLは、次式によって決定される。
TQL_min = (10% of maximum queue size (bytes)) / (average size of packets output from queue (bytes)) (2)
When queue size> TQL_max and queue size <TQL_min, the allowable size TQL is determined by the following equation.

TQL=(TQL_max−TQL_min)/2+TQL_min
・・・(3)
一方、キューサイズ>TQL_max、かつ、キューサイズ<TQL_minが成立しない場合、許容サイズTQLは、次式によって決定される。
TQL = (TQL_max−TQL_min) / 2 + TQL_min
... (3)
On the other hand, when the queue size> TQL_max and the queue size <TQL_min are not satisfied, the allowable size TQL is determined by the following equation.

TQL=キューサイズ・・・(4)
また、許容サイズTQLは、次の方法によって決定されてもよい。
TQL = queue size (4)
The allowable size TQL may be determined by the following method.

キューサイズ>TQL_maxであれば、TQL=TQL_maxと決定し、キューサイズ<TQL_minであれば、TQL=TQL_minと決定し、キューサイズ>TQL_max、かつ、キューサイズ<TQL_minが成立しない場合、TQL=キューサイズと決定する。   If queue size> TQL_max, TQL = TQL_max is determined. If queue size <TQL_min, TQL = TQL_min is determined. If queue size> TQL_max and queue size <TQL_min do not hold, TQL = queue size And decide.

C−TQLが用いられる場合、上述した方法のいずれかによって、許容サイズTQLが決定される。   When C-TQL is used, the allowable size TQL is determined by any of the methods described above.

ii)AIAD−TQLを用いた場合のTQLの決定方法
負荷モニタモジュール11は、演算したパケットサイズS_Dequeue_Pktおよび出力パケット数N_Dequeue_Pktに基づいて、前回の処理時刻以降にキューから出力されたパケットの平均サイズS_Dequeue_Pkt_aveを演算する。そして、負荷モニタモジュール11は、その演算したパケットの平均サイズを用いて、次式により許容サイズTQLの最大値TQL_maxを演算する。
ii) Method of determining SQL when using AIAD-SQL The load monitor module 11 uses the calculated packet size S_Dequee_Pkt and the number of output packets N_Dequee_Pkt to calculate the average size S_Dequeeve_Pkt_Pkt_of packets output from the queue after the previous processing time. Is calculated. Then, the load monitor module 11 calculates the maximum value TQL_max of the allowable size TQL by the following equation using the calculated average size of the packets.

TQL_max=(キューのサイズの30%)/(S_Dequeue_Pkt_ave)・・・(5)
また、負荷モニタモジュール11は、TQL_minをTQL_min=1と決定する。
TQL_max = (30% of the size of the queue) / (S_Dequeue_Pkt_ave) (5)
Further, the load monitor module 11 determines TQL_min as TQL_min = 1.

そして、TQL_prevを前回のレートコントロールタイマが終了した時のTQLの値とし、TQL_newを次回のレートコントロールタイマが終了した時のTQLの値とする。   Then, TQL_prev is the value of TQL when the previous rate control timer is ended, and TQL_new is the value of TQL when the next rate control timer is ended.

そうすると、負荷モニタモジュール11は、該当のキュー4〜6から出力されたパケットがあった場合、TQL_prevとキューに保持されているパケット数とを比較し、TQL_prev>保持されているパケット数であれば、TQL_newを下げる。この場合、負荷モニタモジュール11は、例えば、TQL_newを1パケット分だけ下げる(TQL_new=TQL_prev−1)。キューへ入れたパケット数がキューへのパケットの出力要求数を上回っているので、TQL_newを下げることにしたものである。   Then, when there are packets output from the corresponding queues 4 to 6, the load monitor module 11 compares SQL_prev with the number of packets held in the queue, and if SQL_prev> the number of packets held. , TQL_new is lowered. In this case, for example, the load monitor module 11 lowers the SQL_new by one packet (SQL_new = SQL_prev−1). Since the number of packets put in the queue exceeds the number of packets output requests to the queue, the SQL_new is lowered.

また、負荷モニタモジュール11は、キューからのパケットの出力要求に対してキューからパケットを出力できなかったとき(即ち、空振りしたとき)、TQL_newを上げる。この場合、負荷モニタモジュール11は、例えば、TQL_newを1パケット分だけ上げる(TQL_new=TQL_prev+1)。パケットの出力要求数がキューへ入れたパケット数を上回っているので、パケットの送信処理に余裕がある状態であると見なし、TQL_newを上げることにしたものである。   Further, the load monitor module 11 increases the SQL_new when the packet cannot be output from the queue in response to the packet output request from the queue (that is, when the packet is idle). In this case, for example, the load monitor module 11 increases the SQL_new by one packet (SQL_new = SQL_prev + 1). Since the number of packet output requests exceeds the number of queued packets, it is assumed that there is a margin in packet transmission processing, and the SQL_new is increased.

ただし、負荷モニタモジュール11は、TQL_minからTQL_maxの範囲を超えないようにTQL_newの値を決定する。   However, the load monitor module 11 determines the value of SQL_new so as not to exceed the range of SQL_min to SQL_max.

そして、負荷モニタモジュール11は、レートコントロールタイマが終了した時点のTQL_newを許容サイズTQLとして更新するとともに、その更新したTQL_newをTQL_prevに設定する。   Then, the load monitor module 11 updates the SQL_new at the time when the rate control timer ends as the allowable size SQLL, and sets the updated SQL_new to SQL_prev.

iii)DB−TQLを用いた場合のTQLの決定方法
負荷モニタモジュール11は、キューへのパケットの出力要求回数とレートコントロール間隔とに基づいて、MAC要求レートを次式によって演算する。
iii) Method for Determining SQL When Using DB-SQL The load monitor module 11 calculates the MAC request rate according to the following equation based on the number of packet output requests to the queue and the rate control interval.

MAC要求レート=(出力要求回数)/(レートコントロール間隔)
・・・(6)
なお、出力要求回数は、パケットの出力要求が空振りであった回数を含む。
MAC request rate = (number of output requests) / (rate control interval)
... (6)
The number of output requests includes the number of times that a packet output request was missed.

そして、負荷モニタモジュール11は、アップストリームスケジューラ7からパケットの出力要求があったときに、空振りせずに各キュー4〜6の遅延が許容遅延量TQD(Tolerable Queue Delay)になるようにTQLを演算する。即ち、負荷モニタモジュール11は、次式によってTQLを演算する。   Then, the load monitor module 11 sets the SQL so that the delay of each of the queues 4 to 6 becomes an allowable delay amount TQD (Tolable Queue Delay) without making an idle when there is a packet output request from the upstream scheduler 7. Calculate. That is, the load monitor module 11 calculates TQL by the following equation.

TQL=TQD×(MAC要求レート)・・・(7)
負荷モニタモジュール11は、上述した3つの制御方法のいずれかにおける許容サイズTQLの決定方法に従って許容サイズTQLを演算すると、その演算した許容サイズTQLを用いて目標入力パケットレート(Target Enqueue Rate)を次式によって演算する。
TQL = TQD × (MAC request rate) (7)
When the load monitor module 11 calculates the allowable size TQL according to the determination method of the allowable size TQL in any of the three control methods described above, the load monitor module 11 uses the calculated allowable size TQL to set the target input packet rate (Target Enqueue Rate). Operate with an expression.

Target Enqueue Rate=(dequeue Rate)-((Queue Length-TQL)/(Rate Control Interval))+(Number of Dequeue Failure)/(Rate Control Interval)
・・・(8)
即ち、負荷モニタモジュール11は、レートコントロール間隔内でキュー長(=キューに保持されているパケット数)が許容サイズTQLに近づくように、各キュー4〜6にパケットを入れるときの目標入力パケットレートを演算する。なお、式(8)において、dequeue rateは、各キュー4〜6から出力されるパケットの出力レートであり、Queue Lengthは、キュー長であり、Rate Control Intervalは、レートコントロール間隔であり、Number of Dequeue Failureは、上述した失敗回数N_Dequeue_Failである。
Target Enqueue Rate = (dequeue Rate)-((Queue Length-TQL) / (Rate Control Interval)) + (Number of Dequeue Failure) / (Rate Control Interval)
... (8)
That is, the load monitor module 11 sets the target input packet rate when the packets are put into each of the queues 4 to 6 so that the queue length (= the number of packets held in the queue) approaches the allowable size SQL within the rate control interval. Is calculated. In equation (8), the request rate is the output rate of the packet output from each of the queues 4 to 6, Queue Length is the queue length, the Rate Control Interval is the rate control interval, and Number of Demand Failure is the number of failures N_Dequee_Fail described above.

そして、負荷モニタモジュール11は、通知タイプ=NOTIFY_TARGET_RATE、RateInfo=Target Enqueue RateおよびLoad Generation ID=負荷を発生させている通信装置のIDからなる信号Rate_signalを生成し、その生成した信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Load Generation ID]をクロスレイヤモジュール21へ送信する。   Then, the load monitor module 11 generates a signal Rate_signal_TARGET_RATE_NOTE_TARGET_RATE, RateInfo = Target Enqueue Rate, and Load Generation ID = Load Generation ID = the ID of the communication device generating the load, and the generated signal Rate_signal_TAT_TE_TE Target Enqueue Rate / Load Generation ID] is transmitted to the cross layer module 21.

[レートシグナリング]
A.上層レートコントローラへのレートシグナリング
クロスレイヤモジュール21は、負荷モニタモジュール11から信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Load Generation ID]を受けると、信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate]を上層レートコントローラ20へ送信する(図1参照)。
[Rate signaling]
A. Rate Signaling to Upper Layer Rate Controller Upon receiving the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Generation ID] from the load monitor module 11, the cross layer module 21 receives the signal Rate_signal = [NOTIFY_TArgue_RATEQE_Rate_Rate_Rate_Rate 20 (see FIG. 1).

B.下層レートコントローラへのレートシグナリング
図3および図4は、それぞれ、目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態1における第1および第2の概念図である。なお、図3および図4においては、通信装置100が通信装置101へ目標入力パケットレートを通知する場合について説明する。
B. Rate Signaling to Lower Rate Controller FIG. 3 and FIG. 4 are first and second conceptual diagrams, respectively, in Embodiment 1 for explaining the operation of notifying the target input packet rate to other communication devices. 3 and 4, the case where the communication apparatus 100 notifies the communication apparatus 101 of the target input packet rate will be described.

通信装置100の負荷モニタモジュール11は、キュー4(通信装置101から受信したパケットを保持するキュー)における保持パケット数H_Pktがキュー4の許容サイズTQLから掛け離れていることを検出し、上述した方法でキュー6への目標入力パケットレートを演算する。   The load monitor module 11 of the communication apparatus 100 detects that the number of held packets H_Pkt in the queue 4 (queue holding the packets received from the communication apparatus 101) is far from the allowable size TQL of the queue 4, and uses the method described above. The target input packet rate to the queue 6 is calculated.

そして、通信装置100の負荷モニタモジュール11は、その演算した目標入力パケットレートを含む信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Load Generation ID]をアップストリームスケジューラ7へ送信し、アップストリームスケジューラ7は、信号Rate_signalを負荷モニタモジュール11から受信する。   Then, the load monitor module 11 of the communication device 100 transmits the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate / Load Generation ID] including the calculated target input packet rate to the upstream scheduler 7, and the upstream scheduler 7 The signal Rate_signal is received from the load monitor module 11.

そうすると、通信装置100のアップストリームスケジューラ7は、通信装置101宛てのパケットを保持するキュー8に1個のパケットを入れる際にそのパケットに受信した信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Requester ID]を追加してからキュー8に入れる。ここで、Requester IDは、通信装置100のIDである。そして、通信装置100のキュー8は、アンロック状態にある場合にMACレイヤモジュール1からパケットの出力要求を受けると、信号Rate_signalを含む1個のパケットをMACレイヤモジュール1へ送信し、MACレイヤモジュール1は、信号Rate_signalを含む1個のパケットを通信装置101へ送信する(図3参照)。   Then, when the upstream scheduler 7 of the communication apparatus 100 puts one packet in the queue 8 holding the packet addressed to the communication apparatus 101, the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate / Requester ID] received in the packet is received. Is added to queue 8. Here, the Requester ID is the ID of the communication device 100. When the queue 8 of the communication apparatus 100 receives the packet output request from the MAC layer module 1 in the unlocked state, the queue 8 transmits one packet including the signal Rate_signal to the MAC layer module 1, and the MAC layer module 1 1 transmits one packet including the signal Rate_signal to the communication apparatus 101 (see FIG. 3).

通信装置101のMACレイヤモジュール1は、信号Rate_signalを含む1個のパケットを通信装置100から受信し、信号Rate_signalを含む1個のパケットをリンクレイヤクラスファイア2へ送信する。   The MAC layer module 1 of the communication apparatus 101 receives one packet including the signal Rate_signal from the communication apparatus 100 and transmits one packet including the signal Rate_signal to the link layer classfire 2.

通信装置101のリンクレイヤクラスファイア2は、信号Rate_signalを含む1個のパケットを受け、その受けた1個のパケットから信号Rate_signalを取り出す。そして、通信装置101のリンクレイヤクラスファイア2は、その取り出した信号Rate_signalを下層レートコントローラ12へ送信し、信号Rate_signalを取り出した後の1個のパケットをネットワーククラシファイア13へ送信する。   The link layer classifier 2 of the communication apparatus 101 receives one packet including the signal Rate_signal and extracts the signal Rate_signal from the received one packet. Then, the link layer classifier 2 of the communication apparatus 101 transmits the extracted signal Rate_signal to the lower layer rate controller 12 and transmits one packet after extracting the signal Rate_signal to the network classifier 13.

ネットワーククラシファイア13は、信号Rate_signalを取り出した後の1個のパケットを受け、その受けた1個のパケットの宛先が通信装置101であるとき、その1個のパケットをUDP15またはTCP16へ送信し、その受けた1個のパケットの宛先が通信装置101以外の通信装置であるとき、その1個のパケットをルーティングモジュール14へ送信する(図4参照)。   The network classifier 13 receives one packet after extracting the signal Rate_signal, and when the destination of the received one packet is the communication device 101, transmits the one packet to the UDP 15 or the TCP 16 and When the destination of the received one packet is a communication device other than the communication device 101, the one packet is transmitted to the routing module 14 (see FIG. 4).

上述した動作によって、通信装置100におけるキュー4の負荷を発生させている通信装置101へ目標入力パケットレートが送信される。   With the above-described operation, the target input packet rate is transmitted to the communication apparatus 101 that is generating the load on the queue 4 in the communication apparatus 100.

[レートコントロール]
A.上層レートコントローラ20におけるレートコントロール
次に、上層レートコントローラ20におけるレートコントロールについて説明する。
[Rate control]
A. Rate Control in Upper Layer Rate Controller 20 Next, rate control in the upper layer rate controller 20 will be described.

上層レートコントローラ20は、信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate]を受けると、パケットのキュー5への入力レートが目標入力パケットレートに近づくように、トラフィックを生成するアプリケーション毎の目標出力パケットレートを演算する。   Upon receiving the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate], the upper layer rate controller 20 sets the target output packet rate for each application that generates traffic so that the input rate to the queue 5 of the packet approaches the target input packet rate. Calculate.

以下、例として、Voice17とVideo18との2つのアプリケーションがトラフィックを生成する場合を対象にして説明する。   Hereinafter, as an example, a case will be described in which two applications of Voice 17 and Video 18 generate traffic.

上層レートコントローラ20は、信号Rate_signalに含まれる目標入力パケットレート(=Target Enqueue Rate)を用いて増減レート(Decrement/increment Rate)=Δを次式により演算する。   The upper layer rate controller 20 calculates an increase / decrease rate (Decrement / increment Rate) = Δ using the target input packet rate (= Target Queue Rate) included in the signal Rate_signal by the following equation.

Δ=(Current Total Rate−Target Enqueue Rate)・・・(9)
なお、式(9)において、Current Total Rateは、Voice17から出力されている現在の出力レートCurrent Voice Rateと、Video18から出力されている現在の出力レートCurrent Video Rateとの和である。
Δ = (Current Total Rate−Target Enqueue Rate) (9)
In equation (9), Current Total Rate is the sum of the current output rate Current Voice Rate output from Voice 17 and the current output rate Current Video Rate output from Video 18.

式(9)によって、Voice17およびVideo18が増減すべき出力レートの増減レートΔが決定される。そして、Δが正であれば、出力パケットレートは、減少され、Δが負であれば、出力パケットレートは、増加される。   Expression (9) determines the increase / decrease rate Δ of the output rate that should be increased or decreased by the Voice 17 and the Video 18. If Δ is positive, the output packet rate is decreased, and if Δ is negative, the output packet rate is increased.

上層レートコントローラ20は、式(9)によって増減レートΔを演算すると、その演算した増減レートΔを用いて各アプリケーションごとの目標出力パケットレートを演算する。   The upper layer rate controller 20 calculates the increase / decrease rate Δ by the equation (9), and calculates the target output packet rate for each application using the calculated increase / decrease rate Δ.

この場合、上層レートコントローラ20は、全体の増減レートΔを相対トラフィックレート係数であるαを用いてαと(1−α)とに重み付けして、Voice17とVideo18とのそれぞれの目標出力パケットレートを演算する。   In this case, the upper layer rate controller 20 weights the overall increase / decrease rate Δ to α and (1−α) using α which is a relative traffic rate coefficient, and sets the target output packet rates of the Voice 17 and the Video 18 respectively. Calculate.

例として、上層レートコントローラ20は、相対トラフィックレート係数αを次式によって演算する。   As an example, the upper layer rate controller 20 calculates the relative traffic rate coefficient α by the following equation.

α=Initial Voice Rate/Initial Total Rate・・・(10)
上層レートコントローラ20は、相対トラフィックレート係数αを演算すると、その演算した相対トラフィックレート係数αを用いて各アプリケーション(Voice17およびVideo18)の目標出力パケットレートを次のように演算する。
α = Initial Voice Rate / Initial Total Rate (10)
When calculating the relative traffic rate coefficient α, the upper layer rate controller 20 calculates the target output packet rate of each application (Voice 17 and Video 18) as follows using the calculated relative traffic rate coefficient α.

i)VoiceおよびVideoの出力レートが共に最小レートよりも大きい場合
上層レートコントローラ20は、次式によってVoice17およびVideo18のそれぞれの目標出力パケットレートを演算する。
i) When the output rates of Voice and Video are both greater than the minimum rate The upper layer rate controller 20 calculates the target output packet rates of Voice 17 and Video 18 according to the following equations.

VoiceOutgoingTrafficeRate=CurrentVoiceOutgoingTrafficRate-α×Δ
・・・(11)
VideoOutgoingTrafficeRate=CurrentVideoOutgoingTrafficRate-(1-α)×Δ
・・・(12)
ii)VoiceおよびVideoの一方の出力レートが最小レートで送信している場合
上層レートコントローラ20は、式(9)によって演算した増減レートΔが正である場合(Δ>0)、次の方法によってVoice17およびVideo18の目標出力パケットレートを演算する。
VoiceOutgoingTrafficeRate = CurrentVoiceOutgoingTrafficRate-α × Δ
(11)
VideoOutgoingTrafficeRate = CurrentVideoOutgoingTrafficRate- (1-α) × Δ
(12)
ii) When one of the output rates of Voice and Video is transmitted at the minimum rate When the increase / decrease rate Δ calculated by Equation (9) is positive (Δ> 0), The target output packet rate of Voice 17 and Video 18 is calculated.

上層レートコントローラ20は、Voice17の現在の出力レート(=CurrentVoiceOutgoingTrafficRate)がVoice17の出力レートの最小値(=VoiceOutgoingTrafficRate_min)よりも大きいか否かを判定し、Voice17の現在の出力レートがVoice17の出力レートの最小値よりも大きい場合、次式によってVoice17およびVideo18の目標出力パケットレートを演算する。   The upper layer rate controller 20 determines whether or not the current output rate of Voice 17 (= CurrentVoiceOutgoingTrafficRate) is larger than the minimum value of the output rate of Voice 17 (= VoiceOutgoingTrafficRate_min), and the current output rate of Voice 17 is the output rate of Voice 17. If it is larger than the minimum value, the target output packet rates of Voice 17 and Video 18 are calculated by the following equation.

TargetVoiceOutgoingTrafficeRate=CurrentVoiceOutgoingTrafficRate-Δ
・ ・・(13)
TargetVideoOutgoingTrafficeRate=VideoOutgoingTrafficRate_min
・ ・・(14)
また、上層レートコントローラ20は、Video18の現在の出力レート(=CurrentVideoOutgoingTrafficRate)がVideo18の出力レートの最小値(=VideoOutgoingTrafficRate_min)よりも大きいか否かを判定し、Video18の現在の出力レートがVideo18の出力レートの最小値よりも大きい場合、次式によってVoice17およびVideo18の目標出力パケットレートを演算する。
TargetVoiceOutgoingTrafficeRate = CurrentVoiceOutgoingTrafficRate-Δ
(13)
TargetVideoOutgoingTrafficeRate = VideoOutgoingTrafficRate_min
(14)
Further, the upper layer rate controller 20 determines whether or not the current output rate of Video 18 (= CurrentVideoOutgoingTrafficRate) is larger than the minimum value of the output rate of Video 18 (= VideoOutgoingTrafficRate_min), and the current output rate of Video 18 is the output of Video 18 When the rate is larger than the minimum value, the target output packet rates of Voice 17 and Video 18 are calculated according to the following equation.

TargetVoiceOutgoingTrafficeRate=VoiceOutgoingTrafficRate-min
・ ・・(15)
TargetVideoOutgoingTrafficeRate=CurrentVideoOutgoingTrafficRate-Δ
・・・(16)
このように、上層レートコントローラ20は、出力パケットレートを減らす処理を行なう場合(Δ>0である場合)、指定された最小レートよりも大きいレートで送信しているアプリケーション(Voice17およびVideo18のいずれか一方)の出力パケットレートを減らす。
TargetVoiceOutgoingTrafficeRate = VoiceOutgoingTrafficRate-min
(15)
TargetVideoOutgoingTrafficeRate = CurrentVideoOutgoingTrafficRate-Δ
... (16)
As described above, when the upper layer rate controller 20 performs the process of reducing the output packet rate (when Δ> 0), the application (either Voice 17 or Video 18) transmitting at a rate larger than the specified minimum rate. On the other hand, reduce the output packet rate.

但し、上層レートコントローラ20は、指定された最小レートを下回らないようにVoice17およびVideo18の目標出力パケットレートを演算する。   However, the upper layer rate controller 20 calculates the target output packet rates of the Voice 17 and the Video 18 so as not to fall below the designated minimum rate.

次に、出力パケットレートを増やす場合(Δ<0である場合)、上層レートコントローラ20は、次式によって、Voice17およびVideo18の目標出力パケットレートを演算する。   Next, when increasing the output packet rate (when Δ <0), the upper layer rate controller 20 calculates the target output packet rate of Voice 17 and Video 18 by the following equation.

TargetVoiceOutgoingTrafficeRate=CurrentVoiceOutgoingTrafficRate-α×Δ
・ ・・(17)
TargetVideoOutgoingTrafficeRate=CurrentVideoOutgoingTrafficRate-(1−α)×Δ ・・・(18)
上層レートコントローラ20は、上述した方法によって演算したVoice17およびVideo18の目標出力パケットレートをそれぞれVoice17およびVideo18へ出力し、目標出力パケットレートでパケットをキュー5へ出力するようにVoice17およびVideo18を制御する。
TargetVoiceOutgoingTrafficeRate = CurrentVoiceOutgoingTrafficRate-α × Δ
(17)
TargetVideoOutgoingTrafficeRate = CurrentVideoOutgoingTrafficRate- (1-α) × Δ (18)
The upper layer rate controller 20 outputs the target output packet rates of the Voice 17 and the Video 18 calculated by the above-described method to the Voice 17 and the Video 18, respectively, and controls the Voice 17 and the Video 18 so that the packets are output to the queue 5 at the target output packet rate.

B.下層レートコントローラ12におけるレートコントロール
下層レートコントローラ12は、レートコントロールの対象となるキュー(キュー8,9の少なくとも1つ)を決定するために、信号Rate_signalに含まれている送信元のIPアドレスを抽出する。
B. Rate control in the lower layer rate controller 12 The lower layer rate controller 12 extracts the IP address of the transmission source included in the signal Rate_signal in order to determine a queue (at least one of the queues 8 and 9) to be rate controlled. To do.

上述したように、信号Rate_signalは、信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Requester ID]からなるので、下層レートコントローラ12は、信号Rate_signalから“Requester ID”を送信元のIPアドレスとして抽出する。Requester IDは、レート制御を要求した通信装置のIPアドレスからなるので、Requester IDが送信元のIPアドレスを示すことになる。   As described above, since the signal Rate_signal includes the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate / Requester ID], the lower layer rate controller 12 extracts “Requester ID” from the signal Rate_signal as the source IP address. Since the Requester ID is made up of the IP address of the communication device that has requested the rate control, the Requester ID indicates the IP address of the transmission source.

そして、Requester IDが通信装置101のIPアドレスからなるとき、下層レートコントローラ12は、キュー8をレートコントローラの対象となるキューと決定し、Requester IDが通信装置102のIPアドレスからなるとき、下層レートコントローラ12は、キュー9をレートコントローラの対象となるキューと決定する。   When the Requester ID is composed of the IP address of the communication device 101, the lower layer rate controller 12 determines the queue 8 as a queue to be the target of the rate controller, and when the Requester ID is composed of the IP address of the communication device 102, the lower layer rate. The controller 12 determines the queue 9 as a queue targeted for the rate controller.

下層レートコントローラ12は、レートコントロールの対象となるキューを決定すると、信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Requester ID]に含まれているTarget Enqueue Rateを抽出し、その抽出したTarget Enqueue Rateを目標出力パケットレートとする。   When the lower-layer rate controller 12 determines a queue to be rate-controlled, the lower-layer rate controller 12 extracts a target enqueue rate that is included in the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate / Requester ID], and the extracted target enqueue. The output packet rate.

そうすると、下層レートコントローラ12は、目標出力パケットレートの逆数を演算して該当のキューがロック状態に設定されているロック期間Lck_time(=Lock Interval)を演算し、その演算したロック期間Lck_timeによって、レートコントロールの対象となるキューのロック期間を更新する。   Then, the lower layer rate controller 12 calculates the reciprocal of the target output packet rate to calculate the lock period Lck_time (= Lock Interval) in which the corresponding queue is set to the locked state, and the rate is calculated according to the calculated lock period Lck_time. Update the lock period of the queue to be controlled.

その後、下層レートコントローラ12は、ロック期間Lck_timeを用いてキュー8,9から出力されるパケットのレートコントロールを行なう。   Thereafter, the lower layer rate controller 12 controls the rate of packets output from the queues 8 and 9 using the lock period Lck_time.

キュー8,9は、最初の状態は、アンロック状態である。キュー8,9が初期状態にあるときに、下層レートコントローラ12は、信号Rate_signalを受けると、該当のキュー(キュー8または9)の状態をアンロック状態からロック状態に変えてから、ロックタイマにロック期間Lck_timeを設定し、ロックタイマを起動させる。一方、該当のキューが初期状態でない場合、下層レートコントローラ12は、信号Rate_signalを受けたとき、ロックタイマが既に進行していれば、ロック期間Lck_timeの満了を待つ。そして、ロック期間Lck_timeが満了したら、該当のキューの状態をアンロック状態に更新してから、新しいロック期間Lck_timeでロックタイマを起動させる。   The queues 8 and 9 are initially unlocked. When the queues 8 and 9 are in the initial state, the lower layer rate controller 12 receives the signal Rate_signal, changes the state of the corresponding queue (queue 8 or 9) from the unlocked state to the locked state, and then enters the lock timer. A lock period Lck_time is set and a lock timer is started. On the other hand, if the corresponding queue is not in the initial state, the lower layer rate controller 12 waits for the lock period Lck_time to expire if the lock timer has already progressed when the signal Rate_signal is received. When the lock period Lck_time expires, the state of the corresponding queue is updated to the unlocked state, and then the lock timer is started with the new lock period Lck_time.

また、下層レートコントローラ12は、ロック期間Lck_timeが満了したとき、該当のキューの状態をアンロック状態に更新し、ロックタイマをリセットする(再起動させる)。   Further, when the lock period Lck_time expires, the lower layer rate controller 12 updates the state of the corresponding queue to the unlocked state, and resets (restarts) the lock timer.

一方、ダウンストリームスケジューラ10は、MACレイヤモジュール1からパケットの出力要求が届いたとき、アンロック状態にあるキュー(キュー8,9のいずれか)から1個のパケットを取り出してMACレイヤモジュール1へ送信する。そして、ダウンストリームスケジューラ10が下層レートコントローラ12に対してキューの状態をロック状態に設定するように要求する。下層レートコントローラ12は、要求に応じて、そのパケットを取り出したキュー(キュー8,9のいずれか)の状態をロック状態に更新する。   On the other hand, when a packet output request arrives from the MAC layer module 1, the downstream scheduler 10 takes out one packet from the queue (either queue 8 or 9) in the unlocked state and sends it to the MAC layer module 1. Send. Then, the downstream scheduler 10 requests the lower rate controller 12 to set the queue state to the locked state. In response to the request, the lower layer rate controller 12 updates the state of the queue (one of the queues 8 and 9) from which the packet has been extracted to the locked state.

上述したように下層レートコントローラ12は、受信した信号Rate_signalから目標出力パケットレート(=Target Enqueue Rate)を取り出し、その取り出した目標出力パケットレートになるようにキュー(キュー8,9のいずれか)の出力パケットレートを制御する。   As described above, the lower layer rate controller 12 extracts the target output packet rate (= Target Enqueue Rate) from the received signal Rate_signal, and the queue (any one of the queues 8 and 9) so as to have the extracted target output packet rate. Controls the output packet rate.

これによって、通信装置101から通信装置100へ送信されるパケットが増減し、隣接の通信装置100のキュー(キュー4または6)に保持された保持パケット数H_Pktがキュー(キュー4または6)の許容サイズTQLに徐々に近づく。   As a result, the number of packets transmitted from the communication apparatus 101 to the communication apparatus 100 increases or decreases, and the number of held packets H_Pkt held in the queue (queue 4 or 6) of the adjacent communication apparatus 100 is the permissible queue (queue 4 or 6). Gradually approach size TQL.

図5は、目標入力パケットレートをアプリケーションへ通知する動作を説明するためのフローチャートである。一連の動作が開始され、レートコントロールタイマが満了すると(ステップS1)、負荷モニタモジュール11は、キュー4〜6(アップストリームキュー)に対してキュー条件取得要求を送信し(ステップS2)、キュー4〜6(アップストリームキュー)は、キュー条件(=出力パケット数N_Dequeue_Pkt、失敗回数N_Dequeue_Fail、パケットサイズS_Dequeue_Pktおよび保持パケット数H_Pktからなる)を負荷モニタモジュール11へ送信する(ステップS3)。   FIG. 5 is a flowchart for explaining the operation of notifying the application of the target input packet rate. When a series of operations is started and the rate control timer expires (step S1), the load monitor module 11 transmits a queue condition acquisition request to the queues 4 to 6 (upstream queue) (step S2). ˜6 (upstream queue) transmits a queue condition (= output packet number N_Dequee_Pkt, failure count N_Dequee_Fail, packet size S_Dequee_Pkt, and retained packet number H_Pkt) to the load monitor module 11 (step S3).

そして、負荷モニタモジュール11は、キュー条件(=出力パケット数N_Dequeue_Pkt、失敗回数N_Dequeue_Fail、パケットサイズS_Dequeue_Pktおよび保持パケット数H_Pktからなる)を受信し、その受信したキュー条件(=出力パケット数N_Dequeue_Pkt、失敗回数N_Dequeue_Fail、パケットサイズS_Dequeue_Pktおよび保持パケット数H_Pktからなる)を用いて、上述した方法によって、目標入力パケットレートを演算する(ステップS4)。   The load monitor module 11 receives the queue condition (= the number of output packets N_Dequee_Pkt, the number of failures N_Dequee_Fail, the packet size S_Dequee_Pkt and the number of held packets H_Pkt), and the received queue condition (= number of output packets N_Dequee_Pk_fail_Pk N_Dequee_Fail, packet size S_Dequee_Pkt, and number of retained packets H_Pkt) are used to calculate the target input packet rate by the method described above (step S4).

そうすると、負荷モニタモジュール11は、その演算した目標入力パケットレートを含む信号Rate_signalをクロスレイヤモジュール21へ通知する(ステップS5)。そして、負荷モニタモジュール11において、新たなレートコントロールタイマが設定される(ステップS6)。   Then, the load monitor module 11 notifies the cross layer module 21 of the signal Rate_signal including the calculated target input packet rate (step S5). Then, a new rate control timer is set in the load monitor module 11 (step S6).

信号Rate_signalを受信したクロスレイヤモジュール21は、その受信した信号Rate_signalを上層レートコントローラ20へ送信する(ステップS7)。そして、上層レートコントローラ20は、クロスレイヤモジュール21から受信した信号Rate_signalに含まれる目標入力パケットレートを用いて、上述した方法によって、Voice17およびVideo18の目標出力パケットレートを演算し(ステップS8)、Voice17およびVideo18からのパケットの出力パケットレートが目標出力パケットレートになるようにVoice17およびVideo18を制御する(ステップS9,S10)。   The cross layer module 21 that has received the signal Rate_signal transmits the received signal Rate_signal to the upper layer rate controller 20 (step S7). Then, the upper layer rate controller 20 calculates the target output packet rates of Voice 17 and Video 18 by the above-described method using the target input packet rate included in the signal Rate_signal received from the cross layer module 21 (Step S8). The Voice 17 and the Video 18 are controlled so that the output packet rate of the packets from the Video 18 becomes the target output packet rate (Steps S9 and S10).

そして、Voice17およびVideo18は、それぞれ、パケットの出力パケットレートが目標出力パケットレートになるようにパケットをルーティングモジュール14へ送信する。これによって、一連の動作は終了する。   Then, the Voice 17 and the Video 18 each transmit a packet to the routing module 14 so that the output packet rate of the packet becomes the target output packet rate. Thus, a series of operations is completed.

このように、負荷の発生元が当該通信装置である場合、パケットの生成元(=Voice17およびVideo18)からキュー5への出力パケットレートを制御することによって、キュー5に保持された保持パケット数N_Pktがキュー5の許容サイズTQLに近づく。その結果、キュー5における負荷が減少する。   In this way, when the load is generated from the communication device, the number N_Pkt of held packets held in the queue 5 is controlled by controlling the output packet rate from the packet generation source (= Voice 17 and Video 18) to the queue 5. Approaches the allowable size TQL of the queue 5. As a result, the load on the queue 5 is reduced.

図6は、目標入力パケットレートを他の通信装置へ通知する動作を説明するためのフローチャートである。図6に示すフローチャートは、図5に示すフローチャートのステップS5,S7〜S10をステップS11〜S18に代えたものであり、その他は、図5に示すフローチャートと同じである。   FIG. 6 is a flowchart for explaining the operation of notifying the target input packet rate to another communication apparatus. The flowchart shown in FIG. 6 is the same as the flowchart shown in FIG. 5 except that steps S5, S7 to S10 in the flowchart shown in FIG. 5 are replaced with steps S11 to S18.

上述したステップS1〜ステップS4が順次実行されると、負荷モニタモジュール11は、演算した目標入力パケットレートを含む信号Rate_signalをアップストリームスケジューラ7へ送信し、目標入力パケットレートのパケットへの追加を依頼する(ステップS11)。   When step S1 to step S4 described above are sequentially executed, the load monitor module 11 transmits a signal Rate_signal including the calculated target input packet rate to the upstream scheduler 7 and requests addition of the target input packet rate to the packet. (Step S11).

一方、MAC層のMACレイヤモジュール1は、チャネルアクセスを行ない、パケットの送信が可能な状態になると、パケットの出力要求(Dequeue要求)をダウンストリームスケジューラ10へ送信する(ステップS12)。そして、ダウンストリームスケジューラ10は、パケットの出力要求(Dequeue要求)に応じて、アンロック状態にあるキュー(ダウンストリームキュー)から1個のパケットを取り出し(ステップS13)、その取り出した1個のパケットをMACレイヤモジュール1へ送信する(ステップS14)。   On the other hand, when the MAC layer module 1 of the MAC layer performs channel access and becomes ready to transmit a packet, the MAC layer module 1 transmits a packet output request (Dequeue request) to the downstream scheduler 10 (step S12). Then, the downstream scheduler 10 extracts one packet from the unlocked queue (downstream queue) in response to the packet output request (Dequeue request) (step S13), and the extracted one packet Is transmitted to the MAC layer module 1 (step S14).

また、ダウンストリームスケジューラ10は、パケットが空になったキューを指定したパケットの出力要求(Dequeue要求)をアップストリームスケジューラ7へ送信する(ステップS15)。そして、アップストリームスケジューラ7は、ダウンストリームスケジューラ10からのパケットの出力要求(Dequeue要求)に応じて、空になったキュー(キュー8,9のいずれか)に入れるべき1個のパケットをキュー4〜6(アップストリームキュー)から取り出し(ステップS16)、その取り出した1個のパケットに目標入力パケットレートを含む信号Rate_signalを追加する(ステップS17)。   Further, the downstream scheduler 10 transmits a packet output request (Dequeue request) specifying the queue in which the packet is empty to the upstream scheduler 7 (step S15). Then, in response to a packet output request (Dequeue request) from the downstream scheduler 10, the upstream scheduler 7 queues one packet to be placed in an empty queue (one of the queues 8 and 9). To 6 (upstream queue) (step S16), and a signal Rate_signal including the target input packet rate is added to the extracted one packet (step S17).

そして、アップストリームスケジューラ7は、目標入力パケットレートを含む1個のパケットを空になったキューへ入れる(ステップS18)。   Then, the upstream scheduler 7 puts one packet including the target input packet rate into an empty queue (step S18).

パケットが空であったキューは、目標入力パケットレートを含む1個のパケットが入れられることによって空でなくなり、上述したステップS12〜ステップS14に従って他の通信装置へ送信される。これによって、一連の動作は終了する。   The queue in which the packet is empty disappears when one packet including the target input packet rate is inserted, and is transmitted to another communication apparatus according to the above-described steps S12 to S14. Thus, a series of operations is completed.

図7は、目標入力パケットレートを受信した通信装置における動作を説明するためのフローチャートである。一連の動作が開始されると、MACレイヤモジュール1は、信号Rate_signal(目標入力パケットレート)を含むパケットを受信し、その受信したパケットをリンクレイヤクラシファイア2へ送信する(ステップS21)。   FIG. 7 is a flowchart for explaining the operation in the communication apparatus that has received the target input packet rate. When a series of operations is started, the MAC layer module 1 receives a packet including the signal Rate_signal (target input packet rate), and transmits the received packet to the link layer classifier 2 (step S21).

そして、リンクレイヤクラシファイア2は、MACレイヤモジュール1から信号Rate_signalを含むパケットを受信し、その受信したパケットから信号Rate_signalを抽出するとともに、その抽出した信号Rate_signalを下層レートコントローラ12へ通知する(ステップS22)。なお、リンクレイヤクラシファイア2は、信号Rate_signalを抽出した後のパケットをその送信先に応じてトランスポート層(UDP15およびTCP16)またはルーティングモジュール14へ送信する。   The link layer classifier 2 receives the packet including the signal Rate_signal from the MAC layer module 1, extracts the signal Rate_signal from the received packet, and notifies the lower layer rate controller 12 of the extracted signal Rate_signal (step S22). ). The link layer classifier 2 transmits the packet after extracting the signal Rate_signal to the transport layer (UDP 15 and TCP 16) or the routing module 14 according to the transmission destination.

下層レートコントローラ12は、信号Rate_signalを受信すると、その受信した信号Rate_signalに含まれる目標入力パケットレートを用いて、上述した方法によって、目標出力パケットレートを演算するとともに、その演算した目標出力パケットレートの逆数を演算してロック期間Lck_time(=ロックインターバル)を演算する(ステップS23)。   When the lower layer rate controller 12 receives the signal Rate_signal, the lower layer rate controller 12 calculates the target output packet rate by the above-described method using the target input packet rate included in the received signal Rate_signal, and the calculated target output packet rate. The reciprocal is calculated to calculate the lock period Lck_time (= lock interval) (step S23).

そして、ロックタイマが満了すると(ステップS24)、下層レートコントローラ12は、ロック状態にあるキュー(ダウンストリームキュー)の状態をロック状態からアンロック状態に変える(ステップS25)。その後、ロックタイマが設定される(ステップS26)。   When the lock timer expires (step S24), the lower layer rate controller 12 changes the state of the locked queue (downstream queue) from the locked state to the unlocked state (step S25). Thereafter, a lock timer is set (step S26).

一方、MAC層のMACレイヤモジュール1は、チャネルアクセスを行ない、パケットの送信が可能な状態になると、パケットの出力要求(Dequeue要求)をダウンストリームスケジューラ10へ送信する(ステップS27)。そして、ダウンストリームスケジューラ10は、パケットの出力要求(Dequeue要求)に応じて、アンロック状態にあるキュー(ダウンストリームキュー)から1個のパケットを取り出す(ステップS28)。   On the other hand, when the MAC layer module 1 of the MAC layer performs channel access and becomes ready to transmit a packet, the MAC layer module 1 transmits a packet output request (Dequeue request) to the downstream scheduler 10 (step S27). Then, the downstream scheduler 10 takes out one packet from the queue (downstream queue) in the unlocked state in response to the packet output request (Dequeue request) (step S28).

また、ダウンストリームスケジューラ10は、1個のパケットを取り出したキューの状態をロック状態に設定するためのキューロック要求を下層レートコントローラ12へ送信する(ステップS29)。   Further, the downstream scheduler 10 transmits to the lower rate controller 12 a queue lock request for setting the state of the queue from which one packet has been extracted to the locked state (step S29).

下層レートコントローラ12は、ダウンストリームスケジューラ10からのキューロック要求に応じて、1個のパケットを出力したキュー(UNLOCK_queueID)の状態をロック状態に変更する(ステップS30)。   In response to the queue lock request from the downstream scheduler 10, the lower layer rate controller 12 changes the state of the queue (UNLOCK_queueID) that has output one packet to the locked state (step S30).

その後、ダウンストリームスケジューラ10は、ステップS28において、キューから取り出した1個のパケットをMACレイヤモジュール1へ送信するとともに(ステップS31)、パケットが空になったキューを指定したパケットの出力要求(Dequeue要求)をアップストリームスケジューラ7へ送信する(ステップS32)。   Thereafter, in step S28, the downstream scheduler 10 transmits one packet taken out from the queue to the MAC layer module 1 (step S31), and outputs an output request (Dequeue) specifying the queue in which the packet is empty. Request) is transmitted to the upstream scheduler 7 (step S32).

そして、アップストリームスケジューラ7は、パケットの出力要求(Dequeue要求)に応じて、キュー4〜6(アップストリームキュー)から1個のパケットを取り出し(ステップS33)、その取り出した1個のパケットを空になったキューへ入れる(ステップS34)。これによって、一連の動作が終了する。   Then, the upstream scheduler 7 takes out one packet from the queues 4 to 6 (upstream queue) in response to the packet output request (Dequeue request) (step S33), and empty the taken out one packet. Is placed in the queue (step S34). As a result, a series of operations is completed.

上述したように、目標入力パケットレートを受信した通信装置においては、受信した目標入力パケットレートに応じたロック期間Lck_time(ロックインターバル)が演算され、その演算されたたロック期間Lck_time(ロックインターバル)によって、キュー8,9からMACレイヤモジュール1(MAC層)へのパケットの出力パケットレートが制御される。   As described above, in the communication device that has received the target input packet rate, the lock period Lck_time (lock interval) corresponding to the received target input packet rate is calculated, and the calculated lock period Lck_time (lock interval) is calculated. The output packet rate of packets from the queues 8 and 9 to the MAC layer module 1 (MAC layer) is controlled.

なお、図7においては、通信装置101が目標入力パケットレートの通知を受信した場合について説明したが、通信装置102が目標入力パケットレートの通知を受信した場合も、図7に示すフローチャートに従ってパケットの出力パケットレートの制御が行なわれる。   In FIG. 7, the case where the communication apparatus 101 has received the notification of the target input packet rate has been described. However, even when the communication apparatus 102 receives the notification of the target input packet rate, the packet is transmitted according to the flowchart illustrated in FIG. 7. The output packet rate is controlled.

図8は、図1に示す負荷モニタモジュール11におけるキューの許容サイズを演算する動作を説明するためのフローチャートである。一連の動作が開始されると、アップストリームスケジューラ7は、キュー(キュー4〜6のいずれか)からパケットの出力を試みる(ステップS41)。   FIG. 8 is a flowchart for explaining the operation of calculating the allowable size of the queue in the load monitor module 11 shown in FIG. When a series of operations is started, the upstream scheduler 7 tries to output a packet from the queue (any one of the queues 4 to 6) (step S41).

そして、負荷モニタモジュール11は、パケットを出力(Dequeue)できたか否かを判定し(ステップS42)、パケットを出力(Dequeue)できたと判定したとき、出力(Dequeue)できたパケット数を計測する(ステップS43)。その後、負荷モニタモジュール11は、出力(Dequeue)できたパケット数のパケットサイズを演算する(ステップS44)。   Then, the load monitor module 11 determines whether or not the packet has been output (Dequeue) (step S42), and when it is determined that the packet has been output (Dequeue), the load monitoring module 11 measures the number of packets that have been output (Dequeue) ( Step S43). Thereafter, the load monitor module 11 calculates the packet size of the number of packets that can be output (Dequeue) (step S44).

一方、ステップS42において、パケットを出力(Dequeue)できなかった判定されたとき、負荷モニタモジュール11は、出力(Dequeue)の失敗回数N_Dequeue_Failを計測する(ステップS45)。   On the other hand, when it is determined in step S42 that the packet could not be output (Dequeue), the load monitor module 11 measures the number of times of output (Dequee) failure N_Dequee_Fail (Step S45).

そして、ステップS44またはステップS45の後、負荷モニタモジュール11は、MACリクエストの回数を計測し(ステップS46)、制御方式がAIAD−TQLか否かを判定する(ステップS47)。   Then, after step S44 or step S45, the load monitor module 11 measures the number of MAC requests (step S46) and determines whether the control method is AIAD-SQL (step S47).

ステップS47において、制御方式がAIAD−TQLであると判定された場合、負荷モニタモジュール11は、上述した式(5)によって、許容サイズTQLの最大値TQL_max=(キューのサイズの30%)/(S_Dequeue_Pkt_ave)を演算する(ステップS48)。   When it is determined in step S47 that the control method is AIAD-SQL, the load monitor module 11 determines the maximum value TQL_max = (30% of the queue size) / (queue size) according to the above-described equation (5). S_Dequeue_Pkt_ave) is calculated (step S48).

その後、負荷モニタモジュール11は、パケットを出力できたか否かを判定する(ステップS49)。そして、負荷モニタモジュール11は、パケットを出力できなかったとき、即ち、キューからのデータの取り出しを空振りしたときTQL_newを増加(例えば、1パケット分)させる(ステップS50)。   Thereafter, the load monitor module 11 determines whether the packet has been output (step S49). Then, the load monitor module 11 increases the SQL_new (for example, one packet) when the packet cannot be output, that is, when the extraction of data from the queue is skipped (step S50).

一方、ステップS49において、パケットを出力できたと判定されたとき、負荷モニタモジュール11は、前回のレートコントロールタイマ終了時のTQLの値TQL_prevがキュー中のパケットサイズよりも小さいか否かを更に判定する(ステップS51)。   On the other hand, when it is determined in step S49 that the packet has been output, the load monitor module 11 further determines whether or not the TTL value SQL_prev at the end of the previous rate control timer is smaller than the packet size in the queue. (Step S51).

そして、ステップS51において、前回のレートコントロールタイマ終了時のTQLの値TQL_prevがキュー中のパケットサイズよりも小さいと判定されたとき、負荷モニタモジュール11は、TQL_newを減少(例えば、1パケット分)させる(ステップS52)。   Then, in step S51, when it is determined that the value of SQL TQL_prev at the end of the previous rate control timer is smaller than the packet size in the queue, the load monitor module 11 decreases TQL_new (for example, one packet). (Step S52).

ステップS50の後、またはステップS51において、前回のレートコントロールタイマ終了時のTQLの値TQL_prevがキュー中のパケットサイズ以上であると判定されたとき、またはステップS52の後、負荷モニタモジュール11は、TQL_newがTQL_minよりも小さいか否かを判定し(ステップS53)、TQL_newがTQL_min以上であるとき、TQL_newがTQL_maxよりも大きいか否かを更に判定する(ステップS54)。   After step S50, or when it is determined in step S51 that the value of SQLL at the end of the previous rate control timer is equal to or greater than the packet size in the queue, or after step S52, the load monitor module 11 Is smaller than TQL_min (step S53), and when TQL_new is equal to or larger than TQL_min, it is further determined whether TQL_new is larger than TQL_max (step S54).

そして、ステップS54において、TQL_newがTQL_maxよりも大きいと判定されたとき、負荷モニタモジュール11は、TQL_newをTQL_maxに設定する(ステップS55)。   If it is determined in step S54 that TQL_new is greater than TQL_max, the load monitor module 11 sets TQL_new to TQL_max (step S55).

一方、ステップS53において、TQL_newがTQL_minよりも小さいと判定されたとき、負荷モニタモジュール11は、TQL_newをTQL_minに設定する(ステップS56)。   On the other hand, when it is determined in step S53 that TQL_new is smaller than TQL_min, the load monitor module 11 sets TQL_new to TQL_min (step S56).

そして、ステップS47において制御方式がAIAD−TQLでないと判定されたとき、またはステップS54においてTQL_newがTQL_maxよりも大きくないと判定されたとき、またはステップS55の後、またはステップS56の後、一連の動作は終了する。   Then, when it is determined in step S47 that the control method is not AIAD-SQL, or when it is determined in step S54 that TQL_new is not greater than TQL_max, or after step S55 or after step S56, a series of operations. Ends.

上述したように、図8に示すフローチャートに従えば、AIAD−TQL方式におけるTQL_newは、最小値TQL_minと最大値TQL_maxとの間に設定される(ステップS48〜ステップS56参照)。   As described above, according to the flowchart shown in FIG. 8, the SQL_new in the AIAD-SQL system is set between the minimum value TQL_min and the maximum value TQL_max (see Step S48 to Step S56).

図9は、許容サイズの計算方法を説明するためのフローチャートである。一連の動作が開始されると、負荷モニタモジュール11は、パケットの出力情報(=Dequeue情報)、即ち、出力パケット数N_Dequeue_Pkt、失敗回数N_Dequeue_Fail、パケットサイズS_Dequeue_Pktおよび保持パケット数H_Pktを取得する(ステップS61)。   FIG. 9 is a flowchart for explaining a method of calculating the allowable size. When a series of operations is started, the load monitor module 11 acquires packet output information (= Dequeue information), that is, the number of output packets N_Dequee_Pkt, the number of failures N_Dequee_Fail, the packet size S_Dequee_Pkt, and the number of retained packets H_Pkt (Step S61). ).

そして、負荷モニタモジュール11は、制御方式がAIAD−TQLであるか否かを判定し(ステップS62)、制御方式がAIAD−TQLであると判定したとき、許容サイズTQLを図8に示すフローチャートに従って演算したTQL_newに設定する(ステップS63)。その後、一連の動作は、ステップS75へ移行する。   Then, the load monitor module 11 determines whether or not the control method is AIAD-SQL (step S62), and when determining that the control method is AIAD-SQL, the allowable size TQL is determined according to the flowchart shown in FIG. The calculated SQL_new is set (step S63). Thereafter, the series of operations proceeds to step S75.

一方、ステップS62において、制御方式がAIAD−TQLでないと判定されたとき、負荷モニタモジュール11は、制御方式がC−TQLであるか否かを更に判定する(ステップS64)。そして、制御方式がC−TQLであると判定されたとき、負荷モニタモジュール11は、キューから出力されたパケット数(=Dequeueパケット数)が“0”よりも大きいか否かを更に判定する(ステップS65)。   On the other hand, when it is determined in step S62 that the control method is not AIAD-SQL, the load monitor module 11 further determines whether or not the control method is C-SQL (step S64). Then, when it is determined that the control method is C-SQL, the load monitor module 11 further determines whether or not the number of packets output from the queue (= number of Dequeue packets) is greater than “0” ( Step S65).

ステップS65において、キューから出力されたパケット数が“0”であると判定されたとき、負荷モニタモジュール11は、平均パケットサイズを“DEFAULT_EHTERNET_MTU”に設定する(ステップS66)。その後、一連の動作は、ステップS68へ移行する。   When it is determined in step S65 that the number of packets output from the queue is “0”, the load monitor module 11 sets the average packet size to “DEFAULT_EHTERNET_MTU” (step S66). Thereafter, the series of operations proceeds to step S68.

一方、ステップS65において、キューから出力されたパケット数が“0”よりも大きいと判定されたとき、負荷モニタモジュール11は、キューから出力されたパケットサイズをキューから出力されたパケット数で除算して平均パケットサイズを演算する(ステップS67)。   On the other hand, when it is determined in step S65 that the number of packets output from the queue is larger than “0”, the load monitor module 11 divides the packet size output from the queue by the number of packets output from the queue. The average packet size is calculated (step S67).

そして、ステップS66またはステップS67の後、負荷モニタモジュール11は、上述した式(1)によって許容サイズTQLの最大値TQL_maxを演算し(ステップS68)、上述した式(2)によって許容サイズの最小値TQL_minを演算する(ステップS69)。   Then, after step S66 or step S67, the load monitor module 11 calculates the maximum value TQL_max of the allowable size TQL by the above-described equation (1) (step S68), and the minimum value of the allowable size by the above-described equation (2). TQL_min is calculated (step S69).

そうすると、負荷モニタモジュール11は、キュー長が許容サイズTQLの最小値TQL_minよりも小さく、かつ、キュー長が許容サイズTQLの最大値TQL_maxよりも大きいか否かを判定する(ステップS70)。   Then, the load monitor module 11 determines whether or not the queue length is smaller than the minimum value TQL_min of the allowable size TQL and the queue length is larger than the maximum value TQL_max of the allowable size TQL (Step S70).

そして、ステップS70において、キュー長が最小値TQL_minよりも小さく、または、キュー長が最大値TQL_maxよりも大きいと判定されたとき、負荷モニタモジュール11は、上述した式(3)によって許容サイズTQLを演算する(ステップS71)。   When it is determined in step S70 that the queue length is smaller than the minimum value TQL_min or the queue length is larger than the maximum value TQL_max, the load monitor module 11 sets the allowable size TQL according to the above equation (3). Calculation is performed (step S71).

一方、ステップS70において、キュー長が最小値TQL_min以上であり、かつ、キュー長が最大値TQL_max以下であると判定されたとき、負荷モニタモジュール11は、許容サイズTQLをキュー長に設定する(ステップS72)。   On the other hand, when it is determined in step S70 that the queue length is equal to or greater than the minimum value SQL_min and the queue length is equal to or less than the maximum value TQL_max, the load monitor module 11 sets the allowable size SQL to the queue length (step S70). S72).

ステップS64において、制御方式がC−TQLでないと判定されたとき、即ち、制御方式がDB−TQLであると判定されたとき、負荷モニタモジュール11は、上述した式(6)によってMAC要求レートを演算し(ステップS73)、その演算したMAC要求レートを用いて式(7)によって許容サイズTQLを演算する(ステップS74)。   In step S64, when it is determined that the control method is not C-SQL, that is, when it is determined that the control method is DB-SQL, the load monitor module 11 calculates the MAC request rate according to the above-described equation (6). The allowable size TQL is calculated by Equation (7) using the calculated MAC request rate (Step S73).

そして、ステップS63、ステップS71、ステップS72およびステップS74のいずれかの後、負荷モニタモジュール11は、変数をクリアする(ステップS75)。これによって、一連の動作は終了する。   Then, after any of step S63, step S71, step S72, and step S74, the load monitor module 11 clears the variable (step S75). Thus, a series of operations is completed.

図10は、許容サイズの他の計算方法を説明するためのフローチャートである。図10に示すフローチャートは、図9に示すフローチャートのステップS70〜ステップS72をステップS70A,S71A,S72A,S73A,S74Aに代えたものであり、その他は、図9に示すフローチャートと同じである。   FIG. 10 is a flowchart for explaining another calculation method of the allowable size. The flowchart shown in FIG. 10 is the same as the flowchart shown in FIG. 9 except that steps S70 to S72 of the flowchart shown in FIG. 9 are replaced with steps S70A, S71A, S72A, S73A, and S74A.

ステップS69の後、負荷モニタモジュール11は、キュー長が許容サイズTQLの最小値TQL_minよりも小さいか否かを判定し(ステップS70A)、キュー長が最小値TQL_minよりも小さいとき、許容サイズTQLを最小値TQL_minに設定する(ステップS71A)。   After step S69, the load monitor module 11 determines whether or not the queue length is smaller than the minimum value TQL_min of the allowable size TQL (step S70A), and when the queue length is smaller than the minimum value TQL_min, the load size TQL is set. The minimum value TQL_min is set (step S71A).

一方、ステップS70Aにおいて、キュー長が最小値TQL_minよりも小さくないと判定されたとき、負荷モニタモジュール11は、キュー長が許容サイズTQLの最大値TQL_maxよりも大きいか否かを更に判定し(ステップS72A)、キュー長が最大値TQL_maxよりも大きいと判定したとき、許容サイズTQLを最大値TQL_maxに設定する(ステップS73A)。   On the other hand, when it is determined in step S70A that the queue length is not smaller than the minimum value TQL_min, the load monitor module 11 further determines whether or not the queue length is larger than the maximum value TQL_max of the allowable size TQL (step S70A). S72A) When it is determined that the queue length is greater than the maximum value TQL_max, the allowable size TQL is set to the maximum value TQL_max (step S73A).

一方、ステップS72Aにおいて、キュー長が最大値TQL_maxよりも大きくないと判定されたとき、負荷モニタモジュール11は、許容サイズTQLをキュー長に設定する(ステップS74A)。そして、ステップS63、ステップS71A、ステップS73A、ステップS74およびステップS74Aのいずれかの後、一連の動作は、ステップS75へ移行する。   On the other hand, when it is determined in step S72A that the queue length is not greater than the maximum value TQL_max, the load monitor module 11 sets the allowable size TQL to the queue length (step S74A). Then, after any of step S63, step S71A, step S73A, step S74, and step S74A, the series of operations proceeds to step S75.

図11は、目標入力パケットレートの計算方法を説明するためのフローチャートである。一連の動作が開始されると、負荷モニタモジュール11は、図9に示すフローチャートまたは図10に示すフローチャートに従って許容サイズTQLを演算する(ステップS81)。   FIG. 11 is a flowchart for explaining a method of calculating the target input packet rate. When a series of operations is started, the load monitor module 11 calculates the allowable size TQL according to the flowchart shown in FIG. 9 or the flowchart shown in FIG. 10 (step S81).

そして、負荷モニタモジュール11は、キューから出力されたパケット数をレートコントロール間隔で除算することによって出力パケットレート(Dequeueレート)を演算する(ステップS82)。   Then, the load monitor module 11 calculates the output packet rate (Dequeue rate) by dividing the number of packets output from the queue by the rate control interval (step S82).

その後、負荷モニタモジュール11は、通知タイプtypeを“NOTIFY_TARGET_RATEに設定し(ステップS83)、キューからのパケットの出力に失敗した失敗回数(=Dequeue失敗数)をレートコントロール間隔で除算することによってincrement_valueを演算する(ステップS84)。   After that, the load monitor module 11 sets the notification type type to “NOTIFY_TARGET_RATE (step S83), and divides the increment_value by dividing the number of failures to output the packet from the queue (= the number of request failures) by the rate control interval. Calculation is performed (step S84).

そして、負荷モニタモジュール11は、ステップS81、ステップS82およびステップS84において演算した各値を用いて、Dequeueレート−((キュー長−TQL)/レートコントロール間隔)+increment_valueによってvalue(=目標入力パケットレート)を演算する(ステップS85)。   Then, the load monitor module 11 uses each value calculated in step S81, step S82, and step S84 and uses the request rate-((queue length-SQL) / rate control interval) + increment_value to value (= target input packet rate). Is calculated (step S85).

そうすると、負荷モニタモジュール11は、タイプtypeおよびvalueをアップストリームスケジューラ79またはクロスレイヤモジュール21へ通知する(ステップS86)。その後、レートコントロールタイマが設定される(ステップS87)。   Then, the load monitor module 11 notifies the type type and value to the upstream scheduler 79 or the cross layer module 21 (step S86). Thereafter, a rate control timer is set (step S87).

これによって、目標入力パケットレートを演算する動作が終了する。   Thus, the operation for calculating the target input packet rate is completed.

図12は、目標出力パケットレートの計算方法を説明するためのフローチャートである。一連の動作が開始されると、上層レートコントローラ20は、現在のVoice17の出力レートと現在のVideo18の出力レートとの和を演算して現在のトータルレートを演算する(ステップS91)。   FIG. 12 is a flowchart for explaining a method of calculating the target output packet rate. When a series of operations is started, the upper layer rate controller 20 calculates the current total rate by calculating the sum of the current Voice 17 output rate and the current Video 18 output rate (step S91).

そして、上層レートコントローラ20は、現在のトータルレートから目標入力パケットレートを減算して増減レートΔを演算し(ステップS92)、初期のVoiceレートを初期のトータルレートで除算して相対トラフィックレート係数αを演算する(ステップS93)。   Then, the upper layer rate controller 20 calculates the increase / decrease rate Δ by subtracting the target input packet rate from the current total rate (step S92), and divides the initial Voice rate by the initial total rate to obtain the relative traffic rate coefficient α. Is calculated (step S93).

そうすると、上層レートコントローラ20は、現在のVoice17の出力レートがVoiceレートの最小値よりも大きく、かつ、現在のVideo18の出力レートがVideoレートの最小値よりも大きいか否かを判定する(ステップS94)。   Then, the upper layer rate controller 20 determines whether or not the current output rate of the Voice 17 is larger than the minimum value of the Voice rate and the current output rate of the Video 18 is larger than the minimum value of the Video rate (Step S94). ).

そして、ステップS94において、現在のVoice17の出力レートがVoiceレートの最小値よりも大きく、かつ、現在のVideo18の出力レートがVideoレートの最小値よりも大きいと判定されたとき、上層レートコントローラ20は、上述した式(11)によって目標Voiceレートを演算し(ステップS95)、上述した式(12)によって目標Videoレートを演算する(ステップS96)。   When it is determined in step S94 that the current Voice 17 output rate is greater than the minimum value of the Voice rate and the current Video 18 output rate is greater than the minimum value of the Video rate, the upper layer rate controller 20 Then, the target Voice rate is calculated by the above equation (11) (step S95), and the target Video rate is calculated by the above equation (12) (step S96).

一方、ステップS94において、現在のVoice17の出力レートがVoiceレートの最小値以下である、または現在のVideo18の出力レートがVideoレートの最小値以下であると判定されたとき、上層レートコントローラ20は、増減レートΔが0よりも大きいか否かを更に判定する(ステップS97)。   On the other hand, when it is determined in step S94 that the output rate of the current Voice 17 is less than or equal to the minimum value of the Voice rate, or the output rate of the current Video 18 is less than or equal to the minimum value of the Video rate, the upper layer rate controller 20 It is further determined whether the increase / decrease rate Δ is greater than 0 (step S97).

そして、ステップS97において、増減レートΔが0よりも大きいと判定されたとき、上層レートコントローラ20は、現在のVoice17の出力レートがVoice17の最小値よりも大きいか否かを更に判定する(ステップS98)。ステップS98において、現在のVoice17の出力レートがVoice17の最小値よりも大きいと判定されたとき、上層レートコントローラ20は、上述した式(13)によって、目標Voiceレートを演算し(ステップS99)、上述した式(14)によって目標Videoレートを演算する(ステップS100)。   When it is determined in step S97 that the increase / decrease rate Δ is greater than 0, the upper layer rate controller 20 further determines whether or not the current output rate of Voice 17 is greater than the minimum value of Voice 17 (step S98). ). When it is determined in step S98 that the current output rate of the Voice 17 is larger than the minimum value of the Voice 17, the upper layer rate controller 20 calculates the target Voice rate according to the above equation (13) (Step S99). The target video rate is calculated by the equation (14) (step S100).

一方、ステップS98において、現在のVoice17の出力レートがVoice17の最小値以下であると判定されたとき、上層レートコントローラ20は、上述した式(15)によって目標Voiceレートを演算し(ステップS101)、上述した式(16)によって目標Videoレートを演算する(ステップS102)。   On the other hand, when it is determined in step S98 that the current output rate of the Voice 17 is equal to or less than the minimum value of the Voice 17, the upper layer rate controller 20 calculates the target Voice rate according to the above equation (15) (Step S101). The target video rate is calculated by the above equation (16) (step S102).

一方、ステップS97において、増減レートΔが0よりも大きくない、即ち、増減レートが0以下であると判定されたとき、上層レートコントローラ20は、上述した式(17)によって目標Voiceレートを演算し(ステップS103)、上述した式(18)によって目標Videoレートを演算する(ステップS104)。   On the other hand, when it is determined in step S97 that the increase / decrease rate Δ is not greater than 0, that is, the increase / decrease rate is 0 or less, the upper layer rate controller 20 calculates the target Voice rate according to the above-described equation (17). (Step S103), the target Video rate is calculated by the above-described equation (18) (Step S104).

そして、ステップS96、ステップS100、ステップS102およびステップS104のいずれかの後、上層レートコントローラ20は、目標VoiceレートがVoiceレートの最小値よりも小さいか否かを判定し(ステップS105)、目標VoiceレートがVoiceレートの最小値よりも小さいとき、目標VoiceレートをVoiceレートの最小値に設定する(ステップS106)。その後、一連の動作は、ステップS107へ移行する。   Then, after any of Step S96, Step S100, Step S102, and Step S104, the upper layer rate controller 20 determines whether or not the target Voice rate is smaller than the minimum value of the Voice rate (Step S105), and the target Voice is reached. When the rate is smaller than the minimum value of the voice rate, the target voice rate is set to the minimum value of the voice rate (step S106). Thereafter, the series of operations proceeds to step S107.

一方、ステップS105において、目標VoiceレートがVoiceレートの最小値よりも小さくないと判定されたとき、またはステップS106の後、上層レートコントローラ20は、目標VideoレートがVideoレートの最小値よりも小さいか否かを更に判定し(ステップS107)、目標VideoレートがVideoレートの最小値よりも小さいとき、目標VideoレートをVideoレートの最小値に設定する(ステップS108)。その後、一連の動作は、ステップS109へ移行する。   On the other hand, when it is determined in step S105 that the target voice rate is not smaller than the minimum value of the voice rate, or after step S106, the upper layer rate controller 20 determines whether the target video rate is smaller than the minimum value of the video rate. It is further determined whether or not (step S107), and when the target video rate is smaller than the minimum value of the video rate, the target video rate is set to the minimum value of the video rate (step S108). Thereafter, the series of operations proceeds to step S109.

一方、ステップS107において、目標VideoレートがVideoレートの最小値よりも小さくないと判定されたとき、またはステップS108の後、上層レートコントローラ20は、変更した目標出力パケットレートをVoice17へ通知し(ステップS109)、変更した目標出力パケットレートをVideo18へ通知する(ステップS110)。そして、一連の動作は、終了する。   On the other hand, when it is determined in step S107 that the target video rate is not smaller than the minimum value of the video rate, or after step S108, the upper layer rate controller 20 notifies the changed target output packet rate to the Voice 17 (step S107). In step S109, the changed target output packet rate is notified to the Video 18 (step S110). And a series of operation | movement is complete | finished.

図13は、図1に示す下層レートコントローラ12における目標出力パケットレートの計算方法を説明するためのフローチャートである。下層レートコントローラ12は、信号Rate_signalで通知された目標出力パケットレートを該当キュー(キュー8,9のいずれか)の目標出力パケットレートとして設定する(ステップS111)。そして、一連の動作は、終了する。   FIG. 13 is a flowchart for explaining a target output packet rate calculation method in the lower layer rate controller 12 shown in FIG. The lower layer rate controller 12 sets the target output packet rate notified by the signal Rate_signal as the target output packet rate of the corresponding queue (one of the queues 8 and 9) (step S111). And a series of operation | movement is complete | finished.

図14は、図1に示すダウンストリームスケジューラ10における動作を説明するためのフローチャートである。一連の動作が開始されると、ダウンストリームスケジューラ10は、前回、パケットを取り出した(Dequeueした)キューの次のキュー(キュー8,9のいずれか)を操作対象のターゲットキューとする(ステップS121)。   FIG. 14 is a flowchart for explaining the operation in the downstream scheduler 10 shown in FIG. When a series of operations is started, the downstream scheduler 10 sets the queue (either queue 8 or 9) next to the queue from which the packet was previously extracted (dequeued) as the operation target queue (step S121). ).

そして、ダウンストリームスケジューラ10は、ターゲットキューの状態がロック状態であるか否かを判定する(ステップS122)。ステップS122において、ターゲットキューの状態がロック状態であると判定されたとき、次のキューをターゲットキューとし(ステップS123)、ターゲットキューのステータスを既にチェックしているか否かを判定する(ステップS124)。   Then, the downstream scheduler 10 determines whether or not the target queue is in a locked state (step S122). When it is determined in step S122 that the target queue is in the locked state, the next queue is set as the target queue (step S123), and it is determined whether the status of the target queue has already been checked (step S124). .

そして、チェック済みであれば、一連の動作は、ステップS126へ移行し、チェック済みではない場合は、ステップS122へ戻る。   Then, if checked, the series of operations proceeds to step S126, and if not checked, returns to step S122.

一方、ステップS122において、ターゲットキューの状態がロックではない(=アンロック)状態であれば、ダウンストリームスケジューラ10は、ターゲットキュー(キュー4〜6のいずれか)からパケットを取り出し(ステップS125)、一連の動作は、ステップS126へ移行する。   On the other hand, if the target queue state is not locked (= unlocked) in step S122, the downstream scheduler 10 takes out the packet from the target queue (one of the queues 4 to 6) (step S125), The series of operations proceeds to step S126.

以上、パケットの取得処理が終了すると、ダウンストリームスケジューラ10は、全ての空のキューに対して、アップストリームスケジューラ7へパケットのDequeue要求の処理を開始する。   As described above, when the packet acquisition process is completed, the downstream scheduler 10 starts the process of requesting a packet to the upstream scheduler 7 for all empty queues.

パケットのDequeue要求の処理は、ステップS124の判定がYESとなった場合、またはステップS125が終了したときに、ターゲットキューが空であるか否かを判定するステップS126から開始される。   The process of requesting a packet request is started from step S126 for determining whether or not the target queue is empty when the determination in step S124 is YES or when step S125 is completed.

ステップS126において、ターゲットキューが空であると判定された場合、ダウンストリームスケジューラ10は、アップストリームスケジューラ7へターゲットキューに関してパケットのDequeue要求を送信し(ステップS127)、一連の動作は、ステップS128へ移行する。   If it is determined in step S126 that the target queue is empty, the downstream scheduler 10 transmits a request for a packet regarding the target queue to the upstream scheduler 7 (step S127), and the series of operations proceeds to step S128. Transition.

そして、ステップS126において、ターゲットキューが空ではないと判定された場合、またはステップS127の後、ダウンストリームスケジューラ10は、ターゲットキューを次のキューに設定する(ステップS128)。   If it is determined in step S126 that the target queue is not empty, or after step S127, the downstream scheduler 10 sets the target queue as the next queue (step S128).

その後、ダウンストリームスケジューラ10は、ターゲットキューが空であるかについてチェック済みか否かを判定する(ステップS129)。ステップS129において、ターゲットキューがチェック済みでないと判定された場合、一連の動作は、ステップS126へ戻り、ステップS129において、ターゲットキューが空であるかについてチェック済みであると判定されるまで、上述したステップS126〜ステップS129が繰り返し実行される。そして、ステップS129において、ターゲットキューが空であるかについてチェック済みであると判定されると、一連の動作は終了する。   Thereafter, the downstream scheduler 10 determines whether or not the target queue has been checked (step S129). When it is determined in step S129 that the target queue has not been checked, the series of operations returns to step S126, and the above-described operations are performed until it is determined in step S129 that the target queue has been checked. Steps S126 to S129 are repeatedly executed. If it is determined in step S129 that the target queue is empty, the series of operations ends.

このように、ダウンストリームスケジューラ10は、キューの状態をチェックし(ステップS122参照)、アンロック状態のキューがあれば、保持されたパケットを取り出す(ステップS125参照)。更に、キュー8,9の全てに対して、キューが空であるか否かをチェックし(ステップS126参照)、キューが空であれば、アップストリームスケジューラ7に対してパケットの出力を要求する(ステップS127参照)。   In this way, the downstream scheduler 10 checks the queue status (see step S122), and if there is an unlocked queue, it retrieves the held packet (see step S125). Further, it is checked whether or not the queues 8 and 9 are all empty (see step S126). If the queue is empty, the upstream scheduler 7 is requested to output a packet ( (See step S127).

図15は、図14によってダウンストリームスケジューラ10からパケットのDequeue要求を受けたときの図1に示すアップストリームスケジューラ7における動作を説明するためのフローチャートである。一連の動作が開始されると、アップストリームスケジューラ7は、前回、パケットを出力した(Dequeueした)アップストリームキューの次のキューをチェックのターゲットキューとする(ステップS131)。   FIG. 15 is a flowchart for explaining the operation in the upstream scheduler 7 shown in FIG. 1 when receiving a request for a packet from the downstream scheduler 10 in FIG. When a series of operations is started, the upstream scheduler 7 sets the next queue after the upstream queue that has output (dequeued) the packet last time as the target queue for checking (step S131).

そして、アップストリームスケジューラ7は、ターゲットキューを既にチェックしたか否かを判定し(ステップS132)、チェックしていないと判定したとき、先頭パケットの送信IPアドレスをチェックする(ステップS133)。   Then, the upstream scheduler 7 determines whether or not the target queue has already been checked (step S132), and when determining that the target queue has not been checked, the upstream scheduler 7 checks the transmission IP address of the leading packet (step S133).

そうすると、アップストリームスケジューラ7は、チェックしたIPアドレスが、要求があったIPアドレスと一致するか否かを判定し(ステップS134)、チェックしたIPアドレスが、要求があったIPアドレスと一致しないとき、次にチェックするキューを取得する(ステップS135)。そして、一連の動作は、ステップS132へ戻り、ステップS134において、チェックしたIPアドレスが、要求があったIPアドレスと一致すると判定されるまで、上述したステップS132〜ステップS134が繰り返し実行される。   Then, the upstream scheduler 7 determines whether or not the checked IP address matches the requested IP address (step S134), and when the checked IP address does not match the requested IP address. Then, the queue to be checked next is acquired (step S135). Then, the series of operations returns to step S132, and step S132 to step S134 described above are repeatedly executed until it is determined in step S134 that the checked IP address matches the requested IP address.

ステップS134において、チェックしたIPアドレスが、要求があったIPアドレスと一致すると判定されると、アップストリームスケジューラ7は、キューからパケットを取得し(ステップS136)、同一のIPアドレスに関して、目標入力パケットレートの追加依頼が有ったか否かを判定する(ステップS137)。そして、目標入力パケットレートの追加依頼が有ったと判定されたとき、アップストリームスケジューラ7は、追加依頼された目標入力パケットレートをパケットに追加する(ステップS138)。   If it is determined in step S134 that the checked IP address matches the requested IP address, the upstream scheduler 7 acquires the packet from the queue (step S136), and the target input packet for the same IP address. It is determined whether or not there is a request for adding a rate (step S137). When it is determined that there has been a request for adding the target input packet rate, the upstream scheduler 7 adds the requested target input packet rate to the packet (step S138).

ステップS137において、目標入力パケットレートの追加依頼が無かったと判定されたとき、またはステップS138の後、アップストリームスケジューラ7は、パケットをキュー8または9(ダウンストリームキュー)に入れる(ステップS139)。   When it is determined in step S137 that there is no request for adding the target input packet rate, or after step S138, the upstream scheduler 7 puts the packet in the queue 8 or 9 (downstream queue) (step S139).

そして、ステップS132において、ターゲットキューがチェック済みであると判定されたとき、またはステップS139の後、一連の動作は終了する。   Then, when it is determined in step S132 that the target queue has been checked, or after step S139, the series of operations ends.

上述した図8から図11に示すフローチャートは、図5および図6に示すフローチャートのステップS4において実行される。   The above-described flowcharts shown in FIGS. 8 to 11 are executed in step S4 of the flowcharts shown in FIGS.

また、上述した図12に示すフローチャートは、図5に示すフローチャートのステップS8〜ステップS10において実行される。   The above-described flowchart shown in FIG. 12 is executed in steps S8 to S10 of the flowchart shown in FIG.

更に、上述した図13に示すフローチャートは、図7に示すフローチャートのステップS23において実行される。   Further, the above-described flowchart shown in FIG. 13 is executed in step S23 of the flowchart shown in FIG.

更に、上述した図14に示すフローチャートは、図6に示すフローチャートのステップS13〜ステップS15および図7に示すフローチャートのステップS28およびステップS32において実行される。   Further, the above-described flowchart shown in FIG. 14 is executed in steps S13 to S15 of the flowchart shown in FIG. 6 and steps S28 and S32 of the flowchart shown in FIG.

更に、上述した図15に示すフローチャートは、図6に示すフローチャートのステップS16〜ステップS18および図7に示すフローチャートのステップS33〜ステップS34において実行される。   Further, the flowchart shown in FIG. 15 described above is executed in steps S16 to S18 of the flowchart shown in FIG. 6 and steps S33 to S34 of the flowchart shown in FIG.

上述したように、通信装置100で生成されたパケットを保持するキュー5の負荷(=保持パケット数H_Pkt)がキュー5の許容サイズTQLから掛け離れたとき、通信装置100のアプリケーション(Voice17およびVideo18)がキュー5へ出力するパケットの出力パケットレートを制御してキュー5に保持された保持パケット数H_Pktをキュー5の許容サイズTQLに近づける。また、通信装置100以外の通信装置101,102から送信されたパケットを保持する通信装置100のキュー4,6の負荷(=保持パケット数H_Pkt)がキュー4,6の許容サイズTQLから掛け離れたとき、通信装置101,102のキュー8,9からのパケットの出力パケットレートを制御して通信装置100のキュー4,6に保持された保持パケット数H_Pktをキュー4,6の許容サイズTQLに近づける。   As described above, when the load of the queue 5 that holds packets generated by the communication device 100 (= the number of held packets H_Pkt) is far from the allowable size TQL of the queue 5, the applications (Voice 17 and Video 18) of the communication device 100 are The output packet rate of the packets output to the queue 5 is controlled so that the number of held packets H_Pkt held in the queue 5 approaches the permissible size TQL of the queue 5. Further, when the load of the queues 4 and 6 of the communication apparatus 100 that holds packets transmitted from the communication apparatuses 101 and 102 other than the communication apparatus 100 (= number of held packets H_Pkt) is far from the allowable size TQL of the queues 4 and 6 Then, the output packet rate of the packets from the queues 8 and 9 of the communication apparatuses 101 and 102 is controlled so that the number H_Pkt of held packets held in the queues 4 and 6 of the communication apparatus 100 approaches the allowable size TQL of the queues 4 and 6.

そして、この通信装置100におけるアプリケーション(Voice17およびVideo18)からキュー5へのパケットの出力パケットレートの制御と、通信装置101,102における通信装置101,102から通信装置100へのパケットの出力パケットレートの制御を行なうことによって、各通信装置100〜102においてキュー4〜6に保持される保持パケット数H_Pktがキュー4〜6の許容サイズTQLに近づき、各通信装置100〜102における負荷が軽減される。その結果、通信装置100〜102からなるアドホックネットワークを安定化できる。   Then, control of the output packet rate of packets from the application (Voice 17 and Video 18) in the communication device 100 to the queue 5 and the output packet rate of packets from the communication devices 101 and 102 to the communication device 100 in the communication devices 101 and 102 are performed. By performing the control, the number of held packets H_Pkt held in the queues 4 to 6 in each communication device 100 to 102 approaches the allowable size TQL of the queues 4 to 6, and the load on each communication device 100 to 102 is reduced. As a result, an ad hoc network composed of the communication devices 100 to 102 can be stabilized.

[実施の形態2]
図16は、実施の形態2による通信装置の構成を示す概略図である。実施の形態2による通信装置100Aは、図1に示す通信装置100のリンクレイヤクラシファイア2を削除し、負荷モニタモジュール11を負荷モニタモジュール11Aに代え、クロスレイヤモジュール21をクロスレイヤモジュール21Aに代えたものであり、その他は、通信装置100と同じである。
[Embodiment 2]
FIG. 16 is a schematic diagram illustrating a configuration of a communication apparatus according to the second embodiment. The communication device 100A according to the second embodiment deletes the link layer classifier 2 of the communication device 100 shown in FIG. 1, replaces the load monitor module 11 with the load monitor module 11A, and replaces the cross layer module 21 with the cross layer module 21A. Others are the same as those of the communication device 100.

負荷モニタモジュール11Aは、負荷モニタモジュール11と同じ方法によってキュー4〜6における負荷をモニタし、他の通信装置から受信したパケットを保持するキュー4,6への目標入力パケットレートを他の通信装置へ通知する場合も、目標入力パケットレートを含む信号Rate_signalをクロスレイヤモジュール21へ送信する。その他、負荷モニタモジュール11Aは、負荷モニタモジュール11と同じ機能を果たす。   The load monitor module 11A monitors the load in the queues 4 to 6 by the same method as the load monitor module 11, and sets the target input packet rate to the queues 4 and 6 that hold packets received from other communication devices. Also in the case of notifying to, the signal Rate_signal including the target input packet rate is transmitted to the cross layer module 21. In addition, the load monitor module 11 </ b> A performs the same function as the load monitor module 11.

クロスレイヤモジュール21Aは、他の通信装置へ通知する目標入力パケットレートを含む信号Rate_signalを負荷モニタモジュール11Aから受信すると、上述した信号Rate_signalを含む専用パケットPKT_Dを生成し、その生成した専用パケットPKT_Dをルーティングモジュール14へ送信する。ルーティングモジュール14は、専用パケットPKT_Dを受信すると、その受信した専用パケットPKT_Dをトラフィッククラシファイア3を介してキュー5へ入れる。   When the cross layer module 21A receives the signal Rate_signal including the target input packet rate to be notified to other communication devices from the load monitor module 11A, the cross layer module 21A generates the dedicated packet PKT_D including the signal Rate_signal described above, and generates the generated dedicated packet PKT_D. Transmit to the routing module 14. When receiving the dedicated packet PKT_D, the routing module 14 puts the received dedicated packet PKT_D into the queue 5 via the traffic classifier 3.

このように、実施の形態2においては、目標入力パケットレートの他の通信装置への通知は、専用パケットPKT_Dを用いて行なわれる。   Thus, in the second embodiment, notification of the target input packet rate to other communication devices is performed using dedicated packet PKT_D.

なお、実施の形態2においては、図2に示す通信装置101,102も、図16に示す通信装置100Aと同じ構成からなる。   In the second embodiment, communication devices 101 and 102 shown in FIG. 2 also have the same configuration as communication device 100A shown in FIG.

図17および図18は、それぞれ、目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態2における第1および第2の概念図である。なお、図17および図18においては、通信装置100Aが通信装置101へ目標入力パケットレートを通知する場合について説明する。   FIGS. 17 and 18 are first and second conceptual diagrams, respectively, in the second embodiment for explaining the operation of notifying the other target communication device of the target input packet rate. 17 and 18, the case where communication device 100A notifies communication device 101 of the target input packet rate will be described.

通信装置100Aの負荷モニタモジュール11Aは、キュー4(通信装置101から受信したパケットを保持するキュー)における保持パケット数H_Pktがキュー4の許容サイズTQLから掛け離れていることを検出し、上述した方法でキュー4への目標入力パケットレートを演算する。   The load monitor module 11A of the communication device 100A detects that the number of held packets H_Pkt in the queue 4 (queue that holds packets received from the communication device 101) is far from the allowable size TQL of the queue 4, and uses the method described above. The target input packet rate to the queue 4 is calculated.

そして、通信装置100Aの負荷モニタモジュール11Aは、その演算した目標入力パケットレート(=Target Enqueue Rate)と、NOTIFY_TARGET_RATEと、Load Generation IDとを含む信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Load Generation ID]を生成し、その生成した信号Rate_signalをクロスレイヤモジュール21Aへ送信する。通信装置100Aのクロスレイヤモジュール212Aは、信号Rate_signalを負荷モニタモジュール11Aから受信する。   Then, the load monitor module 11A of the communication device 100A determines the signal Rate_signal = [NOTIFY_TARGET_RATE / Target ID / Rate ID / Rate ID / Rate ID / Rate ID / Rate ID / Rate ID]. And the generated signal Rate_signal is transmitted to the cross layer module 21A. The cross layer module 212A of the communication device 100A receives the signal Rate_signal from the load monitor module 11A.

そうすると、通信装置100Aのクロスレイヤモジュール21Aは、その受信した信号Rate_signalと、Requester IDである通信装置100AのIPアドレスとを含む専用パケットPKT_Dを生成し、その生成した専用パケットPKT_Dをルーティングモジュール14へ送信する。   Then, the cross layer module 21A of the communication device 100A generates the dedicated packet PKT_D including the received signal Rate_signal and the IP address of the communication device 100A that is the Requester ID, and the generated dedicated packet PKT_D to the routing module 14 Send.

通信装置100Aのルーティングモジュール14は、クロスレイヤモジュール21Aから専用パケットPKT_Dを受信すると、その受信した専用パケットPKT_Dをトラフィッククラシファイア3を介してキュー5へ入れる。   When receiving the dedicated packet PKT_D from the cross layer module 21A, the routing module 14 of the communication device 100A puts the received dedicated packet PKT_D into the queue 5 via the traffic classifier 3.

そして、通信装置100Aのアップストリームスケジューラ7は、ダウンストリームスケジューラ10からのパケットの出力要求に応じて、キュー5に保持された専用パケットPKT_Dを読み出してキュー8(通信装置101宛てのパケットを保持するキュー)に入れる。   Then, the upstream scheduler 7 of the communication device 100A reads the dedicated packet PKT_D held in the queue 5 in response to a packet output request from the downstream scheduler 10 and holds the packet to the queue 8 (packet addressed to the communication device 101). Queue.

通信装置100Aのキュー8は、アンロック状態にある場合にMACレイヤモジュール1からパケットの出力要求を受けると、専用パケットPKT_DをMACレイヤモジュール1へ送信し、MACレイヤモジュール1は、専用パケットPKT_Dを通信装置101へ送信する(図17参照)。   When the queue 8 of the communication device 100A receives a packet output request from the MAC layer module 1 in the unlocked state, the queue 8 transmits a dedicated packet PKT_D to the MAC layer module 1, and the MAC layer module 1 transmits the dedicated packet PKT_D. It transmits to the communication apparatus 101 (refer FIG. 17).

通信装置101のMACレイヤモジュール1は、専用パケットPKT_Dを通信装置100Aから受信し、専用パケットPKT_Dをネットワークレイヤクラスファイア13へ送信する。   The MAC layer module 1 of the communication apparatus 101 receives the dedicated packet PKT_D from the communication apparatus 100 </ b> A and transmits the dedicated packet PKT_D to the network layer classifier 13.

通信装置101のネットワークレイヤクラスファイア13は、専用パケットPKT_Dを受け、その受けた専用パケットPKT_Dをクロスレイヤモジュール21Aへ送信する。   The network layer classifier 13 of the communication apparatus 101 receives the dedicated packet PKT_D and transmits the received dedicated packet PKT_D to the cross layer module 21A.

通信装置101のクロスレイヤモジュール21Aは、専用パケットPKT_Dを受信すると、その受信した専用パケットPKT_Dから信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Load Generation ID/Requester ID]を取り出す。そして、通信装置101のクロスレイヤモジュール21Aは、その取り出した信号Rate_signalを下層レートコントローラ12へ送信する(図18参照)。   When the cross-layer module 21A of the communication apparatus 101 receives the dedicated packet PKT_D, the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Request Rate / Load Generation ID / Requester ID] is extracted from the received dedicated packet PKT_D. Then, the cross layer module 21A of the communication apparatus 101 transmits the extracted signal Rate_signal to the lower rate controller 12 (see FIG. 18).

上述した動作によって、通信装置100Aにおけるキュー4の負荷を発生させている通信装置101へ目標入力パケットレートが専用パケットPKT_Dによって送信される。そして、目標入力パケットレートを受信した通信装置101においては、目標入力パケットレートは、上述したように下層レートコントローラ12へ送信されるので、下層レートコントローラ12は、目標入力パケットレート=目標出力パケットレートとして目標出力パケットレートを演算し、その演算した目標出力パケットレートになるように通信装置100A宛てのパケットを保持するキュー(キュー8,9のいずれか)の出力パケットレートを制御する。   Through the above-described operation, the target input packet rate is transmitted by the dedicated packet PKT_D to the communication device 101 generating the load on the queue 4 in the communication device 100A. Then, in the communication apparatus 101 that has received the target input packet rate, the target input packet rate is transmitted to the lower layer rate controller 12 as described above, so that the lower layer rate controller 12 sets target input packet rate = target output packet rate. Then, the target output packet rate is calculated, and the output packet rate of the queue (one of the queues 8 and 9) holding the packet addressed to the communication device 100A is controlled so as to be the calculated target output packet rate.

これによって、通信装置101から通信装置100Aへ送信されるパケットが増減し、通信装置100Aのキュー4に保持された保持パケット数H_Pktがキュー4の許容サイズTQLに徐々に近づく。   As a result, the number of packets transmitted from the communication apparatus 101 to the communication apparatus 100A increases or decreases, and the number of held packets H_Pkt held in the queue 4 of the communication apparatus 100A gradually approaches the allowable size TQL of the queue 4.

図19は、目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態2におけるフローチャートである。図19に示すフローチャートは、図5に示すフローチャートのステップS7〜ステップS10をステップS140,S141に代えたものであり、その他は、図5に示すフローチャートと同じである。   FIG. 19 is a flowchart in the second embodiment for explaining an operation of notifying a target input packet rate to another communication apparatus. The flowchart shown in FIG. 19 is the same as the flowchart shown in FIG. 5 except that steps S7 to S10 in the flowchart shown in FIG. 5 are replaced with steps S140 and S141.

一連の動作が開始されると、上述したステップS1〜ステップS5が順次実行され、負荷モニタモジュール11Aは、目標入力パケットレートを含む信号Rate_signalをクロスレイヤモジュール21Aへ送信する。   When a series of operations is started, the above-described steps S1 to S5 are sequentially executed, and the load monitor module 11A transmits a signal Rate_signal including the target input packet rate to the cross layer module 21A.

そして、クロスレイヤモジュール21Aは、負荷モニタモジュール11Aから信号Rate_signalを受信し、その受信した信号Rate_signalと、宛先の通信装置のIPアドレス(Load Generation ID)とRequester IDとして自端末のIPアドレスとを含む専用パケットPKT_Dを生成する(ステップS140)。そして、クロスレイヤモジュール21Aは、その生成した専用パケットPKT_Dをルーティングモジュール14へ送信する(ステップS141)。   Then, the cross-layer module 21A receives the signal Rate_signal from the load monitor module 11A, and includes the received signal Rate_signal, the IP address (Load Generation ID) of the destination communication device, and the IP address of the own terminal as the Requester ID. A dedicated packet PKT_D is generated (step S140). Then, the cross layer module 21A transmits the generated dedicated packet PKT_D to the routing module 14 (step S141).

ルーティングモジュール14は、クロスレイヤモジュール21Aから受信した専用パケットPKT_Dをトラフィッククラシファイア3を介してキュー5に入れ、アップストリームスケジューラ7は、キュー5に保持された専用パケットPKT_Dをキュー8に入れ、ダウンストリームスケジューラ10は、キュー8がアンロック状態である期間にキュー5から専用パケットPKT_Dを読み出してMACレイヤモジュール1へ送信する。そして、MACレイヤモジュール1は、専用パケットPKT_Dを通信装置101へ送信する。これによって、一連の動作は、終了する。   The routing module 14 puts the dedicated packet PKT_D received from the cross layer module 21A into the queue 5 via the traffic classifier 3, and the upstream scheduler 7 puts the dedicated packet PKT_D held in the queue 5 into the queue 8 and downstream The scheduler 10 reads the dedicated packet PKT_D from the queue 5 and transmits it to the MAC layer module 1 while the queue 8 is in the unlocked state. Then, the MAC layer module 1 transmits a dedicated packet PKT_D to the communication device 101. As a result, the series of operations ends.

図20は、図16に示すクロスレイヤモジュール21Aにおける動作を説明するためのフローチャートである。実施の形態2においては、通信装置100Aで生成されたパケットを保持するキュー5および他の通信装置で生成されたパケットを保持するキュー4,6のいずれで負荷が発生しても、各キュー4〜6へのパケットの目標入力パケットレートは、負荷モニタモジュール11Aからクロスレイヤモジュール21Aへ送信され、クロスレイヤモジュール21Aは、目標入力パケットレートを通信装置100Aの上層レートコントローラ20または他の通信装置へ送信する。図20は、目標入力パケットレートのクロスレイヤモジュール21Aにおける処理を説明するためのフローチャートである。   FIG. 20 is a flowchart for explaining the operation in the cross layer module 21A shown in FIG. In the second embodiment, even if a load occurs in any of the queue 5 that holds the packet generated by the communication device 100A and the queues 4 and 6 that hold the packet generated by another communication device, each queue 4 To 6 are transmitted from the load monitor module 11A to the cross layer module 21A, and the cross layer module 21A sends the target input packet rate to the upper layer rate controller 20 of the communication device 100A or another communication device. Send. FIG. 20 is a flowchart for explaining processing in the cross layer module 21A of the target input packet rate.

一連の動作が開始されると、クロスレイヤモジュール21Aは、負荷モニタモジュール11Aから信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate/Load Generation ID]を受信し、その受信した信号Rate_signalに含まれる“LOAD Generation ID”に基づいて、負荷を発生して通信装置をチェックする(ステップS151)。   When a series of operations is started, the cross-layer module 21A receives the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate / Load Generation ID] from the load monitor module 11A, and “LOAD ID included in the received signal Rate_signal”. ”To generate a load and check the communication device (step S151).

そして、クロスレイヤモジュール21Aは、負荷元が他の通信装置か否かを判定し(ステップS152)、負荷元が他の通信装置ではないとき、信号Rate_signal=[NOTIFY_TARGET_RATE/Target Enqueue Rate]を上層レートコントローラ20へ通知する(ステップS153)。   Then, the cross layer module 21A determines whether or not the load source is another communication device (step S152), and when the load source is not another communication device, the signal Rate_signal = [NOTIFY_TARGET_RATE / Target Enqueue Rate] is used as the upper layer rate. The controller 20 is notified (step S153).

一方、ステップS152において、負荷元が他の通信装置であると判定されたとき、クロスレイヤモジュール21Aは、送信先アドレスDEST_ADD、Requester ID=own ID、Notification Type=NOTIFY_TARGET_RATEおよびRateinfo=Target Enqueue Rateを含む専用パケットPKT_Dを生成し(ステップS154)、その生成した専用パケットPKT_Dをルーティングモジュール14へ送信する(ステップS155)。   On the other hand, when it is determined in step S152 that the load source is another communication device, the cross layer module 21A includes the transmission destination address DEST_ADD, Requester ID = own ID, Notification Type = NOTIFY_TARGET_RATE, and Rateinfo = Target Enqueue Rate. A dedicated packet PKT_D is generated (step S154), and the generated dedicated packet PKT_D is transmitted to the routing module 14 (step S155).

そして、ステップS153またはステップS155の後、一連の動作は、終了する。   Then, after step S153 or step S155, the series of operations ends.

図21は、専用パケットPKT_Dを受信した通信装置における動作を説明するためのフローチャートである。一連の動作が開始されると、MACレイヤモジュール1は、目標入力パケットレートを含む専用パケットPKT_Dを受信し、その受信した専用パケットPKT_Dをネットワークレイヤクラシファイア13へ送信する(ステップS161)。   FIG. 21 is a flowchart for explaining the operation in the communication apparatus that has received the dedicated packet PKT_D. When a series of operations starts, the MAC layer module 1 receives the dedicated packet PKT_D including the target input packet rate, and transmits the received dedicated packet PKT_D to the network layer classifier 13 (step S161).

そして、ネットワークレイヤクラシファイア13は、MACレイヤモジュール1から専用パケットPKT_Dを受信し、その受信した専用パケットPKT_Dをクロスレイヤモジュール21Aへ送信する(ステップS162)。   Then, the network layer classifier 13 receives the dedicated packet PKT_D from the MAC layer module 1, and transmits the received dedicated packet PKT_D to the cross layer module 21A (step S162).

クロスレイヤモジュール21Aは、専用パケットPKT_Dを受信すると、その受信した専用パケットPKT_Dから目標入力パケットレートを含む信号Rate_signalを取り出し、その取り出した信号Rate_signalを下層レートコントローラ12へ送信する(ステップS163)。   When receiving the dedicated packet PKT_D, the cross layer module 21A extracts the signal Rate_signal including the target input packet rate from the received dedicated packet PKT_D, and transmits the extracted signal Rate_signal to the lower layer rate controller 12 (step S163).

下層レートコントローラ12は、信号Rate_signalを受信すると、その受信した信号Rate_signalから目標入力パケットレートを読み出し、その読み出した目標入力パケットレートを用いて、上述した方法(図13に示すフローチャート)によって、目標出力パケットレートを演算し、その演算した目標出力パケットレートの逆数を演算してロック期間Lck_time(=ロックインターバル)を計算する(ステップS164)。   When the lower layer rate controller 12 receives the signal Rate_signal, the lower layer rate controller 12 reads the target input packet rate from the received signal Rate_signal, and uses the read target input packet rate to perform the target output by the above-described method (the flowchart shown in FIG. 13). The packet rate is calculated, and the reciprocal of the calculated target output packet rate is calculated to calculate the lock period Lck_time (= lock interval) (step S164).

そして、レートコントロールタイマが満了すると(ステップS165)、下層レートコントローラ12は、ロック状態にあるキュー(ダウンストリームキュー)の状態をロック状態からアンロック状態に変える(ステップS166)。その後、レートコントロールタイマが設定される(ステップS167)。   When the rate control timer expires (step S165), the lower layer rate controller 12 changes the queue (downstream queue) in the locked state from the locked state to the unlocked state (step S166). Thereafter, a rate control timer is set (step S167).

一方、MAC層のMACレイヤモジュール1は、チャネルアクセスを行ない、パケットの送信が可能な状態になると、パケットの出力要求(Dequeue要求)をダウンストリームスケジューラ10へ送信する(ステップS168)。そして、ダウンストリームスケジューラ10は、パケットの出力要求(Dequeue要求)に応じて、アンロック状態にあるキュー(ダウンストリームキュー)から1個のパケットを取り出す(ステップS169)。   On the other hand, when the MAC layer module 1 of the MAC layer performs channel access and becomes ready to transmit a packet, the MAC layer module 1 transmits a packet output request (Dequeue request) to the downstream scheduler 10 (step S168). Then, the downstream scheduler 10 extracts one packet from the queue (downstream queue) in the unlocked state in response to the packet output request (Dequeue request) (step S169).

また、ダウンストリームスケジューラ10は、1個のパケットを取り出したキューの状態をロック状態に設定するためのキューロック要求を下層レートコントローラ12へ送信する(ステップS170)。   Further, the downstream scheduler 10 transmits a queue lock request for setting the state of the queue from which one packet has been taken out to the locked state to the lower layer rate controller 12 (step S170).

下層レートコントローラ12は、ダウンストリームスケジューラ10からのキューロック要求に応じて、1個のパケットを出力したキュー(UNLOCK_queueID)の状態をロック状態に変更する(ステップS171)。   In response to the queue lock request from the downstream scheduler 10, the lower layer rate controller 12 changes the state of the queue (UNLOCK_queueID) that has output one packet to the locked state (step S171).

その後、ダウンストリームスケジューラ10は、ステップS169において、キューから取り出した1個のパケットをMACレイヤモジュール1へ送信するとともに(ステップS172)、パケットが空になったキューを指定し、パケットの出力要求(Dequeue要求)をアップストリームスケジューラ7へ送信する(ステップS173)。   Thereafter, in step S169, the downstream scheduler 10 transmits one packet extracted from the queue to the MAC layer module 1 (step S172), specifies the queue in which the packet is empty, and outputs a packet output request ( (Dequeue request) is transmitted to the upstream scheduler 7 (step S173).

そして、アップストリームスケジューラ7は、パケットの出力要求(Dequeue要求)に応じて、キュー4〜6(アップストリームキュー)から1個のパケットを取り出し(ステップS174)、その取り出した1個のパケットを空になったキューへ入れる(ステップS175)。これによって、一連の動作が終了する。   Then, the upstream scheduler 7 takes out one packet from the queues 4 to 6 (upstream queue) in response to the packet output request (Dequeue request) (step S174), and empty the taken out one packet. Is placed in the queue (step S175). As a result, a series of operations is completed.

上述したように、目標入力パケットレートを含む専用パケットPKT_Dを受信した通信装置においては、受信した目標入力パケットレートに応じたロック期間Lck_time(ロックインターバル)が演算され、その演算されたたロック期間Lck_time(ロックインターバル)によって、キュー8,9からMACレイヤモジュール1(MAC層)へのパケットの出力パケットレートが制御される。   As described above, in the communication device that has received the dedicated packet PKT_D including the target input packet rate, the lock period Lck_time (lock interval) corresponding to the received target input packet rate is calculated, and the calculated lock period Lck_time is calculated. The output packet rate of packets from the queues 8 and 9 to the MAC layer module 1 (MAC layer) is controlled by (lock interval).

なお、図21においては、通信装置101が目標入力パケットレートを含む専用パケットPKT_Dを受信した場合について説明したが、通信装置102が目標入力パケットレートを含む専用パケットPKT_Dを受信した場合も、図21に示すフローチャートに従ってパケットの出力パケットレートの制御が行なわれる。   In FIG. 21, the case where the communication apparatus 101 receives the dedicated packet PKT_D including the target input packet rate has been described, but the case where the communication apparatus 102 receives the dedicated packet PKT_D including the target input packet rate is also illustrated in FIG. The packet output packet rate is controlled according to the flowchart shown in FIG.

上述したように、通信装置100Aで生成されたパケットを保持するキュー5の負荷(=保持パケット数H_Pkt)がキュー5の許容サイズTQLから掛け離れたとき、通信装置100Aのアプリケーション(Voice17およびVideo18)がキュー5へ出力するパケットの出力パケットレートを制御してキュー5に保持された保持パケット数H_Pktをキュー5の許容サイズTQLに近づける。また、通信装置100A以外の通信装置101,102から送信されたパケットを保持する通信装置100Aのキュー4,6の負荷(=保持パケット数H_Pkt)がキュー4,6の許容サイズTQLから掛け離れたとき、通信装置101,102のキュー8,9からのパケットの出力パケットレートを制御して通信装置100Aのキュー4,6に保持された保持パケット数H_Pktをキュー4,6の許容サイズTQLに近づける。   As described above, when the load of the queue 5 that holds packets generated by the communication device 100A (= the number of held packets H_Pkt) is far from the allowable size TQL of the queue 5, the applications (Voice 17 and Video 18) of the communication device 100A The output packet rate of the packets output to the queue 5 is controlled so that the number of held packets H_Pkt held in the queue 5 approaches the permissible size TQL of the queue 5. Also, when the load on the queues 4 and 6 of the communication device 100A that holds packets transmitted from the communication devices 101 and 102 other than the communication device 100A (= the number of held packets H_Pkt) is far from the permissible size TQL of the queues 4 and 6. Then, by controlling the output packet rate of the packets from the queues 8 and 9 of the communication apparatuses 101 and 102, the number of held packets H_Pkt held in the queues 4 and 6 of the communication apparatus 100A is brought close to the allowable size TTL of the queues 4 and 6.

そして、この通信装置100Aにおけるアプリケーション(Voice17およびVideo18)からキュー5へのパケットの出力パケットレートの制御と、通信装置101,102における通信装置101,102から通信装置100Aへのパケットの出力パケットレートの制御を行なうことによって、各通信装置100A,101,102においてキュー4〜6に保持される保持パケット数H_Pktがキュー4〜6の許容サイズTQLに近づき、各通信装置100A,101,102における負荷が軽減される。その結果、通信装置100A,101,102からなるアドホックネットワークを安定化できる。   Then, control of the output packet rate of packets from the application (Voice 17 and Video 18) to the queue 5 in the communication device 100A and the output packet rate of packets from the communication devices 101, 102 to the communication device 100A in the communication devices 101, 102 are performed. By performing the control, the number of held packets H_Pkt held in the queues 4 to 6 in each of the communication devices 100A, 101, and 102 approaches the allowable size TQL of the queues 4 to 6, and the load on each of the communication devices 100A, 101, and 102 is increased. It is reduced. As a result, an ad hoc network composed of the communication devices 100A, 101, and 102 can be stabilized.

その他は、実施の形態1と同じである。   Others are the same as in the first embodiment.

上記においては、キュー8,9は、1個のパケットを保持すると説明したが、この発明においては、これに限らず、キュー8,9は、1個以外の任意に決定された一定個数のパケットを保持するようにしてもよい。つまり、キュー8,9は、ダウンストリームスケジューラ10が、キュー8,9が空であるか否かを容易に判定できる個数のパケットを保持すればよい。   In the above description, the queues 8 and 9 hold one packet. However, in the present invention, the queues 8 and 9 are not limited to this, and the queues 8 and 9 have a fixed number of packets determined arbitrarily. May be held. That is, the queues 8 and 9 may hold a number of packets that the downstream scheduler 10 can easily determine whether or not the queues 8 and 9 are empty.

なお、キュー4〜6は、「入力バッファ」を構成し、キュー4〜6に保持された保持パケット数H_Pktを検出する負荷モニタモジュール11,11Aは、「検出手段」を構成する。   The queues 4 to 6 constitute an “input buffer”, and the load monitor modules 11 and 11A that detect the number of held packets H_Pkt held in the queues 4 to 6 constitute “detection means”.

また、負荷モニタモジュール11、上層レートコントローラ20、下層レートコントローラ12およびアップストリームスケジューラ7は、「制御手段」を構成し、負荷モニタモジュール11A、上層レートコントローラ20および下層レートコントローラ12は、「制御手段」を構成する。   The load monitor module 11, the upper layer rate controller 20, the lower layer rate controller 12 and the upstream scheduler 7 constitute “control means”, and the load monitor module 11 A, the upper layer rate controller 20 and the lower layer rate controller 12 are “control means”. Is configured.

更に、Voice17およびVideo18は、「生成手段」を構成する。   Furthermore, the Voice 17 and the Video 18 constitute “generation means”.

更に、キュー5は、「第1の入力バッファ」を構成し、キュー4,6は、「第2の入力バッファ」を構成する。   Further, the queue 5 constitutes a “first input buffer”, and the queues 4 and 6 constitute a “second input buffer”.

更に、目標入力パケットレートを演算する負荷モニタモジュール11,11Aは、「第1の演算手段」を構成し、目標入力パケットレートを上層レートコントローラ20へ通知するクロスレイヤモジュール21,21Aは、「通知手段」を構成し、目標入力パケットレートを用いて目標出力パケットレートを演算する上層レートコントローラ20および下層レートコントローラ12は、「第2の演算手段」を構成し、演算した目標出力パケットレートをVoice17およびVideo18へ送信する上層レートコントローラ20は、「出力手段」を構成する。   Further, the load monitor modules 11 and 11A for calculating the target input packet rate constitute “first calculation means”, and the cross layer modules 21 and 21A for notifying the upper layer rate controller 20 of the target input packet rate are “notifications”. The upper layer rate controller 20 and the lower layer rate controller 12 that calculate the target output packet rate using the target input packet rate constitute the “second calculation unit” and set the calculated target output packet rate to Voice 17. The upper layer rate controller 20 for transmitting to the Video 18 constitutes “output means”.

更に、他の通信装置へ通知する目標入力パケットレートを演算する負荷モニタモジュール11は、「演算手段」を構成し、他の通信装置へ通知する目標入力パケットレートをパケットに入れるアップストリームスケジューラ7は、「通知手段」を構成する。   Further, the load monitor module 11 for calculating the target input packet rate to be notified to other communication devices constitutes “calculation means”, and the upstream scheduler 7 for putting the target input packet rate to be notified to other communication devices into the packet is , “Notification means”.

更に、専用パケットPKT_Dを生成して他の通信装置へ送信するクロスレイヤモジュール21Aは、「通知手段」を構成する。   Furthermore, the cross-layer module 21A that generates the dedicated packet PKT_D and transmits it to another communication apparatus constitutes “notification means”.

MACレイヤモジュール1は、「送信手段」を構成し、キュー8,9は、「出力バッファ」を構成し、下層レートコントローラ12は、「通信制御手段」を構成する。   The MAC layer module 1 constitutes “transmission means”, the queues 8 and 9 constitute “output buffer”, and the lower layer rate controller 12 constitutes “communication control means”.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is shown not by the above description of the embodiments but by the scope of claims for patent, and is intended to include meanings equivalent to the scope of claims for patent and all modifications within the scope.

この発明は、通信ネットワークの安定化が可能な通信装置に適用される。また、この発明は、通信ネットワークの安定化が可能な通信装置を備えた通信ネットワークに適用される。   The present invention is applied to a communication device capable of stabilizing a communication network. The present invention is also applied to a communication network provided with a communication device capable of stabilizing the communication network.

この発明の実施の形態1による通信装置の構成を示す概略図である。It is the schematic which shows the structure of the communication apparatus by Embodiment 1 of this invention. 自律的に確立される通信ネットワークであるアドホックネットワークの概念図である。It is a conceptual diagram of the ad hoc network which is a communication network established autonomously. 目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態1における第1の概念図である。FIG. 7 is a first conceptual diagram in Embodiment 1 for explaining an operation of notifying another communication device of a target input packet rate. 目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態1における第2の概念図である。It is the 2nd conceptual diagram in Embodiment 1 for demonstrating the operation | movement which notifies a target input packet rate to another communication apparatus. 目標入力パケットレートをアプリケーションへ通知する動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement which notifies a target input packet rate to an application. 目標入力パケットレートを他の通信装置へ通知する動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement which notifies a target input packet rate to another communication apparatus. 目標入力パケットレートを受信した通信装置における動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement in the communication apparatus which received the target input packet rate. 図1に示す負荷モニタモジュールにおけるキューの許容サイズを演算する動作を説明するためのフローチャートである。3 is a flowchart for explaining an operation of calculating an allowable size of a queue in the load monitor module shown in FIG. 1. 許容サイズの計算方法を説明するためのフローチャートである。It is a flowchart for demonstrating the calculation method of an allowable size. 許容サイズの他の計算方法を説明するためのフローチャートである。It is a flow chart for explaining other calculation methods of permissible size. 目標入力パケットレートの計算方法を説明するためのフローチャートである。It is a flowchart for demonstrating the calculation method of a target input packet rate. 目標出力パケットレートの計算方法を説明するためのフローチャートである。It is a flowchart for demonstrating the calculation method of a target output packet rate. 図1に示す下層レートコントローラにおける目標出力パケットレートの計算方法を説明するためのフローチャートである。3 is a flowchart for explaining a method of calculating a target output packet rate in the lower layer rate controller shown in FIG. 1. 図1に示すダウンストリームスケジューラにおける動作を説明するためのフローチャートである。3 is a flowchart for explaining an operation in the downstream scheduler shown in FIG. 1. 図14によってダウンストリームスケジューラからパケットのDequeue要求を受けたときの図1に示すアップストリームスケジューラにおける動作を説明するためのフローチャートである。FIG. 15 is a flowchart for explaining an operation in the upstream scheduler shown in FIG. 1 when receiving a request for a packet from the downstream scheduler in FIG. 14. FIG. 実施の形態2による通信装置の構成を示す概略図である。FIG. 6 is a schematic diagram illustrating a configuration of a communication device according to a second embodiment. 目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態2における第1の概念図である。FIG. 10 is a first conceptual diagram in Embodiment 2 for explaining an operation of notifying a target input packet rate to another communication device. 目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態2における第2の概念図である。FIG. 10 is a second conceptual diagram in Embodiment 2 for explaining an operation of notifying a target input packet rate to another communication device. 目標入力パケットレートを他の通信装置へ通知する動作を説明するための実施の形態2におけるフローチャートである。10 is a flowchart in Embodiment 2 for explaining an operation of notifying a target input packet rate to another communication apparatus. 図16に示すクロスレイヤモジュールにおける動作を説明するためのフローチャートである。17 is a flowchart for explaining an operation in the cross layer module shown in FIG. 16. 専用パケットを受信した通信装置における動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement in the communication apparatus which received the exclusive packet.

符号の説明Explanation of symbols

1 MACレイヤモジュール、2 リンクレイヤクラシファイア、3 トラフィッククラシファイア、4〜6,8,9 キュー、7 アップストリームスケジューラ、10 ダウンストリームスケジューラ、11,11A 負荷モニタモジュール、12 下層レートコントローラ、13 ネットワークレイヤクラシファイア、14 ルーティングモジュール、15 UDP、16 TCP、17 Voice、18 Video、19 Text、20 上層レートコントローラ、21,21A クロスレイヤモジュール、100,100A,101,102 通信装置。   1 MAC layer module, 2 link layer classifier, 3 traffic classifier, 4-6, 8, 9 queue, 7 upstream scheduler, 10 downstream scheduler, 11, 11A load monitor module, 12 lower layer rate controller, 13 network layer classifier, 14 Routing module, 15 UDP, 16 TCP, 17 Voice, 18 Video, 19 Text, 20 Upper layer rate controller, 21, 21A Cross layer module, 100, 100A, 101, 102 Communication device.

Claims (10)

自律的に確立される通信ネットワークを構成し、負荷を制御可能な通信装置であって、
パケットが入力される入力バッファと、
前記入力バッファに保持された保持パケット数を検出する検出手段と、
前記検出手段によって検出された保持パケット数が前記入力バッファの許容サイズに近づくように前記入力バッファに入るパケット数を制御する制御手段とを備える通信装置。
A communication device that constitutes an autonomously established communication network and can control the load,
An input buffer into which packets are input;
Detecting means for detecting the number of held packets held in the input buffer;
And a control unit that controls the number of packets entering the input buffer so that the number of held packets detected by the detection unit approaches the allowable size of the input buffer.
パケットを生成する生成手段を更に備え、
前記バッファは、
前記生成手段によって生成されたパケットが入力される第1の入力バッファと、
他の通信装置から送信されたパケットが入力される第2の入力バッファとを含み、
前記検出手段は、前記第1および第2の入力バッファにそれぞれ保持された第1および第2の保持パケット数を検出し、
前記制御手段は、前記第1の保持パケット数が前記第1の入力バッファの第1の許容サイズに近づくように前記生成手段を制御するとともに、前記第2の保持パケット数が前記第2の入力バッファの第2の許容サイズに近づくように前記他の通信装置を制御し、
前記生成手段は、前記制御手段からの制御に従って、前記第1の保持パケット数が前記第1の許容サイズに近づくように前記第1の入力バッファに入れる入力パケットレートを増減する、請求項1に記載の通信装置。
Further comprising generating means for generating a packet;
The buffer is
A first input buffer into which a packet generated by the generating means is input;
A second input buffer to which a packet transmitted from another communication device is input,
The detecting means detects the first and second held packet numbers held in the first and second input buffers, respectively.
The control means controls the generating means so that the first held packet number approaches the first allowable size of the first input buffer, and the second held packet number is the second input. Controlling the other communication device to approach a second allowable size of the buffer;
2. The generation unit according to claim 1, wherein the generation unit increases or decreases an input packet rate to be input to the first input buffer so that the first number of retained packets approaches the first allowable size in accordance with control from the control unit. The communication device described.
前記制御手段は、
前記第1の入力バッファに入れる入力パケットレートの目標値である第1の目標入力パケットレートを演算する第1の演算手段と、
前記生成手段が前記パケットを前記第1の入力バッファへ出力するときの出力パケットレートを前記第1の目標入力パケットレートを用いて演算する第2の演算手段と、
前記演算された出力パケットレートを前記生成手段へ出力する出力手段とを含み、
前記生成手段は、前記生成したパケットを前記出力パケットレートで前記第1の入力バッファへ出力する、請求項2に記載の通信装置。
The control means includes
First calculating means for calculating a first target input packet rate that is a target value of an input packet rate to be input to the first input buffer;
Second computing means for computing an output packet rate when the generating means outputs the packet to the first input buffer using the first target input packet rate;
Output means for outputting the calculated output packet rate to the generating means,
The communication device according to claim 2, wherein the generation unit outputs the generated packet to the first input buffer at the output packet rate.
前記制御手段は、
前記第2の入力バッファに入れる入力パケットレートの目標値である第2の目標入力パケットレートを演算する演算手段と、
前記第2の目標入力パケットレートを前記他の通信装置へ通知する通知手段とを含む、請求項2に記載の通信装置。
The control means includes
Computing means for computing a second target input packet rate that is a target value of the input packet rate to be put into the second input buffer;
The communication device according to claim 2, further comprising notification means for notifying the other target communication device of the second target input packet rate.
前記通知手段は、前記第2の目標入力パケットレートを前記他の通信装置宛のパケットに含めて前記他の通信装置へ通知する、請求項4に記載の通信装置。   The communication device according to claim 4, wherein the notification unit includes the second target input packet rate in a packet addressed to the other communication device and notifies the other communication device. 前記通知手段は、前記第2の目標入力パケットレートを専用パケットに含めて前記他の通信装置へ通知する、請求項4に記載の通信装置。   The communication device according to claim 4, wherein the notification unit includes the second target input packet rate in a dedicated packet and notifies the other communication device. 各送信先へパケットを送信する送信手段と、
保持しているパケットが空になると前記第1および/または第2の入力バッファから前記パケットを受けて送信先ごとに保持するとともに、前記保持したパケットを前記送信手段へ送信する出力バッファと、
前記第1および第2の保持パケット数がそれぞれ前記第1および第2の許容サイズに近づくように前記出力バッファが前記パケットを前記送信手段へ送信するときの送信パケットレートを制御する送信制御手段とを更に備える、請求項2に記載の通信装置。
A transmission means for transmitting a packet to each destination;
An output buffer that receives the packet from the first and / or second input buffer and holds it for each destination when the held packet becomes empty, and transmits the held packet to the transmission means;
Transmission control means for controlling a transmission packet rate when the output buffer transmits the packets to the transmission means so that the first and second held packet numbers approach the first and second allowable sizes, respectively. The communication device according to claim 2, further comprising:
前記出力バッファは、前記パケットを送信可能であるアンロック状態と前記パケットを送信できないロック状態とが設定され、前記アンロック状態が設定されると前記パケットを前記送信手段へ送信し、前記ロック状態が設定されると前記パケットの前記送信手段への送信を停止し、
前記送信制御手段は、前記アンロック状態の期間と前記ロック状態の期間とを制御することによって前記送信パケットレートを制御する、請求項7に記載の通信装置。
The output buffer is set to an unlocked state in which the packet can be transmitted and a locked state in which the packet cannot be transmitted, and when the unlocked state is set, the packet is transmitted to the transmission means, and the locked state Is set, the transmission of the packet to the transmission means is stopped,
The communication apparatus according to claim 7, wherein the transmission control unit controls the transmission packet rate by controlling a period of the unlock state and a period of the lock state.
前記送信制御手段は、前記第1の入力バッファに入れる入力パケットレートの目標値である第1の目標入力パケットレートを演算し、その演算した第1の目標入力パケットレートを用いて前記送信パケットレートを演算するとともに、前記演算した送信パケットレートの逆数を前記ロック状態の期間として演算し、その演算したロック状態の期間に基づいて前記送信パケットレートを制御する、請求項8に記載の通信装置。   The transmission control means calculates a first target input packet rate that is a target value of an input packet rate to be put into the first input buffer, and uses the calculated first target input packet rate to transmit the transmission packet rate. The communication apparatus according to claim 8, wherein an inverse of the calculated transmission packet rate is calculated as the period of the locked state, and the transmission packet rate is controlled based on the calculated period of the locked state. 請求項1から請求項9のいずれか1項に記載の通信装置を備える通信ネットワーク。   A communication network provided with the communication apparatus of any one of Claims 1-9.
JP2006279498A 2006-10-13 2006-10-13 COMMUNICATION DEVICE CONTROLLING LOAD AND COMMUNICATION NETWORK HAVING THE SAME Expired - Fee Related JP4822343B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006279498A JP4822343B2 (en) 2006-10-13 2006-10-13 COMMUNICATION DEVICE CONTROLLING LOAD AND COMMUNICATION NETWORK HAVING THE SAME

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006279498A JP4822343B2 (en) 2006-10-13 2006-10-13 COMMUNICATION DEVICE CONTROLLING LOAD AND COMMUNICATION NETWORK HAVING THE SAME

Publications (2)

Publication Number Publication Date
JP2008099055A true JP2008099055A (en) 2008-04-24
JP4822343B2 JP4822343B2 (en) 2011-11-24

Family

ID=39381416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006279498A Expired - Fee Related JP4822343B2 (en) 2006-10-13 2006-10-13 COMMUNICATION DEVICE CONTROLLING LOAD AND COMMUNICATION NETWORK HAVING THE SAME

Country Status (1)

Country Link
JP (1) JP4822343B2 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014072688A (en) * 2012-09-28 2014-04-21 National Institute Of Information & Communication Technology Portable terminal with virtual received signal indicator display function
JP2014531786A (en) * 2011-08-15 2014-11-27 カルガリー サイエンティフィック インコーポレイテッド Method for flow control in a collaborative environment and for reliable communication
US9602581B2 (en) 2012-03-02 2017-03-21 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (DLL) injection
US9686205B2 (en) 2013-11-29 2017-06-20 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
US9871860B2 (en) 2008-11-26 2018-01-16 Calgary Scientific Inc. Method and system for providing remote access to a state of an application program
US9986012B2 (en) 2011-08-15 2018-05-29 Calgary Scientific Inc. Remote access to an application program
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US10158701B2 (en) 2011-03-21 2018-12-18 Calgary Scientific Inc.. Method and system for providing a state model of an application program
US10284688B2 (en) 2011-09-30 2019-05-07 Calgary Scientific Inc. Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL)
US10410306B1 (en) 2011-01-04 2019-09-10 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
US10454979B2 (en) 2011-11-23 2019-10-22 Calgary Scientific Inc. Methods and systems for collaborative remote application sharing and conferencing
US11310348B2 (en) 2015-01-30 2022-04-19 Calgary Scientific Inc. Highly scalable, fault tolerant remote access architecture and method of connecting thereto

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006006208A1 (en) * 2004-07-08 2006-01-19 Mitsubishi Denki Kabushiki Kaisha Radio base station

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006006208A1 (en) * 2004-07-08 2006-01-19 Mitsubishi Denki Kabushiki Kaisha Radio base station

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9871860B2 (en) 2008-11-26 2018-01-16 Calgary Scientific Inc. Method and system for providing remote access to a state of an application program
US10334042B2 (en) 2008-11-26 2019-06-25 Calgary Scientific Inc. Method and system for providing remote access to a state of an application program
US10965745B2 (en) 2008-11-26 2021-03-30 Calgary Scientific Inc. Method and system for providing remote access to a state of an application program
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US10410306B1 (en) 2011-01-04 2019-09-10 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
US10158701B2 (en) 2011-03-21 2018-12-18 Calgary Scientific Inc.. Method and system for providing a state model of an application program
US9720747B2 (en) 2011-08-15 2017-08-01 Calgary Scientific Inc. Method for flow control and reliable communication in a collaborative environment
US10693940B2 (en) 2011-08-15 2020-06-23 Calgary Scientific Inc. Remote access to an application program
US9986012B2 (en) 2011-08-15 2018-05-29 Calgary Scientific Inc. Remote access to an application program
US9992253B2 (en) 2011-08-15 2018-06-05 Calgary Scientific Inc. Non-invasive remote access to an application program
US10474514B2 (en) 2011-08-15 2019-11-12 Calgary Scientific Inc. Method for flow control and for reliable communication in a collaborative environment
JP2014531786A (en) * 2011-08-15 2014-11-27 カルガリー サイエンティフィック インコーポレイテッド Method for flow control in a collaborative environment and for reliable communication
US10904363B2 (en) 2011-09-30 2021-01-26 Calgary Scientific Inc. Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL)
US10284688B2 (en) 2011-09-30 2019-05-07 Calgary Scientific Inc. Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL)
US10454979B2 (en) 2011-11-23 2019-10-22 Calgary Scientific Inc. Methods and systems for collaborative remote application sharing and conferencing
US9602581B2 (en) 2012-03-02 2017-03-21 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (DLL) injection
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
JP2014072688A (en) * 2012-09-28 2014-04-21 National Institute Of Information & Communication Technology Portable terminal with virtual received signal indicator display function
US9979670B2 (en) 2013-11-29 2018-05-22 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US10728168B2 (en) 2013-11-29 2020-07-28 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US9686205B2 (en) 2013-11-29 2017-06-20 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
US11310348B2 (en) 2015-01-30 2022-04-19 Calgary Scientific Inc. Highly scalable, fault tolerant remote access architecture and method of connecting thereto

Also Published As

Publication number Publication date
JP4822343B2 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP4822343B2 (en) COMMUNICATION DEVICE CONTROLLING LOAD AND COMMUNICATION NETWORK HAVING THE SAME
US9385835B2 (en) System and method for adaptive frame size management in a wireless multihop network
CN103262482B (en) Communication system, control equipment and node control method
US7190669B2 (en) System, method and computer readable medium for flow control of data traffic
EP2538630B1 (en) High-speed communication system and high-speed communication method
JP2018508151A (en) Method, apparatus, and system for transmitting transmission control protocol TCP data packet
JP6304993B2 (en) Wireless communication system and wireless communication method
WO2021103706A1 (en) Data packet sending control method, model training method, device, and system
CN102148662A (en) Adjusting method and device for data transmitting speed
US12010025B2 (en) System and method for accelerating or decelerating a data transport network protocol based on real time transport network congestion conditions
TWI531186B (en) Multiple-interface network device and selection method for transmitting network packets
JP2011061699A (en) Congestion control apparatus and congestion control method
CN107852372B (en) Data packet network
JP2016208315A (en) Communication device, communication processing method, and communication program
JP5308364B2 (en) Transmission device, transmission method, and program
JP2010130329A (en) Communication apparatus and relay apparatus
KR20170087345A (en) Self Adaptive Data Transmission Interval Control Method and IoT System applying the same
CN110493141B (en) Route forwarding transmission control method, device, equipment and storage medium
JP4705619B2 (en) Admission control method, wireless LAN base station apparatus, and program
CN113039754A (en) Supervised traffic management in SigMesh networks
KR20120088302A (en) Router- control apparatus and method using wireless link status information
JP2018019172A (en) Control device, communication device and setting method
WO2016161784A1 (en) Method and device for reducing message congestion in lmp
JP2009267642A (en) Flow controller and flow control method
KR20160069185A (en) Congestion control method at large scale crop management system based on wireless multimedia sensor network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees