JPH10164136A - パケット通信装置及び方法 - Google Patents

パケット通信装置及び方法

Info

Publication number
JPH10164136A
JPH10164136A JP32251796A JP32251796A JPH10164136A JP H10164136 A JPH10164136 A JP H10164136A JP 32251796 A JP32251796 A JP 32251796A JP 32251796 A JP32251796 A JP 32251796A JP H10164136 A JPH10164136 A JP H10164136A
Authority
JP
Japan
Prior art keywords
packet
queue
output
length
cell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP32251796A
Other languages
English (en)
Inventor
Yoshihiro Oba
義洋 大場
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP32251796A priority Critical patent/JPH10164136A/ja
Publication of JPH10164136A publication Critical patent/JPH10164136A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 上位レイヤパケットを分割して成る固定長の
パケットをインターリーブに出力する際に上位レイヤパ
ケット長を考慮してサービスの公平性を保証する。 【解決手段】 送信待ちの下位レイヤパケットを蓄積す
るパケットキューと、各パケットキュー対応に蓄積され
ている下位レイヤパケットが属する上位レイヤパケット
のパケット長を記憶するパケット長記憶手段と、この上
位レイヤパケット長の情報を用いて下位レイヤパケット
を出力するためのパケットキューを選択し、同一の上位
レイヤパケットに所属する下位レイヤパケットを出力し
終えるまで選択しつづけるスケジューリング手段とを備
える。このスケジューリング手段は、同一の上位レイヤ
パケットに属するパケットが全部そろうまで待たずに該
パケットの出力を開始することも可能である。また、2
つの最終パケット間の到着パケット数をカウントするこ
とによりパケット長を測定することもできる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、上位レイヤパケッ
トを固定長パケットに分割して伝送するパケット通信装
置及び方法に関する。
【0002】
【従来の技術】ATM (Asynchronous Transfer Mode)伝送
方式を用いたパケット網では、セルと呼ばれる53オクテ
ットの固定長のパケットが伝送される。ATM 方式におい
ては、セルのヘッダ部に書かれたVCI (Virtual Channel
Identifier)、VPI (Virtual Path Identifier) により
コネクションが識別される。
【0003】一般に、ATM レイヤより上位レイヤのパケ
ットは、複数のATM セルに分割されて伝送される。ATM
レイヤと上位レイヤとの間に定義され、上位レイヤパケ
ットをATM セルに分解あるいはATM セルから上位レイヤ
パケットを組立てるレイヤをAAL (ATM Adaptation Laye
r)と呼び、サービスクラスに応じて異なるAAL 処理が用
意されている。
【0004】AAL 処理のうち、セル単位の処理をSAR (S
egmentation and Reassembly) 、上位レイヤパケット単
位の処理をCS (Convergense Sublayer) と呼ぶ。CSの中
で各サービスクラス毎に定義される部分をCPCS (Common
Part Convergense Sublayer) 、サービス毎に依存して
定義される部分をSSCS(Service Specific Convergense
Sublayer) と呼ぶ。
【0005】特に、高速処理に適したAAL 処理としてAA
L5と呼ばれる方式がある。これは、セルヘッダ中の継続
表示ビットと呼ばれる1ビットの情報を用いてAAL 処理
を行なう。具体的には送信側は上位レイヤパケットの最
終セルに対してのみ継続表示ビットをオフにし、受信側
では、継続表示ビットがオフとなるまでは受信セルが同
一の上位レイヤパケットに所属するとみなしてパケット
の組立てを行なう。これによりオーバーヘッドが少な
く、かつ、簡単なAAL 処理が可能となる。このような理
由から通常のデータ通信においては、AAL5が使用され
る。
【0006】しかしながら、AAL5を使用した場合には以
下の問題がある。AAL5が上位レイヤパケットの境界を認
識するために使用可能な情報は継続表示ビットのみであ
るため、1つのVC (Virtual Connection) の中に異なる
上位レイヤパケットに所属するセルをインターリーブで
きない。これは、同一出力VCで異なる上位レイヤパケッ
トを識別するための識別子を各セルに付加することを行
わないAAL 処理の場合に生じる問題である。
【0007】ここで、異なる上位レイヤパケットに属す
るセルをノンインターリーブに出力しなければならない
代表的な例として以下のようなものがある。1)現在、
ATM フォーラムでは、ポイント- ポイント通信または、
ポイント-マルチポイント通信の標準化を中心に行なっ
ているが、マルチポイント- ポイント、マルチポイント
- マルチポイント通信も検討している。複数のVCを1つ
のVCに多重する場合には、ATM スイッチにおいて異なる
入力VCからのセルをノンインターリーブに出力する機能
が必須となる。
【0008】2)IPパケットをATM セルで運ぶ場合に、
ルータがATM スイッチ機能も有し、IPフローとATM VCを
1対1に対応させることにより、ルータにおいて、IPレ
イヤまで処理を上げることなく、ATM レベルでIPパケッ
トのスイッチングを行なう技術がある。IPフローがIPソ
ースネットワークアドレス、宛先ネットワークアドレス
のペアで定義される場合には、各ルータでネットワーク
数の2 乗のオーダの数のVCが必要となる。VC数を削減す
るためには、同一の宛先アドレスをもつフローを一つの
VCに多重すればよいが、このためには、異なるソースネ
ットワークアドレスに対応する入力VCからのセルをノン
インターリーブに出力する必要がある。
【0009】現在、AAL5のセルをノンインターリーブに
出力する方法として、文献「W. Ren, K. Siu, and H. S
uzuki, "Performance Evaluation of Multipoint-Point
ABRand UBR", ATM Forum Technical Contribution, N
o.96-1402, 1996 」がある。
【0010】これは、以下のようなものである。入力VC
毎にセルキューおよびパケット数カウンタを設け、AAL5
の継続表示ビットがオフであるセルをセルキューに入力
する毎に対応するVCのパケット数カウンタをインクリメ
ントし、AAL5の継続表示ビットがオフであるセルをセル
キューから出力する毎に対応するVCのパケット数カウン
タをデクリメントする。さらに、セル出力時にはパケッ
ト数カウンタが1以上のセルキューからラウンドロビン
に出力キューを選択し、いったん選択したセルキュー
は、継続表示ビットがオフであるセルを出力するまでは
継続して選択される。
【0011】
【発明が解決しようとする課題】しかしながら、上記方
式では、大きく以下の2つの問題点がある。まず第一
に、上記方式では、上位レイヤのパケット長が考慮され
ないため、上位レイヤで何らかのフロー制御を行なわな
い場合には、上位レイヤパケット長が大きいセルが多い
セルキューほど、高いスループットを得ることになり、
サービスの公平性という点で問題が出てくる。
【0012】また、上位レイヤのパケット長を考慮する
には少なくともセルキュー内の先頭の上位レイヤパケッ
トのパケット長を把握する必要があるが、AAL5パケット
のように、パケット長が書かれているフィールドがパケ
ットのヘッダ部ではなく、トレイラ部にある場合には、
セルキューの先頭からパケット長フィールドの位置が固
定ではないため、パケット長をすぐには把握することが
できない。さらに、異なる上位レイヤパケットが多重さ
れる場合には、パケット長フィールドの位置が上位レイ
ヤプロトコルにより変わるため、上位レイヤパケットの
フォーマットに依存せずにパケット長を把握できるのが
望ましい。
【0013】第二に、上記方式では、パケット数カウン
タが1以上の場合、すなわち、セルキュー内の先頭の上
位レイヤパケットがすべてセルキューに蓄積された後で
なければスケジューリングが行なわれない(このような
スケジューリングをノンカットスルー・スケジューリン
グと呼ぶ)ため、パケット長が大きいパケットほど遅延
時間が大きくなってしまう。
【0014】以上の問題点に鑑み、本発明は、ノンイン
ターリーブに下位レイヤパケット(例えばセル)を出力
しつつサービスの公平性を担保することが可能なスケジ
ューリング機能を備えたパケット通信装置及び方法を提
供することを目的とする。
【0015】
【課題を解決するための手段】本発明(請求項1)は、
上位レイヤパケットを分割して成る固定長の下位レイヤ
パケットを出力するパケット通信装置において、出力待
ちの下位レイヤパケットを蓄積するための複数のパケッ
トキューと、各パケットキュー対応にパケットキューに
蓄積されている下位レイヤパケットが所属する上位レイ
ヤパケットのパケット長の情報を記憶するためのパケッ
ト長記憶手段と、このパケット長記憶手段に記憶される
上位レイヤパケット長の情報を用いて、下位レイヤパケ
ットの出力を許可するパケットキューを選択するパケッ
トスケジューリング手段とを具備することを特徴とす
る。
【0016】上記で記憶される上位レイヤパケット長の
情報は、後述するように固定長パケット数をカウントす
ることにより得ても構わないし、パケット長フィールド
を含む固定長パケットからパケット長の情報を抽出する
ことにより得ても構わない。
【0017】これにより、上位レイヤのパケット長を考
慮して下位レイヤパケットのスケジューリングを行うこ
とが可能になり、サービスの公平性が担保される。ここ
で、前記パケットスケジューリング手段は、選択したパ
ケットキューに蓄積された下位レイヤパケットが同一の
上位レイヤパケットに所属するものである限りこの下位
レイヤパケットを出力し終えるべく該パケットキューを
選択しつづけることが好ましい(請求項2)。
【0018】これにより、上位レイヤのパケット長を考
慮して下位レイヤパケットのノンインターリーブな出力
をスケジューリングすることが可能になる。本発明(請
求項3)は、パケット長の情報がそのヘッダ部に記入さ
れていない可変長パケットを出力するパケット通信装置
において、出力待ちのパケットを蓄積するための複数の
パケットキューと、このパケットキューに蓄積されてい
るパケットのパケット長の情報もしくはこの情報が記憶
されている前記パケットキュー内の位置を検出するパケ
ット長検出手段と、各パケットキュー対応にこのパケッ
ト長検出手段により検出されたパケット長の情報もしく
はパケットキュー内位置を記憶するためのパケット長記
憶手段と、このパケット長記憶手段に記憶されたパケッ
ト長の情報もしくはパケットキュー内位置に基づいて得
られるパケット長の情報を用いて、パケットの出力を許
可するパケットキューを選択するパケットスケジューリ
ング手段とを具備することを特徴とする。
【0019】上記のパケット長情報の検出は、後述する
ように該パケットを分割した下位レイヤパケットの数を
カウントすることにより実現しても構わないし、該パケ
ットのパケット長フィールドからパケット長の情報を抽
出することにより実現しても構わない。
【0020】これにより、AAL5パケットのようなパケッ
ト長をすぐには把握することのできないパケットに対し
ても、パケット長を考慮したスケジューリングを行うこ
とが可能になり、サービスの公平性が担保される。
【0021】本発明(請求項4)は、上位レイヤパケッ
トを分割して成り、該上位レイヤパケットの最終下位レ
イヤパケットか否かを識別するための最終パケット識別
情報を含む固定長の下位レイヤパケットを出力するパケ
ット通信装置において、上位レイヤパケットのパケット
長をある最終下位レイヤパケットを受信してから次の最
終下位レイヤパケットを受信するまでに受信した固定長
パケット数をカウントすることにより測定する上位レイ
ヤパケット長測定手段と、この上位レイヤパケット長測
定手段により測定された上位レイヤパケット長を用いて
下位レイヤパケットの出力を制御する制御手段とを具備
することを特徴とする。
【0022】これにより、上位レイヤパケットのパケッ
トフォーマットに依存することなく、上位レイヤパケッ
ト長を把握して、下位レイヤパケットの出力制御(例え
ばスケジューリング)をすることが可能になる。
【0023】本発明(請求項5)は、上位レイヤパケッ
トを分割して成る固定長の下位レイヤパケットを出力す
るパケット通信装置において、出力待ちの下位レイヤパ
ケットを蓄積するための複数のパケットキューと、ある
パケットキューに同一の上位レイヤパケットに所属する
下位レイヤパケットが全て蓄積されるのを待たずに該下
位レイヤパケットの出力が許可されるように該パケット
キューを選択可能とし、選択されたパケットキューに蓄
積された下位レイヤパケットが同一の上位レイヤパケッ
トに所属するものである限りこの下位レイヤパケットを
出力し終えるべく該パケットキューを選択しつづけるパ
ケットスケジューリング手段とを具備することを特徴と
する。
【0024】これにより、ノンインターリーブなスケジ
ューリングを行ないつつ、上位レイヤパケットの先頭下
位レイヤパケットが到着すればただちにスケジューリン
グを行なう(このようなスケジューリングをカットスル
ー・スケジューリングと呼ぶ)ことが可能になり、パケ
ット長が大きいと遅延時間が大きくなってしまう問題を
解決できる。
【0025】ここで、前記下位レイヤパケットを、上位
レイヤパケットの最終パケットか否かを識別するための
最終パケット識別情報を含むものとし、前記パケットス
ケジューリング手段は、現在選択中のパケットキューが
所定時間空である場合には、最終パケットであることを
示す最終パケット識別情報を記入した下位レイヤパケッ
トを新たに生成して出力することが好ましい(請求項
6)。
【0026】これにより、ノンインターリーブ且つカッ
トスルー・スケジューリングを行った場合に、後続の下
位レイヤパケットが到着しないために空のパケットキュ
ーを選択しつづけてしまうという問題を解決できる。
【0027】ここで、前記所定時間は、選択中のパケッ
トキューが空になってから全パケットキューのキュー長
の和が一定値を越えない間としても良い(請求項7)。
これにより、選択中のパケットキューが空である場合
に、選択中のパケットキューのサービスを中止するまで
の待ち時間を本パケット通信装置内の蓄積パケット数に
応じて変えることができる。
【0028】また、この発明においても、各パケットキ
ュー対応にパケットキューに蓄積されている下位レイヤ
パケットが所属する上位レイヤパケットのパケット長の
情報を記憶するためのパケット長記憶手段を更に設け、
前記パケットスケジューリング手段が、このパケット長
記憶手段に記憶される上位レイヤパケット長の情報を用
いて、下位レイヤパケットの出力を許可するパケットキ
ューの選択を行う(請求項8)ことにより、上位レイヤ
のパケット長を考慮して下位レイヤパケットのノンイン
ターリーブ且つカットスルーなスケジューリングを行う
ことが可能になる。
【0029】本発明(請求項9)は、ノンインターリー
ブなスケジューリングを行う請求項2または5の発明に
於けるパケットスケジューリング手段が、各パケットキ
ューに割り当てられた出力許可数が残っているパケット
キューを下位レイヤパケットの出力を許可するパケット
キューとして選択し、同一の上位レイヤパケットに所属
する下位レイヤパケットを出力し終えるまでは該パケッ
トキューの残っている出力許可数を超えても該パケット
キューを選択しつづけることを特徴とする。
【0030】このとき、同一の上位レイヤパケットに所
属する下位レイヤパケットが全てパケットキューに蓄積
されるのを待たずに該下位レイヤパケットの出力を許可
するように該パケットキューを選択した場合に、残って
いる出力許可数を超えても選択しつづける動作を行うこ
ととし、同一の上位レイヤパケットに所属する下位レイ
ヤパケットが全てパケットキューに蓄積されているなら
ば、該パケットキューを下位レイヤパケットの出力を許
可するパケットキューとして選択するのは該同一の上位
レイヤパケットに所属する下位レイヤパケットの数が残
っている出力許可数以下の場合とすることもできる(請
求項10)。
【0031】そして、請求項9の発明に於けるパケット
スケジューリング手段は、各パケットキューに割り当て
られた出力許可数に基づいた出力の終了後、再度各パケ
ットキューに出力許可数を割り当てる際に、残っていた
出力許可数を超えて下位レイヤパケットを出力したパケ
ットキューについては超えた分に応じて差し引いた数を
割り当てるものであることが好ましい(請求項11)。
【0032】これにより、下位レイヤパケットをノンイ
ンターリーブに出力した結果、出力許可数を超えるよう
なスケジューリングが行なわれるが、次の出力許可数の
割り当て時に超えた分を調整することにより、サービス
の公平性を保証したスケジューリングが可能になる。ま
た、カットスルー・スケジューリングを行なう場合に、
サービスしようとするパケットのパケット長があらかじ
めわからない場合にも、公平性を保証したスケジューリ
ングが可能になる。
【0033】さらに、前記パケットスケジューリング手
段が、各パケットキューに割り当てられた出力許可数に
基づいた出力の終了後、再度各パケットキューに出力許
可数を割り当てる際に、残っていた出力許可数を超えて
下位レイヤパケットを出力したパケットキューが空であ
り、且つ、該パケットキューの出力後に全パケットキュ
ーが空になった時が存在する場合には、前記差し引きを
行わない数を該パケットキューに割り当てるようにして
も良い(請求項12)。このように、本パケット通信装
置が全体としてビジーでなくなった場合には、次の出力
許可数を初期状態に戻すことにより、さらなる公平性の
保証が可能である。
【0034】上述したスケジューリングは、具体的に
は、例えば次のようにして実現できる。すなわち、各パ
ケットキュー対応に出力可能な下位レイヤパケットの量
を示すカウンタ値を保持するカウンタ手段を更に設け、
前記パケットスケジューリング手段は、(a)このカウ
ンタ手段に保持されたカウンタ値が正で且つ空でないパ
ケットキューを下位レイヤパケットの出力を許可するパ
ケットキューとして選択し、同一の上位レイヤパケット
に所属する下位レイヤパケットを出力し終えるまで該パ
ケットキューを選択しつづけ、(b)対応するカウンタ
値を下位レイヤパケットを出力した分に応じてデクリメ
ントし、(c)選択候補ではなくなったパケットキュー
のカウンタ値を、該カウンタ値を所定の値だけインクリ
メントした値及び該所定の値のうち小さい方の値に設定
し、全パケットキューが選択候補でなくなるまではカウ
ンタ値を増加させたパケットキューを選択候補とはしな
いようにし、(d)出力後に全パケットキューが空にな
ったならば、新たな下位レイヤパケットが各パケットキ
ューに到着した直後までに、全カウンタ値をそれぞれの
パケットキューに対応する所定の値に設定した状態にな
っているように、カウンタ値を制御する(請求項1
3)。
【0035】上記(a)は、出力しようとする同一の上
位レイヤパケットに所属する下位レイヤパケットの量が
保持されたカウンタ値より大きくてもその下位レイヤパ
ケットの出力を許可するようにそのパケットキューを選
択可能であることを意味する。上記(b)は、出力しよ
うとするパケット量がカウンタ値より大きかった場合、
カウンタ値が負になることを意味する。出力した分をデ
クリメントする際、パケット長記憶手段がある場合はそ
のパケット長を利用しても良い。上記(c)によれば、
カウンタ値が負の場合は空になっても所定の値より小さ
い値にしかならず、このことは、残っていた出力許可数
を超えて出力したパケットキューについては超えた分に
応じて差し引いた数を割り当てることを意味する。上記
(d)は、全パケットキューが空になったなら、残って
いた出力許可数を超えて出力したパケットキューにも差
し引きを行わない数を割り当ててあげることを意味す
る。
【0036】ここで、上記(d)を、例えば次のように
実現しても良い。すなわち、全パケットキューが空にな
る毎に異なる値を記憶するビジー期間記憶手段と、パケ
ットキュー対応に最後に下位レイヤパケットを出力した
時の前記ビジー期間記憶手段の値を保持する出力時ビジ
ー期間記憶手段とを更に設け、前記パケットスケジュー
リング手段は、あるパケットキューに新たな下位レイヤ
パケットが入力された時に該パケットキューに対応する
出力時ビジー期間記憶手段の値が前記ビジー期間記憶手
段の値と異なるならば、この出力時ビジー期間記憶手段
の値を前記ビジー期間記憶手段の値に設定するとともに
対応するカウンタ値を所定の値に設定する(請求項1
4)。
【0037】本発明(請求項15)は、下位レイヤパケ
ットを複数の仮想コネクションから受信し、この受信し
た下位レイヤパケットを受信に用いられた仮想コネクシ
ョンに対応するパケットキューに入力する受信手段と、
ノンインターリーブなスケジューリングを行う請求項2
または5の発明に於けるスケジューリング手段により出
力の許可された下位レイヤパケットを一つの仮想コネク
ションに対して送信する送信手段とを更に具備したこと
を特徴とする。
【0038】これにより、複数の仮想コネクションから
受信した下位レイヤパケットを、公平性の保証されたノ
ンインターリーブなスケジューリングを行いつつ、一つ
の仮想コネクションに多重して転送することが可能にな
る。以上に説明した装置に係る各発明は、例えば請求項
16〜19に示すように、方法の発明としても成立す
る。
【0039】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施形態について説明する。なお、本発明のパケッ
ト通信装置は、パケット交換機、パケット多重化装置な
ど、固定長パケットの多重化を行なう装置において、パ
ケットのバッファリングが生じる部分のいずれにも適用
可能である。また、パケット交換機に適用する場合に
は、従来のパケット交換機の特定の入出力ポートに本実
施形態のパケット通信装置を接続する構成でもよい。
【0040】図1に、本発明の第1の実施形態に係るパ
ケット通信装置の構成例を示す。本発明の第1の実施形
態のパケット通信装置は、AAL5パケット(可変長/
上位レイヤパケット)を分割して成るATMのセル(固
定長/下位レイヤパケット)をノンインターリーブかつ
ノンカットスルーに出力するためのものであり、セル入
力部、セル出力部、出力待ちのセルを蓄積するためのV
C毎のパケットキュー(セルキュー)11〜13、スケ
ジューリング手段から構成される。また、スケジューリ
ング手段は、VC毎に現在到着中の上位レイヤパケット
のパケット長をカウントするためのパケット長カウンタ
21〜23と、パケット長カウンタがカウントを終了し
たパケット長を蓄積するためのパケット長キュー31〜
33から構成されるパケット長記憶手段とを有する。
【0041】図1において、セルはすべてAAL5パケ
ットを分割したセルであり、白丸または黒丸で表され
る。ここで、白丸は継続表示ビットがオンのセル(非最
終セル)、黒丸は継続表示ビットがオフのセル(最終セ
ル)である。
【0042】本パケット通信装置に到着したセルは、セ
ル入力部においてヘッダ処理が行なわれ、入力セルが所
属するVCに対応するセルキューに入力される。このと
き、対応するパケット長カウンタが1だけインクリメン
トされる。インクリメント後、もし、入力セルの継続表
示ビットがオフであれば、パケット長カウンタの値をパ
ケット長キューに入力するとともに、パケット長カウン
タを0にクリアする。
【0043】図1において、セルキュー1(11)へは
上位レイヤパケットの最終セルがまだ到着していないた
め、パケット長キュー1(31)は空である。セルキュ
ー2(12)へは、上位レイヤパケットの最終セルがす
でに2個到着しており、それぞれの最終セルの到着時点
のパケット長カウンタ2(22)の値=2がパケット長
キュー2(32)に入力されている。さらにセルキュー
2のパケット長カウンタ(22)は、現在は3番目の上
位レイヤパケットのパケット長をカウント中である。ま
た、セルキュー3(13)は上位レイヤパケットの最終
セル到着後、パケット長カウンタ(23)の値=3がパ
ケット長キュー3(33)に入れられ、パケット長カウ
ンタ3(23)がクリアされた状態を表している。
【0044】スケジューリング手段は、各VCキュー内
のパケット長キューの先頭にあるパケット長の情報を基
に出力VCキューを選択する。選択アルゴリズムとして
は、一般の可変長パケットのスケジューリングアルゴリ
ズムが使用可能である。
【0045】ここでは、パケット長キューが空でないよ
うなセルキューを選択するものとする。例えば、図1に
おいて、セルキュー1(11)は、セルキューにはセル
が溜っているものの、パケット長キュー1(31)が空
であるため選択の対象とはならない。すなわち、ノンカ
ットスルーなスケジューリングとなる。
【0046】スケジューリング手段は現在選択している
VCのVCIをセル出力部に通知する。出力セルキュー
が選択されない場合には、VCIとして負の値をセル出
力部に通知する。また、セル出力部からスケジューリン
グ手段へは、出力セルが最終セルかどうかが通知され、
最終セル以外であった場合には、現在選択中のVCを引
続き選択するようにする。すなわち、ノンインターリー
ブなスケジューリングとなる。
【0047】セル出力部は、スケジューリング手段から
通知されたVCIに対応するセルキューにセルがあれば
先頭セルを取り出して出力する。負の値を持つVCIが
通知された場合には空セルが出力される。さらに、出力
セルが最終セルであるかどうかをスケジューリング手段
に通知する。最終セルが出力されると、対応するパケッ
ト長はパケット長キューから削除される。
【0048】例えば、図1において、スケジューリング
手段が所定のアルゴリズムによりVC2、VC3、 V
C2の順に出力VCを選択した場合には、セルキュー2
から2個、セルキュー3から3個、セルキュー2から2
個、の順にセルが出力される。
【0049】図2には、本発明の第2の実施形態に係る
パケット通信装置の構成例を示す。これは、ATMにお
けるAAL5(上位レイヤ)パケットのセル(下位レイ
ヤパケット)をノンインターリーブかつノンカットスル
ーに出力するためのものであり、かつ、上位レイヤパケ
ットのパケット長が上位レイヤパケットのヘッダまたは
トレイラ部分の定められた位置に書き込まれており、こ
の情報をパケット通信装置が読みとることができる場合
の構成例である。
【0050】図2において、パケット通信装置は、セル
入力部、セル出力部、出力待ちのセルを蓄積するための
VC毎のパケットキュー(セルキュー)11〜13、ス
ケジューリング手段から構成される。また、スケジュー
リング手段は、入力セルのペイロードから上位レイヤパ
ケットのパケット長フィールドを読み出すパケット長抽
出手段と、パケット長抽出手段が読み出したパケット長
を蓄積するためのパケット長キュー31〜33から構成
されるパケット長記憶手段とを有する。
【0051】図2において、セルはすべてAAL5パケ
ットを分割したセルであり、白丸または黒丸で表され
る。ここで、白丸は継続表示ビットがオンのセル(非最
終セル)、黒丸は継続表示ビットがオフのセル(最終セ
ル)である。
【0052】本パケット通信装置に到着したセルは、セ
ル入力部においてヘッダ処理が行なわれ、入力セルが所
属するVCに対応するセルキューに入力される。もし、
入力セルの継続表示ビットがオフであれば、パケット長
抽出手段は、入力セルのペイロード部内の定められたフ
ィールドからパケット長を読出して対応するVCのパケ
ット長キューに入力する。
【0053】図2において、セルキュー1(11)には
上位レイヤパケットの最終セルがまだ到着していないた
め、パケット長キュー1(31)は空である。セルキュ
ー2(12)へは、上位レイヤパケットの最終セルがす
でに2個到着しており、それぞれの最終セルが所属する
上位レイヤパケットのパケット長=2がパケット長キュ
ー2(32)に入力されている。また、セルキュー3
(13)には3セル分の上位レイヤパケットが1個到着
しており、したがって、パケット長=3がパケット長キ
ュー3(33)に入れられている。
【0054】スケジューリング手段は、各セルキュー内
のパケット長キューの先頭にあるパケット長の情報を基
に出力セルキューを選択する。選択アルゴリズムとして
は、一般の可変長パケットのスケジューリングアルゴリ
ズムが使用可能である。
【0055】ここでは、パケット長キューが空でないよ
うなセルキューを選択するものとする。例えば、図2に
おいて、セルキュー1(11)にはセルが溜っているも
のの、パケット長キュー1(31)が空であるため選択
の対象とはならない。すなわち、ノンカットスルー・ス
ケジューリングとなる。
【0056】また、スケジューリング手段は、現在選択
しているVCのVCIをセル出力部に通知する。出力V
Cが選択されない場合には、VCIとして負の値をセル
出力部に通知する。また、セル出力部からスケジューリ
ング手段へは、出力セルが最終セルかどうかが通知さ
れ、最終セル以外であった場合には、現在選択中のVC
を引続き選択するようにする。
【0057】セル出力部は、スケジューリング手段から
通知されたVCIに対応するセルキューにセルがあれば
先頭セルを取り出して出力する。負の値を持つVCIが
通知された場合には空セルが出力される。さらに、出力
セルが最終セルであるかどうかをスケジューリング手段
に通知する。
【0058】例えば、図2において、スケジューリング
手段が所定のアルゴリズムによりVC2、VC3、VC
2の順に出力VCを選択した場合には、セルキュー2の
セルキューから2個、セルキュー3のセルキューから3
個、セルキュー2のセルキューから2個、の順にセルが
出力される。
【0059】これにより、上位レイヤパケットのパケッ
ト長が最終セルのペイロード部に含まれる場合に、第1
の実施形態のようなカウンタを用いずにパケット長情報
を抽出することができる。
【0060】ここで、上記第1/第2の実施形態におけ
るパケット長記憶手段は、以上に示したように下位レイ
ヤパケットの出力のノンインターリーブなスケジューリ
ングに用いることができる他、上位レイヤパケットを組
み立てた後でその上位レイヤパケットに対してスケジュ
ーリングするような場合においても用いることができ
る。すなわち、AAL5パケットのように、可変長(上
位レイヤ)パケットで、かつ、パケット長の情報がパケ
ットのヘッダ部ではなく、トレイラ部分に書かれている
ような場合には、パケット長の情報をスケジューリング
手段が利用するために、上記パケット長記憶手段が必要
となる。
【0061】この場合、パケット長記憶手段は、カウン
トするかトレイラ部にアクセスすることに得たパケット
長の値またはパケット長の値が格納されているメモリ内
アドレスを、パケット長キューに入れるかまたは各パケ
ットの先頭部に付加することににより実現される。
【0062】次に、図3及び図4に、上記第1もしくは
第2の実施形態に係るパケット通信装置のスケジューリ
ング手段の動作例を示す。ここでは、AAL5パケット
のセルに対し、ノンカットスルーなノンインターリーブ
・スケジューリングを行なう場合、すなわち、AAL5
パケットの最終セルが到着したセルキューのみをノンイ
ンターリーブにサービスする場合について示す。
【0063】q[i]、f[i]、l[i](0<=i
<=N、N:VCIの最大値)をそれぞれ、VCキュー
iのセルキュー、パケット長キュー、パケット長カウン
タとする。servは、スケジューリング手段が現在選
択している出力VCキューの番号を表す。serv<0
のときはスケジューリング手段が出力VCキューを選択
していないことを表す。
【0064】スケジューリング手段は、初期化処理、セ
ル入力処理、セル出力処理の3種類の処理を行なう。初
期化処理(図3(a))は、システム起動時に1度実行
される。初期化処理では、まず、各VCキューiのセル
キューに対し、init_queue(q[i])、i
nit_queue(f[i])が実行される。ここ
で、init_queue(x)は、キューxを初期化
する処理を表す。次に、serv:=−1、各VCiに
ついてl[i]:=0、とした後、セル選択アルゴリズ
ムに依存した処理sched_init_NCT(A)
を実行する。ここで、sched_init_NCT
(A)は、セル選択アルゴリズムAに依存したノンカッ
トスルー用の初期化処理である(以上S1)。
【0065】セル入力処理(図3(b))では、以下の
ステップで到着セルが処理される。到着セルをCとす
る。まず、CのVPI/VCI値を得るために、i:=
vci(C)とする。vci(C)は、セルCのヘッダ
部のVPI/VCI値を返す関数である。次に、セルC
をセルキューq[i]に入れるためにenqueue
(q[i],C)を実行する。さらに、パケット長カウ
ンタl[i]を1だけインクリメントする(以上S
2)。
【0066】次に、eof(C)=0であれば(S3
No)、セル入力処理は終了する。ここで、eof
(C)は、セルCのヘッダの継続表示ビットを見て、C
がAAL5パケットの最終セルであれば1を、そうでな
ければ0を返す関数である。一方、eof(C)=1で
ある場合、もし、len(f[i])=0であれば(S
4Yes)、到着が完了したAAL5パケットをスケジ
ューリングするためにsend_in_NCT(A,
i)を実行する(S5)。ここで、len(x)は、キ
ューxのキュー長(蓄積エントリ数)を返す関数であ
る。また、send_in_NCT(A、i)は、ノン
カットスルーの場合のセル選択アルゴリズムAに依存し
た、VCキューiに関する入力処理である。
【0067】最後に、キュー長カウンタl[i]の値を
f[i]に入れるためにenqueue(f[i],l
[i])を実行し、l[i]:=0とする(S6)。セ
ル出力処理(図4)では、以下のステップで出力セルが
処理される。まず、serv<0なら(S11 Ye
s)、次の出力セルキューを選択するために、ser
v:=sched_choose(A)を実行する(S
12)。ここで、sched_choose(A)は、
セル選択アルゴリズムAに依存して出力するセルキュー
を返す関数である。
【0068】次に、serv>=0なら(S13 Ye
s)、セルキューq[serv]からセルを取り出すた
めに、C:=dequeue(q[serv])を実行
する。dequeue(x)は、キューxの先頭のエン
トリを取り出す関数である。次に、セルCが最終セルか
どうかをチェックするためにEOF:=eof(C)を
実行し、セルCを出力するためにtransmit
(C)を実行する(以上S14)。
【0069】その後、出力したセルがAAL5パケット
の最終セルであれば、すなわち、EOF=1であれば
(S15 Yes)、パケット長キューf[serv]
から、出力したAAL5パケットのパケット長を取り出
すために、L:=dequeue(f[serv])を
実行し、セルキューservの次のパケットをスケジュ
ーリングするために、send_out_NCT(A,
L,i)を実行し、最後に、このセルキューの選択をと
りやめるためにserv:=−1とする。ここで、se
nd_out_NCT(A,L,i)は、ノンカットス
ルーの場合のセル選択アルゴリズムAに依存した、VC
キューiに関する出力処理である。その際、出力パケッ
トのパケット長Lの情報がsend_out_NCT
(A,L,i)内で使用される(以上S16)。
【0070】次に、図5及び図6に、図3及び図4に示
したノンカットスルー・スケジューリングにおいて、セ
ル選択アルゴリズムとして特願平8−239159に示
されるような重み付け公平キューイング(WFQ)アル
ゴリズムを採用した場合の、セル選択アルゴリズム依存
部分のフローチャートを示す。
【0071】このセル選択アルゴリズムにおいては、2
個のスケジューリングキューQ、Q’を使用する。Qは
現在のラウンドで出力待ちのVCIを入れるためのキュ
ー、Q’は次のラウンドで出力待ちのVCIを入れるた
めのキューである。ここで、ラウンドとは、各セルキュ
ーiから最大w[i]個セルを送出できる期間のことで
ある。w[i]は、VCiに対して割当てられるサービ
スに関する重みであり、システムの最大パケット長以上
の値をとる。また、各VCキューiは、現在のラウンド
で出力可能なセル数を記憶するカウンタc[i]を持
つ。
【0072】sched_init_NCT(WFQ)
では、図5(a)に示すように、スケジューリングキュ
ーQ、Q’を初期化するためにinit_queue
(Q)、init_queue(Q’)を実行する。次
に、各VCキューiに対してカウンタc[i]にw
[i]を設定するために、c[i]:=w[i]を実行
する(以上S21)。
【0073】sched_in_NCT(WFQ,i)
では、図6(a)に示すように、スケジューリングキュ
ーQに入力VCI=iを入れるためにenqueue
(Q、i)を実行する(S31)。
【0074】send_choose(WFQ)は、図
5(b)に示すように、選択VCIを初期化するために
i:=−1とする(S22)。次に、スケジューリング
キューQのキュー長を調べる。len(Q)=0であれ
ば(S23 Yes)、QとQ’を入れ換えるために、
swap(Q、 Q’)を実行する(S24)。その
後、もう一度スケジューリングキューQのキュー長を調
べる。len(Q)>0なら(S25 Yes)、Qか
ら出力VCIを取り出すためにi:=dequeue
(Q)を実行する(S26)。最後にreturn
(i)で出力VCI値iを返す(S27)。
【0075】sched_out_NCT(WFQ,
L,serv)では、図6(b)に示すように、まず、
カウンタ値c[serv]をパケット長Lだけデクリメ
ントするために、c[serv]:=c[serv]−
Lを実行し、f[serv]の先頭の値を参照するため
に、L’:=head(f[serv])とする(S3
2)。ただし、head(x)は、キューxの先頭のエ
ントリを取り出すことなく参照する関数である。
【0076】次に、パケット長キューf[serv]が
空でなく、かつ、カウンタ値が正であれば(S33 Y
es)、servをスケジューリングQに入れる(S3
4)。そうでなく(S33 No)、もし、パケット長
キューf[serv]が空でなければ(S35 Ye
s)、c[serv]<=0であるため、次のラウンド
でサービスさせるためにservをスケジューリング
Q’に入れ、c[serv]をw[serv]だけイン
クリメントさせる(S36)。もし、パケット長キュー
f[serv]が空であれば(S35 No)、c[s
erv]をw[serv]にリセットする(S37)。
【0077】以下には、AAL5パケットを分割したセ
ルに対し、カットスルーなノンインターリーブ・スケジ
ューリングを行なう場合、すなわち、AAL5パケット
の最終セルが未到着なセルキューもノンインターリーブ
にサービスされる場合について説明する。なお、カット
スルー・スケジューリングを行う場合のパケット通信装
置の構成は、図1もしくは図2に示したものと同様にな
り、スケジューリング手段の動作を以下のようにする。
【0078】図7〜9に本ケースのスケジューリング手
段の一つの動作例を示す。本例では、出力中のVCの最
終セルがあらかじめ定められた時間(MAXWAITセ
ル時間)内に届かない場合には、継続表示ビットをオフ
にしたダミーセルがパケット通信装置内で生成、出力さ
れ、以降、継続表示ビットをオフにしたセルが到着する
までこのVCの到着セルは廃棄されるものとする。
【0079】ここで、MAXWAITの値は、VCごと
に異なる値に設定してもよい。その場合には、VCのト
ラヒックパラメータや送出レートに基づいてMAXWA
ITの値を決めてもよい。
【0080】q[i]、f[i]、l[i](0<=i
<=N)をそれぞれ、VCキューiのセルキュー、VC
キューiのパケット長キュー、パケット長カウンタとす
る。servは、スケジューリング手段が現在選択して
いるか出力VCキューの番号を表す。serv<0のと
きはスケジューリング手段が出力VCキューを選択して
いないことを表す。
【0081】また、waitは現在出力中のVCのセル
キューが空になってから経過した時間をカウントするカ
ウンタ、Tはシステムの系内セル数をカウントするカウ
ンタである。なお、Tは使用されない場合もある。ま
た、error[i]は、VCキューiのセルキューが
選択されており、かつセルキューが空になってからMA
XWAIT時間経過したかどうかを記憶するフラグであ
る。
【0082】スケジューリング手段は、初期化処理、セ
ル入力処理、セル出力処理の3種類の処理を行なう。初
期化処理(図7)は、システム起動時に1度実行され
る。初期化処理では、まず、各VCキューiのセルキュ
ーに対し、init_queue(q[i])、ini
t_queue(f[i])が実行される。ここで、i
nit_queue(x)は、キューxを初期化する処
理を表す。次に、serv:=0、wait:=0、
T:=0、各VCiについてl[i]:=0、erro
r[i]:=0とした後、セル選択アルゴリズムに依存
した処理sched_init_CT(A)を実行す
る。ここで、sched_init_CT(A)は、セ
ル選択アルゴリズムAに依存したカットスルー用の初期
化処理である(以上S41)。
【0083】セル入力処理(図8)では、以下のステッ
プで到着セルが処理される。到着セルをCとする。ま
ず、CのVPI/VCI値を得るために、i:=vci
(C)とする(S51)。vci(C)は、セルCのヘ
ッダ部のVPI/VCI値を返す関数である。
【0084】次に、現在出力中のVCのセルキューが空
になってからMAXWAIT時間経過していれば、すな
わち、error[i]=1なら(S52 Yes)、
セルCはセルキューq[i]には入れられず、さらにセ
ルCがAAL5パケットの最終セル、すなわちeof
(C)=1なら(S54 Yes)、error
[i]:=0としc[serv]をw[serv]にリ
セットする(S55)。
【0085】一方、error[i]=0であれば(S
52 No)、以下の処理を行なう。まず、セルCをセ
ルキューq[i]に入れるためにenqueue(q
[i],C)を実行し、l[i]およびTを1だけイン
クリメントした後、到着したセルをスケジューリングす
るために、send_in_CT(A,i)を実行する
(S53)。ここで、send_in_CT(A、
i)は、カットスルーの場合のセル選択アルゴリズムA
に依存した、VCキューiに関する入力処理である。次
に、eof(C)=0であれば、セル入力処理は終了す
る。ここで、eof(C)は、セルCのヘッダの継続表
示ビットを見て、CがAAL5パケットの最終セルであ
れば1を、そうでなければ0を返す関数である。一方、
eof(C)=1である場合(S56 Yes)、キュ
ー長カウンタl[i]の値をf[i]に入れるためにe
nqueue(f[i],l[i])を実行し、l
[i]:=0とする(S57)。
【0086】セル出力処理(図9)では、以下のステッ
プで出力セルが処理される。まず、serv<0なら
(S61 Yes)、次の出力セルキューを選択するた
めにserv:=sched_choose(A)を実
行する(S62)。ここで、sched_choose
(A)は、セル選択アルゴリズムAに依存して出力する
セルキューを返す関数である。
【0087】次に、serv<0なら(S63 No)
セル出力処理は終了する。serv>=0なら(S63
Yes)、まず、セルキューq[serv]にセルが
あるかどうか、すなわち、len(q[serv])>
0かどうかをチェックする。
【0088】このとき、len(q[serv])>0
(S64 Yes)であれば、以下の処理を行なう。ま
ず、wait:=0とし、セルキューq[serv]か
らセルを取り出すために、C:=dequeue(q
[serv])を実行する。dequeue(x)は、
キューxの先頭のエントリを取り出す関数である。次
に、セルCが最終セルかどうかをチェックするためにE
OF:=eof(C)を実行し、transmit
(C)を実行してセルCを出力し、Tを1だけデクリメ
ントする(以上S65)。
【0089】その後、出力したセルがAAL5パケット
の最終セルであれば、すなわち、EOF=1であれば
(S66 Yes)、パケット長キューf[serv]
から、出力したAAL5パケットのパケット長を取り出
すために、L:=dequeue(f[serv])を
実行し、パケットキューservの次のパケットをスケ
ジューリングするために、send_out_CT
(A,L,serv)を実行し、最後に、このパケット
キューの選択をとりやめるためにserv:=−1とす
る(S69)。ここで、send_out_CT(A、
L、i)は、カットスルーの場合のセル選択アルゴリズ
ムAに依存した、VCキューiに関するセル選択アルゴ
リズム依存出力処理である。その際、出力パケットのパ
ケット長Lの情報がsend_out_CT(A,L,
i)内で使用される。
【0090】一方、EOF=0であれば(S66 N
o)、パケットキューq[serv]が空、すなわち、
len(q[serv])=0かどうかをチェックす
る。len(q[serv])=0であれば(S67
Yes)、AAL5パケットの最終セルが未到着のまま
キューが空になったことを意味する。このとき、wai
t:=MAXWAITとする(S68)。
【0091】一方、len(q[serv])=0であ
ったならば(S64 No)、waitタイマーをデク
リメントするために、wait:=wait−1とする
(S70)。wait=0であれば(S71 Ye
s)、ダミー最終セルを送出し、error[i]:=
1とする(S72)。
【0092】図10〜11には、AAL5パケットを分
割したセルに対し、カットスルーなノンインターリーブ
・スケジューリングを行なう場合(パケット通信装置の
構成は、図1もしくは図2に示したものと同様)のスケ
ジューリング手段の別の動作例を示す。本例では、セル
出力中のVCの最終セルが到着していない状態でシステ
ムの系内セル数がTMAXを越えた場合には、継続表示
ビットをオフにしたダミーセルがパケット通信装置内で
生成、出力され、以降、継続表示ビットをオフにしたセ
ルが到着するまでこのVCの到着セルは廃棄されるもの
とする。
【0093】q[i]、f[i]、l[i](1<=i
<=N)をそれぞれ、VCキューiのパケットキュー、
パケット長キュー、パケット長カウンタとする。ser
vは、スケジューリング手段が現在選択しているか出力
VCキューの番号を表す。serv<0のときはスケジ
ューリング手段が出力VCキューを選択していないこと
を表す。
【0094】また、Tはシステムの系内セル数をカウン
トするカウンタである。また、error[i]は、各
VCごとに、現在出力中のVCのセルキューが空になっ
てからT>TMAXになったかどうかを記憶するフラグ
である。
【0095】スケジューリング部は、初期化処理、セル
入力処理、セル出力処理の3種類の処理を行なう。初期
化処理(図10)は、システム起動時に1度実行され
る。初期化処理では、まず、各VCキューiのセルキュ
ーに対し、init_queue(q[i])、ini
t_queue(f[i])が実行される。ここで、i
nit_queue(x)は、キューxを初期化する処
理を表す。次に、serv:=0、T:=0、各VCi
についてl[i]:=0、error[i]:=0とし
た後、セル選択アルゴリズムに依存した処理sched
_init_CT(A)を実行する。ここで、sche
d_init_CT(A)は、セル選択アルゴリズムA
に依存したカットスルー用の初期化処理である(以上S
81)。
【0096】セル入力処理は、図8のセル入力処理と同
じ動作である。セル出力処理(図11)では、以下のス
テップで出力セルが処理される。まず、serv<0な
ら(S91 Yes)、次の出力セルキューを選択する
ためにserv:=sched_choose(A)を
実行する(S92)。ここで、sched_choos
e(A)は、セル選択アルゴリズムAに依存して出力す
るセルキューを返す関数である。
【0097】次に、serv<0なら(S93 No)
セル出力処理は終了する。serv>=0なら(S93
Yes)、まず、セルキューq[serv]にセルが
あるかどうか、すなわち、len(q[serv])>
0かどうかをチェックする。
【0098】このとき、len(q[serv])>0
であれば(S94 Yes)、以下の処理を行なう。ま
ず、セルキューq[serv]からセルを取り出すため
に、C:=dequeue(q[serv])を実行す
る。dequeue(x)は、キューxの先頭のエント
リを取り出す関数である。次に、セルCが最終セルかど
うかをチェックするためにEOF:=eof(C)を実
行し、transmit(C)を実行してセルCを出力
し、Tを1だけデクリメントする(以上S95)。
【0099】その後、出力したセルがAAL5パケット
の最終セルであれば、すなわち、EOF=1であれば
(S96 Yes)、パケット長キューf[serv]
から、出力したAAL5パケットのパケット長を取り出
すために、L:=dequeue(f[serv])を
実行し、セルキューservの次のパケットをスケジュ
ーリングするために、send_out_CT(A,
L,i)を実行し、最後に、このセルキューの選択をと
りやめるためにserv:=−1とする(S97)。こ
こで、send_out_CT(A,L,i)は、カッ
トスルーの場合のセル選択アルゴリズムAに依存した、
VCキューiに関するセル選択アルゴリズム依存出力処
理である。その際、出力パケットのパケット長Lの情報
がsend_out_CT(A,L,i)内で使用され
る。
【0100】一方、len(q[serv])=0であ
った場合(S94 No)、T>TMAXであれば(S
98 Yes)、ダミー最終セルを送出し、error
[i]:=1とする(S99)。
【0101】次に、図12及び図13に、図7〜9もし
くは図10〜11に示したようなカットスルー・スケジ
ューリングにおいて、セル選択アルゴリズムとして特願
平8−239159に示されるような重み付け公平キュ
ーイング(WFQ)アルゴリズムを採用した場合の、セ
ル選択アルゴリズム依存部分のフローチャートを示す。
【0102】このセル選択アルゴリズムにおいては、2
個のスケジューリングキューQ、Q’を使用する。Qは
現在のラウンドで出力待ちのVCIを入れるためのキュ
ー、Q’は次のラウンドで出力待ちのVCIを入れるた
めのキューである。ここで、ラウンドとは、各セルキュ
ーiから最大w[i]個セルを送出できる期間のことで
ある。w[i]は、VCiに対して割当てられるサービ
スに関する重みであり、システムの最大パケット長以上
の値をとる。
【0103】また、各VCキューiは、現在のラウンド
で出力可能なセル数を記憶するカウンタc[i]、およ
び、最後に出力されたVCキューiのセルが所属するビ
ジー期間を記憶するカウンタb[i]を持つ。さらに、
スケジューリング手段全体で、最後に出力されたセルが
所属するビジー期間を記憶するカウンタB、および現在
バッファリングされているセル数をカウントするカウン
タTを持つ。
【0104】sched_init_CT(WFQ)で
は、図12(a)に示すように、スケジューリングキュ
ーQ、Q’を初期化するためにinit_queue
(Q)、init_queue(Q’)を実行する。次
に、各VCキューiに対してc[i]:=w[i]、b
[i]:=0を実行する。さらにB:=0とする(以上
S101)。
【0105】sched_in_CT(WFQ,i)で
は、図12(b)に示すように、セル到着直前までセル
キューq[i]が空であった場合、すなわち、len
(q[i])=1の場合(S122 Yes)にのみ以
下の処理を行なう。
【0106】まず、スケジューリングキューQに入力V
CI=iを入れるためにenqueue(Q、i)を実
行する(S123)。次に、VCiのビジー期間カウン
タb[i]の値とBの値を比較する。b[i]=Bでな
ければ(S124 No)、VCiが最後に出力されて
からシステムが少なくとも1回はアイドル状態になった
ことを表している。このとき、b[i]:=Bとし、カ
ウンタをリセットするためにc[i]:=w[i]とす
る(S125)。
【0107】sched_choose(WFQ)の動
作は、図5(b)で示されたものと同じである。sch
ed_out_CT(WFQ,L,serv)では、図
13に示すように、まず、カウンタ値c[serv]を
パケット長Lだけデクリメントするために、c[ser
v]:=c[serv]−Lを実行する(S111)。
次に、T=0であれば(S112 Yes)、ビジー期
間カウンタBの値を1だけインクリメントする(S11
3)。
【0108】次に、パケットキューq[serv]が空
でなく、かつc[serv]>0であれば(S114
Yes)、このラウンド内にさらに選択可能にするた
め、スケジューリングキューQにservを入れる(S
115)。
【0109】そうでない場合(S114 No)、以下
のように動作する。もしパケットキューq[serv]
が空でなければ(S116 Yes)、次のラウンドで
選択可能にするため、スケジューリングキューQ’にs
ervを入れる(S117)。そして、c[serv]
の値を、c[serv]をw[serv]だけインクリ
メントした値とw[serv]との最小値に設定する
(S118)。
【0110】上記例では、選択しているパケットキュー
に上位レイヤパケットの最終セルが到着している場合で
も、すなわち、上位レイヤパケット長が既知の場合で
も、カウンタc[serv]は負になるが、上位レイヤ
パケット長が既知の場合にあらかじめパケット出力によ
ってカウンタ値が負になることが確実なパケットキュー
は選択しないようにすることも可能である。
【0111】図14には、本発明の第3の実施形態とし
て、カットスルー、かつノンインターリーブなスケジュ
ーリングを行ない、パケット長記憶手段および、パケッ
ト長カウンタまたはパケット長抽出手段を使用しないよ
うな場合のパケット通信装置の構成例を示す。
【0112】本発明の第3の実施形態に係るパケット通
信装置は、AAL5パケットのセルをノンインターリー
ブかつカットスルーに出力するためのものであり、セル
入力部、セル出力部、出力待ちのセルを蓄積するための
VC毎のパケットキュー、スケジューリング手段から構
成される。また、スケジューリング手段は、パケット長
カウンタ、パケット長抽出手段、パケット長記憶手段は
有しない。
【0113】図14において、セルはすべてAAL5パ
ケットを分割したセルであり、白丸または黒丸で表され
る。ここで、白丸は継続表示ビットがオンのセル(非最
終セル)、黒丸は継続表示ビットがオフのセル(最終セ
ル)である。
【0114】本パケット通信装置に到着したセルは、セ
ル入力部においてヘッダ処理が行なわれ、入力セルが所
属するVCに対応するセルキューに入力される。スケジ
ューリング手段は、まだ出力パケットキューを選択して
いない場合には、空でないパケットキューの中から出力
パケットキューを選択する。すなわち、カットスルーな
スケジューリングとなる。選択アルゴリズムとしては、
一般の可変長パケットのスケジューリングアルゴリズム
が使用可能である。スケジューリング手段は現在選択し
ているVCのVCIをセル出力部に通知する。出力パケ
ットキューが選択されない場合には、VCIとして負の
値をセル出力部に通知する。
【0115】また、セル出力部からスケジューリング手
段へは、出力セルが最終セルかどうかが通知され、最終
セル以外であった場合には、現在選択中のVCを引続き
選択するようにする。すなわち、ノンインターリーブな
スケジューリングとなる。
【0116】さらに、出力パケットキューを選択してい
る場合に、出力パケットキューが所定時間空であった場
合には、継続表示ビットをオフにしたダミーセルを新た
に生成して出力するともに、新たに出力パケットキュー
の選択を行なう。図14では、所定時間が固定時間WA
ITMAXである例を示している。
【0117】次に、図15〜19に、上記第3の実施形
態に係るパケット通信装置のスケジューリング手段の動
作例を示す。図15、16、17は上記所定時間がWA
ITMAXである場合について、図18、19は上記所
定時間が各パケットキューの系内セル数の和がしきい値
TMAXを越えるまでの場合を示している。
【0118】スケジューリング部は、初期化処理、セル
入力処理、セル出力処理の3種類の処理を行なう。図1
5に、所定時間がWAITMAXである場合の、初期化
処理を示す。初期化処理は、システム起動時に1度実行
される。初期化処理では、まず、各VCキューiのセル
キューに対し、init_queue(q[i])が実
行される。ここで、init_queue(x)は、キ
ューxを初期化する処理を表す。次に、serv:=−
1、wait:=0、各VCについてerror
[i]:=0、とした後、セル選択アルゴリズムに依存
した処理sched_init_CT(A)を実行す
る。ここで、sched_init_CT(A)は、セ
ル選択アルゴリズムAに依存したカットスルー用の初期
化処理である(以上S121)。
【0119】図16に、所定時間がWAITMAXであ
る場合の、セル入力処理を示す。セル入力処理では、以
下の手順で到着セルが処理される。到着セルをCとす
る。まず、CのVPI/VCI値を得るために、i:=
vci(C)とする(S131)。vci(C)は、セ
ルCのヘッダ部のVPI/VCI値を返す関数である。
【0120】次に、現在出力中のVCのセルキューが空
になってからMAXWAIT時間経過していれば、すな
わち、error[i]=1なら(S132 Ye
s)、セルCはセルキューq[i]には入れられず、さ
らにセルCがAAL5パケットの最終セル、すなわちe
of(C)=1なら(S133 Yes)、error
[i]:=0としc[serv]をw[serv]にリ
セットする(S134)。
【0121】一方、error[i]=0であれば(S
132 No)、以下の処理を行なう。まず、セルCを
セルキューq[i]に入れるためにenqueue(q
[i]、 C)を実行し、Tを1だけインクリメントし
た後、到着したセルをスケジューリングするために、s
end_in_CT(A,i)を実行する(S13
5)。ここで、send_in_CT(A,i)は、カ
ットスルーの場合のセル選択アルゴリズムAに依存し
た、VCキューiに関する入力処理である。
【0122】図17に、所定時間がWAITMAXであ
る場合の、セル出力処理を示す。セル出力処理では、以
下の手順で出力セルが処理される。まず、serv<0
なら(S141 Yes)、次の出力セルキューを選択
するためにserv:=sched_choose
(A)を実行する(S142)。ここで、sched_
choose(A)は、セル選択アルゴリズムAに依存
して出力するセルキューを返す関数である。
【0123】次に、serv<0なら(S143 N
o)セル出力処理は終了する。serv>=0なら(S
143 Yes)、まず、セルキューq[serv]に
セルがあるかどうか、すなわち、len(q[ser
v])>0かどうかをチェックする。
【0124】このとき、len(q[serv])>0
(S144 Yes)であれば、以下の処理を行なう。
まず、wait:=0とし、セルキューq[serv]
からセルを取り出すために、C:=dequeue(q
[serv])を実行する。dequeue(x)は、
キューxの先頭のエントリを取り出す関数である。次
に、セルCが最終セルかどうかをチェックするためにE
OF:=eof(C)を実行し、transmit
(C)を実行してセルCを出力し、Tを1だけデクリメ
ントした後、パケットキューservの次のパケットを
スケジューリングするためにsched_out_CT
(A,serv)を実行する(以上S145)。ここ
で、sched_out_CT(A、i)は、カットス
ルーの場合のセル選択アルゴリズムAに依存した、VC
キューiに関するセル選択アルゴリズム依存出力処理で
ある。
【0125】次に、出力したセルがAAL5パケットの
最終セルであれば、すなわち、EOF=1であれば(S
146 Yes)、このセルキューの選択をとりやめる
ためにserv:=−1とする(S149)。一方、E
OF=0であれば(S146No)、セルキューq[s
erv]が空、すなわち、len(q[serv])=
0かどうかをチェックする。len(q[serv])
=0であれば(S147 Yes)、AAL5パケット
の最終セルが未到着のままキューが空になったことを意
味する。このとき、wait:=MAXWAITとする
(S148)。
【0126】一方、len(q[serv])=0であ
ったならば(S144 No)、waitタイマーをデ
クリメントするために、wait:=wait−1とす
る(S150)。wait=0であれば(S151 Y
es)、ダミー最終セルを送出し、error[i]:
=1とする(S152)。
【0127】図18には、所定時間を系内セル数の和が
TMAXを越えるまでとする場合の、初期化処理を示
す。初期化処理は、システム起動時に1度実行される。
初期化処理では、まず、各VCキューiのセルキューに
対し、init_queue(q[i])が実行され
る。ここで、init_queue(x)は、キューx
を初期化する処理を表す。次に、serv:=−1、各
VCについてerror[i]:=0、とした後、セル
選択アルゴリズムに依存した処理sched_init
_CT(A)を実行する。ここで、sched_ini
t_CT(A)は、セル選択アルゴリズムAに依存した
カットスルー用の初期化処理である(以上S161)。
【0128】所定時間を系内セル数の和がTMAXを越
えるまでとする場合の、セル入力処理は、図16と同じ
である。図19に、所定時間を系内セル数の和がTMA
Xを越えるまでとする場合の、セル出力処理を示す。セ
ル出力処理では、以下の手順で出力セルが処理される。
まず、serv<0なら(S171 Yes)、次の出
力セルキューを選択するためにserv:=sched
_choose(A)を実行する(S172)。ここ
で、sched_choose(A)は、セル選択アル
ゴリズムAに依存して出力するセルキューを返す関数で
ある。
【0129】次に、serv<0なら(S173 N
o)セル出力処理は終了する。serv>=0なら(S
173 Yes)、まず、セルキューq[serv]に
セルがあるかどうか、すなわち、len(q[ser
v])>0かどうかをチェックする。
【0130】このとき、len(q[serv])>0
(S174 Yes)であれば、以下の処理を行なう。
まず、wait:=0とし、セルキューq[serv]
からセルを取り出すために、C:=dequeue(q
[serv])を実行する。dequeue(x)は、
キューxの先頭のエントリを取り出す関数である。次
に、セルCが最終セルかどうかをチェックするためにE
OF:=eof(C)を実行し、transmit
(C)を実行してセルCを出力し、Tを1だけデクリメ
ントした後、パケットキューservの次のパケットを
スケジューリングするためにsend_out_CT
(A,serv)を実行する(以上S175)。ここ
で、send_out_CT(A,i)は、カットスル
ーの場合のセル選択アルゴリズムAに依存した、VCキ
ューiに関するセル選択アルゴリズム依存出力処理であ
る。
【0131】次に、出力したセルがAAL5パケットの
最終セルであれば、すなわち、EOF=1であれば(S
176 Yes)、このセルキューの選択をとりやめる
ためにserv:=−1とする(S177)。
【0132】一方、len(q[serv])=0であ
ったならば(S174 No)、もしパケットキュー内
の系内セル数の和がしきい値を越えていれば、すなわ
ち、T>TMAXであれば(S178 Yes)、ダミ
ー最終セルを送出し、error[i]:=1とする
(S179)。
【0133】次に、図15〜17もしくは図18〜19
に示したようなカットスルー・スケジューリングにおい
て、セル選択アルゴリズムとしてWFQアルゴリズムを
採用した場合の、セル選択アルゴリズム依存部分の説明
を、図20を用いて行なう。
【0134】このセル選択アルゴリズムにおいては、2
個のスケジューリングキューQ、Q’を使用する。Qは
現在のラウンドで出力待ちのVCIを入れるためのキュ
ー、Q’は次のラウンドで出力待ちのVCIを入れるた
めのキューである。ここで、ラウンドとは、各セルキュ
ーiから最大w[i]個セルを送出できる期間のことで
ある。w[i]は、VCiに対して割当てられるサービ
スに関する重みであり、システムの最大パケット長以上
の値をとる。
【0135】また、各VCキューiは、現在のラウンド
で出力可能なセル数を記憶するカウンタc[i]、およ
び、最後に出力されたVCキューiのセルが所属するビ
ジー期間を記憶するカウンタb[i]を持つ。さらに、
スケジューリング手段全体で、最後に出力されたセルが
所属するビジー期間を記憶するカウンタB、および現在
バッファリングされているセル数をカウントするカウン
タTを持つ。
【0136】図20では、sched_init_CT
(WFQ)について述べる。なお、sched_ini
t_CT(WFQ)、sched_in_CT(WF
Q、i)の動作は図12と同じであり、sched_c
hoose(WFQ)の動作は図5(b)と同じであ
る。
【0137】sched_out_CT(WFQ,se
rv)では、まず、カウンタ値c[serv]を1だけ
デクリメントする(S181)。次に、T=0であれば
(S182 Yes)、ビジー期間カウンタBの値を1
だけインクリメントする(S183)。
【0138】次に、パケットキューq[serv]が空
でなく、かつc[serv]>0であれば(S185
Yes)、このラウンド内にさらに選択可能にするた
め、スケジューリングキューQにservを入れる(S
186)。そうでない場合(S185 No)、以下の
ように動作する。もしパケットキューq[serv]が
空でなければ(S187 Yes)、次のラウンドで選
択可能にするため、スケジューリングキューQ’にse
rvを入れる(S188)。そして、c[serv]の
値を、c[serv]をw[serv]だけインクリメ
ントした値とw[serv]との最小値に設定する(S
189)。
【0139】次には、図15〜17もしくは図18〜1
9に示したようなカットスルー・スケジューリングにお
いて、セル選択アルゴリズムとしてFIFOを採用した
場合の、セル選択アルゴリズム依存部分の説明を、図2
1、22を用いて行なう。
【0140】このセル選択アルゴリズムにおいては、1
個のスケジューリングキューQを使用する。Qは出力待
ちのVCIを入れるためのキューである。また、各VC
ごとに、最後に出力されたVCキューiのセルが所属す
るビジー期間を記憶するカウンタb[i]を持つ。さら
に、スケジューリング手段全体で、最後に出力されたセ
ルが所属するビジー期間を記憶するカウンタB、および
現在バッファリングされているセル数をカウントするカ
ウンタTを持つ。
【0141】図21では、sched_init_CT
(FIFO)、sched_choose_CT(FI
FO)の説明を行なう。sched_init_CT
(FIFO)では、スケジューリングキューQを初期化
するためにinit_queue(Q)を実行する。次
に、各VCキューiに対してb[i]:=0を実行す
る。さらにB:=0、T:=0とする(以上S19
1)。
【0142】sched_choose(FIFO)で
は、まず、選択VCIをクリアし(S192)、スケジ
ューリングキューQが空でなければ(S193 Ye
s)、スケジューリングキューQの先頭のエントリを取
り出すためにi:=dequeue(Q)を実行し(S
194)、取り出したiを選択した出力VCI値として
return(i)で返す(S195)。
【0143】図22では、sched_in_CT(F
IFO,i)、sched_out_CT(FIFO、
serv)の説明を行なう。sched_in_CT
(FIFO,i)では、まず、パケットキューq[i]
が空であれば(S201 No)、スケジューリングキ
ューQにiが入れられる(S204)。そうでなければ
(S201 Yes)、q[i]の最後のセルを参照す
るためにC’:=tail(q[i])とする(S20
2)。ここで、tail(x)は、キューxの最後のエ
ントリを参照するための関数である。C’が最終セルで
あれば、すなわちeof(C’)=1であれば(S20
3 Yes)、到着セルはAAL5パケットの先頭セル
であるため、スケジューリングキューQにiが入れられ
る(S204)。
【0144】sched_out_CT(FIFO,s
erv)では、T=0なら(S205 Yes)、ビジ
ー期間カウンタBの値を1だけインクリメントする(S
206)。
【0145】これまでは、カットスルー、かつ、ノンイ
ンターリーブなスケジューリングを行なう場合に、カウ
ンタ値を重みの値にリセットするために必要なあるパケ
ットキューから最後にセルを出力後に全パケットキュー
が空になったかどうかのチェックを、そのパケットキュ
ーにセルが到着したときに行なう例を示したが、全パケ
ットキューが空になった時点で全パケットキューのカウ
ンタ値をいっせいに重みの値にリセットしてもよい。
【0146】なお、これまで使用されたVCごとのキュ
ー(q[i]、f[i])、カウンタ(c[i]、l
[i])、変数(error[i]、w[i])は、シ
ステム起動時だけでなく、各VCの設定時にも同様に初
期化される。
【0147】以上に述べたいずれの実施形態において
も、ノンインターリーブにスケジューリングがなされた
VCを1本のVCにまとめて出力してもよい。また、本
発明に係るパケット通信装置は、ノンインターリーブが
必要であるVCと必要でないVCが混在する場合でも使
用可能である。この場合、ノンインターリーブが必要な
VCと必要でないVCとの間では従来のスケジューリン
グアルゴリズムを用いてインターリーブに出力する。
【0148】最後に、本発明の第4の実施形態として、
従来のATM交換機の入力/出力ポートに本発明のパケ
ット通信装置を接続させる例を図23に示す。本例のパ
ケット通信装置は2入力2出力であり、そのうち2本の
入力がATM交換機の2本の出力に、1本の出力がAT
M交換機の1本の入力に、1本の出力が外部出力に接続
されている。外部入力からATM交換機に入力されたセ
ルはノンインターリーブな出力が必要であれば、ATM
交換機から本発明のパケット通信装置へ入力され、ノン
インターリーブに出力される。ノンインターリーブに出
力すべき入力VC群は、出力時には同一のVCとして出
力され、また、さらに交換処理が必要であればATM交
換機に再入力される。また、本例のパケット通信装置の
出力ポート速度が入力ポートの速度よりも遅い場合に
は、本例のパケット通信装置は1入力でもよい。
【0149】
【発明の効果】以上詳述したように、本発明によれば、
上位レイヤのパケット長を考慮して下位レイヤパケット
のスケジューリングを行うことが可能になり、サービス
の公平性に優れたノンインターリーブなパケットの出力
が可能になる。
【0150】また、上位レイヤパケットのパケット長を
測定し、さらに測定結果をキューイングすることによ
り、上位レイヤのパケット長の情報が上位レイヤパケッ
トのヘッダ部分に書かれていなくても、また、パケット
長が均一でないパケットをスケジューリングする場合に
おいても、サービスの公平性を保証できる。
【0151】また、カットスルー・スケジューリングを
行なえば、同一の上位レイヤパケットに属する下位レイ
ヤパケットが全部揃わなくてもパケット出力を開始させ
ることができ、パケットのキューイング遅延を減少させ
ることができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係るパケット通信
装置の構成例を示す図。
【図2】 本発明の第2の実施形態に係るパケット通信
装置の構成例を示す図。
【図3】 第1/第2の実施形態におけるスケジューリ
ング手段(ノンカットスルーの場合)の動作例を示すフ
ローチャート。
【図4】 第1/第2の実施形態におけるスケジューリ
ング手段(ノンカットスルーの場合)の動作例を示すフ
ローチャート。
【図5】 図3及び図4のスケジューリングにおいてセ
ル選択アルゴリズムとしてWFQを用いる場合の詳細動
作例を示すフローチャート。
【図6】 図3及び図4のスケジューリングにおいてセ
ル選択アルゴリズムとしてWFQを用いる場合の詳細動
作例を示すフローチャート。
【図7】 第1/第2の実施形態におけるスケジューリ
ング手段(カットスルーの場合)の一つの動作例を示す
フローチャート。
【図8】 第1/第2の実施形態におけるスケジューリ
ング手段(カットスルーの場合)の一つの動作例を示す
フローチャート。
【図9】 第1/第2の実施形態におけるスケジューリ
ング手段(カットスルーの場合)の一つの動作例を示す
フローチャート。
【図10】 第1/第2の実施形態におけるスケジュー
リング手段(カットスルーの場合)の別の動作例を示す
フローチャート。
【図11】 第1/第2の実施形態におけるスケジュー
リング手段(カットスルーの場合)の別の動作例を示す
フローチャート。
【図12】 図7〜9もしくは図10〜11のスケジュ
ーリングにおいてセル選択アルゴリズムとしてWFQを
用いる場合の詳細動作例を示すフローチャート。
【図13】 図7〜9もしくは図10〜11のスケジュ
ーリングにおいてセル選択アルゴリズムとしてWFQを
用いる場合の詳細動作例を示すフローチャート。
【図14】 本発明の第3の実施形態に係るパケット通
信装置の構成例を示す図。
【図15】 第3の実施形態におけるスケジューリング
手段(カットスルーの場合)の一つの動作例を示すフロ
ーチャート。
【図16】 第3の実施形態におけるスケジューリング
手段(カットスルーの場合)の一つの動作例を示すフロ
ーチャート。
【図17】 第3の実施形態におけるスケジューリング
手段(カットスルーの場合)の一つの動作例を示すフロ
ーチャート。
【図18】 第3の実施形態におけるスケジューリング
手段(カットスルーの場合)の別の動作例を示すフロー
チャート。
【図19】 第3の実施形態におけるスケジューリング
手段(カットスルーの場合)の別の動作例を示すフロー
チャート。
【図20】 図15〜17もしくは図18〜19のスケ
ジューリングにおいてセル選択アルゴリズムとしてWF
Qを用いる場合の詳細動作例を示すフローチャート。
【図21】 図15〜17もしくは図18〜19のスケ
ジューリングにおいてセル選択アルゴリズムとしてFI
FOを用いる場合の詳細動作例を示すフローチャート。
【図22】 図15〜17もしくは図18〜19のスケ
ジューリングにおいてセル選択アルゴリズムとしてFI
FOを用いる場合の詳細動作例を示すフローチャート。
【図23】 ATM交換機に本発明を適用する場合の構
成例を示す図。
【符号の説明】
11、12、13…セルキュー 12、22、23…パケット長カウンタ 31、32、33…パケット長キュー

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】上位レイヤパケットを分割して成る固定長
    の下位レイヤパケットを出力するパケット通信装置にお
    いて、 出力待ちの下位レイヤパケットを蓄積するための複数の
    パケットキューと、 各パケットキュー対応にパケットキューに蓄積されてい
    る下位レイヤパケットが所属する上位レイヤパケットの
    パケット長の情報を記憶するためのパケット長記憶手段
    と、 このパケット長記憶手段に記憶される上位レイヤパケッ
    ト長の情報を用いて、下位レイヤパケットの出力を許可
    するパケットキューを選択するパケットスケジューリン
    グ手段とを具備することを特徴とするパケット通信装
    置。
  2. 【請求項2】前記パケットスケジューリング手段は、選
    択したパケットキューに蓄積された下位レイヤパケット
    が同一の上位レイヤパケットに所属するものである限り
    この下位レイヤパケットを出力し終えるべく該パケット
    キューを選択しつづけることを特徴とする請求項1記載
    のパケット通信装置。
  3. 【請求項3】パケット長の情報がそのヘッダ部に記入さ
    れていない可変長パケットを出力するパケット通信装置
    において、 出力待ちのパケットを蓄積するための複数のパケットキ
    ューと、 このパケットキューに蓄積されているパケットのパケッ
    ト長の情報もしくはこの情報が記憶されている前記パケ
    ットキュー内の位置を検出するパケット長検出手段と、 各パケットキュー対応にこのパケット長検出手段により
    検出されたパケット長の情報もしくはパケットキュー内
    位置を記憶するためのパケット長記憶手段と、 このパケット長記憶手段に記憶されたパケット長の情報
    もしくはパケットキュー内位置に基づいて得られるパケ
    ット長の情報を用いて、パケットの出力を許可するパケ
    ットキューを選択するパケットスケジューリング手段と
    を具備することを特徴とするパケット通信装置。
  4. 【請求項4】上位レイヤパケットを分割して成り、該上
    位レイヤパケットの最終下位レイヤパケットか否かを識
    別するための最終パケット識別情報を含む固定長の下位
    レイヤパケットを出力するパケット通信装置において、 上位レイヤパケットのパケット長をある最終下位レイヤ
    パケットを受信してから次の最終下位レイヤパケットを
    受信するまでに受信した固定長パケット数をカウントす
    ることにより測定する上位レイヤパケット長測定手段
    と、 この上位レイヤパケット長測定手段により測定された上
    位レイヤパケット長を用いて下位レイヤパケットの出力
    を制御する制御手段とを具備することを特徴とするパケ
    ット通信装置。
  5. 【請求項5】上位レイヤパケットを分割して成る固定長
    の下位レイヤパケットを出力するパケット通信装置にお
    いて、 出力待ちの下位レイヤパケットを蓄積するための複数の
    パケットキューと、 あるパケットキューに同一の上位レイヤパケットに所属
    する下位レイヤパケットが全て蓄積されるのを待たずに
    該下位レイヤパケットの出力が許可されるように該パケ
    ットキューを選択可能とし、選択されたパケットキュー
    に蓄積された下位レイヤパケットが同一の上位レイヤパ
    ケットに所属するものである限りこの下位レイヤパケッ
    トを出力し終えるべく該パケットキューを選択しつづけ
    るパケットスケジューリング手段とを具備することを特
    徴とするパケット通信装置。
  6. 【請求項6】前記下位レイヤパケットは、上位レイヤパ
    ケットの最終パケットか否かを識別するための最終パケ
    ット識別情報を含むものであり、 前記パケットスケジューリング手段は、現在選択中のパ
    ケットキューが所定時間空である場合には、最終パケッ
    トであることを示す最終パケット識別情報を記入した下
    位レイヤパケットを新たに生成して出力することを特徴
    とする請求項5記載のパケット通信装置。
  7. 【請求項7】前記所定時間は、選択中のパケットキュー
    が空になってから全パケットキューのキュー長の和が一
    定値を越えない間とすることを特徴とする請求項6記載
    のパケット通信装置。
  8. 【請求項8】各パケットキュー対応にパケットキューに
    蓄積されている下位レイヤパケットが所属する上位レイ
    ヤパケットのパケット長の情報を記憶するためのパケッ
    ト長記憶手段を更に具備し、 前記パケットスケジューリング手段は、このパケット長
    記憶手段に記憶される上位レイヤパケット長の情報を用
    いて、下位レイヤパケットの出力を許可するパケットキ
    ューの選択を行うものであることを特徴とする請求項5
    記載のパケット通信装置。
  9. 【請求項9】前記パケットスケジューリング手段は、各
    パケットキューに割り当てられた出力許可数が残ってい
    るパケットキューを下位レイヤパケットの出力を許可す
    るパケットキューとして選択し、同一の上位レイヤパケ
    ットに所属する下位レイヤパケットを出力し終えるまで
    は該パケットキューの残っている出力許可数を超えても
    該パケットキューを選択しつづけることを特徴とする請
    求項2または5記載のパケット通信装置。
  10. 【請求項10】前記パケットスケジューリング手段は、
    同一の上位レイヤパケットに所属する下位レイヤパケッ
    トが全てパケットキューに蓄積されるのを待たずに該下
    位レイヤパケットの出力を許可するように該パケットキ
    ューを選択した場合に、残っている出力許可数を超えて
    も選択しつづける動作を行うものであり、同一の上位レ
    イヤパケットに所属する下位レイヤパケットが全てパケ
    ットキューに蓄積されているならば、該パケットキュー
    を下位レイヤパケットの出力を許可するパケットキュー
    として選択するのは該同一の上位レイヤパケットに所属
    する下位レイヤパケットの数が残っている出力許可数以
    下の場合とすることを特徴とする請求項9記載のパケッ
    ト通信装置。
  11. 【請求項11】前記パケットスケジューリング手段は、
    各パケットキューに割り当てられた出力許可数に基づい
    た出力の終了後、再度各パケットキューに出力許可数を
    割り当てる際に、残っていた出力許可数を超えて下位レ
    イヤパケットを出力したパケットキューについては超え
    た分に応じて差し引いた数を割り当てるものであること
    を特徴とする請求項9記載のパケット通信装置。
  12. 【請求項12】前記パケットスケジューリング手段は、
    各パケットキューに割り当てられた出力許可数に基づい
    た出力の終了後、再度各パケットキューに出力許可数を
    割り当てる際に、残っていた出力許可数を超えて下位レ
    イヤパケットを出力したパケットキューが空であり、且
    つ、該パケットキューの出力後に全パケットキューが空
    になった時が存在する場合には、前記差し引きを行わな
    い数を該パケットキューに割り当てるものであることを
    特徴とする請求項11記載のパケット通信装置。
  13. 【請求項13】各パケットキュー対応に出力可能な下位
    レイヤパケットの量を示すカウンタ値を保持するカウン
    タ手段を更に具備し、 前記パケットスケジューリング手段は、(a)このカウ
    ンタ手段に保持されたカウンタ値が正で且つ空でないパ
    ケットキューを下位レイヤパケットの出力を許可するパ
    ケットキューとして選択し、同一の上位レイヤパケット
    に所属する下位レイヤパケットを出力し終えるまで該パ
    ケットキューを選択しつづけ、(b)対応するカウンタ
    値を下位レイヤパケットを出力した分に応じてデクリメ
    ントし、(c)選択候補ではなくなったパケットキュー
    のカウンタ値を、該カウンタ値を所定の値だけインクリ
    メントした値及び該所定の値のうち小さい方の値に設定
    し、全パケットキューが選択候補でなくなるまではカウ
    ンタ値を増加させたパケットキューを選択候補とはしな
    いようにし、(d)出力後に全パケットキューが空にな
    ったならば、新たな下位レイヤパケットが各パケットキ
    ューに到着した直後までに、全カウンタ値をそれぞれの
    パケットキューに対応する所定の値に設定した状態にな
    っているように、カウンタ値を制御することを特徴とす
    る請求項2、5もしくは8記載のパケット通信装置。
  14. 【請求項14】全パケットキューが空になる毎に異なる
    値を記憶するビジー期間記憶手段と、 パケットキュー対応に最後に下位レイヤパケットを出力
    した時の前記ビジー期間記憶手段の値を保持する出力時
    ビジー期間記憶手段とを更に具備し、 前記パケットスケジューリング手段は、あるパケットキ
    ューに新たな下位レイヤパケットが入力された時に該パ
    ケットキューに対応する出力時ビジー期間記憶手段の値
    が前記ビジー期間記憶手段の値と異なるならば、この出
    力時ビジー期間記憶手段の値を前記ビジー期間記憶手段
    の値に設定するとともに対応するカウンタ値を所定の値
    に設定することにより前記(d)の動作を行うを特徴と
    する請求項13記載のパケット通信装置。
  15. 【請求項15】下位レイヤパケットを複数の仮想コネク
    ションから受信し、この受信した下位レイヤパケットを
    受信に用いられた仮想コネクションに対応するパケット
    キューに入力する受信手段と、 前記スケジューリング手段により出力の許可された下位
    レイヤパケットを一つの仮想コネクションに対して送信
    する送信手段とを更に具備したことを特徴とする請求項
    2または5記載のパケット通信装置。
  16. 【請求項16】上位レイヤパケットを分割して成る固定
    長の下位レイヤパケットを出力するパケット通信方法に
    おいて、 出力待ちの下位レイヤパケットを少なくとも1つのパケ
    ットキューに蓄積し、 各パケットキュー対応にパケットキューに蓄積されてい
    る下位レイヤパケットが所属する上位レイヤパケットの
    パケット長の情報を記憶し、 この記憶された上位レイヤパケット長の情報を用いて、
    下位レイヤパケットの出力を許可するパケットキューを
    選択することを特徴とするパケット通信方法。
  17. 【請求項17】パケット長の情報がそのヘッダ部に記入
    されていない可変長パケットを出力するパケット通信方
    法において、 出力待ちのパケットを少なくとも1つのパケットキュー
    に蓄積し、 このパケットキューに蓄積されているパケットのパケッ
    ト長の情報もしくはこの情報が記憶されている前記パケ
    ットキュー内の位置を検出し、 各パケットキュー対応にこの検出されたパケット長の情
    報もしくはパケットキュー内位置を記憶し、 この記憶されたパケット長の情報もしくはパケットキュ
    ー内位置に基づいて得られるパケット長の情報を用い
    て、パケットの出力を許可するパケットキューを選択す
    ることを具備することを特徴とするパケット通信方法。
  18. 【請求項18】上位レイヤパケットを分割して成り、該
    上位レイヤパケットの最終下位レイヤパケットか否かを
    識別するための最終パケット識別情報を含む固定長の下
    位レイヤパケットを出力するパケット通信方法におい
    て、 上位レイヤパケットのパケット長をある最終下位レイヤ
    パケットを受信してから次の最終下位レイヤパケットを
    受信するまでに受信した固定長パケット数をカウントす
    ることにより測定し、 この測定された上位レイヤパケット長を用いて下位レイ
    ヤパケットの出力を制御することを特徴とする有するパ
    ケット通信方法。
  19. 【請求項19】上位レイヤパケットを分割して成る固定
    長の下位レイヤパケットを出力するパケット通信方法に
    おいて、 出力待ちの下位レイヤパケットを少なくとも1つのパケ
    ットキューに蓄積し、 あるパケットキューに同一の上位レイヤパケットに所属
    する下位レイヤパケットが全て蓄積されるのを待たずに
    該下位レイヤパケットの出力が許可されるように該パケ
    ットキューを選択可能とするとともに、選択されたパケ
    ットキューに蓄積された下位レイヤパケットが同一の上
    位レイヤパケットに所属するものである限りこの下位レ
    イヤパケットを出力し終えるべく該パケットキューを選
    択しつづけることを特徴とするパケット通信方法。
