JP4403348B2 - 通信装置及び通信方法 - Google Patents
通信装置及び通信方法 Download PDFInfo
- Publication number
- JP4403348B2 JP4403348B2 JP2000381113A JP2000381113A JP4403348B2 JP 4403348 B2 JP4403348 B2 JP 4403348B2 JP 2000381113 A JP2000381113 A JP 2000381113A JP 2000381113 A JP2000381113 A JP 2000381113A JP 4403348 B2 JP4403348 B2 JP 4403348B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- packet data
- flow
- queue
- transmitted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、一つのネットワークインターフェースが複数のフローによって共有される場合に、それぞれのフローからの送信要求を管理し、同時に二つ以上のフローから送信要求の発生を回避できる通信装置及びその通信方法に関するものである。
【0002】
【従来の技術】
インターネットなどのネットワークを通信網として用いてパケットデータを送受信するネットワーク通信システムにおいて、一つのネットワークインターフェースを共有する複数のフローに対して帯域保証を行う場合、フロー間での干渉を避けるため、フローごとにパケットキューを割り当てる方法が提案されている。例えば、Fair Queueing (Joins Nagle, On Packet Switched with infinite Storage, IEEE Transaction on Communications Vol.35 No.4, pp.435-438, Apr.1987) はその一例である。
【0003】
図9は、この方法によるパケットデータの処理を示す概念図である。図示のように、送信パケットは何らかの識別子を元にどのフローに属するかが特定され、そのフローに対応付けて設けられている専用のキューに入れられる。例えば、図示のように、識別子A1を持つパケットデータがキューQa1に入れられ、識別子A2を持つパケットデータがキューQa2に入れられ、識別子A3を持つパケットデータがキューQa3に入れられ、…、識別子A10を持つパケットデータがキューQa10 に入れられる。
【0004】
パケットの識別子として、例えば、通信プロトコルとしてTCP/IPが用いられているネットワークでは、各パケットに付けられているパケットヘッダの情報が用いられる。図10には、TCP/IPプロトコルのパケットヘッダの構成を示している。図示のように、このパケットヘッダから、パケットデータの送信側と受信側のIPアドレス及びポート番号、プロトコル番号、その他のフィールドの一部または全てを組み合わせることで、そのパケットが属するフローを一意に決められる。このため、これらのヘッダ情報をパケット識別子として当該パケットの属するフローを特定でき、当該パケットをそのフローに設けられている専用のキューに入れることができる。
【0005】
各キューから、そのフローに保証されている帯域幅に応じて設定されたタイミングでパケットが取り出され、ネットワークに送信される。各キューからのパケットの送信間隔は、パケットサイズや、そのフローの予約帯域(予約レート)、アプリケーションのパケット送出タイミングなどに依存するため、パケット送信の要求が複数のキューから同時に発生する場合がある。この場合、どのキューからのパケットを先に送信するかという選択アルゴリズムが必要となる。
【0006】
【発明が解決しようとする課題】
ところで、従来のネットワーク通信装置では、パケットの送信を管理する有効な方法がなく、複数のフローによってネットワークインターフェースが共有されている場合、特に帯域保証型フローとベストエフォート型フローとが共存する場合には、パケットの送信を適宜割り振り、各フローからの送信要求の衝突を回避する有効な手段はなかった。
【0007】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、一つのネットワークインターフェースが複数のフローによって共有される場合に、各フローに対して予約帯域を維持しながら、ベストエフォート型フローとの共存を実現でき、各フローからの通信要求の衝突を回避できる通信装置及びその通信方法を提供することにある。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明の通信装置は、帯域保証型フローおよびベストエフォート型フローを含む複数のフローのパケットデータを送信する通信装置であって、上記帯域保証型フローのパケットデータの送信タイミングまたは上記ベストエフォート型フローのパケットデータの送信タイミングを決定するタイミング決定手段と、上記タイミング決定手段によって決定されたタイミングで、トークンの蓄積容量に応じてパケットキューの先頭のパケットデータを送信するパケット送信手段であって、上記帯域保証型フローのパケットデータが送信されていないタイミングで上記ベストエフォート型フローのパケットデータを送信するパケット送信手段とを有し、上記パケット送信手段は、時分割多重で各パケットデータの送信を行い、上記各パケットデータに割り当てられる送信タイミングを実時刻とし、上記各パケットデータを実際に送信可能な時刻を仮想時刻として管理し、上記仮想時刻が上記実時刻より進んでいる場合のみ上記ベストエフォート型フローのパケットデータを送信する。
【0009】
また、本発明では、好適には、上記パケット送信手段は、上記トークンの蓄積容量がゼロを越えたとき、当該パケットキューの先頭のパケットデータを送信する。また、上記パケット送信手段は、上記パケットキューの先頭のパケットデータを送信した後、上記トークンの蓄積容量から上記送信されたパケットデータのサイズを減算する。
【0012】
また、本発明では、好適には、上記パケット送信手段は、予め設定された手順で複数の上記帯域保証型フローのパケットキューから上記パケットキューを選択し、当該選択されたフローのパケットキューの先頭のパケットデータを送信する。
【0013】
また、本発明では、好適には、上記タイミング決定手段は、送信時刻を管理するタイミングを発生するタイマーと、上記タイマーの時刻情報及び各フローの情報に基づき、各フローの送信タイミングを決定する制御手段とを有する。
【0014】
また、本発明では、好適には、入力パケットをそれぞれのパケットの識別子に応じて、そのパケットの属しているフローに設けられているパケットキューに入力するパケット入力手段を有する。
【0015】
また、本発明では、好適には、上記パケットのデータ長は可変である。
【0016】
また、本発明の通信方法は、帯域保証型フローおよびベストエフォート型フローを含む複数のフローのパケットデータを送信する通信方法であって、上記帯域保証型フローのパケットデータの送信タイミングまたは上記ベストエフォート型フローのパケットデータの送信タイミングを決定する第1のステップと、上記第1のステップで決定されたタイミングで、トークンの蓄積容量に応じてパケットキューの先頭のパケットデータを送信する第2のステップであって、上記帯域保証型フローのパケットデータが送信されていないタイミングで上記ベストエフォート型フローのパケットデータを送信する第2のステップとを有し、上記第2のステップにおいては、時分割多重で各パケットデータの送信を行い、上記各パケットデータに割り当てられる送信タイミングを実時刻とし、上記各パケットデータを実際に送信可能な時刻を仮想時刻として管理し、上記仮想時刻が上記実時刻より進んでいる場合のみ上記ベストエフォート型フローのパケットデータを送信する。
【0017】
また、本発明では、好適には、上記第2のステップにおいては、上記トークンの蓄積容量がゼロを越えたとき、当該パケットキューの先頭のパケットデータを送信する。また、上記第2のステップにおいては、上記パケットキューの先頭のパケットデータを送信した後、上記トークンの蓄積容量から上記送信されたパケットデータのサイズを減算する。
【0020】
【発明の実施の形態】
図1は本発明に係る通信装置を用いて構成された通信システムの一実施形態を示す構成図である。
図1に示すように、通信システム20は、中継装置22を介してネットワーク101 と102 とが接続されており、ネットワーク101 に送信端末211 および受信端末23が接続され、ネットワーク102 に送信端末212 が接続されている。
【0021】
なお、図1に示す通信システム20の構成は、一例であり、ネットワークの数および構成、並びにネットワークに接続される送信端末および受信端末の数は任意である。また、送信端末と受信端末の代わりに、例えば、サーバなどのネットワーク機器を用いてもよい。
ここで、送信端末211 ,212 および中継装置22に用いられているネットワークインターフェース部分が本発明の通信装置に対応している。
【0022】
以下、通信システム20の各構成要素について説明する。
〔ネットワーク101 ,102 〕
ネットワーク101 ,102 は、固定長または可変長のパケットデータを用いた通信、並びに当該通信の帯域保証を行うことができるLAN(Local Area Network)またはインターネットなどの通信網である。
【0023】
〔送信端末211 ,212 〕
送信端末211 ,212 は、データをパケットデータとしてネットワークを介して送信するネットワーク機器であり、パーソナルコンピュータまたはサーバ装置によって構成することができる。
【0024】
〔中継装置22〕
中継装置22は、図1に示す例では、ネットワーク102 を介して送信端末212 から受信したパケットを中継して、ネットワーク101 を介して受信端末23に送信する。なお、中継装置22は、例えばルータなどのネットワーク機器によって構成することができる。
【0025】
〔受信端末23〕
受信端末23は、例えば、パーソナルコンピュータなどの端末装置であり、ネットワーク101 を介して受信したパケットデータをアンパケット化してコンテンツデータを生成し、当該コンテンツデータを用いた処理を行う。
【0026】
なお、図1に示す通信システムにおいて、中継装置22に用いられている送信用ネットワークインターフェースは、送信端末211 ,212 に用いられている送信用ネットワークインターフェースとほぼ同じものである。中継装置22において、パケット入力部は、ネットワーク102 からパケットデータを入力し、送信端末211 ,212 においては、それぞれのパケット入力部は、アプリケーションの記憶部からパケットデータを入力する点においてのみ異なるが、入力されたパケットデータの送信処理はすべて同じである。このため、以下の説明において、ネットワークインターフェースに関する説明は送信端末211 ,212 及び中継装置22の何れにも適用できる。
【0027】
図2は、図1に示す通信システムを構成する送信端末211 ,212 及び中継装置22に用いられているネットワークインターフェースの一構成例を示す機能ブロック図である。
図2に示すように、ネットワークインターフェース30は、パケット入力部31、パケットキュー管理部32、フロー情報管理部33、時刻制御部34、送信タイミング決定部35およびパケット送信部36を有する。
以下、ネットワークインターフェース30の各構成部分について説明する。
【0028】
パケット入力部31は、後述するフロー情報管理部33にて管理されている各フローの情報に基づいて、外部から入力されたパケットデータをパケットヘッダ内の識別子を用いてフロー毎に分類し、同じフローに属するパケットデータをパケットキュー管理部32の同じパケットキューに入れる。
【0029】
パケットデータは、アプリケーションの記憶部からまたはネットワークから入力される。例えば、図1に示す通信システムにおいて、送信端末211 と212では、それぞれのアプリケーションの記憶部からヘッダが付加されたパケットデータが入力され、中継装置22では、ネットワーク102 からパケットデータが入力される。
【0030】
パケットキュー管理部32は、複数のパケットキューを有し、パケット入力部31から入力されたパケットデータを、識別子によってそれぞれ属するフローが判定され、そのフローの専用のパケットキューに入力して記憶される。
また、パケットキュー管理部32の各パケットキューは、記憶しているパケットキューを入力順に出力する。
本実施形態では、パケットキュー管理部32は、例えば、図2に示すように、帯域保証型のフローのパケットデータを格納するパケットキューQa1 〜Qa10と、ベストエフォート型のフローのパケットデータを格納するパケットキューQbとを有する。
【0031】
フロー情報管理部33は、パケットデータが属する各フローに要求される帯域保証の条件などを管理する。
【0032】
時刻制御部34は、パケットデータの送信タイミングを規定するための基準となる時刻を設定する。
時刻制御部34は、後述するように、nを1≦n≦10を満たす整数とした場合に、送信タイミング決定部35がスケジューリングを行う時刻tC を基準にして、帯域保証型フローFn の帯域保証を行うためにパケットキュー管理部32のパケットキューQan の先頭に格納されたパケットデータを送信する必要がある時刻までの時間Cn を制御するために用いられる。
【0033】
時刻制御部34は、例えば、タイマーによって構成することができる。本実施形態では、時間Cn がパケットデータの送信後に送信タイミング決定部35でスケジューリングを行うときにのみ用いられるものであり、各フローFn のパケットデータの送信間隔は当該フローの保証帯域から予め知られているため、1個のタイマーで時刻をカウントし、パケットデータの送信時刻と、各フローの送信間隔とを用いて時間Cn を得る。
なお、時刻制御部34は、時間Cn をそれぞれカウントする帯域保証型フローFn の数分のタイマーを用いてもよい。
【0034】
送信タイミング決定部35は、フロー情報管理部33からの制御に基づいて、パケットキュー管理部32の複数のパケットキューに格納されたパケットの送信タイミングのスケジュールを決定し、当該決定したスケジュールに基づいてパケット送信部36にパケットデータの送信タイミングを指示する。
この際に、帯域予約を行っているフローに関する予約帯域幅などの情報をフロー情報管理部33に参照しながら送信タイミングの制御が行われる。送信タイミング決定部35は、各キューに割り当てられている帯域幅、実際にキューに入っているパケットのサイズ、またパケット入力からの経過時間を確認しながら、それぞれのキューからパケットデータを取り出すタイミングの制御を行う。
【0035】
パケット送信部36は、どのキューからどのタイミングでパケットを取り出すかを送信タイミング決定部35によって決定されたスケジュールに従って、決められたパケットキューからパケットデータを取り出してネットワークに送信する。
【0036】
本実施形態では、複数のパケットキューからパケットの送信要求が同時に発生しないよう、時分割多重化の手法を用いてパケットキューの送信タイミングを制御する。図3は、一定の送信時間を複数のスロットに分割して、各スロットにおいて固定長のデータパケットを送信する場合のタイミングチャートを示している。
ここでは、例えば、帯域幅が100Mbpsのデータリンクに対するスケジューリングを行う場合、予約フローの粒度を1Kbps、単位時間を1秒とすると、図3に示すように、1秒間がスロット0、スロット1、スロット2、…、スロット99,999というように100,000個のスロットに分割され、各スロット毎に10μs(マイクロ秒)リンクを占有することができる。送信機会は各スロットに順番に割り当てられ、最後のスロットに辿り着くと最初のスロットに戻るよう循環する。あるフローが割り当てられるスロットの数によって、そのフローのデータ転送レート、即ち帯域幅が決まる。このため、あるフローが帯域を予約する際には、その予約帯域幅に応じて所定の数のスロットがそのフローに割り当てられる。
【0037】
しかし、この方法では、フローの粒度と単位時間による制御により、この例では1回のスケジューリング単位である1スロット、即ち10μs毎に128バイト(1Kビット)のパケット送信許可が与えられることになる。これは固定長パケット、特にパケットサイズが例えば、128バイトの約数であるパケットの場合には問題ないが、可変長パケットには対応することができない。また、フローのバースト転送がタイムスロットのサイズよりも大きいな範囲で発生した場合にも対応することができない。
【0038】
本実施形態では、トークンバケット(Token Bucket)アルゴリズムを用いて上述した問題を解決する。この際に、スロットがスケジューリングされる毎にトークンを生成し、蓄積したトークンの量がゼロを上回った場合のみパケットキューからパケットを取り出して送信し、送信後、トークンの蓄積容量から送信されたパケットのサイズが減算される。これにより、パケットサイズに依存する不公平性を回避でき、可変長パケット及びバースト転送への対応が可能となる。
【0039】
図4はトークンを用いたパケット送信処理のフローチャートである。以下、図4を参照しながら、この方法について詳細に説明する。
まず、分割したスロットが各フローの予約レートに応じてそれぞれのパケットキューに割り当てられる(ステップS1)。
そして、各キューについてトークンの初期化が行われる(ステップS2)。この際に、すべてのキューのトークン量(Tn )がゼロに初期化される。
【0040】
次に、スロットの選択が行われ(ステップS3)、また、トークンをトークン量Tn に加算される(ステップS4)。
次いで、処理対象となるキューは空であるか否かの判断が行われる(ステップS5)。そのキューが空である場合、次のスロットが選択され(ステップS10)、ステップS4の処理に戻る。
【0041】
一方、そのキューが空ではない場合に、蓄積したトークンの量Tn がゼロ以上かを調べる(ステップS7)。トークン量Tn がゼロより大きい場合、パケットがキューから取り出され、ネットワークに送信される(ステップS9)。また、トークン量Tn から送信されたパケットのサイズ分が減算され(ステップS8)、ステップS5の処理に戻る。
【0042】
ステップS7における比較の結果、トークン量Tn がゼロ以下の場合、次のスロットを選択するステップS3の処理に戻る。
【0043】
上述した処理によって、1スロットで128バイト以上のパケットを送信することが可能となる。即ち、送信可能なパケットサイズは、スロットによって制限されることなく、例えば、トークンのバケツサイズにのみ依存する。このため、1スロットで送信可能なパケットのサイズに対する制約が大きく緩和される。
【0044】
しかし、このようなパケットの送信処理によって、パケット長が一定ではない場合、一つのパケットの送信が1スロットに収まることが保証できなくなる。
図5は、パケット長が可変の場合の各スロットにおけるパケットデータの送信タイミングを示している。図示のように、送信タイミング決定部35によって決定したスケジューリングのための時刻tn は一定の間隔にあるが、パケット長が一定でない場合、そのスケジュールではパケットの送信が完了できなくなることが生じる。
【0045】
ここで、スケジューリングのための時刻tn を各スロットに割り当てられる実際の時刻rn と異なる間隔に設定する。即ち、実時刻rn とは独立したスケジューリングのための仮想時刻tn を設定する。そして、平均的にスロット分割の1周期単位、例えば、上述した例では1秒間において実時刻rn と仮想時刻tn との差がなくなるようにスケジュールを制御すればよい。
【0046】
また、トークンバケットによりバースト転送が許容されている場合、複数のフローでバースト転送が連続して発生した場合には、1周期で実時刻と仮想的な時刻との差がかならずしもなくなるとは限らず、予約帯域の総和がリンクの帯域幅以下に抑えられていることが保証される場合には、各フローのバースト許容量の総和がここでいう時間差の最大値となる。
【0047】
図6は、このようなスケジューリング処理を示すフローチャートである。以下、図6を参照しつつ、本実施形態のネットワークインターフェースにおけるスケジューリング処理の動作を説明する。
【0048】
まず、分割したスロットが予約レート(予約帯域)に応じてそれぞれのキュー(フロー)に割り当てられる(ステップSS1)。
そして、すべてのキューのトークン量(Tn )がゼロに初期化される(ステップSS2)。
【0049】
次に、スロットが順次選択される(ステップSS3)。
そして、送信されるキューが選択され、そのキューが空であるか否かについて判断が行われる(ステップSS4)。
【0050】
ステップSS4における判断の結果、キューが空ではない場合、ステップSS14の処理が行われる。なお、ステップSS14以降の処理について後に詳しく説明する。
【0051】
ステップSS4における判断の結果、キューが空の場合、トークンの量Tn がバケツサイズに達しているか否かについて判断が行われる(ステップSS5)。当該判断の結果、トークンの量Tn がバケツサイズに達していない場合、トークンがトークン量Tn に加算される(ステップSS6)。そして、次のスロットを選択するステップSS3の処理に戻る。
【0052】
ステップSS5における判断の結果、トークンの量Tn がバケツサイズに達した場合、トークンがベストエフォート型フローのトークン量TB に加算される(ステップSS8)。そして、ベースエフォート型フローに設けられたキューが空であるか否かについて判定が行われる(ステップSS9)。
【0053】
上記判断の結果、そのキューが空である場合、上述したステップSS3の処理に戻る。一方、上記判断の結果、キューが空ではない場合、トークン量TB がゼロより大きいかどうかが調べられる(ステップSS11)。当該比較の結果、トークン量TB がゼロより大きい場合、ベストエフォートキューの先頭からパケットデータが取り出されて送信される(ステップSS12)。そして、トークン量TB から、送信されたパケットのサイズ分だけ減算され(ステップSS13)、ステップSS9の処理が行われ、次のパケットの送信処理が行われる。
【0054】
ステップSS11における比較の結果、トークン量TB がゼロに達していない場合、ステップSS7の処理が行われ、次のスロットが選択され、ステップSS4の処理に戻る。
【0055】
ステップSS4の処理において、キューが空ではないと判断された場合、まず、トークンがトークン量Tn に加算される(ステップSS14)。
【0056】
そして、トークン量Tn がゼロより大きいか調べられる(ステップSS16)。
当該比較の結果、トークン量Tn がゼロ以下の場合、ステップSS3の処理に戻る。
【0057】
一方、トークン量Tn がゼロよりも大きな場合、キューの先頭からパケットが取り出されて送信される(ステップSS17)。
そして、トークン量Tn から送信されたパケットのサイズ分Pn だけ減算される(ステップSS18)。
【0058】
次に、キューは空であるか否かの判断が行われる(ステップSS19)。当該判断の結果、キューが空である場合、ステップSS3の処理に戻る。
逆に、キューが空ではない場合、ステップSS16の処理が行われる。即ち、キューの先頭パケットを送信するか否かが決定される。
【0059】
上述したスケジューリング処理が帯域保証型フロー及びベストエフォート型フローにそれぞれ割り当てられたすべてのキューに対して順次行われる。その結果、帯域保証型フローのパケットデータの転送帯域が保証されながら、ベストエフォート型フローのパケットデータの送信も実現できる。且つ、帯域保証型フローのパケットデータの転送が優先して行われ、帯域保証型フローのキューが空の場合、即ち、そのキューにパケットが入っていない場合のみトークンがベストエフォート型フローに割り振られるので、ベストエフォート型フローのパケットデータの転送が帯域保証型フローのパケットデータの転送に影響を与えることを回避できる。
【0060】
このスケジューリング処理によって、それぞれのスロットにおけるパケットデータの送信例を図7に示している。
図示のように、送信されるパケットのサイズに応じて、複数のスロットを跨いで送信されることができる。一つのキューから取り出されたパケットデータの送信が終了したあと、次のキューからパケットデータが取り出されて送信が行われる。
【0061】
図示のように、このスケジューリング処理によって、それぞれのパケットデータが送信される仮想時刻t0 ,t1 ,…,t99,999が実時刻r0 ,r1 ,…,r99,999と一致しなくなる。しかし、スロット分割の1周期単位、例えば、この例では1秒間において実時刻と仮想時刻との差がなくなるようにスケジューリング処理が行われる。この処理によって、帯域保証型フローにおいて、パケットデータの転送レートが保証されながら、ベストエフォート型フローのパケットデータの送信も行われる。且つ、ベストエフォート型フローのパケットデータの送信によって帯域保証型フローのパケットデータの送信に与える影響が最小限に抑えられる。
【0062】
次に、本実施形態のネットワークインターフェースにおけるスケジューリング処理の他の処理例を示す。
図8は、このスケジューリング処理を示すフローチャートである。以下、図8を参照しつつ、このスケジューリング処理について詳しく説明する。
【0063】
図示のように、まず、分割したスロットが予約レート(予約帯域)に応じてそれぞれのキュー(フロー)に割り当てられる(ステップSP1)。
そして、すべてのキューのトークン量(Tn )がゼロに初期化される(ステップSP2)。
【0064】
次に、スロットが順次選択される(ステップSP3)。
そして、送信されるキューが選択され、そのキューが空であるか否かについて判断が行われる(ステップSP4)。
【0065】
ステップSP4における判断の結果、キューが空ではない場合、ステップSP14の処理が行われる。なお、ステップSP14以降の処理について後に詳しく説明する。
【0066】
ステップSP4における判断の結果、キューが空の場合、トークンの量Tn がバケツサイズに達しているか否かについて判断が行われる(ステップSP5)。当該判断の結果、トークンの量Tn がバケツサイズに達していない場合、トークンがトークン量Tn に加算される(ステップSP6)。そして、次のスロットを選択するステップSP3の処理に戻る。
【0067】
ステップSP5における判断の結果、トークンの量Tn がバケツサイズに達した場合、トークンがベストエフォート型フローのトークン量TB に加算される(ステップSP8)。そして、ベースエフォート型フローに設けられたキューが空であるか否かについて判定が行われる(ステップSP9)。
【0068】
上記判断の結果、そのキューが空である場合、次のスロットを選択する、ステップSP3の処理に戻る。
一方、上記判断の結果、そのキューが空ではない場合、トークン量TB がゼロより大きいかどうか比べられ、さらに、仮想時刻tn が実時刻rn との比較も行われる(ステップSP11)。当該比較の結果、トークン量TB ゼロより大きく、かつ仮想時刻tn が実時刻rn より進んでいる場合、ベストエフォートキューの先頭からパケットデータが取り出されて、ネットワークに送信される(ステップSP12)。そして、トークン量TB から、送信されたパケットのサイズ分だけ減算され(ステップSP13)、ステップSP9の処理が行われ、次のパケットの送信処理が行われる。
【0069】
ステップSP11における比較の結果、トークン量TB がゼロに達していなく、または、仮想時刻tn が実時刻rn より遅れている場合、ステップSP3の処理に戻る。
【0070】
ステップSP4の処理において、キューが空ではないと判断された場合、まず、トークンがトークン量Tn に加算される(ステップSP14)。
【0071】
そして、トークン量Tn がゼロより大きいか比べられる(ステップSP16)。
当該比較の結果、トークン量Tn がゼロ以下の場合、ステップSP3の処理に戻る。
【0072】
一方、トークン量Tn とパケットサイズPn との比較結果、トークン量Tn がゼロを越えた場合、キューの先頭からパケットが取り出されて送信される(ステップSP17)。
そして、トークン量Tn から送信されたパケットのサイズ分Pn だけ減算される(ステップSP18)。
【0073】
次に、キューは空であるか否かの判断が行われる(ステップSP19)。当該判断の結果、キューが空である場合、ステップSP3の処理が行われる。
逆に、キューが空ではない場合、ステップSP16の処理が行われる。即ち、キューの先頭パケットを送信するか否かが決定される。
【0074】
上述したスケジューリング処理において、ベストエフォート型フローのパケットデータを送信するかどうかの判断において、トークン量TB がベースエフォート型フローに設けられているキューの先頭のパケットサイズより大きく、さらに、仮想時刻tn が実時刻rn より進んでいる場合のみ、ベストエフォート型フローのパケットデータが送信される。それ以外の場合において、帯域予約が行われたフローのパケットデータが優先して送信される。
【0075】
このようなスケジューリング処理によって、トークンがパケット出力のために十分な量だけ蓄積され、かつ仮想時刻が実時刻より進んでいる場合のみベストエフォート型フローのパケットデータがネットワークに送信されるので、ベストエフォート型フローのパケットデータの送信による帯域保証型フローのパケットデータの送信に与える影響が最小限に抑えることができる。
【0076】
【発明の効果】
以上説明したように、本発明の通信装置及び通信方法によれば、一つのネットワークインターフェースが複数のフローによって共有されている場合に、各フローに対してそれぞれの予約帯域を保証しながら、帯域保証型フローとベストエフォート型フローとの共存を実現できる。
また、本発明によれば、複数のフローに対して時分割多重化で送信処理を行うことによってパケットの送信要求が二つ以上のフローから同時に発生することを回避できる。
さらに、帯域保証型フローのパケットデータの送信が優先して行われ、所定の条件が満たされた場合のみベストエフォート型フローのパケットデータが送信されるので、ベストエフォート型フローのパケットデータの送信による帯域保証型フローのパケットデータの送信に与える影響が最小限に抑えることができる利点がある。
【図面の簡単な説明】
【図1】本発明に係る通信装置を含む通信システムの一実施形態を示す構成図である。
【図2】本発明の通信装置の一構成例を示すブロック図である。
【図3】送信時間がスロットに分割された時分割多重化による固定長パケットの送信タイミングを示すタイミングチャートである。
【図4】トークンを用いたパケット送信処理のフローチャートである。
【図5】可変長パケットの送信タイミング処理を示すタイミングチャートである。
【図6】帯域予約フローとベストエフォートフローが混在する場合のパケット送信スケジューリング処理の一例を示すフローチャートである。
【図7】図6のフローチャートによる仮想時刻を用いた送信処理のタイミングチャートである。
【図8】帯域予約フローとベストエフォートフローが混在する場合のパケット送信スケジューリング処理の他の例を示すフローチャートである。
【図9】従来のフローごとにキューを用いたパケット送信処理の概念を示す図である。
【図10】TCP/IPプロトコルのパケットヘッダの構成を示す図である。
【符号の説明】
20…通信システム、211 ,212 …送信端末、22…中継装置、23…受信端末、31…パケット入力部、32…パケットキュー管理部、33…フロ情報ー管理部、34…時刻制御部、35…送信タイミング決定部、36…パケット送信部、Qa1 〜Qa10…帯域保証型フローのパケットデータを格納するパケットキュー。
Claims (12)
- 帯域保証型フローおよびベストエフォート型フローを含む複数のフローのパケットデータを送信する通信装置であって、
上記帯域保証型フローのパケットデータの送信タイミングまたは上記ベストエフォート型フローのパケットデータの送信タイミングを決定するタイミング決定手段と、
上記タイミング決定手段によって決定されたタイミングで、トークンの蓄積容量に応じてパケットキューの先頭のパケットデータを送信するパケット送信手段であって、上記帯域保証型フローのパケットデータが送信されていないタイミングで上記ベストエフォート型フローのパケットデータを送信するパケット送信手段と
を有し、
上記パケット送信手段は、時分割多重で各パケットデータの送信を行い、上記各パケットデータに割り当てられる送信タイミングを実時刻とし、上記各パケットデータを実際に送信可能な時刻を仮想時刻として管理し、上記仮想時刻が上記実時刻より進んでいる場合のみ上記ベストエフォート型フローのパケットデータを送信する
通信装置。 - 上記パケット送信手段は、上記トークンの蓄積容量がゼロを越えたとき、当該パケットキューの先頭のパケットデータを送信する
請求項1記載の通信装置。 - 上記パケット送信手段は、上記パケットキューの先頭のパケットデータを送信した後、上記トークンの蓄積容量から上記送信されたパケットデータのサイズを減算する
請求項1記載の通信装置。 - 上記パケット送信手段は、予め設定された手順で複数の上記帯域保証型フローのパケットキューから上記パケットキューを選択し、当該選択されたフローのパケットキューの先頭のパケットデータを送信する
請求項1記載の通信装置。 - 上記タイミング決定手段は、
送信時刻を管理するタイミングを発生するタイマーと、
上記タイマーの時刻情報及び各フローの情報に基づき、上記各フローの送信タイミングを決定する制御手段と
を有する請求項1記載の通信装置。 - 入力パケットをそれぞれのパケットの識別子に応じて、そのパケットの属しているフローに設けられているパケットキューに入力するパケット入力手段
をさらに有する請求項1記載の通信装置。 - 上記パケットデータのデータ長は可変である
請求項1記載の通信装置。 - 帯域保証型フローおよびベストエフォート型フローを含む複数のフローのパケットデータを送信する通信方法であって、
上記帯域保証型フローのパケットデータの送信タイミングまたは上記ベストエフォート型フローのパケットデータの送信タイミングを決定する第1のステップと、
上記第1のステップで決定されたタイミングで、トークンの蓄積容量に応じてパケットキューの先頭のパケットデータを送信する第2のステップであって、上記帯域保証型フローのパケットデータが送信されていないタイミングで上記ベストエフォート型フローのパケットデータを送信する第2のステップと
を有し、
上記第2のステップにおいては、時分割多重で各パケットデータの送信を行い、上記各パケットデータに割り当てられる送信タイミングを実時刻とし、上記各パケットデータを実際に送信可能な時刻を仮想時刻として管理し、上記仮想時刻が上記実時刻より進んでいる場合のみ上記ベストエフォート型フローのパケットデータを送信する
通信方法。 - 上記第2のステップにおいては、上記トークンの蓄積容量がゼロを越えたとき、当該パケットキューの先頭のパケットデータを送信する
請求項8記載の通信方法。 - 上記第2のステップにおいては、上記パケットキューの先頭のパケットデータを送信した後、上記トークンの蓄積容量から上記送信されたパケットデータのサイズを減算する
請求項8記載の通信方法。 - 上記第2のステップにおいては、予め設定された手順で複数の上記帯域保証型フローのパケットキューから上記パケットキューを選択し、当該選択されたフローのパケットキューの先頭のパケットデータを送信する
請求項8記載の通信方法。 - 上記第2のステップにおいては、入力パケットをそれぞれのパケットの識別子に応じて、そのパケットの属しているフローに設けられているパケットキューに入力する
請求項8記載の通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000381113A JP4403348B2 (ja) | 2000-12-14 | 2000-12-14 | 通信装置及び通信方法 |
US10/020,668 US7120158B2 (en) | 2000-12-14 | 2001-12-12 | Communication device and method for transmitting through the use of accumulation of capacity tokens |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000381113A JP4403348B2 (ja) | 2000-12-14 | 2000-12-14 | 通信装置及び通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002185509A JP2002185509A (ja) | 2002-06-28 |
JP4403348B2 true JP4403348B2 (ja) | 2010-01-27 |
Family
ID=18849185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000381113A Expired - Fee Related JP4403348B2 (ja) | 2000-12-14 | 2000-12-14 | 通信装置及び通信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7120158B2 (ja) |
JP (1) | JP4403348B2 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447155B2 (en) * | 2002-06-17 | 2008-11-04 | Intel Corporation | Guaranteed service in a data network |
US8015303B2 (en) | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
EP1546903A4 (en) * | 2002-09-03 | 2010-02-24 | Thomson Licensing | MECHANISM FOR PROVIDING QUALITY OF SERVICE IN A NETWORK THROUGH THE USE OF PRIORITY AND RESERVED BANDWIDTH PROTOCOLS |
WO2004023745A1 (en) * | 2002-09-06 | 2004-03-18 | Infineon Technologies Ag | Method and system for controlling bandwidth allocation |
US7814218B1 (en) * | 2002-10-17 | 2010-10-12 | Astute Networks, Inc. | Multi-protocol and multi-format stateful processing |
US8151278B1 (en) | 2002-10-17 | 2012-04-03 | Astute Networks, Inc. | System and method for timer management in a stateful protocol processing system |
GB2399980A (en) * | 2003-03-26 | 2004-09-29 | Zarlink Semiconductor Ltd | Packet buffer management |
JP4163044B2 (ja) * | 2003-05-09 | 2008-10-08 | 古河電気工業株式会社 | 帯域制御方法およびその帯域制御装置 |
US6970426B1 (en) * | 2003-05-14 | 2005-11-29 | Extreme Networks | Rate color marker |
US7404058B2 (en) * | 2003-05-31 | 2008-07-22 | Sun Microsystems, Inc. | Method and apparatus for avoiding collisions during packet enqueue and dequeue |
US7668098B2 (en) * | 2003-06-19 | 2010-02-23 | Intel Corporation | Method and apparatus for improving the upstream data transfer rate for a cable modem |
JP4446166B2 (ja) | 2004-10-14 | 2010-04-07 | ソニー株式会社 | 送信装置および方法、記録媒体、プログラム、並びに制御装置 |
JP2007013449A (ja) * | 2005-06-29 | 2007-01-18 | Nec Commun Syst Ltd | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 |
WO2007093858A1 (en) * | 2006-02-17 | 2007-08-23 | Freescale Semiconductor, Inc. | A method for scheduling atm cells and a device having atm cell scheduling capabilities |
JP4715645B2 (ja) * | 2006-06-19 | 2011-07-06 | 沖電気工業株式会社 | バッファメモリ |
JP4974652B2 (ja) | 2006-11-20 | 2012-07-11 | シャープ株式会社 | ストリーミング通信システム |
US8861514B1 (en) * | 2007-09-27 | 2014-10-14 | Marvell International Ltd. | Method and apparatus for egress jitter pacer |
US20090168770A1 (en) * | 2007-12-28 | 2009-07-02 | Shantidev Mohanty | Techniques for efficient transfer of medium access control structures in a communication system |
US9013999B1 (en) * | 2008-01-02 | 2015-04-21 | Marvell International Ltd. | Method and apparatus for egress jitter pacer |
JP4998367B2 (ja) * | 2008-05-13 | 2012-08-15 | 日本電気株式会社 | データ伝送装置および帯域割当方法 |
US7995597B2 (en) * | 2008-10-14 | 2011-08-09 | Nortel Networks Limited | Method and system for weighted fair queuing |
US8665724B2 (en) | 2009-06-12 | 2014-03-04 | Cygnus Broadband, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
US9065779B2 (en) * | 2009-06-12 | 2015-06-23 | Wi-Lan Labs, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
WO2012000540A1 (en) * | 2010-06-29 | 2012-01-05 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for analysis of the operation of a communication system using events |
JP5492709B2 (ja) * | 2010-09-06 | 2014-05-14 | 株式会社日立製作所 | 帯域制御方法及び帯域制御装置 |
JP5296235B2 (ja) * | 2012-02-16 | 2013-09-25 | シャープ株式会社 | ストリーミング通信システムおよび通信中継装置 |
US8913494B1 (en) | 2013-01-22 | 2014-12-16 | Sprint Spectrum L.P. | Dynamic allocation of backhaul bearer services based on loading conditions |
JP6273780B2 (ja) * | 2013-11-06 | 2018-02-07 | 富士通株式会社 | 伝送装置、伝送方法及び伝送プログラム |
US9886273B1 (en) * | 2014-08-28 | 2018-02-06 | Marvell Israel (M.I.S.L.) Ltd. | Maintaining packet order in a parallel processing network device |
US10547559B2 (en) | 2015-12-26 | 2020-01-28 | Intel Corporation | Application-level network queueing |
US12153962B2 (en) | 2020-04-15 | 2024-11-26 | Intel Corporation | Storage transactions with predictable latency |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028843A (en) * | 1997-03-25 | 2000-02-22 | International Business Machines Corporation | Earliest deadline first communications cell scheduler and scheduling method for transmitting earliest deadline cells first |
US6047000A (en) * | 1997-07-24 | 2000-04-04 | The Hong Kong University Of Science & Technology | Packet scheduling system |
US6011798A (en) * | 1997-08-15 | 2000-01-04 | Intel Corporation | Adaptive transmit rate control scheduler |
US6934250B1 (en) * | 1999-10-14 | 2005-08-23 | Nokia, Inc. | Method and apparatus for an output packet organizer |
US6882623B1 (en) * | 2000-02-08 | 2005-04-19 | Native Networks Technologies Ltd. | Multi-level scheduling method for multiplexing packets in a communications network |
US6657987B1 (en) * | 2000-03-24 | 2003-12-02 | International Business Machines Corporation | Scheduling methodology for connections with quality of service (QoS) constraints in a polling based media access control (MAC) |
-
2000
- 2000-12-14 JP JP2000381113A patent/JP4403348B2/ja not_active Expired - Fee Related
-
2001
- 2001-12-12 US US10/020,668 patent/US7120158B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002185509A (ja) | 2002-06-28 |
US7120158B2 (en) | 2006-10-10 |
US20020114277A1 (en) | 2002-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4403348B2 (ja) | 通信装置及び通信方法 | |
Parekh et al. | A generalized processor sharing approach to flow control in integrated services networks-the single node case | |
US6879561B1 (en) | Method and system for wireless packet scheduling with per packet QoS support and link adaptation | |
CA2227244C (en) | A method for supporting per-connection queuing for feedback-controlled traffic | |
JP3526269B2 (ja) | ネットワーク間中継装置及び該中継装置における転送スケジューリング方法 | |
US20030123392A1 (en) | Packet flow control method and device | |
JP2003224599A (ja) | リアルタイムトラヒックに対する保証された帯域幅配達を備える遅延最小化システム | |
EP1210830A4 (en) | WIRELESS LANGUAGE AND DATA COMMUNICATION NETWORK AND METHOD | |
JPH0514410A (ja) | トラヒツク制御方法 | |
CN101127711B (zh) | 基于QoS的分组调度的系统和方法 | |
JP2002232469A (ja) | スケジューリング装置およびスケジューリング方法 | |
JP4163044B2 (ja) | 帯域制御方法およびその帯域制御装置 | |
US6961589B2 (en) | Method of transmitting between a base station in an access network and an access network controller of a telecommunications system | |
KR100908287B1 (ko) | 동기 및 비동기 패킷 흐름들 간의 공유 자원의 스케줄링 | |
KR101737516B1 (ko) | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 | |
JP2001211207A (ja) | パケット送信方法、パケット送信装置並びに帯域保証方法 | |
CN103858474A (zh) | 针对传输网络的增强性能的基于服务的配置 | |
JP2001308914A (ja) | 無線パケット通信用基地局装置 | |
KR20020025723A (ko) | 에뮬레이티드 가중치화 공평 큐 기술을 이용하는 대역공유 방법 및 장치 | |
US8467401B1 (en) | Scheduling variable length packets | |
US20090073878A1 (en) | Usage based queuing with accounting for wireless access points | |
KR20120055947A (ko) | 가입자 인지 플로우별 QoS 제공 방법 및 장치 | |
Moorman et al. | Multiclass priority fair queuing for hybrid wired/wireless quality of service support | |
JP2946462B1 (ja) | パケット・スケジューリング制御方法 | |
Kong et al. | A novel scheduling scheme to share dropping ratio while guaranteeing a delay bound in a multicode-CDMA network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090609 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090810 |
|
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: 20091006 |
|
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: 20091019 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |