JP7127743B2 - 通信装置、通信方法及びプログラム - Google Patents
通信装置、通信方法及びプログラム Download PDFInfo
- Publication number
- JP7127743B2 JP7127743B2 JP2021529876A JP2021529876A JP7127743B2 JP 7127743 B2 JP7127743 B2 JP 7127743B2 JP 2021529876 A JP2021529876 A JP 2021529876A JP 2021529876 A JP2021529876 A JP 2021529876A JP 7127743 B2 JP7127743 B2 JP 7127743B2
- Authority
- JP
- Japan
- Prior art keywords
- token
- tokens
- queue
- token bucket
- amount
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/528—Minimum bandwidth guarantee
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/58—Changing or combining different scheduling modes, e.g. multimode scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本開示は、遅延保証シェーピング機能を備える通信装置、その通信方法、及びそれを実現するプログラムに関する。
近年、IPデータ通信だけではなくIoT(Internet of Things)/M2M (Machine to Machine)、4K/8K高精細映像配信サービス、オンラインゲーム等、多種多様なアプリケーションやサービスが急速に普及してきた。特にコンピュータなどの情報/通信機器だけでなく、世の中に存在する様々な「モノ」に通信機能を持たせ、相互に通信を行うことにより、自動認識、自動制御、遠隔計測などを行うIoTの普及は急速に進んでいる。
IoTの一例として、遠隔値で所定の物理量(電流、電圧、気圧、気温、水量、及び湿度等)を取得し、これらのデータをセンタ側で収集してビッグデータ解析を行い、解析結果に基づき機械の動作を自動的に制御するという通信シーンが考えられている。データ収集と遠隔制御を正確に行うためには、決められた時間内に正しく通信が完了することが非常に重要となる。例えば、データ収集とそれに基づく遠隔制御を50ms以内に実施するようなシステムを考えると、長くとも片道の通信遅延を25ms以内に抑える必要がある。
一方で、現在のベストエフォート通信サービスにおける2拠点間の通信遅延には大きな揺らぎが発生している。具体的には、通信環境が良好なときは2拠点間のパケット転送で発生する通信遅延が通信経路長や装置のスイッチング処理等で発生する最短通信遅延(輻輳等の変動的な要因による遅延を含まない遅延時間の理想値)とほぼ等しくなっているが、通信環境が劣悪なときは数100msレベルの非常に大きな通信遅延が発生したり、時にはパケットロスが発生してしまう。このような通信サービスは、前述のIoTにおける通信シーンに適しているとはいえない。したがって、2拠点間のパケット転送で発生する通信遅延を一定時間以内にする通信遅延保証サービスを安価に実現することが求められている。
高信頼かつ低遅延な通信を提供するサービスの一つとして、特許文献1に開示される遅延保証シェーピング機能がある。特許文献1の遅延保証シェーピング機能は、2拠点間のパケット転送を行う際に、最短通信遅延と保証したい通信遅延に基づきシェーピング帯域を変化させることで、通信ネットワーク負荷を抑えながら通信遅延の保証をユーザに提供することができる
図1は、特許文献1に記載される遅延保証シェーピング機能を説明する図である。図1において横軸は時間、縦軸はパケット送信量、棒グラフは入力されたパケット量、折れ線グラフは出力されるパケット量である。特許文献1に記載される遅延保証シェーピング機能はパケットが入力されるたびに通信帯域を増やす動作となっている。このため、装置の異常やユーザのミスなどによって入力トラヒックが大きい状態が続いた場合、図1(A)のように通信帯域が際限なく増大し、通信ネットワークを圧迫することになる。一方、入力トラヒックが非常に小さい場合、遅延保証シェーピング機能による通信ネットワーク負荷を低減する効果が小さいにもかかわらず、図1(B)のようにパケットの通信遅延が増大することがある。つまり、特許文献1に記載される遅延保証シェーピング機能には、入力トラヒックが大きい状態が続いたときのネットワーク負荷の増大、及び入力トラヒックが非常に小さいときの通信遅延を回避することが困難という課題があった。
そこで、本発明は、前記課題を解決するために、入力トラヒックが大きい状態が続いたときのネットワーク負荷の増大、及び入力トラヒックが非常に小さいときの通信遅延を回避することができる通信装置、通信方法及びプログラムを提供することを目的とする。
上記目的を達成するために、本発明に係る通信装置は、遅延保証シェーピングに最低帯域保証トークンバケツ、最大帯域保証トークンバケツ、及び遅延保証トークンバケツの3つのトークンバケツを具備し、3つのトークンバケツの状態と最大帯域を超過した場合の動作設定に応じて、パケットの処理を決定することとした。
具体的には、本発明に係る通信装置は、
ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ、最低帯域トークンバケツ及び最大帯域トークンバケツの3つのトークンバケツと、
前記キューが保持するパケットを前記3つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する最低帯域トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最低帯域トークン供給部と、
を備える。
ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ、最低帯域トークンバケツ及び最大帯域トークンバケツの3つのトークンバケツと、
前記キューが保持するパケットを前記3つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する最低帯域トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最低帯域トークン供給部と、
を備える。
また、本発明に係る通信方法は、
ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ、最低帯域トークンバケツ及び最大帯域トークンバケツの3つのトークンバケツが保有するトークンに従ってパケットを出力するトークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給し、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する
ことを特徴する。
ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ、最低帯域トークンバケツ及び最大帯域トークンバケツの3つのトークンバケツが保有するトークンに従ってパケットを出力するトークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給し、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する
ことを特徴する。
本発明に係る通信装置は、トークンバケツを3つ用意し、それぞれのトークンバケツ内のトークン量に応じてパケットの転送、廃棄、又は待機させることができる。このため、遅延保証シェーピングに対して大きなトラヒックが入力された場合、本通信装置は、設定した最大帯域を超過しないように動作できる。また、本通信装置は、最大超過した場合にパケットを破棄して遅延保証を優先するか、パケットを溜めてパケットロスレスを優先するかを選択することができる。さらに、本通信装置は、入力トラヒックが非常に小さい場合には通信遅延を増大させることなくパケットを即座に送信することができる。
従って、本発明は、入力トラヒックが大きい状態が続いたときのネットワーク負荷の増大、及び入力トラヒックが非常に小さいときの通信遅延を回避することができる通信装置及び通信方法を提供することができる。
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
本発明に係る通信装置の前記トークンバケットアルゴリズムは、
トークンが前記3つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin、Td、及びTmaxのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
他の場合、設定により、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、又は前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであることを特徴とする。
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
本発明に係る通信装置の前記トークンバケットアルゴリズムは、
トークンが前記3つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin、Td、及びTmaxのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
他の場合、設定により、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、又は前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであることを特徴とする。
また、本発明に係る通信装置の前記トークン供給計算部は、
今回のトークン供給計算の実行時刻をt_now、前記従前の前記トークン供給関数をnow_Ts(t)、
前回のトークン供給計算の実行時刻から今回のトークン供給計算の実行時刻までに前記メータリング部が測定した前記パケットの量の合計をBm、
遅延パラメータテーブルに記載されているトークン供給周期をTc、トークン供給関数更新周期をTu、トークン供給関数反映周期をTr、前記パケットの要求遅延時間をDd、前記パケットの転送先までの前記通信ネットワークの遅延時間をDrとしたとき、
今回のトークン供給計算の実行で作成する前記追加する前記トークン供給関数add_Ts(t)を式C1で計算し、式C2で前記追加する前記トークン供給関数add_Ts(t)を前記従前の前記トークン供給関数に追加した新たな前記トークン供給関数new_Ts(t)とする
ことを特徴とする。
[式C1]
tがt_now+Tr以上t_now+Tr+Da未満の場合:
add_Ts(t)=(Bm/Da)×Tc
tがt_now+Tr未満又はt_now+Tr+Da以上の場合:
add_Ts(t)=0
ただし、Da=Dd-Dr-Tu-Trである。
[式C2]
new_Ts(t)=now_Ts(t)+add_Ts(t)
今回のトークン供給計算の実行時刻をt_now、前記従前の前記トークン供給関数をnow_Ts(t)、
前回のトークン供給計算の実行時刻から今回のトークン供給計算の実行時刻までに前記メータリング部が測定した前記パケットの量の合計をBm、
遅延パラメータテーブルに記載されているトークン供給周期をTc、トークン供給関数更新周期をTu、トークン供給関数反映周期をTr、前記パケットの要求遅延時間をDd、前記パケットの転送先までの前記通信ネットワークの遅延時間をDrとしたとき、
今回のトークン供給計算の実行で作成する前記追加する前記トークン供給関数add_Ts(t)を式C1で計算し、式C2で前記追加する前記トークン供給関数add_Ts(t)を前記従前の前記トークン供給関数に追加した新たな前記トークン供給関数new_Ts(t)とする
ことを特徴とする。
[式C1]
tがt_now+Tr以上t_now+Tr+Da未満の場合:
add_Ts(t)=(Bm/Da)×Tc
tがt_now+Tr未満又はt_now+Tr+Da以上の場合:
add_Ts(t)=0
ただし、Da=Dd-Dr-Tu-Trである。
[式C2]
new_Ts(t)=now_Ts(t)+add_Ts(t)
なお、次の通信装置は、入力トラヒックが非常に小さいときの通信遅延を回避することができる。
本発明に係る通信装置は、
ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最低帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する最低帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin及びTdのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、
というアルゴリズムであることを特徴とする。
本発明に係る通信装置は、
ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最低帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する最低帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin及びTdのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、
というアルゴリズムであることを特徴とする。
当該通信装置の通信方法は、
ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最低帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力する前記トークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する。
ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最低帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力する前記トークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する。
また、次の通信装置は、入力トラヒックが大きい状態が続いたときのネットワーク負荷の増大を回避することができる。
本発明に係る通信装置は、
ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最大帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、又は、Td-Bがゼロより大きく、Tmax-Bがゼロ以下である場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる
というアルゴリズムであることを特徴とする。
本発明に係る通信装置は、
ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最大帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、又は、Td-Bがゼロより大きく、Tmax-Bがゼロ以下である場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる
というアルゴリズムであることを特徴とする。
なお、前記トークンバケットアルゴリズムは、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
Td-Bがゼロより大きく、Tmax-Bがゼロ以下の場合、前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであってもよい。
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
Td-Bがゼロより大きく、Tmax-Bがゼロ以下の場合、前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであってもよい。
当該通信装置の通信方法は、
ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力する前記トークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する。
ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力する前記トークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する。
また、本発明は、前記通信装置としてコンピュータを機能させるためのプログラムである。本発明に係る通信装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
なお、上記各発明は、可能な限り組み合わせることができる。
本発明は、入力トラヒックが大きい状態が続いたときのネットワーク負荷の増大、及び入力トラヒックが非常に小さいときの通信遅延を回避することができる通信装置、通信方法及びプログラムを提供することができる。
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
図2は、本実施形態の通信装置100を説明する機能ブロック図である。通信装置100は、
ユーザ装置2から入力されたパケットを一時的に保持するキュー11と、
遅延保証トークンバケツ13A、最低帯域トークンバケツ13B及び最大帯域トークンバケツ13Cの3つのトークンバケツと、
キュー11が保持するパケットを前記3つのトークンバケツが保有するトークンに従って通信ネットワーク3へ転送するトークンバケットアルゴリズムを有する送信判定機能部12と、
ユーザ装置2から入力されたパケットの量を所定の間隔で測定するメータリング部104と、
遅延保証トークンバケツ13Aに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、メータリング部104が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部108と、
トークン供給計算部108から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で遅延保証トークンバケツ13Aに供給する遅延保証トークン供給部109Aと、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で最低帯域トークンバケツ13Bに供給する最低帯域トークン供給部109Bと、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で最大帯域トークンバケツ13Cに供給する最低帯域トークン供給部109Cと、
を備える。
ユーザ装置2から入力されたパケットを一時的に保持するキュー11と、
遅延保証トークンバケツ13A、最低帯域トークンバケツ13B及び最大帯域トークンバケツ13Cの3つのトークンバケツと、
キュー11が保持するパケットを前記3つのトークンバケツが保有するトークンに従って通信ネットワーク3へ転送するトークンバケットアルゴリズムを有する送信判定機能部12と、
ユーザ装置2から入力されたパケットの量を所定の間隔で測定するメータリング部104と、
遅延保証トークンバケツ13Aに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、メータリング部104が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部108と、
トークン供給計算部108から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で遅延保証トークンバケツ13Aに供給する遅延保証トークン供給部109Aと、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で最低帯域トークンバケツ13Bに供給する最低帯域トークン供給部109Bと、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で最大帯域トークンバケツ13Cに供給する最低帯域トークン供給部109Cと、
を備える。
図3は、トークン供給計算部108がトークン供給関数を計算するためのパラメータが記載された遅延パラメータテーブル112の図である。管理者は、遅延パラメータ設定部122から当該テーブルのパラメータを設定することができる。
メータリング部104は、キュー11に入力される、ユーザ装置2からのパケットの量Bmを測定し、入力パケット量記録メモリ113に記録する。トークン供給計算部108は、遅延パラメータ設定部122と入力パケット量記録メモリ113の記載内容からトークン供給関数を計算する。
図4は、トークン供給関数計算部108が実行するトークン供給関数Ts(t)更新処理フロー(S120)を示したものである。トークン供給関数計算部108は、
前記トークン供給関数の更新において、
1の所定期間における前記入力されたパケットの量で計算したトークンの1の供給期間と、前記1の所定期間の後の所定期間における前記入力されたパケットの量で計算したトークンの後の供給期間とが重複する場合、前記1の供給期間と前記後の供給期間が重複する期間において、前記1の所定期間における前記入力されたパケットの量で計算したトークンの量に前記後の所定期間における前記入力されたパケットの量で計算したトークンの量を加算する。
前記トークン供給関数の更新において、
1の所定期間における前記入力されたパケットの量で計算したトークンの1の供給期間と、前記1の所定期間の後の所定期間における前記入力されたパケットの量で計算したトークンの後の供給期間とが重複する場合、前記1の供給期間と前記後の供給期間が重複する期間において、前記1の所定期間における前記入力されたパケットの量で計算したトークンの量に前記後の所定期間における前記入力されたパケットの量で計算したトークンの量を加算する。
本更新処理は、トークン供給動作設定テーブル111に設定されているトークン供給関数更新周期毎に実行する。今回処理実行時刻をt_now、現在のトークン供給関数をnow_Ts(t)、前回処理実行時から今回処理実行時までにメータリング部104から通知されたバイト量の合計をBm、トークン供給動作設定テーブル111に記載されているトークン供給周期をTc、トークン供給関数更新周期をTu、トークン供給関数反映周期をTr、フロー情報テーブル110に記載されている対象通信フローの要求遅延時間をDd、遅延情報テーブル112を用いて計算された対象通信フローの通信経路の遅延時間をDrとする(ステップS121)。
要求遅延を満足しながら追加できる遅延時間であるDaを次の式で計算する(ステップS122)。
Da=Dd-Dr-Tu-Tr
Da=Dd-Dr-Tu-Tr
今回の処理実行で追加するトークン供給関数add_Ts(t)を次の式で計算する(ステップS123)。
(1)tがt_now+Tr≦t<t_now+Tr+Daの場合
add_Ts(t)=(Bm/Da)×Tc
(2)上記以外のtの場合
add_Ts(t)=0
(1)tがt_now+Tr≦t<t_now+Tr+Daの場合
add_Ts(t)=(Bm/Da)×Tc
(2)上記以外のtの場合
add_Ts(t)=0
add_Ts(t)が小数となっている場合には、add_Ts(t)の合計値がBmと等しくなるように切り上げ又は切り捨てなどの正規化を行う(ステップS124)。今回の処理実行でTs(t)として更新するトークン供給関数new_Ts(t)を次の式で計算する(ステップS125)。
new_Ts(t)=now_Ts(t)+add_Ts(t)
なお、ステップS125の計算は遅延保証トークン供給関数メモリ114で行うことができる。
new_Ts(t)=now_Ts(t)+add_Ts(t)
なお、ステップS125の計算は遅延保証トークン供給関数メモリ114で行うことができる。
new_Ts(t)をt=t_now+Tr以降の新たなTs(t)としてトークン供給部109Aに設定する(ステップS126)。トークン供給部109Aは、設定されたTs(t)に従い、所定の間隔で所定量のトークンを遅延保証トークンバケツ13Aに供給する。
図5は、最低帯域トークン供給部109Bと最大帯域トークン供給部109Cがそれぞれ供給するトークンの量を算出するためのパラメータが記載された帯域パラメータテーブル115の図である。管理者は、帯域パラメータ設定部123から当該テーブルのパラメータを設定することができる。最低帯域トークン供給部109Bと最大帯域トークン供給部109Cは、帯域パラメータテーブル115の記載に基づき、トークンをそれぞれ最低帯域トークンバケツ13Bと最大帯域トークンバケツ13Cに供給する。
図6は、送信判定機能部12が行うパケットの送信、廃棄又は待機を判断するためのトークンバケットアルゴリズムを説明するフロー図である。任意の時刻における、前記最低帯域トークンバケツが有しているトークンの総量をTmin、前記最大帯域トークンバケツが有しているトークンの総量をTmax、前記遅延保証トークンバケツが有しているトークンの総量をTd、前記キューの先頭パケットのパケットサイズをBとする。
前記トークンバケットアルゴリズムは、
トークンが前記3つのトークンバケツに供給されるトークン供給時(ステップS00)の後、
Tmin-Bがゼロより大きい(ステップS01にて“Yes”)場合、及び、Tmin-Bがゼロ以下(ステップS01にて“No”)且つTd-BとTmax-Bがゼロより大きい(ステップS02及びS03ともに“Yes”)場合、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Tmin、Td、及びTmaxのそれぞれからBを減算し(ステップS07)、
Tmin-BとTd-Bがゼロ以下(ステップS01及びS02ともに“No”)の場合、キュー11の先頭パケットを次のトークン供給時までキュー11に待機させ(ステップS05)、
他(ステップS01にて“No”、ステップS02にて“Yes”及びステップS03にて“No”)の場合、帯域パラメータテーブル115の設定により、キュー11の先頭パケットを次のトークン供給時までキュー11に待機させる(ステップS05)、又はキュー11の先頭パケットを廃棄してTdからBを減算する(ステップS06)
というアルゴリズムである。
トークンが前記3つのトークンバケツに供給されるトークン供給時(ステップS00)の後、
Tmin-Bがゼロより大きい(ステップS01にて“Yes”)場合、及び、Tmin-Bがゼロ以下(ステップS01にて“No”)且つTd-BとTmax-Bがゼロより大きい(ステップS02及びS03ともに“Yes”)場合、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Tmin、Td、及びTmaxのそれぞれからBを減算し(ステップS07)、
Tmin-BとTd-Bがゼロ以下(ステップS01及びS02ともに“No”)の場合、キュー11の先頭パケットを次のトークン供給時までキュー11に待機させ(ステップS05)、
他(ステップS01にて“No”、ステップS02にて“Yes”及びステップS03にて“No”)の場合、帯域パラメータテーブル115の設定により、キュー11の先頭パケットを次のトークン供給時までキュー11に待機させる(ステップS05)、又はキュー11の先頭パケットを廃棄してTdからBを減算する(ステップS06)
というアルゴリズムである。
通信装置100は当該アルゴリズムにより次のように動作する。
(1)原則的に遅延保証トークンバケツ13Aにトークンがあればキュー11の先頭パケットを通信ネットワーク3へ送信する。ただし、このときに最大帯域トークンバケツ13Cにトークンが無ければ先頭パケットの送信をせずに、当該先頭パケットを待機又は廃棄する(帯域パラメータテーブル115の設定による)。
(2)遅延保証トークンバケツ13Aにトークンが無い場合、最低帯域トークンバケツ13Bの状態で動作が分かれる。
(2a)最低帯域トークンバケツ13Bにトークンがあればキュー11の先頭パケットを通信ネットワーク3へ送信する。
(2b)最低帯域トークンバケツ13Bにトークンが無ければ先頭パケットを待機又は廃棄する。この場合、最大帯域トークンバケツ13Cにトークンがあれば先頭パケットを必ず待機するが、最大帯域トークンバケツ13Cにトークンが無ければ帯域パラメータテーブル115の設定により待機又は廃棄となる。
(3)先頭パケットを送信したら全てのトークンバケツから先頭パケット分のトークン量を減算する。先頭パケットを廃棄したら遅延保証トークンバケツ13Aのみから先頭パケット分のトークン量を減算する。
(4)遅延保証トークンバケツ13Aにはトークン供給関数計算部108が計算したトークン供給関数に従った量のトークンが定期的に供給される。
(5)最低帯域トークンバケツ13Bと最大帯域トークンバケツ13Cにはユーザ装置2からのパケット量に関わらず一定量のトークンが定期的に供給される。
(1)原則的に遅延保証トークンバケツ13Aにトークンがあればキュー11の先頭パケットを通信ネットワーク3へ送信する。ただし、このときに最大帯域トークンバケツ13Cにトークンが無ければ先頭パケットの送信をせずに、当該先頭パケットを待機又は廃棄する(帯域パラメータテーブル115の設定による)。
(2)遅延保証トークンバケツ13Aにトークンが無い場合、最低帯域トークンバケツ13Bの状態で動作が分かれる。
(2a)最低帯域トークンバケツ13Bにトークンがあればキュー11の先頭パケットを通信ネットワーク3へ送信する。
(2b)最低帯域トークンバケツ13Bにトークンが無ければ先頭パケットを待機又は廃棄する。この場合、最大帯域トークンバケツ13Cにトークンがあれば先頭パケットを必ず待機するが、最大帯域トークンバケツ13Cにトークンが無ければ帯域パラメータテーブル115の設定により待機又は廃棄となる。
(3)先頭パケットを送信したら全てのトークンバケツから先頭パケット分のトークン量を減算する。先頭パケットを廃棄したら遅延保証トークンバケツ13Aのみから先頭パケット分のトークン量を減算する。
(4)遅延保証トークンバケツ13Aにはトークン供給関数計算部108が計算したトークン供給関数に従った量のトークンが定期的に供給される。
(5)最低帯域トークンバケツ13Bと最大帯域トークンバケツ13Cにはユーザ装置2からのパケット量に関わらず一定量のトークンが定期的に供給される。
以下に通信装置100の具体的な動作を説明する。
(実施例1)
本実施例は、最低帯域保証と最大帯域保証の両方があり、超過時動作が「破棄」である例である。
遅延パラメータテーブル112に設定されている値は図3の通りである。帯域パラメータテーブル115に設定されている値は図5の通りである。このような場合、通信装置100は図7のように動作する。
本実施例は、最低帯域保証と最大帯域保証の両方があり、超過時動作が「破棄」である例である。
遅延パラメータテーブル112に設定されている値は図3の通りである。帯域パラメータテーブル115に設定されている値は図5の通りである。このような場合、通信装置100は図7のように動作する。
・時刻t=0~1
パケット#1~24が到来する。各パケットのパケットサイズは1000bytesとする。
・時刻t=1
送信判定機能部12は、トークン供給周期が到来したので図6のアルゴリズムに従って動作を開始する。まず、トークン供給が行われるが、前回のパケット送信から時間が経過していると仮定すると、Tmin、Tmaxは図5の帯域パラメータテーブルのパラメータ(最低帯域バーストと最大帯域バースト)で設定された最大値に達しているため、トークンは供給されない。トークン供給関数は更新されていないためTdは加算されない。
先頭パケット#1のパケットサイズB=1000であり、Tminは2000であるので、Tmin-B>0が成り立ち(ステップS01にて“Yes”)、パケット#1を送信し、Tmin、Td、Tmaxから1000を減算する(ステップS07)。
次のパケット#2のパケットサイズB=1000についても、Tminは1000であり、Tmin-B>0が成り立つので(ステップS01にて“Yes”)、パケットを送信し、Tmin、Td、Tmaxから1000を減算する(ステップS07)。
次のパケット#3については、Tminが0であるためTmin-B>0が成り立たず(ステップS01にて“No”)、かつ、Tdは-2000であるためTd-B>0も成り立たないので(ステップS01にて“No”)、ここでパケット送信を終了する(ステップS05)。
また、t=1においてトークン供給関数更新周期が到来するので、図4のフローチャートに従ってトークン供給関数Ts(t)が更新される。図3の遅延パラメータテーブル112に設定されている値で計算するとトークン供給関数Ts(t)はt=2~9の間で3000となる。
パケット#1~24が到来する。各パケットのパケットサイズは1000bytesとする。
・時刻t=1
送信判定機能部12は、トークン供給周期が到来したので図6のアルゴリズムに従って動作を開始する。まず、トークン供給が行われるが、前回のパケット送信から時間が経過していると仮定すると、Tmin、Tmaxは図5の帯域パラメータテーブルのパラメータ(最低帯域バーストと最大帯域バースト)で設定された最大値に達しているため、トークンは供給されない。トークン供給関数は更新されていないためTdは加算されない。
先頭パケット#1のパケットサイズB=1000であり、Tminは2000であるので、Tmin-B>0が成り立ち(ステップS01にて“Yes”)、パケット#1を送信し、Tmin、Td、Tmaxから1000を減算する(ステップS07)。
次のパケット#2のパケットサイズB=1000についても、Tminは1000であり、Tmin-B>0が成り立つので(ステップS01にて“Yes”)、パケットを送信し、Tmin、Td、Tmaxから1000を減算する(ステップS07)。
次のパケット#3については、Tminが0であるためTmin-B>0が成り立たず(ステップS01にて“No”)、かつ、Tdは-2000であるためTd-B>0も成り立たないので(ステップS01にて“No”)、ここでパケット送信を終了する(ステップS05)。
また、t=1においてトークン供給関数更新周期が到来するので、図4のフローチャートに従ってトークン供給関数Ts(t)が更新される。図3の遅延パラメータテーブル112に設定されている値で計算するとトークン供給関数Ts(t)はt=2~9の間で3000となる。
・時刻t=2
トークン供給周期が到来するので、各トークンバケツにトークンが供給される。
最低帯域トークンバケツ13Bには図5の帯域パラメータテーブル112の設定値に基づき、1Mbpsの1ms分である125Bytesが供給される。
最大帯域トークンバケツ13Cには図5の帯域パラメータテーブル112の設定値に基づき、48Mbpsの1ms分である6000Bytesが供給される。ただし、最大値が6000なので、Tmax=6000となる。
遅延保証トークンバケツ13Aには、トークン供給関数に基づき、3000Bytesが供給される。
トークン供給周期が到来するので、各トークンバケツにトークンが供給される。
最低帯域トークンバケツ13Bには図5の帯域パラメータテーブル112の設定値に基づき、1Mbpsの1ms分である125Bytesが供給される。
最大帯域トークンバケツ13Cには図5の帯域パラメータテーブル112の設定値に基づき、48Mbpsの1ms分である6000Bytesが供給される。ただし、最大値が6000なので、Tmax=6000となる。
遅延保証トークンバケツ13Aには、トークン供給関数に基づき、3000Bytesが供給される。
次に、送信判定機能部12は、図6のアルゴリズムに基づきパケット送信判定を行う。
Tmin-B>0が成り立たない(ステップS01にて“No”)が、Td-B>0とTmax>0が成り立つので(ステップS02とS03がともに“Yes”)、パケット#3が送信される。そしてTmin、Td及びTmaxから1000を減算する(ステップS07)。
次のパケット#4は、Tmin-B>0もTd-B>0も成り立たないので(ステップS01とS02ともに“No”)、送信されない。
Tmin-B>0が成り立たない(ステップS01にて“No”)が、Td-B>0とTmax>0が成り立つので(ステップS02とS03がともに“Yes”)、パケット#3が送信される。そしてTmin、Td及びTmaxから1000を減算する(ステップS07)。
次のパケット#4は、Tmin-B>0もTd-B>0も成り立たないので(ステップS01とS02ともに“No”)、送信されない。
以降、Tminはトークンの供給量よりも消費量の方が大きく、負の値をとり続ける。Tminが正の値をとるのは、一連のパケット送信が終わり、パケット送信を行わない期間が長時間経過するとTminは正の値となり、かつトークン量が最低帯域トークンバケツ13Bの上限に回復する。このような仕組みを採ることで、通信頻度の小さい少量のパケットは、設定値に関わらず即時に送信が可能となる。
・時刻t=3
トークン供給周期が到来するので、各トークンバケツにトークンが供給される。
時刻t=2と同様に、最低帯域トークンバケツ13Bには1Mbpsの1ms分である125Bytesが供給され、最大帯域トークンバケツ13Cには48Mbpsの1ms分である6000Bytesが供給され、遅延保証トークンバケツ13Aには3000Bytesが供給される。
次に、送信判定機能部12は、図6のアルゴリズムに基づきパケット送信判定を行う。
Td-B>0が3パケットに及んで成り立つので(ステップS01にて“Yes”)、パケット#4~#6が送信される。
トークン供給周期が到来するので、各トークンバケツにトークンが供給される。
時刻t=2と同様に、最低帯域トークンバケツ13Bには1Mbpsの1ms分である125Bytesが供給され、最大帯域トークンバケツ13Cには48Mbpsの1ms分である6000Bytesが供給され、遅延保証トークンバケツ13Aには3000Bytesが供給される。
次に、送信判定機能部12は、図6のアルゴリズムに基づきパケット送信判定を行う。
Td-B>0が3パケットに及んで成り立つので(ステップS01にて“Yes”)、パケット#4~#6が送信される。
・時刻t=4~5
この時間に新たなパケット#25~56が到来する。各パケットのパケットサイズは1000bytesとする。ただし、t=4の時点でTminは負の値なので当該パケット群は送信されずにキュー11に保管される。また、この時間は、時刻t=3で説明したように送信判定機能部12がパケット送信判定を行い、パケット#7~12が送信される。
また、t=5においてトークン供給関数更新周期が到来するので、図4のフローチャートに従ってトークン供給関数Ts(t)が更新される。新たなパケット量と図3の遅延パラメータテーブル112に設定されている値で計算するとトークン供給関数Ts(t)はt=6~9の間で7000、t=9~13の間で4000となる。
この時間に新たなパケット#25~56が到来する。各パケットのパケットサイズは1000bytesとする。ただし、t=4の時点でTminは負の値なので当該パケット群は送信されずにキュー11に保管される。また、この時間は、時刻t=3で説明したように送信判定機能部12がパケット送信判定を行い、パケット#7~12が送信される。
また、t=5においてトークン供給関数更新周期が到来するので、図4のフローチャートに従ってトークン供給関数Ts(t)が更新される。新たなパケット量と図3の遅延パラメータテーブル112に設定されている値で計算するとトークン供給関数Ts(t)はt=6~9の間で7000、t=9~13の間で4000となる。
・時刻t=6
トークン供給周期が到来するので、各トークンバケツにトークンが供給される。
時刻t=2と同様に、最低帯域トークンバケツ13Bには1Mbpsの1ms分である125Bytesが供給され、最大帯域トークンバケツ13Cには48Mbpsの1ms分である6000Bytesが供給される。一方、遅延保証トークンバケツ13Aには、時刻t=5で計算されたトークン供給関数Ts(t)に従い、7000Bytesが供給される。
次に、送信判定機能部12は、図6のアルゴリズムに基づきパケット送信判定を行う。
最初の6パケット(#13~#18)は、これまでと同様に送信される。そのトークン量の状態は、Tmax=0、Td=1000である。
トークン供給周期が到来するので、各トークンバケツにトークンが供給される。
時刻t=2と同様に、最低帯域トークンバケツ13Bには1Mbpsの1ms分である125Bytesが供給され、最大帯域トークンバケツ13Cには48Mbpsの1ms分である6000Bytesが供給される。一方、遅延保証トークンバケツ13Aには、時刻t=5で計算されたトークン供給関数Ts(t)に従い、7000Bytesが供給される。
次に、送信判定機能部12は、図6のアルゴリズムに基づきパケット送信判定を行う。
最初の6パケット(#13~#18)は、これまでと同様に送信される。そのトークン量の状態は、Tmax=0、Td=1000である。
ここで、次に送るパケット#19について説明する。Tminは負の値なので、ステップS02の判断を行う。Td-B>0は成り立つが(ステップS02にて“Yes”)、Tmax-B>0が成り立たない(ステップS03にて“No”)。さらに図5の帯域パラメータテーブル115の帯域超過時動作が破棄であることから、パケットを破棄するとともに、Tdから1000を減ずる(ステップS06)。ここでTdからトークン量を減算しておく理由は、すべてのパケットを送信し終わった後のTdの値が必ず0になるように調整するためである。そのようにしないと、パケットを破棄する度にTdの値が増大することになる。
(実施例2)
本実施例は、最低帯域保証と最大帯域保証の両方が設定され、帯域超過時動作が「破棄しない」の場合の例である。
遅延パラメータテーブル112に設定されている値は図8の通りである。帯域パラメータテーブル115に設定されている値は図9の通りである。このような場合、通信装置100は図10のように動作する。通信装置100の動作は、パケットを破棄せずに次のトークン供給周期まで待機させている点が実施例1と異なる動作である。他の動作は実施例1と同じである。
本実施例は、最低帯域保証と最大帯域保証の両方が設定され、帯域超過時動作が「破棄しない」の場合の例である。
遅延パラメータテーブル112に設定されている値は図8の通りである。帯域パラメータテーブル115に設定されている値は図9の通りである。このような場合、通信装置100は図10のように動作する。通信装置100の動作は、パケットを破棄せずに次のトークン供給周期まで待機させている点が実施例1と異なる動作である。他の動作は実施例1と同じである。
(実施例3)
通信装置100は、遅延パラメータテーブル112や帯域パラメータ115の設定により、次のような動作もできる。
図11は、遅延保証と最大帯域保証が設定され、帯域超過時動作が「破棄」の場合の例である。図19は、この場合の装置構成を説明する図である。また、図17は、この場合の動作を説明するフローチャートである。
通信装置100は、遅延パラメータテーブル112や帯域パラメータ115の設定により、次のような動作もできる。
図11は、遅延保証と最大帯域保証が設定され、帯域超過時動作が「破棄」の場合の例である。図19は、この場合の装置構成を説明する図である。また、図17は、この場合の動作を説明するフローチャートである。
本実施例の通信装置は、
ユーザ装置2から入力されたパケットを一時的に保持するキュー11と、
遅延保証トークンバケツ13A及び最大帯域トークンバケツ13Cの2つのトークンバケツと、
キュー11が保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワーク3へ転送するトークンバケットアルゴリズムを有する送信判定機能部12と、
ユーザ装置2から入力されたパケットの量を所定の間隔で測定するメータリング部104と、
遅延保証トークンバケツ13Aに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、メータリング部104が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部108と、
トークン供給計算部108から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で遅延保証トークンバケツ13Aに供給する遅延保証トークン供給部109Aと、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で最大帯域トークンバケツ13Cに供給する最大帯域トークン供給部109Cと、
を備える。
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合(ステップS02及びS03にて“Yes”)、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Td及びTmaxのそれぞれからBを減算し(ステップS07)、
Td-Bがゼロ以下の場合(ステップS02にて“No”)、キュー11の先頭パケットを次の前記トークン供給時まで前記キューに待機させ(ステップS05)、
Td-Bがゼロより大きく(ステップS02にて“Yes”)、Tmax-Bがゼロ以下の場合(ステップS03にて“No”)、キュー11の先頭パケットを廃棄してTdからBを減算する(ステップS06)
というアルゴリズムであることを特徴とする。
ユーザ装置2から入力されたパケットを一時的に保持するキュー11と、
遅延保証トークンバケツ13A及び最大帯域トークンバケツ13Cの2つのトークンバケツと、
キュー11が保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワーク3へ転送するトークンバケットアルゴリズムを有する送信判定機能部12と、
ユーザ装置2から入力されたパケットの量を所定の間隔で測定するメータリング部104と、
遅延保証トークンバケツ13Aに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、メータリング部104が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部108と、
トークン供給計算部108から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で遅延保証トークンバケツ13Aに供給する遅延保証トークン供給部109Aと、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で最大帯域トークンバケツ13Cに供給する最大帯域トークン供給部109Cと、
を備える。
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合(ステップS02及びS03にて“Yes”)、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Td及びTmaxのそれぞれからBを減算し(ステップS07)、
Td-Bがゼロ以下の場合(ステップS02にて“No”)、キュー11の先頭パケットを次の前記トークン供給時まで前記キューに待機させ(ステップS05)、
Td-Bがゼロより大きく(ステップS02にて“Yes”)、Tmax-Bがゼロ以下の場合(ステップS03にて“No”)、キュー11の先頭パケットを廃棄してTdからBを減算する(ステップS06)
というアルゴリズムであることを特徴とする。
(実施例4)
通信装置100は、遅延パラメータテーブル112や帯域パラメータ115の設定により、次のような動作もできる。
図12は、遅延保証と最大帯域保証が設定され、帯域超過時動作が「破棄しない」の場合の例である。この場合の装置構成は実施例3の図19と同じである。また、図16は、この場合の動作を説明するフローチャートである。
通信装置100は、遅延パラメータテーブル112や帯域パラメータ115の設定により、次のような動作もできる。
図12は、遅延保証と最大帯域保証が設定され、帯域超過時動作が「破棄しない」の場合の例である。この場合の装置構成は実施例3の図19と同じである。また、図16は、この場合の動作を説明するフローチャートである。
本実施例のトークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合(ステップS02とS03にて“Yes”)、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Td及びTmaxのそれぞれからBを減算し(ステップS07)、
Td-Bがゼロ以下の場合(ステップS02にて“No”)、又は、Td-Bがゼロより大きく(ステップS02にて“Yes”)、Tmax-Bがゼロ以下である場合(ステップS03にて“No”)、キュー11の先頭パケットを次の前記トークン供給時までキュー11に待機させる(ステップS05)
というアルゴリズムであることを特徴とする。
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合(ステップS02とS03にて“Yes”)、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Td及びTmaxのそれぞれからBを減算し(ステップS07)、
Td-Bがゼロ以下の場合(ステップS02にて“No”)、又は、Td-Bがゼロより大きく(ステップS02にて“Yes”)、Tmax-Bがゼロ以下である場合(ステップS03にて“No”)、キュー11の先頭パケットを次の前記トークン供給時までキュー11に待機させる(ステップS05)
というアルゴリズムであることを特徴とする。
(実施例5)
通信装置100は、遅延パラメータテーブル112や帯域パラメータ115の設定により、次のような動作もできる。
図13は、遅延保証と最低帯域保証が設定される場合の例である。図18は、この場合の装置構成を説明する図である。また、図15は、この場合の動作を説明するフローチャートである。
通信装置100は、遅延パラメータテーブル112や帯域パラメータ115の設定により、次のような動作もできる。
図13は、遅延保証と最低帯域保証が設定される場合の例である。図18は、この場合の装置構成を説明する図である。また、図15は、この場合の動作を説明するフローチャートである。
本実施例の通信装置は、
ユーザ装置2から入力されたパケットを一時的に保持するキュー11と、
遅延保証トークンバケツ13A及び最低帯域トークンバケツ13Cの2つのトークンバケツと、
キュー11が保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワーク3へ転送するトークンバケットアルゴリズムを有する送信判定機能部12と、
ユーザ装置2から入力されたパケットの量を所定の間隔で測定するメータリング部104と、
遅延保証トークンバケツ13Aに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、メータリング部104が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部108と、
トークン供給計算部108から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で遅延保証トークンバケツ13Aに供給する遅延保証トークン供給部109Aと、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で最低帯域トークンバケツ13Bに供給する最低帯域トークン供給部109Bと、
を備える。
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合(ステップS01にて“Yes”)、及び、Tmin-Bがゼロ以下(ステップS01にて“No”)且つTd-Bがゼロより大きい場合(ステップS02にて“Yes”)、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Tmin及びTdのそれぞれからBを減算し(ステップS07)、
Tmin-BとTd-Bがゼロ以下の場合(ステップS01とS02にて“No”)、キュー11の先頭パケットを次の前記トークン供給時までキュー11に待機させる(ステップS05)、
というアルゴリズムであることを特徴とする。
ユーザ装置2から入力されたパケットを一時的に保持するキュー11と、
遅延保証トークンバケツ13A及び最低帯域トークンバケツ13Cの2つのトークンバケツと、
キュー11が保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワーク3へ転送するトークンバケットアルゴリズムを有する送信判定機能部12と、
ユーザ装置2から入力されたパケットの量を所定の間隔で測定するメータリング部104と、
遅延保証トークンバケツ13Aに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、メータリング部104が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部108と、
トークン供給計算部108から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で遅延保証トークンバケツ13Aに供給する遅延保証トークン供給部109Aと、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で最低帯域トークンバケツ13Bに供給する最低帯域トークン供給部109Bと、
を備える。
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合(ステップS01にて“Yes”)、及び、Tmin-Bがゼロ以下(ステップS01にて“No”)且つTd-Bがゼロより大きい場合(ステップS02にて“Yes”)、キュー11の先頭パケットを通信ネットワーク3へ転送するとともに、Tmin及びTdのそれぞれからBを減算し(ステップS07)、
Tmin-BとTd-Bがゼロ以下の場合(ステップS01とS02にて“No”)、キュー11の先頭パケットを次の前記トークン供給時までキュー11に待機させる(ステップS05)、
というアルゴリズムであることを特徴とする。
(他の実施形態)
通信装置100はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
図14は、通信装置100のブロック図を示している。通信装置100は、ネットワーク235へと接続されたコンピュータ205を含む。
通信装置100はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
図14は、通信装置100のブロック図を示している。通信装置100は、ネットワーク235へと接続されたコンピュータ205を含む。
ネットワーク235は、データ通信ネットワークである。ネットワーク235は、プライベートネットワーク又はパブリックネットワークであってよく、(a)例えば或る部屋をカバーするパーソナル・エリア・ネットワーク、(b)例えば或る建物をカバーするローカル・エリア・ネットワーク、(c)例えば或るキャンパスをカバーするキャンパス・エリア・ネットワーク、(d)例えば或る都市をカバーするメトロポリタン・エリア・ネットワーク、(e)例えば都市、地方、又は国家の境界をまたいでつながる領域をカバーするワイド・エリア・ネットワーク、又は(f)インターネット、のいずれか又はすべてを含むことができる。通信は、ネットワーク235を介して電子信号及び光信号によって行われる。
コンピュータ205は、プロセッサ210、及びプロセッサ210に接続されたメモリ215を含む。コンピュータ205が、本明細書においてはスタンドアロンのデバイスとして表されているが、そのように限定されるわけではなく、むしろ分散処理システムにおいて図示されていない他のデバイスへと接続されてよい。
プロセッサ210は、命令に応答し且つ命令を実行する論理回路で構成される電子デバイスである。
メモリ215は、コンピュータプログラムがエンコードされた有形のコンピュータにとって読み取り可能な記憶媒体である。この点に関し、メモリ215は、プロセッサ210の動作を制御するためにプロセッサ210によって読み取り可能及び実行可能なデータ及び命令、すなわちプログラムコードを記憶する。メモリ215を、ランダムアクセスメモリ(RAM)、ハードドライブ、読み出し専用メモリ(ROM)、又はこれらの組み合わせにて実現することができる。メモリ215の構成要素の1つは、プログラムモジュール220である。
プログラムモジュール220は、本明細書に記載のプロセスを実行するようにプロセッサ210を制御するための命令を含む。本明細書において、動作がコンピュータ205或いは方法又はプロセス若しくはその下位プロセスによって実行されると説明されるが、それらの動作は、実際にはプロセッサ210によって実行される。
用語「モジュール」は、本明細書において、スタンドアロンの構成要素又は複数の下位の構成要素からなる統合された構成のいずれかとして具現化され得る機能的動作を指して使用される。したがって、プログラムモジュール220は、単一のモジュールとして、或いは互いに協調して動作する複数のモジュールとして実現され得る。さらに、プログラムモジュール220は、本明細書において、メモリ215にインストールされ、したがってソフトウェアにて実現されるものとして説明されるが、ハードウェア(例えば、電子回路)、ファームウェア、ソフトウェア、又はこれらの組み合わせのいずれかにて実現することが可能である。
プログラムモジュール220は、すでにメモリ215へとロードされているものとして示されているが、メモリ215へと後にロードされるように記憶装置240上に位置するように構成されてもよい。記憶装置240は、プログラムモジュール220を記憶する有形のコンピュータにとって読み取り可能な記憶媒体である。記憶装置240の例として、コンパクトディスク、磁気テープ、読み出し専用メモリ、光記憶媒体、ハードドライブ又は複数の並列なハードドライブで構成されるメモリユニット、並びにユニバーサル・シリアル・バス(USB)フラッシュドライブが挙げられる。あるいは、記憶装置240は、ランダムアクセスメモリ、或いは図示されていない遠隔のストレージシステムに位置し、且つネットワーク235を介してコンピュータ205へと接続される他の種類の電子記憶デバイスであってよい。
通信装置100は、本明細書においてまとめてデータソース250と称され、且つネットワーク235へと通信可能に接続されるデータソース250A及びデータソース250Bを更に含む。実際には、データソース250は、任意の数のデータソース、すなわち1つ以上のデータソースを含むことができる。データソース250は、体系化されていないデータを含み、ソーシャルメディアを含むことができる。
通信装置100は、ユーザ201によって操作され、且つネットワーク235を介してコンピュータ205へと接続されるユーザデバイス230を更に含む。ユーザデバイス230として、ユーザ201が情報及びコマンドの選択をプロセッサ210へと伝えることを可能にするためのキーボード又は音声認識サブシステムなどの入力デバイスが挙げられる。ユーザデバイス230は、表示装置又はプリンタ或いは音声合成装置などの出力デバイスを更に含む。マウス、トラックボール、又はタッチ感応式画面などのカーソル制御部が、さらなる情報及びコマンドの選択をプロセッサ210へと伝えるために表示装置上でカーソルを操作することをユーザ201にとって可能にする。
プロセッサ210は、プログラムモジュール220の実行の結果222をユーザデバイス230へと出力する。あるいは、プロセッサ210は、出力を例えばデータベース又はメモリなどの記憶装置225へともたらすことができ、或いはネットワーク235を介して図示されていない遠隔のデバイスへともたらすことができる。
例えば、図4や図6のフローチャートを行うプログラムをプログラムモジュール220としてもよい。コンピュータ205を通信装置100として動作させることができる。
用語「・・・を備える」又は「・・・を備えている」は、そこで述べられている特徴、完全体、工程、又は構成要素が存在することを指定しているが、1つ以上の他の特徴、完全体、工程、又は構成要素、或いはそれらのグループの存在を排除してはいないと、解釈されるべきである。用語「a」及び「an」は、不定冠詞であり、したがって、それを複数有する実施形態を排除するものではない。
2:ユーザ装置
3:通信ネットワーク
11:キュー
12:送信判定機能部
13A:遅延保証トークンバケツ
13B:最低帯域トークンバケツ
13C:最大帯域トークンバケツ
104:メータリング部
105:シェーピング部
108:トークン供給関数計算部
109A:遅延保証トークン供給部
109B:最低帯域トークン供給部
109C:最大帯域トークン供給部
112:遅延パラメータテーブル
113:入力パケット量記録メモリ
114:遅延保証トークン供給関数メモリ
115:帯域パラメータテーブル
122:遅延パラメータ設定部
123:帯域パラメータ設定部
200:システム
201:ユーザ
205:コンピュータ
210:プロセッサ
215:メモリ
220:プログラムモジュール
222:結果
225:記憶装置
230:ユーザデバイス
235:ネットワーク
240:記憶装置
250:データソース
3:通信ネットワーク
11:キュー
12:送信判定機能部
13A:遅延保証トークンバケツ
13B:最低帯域トークンバケツ
13C:最大帯域トークンバケツ
104:メータリング部
105:シェーピング部
108:トークン供給関数計算部
109A:遅延保証トークン供給部
109B:最低帯域トークン供給部
109C:最大帯域トークン供給部
112:遅延パラメータテーブル
113:入力パケット量記録メモリ
114:遅延保証トークン供給関数メモリ
115:帯域パラメータテーブル
122:遅延パラメータ設定部
123:帯域パラメータ設定部
200:システム
201:ユーザ
205:コンピュータ
210:プロセッサ
215:メモリ
220:プログラムモジュール
222:結果
225:記憶装置
230:ユーザデバイス
235:ネットワーク
240:記憶装置
250:データソース
Claims (8)
- ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最低帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する最低帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin及びTdのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、
というアルゴリズムであることを特徴とする通信装置。 - ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最大帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、又は、Td-Bがゼロより大きく、Tmax-Bがゼロ以下である場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる
というアルゴリズムであることを特徴とする通信装置。 - ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツと、
前記キューが保持するパケットを前記2つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最大帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
Td-Bがゼロより大きく、Tmax-Bがゼロ以下の場合、前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであることを特徴とする通信装置。 - ユーザ装置から入力されたパケットを一時的に保持するキューと、
遅延保証トークンバケツ、最低帯域トークンバケツ及び最大帯域トークンバケツの3つのトークンバケツと、
前記キューが保持するパケットを前記3つのトークンバケツが保有するトークンに従って通信ネットワークへ転送するトークンバケットアルゴリズムを有する送信判定機能部と、
前記ユーザ装置から入力されたパケットの量を所定の間隔で測定するメータリング部と、
前記遅延保証トークンバケツに供給するトークンの量と供給期間を前記所定の間隔で指定するトークン供給関数を有しており、前記メータリング部が測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加するトークン供給計算部と、
前記トークン供給計算部から設定された前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給する遅延保証トークン供給部と、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給する最低帯域トークン供給部と、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給する最大帯域トークン供給部と、
を備え、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記3つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin、Td、及びTmaxのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
他の場合、設定により、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、又は前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであることを特徴とする通信装置。 - ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最低帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力するトークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最低帯域に基づく量のトークンを前記所定の間隔で前記最低帯域トークンバケツに供給しており、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最低帯域トークンバケツが有しているトークンの総量をTmin、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Tmin-Bがゼロより大きい場合、及び、Tmin-Bがゼロ以下且つTd-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Tmin及びTdのそれぞれからBを減算し、
Tmin-BとTd-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる、
というアルゴリズムであることを特徴とする通信方法。 - ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力するトークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給しており、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、又は、Td-Bがゼロより大きく、Tmax-Bがゼロ以下である場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させる
というアルゴリズムであることを特徴とする通信方法。 - ユーザ装置から入力されたパケットを一時的にキューに保持し、
遅延保証トークンバケツ及び最大帯域トークンバケツの2つのトークンバケツが保有するトークンに従ってパケットを出力するトークンバケットアルゴリズムで、前記キューが保持するパケットを通信ネットワークへ転送する際に、
所定の間隔で前記ユーザ装置から入力されたパケットの量を測定し、
前記所定の間隔で前記遅延保証トークンバケツに供給するトークンの量と供給期間を指定するトークン供給関数を、測定した前記パケットの量から追加する前記トークン供給関数を作成し、従前の前記トークン供給関数に追加して作成し、
作成した前記トークン供給関数に従う量のトークンを前記所定の間隔で前記遅延保証トークンバケツに供給し、
予め設定された最大帯域に基づく量のトークンを前記所定の間隔で前記最大帯域トークンバケツに供給しており、
前記トークンバケットアルゴリズムは、
任意の時刻における
前記最大帯域トークンバケツが有しているトークンの総量をTmax、
前記遅延保証トークンバケツが有しているトークンの総量をTd、
前記キューの先頭パケットのパケットサイズをBとしたとき、
トークンが前記2つのトークンバケツに供給されるトークン供給時の後、
Td-BとTmax-Bがゼロより大きい場合、前記キューの先頭パケットを前記通信ネットワークへ転送するとともに、Td及びTmaxのそれぞれからBを減算し、
Td-Bがゼロ以下の場合、前記キューの先頭パケットを次の前記トークン供給時まで前記キューに待機させ、
Td-Bがゼロより大きく、Tmax-Bがゼロ以下の場合、前記キューの先頭パケットを廃棄してTdからBを減算する
というアルゴリズムであることを特徴とする通信方法。 - 請求項1から4のいずれかに記載の通信装置としてコンピュータを機能させるためのプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/026743 WO2021002022A1 (ja) | 2019-07-04 | 2019-07-04 | 通信装置、通信方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021002022A1 JPWO2021002022A1 (ja) | 2021-01-07 |
JP7127743B2 true JP7127743B2 (ja) | 2022-08-30 |
Family
ID=74100303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021529876A Active JP7127743B2 (ja) | 2019-07-04 | 2019-07-04 | 通信装置、通信方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11902167B2 (ja) |
JP (1) | JP7127743B2 (ja) |
WO (1) | WO2021002022A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021002022A1 (ja) * | 2019-07-04 | 2021-01-07 | 日本電信電話株式会社 | 通信装置、通信方法及びプログラム |
CN115174486B (zh) * | 2022-06-01 | 2024-05-28 | 湖南天冠电子信息技术有限公司 | 一种报文传输方法、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003258881A (ja) | 2002-02-28 | 2003-09-12 | Nippon Telegr & Teleph Corp <Ntt> | アダプティブ品質制御方式 |
JP2005236669A (ja) | 2004-02-19 | 2005-09-02 | Furukawa Electric Co Ltd:The | 通信品質制御方法およびその通信品質制御装置 |
JP2013030855A (ja) | 2011-07-26 | 2013-02-07 | Nippon Telegr & Teleph Corp <Ntt> | セッション受付制御システム及び方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1042037A (ja) * | 1996-07-19 | 1998-02-13 | Nippon Telegr & Teleph Corp <Ntt> | 通信制御方法及びその装置 |
US8032653B1 (en) * | 2000-09-08 | 2011-10-04 | Juniper Networks, Inc. | Guaranteed bandwidth sharing in a traffic shaping system |
US7376141B2 (en) * | 2002-12-17 | 2008-05-20 | Raytheon Company | Method and system for encapsulating variable-size packets |
US8320240B2 (en) * | 2004-11-30 | 2012-11-27 | Broadcom Corporation | Rate limiting and minimum and maximum shaping in a network device |
US7522622B2 (en) * | 2005-02-18 | 2009-04-21 | Broadcom Corporation | Dynamic color threshold in a queue |
US7809009B2 (en) * | 2006-02-21 | 2010-10-05 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US7948882B2 (en) * | 2006-10-09 | 2011-05-24 | Agere Systems Inc. | Dual leaky bucket flow control method and system |
US7830796B2 (en) * | 2006-10-18 | 2010-11-09 | Ericsson Ab | Method and apparatus for traffic shaping |
CN101212389B (zh) * | 2006-12-30 | 2010-06-23 | 华为技术有限公司 | 一种突发汇聚控制方法及相应的装置、通信设备 |
US8537742B2 (en) * | 2007-03-17 | 2013-09-17 | Qualcomm Incorporated | Reverse-link quality-of-service information in data packet header |
CN102084628B (zh) * | 2008-04-24 | 2014-12-03 | 马维尔国际有限公司 | 通信量管理器和用于通信量管理器的方法 |
EP2525534B1 (en) * | 2011-05-18 | 2018-04-18 | Xelerated NewCo AB | Network traffic scheduler and associated method, computer program and computer program product |
US20140281000A1 (en) * | 2013-03-14 | 2014-09-18 | Cisco Technology, Inc. | Scheduler based network virtual player for adaptive bit rate video playback |
US9170752B2 (en) * | 2013-12-19 | 2015-10-27 | International Business Machines Corporation | Dynamic feedback-based throughput control for black-box storage systems |
US10097478B2 (en) * | 2015-01-20 | 2018-10-09 | Microsoft Technology Licensing, Llc | Controlling fair bandwidth allocation efficiently |
US10432429B1 (en) * | 2016-02-16 | 2019-10-01 | Innovium, Inc. | Efficient traffic management |
JP6836423B2 (ja) | 2017-03-07 | 2021-03-03 | 日本電信電話株式会社 | 通信装置、通信システム及びプログラム |
JP2019201342A (ja) * | 2018-05-17 | 2019-11-21 | 富士通株式会社 | 検証パケット生成装置、検証システム、および検証パケット生成プログラム |
WO2021002022A1 (ja) * | 2019-07-04 | 2021-01-07 | 日本電信電話株式会社 | 通信装置、通信方法及びプログラム |
-
2019
- 2019-07-04 WO PCT/JP2019/026743 patent/WO2021002022A1/ja active Application Filing
- 2019-07-04 JP JP2021529876A patent/JP7127743B2/ja active Active
- 2019-07-04 US US17/624,464 patent/US11902167B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003258881A (ja) | 2002-02-28 | 2003-09-12 | Nippon Telegr & Teleph Corp <Ntt> | アダプティブ品質制御方式 |
JP2005236669A (ja) | 2004-02-19 | 2005-09-02 | Furukawa Electric Co Ltd:The | 通信品質制御方法およびその通信品質制御装置 |
JP2013030855A (ja) | 2011-07-26 | 2013-02-07 | Nippon Telegr & Teleph Corp <Ntt> | セッション受付制御システム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021002022A1 (ja) | 2021-01-07 |
US11902167B2 (en) | 2024-02-13 |
JPWO2021002022A1 (ja) | 2021-01-07 |
US20220360534A1 (en) | 2022-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9407560B2 (en) | Software defined network-based load balancing for physical and virtual networks | |
US10165031B2 (en) | Methods and systems for incremental calculation of latency variation | |
EP2720422A1 (en) | Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4G IP network/equipment for better traffic performance | |
US9025443B2 (en) | Network equipment and frame transmission control method | |
CN102763385A (zh) | 针对数据中心环境优化的通信输送 | |
KR102165864B1 (ko) | 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치 | |
EP2670085B1 (en) | System for performing Data Cut-Through | |
CN108476175B (zh) | 使用对偶变量的传送sdn流量工程方法与系统 | |
JP5919727B2 (ja) | バッファ管理のためのプログラム、中継装置及び制御方法 | |
US20200252337A1 (en) | Data transmission method, device, and computer storage medium | |
US20180302329A1 (en) | Output rates for virtual output queues | |
JP7127743B2 (ja) | 通信装置、通信方法及びプログラム | |
CN113783793A (zh) | 对时间敏感的数据帧的流量调度方法及相关设备 | |
CN112714081B (zh) | 一种数据处理方法及其装置 | |
US9282041B2 (en) | Congestion profiling of computer network devices | |
KR20120055946A (ko) | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 | |
CN113364701B (zh) | 基于rtt的结合比例积分微分控制的拥塞控制方法及设备 | |
CN112491736B (zh) | 一种拥塞控制方法、装置、电子设备及存储介质 | |
WO2018157819A1 (zh) | 多子流网络传输方法及装置 | |
JP2016122960A (ja) | 管理システム、ネットワーク管理方法、ネットワークシステム | |
CN111490940B (zh) | 确定数据转发路径的方法、电子设备以及存储介质 | |
Das et al. | A Dynamic Algorithm for Optimization of Network Traffic through Smart Network Switch Data Flow Management | |
JP4995304B2 (ja) | パケット転送装置の制御方法及び制御装置 | |
Khan et al. | Receiver-driven flow scheduling for commodity datacenters | |
CN116489091A (zh) | 基于远程带内遥测和时延的流量调度方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211122 |
|
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: 20220719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220801 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7127743 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |