JP2011234063A - 中継装置、及び、転送方法 - Google Patents

中継装置、及び、転送方法 Download PDF

Info

Publication number
JP2011234063A
JP2011234063A JP2010101618A JP2010101618A JP2011234063A JP 2011234063 A JP2011234063 A JP 2011234063A JP 2010101618 A JP2010101618 A JP 2010101618A JP 2010101618 A JP2010101618 A JP 2010101618A JP 2011234063 A JP2011234063 A JP 2011234063A
Authority
JP
Japan
Prior art keywords
packet
destination
bit
group
port
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
JP2010101618A
Other languages
English (en)
Inventor
Takashi Kadosawa
敬 門澤
Ryoji Azumi
良二 安積
Daisuke Hirata
大介 平田
Hirohiko Hashimoto
浩彦 橋本
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 JP2010101618A priority Critical patent/JP2011234063A/ja
Publication of JP2011234063A publication Critical patent/JP2011234063A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】宛先MACアドレスがルーティングテーブルに記憶されていないパケットを受信した場合に、中継装置が備える全ポートから、迅速に、送出するポートを特定することを目的とする。
【解決手段】中継装置は、いずれかのグループに属するパケットを受信し、受信したパケットの送信先がルーティングテーブルに登録されていない場合は、LIUが備える全ポートを示すビットマップのうち、グループ内のポートを示す宛先ビットマップを示す部分のみを読み出し、読み出したデータに基づいてパケットを送出する。
【選択図】図8

Description

