JP2000299701A - パケット処理装置およびパケット処理方法 - Google Patents

パケット処理装置およびパケット処理方法

Info

Publication number
JP2000299701A
JP2000299701A JP10443899A JP10443899A JP2000299701A JP 2000299701 A JP2000299701 A JP 2000299701A JP 10443899 A JP10443899 A JP 10443899A JP 10443899 A JP10443899 A JP 10443899A JP 2000299701 A JP2000299701 A JP 2000299701A
Authority
JP
Japan
Prior art keywords
packet
queue
pseudo
bubble
processing
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.)
Granted
Application number
JP10443899A
Other languages
English (en)
Other versions
JP3854745B2 (ja
Inventor
Masanobu Yuhara
雅信 湯原
Fumiyuki Iizuka
史之 飯塚
Mayumi Tomikawa
真弓 冨川
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 JP10443899A priority Critical patent/JP3854745B2/ja
Publication of JP2000299701A publication Critical patent/JP2000299701A/ja
Application granted granted Critical
Publication of JP3854745B2 publication Critical patent/JP3854745B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 品質を予約したために却って遅延時間やサー
ビス品質が低下する品質予約異常に効率良く対処するこ
とができるパケット処理装置およびパケット処理方法を
提供すること。 【解決手段】 予約キュー13に実パケットを挿入する
際に、この実パケットに対応するバブルを作成してBE
Sキュー14に投入し、実パケットよりもバブルの方が
先にスケジューリングされる場合には、この実パケット
をバブルの代わりにBESキュー14から出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、入力パケットを
分類し、分類したパケットをそれぞれ複数のキューに蓄
積し、該複数のキューに蓄積されたパケットの中からい
ずれかのパケットをスケジューラによって選択して出力
するパケット処理装置およびパケット処理方法に関す
る。
【0002】近年、音声や動画などの実時間通信がIP
上で実現することが可能となり、また企業の基幹業務通
信にもIPが利用されつつあるため、かかるIPを用い
た場合の通信品質の保証が重要となってきた。このた
め、たとえばRSVP(resorce ReSaVation Protcol)
などの予約プロトコルを用いてエンドツーエンドで品質
を予約するシグナリングや、WFQ(Weight Fair Queu
eing)などのバンド幅スケジューラを用いて通信パス上
のノードで品質を保証するトラフィック制御がおこなわ
れている。
【0003】
【従来の技術】従来、TCP/IP体系の中核となるイ
ンターネットプロトコル(IP)は、目的地までの配送
に関して最善の努力を払う反面、その確実な配送は保証
しないというベストエフォート型(以下「BES」とい
う)の配送をその特徴とするため、利用可能なバンド幅
などの品質については保証されない。
【0004】しかし、最近になって音声や動画などの実
時間通信がIP上で実現することが可能となり、また企
業の基幹業務通信にもIPが利用されつつあるため、か
かるIPを用いた場合の通信品質の保証が重要となって
いる。このため、RSVPなどの予約プロトコルを用い
てエンドツーエンドで品質を予約するシグナリングや、
WFQなどのバンド幅スケジューラを用いて通信パス上
のノードで品質を保証するトラフィック制御がおこなわ
れている。
【0005】具体的には、図14に示すように、ルーテ
ィング処理部140でルーティング処理されたパケット
をクラシファイア(classifier)141でストリームに
分類し、パケット廃棄部142でパケットを廃棄するか
否かを判断し、廃棄しないパケットをストリームごとの
キューに入力し、スケジューラ143が適切な順序でパ
ケットを選択出力することにより、通信品質が保証され
る。
【0006】なお、フィルタ141a〜141cは、入
力パケットを予約キュー143a〜143cに加えるか
否かのフィルタリングをおこない、いずれの予約キュー
にも属さないものは、ベストエフォートキュー(以下
「BESキュー」という)143dに加えられる。
【0007】
【発明が解決しようとする課題】しかしながら、図14
に示すネットワークノードを用いて品質を予約したとし
ても、品質を予約したために却って遅延時間やサービス
品質が低下するという異常(以下「品質予約異常」とい
う)が生ずる場合がある。
【0008】具体的には、図15(a)に示すように、
パケット廃棄部142がシステム全体としてパケットを
廃棄する場合には、予約キュー141a以外のキュー1
41b〜141dが混雑すると、レートAでパケットが
到着してもこの予約キュー143aからは予約レートR
でしかパケットを出力できないため、結果的にこの予約
キュー143aに滞留するパケットが(A−R)のレー
トで増加する。
【0009】そして、かかる予約キュー143aに滞留
するパケットが増加すると、その後にトラフィックのレ
ートが低下したとしても、他のキュー143b〜143
dが混雑している間は、この予約キュー143aのキュ
ー長が短くはならないので、品質を予約したために却っ
て遅延時間が大きくなるという品質予約異常が生ずるこ
ととなる。
【0010】また、図15(b)に示すように、キュー
ごとに設けたキュー長制限に基づいてパケット廃棄部1
42がパケットをキューごとに廃棄する場合には、この
キュー長制限をレートRで除算した時間内に遅延時間を
抑制できる反面、入出力レートの差分(A−R)に相当
する分のパケットが予約キュー143aの入り口で廃棄
される。すなわち、かかる場合には、品質を予約したた
めに却って廃棄されるパケット量が増大し、結果的にサ
ービス品質が低下するという品質予約異常が生ずること
となる。
【0011】さらに、図15(c)に示すように、予約
時にトークンバケットにより示されるトラフィックの条
件(Tspec )を示し、到着するパケットがその条件を満
たすか否かの条件チェック(以下「コンフォーマンスチ
ェック」という)をおこない、条件を満たすコンフォー
マントなパケットについては予約キュー143aに投入
し、条件を満たさないノンコンフォーマントなパケット
についてはBESのRED(Random Early Detection)
にかけ、廃棄されないパケットを予約キュー143aに
投入することもできる。
【0012】しかしながら、この技術を用いたとして
も、予約キュー143a中にノンコンフォーマントなパ
ケットが溜まりすぎる場合があり得るので、品質を予約
したために却って遅延時間が大きくなるという品質予約
異常を回避することはできない。
【0013】具体的には、アプリケーションがトラフィ
ック特性(Tspec )を指定し、かつ、このアプリケーシ
ョンがTspec に準拠する場合には、アプリケーションが
適切なTspec を指定し、送信を正しく制御しさえしてい
れば、ノンコンフォーマントなパケットは発生しない。
しかしながら、アプリケーションが制御できる時間精度
は10ms程度であることが多く、この場合には細かな
誤差が避けられないため、一部のパケットがノンコンフ
ォーマントになる。
【0014】また、アプリケーションがトラフィック特
性(Tspec )を指定するが、このアプリケーションが故
意にTspec に準拠しないで出力する場合には、故意また
はバグのいずれにしても、Tspec 以上に送信することと
なるため、定常的にノンコンフォーマントなパケットが
発生する。
【0015】さらに、アプリケーションがトラフィック
特性(Tspec )を指定するが、このアプリケーションが
トラフィック特性を制御できない場合には、たとえばO
S内のTCP処理モジュールが予約値以上のパケットを
勝手に送出してしまい、かなりの割合でノンコンフォー
マントなパケットが発生する。
【0016】また、アプリケーションがトラフィック特
性(Tspec )を指定しない場合には、そのバンド幅を利
用する多数のアプリケーションが同時かつ独立に動作
し、それぞれのアプリケーションが予約バンド幅を意識
せずに動作するため、ノンコンフォーマントなパケット
が頻繁に発生する。
【0017】これらのことから、品質を予約したために
却って遅延時間やサービス品質が低下する品質予約異常
をいかに効率良く解決するかが極めて重要な課題となっ
ている。
【0018】本発明は、上記に鑑みてなされたもので、
品質を予約したために却って遅延時間やサービス品質が
低下する品質予約異常に効率良く対処することができる
パケット処理装置およびパケット処理方法を提供するこ
とを目的とする。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、請求項1にかかるパケット処理装置は、入力パケッ
トを分類する分類手段と、この分類手段によって分類さ
れたパケットをそれぞれ蓄積する複数のキューと、該複
数のキューに蓄積されたパケットの中からいずれかのパ
ケットを選択して出力するスケジューラとを有するパケ
ット処理装置において、前記分類手段により分類された
パケットを第1のキューに挿入する際に、このパケット
に対応する疑似パケットを作成して第2のキューに挿入
する疑似パケット入力手段(後述する実施の形態のパケ
ット廃棄部23bがおこなう処理に相当)と、前記疑似
パケット入力手段により第2のキューに挿入された疑似
パケットが前記スケジューラの処理対象とされた際に、
当該疑似パケットに代えて前記第1のキューのパケット
を第2のキューからの出力として処理する処理手段(後
述する実施の形態のスケジューラ23fがおこなう処理
に相当)とを備えたことを特徴とする。
【0020】この請求項1にかかる発明では、分類され
たパケットを第1のキューに挿入する際に、このパケッ
トに対応する疑似パケットを作成して第2のキューに挿
入し、この第2のキューに挿入した疑似パケットがスケ
ジューラの処理対象とされた際に、当該疑似パケットに
代えて第1のキューのパケットを第2のキューからの出
力として処理することとしたので、少なくとも第2のキ
ューの品質を第1のキューの品質として確保ことができ
る。
【0021】また、請求項2にかかるパケット処理装置
は、前記疑似パケット入力手段は、前記第1のキューに
挿入するパケットと該パケットに対応する前記第2のキ
ューに挿入する疑似パケットとを相互に関連づけること
を特徴とする。
【0022】この請求項2にかかる発明では、第1のキ
ューに挿入するパケットと該パケットに対応する第2の
キューに挿入する疑似パケットとを相互に関連づけるこ
ととしたので、パケットまたは疑似パケットのいずれか
がスケジューリング対象とされた際に、他のキューに所
在する当該パケットまたは疑似パケットに関連する疑似
パケットまたはパケットを容易に特定することができ
る。
【0023】また、請求項3にかかるパケット処理装置
は、前記処理手段は、前記疑似パケットが該疑似パケッ
トに対応する前記第1のキューに挿入されたパケットよ
りも先にスケジューラの処理対象とされた場合には、当
該疑似パケットに対応する前記第1のキューのパケット
を第2のキューからの出力として処理し(後述する図7
のステップS208〜S212に相当)、前記疑似パケ
ットよりも該疑似パケットに対応する前記第1のキュー
に挿入されたパケットの方が先にスケジューラの処理対
象とされた場合には、当該パケットを処理するとともに
前記疑似パケットを無効化する(後述する図7のステッ
プS202〜S207に相当)ことを特徴とする。
【0024】この請求項3にかかる発明では、疑似パケ
ットが先にスケジューラの処理対象とされた場合には、
この疑似パケットに対応する第1のキューのパケットを
第2のキューからの出力として処理するので、少なくと
も第2のキューの品質を第1のキューで保証できる。ま
た、第1のキューに挿入されたパケットの方が先にスケ
ジューラの処理対象とされた場合には、当該パケットを
処理するとともに疑似パケットを無効化するので、不要
な疑似パケットを処分することができる。
【0025】また、請求項4にかかるパケット処理装置
は、前記第1のキューに挿入するパケットは、該パケッ
トが実パケットであることを示す識別情報と、該疑似パ
ケットへのリンク情報とを有し(後述する図4に示すパ
ケットの構造に相当)、前記第2のキューに挿入する疑
似パケットは、疑似パケットであることを示す識別情報
と、該疑似パケットに対応する実パケットへのリンク情
報とを有する(後述する図4に示すバブルの構造に相
当)ことを特徴とする。
【0026】この請求項4にかかる発明では、第1のキ
ューに挿入するパケットに、該パケットが実パケットで
あることを示す識別情報と、該疑似パケットへのリンク
情報とを付加することとしたので、このパケットが先に
スケジューリング対象とされた場合に対応する疑似パケ
ットの廃棄を容易におこなうことができる。また、第2
のキューに挿入する疑似パケットは、疑似パケットであ
ることを示す識別情報と、該疑似パケットに対応するパ
ケットへのリンク情報とを付加することとしたので、疑
似パケットが先にスケジューリング対象とされた場合
に、この疑似パケットに対応するパケットを迅速に取り
出すことができる。
【0027】また、請求項5にかかるパケット処理装置
は、前記疑似パケット入力手段は、前記第2のキューに
挿入する疑似パケットと前記第1のキューとを関連づけ
ることを特徴とする。
【0028】この請求項5にかかる発明では、パケット
と該パケットに対応する疑似パケットとを関連づけるの
ではなく、疑似パケットと第1のキューとを関連づける
こととしたので、パケットと疑似パケットの関連づけに
かかわる処理負担を軽減することができる。
【0029】また、請求項6にかかるパケット処理装置
は、前記処理手段は、前記疑似パケットがスケジューラ
の処理対象とされた場合に、前記第1のキューにパケッ
トが存在すれば、その先頭のパケットを第2のキューか
らの出力として処理し(後述する図13のステップS4
09〜S413に相当)、前記第1のキューにパケット
が存在しない場合は、前記疑似パケットを廃棄し、その
際第2のキューに次のパケットが存在すればそのパケッ
トを処理対象とし、第2のキューに次のパケットが存在
しなければ、スケジューリングをやり直すことを特徴と
する。
【0030】この請求項6にかかる発明では、第1のキ
ューに挿入されたパケットの方が先にスケジューラの処
理対象とされた場合には、疑似パケットを無視して当該
パケットの処理のみをおこなうこととしたので、疑似パ
ケットにかかわる処理を軽減することができる。
【0031】また、請求項7にかかるパケット処理装置
は、前記第2のキューに挿入する疑似パケットは、疑似
パケットであることを示す識別情報と、前記第1のキュ
ーへのリンク情報とを有する(後述する図10に示すバ
ブルの構造に相当)ことを特徴とする。
【0032】この請求項7にかかる発明では、第2のキ
ューに挿入する疑似パケットには、対応する第1のキュ
ーのパケットへのポインタではなく第1のキューへのリ
ンク情報を付加し、また第1のキューに挿入するパケッ
トには疑似パケットへのポインタを付加しないので、パ
ケットと疑似パケットのリンクにかかわる処理負担を軽
減することができる。
【0033】また、請求項8にかかるパケット処理装置
は、前記複数のキューは、出力バンド幅を予約した複数
の予約キューおよびベストエフォートキューからなり、
前記第1のキューは前記複数の予約キューのいずれかに
対応し、前記第2のキューは前記ベストエフォートキュ
ーに対応することを特徴とする。
【0034】この請求項8にかかる発明では、疑似パケ
ットをベストエフォートキューに挿入することとしたの
で、各予約キューの品質として少なくともベストエフォ
ートキューの品質を確保することができる。
【0035】また、請求項9にかかるパケット処理方法
は、入力パケットを分類し、分類したパケットをそれぞ
れ複数のキューに蓄積し、該複数のキューに蓄積された
パケットの中からいずれかのパケットをスケジューラに
よって選択して出力するパケット処理方法において、前
記分類したパケットを第1のキューに挿入する際に、こ
のパケットに対応する疑似パケットを作成して第2のキ
ューに挿入する疑似パケット入力工程(後述する図5お
よび図6に示すステップS101〜S114に相当)
と、前記疑似パケット入力工程において第2のキューに
挿入された疑似パケットが前記スケジューラの処理対象
とされた際に、当該疑似パケットに代えて前記第1のキ
ューのパケットを第2のキューからの出力として処理す
る処理工程(後述する図7に示すステップS201〜S
212に相当)とを含んだことを特徴とする。
【0036】この請求項9にかかる発明では、分類され
たパケットを第1のキューに挿入する際に、このパケッ
トに対応する疑似パケットを作成して第2のキューに挿
入し、この第2のキューに挿入した疑似パケットがスケ
ジューラの処理対象とされた際に、当該疑似パケットに
代えて第1のキューのパケットを第2のキューからの出
力として処理することとしたので、少なくとも第2のキ
ューの品質を第1のキューの品質として確保ことができ
る。
【0037】また、請求項10にかかるパケット処理方
法は、前記疑似パケット入力工程は、前記第1のキュー
に挿入するパケットと該パケットに対応する前記第2の
キューに挿入する疑似パケットとを相互に関連づけるこ
とを特徴とする。
【0038】この請求項10にかかる発明では、第1の
キューに挿入するパケットと該パケットに対応する第2
のキューに挿入する疑似パケットとを相互に関連づける
こととしたので、パケットまたは疑似パケットのいずれ
かがスケジューリング対象とされた際に、他のキューに
所在する当該パケットまたは疑似パケットに関連する疑
似パケットまたはパケットを容易に特定することができ
る。
【0039】また、請求項11にかかるパケット処理方
法は、前記処理工程は、前記疑似パケットが該疑似パケ
ットに対応する前記第1のキューに挿入されたパケット
よりも先にスケジューラの処理対象とされた場合には、
当該疑似パケットに対応する前記第1のキューのパケッ
トを第2のキューからの出力として処理(後述する図7
のステップS208〜S212に相当)し、前記疑似パ
ケットよりも該疑似パケットに対応する前記第1のキュ
ーに挿入されたパケットの方が先にスケジューラの処理
対象とされた場合には、当該パケットを処理するととも
に前記疑似パケットを無効化する(後述する図7のステ
ップS202〜S207に相当)ことを特徴とする。
【0040】この請求項11にかかる発明では、疑似パ
ケットが先にスケジューラの処理対象とされた場合に
は、この疑似パケットに対応する第1のキューのパケッ
トを第2のキューからの出力として処理するので、少な
くとも第2のキューの品質を第1のキューで保証でき
る。また、第1のキューに挿入されたパケットの方が先
にスケジューラの処理対象とされた場合には、当該パケ
ットを処理するとともに疑似パケットを無効化するの
で、不要な疑似パケットを処分することができる。
【0041】また、請求項12にかかるパケット処理方
法は、前記疑似パケット入力工程は、前記第2のキュー
に挿入する疑似パケットと前記第1のキューとを関連づ
けることを特徴とする。
【0042】この請求項12にかかる発明では、パケッ
トと該パケットに対応する疑似パケットとを関連づける
のではなく、疑似パケットと第1のキューとを関連づけ
ることとしたので、パケットと疑似パケットの関連づけ
にかかわる処理負担を軽減することができる。
【0043】また、請求項13にかかるパケット処理方
法は、前記処理手段は、前記疑似パケットがスケジュー
ラの処理対象とされた場合に、前記第1のキューにパケ
ットが存在すれば、その先頭のパケットを第2のキュー
からの出力として処理し(後述する図13のステップS
409〜S413に相当)、前記第1のキューにパケッ
トが存在しない場合は、前記疑似パケットを廃棄し、そ
の際第2のキューに次のパケットが存在すればそのパケ
ットを処理対象とし、第2のキューに次のパケットが存
在しなければ、スケジューリングをやり直すことを特徴
とする。
【0044】この請求項13にかかる発明では、第1の
キューに挿入されたパケットの方が先にスケジューラの
処理対象とされた場合には、疑似パケットを無視して当
該パケットの処理のみをおこなうこととしたので、疑似
パケットにかかわる処理を軽減することができる。
【0045】また、請求項14にかかるパケット処理方
法は、前記複数のキューは、出力バンド幅を予約した複
数の予約キューおよびベストエフォートキューからな
り、前記第1のキューは前記複数の予約キューのいずれ
かに対応し、前記第2のキューは前記ベストエフォート
キューに対応することを特徴とする。
【0046】この請求項14にかかる発明では、疑似パ
ケットをベストエフォートキューに挿入することとした
ので、各予約キューの品質として少なくともベストエフ
ォートキューの品質を確保ことができる。
【0047】
【発明の実施の形態】以下に添付図面を参照して、この
発明にかかるパケット処理装置およびパケット処理方法
の好適な実施の形態を詳細に説明する。なお以下では、
本発明をルータの出力インターフェース部に適用した場
合を示すこととする。
【0048】(実施の形態1)図2は、この実施の形態
1で用いるルータおよび出力インターフェース部の構成
を示す機能ブロック図である。図2(a)に示すルータ
20は、OSI(OpenSystem Interconnection )基本
参照モデルのネットワーク層プロトコルに相当するIP
に基づいてIPパケットの中継をおこなうIPパケット
中継装置であり、複数の入力インターフェース部21
と、ルーティング処理部22と、複数の出力インターフ
ェース部23とからなる。
【0049】入力インターフェース部21は、ルータ2
0の外部から到来するパケットを受け付けてルーティン
グ処理部22に出力する処理部であり、ルーティング処
理部22は、入力インターフェース部21から受け付け
たパケットのヘッダに基づいて、このパケットをいずれ
かの出力インターフェース部23に出力する処理部であ
る。
【0050】出力インターフェース部23は、本発明に
かかわるパケット処理装置およびパケット処理方法を内
在し、パケットの廃棄、キューイングおよび品質保証を
おこなう処理部である。具体的には、予約キューにパケ
ットを投入する際にこのパケットの疑似パケット(以下
「バブル」という)を作成し、作成したバブルをBES
キューに投入して、予約キューの品質がBESキューよ
りも低下しないことを保証するキューイング技術(以下
「完全バブルキューイング」という)を採用する。
【0051】かかる完全バブルキューイングを採用した
理由は、品質を予約したために却って遅延時間やサービ
ス品質が低下する品質予約異常を解消し、予約キューに
おいて少なくともBESキューの品質を保証するためで
ある。
【0052】図2(b)に示すように、この出力インタ
ーフェース部23は、クラシファイア23aと、パケッ
ト廃棄部23bと、出力キュー23cと、リシェーパ2
3dと、リミッタ23eと、スケジューラ23fとから
なる。クラシファイア23aは、ルーティング処理部2
2から受け付けた各パケットをフィルタリングして予約
キューのストリームごとに分類し、パケット廃棄部23
bに出力する処理部である。
【0053】パケット廃棄部23bは、クラシファイア
23aから受け付けるパケット群のうち一定の条件に当
てはまる一部のパケットを廃棄する処理部分である。こ
の条件には、対応するキューにパケットを投入すると該
キューの最大キュー長を越えてしまう場合や、輻輳回避
のためのREDにより確率的に廃棄すべきと判断される
場合を含む。具体的には、このパケット廃棄部23bで
は、BESキューのストリームについてはBESのRE
Dをおこない、また予約キューのストリームについては
コンフォーマンスチェックをおこなってノンコンフォー
マントなパケットにBESのREDをおこなう。
【0054】なお、このRED(Random Early Detecti
on)12とは、REDの対象とするキューの平均キュー
長をパラメータとして、前記キューに入るパケットの廃
棄確率を変更するパケット廃棄方式で、その内容はIE
TF(Internet EngineeringTask Force )のRFC2
309に示されている。
【0055】出力キュー23cは、複数の予約キューと
BESキューとからなり、先入れ先出し方式で複数のパ
ケットからなるストリームを保持する。リシェーパ23
dおよびリミッタ23eは、ストリームの出力トラフィ
ックをあらかじめ定められた形に整形するレギュレータ
を形成し、このリミッタ23eでは、ストリームの出力
トラフィックのピークレート制御をおこない、リシェー
パ23dは、その他の整形をおこなう。
【0056】スケジューラ23fは、ストリーム単位で
パケットのスケジューリングをおこなう処理部である。
このスケジューラ23fは、バンド幅保証、遅延保証お
よび平等性(Fairness)を判断基準としてパケットのス
ケジューリングをおこなう。
【0057】つぎに、図2に示す出力インターフェース
部23がおこなう完全バブルキューイングの処理概念に
ついて説明する。なお、この完全バブルキューイング
は、主として図2に示すパケット廃棄部23b、出力キ
ュー23cおよびスケジューラ23fにかかわる処理で
ある。
【0058】図1は、図2に示す出力インターフェース
部23がおこなう完全バブルキューイングの処理概念を
示す図である。同図に示すように、この完全バブルキュ
ーイングでは、予約キュー13に投入される実パケット
のバブルをBESキュー14に投入し、このBESキュ
ー14に投入したバブルを予約キュー13に投入した実
パケットとを対応づけることにより、予約キュー13に
おいて少なくともBESキュー14の品質を保証し、品
質を予約したために却って遅延時間やサービス品質が低
下する品質予約異常を解消している。
【0059】具体的には、BESキュー14のストリー
ムは、従来と同様にBESのRED12によって廃棄す
べきか否かが判断され、廃棄しないパケットのみがBE
Sキュー14に投入される。
【0060】これに対して、予約キュー13のストリー
ムは、予約時にトークンバケットにより示されるトラフ
ィックの条件(Tspec )を満たすか否かを判定するコン
フォーマンスチェック11をおこない、条件を満たすコ
ンフォーマントなパケットを予約キュー13に投入する
とともに、このパケットに対応するマーカとしてのバブ
ルをBESキュー14に投入する。
【0061】また、このコンフォーマンスチェック11
の結果がノンコンフォーマントであるパケットについて
は、これをBESのRED12にかけてその一部を廃棄
し、廃棄されないパケットを予約キュー13に投入しつ
つ、このパケットのバブルをBESキュー14に投入す
る。
【0062】なお、かかる予約キュー13に投入したパ
ケットとBESキュー14に投入したバブルとはそれぞ
れ対応づけられており、スケジューラ23fでは、複数
のキューの中からつぎに出力するパケットを持つキュー
を選択する際に、このバブルについても通常のパケット
と同様にスケジューリングの対象とする。
【0063】このように、かかる完全バブルキューイン
グでは、パケットをBES扱いとした際にスケジューリ
ングされる時期をバブルを用いて特定し、このパケット
をBES扱いした方が遅延時間が短くなって結果的に品
質が向上する場合には、バブルがスケジューリングされ
る時期に該バブルに対応するパケットをスケジューリン
グする。
【0064】図3は、図1に示す予約キュー13内の実
パケットとBESキュー14内のバブルとの対応関係を
示す図である。同図(a)に示すように、スケジューラ
23fによって予約キュー13内の実パケットの方が、
BESキュー14内の対応するバブルのよりも早くスケ
ジューリングされた場合には、通常通り予約キュー13
から実パケットを出力するとともに、BESキュー14
中の当該実パケットに対応するバブルを廃棄するなどし
て無効化する。
【0065】これに対して、同図(b)に示すように、
スケジューラ23fによって予約キュー13内の実パケ
ットよりも、BESキュー14内の対応するバブルの方
が早くスケジューリングされた場合には、その時点で当
該バブルに対応する実パケットを予約キュー13から取
り出し、この実パケットをバブルに代えてBESキュー
14から出力する。なお、この完全バブルキューイング
の場合には、BESキュー14のバブルが先頭にきたと
きに、対応する実パケットが必ず予約キュー13の先頭
に位置することになる。
【0066】具体的には、かかる場合にはこの実パケッ
トがBESキュー14に割り当てられたバンド幅を消費
するように出力される。ここで、一般のスケジューラ
は、パケットが到着した際に当該パケットに時刻タグを
付け、その後この時刻タグに基づいて全パケットをソー
トするよう処理されることが多いが、全パケットをソー
トしなくともパケットの存在するキューでソートするこ
とにより、同様の結果が得られる。
【0067】このため、このスケジューラ23fでは、
パケットではなくキュー自体に時刻タグを付け、パケッ
トの到達時ではなく各キューの先頭のパケットが新しく
なったときに時刻タグを計算することとし、実パケット
をBESキュー14から出力する場合には、このパケッ
トが使用したバンド幅をBESキュー14の時刻タグに
反映させることとしている。なお、かかる処理をおこな
う理由は、パケットに時刻タグを付与したのでは、実パ
ケットをBESキュー14から出力する際の処理が複雑
化するためである。
【0068】つぎに、図1に示す予約キュー13、BE
Sキュー14、実パケットおよびバブルについてさらに
具体的に説明する。図4は、図1に示す予約キュー13
内の実パケットおよびBESキュー14内のバブルの具
体的なデータ構造の一例を示す図である。
【0069】同図に示すように、ここでは複数の実パケ
ットを双方向のリンクドリストで連結して予約キュー1
3を形成するとともに、実パケットおよびバブルを双方
向のリンクドリストで連結してBESキュー14を形成
している。
【0070】具体的には、実パケットは、次パケットへ
のポインタを格納する“next”と、前パケットへの
ポインタを格納する“prev”と、実パケットまたは
バブルのいずれであるかを示す“flag”と、バブル
へのポインタを格納する“bubble”と、実パケッ
トのサイズを格納する“パケットサイズ”と、実パケッ
トの内容を格納する“パケット本体”とからなる。
【0071】また、バブルは、次パケットへのポインタ
を格納する“next”と、前パケットへのポインタを
格納する“prev”と、実パケットまたはバブルのい
ずれであるかを示す“flag”と、実パケットへのポ
インタを格納する“real”とからなり、“パケット
サイズ”および“パケット本体”は有しない。
【0072】なお、このパケットが実パケットである場
合には“flag=0”となり、バブルである場合には
“flag=1”となる。また、BESキュー14内に
保持される実パケットについては、バブルへのポインタ
を格納しない。
【0073】そして、予約キュー13では、“nex
t”および“prev”を用いてヘッド(head)の
パケットからテール(tail)のパケットに至る双方
向のリンクが張られるとともに、各実パケットからBE
Sキュー14内の対応するバブルへリンクが張られる。
【0074】これに対して、BESキュー14では、
“next”および“prev”を用いてヘッド(he
ad)のパケットからテール(tail)のパケットに
至る双方向のリンクが張られるとともに、各バブルから
予約キュー13内の対応する実パケットへリンクが張ら
れる。
【0075】このように、ここでは、実パケットを双方
向のリンクドリストで連結することにより予約キュー1
3を形成し、実パケットおよびバブルを双方向のリンク
ドリストで連結してBESキュー14を形成するととも
に、実パケットおよびバブルの間をポインタで相互に対
応づけることとしている。
【0076】つぎに、図1に示す完全バブルキューイン
グによるパケットキューイング時の処理手順について説
明する。図5および図6は、図1に示す完全バブルキュ
ーイングによるパケットキューイング時の処理手順を示
すフローチャートである。
【0077】図5および図6に示すように、この完全バ
ブルキューイングでは、まず最初にストリームが瞬間最
大キュー長の制限を越えているか否かが調べられ(ステ
ップS101)、瞬間最大キュー長の制限を越えている
場合には(ステップS101否定)、パケットが廃棄さ
れる。
【0078】一方、瞬間最大キュー長の制限を越えてい
ない場合には(ステップS101肯定)、予約ストリー
ムであるか否かが調べられ(ステップS102)、予約
ストリームでない場合には(ステップS102否定)、
BESのREDを実行し(ステップS110)、当該パ
ケットが廃棄すべきものである場合には(ステップS1
10肯定)そのままパケットを廃棄し、当該パケットが
廃棄すべきものでない場合には(ステップS110否
定)、このパケットをBESキュー14に挿入する(ス
テップS111)。
【0079】これに対し、ステップS102において予
約ストリームであると判断された場合には(ステップS
102肯定)、予約条件のチェックがあるか否かを判断
し(ステップS103)、予約条件のチェックがなく
(ステップS103否定)、このストリームのREDが
オンである場合には(ステップS104肯定)、全パケ
ット群に対してREDを実行し(ステップS105)、
廃棄対象となるパケットを廃棄する。
【0080】また、ステップS104においてストリー
ムのREDがオンでない場合や(ステップS104否
定)、ストリームのREDがオンであるが当該REDを
実行してもパケットが廃棄対象とはならない場合には
(ステップS105否定)、実パケットに対応するバブ
ルを作成して、作成したバブルをBESキュー14に挿
入し(ステップS113)、実パケットを当該ストリー
ムの予約キュー13に挿入する(ステップS114)。
【0081】なお、このバブルには、バブルであること
を示す識別情報“flag=1”と、実パケットへのポ
インタを示す“real”とを付加する。また、実パケ
ットには、バブルでないことを示す識別情報“flag
=0”と、バブルへのポインタを示す“bubble”
とを付加する。
【0082】また、ステップS103において予約条件
のチェックすなわちコンフォーマンスチェックがなされ
(ステップS103肯定)、この予約条件が満たされて
いるコンフォーマントな場合には(ステップS106肯
定)、ステップS113に移行する。
【0083】これに対して、予約条件が満たされていな
いノンコンフォーマントな場合には(ステップS106
否定)、ストリームのREDがオンであるか否かを調べ
(ステップS107)、このREDがオンでなければ
(ステップS107否定)、BESのREDを実行する
(ステップS112)。そして、このパケットが廃棄対
象となる場合には(ステップS112肯定)当該パケッ
トを廃棄し、廃棄対象にならない場合には(ステップS
112否定)、ステップS113に移行する。
【0084】また、REDがオンであれば、この予約キ
ュー13について違反パケット群に対するREDを実行
し(ステップS108)、パケットが廃棄対象となる場
合には(ステップS108肯定)このパケットを廃棄
し、廃棄対象とならない場合には(ステップS108否
定)、違反パケットであることを示す情報をパケットに
付加した後に(ステップS109)、ステップ113に
移行する。
【0085】上記一連の処理をおこなうことにより、実
パケットを予約キュー13に挿入するとともに、当該実
パケットに対応するバブルを作成してBESキュー14
に挿入することができる。
【0086】つぎに、図1に示す完全バブルキューイン
グによるパケットの出力時の処理手順について説明す
る。図7は、図1に示す完全バブルキューイングによる
パケットの出力時の処理手順を示すフローチャートであ
る。完全バブルキューイングにおいては、いずれかのキ
ューにパケットが存在するようになるまで待ち、スケジ
ューラが出力処理対象となるキューを選択したならば、
下記に示す処理をおこなう。
【0087】図7に示すように、まず最初に先頭パケッ
トがバブルであるか否かを調べ(ステップS201)、
このパケットがバブルでない場合には(ステップS20
1否定)、レギュレータがあるか否かを確認し(ステッ
プS202)、レギュレータの制限を満たさない場合に
は(ステップS203否定)ウエイト処理へ移行する。
【0088】また、レギュレータがない場合や(ステッ
プS202否定)、レギュレータがあるが制限を満たす
場合には(ステップS203肯定)、当該キューのRE
D用瞬間キュー長を減算し(ステップS2054、当該
キューからパケットを取り出す(ステップS205)。
なお、ステップS204において、予約キュー13の場
合には、違反マーク付きのパケットについてのみおこな
う。
【0089】その後、このパケットに対応するバブルが
存在するか否かを確認し(ステップS206)、対応す
るバブルが存在する場合には(ステップS206肯
定)、このバブルをバブルが入っているBESキュー1
4から取り出して廃棄する(ステップS207)。
【0090】これに対し、上記ステップS201におい
て、パケットがバブルである場合には(ステップS20
1肯定)、レギュレータがあるか否かを確認し(ステッ
プS208)、レギュレータの制限を満たさない場合に
は(ステップS209否定)ウエイト処理へ移行する。
なお、ここではウエイト処理についての説明は省略す
る。
【0091】また、レギュレータがない場合や(ステッ
プS208否定)、レギュレータがあるが制限を満たす
場合には(ステップS209肯定)、BESキュー14
のRED用瞬間キュー長を減算し(ステップS21
0)、バブルをBESキュー14から取り出して解放し
た後に(ステップS211)、予約キュー13から当該
バブルに対応する実パケットを取り出す(ステップS2
12)。
【0092】上記一連の処理をおこなうことにより、少
なくともBESキュー14と同程度の品質を予約キュー
13に保証して、品質を予約したために却って遅延時間
やサービス品質が低下する品質予約異常を解消すること
ができる。
【0093】上述してきたように、本実施の形態1にか
かわる完全バブルキューイングでは、予約キュー13に
実パケットを挿入する際に、この実パケットに対応する
バブルを作成してBESキュー14に投入し、実パケッ
トよりもバブルの方が先にスケジューリングされる場合
には、この実パケットをバブルの代わりにBESキュー
14から出力するよう構成したので、少なくともBES
キュー14と同程度の品質を予約キュー13に保証し
て、品質を予約したために却って遅延時間やサービス品
質が低下する品質予約異常を解消することができる。
【0094】たとえば、ある予約ストリームについて、
“R”のバンド幅を割り当て、実際には“R”よりも大
きい“S”のバンド幅のトラフィックを流した場合に、
予約範囲の“R”分のトラフィックについてはパケット
を廃棄せずに予約ストリームの予約バンド幅を利用して
出力し、予約範囲をオーバーした“S−R”分のトラフ
ィックについては、あたかもBESストリームのパケッ
トであるかのようにBESと同じ方法でパケット廃棄を
おこない、廃棄されなかったパケットについてBESス
トリームに割り当てられたバンド幅を利用して出力す
る。このため結果的に、従来のバンド幅保証スケジュー
ラと同様に“R”のバンド幅が保証されるとともに、予
約しなかった場合のバンド幅も保証される。
【0095】もし仮に、上記の“S−R”分のパケット
を単純にBESキュー14に投入するような方法をとっ
たとすると、それらのパケットと、予約キュー13のパ
ケットの順序関係が保たれず、受信側とは異なった順序
でパケットを出力することになり、アプリケーションの
動作に障害をきたしたり、通信の実行性能を低下させる
などの問題が生じる。バブルキューイング方式により、
予約ストリームのパケットをBESストリームのバンド
幅を利用して出力する場合は、予約キュー13内の実パ
ケットは受信順を保って管理され、その順序で出力され
るため、予約ストリームのパケット順序が変動しない。
したがって、パケット順の変動により、アプリケーショ
ンや通信の性能を低下させることがない。
【0096】なお、この完全バブルキューイングの実行
コストを検討すると、ここでは予約キュー13に投入す
るすべてのパケットに対応するバブルを作成し、このバ
ブルをBESキュー14に投入して実パケットとの対応
関係を保持することとしたため、バブルにかかわる情報
を記憶するメモリ容量が必要となる。
【0097】しかしながら、バブルにかかわる情報は、
すでに説明したようにBESキュー14内でのリンク、
バブルであることを示すフラグおよび実パケットへのポ
インタのみであるから、これらの情報は2ワード程度に
納めることができ、大きな問題とはならない。
【0098】また、かかる完全バブルキューイングを採
用する場合には、バブルをBESキュー14に投入した
り、バブルであるか否かを判断したり、バブルと実パケ
ットとの対応づけをおこなうCPUコストが必要となる
が、かかるCPU負担はバンド幅保証をおこなうコスト
と比較すると極めて小さいため、大きな問題とはならな
い。
【0099】(実施の形態2)ところで、上記実施の形
態1が採用する完全バブルキューイングでは、メモリ容
量およびCPUコストが特に問題にならないと考えた
が、ハードウエア化を図る場合には、CPUの処理負担
をできるだけ低減することが望ましい。このため、本実
施の形態2では、パケットとバブルとを一対一で対応づ
ける処理負担を軽減する技術(以下「部分バブルキュー
イング」という)について説明する。なお、この場合の
ルータおよび出力インターフェース部の構成は図2に示
すものと同様のものになるので、ここではその説明を省
略する。
【0100】図8は、実施の形態2にかかわる部分バブ
ルキューイングの処理概念を示す図である。同図に示す
ように、この部分バブルキューイングでは、予約ストリ
ームのうちノンコンフォーマントなパケットのみについ
てバブルを作成することとしたので、予約ストリームの
すべてのパケットがコンフォーマントであるならば、バ
ブルが発生しないために処理負担が軽減する。
【0101】しかしながら、ノンコンフォーマントなパ
ケットについてのみバブルを作成することとすると、完
全バブルキューイングの場合と異なり、バブルがBES
キュー14の先頭にきたときに当該バブルに対応する実
パケットが予約キュー13の先頭にあるとは限らなくな
る。
【0102】このため、バブルに対応する実パケットを
予約キュー13から抜き出して送信したのでは、予約ス
トリーム中のパケットの順序が変動してしまうという問
題がある。また、このバブルに対応する実パケットまで
のすべてのパケットを連続送信することとすると、他の
ストリームに対するバンド幅を保証できなくなるという
問題もある。加えて、外部で観察した場合には、ノード
でどのパケットをノンコンフォーマントと解釈して出力
したかをパケットごとに正確に判別できないという事実
もある。
【0103】そこで、この部分バブルキューイングで
は、バブルと実パケットとの厳密な対応関係はとらず、
バブルから予約キュー13への対応関係のみを保持し
て、予約キュー13中の実パケットのうちBESキュー
14のバンド幅を利用して予約キュー13のパケットを
出力すべきタイミングだけを管理するよう構成してい
る。
【0104】具体的には、BESキュー14のストリー
ムは、従来と同様にBESのRED12によって破棄す
べきか否かが判断され、破棄しないパケットのみをBE
Sキュー14に投入する。
【0105】これに対して、予約キュー13のストリー
ムについては、コンフォーマンスチェック11をおこな
い、条件を満たすコンフォーマントなパケットについて
はバブルを作成することなく予約キュー13に投入す
る。
【0106】また、このコンフォーマンスチェック11
の結果がノンコンフォーマントであるパケットについて
は、これをBESのRED12にかけてその一部を廃棄
し、廃棄されないパケットを予約キュー13に投入しつ
つ、このパケットのバブルをBESキュー14に投入す
る。
【0107】なお、かかる予約キュー13に投入したパ
ケットとBESキュー14に投入したバブルとは直接の
対応関係はとらず、バブルから予約キュー13への対応
関係のみを保持する。
【0108】このように、かかる部分バブルキューイン
グでは、完全バブルキューイングのように予約キュー1
3に投入するすべての実パケットについてバブルを作成
するのではなく、REDで廃棄されないノンコンフォー
マントなパケットについてのみバブルを作成してBES
キュー14に投入するとともに、バブルから予約キュー
13への対応関係のみを保持することとしている。
【0109】図9は、図8に示す予約キュー13内の実
パケットとBESキュー14内のバブルとの対応関係を
示す図である。同図(a)に示すように、スケジューラ
23fによって予約キュー13内の実パケットの方が、
BESキュー14内の対応するバブルよりも早くスケジ
ューリングされた場合には、通常通り予約キュー13か
ら実パケットを出力する。なお、この実パケットと当該
実パケットに対応するBESキュー14中のバブルとの
対応関係は保持されていないので、BESキュー14中
のバブルに関する処理はおこなわない。
【0110】これに対して、同図(b)に示すように、
スケジューラ23fによって、BESキュー14内の対
応するバブルがスケジューリングされた場合には、その
時点でたまたま予約キュー13の先頭に存在する実パケ
ットをBESキュー14のバンド幅を使って出力する。
ただし、予約キュー13にパケットが存在しなければ、
当該バブルを廃棄し、BESキュー14の次のパケット
の処理をおこなう。また、BESキュー14にパケット
がなければ、再スケジューリングする。
【0111】このように、この部分バブルキューイング
では、BESキュー14中のバブル1個について予約キ
ュー13中の実パケットを最大1個出力して、パケット
数の整合性のみを維持することとしている。
【0112】つぎに、図8に示す予約キュー13、BE
Sキュー14、実パケットおよびバブルについてさらに
具体的に説明する。図10は、図8に示す予約キュー1
3内の実パケットおよびBESキュー14内のバブルの
具体的なデータ構造の一例を示す図である。
【0113】同図に示すように、この部分バブルキュー
イングにおいても、完全バブルキューイングと同様に、
複数の実パケットを双方向のリンクドリストで連結して
予約キュー13を形成するとともに、実パケットおよび
バブルを双方向のリンクドリストで連結してBESキュ
ー14を形成している。
【0114】しかしながら、この部分バブルキューイン
グでは、バブルが実パケットへのポインタ“real”
ではなく、予約キュー13へのポインタ“queue”
を持ち、また実パケットがバブルへのポインタを格納す
る“bubble”を持たない点で完全バブルキューイ
ングと異なる。
【0115】このように、この部分バブルキューイング
では、予約キュー13およびBESキュー14をリンク
ドリストで形成する点では完全バブルキューイングと共
通するものの、実パケットとバブルとの対応関係をとら
ない点が異なる。
【0116】つぎに、図8に示す部分バブルキューイン
グによるパケットキューイング時の処理手順について説
明する。図11および図12は、図8に示す部分バブル
キューイングによるパケットキューイング時の処理手順
を示すフローチャートである。
【0117】図11および図12に示すように、この部
分バブルキューイングでは、まず最初にストリームが瞬
間最大キュー長の制限を越えているか否かを調べ(ステ
ップS301)、瞬間最大キュー長の制限を越えている
場合には(ステップS301否定)、パケットを廃棄す
る。
【0118】一方、瞬間最大キュー長の制限を越えてい
ない場合には(ステップS301肯定)、予約ストリー
ムであるか否かを調べ(ステップS302)、予約スト
リームでない場合には(ステップS302否定)、BE
SのREDを実行し(ステップS311)、当該パケッ
トが廃棄対象となる場合には(ステップS311肯定)
そのままパケットを廃棄し、当該パケットが廃棄対象と
ならない場合には(ステップS311否定)このパケッ
トをBESキュー14に挿入する(ステップS31
2)。
【0119】これに対し、上記ステップS302におい
て予約ストリームであると判断された場合には(ステッ
プS302肯定)、予約条件のチェックがあるか否かを
判断し(ステップS303)、予約条件のチェックがな
く(ステップS303否定)、このストリームのRED
がオンである場合には(ステップS304肯定)、全パ
ケット群に対してこのストリームのREDを実行し(ス
テップS305)、廃棄対象となるパケットを廃棄す
る。
【0120】また、ステップS304においてストリー
ムのREDがオンでない場合や(ステップS304否
定)、ストリームのREDがオンであるが当該REDを
実行してもパケットが廃棄対象とならない場合には(ス
テップS305否定)、このパケットを当該ストリーム
のキューに挿入する(ステップS310)。この際、併
せて瞬間キュー長の加算についてもおこなわれる。な
お、完全バブルキューイングと異なり、この場合には実
パケットに対応するバブルは作成されない。
【0121】また、ステップS303において予約条件
のチェックすなわちコンフォーマンスチェックがなされ
(ステップS303肯定)、この予約条件が満たされて
いるコンフォーマントな場合には(ステップS306肯
定)、ステップS310に移行する。
【0122】これに対して、予約条件が満たされていな
いノンコンフォーマントな場合には(ステップS306
否定)、ストリームのREDがオンであるか否かを調べ
(ステップS307)、このREDがオンでなければ
(ステップS307否定)、BESのREDを実行する
(ステップS313)。
【0123】その結果、パケットが廃棄対象となる場合
には(ステップS313肯定)当該パケットを廃棄し、
廃棄対象とならない場合には(ステップS313否
定)、パケットを当該ストリームの予約キュー13に挿
入するとともに(ステップS314)、ストリーム用の
バブルを生成してBESキュー14に挿入する(ステッ
プS315)。
【0124】また、REDがオンであれば、違反パケッ
ト群に対するREDを実行し(ステップS308)、パ
ケットが廃棄対象となる場合には(ステップS308肯
定)このパケットを廃棄し、廃棄対象とならない場合に
は(ステップS308否定)、違反パケットであること
を示す情報をパケットに付加した後に(ステップS30
9)、ステップ310に移行する。
【0125】上記一連の処理をおこなうことにより、パ
ケットがノンコンフォーマントであり、かつ、BESの
REDで廃棄すべきものでない場合にのみ、バブルを作
成してBESキュー14に挿入することができる。
【0126】つぎに、図8に示す部分バブルキューイン
グによるパケットの出力時の処理手順について説明す
る。図13は、図8に示す部分バブルキューイングによ
るパケットの出力時の処理手順を示すフローチャートで
ある。この部分バブルキューイングにおいても、いずれ
かのキューにパケットが存在するようになるまで待ち、
スケジューラが出力処理対象となるキューを選択したな
らば、下記に示す処理をおこなう。
【0127】図13に示すように、まず最初に先頭パケ
ットがバブルであるか否かを調べ(ステップS40
1)、このパケットがバブルではない場合には(ステッ
プS401否定)、レギュレータがあるか否かを確認し
(ステップS402)、レギュレータの制限を満たさな
い場合には(ステップS403否定)ウエイト処理へ移
行する。
【0128】また、レギュレータがない場合や(ステッ
プS402否定)、レギュレータがあるが制限を満たす
場合には(ステップS403肯定)、当該キューのRE
D用瞬間キュー長を減算し(ステップS404)、当該
キューからパケットを取り出す(ステップS405)。
なお、ステップS404において、予約キュー13の場
合には、違反マーク付きのパケットについてのみおこな
う。
【0129】これに対して、このパケットがバブルであ
る場合には(ステップS401肯定)、このバブルに対
応づけられた予約キュー13に実パケットがあるか否か
を確認し(ステップS406)、実パケットが存在しな
い場合には(ステップS406否定)、BESキュー1
4のRED用瞬間キュー長を減算し(ステップS40
7)、バブルをBESキュー14から取り出して解放し
(ステップS408)、ステップS401に移行する。
【0130】また、ステップS406において、バブル
に対応づけられた予約キュー13に実パケットが存在す
る場合には(ステップS406肯定)、レギュレータが
あるか否かを確認し(ステップS409)、レギュレー
タの制限を満たさない場合には(ステップS410否
定)ウエイト処理へと移行する。
【0131】また、レギュレータがない場合や(ステッ
プS409否定)、レギュレータがあるが制限を満たす
場合には(ステップS410肯定)、BESキュー14
のRED用瞬間キュー長を減算し(ステップS41
1)、バブルをBESキュー14から取り出して解放し
た後に(ステップS412)、予約キュー13から当該
バブルに対応する実パケットを取り出す(ステップS4
13)。
【0132】上記一連の処理をおこなうことにより、完
全バブルキューイングの場合と異なり、BESキュー1
4中のバブル1個について予約キュー13中の実パケッ
トを最大1個出力して、パケット数の整合性を維持する
ことができる。
【0133】上述してきたように、本実施の形態2にか
かわる部分バブルキューイングでは、完全バブルキュー
イングと異なり、REDで廃棄されないノンコンフォー
マントなパケットのみについてバブルを作成するととも
に、このバブルと実パケットとの対応関係をとらず、B
ESキュー14中のバブル1個について予約キュー13
中の実パケットを最大1個出力して、パケット数の整合
性を維持するよう構成したので、完全バブルキューイン
グ処理をより単純化し、効率良くハードウエア化するこ
とが可能となる。
【0134】なお、本実施の形態では、説明の便宜上予
約キュー13に挿入する実パケットのバブルをBESキ
ュー14に挿入する場合を示したが、本発明はこれに限
定されるものではなく、かかるバブルを他の予約キュー
13に挿入する場合に適用することもできる。
【0135】また、本実施の形態では、BESキューの
バブルがスケジューリングの対象となった場合におい
て、対応する予約キューに実パケットが存在する場合に
は、必ず当該実パケットをBESキューのバンド幅を使
って出力していた。しかし、一般には、対応する予約キ
ューに実パケットが存在しても、ある条件を満たす場合
のみバブルの処理を行い、条件を満たさない場合には対
応する実パケットがあたかも存在しなかった時のように
動作させる(つまり、バブルが無効であるとみなす)よ
うな実施の形態もあり得る。前記条件としては、たとえ
ば、予約キュー内のパケット数が2以上である、という
条件などがある。これは、バブル処理時に、予約キュー
が空になった場合の特殊な処理が必要となる可能性をな
くし、バブル処理を簡単化する場合などに有効である。
【0136】
【発明の効果】上記に説明したとおり、請求項1または
請求項9にかかる発明では、分類されたパケットを第1
のキューに挿入する際に、このパケットに対応する疑似
パケットを作成して第2のキューに挿入し、この第2の
キューに挿入した疑似パケットがスケジューラの処理対
象とされた際に、当該疑似パケットに代えて第1のキュ
ーのパケットを第2のキューからの出力として処理する
よう構成したので、少なくとも第2のキューの品質を第
1のキューの品質として確保もって品質を予約したため
に却って遅延時間やサービス品質が低下する品質予約異
常に効率良く対処できるという効果を奏する。
【0137】また、請求項2または請求項10にかかる
発明では、第1のキューに挿入するパケットと該パケッ
トに対応する第2のキューに挿入する疑似パケットとを
相互に関連づけるよう構成したので、パケットまたは疑
似パケットのいずれかがスケジューリング対象とされた
際に、他のキューに所在する当該パケットまたは疑似パ
ケットに関連する疑似パケットまたはパケットを容易に
特定し、もってパケットおよび疑似パケットのスケジュ
ーリングを容易にできるという効果を奏する。
【0138】また、請求項3または請求項11にかかる
発明では、疑似パケットが先にスケジューラの処理対象
とされた場合には、この疑似パケットに対応する第1の
キューのパケットを第2のキューからの出力として処理
し、第1のキューに挿入されたパケットの方が先にスケ
ジューラの処理対象とされた場合には、当該パケットを
処理するとともに疑似パケットを無効化するよう構成し
たので、少なくとも第2のキューの品質を第1のキュー
で保証しつつ、不要な疑似パケットを迅速に処分できる
という効果を奏する。
【0139】また、請求項4にかかる発明では、第1の
キューに挿入するパケットに、該パケットが実パケット
であることを示す識別情報と、該疑似パケットへのリン
ク情報とを付加するよう構成したので、このパケットが
先にスケジューリング対象とされた場合に対応する疑似
パケットの廃棄を容易におこなうことができ、また第2
のキューに挿入する疑似パケットには、疑似パケットで
あることを示す識別情報と、該疑似パケットに対応する
実パケットへのリンク情報とを付加するよう構成したの
で、疑似パケットが先にスケジューリング対象とされた
場合に、この疑似パケットに対応するパケットを迅速に
取り出すことができるという効果を奏する。
【0140】また、請求項5または請求項12にかかる
発明では、パケットと該パケットに対応する疑似パケッ
トとを関連づけるのではなく、疑似パケットと第1のキ
ューとを関連づけることよう構成したので、パケットと
疑似パケットの関連づけにかかわる処理負担を軽減し、
比較的容易にハードウエア化することができるという効
果を奏する。
【0141】また、請求項6または請求項13にかかる
発明では、第1のキューに挿入されたパケットがスケジ
ューラの処理対象とされた場合には、疑似パケットを無
視して当該パケットの処理のみをおこなうよう構成した
ので、疑似パケットにかかわる処理を軽減することがで
きるという効果を奏する。
【0142】また、請求項7にかかる発明では、第2の
キューに挿入する疑似パケットには、対応する第1のキ
ューのパケットへのポインタではなく第1のキューへの
リンク情報を付加し、また第1のキューに挿入するパケ
ットには疑似パケットへのポインタを付加しないよう構
成したので、パケットと疑似パケットのリンクにかかわ
る処理負担を軽減できるという効果を奏する。
【0143】また、請求項8または請求項14にかかる
発明では、疑似パケットをベストエフォートキューに挿
入するよう構成したので、各予約キューの品質として少
なくともベストエフォートキューの品質を確保できると
いう効果を奏する。
【図面の簡単な説明】
【図1】実施の形態1にかかる完全バブルキューイング
の処理概念を示す図である。
【図2】実施の形態1にかかるルータおよび出力インタ
ーフェース部の構成を示す機能ブロック図である。
【図3】図1に示した予約キュー内の実パケットとBE
Sキュー内のバブルとの対応関係を示す図である。
【図4】図1に示した予約キュー内の実パケットおよび
BESキュー内のバブルの具体的なデータ構造の一例を
示す図である。
【図5】図1に示した完全バブルキューイングによるパ
ケットキューイング時の処理手順を示すフローチャート
である。
【図6】図1に示した完全バブルキューイングによるパ
ケットキューイング時の処理手順を示すフローチャート
である。
【図7】図1に示した完全バブルキューイングによるパ
ケットの出力時の処理手順を示すフローチャートであ
る。
【図8】実施の形態2にかかる部分バブルキューイング
の処理概念を示す図である。
【図9】図8に示した予約キュー内の実パケットとBE
Sキュー内のバブルとの対応関係を示す図である。
【図10】図8に示した予約キュー内の実パケットおよ
びBESキュー内のバブルの具体的なデータ構造の一例
を示す図である。
【図11】図8に示した部分バブルキューイングによる
パケットキューイング時の処理手順を示すフローチャー
トである。
【図12】図8に示した部分バブルキューイングによる
パケットキューイング時の処理手順を示すフローチャー
トである。
【図13】図8に示した部分バブルキューイングによる
パケットの出力時の処理手順を示すフローチャートであ
る。
【図14】従来におけるルータをモデル化した一例を示
すブロック図である。
【図15】従来におけるパケット廃棄技術を説明するた
めの説明図である。
【符号の説明】
11 コンフォーマンスチェック 12 BES(ベストエフォート)のRED 13 予約キュー 14 BESキュー 20 ルータ 21 入力インターフェース部 22 ルーティング処理部 23 出力インターフェース部 23a クラシファイア 23b パケット廃棄部 23c 出力キュー 23d リシェーパ 23e リミッタ 23f スケジューラ 140 ルーティング処理部 141 クラシファイア 141a,141b,141c フィルタ 142 パケット廃棄部 143a,143b,143c 予約キュー 143d BESキュー 144 スケジューラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 冨川 真弓 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5K030 GA02 GA11 HA08 HB01 HB02 HB16 JA11 KA13 KX12 KX18 LB05 LC02 LC06 LC15

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 入力パケットを分類する分類手段と、こ
    の分類手段によって分類されたパケットをそれぞれ蓄積
    する複数のキューと、該複数のキューに蓄積されたパケ
    ットの中からいずれかのパケットを選択して出力するス
    ケジューラとを有するパケット処理装置において、 前記分類手段により分類されたパケットを第1のキュー
    に挿入する際に、このパケットに対応する疑似パケット
    を作成して第2のキューに挿入する疑似パケット入力手
    段と、 前記疑似パケット入力手段により第2のキューに挿入さ
    れた疑似パケットが前記スケジューラの処理対象とされ
    た際に、当該疑似パケットに代えて前記第1のキューの
    パケットを第2のキューからの出力として処理する処理
    手段と、 を備えたことを特徴とするパケット処理装置。
  2. 【請求項2】 前記疑似パケット入力手段は、前記第1
    のキューに挿入するパケットと該パケットに対応する前
    記第2のキューに挿入する疑似パケットとを相互に関連
    づけることを特徴とする請求項1に記載のパケット処理
    装置。
  3. 【請求項3】 前記処理手段は、前記疑似パケットが該
    疑似パケットに対応する前記第1のキューに挿入された
    パケットよりも先にスケジューラの処理対象とされた場
    合には、当該疑似パケットに対応する前記第1のキュー
    のパケットを第2のキューからの出力として処理し、前
    記疑似パケットよりも該疑似パケットに対応する前記第
    1のキューに挿入されたパケットの方が先にスケジュー
    ラの処理対象とされた場合には、当該パケットを処理す
    るとともに前記疑似パケットを無効化することを特徴と
    する請求項2に記載のパケット処理装置。
  4. 【請求項4】 前記第1のキューに挿入するパケット
    は、該パケットが実パケットであることを示す識別情報
    と、該疑似パケットへのリンク情報とを有し、前記第2
    のキューに挿入する疑似パケットは、疑似パケットであ
    ることを示す識別情報と、該疑似パケットに対応する実
    パケットへのリンク情報とを有することを特徴とする請
    求項2または3に記載のパケット処理装置。
  5. 【請求項5】 前記疑似パケット入力手段は、前記第2
    のキューに挿入する疑似パケットと前記第1のキューと
    を関連づけることを特徴とする請求項1に記載のパケッ
    ト処理装置。
  6. 【請求項6】 前記処理手段は、第2のキューの前記疑
    似パケットがスケジューラの処理対象とされた際に、前
    記第1のキューにパケットが存在する場合には、前記第
    1のキューの先頭に所在するパケットを第2のキューか
    らの出力として処理し、前記疑似パケットに対応する前
    記第1のキューにパケットが存在せず、かつ、前記第2
    のキューの次のパケットが存在する場合には、そのパケ
    ットをスケジューラの処理対象とし、前記疑似パケット
    に対応する前記第1のキューにパケットが存在せず、か
    つ、前記第2のキューの次のパケットが存在しない場合
    には、再スケジューリングをおこなうことを特徴とする
    請求項5に記載のパケット処理装置。
  7. 【請求項7】 前記第2のキューに挿入する疑似パケッ
    トは、疑似パケットであることを示す識別情報と、前記
    第1のキューへのリンク情報とを有することを特徴とす
    る請求項5または6に記載のパケット処理装置。
  8. 【請求項8】 前記複数のキューは、出力バンド幅を予
    約した複数の予約キューおよびベストエフォートキュー
    からなり、前記第1のキューは前記複数の予約キューの
    いずれかに対応し、前記第2のキューは前記ベストエフ
    ォートキューに対応することを特徴とする請求項1〜7
    のいずれか一つに記載のパケット処理装置。
  9. 【請求項9】 入力パケットを分類し、分類したパケッ
    トをそれぞれ複数のキューに蓄積し、該複数のキューに
    蓄積されたパケットの中からいずれかのパケットをスケ
    ジューラによって選択して出力するパケット処理方法に
    おいて、 前記分類したパケットを第1のキューに挿入する際に、
    このパケットに対応する疑似パケットを作成して第2の
    キューに挿入する疑似パケット入力工程と、 前記疑似パケット入力工程において第2のキューに挿入
    された疑似パケットが前記スケジューラの処理対象とさ
    れた際に、当該疑似パケットに代えて前記第1のキュー
    のパケットを第2のキューからの出力として処理する処
    理工程と、 を含むことを特徴とするパケット処理方法。
  10. 【請求項10】 前記疑似パケット入力工程は、前記第
    1のキューに挿入するパケットと該パケットに対応する
    前記第2のキューに挿入する疑似パケットとを相互に関
    連づけることを特徴とする請求項9に記載のパケット処
    理方法。
  11. 【請求項11】 前記処理工程は、前記疑似パケットが
    該疑似パケットに対応する前記第1のキューに挿入され
    たパケットよりも先にスケジューラの処理対象とされた
    場合には、当該疑似パケットに対応する前記第1のキュ
    ーのパケットを第2のキューからの出力として処理し、
    前記疑似パケットよりも該疑似パケットに対応する前記
    第1のキューに挿入されたパケットの方が先にスケジュ
    ーラの処理対象とされた場合には、当該パケットを処理
    するとともに前記疑似パケットを無効化することを特徴
    とする請求項10に記載のパケット処理方法。
  12. 【請求項12】 前記疑似パケット入力工程は、前記第
    2のキューに挿入する疑似パケットと前記第1のキュー
    とを関連づけることを特徴とする請求項9に記載のパケ
    ット処理方法。
  13. 【請求項13】 前記処理工程は、第2のキューの前記
    疑似パケットがスケジューラの処理対象とされた際に、
    前記第1のキューにパケットが存在する場合には、前記
    第1のキューの先頭に所在するパケットを第2のキュー
    からの出力として処理し、前記疑似パケットに対応する
    前記第1のキューにパケットが存在せず、かつ、前記第
    2のキューの次のパケットが存在する場合には、そのパ
    ケットをスケジューラの処理対象とし、前記疑似パケッ
    トに対応する前記第1のキューにパケットが存在せず、
    かつ、前記第2のキューの次のパケットが存在しない場
    合には、再スケジューリングをおこなうことを特徴とす
    る請求項12に記載のパケット処理装置。
  14. 【請求項14】 前記複数のキューは、出力バンド幅を
    予約した複数の予約キューおよびベストエフォートキュ
    ーからなり、前記第1のキューは前記複数の予約キュー
    のいずれかに対応し、前記第2のキューは前記ベストエ
    フォートキューに対応することを特徴とする請求項9〜
    13のいずれか一つに記載のパケット処理方法。
JP10443899A 1999-04-12 1999-04-12 パケット処理装置およびパケット処理方法 Expired - Fee Related JP3854745B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10443899A JP3854745B2 (ja) 1999-04-12 1999-04-12 パケット処理装置およびパケット処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10443899A JP3854745B2 (ja) 1999-04-12 1999-04-12 パケット処理装置およびパケット処理方法

Publications (2)

Publication Number Publication Date
JP2000299701A true JP2000299701A (ja) 2000-10-24
JP3854745B2 JP3854745B2 (ja) 2006-12-06

Family

ID=14380679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10443899A Expired - Fee Related JP3854745B2 (ja) 1999-04-12 1999-04-12 パケット処理装置およびパケット処理方法

Country Status (1)

Country Link
JP (1) JP3854745B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004066571A1 (ja) * 2003-01-20 2004-08-05 Fujitsu Limited ネットワークスイッチ装置およびネットワークスイッチ方法
WO2004066570A1 (ja) * 2003-01-17 2004-08-05 Fujitsu Limited ネットワークスイッチ装置およびネットワークスイッチ方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004066570A1 (ja) * 2003-01-17 2004-08-05 Fujitsu Limited ネットワークスイッチ装置およびネットワークスイッチ方法
WO2004066571A1 (ja) * 2003-01-20 2004-08-05 Fujitsu Limited ネットワークスイッチ装置およびネットワークスイッチ方法

Also Published As

Publication number Publication date
JP3854745B2 (ja) 2006-12-06

Similar Documents

Publication Publication Date Title
US7621162B2 (en) Hierarchical flow-characterizing multiplexor
JP3386117B2 (ja) マルチレイヤクラス識別通信装置と通信装置
US7020143B2 (en) System for and method of differentiated queuing in a routing system
CN107196877B (zh) 网络流量控制的方法及其网络设备
US7872973B2 (en) Method and system for using a queuing device as a lossless stage in a network device in a communications network
US7653069B2 (en) Two stage queue arbitration
US7787472B2 (en) Hierarchical policers for enforcing differentiated traffic behavior
US20020071387A1 (en) Inter-network relay unit and transfer scheduling method in the same
EP1578072B1 (en) Priority control apparatus and method for transmitting frames
US20080123541A1 (en) Method For Allocating Data To At Least One Packet In An Integrated Circuit
US8139481B2 (en) Method and equipment for shaping transmission speed of data traffic flow
CN110636011A (zh) 电力通信业务数据流智能调度方法、装置及终端设备
US20070140282A1 (en) Managing on-chip queues in switched fabric networks
CN105915468B (zh) 一种业务的调度方法及装置
US8743685B2 (en) Limiting transmission rate of data
JP3623420B2 (ja) トラヒック制御方法
US20060251091A1 (en) Communication control unit and communication control method
US7266606B2 (en) Cascaded policing systems and methods
JP2000299701A (ja) パケット処理装置およびパケット処理方法
Cisco Cisco 10000 Series ESR Quality of Service
Cisco Configuring Quality of Service
JP2006339790A (ja) 帯域制御方法、コンピュータプログラム及びネットワーク装置
KR101093500B1 (ko) 예약/등록 기반의 플로우 등급별 실시간 스케쥴링 장치 및 그 방법
JP3132719B2 (ja) 使用量パラメータ制御回路
Smit A simulation study to evaluate the performance of schedulers in a differentiated services network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060831

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060911

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090915

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100915

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100915

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110915

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees