JP2007166294A - パケット転送装置及びマルチキャスト展開方法 - Google Patents

パケット転送装置及びマルチキャスト展開方法 Download PDF

Info

Publication number
JP2007166294A
JP2007166294A JP2005360502A JP2005360502A JP2007166294A JP 2007166294 A JP2007166294 A JP 2007166294A JP 2005360502 A JP2005360502 A JP 2005360502A JP 2005360502 A JP2005360502 A JP 2005360502A JP 2007166294 A JP2007166294 A JP 2007166294A
Authority
JP
Japan
Prior art keywords
information
priority
pointer
queue
packet
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
JP2005360502A
Other languages
English (en)
Other versions
JP4550728B2 (ja
Inventor
Yasuhiro Kodama
康弘 児玉
Kazuo Sukai
和雄 須貝
Shinichi Akaha
真一 赤羽
Daiki Yano
大機 矢野
Kaoru Okano
薫 岡野
Naoya Kumita
直也 汲田
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.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks 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 Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2005360502A priority Critical patent/JP4550728B2/ja
Priority to US11/387,810 priority patent/US7710962B2/en
Priority to CN2006100716727A priority patent/CN1984046B/zh
Publication of JP2007166294A publication Critical patent/JP2007166294A/ja
Application granted granted Critical
Publication of JP4550728B2 publication Critical patent/JP4550728B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • H04L45/3065Route determination based on the nature of the carried application for real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

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

Abstract

【課題】VoIP等のパケットを優先的に処理する。
【解決手段】優先度指定部501は、ヘッダ情報に基づき優先度情報を指定する。ポインタ検索部502は、ポインタテーブル503を参照し、宛先アドレスに対応するポインタ情報を取得する。振分け部504は、優先度情報に従って、高優先キュー505−2と低優先キュー505−1にポインタ情報を振分ける。ネクストキュー506は、宛先情報テーブル405から取得されるポインタ情報が保持される。スケジューラ507は、ネクストキュー506、高優先キュー505−2、低優先キュー505−1の優先順位で、各キューからポインタ情報を引き抜き、出力する。宛先情報テーブル検索部508は、ポインタ情報に基づき、宛先情報テーブル405から宛先情報及び/又はポインタ情報を取得し、該宛先情報をパケット転送複製部403へ出力する。また、ポインタ情報をネクストキュー506へ出力する。
【選択図】図5

Description

本発明は、パケット転送装置及びマルチキャスト展開方法に関する。
IPネットワークにおける動画配信サービスや、リアルタイム性が重視されるVoIP電話サービス等の本格化に伴い、これらのサービスの高品質化が要求されている。ルータ/スイッチにおいては、効率的な動画配信を実現させるマルチキャスト処理とVoIPの品質を向上させる為に、遅延揺らぎを抑えるQoS制御の重要性が高まっている。例えば、コスト削減の為、ひとつのルータ/スイッチに収容可能なインタフェース数/ユーザ数を増大させることが求められている。また、動画配信サービス等の大容量データ通信に対応する為、ルータ/スイッチでより高速な回線を収容しワイヤレートで処理することが求められている。
一方、マルチキャスト処理における宛先情報テーブル読込みを1回のみで行い、ユニキャスト処理と同一サイクル内に納めることにより、入力帯域に制限のない効率的なマルチキャスト処理を実現するものが開示されている(例えば、特許文献1の図3等参照)。
特開2000−31983号公報
ひとつの装置に収容するインタフェース数の増大により宛先情報テーブルとして必要なビット数が増加する。収容回線の高速化と読込みビット数の増大により宛先情報テーブルへのアクセスが必要処理サイクル内に収まらなくなる。以上より、マルチキャスト処理時には展開数(収容ユーザ数)に比例して宛先情報テーブルを複数回読込むことが必要な場合がある。
また、マルチキャスト展開処理中はユニキャスト処理を抑止することがある為、マルチキャスト展開処理が中断できない場合がある。優先させたいパケット処理があってもマルチキャスト展開処理中は待たされてしまう。例えば、展開数の大きなマルチキャストが混在した場合、リアルタイム性が重視されるVoIPパケットの遅延揺らぎが大きくなり、受信バッファを多く持てない場合には廃棄されてしまうことがある。
本発明は、以上の点に鑑み、マルチキャスト展開処理が混在した場合でもVoIP等の優先パケットを優先的に処理するパケット転送装置及びマルチキャスト展開方法を提供することを目的とする。また、本発明は、高優先のパケットと、低優先のパケットをキューから引き抜く割合を設定可能とし、設定された割合でパケットを処理することを目的とする。本発明は、マルチキャスト展開処理が混在し、マルチキャスト展開の間次の宛先検索が待たされてしまう場合でも、高優先としたフローを他のフローより優先的に処理することを目的のひとつとする。
また、本発明は、高速回線を収容し、収容インタフェース数の増大を可能とし、受信バッファを多く持たなくとも、展開数の多いマルチキャスト処理が混在していても、リアルタイム性を重視するVoIPパケットを高優先とし、VoIPパケットの廃棄を起こさず且つ遅延揺らぎを小さく抑えることを目的のひとつとする。また、本発明は、マルチキャストとVoIPを効率的に収容することを目的のひとつとする。
マルチキャスト処理時に処理ネックとなる宛先情報テーブル読込みの前にマルチキャスト用とVoIP用として別々のキューを設置する。これによりマルチキャスト展開処理が混在した場合でもVoIPを優先的に処理することが可能となる。
宛先検索実施前(宛先テーブル読み込み前)にフロー検出を行ないフロー毎に優先度を指定する。宛先テーブル読込み前のFirstポインタキューを優先度別にし、優先度に従った宛先テーブル読込みを行う。これによりマルチキャスト展開処理が混在しマルチキャスト展開の間、次の宛先検索が待たされてしまう場合でも高優先としたフローを他のフローより優先的に処理することが可能となる。なお、出力帯域に応じた送信制御部での優先制御は従来からあったが、本発明では宛先検索の宛先情報テーブル読込みを行う前で優先制御を行うことを特徴のひとつとする。
第1の実施の形態では低優先のマルチキャスト展開が始まると、その展開が終了するまで高優先パケットの処理は止まる。第2の実施の形態では、宛先テーブル読込み前のNextポインタキューも優先度別にする。これにより低優先のマルチキャスト展開中であっても高優先パケットの処理を優先的に行うことが可能となる。
本発明の第1の解決手段によると、
ユニキャストパケット及びマルチキャストパケットを入力する入力部と、
パケットの宛先アドレスに対応する第1ポインタ情報に対応して、該パケットの出力ポート情報と、該パケットの他の出力ポート情報を検索するための第1のネクストポインタ情報又はネクストホップアドレスとが記憶され、及び、第i(iは1以上の整数)のネクストポインタ情報に対応して、他の出力ポート情報と、さらに他の出力ポート情報を検索するための第i+1のネクストポインタ情報とが記憶され、第1ポインタ情報及び第iのネクストポインタ情報に対応する出力ポート情報が順次読み込まれることで、マルチキャストパケットの複数の出力先が検索されるための宛先情報テーブルと、
前記宛先情報テーブルを検索し、ひとつ又は複数の出力ポート情報及び/又はネクストホップアドレスを取得する宛先検索部と、
前記宛先検索部により取得された出力ポート情報及び/又はネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、及び、入力されたマルチキャストパケットを複製して出力するパケット転送複製部と、
前記パケット転送複製部からのユニキャストパケット及びマルチキャストパケットを、該宛先情報に従いスイッチングするスイッチと、
前記スイッチによりスイッチングされたパケットを出力する出力部と
を備え、
前記宛先検索部は、
前記入力部を介して入力されたパケットのヘッダ情報に基づき優先度情報を指定する優先度指定部と、
宛先アドレスと、第1ポインタ情報とが対応して記憶されたポインタテーブルと、
パケットの宛先アドレスに基づき前記ポインタテーブルを参照して、対応する第1ポインタ情報を取得するポインタ検索部と、
優先度が高いパケットの第1ポインタ情報が保持される高優先キューと、
優先度が低いパケットの第1ポインタ情報が保持される低優先キューと、
前記ポインタ検索部により取得された第1ポインタ情報を、前記優先度指定部により指定された優先度情報に従って、前記高優先キューと前記低優先キューに振分ける振分け部と、
第iのネクストポインタ情報が保持されるネクストキューと、
前記ネクストキュー、前記高優先キュー、前記低優先キューの優先順位で、各キューから第1ポインタ情報又は第iのネクストポインタ情報を引き抜き、出力するスケジューラと、
前記スケジューラからの第1ポインタ情報又は第iのネクストポインタ情報に基づき、前記宛先情報テーブルから出力ポート情報とネクストホップアドレス、又は、出力ポート情報と第1又は第i+1のネクストポインタ情報を取得し、該出力ポート情報及び/又はネクストホップアドレスを前記パケット転送複製部へ出力し、該第1又は第i+1のネクストポインタ情報を前記ネクストキューへ出力する宛先情報テーブル検索部と
を有するパケット転送装置が提供される。
本発明の第2の解決手段によると、
ユニキャストパケット及びマルチキャストパケットを入力する入力部と、
パケットの宛先アドレスに対応する第1ポインタ情報に対応して、該パケットの出力ポート情報と、該パケットの他の出力ポート情報を検索するための第1のネクストポインタ情報又はネクストホップアドレスとが記憶され、及び、第i(iは1以上の整数)のネクストポインタ情報に対応して、他の出力ポート情報と、さらに他の出力ポート情報を検索するための第i+1のネクストポインタ情報とが記憶され、第1ポインタ情報及び第iのネクストポインタ情報に対応する出力ポート情報が順次読み込まれることで、マルチキャストパケットの複数の出力先が検索されるための宛先情報テーブルと、
前記宛先情報テーブルを検索し、ひとつ又は複数の出力ポート情報及び/又はネクストホップアドレスを取得する宛先検索部と、
前記宛先検索部により取得された出力ポート情報及び/又はネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、及び、入力されたマルチキャストパケットを複製して出力するパケット転送複製部と、
前記パケット転送複製部からのユニキャストパケット及びマルチキャストパケットを、該宛先情報に従いスイッチングするスイッチと、
前記スイッチによりスイッチングされたパケットを出力する出力部と
を備え、
前記宛先検索部は、
前記入力部を介して入力されたパケットのヘッダ情報に基づき優先度情報を指定する優先度指定部と、
宛先アドレスと、第1ポインタ情報とが対応して記憶されたポインタテーブルと、
パケットの宛先アドレスに基づき前記ポインタテーブルを参照して、対応する第1ポインタ情報を取得するポインタ検索部と、
優先度が高いパケットの第1ポインタ情報及び優先度情報が保持される第1の高優先キューと、
優先度が低いパケットの第1ポインタ情報及び優先度情報が保持される第1の低優先キューと、
前記ポインタ検索部により検索された第1ポインタ情報と、前記優先度指定部により指定された優先度情報とを、該優先度情報に従って、前記第1の高優先キューと前記第1の低優先キューに振分ける第1の振分け部と、
優先度が高いパケットの第iのネクストポインタ情報及び優先度情報が保持される第2の高優先キューと、
優先度が低いパケットの第iのネクストポインタ情報及び優先度情報が保持される第2の低優先キューと、
第iのネクストポインタ情報と優先度情報とを、該優先度情報に従って、前記第2の高優先キューと前記第2の低優先キューに振分ける第2の振分け部と、
前記第1の高優先キュー、前記第1の低優先キュー、前記第2の高優先キュー、前記第2の低優先キューから、所定の優先順位で第1ポインタ情報又は第iのネクストポインタ情報と優先度情報とを引き抜き、該ポインタ情報と優先度情報とを出力するスケジューラと、
前記スケジューラから第1ポインタ情報又は第iのネクストポインタ情報と優先度情報とを入力し、該第1ポインタ情報又は第iのネクストポインタ情報に基づき、前記宛先情報テーブルから出力ポート情報とネクストホップアドレスとを取得し、又は、出力ポート情報と第1又は第i+1のネクストポインタ情報とを取得し、該出力ポート情報及び/又はネクストホップアドレスを前記パケット転送複製部へ出力し、及び、第1又は第i+1のネクストポインタ情報と優先度情報とを前記第2の振分け部へ出力する宛先情報テーブル検索部と
を有するパケット転送装置が提供される。
本発明の第3の解決手段によると、
入力されたユニキャストパケット又はマルチキャストパケットのヘッダ情報に基づき優先度情報を指定し、
パケットの宛先アドレスに基づき、宛先アドレスと宛先情報テーブルを参照するための第1ポインタ情報とが対応して記憶されたポインタテーブルを参照して、対応する第1ポインタ情報を取得し、
取得された第1ポインタ情報を、指定された優先度情報に従って、優先度が高いパケットの第1ポインタ情報が保持される高優先キューと、優先度が低いパケットの第1ポインタ情報が保持される低優先キューに振分け、
パケットの他の出力先を検索するための第i(iは1以上の整数)のネクストポインタ情報が保持されるネクストキュー、前記高優先キュー、前記低優先キューの優先順位で、各キューから第1ポインタ情報又は第iのネクストポインタ情報を引き抜き、
パケットの宛先アドレスに対応する第1ポインタ情報に対応して、該パケットの出力ポート情報と、該パケットの他の出力ポート情報を検索するための第1のネクストポインタ情報又はネクストホップアドレスとが記憶され、及び、第i(iは1以上の整数)のネクストポインタ情報に対応して、他の出力ポート情報と、さらに他の出力ポート情報を検索するための第i+1のネクストポインタ情報とが記憶され、第1ポインタ情報及び第iのネクストポインタ情報に対応する出力ポート情報が順次読み込まれることで、マルチキャストパケットの複数の出力先が検索されるための宛先情報テーブルから、第1ポインタ情報又は第iのネクストポインタ情報に対応した出力ポート情報とネクストホップアドレス、又は、出力ポート情報と第1又は第i+1のネクストポインタ情報を取得し、
該第1又は第i+1のネクストポインタ情報を前記ネクストキューへ出力し、
該出力ポート情報及び/又はネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、又は、入力されたマルチキャストパケットを複製して出力するマルチキャスト展開方法が提供される。
本発明によると、マルチキャスト展開処理が混在した場合でもVoIP等の優先パケットを優先的に処理するパケット転送装置及びマルチキャスト展開方法を提供することができる。また、本発明によると、高優先のパケットと、低優先のパケットをキューから引き抜く割合を設定可能とし、設定された割合でパケットを処理することができる。本発明によると、マルチキャスト展開処理が混在し、マルチキャスト展開の間次の宛先検索が待たされてしまう場合でも、高優先としたフローを他のフローより優先的に処理することができる。
また、本発明によると、高速回線を収容し、収容インタフェース数の増大を可能とし、受信バッファを多く持たなくとも、展開数の多いマルチキャスト処理が混在していても、リアルタイム性を重視するVoIPパケットを高優先とし、VoIPパケットの廃棄を起こさず且つ遅延揺らぎを小さく抑えることが可能となる。また、本発明によると、マルチキャストとVoIPを効率的に収容することが可能となる。
1.第1の実施の形態
1.1 装置構成
図1は、マルチキャスト対応のルータを用いたネットワーク構成を示す図である。
本ネットワークは、例えば、ルータ(パケット転送装置)101と、コンテンツ配信サーバ102と、VoIP(Voice Over IP)電話機103と、クライアント端末104と、中継装置105とを備える。
ルータ101は、VoIPパケット、マルチキャストパケット等のパケットを転送する。コンテンツ配信サーバ102は、例えば、マルチキャストパケットを配信する。VoIP電話機103−1は、他のVoIP電話機103−2又はクライアント端末104と、VoIPにより音声通信する。クライアント端末104は、例えば、コンテンツ配信サーバからのマルチキャストパケットを受信する。中継装置105は、ルータ101、VoIP電話機103、クライアント端末104間のパケットを中継する。
(1回読み込みの例)
まず、従来のように宛先情報テーブル読込みを1回のみで行い、マルチキャストであっても全宛先情報を1回のアクセスで取得する場合の例について、本実施の形態に即して説明する。なお、各構成は、便宜上、本実施の形態に対応して記載しているが、従来の技術を特定するものではない。
図2は、宛先情報テーブルから1回で纏めて読み込むルータ101の構成例を示す図である。
受信キュー201−1〜201−mは、各入力ポート#0〜#mからの受信パケットの情報が保持される待ちキューである。各受信キュー201は、ラウンドロビンスケジューラ202に対して引抜き要求を出し、ラウンドロビンスケジューラ202により決定された順番でパケットが引抜かれる。ラウンドロビンスケジューラ202は、各入力ポートに対応する受信キュー201からの引き抜き要求に対して、順番にキューからパケットを引抜き、各キューからの引抜きが均等になるように制御する。
パケット転送/複製部203は、宛先検索部204に対して宛先検索要求を出し、宛先検索部204からの検索結果に従って、スイッチ206にパケットを転送する。検索要求は例えばパケットのヘッダ情報を含み、検索結果は宛先情報を含む。また、マルチキャストの場合、パケット転送/複製部203は、宛先検索部204からの複数の宛先情報に対して、パケットの複製を行ないスイッチ206に転送する。
1回読み込み方式の宛先情報テーブル205は、宛先情報として出力ポート情報やネクストホップIPアドレスを格納する。また、マルチキャスト時の複数宛先情報を格納する。
図15は、従来の1回読込み方式の宛先情報テーブル205のフォーマットの一構成例を示す図である。図15(a)に示すように、宛先情報テーブル205は、例えば、出力ポート情報と、ネクストホップIPアドレスを含む。出力ポート情報は、例えば各ポートに対応した複数のフラグ情報である。図示の例では、各ポートに対して「1」は当該ポートに出力することを示し、一方「0」は当該ポートに出力しないことを示す。図15(b)は、ユニキャストパケットに対する構成例である。例えば出力ポート1のフラグが「1」であり、ネクストホップIPアドレスとして、「192.168.0.2」が格納されている。図15(c)は、マルチキャストパケットに対する構成例である。例えば、マルチキャストパケットの配信先として、出力ポート0、1、6に対応するフラグ情報が「1」であり、ネクストホップIPアドレスのフィールドは「Don’t care」となる。このマルチキャストパケットは、複製されて出力ポート#0、#1、#6からそれぞれ出力される。
図2の宛先テーブル1回読み込み宛先検索部204は、パケット転送/複製部203からの検索要求に対して、宛先情報テーブル205の検索を1回のみ行ない、検索結果をパケット転送/複製部203へ出力する。例えば、宛先検索部204は、検索要求に含まれるヘッダ情報に基づいて、出力ポート情報とネクストホップIPアドレスを一度に読み込む。例えば、図15(b)に示す宛先情報テーブル205の例では、各出力ポート0〜mに対応するフラグ「0、1、・・・0」と、ネクストホップIPアドレス「192.168.0.2」を一度に読み込む。図15(c)のマルチキャストの例の場合も同様である。また、読み込まれた出力ポート情報とネクストホップIPアドレスを検索結果として、パケット転送/複製部203へ出力する。
スイッチ206は、パケット転送/複製部203から転送されてきたパケットを、出力ポート情報に従い、出力ポートに応じた送信キュー207へスイッチングする。
送信キュー207−1〜207−mは、スイッチ206からの送信パケットの情報が保持される待ちキューである。また、送信キュー207は、送信制御部208に対して引抜き要求を出し、送信制御部208により決定されたタイミングで引抜かれる。
送信制御部208−1〜208−mは、出力ポートの帯域に従って、送信キュー207から送信パケットの引抜きを行ない、パケットを出力ポート#0〜#mから出力する。また、従来のQoS制御はここで行われる。
図3は、図2の装置に入力されたマルチキャストとVoIPに対するパケットの出力順を示す図である。例えば、図2に示すルータにマルチキャストパケット(以下MC)0、VoIPパケット(以下VoIP)0、MC1、VoIP1の順で入力されたとすると、MC0とMC1はそれぞれ複製されて出力されるものの、入力順と同様の順序で出力される。ここで、マルチキャストの展開数が多いと、例えばVoIP1の遅延時間が大きくなる。
(複数回読み込みの構成)
図4は、マルチキャスト宛先テーブルを複数回読み込む本実施の形態におけるルータ101の構成例を示す図である。
ルータ101は、入力部410と、パケット転送/複製部403と、宛先検索部404と、宛先情報テーブル405と、スイッチ406と、出力部420とを備える。入力部410は、例えば、入力ポートに対応した受信キュー401とラウンドロビンスケジューラ402とを有する。出力部420は、例えば、出力ポートに対応した送信キュー407及び送信制御部408を有する。ルータ101は、スケジューリング設定部409をさらに備えてもよい。
入力部410は、ユニキャストパケット及びマルチキャストパケットを入力する。宛先検索部404は、入力部410を介して入力されたパケットのヘッダ情報に基づき優先度を指定し、該優先度に応じた順序で宛先情報テーブル405を1回又は複数回検索し、ひとつ又は複数の出力ポート情報及び/又はネクストホップアドレスを取得する。
パケット転送/複製部403は、宛先検索部404により取得された出力ポート情報とネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、及び、宛先検索部404により取得された複数の出力ポート情報を含む宛先情報に従い、入力されたマルチキャストパケットを複製して出力する。スイッチ406は、パケット転送/複製部403からのユニキャストパケット及びマルチキャストパケットを、該宛先情報に従いスイッチングする。出力部420は、スイッチングされたパケットを出力する。
スケジューリング設定部409は、例えば、記憶部とインタフェースとカウンタとを有する。例えば、コマンドラインインタフェース(CLI)を用いて後述する重み付き均等保証での比率が記憶部に設定される。また、高優先キューと低優先キューからの引抜きについて、後述する完全優先スケジューリング制御を実行するか、又は、WFQスケジューリング制御を実行するかを示すスケジューリングモード設定値が設定される。カウンタは、高優先カウンタと低優先カウンタを有する。高優先カウンタは、高優先キュー505−1からポインタ情報を引抜くと、上述の比率に応じた高優先重み設定値を累積していく。また、低優先カウンタは、低優先キュー505−2からポインタ情報を引抜くと、上述の比率に応じた低優先重み設定値を累積していく。なお、各カウンタの値は、初期設定で例えば0に設定される。
複数回読込み方式の宛先情報テーブル405は、宛先情報として出力ポート情報やネクストホップIPアドレスを格納する。また、マルチキャスト時の複数宛先情報を格納する為に、Next宛先情報テーブルへのポインタと、宛先情報終了識別子を格納する。
図16は、本実施の形態の複数回読込み方式の宛先情報テーブル405のフォーマットの一構成例を示す図である。
図16(a)に示すように、宛先情報テーブル405は、例えば、ポインタ情報に対応して、宛先情報終了識別子と、出力ポート情報と、ネクストホップIPアドレス又はNextポインタ(第2のポインタ情報)とを含む。出力ポート情報は、例えば出力ポート番号を用いることができるが、番号の他、文字等適宜の識別情報を用いてもよい。また、ネクストホップIPアドレスはIPアドレス以外にも、MACアドレス等を用いてもよいし、IPアドレスとMACアドレスの双方を用いてもよい。宛先情報終了識別子は、次に検索する宛先情報の有無を示す。例えば、ユニキャストパケットに対しては出力ポートはひとつであり、宛先情報終了識別子を1にする。また、マルチキャストパケットに対しては、他の宛先情報を得るためのNextポインタが記憶されている場合には宛先情報終了識別子を0にし、これ以上宛先情報がなく、Nextポインタがない場合に1にする。
図16(b)は、ユニキャストパケットに対する構成例である。ユニキャストパケットについては、宛先情報テーブル405は、宛先情報終了識別子として1と、出力ポート情報(例えば、ポート番号1)と、ネクストホップIPアドレス(例えば、192.168.0.2)とを含む。図示の例では、例えばポインタ情報がAの場合に参照される。
図16(c)は、マルチキャストパケットに対する構成例である。マルチキャストパケットについては、宛先情報テーブル405は、宛先情報終了識別子と、マルチキャストパケットを出力する出力ポート情報のひとつと、次に参照するネクストホップポインタとを含む。図16(c)の例は、出力ポート番号0、1、6にマルチキャストパケットを出力する例である。まず、例えばポインタ情報Bに対応して、宛先情報終了識別子0、出力ポート番号0、Nextポインタ1が記憶される(図16(c)上段)。次に、Nextポインタ1に対応して、宛先情報終了識別子0、出力ポート番号1、Nextポインタ2が記憶される(図16(c)中段)。さらに、Nextポインタ2に対応して、宛先情報終了識別子1、出力ポート番号6が記憶される(図16(c)下段)。マルチキャストの場合、宛先情報テーブルはFirstポインタ情報(第1のポインタ情報)、Nextポインタ情報に従い複数回読み込まれ、宛先情報終了識別子が1であり、Nextポインタがなくなると当該マルチキャストパケットの宛先情報検索が終了する。
図5は、本実施の形態におけるFirstポインタ優先制御付の宛先検索部404の一構成例を示す図である。
宛先検索部404は、例えば、フロー検出/優先度指定部501と、宛先情報テーブルポインタ検索部502と、ポインタテーブル503と、First振分け部504と、Firstポインタ低優先キュー505−1と、Firstポインタ高優先キュー505−2と、Nextポインタキュー506と、優先制御スケジューラ507と、宛先情報テーブル検索部508とを有する。
フロー検出/優先度指定部501は、パケット転送/複製部403からのパケットヘッダ情報の組合せによりフローを検出し、フロー毎に処理の優先度を指定する。例えば、フロー検出/優先度指定部501は、パケットヘッダ情報の組合せによりVoIPのフローを検出し、VoIPのフローの優先度を高く指定する。例えば、優先度情報を「高」と設定する。また、フロー検出/優先度指定部501は、パケットヘッダ情報の組合せによりマルチキャストのフローを検出し、マルチキャストのフローの優先度を低く指定する。例えば、優先度情報を「低」と設定する。また、フロー検出/優先度指定部501は、入力されたヘッダ情報と優先度情報とを宛先情報テーブルポインタ検索部502に出力する。なお、フロー検出/優先度指定部501は、VoIP以外にも適宜の音声パケットの優先度情報を「高」としてもよい。これら以外にも適宜のパケットの優先度情報を「高」又は「低」と設定してもよい。また、本実施の形態では、「高」と「低」の2段階に設定しているが、複数の優先度を設定し、優先度毎の複数のキューにキューイングするようにしてもよい。
宛先情報テーブル読込みポインタ検索部502は、パケットヘッダ情報内の宛先IPアドレスをキーとし、CAM(content addressable memory)や木構造データを検索し、その検索結果を用いてポインタテーブル503を参照し、宛先情報テーブル405を読込む為のFirstポインタ情報を取得する。また、取得されたFirstポインタ情報と、優先度情報とをFirst振分け部504へ出力する。
ポインタテーブル503は、宛先情報テーブル405を読込む為のポインタ情報を格納する。宛先IPアドレスとFirstポインタ情報は、例えば、1対1に対応しており、宛先IPアドレスが決まれば宛先情報テーブル405を参照するポインタが決まる。例えば、ユニキャストの宛先IPアドレスに対して、図16(b)のポインタAを関連付けるようにポインタテーブル503は構成される。また、例えば、マルチキャストの宛先IPアドレスに対して、図16(c)のポインタBを関連付けるように構成される。なお、1対1に限らず、宛先IPアドレスとFirstポインタ情報をn対1に対応させて、異なる宛先IPアドレスであっても同一のポインタ情報を指すようにしてもよい。
First振分け部504は、フロー検出/優先度指定部501により指定された優先度に従って、Firstポインタ低優先キュー505−1とFirstポインタ高優先キュー505−2のどちらかのキューに、ポインタ情報と優先度情報を振分ける。なお、優先度情報については省略してもよい。
Firstポインタ低優先キュー505−1、Firstポインタ高優先キュー505−2は、宛先情報テーブル読込みポインタ検索部502により取得されたFirstポインタ情報とフロー検出/優先度指定部501により指定された優先度情報とが保持される優先度毎の待ちキューである。なお、優先度情報は省略してもよい。また、各キュー505−1、505−2は、優先制御スケジューラ507に対して引抜き要求を出し、優先制御スケジューラ507により決定された順番でFirstポインタ情報が引抜かれる。
Firstポインタ低優先キュー505−1は、フロー検出/優先度指定部501により指定された優先度が低いパケット(例えば、マルチキャストパケット)のFirstポインタ情報が保持される。Firstポインタ高優先キュー505−2は、フロー検出/優先度指定部501により指定された優先度が高いパケット(例えば、VoIPパケット)のFirstポインタ情報が保持される。
Nextポインタキュー506は、宛先情報テーブル検索部508により取得されたNextポインタ情報が保持される待ちキューである。また、Nextポインタキュー506は、優先制御スケジューラ507に対して引抜き要求を出し、優先制御スケジューラ507により決定された順番でNextポインタ情報が引抜かれる。
優先制御スケジューラ(優先制御付宛先情報テーブル読込みスケジューラ)507は、Firstポインタ低優先キュー505−1、Firstポインタ高優先キュー505−2及びNextポインタキュー506からの引抜き要求に対して、優先度に従った引抜きスケジューリングを行う。また、スケジューリング結果に従い各キューからポインタ情報(Firstポインタ情報又はNextポインタ情報)を引抜き、宛先情報テーブル検索部508へポインタ情報を送る。例えば、Nextポインタキュー506、Firstポインタ高優先キュー505−2、Firstポインタ低優先キュー505−1の優先順位でポインタ情報を引き抜く。また、パケットの処理順番性を守る為に、一度Firstポインタキュー505−1、505−2から引き抜きを行うと、宛先情報テーブル検索部508から宛先情報出力終了通知を受信するまでは、Firstポインタキュー505−1、505−2から次のパケットのポインタ情報の引抜きは行わず、Nextポインタキュー506からのみ引き抜きを行うことができる。なお、この引き抜き抑止制御は優先度とは無関係に行う。
宛先情報テーブル検索部508は、優先制御スケジューラ507からのポインタ情報に従って宛先情報テーブル405を参照し、対応する宛先情報とNextポインタ情報と宛先情報終了識別子を取得する。また、宛先情報を検索結果としてパケット転送/複製部に403に出力する。ここで、宛先情報テーブル検索部508は、ユニキャストの場合、宛先情報として出力ポート番号とネクストホップIPアドレスを取得・出力し、マルチキャストの場合出力ポート番号を取得・出力する。また、宛先情報終了識別子により宛先情報出力終了を判定し、宛先情報出力終了であった場合(例えば、宛先情報終了識別子が1の場合)は、宛先情報出力終了通知を優先制御スケジューラ507に送る。一方、宛先情報出力終了でなかった場合(例えば、宛先情報終了識別子が0の場合)は、Nextポインタ情報をNextポインタキュー506へ送る。
図6は、低優先マルチキャストと高優先VoIPのFirstポインタ優先制御付スケジューリングでのパケット出力順を示す図である。
例えば、MC0、VoIP0、MC1、VoIP1の順に入力されると、MC0が複製され出力された後にVoIP0が出力される。このとき、MC1とVoIP1がそれぞれ低優先キュー、高優先キューに保持されているとすれば、優先度に従いVoIP1が先に出力される。したがって、VoIP1は、MC1が複製され出力されるまで待たずに出力されることができる。例えば、マルチキャスト展開数が多くなっても、VoIPパケットへの影響が小さくなる。
1.2 フローチャート
図9は、宛先検索部404が実行するFirstポインタ優先制御付宛先検索フローを示す図である。
宛先検索部404は、パケット転送/複製部403から、パケットヘッダ情報を含む宛先検索要求を入力すると、以下の処理を実行する。
フロー検出/優先度指定部501は、ヘッダ情報からフローを検出し優先度を指定する(処理901)。宛先情報テーブルポインタ検索部502は、ヘッダ情報(例えば、宛先IPアドレス)から宛先情報テーブル情報へのポインタを検索する(処理902)。例えば、ポインタテーブル503を参照し、宛先IPアドレスに対応するFirstポインタ情報を取得する。First振分け部504は、優先度に対応するFirstポインタキューへFirstポインタ情報をキューイングする(処理903)。Firstポインタ低優先キュー505−1、及び、Firstポインタ高優先キュー505−2は、ポインタ情報がキューイングされると、優先制御スケジューラ507に対して引抜き要求を出す(処理904)。次に、処理913に移る。
処理913では、優先制御スケジューラ507は、引抜きスケジューリングを行う(処理913)。例えば、Nextポインタキュー506、Firstポインタ低優先キュー505−1、Firstポインタ高優先キュー505−2のいずれかのキューからポインタ情報を引き抜くか決定する。なお、処理の詳細は後述する。優先制御スケジューラ507は、決定された順番でキューからポインタ情報を引抜く(処理905)。また、引き抜いたポインタ情報を宛先情報テーブル検索部508へ出力する。
宛先情報テーブル検索部508は、ポインタ情報を用いて宛先情報テーブル405にアクセスする(処理906)。宛先情報テーブル検索部508は、宛先情報テーブル405から宛先情報及び/又はNextポインタ情報を取得する(処理907)。また、宛先情報終了識別子を取得する。例えば、ユニキャストに対応するポインタ情報(例えば、図16(b)のポインタA)の場合、宛先情報として出力ポート番号「1」と、ネクストホップIPアドレス「192.168.0.2」が取得され、さらに宛先情報終了識別子1が取得される。一方、マルチキャストに対応するポインタ情報(例えば、図16(c)のポインタB)の場合、宛先情報として出力ポート番号「0」が取得され、Nextポインタ情報として「Nextポインタ1」が取得され、さらに宛先情報終了識別子0が取得される。宛先情報テーブル検索部508は、検索結果として宛先情報をパケット転送/複製部403へ出力する(処理908)。
宛先情報テーブル検索部508は、宛先情報終了識別子に基づき宛先情報終了か判断する(処理909)。例えば、宛先情報終了識別子が「1」であれば宛先情報終了と判断し、一方、宛先情報終了識別子が「0」であれば宛先情報終了でないと判断できる。なお、識別子はこれ以外にも適宜の情報であってもよい。また、これに限らず適宜の手法により宛先情報の終了を判断してもよい。宛先情報テーブル検索部508は、宛先情報終了と判断した場合(処理909:Y)処理910に移り、一方、宛先情報終了でないと判断した場合(処理909:N)処理911に移る。
処理910では、宛先情報テーブル検索部508は、優先制御スケジューラ507に対して宛先情報出力終了通知を送る(処理910)。
処理911では、宛先情報テーブル検索部508は、Nextポインタキュー506へ取得されたNextポインタ情報をキューイングする(処理911)。Nextポインタキュー506は、優先制御スケジューラ507に対して引抜き要求を出す(処理912)。次に、処理913に移り、以降の処理を実行する。Nextポインタキュー506へキューイングされたポインタ情報は優先的に引き抜かれ(例えば処理905)、Nextポインタ情報に従い宛先情報テーブル405が繰り返し検索される(例えば処理906、907)。
図10は、図9の処理913及び905の詳細フローを示す図である。図10を参照して、優先制御スケジューラ507による上述の処理913及び905の詳細を説明する。
優先制御スケジューラ507は、ポインタキューからの引き抜き要求を入力すると、以下の処理を実行する。引き抜き要求は、例えば、Firstポインタ低優先キュー505−1、Firstポインタ高優先キュー505−2、Nextポインタキュー506の各キューから出力される(図9の処理904、912に相当)。
優先制御スケジューラ507は、Nextポインタキュー506からの引抜き要求があるか判断する(処理1001)。優先制御スケジューラ507は、Nextポインタキュー506からの引抜き要求があれば(処理1001:Y)、Nextポインタキュー506からポインタ情報を引抜き、宛先情報テーブル検索部508へ出力する(処理1008)。このように、Nextポインタキュー506に、ポインタ情報がキューイングされるとNextポインタキュー506から引き抜き要求が出され、処理1001、処理1008が実行されて、Nextポインタキュー506からポインタ情報が引き抜かれる。
一方、優先制御スケジューラ507は、Nextポインタキュー506からの引抜き要求がなければ(処理1001:N)、Firstポインタキュー505−1、505−2からの引抜き要求抑止中か判断する(処理1002)。例えば、引抜き抑止中か否かを示すフラグを参照し、判断することができる。このフラグは、初期状態では「抑止解除」と設定しておく。
優先制御スケジューラ507は、Firstポインタキュー505からの引抜き要求抑止中であれば(処理1002:Y)、宛先情報出力終了通知が来ているか判断する(処理1003)。優先制御スケジューラ507は、宛先情報出力終了通知が来ていれば(処理1003:Y)、Firstポインタキュー505からの引抜き要求抑止を解除する(処理1004)。例えば、フラグを「抑止解除」に設定する。また、処理1002に移る。一方、優先制御スケジューラ507は、宛先情報出力終了通知が来ていない場合(処理1003:N)、処理1002に移る。
また、Firstポインタキュー505からの引抜き要求抑止中でなければ(処理1002:N)、優先制御スケジューラ507は、スケジューリング設定部409からスケジューリングモード設定値を読込む(処理1005)。また、優先制御スケジューラ507は、読み込まれたスケジューリングモード設定値が、例えばWFQを示すか判断する(処理1006)。優先制御スケジューラ507は、スケジューリングモード設定値がWFQを示す場合(処理1006:Y)、WFQスケジューリング制御を実行して、Firstポインタ低優先キュー505−1又はFirstポインタ高優先キュー505−2からポインタ情報を引抜く(処理1200)。一方、優先制御スケジューラ507は、スケジューリングモード設定値がWFQを示さない場合(処理1006:N)、完全優先スケジューリング制御を実行して、Firstポインタ低優先キュー505−1又はFirstポインタ高優先キュー505−2からポインタ情報を引抜く(処理1100)。なお、完全優先スケジューリング制御、WFQスケジューリング制御の処理の詳細は後述する。
優先制御スケジューラ507は、Firstポインタキュー505からの引抜き要求を抑止する(処理1009)。例えば、フラグを「抑止中」に設定する。
1.3 完全優先スケジューリング制御
(フローチャート)
図17は、完全優先スケジューリング制御のフローチャートである。図17を参照して、上述の処理1100について説明する。
まず、完全優先スケジューリング制御が起動されると、優先制御スケジューラ507は、Firstポインタ高優先キュー505−1からの引抜き要求があるか判断する(処理1701)。優先制御スケジューラ507は、Firstポインタ高優先キュー505−1からの引抜き要求がなければ(処理1701:N)、Firstポインタ低優先キュー505−2からポインタ情報を引抜き、宛先情報テーブル検索部508へ出力する(処理1702)。また、処理1009に移る。
一方、優先制御スケジューラ507は、Firstポインタ高優先キュー505−1からの引抜き要求があれば(処理1701:Y)、Firstポインタ高優先キュー505−1からポインタ情報を引抜き、宛先情報テーブル検索部508へ出力する(処理1703)。また、処理1009へ移る。
(動作例)
図7は、宛先情報テーブル読込みFirstポインタキューにおけるマルチキャストパケットの完全優先スケジューリングの流れを示す図である。
図7を参照して、スケジューラ507によるポインタの引抜きの動作例を説明する。
まず、図の左の欄について説明する。低優先キュー701(図5のキュー505−1に対応)にMC0があるとすると(図中左1段目)、スケジューラ704(図5の優先制御スケジューラ507に対応)は、MC0を引抜く(左2段目)。ここで、低優先キュー701及び高優先キュー702からの引抜きは抑止される。MC0は、宛先検索の後、Nextポインタ情報がNextポインタキュー703(図5のキュー506に対応)にキューイングされる(左3段目)。次に、Nextポインタキュー703から引抜き要求が出されており、スケジューラ704はNextポインタキュー703のMC0を優先して引抜く(左4段目)。ここで、MC0の宛先検索に従い、宛先情報テーブル検索部508から宛先情報出力終了通知を受信し、抑止が解除されたとする。
次に、図の中央の欄について説明する。左4段目のようにMC0が出力されて各キューが図示の状態になると、スケジューラ704は、優先度に従い高優先キュー702からVoIP0を引抜く(中央1段目)。また、同様にVoIP1、VoIP2を順に引抜く(中央2、3段目)。また、中央3段目のようにVoIPが出力されて高優先キュー702にポインタ情報がなくなると、スケジューラ704は低優先キュー701からMC1を引抜く(中央4段目)。
次に、図の右の欄について説明する。MC1は、宛先検索の後、Nextポインタ情報がNextポインタキュー703にキューイングされる(右1段目)。次に、Nextポインタキュー703から引抜き要求が出されており、スケジューラ704はNextポインタキュー703のMC1を優先して引抜く(右2段目)。右2段目のようにMC1が出力されて各キューが図示の状態になると、スケジューラ704は、優先度に従いVoIP3、VoIP4を順に引抜く(右3、4段目)。
1.4 WFQ(重み付き均等保証)スケジューリング制御
(フローチャート)
図18は、WFQスケジューリング制御のフローチャートである。図18を参照して、上述の処理1200について説明する。
まず、WFQスケジューリング制御が起動されると、優先制御スケジューラ507は、Firstポインタ高優先キューからの引抜き要求があるか判断する(処理1801)。優先制御スケジューラ507は、Firstポインタ高優先キューからの引抜き要求があれば(処理1801:Y)、処理1802に移り、一方、その引抜き要求がなければ(処理1801:N)、処理1804に移る。
処理1802では、優先制御スケジューラ507は、Firstポインタ低優先キューからの引抜き要求があるか判断する(処理1802)。優先制御スケジューラ507は、Firstポインタ低優先キューからの引抜き要求があれば(処理1802:Y)、処理1803に移り、一方、その引抜き要求がなければ(処理1802:N)、処理1805に移る。
処理1803では、優先制御スケジューラ507は、高優先カウンタの値が、低優先カウンタの値以下か判断する(処理1803)。優先制御スケジューラ507は、高優先カウンタの値が、低優先カウンタの値以下であれば(処理1803:Y)、処理1805に移り、一方、それ以外は(処理1803:N)、処理1804に移る。なお、高優先カウンタと低優先カウンタの値が同じ場合は、低優先キューからポインタ情報が引抜かれるように、処理1804へ移るようにしてもよい。
処理1805では、優先制御スケジューラ507は、Firstポインタ高優先キューからポインタ情報を引抜く(処理1805)。また、優先制御スケジューラ507は、スケジューリング設定部409からWFQ高優先重み設定値を読込む(処理1807)。優先制御スケジューラ507は、高優先カウンタに、読み込まれたWFQ高優先重み設定値を加算する(処理1809)。
一方、処理1804では、優先制御スケジューラ507は、Firstポインタ低優先キューからポインタ情報を引抜く(処理1804)。本スケジューリング制御では、高優先キューからの引抜き要求があっても、処理1803で高優先カウンタの値が低優先カウンタの値以下であれば、低優先キューからポインタ情報が引抜かれる。例えば、高優先のパケットだけに偏らず、低優先のパケットも処理できる。例えば、高優先のパケットが多量に入力されても、低優先のパケットが処理されずに溜まっていくのを防ぐことができる。また、優先制御スケジューラ507は、スケジューリング設定部409からWFQ低優先重み設定値を読込む(処理1806)。優先制御スケジューラ507は、低優先カウンタに低優先重み設定値を加算する(処理1808)。
WFQ高優先重み設定値及びWFQ低優先重み設定値は、高優先/低優先のキューからポインタ情報を引抜く数の比率に対して、その逆数とすることができる。例えば、高優先キューと低優先キューから引抜くポインタ情報の比率が2:1(高優先から2つ引抜くのに対して低優先から1つ引抜く)であれば、重み設定値は、それぞれその逆数の1/2、1/1となる。比率が大きいほど重みは小さくなる。どちらのキューからポインタ情報を引き抜くかを決める判定(処理1803)では、カウンタの値を比較して値の小さい方のキューが選択される。また、選択されたキューに対応する高優先又は低優先のカウンタに、重み設定値が加算される。重みが小さいほど(比率が大きいほど)カウンタの増分が小さくなり、重みの小さいキューが、より選択されやすくなる。なお、カウンタは、これ以外にも、例えばキューから引抜いたポインタの数をカウントするなど、適宜の値をカウントしてもよい。カウンタは、カウントアップしてもいし、例えば設定された比率からカウントダウンするようにしてもよい。また、他の手法により、設定された比率になるようにしてもよい。
次に、優先制御スケジューラ507は、カウンタがオーバーフローするのを防ぐための更新処理を実行する(処理1810〜処理1816)。なお、これらの処理は省略してもよいし、カウンタのオーバーフローを防ぐ適宜の処理であってもよい。
優先制御スケジューラ507は、Firstポインタ高優先キューに、ポインタ情報が残っているか判断する(処理1810)。優先制御スケジューラ507は、Firstポインタ高優先キューに、ポインタ情報が残っていれば(処理1810:Y)、Firstポインタ低優先キューに、ポインタ情報が残っているか判断する(処理1811)。優先制御スケジューラ507は、Firstポインタ低優先キューに、ポインタ情報が残っていれば(処理1811:Y)、優先制御スケジューラ507は、高優先カウンタと低優先カウンタが共にカウンタの半分を越えているか判断する(処理1813)。優先制御スケジューラ507は、高優先カウンタと低優先カウンタが共にカウンタの半分を越えていれば(処理1813:Y)、処理1816へ移り、一方、超えていなければ(処理1813:N)図10の処理1009に移る。
また、優先制御スケジューラ507は、Firstポインタ低優先キューに、ポインタ情報が残っていなければ(処理1811:N)、高優先カウンタがカウンタの半分を越えているか判断する(処理1814)。優先制御スケジューラ507は、高優先カウンタがカウンタの半分を越えていれば(処理1814:Y)処理1816へ移り、一方、超えていなければ(処理1814:N)図10の処理1009に移る。
優先制御スケジューラ507は、Firstポインタ高優先キューに、ポインタ情報が残っていなければ(処理1810:N)、Firstポインタ低優先キューに、ポインタ情報が残っているか判断する(処理1812)。優先制御スケジューラ507は、Firstポインタ低優先キューに、ポインタ情報が残っていれば(処理1812:Y)、低優先カウンタがカウンタの半分を越えているか判断する(処理1815)。優先制御スケジューラ507は、低優先カウンタがカウンタの半分を越えていれば(処理1815:Y)、処理1816へ移り、一方、超えていなければ(処理1815:N)図10の処理1009に移る。また、優先制御スケジューラ507は、優先制御スケジューラ507は、Firstポインタ低優先キューに、ポインタ情報が残っていなければ(処理1812:N)、図10の処理1009に移る。
処理1816では、優先制御スケジューラ507は、半分の値を越えているカウンタからカウンタの半分の値を減算する(処理1816)。
なお、上述の処理ではカウンタの半分を超えたかを判断しているが、半分に限らず適宜の値であってもよい。また、カウンタから減算する値についても、カウンタの半分の値を減算する以外にも適宜の値であってもよい。
(動作例)
図8は、宛先情報テーブル読込みFirstポインタキューにおけるマルチキャストパケットのWFQスケジューリングの流れを示す図である。図7の完全優先では優先度の高いキューから常に引抜きを行い、一方、図8のWFQ(重み付き均等保証)では設定した比率に応じてキューからの引抜きを行う。
図8を参照して、スケジューラ507によるWFQスケジューリング制御実行時のポインタの引抜きの動作例を説明する。なお、高優先カウンタ及び低優先カウンタは、それぞれ0に初期化されている。また、この例では、高優先と低優先の引抜きの比率は2:1とする。したがって、比率の逆数に従い、WFQ高優先重み設定値は1/2(0.5)であり、WFQ高優先重み設定値は1である。
まず、図の左の欄について説明する。低優先キュー801(図5のキュー505−1に対応)にMC0があるとすると(図中左1段目)、スケジューラ804(図5の優先制御スケジューラ507に対応)は、MC0を引抜く(左2段目)。低優先カウンタに、低優先重み設定値1が加算され、カウンタの値は1となる。また、低優先キュー701及び高優先キュー702からの引抜きは抑止される。MC0は、宛先検索の後、Nextポインタ情報がNextポインタキュー703(図5のキュー506に対応)にキューイングされる(左3段目)。次に、Nextポインタキュー703から引抜き要求が出されており、スケジューラ704はNextポインタキュー703からMC0を引抜く(左4段目)。ここで、MC0の宛先検索に従い、宛先情報テーブル検索部508から宛先情報出力終了通知を受信し、抑止が解除されたとする。
次に、図の中央の欄について説明する。左4段目のようにMC0が出力されて各キューが図示の状態になると、高優先カウンタの値(0)は、低優先カウンタの値(1)より小さいので(上述の処理1803)、スケジューラ704は、高優先キュー702からVoIP0を引抜く(中央1段目)。また、高優先カウンタに、高優先重み設定値0.5が加算され、カウンタの値は0.5となる。さらに、高優先カウンタの値(0.5)は、低優先カウンタの値(1)より小さいであるので、スケジューラ704は、高優先キュー702からVoIP1を引抜く(中央2段目)。また、高優先カウンタに、高優先重み設定値0.5が加算され、カウンタの値は1となる。
中央3段目の状態では、高優先カウンタの値(1)は、低優先カウンタの値(1)と同じである。この例では、スケジューラ704は、両カウンタの値が同じ場合、低優先キュー701からMC1を引抜く(中央3段目)。すなわち、上述の図18の処理1803では、「高優先カウンタの値<低優先カウンタの値」を判断する例である。また、低優先カウンタに、低優先重み設定値1が加算され、カウンタの値は2となる。なお、両カウンタの値が同じ場合には、高優先キューから引抜くようにしてもよい。MC1は、宛先検索の後、Nextポインタ情報がNextポインタキュー703にキューイングされる(中央4段目)。
次に、図の右の欄について説明する。Nextポインタキュー703から引抜き要求が出されており、スケジューラ704はNextポインタキュー703からMC1を引抜く(右1段目)。右2段目のようにMC1が出力されて各キューが図示の状態になると、高優先カウンタの値(1)は、低優先カウンタの値(2)より小さいので、スケジューラ704は、高優先キュー702からVoIP2を引抜く(右2段目)。また、高優先カウンタに、高優先重み設定値0.5が加算され、カウンタの値は1.5となる。同様にして、スケジューラ704は、高優先キュー702からVoIP3を引抜く(右3段目)。ここで、高優先カウンタの値は2となる。
右4段目の状態では、高優先カウンタの値(2)は、低優先カウンタの値(2)と同じである。この例では、スケジューラ704は、低優先キュー701からMC2を引抜く(右4段目)。なお、両カウンタの値が同じ場合には、高優先キューから引抜くようにしてもよい。
2.第2の実施の形態
2.1 装置構成
本実施の形態におけるルータは、宛先検索部に優先度別のNextポインタキューを有する。なお、宛先検索部4041以外の各部の構成は、図4と同様とすることができる。
図11は、第2の実施の形態におけるFirst・Nextポインタ優先制御付の宛先検索部4041の一構成例を示す図である。
宛先検索部4041は、フロー検出/優先度指定部1101と、宛先情報テーブルポインタ検索部1102と、ポインタテーブル1103と、First振分け部1104と、Next振分け部1105と、Firstポインタ低優先キュー1106−1と、Firstポインタ高優先キュー1106−2と、Nextポインタ低優先キュー1107−1と、Nextポインタ高優先キュー1107−2と、優先制御スケジューラ1108と、宛先情報テーブル検索部1109とを有する。
フロー検出/優先度指定部1101は、パケット転送/複製部403からのパケットヘッダ情報の組合せによりフローを検出し、フロー毎に処理の優先度を指定する。例えば、パケットヘッダ情報の組合せによりVoIPのフローを検出し、VoIPのフローの優先度を高く指定する。例えば、優先度情報を「高」と設定する。また、パケットヘッダ情報の組合せによりマルチキャストのフローを検出すると、マルチキャストの中でも優先度を指定する。例えば、動画については優先度を高く(優先度情報を「高」)、ニュースについては優先度を低く(優先度情報を「低」)とすることができる。動画かニュースかの判断は、例えば、パケットヘッダ情報に適宜の識別子を含め、これを参照することにより判断できる。なお、動画とニュースの例を上げたが、優先度はこれに限らず適宜のルールで設定することができる。また、フロー検出/優先度指定部1101は、入力されたヘッダ情報と優先度情報とを宛先情報テーブルポインタ検索部1102に出力する。
宛先情報テーブルポインタ検索部1102、ポインタテーブル1103については、上述の第1の実施の形態と同様であるので、説明を省略する。
First振分け部1104は、フロー検出/優先度指定部501により指定された優先度に従って、Firstポインタ低優先キュー505−1とFirstポインタ高優先キュー505−2のどちらかのキューに、ポインタ情報と優先度情報を振分ける。
Firstポインタ低優先キュー1106−1、Firstポインタ高優先キュー1106−2は、宛先情報テーブル読込みポインタ検索部1102により取得されたFirstポインタ情報とフロー検出/優先度指定部1101により指定された優先度情報とが保持される優先度毎の待ちキューである。また、各キュー1106−1、1106−2は、優先制御スケジューラ1108に対して引抜き要求を出し、優先制御スケジューラ1108により決定された順番でFirstポインタ情報が引抜かれる。
Firstポインタ低優先キュー1106−1は、フロー検出/優先度指定部501により指定された優先度が低いパケットのFirstポインタ情報が保持される。Firstポインタ高優先キュー1106−2は、フロー検出/優先度指定部501により指定された優先度が高いパケットのFirstポインタ情報とが保持される。例えば、Firstポインタ高優先キュー1106−2には、VoIPパケットと、マルチキャストパケットのうち、動画など優先度が高く設定されたパケットが保持される。なお、Firstポインタ高優先キュー1106−2にはVoIPのみをキューイングし、マルチキャストパケットは、フロー検出/優先度指定部1101で設定された優先度に関わらずFirstポインタ低優先キュー1106−1にキューイングするようにしてもよい。また、もうひとつキューをさらに設け、VoIPパケットのポインタ情報がキューイングされるキューと、高優先のマルチキャスパケットがキューイングされるキューと、低優先のマルチキャストパケットがキューイングされるキューを分けてもよい。
Next振分け部1105は、フロー検出/優先度指定部1101により指定された優先度に従って、Nextポインタ低優先キュー1107−1とNextポインタ高優先キュー1107−2のどちらかのキューに、ポインタ情報と優先度情報を振分ける。
Nextポインタ低優先キュー1107−1、Nextポインタ高優先キュー1107−2は、宛先情報テーブル検索部1101により取得されたNextポインタ情報と、フロー検出/優先度指定部1102により指定された優先度情報とが保持される待ちキューである。各キュー1107−1、1107−2は、優先制御スケジューラ1108に対して引抜き要求を出し、優先制御スケジューラ1108により決定された順番で引抜かれる。
優先制御スケジューラ1108(優先制御付宛先情報テーブル読込みスケジューラ)は、Firstポインタ低優先キュー1106−1、Firstポインタ高優先キュー1106−2、Nextポインタ低優先キュー1107−1及びNextポインタ高優先キュー1107−2からの引抜き要求に対して、優先度に従った引抜きスケジューリングを行い、宛先情報テーブル検索部1109へポインタ情報と優先度情報を送る。例えば、Nextポインタ高優先キュー1107−2、Firstポインタ高優先キュー1106−2、Nextポインタ低優先キュー1107−1、Firstポインタ低優先キュー1106−1の優先順位でポインタ情報を引き抜く。また、パケットの処理順番性を守る為に、一度Firstポインタキューから引き抜きを行うと、宛先情報テーブル検索部1109からの宛先情報出力終了通知が来るまでは、そのFirstポインタキューから次のパケットのポインタ情報と優先度情報の引抜きは行わず、Nextポインタキュー及び他の優先度のFirstポインタキューからのみ引き抜きを行う。この引き抜き抑止制御は優先度毎に独立して行う。
宛先情報テーブル検索部1109は、優先制御スケジューラ1108からのポインタ情報に従って宛先情報テーブル405を参照し、宛先情報とNextポインタ情報と宛先情報終了識別子を取得する。また、宛先情報テーブル検索部1109は、宛先情報を検索結果としてパケット転送/複製部403に出力する。ここで、宛先情報テーブル検索部1109は、ユニキャストの場合、宛先情報として出力ポート番号とネクストホップIPアドレスを出力し、マルチキャストの場合出力ポート番号を出力する。また、Next情報内の宛先情報終了識別子により宛先情報出力終了を判定し、宛先情報出力終了であった場合(例えば、宛先情報終了識別子が1の場合)は、宛先情報出力終了通知と優先度情報を優先制御スケジューラ1108に送る。宛先情報出力終了でなかった場合(例えば、宛先情報終了識別子が0の場合)は、Nextポインタ情報と優先度情報をNext振分け部1105へ送る。
図12は、低優先マルチキャストと高優先VoIPのFirst・Nextポインタ優先制御付スケジューリングでのパケット出力順を示す図である。例えば、MC0、VoIP0、MC1、VoIP1の順に入力されると、低優先のMC0の宛先検索がされるが、Nextポインタ情報がキューから引き抜かれる前に、高優先のVoIP0が出力される。このように、高優先のVoIPは、低優先のMCが複製される途中で出力されることができる。
2.2 フローチャート
図13は、本実施の形態におけるFirst・Nextポインタ優先制御付宛先検索フローを示す図である。
宛先検索部4041は、パケット転送/複製部403から、パケットヘッダ情報を含む宛先検索要求を入力すると、以下の処理を実行する。なお、図中、()内で表す符号は第1の実施の形態との対応関係を示す。
フロー検出/優先度指定部1101は、ヘッダ情報からフローを検出し優先度を指定する(処理1301)。例えば、VoIPパケット、及び、動画のマルチキャストパケットに対しては優先度を高、ニュースのマルチキャストパケットに対しては優先度を低と指定する。宛先情報テーブルポインタ検索部1102は、ヘッダ情報(例えば、宛先IPアドレス)から宛先情報テーブル情報へのポインタを検索する(処理1302)。First振分け部1104は、優先度に対応するFirstポインタキューへポインタ情報をキューイングする(処理1303)。Firstポインタ低優先キュー1106−1、及び、Firstポインタ高優先キュー1106−2は、ポインタ情報がキューイングされると、優先制御スケジューラ507に対して引抜き要求を出す(処理1304)。次に、処理1313に移る。
処理1313では、優先制御スケジューラ1108は、引抜きスケジューリングを行う(処理1313)。例えば、Nextポインタ低優先キュー1107−1、Nextポインタ高優先キュー1107−2、Firstポインタ低優先キュー1106−1、Firstポインタ高優先キュー1106−2のいずれのキューからポインタ情報を引き抜くか決定する。なお、処理の詳細は後述する。優先制御スケジューラ1108は、決定された順番でキューからポインタ情報と優先度情報を引抜く(処理1305)。また、引き抜いたポインタ情報と優先度情報を宛先情報テーブル検索部1109へ出力する。
処理1306〜処理1309は、上述の第1の実施の形態の処理906〜909と同様であるので、説明を省略する。なお、処理1309において、宛先情報終了と判断した場合処理1310に移り、一方、宛先情報終了でないと判断した場合処理1311に移る。
処理1310では、宛先情報テーブル検索部1109は、優先制御スケジューラ507に対して宛先情報出力終了通知と優先度情報を送る(処理1310)。
処理1311では、宛先情報テーブル検索部508は、処理1307で取得されたNextポインタ情報と優先度情報をNext振分け部1105に出力し、Next振分け部1105は、優先度に対応するNextポインタキューへポインタ情報と優先度情報をキューイングする(処理1311)。Nextポインタ高優先キュー1107−2、及び、Nextポインタ低優先キュー1107−1は、ポインタ情報がキューイングされると、優先制御スケジューラ507に対して引抜き要求を出す(処理1312)。次に、処理1313に移り、以降の処理を実行する。
図14は、本実施の形態におけるFirst・Nextポインタ優先制御付宛先情報テーブル読込み完全優先スケジューラのフローを示す図である。図14は、図13の処理1313及び1305の詳細フロー(完全優先スケジューリングの場合)を示す。図14を参照して、優先制御スケジューラ1108による上述の処理1313の詳細を説明する。
優先制御スケジューラ1108は、各ポインタキューからの引き抜き要求を入力すると、以下の処理を実行する。引き抜き要求は、各キューから出力される(図13の処理1304、1312に相当)。
優先制御スケジューラ1108は、Nextポインタ高優先キュー1107−2からの引抜き要求があるか判断する(処理1401)。優先制御スケジューラ1108は、Nextポインタ高優先キュー1107−2からの引抜き要求があれば(処理1401:Y)、Nextポインタ高優先キュー1107−2からポインタ情報を引抜き、宛先情報テーブル検索部1109へ出力する(処理1415)。また、図13の処理1306に移る。
一方、優先制御スケジューラ1108は、Nextポインタ高優先キュー1107−2からの引抜き要求がなければ(処理1401:N)、Firstポインタ高優先キュー1106−2からの引抜き要求抑止中か判断する(処理1402)。本実施の形態では、優先度毎に、引き抜き要求を抑止する。例えば、引抜き抑止中か否かを示す優先度毎の抑止フラグを参照し、判断することができる。この抑止フラグは、初期状態では例えば「抑止解除」と設定しておく。
優先制御スケジューラ1108は、Firstポインタ高優先キュー1106−2からの引抜き要求抑止中であれば(処理1402:Y)、宛先情報テーブル検索部1109から高優先の優先度情報と宛先情報出力終了通知とが来ているか判断する(処理1403)。優先制御スケジューラ1108は、高優先の優先度情報と宛先情報出力終了通知とが来ていれば(処理1403:Y)、Firstポインタ高優先キュー1106−2からの引抜き要求抑止を解除する(処理1404)。例えば、高優先のフラグを「抑止解除」に設定する。また、処理1402に移る。一方、優先制御スケジューラ1108は、高優先の優先度情報と宛先情報出力終了通知が来ていない場合(処理1403:N)、処理1402に移る。
また、Firstポインタ高優先キュー1106−2からの引抜き要求抑止中でなければ(処理1402:N)、優先制御スケジューラ1108は、Firstポインタ高優先キュー1106−2からの引抜き要求があるか判断する(処理1405)。優先制御スケジューラ1108は、Firstポインタ高優先キュー1106−1からの引抜き要求があれば(処理1405:Y)、Firstポインタ高優先キュー1106−1からポインタ情報を引抜き、宛先情報テーブル検索部1109へ出力する(処理1413)。優先制御スケジューラ1108は、Firstポインタ高優先キュー1106−1からの引抜き要求を抑止する(処理1414)。例えば、高優先の抑止フラグを「抑止中」に設定する。また、図13の処理1306に移る。
優先制御スケジューラ1108は、Firstポインタ高優先キュー1106−1からの引抜き要求がなければ(処理1405:N)、Nextポインタ低優先キュー1107−1からの引抜き要求があるか判断する(処理1406)。優先制御スケジューラ1108は、Nextポインタ低優先キュー1107−1からの引抜き要求があれば(処理1406:Y)、Nextポインタ低優先キュー1107−1からポインタ情報を引抜き、宛先情報テーブル検索部1109へ出力する(処理1412)。また、図13の処理1306に移る。
一方、優先制御スケジューラ1108は、Nextポインタ低優先キュー1107−1からの引抜き要求がなければ(処理1406:N)、Firstポインタ低優先キュー1106−1からの引抜き要求抑止中か判断する(処理1407)。例えば、引抜き抑止中か否かを示す低優先の抑止フラグを参照し、判断することができる。
優先制御スケジューラ1108は、Firstポインタ低優先キュー1106−1からの引抜き要求抑止中であれば(処理1407:Y)、宛先情報テーブル検索部1109から低優先の優先度情報と宛先情報出力終了通知とが来ているか判断する(処理1408)。優先制御スケジューラ1108は、高優先の優先度情報と宛先情報出力終了通知とが来ていれば(処理1408:Y)、Firstポインタ低優先キュー1106−1からの引抜き要求抑止を解除する(処理1409)。例えば、低優先の抑止フラグを「抑止解除」に設定する。また、処理1407に移る。一方、優先制御スケジューラ1108は、低優先の優先度情報と宛先情報出力終了通知が来ていない場合(処理1408:N)、処理1407に移る。
また、Firstポインタ低優先キュー1106−1からの引抜き要求抑止中でなければ(処理1407:N)、優先制御スケジューラ1108は、Firstポインタ低優先キュー1106−1からポインタ情報を引抜き、宛先情報テーブル検索部1109へ出力する(処理1410)。優先制御スケジューラ1108は、Firstポインタ低優先キュー1106−1からの引抜き要求を抑止する(処理1411)。例えば、低優先の抑止フラグを「抑止中」に設定する。また、図13の処理1306に移る。
なお、本実施の形態では、完全優先スケジューラについて説明したが、第1の実施の形態のように、WFQを用いてもよい。
本発明は、例えば、パケット通信を行う装置、システム、サービスに関する産業に利用可能である。また、本発明は、IPネットワークにおける動画配信サービスや、リアルタイム性が重視されるVoIP電話サービス等に利用可能である。
マルチキャスト対応のルータ101を用いたネットワーク構成を示す図である。 マルチキャスト宛先テーブル1回で纏めて読み込みを行う従来のルータ101の構成例を示す図である。 入力されたマルチキャストとVoIPに対する図2で示す装置からのパケット出力順を示す図である。 マルチキャスト宛先テーブル複数回読み込みを行う本発明を適用したルータ101の構成例を示す図である。 本発明の実施例1におけるFirstポインタ優先制御付宛先検索部の一構成例を示す図である。 低優先マルチキャストと高優先VoIPのFirstポインタ優先制御付スケジューリングでのパケット出力順を示す図である。 宛先情報テーブル読込みFirstポインタキューにおけるマルチキャストパケットの完全優先スケジューリングの流れを示す図である。 宛先情報テーブル読込みFirstポインタキューにおけるマルチキャストパケットのWFQスケジューリングの流れを示す図である。 宛先検索部404が実行するFirstポインタ優先制御付宛先検索フローを示す図である。 図9のステップ913の詳細フロー(完全優先スケジューリングの場合)を示す図である。 本発明の実施例2におけるFirst・Nextポインタ優先制御付宛先検索部の一構成例を示す図である。 低優先マルチキャストと高優先VoIPのFirst・Nextポインタ優先制御付スケジューリングでのパケット出力順を示す図である。 本発明におけるFirst・Nextポインタ優先制御付宛先検索フローを示す図である。 本発明におけるFirst・Nextポインタ優先制御付宛先情報テーブル読込み完全優先スケジューラのフローを示す図である。 従来の1回読込み方式宛先情報テーブルのフォーマットの一構成例を示す図である。 本発明の複数回読込み方式宛先情報テーブルのフォーマットの一構成例を示す図である。 図10の処理1007の詳細フロー(完全優先スケジューリング)を示す図である。 図10の処理1008の詳細フロー(WFQスケジューリング)を示す図である。
符号の説明
101…マルチキャスト対応ルータ
102…コンテンツ配信サーバ
103−1,103−2…VoIP電話
104−1,104−2…クラインアント
105−1,105−2…ルータ
201−1〜201−m…受信キュー
202…ラウンドロビンスケジューラ
203…パケット転送/複製部
204…宛先テーブル1回読み込み宛先検索部
205…1回読込み方式宛先情報テーブル
206…スイッチ
207−1〜207−m…送信キュー
208…送信制御部
401−1〜401−m…受信キュー
402…ラウンドロビンスケジューラ
403…パケット転送/複製部
404…宛先テーブル複数読み込み宛先検索部
405…複数回読込み方式宛先情報テーブル
406…スイッチ
407−1〜407−m…送信キュー
408…送信制御部
501…フロー検出/優先度指定部
502…宛先情報テーブル読込みポインタ検索部
503…ポインタテーブル
504…First振分け部
505−1…Firstポインタ低優先キュー
505−2…Firstポインタ高優先キュー
506…Nextポインタキュー
507…Firstポインタ優先制御付宛先情報テーブル読込みスケジューラ
508…宛先情報テーブル検索部
509…宛先情報テーブル
701…Firstポインタ低優先キュー
702…Firstポインタ高優先キュー
703…Nextポインタキュー
704…Firstポインタ優先制御付宛先情報テーブル読込み完全優先スケジューラ
801…Firstポインタ低優先キュー
802…Firstポインタ高優先キュー
803…Nextポインタキュー
804…Firstポインタ優先制御付宛先情報テーブル読込みWFQスケジューラ
1101…フロー検出/優先度指定部
1102…宛先情報テーブル読込みポインタ検索部
1103…ポインタテーブル
1104…First振分け部
1105…Next振分け部
1106−1…Firstポインタ低優先キュー
1106−2…Firstポインタ高優先キュー
1107−1…Nextポインタ低優先キュー
1107−2…Nextポインタ高優先キュー
1108…First・Nextポインタ優先制御付宛先情報テーブル読込みスケジューラ
1109…宛先情報テーブル検索部
1110…宛先情報テーブル

Claims (11)

  1. ユニキャストパケット及びマルチキャストパケットを入力する入力部と、
    パケットの宛先アドレスに対応する第1ポインタ情報に対応して、該パケットの出力ポート情報と、該パケットの他の出力ポート情報を検索するための第1のネクストポインタ情報又はネクストホップアドレスとが記憶され、及び、第i(iは1以上の整数)のネクストポインタ情報に対応して、他の出力ポート情報と、さらに他の出力ポート情報を検索するための第i+1のネクストポインタ情報とが記憶され、第1ポインタ情報及び第iのネクストポインタ情報に対応する出力ポート情報が順次読み込まれることで、マルチキャストパケットの複数の出力先が検索されるための宛先情報テーブルと、
    前記宛先情報テーブルを検索し、ひとつ又は複数の出力ポート情報及び/又はネクストホップアドレスを取得する宛先検索部と、
    前記宛先検索部により取得された出力ポート情報及び/又はネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、及び、入力されたマルチキャストパケットを複製して出力するパケット転送複製部と、
    前記パケット転送複製部からのユニキャストパケット及びマルチキャストパケットを、該宛先情報に従いスイッチングするスイッチと、
    前記スイッチによりスイッチングされたパケットを出力する出力部と
    を備え、
    前記宛先検索部は、
    前記入力部を介して入力されたパケットのヘッダ情報に基づき優先度情報を指定する優先度指定部と、
    宛先アドレスと、第1ポインタ情報とが対応して記憶されたポインタテーブルと、
    パケットの宛先アドレスに基づき前記ポインタテーブルを参照して、対応する第1ポインタ情報を取得するポインタ検索部と、
    優先度が高いパケットの第1ポインタ情報が保持される高優先キューと、
    優先度が低いパケットの第1ポインタ情報が保持される低優先キューと、
    前記ポインタ検索部により取得された第1ポインタ情報を、前記優先度指定部により指定された優先度情報に従って、前記高優先キューと前記低優先キューに振分ける振分け部と、
    第iのネクストポインタ情報が保持されるネクストキューと、
    前記ネクストキュー、前記高優先キュー、前記低優先キューの優先順位で、各キューから第1ポインタ情報又は第iのネクストポインタ情報を引き抜き、出力するスケジューラと、
    前記スケジューラからの第1ポインタ情報又は第iのネクストポインタ情報に基づき、前記宛先情報テーブルから出力ポート情報とネクストホップアドレス、又は、出力ポート情報と第1又は第i+1のネクストポインタ情報を取得し、該出力ポート情報及び/又はネクストホップアドレスを前記パケット転送複製部へ出力し、該第1又は第i+1のネクストポインタ情報を前記ネクストキューへ出力する宛先情報テーブル検索部と
    を有するパケット転送装置。
  2. 前記宛先情報テーブルは、第1ポインタ情報又は第iのネクストポインタ情報に対応して、検索すべき他の出力ポート情報の有無を示す宛先情報終了識別子がさらに記憶され、
    前記スケジューラは、前記高優先キュー又は前記低優先キューから第1ポインタ情報を引き抜くと、前記高優先キュー及び前記低優先キューからの引き抜きを抑止して、前記ネクストキューから第iのネクストポインタ情報を引き抜くようにし、
    前記宛先情報テーブル検索部は、第1ポインタ情報又は第iのネクストポインタ情報に基づき、前記宛先情報テーブルから対応する宛先情報終了識別子を取得し、該識別子が他の出力ポート情報がないことを示す場合に終了通知を前記スケジューラに出力し、
    前記スケジューラは、該終了通知が入力されると前記抑止を解除する請求項1に記載のパケット転送装置。
  3. 前記優先度指定部は、
    入力されるヘッダ情報に基づき、マルチキャストパケットを優先度が低くなるように、及び、VoIPパケットを含む音声通信パケットを優先度が高くなるように優先度情報を指定する請求項1に記載のパケット転送装置。
  4. 前記スケジューラは、
    前記ネクストキューに第iのネクストポインタ情報が保持されていれば、該ネクストキューから第iのネクストポインタ情報を引抜き、
    前記ネクストキューに第iのネクストポインタ情報がなく、かつ、前記高優先キューに第1ポインタ情報が保持されていれば、該高優先キューから第1ポインタ情報を引抜き、
    前記ネクストキューに第iのネクストポインタ情報がなく、かつ、前記高優先キューに第1ポインタ情報がなければ、前記低優先キューから第1ポインタ情報を引抜く請求項1に記載のパケット転送装置。
  5. 前記高優先キュー及び前記低優先キューから引抜かれる第1ポインタ情報の数の比率が設定され、保持される記憶部と、
    前記高優先キューから引抜いたポインタ情報の数又はその数に応じた値をカウントする第1のカウンタと、
    前記低優先キューから引抜いたポインタ情報の数又はその数に応じた値をカウントする第2のカウンタと
    をさらに備え、
    前記スケジューラは、
    前記ネクストキューに第iのネクストポインタ情報が保持されていれば、該ネクストキューから第iのネクストポインタ情報を引抜き、
    前記ネクストキューに第iのネクストポインタ情報が保持されていなければ、前記第1のカウンタの値と前記第2のカウンタの値を参照し、前記高優先キュー及び前記低優先キューから引抜くポインタ情報の数が前記記憶部に設定された比率になるように、前記高優先キュー又は前記低優先キューから第1ポインタ情報を引抜く請求項1に記載のパケット転送装置。
  6. ユニキャストパケット及びマルチキャストパケットを入力する入力部と、
    パケットの宛先アドレスに対応する第1ポインタ情報に対応して、該パケットの出力ポート情報と、該パケットの他の出力ポート情報を検索するための第1のネクストポインタ情報又はネクストホップアドレスとが記憶され、及び、第i(iは1以上の整数)のネクストポインタ情報に対応して、他の出力ポート情報と、さらに他の出力ポート情報を検索するための第i+1のネクストポインタ情報とが記憶され、第1ポインタ情報及び第iのネクストポインタ情報に対応する出力ポート情報が順次読み込まれることで、マルチキャストパケットの複数の出力先が検索されるための宛先情報テーブルと、
    前記宛先情報テーブルを検索し、ひとつ又は複数の出力ポート情報及び/又はネクストホップアドレスを取得する宛先検索部と、
    前記宛先検索部により取得された出力ポート情報及び/又はネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、及び、入力されたマルチキャストパケットを複製して出力するパケット転送複製部と、
    前記パケット転送複製部からのユニキャストパケット及びマルチキャストパケットを、該宛先情報に従いスイッチングするスイッチと、
    前記スイッチによりスイッチングされたパケットを出力する出力部と
    を備え、
    前記宛先検索部は、
    前記入力部を介して入力されたパケットのヘッダ情報に基づき優先度情報を指定する優先度指定部と、
    宛先アドレスと、第1ポインタ情報とが対応して記憶されたポインタテーブルと、
    パケットの宛先アドレスに基づき前記ポインタテーブルを参照して、対応する第1ポインタ情報を取得するポインタ検索部と、
    優先度が高いパケットの第1ポインタ情報及び優先度情報が保持される第1の高優先キューと、
    優先度が低いパケットの第1ポインタ情報及び優先度情報が保持される第1の低優先キューと、
    前記ポインタ検索部により検索された第1ポインタ情報と、前記優先度指定部により指定された優先度情報とを、該優先度情報に従って、前記第1の高優先キューと前記第1の低優先キューに振分ける第1の振分け部と、
    優先度が高いパケットの第iのネクストポインタ情報及び優先度情報が保持される第2の高優先キューと、
    優先度が低いパケットの第iのネクストポインタ情報及び優先度情報が保持される第2の低優先キューと、
    第iのネクストポインタ情報と優先度情報とを、該優先度情報に従って、前記第2の高優先キューと前記第2の低優先キューに振分ける第2の振分け部と、
    前記第1の高優先キュー、前記第1の低優先キュー、前記第2の高優先キュー、前記第2の低優先キューから、所定の優先順位で第1ポインタ情報又は第iのネクストポインタ情報と優先度情報とを引き抜き、該ポインタ情報と優先度情報とを出力するスケジューラと、
    前記スケジューラから第1ポインタ情報又は第iのネクストポインタ情報と優先度情報とを入力し、該第1ポインタ情報又は第iのネクストポインタ情報に基づき、前記宛先情報テーブルから出力ポート情報とネクストホップアドレスとを取得し、又は、出力ポート情報と第1又は第i+1のネクストポインタ情報とを取得し、該出力ポート情報及び/又はネクストホップアドレスを前記パケット転送複製部へ出力し、及び、第1又は第i+1のネクストポインタ情報と優先度情報とを前記第2の振分け部へ出力する宛先情報テーブル検索部と
    を有するパケット転送装置。
  7. 前記スケジューラは、
    前記第2の高優先キュー、前記第1の高優先キュー、前記第2の低優先キュー、前記第1の低優先キューの優先順位で第1ポインタ情報又は第iのネクストポインタ情報を引き抜く請求項6に記載のパケット転送装置。
  8. 前記優先度指定部は、
    入力されるヘッダ情報に基づき、VoIPパケットを含む音声パケットを優先度が高くなるように優先度情報を指定する請求項6に記載のパケット転送装置。
  9. 前記優先度指定部は、
    入力されるヘッダ情報に基づき、動画のマルチキャストパケットを優先度が高く、ニュースのマルチキャストパケットを優先度が低くなるように優先度情報を指定する請求項6に記載のパケット転送装置。
  10. 前記宛先情報テーブルは、第1ポインタ情報又は第iのネクストポインタ情報に対応して、検索すべき他の出力ポート情報の有無を示す宛先情報終了識別子がさらに記憶され、
    前記スケジューラは、前記第1の高優先キューから第1ポインタ情報を引き抜くと、前記第1の高優先キューからの引き抜きを抑止し、
    前記スケジューラは、前記第1の低優先キューから第1ポインタ情報を引き抜くと、前記第1の低優先キューからの引き抜きを抑止し、
    前記宛先情報テーブル検索部は、第1ポインタ情報又は第iのネクストポインタ情報に基づき、前記宛先情報テーブルから対応する宛先情報終了識別子を取得し、該識別子が他の出力ポート情報がないことを示す場合に、終了通知と入力された優先度情報とを前記スケジューラに出力し、
    前記スケジューラは、該終了通知と優先度情報が入力されると、優先度情報に対応する前記第1の高優先キュー又は前記第1の低優先キューの前記抑止を解除する請求項6に記載のパケット転送装置。
  11. 入力されたユニキャストパケット又はマルチキャストパケットのヘッダ情報に基づき優先度情報を指定し、
    パケットの宛先アドレスに基づき、宛先アドレスと宛先情報テーブルを参照するための第1ポインタ情報とが対応して記憶されたポインタテーブルを参照して、対応する第1ポインタ情報を取得し、
    取得された第1ポインタ情報を、指定された優先度情報に従って、優先度が高いパケットの第1ポインタ情報が保持される高優先キューと、優先度が低いパケットの第1ポインタ情報が保持される低優先キューに振分け、
    パケットの他の出力先を検索するための第i(iは1以上の整数)のネクストポインタ情報が保持されるネクストキュー、前記高優先キュー、前記低優先キューの優先順位で、各キューから第1ポインタ情報又は第iのネクストポインタ情報を引き抜き、
    パケットの宛先アドレスに対応する第1ポインタ情報に対応して、該パケットの出力ポート情報と、該パケットの他の出力ポート情報を検索するための第1のネクストポインタ情報又はネクストホップアドレスとが記憶され、及び、第i(iは1以上の整数)のネクストポインタ情報に対応して、他の出力ポート情報と、さらに他の出力ポート情報を検索するための第i+1のネクストポインタ情報とが記憶され、第1ポインタ情報及び第iのネクストポインタ情報に対応する出力ポート情報が順次読み込まれることで、マルチキャストパケットの複数の出力先が検索されるための宛先情報テーブルから、第1ポインタ情報又は第iのネクストポインタ情報に対応した出力ポート情報とネクストホップアドレス、又は、出力ポート情報と第1又は第i+1のネクストポインタ情報を取得し、
    該第1又は第i+1のネクストポインタ情報を前記ネクストキューへ出力し、
    該出力ポート情報及び/又はネクストホップアドレスを含む宛先情報に従い、入力されたユニキャストパケットを出力し、又は、入力されたマルチキャストパケットを複製して出力するマルチキャスト展開方法。
JP2005360502A 2005-12-14 2005-12-14 パケット転送装置及びマルチキャスト展開方法 Active JP4550728B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005360502A JP4550728B2 (ja) 2005-12-14 2005-12-14 パケット転送装置及びマルチキャスト展開方法
US11/387,810 US7710962B2 (en) 2005-12-14 2006-03-24 Packet forwarding apparatus and method for multicast packets
CN2006100716727A CN1984046B (zh) 2005-12-14 2006-03-30 对应多播数据包的数据包传送装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005360502A JP4550728B2 (ja) 2005-12-14 2005-12-14 パケット転送装置及びマルチキャスト展開方法

Publications (2)

Publication Number Publication Date
JP2007166294A true JP2007166294A (ja) 2007-06-28
JP4550728B2 JP4550728B2 (ja) 2010-09-22

Family

ID=38139250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005360502A Active JP4550728B2 (ja) 2005-12-14 2005-12-14 パケット転送装置及びマルチキャスト展開方法

Country Status (3)

Country Link
US (1) US7710962B2 (ja)
JP (1) JP4550728B2 (ja)
CN (1) CN1984046B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013042355A (ja) * 2011-08-16 2013-02-28 Alaxala Networks Corp 情報処理装置及びパケット複製方法
US8838782B2 (en) 2008-09-19 2014-09-16 Nec Corporation Network protocol processing system and network protocol processing method

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8295300B1 (en) * 2007-10-31 2012-10-23 World Wide Packets, Inc. Preventing forwarding of multicast packets
US8601069B1 (en) 2007-11-21 2013-12-03 Marvell International Ltd. Method and apparatus for message multicasting
US9229792B1 (en) * 2007-11-21 2016-01-05 Marvell International Ltd. Method and apparatus for weighted message passing
US7898985B1 (en) * 2008-04-23 2011-03-01 Juniper Networks, Inc. Composite next hops for forwarding data in a network switching device
CN101447925A (zh) * 2008-12-17 2009-06-03 中兴通讯股份有限公司 一种发送多路数据包的方法及系统
US9164886B1 (en) * 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
ES2548542T3 (es) * 2011-05-16 2015-10-19 Huawei Technologies Co., Ltd. Método y dispositivo de red para transmitir un flujo de datos
US9021146B2 (en) * 2011-08-30 2015-04-28 Apple Inc. High priority command queue for peripheral component
MY154138A (en) 2011-11-04 2015-05-15 Mimos Berhad A system to deploy quality of transmission and a method thereof
US9179197B2 (en) 2012-10-10 2015-11-03 Sonos, Inc. Methods and apparatus for multicast optimization
US9628373B2 (en) 2012-12-19 2017-04-18 Comcast Cable Communications, Llc Multipath communication in a network
CN105162724B (zh) 2015-07-30 2018-06-26 华为技术有限公司 一种数据入队与出队方法及队列管理单元
US10218525B2 (en) 2016-11-11 2019-02-26 Cisco Technology, Inc. System and method to control latency of serially-replicated multi-destination flows

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001016223A (ja) * 1999-06-30 2001-01-19 Nec Corp Atm通信システムにおけるシェーピング方式
JP2005269314A (ja) * 2004-03-19 2005-09-29 Fujitsu Ltd マルチキャストパケット読出し制御方法及び装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212182B1 (en) * 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US6075814A (en) * 1997-05-09 2000-06-13 Broadcom Homenetworking, Inc. Method and apparatus for reducing signal processing requirements for transmitting packet-based data with a modem
JP3919341B2 (ja) 1998-07-10 2007-05-23 株式会社東芝 非同期転送モード交換装置
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
CA2337674A1 (en) * 2000-04-20 2001-10-20 International Business Machines Corporation Switching arrangement and method
TW513635B (en) * 2000-11-24 2002-12-11 Ibm Method and structure for variable-length frame support in a shared memory switch
US7310348B2 (en) * 2001-09-19 2007-12-18 Bay Microsystems, Inc. Network processor architecture
US7362749B2 (en) * 2002-03-01 2008-04-22 Verizon Business Global Llc Queuing closed loop congestion mechanism
CN1146192C (zh) * 2002-04-17 2004-04-14 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN1236585C (zh) * 2002-05-29 2006-01-11 瑞昱半导体股份有限公司 多播分组的传送设定方法与装置
US7609693B2 (en) * 2002-06-04 2009-10-27 Alcatel-Lucent Usa Inc. Multicast packet queuing
KR100608904B1 (ko) * 2003-12-18 2006-08-04 한국전자통신연구원 서비스 품질 보장을 위한 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001016223A (ja) * 1999-06-30 2001-01-19 Nec Corp Atm通信システムにおけるシェーピング方式
JP2005269314A (ja) * 2004-03-19 2005-09-29 Fujitsu Ltd マルチキャストパケット読出し制御方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838782B2 (en) 2008-09-19 2014-09-16 Nec Corporation Network protocol processing system and network protocol processing method
JP2013042355A (ja) * 2011-08-16 2013-02-28 Alaxala Networks Corp 情報処理装置及びパケット複製方法

Also Published As

Publication number Publication date
US20070133531A1 (en) 2007-06-14
CN1984046B (zh) 2010-09-01
US7710962B2 (en) 2010-05-04
JP4550728B2 (ja) 2010-09-22
CN1984046A (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
JP4550728B2 (ja) パケット転送装置及びマルチキャスト展開方法
US7701849B1 (en) Flow-based queuing of network traffic
US9614755B2 (en) Combined hardware/software forwarding mechanism and method
US7649882B2 (en) Multicast scheduling and replication in switches
US8565092B2 (en) Dynamic flow redistribution for head of line blocking avoidance
EP1741229B1 (en) Weighted random scheduling
AU2003217319A8 (en) Services processor having a packet editing unit
US20220124030A1 (en) Combined input and output queue for packet forwarding in network devices
US10855606B2 (en) Information processing apparatus and information processing system
EP1981227A2 (en) Maintenance of bandwidth allocation for traffic including multicasts
US7580355B2 (en) Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same
US7248586B1 (en) Packet forwarding throughput with partial packet ordering
US20020131419A1 (en) Packet switch apparatus and multicasting method
WO2006091175A1 (en) Method and apparatus for buffer management in shared memory packet processors
US7916743B2 (en) System and method for improved multicast performance
JP4331471B2 (ja) データ・ネットワークにおいてマルチキャスト・リストを維持するための方法および装置
US9485326B1 (en) Scalable multi-client scheduling
US20050083927A1 (en) Method and apparatus for packet transmit queue
KR100572696B1 (ko) 광대역 가입자 집선-스위치 장치
US6621825B1 (en) Method and apparatus for per connection queuing of multicast transmissions
US9922000B2 (en) Packet buffer with dynamic bypass
JP5617800B2 (ja) 情報処理装置及びパケット複製方法
CN112953854B (zh) 用于交换网络流量的设备和方法
JP3529963B2 (ja) パケットバッファ装置
JP6718397B2 (ja) ルータ装置及びその制御方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100317

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4550728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

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