本発明は、パケットを転送する中継装置に関する。
近年の情報処理技術の発展に伴い、パケット交換網はメール等の単なるデータの送信のみならず、IP電話及びIP放送等にも使用されるようになってきている。
このようなIP電話等の通信では、中継装置におけるパケットの転送処理は特に重要となる。例えば、IP電話の音声はパケットによって運ばれるが、パケットの遅延又はパケットの損失等が生じると、音声が正確に伝わらなくなってしまうからである。
中継装置、例えば、L(Layer)2スイッチでは、パケット(MACフレーム)を受信すると、いわゆるルーティングテーブルを参照し、受信したパケットの宛先MACアドレスに対応付けて記憶されているポートに、受信したパケットを送出する。
このルーティングテーブルに記憶されているMACアドレスとポートとの対応関係は、L2スイッチが、いずれかのポートからパケットを受信すると、受信したパケットの送信元MACアドレスと受信したポートとを対応付けて記憶していくことで学習されていく。
従って、受信したパケットの宛先MACアドレスに対応するポートが記憶されていない場合があり得、その場合は、受信したポート以外の全ポートにパケットを送出する。
物理的なポート(以下、「物理ポート」という。)に対して複数の論理的なポート(以下、「論理ポート」という。)が割り当てられている場合には、パケットの送出先は、物理ポートと論理ポートとの組み合わせで指定するので、論理ポートの数如何によっては、パケットの送出対象となり得るポートの数が増大する。
ここで、2分木検索を使ってマルチキャストパケットの1又は複数のポートを示す経路情報を検索する技術が提案されている(特許文献1等参照)。
特開2000−115243号公報
LAN(Local Area Network)を仮想的にグループ分けした複数のLANのパケット転送を行っている中継装置では、受信したパケットの宛先MACアドレスがルーティングテーブルに記憶されていない場合、受信したパケットが属するグループと同一グループに属するパケットを送出する可能性のある全ポート(以下、「グループ内ポート」という。)に送出することとなる。
この場合、受信されたパケットが属するグループのグループ内ポートを特定するためには、中継装置が備える全ポート、すなわち、物理ポートと論理ポートとの組み合わせで指定される全ポートを検索対象とする必要があり、ポートの数が多くなればなるほど検索に時間を要することとなる。中継装置が備える全ポートを検索対象とするのは、グループ内ポートの数及びポート番号は、グループによってそれぞれ異なっているからである。
従って、受信したパケットの宛先MACアドレスがルーティングテーブルに記憶されていない場合は、受信したパケットの宛先MACアドレスがルーティングテーブルに記憶されている場合に比べて、パケットの送出が遅延することになる。
そこで、本発明は、宛先MACアドレスがルーティングテーブルに記憶されていないパケットを受信した場合に、中継装置が備える全ポートから、迅速に、送出するポートを特定することを目的とする。
本発明の1形態に係る中継装置は、いずれかのグループに属するパケットを受信する受信手段と、パケットの送信先とポートとを対応付けて記憶するルーティング情報記憶手段と、グループ毎に、出力ポートとなり得るポート毎に1ビットが対応するビットマップであって、グループに属するパケットを出力するポートが示されているビットマップを記憶しており、一度に所定数のビットのデータを読み出すことができるビットマップ記憶手段と、前記ビットマップを前記所定数のビットのビット群に分割したとした場合の各ビット群に対応付けて、ビット群がパケットを出力するポートを示すビットを含んでいるか否かを示す特定情報を記憶する特定情報記憶手段と、受信したパケットの送信先が前記ルーティング記憶手段に記憶されている場合は、当該送信先と対応付けられているポートに当該パケットを送出し、受信したパケットの送信先が前記ルーティング記憶手段に記憶されていない場合は、当該パケットが属するグループのビットマップのビット群であって、パケットを出力するポートを示すビットを含んでいることを前記特定情報が示しているビット群を読み出し、読み出したビット群に基づいたポートに当該パケットを送出する転送手段と、を有する。
上記構成の中継装置は、宛先MACアドレスがルーティングテーブルに記憶されていないパケットを受信した場合に、中継装置が備える全ポートから、迅速に、送出するポートを特定することが可能となる。
中継装置の構成の例を示す図である。 パケットの構成及び内容例を示す図である。 LIU1000及びLIU2000の構成例を示す図である。 ドメインID情報の構成及び内容の例を示す図である。 宛先カード情報の構成及び内容の例を示す図である。 LIU1000のパケット100の送信処理のフローチャートである。 宛先設定処理部の機能ブロック図である。 宛先ビットマップテーブルの構成及び内容の例を示す図である。 グループビットマップテーブルの構成及び内容の例を示す図である。 宛先ポート変換テーブルの構成及び内容の例を示す図である。 宛先ビットマップを読み出す例を示す図である。 LIU2000のパケット100の送信処理のフローチャートである。 受信帯域と出力帯域の例を示したタイムチャートである。
<実施形態>
図1は、実施形態における中継装置10の構成の例を示す図である。
中継装置10は、図1においては、端末装置1及び2と端末装置3〜9との間で送受信されるパケットを中継する。
中継装置10は、LIU(Line Interface Unit)1000A、LIU1000B、LIU2000A、LIU2000B、LIU2000C、及び、SW(SWitch)11を有する。以下、LIU1000A及びLIU1000Bを総称して「LIU1000」といい、LIU2000A、LIU2000B及びLIU2000Cを総称して「LIU2000」という。
LIU1000及びLIU2000は、中継装置10が運用されているネットワークに対応したインタフェースユニットであり、LIU1000及びLIU2000は、いずれもがパケットを受信する側にも、送信する側にもなり得る機能を有している。
図1では、説明の便宜上、中継装置10は、端末装置1〜3のいずれかから送信されたパケット101を、パケット102として端末装置3〜9のいずれかに送出する場合を想定する。
すなわち、LIU1000を用いて、パケットを受信する側のLIUの機能を説明し、LIU2000を用いて、パケッを出力する側のLIUの機能を説明する。
LIU1000は、パケット101を受信すると、受信したパケット101に装置内ヘッダを付加してパケット100として、SW11に出力する。
SW11は、入力したパケット100の装置内ヘッダの内容に応じて、LIU2000に出力する。
LIU2000は、入力したパケット100の装置内ヘッダの内容から、適切なLIU2000の適切なポートを判断し、装置内ヘッダを削除したパケット102を送出する。
<装置内のパケット>
図2は、パケット100の構成及び内容例を示す図である。尚、パケット100は、パケット101に装置内ヘッダ110を付加したものである。また、パケット102は、パケット101と同じ構成を有する。
パケット101は、宛先MACアドレスを示すDA(Destination Address)120、送信元MACアドレスを示すSA(Source Address)130、Tag140、データ部を示すData150、誤りチェックデータであるFSC(Frame Check Sequence)160を有する。
Tag140は、いわゆるVLAN(Virtual LAN)タグであり、パケット101が、どのVLANに属するかを示す識別子であるVLAN−ID141を有する。
装置内ヘッダ110は、Uni/Multiフラグ111、宛先カードビットマップ112、ドメインID113、入力ポート情報114、及び、宛先ポート情報115を有する。
Uni/Multiフラグ111は、パケット101がユニキャストパケットであるか、マルチキャストパケットであるかを示す。
例えば、Uni/Multiフラグ111として、1ビットを割り当てられている。「1」であれば、パケット100はユニキャストパケットであることを示し、「0」であれば、パケット101はマルチキャストパケットであることを示す。
宛先カードビットマップ112は、パケット100を、いずれのLIU2000に送信するかを示すビットマップである。1ビットが、LIU2000に対応している。
この宛先カードビットマップ112に応じて、SW11はパケット100をLIU2000に送信する。
パケット101がユニキャストパケットの場合は、この宛先カードビットマップ112のうち、1つのビットが「1」となっている。また、マルチキャストパケットの場合は、1以上のビットが「1」となっている。
ドメインID113は、パケット101が属するグループを示す識別子である。
パケット101がマルチキャストパケットの場合は、このドメインID113が示すグループに属するパケットを送出する可能性のある全ポートに、パケット101を送出することになる。
入力ポート情報114は、パケット100が受信されたLIU1000を示すカード番号、物理ポート番号、及び、論理ポート番号を示す。
宛先ポート情報115は、パケット101の宛先情報を示す。この宛先情報とは、パケット101を送出するポート、すなわち、物理ポート番号及び論理ポート番号を示す。
尚、宛先ポート情報115は、LIU2000が受信するときには、Uni/Multiフラグ111がユニキャストパケットを示す場合にのみ有効である。マルチキャストパケットの場合は、宛先が不明であるからである。
<構成>
図3は、LIU1000及びLIU2000の構成例を示す図である。尚、図3では、LIU1000及びLIU2000が備える機能のうち、マルチキャストパケット送信処理に関連する機能部を中心に記載する。
また、図3は、LIU1000によって受信されたパケット100が、LIU2000から送出されるまでの流れを示している。
LIU1000は、宛先判定部1100、ドメインID情報記憶部3100、ルーティングテーブル記憶部3200、及び、宛先カード情報記憶部3300を備える。
宛先判定部1100は、受信したパケット101用の装置内ヘッダ110を生成し、パケット101に付加して、パケット100としてSW11に送る機能を有する。
装置内ヘッダ110を作成する際、宛先判定部1100は、ドメインID情報記憶部3100、ルーティングテーブル記憶部3200及び宛先カード情報記憶部3300に記憶されているデータを参照する。尚、ドメインID情報記憶部3100、ルーティングテーブル記憶部3200及び宛先カード情報記憶部3300に記憶されているデータ、及び、装置内ヘッダ110を生成する処理については、<LIU1000>の項で説明する。
SW11は、LIU1000からパケット100を受信し、装置内ヘッダ110の宛先カードビットマップ112(図2参照)を参照し、宛先カードとして指定されているカード、すなわち、LIU2000にパケット100を送信する機能を有する。
LIU2000は、Uni/Multi判定部2200、SEL2300、ポート判定部2400、FIFO2500、宛先設定処理部2100、宛先ビットマップ記憶部3400、グループビットマップ記憶部3500、及び、宛先変換テーブル記憶部3600を有する。
Uni/Multi判定部2200は、パケット100がユニキャストパケットであるか、マルチキャストパケットであるかを判断し、ユニキャストパケットである場合はSEL2300に送信し、マルチキャストパケットである場合は、宛先設定処理部2100に送信する。
Uni/Multi判定部2200は、パケット100の装置内ヘッダ110のUni/Multiフラグ111を参照し、「1」である場合は、パケット100はユニキャストパケットであると判断し、「0」である場合は、マルチキャストパケットであると判断する。
宛先設定処理部2100は、マルチキャストパケットであるパケット100を受信し、装置内ヘッダ110のドメインID113に基づいて、送出するポートを選出する。この際、宛先ビットマップ記憶部3400、グループビットマップ記憶部3500及び宛先変換テーブル記憶部3600に記憶されているテーブルを参照する。
宛先設定処理部2100は、選出したポートそれぞれを宛先情報として設定した、選出したポート数分のパケット130を生成してSEL2300に送信する。
この宛先設定処理部2100の機能については、<LIU2000>の項で、図7等を用いて説明する。
SEL2300は、Uni/Multi判定部2200から受信したパケット100、又は、宛先設定処理部2100から受信したパケット130をポート判定部2400に送信する。SEL2300が受信するパケット100及びパケット130には、宛先情報が設定されている。
ポート判定部2400は、SEL2300から受信したパケット100の装置内ヘッダ110の宛先ポート情報115に応じたFIFO2500に蓄積する。この際、パケット100の装置内ヘッダ110を削除し、パケット102として蓄積する。
FIFO2500に蓄積されたパケット102は、順次、適切なタイミングでそれぞれの物理ポートから送出される。
<LIU1000>
以下、LIU1000の宛先判定部1100が、装置内ヘッダ110を生成し、パケット100を送信する処理を説明する。
<データ>
まず、宛先判定部1100が参照するデータについて説明する。
図4は、ドメインID情報3110の構成及び内容の例を示す図である。
このドメインID情報3110は、ドメインID情報記憶部3100に記憶されているデータである。このデータを参照して、パケット101が属するグループを示すドメインIDを取得する。
ドメインID情報3110は、物理ポート番号3111、VLAN−ID3112、及び、ドメインID3113を有する。
物理ポート番号3111は、パケット101が受信された物理ポート番号を示す。
VLAN−ID3112は、パケット101のVLAN−ID141として設定されている識別子を示す。
ドメインID3113は、パケット101が属するグループの識別子を示す。
尚、物理ポート番号3111及びVLAN−ID3112は、ビット列を示し、ドメインID3113は10進数を示す。
例えば、パケット101が受信された物理ポート番号が「000」で、パケット101のVLAN−ID141に「0000 0000 0001」が設定されている場合は、パケット101が属するグループのドメインIDは「#198」、すなわち、十進数で198である。物理ポート番号3111とVLAN−ID3112として、それぞれ「000」と「0000 0000 0001」とが設定されているレコードに、ドメインID3113として「#198」が設定されているからである。以下、「#」を付けた数字は、十進数を表すものとする。
尚、例えば、ドメインID情報記憶部3100はRAM(Random Access Memory)であり、物理ポート番号3111及びVLAN−ID3112として設定されているビット列に基づいたアドレスに、対応するドメインID3113として設定されている番号を記憶しているものとしてもよい。
図5は、宛先カード情報3310の構成及び内容の例を示す図である。
この宛先カード情報3310は、ドメインID情報記憶部3100に記憶されているデータである。このデータを参照して、パケット101を送信するLIU2000を取得する。
宛先カード情報3310は、ドメインID3311、及び、宛先カードビットマップ3312を有する。
ドメインID3311は、パケット101が属するグループの識別子を示す。
宛先カードビットマップ3312は、ドメインID3311で示されるグループに属するパケットを送信するLIU2000を示す。宛先カードビットマップ3312は、ビットマップで示され、「1」となっているビットが示すLIU2000にパケット101を送信する。
尚、例えば、ドメインID情報記憶部3100はRAMであり、ドメインID3311として設定されている番号に基づいたアドレスに、対応する宛先カードビットマップ3312として設定されているビットマップを記憶しているものとしてもよい。
次に、ルーティングテーブル記憶部3200に記憶されているルーティングテーブルは、MACアドレス、ドメインID、カード番号及び宛先情報(物理ポート及び論理ポート)をそれぞれ対応させたテーブルである。尚、ルーティングテーブル記憶部3200として、CAM(Content Addressable Memory)を用いてもよい。
<動作>
図6は、LIU1000のパケット100の送信処理のフローチャートである。
LIU1000は、パケット101を受信すると、受信した物理ポート番号等の情報とともに、パケット101を宛先判定部1100に渡す。
宛先判定部1100は、まず、渡されたパケット101が属するグループを示すドメインIDを取得する。このドメインIDは、パケット101が属するVLANを示すVLAN−ID及び受信ポート(物理ポート)から取得する(ステップS100)。
詳細には、宛先判定部1100は、パケット101が属するVLANを示すVLAN−IDとして、Tag140のVLAN−ID141を読み出す。
宛先判定部1100は、ドメインID情報3110から、パケット101が受信された物理ポートの番号及び読み出したVLAN−ID141をアドレスとして、パケット101のドメインIDを読み出す。
次に、宛先判定部1100は、DA120及びドメインIDを検索キーとして、ルーティングテーブルに宛先情報(物理ポート及び論理ポート)及びカード番号が登録されているかを検索する(ステップS110)。
宛先情報が登録されている場合は(ステップS110:Yes)、ユニキャストパケットであるので、宛先判定部1100はユニキャストパケット用の装置内ヘッダ110を生成する(ステップS140)。
具体的には、Uni/Multiフラグ111を「1」とし、宛先カードビットマップ112のビットのうち、ルーティングテーブルに登録されていたカード番号に該当するビットを「1」とし、ルーティングテーブルに登録されていた宛先情報を宛先ポート情報115として設定する。また、取得したドメインIDをドメインID113として設定し、受信された物理ポート等を入力ポート情報114として設定する。
装置内ヘッダ110を生成した宛先判定部1100は、生成した装置内ヘッダ110をパケット101に付加し、パケット100としてSW11に送信する(ステップS150)。
一方、ルーティングテーブルに宛先情報が登録されていない場合は(ステップS110:No)、マルチキャストパケットであるので、宛先判定部1100は、宛先カードの番号を取得する(ステップS120)。
詳細には、宛先カード情報3310(図5参照)から、ステップS100において取得してドメインIDをアドレスとして、対応する宛先カードビットマップを読み出す。
ビットマップを読み出した宛先判定部1100は、マルチキャストパケット用の装置内ヘッダ110を生成する(ステップS130)。
具体的には、Uni/Multiフラグ111を「0」とし、宛先カードビットマップ112として、読み出したビットマップを設定する。また、取得したドメイIDをドメインID113として設定し、受信された物理ポート等を入力ポート情報114として設定する。
装置内ヘッダ110を生成した宛先判定部1100は、生成した装置内ヘッダ110をパケット101に付加し、パケット100としてSW11に送信する(ステップS150)。
<LIU2000>
以下、LIU2000の宛先設定処理部2100が、マルチキャストパケットの宛先を選出する処理について説明する。
図7は、宛先設定処理部2100の機能ブロック図である。
宛先設定処理部2100は、内部FIFO2110、パケット書込部2120、パケット読出部2130、宛先決定部2140、宛先読出部2150、宛先グループ読出部2160、複製生成部2170、CPU設定部2180、パケットバッファ3000、宛先ビットマップ記憶部3400、グループビットマップ記憶部3500、及び、宛先変換テーブル記憶部3600を有する。尚、点線は、パケットの流れを示す。
内部FIFO2110は、マルチキャストパケットであるパケット100のバッファ領域である。
パケット書込部2120は、Uni/Multi判定部2200から受信したパケット100を、パケットバッファ3000に書き込む機能を有する。
パケット読出部2130は、パケットバッファ3000からパケット100を、パケット書込部2120が書き込んだ古いほうから順に読み出して、内部FIFO2110に蓄積する機能を有する。マルチキャストパケットは、一旦、パケットバッファ3000に蓄積され、順に内部FIFO2110に移されて処理される。
宛先決定部2140は、パケット100の宛先、すなわち、パケット100が属するグループ内の全ポートを決定し、決定した宛先の全てにパケットを送出するように制御する機能を有する。
宛先読出部2150は、パケット100が属するグループの宛先を示す宛先ビットマップを読み出し、読み出した宛先ビットマップから具体的な宛先情報を宛先変換テーブルを参照して取得する機能を有する。この際、宛先読出部2150は、宛先ビットマップ記憶部3400及び宛先変換テーブル記憶部3600に記憶されているデータを参照する。
宛先グループ読出部2160は、パケット100が属するグループのグループビットマップを読み出す機能を有する。この際、宛先グループ読出部2160は、グループビットマップ記憶部3500に記憶されているデータを参照する。
宛先ビットマップ記憶部3400、グループビットマップ記憶部3500、及び、宛先変換テーブル記憶部3600に記憶されているデータについては、<データ>の項で説明する。
複製生成部2170は、宛先決定部2140が決定した宛先の数分、パケット100を複製し、複製したパケットそれぞれに宛先情報を設定したパケット130を生成する機能を有する。
CPU設定部2180は、宛先ビットマップ等を宛先ビットマップ記憶部3400に予め記憶させておく機能を有する。また、グループビットマップをグループビットマップ記憶部3500に予め記憶させ、宛先変換テーブルを宛先変換テーブル記憶部3600に予め記憶させておく機能を有する。
パケットバッファ3000は、Uni/Multi判定部2200から受信したパケット100を、一旦蓄積しておく機能を有する大容量のバッファである。
宛先ビットマップ記憶部3400は、宛先ビットマップを記憶しておく機能を有する。
グループビットマップ記憶部3500は、グループビットマップを記憶しておく機能を有する。
また、宛先変換テーブル記憶部3600は、宛先変換テーブルを記憶させておく機能を有する。
<データ>
図8は、宛先ビットマップテーブル3410の構成及び内容の例を示す図である。
宛先ビットマップテーブル3410は、宛先ビットマップ記憶部3400に記憶されている。
実施形態では、宛先ビットマップ記憶部3400は、ポートのデータ幅が32ビットのRAM(Random Access Memory)であるものとする。すなわち、一回の読み出し操作で、32ビットのデータを読み出すことができる。
また、宛先ビットマップテーブル3410には、ドメインID毎に、128ビットの宛先ビットマップが記憶されているものとする。
すなわち、1つのドメインIDの宛先ビットマップを読み出すには、宛先ビットマップ記憶部3400からデータを4回読み出す必要がある。
詳細には、10ビットの「ドメインID」と2ビットの「idx」とから成るAddress30を指定して、32ビットのData31を読み出す。「idx」は、2ビットの「11」、「10」、「01」及び「00」の4つを順に指定する。
読み出した128ビットの宛先ビットマップのうち、「1」となっているビットの配列番号(以下、「宛先ビット番号」という。)、すなわち、「#0」〜「#127」をもとに、宛先情報(物理ポート及び論理ポート)を取得する。宛先情報は、図10に示す宛先ポート変換テーブル3610を参照することで求める。
図9は、グループビットマップテーブル3510の構成及び内容の例を示す図である。
グループビットマップテーブル3510は、グループビットマップ記憶部3500に記憶されている。
グループビットマップテーブル3510は、ドメインID3511、及び、グループビットマップ3512を有する。
ドメインID3511は、パケット101が属するグループを示す識別子である。
グループビットマップ3512は、宛先ビットマップ(図8参照)における「1」となっているビットの有無を示すビットマップである。実施形態では、4ビットであり、1つのドメインIDの宛先ビットマップの読出し回数と同じビット数である。
図8で示すように、宛先ビットマップ記憶部3400は、1回の読出しで32ビットのData31を読み出すことができる。従って、1つのドメインIDの宛先ビットマップは4回に分けて読み出すことになる。1回目〜4回目で読み出すそれぞれのData31の中に「1」となっているビットがある場合は、グループビットマップ3512の該当ビットは「1」となっている。詳細は、<宛先ビット番号の求め方について>の項で説明する。
図10は、宛先ポート変換テーブル3610の構成及び内容の例を示す図である。
宛先ポート変換テーブル3610は、宛先変換テーブル記憶部3600に記憶されている。
宛先ポート変換テーブル3610は、宛先ビット番号3611、物理ポート番号3612及び論理ポート番号3613を有する。
宛先ビット番号3611は、宛先ビットマップの「1」となっているビットの配列番号を示す。
物理ポート番号3612は、物理ポートの番号を示す。
論理ポート番号3613は、物理ポート番号3612の番号で示される物理ポート内の論理ポートの番号を示す。
例えば、宛先ビットマップの「1」となっているビットの宛先ビット番号が「#2」である場合は、物理ポート番号3612「#0」、論理ポート番号3613「#2」であるので、物理ポート番号が0のポート内の論理ポート番号が2のポートが宛先情報となる。
<宛先ビット番号の求め方について>
ここで、図8及び図11を用いて、宛先ビット番号の求め方について説明する。
宛先ビットマップ記憶部3400は、1回の読出しで32ビットのData31を読み出すことができる。従って、1つのドメインIDの宛先ビットマップを読み出すには、4回に分けて読み出すことになる。
実施形態では、1つのドメインIDあたりの宛先ビットマップ128ビットのうち、必要なData31のみを読み出すことで、宛先情報を取得するための時間を短くする。
すなわち、読み出した4つのData31のうちの全てのData31に、「1」となっているビットが存在することは多くないことから、「1」となっているビットが存在するData31のみを読み出す。
「1」となっているビットが存在するData31を示すのが、グループビットマップ3512(図9参照)である。図8にグループビットマップ3512の例であるビット列32を示す。
ビット列32の各ビットは、Address30の下2ビットの「idx」が示す値と対応している。例えば、ビット列32のidx「#0」で示される下1ビット目が、idx「00」を下2ビットとするアドレス30で読み出されるData31に「1」のビットが有るか否かを示している。また、ビット列32のidx「#1」で示される下1ビット目が、idx「01」を下2ビットとするアドレス30で読み出されるData31に「1」のビットが有るか否かを示している。
ビット列32は、ドメインID「0000 0000 00」とidx「00」〜「11」とから生成される4つのAddressで示される4つのData31のうち、idx「10」及び「11」のAddress30で示されるData31に「1」のビットが存在することを示している。
図11を用いて、宛先ビットマップを読み出す例を説明する。
グループビットマップ記憶部3500は、RAMであり、ドメインIDをアドレスとして、該当するグループビットマップを読み出すものとする。すなわち、グループビットマップテーブル3510にドメインID3511として設定されているドメインIDがアドレスとして入力されたら、そのレコードのグループビットマップ3512として設定されているビットマップが出力される。
ドメインIDをアドレスとしてグループビットマップを読み出し、そのグループビットマップのうち「1」となっているビットの「idx」を、下2ビットの「idx」としたAddress30で、宛先ビットマップ記憶部3400からData31を読み出す。
図11では、idx「11」及び「10」の2つのData31のみを読み出せばよいこととなる。
実施形態では、説明の便宜上、1つのドメインIDあたり宛先ビットマップは128ビットであるものとして説明しているが、例えば、通信速度が10Gbps(ギガビット/秒)のLIU2000の場合、5120個もの論理ポートが設定されている場合がある。この場合、32ビット幅のRAMから宛先ビットマップを全て読み出すとすれば、160回の読み出しが必要となる。
すなわち、受信したパケットがマルチキャストパケットであった場合、1つのパケットの宛先情報を見つけ出すために宛先ビットマップを全て読み出すとすれば、160クロックが必要となることになる。仮に、DDR(Double Data Rate)のRAMを用いたとしても80クロックが必要となる。
このように、受信したパケットがマルチキャストパケットであった場合に、宛先情報を取得するために宛先ビットマップを全て読み出すとすると1パケットあたり160クロックが必要となり、出力帯域が劣化することとなる。
ここで、図13に、宛先情報を取得するために宛先ビットマップを全て読み出す場合の、受信帯域と出力帯域の例を示したタイムチャートを示す。
図13において、矩形は、パケットを示す。実線で記された矩形はユニキャストパケットを示し、点線で記された矩形はマルチキャストパケットを示す。また、斜線が引かれた矩形は出力されたパケットを示す。以下、「A」等が矩形内に記載されているパケットを「パケットA」等というものとする。
尚、図13は、模式的に示したタイムチャートであり、時間軸の長さ等は正確には記載していない。
図13(a)は、受信されたパケットA〜パケットDが、全てユニキャストパケットである場合を示す。
受信したパケットがユニキャストパケットの場合は、宛先ビットマップ記憶部3400から宛先ビットマップを読み出す必要がない。
従って、受信帯域(速度)と送信帯域(速度)とはほぼ同じである。
図13(b)は、受信されたパケットB及びパケットDがマルチキャストパケットである場合を示す。
パケットBは、宛先を取得するために宛先ビットマップテーブル3410を読み出す時間40が必要であるので、図13(a)に比べてパケットBを送信するのが遅くなる。同様に、パケットDも、宛先を取得するために時間41が必要となる。
図13(b)に示すように、パケットの送信間隔が広がると、その分パケットの転送帯域(速度)が劣化する。すなわち、受信速度より送信速度が遅くなると、中継装置の転送能力が下がったように見えてしまう場合が生ずる。
図13(c)は、受信されたパケットA〜Cがマルチキャストパケットである場合を示す。
この場合も、図13(b)に示したのと同様に、パケットA、B及びCの宛先を取得するのにそれぞれ、時間42、時間43及び時間44が必要となる。
このように、マルチキャストパケットが連続して受信された場合には、転送能力が一時的に落ちたように見える場合が生じ得る。
図13(b)及び(c)に示すように、マルチキャストパケットを受信した位置及び個数によっては、パケット遅延量が大きく変動する、すなわち、遅延量が大きく揺らぐ場合が生じ得、中継装置の転送能力が下がったり、回復したりするように見える。
実施形態では、必要最小限度のData31しか読み出さないので、時間40〜44は、必要最小限度の時間となり、パケット遅延量自体が小さくなり、その揺らぎも格段に小さくなる。
例えば、64バイトのパケットを転送する場合を考える。
宛先ビットマップ記憶部3400は32ビットRAMであり、1つのドメインIDあたりの宛先ビットマップは5120ビットであるとする。宛先ビットマップ5120ビットを読み出すには、160クロックかかる。
1クロックで64ビットを転送するとした場合、1つのパケットを転送するには、
64(バイト)×8(ビット)÷64(ビット)=8(クロック)となる。
宛先ビットマップを全て読み出して宛先を取得する場合の転送レートは、
8÷(160+8)=4.76(%)となる。
一方、宛先ビットマップを1回読み出して宛先を取得できる場合の転送レートは、
8÷(1+8)=88.9(%)となる。
<動作>
図12は、LIU2000のパケット100の送信処理のフローチャートである。
図12において、点線はパケットがパケットバッファ3000に蓄積され、蓄積されたパケット100が読み出されることを示す。また、マルチキャスト処理は、LIU2000において、パケット100の蓄積の処理等と並行して行われている。
LIU2000は、パケット100を入力すると(ステップS200)、入力したパケット100の装置内ヘッダ110(図2参照)を参照して、パケット101がユニキャストパケット及びマルチキャストパケットのいずれのパケットであるかを判断する(ステップS210)。
LIU2000は、Uni/Multiフラグ111が「1」の場合、パケット101はユニキャストパケットであると判断し、「0」の場合、マルチキャストパケットであると判断する。
パケット101がユニキャストパケットであると判断したLIU2000は(ステップS210:Uni)、SEL2300を介してパケット100をポート判定部2400に送信する。
パケット100を入力したポート判定部2400は、宛先ポート情報115を参照し、該当する物理ポートのFIFO2500に蓄積する(ステップS320)。
LIU2000は、FIFO2500に蓄積されたパケットを、適切な時に、適切な順序で送出する。
一方、パケット101がマルチキャストパケットであると判断したLIU2000は(ステップS210:Multi)、パケット100を宛先設定処理部2100に送信する。
パケット100を入力した宛先設定処理部2100のパケット書込部2120は、入力したパケット100をパケットバッファ3000に書き込む(ステップS220)。
宛先決定部2140は、内部FIFO2110が空であることを検出すると、パケット読出部2130にパケット100を読み出すよう指示する。
指示を受けたパケット読出部2130は、パケットバッファ3000からパケット100を読み出し、内部FIFO2110に蓄積する。
宛先決定部2140は、内部FIFO2110からパケット100を読み出し(ステップS230)、装置内ヘッダ110のドメインID113を読み出して宛先読出部2150に渡し、宛先情報の取得を指示する。
指示を受けた宛先読出部2150は、渡されたドメインIDを宛先グループ読出部2160に渡し、グループビットマップ記憶部3500から、ドメインIDのグループビットマップを読み出すよう指示する。
指示を受けた宛先グループ読出部2160は、渡されたドメインIDをアドレスとして、グループビットマップ記憶部3500のグループビットマップを読み出す(ステップS240、図9参照)。
宛先グループ読出部2160は、読み出したグループビットマップを参照し、いずれかのビットが「1」である場合は、読み出すべきData31があると判断する。「1」であるビットがない場合は、読み出すべきData31は無いと判断する(ステップS250)。
読み出すべきData31が無いと判断した宛先グループ読出部2160は(ステップS250:No)、宛先が無い旨を宛先読出部2150を介して宛先決定部2140に通知する。
宛先が無い旨の通知を受けた宛先決定部2140は、次のパケット100を内部FIFO2110から読み出す(ステップS230)。
読み出すべきData31があると判断した宛先グループ読出部2160は(ステップS250:Yes)、読み出したグループビットマップを宛先読出部2150に渡す。
グループビットマップを渡された宛先読出部2150は、渡されたグループビットマップとドメインIDとからアドレスを生成して、Data31を1つ読み出す(ステップS260:No、ステップS270、図8及び図9参照)。
宛先読出部2150は、読み出したData31のうち「1」となっているビットの宛先ビット番号を取得する。図11では、Address30が「0000 0000 0011」のData31では、宛先ビット番号は「97」と「98」とである。
宛先ビット番号を取得した宛先読出部2150は、宛先ポート変換テーブル3610(図10参照)を参照して宛先情報を取得する(ステップS280)。具体的には、取得した宛先ビット番号が宛先ビット番号3611として設定されているレコードの物理ポート番号3612として設定されている物理ポートの番号と、論理ポート番号3613として設定されている論理ポートの番号とを、宛先情報として読み出す。
宛先ビット番号の個数分の宛先情報を読み出した宛先読出部2150は、読み出した宛先情報を宛先決定部2140に渡す。
宛先情報を渡された宛先決定部2140は、複製生成部2170に、パケット100と宛先情報とを渡して送信を指示する。
指示を受けた複製生成部2170は、パケット100を複製し、渡された宛先情報の個数分のパケット130を生成する(ステップS290)。
複製生成部2170は、パケット130それぞれの装置内ヘッダ110の宛先ポート情報115に、渡された宛先情報をそれぞれ設定し(ステップS300)、SEL2300を介してパケット130としてポート判定部2400に送信する。
宛先読出部2150は、渡されたグループビットマップで「1」となっているビットに応じて、次のData31を読み出し(ステップS260:No)、ステップS270〜ステップS310の処理を行う。宛先読出部2150は、読み出すData31が無くなったら、宛先決定部2140に次のパケットの処理を行うよう依頼する(ステップS260:Yes)。
パケット100を入力したポート判定部2400は、宛先ポート情報115を参照し、該当する物理ポートのFIFO2500に蓄積する(ステップS310)。
LIU2000は、FIFO2500に蓄積されたパケットを、適切な時に、適切な順序で送出する。
1〜9 端末装置
10 中継装置
40 41 42 43 44 時間
100 101 102 130 パケット
110 装置内ヘッダ
111 Uni/Multiフラグ
112 宛先カードビットマップ
114 入力ポート情報
115 宛先ポート情報
1100 宛先判定部
2100 宛先設定処理部
2120 パケット書込部
2130 パケット読出部
2140 宛先決定部
2150 宛先読出部
2160 宛先グループ読出部
2170 複製生成部
2180 CPU設定部
2200 Uni/Multi判定部
2300 SEL
2400 ポート判定部
3000 パケットバッファ
3100 ドメインID情報記憶部
3110 ドメインID情報
3111 物理ポート番号
3112 VLAN−ID
3113 ドメインID
3200 ルーティングテーブル記憶部
3300 宛先カード情報記憶部
3310 宛先カード情報
3311 ドメインID
3312 宛先カードビットマップ
3400 宛先ビットマップ記憶部
3410 宛先ビットマップテーブル
3500 グループビットマップ記憶部
3510 グループビットマップテーブル
3511 ドメインID
3512 グループビットマップ
3600 宛先変換テーブル記憶部
3610 宛先ポート変換テーブル
3611 宛先ビット番号
3612 物理ポート番号
3613 論理ポート番号

