JP2009200947A - パケット伝送装置、パケット伝送方法およびパケット伝送プログラム - Google Patents

パケット伝送装置、パケット伝送方法およびパケット伝送プログラム Download PDF

Info

Publication number
JP2009200947A
JP2009200947A JP2008041848A JP2008041848A JP2009200947A JP 2009200947 A JP2009200947 A JP 2009200947A JP 2008041848 A JP2008041848 A JP 2008041848A JP 2008041848 A JP2008041848 A JP 2008041848A JP 2009200947 A JP2009200947 A JP 2009200947A
Authority
JP
Japan
Prior art keywords
queue
token value
token
packet
addition
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.)
Withdrawn
Application number
JP2008041848A
Other languages
English (en)
Inventor
Kenji Hashinaga
健次 橋永
Masamichi Ryu
正道 笠
Katsuhiko Hirashima
勝彦 平島
Michihiko Goto
道彦 後藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008041848A priority Critical patent/JP2009200947A/ja
Priority to US12/354,148 priority patent/US20090213734A1/en
Publication of JP2009200947A publication Critical patent/JP2009200947A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】出力レートを適切に平滑化することを課題とする。
【解決手段】キュー情報と当該キューの蓄積トークン値とを対応づけて記憶し、未使用なキューや、蓄積トークン値が所定の上限値を超過しているキューを識別するキュー情報を取得し、キュー情報が取得されると、パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択し、複数のキューそれぞれに所定のトークン値を追加する際に、選択されたキューを識別するキュー情報に対応づけられた蓄積トークン値にのみ所定のトークン値を追加する。
【選択図】 図2

Description

