JP2013239910A - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP2013239910A
JP2013239910A JP2012111769A JP2012111769A JP2013239910A JP 2013239910 A JP2013239910 A JP 2013239910A JP 2012111769 A JP2012111769 A JP 2012111769A JP 2012111769 A JP2012111769 A JP 2012111769A JP 2013239910 A JP2013239910 A JP 2013239910A
Authority
JP
Japan
Prior art keywords
packet
scheduling
transmission
flow
processing unit
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.)
Pending
Application number
JP2012111769A
Other languages
English (en)
Inventor
Tetsushi Matsuda
哲史 松田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012111769A priority Critical patent/JP2013239910A/ja
Publication of JP2013239910A publication Critical patent/JP2013239910A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】特定条件下においてサイズの小さいパケットを優先的に処理するようにスケジューリングする通信装置を得ること。
【解決手段】本発明は、各フローのパケットについて、所定のスケジューリングラウンドにおけるフローごとの送信データ量の合計値が規定値を超えた時点でスケジューリングラウンドにおけるフローのパケットに対する送信機会の付与を終了するパケットスケジューリングを行う通信装置であって、規定値と合計値の差に応じて、送信機会を与えるパケットのサイズを制限するスケジューリングを行うスケジューリング処理部12と、スケジューリング処理部12により送信機会が与えられたパケットを送信するパケット送信処理部13と、を備える。
【選択図】図1

Description