Claims (4)

  1. いずれかのグループに属するパケットを受信する受信手段と、
    パケットの送信先とポートとを対応付けて記憶するルーティング情報記憶手段と、
    グループ毎に、出力ポートとなり得るポート毎に1ビットが対応するビットマップであって、グループに属するパケットを出力するポートが示されているビットマップを記憶しており、一度に所定数のビットのデータを読み出すことができるビットマップ記憶手段と、
    前記ビットマップを前記所定数のビットのビット群に分割した場合の各ビット群に対応付けて、ビット群がパケットを出力するポートを示すビットを含んでいるか否かを示す特定情報を記憶する特定情報記憶手段と、
    受信したパケットの送信先が前記ルーティング記憶手段に記憶されている場合は、当該送信先と対応付けられているポートに当該パケットを送出し、受信したパケットの送信先が前記ルーティング記憶手段に記憶されていない場合は、当該パケットが属するグループのビットマップのビット群であって、パケットを出力するポートを示すビットを含んでいることを前記特定情報が示しているビット群を読み出し、読み出したビット群に基づいたポートに当該パケットを送出する転送手段と
    を備える中継装置。
  2. 前記グループは、仮想的なネットワークに基づくグループである
    請求項1記載の中継装置。
  3. 前記ビットマップ記憶手段は、ポートのデータ幅が前記所定数のビットのRAMである
    請求項1記載の中継装置。
  4. パケットの送信先とポートとを対応付けて記憶させておき、
    パケットはいずれかのグループに属し、パケットが属するグループ毎に、出力ポートとなり得るポート毎に1ビットが対応するビットマップであって、グループに属するパケットを出力するポートが示されているビットマップを、一度に所定数のビットのデータを読み出すことができるビットマップ記憶手段に記憶させておき、
    前記ビットマップを前記所定数のビットのビット群に分割した場合の各ビット群に対応付けて、ビット群がパケットを出力するポートを示すビットを含んでいるか否かを示す特定情報を特定情報記憶手段に記憶させておき、
    パケットを受信し、
    受信したパケットの送信先が前記ルーティング記憶手段に記憶されている場合は、当該送信先と対応付けられているポートに当該パケットを送出し、受信したパケットの送信先が前記ルーティング記憶手段に記憶されていない場合は、当該パケットが属するグループのビットマップのビット群であって、パケットを出力するポートを示すビットを含んでいることを前記特定情報が示しているビット群を読み出し、読み出したビット群に基づいたポートに当該パケットを送出する
    転送方法。
JP2010101618A 2010-04-27 2010-04-27 中継装置、及び、転送方法 Pending JP2011234063A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010101618A JP2011234063A (ja) 2010-04-27 2010-04-27 中継装置、及び、転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010101618A JP2011234063A (ja) 2010-04-27 2010-04-27 中継装置、及び、転送方法

Publications (1)

Publication Number Publication Date
JP2011234063A true JP2011234063A (ja) 2011-11-17

Family

ID=45322953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010101618A Pending JP2011234063A (ja) 2010-04-27 2010-04-27 中継装置、及び、転送方法

Country Status (1)

Country Link
JP (1) JP2011234063A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013172351A (ja) * 2012-02-21 2013-09-02 Fujitsu Ltd 通信装置及び帯域制御方法
JP2016502795A (ja) * 2012-11-13 2016-01-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated データフロー処理の方法および装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1013420A (ja) * 1996-06-19 1998-01-16 Mitsubishi Electric Corp Atmセル同報装置
JP2005269314A (ja) * 2004-03-19 2005-09-29 Fujitsu Ltd マルチキャストパケット読出し制御方法及び装置
JP2009027758A (ja) * 2008-11-04 2009-02-05 Hitachi Ltd ネットワーク中継装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1013420A (ja) * 1996-06-19 1998-01-16 Mitsubishi Electric Corp Atmセル同報装置
JP2005269314A (ja) * 2004-03-19 2005-09-29 Fujitsu Ltd マルチキャストパケット読出し制御方法及び装置
JP2009027758A (ja) * 2008-11-04 2009-02-05 Hitachi Ltd ネットワーク中継装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013172351A (ja) * 2012-02-21 2013-09-02 Fujitsu Ltd 通信装置及び帯域制御方法
JP2016502795A (ja) * 2012-11-13 2016-01-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated データフロー処理の方法および装置