この発明は、パケット伝送装置、パケット伝送方法およびパケット伝送プログラムに関する。
従来より、パケット伝送装置では、パケット伝送装置から出力されるパケットの出力レートを制御(平滑化)する手法として、パケットの出力を許可するかを判別する符号であるトークンを用いた制御が行われている。
一般的なトークンを用いた制御手法について簡単に説明する。例えば、トークンを用いた制御を行うトークン制御回路は、パケット伝送装置から出力されるパケットを格納する複数のキューそれぞれにトークン値を定期的に割り当てて追加する。また、トークン制御回路は、キューに割り当てられたトークンの値であるトークン値が、出力するパケットのパケット長より多い場合に、パケットを出力する。また、トークン制御回路は、出力されたパケットが格納されたキューのトークン値から、出力したパケットのパケット長に相当する値を減算する。
ここで、出力レートを平滑化する手法に関して、様々な手法が行われている。例えば、パケット伝送装置は、図15の(1)に示すように、キューごとに、トークン値を追加する処理を繰り返すので、一つのトークン制御回路により制御される処理キュー数の増加に伴って、同じキューに対してトークンを再度追加するまでの時間を示すトークン追加周期が長くなる。このため、キュー数の増加に伴って長くなるトークン追加周期に対応して、一度に追加する追加トークン値を増加する手法が行われている。
また、例えば、キュー数の増加に伴って、一つのパケット伝送装置内に設置するトークン制御回路を増加する手法が行われている。具体的な例をあげて説明すると、パケット伝送装置は、図15の(2)に示すように、パケット伝送装置が用いるキューの数とトークン制御回路とトークン格納メモリとを、それぞれ同数備え、トークン制御回路各々が、担当する一つのキューに関するトークン制御のみ行う。なお、特許文献1(特開2006−333091号公報)には、一般的なパケットシェイパに関する技術が開示されている。
特開2006−333091号公報(第7−9、16−17頁、第9−12図)
ところで、上記した従来の技術は、出力レートを適切に平滑化することができないという課題があった。
例えば、一度に追加する追加トークン値を増加する従来の手法では、連続して出力することができるデータ量(またはデータの個数)であるバースト長が増加し、パケット伝送装置が、出力レートを細やかに平滑化できなかった。また、バースト長が増加した結果、出力されたパケットを受信する対向装置では、パケット溢れが発生し、パケットの廃棄が生じる可能性も生じていた。
シェーピングレート(出力レート)が「1Gbps」である場合を例にあげて、具体的に説明する。まず、シェーピングレートと追加トークン値とトークン追加周期との関係は、以下の(式1)によって示される。
(式1)「シェーピングレート」=「追加トークン値」/「トークン追加周期」
この(式1)により、例えば、一度に追加する追加トークン値を増加する手法を実行する従来のパケット伝送装置では、トークン追加周期が「1μs」の場合には、追加トークン値が125byteであり、バースト長は、100byteのパケット1個分となる(100byteのパケットならば、連続して1個出力する)。また、同様に、トークン追加周期が「100μs」の場合には、追加トークン値が12500byteであり、バースト長は、100byteのパケット125個分となる(100byteのパケットならば、連続して125個出力し、1000byteのパケットならば、連続して12個出力する)。
この結果、トークン追加周期が「1μs」から「100μs」へと長くなることによって、バースト長は、100byteのパケット1個分から、100byteのパケット125個分へと増加していた。
さらに、従来のパケット伝送装置では、一般的に、蓄積可能なトークン値の上限値(上限蓄積トークン値、最大バースト値)として(数回の追加トークン値分を蓄積可能にするために)、追加トークン値より大きな値が設定される。この結果、一度に追加する追加トークン値を増加する手法を実行する従来のパケット伝送装置は、一度に追加される追加トークン値によって出力されるバースト長よりも、さらに多くのパケットを出力していた。
このように、一度に追加する追加トークン値を増加する手法を実行する従来のパケット伝送装置では、細やかな制御(一度に小さい追加トークン値を、頻繁に追加する手法)を実現することができず、バースト長が増加し、出力レートを適切に平滑化することができなかった。
また、例えば、複数の回路を用いる従来の手法では、パケット伝送装置が、回路規模を増大させずに、出力レートを適切に平滑化することができなかった。
具体的に例をあげて説明すると、N個のキューと1つのトークン制御回路とを備えるパケット伝送装置(パケット伝送装置甲とする)と比較して、トークン追加周期を1/Nに短縮する場合に、複数の回路を用いる手法を実行する従来のパケット伝送装置は、パケット伝送装置甲と比較してN倍の回路規模を備えなければならなかった。なお、上記した特許文献1には、出力レートを適切に平滑化する手法については開示されていない。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、出力レートを適切に平滑化することが可能であるパケット伝送装置、パケット伝送方法およびパケット伝送プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、このパケット伝送装置は、パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算するパケット伝送装置であって、前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶する記憶手段と、前記パケット伝送装置において用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得手段と、前記取得手段によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択手段と、複数のキューそれぞれに所定のトークン値を追加する際に、前記選択手段によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶手段に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加手段と、を備えたことを要件とする。
また、このパケット伝送装置は、さらに、前記選択手段によって前記キューが選択されると、前記複数のキューの内選択された当該キューが占める割合を算出する割合算出手段をさらに備え、前記追加手段は、前記選択手段によって選択された前記キューに、前記所定のトークン値の内、前記割合算出手段によって算出された前記割合に相当するトークン値を追加することを要件とする。
開示のパケット伝送装置によれば、出力レートを適切に平滑化することが可能である。
また、開示のパケット伝送装置によれば、トークン追加周期を変更した場合にも、当該変更に合わせて追加トークン値を変更することができ、出力レートを適切に平滑化することが可能である。
以下に添付図面を参照して、この発明に係るパケット伝送装置、パケット伝送方法およびパケット伝送プログラムの実施例を詳細に説明する。なお、以下では、実施例1を説明するうえで前提となる技術、実施例1で用いる主要な用語、実施例1に係るパケット伝送装置の概要および特徴、パケット伝送装置の構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
[前提技術]
まず最初に、図1−1と図1−2とを用いて、実施例1を説明するうえで前提となる技術について説明する。なお、図1−1と図1−2とは、実施例1における前提技術を説明するための図である。
実施例1で用いる「パケット伝送装置」は、トークンを用いた制御(トークン制御)により、パケットの出力を制御する。例えば、パケット伝送装置は、パケットの出力レートを制御するパケットシェイパ(Packet Shaper)機能を備えるものが該当する。
なお、パケット伝送装置において、トークン制御を用いて出力レートの制御を実行するのは、ネットワークにおいて、資源(例えば、ネットワークの帯域など)を有効利用し、また、ネットワークのサービス品質を保証する上で、ネットワークにおけるトラフィックに対して一定の規制を行うことが必要だからである。
このパケット伝送装置では、入力されたパケット(出力するパケット)を、キューと呼ばれる待ち行列に蓄積する。また、一般的に、パケット伝送装置では、複数のキューを備え、トークン制御による出力レートの調整をキュー単位で行う。
パケット伝送装置において行われるトークン制御について、簡単に説明する。図1−1に示すように、パケット伝送装置は、パケットを格納する複数のキューそれぞれに、一定周期ごとに、所定のトークン値を追加しつつ割り当てる。
例えば、パケット伝送装置が、1024個のキュー(#0〜#1023の合計1024個)に対してトークン値を追加する場合を例に説明する。パケット伝送装置は、図1−1の(1)に示すように、キュー「#0」にトークン値を追加する処理を行い、キュー「#0」にトークン値を追加する処理を終了すると、続いて、図1−1の(2)に示すように、キュー「#1」にトークン値を追加する処理を行う。そして、パケット伝送装置は、その他のキューに対して、キュー「#0」と、キュー「#1」にトークン値を追加する処理と同様に、キュー「#1023」までトークン値を順番に追加する。
ここで、同じキューに対して、トークン値を再度追加するまでの時間を示すトークン追加周期が「100μs」である場合には、パケット伝送装置が、キュー「#0」にトークン値を追加する処理を行った「100μs」後に、再度キュー「#0」にトークン値を追加する。言い換えると、パケット伝送装置は、1024個のキューに対するトークン値追加処理を、「100μs」周期で繰り返す。
ここで、実施例1で用いる「トークン」と「トークン値」と「追加トークン値」と「蓄積トークン値」と「上限トークン値」との関係について、簡単に説明する。「トークン」とは、パケットの出力を許可するかを判別する符号(概念)を示す。「トークン値」とは、トークンとして用いられる情報であって、量に関する情報を含むものを示す。「追加トークン値」とは、パケット伝送装置によってパケットを格納する複数のキューそれぞれに、一度に追加されて割り当てられるトークン値を示す。
また、図1−1の(3)に示すように、「蓄積トークン値」とは、キューそれぞれに割り当てられて現に蓄積されている「トークン値」の総和を示す情報であり、「上限トークン値」とは、キューそれぞれに割り当てることが許される蓄積トークン値の上限の値を示す情報である。なお、「蓄積トークン値」と「上限トークン値」とは、キューそれぞれについて、与えられる(あるいは、算出される、設定される)情報である。なお、パケット伝送装置は、上限トークン値を超えてトークン値が割り当てられた場合に、この割り当てられたトークン値を廃棄する。
そして、パケット伝送装置は、図1−2に示すように、蓄積トークン値が、当該キューに格納されたパケットのパケット長より多い場合に、キューから当該パケットを出力する。例えば、図1−2の(4a)に示す例では、パケット伝送装置は、キュー「#0」に割り当てられた蓄積トークン値が、出力するパケット長より多いので、キュー「#0」からこのパケットを出力する。また、例えば、図1−2の(4b)に示す例では、パケット伝送装置は、キュー「#1」に割り当てられた蓄積トークン値が、出力するパケット長より少ないので、キュー「#1」からこのパケットを出力しない。
[パケット伝送装置の概要および特徴]
次に、図2を用いて、実施例1に係るパケット伝送装置の概要および特徴を説明する。図2は、実施例1に係るパケット伝送装置の概要および特徴を説明するための図である。
同図に示すように、実施例1に係るパケット伝送装置は、トークン制御によりパケットの出力を制御する装置であり、以下で説明するように、出力レートを適切に平滑化することが可能である点に主たる特徴がある。なお、ここでは、図2に示すように、説明の便宜上から、パケット伝送装置が、4個のキュー(キュー「♯0」、キュー「♯1」、キュー「♯2」、キュー「♯3」)を備えている場合を例に説明する。
すなわち、実施例1に係るパケット伝送装置は、キューを識別するキュー情報と、当該キューの蓄積トークン値とを対応づけて記憶する。ここで、実施例1に係るパケット伝送装置は、キューそれぞれについて、キュー情報と蓄積トークン値とを対応付けて記憶する。
そして、実施例1に係るパケット伝送装置は、図2の(1)に示すように、未使用なキューを識別するキュー情報や、蓄積トークン値が所定の上限トークン値を超過しているキューを識別するキュー情報を取得する。例えば、図2に示す例では、実施例1に係るパケット伝送装置には、キュー「♯1」に割り当てられた蓄積トークン値が上限トークン値を超過しており、また、キュー「♯2」が未使用なキューであると設定されている。このような場合において、実施例1に係るパケット伝送装置は、取得部が、図2の(1a)に示すように、上限トークン値を超過しているキューとして、キュー♯1を識別するキュー情報「♯1」を取得し、図2の(1b)に示すように、未使用なキューとして、キュー♯2を識別するキュー情報「♯2」を取得する。
なお、ここで、実施例1で用いる「未使用なキュー(特許請求の範囲に記載の「パケット伝送装置において用いられていないキュー」に対応する)」とは、例えば、一定期間パケットを格納していないキュー(または、一定期間パケットを出力していないキュー)や、パケット伝送装置を使用する設定者によって「未使用なキュー」として設定されたキューなどが該当する。
そして、実施例1に係るパケット伝送装置は、取得部によってキュー情報が取得されると、パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する。例えば、実施例1に係るパケット伝送装置は、「キュー♯0」と「キュー♯1」と「キュー♯2」と「キュー♯3」とを有しており、このような場合において、実施例1に係るパケット伝送装置は、選択部が、図2の(2)に示すように、取得部によって取得されたキュー情報によって識別される「キュー♯1」および「キュー♯2」以外のキューである「キュー♯0」と「キュー♯3」とを選択する。
そして、実施例1に係るパケット伝送装置は、複数のキューそれぞれに所定のトークン値を追加する際に、選択部によって選択されたキューを識別するキュー情報に対応づけられた蓄積トークン値にのみ、所定のトークン値を追加する。例えば、実施例1に係るパケット伝送装置は、図2の(3)に示す例では、選択部によって選択された「キュー♯0」と「キュー♯3」とにのみ、所定のトークン値を追加する。
このようなことから、実施例1に係るパケット伝送装置は、上記した主たる特徴の如く、出力レートを適切に平滑化することが可能である。
例えば、キュー数の増加した場合にもすべてのキューに対してトークン値を追加し、その際に、一度に追加するトークン値である追加トークン値を増加する従来の手法においては、バースト長が増加し、出力レートを適切に平滑化することができなかった。このような一度に追加する追加トークン値を増加する従来の手法と比較して、開示のパケット伝送装置では、追加する必要のあるキューにのみトークン値を追加することによって、トークン追加周期を短くすることができ、一度に追加する追加トークン値を増加することなく、出力レートを適切に平滑化することが可能である。
また、例えば、追加トークン値を増加する場合であっても、従来の手法(すべてのキューに対して、トークン追加処理を行う手法)と比較して、トークン値の増加量を減少させることができ、出力レートを適切に平滑化することが可能である。
また、例えば、キュー数の増加に伴って、一つのパケット伝送装置内に設置するトークン制御回路を増加することなく、トークン追加周期を短くすることができ、出力レートを適切に平滑化することが可能である。
[パケット伝送装置の構成]
次に、図3〜図7を用いて、図2に示したパケット伝送装置の構成を説明する。なお、図3は、実施例1に係るパケット伝送装置の構成を示すためのブロック図である。図4は、実施例1におけるトークン格納メモリを説明するための図である。図5は、実施例1における追加対象情報記憶部を説明するための図である。図6は、実施例1におけるトークン値追加処理部を説明するための図である。図7は、実施例1における追加割合算出部を説明するための図である。
ここで、図3に示すように、このパケット伝送装置は、送受信部100と、使用キュー情報入力部102と、トークン制御回路部200とから構成される。
なお、以下では、特に言及しない限り、パケット伝送装置が、1024個のキュー101を備え(#0〜#1023の合計1024個)、トークン追加周期の初期値が「100μs」であり、パケット伝送装置の使用者によって、トークン追加周期が「100μs」であるとして(トークン追加周期が「100μs」である場合における)追加トークン値が設定された場合について説明する。
送受信部100は、パケットを一時的に格納するキュー101を備え、パケットの入力を受付けて、受付けたパケットをキュー101に格納し、キュー101に格納したパケットを出力する。具体的には、送受信部100は、後述するトークン管理部220によるトークン制御に基づいて、キュー101に格納したパケットを出力する。また、送受信部100は、パケットを出力すると、後述するトークン値減算処理部223に伝達する。
具体的な一例をあげて説明すると、送受信部100は、キュー101に格納したパケットを出力する際に、後述するトークン管理部220によるトークン制御処理によって出力が許可された場合には、当該パケットを出力し、後述するトークン管理部220によるトークン制御処理によって出力が許可されなかった場合には、当該パケットを出力しない。
なお、送受信部100は、後述するトークン管理部220によるトークン制御処理によって出力が許可されなかった場合には、例えば、その後、後述するトークン値追加処理部222により、出力するパケットが格納されたキュー101にトークン値が追加され、続いて、後述するトークン管理部220によるトークン制御処理によって出力が許可されると、パケットを出力する。
使用キュー情報入力部102は、未使用なキューを識別するキュー情報を受付ける。例えば、使用キュー情報入力部102は、キーボードやマウス、マイクなどを備え、パケット伝送装置を使用する使用者から、キュー情報の入力を受付ける。また、使用キュー情報入力部102は、未使用なキューを識別するキュー情報を、後述する未使用キュー管理部231に伝達する。
トークン制御回路部200は、トークン制御処理の処理手順などを規定したプログラムおよび所要データを格納するための記憶部を有し、これらによって種々のトークン制御処理を実行する。トークン制御回路部200は、特に本発明に密接に関連するものとして、トークン格納メモリ201と、アクセス管理部210と、トークン管理部220と、追加対象制御部230と、を備える。なお、トークン格納メモリ201は、特許請求の範囲に記載の「記憶手段」に対応する。
トークン格納メモリ201は、キュー情報と蓄積トークン値とを対応づけて記憶する。なお、本実施例では、トークン格納メモリ201にキュー情報と蓄積トークン値とに加えて、追加トークン値をさらに対応付けて記憶する手法について説明する。なお、例えば、トークン格納メモリ201は、パケット伝送装置の使用者によって、トークン追加周期が「100μs」であるとして(トークン追加周期が「100μs」である場合における)追加トークン値を記憶する。
なお、ここで、トークン格納メモリ201が追加トークン値を記憶することは必須の要素ではなく、後述するトークン値追加処理部222が一度に追加するトークン値(または、出力レート)を把握できればよい。例えば、後述するトークン値追加処理部222が各キューに対して一度に追加するトークン値を識別する際に用いる情報を、トークン値追加処理部222が備える内部の記憶部に記憶してもよい。また、例えば、トークン格納メモリ201が、出力レートをキューごとに記憶し、開示のパケット伝送装置は、トークン格納メモリ201に格納されている出力レートから、キューごとの追加トークン値を算出し、トークン値を追加する処理を実行してもよい。
例えば、トークン格納メモリ201は、図4に示すように、キュー情報各々に対応付けて、追加トークン値と蓄積トークン値とを記憶する。具体的に例をあげて説明すると、トークン格納メモリ201は、キュー情報「♯0」に対応付けて、追加トークン値「12500byte」と、蓄積トークン値「300byte」とを記憶する。また、トークン格納メモリ201は、キュー情報「♯1」に対応付けて、追加トークン値「12500byte」と、蓄積トークン値「100byte」とを記憶する。
なお、図4に示すトークン格納メモリ201では、開示のパケット伝送装置が、「1024個」のキューを備えるものとして記載しているが、本発明はこれに限定されるものではなく、任意の数のキューを備えるパケット伝送装置でよい。例えば、パケット伝送装置は、24個のキューを備えるものであってもよく、その場合、トークン格納メモリ201は、24個のキューそれぞれについて、キュー情報と蓄積トークン値とを対応づけて記憶する。
アクセス管理部210は、後述するトークン管理部220からの指示に従って、トークン格納メモリ201から情報を読出し、また、トークン格納メモリ201に情報を書き込む。具体的には、アクセス管理部210は、後述するトークン管理部220の指示に従って、追加トークン値を読み出して、読み出した追加トークン値を後述するトークン管理部220に伝達する。また、アクセス管理部210は、後述するトークン管理部220の指示に従って、蓄積トークン値を読み出し、読み出した蓄積トークン値をトークン管理部220(後述するトークン値追加処理部222やトークン値減算処理部223)に伝達する。
また、アクセス管理部210は、後述するトークン値追加処理部222の指示にしたがって、蓄積トークン値に追加トークン値を追加(加算)し、加算した蓄積トークン値を後述するトークン値追加処理部222に伝達する。また、アクセス管理部210は、後述するトークン値減算処理部223の指示に従って、蓄積トークン値から対応付けられたキュー101から出力されたパケット長を減算し、減算した蓄積トークン値を後述するトークン値減算処理部223に伝達する。
また、アクセス管理部210は、後述するトークン値追加処理部222からの指示によるアクセスと、後述するトークン値減算処理部223からの指示によるアクセスとについて、アクセス調停を行う。例えば、上記したトークン管理部220の各構成部からトークン格納メモリ201へのアクセスが、トークン格納メモリにおいて衝突(例えば、同じ箇所の情報を同時に読むなど)することを回避する処理を行う。
トークン管理部220は、トークン制御処理を行う制御部であり、特に本発明に密接に関連するものとして、トークン値追加処理部222と、トークン値減算処理部223とを備える。ここで、トークン値追加処理部222は、追加対象情報記憶部221を内部に備えるものである。なお、トークン値追加処理部222は、特許請求の範囲に記載の「追加手段」に対応する。
ここで、トークン管理部220は、図示している後述するトークン値追加処理部222とトークン値減算処理部223とが別に、パケットの出力を制御するトークン制御処理を行う。具体的には、トークン管理部220は、送受信部100からキュー101に格納されたパケットが出力される際に、パケットが出力されるキュー101に対応付けられた蓄積トークン値をトークン格納メモリ201から読みだす指示をアクセス管理部210に指示し、アクセス管理部210から蓄積トークン値を伝達されて取得する。そして、トークン管理部220は、取得した蓄積トークン値が、当該キューに格納されたパケットのパケット長より多い場合に、キュー101から当該パケットの出力を許可する。また、トークン管理部220は、取得した蓄積トークン値が、当該キューに格納されたパケットのパケット長より少ない場合に、キュー101から当該パケットの出力を許可しない。
追加対象情報記憶部221は、後述する追加対象管理部233によって選択されたキュー101を識別するキュー情報を記憶する。例えば、追加対象情報記憶部221は、図5に示すように、トークン値を追加する対象となるキュー101を示すキュー情報である「追加対象キュー」を記憶する。図5に示す例を用いて、具体的に説明すると、追加対象情報記憶部221は、図5に示す例では、キュー情報「♯0」と、キュー情報「♯1」と、キュー情報「♯4」と、キュー情報「♯7」などを記憶する。
また、追加対象情報記憶部221は、後述する追加割合算出部234によって算出された情報である追加割合(実際に追加するトークン値を算出する際に用いる情報)を記憶する。例えば、追加対象情報記憶部221は、図5に示すように、後述する追加割合算出部234によって算出された追加割合として、パケット伝送装置が備える複数のキュー101の内、後述する追加対象管理部233によって選択されたキュー101が占める割合を記憶する。図5に示す例を用いて、具体的に説明すると、追加対象情報記憶部221は、追加割合として、「N」を記憶する。
ここで、開示のパケット伝送装置は、追加割合「N」として、後述する追加対象管理部233によって選択されたキュー101の数が全キュー数において占める割合そのものを用いてもよい。
また、開示のパケット伝送装置は、追加割合「N」として、予め設定された値を用いる場合であってもよい。例えば、開示のパケット伝送装置は、「1/2」や「1/4」、「1/8」、「1/16」…「1/1024」のいずれかを用いる場合であってもよい。これにより、例えば、追加割合として用いる値を一部の値に限定することができ、その結果、後述する追加割合算出部234によって、追加割合を算出する際の処理負荷が減少し、追加割合算出処理に用いられる回路を簡素化することが可能である。
また、例えば、追加割合として用いる値として、比較的計算処理が大きくならない値(例えば、「1/13」や「1/31」などの値と比較して、「1/2」や「1/4」、「1/8」などの値を用いた場合には、計算処理が小さくなる)を用いることで、後述するトークン値追加処理部222によって、実際追加するトークン値を算出する際の処理負荷を減少することができ、追加トークン値算出処理に用いられる回路を簡素化することが可能である。
トークン値追加処理部222は、複数のキュー101それぞれに所定のトークン値を追加する際に、後述する追加対象管理部233によって選択されたキュー101を識別するキュー情報に対応づけてトークン格納メモリ201に記憶されている蓄積トークン値にのみ、所定のトークン値を追加する。言い換えると、トークン値追加処理部222は、後述する追加対象管理部233によって選択されたキュー101にのみ、トークン値を追加する。
具体的には、トークン値追加処理部222は、後述する追加対象管理部233によって選択されて追加対象情報記憶部221に「追加対象キュー」として記憶されているキュー情報に対応付けられたキュー101のみについて、トークン値を追加する指示をアクセス管理部210に指示し、アクセス管理部210が、トークン値を追加する。
また、トークン値追加処理部222は、後述する追加対象管理部233によって選択されたキュー101に、所定のトークン値の内、後述する追加割合算出部234によって算出された追加割合に相当するトークン値を追加する指示をアクセス管理部210に指示する。具体的には、トークン値追加処理部222は、後述する追加割合算出部234によって算出されて追加対象情報記憶部221に記憶されている「追加割合」を読み出し、読出した「追加割合」を追加トークン値に掛けた値を、キュー101に追加する指示をアクセス管理部210に指示する。
例えば、図5の例を用いて説明すると、後述する追加対象管理部233によって、キュー「♯0」と、キュー「♯1」と、キュー「♯4」と、キュー「♯7」とが選択された場合に、トークン値追加処理部222は、図6に示すように、キュー「♯0」と、キュー「♯1」と、キュー「♯4」と、キュー「♯7」とにのみ、所定のトークン値を追加する(トークン制御を行う)。
具体的に例をあげて説明すると、トークン値追加処理部222は、追加対象情報記憶部221に記憶されている「追加対象キュー」の内一つのキュー101を選択すると(例えば、キュー「♯0」を選択すると)、当該キュー101を識別するキュー情報に対応付けられた追加トークン値をトークン格納メモリ201から読み出す指示を、アクセス管理部210に指示し、アクセス管理部210から追加トークン値が伝達されて取得する。例えば、トークン値追加処理部222は、追加トークン値が「12500byte」であると取得する(図4参照)。
ここで、追加割合が「1/2」であり、トークン値を追加するキュー101に対応付けられた追加トークン値が「12500byte」である場合を用いて、具体的に例をあげて説明する。トークン値追加処理部222は、追加対象となるキュー101を識別するキュー情報に対応付けられた追加トークン値が「12500byte」であると取得すると、実際に追加するトークン値を算出する。例えば、トークン値追加処理部222は、追加割合が「1/2」であるので、「12500byte」の「1/2」に相当する「6250byte」を算出する(図7参照)。
そして、トークン値追加処理部222は、追加対象となるキュー101に実際に追加するトークン値を追加する指示をアクセス管理部210に指示し、トークン値が追加された蓄積トークン値をアクセス管理部210から伝達されて取得し、後述する蓄積トークン値上限キュー管理部232に蓄積トークン値を伝達する。また、トークン値追加処理部222は、同様の処理を、追加対象キュー101すべてについて、一つずつ順番に実行する。
この点について、さらに説明を行う。トークン値追加処理部222は、後述する追加対象管理部233によって選択されたキュー101にのみ、トークン値を追加する処理を行い、一方、後述する追加対象管理部233によって選択されていないキュー101には、トークン値を追加する処理を行わない。
例えば、説明の便宜上、パケット伝送装置が、8個のキュー(キュー「♯0」からキュー「♯7」)を備える場合を例に説明すると、トークン値追加処理部222は、キュー「♯0」と、キュー「♯1」と、キュー「♯4」と、キュー「♯7」とには、トークン値を追加する処理を行い、一方、キュー「♯2」と、キュー「♯3」と、キュー「♯5」と、キュー「♯6」とには、トークン値を追加する処理を行なわず、処理をスキップする。
すなわち、開示のパケット伝送装置では、トークン値追加処理部222は、後述する追加対象管理部233によって選択されたキュー101についてのみ、アクセス管理部210を介して、追加トークン値を読出し、トークン値を追加し、蓄積トークン値を取得し、また、後述する蓄積トークン値上限キュー管理部232に蓄積トークン値と、トークン値が追加されたキュー101を識別するキュー情報とを伝達するという一連の処理を実行する。
言い換えると、開示のパケット伝送装置では、トークン値追加処理部222は、後述する追加対象管理部233によって選択されていないキュー101については、追加トークン値として「0」を追加するという一連の処理すら実行しない。例えば、トークン値追加処理部222は、当該選択されていないキュー101については、追加処理を行う対象のキュー101として選択せず、追加トークン値として「0」を追加するという処理も実行しない。
ここで、追加割合に相当するトークン値のみを追加する意義について説明する。上記したように、トークン値追加処理部222は、後述する追加対象管理部233によって選択されたキュー101にのみ、トークン値を追加する処理を実行するので、開示のパケット伝送装置においては、すべてのキュー101に対してトークン値を追加する手法と比較して、トークン追加周期が短くなる。
このため、すべてのキュー101に対してトークン値を追加する場合におけるトークン追加周期に対応する追加トークン値(または、トークン追加周期が変更された場合に、変更前のトークン追加周期に対応する追加トークン値)を用いて、キュー101それぞれに対してトークン値を追加すると、パケットの出力レートを一定に制御できない。
例えば、トークン追加周期が短くなった場合に、トークン値追加処理部222が、トークン追加周期が短くなる前に設定された追加トークン値を追加すると、キュー101それぞれには、トークン追加周期が短くなる前と比較して、多くのトークン値が追加されることになり、バースト長が増加し、パケット伝送装置は、出力レートを平滑化できない。また、例えば、トークン追加周期が長くなった場合に、トークン値追加処理部222が、トークン追加周期が長くなる前に設定された追加トークン値を追加すると、キュー101それぞれには、トークン追加周期が長くなる前と比較して、少ないトークン値が追加されることになり、パケット伝送装置は、出力レートを平滑化できない。
このため、開示のパケット伝送装置では、トークン追加周期を変更する場合に、後述する追加割合算出部234が、追加トークン値を変更する割合を算出し、トークン値追加処理部222が、追加トークン値の内当該追加割合に相当する値のみを追加することにより、パケットの出力レートを一定に制御することが可能となる。
トークン値減算処理部223は、送受信部100から、キュー101に格納されたパケットが出力される場合に(例えば、送受信部100から、パケットが出力されたことが伝達されると、)、当該パケットが出力されたキュー101の蓄積トークン値から、出力されたパケットのパケット長を減算する。具体的には、トークン値減算処理部223は、蓄積トークン値から、出力されたパケットのパケット長を減算する指示をアクセス管理部210に指示し、アクセス管理部210が、蓄積トークン値からトークン値を減算する。
例えば、パケットが出力されたキュー101情報に対応付けられた蓄積トークン値が「300byte」であり、出力されたパケットのパケット長が「200byte」である場合を用いて、具体的に説明すると、トークン値減算処理部223は、蓄積トークン値「300byte」から、パケット長「200byte」を減算する指示をアクセス管理部210に指示し、アクセス管理部210が、蓄積トークン値を「100byte」にする。
また、トークン値減算処理部223は、減算した蓄積トークン値をアクセス管理部210から伝達されて取得し、後述する蓄積トークン値上限キュー管理部232に減算された蓄積トークン値と、トークン値が減算されたキュー101を識別するキュー情報とを伝達する。
追加対象制御部230は、追加対象となるキュー101に関する処理を実行する制御部であり、特に本発明に密接に関連するものとしては、未使用キュー管理部231と、蓄積トークン値上限キュー管理部232と、追加対象管理部233と、追加割合算出部234と、を備える。なお、未使用キュー管理部231と蓄積トークン値上限キュー管理部232とは、特許請求の範囲に記載の「取得手段」に対応する。また、追加対象管理部233は、特許請求の範囲に記載の「選択手段」に対応する。また、追加割合算出部234は、特許請求の範囲に記載の「割合算出手段」に対応する。
未使用キュー管理部231は、パケット伝送装置において用いられていないキュー101を識別するキュー情報を取得する。例えば、未使用キュー管理部231は、使用キュー情報入力部102から伝達されることで、未使用なキューを識別するキュー情報を取得する。また、未使用キュー管理部231は、伝達されて取得した未使用なキューを識別するキュー情報を、後述する追加対象管理部233に伝達する。
ここで、未使用なキューか、使用しているキューかは、例えば、パケット伝送装置を使用する使用者による設定次第であり、未使用キュー管理部231は、パケット伝送装置を使用する使用者による設定(未使用なキューとする設定や、使用するキューとする設定など)が伝達されて取得すると、後述する追加対象管理部233に伝達する。
蓄積トークン値上限キュー管理部232は、蓄積トークン値が所定の上限値を超過しているキュー101を識別するキュー情報を取得する。例えば、蓄積トークン値上限キュー管理部232は、トークン管理部220が、トークン格納メモリ201にアクセスする毎に、トークン管理部220から伝達されることで、蓄積トークン値が所定の上限値を超過しているキュー101を識別するキュー情報を取得し、また、蓄積トークン値が所定の上限値を超過していたが、所定の上限値を下回ったキュー101を識別するキュー情報を取得する。また、取得したキュー情報を後述する追加対象管理部233に伝達する。
具体的な一例をあげて説明すると、例えば、蓄積トークン値上限キュー管理部232は、トークン値追加処理部222がトークン値を追加し、トークン値が追加された蓄積トークン値がトークン値追加処理部222から伝達される毎に、伝達された蓄積トークン値が予め設定されている所定の上限を超えているかいないかを判別し、所定の上限を超えている場合に、トークン値が追加されたキュー101を識別するキュー情報を取得する。また、取得したキュー情報を後述する追加対象管理部233に伝達する。
また、具体的な一例をあげて説明すると、蓄積トークン値上限キュー管理部232は、トークン値減算処理部223によって、蓄積トークン値が減算されると、蓄積トークン値が減算されたキューについて、蓄積トークン値が所定の上限を超えているキュー101ではないと判定する。そして、蓄積トークン値上限キュー管理部232は、この蓄積トークン値を減算されたキュー101を識別するキュー情報が、蓄積トークン値が上限値に達しているキューを識別するキュー情報として後述する追加対象管理部233に送信していた場合に、このキュー101が、蓄積トークン値が上限値に達しているキュー101ではなくなった旨の情報を、後述する追加対象管理部233に伝達する。
追加対象管理部233は、未使用キュー管理部231や蓄積トークン値上限キュー管理部232からキュー情報が伝達されると、パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキュー(例えば、当該キューを識別するキュー情報)を選択する。
例えば、追加対象管理部233は、未使用キュー管理部231や蓄積トークン値上限キュー管理部232からキュー情報が伝達され、追加対象となるキュー101に変更があると、未使用キュー管理部231や蓄積トークン値上限キュー管理部232から伝達されたキュー情報を用いて、未使用なキュー101および蓄積トークン値が上限値に達しているキュー101以外のキューを識別するキュー情報すべてを、パケット伝送装置が備える複数のキューを識別するキュー情報から選択する。また、追加対象管理部233は、選択したキュー情報を、追加対象情報記憶部221に記憶させる。
蓄積トークン値上限キュー管理部232によって、蓄積トークン値が上限値に達しているキュー101を識別するキュー情報として、「♯2」と、「♯3」と、「♯5」と、「♯6」とが取得された場合を例に用いて、具体的に説明すると、追加対象管理部233は、「♯2」と「♯3」と「♯5」と「♯6」と以外のキュー情報として、例えば、「♯0」と「♯1」と「♯4」と「♯7」とを選択する。また、追加対象管理部233は、選択した「♯0」と「♯1」と「♯4」と「♯7」とを、追加対象情報記憶部221の「追加対象キュー」に記憶させる。
また、追加対象管理部233は、取得したキュー情報の数を、後述する追加割合算出部234に伝達し、後述する追加割合算出部234から伝達された追加割合を追加対象情報記憶部221に記憶させる。
例えば、追加対象管理部233は、選択したキューが「♯0」と「♯1」と「♯4」と「♯7」とである場合に、キューが4個であると後述する追加割合算出部234に伝達し、後述する追加割合算出部234から追加割合「N」が伝達された場合に、追加割合「N」を追加対象情報記憶部221に記憶させる。
追加割合算出部234は、追加対象管理部233によってキュー101が選択され、選択されたキュー101の数が伝達されると、複数のキューの内選択された当該キューが占める割合(追加割合)を算出する。ここで、図7を用いて、追加割合算出部234について説明する。また、追加割合算出部234は、算出した追加割合を、追加対象管理部233に伝達する。
なお、図7は、トークンを追加するキューの数を示す「トークン値追加制御必要キュー数」と、「トークン追加周期」と、「追加トークン値」と、「追加割合」との関係を示したものである。例えば、パケット伝送装置が備える1024個のキューすべてに対してトークン値を追加する場合には、トークン値追加制御必要キュー数が「1024」であり、トークン追加周期が「100μs」になり、追加トークン値が「12500byte」となり、追加割合「1」となる。
ここで、例えば、追加割合算出部234は、図7に示すように、追加対象管理部233によって選択されたキュー数が、「512」であった場合には、キュー数が「1/2」になっているので、トークン追加周期が「50μs」(「100μs」の「1/2」の値)になると算出し、追加トークン値が「6250byte」(「12500byte」の「1/2」の値)になると算出し、追加割合が「1/2」になると算出する。また、追加割合算出部234は、追加割合が「1/2」を、追加割合算出部234に伝達する。
なお、ここでは、追加割合算出部234が、トークン追加周期と追加トークン値と追加割合とを算出する手法について説明したが、本発明はこれに限定されるものではなく、追加割合算出部234は、例えば、追加割合のみを算出してもよい。
なお、このパケット伝送装置は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、PHS端末、移動体通信端末またはPDAなどの情報処理装置に、上記した使用キュー情報入力部102やトークン制御回路部200、トークン格納メモリ201、アクセス管理部210、トークン管理部220、追加対象情報記憶部221、トークン値追加処理部222、トークン値減算処理部223、追加対象制御部230、未使用キュー管理部231、蓄積トークン値上限キュー管理部232、追加対象管理部233、追加割合算出部234の各機能を搭載することによって実現することもできる。
[パケット伝送装置による処理]
次に、図8〜図10を用いて、パケット伝送装置による処理を説明する。ここでは、まず、トークン値を追加する処理の流れについて説明し、その後、トークン値を減算する処理の流れについて説明し、追加対象制御部の処理の流れを説明する。なお、図8は、実施例1におけるトークン値追加処理の流れを示すフローチャートである。図9は、実施例1におけるトークン値減算処理の流れを示すフローチャートである。図10は、実施例1における追加対象制御部の処理の流れを示すフローチャートである。
[トークン値追加処理]
図8に示すように、開示のパケット伝送装置では、トークン値追加処理部222が追加対象となるキューを1つ選択すると(ステップS101肯定)、トークン値追加処理部222は、選択されたキュー101を識別するキュー情報に対応付けられた追加トークン値を読み出す(ステップS102)。例えば、トークン値追加処理部222は、追加対象情報記憶部221に記憶されている「追加対象キュー」の内一つを選択すると、選択したキュー101を識別するキュー情報に対応付けられた追加トークン値を読み出す指示をアクセス管理部210に指示し、アクセス管理部210がトークン格納メモリ201から読み出した追加トークン値(例えば、「12500byte」)を取得する。
図4参照)。
そして、トークン値追加処理部222は、実際に追加するトークン値を算出する(ステップS103)。例えば、トークン値追加処理部222は、追加割合算出部234によって算出されて追加対象情報記憶部221に記憶されている追加割合が「1/2」である場合に、「12500byte」の「1/2」に相当する「6250byte」を算出する(図7参照)。
そして、トークン値追加処理部222は、トークン値を追加する(ステップS104)。例えば、トークン値追加処理部222は、実際に追加するトークン値として算出した「6250byte」を、追加対象として選択されたキュー101に追加する指示をアクセス管理部210に指示し、アクセス管理部210が、トークン格納メモリ201の蓄積トークン値にトークン値を追加する。
そして、トークン値追加処理部222は、トークン値が追加された蓄積トークン値を、蓄積トークン値上限キュー管理部232に伝達する(ステップS105)。例えば、トークン値追加処理部222は、蓄積トークン値をアクセス管理部210から取得し、取得した蓄積トークン値を蓄積トークン値上限キュー管理部232に伝達する。
なお、トークン値追加処理部222は、上記したステップS101からS105までの処理を、追加対象情報記憶部221に記憶されている「追加対象キュー」すべてに対して順番にトークン値を追加する処理を実行する。また、トークン値追加処理部222は、すべての「追加対象キュー」に対して上記したステップS101からS105までの処理を実行した後には、追加対象情報記憶部221に記憶されている「追加対象キュー」すべてに対して順番にトークン値を追加する処理を繰り返し、トークン値を追加する処理を継続する。
[トークン値減算処理]
図9に示すように、開示のパケット伝送装置では、キュー101からパケットが出力されると(ステップS201肯定)、トークン値減算処理部223は、パケットが出力されたキュー101の蓄積トークン値から、出力されたパケットのパケット長分減算する(ステップS202)。例えば、パケットが出力されたキュー101情報に対応付けられた蓄積トークン値が「300byte」であり、出力されたパケットのパケット長が「200byte」である場合に、トークン値減算処理部223は、蓄積トークン値「300byte」からパケット長「200byte」を減算する指示をアクセス管理部210に指示し、アクセス管理部210が、蓄積トークン値を「100byte」にする。
また、トークン値減算処理部223は、減算した蓄積トークン値を、蓄積トークン値上限キュー管理部232に伝達する(ステップS203)。例えば、トークン値減算処理部223は、減算された蓄積トークン値をアクセス管理部210から取得し、取得した蓄積トークン値を蓄積トークン値上限キュー管理部232に伝達する。
[追加対象制御部の処理]
図10に示すように、開示の追加対象制御部230では、キュー101に変更があると(ステップS301肯定)、追加対象管理部233は、1024個のキュー101の内、追加対象となるキュー101を選択する(ステップS302)。つまり、未使用キュー管理部231や蓄積トークン値上限キュー管理部232によってキュー情報が取得され、未使用キュー管理部231や蓄積トークン値上限キュー管理部232から追加対象管理部233に伝達されると、追加対象管理部233は、パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキュー(例えば、当該キューを識別するキュー情報)を選択する。
そして、追加割合算出部234は、追加割合を算出する(ステップS303)。つまり、追加割合算出部234は、追加対象管理部233によって追加対象となるキューが選択されると、複数のキューの内選択された当該キューが占める割合を算出し、算出した追加割合を追加対象管理部233に伝達する。
そして、追加対象管理部233は、選択したキュー情報(追加対象キュー)と、追加割合算出部234から伝達された追加割合とを、トークン管理部220に伝達する(ステップS304)。例えば、追加対象管理部233は、選択したキュー情報と追加割合とを、追加対象情報記憶部221に記憶させる。
[実施例1の効果]
上記したように、実施例1によれば、キューを識別するキュー情報と当該キューの蓄積トークン値とを対応づけて記憶し、未使用なキューを識別するキュー情報や、蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得し、キュー情報が取得されると、パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択し、複数のキューそれぞれに所定のトークン値を追加する際に、選択されたキューを識別するキュー情報に対応づけて記憶されている蓄積トークン値にのみ所定のトークン値を追加するので、出力レートを適切に平滑化することが可能である。
具体的には、図11に示すように、開示のパケット伝送装置では、トークン管理部220が、トークン格納メモリ201を用いてトークン追加処理を行う際に、追加対象となるキュー101を選択する追加対象制御部230を備えるので、トークン値追加処理部222が、後述する追加対象管理部233によって選択されたキュー101にのみ、トークン値を追加する処理を実行し、トークン追加周期を短くすることが可能である。
例えば、図12の(1)に示すような、トークン制御処理を行う一つの回路が、担当するすべてのキュー101に対してトークン値を追加し、キュー数の増加に伴って、追加トークン値を増加する従来の手法では、蓄積トークン値が所定の上限値に達しているキューについても、追加トークン値として「0」を追加するという処理を行っていた。
このような従来の手法とは異なり、実施例1では、キュー「♯2」と、キュー「♯3」と、キュー「♯5」と、キュー「♯6」とに、トークン値を追加しない場合に、図13の(1)に示すように、すべてのキューに対して追加する処理を行うのではなく(トークン値を追加しないキューについても、追加トークン値として「0」を追加する処理を実行するのではなく)、図13の(2)に示すように、キュー「♯2」と、キュー「♯3」と、キュー「♯5」と、キュー「♯6」とについて処理をスキップし、キュー「♯0」と、キュー「♯1」と、キュー「♯4」と、キュー「♯7」とにのみ、トークン値を追加する処理を行う。
これにより、一度に追加する追加トークン値を増加する従来の手法と比較して、一度に追加する追加トークン値を増加させることなく、出力レートを適切に平滑化することが可能である。
また、図12の(2)に示すように、キュー数の増加に伴って複数の回路を用いることにより、トークン追加周期を短くする従来の手法と比較して、本実施例では、複数の回路を用いることなく(回路規模を増大させずに)、出力レートを適切に平滑化することが可能である。
また、実施例1によれば、キュー101が選択されると、複数のキュー101の内選択された当該キュー101が占める割合(追加割合)を算出し、選択されたキュー101に、所定のトークン値の内、算出された追加割合に相当するトークン値を追加するので、パケットの出力レートを一定に制御することが可能となる。
例えば、トークン値追加処理部222は、追加対象管理部233によって選択されたキュー101にのみ、トークン値を追加する処理を実行するので、開示のパケット伝送装置においては、すべてのキュー101に対してトークン値を追加する手法と比較して、トークン追加周期が短くなる。
このため、従来の手法のままでは、すべてのキュー101に対してトークン値を追加する際のトークン追加周期に対応する追加トークン値(または、トークン追加周期が変更された場合に、変更前のトークン追加周期に対応する追加トークン値)を用いて、キュー101それぞれに対してトークン値を追加すると、パケットの出力レートを一定に制御できない。
例えば、従来の手法のままでは、トークン追加周期が短くなった場合に、トークン値追加処理部222が、トークン追加周期が短くなる前に設定された追加トークン値を追加すると、キュー101それぞれには、トークン追加周期が短くなる前と比較して、多くのトークン値が追加されることになり、バースト長が増加し、パケット伝送装置は、出力レートを平滑化できない。また、例えば、トークン追加周期が長くなった場合に、トークン値追加処理部222が、トークン追加周期が長くなる前に設定された追加トークン値を追加すると、キュー101それぞれには、トークン追加周期が長くなる前と比較して、少ないトークン値が追加されることになり、パケット伝送装置は、出力レートを平滑化できない。
このような場合にも、実施例1では、トークン追加周期を変更する場合に、追加割合算出部234が、追加トークン値を変更する割合を算出し、トークン値追加処理部222が、追加トークン値の内当該追加割合に相当する値のみを追加することにより、パケットの出力レートを一定に制御することが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下にその他の実施例について説明する。
[実施例の組み合わせについて]
実施例1では、未使用なキューなどに対しての処理をスキップする手法と、トークン追加周期が変化した際に、追加するトークン値を変更する手法とを併せて実行する場合について説明したが、本発明はこれに限定されるものではなく、未使用なキューなどに対しての処理をスキップする手法のみを実行してもよい。
[システム構成]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図3〜図10、図14)については、特記する場合を除いて任意に変更することができる。
[プログラム]
上記実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図14を用いて、上記の実施例1に示したパケット伝送装置と同様の機能を有するパケット伝送プログラムを実行するコンピュータの一例を説明する。なお、図14は、実施例1に係るパケット伝送装置のプログラムを説明するための図である。
図14に示すように、実施例1におけるパケット伝送装置3000は、操作部3001、マイク3002、スピーカ3003、キュー3004、ディスプレイ3005、通信部3006、CPU3010、ROM3011、HDD3012、RAM3013をバス3009などで接続して構成されている。
ROM3011には、上記の実施例1で示した送受信部100と、使用キュー情報入力部102と、アクセス管理部210と、トークン管理部220と、トークン値追加処理部222と、トークン値減算処理部223と、追加対象制御部230と、未使用キュー管理部231と、蓄積トークン値上限キュー管理部232と、追加対象管理部233と、追加割合算出部234と同様の機能を発揮する制御プログラム、つまり、同図に示すように、送受信プログラム3011aと、使用キュー情報入力プログラム3011bと、アクセス管理プログラム3011cと、トークン管理プログラム3011dと、トークン値追加処理プログラム3011eと、トークン値減算処理プログラム3011fと、追加対象制御プログラム3011gと、未使用キュー管理プログラム3011hと、蓄積トークン値上限キュー管理プログラム3011iと、追加対象管理プログラム3011jと、追加割合算出プログラム3011kとが予め記憶されている。なお、これらのプログラム3011a〜3011kについては、図3に示したパケット伝送装置の各構成要素と同様、適宜統合または分離してもよい。
そして、CPU3010が、これらのプログラム3011a〜3011kをROM3011から読み出して実行することにより、図14に示すように、各プログラム3011a〜3011kについては、送受信プロセス3010aと、使用キュー情報入力プロセス3010bと、アクセス管理プロセス3010cと、トークン管理プロセス3010dと、トークン値追加処理プロセス3010eと、トークン値減算処理プロセス3010fと、追加対象制御プロセス3010gと、未使用キュー管理プロセス3010hと、蓄積トークン値上限キュー管理プロセス3010iと、追加対象管理プロセス3010jと、追加割合算出プロセス3010kとして機能するようになる。なお、各プロセス3010a〜3010kは、図3に示した、送受信部100と、使用キュー情報入力部102と、アクセス管理部210と、トークン管理部220と、トークン値追加処理部222と、トークン値減算処理部223と、追加対象制御部230と、未使用キュー管理部231と、蓄積トークン値上限キュー管理部232と、追加対象管理部233と、追加割合算出部234とにそれぞれ対応する。
そして、HDD3012には、トークン格納テーブル3012aと、追加対象情報テーブル3012bとが設けられている。なお、各テーブル3012a〜3012bは、図3に示した、トークン格納メモリ201と、追加対象情報記憶部221とにそれぞれ対応する。
そして、CPU3010は、トークン格納テーブル3012aと、追加対象情報テーブル3012bとを読み出してRAM3013に格納し、RAM3013に格納されたトークン格納データ3013aと、追加対象情報データ3013bとを用いて、パケット伝送プログラムを実行する。
[その他]
なお、本実施例で説明したパケット伝送装置は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算するパケット伝送装置であって、前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶する記憶手段と、前記パケット伝送装置において用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得手段と、前記取得手段によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択手段と、複数のキューそれぞれに所定のトークン値を追加する際に、前記選択手段によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶手段に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加手段と、を備えたことを特徴とするパケット伝送装置。
(付記2)前記選択手段によって前記キューが選択されると、前記複数のキューの内選択された当該キューが占める割合を算出する割合算出手段をさらに備え、前記追加手段は、前記選択手段によって選択された前記キューに、前記所定のトークン値の内、前記割合算出手段によって算出された前記割合に相当するトークン値を追加することを特徴とする付記1に記載のパケット伝送装置。
(付記3)パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算するパケット伝送方法であって、前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶部に記憶する記憶工程と、用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得工程と、前記取得工程によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択工程と、複数のキューそれぞれに所定のトークン値を追加する際に、前記選択工程によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶部に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加工程と、を含んだことを特徴とするパケット伝送方法。
(付記4)パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算する制御方法をコンピュータに実行させるパケット伝送プログラムであって、前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶部に記憶する記憶手順と、用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得手順と、前記取得手順によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択手順と、複数のキューそれぞれに所定のトークン値を追加する際に、前記選択手順によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶部に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加手順と、をコンピュータに実行させることを特徴とするパケット伝送プログラム。
実施例1における前提技術の説明に用いるための図である。 実施例1における前提技術の説明に用いるための図である。 実施例1に係るパケット伝送装置の概要および特徴を示すための図である。 実施例1に係るパケット伝送装置の構成を示すためのブロック図である。 実施例1におけるトークン格納メモリを説明するための図である。 実施例1における追加対象情報記憶部を説明するための図である。 実施例1におけるトークン値追加処理部を説明するための図である。 実施例1における追加割合算出部を説明するための図である。 実施例1におけるトークン値追加処理の流れを示すフローチャートである。 実施例1におけるトークン値減算処理の流れを示すフローチャートである。 実施例1における追加対象制御部の処理の流れを示すフローチャートである。 実施例1に係るパケット伝送装置の効果を説明するための図である。 実施例1に係るパケット伝送装置の効果を説明するための図である。 実施例1に係るパケット伝送装置の効果を説明するための図である。 実施例1に係るパケット伝送装置のプログラムを説明するための図である。 従来技術を説明するための図である。
符号の説明
100 送受信部
101 キュー
102 使用キュー情報入力部
200 トークン制御回路部
201 トークン格納メモリ
210 アクセス管理部
220 トークン管理部
221 追加対象情報記憶部
222 トークン値追加処理部
223 トークン値減算処理部
230 追加対象制御部
231 未使用キュー管理部
232 蓄積トークン値上限キュー管理部
233 追加対象管理部
234 追加割合算出部