本発明は、パケットデータ通信を行う通信装置に関し、特に、パケットを複数のフローに分類し、各フローに順番に送信機会を与えるよう、ある時点で送信するパケットを決定するパケットスケジューリングを行う通信装置に関する。
パケットデータ通信を行う従来の通信装置において使用されているパケットスケジューリングアルゴリズムとして、Deficit Round Robin(DRR)、Surplus Round Robin(SRR)、Eligibility Based Round Robin(EBRR)などが存在する。これらのDRR、SRRおよびEBRRは、計算量がO(1)となる方式である。
例えば、上記方式のうち、EBRRは、DRRやSRRと異なり、quantum値(スケジューリングラウンド毎に各フローのCredit Counterに加算する値)が最大パケットサイズ未満の場合でも計算量がO(1)であるという特徴を持っている。なお、Credit Counterは、フローごとに設定され、対応するフローのパケットが送信されるごとに、パケットのサイズが減算されて小さな値に更新される。Credit Counterが0以下になると、そのスケジューリングラウンドでは、対応するフロー(パケット)の送信機会が与えられなくなる。EBRRは、quantum値が最大パケットサイズ未満の場合でも計算量がO(1)となるように変形したSRRと見なすことができる。EBRRの詳細については下記の非特許文献1に記載されている。
L.Lenzini, E.Mingozzi and G.Stea, "Eligibility−Based Round Robin for Fair and Efficient Packet Scheduling in Wormhole Switching Networks", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL.15, No.3 MARCH 2004
従来のEBRRを適用したパケットスケジューリングでは、同一スケジューリングラウンドで、送信可能状態(Credit Counterが正の値)であるが送信待ちのパケットが存在していないフローが複数存在している状態で、これらのフローの送信すべきパケットを受け取った場合、スケジューラーは、パケットのサイズに関わらず、受け取った順番どおりに、送信機会を与える。よって、大きなパケットを小さなパケットよりも先に受け取り、大きなパケットから送信されることが有り得る。このため、大きなパケットの後に送信される小さなパケットの遅延時間が増加する。インターネットにおける小さなパケットの例として、TCP ACKやVoIPパケットが挙げられるが、概してより少ない遅延時間が好ましいパケットである。このように、優先的に処理して低遅延で送信するのが望ましいにもかかわらず、遅延時間が増大するおそれがあるという問題があった。
本発明は、上記に鑑みてなされたものであって、同一スケジューリングラウンドで、送信可能状態(Credit Counterが正の値)であるが送信待ちのパケットが存在していないフローが複数存在している状態で、複数フローの送信パケットが発生した場合に、サイズの小さいパケットを優先的に処理するようにスケジューリングする通信装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、各フローのパケットについて、所定のスケジューリングラウンドにおけるフローごとの送信データ量の合計値が規定値を超えた時点で当該スケジューリングラウンドにおける当該フローのパケットに対する送信機会の付与を終了するパケットスケジューリングを行う通信装置であって、前記規定値と前記合計値の差に応じて、送信機会を与えるパケットのサイズを制限するスケジューリングを行うスケジューリング手段と、前記スケジューリング手段により送信機会が与えられたパケットを送信する送信手段と、を備えることを特徴とする。
本発明によれば、低遅延で送信するのが望ましい可能性の高いパケットである小さいサイズのパケットを優先的に送信する通信装置を実現できるという効果を奏する。
図1は、本発明にかかる通信装置の要部構成例を示す図である。 図2−1は、スケジューリングアルゴリズムの一例を示す図である。 図2−2は、スケジューリングアルゴリズムの一例を示す図である。
以下に、本発明にかかる通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
ここでまず、EBRRによるパケットスケジューリングについて説明する。EBRRのパケットスケジューリング(以下、EBRRスケジューリングと呼ぶ)は、パケットのフローを単位として行う。即ち、EBRRスケジューリングでは、次に送信するパケットをどのフローの先頭パケットにするかを決定する。パケットのフローは、例えばパケットの送信元と送信先のアドレスの値により特定される。
EBRRスケジューリングでは、フローiに属するパケットを格納するキューをQueue[i]、フローiのパケットに対する送信可否判断に使用するCredit CounterをCi、1スケジューリングラウンドでのCiの増分値quantum値をQiとして管理する。
また、配列ActiveList[]を管理する。ActiveList[]のインデックスはスケジューリングラウンドに対応し、ActiveList[]の要素は、インデックスが表わすスケジューリングラウンドでスケジューリング対象となるフローを格納するキューQueue[i]のリストである。以下では、最大パケットサイズをL、配列ActiveList[]のサイズをq、現在のスケジューリングラウンド(0,1,2,…)をRCと表わす。この場合、q=ceil(L/(Qiの最小値))[ceil(x)はx以上の最小の整数を返す関数]となる。1スケジューリングラウンドでの処理は以下のとおりである。
i)ActiveList[RC mod q]から最初の要素(Queue[i])を取り出す。Queue[i]の先頭から1パケットをデキューし送信する。Ciをパケット長分減算する。よって、1スケジューリングラウンドにおけるCiの初期値とある時点のCiの差は、そのスケジューリングラウンドにおいてQueue[i]から取り出して送信したパケットの総量(送信済みパケットのサイズの合計値)となる。
ii)もし、Ci>0かつQueue[i]が空でなければ、Queue[i]をActiveList[RC mod q]の最後に追加する。もし、Ci≦0ならば、スケジューリングラウンド毎にQiをCiに加算することで、Ciが0より大きくなるスケジューリングラウンドrcを見つける。つまり、rc=RC+floor(−Ci/Qi)+1となる。なお、floor(x)はx以下の最大の整数を返す関数である。rcが見つかると、Queue[i]の状態を確認し、空ではない場合、Queue[i]をActiveList[rc mod q]の最後に追加し、CiをスケジューリングラウンドrcでのCiの値に更新する。例えば、rc=RC+1、つまりrcが次のスケジューリングラウンドを示しているのであれば、CiをQiに設定する(Ci=Ci+Qi)。rc=RC+2の場合には、Ci=Ci+2*Qiとする。これに対して、Queue[i]が空の場合、Queue[i]のパケットがスケジューリングラウンドrc以降ならば送信可能であることを記録し、Ciを更新する。
iii)スケジューリングラウンドRCにおいてフローiのパケットを受信した場合(送信すべきフローiのパケットが発生した場合)、Queue[i]にパケットをエンキューする。もし、エンキューする前のQueue[i]の状態が空であったならば、rcをQueue[i]内のパケットを送信可能なスケジューリングラウンドとすると、Queue[i]をActiveList[max(rc,RC) mod q]の最後に追加する。
このように、EBRRスケジューリングでは、Ci>0の場合、Queue[i]が空でなければ、Queue[i]から次回デキューするパケットのサイズに関係なく、ActiveList[RC mod q]の最後にQueue[i]を追加し、送信機会を与える。また、Ci>0かつQueue[i]が空の状態でパケットをエンキューすると、ActiveList[RC mod q]の最後にQueue[i]を追加し、送信機会を与える。そのため、上述したような問題、すなわち、サイズの小さなパケットをサイズの大きなパケットよりも優先的に送信することができない。
実施の形態.
次に、本発明の実施の形態を説明する。なお、本実施の形態の説明で使用するパラメータ、変数等は、本願発明に特有のものを除いて、上述したEBRRスケジューリングの説明で使用したものと同じものとする。
図1は、本発明にかかる通信装置の要部構成例を示す図である。本実施の形態の通信装置は、パケット送信要求受付処理部11、スケジューリング処理部12、パケット送信処理部13、タイマー部14、Credit Counter格納部15、Quantum値格納部16、ActiveList格納部17、パケットデータ格納部18、処理待ちパケット情報格納部19およびキュー情報格納部20を備える。パケット送信要求受付処理部11、スケジューリング処理部12およびパケット送信処理部13は、例えば、CPU(Central Processing Unit)の処理によりソフト的に実現される。
パケット送信要求受付処理部11は、通信装置内の他機能ブロック(図示せず)からのパケット送信要求を受け付ける。また、パケット送信要求とともに受け取ったパケットをパケットデータ格納部18に保存し、このパケットの情報(例えば、パケット長、パケットが属するフロー決定に必要なヘッダ情報、など)を処理待ちパケット情報格納部19に格納する。なお、パケットが属するフロー決定に必要なヘッダ情報としては、送信先アドレス、送信元アドレス、データ種別、優先度、などが考えられる。これら以外の情報であっても構わない。
スケジューリング処理部12は、パケットデータ格納部18に格納されているパケットの送信順番を処理待ちパケット情報格納部19に格納された情報(以下、送信パケット情報)に基づいて決定する処理(パケットスケジューリング)を行う。なお、パケットスケジューリング処理は、タイマー部14から指示を受けると実行する。タイマー部14からの指示は一定周期で行われる。
パケット送信処理部13は、スケジューリング処理部12から送信要求を受けると、送信要求の内容に従い、パケットをネットワークインタフェースへ送信する。
タイマー部14は、スケジューリング処理部12がパケットスケジューリング処理を実行する周期を管理するため、指定された時間が経過する毎に、スケジューリング処理部12に対して通知信号を発行する。スケジューリング処理部12の処理をCPUが実行する構成の場合には、CPUへの割込を指定された時間が経過する毎に発生させる。通知信号の発行周期(割込み発生周期)は、スケジューリング処理部12から予め指定された周期とする。
Credit Counter格納部15は、スケジューリング処理部12がパケットスケジューリングを行う際に使用する情報であるCi(Credit Counter)を保持する。
Quantum値格納部16は、スケジューリング処理部12がパケットスケジューリングを行う際に使用する情報であるQi(Quantum)を保持する。
ActiveList格納部17は、スケジューリング処理部12がパケットスケジューリングを行う際に使用する情報であるActiveList[]を保持する。
パケットデータ格納部18は、パケット送信要求受付処理部11が他機能ブロックから受け取ったパケットデータ(パケット送信処理部13から送信されるパケットデータ本体)を保持する。
処理待ちパケット情報格納部19は、パケット送信要求受付処理部11が他機能ブロックから受け取ったパケットデータの情報を保持する。
キュー情報格納部20は、スケジューリング処理部12がパケットスケジューリングを行う際に使用する情報であるQueue[i]を保持する。
本実施の形態の通信装置の動作、具体的には、パケット送信動作について、以下に説明する。
パケット送信動作では、まず、図示を省略した機能ブロックが、パケットスケジューリングを含むパケット送信処理を実行する処理ブロックに対してパケット送信要求を発行する。すると、パケット送信要求受付処理部11がパケット送信要求を受け付け、パケットデータ格納部18にパケットデータ本体を格納すると共に、処理待ちパケット情報格納部19に当該パケットデータの情報(例えば、パケット長、パケットが属するフロー決定に必要なヘッダ情報)を送信パケット情報として格納する。
次に、定周期時間が経過したことをトリガに、タイマー部14が、スケジューリング処理部12に対してパケットスケジューリング処理の開始を指示する。すると、スケジューリング処理部12は、最初に処理待ちパケット情報格納部19にアクセスして送信パケット情報を読み出し、パケットスケジューリングを開始する。
ここで、スケジューリング処理部12によるパケットスケジューリングについて説明する。このパケットスケジューリングは、上述したEBRRを一部修正し、改良したものである。具体的には、EBRRのCredit CounterであるCiを用いてのパケット送信可否判断方法を変更したものである。
EBRRでは、スケジューリングラウンドの終了時にフローiに送信待ちパケットが存在する場合にはCiの値は0以下になっているが、スケジューリング処理部12によるパケットスケジューリングでは、スケジューリングラウンド終了時にフローiに送信待ちパケットが存在していたとしても、Ciが正になることを許す様にする。また、0以下の閾値THを定義する。
すなわち、EBRRでは「Ci>0」であればパケットを送信可能と判断するのに対して、本実施の形態のパケットスケジューリングでは、送信可否判断時点のCiとパケット長の差(Ci−パケット長)がTHよりも大きい場合(「Ci−パケット長>TH」の場合)に送信可能と判断する。別の表現を用いれば、判定対象のパケットを送信した後のCi(パケット送信に伴い更新された後のCi)が閾値よりも大きくなる場合に送信可能と判断する。「Ci−パケット長≦TH」の場合には、スケジューリングラウンドごとに更新される(Qiが足し込まれる)Ciと送信するパケットのサイズ(長さ)の差がTHよりも大きくなるスケジューリングラウンドrcを特定し、特定したスケジューリングラウンドrc(「Ci−パケット長>TH」となるスケジューリングラウンド)で送信するよう、スケジューリングする。O(1)の計算量を保証するため(すなわち、ActiveList[RC mod q]にQueue[i]が含まれる場合、Queue[i]から少なくとも1つのパケットを送信可能とするため)、パケット受信時とパケットスケジューリングにおいて、どのスケジューリングラウンドでパケット送信が可能となるかの計算方法として、EBRRによる計算方法とは異なる計算方法とする必要がある。スケジューリング処理部12によるパケットスケジューリングで使用するスケジューリングアルゴリズムは、例えば、図2−1および図2−2のようにする。図2−1に含まれているPacketArrival(packet a,Flow i)がパケット受信時の処理(どのスケジューリングラウンドでパケット送信が可能となるかの計算、Ciの更新など)、図2−2に含まれているEBRRScheduler1()がパケットスケジューリング時の処理(どのスケジューリングラウンドでパケット送信が可能となるかの計算、Ciの更新など)である。フローiのパケットが送信可能となるスケジューリングラウンドをECiで表現している。
このように、スケジューリング処理部12は、パケットスケジューリングを開始すると、まず、PacketArrival(packet a,Flow i)を実行し、次に、EBRRScheduler1()を実行することによって、送信するパケットを決定する。
各フロー(フローi)のパケット送信が可能になるスケジューリングラウンドを上記のように決定するので、同一スケジューリングラウンドで、送信可能であるが(「Ci>0」となっているが)送信待ちのパケットが存在していないフローが複数存在している状態において、これらのフローの送信パケットが発生した場合、発生した各送信パケットのうち、所定サイズよりも大きなサイズのパケット(「Ci−パケット長≦TH」となるパケット)は、次回以降のスケジューリングラウンドで送信するようにスケジューリングされる。従って、所定サイズ以下のパケットが所定サイズよりも大きいパケットに先行して送信されるスケジューリングを実現できる。この制御では、CiがTHに近くなるにつれて、送信機会を与えるパケットのサイズが小さくなっていく。
スケジューリング処理部12は、パケットスケジューリングが終了すると、送信対象となったパケットの送信をパケット送信処理部13に要求する。パケットの送信要求を受けたパケット送信処理部13は、送信要求が示すパケットをパケットデータ格納部18から読み出し、通信インタフェース上に送信する。
このように、本実施の形態の通信装置において、パケットスケジューリングを行うスケジューリング処理部は、各スケジューリングラウンドにおいて、フローiのパケットを送信するか否かの判定を、同一スケジューリングラウンドにおいて送信したフローiのパケットのサイズに応じて値が更新されるカウンタCiと判定対象としているパケットのサイズの差、および所定の閾値に基づいて行うこととした。具体的には、Ciと判定対象パケットのサイズの差が閾値よりも大きい場合に、当該パケットを送信することとした。これにより、Ciが0に近づいた状態では、低遅延で送信するのが望ましい可能性の高いパケットである小さいサイズのパケットを先に送信することができる。
以上のように、本発明は、複数種類のフローのパケットを送信する通信装置として有用である。
11 パケット送信要求受付処理部
12 スケジューリング処理部
13 パケット送信処理部
14 タイマー部
15 Credit Counter格納部
16 Quantum値格納部
17 ActiveList格納部
18 パケットデータ格納部
19 処理待ちパケット情報格納部
20 キュー情報格納部

Claims (3)

  1. 各フローのパケットについて、所定のスケジューリングラウンドにおけるフローごとの送信データ量の合計値が規定値を超えた時点で当該スケジューリングラウンドにおける当該フローのパケットに対する送信機会の付与を終了するパケットスケジューリングを行う通信装置であって、
    前記規定値と前記合計値の差に応じて、送信機会を与えるパケットのサイズを制限するスケジューリングを行うスケジューリング手段と、
    前記スケジューリング手段により送信機会が与えられたパケットを送信する送信手段と、
    を備えることを特徴とする通信装置。
  2. 前記スケジューリング手段は、
    前記規定値と前記合計値の差に基づいて、送信機会を与えるパケットのサイズの上限を設定することを特徴とする請求項1に記載の通信装置。
  3. 前記スケジューリングをEBRRに準拠したスケジューリングとし、
    前記スケジューリング手段は、EBRRにおけるCredit Counterの値をCiで表現した場合、Credit Counterを用いたパケット送信可否判定において、0以下の閾値THを定義し、「(現在のCi)−(判定対象パケットのパケット長)>TH」が成立する場合に、判定対象パケットを送信することに決定することを特徴とする請求項1または2に記載の通信装置。
JP2012111769A 2012-05-15 2012-05-15 通信装置 Pending JP2013239910A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012111769A JP2013239910A (ja) 2012-05-15 2012-05-15 通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012111769A JP2013239910A (ja) 2012-05-15 2012-05-15 通信装置

