JP4279281B2 - パケット通信品質制御装置およびパケット通信品質制御方法 - Google Patents

パケット通信品質制御装置およびパケット通信品質制御方法 Download PDF

Info

Publication number
JP4279281B2
JP4279281B2 JP2005300276A JP2005300276A JP4279281B2 JP 4279281 B2 JP4279281 B2 JP 4279281B2 JP 2005300276 A JP2005300276 A JP 2005300276A JP 2005300276 A JP2005300276 A JP 2005300276A JP 4279281 B2 JP4279281 B2 JP 4279281B2
Authority
JP
Japan
Prior art keywords
packet
input
output
transmission
communication quality
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
Application number
JP2005300276A
Other languages
English (en)
Other versions
JP2007110515A (ja
Inventor
享邦 西田
健治 川合
恵一 小池
修一 茶木
徹夫 林
勝一 大山
裕之 野内
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.)
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Original Assignee
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Electronics Corp, Nippon Telegraph and Telephone Corp filed Critical NTT Electronics Corp
Priority to JP2005300276A priority Critical patent/JP4279281B2/ja
Publication of JP2007110515A publication Critical patent/JP2007110515A/ja
Application granted granted Critical
Publication of JP4279281B2 publication Critical patent/JP4279281B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、パケット通信技術に関し、特に、ネットワークを介して受信した通信パケットを送信する際の通信品質を制御するパケット通信品質制御装置およびパケット通信品質制御方法に関する。
データ通信以外に音声電話やTV電話など、多様な通信サービスがインターネットを介して提供されている。このような多様化に伴い、QoS(Quality of Service)と呼ばれる通信品質制御が必要となっている。このQoS制御は、多様に通信制御を行う必要があるため、プログラム制御によって行われてきた。また、一部の処理をハードウェアで行うことで、プログラム制御の問題であった処理速度を向上させるようとするものもある(例えば、非特許文献1参照)。
「簡単・快適・安全なネットワークサービスを実現するホームゲートウェイ(HIKARI GATE)」、NTT技術ジャーナル、2003 Vol.15 No.5 pp.18−21
しかしながら、従来技術では、パケットが入力されるキュー、パケットの通信品質制御を行うパケットスケジューラおよびパケットを外部に送信する送信部等、装置の各構成部品の接続が固定されているため、通信品質の制御のための調整または変更の自由度が小さいという問題があった。
本発明は、このような事情を考慮してなされたものであり、その目的は、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるパケット通信品質制御装置およびパケット通信品質制御方法を提供することにある。
上述した課題を解決するために、本発明は、入力された通信パケットの通信品質を制御して出力するパケット通信品質制御装置において、入力された通信パケットを示すパケットデータを記憶する記憶手段と、前記記憶手段に記憶されたパケットデータに関する情報であるパケット情報を順次記憶する複数のキューと、前記複数のキューに記憶されたパケット情報を所定の順序に基づいて読み出して出力する複数の重み付け公平制御手段と、前記複数の重み付け公平制御手段から出力されたパケット情報で特定されるパケットデータを前記記憶手段から読み出し、そのパケットデータに基づいて通信パケットを生成して送信する送信手段と、前記複数のキューと、前記複数の重み付け公平制御手段と、前記送信手段とを収容するとともに、これら各部の入出力を相互に切替可能に接続する経路切替手段とを備え、前記キューは、記憶する前記パケット情報とこのパケット情報に対応するパケットデータの出力要求とを前記経路切替手段を介して対応する接続相手へ出力し、前記重み付け公平制御手段は、入力の各々に対応する複数のカウンタと、該複数のカウンタへの重みの積算速度を調整するための加算手段とを備え、前記複数のカウンタへの重みの積算速度を前記加算手段により調整しつつ、出力要求を送信可能な入力が存在せず、かつ前記カウンタの値が所定の閾値に達するまでの間、当該カウンタに所定の重みを積算し、該複数のカウンタの値と前記経路切替手段を介して入力される前段からの出力要求とに基づいて、前記経路切替手段を介して入力されたパケット情報および出力要求を選択し、前記経路切替手段を介して対応する接続相手へ出力し、前記送信手段は、入力された出力要求に応じて当該出力要求とともに入力されたパケット情報で特定されるパケットデータを前記記憶手段から読み出し、そのパケットデータに基づいて送信パケットを生成して送信することを特徴とする。
本発明は、上記の発明において、前記複数の重み付け公平制御手段は、前記複数のカウンタの値と前記経路切替手段を介して入力される前段からの出力要求とに基づいて前記パケット情報および前記出力要求を選択する際、接続相手から送信完了通知が入力されたときは、出力要求した接続相手に対して送信完了通知を送信することを特徴とする。
本発明は、上記の発明において、前記複数の重み付け公平制御手段は、後段への出力要求の送出後、出力要求している入力に対応するカウンタから出力要求したパケットのパケット長だけ減算し、出力要求したパケットのパケット長を前記加算手段に積算する一方、該加算手段の値に基づいて、前記複数のカウンタに重みを積算するとともに、前記加算手段の値を前記重み分減算することを特徴とする。
本発明は、上記の発明において、前記複数の重み付け公平制御手段は、出力要求を送信可能な入力が存在せず、かつ前記カウンタの値が所定の閾値に達している場合、前記複数のカウンタの値を前記加算手段に積算した後、前記複数のカウンタの値をゼロとすることを特徴とする。
本発明は、上記の発明において、前記複数の重み付け公平制御手段は、前記接続相手から送信完了通知を受信してから、次の接続相手から入力されたパケット情報および出力要求を受理するまでの時間を調整する調整手段を備えることを特徴とする。
本発明は、上記の発明において、前記複数の重み付け公平制御手段の各々の前段または後段に配置され、前段から出力要求されたパケットのパケット長さとに基づいて、パケット送出レートを制御する複数のパケット送出レート調整手段を備えることを特徴とする。
本発明は、上記の発明において、前記複数のパケット送出レート調整手段は、その入出力を前記経路切替手段の入出力に接続され、該経路切替手段による切り替え動作によって前記複数の重み付け公平制御手段の各々の前段または後段に配置されることを特徴とする。
本発明は、上記の発明において、前記複数のパケット送出レート調整手段は、その入力を前記複数の重み付け公平制御手段の出力に接続され、その出力を前記経路切替手段の入力に接続されていることを特徴とする。
本発明は、上記の発明において、前記複数のパケット送出レート調整手段は、その入力を前記複数のキューの出力に接続され、その出力を前記経路切替手段の入力に接続されていることを特徴とする。
また、上述した課題を解決するために、本発明は、入力された通信パケットの通信品質を制御して出力するパケット通信品質制御装置において、入力された通信パケットを示すパケットデータを記憶する記憶手段と、前記記憶手段に記憶されたパケットデータに関する情報であるパケット情報を順次記憶する複数のキューと、前記複数のキューに記憶されたパケット情報を所定の順序に基づいて読み出して出力する複数の優先制御手段と、前記複数の優先制御手段から出力されたパケット情報で特定されるパケットデータを前記記憶手段から読み出し、そのパケットデータに基づいて通信パケットを生成して送信する送信手段と、前記複数のキューと、前記複数の優先制御手段と、前記送信手段とを収容するとともに、これら各部の入出力を相互に切替可能に接続する経路切替手段とを備え、前記キューは、記憶する前記パケット情報とこのパケット情報に対応するパケットデータの出力要求とを前記経路切替手段を介して対応する接続相手へ出力し、前記優先制御手段は、後段の接続相手のいずれかから送信完了通知を受信してから、次の前段の接続相手から入力されたパケット情報および出力要求を受理するまでの時間を調整する調整手段を備え、前記調整手段による時間調整後、前記前段の接続相手の各々に固有の優先度に基づいて、前記前段の接続相手のいずれか1つから、パケット情報および出力要求を選択して出力し、前記送信手段は、前記出力された出力要求に応じて、該出力要求とともに出力されたパケット情報で特定されるパケットデータを前記記憶手段から読み出し、そのパケットデータに基づいて送信パケットを生成して送信することを特徴とする。
本発明は、上記の発明において、前記優先制御手段は、前記各接続相手に固有の優先度に基づいて、いずれか1つのパケット情報および出力要求を選択する際、接続相手から送信完了通知が入力されたときは、出力要求した接続相手に対して送信完了通知を送信することを特徴とする。
また、上述した課題を解決するために、本発明は、入力された通信パケットの通信品質を制御して出力するパケット通信品質制御方法において、入力された通信パケットを示すパケットデータを記憶するステップと、前記パケットデータに関する情報であるパケット情報を複数のキューに順次記憶するステップと、出力要求を送信可能なキューが存在しない場合、所定の閾値に達するまでの間、複数のカウンタに所定の重みを積算するステップと、前記複数のカウンタへの重みの積算頻度を制御するステップと、前記積算された重みの値と前記複数のキューからの出力要求とに基づいて、前記複数のキューから入力されたパケット情報および出力要求を選択するステップと、前記選択されたパケット情報で特定されるパケットデータを読み出し、そのパケットデータに基づいて通信パケットを生成して送信するステップとを含むことを特徴とする。
また、上述した課題を解決するために、本発明は、入力された通信パケットの通信品質を制御して出力するパケット通信品質制御方法において、入力された通信パケットを示すパケットデータを記憶するステップと、前記パケットデータに関する情報であるパケット情報を複数のキューに順次記憶するステップと、前記複数のキューから入力されたパケット情報および出力要求を受理するまでの時間を調整するステップと、前記時間調整後、入力の各々に固有の優先度に基づいて、前記複数のキューのいずれか1つから、パケット情報および出力要求を選択して出力するステップと、前記出力された出力要求に応じて、該出力要求とともに出力されたパケット情報で特定されるパケットデータを読み出し、そのパケットデータに基づいて通信パケットを生成して送信するステップとを含むことを特徴とする。
この発明によれば、複数のキューと、複数の制御手段と、送信手段との入出力を経路切替手段により切替可能に接続し、重み付け公平制御手段により、複数のカウンタへの重みの積算速度を加算手段により調整しつつ、出力要求を送信可能な入力が存在せず、かつ前記カウンタの値が所定の閾値に達するまでの間、当該カウンタに所定の重みを積算し、該複数のカウンタの値と経路切替手段を介して入力される前段からの出力要求とに基づいて、経路切替手段を介して入力されたパケット情報および出力要求を対応する接続相手へ出力し、送信手段によって、入力された出力要求に応じて当該出力要求とともに入力されたパケット情報で特定されるパケットデータを記憶手段から読み出し、そのパケットデータに基づいて送信パケットを生成して送信する。したがって、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、本発明によれば、複数のカウンタの値と複数のキューからの出力要求とに基づいてパケット情報および出力要求を選択する際、接続相手から送信完了通知が入力されたときは、出力要求した接続相手に対して送信完了通知を送信する。したがって、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、この発明によれば、重み付け公平制御手段により、後段への出力要求の送出後、出力要求している入力に対応するカウンタから出力要求したパケットのパケット長だけ減算し、出力要求したパケットのパケット長を加算手段に積算する一方、該加算手段の値に基づいて、複数のカウンタに重みを積算するとともに、加算手段の値を重み分減算する。したがって、パケットの送信速度の高低に関わらず、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、本発明によれば、重み付け公平制御手段により、出力要求を送信可能な入力が存在せず、かつカウンタの値が所定の閾値に達している場合、複数のカウンタの値を加算手段に積算した後、複数のカウンタの値をゼロとする。したがって、重みの積算速度を向上させることができ、パケットの送信速度の高低に関わらず、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、この発明によれば、調整手段により、接続相手から送信完了通知を受信してから、次の接続相手から入力されたパケット情報および出力要求を受理するまでの時間を調整する。したがって、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、本発明によれば、複数の重み付け公平制御手段の各々の前段または後段に配置された複数のパケット送出レート調整手段により、前段から出力要求されたパケットのパケット長さとに基づいて、パケット送出レートを制御する。したがって、容易にパケット送出レートを制御することができ、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、本発明によれば、複数のパケット送出レート調整手段の入出力を経路切替手段の入出力に接続し、該経路切替手段による切り替え動作によって、複数のパケット送出レート調整手段を複数の重み付け公平制御手段の各々の前段または後段に配置する。したがって、容易にパケット送出レートを制御することができ、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、この発明によれば、複数のパケット送出レート調整手段の入力を複数の重み付け公平制御手段の出力に接続し、その出力を経路切替手段の入力に接続する。したがって、回路構成を簡単にすることができ、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、この発明によれば、複数のパケット送出レート調整手段の入力を複数のキューの出力に接続し、その出力を経路切替手段の入力に接続する。したがって、回路構成を簡単にすることができ、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、この発明によれば、複数のキューと、複数の制御手段と、送信手段との入出力を経路切替手段により切替可能に接続し、優先制御手段の調整手段により、後段の接続相手のいずれかから送信完了通知を受信してから、次の前段の接続相手から入力されたパケット情報および出力要求を受理するまでの時間を調整し、該時間調整後、前段の接続相手の各々に固有の優先度に基づいて、前段の接続相手のいずれか1つから、パケット情報および出力要求を所定の順序で読み出して、送信手段により、当該出力要求とともに入力されたパケット情報で特定されるパケットデータを記憶手段から読み出し、そのパケットデータに基づいて送信パケットを生成して送信する。したがって、固有の優先度に従ってパケットを送信することができ、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
また、この発明によれば、優先制御手段により、各接続相手に固有の優先度に基づいて、いずれか1つのパケット情報および出力要求を選択する際、接続相手から送信完了通知が入力されたときは、出力要求した接続相手に対して送信完了通知を送信する。したがって、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができるという利点が得られる。
以下、本発明の一実施形態を、図面を参照して説明する。
図1は、本発明の実施形態によるパケット処理装置の構成を示すブロック図である。図1において、パケット入力部1は、入力されたパケットをパケットバッファ2に格納するためのアドレスを空き領域管理テーブル3に問い合わせ、格納アドレスを取得し、その格納アドレスに入力されるパケットを格納する。また、パケット入力部1は、同時に空き領域管理テーブル3から管理番号を取得する。このとき、パケット識別に必要となるパケットの情報(送信元MACアドレス、宛先MACアドレス、宛先IPアドレス等)やパケット長を抽出し、パケット情報としてパケット識別器4に入力する。
空き領域管理テーブル3は、パケットバッファ2に格納されているパケットを管理するための管理番号、パケット情報、格納アドレス、パケット長などを対応付けて記憶するパケット情報テーブル3−1を備えている。
パケット識別器4は、予め設定されたルールに従い、上記パケット情報を後述する複数のキューのうち、どのキューに格納するのかを決定し、キュー制御部5にパケット情報を入力する。キュー制御部5は、複数のキュー#0〜#Jを備え、パケット情報を上記パケット識別器4によって決定されたキュー#j(j=0〜J)に格納する。キュー制御部5は、キュー#j(j=0〜J)にパケット情報が存在するとき、QoS処理部6に対して、送信要求(Req)を送出する。また、同時にパケット情報自体、あるいは管理番号を通知する。
QoS処理部6は、予め指定された後述するパケットスケジューリング(優先制御、重み付け公平制御、パケットシェーピング)により送信決定されたパケット情報あるいは管理番号を送信要求とともに後述するパケット送信部7に通知する。また、QoS処理部6は、後述するパケット送信部7から通知された完了通知を送信要求を行ったパスを辿って戻すことで、自身の内部状態を、次のパケットを送信できる状態にするとともに、キュー制御部5に完了通知を通知する。完了通知は、当該完了通知を送信する契機となった送信要求を行ったキューに到達するので、完了通知を受け取ったキューは、送信要求を送信する契機となったパケット情報を削除する。
パケット送信部7は、通知されたパケット情報あるいは管理番号から、送信すべきパケットのパケットバッファ2内の格納アドレスを取得し、該格納アドレスで特定されるパケットバッファ内のパケットを送信する。また、パケット送信部7は、送信開始、あるいは送信終了時に、QoS処理部6に対して、完了通知(Ack)を送出する。また、パケット送信完了時、当該パケットの管理番号を他のパケットが使用できるように空き領域管理テーブル3に通知する。
次に、図2は、上述したQoS処理部6の構成を示すブロック図である。図2において、QoS処理部6は、セレクタ10と、複数のパケットスケジューラ(優先制御、重み付け公平制御)11−1〜11−Kと、複数のシェーパ12−1〜12−Lとを備えている。セレクタ10の入力には、キュー制御部5のキュー#0〜#Jからの出力(パケット情報)および各パケットスケジューラ11−1〜11−Kおよび各シェーパ12−1〜12−Lの出力が接続されており、セレクタ10の出力には、最終段の出力を除いて、各パケットスケジューラ11−1〜11−Kの入力および各シェーパ12−1〜12−Lの入力が接続されている。セレクタ10は、外部からの設定に従って、任意の入力を任意の出力に接続することが可能となっている。
次に、該QoS処理部6における接続設定の例を図3(a)、(b)、図4(a)、(b)に示す。図3(a)、図4(a)は、セレクタ内の接続状態を示す図、図3(b)、図4(b)は、それを展開して見やすくした図である。図3(a)に示すように、セレクタ10の入出力を接続することで、図3(b)に示すように、キュー#0〜#3の出力をセレクタ10を介してパケットスケジューラ11−1に入力し、キュー#4の出力をセレクタ10を介してパケットスケジューラ11−2に入力する。さらに、セレクタ10を介してパケットスケジューラ11−1の出力をパケットスケジューラ11−2に入力する。そして、パケットスケジューラ11−2の出力をシェーパ12−1に入力し、該シェーパ12−1の出力を最終の出力(パケット送信部7への入力)としている。
また、図4(a)、(b)に示す例では、図4(a)に示すように、セレクタ10の入出力を接続することで、図4(b)に示すように、キュー#0の出力をシェーパ12−1に入力し、キュー#1およびキュー#2の出力をパケットスケジューラ11−1に入力する。さらに、シェーパ12−1の出力と、パケットスケジューラ11−1の出力とを、パケットスケジューラ11−2に入力し、該パケットスケジューラ11−2の出力を最終の出力(パケット送信部7への入力)としている。このようにセレクタ10の接続状態を外部より設定することで、構成において自由度の高いQoS制御が可能となる。
ここで、図4(a)、(b)に示す接続状態の場合におけるQoS処理部6の動作を図5から図10を参照して説明する。
図5(a)は、キュー#0、#1、#2にそれぞれ4つのパケット情報Q0_0〜Q0_3、Q1_0〜Q1_3、Q2_0〜Q2_3が蓄積され、それぞれセレクタ10により接続されるシェーパ12−1、パケットスケジューラ11−1に送信要求Req0_0、Req1_0、Req2_0を送出している。
図5(b)では、シェーパ12−1およびパケットスケジューラ11−1から送信要求Req0_0、Req1_0がパケットスケジューラ11−2に送出されている。シェーパ12−1は、トラヒック量を調整するためのもので、内部的に持っているトークン量と送信要求されたパケットの長さを比較し、トークン量が大きければ、受信した送信要求を後段に送出する。送出後、トークン量を送信要求されたパケット長さ分減算する。トークンの追加は、トークンレートで制御されており、トークンレートが遅い場合、パケットの送出レートを低下させることができ、トークンレートが速い場合、パケットの送出レートを高くすることができる。これにより、パケット送出レートを制御している。
図5(b)に示す状態では、トークン量が要求パケット長よりも大きいものとして取り扱っている。パケットスケジューラ11−1は、優先制御になっているので、優先度の高い送信要求Req1_0が出力されている。
次に、図6(a)では、パケットスケジューラ11−2からパケット送信部7に送信要求Req0_0が出力されている。これは、パケットスケジューラ11−2に入力されている送信要求Req0_0、Req1_0のうち、送信要求Req0_0のほうが、高い優先入力であるためである。図6(b)では、送信要求Req0_0を受信したパケット送信部7が、送信要求Req0_0の指し示すパケット情報Q0_0から得られたパケットを送出開始し、完了通知Ackをパケットスケジューラ11−2に返している。
次に、図7(a)で、完了通知Ackを受信したパケットスケジューラ11−2が送信要求Req0_0を停止し、送信要求Req0_0を入力したポート(シェーパ12−1)に対して完了通知Ackを返している。この間、パケット情報Q0_0のパケットが全て送出されていない場合、そのまま継続してパケットを送出する。図7(b)では、完了通知Ackを受信したシェーパ12−1がその完了通知Ackをキュー#0に返している。
次に、図8(a)では、完了通知Ackを受信したキュー#0は、パケット情報Q0_0を削除し、さらにキューイングされているパケット情報Q0_1の送信要求Req0_1をシェーパ12−1に送信している。図8(b)では、先ほど、送信要求Req0_0を送信したばかりなので、シェーパ12−1でのトークン量がパケット情報Q0_1のパケット長に満たないため、送信要求はパケットスケジューラ11−2に送出されない。しかし、パケットスケジューラ11−2の低優先ポートには、送信要求Req1_0が通知されているので、パケットスケジューラ11−2は、送信要求Req1_0をパケット送信部7に送出する。
次に、図9(a)では、パケット送信部7がパケット送出状態を確認し、パケット送出中であれば、送信要求Req1_0に対する完了通知Ackを返さないが、現時点では、先のパケット情報Q0_0のパケットの送信が完了しているので、送信要求Req1_0を受理し、完了通知Ackをパケットスケジューラ11−2に返すとともに、パケット情報Q1_0が示すパケットの送出を開始する。図9(b)では、パケットスケジューラ11−2が受信した完了通知Ackを送信要求Req1_0を要求した低優先ポートに送信すると同時に、パケット送信部7に送出していた送信要求Req1_0を止める。そして、この完了通知Ackは、パケットスケジューラ11−1で受信され、パケットスケジューラ11−1では、送信要求Req1_0を送信していた高優先ポートに接続されているキュー#1に完了通知Ackを送出する。
次に、図10(a)では、シェーパ12−1におけるトークン量が送信要求Req0_1に対応するパケット情報Q0_1が示すパケット長がトークン量を超えるので、送信要求Req0_1がパケットスケジューラ11−2に送出される。また、キュー#1は、先に受けた完了通知Ackによりパケット情報Q1_0を削除し、次にキューイングされていたパケット情報Q1_1の送信要求Req1_1をパケットスケジューラ11−1に送出する。パケットスケジューラ11−1は、高優先ポートに通知されている送信要求Req1_1をパケットスケジューラ11−2に送出する。図10(b)では、パケットスケジューラ11−2は、高優先ポートに通知されている送信要求Req0_1をパケット送信部7に送出し、それを受けたパケット送信部7は、パケット送出状態を確認し、パケットが送出されていない状況である場合、完了通知Ackをパケットスケジューラ11−2に送出するとともに、送信要求Q0_1の示すパケットを送出する。
このような送信要求(Req)とその要求を受理したことを示す完了通知(Ack)、およびシェーパ12−1〜12−Lや、パケットスケジューラ11−1〜11−Kの動作モードの1つである重み付け公平制御(後述)を行うためのパケット長を用いてQoS処理を行う。
次に、図11及び図12は、セレクタ10とパケットスケジューラ11−1〜11−Kやシェーパ12−1〜12−Lとの接続形態の一例を示すブロック図である。図11に示すように、パケットスケジューラ11−1〜11−Kの各出力をシェーパ12−1〜12−Kに固定的に接続したり、図12に示すように、キュー#0〜#Jとセレクタ10との間にシェーパ13−1〜13−Jを接続したりすることで、図2の構成に比べて、セレクタ10の接続端子を削減したり、キュー#0〜#Jからの出力帯域を予め絞った状態で、運用するようにしてもよい。
次に、図13は、パケットスケジューラ11−1〜11−Kの一構成例を示すブロック図である。図13に示すパケットスケジューラ11−k(k=0〜K)は、4入力の構成例であり、カウンタ制御部20およびReqAck制御部21からなる。カウンタ制御部20は、入力数に対応する、重み付け公平制御を行うためのカウンタ#0〜#3を備えており、該カウンタ#0〜#3の動作を制御する。カウンタ制御部20は、ReqAck制御部21の状態が後述するSi(i=0〜3)に遷移したとき、すなわち、後段のパケットスケジューラ11−(k+1)、あるいはシェーパ12−(l)、あるいはパケット送信部7に送信要求(Req)を通知するときに、当該パケットのフレーム長を、前段のパケットスケジューラ11−(k−i−1)、あるいはシェーパ12−(l−1)、あるいはキュー#jからの送信要求のうち、後段のパケットスケジューラ11−(k+1)に通知しようとする入力に対応するカウンタ#iから減ずる。
より具体的には、カウンタ制御部20は、重み付け公平制御におけるカウンタ#0〜#3の動作を調整するためのクレジット部20−1を備えている。カウンタ制御部20は、後述するschedi(i=0〜3)のいずれかが1のとき(スケジューリング完了状態のものがあるとき)、すなわち、パケット送信可能な状態の入力がある場合で、かつ、クレジット部20−1の値が負または0のとき、各カウンタ#iへの重み#iの加算を行わない。また、パケットスケジューラ11−kが入力#iに対する送信要求を行うとき、カウンタ#iからそのパケット長分の値を減算するとともに、そのパケット長分の値をクレジット部20−1に加算する。
また、カウンタ制御部20は、後述するschedi(i=0〜3)の全てが0のとき(スケジューリング完了状態のものがない)、すなわち、パケット送信可能な状態の入力がない場合で、かつ、クレジット部20−1の値が正のとき、各カウンタ#0〜#3に対応する重み#0〜#3を加算するようになっている。重み#0〜#3を加算する場合には、加算した分、クレジット部20−1から減算する。
すなわち、カウンタ制御部20は、上述したクレジット部20−1を用いることで(カウンタへ重みを加算するか否かの判定条件にクレジット部20−1の値を加えることで)、送信要求を行う度に、該当カウンタ#i(i=0〜3)から減算されたパケット長分の重みを再び全てのカウンタ#0〜#3に対して重みとして分配するという動作を行うことになる。schedi(i=0〜3)が1になる条件は、「ReqIni(i=0〜3)により送信要求が通知されており、かつ、カウンタ値が正もしくは0」の場合である。
このようにクレジット部20−1を用いる効果は、1つのパケットに対する送信要求を行った後、すぐにカウンタ#0〜#3への加算が行われるので、パケットスケジューラ11−k(k=0〜3)の出力が高速であっても低速であっても、次の出力回線が空くまでに、カウンタ#0〜#3への加算を途中まで完了(スケジューリング完了状態)させることができることにある。また、重み#0〜#3の値を小さくすることができ、重み#0〜#3の値が小さいと、重み付け公平制御の精度を高めることができることにある。
また、送信レートが低い場合、すなわち、送信要求(Req)を通知してから完了通知(Ack)が返ってくるまでの時間が長い場合、クレジット部20−1を用いない場合、重みが各カウンタ#0〜#3に加算し続けられる。このため、カウンタの最大値、あるいは、ある閾値に達すると、カウンタ#0〜#3に対する加算を停止させる機構が必要となる。このような場合、全てのカウンタ#0〜#3の値が同じ値になるので、ただの公平制御となってしまい、重み付け公平制御を行うことができなくなる。そこで、クレジット部20−1を用いて、送信要求したパケット長分のみ、カウンタ#0〜#3への重みとして分配することにより、送信レートが低い場合であっても、重み付け公平制御を行うことができるようになる。
また、別の考え方として、パケットの送信要求を送信した後、次に送信要求を送出できるのは、送出パケット長÷出力帯域後である。送信要求を行ってからクレジット部20−1に加算され、それが各カウンタ#0〜#3に分配されるわけであるが、全て分配した後、カウンタ#0〜#3への分配は止まる。次に、分配が開始されるのは、次の送信要求が送出されたときである。このため、この分配を平均化すると、分配速度は、出力帯域と同じとなる。これにより、出力帯域が高速の場合であっても、低速の場合であっても、それに合わせた分配速度になるように調整されるように動作することになる。
上述したカウンタ#0〜#3およびクレジット部20−1に加算または減算されるフレーム長は、後述するPIIni(i=0〜3)から得る場合や、PIIniで通知されるのが管理番号だけである場合、この管理番号を用いてパケット情報テーブル3−1からフレーム長を検索する。さらに、実際のパケット送信時に付加されるヘッダ(トンネリングヘッダなど)や情報分(EthenetフレームのプリアンブルやFSCなど)の長さを加えた値をフレーム長として用いることも有用である。
ReqAck制御部21は、外部からの優先制御/重み付け公平制御動作切り替え指示に従って、初期状態であるIdle、後段に送信要求(ReqOut)を行っている状態Si(i=0,1,2,3)、後段からの完了通知(AckIn)を受信し、delay部21−1で示される動作サイクル時間が経過するのを待っている状態Wi(i=0,1,2,3)を用いて、パケット情報の後段への出力を制御する。送信要求(ReqOut)は、状態がSi(i=0,1,2,3)に遷移したときに1となり、それ以外の時には0となる。PIOutには、現在の状態がS0のときPIIn0のパケット情報、S1のときPIIn1のパケット情報、S2のときPIIn2のパケット情報、S3のときPIIn3のパケット情報が出力される。
AckOuti(i=0,1,2,3)は、後段からの完了通知(AckIn)を受けたときの状態がS0のとき、AckOut0のみが1、S1のときAckOut1のみが1、S2のときAckOut2のみが1、S3のときAckOut3のみが1となり、前段のパケットスケジューラに対して完了通知を送信する。ここで、重み付け公平制御動作における状態遷移を図14に示し、重み付け公平制御動作における状態遷移の条件を図15に示す。
ここで、delay部21−1は、セレクタ10を通してパケットスケジューラ11−1〜11−nが多段に接続された場合、後段からの完了通知(AckIn)を受け、すぐに入力状態を調べ、次の入力が選択されてしまうと、完了通知Ackがキュー#0〜#Jに辿り着いてから次のパケットの送信要求を送ったとしても、伝播遅延のため、その送信要求を受けることができない。そのため、伝播遅延を考慮した値をdelay部21−1に設定することにより伝播遅延の影響をなくすようになっている。なお、図15に示すdelayは、delay部21−1に設定されている値を示している。
次に、上述した本実施形態の動作について説明する。
まず、本実施形態のパケット処理装置による優先制御および重み付け公平制御の基本的な動作について説明する。図16は、本実施形態のパケット処理装置による優先制御および重み付け公平制御の基本的な動作を説明するための構成およびそれぞれのシーケンス図である。ここでは、説明を簡単にするために、図16(a)に示すように、2つのキュー#0、#1からのパケット情報をパケットスケジューラ11−1を介して出力する基本構成を例として説明する。
優先制御では、パケットスケジューラ11−1において、キュー#0側の入力の方がキュー#1側の入力に比べて優先度が高いものとする。この場合、現在のパケット情報(キュー#0、#1のいずれでも構わない)を出力している間に、優先度の高い方の入力である、キュー#0にパケット情報Q0_m(m=1〜4)が入力されていると、そのパケット情報Q0_mを優先して出力する。したがって、優先度の高い側のキュー#0からのパケット情報Q0_mに対しては、送出可能な最小時間(図示の矢印を参照)で送出されることになる。
次に、重み付け公平制御では、パケットスケジューラ11−1において、2つの入力とも同じ重みとし、キュー#0、#1ともパケット長は同じであるとする。この場合、すなわち同じ重みである場合には、キュー#0のパケット情報Q0_mとキュー#1のパケット情報Q1_m(m=1〜5)とを交互に出力する。したがって、最小の待ち時間で送出されることはないが、指定された重みに従って、この場合、双方とも同じであるので交互に出力される(重みに従い帯域分割される)。
次に、本実施形態のパケット処理装置による重み付け公平制御動作について説明する。ここで、図17は、重み付け公平制御時におけるカウンタ制御部20及びReqAck制御部21の一動作例を説明するためのフローチャートである。まず、カウンタ制御部20は、各カウンタ#0〜#3及びクレジット部20−1を0にリセットする(S1)。次に、ReqAck制御部21が、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S0に遷移したか否かを判定する(S2)。そして、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S0に遷移した場合には、PIIn0から得られるパケット長をカウンタ#0から減ずるとともに、同パケット長をクレジット部20−1に加算し(S3)、ステップS2へ戻る。
一方、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S0に遷移していない場合には、ReqAck制御部21が、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S1に遷移したか否かを判定する(S4)。そして、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S1に遷移した場合には、PIIn1から得られるパケット長をカウンタ#1から減ずるとともに、同パケット長をクレジット部20−1に加算し(S5)、ステップS2へ戻る。
一方、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S1に遷移していない場合には、ReqAck制御部21が、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S2に遷移したか否かを判定する(S6)。そして、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S2に遷移した場合には、PIIn2から得られるパケット長をカウンタ#2から減ずるとともに、同パケット長をクレジット部20−1に加算し(S7)、ステップS2へ戻る。
一方、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S2に遷移していない場合には、ReqAck制御部21が、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S3に遷移したか否かを判定する(S8)。そして、初期状態Idleあるいは状態Wi(i=0,1,2,3)から状態S3に遷移した場合には、PIIn3から得られるパケット長をカウンタ#3から減ずるとともに、同パケット長をクレジット部20−1に加算し(S9)、ステップS2へ戻る。
また、いずれの場合でもない場合には、schedi(i=0,1,2,3)のいずれかが1であり、かつクレジット部20−1の値が0以下であるか否かを判定する(S10)。そして、schedi(i=0,1,2,3)のいずれかが1であり(スケジューリング完了状態)、すなわち、パケット送信可能な状態の入力があり、かつクレジット部20−1の値が0以下であるとき(スケジューリング完了状態)、すなわち、パケット送信可能な状態の入力がある場合、各カウンタ#0〜#3への重みの加算を行うことなく、ステップS2へ戻る。
一方、そうでない場合、すなわち、パケット送信可能な状態の入力がない場合、変数nを0とし(S11)、変数nが入力数(今回は4)以上になったか否かを判定し(S12)、変数nが4以上でなければ、送信要求を受けている(ReqIn=1)か否かを判定する(S13)。そして、送信要求を受けていない場合(ReqIn=0)には、カウンタ#n(n=0〜3)が0以上であるか否かを判定する(S14)。そして、カウンタ#n(n=0〜3)が0以上でなければ、カウンタ#nに対応する重み#nを加算するとともに、クレジット部20−1から重み#nを減算する(S15)。一方、カウンタ#n(n=0〜3)が0以上であれば、カウンタ#nへの重みの加算およびクレジット部20−1からの重みの減算を行わない。また、送信要求を受けている場合(ReqIn=0)には、カウンタ#nの値に関係なく、カウンタ#nに対応する重み#nを加算するとともに、クレジット部20−1から重み#nを減算する(S15)。
次に、いずれの場合も、変数nを1つだけインクリメントし(S16)、ステップS12へ戻り、変数nが4以上になるまで、すなわち、全てのカウンタ#0〜#3に対する処理が終了するまで、上述した処理を繰り返す。そして、変数nが4以上になると、ステップS2に戻る。
次に、図18は、重み付け公平制御時におけるカウンタ制御部20及びReqAck制御部21の他の動作例を説明するためのフローチャートである。なお、図18におけるステップS21〜S33は、上述した図17におけるステップS1〜S13と同じであるので説明を省略する。
ステップS33で、送信要求を受けている(ReqIn=1)か否かを判定した際、送信要求を受けていない場合(ReqIn=0)には、カウンタ#n(n=0〜3)が0以上で、かつ、delay部21−1が0または完了通知Ackを受信したか否かを判定する(S34)。そして、カウンタ#n(n=0〜3)が0以上でなく、またはdelay部21−1が0または完了通知Ackを受信していなければ、カウンタ#nに対応する重み#nを加算するとともに、クレジット部20−1から重み#nを減算する(S35)。一方、カウンタ#n(n=0〜3)が0以上で、かつdelay部21−1が0または完了通知Ackを受信した場合には、カウンタ#nの値をクレジット部20−1に加算するとともに、同カウンタ#nの値を0とする(S36)。また、送信要求を受けている場合(ReqIn=0)には、カウンタ#nの値やdelay部21−1の値、あるいは完了通知Ackを受信しているか否かに関係なく、カウンタ#nに対応する重み#nを加算するとともに、クレジット部20−1から重み#nを減算する(S35)。
そして、いずれの場合も、変数nを1つだけインクリメントし(S37)、ステップS32へ戻り、変数nが入力数(今回は4)以上になるまで、すなわち、全てのカウンタ#0〜#3に対する処理が終了するまで、上述した処理を繰り返す。そして、変数nが4以上になると、ステップS22に戻る。
図17と図18の処理の違いは、送信要求を受けていない入力のカウンタの値が正の値をとったときの動作にある。クレジット部20−1と各カウンタ#0〜#3との和は、基本的には0となっている。このため、図17に示す動作の場合、いずれかのカウンタ#i(i=0〜3)が正の値である場合、それ以外のカウンタ#p(p=0〜3;i以外)が負であることが考えられる。したがって、クレジット部20−1の全ての値が分配された場合、次のパケットが送出され、クレジット部20−1にそのパケット長が加算されるまで、あるいは、スケジューリング完了状態の入力がなくなるまで、重み#0〜#3はカウンタ#0〜#3に加算されなくなる。これにより、その負の値を有するカウンタ#pに対する入力のスケジューリング完了が遅れる可能性がある。そこで、図18に示す動作では、送信要求を受けていないにもかかわらず、正の値を有するカウンタ#iに対しては、該カウンタ#iの値を0にし、そのカウンタ#iが有する値をクレジット部20−1に戻すことで、見かけ上、重みの加算速度を向上させている。
ところで、上述したカウンタ#0〜#3への追加方法は、図17および図18では、シーケンシャルに行われているように記載されているが、並列処理を行ってもよい。この場合、クレジット部20−1からの減算に際して競合が生じないようにする配慮が必要である。また、カウンタ#0〜#3への重みの加算は、カウントアップの時間を重みに合わせて調整したり(重みが4であれば、カウントアップサイクルを4とする)、加算器を用いることが考えられる。
ここで、図19(a)〜(d)は、上述したカウンタへの追加方法として、同時加算(並列処理)、順次加算、およびカウントアップ時間を調整して行う場合の動作例を示すタイミングチャートである。図19(a)には、カウンタ#0〜#3に対して同時に重み#0〜#3を加算する様子を示しており、図19(b)には、カウンタ#0〜#3に重み#0〜#3を順次加算する様子を示している。また、図19(c)には、カウントアップ時間を調整してカウンタ#0〜#3へのカウントアップを同時に行う様子を示しており、図19(d)には、カウントアップ時間を調整してカウンタ#0〜#3へのカウントアップを順次行う様子を示している(斜線部分がカウントアップ時間)。
回路規模の点から考えると、図19(a)は加算器が4つ、図19(b)は加算器が1つ、図19(c)はカウンタが4つ、図19(d)はカウンタが1つ必要であるため、(a)>(b)>(c)>(d)の順に回路規模が小さくなる。しかしながら、高速動作させるために必要な動作周波数は、(a)<(b)<(c)<(d)の順に大きくなる。そのため、回路規模と動作周波数を考慮して使用するカウンタ制御方法を選択する。
次に、優先制御動作について説明する。
優先制御動作時には、カウンタ制御部20を使用しないので、停止させておいてもよい。基本的には、重み付け公平制御時と同様の動作を行う。違いは、状態遷移である。優先制御時における状態遷移を図20に示し、優先制御時における状態遷移の条件を図21に示す。入力の優先順は、入力#0>入力#1>入力#2>入力#3の場合を示している。この状態遷移によりReqInが存在する場合、優先順に入力された送信要求を後段のパケットスケジューラに通知することができる。優先制御の場合、特に、delay部21−1が重要であり、その理由を図22(a)、(b)を参照して説明する。
図22(a)、(b)において、各々のパケットスケジューラ11−1、11−2は、優先制御スケジューラであり、階層的に接続されている。説明を簡単にするために、入力ポート数を2としている。現時点で、キュー#0の最初のパケット情報Q0_0が示すパケットが送信開始され、完了通知Ackがパケットスケジューラ11−2に戻ってきている状態とする。期待される動作としては、パケット情報Q0_0の次に出力されるのは、パケット情報Q0_1が示すパケットである。
図22(a)に示すように、遅延制御がない場合には、パケットスケジューラ11−2からパケットスケジューラ11−1に完了通知Ackを送出した時点で、高優先ポートに通知されている送信要求を一度キャンセルするために、高優先ポートからの送信要求がない状態になる。このとき、低優先ポートには、送信要求が通知されているので、低優先ポートに接続されているキュー#2からのパケット情報Q2_0が示すパケットが、パケット情報Q0_0が示すパケットの次に出力されてしまう。
図22(b)に示すように、遅延制御がある場合にも、パケットスケジューラ11−2がパケットスケジューラ11−1に完了通知Ackを送出した時点で、高優先ポートに通知されている送信要求を一度キャンセルするが、このとき、delay部21−1に3を設定しているため待ち状態になる。パケットスケジューラ11−2がパケットスケジューラ11−1に完了通知Ackを送出したあと、パケットスケジューラ11−1がキュー#0に完了通知Ackを送出するのに1サイクル、キュー#0がパケット情報Q0_1の送信要求を送出するのに1サイクル、パケットスケジューラ11−2がパケットスケジューラ11−1に送信要求するのに1サイクルの合計3サイクル、完了通知Ackを送出してから送信要求Reqを受けるまでにかかる。パケット情報Q0_1の送信要求Reqを受けたとき、ちょうどdelay部21−1の遅延は0となるので、この時点で出力する入力ポートをパケットスケジューラ11−1が選択する。
次に、パケットスケジューラ11−2がQ0_1を受けたとき、パケットスケジューラ1−2のdelay部がちょうど0になるので、この時点で出力する入力ポートをパケットスケジューラ11−2が選択する。もちろんこの場合には、高優先ポートに通知されたパケット情報Q0_1が示すパケットが出力される。
このように、特に、優先制御スケジューラを階層的に接続して用いる場合には、完了通知Ackを送出してから送信要求Reqを受けるまでの遅延時間動作を行うことにより、正しい(この場合、パケット情報Q0_0が示すパケットの次にパケット情報Q0_1が示すパケットが出力される)パケットスケジューリングが可能となる。
次に、図23に示すような単純なスケジューリング構成を用いて、重み付け公平制御動作時の各信号の様子を説明する。図23において、パケットスケジューラ(総称してパケットスケジューラ11とする)の4つの入力に接続されている各キュー#0〜#3には、各々、パケット情報Q0_0〜Q0_3、パケット情報Q1_0〜Q1_3、パケット情報Q2_0〜Q2_3、パケット情報Q3_0〜Q3_3が蓄積されており、パケットスケジューラ11に対して送信要求ReqIn0〜ReqIn3を通知している。それぞれのキュー#0〜#3に蓄積されているパケット情報は、Qj_m(j:キュー番号、m:蓄積されている順に付けたパケット情報の番号)で示される。
パケットスケジューラ11により送信するパケットが決定されたときには、先に記述したように、パケット送信部7にパケット情報と合わせて送信要求ReqOutが送信される。送信要求ReqOutを受けたパケット送信部7は、パケットを送信できる状態であれば、パケット情報Qj_mに示されるパケットを送信するとともに、パケットスケジューラ11に対して完了通知AckInを送出する。完了通知AckInを受け取ったパケットスケジューラ11は、送信要求元のキュー#j(j=0〜3)に対し、完了通知AckOuti(i=0〜3)を通知する。完了通知AckOutiを受けたキュー#jは、当該パケット情報Qj_mを開放するとともに、次のパケット情報を通知し、さらに送信要求をパケットスケジューラ11に通知する。
以下の説明においては、パケットスケジューラ11の各入力に対する重み#0〜#3を、入力#0に対しては16、入力#1に対しては12、入力#2に対しては8、入力#3に対しては4として説明を行う(4:3:2:1)。また、キュー#0〜#3に蓄積されている各パケット情報が示すパケットの長さを、説明を簡単にするために100とする。同様の理由でdelay部21−1に設定する遅延時間を0とする。
次に、図24は、本実施形態による重み付け公平制御動作時の各信号(Reqin、PIIn、AckOut、PIOut、AckIn、およびカウンタ値)の様子を示すタイミングチャートである。
期間Aは、初期状態で、パケットスケジューラは、アイドル(Idle)状態であり、各カウンタ#0〜#3の値は0であり、各入力#0〜#3には、送信要求とともにパケット情報が入力される。各入力#0〜#3には、ReqIn0〜ReqIn3が立っており、かつカウンタ#0〜#3が0であるので、スケジュール完了状態にある(sched0〜sched3が1)。このとき、パケットスケジューラ11の内部状態は、アイドル状態Idleから状態S0へ遷移する。
期間Bでは、内部状態がS0なので、パケット送信部7にReqOutとパケット情報Q0_0を送出する。さらに、カウンタ#0の値からパケット情報Q0_0の示すパケットの長さである100を減ずる(−100になる)。加えて、クレジット部20−1にそのパケット長が加算され、クレジットの値は100となる。
期間Cにおいて、パケット送信部7では、これより前にパケットを送出していないので、回線に空きがある。そのため、直ちにパケット情報Q0_0により示されるパケットを送出するとともに、完了通知AckInをパケットスケジューラ11に返す。完了通知AckInを受信したパケットスケジューラ11は、現在の状態がS0であるので、状態W0に遷移する。加えて、クレジット値≧0であるので、各カウンタ#0〜#3への重み#0〜#3の加算を開始する。
期間Dでは、現在の状態がW0であるので、入力#0から完了信号AckOut0を送出し、送信が完了したことをキュー#0に通知する。このとき、delay部21−1による遅延時間を設定する。今回の説明では0として考えているので、delay==0は常に成り立つ。通常は、0でない値を設定するので、設定されたサイクル分状態を変更させずに待ち続ける。現時点でReqIn1が立っており、カウンタ#1の値が0であるので、入力#1に対するスケジューリングは完了している(sched1=1)。また、delay==0であるので、パケットスケジューラ11の内部状態は、W0→S1に遷移する。
ところで、ReqIn0〜ReqIn3の信号は、図24においてパルスとして書かれているが、パケットスケジューラ11の内部的には、送信要求されているということで、期間Dの場合であっても、ReqIn1は立っていることとして取り扱う。実際には、Set−Resetフリップフロップを用い、Set端子がReqIn0〜ReqIn3につながり、Reset端子をAckInにつなげ、その出力をReqIn0〜ReqIn3とすることなどで対応可能である。これにより、ReqIn0〜ReqIn3を受けてからAckInを受けるまでの間、ReqIn0〜ReqIn3を受けているとして取り扱える。
期間Eでは、内部状態がS1になったので、PIOutとしてパケット情報Q1_0を出力するとともに、送信要求ReqOutをパケット送信部7に通知する。期間Cとは異なり、今回は、パケット情報Q0_0のパケットを送信中であるので、送信が完了する期間Gまで、送信完了は通知されない。また、カウンタ#1からパケット長である100を減ずる(−100になる)。さらに、クレジット部20−1にそのパケット長を加算する。
期間Gでは、クレジット部20−1の全ての値が各カウンタ#0〜#3に分配されて0になり、かつスケジューリングが完了しているものがあるので((sched0‖sched1‖sched2‖sched3)=1)、各カウンタ#0〜#3への加算を停止する。該期間Gに至るまでにクレジット部20−1は、合計200蓄積し、カウンタ#0〜#3のそれぞれに累計80、60、40、20ずつ加算されたことと、入力#0、#1に対するフレーム送信要求を行った(カウンタ#0、#1から各々100減じられた)ので、カウンタ#0〜#3の現時点での値は、−20、−40、40、20となっている。
期間Hでは、先に送出した入力1に対する送信完了が通知されているので、現在の状態S1から状態W1に遷移する。
期間Iでは、状態がW1であるので、入力#1から完了信号AckOut1を送出し、送信が完了したことをキュー#1に通知する。このとき、delay部21−1に遅延時間を設定する(この場合、0)。現時点で、ReqIn2が立っており、カウンタ#2の値が40であるので、入力#2に対するスケジューリングは完了しているので、状態W1→状態S2に遷移する。
期間J以降は同様の処理を行っていく。
期間Qでは、パケット情報Q2_0のパケット送信が終了したので、送信要求を出しているパケット情報Q3_0の送信が開始され、完了通知Ackが返される。これにより、S3→W3に遷移する。
期間Rでは、状態W3であるので、入力#3に対して完了信号AckOutを通知する。また、入力#0に対するスケジューリングが完了しているので、状態W3→状態S0に遷移する。
このような処理を続けていくことにより出力されるパケットは、図24の最下段に示すようになる。すなわち、図示されている10パケットを見ると、キュー#0のパケットが4つ、キュー#1のパケットが3つ、キュー#2のパケットが2つ、キュー#3のパケットが1つとなり、重みで指定した4:3:2:1の比率で、パケットが送信されたことが分かる。
上述した実施形態によれば、パケットスケジューラの回路ブロックはそのままで、制御方法を変えることで、優先制御、重み付け公平制御を行うことで、高速パケット処理を実現しつつ、通信品質制御の調整または変更の自由度を拡大することができる。
なお、上述した実施形態においては、上述したパケット入力部1、パケット識別器4、キュー制御部5、QoS処理部6、パケット送信部7などによる一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶され、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われるようにしてもよい。すなわち、パケット入力部1、パケット識別器4、キュー制御部5、QoS処理部6、パケット送信部7などは、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるようにしてもよい。
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
本発明の実施形態によるパケット処理装置の構成を示すブロック図である。 QoS処理部の構成を示すブロック図である。 QoS処理部における接続設定の例を示すブロック図である。 QoS処理部における接続設定の例を示すブロック図である。 QoS処理部の動作を説明するためのブロック図である。 QoS処理部の動作を説明するためのブロック図である。 QoS処理部の動作を説明するためのブロック図である。 QoS処理部の動作を説明するためのブロック図である。 QoS処理部の動作を説明するためのブロック図である。 QoS処理部の動作を説明するためのブロック図である。 セレクタとパケットスケジューラやシェーパとの接続形態の一例を示すブロック図である。 セレクタとパケットスケジューラやシェーパとの接続形態の一例を示すブロック図である。 パケットスケジューラの一構成例を示すブロック図である。 重み付け公平制御動作における状態遷移を示す概念図である。 重み付け公平制御動作における状態遷移の条件を示す図である。 本実施形態のパケット処理装置による優先制御および重み付け公平制御の基本的な動作を説明するための構成およびそれぞれのシーケンス図である。 重み付け公平制御時におけるカウンタ制御部の一動作例を説明するためのフローチャートである。 重み付け公平制御時におけるカウンタ制御部の他の動作例を説明するためのフローチャートである。 上述したカウンタへの追加方法として、同時加算(並列処理)、順次加算、およびカウントアップ時間を調整して行う例を示すタイミングチャートである。 優先制御時における状態遷移を示す概念図である。 優先制御時における状態遷移の条件を示す図である。 優先制御時におけるdelay部の重要性を説明するためのブロック図である。 重み付け公平制御動作時における各信号の様子を説明するための一構成例を示すブロック図である。 重み付け公平制御動作時における各信号の様子を示すタイミングチャートである。
符号の説明
1 パケット入力部
2 パケットバッファ(記憶手段)
3 空き領域管理テーブル
3−1 パケット情報テーブル
4 パケット識別器
5 キュー制御部(複数のキュー)
6 QoS処理部
7 パケット送信部(送信手段)
10 セレクタ(経路切替手段)
11−1〜11−K パケットスケジューラ(複数の重み付け公平制御手段、複数の優先制御手段)
12−1〜12−L シェーパ(パケット送出レート調整手段)
12−1〜12−K シェーパ(パケット送出レート調整手段)
13−1〜13−J シェーパ(パケット送出レート調整手段)
20 カウンタ制御部(複数のカウンタ)
20−1 クレジット部(加算手段)
21 ReqAck制御部
21−1 delay部(調整手段)

