説明

伝送装置、伝送制御プログラムおよび伝送制御方法

【課題】連想メモリを利用せずに、スイッチ機能を実現する。
【解決手段】記憶部20は、パケット12に含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する。格納部21は、複数のポート11の何れかに入力したパケット12に含まれる送信元のアドレスを記憶先のアドレスとして、当該パケット12が入力したポート11に関するポート情報を記憶部20に格納する。読出部22は、入力したパケット12に含まれる宛先のアドレスを記憶先のアドレスとして、記憶部20からポート情報を読み出す。選択部23は、読み出されたポート情報に基づき、入力したパケット12を出力するポート11を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、伝送装置、伝送制御プログラムおよび伝送制御方法に関する。
【背景技術】
【0002】
従来、パケットの伝送を行う伝送装置が知られている。この伝送装置には、受信したパケットの送信元のアドレスを記憶し、受信したパケットの宛先のアドレスを記憶したアドレスと比較し、比較結果に応じて送信先を切り替えるスイッチ機能を有するものがある。例えば、伝送装置として、OSI(Open Systems Interconnection)参照モデルのデータリンク層のデータでパケットの行き先を判断して転送を行うレイヤー2スイッチがある。このレイヤー2スイッチには、各ポートに受信したパケットのヘッダに含まれる送信元のアドレスを記憶し、受信したパケットのヘッダに含まれる宛先のアドレスに応じて出力先のポートを切り替えるスイッチ機能を有するものがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−211348号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来、伝送装置は、パケットの送信元のアドレスの記憶および宛先のアドレスと記憶したアドレスとの比較を、所謂、CAM(Content Addressable Memory)と呼ばれる汎用の連想メモリを利用して実現している。
【0005】
しかしながら、汎用の連想メモリは、製造元毎にそれぞれ仕様が異なる。このため、伝送装置に内蔵される連想メモリの製造が終息した場合、伝送装置のメーカは、代替品として他の製造元の連想メモリを用いる。しかし、他の製造元の連想メモリは、必ずしも伝送装置にマッチしたデバイスとはならない。このため、伝送装置のメーカでは、伝送装置の設計の見直しが必要となる場合がある。
【0006】
開示の技術は、上記に鑑みてなされたものであって、連想メモリを利用せずに、スイッチ機能を実現した伝送装置、伝送制御プログラムおよび伝送制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本願の開示する伝送装置は、一つの態様において、複数のポートと、記憶部と、格納部と、読出部と、選択部とを有する。複数のポートは、パケットを入出力する。記憶部は、パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する。格納部は、複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を記憶部に格納する。読出部は、入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、記憶部からポート情報を読み出す。選択部は、読出部により読み出されたポート情報に基づき、入力したパケットを出力するポートを選択する。
【発明の効果】
【0008】
一つの態様によれば、連想メモリを利用せずに、スイッチ機能を実現できる。
【図面の簡単な説明】
【0009】
【図1】図1は、伝送装置の機能的な構成の一例を示す図である。
【図2】図2は、記憶部に記憶されるデータのデータ構成の一例を示す図である。
【図3】図3は、パケットを受信した際のデータの流れの一例を説明するための図である。
【図4】図4は、格納処理の手順を示すフローチャートである。
【図5】図5は、読出処理の手順を示すフローチャートである。
【図6】図6は、伝送装置の機能的な構成の一例を示す図である。
【図7】図7は、第1記憶部に記憶されるデータのデータ構成の一例を示す図である。
【図8】図8は、ポートテーブルのデータ構成の一例を示す図である。
【図9】図9は、第1記憶部に記憶されるデータのデータ構成の他の例を示す図である。
【図10】図10は、格納処理の手順を示すフローチャートである。
【図11】図11は、読出処理の手順を示すフローチャートである。
【図12】図12は、伝送制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示する伝送装置、伝送制御プログラムおよび伝送制御方法の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。以下の各実施例では、伝送装置が、パケットに含まれる宛先、送信元を示すMAC(Media Access Control)アドレスを判断し、パケットの中継を行うレイヤー2スイッチとして機能する場合について説明する。
【実施例1】
【0011】
実施例1に係る伝送装置10について説明する。図1は、伝送装置の機能的な構成の一例を示す図である。伝送装置10は、外部とパケットを入出力する複数のポート11を有する。複数のポート11は、図示しないネットワークを介して外部装置と通信可能に接続される。かかるネットワークの一態様としては、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の有線通信網が挙げられる。
【0012】
図1に示すように、伝送装置10は、記憶部20と、格納部21と、読出部22と、選択部23とを有する。記憶部20は、各ポート11で受信されるパケット12に含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有する。例えば、パケット12がIEEE(Institute of Electrical and Electronic Engineers)802.3標準の場合、フレームヘッダに含まれる宛先のアドレス(DA:Destination Address)および送信元のアドレス(SA:Source Address)は48ビットとなる。この場合、記憶部20は、48ビット以上のアドレス空間を有する。記憶部20は、アドレス毎に、ポートに関するポート情報および学習済みであるかを示す学習情報を記憶可能なサイズの記憶領域を有する。記憶部20には、アドレス毎に、パケット12を出力する出力先のポートに関するポート情報およびポート情報が学習済みであるかを示す学習情報が記憶される。記憶部20のデバイスの一例としては、RAM(Random Access Memory)やフラッシュメモリなどのデータを書き換え可能な半導体メモリが挙げられる。
【0013】
図2は、記憶部に記憶されるデータのデータ構成の一例を示す図である。「アドレス」は、記憶部20の記憶領域の位置を示す。記憶部20は、アドレス毎に、「ポート情報」および「学習情報」の記憶領域を有する。「ポート情報」の記憶領域は、パケット12の出力先のポートを表すポート情報を記憶する記憶領域である。例えば、「ポート情報」の記憶領域には、出力先のポートを表すポート番号が記憶される。「学習情報」は、出力先のポートを学習済みであるかを記憶する記憶領域である。例えば、「学習情報」の記憶領域には、ポートを学習済みである場合「1」が記憶され、ポートを未学習の場合「0」が記憶される。
【0014】
図2の例では、「0000・・・00」のアドレスには、出力先のポートが「PORT1」であり、出力先のポートが学習済みと記憶されている。また、「1FFF・・・FF」のアドレスには、出力先のポートが「PORT1」であり、出力先のポートが学習済みと記憶されている。
【0015】
格納部21は、いずれかのポート11でパケット12を受信した場合、受信したパケット12に基づいて各種情報を記憶部20に格納する。例えば、格納部21は、パケット12に含まれる送信元のアドレスを記憶先のアドレスとして、パケット12が入力したポートに関するポート情報および学習済みを示す学習情報を記憶部20に格納する。
【0016】
読出部22は、受信したパケット12に基づいて記憶部20から各種情報を読み出す。例えば、読出部22は、受信したパケット12に含まれる宛先のアドレスを記憶先のアドレスとして、記憶部20からポート情報および学習情報を読み出す。なお、記憶部20のアドレス空間のビット数が送信元のアドレスおよび宛先のアドレスのビット数よりも大きい場合、送信元のアドレスや宛先のアドレスに所定のビットを加えて記憶先のアドレスとして使用する。例えば、送信元のアドレスや宛先のアドレスが48ビットであり、記憶部20のアドレス空間が50ビットの場合、送信元のアドレスや宛先のアドレスの前または後に1ビット所定のビットを加えて記憶先のアドレスとして使用する。
【0017】
選択部23は、信号を選択的に出力する複数の選択回路24と、選択回路24を制御するエンコーダ25とを有する。選択回路24は、ポート11毎に設けられ、それぞれポート11に接続される。各選択回路24には、受信したパケット12がそれぞれ入力する。選択回路24は、例えば、アンド回路あるいはマルチプレクサのように、入力した信号を選択的に出力可能な回路によって構成され、エンコーダ25からの制御信号に応じて、受信したパケット12をポート11へ出力する。
【0018】
エンコーダ25は、読出部22により読み出されたポート情報および学習情報に基づき、各選択回路24を制御する制御信号を出力する。例えば、エンコーダ25は、学習情報が学習済みを示す場合、ポート情報により示されるポート11に接続された選択回路24へパケット12の出力を指示する制御信号を出力し、他の選択回路24へパケット12の出力を禁止する制御信号を出力する。また、エンコーダ25は、学習情報が未学習を示す場合、各選択回路24へパケット12の出力を指示する制御信号を送信する。なお、図1の例では、機能的な構成を示したため、格納部21、読出部22、エンコーダ25を別に分けているが、例えば、1つのデバイスで構成してもよい。デバイスの一例としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路が挙げられる。なお、デバイスとして、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路を採用することもできる。
【0019】
図3は、パケットを受信した際のデータの流れの一例を説明するための図である。例えば、パケット12を受信すると、伝送装置10は、受信したパケット12から送信元のアドレスを抽出する。そして、伝送装置10は、抽出した送信元のアドレスを記憶先のアドレスとして、パケット12を受信したポート11を示すポート情報および学習済みを示す学習情報を記憶部20に格納する。
【0020】
また、伝送装置10は、受信したパケット12から宛先のアドレスを抽出する。そして、伝送装置10は、抽出した宛先のアドレスを記憶先のアドレスとして、記憶部20からポート情報および学習情報を読み出す。伝送装置10は、読み出した学習情報が学習済みを示す場合、ポート情報により示されるポート11からパケット12を出力する。一方、伝送装置10は、読み出した学習情報が未学習を示す場合、各ポート11からパケット12を出力する。
【0021】
次に、本実施例に係る伝送装置10によるパケット12を受信したポート11のポート情報および学習情報を格納する格納処理、および格納されたポート情報および学習情報を読み出す読出処理の流れを説明する。図4は、格納処理の手順を示すフローチャートである。この格納処理は、例えば、何れかのポート11でパケット12が受信された際に実行される。
【0022】
図4に示すように、格納部21は、受信したパケット12に含まれる送信元のアドレスを抽出する(S10)。格納部21は、抽出した送信元のアドレスを記憶先のアドレスとして、パケット12を受信したポート11を示すポート情報および学習済みを示す学習情報を記憶部20に格納し(S11)、処理を終了する。これにより、伝送装置10は、パケット12を受信する毎に、受信したパケット12の送信元のアドレスをそれぞれ記憶先のアドレスとして、それぞれポート情報および学習情報が記憶部20に記憶される。
【0023】
図5は、読出処理の手順を示すフローチャートである。この読出処理も、例えば、何れかのポート11でパケット12が受信された際に実行される。
【0024】
図5に示すように、読出部22は、受信したパケット12に含まれる宛先のアドレスを抽出する(S20)。そして、読出部22は、抽出した宛先のアドレスを記憶先のアドレスとして、記憶部20からポート情報および学習情報を読み出す(S21)。エンコーダ25は、読み出した学習情報に基づき、学習済みか否かを判定する(S22)。学習済みである場合(S22肯定)、エンコーダ25は、ポート情報が示すポート11に接続された選択回路24へパケット12の出力を指示する制御信号を出力する。また、エンコーダ25は、他の選択回路24へパケット12の出力を禁止する制御信号を出力して(S23)、処理を終了する。これにより、受信したパケット12は、ポート情報が示すポート11から出力される。一方、未学習である場合(S22否定)、エンコーダ25は、全ての選択回路24へパケット12の出力を指示する制御信号を送信し(S24)、処理を終了する。これにより、受信したパケット12は、全てのポート11から出力される。
【0025】
上述してきたように、本実施例に係る伝送装置10は、複数のポート11により外部とパケットを入出力する。また、伝送装置10は、パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部20を有する。そして、伝送装置10は、複数のポート11の何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を記憶部20に格納する。また、伝送装置10は、入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、記憶部20からポート情報を読み出す。そして、伝送装置10は、読み出されたポート情報に基づき、入力したパケットを出力するポート11を選択する。このように、伝送装置10は、送信元のアドレスを記憶先のアドレスとして、記憶部20にポート情報を格納し、宛先のアドレスを記憶先のアドレスとして、記憶部20からポート情報を読み出すので、パケット12を出力するポートを速やかに特定できる。これにより、伝送装置10は、連想メモリを利用せずに、スイッチ機能を実現することができる。
【実施例2】
【0026】
次に、実施例2について説明する。図6は、伝送装置の機能的な構成の一例を示す図である。なお、上述の実施例1に係る伝送装置と同一の部分については、同一の符号を付して説明する。
【0027】
図6に示すように、実施例2に係る伝送装置10は、実施例1と同様に、外部とパケット12を入出力する複数のポート11を有する。また、伝送装置10は、第1記憶部30と、第2記憶部31と、格納部32と、読出部33と、選択部34とを有する。
【0028】
第1記憶部30は、パケット12に含まれる送信元のアドレスおよび宛先のアドレスをそれぞれ予め定めたビットの組み合わせで複数に分けた各部分アドレスに対応して複数設けられている。第1記憶部30は、それぞれ対応する部分アドレスのビット数以上のビット数のアドレス空間を有する。第1記憶部30には、アドレス毎に、パケット12を出力する出力先のポートに関するポート情報が記憶される。本実施例のポート情報は、複数のビットで構成され、各ビットがそれぞれポート11に対応する。第1記憶部30のデバイスの一例としては、RAM(Random Access Memory)やフラッシュメモリなどのデータを書き換え可能な半導体メモリが挙げられる。
【0029】
ここで、第1記憶部30に記憶されるデータのデータ構成について詳細に説明する。図7は、第1記憶部に記憶されるデータのデータ構成の一例を示す図である。図7の例は、送信元のアドレスおよび宛先のアドレスがアドレス40に示すように8ビットであり、アドレスを0〜3ビット目と4〜7ビット目の2つの部分アドレス40A、40Bに分ける場合を示す。図7の例では、0〜3ビット目の部分アドレス40Aに対応して第1記憶部30Aが設けられ、4〜7ビット目の部分アドレス40Bに対応して第1記憶部30Bが設けられている。第1記憶部30A、30Bは、それぞれデータを格納する記憶先のアドレスとして4ビットのアドレス空間を有し、アドレス毎に、ポート情報を記憶可能なサイズの記憶領域を有する。図7の例では、第1記憶部30A、30Bそれぞれ、「address」として、記憶領域のアドレスが示されており、アドレス毎に、「0」〜「31」の32ビットのポート情報を記憶する記憶領域を有する。この「0」〜「31」の各ビットは、それぞれポート11に対応付けられている。
【0030】
図7の例は、学習済みデータ41が第1記憶部30A、30Bに格納された状態を示す。学習済みデータ41は、「出力ビット」がそれぞれポート情報で出力先とされたビットの位置を示し、「アドレス」がそれぞれ学習済みのアドレスを示す。例えば、アドレス「00000000」、出力ビット「0」のデータを学習したことにより、第1記憶部30Aには、アドレスの0〜3ビット目の「0000」を記憶先のアドレスとし、「0」のビットの位置に「1」が記憶される。また、第1記憶部30Bには、アドレスの4〜7ビット目の「0000」を記憶先のアドレスとし、「0」のビットの位置に「1」が記憶される。また、例えば、アドレス「00000011」、出力ビット「3」のデータを学習したことにより、第1記憶部30Aには、アドレスの0〜3ビット目の「0011」を記憶先のアドレスとし、「3」のビットの位置に「1」が記憶される。また、第1記憶部30Bには、アドレスの4〜7ビット目の「0000」を記憶先のアドレスとし、「3」のビットの位置に「1」が記憶される。
【0031】
第2記憶部31には、ポート情報の各ビットと各ポート11とを対応付けるポートテーブルが記憶されている。図8は、ポートテーブルのデータ構成の一例を示す図である。図8に示すように、ポートテーブルは、「アドレス」、「ポート番号」、「制御情報」の各項目を有する。「アドレス」の項目は、「0」〜「31」の値を2値化した4ビットの値をそれぞれアドレスとして記憶する領域である。「ポート番号」の項目は、パケット12の出力先のポートを表すポート情報を記憶する記憶領域である。例えば、「ポート番号」の記憶領域には、出力先のポートを表すポート番号が記憶される。「制御情報」の項目は、後述する選択回路24を制御するための制御情報を記憶する領域である。制御情報は、何れの選択回路24でパケット12の通過を許可するか否かを示す。図8の例では、ポート11が4つの場合に2ビットで通過を許可するポートを示している。なお、制御情報は、各ポート11に対応してビットを設け、各ビットがそれぞれ選択回路24でパケット12の通過を許可するか否かを示すようにしてもよい。
【0032】
図8の例では、0000のアドレスには、ポート番号としてPORT1が設定され、制御情報として00が設定されていることを示す。また、0100のアドレスには、ポート番号としてPORT2が設定され、制御情報として01が設定されていることを示す。また、1000のアドレスには、ポート番号としてPORT3が設定され、制御情報として10が設定されていることを示す。また、1100のアドレスには、ポート番号としてPORT4が設定され、制御情報として11が設定されていることを示す。なお、ポートテーブルは、ポート11毎に、それぞれ異なるアドレスでポート番号、制御情報が予め登録されていてもよい。また、ポートテーブルは、出力先のポート11を新たに追加する際に、新たに追加するポート11のポート番号と制御情報を登録するようにしてもよい。ポートテーブルにポート番号、制御情報が予め登録される場合、第2記憶部31のデバイスの一例としては、ROM(Read Only Memory)などのデータを書き換え不可能な不揮発性の半導体メモリが挙げられる。また、ポートテーブルにポート番号、制御情報の追加や削除、更新を行う場合、第2記憶部31のデバイスの一例としては、フラッシュメモリなどのデータを書き換え可能な不揮発性の半導体メモリが挙げられる。
【0033】
図9は、第1記憶部に記憶されるデータのデータ構成の他の例を示す図である。図9の例は、送信元のアドレスおよび宛先のアドレスがアドレス50に示すように48ビットであり、アドレスを8ビットずつ6つの部分アドレス50A〜50Fに分ける場合を示す。図9の例では、部分アドレス50A〜50Fに対応して第1記憶部30C〜30Hが設けられている。第1記憶部30C〜30Hは、それぞれ8ビットの記憶先のアドレス空間を有し、アドレス毎に、「0」〜「16383」の16384ビットの記憶領域を有する。この「0」〜「16383」の各ビットも、例えば、ポートテーブルによりそれぞれポート11に対応付けられる。
【0034】
格納部32は、いずれかのポート11でパケット12を受信した場合、受信したパケット12に含まれる送信元のアドレスを複数の部分アドレスに分割する。また、格納部32は、第2記憶部31に記憶されたポートテーブルに基づいて、パケット12を受信したポート11に対応するポート情報のビットを特定する。格納部32は、各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各第1記憶部30にポート情報を格納する。
【0035】
例えば、図7に示すように、受信したパケット12の送信元のアドレスがアドレス40に示すように「00010011」であり、パケット12を受信したポートに対応する出力ビットが「19」であるものとする。この場合、格納部32は、アドレス40を0〜3ビット目の部分アドレス「0011」と4〜7ビット目の部分アドレス「0001」に分ける。そして、格納部32は、0〜3ビット目の「0011」の部分アドレスを記憶先のアドレスとして第1記憶部30Aの「19」のビットの位置に「1」を格納する。また、格納部32は、4〜7ビット目の「0001」の部分アドレスを記憶先のアドレスとして第1記憶部30Bの「19」のビットの位置に「1」を格納する。
【0036】
また、例えば、図9に示すように、受信したパケット12の送信元のアドレスがアドレス50に示すように16進数で「5A379B65FA0C」であり、ポートに対応する出力ビットが「n」であるものとする。この場合、格納部32は、アドレス50を「5A」、「37」、「9B」、「65」、「FA」、「0C」の部分アドレス50A〜50Fに分ける。そして、格納部32は、部分アドレス50A〜50Fをそれぞれ記憶先のアドレスとして第1記憶部30C〜30Hの「n」のビットの位置に「1」を格納する。
【0037】
読出部33は、受信したパケット12に含まれる送信元のアドレスを複数の部分アドレスに分割する。読出部33は、各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各第1記憶部30から複数のビットで構成されたポート情報を読み出す。
【0038】
選択部34は、実施例1と同様の複数の選択回路24と、選択回路24を制御するエンコーダ35を有する。選択回路24は、ポート11毎に設けられている。各選択回路24には、受信したパケット12がそれぞれ入力する。選択回路24は、信号を選択的に出力可能な回路によって構成され、エンコーダ35からの制御信号に応じて、受信したパケット12を出力する。
【0039】
エンコーダ35は、読出部33により読み出された各ポート情報間で同じビットにそれぞれ「1」が設定されたビットを特定する。例えば、エンコーダ35は、各ポート情報間で対応するビット同士の論理和を求めることにより、「1」が設定されたビットを特定する。
【0040】
例えば、図7に示すように、受信したパケット12の宛先のアドレスがアドレス40に示すように「00010011」であるものとする。この場合、読出部33は、アドレス40を0〜3ビット目の部分アドレス「0011」と4〜7ビット目の部分アドレス「0001」に分ける。そして、読出部33は、0〜3ビット目の「0011」の部分アドレスを記憶先のアドレスとして第1記憶部30Aからポート情報を読み出す。これにより、「3」、「19」の各ビットに1が設定されたポート情報が読み出される。また、読出部33は、4〜7ビット目の「0001」の部分アドレスを記憶先のアドレスとして第1記憶部30Bからポート情報を読み出す。これにより、「1」、「16」、「18」〜「31」の各ビットに1が設定されたポート情報が読み出される。エンコーダ35は、読出部33により読み出された各ポート情報間で対応するビット同士の論理和(AND)を求める。これにより、「19」のビットが出力ビットと特定される。
【0041】
また、例えば、図9に示すように、受信したパケット12の宛先のアドレスがアドレス50に示すように16進数で「5A379B65FA0C」であり、ポートに対応する出力ビットが「n」であるものとする。この場合、読出部33は、アドレス50を「5A」、「37」、「9B」、「65」、「FA」、「0C」の部分アドレス50A〜50Fに分ける。そして、読出部33は、部分アドレス50A〜50Fをそれぞれ記憶先のアドレスとして第1記憶部30C〜30Hからポート情報を読み出す。エンコーダ35は、読出部33により読み出された各ポート情報間で対応するビット同士の論理和(AND)を求める。これにより、「n」のビットが出力ビットと特定される。
【0042】
エンコーダ35は、各ポート情報間で同じビットにそれぞれ「1」が設定されたビットを特定した場合、ポートテーブルから特定したビットに対応する制御情報を読み出す。エンコーダ35は、読み出した制御情報に従い、パケット12の通過が許可された選択回路24へパケット12の出力を指示する制御信号を出力し、パケット12の通過が許可されていない選択回路24へパケット12の出力を禁止する制御信号を出力する。また、エンコーダ25は、各ポート情報間で同じビットにそれぞれ「1」が設定されたビットがない場合、全ての選択回路24へパケット12の出力を指示する制御信号を送信する。なお、図6の例では、機能的な構成を示したため、格納部32、読出部33、エンコーダ35を別に分けているが、例えば、1つのデバイスで構成してもよい。デバイスの一例としては、CPUやMPUなどの電子回路が挙げられる。なお、デバイスとして、ASICやFPGAなどの集積回路を採用することもできる。
【0043】
次に、本実施例に係る伝送装置10によるパケット12を受信したポート11のポート情報および学習情報を格納する格納処理、および格納されたポート情報および学習情報を読み出す読出処理の流れを説明する。図10は、格納処理の手順を示すフローチャートである。この格納処理は、例えば、何れかのポート11でパケット12が受信された際に実行される。
【0044】
図10に示すように、格納部32は、受信したパケット12に含まれる送信元のアドレスを抽出する(S30)。また、格納部32は、ポートテーブルに基づいて、パケット12を受信したポート11に対応するポート情報のビットを特定する(S31)。格納部32は、抽出した送信元のアドレスを部分アドレスに分割する(S32)。そして、格納部32は、各部分アドレスをそれぞれ記憶先のアドレスとしてそれぞれ部分アドレスに対応する第1記憶部30にポート情報を格納し(S33)、処理を終了する。これにより、パケット12を受信する毎に、受信したパケット12の送信元を分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各第1記憶部30にポート情報が記憶される。
【0045】
図11は、読出処理の手順を示すフローチャートである。この読出処理も、例えば、何れかのポート11でパケット12が受信された際に実行される。
【0046】
図11に示すように、読出部33は、受信したパケット12に含まれる宛先のアドレスを抽出する(S40)。そして、読出部33は、抽出した宛先のアドレスを部分アドレスに分割する(S41)。そして、読出部33は、各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各第1記憶部30にポート情報を読み出す(S42)。エンコーダ35は、読み出した各ポート情報間で同じビットにそれぞれ「1」が設定されたビットがあるか否かを判定する(S43)。同じビットにそれぞれ「1」が設定されたビットがある場合(S43肯定)、エンコーダ35は、同じビットにそれぞれ「1」が設定されたビットに対応する制御情報をポートテーブルから読み出す(S44)。そして、エンコーダ35は、読み出した制御情報が示すポート11に接続された選択回路24へパケット12の出力を指示する制御信号を出力し、他の選択回路24へパケット12の出力を禁止する制御信号を出力して(S45)、処理を終了する。これにより、受信したパケット12は、制御情報が示すポート11から出力される。一方、同じビットにそれぞれ「1」が設定されたビットがない場合(S43否定)、エンコーダ35は、全ての選択回路24へパケット12の出力を指示する制御信号を送信し(S46)、処理を終了する。これにより、受信したパケット12は、全てのポート11から出力される。
【0047】
上述してきたように、本実施例に係る伝送装置10は、予め定めたビットの組み合わせでパケット12に含まれる送信元のアドレスおよび宛先のアドレスをそれぞれ複数の部分アドレスに分けたそれぞれに対応して第1記憶部30を複数有する。第1記憶部30は、それぞれ対応する部分アドレスのビット数以上のビット数のアドレス空間を有する。伝送装置10は、入力したパケット12に含まれる送信元のアドレスを複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各第1記憶部30にポート情報を格納する。また、伝送装置10は、入力したパケット12に含まれる宛先のアドレスを複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各第1記憶部30からポート情報を読み出す。そして、伝送装置10は、読み出された各ポート情報に基づき、入力したパケット12を出力するポートを選択する。このように、伝送装置10は、部分アドレスに対応して第1記憶部30を複数有するため、ポート情報を複数の第1記憶部30に分散させて記憶させることができる。また、予め定めたビットの組み合わせで送信元のアドレスおよび宛先のアドレスを分けたため、各部分アドレスは、送信元のアドレスおよび宛先のアドレスよりもビット数が少なくなる。このため、第1記憶部30は、送信元のアドレスや宛先のアドレスのビット数分の記憶アドレスを有しなくてもよい。これにより、少ない容量のメモリでも第1記憶部30として利用できる。また、伝送装置10は、ポート情報を複数の第1記憶部30に分散させたことにより、送信元のアドレスや宛先のアドレスのビット数分の記憶アドレスを有する1つの記憶部に記憶させる場合と比較して、少ない容量でポート情報を記憶できる。
【0048】
上述してきたように、本実施例に係る伝送装置10は、ポート情報を、複数のビットで構成し、各ビットがそれぞれポートに対応させている。伝送装置10は、各部分アドレスに対応する各第1記憶部30に、入力したポートに対応するビットに1を設定したポート情報を格納する。そして、伝送装置10は、読み出された各ポート情報間で同じビットにそれぞれ1が設定されたビットに対応するポートを、入力したパケットを出力するポートと選択する。このように、伝送装置10は、ポート情報を複数の第1記憶部30に分散させて記憶させた場合でも、出力するポートを特定できる。
【実施例3】
【0049】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0050】
例えば、上記の実施例1では、学習情報が未学習を示す場合、全てのポートからパケットを出力する場合について説明したが、開示の装置はこれに限定されない。例えば、未学習の場合、パケットを破棄してもよい。上記の実施例2も、読み出した各ポート情報間で同じビットにそれぞれ「1」が設定されたビットが無い場合、パケットを破棄してもよい。
【0051】
また、上記の実施例1では、記憶部20にポート情報と共に学習済みであるかを示す学習情報を記憶させた場合について説明したが、開示の装置はこれに限定されない。例えば、学習情報を記憶させず、ポート情報の記憶の有無により、学習済みであるか判定してもよい。これにより、伝送装置10は、記憶部20の記憶容量を少なくすることができる。なお、記憶部20に記憶されたポート情報と学習情報は、一定期間毎に初期化するようにしてもよい。例えば、記憶部20に、アドレス毎に最後にパケットが通過した最終通過日時を記憶する記憶領域を設け、最終通過日時から一定期間経過したポート情報と学習情報を初期化してもよい。例えば、ポート情報を削除し、学習情報を未学習を示す値(例えば、0)に初期化する。
【0052】
また、上記の実施例2では、同じビット数で送信元のアドレスおよび宛先のアドレスを部分アドレスに分けた場合について説明したが、開示の装置はこれに限定されない。例えば、送信元のアドレスおよび宛先のアドレスのビット数が48ビットの場合、24ビット、12ビット、8ビット、4ビットなど一定では無いビット数で部分アドレスに分けてもよい。これにより、メモリのアドレス空間に応じて部分アドレスを適切に定めることができるため、伝送装置10は、第1記憶部30としてアドレス空間の異なる複数のメモリを用いることができる。
【0053】
また、上記の実施例2では、ポートテーブルを用いてポート情報の各ビットと各ポート11とを対応付けた場合について説明したが、開示の装置はこれに限定されない。例えば、ポート情報の各ビットを直接それぞれ各ポート11に対応させてもよい。
【0054】
また、上記の実施例2では、ポートテーブルを記憶する第2記憶部31を設けた場合について説明したが、開示の装置はこれに限定されない。例えば、何れか第1記憶部30が対応する部分アドレスのビット数以上のビット数のアドレス空間を有する場合、部分アドレスで用いられないアドレスの記憶領域にポートテーブルを記憶させてもよい。これにより、伝送装置10は、ポートテーブルを記憶させるために第2記憶部31を設ける必要がなくなる。
【0055】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す格納部21と読出部22や、図6に示す格納部32と読出部33が統合されてもよい。
【0056】
[伝送制御プログラム]
また、上記の実施例で説明した伝送装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図12を用いて、上記の実施例で説明した伝送装置と同様の機能を有する伝送制御プログラムを実行するコンピュータの一例を説明する。図12は、伝送制御プログラムを実行するコンピュータを示す図である。
【0057】
図12に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
【0058】
ROM320には、上記の実施例1に示す格納部21、読出部22およびエンコーダ25と同様の機能、または上記の実施例2に示す格納部32、読出部33およびエンコーダ35と同様の機能を発揮する伝送制御プログラム320aが予め記憶される。なお、伝送制御プログラム320aについては、適宜分離しても良い。
【0059】
そして、CPU310が、伝送制御プログラム320aをROM320から読み出して実行する。
【0060】
そして、HDD330には、ポートテーブルが設けられる。ポートテーブルは、図8に示したポートテーブルに対応する。
【0061】
そして、CPU310は、ポートテーブルを読み出してRAM340に格納する。CPU310は、伝送制御プログラム320aを実行し、パケットを受信した際に、受信したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、パケットが入力したポートに関するポート情報をRAM340に格納する。また、CPU310は、パケットに含まれる宛先のアドレスを記憶先のアドレスとして、RAM340からポート情報を読み出し、読み出されたポート情報およびポートテーブルに基づき、パケットを出力するポートを選択する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0062】
なお、上記した伝送制御プログラム320aについては、必ずしもROM320に記憶させておく必要はない。
【0063】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0064】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0065】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【0066】
(付記1)パケットを入出力する複数のポートと、
前記パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部と、
前記複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を前記記憶部に格納する格納部と、
前記入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、前記記憶部から前記ポート情報を読み出す読出部と、
前記読出部により読み出された前記ポート情報に基づき、前記入力したパケットを出力するポートを選択する選択部と、
を有する伝送装置。
【0067】
(付記2)前記記憶部は、予め定めたビットの組み合わせで前記パケットに含まれる送信元のアドレスおよび宛先のアドレスをそれぞれ複数の部分アドレスに分けたそれぞれに対応して複数設けられ、それぞれ対応する部分アドレスのビット数以上のビット数のアドレス空間を有し、
前記格納部は、前記入力したパケットに含まれる送信元のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部に前記ポート情報を格納し、
前記読出部は、前記入力したパケットに含まれる宛先のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部から前記ポート情報を読み出し、
前記選択部は、前記読出部により読み出された各ポート情報に基づき、前記入力したパケットを出力するポートを選択する
ことを特徴とする付記1記載の伝送装置。
【0068】
(付記3)前記ポート情報は、複数のビットで構成され、各ビットがそれぞれポートに対応し、
前記格納部は、各部分アドレスに対応する各記憶部に、入力したポートに対応するビットに所定値を設定した前記ポート情報を格納し、
前記選択部は、前記読出部により読み出された各ポート情報間で同じビットにそれぞれ所定値が設定されたビットに対応するポートを、前記入力したパケットを出力するポートと選択する
ことを特徴とする付記2記載の伝送装置。
【0069】
(付記4)コンピュータに、
パケットを入出力する複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を、前記パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部に格納し、
前記入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、前記記憶部から前記ポート情報を読み出し、
読み出された前記ポート情報に基づき、前記入力したパケットを出力するポートを選択する
各処理を実行させることを特徴とする伝送制御プログラム。
【0070】
(付記5)前記記憶部は、予め定めたビットの組み合わせで前記パケットに含まれる送信元のアドレスおよび宛先のアドレスをそれぞれ複数の部分アドレスに分けたそれぞれに対応して複数設けられ、それぞれ対応する部分アドレスのビット数以上のビット数のアドレス空間を有し、
前記格納する処理は、前記入力したパケットに含まれる送信元のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部に前記ポート情報を格納し、
前記読み出す処理は、前記入力したパケットに含まれる宛先のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部から前記ポート情報を読み出し、
前記選択する処理は、前記読出部により読み出された各ポート情報に基づき、前記入力したパケットを出力するポートを選択する
ことを特徴とする付記4記載の伝送制御プログラム。
【0071】
(付記6)前記ポート情報は、複数のビットで構成され、各ビットがそれぞれポートに対応し、
前記格納する処理は、各部分アドレスに対応する各記憶部に、入力したポートに対応するビットに所定値を設定した前記ポート情報を格納し、
前記選択する処理は、前記読出部により読み出された各ポート情報間で同じビットにそれぞれ所定値が設定されたビットに対応するポートを、前記入力したパケットを出力するポートと選択する
ことを特徴とする付記5記載の伝送制御プログラム。
【0072】
(付記7)コンピュータが、
パケットを入出力する複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を、前記パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部に格納し、
前記入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、前記記憶部から前記ポート情報を読み出し、
読み出された前記ポート情報に基づき、前記入力したパケットを出力するポートを選択する
各処理を実行することを特徴とする伝送制御方法。
【0073】
(付記8)前記記憶部は、予め定めたビットの組み合わせで前記パケットに含まれる送信元のアドレスおよび宛先のアドレスをそれぞれ複数の部分アドレスに分けたそれぞれに対応して複数設けられ、それぞれ対応する部分アドレスのビット数以上のビット数のアドレス空間を有し、
前記格納する処理は、前記入力したパケットに含まれる送信元のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部に前記ポート情報を格納し、
前記読み出す処理は、前記入力したパケットに含まれる宛先のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部から前記ポート情報を読み出し、
前記選択する処理は、前記読出部により読み出された各ポート情報に基づき、前記入力したパケットを出力するポートを選択する
ことを特徴とする付記7記載の伝送制御方法。
【0074】
(付記9)前記ポート情報は、複数のビットで構成され、各ビットがそれぞれポートに対応し、
前記格納する処理は、各部分アドレスに対応する各記憶部に、入力したポートに対応するビットに所定値を設定した前記ポート情報を格納し、
前記選択する処理は、前記読出部により読み出された各ポート情報間で同じビットにそれぞれ所定値が設定されたビットに対応するポートを、前記入力したパケットを出力するポートと選択する
ことを特徴とする付記8記載の伝送制御方法。
【符号の説明】
【0075】
10 伝送装置
11 ポート
12 パケット
20 記憶部
21 格納部
22 読出部
23 選択部
24 選択回路
25 エンコーダ
30 第1記憶部
31 第2記憶部
32 格納部
33 読出部
34 選択部
35 エンコーダ