Claims (4)

  1. パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算するパケット伝送装置であって、
    前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶する記憶手段と、
    前記パケット伝送装置において用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得手段と、
    前記取得手段によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択手段と、
    複数のキューそれぞれに所定のトークン値を追加する際に、前記選択手段によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶手段に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加手段と、
    を備えたことを特徴とするパケット伝送装置。
  2. 前記選択手段によって前記キューが選択されると、前記複数のキューの内選択された当該キューが占める割合を算出する割合算出手段をさらに備え、
    前記追加手段は、前記選択手段によって選択された前記キューに、前記所定のトークン値の内、前記割合算出手段によって算出された前記割合に相当するトークン値を追加することを特徴とする請求項1に記載のパケット伝送装置。
  3. パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算するパケット伝送方法であって、
    前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶部に記憶する記憶工程と、
    用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得工程と、
    前記取得工程によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択工程と、
    複数のキューそれぞれに所定のトークン値を追加する際に、前記選択工程によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶部に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加工程と、
    を含んだことを特徴とするパケット伝送方法。
  4. パケットを格納する複数のキューそれぞれに所定のトークン値を追加しつつ割り当て、当該キューに割り当てられたトークン値の蓄積を示す蓄積トークン値が当該キューに格納されたパケットのパケット長より多い場合に、当該キューから当該パケットを出力し、当該キューからパケットが出力される場合に、当該パケットが出力されたキューの当該蓄積トークン値から当該パケット長を減算する制御方法をコンピュータに実行させるパケット伝送プログラムであって、
    前記キューを識別するキュー情報と当該キューの前記蓄積トークン値とを対応づけて記憶部に記憶する記憶手順と、
    用いられていない前記キューを識別する前記キュー情報、および/または、前記蓄積トークン値が所定の上限値を超過している当該キューを識別する当該キュー情報を取得する取得手順と、
    前記取得手順によって前記キュー情報が取得されると、前記パケット伝送装置が備える複数のキューの内、取得された当該キュー情報にて識別されるキュー以外のキューを選択する選択手順と、
    複数のキューそれぞれに所定のトークン値を追加する際に、前記選択手順によって選択された前記キューを識別する前記キュー情報に対応づけて前記記憶部に記憶されている前記蓄積トークン値にのみ前記所定のトークン値を追加する追加手順と、
    をコンピュータに実行させることを特徴とするパケット伝送プログラム。