JP32251796A 1996-12-03 1996-12-03 パケット通信装置及び方法 Pending JPH10164136A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32251796A JPH10164136A (ja) 1996-12-03 1996-12-03 パケット通信装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32251796A JPH10164136A (ja) 1996-12-03 1996-12-03 パケット通信装置及び方法

Publications (1)

Publication Number Publication Date
JPH10164136A true JPH10164136A (ja) 1998-06-19

Family

ID=18144547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32251796A Pending JPH10164136A (ja) 1996-12-03 1996-12-03 パケット通信装置及び方法

Country Status (1)

Country Link
JP (1) JPH10164136A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001821A1 (en) * 2000-06-29 2002-01-03 Nec Corporation Packet scheduling apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001821A1 (en) * 2000-06-29 2002-01-03 Nec Corporation Packet scheduling apparatus
US7613114B2 (en) 2000-06-29 2009-11-03 Nec Corporation Packet scheduling apparatus

Similar Documents

Publication Publication Date Title
US6058114A (en) Unified network cell scheduler and flow controller
JP3434642B2 (ja) パケットスケジューリング装置
JP3711752B2 (ja) パケット通信装置
US5926459A (en) Rate shaping in per-flow queued routing mechanisms for available bit rate service
US5633867A (en) Local memory buffers management for an ATM adapter implementing credit based flow control
US6614790B1 (en) Architecture for integrated services packet-switched networks
US6618378B1 (en) Method and apparatus for supporting multiple class of service connections in a communications network
US6377583B1 (en) Rate shaping in per-flow output queued routing mechanisms for unspecified bit rate service
US6643293B1 (en) Virtual connection shaping with hierarchial arbitration
US6038217A (en) Rate shaping in per-flow output queued routing mechanisms for available bit rate (ABR) service in networks having segmented ABR control loops
CA2246514C (en) Virtual path shaping
US6868061B1 (en) System and method for pre-filtering low priority packets at network nodes in a network service class utilizing a priority-based quality of service
CA2178557A1 (en) Method for scheduling message cells leaving an atm node
EP0864244A1 (en) Apparatus and methods to change thresholds to control congestion in atm switches
US7088724B2 (en) Communication system interfacing control of quality of service (QOS) of asynchronous transfer mode (ATM) and internet protocol (IP)
EP0817433B1 (en) Packet switched communication system and traffic shaping process
US6266327B1 (en) Non-conformance indicator for the guaranteed frame rate service
US7058061B2 (en) Dynamic virtual channel management apparatus
US6985489B2 (en) ATM switch
JP4327963B2 (ja) データトラフィックのポリシング方法、そのような方法を実現するデータトラフィックポリシング装置およびそのようなデータトラフィックポリシング装置を含む通信ネットワーク
EP0817435B1 (en) A switch for a packet communication system
EP0817434B1 (en) A packet switched communication system and traffic shaping process
Giacomazzi et al. Transport of IP Controlled-load service over ATM networks
EP0817432A2 (en) A packet switched communication system
JP4123988B2 (ja) 通信装置