Publications (1)

Publication Number Publication Date
JP2013239910A true JP2013239910A (ja) 2013-11-28

Family

ID=49764586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012111769A Pending JP2013239910A (ja) 2012-05-15 2012-05-15 通信装置

Country Status (1)

Country Link
JP (1) JP2013239910A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011199521A (ja) * 2010-03-18 2011-10-06 Fujitsu Ltd パケット転送装置およびパケット転送方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011199521A (ja) * 2010-03-18 2011-10-06 Fujitsu Ltd パケット転送装置およびパケット転送方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015033127; Tetsushi Matsuda,他: 'A Proposal of a New Packet Scheduling AlgorithmWhich Can Reduce the Delay of Small Packets' Consumer Electronics (GCCE), 2012 IEEE 1st Global Conference on , 20121002 *

Similar Documents

Publication Publication Date Title
US10764215B2 (en) Programmable broadband gateway hierarchical output queueing
JP6430462B2 (ja) バーチャルマシン通信トラフィックを成形すること
CN108337186B (zh) 用于可扩缩业务整形的设备和方法
US10326713B2 (en) Data enqueuing method, data dequeuing method, and queue management circuit
TWI510030B (zh) 用於在客戶端裝置上利用封包服務分類執行封包佇列的系統及方法
JP4636583B2 (ja) 動的にクラスベースパケットのスケジューリングする方法および装置
US9813529B2 (en) Effective circuits in packet-switched networks
US9509529B1 (en) Assured messaging system with differentiated real time traffic
CN112041826B (zh) 用于网络接口卡的细粒度业务整形分流
WO2017045501A1 (zh) 一种报文调度方法和装置、存储介质
CN104040524A (zh) 用于存储服务器的流量控制机制
WO2016127582A1 (zh) 一种防御消息攻击的方法及装置
US9413672B2 (en) Flow control for network packets from applications in electronic devices
JP6982250B2 (ja) パケット転送装置、方法、及びプログラム
WO2019109902A1 (zh) 队列调度方法及装置、通信设备、存储介质
JP2013239910A (ja) 通信装置
Rezaei et al. Resqueue: A smarter datacenter flow scheduler
JP2013236124A (ja) パケットスケジューリング方法および通信装置
Wang et al. An Incast-Coflow-Aware Minimum-Rate-Guaranteed Congestion Control Protocol for Datacenter Applications
Iqbal et al. P4-MLFQ: A P4 implementation of Multi-level Feedback Queue Scheduling Using A Coarse-Grained Timer for Data Center Networks
Briscoe Managing a Queue to a Soft Delay Target
US20140032742A1 (en) Wireless network device buffers
JP2008236625A (ja) パケット送信制御プログラム、パケット送信制御装置、及びパケット送信制御方法
Zhiyong et al. The Metadata Quality of Service Differentiation for Multi-priority in Cloud Computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151015

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160216