JP2008041848A 2008-02-22 2008-02-22 パケット伝送装置、パケット伝送方法およびパケット伝送プログラム Withdrawn JP2009200947A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008041848A JP2009200947A (ja) 2008-02-22 2008-02-22 パケット伝送装置、パケット伝送方法およびパケット伝送プログラム
US12/354,148 US20090213734A1 (en) 2008-02-22 2009-01-15 Packet transmission device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008041848A JP2009200947A (ja) 2008-02-22 2008-02-22 パケット伝送装置、パケット伝送方法およびパケット伝送プログラム

Publications (1)

Publication Number Publication Date
JP2009200947A true JP2009200947A (ja) 2009-09-03

Family

ID=40998186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008041848A Withdrawn JP2009200947A (ja) 2008-02-22 2008-02-22 パケット伝送装置、パケット伝送方法およびパケット伝送プログラム

Country Status (2)

Country Link
US (1) US20090213734A1 (ja)
JP (1) JP2009200947A (ja)

Cited By (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 パケット転送装置およびパケット転送方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729467B2 (en) * 2009-05-12 2017-08-08 Qualcomm Incorporated Method and apparatus for managing congestion in a wireless system
JP5598260B2 (ja) * 2009-11-30 2014-10-01 富士通株式会社 パケット伝送装置、パケット伝送方法及びパケット伝送プログラム
JP5497541B2 (ja) * 2010-06-04 2014-05-21 株式会社メガチップス 通信制御装置およびシェイピング装置
JP5817606B2 (ja) * 2012-03-19 2015-11-18 富士通株式会社 負荷分散ポリシング機能を含むポリサ
CN103647729B (zh) * 2013-11-19 2017-01-04 华为技术有限公司 一种基于令牌桶的延迟请求处理方法及装置
JP6281338B2 (ja) * 2014-03-13 2018-02-21 富士通株式会社 伝送装置および伝送方法
JP2017041807A (ja) * 2015-08-20 2017-02-23 富士通株式会社 帯域制御装置及び帯域制御方法
JP2017041808A (ja) * 2015-08-20 2017-02-23 富士通株式会社 通信装置、ネットワーク管理装置、及びネットワークシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925055B1 (en) * 2001-03-05 2005-08-02 Advanced Micro Devices, Inc. Systems and methods for traffic shaping
KR100446516B1 (ko) * 2002-04-24 2004-09-04 삼성전자주식회사 패킷 교환망에서의 트래픽 감시 방법
JP3961000B2 (ja) * 2005-05-26 2007-08-15 株式会社日立コミュニケーションテクノロジー パケット転送装置及びネットワークシステム
JP4648833B2 (ja) * 2005-12-28 2011-03-09 富士通株式会社 帯域管理装置
JP4659654B2 (ja) * 2006-03-23 2011-03-30 富士通株式会社 シェーパ回路
TW200824350A (en) * 2006-11-23 2008-06-01 Realtek Semiconductor Corp Network flow control device and method thereof

Cited By (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 パケット転送装置およびパケット転送方法

Also Published As

Publication number Publication date
US20090213734A1 (en) 2009-08-27

Similar Documents

Publication Publication Date Title
JP2009200947A (ja) パケット伝送装置、パケット伝送方法およびパケット伝送プログラム
US8412864B2 (en) Information processing apparatus and information processing method
US20140075036A1 (en) Queue Scheduling Method and Apparatus
JP5174667B2 (ja) 複数のインタフェイスを備える端末におけるリソースの最適化された管理方法
CN109982159A (zh) 在线播放流媒体的方法和终端
US11729106B2 (en) Service quality control device, method, and program
WO2015125560A1 (ja) 情報処理装置、音声対話装置、および制御プログラム
JP2009217750A (ja) コンピュータシステム、入出力優先度制御方法、及びプログラム
KR20150082781A (ko) 동적 라우팅 제어 방법 및 상기 방법을 수행하는 사용자 단말
KR100889730B1 (ko) 직접 메모리 접근 제어 방법 및 장치
CN110908604B (zh) 一种请求处理时延调整方法、装置、电子设备及存储介质
CN113468442A (zh) 资源位流量的分发方法、计算设备及计算机存储介质
JP5715458B2 (ja) 情報処理システム、調停方法
JP2021082874A (ja) モデル化方法、モデル化プログラム及び情報処理装置
JP2005115620A (ja) タスク管理方法及びタスク管理手段を有する電子機器
JP2010238112A (ja) 通信端末および通信制御方法
JP4086676B2 (ja) データ転送装置
JP2005244417A (ja) 帯域制御装置、帯域制御方法および帯域制御プログラム
JP4411980B2 (ja) パケット送出の順序制御プログラム及び方法
JP2010109428A (ja) 帯域制御装置及び帯域制御方法ならびにそのプログラム、帯域制御システム
CN111225023B (zh) 一种缓存方法及装置
JP2012060524A (ja) 再生装置、再生方法、及びプログラム
JP4601657B2 (ja) トラヒックシェーピング装置および方法
CN109413122B (zh) 一种数据处理方法、网络处理器及计算机存储介质
JP6589798B2 (ja) 音制御装置及びその制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110510