Claims (8)

  1. 入力された通信パケットの通信品質を制御して出力するパケット通信品質制御装置において、
    入力された通信パケットを示すパケットデータを記憶する記憶手段と、
    前記記憶手段に記憶されたパケットデータに関する情報であるパケット情報を順次記憶する複数のキューと、
    前記複数のキューに記憶されたパケット情報を所定の順序に基づいて読み出して出力する複数の重み付け公平制御手段と、
    前記複数の重み付け公平制御手段から出力されたパケット情報で特定されるパケットデータを前記記憶手段から読み出し、そのパケットデータに基づいて通信パケットを生成して送信する送信手段と、
    前記複数のキューと、前記複数の重み付け公平制御手段と、前記送信手段とを収容するとともに、これら各部の入出力を相互に切替可能に接続する経路切替手段とを備え、
    前記キューは、記憶する前記パケット情報とこのパケット情報に対応するパケットデータの出力要求とを前記経路切替手段を介して対応する接続相手へ出力し、
    前記重み付け公平制御手段は、入力の各々に対応する複数のカウンタと、該複数のカウンタへの重みの積算速度を調整するための加算手段とを備え、前記複数のカウンタへの重みの積算速度を前記加算手段により調整しつつ、前記カウンタの値が所定の閾値に達するまでの間、当該カウンタに所定の重みを積算し、該複数のカウンタの値と前記経路切替手段を介して入力される前段からの出力要求とに基づいて、前記経路切替手段を介して入力されたパケット情報および出力要求を選択し、前記経路切替手段を介して対応する後段の接続相手へ出力し、
    前記送信手段は、入力された出力要求に応じて当該出力要求とともに入力されたパケット情報で特定されるパケットデータを前記記憶手段から読み出し、そのパケットデータに基づいて送信パケットを生成して送信し、
    前記複数の重み付け公平制御手段は、後段への出力要求の送出後、出力要求している入力に対応するカウンタから出力要求したパケットのパケット長だけ減算し、出力要求したパケットのパケット長を前記加算手段に積算する一方、送信要求を受けている場合、あるいは、送信要求を受けていなくてカウンタの値が前記所定の閾値に達していない場合に、該加算手段の値に基づいて、前記複数のカウンタに重みを積算するとともに、前記加算手段の値を前記重み分減算することを特徴とするパケット通信品質制御装置。
  2. 前記複数の重み付け公平制御手段は、出力要求を送信可能な入力が存在せず、かつ前記カウンタの値が所定の閾値に達している場合、前記複数のカウンタの値を前記加算手段に積算した後、前記複数のカウンタの値をゼロとすることを特徴とする請求項記載のパケット通信品質制御装置。
  3. 前記複数の重み付け公平制御手段は、前記複数のカウンタの値と前記経路切替手段を介して入力される前段からの出力要求とに基づいて前記パケット情報および前記出力要求を選択する際、後段の接続相手から送信完了通知が入力されたときは、出力要求した前段の接続相手に対して送信完了通知を送信することを特徴とする請求項1または請求項2記載のパケット通信品質制御装置。
  4. 前記複数の重み付け公平制御手段は、前記後段の接続相手から送信完了通知を受信してから、次の接続相手から入力されたパケット情報および出力要求を受理するまでの時間を調整する調整手段を備えることを特徴とする請求項1ないしのいずれかに記載のパケット通信品質制御装置。
  5. 前記複数の重み付け公平制御手段の各々の前段または後段に配置され、前段から出力要求されたパケットのパケット長さとに基づいて、パケット送出レートを制御する複数のパケット送出レート調整手段を備えることを特徴とする請求項1に記載のパケット通信品質制御装置。
  6. 前記複数のパケット送出レート調整手段は、その入出力を前記経路切替手段の入出力に接続され、該経路切替手段による切り替え動作によって前記複数の重み付け公平制御手段の各々の前段または後段に配置されることを特徴とする請求項記載のパケット通信品質制御装置。
  7. 前記複数のパケット送出レート調整手段は、その入力を前記複数の重み付け公平制御手段の出力に接続され、その出力を前記経路切替手段の入力に接続されていることを特徴とする請求項記載のパケット通信品質制御装置。
  8. 前記複数のパケット送出レート調整手段は、その入力を前記複数のキューの出力に接続され、その出力を前記経路切替手段の入力に接続されていることを特徴とする請求項記載のパケット通信品質制御装置。