【特許請求の範囲】
【請求項1】
パケットを入出力する複数のポートと、
前記パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部と、
前記複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を前記記憶部に格納する格納部と、
前記入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、前記記憶部から前記ポート情報を読み出す読出部と、
前記読出部により読み出された前記ポート情報に基づき、前記入力したパケットを出力するポートを選択する選択部と、
を有する伝送装置。
【請求項2】
前記記憶部は、予め定めたビットの組み合わせで前記パケットに含まれる送信元のアドレスおよび宛先のアドレスをそれぞれ複数の部分アドレスに分けたそれぞれに対応して複数設けられ、それぞれ対応する部分アドレスのビット数以上のビット数のアドレス空間を有し、
前記格納部は、前記入力したパケットに含まれる送信元のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部に前記ポート情報を格納し、
前記読出部は、前記入力したパケットに含まれる宛先のアドレスを前記複数の部分アドレスに分けた各部分アドレスをそれぞれ記憶先のアドレスとして各部分アドレスに対応する各記憶部から前記ポート情報を読み出し、
前記選択部は、前記読出部により読み出された各ポート情報に基づき、前記入力したパケットを出力するポートを選択する
ことを特徴とする請求項1記載の伝送装置。
【請求項3】
前記ポート情報は、複数のビットで構成され、各ビットがそれぞれポートに対応し、
前記格納部は、各部分アドレスに対応する各記憶部に、入力したポートに対応するビットに所定値を設定した前記ポート情報を格納し、
前記選択部は、前記読出部により読み出された各ポート情報間で同じビットにそれぞれ所定値が設定されたビットに対応するポートを、前記入力したパケットを出力するポートと選択する
ことを特徴とする請求項2記載の伝送装置。
【請求項4】
コンピュータに、
パケットを入出力する複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を、前記パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部に格納し、
前記入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、前記記憶部から前記ポート情報を読み出し、
読み出された前記ポート情報に基づき、前記入力したパケットを出力するポートを選択する
各処理を実行させることを特徴とする伝送制御プログラム。
【請求項5】
コンピュータが、
パケットを入出力する複数のポートの何れかに入力したパケットに含まれる送信元のアドレスを記憶先のアドレスとして、当該パケットが入力したポートに関するポート情報を、前記パケットに含まれる送信元のアドレスおよび宛先のアドレスのビット数以上のビット数のアドレス空間を有し、アドレスが示す記憶領域にデータを記憶する記憶部に格納し、
前記入力したパケットに含まれる宛先のアドレスを記憶先のアドレスとして、前記記憶部から前記ポート情報を読み出し、
読み出された前記ポート情報に基づき、前記入力したパケットを出力するポートを選択する
各処理を実行することを特徴とする伝送制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−77878(P2013−77878A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−214989(P2011−214989)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000005223)富士通株式会社 (25,993)
【出願人】(000237662)富士通テレコムネットワークス株式会社 (682)
【Fターム(参考)】