(58)【調査した分野】(Int.Cl.,DB名)
前記通常転送手段は、前記受信パケットに含まれる前記宛先識別情報が複数の宛先装置に同時に通信を行うための特定の識別情報ではない場合には、該受信パケットに含まれる前記転送制御情報に基づいて各該受信パケットの修正や追加処理を行い、前記宛先識別情報が示す宛先装置に対応した送信手段から送信するとともに、前記該送信手段からの送信が成功した場合に前記高速転送用データを前記高速転送用データ記憶手段に記憶する
ことを特徴とする請求項1に記載の通信装置。
前記高速転送判定手段が前記高速転送用データ記憶手段から取得する前記高速転送用データは、前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報と、前記高速転送用データに含まれる前記送信元識別情報および前記宛先識別情報とがそれぞれ同じである
ことを特徴とする請求項1または請求項2に記載の通信装置。
送信元装置を識別する送信元識別情報と、宛先装置を識別する宛先識別情報と、前記宛先装置と一対一対応で設けられ各該宛先装置にパケットを送信する送信手段を識別する送信手段識別情報と、前記送信手段の数を示す必要データ数と、前記受信パケットに含まれる転送制御情報に基づいて行う該受信パケットの修正や追加処理の内容を示す追加修正用データとを含む高速転送用データを記憶する高速転送用データ記憶手段を備える通信装置において、
前記送信元識別情報と、前記宛先識別情報と、前記転送制御情報と、転送データとを含む前記受信パケットを受信し、
前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報を基に前記高速転送用データ記憶手段から前記高速転送用データを取得し、
該取得した高速転送用データの数と該高速転送用データに含まれる前記必要データ数が示す値とが同じ場合は、前記受信パケットを前記高速転送用データと同じ数になるように複製し、各該複製した受信パケットを各前記高速転送用データに含まれる前記追加修正用データの内容に基づいて処理し、各該処理した受信パケットを各前記高速転送用データに含まれる前記送信手段識別情報が示す送信手段から送信し、
一方、該取得した前記高速転送用データの数と該高速転送用データに含まれる前記必要データ数が示す値とが違う場合は、前記受信パケットを前記送信手段と同じ数になるように複製し、各該複製した受信パケットに含まれる前記転送制御情報に基づいて各該受信パケットの修正や追加処理を行い、各前記送信手段から各該複製したパケットをそれぞれ送信するとともに、前記送信手段からの送信が成功した場合に前記高速転送用データを前記高速転送用データ記憶手段に記憶する
ことを特徴とするパケット転送方法。
前記受信パケットに含まれる前記宛先識別情報が複数の宛先装置に同時に通信を行うための特定の識別情報ではない場合は、該受信パケットに含まれる前記転送制御情報に基づいて該受信パケットの修正や追加処理を行い、前記宛先識別情報が示す宛先装置に対応した送信手段から送信するとともに、前記送信手段からの送信が成功した場合に前記高速転送用データを前記高速転送用データ記憶手段に記憶する
ことを特徴とする請求項4に記載のパケット転送方法。
前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報を基に前記高速転送用データ記憶手段から取得する前記高速転送用データは、前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報と、前記高速転送用データに含まれる前記送信元識別情報および前記宛先識別情報とがそれぞれ同じである
ことを特徴とする請求項4または請求項5に記載のパケット転送方法。
送信元装置を識別する送信元識別情報と、宛先装置を識別する宛先識別情報と、前記宛先装置と一対一対応で設けられ各該宛先装置にパケットを送信する送信手段を識別する送信手段識別情報と、前記送信手段の数を示す必要データ数と、前記受信パケットに含まれる転送制御情報に基づいて行う該受信パケットの修正や追加処理の内容を示す追加修正用データとを含む高速転送用データを記憶する第1の記憶処理と、
前記送信元識別情報と、前記宛先識別情報と、前記転送制御情報と、転送データとを含む前記受信パケットを受信する受信処理と、
前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報を基に前記高速転送用データを取得する取得処理と、
前記取得処理で取得した高速転送用データの数と該高速転送用データに含まれる前記必要データ数が示す値とが同じ場合は、前記受信パケットを前記高速転送用データと同じ数になるように複製し、各該複製した受信パケットを各前記高速転送用データに含まれる前記追加修正用データの内容に基づいて処理し、各該処理した受信パケットを各前記高速転送用データに含まれる前記送信手段識別情報が示す送信手段から送信する第1の送信処理と、
一方、該取得した前記高速転送用データの数と該高速転送用データに含まれる前記必要データ数が示す値とが違う場合は、前記受信パケットを前記送信手段と同じ数になるように複製し、各該複製した受信パケットに含まれる前記転送制御情報に基づいて各該受信パケットの修正や追加処理を行い、各前記送信手段から各該複製したパケットをそれぞれ送信する第2の送信処理と、
前記第2の送信処理が成功した場合に前記高速転送用データを記憶する第2の記憶処理と
をコンピュータに実行させることを特徴とするパケット転送プログラム。
前記取得処理で前記受信パケットに含まれる前記宛先識別情報が複数の宛先装置に同時に通信を行うための特定の識別情報ではない場合は、該受信パケットに含まれる前記転送制御情報に基づいて各該受信パケットの修正や追加処理を行い、前記宛先識別情報が示す宛先装置に対応した送信手段から送信する第3の送信処理と、
前記第3の送信処理が成功した場合に前記高速転送用データを記憶する第3の記憶処理と
をコンピュータに実行させることを特徴とする請求項7に記載のパケット転送プログラム。
前記取得処理で取得する前記高速転送用データは、前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報と、前記高速転送用データに含まれる前記送信元識別情報および前記宛先識別情報とがそれぞれ同じである
ことを特徴とする請求項7または請求項8に記載のパケット転送プログラム。
【背景技術】
【0002】
ルータなどの通信装置では、パケットを転送する際に、パケットごとに、そのパケットに付与されている制御情報などを基に、当該通信装置内の種々のテーブルやデータベースを検索、参照して、そのパケットの処理方法を決定する。このような処理の中には、上記検索結果に基づいて当該パケットに制御情報を追加、修正したり、あるいは、特定の通信ポートから送信したりするような処理が含まれる。
【0003】
また、マルチキャストやブロードキャストでの通信時には、パケットを受信した通信ポート以外の全ての通信ポートから、当該受信したパケットを複製して上記種々の処理を施したパケットを送信するフラッディングと呼ばれる処理を行う。
【0004】
上述のような処理を行う通信装置において、通常の転送処理における処理方法や追加修正用データを含んだ、高速転送用データを作成、記憶しておき、同種類のパケットには上述のような煩雑な処理を何度も行わずに、当該高速転送用データの内容を適用することでパケットの転送処理速度を速くするための技術が知られている。
【0005】
例えば、特許文献1には、ルータにおけるパケットのフォワーディング処理において、ある制御情報(送信元アドレス、宛先アドレスなど)を含むパケットに対する処理内容を事前にキャッシュブロックに記憶しておき、受信したパケットの制御情報が当該制御情報と同一の場合には、当該処理内容を適用することにより、受信する度に処理内容を判断して適用する通常の処理よりも処理速度を速くするための技術が記載されている。
【0006】
関連技術として、特許文献2には、第1のトークン・リングLANに接続された送信元ホストと第2のトークン・リングLANに接続された目標ホストとの間に単一の仮想LAN(すなわち、ルータを介して相互接続されたLAN)を動的に構成し、該送信元ホストと該目標ホストとを接続する経路情報をトークン・リング・フレームに含まれる経路指定情報フィールドに格納することにより、該送信元ホストから該目標ホストへの当該フレームの転送処理を高速化するための技術が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述のように、高速転送用データを作成し同種類のパケットに適用することによって転送処理速度を速くする通信装置において、マルチキャストやブロードキャストでの通信時にフラッディングを行う際に、何らかの原因で一部の通信ポートからの送信が失敗した場合、当該通信ポートから送信するパケットに適用するための高速転送用データが作成されない。そのため、その後のマルチキャストやブロードキャストでの通信時に他の通信ポートからの送信は行われるが、当該一部の通信ポートからの送信が行われないままになってしまうという問題点がある。
【0009】
なお、特許文献1および2には、高速転送用データを作成して処理を行う通信装置において、マルチキャストやブロードキャストでの通信時にフラッディングを行う際に、使用されている複数のポートの全てから確実にパケットを送信するための技術については、何ら記載されていない。
【0010】
本発明の目的は、上述した問題点を解決できる通信装置、パケット転送方法およびパケット転送プログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の通信装置は、
送信元装置を識別する送信元識別情報と、宛先装置を識別する宛先識別情報と、転送制御情報と、転送データとを含む受信パケットを受信する受信手段と、
少なくとも一つの前記宛先装置と一対一対応で設けられ、各該宛先装置にパケットを送信する少なくとも一つの送信手段と、
前記送信元識別情報と、前記宛先識別情報と、前記送信手段を識別する送信手段識別情報と、前記受信パケットに含まれる前記転送制御情報に対し所定の規則に基づいて行う追加および修正の内容を示す追加修正用データとを含む高速転送用データを記憶する高速転送用データ記憶手段と、
前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報を基に前記高速転送用データ記憶手段から前記高速転送用データを取得し、該取得した前記高速転送用データの数と前記送信手段の数とが同じ場合は、前記受信パケットおよび該取得した前記高速転送用データを高速転送手段に送付し、一方、該取得した前記高速転送用データの数と前記送信手段の数とが違う場合は、前記受信パケットを通常転送手段に送付する高速転送判定手段と、
前記受信パケットを前記高速転送用データと同じ数になるように複製し、各該複製したパケットを各前記高速転送用データに含まれる前記追加修正用データの内容に基づいて処理し、各該処理したパケットを各前記高速転送用データに含まれる前記送信手段識別情報が示す送信手段から送信する高速転送手段と、
前記受信パケットを前記送信手段と同じ数になるように複製し、各該複製したパケットに含まれる前記転送制御情報を所定の規則に基づいて追加および修正を行い、各前記送信手段から各該複製したパケットをそれぞれ送信するとともに、前記送信手段からの送信が成功した場合に前記高速転送用データを前記高速転送用データ記憶手段に記憶する通常転送手段と
から構成される。
【0012】
また、本発明のパケット転送方法は、
送信元装置を識別する送信元識別情報と、宛先装置を識別する宛先識別情報と、前記宛先装置と一対一対応で設けられ各該宛先装置にパケットを送信する送信手段を識別する送信手段識別情報と、受信パケットに含まれる転送制御情報に対し所定の規則に基づいて行う追加および修正の内容を示す追加修正用データとを含む高速転送用データを記憶する高速転送用データ記憶手段を備える通信装置において、
前記送信元識別情報と、前記宛先識別情報と、前記転送制御情報と、転送データとを含む受信パケットを受信し、
前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報を基に前記高速転送用データ記憶手段から前記高速転送用データを取得し、
該取得した高速転送用データの数と前記送信手段の数とが同じ場合は、前記受信パケットを前記高速転送用データと同じ数になるように複製し、各該複製したパケットを各前記高速転送用データに含まれる前記追加修正用データの内容に基づいて処理し、各該処理したパケットを各前記高速転送用データに含まれる前記送信手段識別情報が示す送信手段から送信し、
一方、該取得した前記高速転送用データの数と前記送信手段の数とが違う場合は、前記受信パケットを前記送信手段と同じ数になるように複製し、各該複製したパケットに含まれる前記転送制御情報を所定の規則に基づいて追加および修正を行い、各前記送信手段から各該複製したパケットをそれぞれ送信するとともに、前記送信手段からの送信が成功した場合に前記高速転送用データを前記高速転送用データ記憶手段に記憶する
ことを特徴とする。
【0013】
また、本発明のパケット転送プログラムは、
送信元装置を識別する送信元識別情報と、宛先装置を識別する宛先識別情報と、前記宛先装置と一対一対応で設けられ各該宛先装置にパケットを送信する送信手段を識別する送信手段識別情報と、受信パケットに含まれる転送制御情報に対し所定の規則に基づいて行う追加および修正の内容を示す追加修正用データとを含む高速転送用データを記憶する第1の記憶処理と、
前記送信元識別情報と、前記宛先識別情報と、前記転送制御情報と、転送データとを含む受信パケットを受信する受信処理と、
前記受信パケットに含まれる前記送信元識別情報および前記宛先識別情報を基に前記高速転送用データを取得する取得処理と、
前記取得処理で取得した高速転送用データの数と前記宛先装置の数とが同じ場合は、前記受信パケットを前記高速転送用データと同じ数になるように複製し、各該複製したパケットを各前記高速転送用データに含まれる前記追加修正用データの内容に基づいて処理し、各該処理したパケットを各前記高速転送用データに含まれる前記送信手段識別情報が示す送信手段から送信する第1の送信処理と、
一方、該取得した前記高速転送用データの数と前記宛先装置の数とが違う場合は、前記受信パケットを前記宛先装置の数と同じ数になるように複製し、各該複製したパケットに含まれる前記転送制御情報を所定の規則に基づいて追加および修正を行い、各前記送信手段から各該複製したパケットをそれぞれ送信する第2の送信処理と、
前記第2の送信処理が成功した場合に前記高速転送用データを記憶する第2の記憶処理と
をコンピュータに実行させる。
【発明の効果】
【0014】
本発明には、高速転送用データを作成してパケットの転送処理を行う通信装置において、マルチキャストやブロードキャストでの通信時にフラッディングを行う際に、使用されている複数のポートの全てから確実に当該パケットを送信することができるという効果がある。
【発明を実施するための形態】
【0016】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0017】
[第1の実施形態]
図1は本発明の第1の実施形態を示すブロック図である。
【0018】
図1を参照すると、本実施形態は、通信装置(「コンピュータ」とも言う。)100と、通信装置100と接続されたノード170と、通信装置100とネットワーク160を介して接続されたノード171および172とから構成される。
【0019】
通信装置100は、高速転送判定部110と、後述する高速転送用データを記憶する高速転送用データ記憶部120と、通常転送部130と、高速転送制御部141を含む高速転送部140と、ノード170と接続されノード170が送信したパケットを受信する入力インターフェース部150と、ノード171とネットワーク160を介して接続されノード171にパケットを送信する出力インターフェース部151と、ノード172とネットワーク160を介して接続されノード172にパケットを送信する出力インターフェース部152とを含む。
【0020】
各出力インターフェース部には、各々を識別するための固有の識別情報が割り当てられている。
【0021】
ノード170、171および172は、他の通信装置または情報処理装置などであり、それぞれには各々を識別するための固有の識別情報が割り当てられている。各ノードが送信するパケットには、各該ノードを示す識別情報が送信元識別情報として含まれ、また、当該パケットの送信先のノードを示す識別情報が宛先識別情報として含まれる。なお、各ノードがマルチキャストまたはブロードキャストでの通信を行う場合は、当該ノードが送信するパケットに含まれる宛先識別情報には、マルチキャストおよびブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報(本実施形態ではそれぞれ「DEST999」および「DEST000」とする)が設定される。
【0022】
ネットワーク160は、インターネット等の公衆通信回線でもよいし、LAN(Local Area Network)等の構内ネットワークでもよい。
【0023】
通常転送部130は、通常転送制御部131と、高速転送用データ作成部132と、出力インターフェース部151および152にそれぞれ一対一対応で設けられた通常転送処理部133および134とを含む。
【0024】
通常転送制御部131は、高速転送判定部110を介して入力インターフェース部150から受け取ったパケットに含まれる宛先識別情報を基に送信先のノードを決定し、該ノードと接続されている出力インターフェース部に対応した通常転送処理部に当該パケットを送付する。なお、当該宛先識別情報がマルチキャストおよびブロードキャストでの通信に用いられる予め定められたそれぞれ特定の識別情報である場合には、通常転送制御部131は、受け取ったパケットを複製して全ての通常転送処理部に送付する。
【0025】
通常転送処理部133および134は、通常転送制御部131から受け取ったパケットを所定の規則に基づいて修正したり、当該パケットに含まれる制御情報などを基に決定した所定の処理を行い作成した新たな制御情報を追加したりした後に、各該パケットを、それぞれ対応する出力インターフェース部151および152に送付する。また、このとき、当該パケットに追加した制御情報を示す値や修正した内容を示す値である追加修正用データ、および処理後のパケットを送付した出力インターフェース部を示す識別情報等を、高速転送用データ作成部132に送付する。
【0026】
高速転送用データ作成部132は、通常転送処理部133および134から受け取った情報を、高速転送用データとして高速転送用データ記憶部120に記憶する。
【0027】
高速転送判定部110は、入力インターフェース部150から受け取ったパケットに含まれる送信元識別情報および宛先識別情報を基に、高速転送用データ記憶部120から高速転送用データを取得する。そして、その取得した結果に応じて当該パケットを通常転送制御部131、または高速転送制御部141に送付する。
【0028】
高速転送制御部141は、高速転送判定部110から、上記パケットと少なくとも一つの高速転送用データとを受け取り、該パケットを該高速転送用データの個数と同じ数になるように複製する。そして、高速転送制御部141は、各該高速転送用データに含まれる追加修正用データの内容に基づいて各該複製したパケットを処理し、各該高速転送用データに含まれる出力インターフェース識別の識別情報が割り当てられた出力インターフェース部に送付する。
【0029】
高速転送用データ記憶部120は、高速転送用データ作成部132が作成した高速転送用データを記憶する。
【0030】
図2は高速転送用データ記憶部120に記憶される高速転送用データの一例を示す図である。
【0031】
図2を参照すると、高速転送用データは、送信元識別と、宛先識別と、出力インターフェース識別と、必要データ数と、追加修正用データとを含む。
【0032】
ここで、送信元識別は、入力インターフェース部150で受信したパケットに含まれる送信元識別情報を示す識別情報であり、宛先識別は、該受信したパケットに含まれる宛先識別情報を示す識別情報であり、出力インターフェース識別は、該受信したパケットを処理した後のパケットの送信先ノードに対応した出力インターフェース部を示す識別情報である。
【0033】
必要データ数は、上記宛先識別がマルチキャストまたはブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報である場合には、通信装置100に存在する少なくとも一つの出力インターフェース部のうちノードと接続されているものの数を示す値であり、上記宛先識別がその他の識別情報である場合は「1」である。すなわち、必要データ数は、出力インターフェース部のうちノードと接続されているものの数を示す値であるか、または「1」であるかのどちらかである。
【0034】
追加修正用データは、通常転送処理部133が上記受信したパケットに追加した制御情報を示す値や修正した内容を示す値である。例えば、インターネット等の公衆回線上に仮想的な通信路を設けてデータ通信を行うカプセル化処理のためのL2TP(Layer2 Tunneling Protocol)ヘッダを追加した場合はそのL2TPヘッダを示す値を含み、また、追加したIP(Internet Protocol)ヘッダを示す値などが含まれる。
【0035】
なお、上記宛先識別がマルチキャストおよびブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報である場合には、送信元識別の識別情報および宛先識別の識別情報がそれぞれ同じであり、且つ出力インターフェース識別の識別情報が違う、複数の高速転送用データが高速転送用データ記憶部120に記憶される。
【0036】
図2の2行目の高速転送用データの例を参照すると、送信元識別が示す送信元ノードの識別情報は「SRC170」であり、宛先識別が示す送信先ノードの識別情報はマルチキャストでの通信に用いられる識別情報である「DEST999」であり、出力インターフェース識別が示す処理後のパケットを送付する出力インターフェース部の識別情報は「PORT151」である。そして、宛先識別の「DEST999」がマルチキャストでの通信に用いられる識別情報であるので、必要データ数は、出力インターフェース部のうちノードと接続されている出力インターフェース部(すなわち出力インターフェース部151および152)の数を示す「2」である。追加修正用データは、上記L2TPヘッダを示す「L2TPヘッダ1」およびIPヘッダを示す「IPヘッダ1」である。
【0037】
次に、通信装置100の動作について
図3を参照して説明する。
図3は、通信装置100の動作を示すフローチャートである。
【0038】
図3を参照すると、まず、ノード170が、ノード171宛てもしくは172宛てのパケット、またはマルチキャストもしくはブロードキャストでの通信を行うパケットを送信すると、入力インターフェース部150が当該パケットを受信し高速転送判定部110に送付する。
【0039】
高速転送判定部110は、入力インターフェース部150から受け取った受信パケットに含まれる送信元識別情報および宛先識別情報を基に高速転送用データ記憶部120に記憶されている高速転送用データを検索し、上記送信元識別情報および上記宛先識別情報と、高速転送用データに含まれる送信元識別が示す識別情報および宛先識別が示す識別情報とがそれぞれ同じである高速転送用データを取得する(ステップS100)。
【0040】
なお、当該受信パケットがマルチキャストまたはブロードキャストでの通信を行うパケットである場合は、該パケットに含まれる宛先識別情報は予め定められた特定の識別情報であり、当該識別情報と同じ識別情報が示す宛先識別を含む高速転送用データは一つまたは複数存在するが、それらすべてを取得する。
【0041】
ステップS100で高速転送用データを取得できた場合(ステップS101で「YES」の場合)は、高速転送判定部110は、該取得した高速転送用データの個数と、該取得した高速転送用データに含まれる必要データ数が示す値とが同じ値であるか否かを判定する(ステップS102)。なお、取得した高速転送用データが複数の場合には、各該高速転送用データに含まれる必要データ数が示す値は全て同じ値であるので、どれか一つの高速転送用データに含まれる必要データ数が示す値と比較すればよい。
【0042】
ステップS102で、取得した高速転送用データの個数と、該高速転送用データに含まれる必要データ数が示す値とが同じ値である場合(ステップ102で「YES」の場合)は、高速転送判定部110は、上記受信パケットおよび上記取得した少なくとも一つの高速転送用データを、高速転送制御部141に送付する。
【0043】
高速転送制御部141は、高速転送判定部110から受け取ったパケットを、受け取った高速転送用データと同じ数になるように複製する(ステップS103)。
【0044】
そして、高速転送制御部141は、複製した各パケットを、それぞれ各該高速転送用データと一対一に対応させ、対応させた各該高速転送用データに含まれる追加修正用データの内容に基づいて処理を行う(例えば、IPヘッダとL2TPヘッダを追加する等の処理を行う)。
【0045】
高速転送制御部141は、上記処理済みのパケットを各該高速転送用データに含まれる出力インターフェース識別が示す識別情報が割り当てられた出力インターフェース部に送付し、各該出力インターフェース部は、高速転送制御部141から受け取った処理済みパケットを、接続しているノードに送信する(ステップS104)。
【0046】
一方、ステップS100で高速転送用データを取得できなかった場合(ステップS101で「NO」の場合)、またはステップS101で、取得した高速転送用データの個数と該高速転送用データに含まれる必要データ数が示す値とが同じ値でない場合(ステップ102で「NO」の場合)は、高速転送判定部110は、上記受信パケットを通常転送制御部131に送付する。
【0047】
通常転送制御部131は、高速転送判定部110から受け取った受信パケットに含まれる宛先識別情報が、マルチキャストまたはブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報である場合には、受け取ったパケットを複製して全ての通常転送処理部、すなわち通常転送処理部133および134に送付する。また、当該宛先識別情報が、上記特定の識別情報以外の識別情報である場合には、当該宛先識別情報が割り当てられたノードを決定し、該ノードと接続されている出力インターフェース部に対応した通常転送処理部133または134に当該パケットを送付する(ステップS105)。
【0048】
次に、通常転送制御部131から受信パケットを受け取った通常転送処理部133または134は、当該パケットに含まれる制御情報を所定の規則に基づいて修正したり、該制御情報を基に決定した所定の処理によって作成した新たな制御情報を当該パケットに追加したりした後に、出力インターフェース部151または152に送付する。そして、出力インターフェース部151または152は、受け取った処理済みパケットを接続しているノードに送信する(ステップS106)。
【0049】
そして、出力インターフェース部151または152からノードへの送信が成功した場合には、対応する通常転送処理部133または134は、送信した処理済みパケットの送信元識別情報と、宛先識別情報と、ステップS106で当該パケットを修正した所定の処理を示す情報や当該パケットに追加した新たな制御情報と、処理後のパケットを送付した出力インターフェース部を示す識別情報とを、高速転送用データ作成部132に送付する(ステップS107)。なお、何らかの原因で出力インターフェース部からノードへの送信が成功しなかった場合には、高速転送用データ作成部132に何も送付しない。
【0050】
なお、ステップS105で通常転送制御部131から通常転送処理部133および134に送付した受信パケットがマルチキャストまたはブロードキャストでの通信に用いられるパケットである場合は、通常転送処理部133および134は、それぞれがステップS106乃至S107の処理を行う。
【0051】
次に、高速転送用データ作成部132は、通常転送処理部133または134から各上記情報を受け取り、各上記情報のうち宛先識別情報がマルチキャストまたはブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報である場合には、通信装置100に存在する出力インターフェース部のうちノードと接続されているものの数を示す値、すなわち出力インターフェース部151および152の「2」を、各上記情報に対応する必要データ数とし、当該宛先識別情報がその他の場合は「1」を各上記情報に対応する必要データ数とする。
【0052】
そして、高速転送用データ作成部132は、送信元識別情報を高速転送用データの送信元識別とし、宛先識別情報を宛先識別とし、出力インターフェース部を示す識別情報を出力インターフェース識別とし、必要データ数を示す値を必要データ数とし、ステップS106で上記受信パケットを修正した所定の処理を示す情報や当該パケットに追加した新たな制御情報を追加修正用データとする。そして、こうして作成した高速転送用データを、高速転送用データ記憶部120に記憶する(ステップS108)。
【0053】
なお、送信元識別が示す識別情報と、宛先識別が示す識別情報と、出力インターフェース識別が示す識別情報とが全て同じ高速転送用データが既に高速転送用データ記憶部120に存在している場合は、新たにステップS108で作成したデータを登録することはせずに廃棄する。
【0054】
なお、ノード170から受信したパケットがマルチキャストまたはブロードキャストでの通信を行うパケットである場合には、ステップS108で高速転送用データ作成部132が求める必要データ数は、通信装置100に存在する少なくとも一つの出力インターフェース部のうちノードと接続されているものの数を示す値なので、当該パケットに含まれるその他の情報に関わらず常に一つの値である。そのため、ステップS108で必要データ数をその都度求めるのではなく、事前に求めた必要データ数を、高速転送用データ記憶部120内の所定の記憶場所、または、高速転送用データ記憶部120とは別に通信装置100内に設けられた専用の記憶部(図示せず)に記憶しておき、該記憶しておいた必要データ数をステップS108で使用してもよい。
【0055】
また、事前に求めた必要データ数を、各高速転送用データに含まれる必要データ数に設定せずに、高速転送用データ記憶部120内の所定の記憶場所、または、高速転送用データ記憶部120とは別に通信装置100内に設けられた専用の記憶部に記憶しておき、ステップS102で高速転送判定部110が、高速転送用データ記憶部120から取得した高速転送用データの個数と該記憶しておいた必要データ数とを比較してもよい。
【0056】
以上、本実施形態には、高速転送用データを作成してパケットの転送処理を行う通信装置において、マルチキャストやブロードキャストでの通信時に、使用されている複数の出力インターフェース部の全てから確実にパケットを送信することができるという効果がある。
【0057】
その理由は、受信パケットに含まれる送信元識別情報および宛先識別情報と同じ送信元識別情報および宛先識別情報を含む高速転送用データを取得し、該取得した高速転送用データに含まれる必要データ数と、該取得した高速転送用データの個数とが同じでない場合には、該取得した高速転送用データを用いた転送処理を行わずに、通常の転送処理を行い、再度、足りない高速転送用データを作成し、高速転送用データ記憶部120に記憶するからである。
【0058】
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。
【0059】
図4は本発明の第2の実施形態を示すブロック図である。
【0060】
図4を参照すると、本実施形態は、通信装置500と、通信装置500と接続された送信元装置570と、通信装置500と接続された宛先装置571および572とから構成される。
【0061】
通信装置500は、高速転送判定部510と、高速転送用データ記憶部520と、通常転送部530と、高速転送部540と、受信部550と、送信部551および552とを含む。
【0062】
受信部550は、送信元装置570を識別する送信元識別情報と、宛先装置571および572を識別する宛先識別情報と、転送制御情報と、転送データとを含む受信パケットを受信する。
【0063】
送信部551および552は、上記宛先装置571および572と一対一対応で設けられ、各該宛先装置にパケットを送信する。
【0064】
高速転送用データ記憶部520は、上記送信元識別情報と、上記宛先識別情報と、上記送信部を識別する送信手段識別情報と、上記受信パケットに含まれる転送制御情報に対し所定の規則に基づいて行う追加および修正の内容を示す追加修正用データとを含む高速転送用データを記憶する。
【0065】
高速転送判定部510は、上記受信パケットに含まれる送信元識別情報および宛先識別情報を基に高速転送用データ記憶部520から上記高速転送用データを取得し、該取得した高速転送用データの数と送信部551および552の数とが同じ場合は、上記受信パケットおよび該取得した高速転送用データを高速転送部540に送付し、一方、該取得した高速転送用データの数と送信部551および552の数とが違う場合は、上記受信パケットを通常転送部530に送付する。
【0066】
高速転送部540は、上記受信パケットを、高速転送判定部510から受け取った高速転送用データと同じ数になるように複製し、各該複製したパケットを各該高速転送用データに含まれる追加修正用データの内容に基づいて処理し、各該処理したパケットを各該高速転送用データに含まれる送信手段識別情報が示す送信部から送信する。
【0067】
通常転送部530は、上記受信パケットに含まれる宛先識別情報がマルチキャストまたはブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報である場合には、上記受信パケットを送信部551および552と同じ数になるように複製し、各該複製したパケットに含まれる転送制御情報を所定の規則に基づいて追加および修正を行い、各送信部から各該複製したパケットをそれぞれ送信するとともに、各送信部からの送信が成功した場合に上記高速転送用データを高速転送用データ記憶部520に記憶する。
【0068】
また、上記受信パケットに含まれる宛先識別情報がマルチキャストまたはブロードキャストでの通信に用いられるそれぞれ予め定められた特定の識別情報ではない場合には、通常転送部530は、該パケットに含まれる転送制御情報を所定の規則に基づいて追加および修正を行い、上記宛先識別情報が示す宛先装置に対応した送信部から送信するとともに、該送信部からの送信が成功した場合に上記高速転送用データを高速転送用データ記憶部520に記憶する。
【0069】
以上、本実施形態には、第1の実施形態と同様に、高速転送用データを作成してパケットの転送処理を行う通信装置において、マルチキャストやブロードキャストでの通信時に、使用されている複数の送信部の全てから確実に当該パケットを送信することができるという効果がある。
【0070】
その理由は、高速転送判定部510が高速転送用データ記憶部520から取得した高速転送用データの数と、送信部の数とが違う場合には、該取得した高速転送用データを用いた高速転送部540による転送処理を行わずに、通常転送部530による通常の転送処理を行い、再度、高速転送用データを作成し、高速転送用データ記憶部520に記憶するからである。