JP2005300276A 2005-10-14 2005-10-14 パケット通信品質制御装置およびパケット通信品質制御方法 Active JP4279281B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005300276A JP4279281B2 (ja) 2005-10-14 2005-10-14 パケット通信品質制御装置およびパケット通信品質制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005300276A JP4279281B2 (ja) 2005-10-14 2005-10-14 パケット通信品質制御装置およびパケット通信品質制御方法

Publications (2)

Publication Number Publication Date
JP2007110515A JP2007110515A (ja) 2007-04-26
JP4279281B2 true JP4279281B2 (ja) 2009-06-17

Family

ID=38035996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005300276A Active JP4279281B2 (ja) 2005-10-14 2005-10-14 パケット通信品質制御装置およびパケット通信品質制御方法

Country Status (1)

Country Link
JP (1) JP4279281B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7995597B2 (en) * 2008-10-14 2011-08-09 Nortel Networks Limited Method and system for weighted fair queuing
JP5359692B2 (ja) * 2009-08-28 2013-12-04 富士通株式会社 フレーム出力方法及びフレーム出力装置
WO2012056551A1 (ja) * 2010-10-28 2012-05-03 株式会社日立製作所 監視制御システムの通信方法及び監視制御システム
JP5939489B2 (ja) * 2011-03-10 2016-06-22 マーベル ワールド トレード リミテッド 非任意ネットワークに用いるデータブロックシステム
EP2696543A1 (en) * 2012-08-06 2014-02-12 Renesas Electronics Europe Limited Calculating credit for controlling data frame transmission
JP6786996B2 (ja) * 2016-09-23 2020-11-18 富士通株式会社 伝送装置及び伝送処理方法