Similar Documents

Publication Publication Date Title
US7890672B2 (en) Data processing apparatus and data transfer method
US11258698B2 (en) Multicast forwarding method and related device
JP2023086623A (ja) 下位アドレス記憶方法を用いたリング網を利用したハンドオーバー
KR102430395B1 (ko) 멀티캐스트 패킷을 전송하기 위한 방법, 장치, 및 시스템
WO2016095345A1 (zh) 报文转发的方法及网络设备
US8484375B2 (en) Systems and methods for removing stale mapping entries for network element
JP2012023443A (ja) ブリッジ装置及びインタフェース装置、並びに通信方法
WO2019047840A1 (zh) 转发报文的方法及装置
JP4392316B2 (ja) フレーム中継装置
US7145911B2 (en) Method and system for parallel hash transformation for an address input
JP5971072B2 (ja) フレーム転送装置及びフレーム転送方法
JP4588259B2 (ja) 通信システム
JP2011234063A (ja) 中継装置、及び、転送方法
CN108632148B (zh) 基于预读取方式的学习mac地址的装置及方法
US20110235573A1 (en) Mobile ad hoc network configured as a virtual internet protocol network
CN111131089B (zh) 改善多播业务hol阻塞的队列管理方法
US6711161B1 (en) Arrangement for providing linearly scaleable address forwarding tables within multiple network switch modules
US10003469B2 (en) Multicast forwarding method and apparatus in transparent interconnection of lots of link network, and routing bridge
WO2020004015A1 (ja) 動的可変容量メモリ装置及び記憶容量動的可変方法
JP2009188623A (ja) ネットワーク中継装置およびネットワーク中継方法
US20030210684A1 (en) Packet transceiving method and device
JP2023047359A (ja) アドレス記憶方法およびそれを用いたリング網およびリング網を利用したハンドオーバー
WO2022206397A1 (zh) 一种缓存方法及集成电路
JP4879728B2 (ja) 検索装置およびデータ処理装置
JP5006668B2 (ja) ネットワークプロセッサ、ネットワークプロセッサを搭載したネットワーク装置、及びフレーム転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140513