Also Published As

Publication number Publication date
JP2007110515A (ja) 2007-04-26

Similar Documents

Publication Publication Date Title
CN110324242B (zh) 一种报文发送的方法、网络节点和系统
Prabhavat et al. Effective delay-controlled load distribution over multipath networks
WO2019214561A1 (zh) 一种报文发送的方法、网络节点和系统
JP4279281B2 (ja) パケット通信品質制御装置およびパケット通信品質制御方法
US9197570B2 (en) Congestion control in packet switches
CN110166367A (zh) 一种分组网络中控制流量的方法及装置
CN110351187B (zh) 数据中心网络中路径切换粒度自适应的负载均衡方法
EP1152574A2 (en) Packet switching system and method
US20050047405A1 (en) Switching device for controlling data packet flow
JP4376855B2 (ja) パケット通信品質制御装置
US7602797B2 (en) Method and apparatus for request/grant priority scheduling
WO2024131109A1 (zh) 基于动态运算的队列门控调度方法、系统和存储介质
JPH11298523A (ja) パケット・スケジューリング方法
US11729099B2 (en) Scalable E2E network architecture and components to support low latency and high throughput
US8159944B2 (en) Time based queuing
Ghaffar et al. The output-controlled round robin scheduling in differentiated services edge switches
JP3972370B2 (ja) ネットワーク内のrncとノードbとの間のダウンリンク通信における差別化スケジューリング方法
KR102123476B1 (ko) 확률적 성능이 개선된 레귤레이션 기능을 수행하는 스케줄러
JPH1168787A (ja) パケット・スケジューリング方法
JP4194972B2 (ja) パケット通信品質制御装置
CN116708302A (zh) 一种数据中心网络中基于自适应切换粒度的负载均衡系统
CN116436863A (zh) 报文调度方法、网络设备、存储介质及计算机程序产品
JP2009171372A (ja) 送信制御機能を備えるパケット転送装置
Zaidi et al. Simplified Static Image Face Detection Algorithm
JP2004104571A (ja) パケット転送制御方法及び装置並びにソフトウェア及び記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080812

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

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

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

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4279281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250