(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】ネットワーク装置、パケット処理方法、及びプログラム
(51)【国際特許分類】
H04L 49/00 20220101AFI20240730BHJP
G06F 9/38 20180101ALI20240730BHJP
H04L 69/12 20220101ALI20240730BHJP
H04L 69/18 20220101ALI20240730BHJP
H04L 69/22 20220101ALI20240730BHJP
【FI】
H04L49/00
G06F9/38 310E
H04L69/12
H04L69/18
H04L69/22
(21)【出願番号】P 2021018282
(22)【出願日】2021-02-08
【審査請求日】2022-06-03
【審判番号】
【審判請求日】2023-11-14
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】深澤 健
【合議体】
【審判長】土居 仁士
【審判官】衣鳩 文彦
【審判官】上田 翔太
(56)【参考文献】
【文献】米国特許出願公開第2003/0065812(US,A1)
【文献】特開2013-102352(JP,A)
【文献】再公表特許第2003/075537(JP,A1)
【文献】特開2007-26233(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
パケット受信部と、
パケット送信部と、
前記パケット受信部と前記パケット送信部との間に直列に配置され、前記パケット受信部が受信したパケットが順次転送される複数の機能ブロックと、
前記機能ブロックごとに設けられたキャッシュ記憶部と、を備え、
前記複数の機能ブロックは、それぞれ、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されていない場合、前記パケットに対して低速転送処理を実行する低速転送処理部と、
前記パケットの一部と前記低速転送処理の結果とを対応づけたキャッシュを生成して対応する前記キャッシュ記憶部に記憶するキャッシュ生成部と、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されている場合、前記パケットに対して高速転送処理を実行する高速転送処理部と、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されているか否かを確認するキャッシュ確認部と、を備え
、
前記複数の機能ブロックは、ブリッジ処理部、L2TP処理部、及びIPsec処理部であるネットワーク装置。
【請求項2】
前記パケット送信部は、前記複数の機能ブロックそれぞれにおいて前記低速転送処理又は前記高速転送処理が実行された前記パケットを送信する、請求項1に記載のネットワーク装置。
【請求項3】
前記低速転送処理部は、低速メモリから所定データを読み出し、当該読み出した所定データに基づいて、前記低速転送処理を実行し、
前記高速転送処理部は、高速メモリである前記キャッシュ記憶部から前記パケットの一部が一致するキャッシュを読み出し、当該読み出したキャッシュに基づいて前記高速転送処理を実行する請求項1又は2に記載のネットワーク装置。
【請求項4】
前記パケットの一部は、当該パケットのヘッダの一部である請求項1から3のいずれか1項に記載のネットワーク装置。
【請求項5】
パケット受信部と、パケット送信部と、前記パケット受信部と前記パケット送信部との間に直列に配置され、前記パケット受信部が受信したパケットが順次転送される複数の機能ブロックと、キャッシュ記憶部と、を備えたネットワーク装置におけるパケット処理方法であって、
前記キャッシュ記憶部は、前記機能ブロックごとに設けられ、
前記複数の機能ブロックそれぞれにおいて、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されていない場合、前記パケットに対して低速転送処理を実行する低速転送処理ステップと、
前記パケットの一部と前記低速転送処理の結果とを対応づけたキャッシュを生成して対応する前記キャッシュ記憶部に記憶するキャッシュ生成ステップと、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されている場合、前記パケットに対して高速転送処理を実行する高速処理ステップと、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されているか否かを確認するキャッシュ確認ステップと、を備え
、前記複数の機能ブロックは、ブリッジ処理部、L2TP処理部、及びIPsec処理部であるパケット処理方法。
【請求項6】
パケット受信部と、パケット送信部と、前記パケット受信部と前記パケット送信部との間に直列に配置され、前記パケット受信部が受信したパケットが順次転送される複数の機能ブロックと、キャッシュ記憶部と、を備え、前記キャッシュ記憶部は、前記機能ブロックごとに設けられたネットワーク装置に、
前記複数の機能ブロックそれぞれにおいて、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されていない場合、前記パケットに対して低速転送処理を実行する低速転送処理ステップと、
前記パケットの一部と前記低速転送処理の結果とを対応づけたキャッシュを生成して対応する前記キャッシュ記憶部に記憶するキャッシュ生成ステップと、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されている場合、前記パケットに対して高速転送処理を実行する高速転送処理ステップと、
前記パケットの一部が一致するキャッシュが対応する前記キャッシュ記憶部に記憶されているか否かを確認するキャッシュ確認ステップと、を実行させるためのプログラム
であって、前記複数の機能ブロックは、ブリッジ処理部、L2TP処理部、及びIPsec処理部であるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク装置、パケット処理方法、及びプログラムに関する。
【背景技術】
【0002】
転送対象のパケットに対してキャッシュを作成し、次回の転送時からそのキャッシュに一致したパケットに対して高速転送処理を行うネットワーク装置が知られている(例えば、特許文献1参照)。
【0003】
これに対して、本発明者は、パケットに対する処理を行う機能ブロック単位でパケットの転送処理の高速化を実現することを検討した。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1においては、パケットに対する処理を行う機能ブロック単位でパケットの転送処理の高速化を実現することについては全く提案されていない。
【0006】
本発明の目的は、上述した課題を鑑み、パケットに対する処理を行う機能ブロック単位でパケットの転送処理の高速化を実現することができるネットワーク装置、パケット処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明のネットワーク装置は、パケット受信部と、パケット送信部と、前記パケット受信部と前記パケット送信部との間に直列に配置され、前記パケット受信部が受信したパケットが順次転送される複数の機能ブロックと、キャッシュ記憶部と、を備え、前記複数の機能ブロックは、それぞれ、前記パケットの一部が一致するキャッシュが前記キャッシュ記憶部に記憶されていない場合、前記パケットに対して低速転送処理を実行する低速転送処理部と、前記パケットの一部と前記低速転送処理の結果とを対応づけたキャッシュを生成して前記キャッシュ記憶部に記憶するキャッシュ生成部と、前記パケットの一部が一致するキャッシュが前記キャッシュ記憶部に記憶されている場合、前記パケットに対して高速転送処理を実行する高速転送処理部と、を備える。
【0008】
本発明のパケット処理方法は、パケット受信部と、パケット送信部と、前記パケット受信部と前記パケット送信部との間に直列に配置され、前記パケット受信部が受信したパケットが順次転送される複数の機能ブロックと、キャッシュ記憶部と、を備えたネットワーク装置におけるパケット処理方法であって、前記複数の機能ブロックそれぞれにおいて、前記パケットの一部が一致するキャッシュが前記キャッシュ記憶部に記憶されていない場合、前記パケットに対して低速転送処理を実行する低速転送処理ステップと、前記パケットの一部と前記低速転送処理の結果とを対応づけたキャッシュを生成して前記キャッシュ記憶部に記憶するキャッシュ生成ステップと、前記パケットの一部が一致するキャッシュが前記キャッシュ記憶部に記憶されている場合、前記パケットに対して高速転送処理を実行する高速処理ステップと、を備える。
【0009】
本発明のプログラムは、パケット受信部と、パケット送信部と、前記パケット受信部と前記パケット送信部との間に直列に配置され、前記パケット受信部が受信したパケットが順次転送される複数の機能ブロックと、キャッシュ記憶部と、を備えたネットワーク装置に、前記複数の機能ブロックそれぞれにおいて、前記パケットの一部が一致するキャッシュが前記キャッシュ記憶部に記憶されていない場合、前記パケットに対して低速転送処理を実行する低速転送処理ステップと、前記パケットの一部と前記低速転送処理の結果とを対応づけたキャッシュを生成して前記キャッシュ記憶部に記憶するキャッシュ生成ステップと、前記パケットの一部が一致するキャッシュが前記キャッシュ記憶部に記憶されている場合、前記パケットに対して高速転送処理を実行する高速転送処理ステップと、を実行させるためのプログラムである。
【発明の効果】
【0010】
本発明により、パケットに対する処理を行う機能ブロック単位でパケットの転送処理の高速化を実現することができるネットワーク装置、パケット処理方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態1のネットワーク装置1の概略構成図である。
【
図2】実施形態2のネットワーク装置1の概略構成図である。
【
図3】(a)キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されるキャッシュの一例、(b)キャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されるキャッシュの一例、(c)キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されるキャッシュの一例である。
【
図4】L2TP処理部41の機能ブロック図である。
【
図5】IPsec処理部42の機能ブロック図である。
【
図6】ネットワーク装置1A(ブリッジ処理部40)の動作例のシーケンス図である。
【
図7】L2TP処理部41の動作例のシーケンス図である。
【
図8】IPsec処理部42の動作例のシーケンス図である。
【
図9】ネットワーク装置1(変形例)の概略構成図である。
【
図10】ネットワーク装置1A(ブリッジ処理部40)の動作例のフローチャートである。
【発明を実施するための形態】
【0012】
(実施形態1)
以下、本発明の実施形態1であるネットワーク装置1について添付図面を参照しながら説明する。各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
【0013】
まず、
図1を用いて、ネットワーク装置1の構成について説明する。
【0014】
図1は、実施形態1のネットワーク装置1の概略構成図である。
【0015】
図1に示すように、ネットワーク装置1は、パケット受信部10、パケット送信部20、パケット受信部10とパケット送信部20との間に直列に配置され、パケット受信部10が受信したパケットが順次転送される複数の機能ブロックA、B、C、キャッシュ記憶部30を備えている。
【0016】
機能ブロックAは、パケットの一部が一致するキャッシュがキャッシュ記憶部30に記憶されていない場合、パケットに対して低速転送処理を実行する低速転送処理部40b1、パケットの一部と低速転送処理の結果とを対応づけたキャッシュを生成してキャッシュ記憶部30に記憶するキャッシュ生成部40c、パケットの一部が一致するキャッシュがキャッシュ記憶部30に記憶されている場合、パケットに対して高速転送処理を実行する高速転送処理部40b2を備えている。図示しないが、同様に、機能ブロックB、Cも、低速転送処理部、キャッシュ生成部、高速転送処理部を備えている。
【0017】
以上説明したように、実施形態1によれば、パケットに対する処理を行う機能ブロック単位でパケットの転送処理の高速化を実現することができる。
【0018】
これは、機能ブロックA、B、Cが、それぞれ、低速転送処理部と、高速転送処理部と、キャッシュ生成部と、を備えることによるものである。
【0019】
(実施形態2)
以下、本発明の実施形態2として、ネットワーク装置1についてさらに詳細に説明する。以下、ネットワーク装置1がルータである例について説明する。
【0020】
図2は、実施形態2のネットワーク装置1の概略構成図である。
【0021】
図2に示すように、ネットワーク装置1は、パケット受信部10、パケット送信部20、機能ブロックA、B、C、キャッシュ記憶部30を備えている。以下、機能ブロックAがブリッジ処理部40、機能ブロックBがL2TP(Layer 2 Tunneling Protocol)処理部41、機能ブロックCがIPsec(Security Architecture for Internet Protocol)処理部42である例について説明する。
【0022】
パケット受信部10は、ネットワーク(例えば、インターネット。図示せず)に接続されており、パケットを受信する。パケットは、送信元端末及び宛先端末がネットワーク装置1以外のIPパケットである。図示しないが、送信元端末及び宛先端末はネットワークに接続されている。
【0023】
パケット送信部20は、ネットワーク(例えば、インターネット)に接続されており、各機能ブロックで処理されたパケットをネットワークに送出する。
【0024】
キャッシュ記憶部30(高速メモリ)は、ブリッジ処理部用キャッシュ記憶部31、L2TP処理部用キャッシュ記憶部32、IPsec処理部用キャッシュ記憶部33を備えている。すなわち、キャッシュ記憶部30は、機能ブロックごとに設けられている。これにより、各キャッシュ記憶部31~33へのアクセス時間が短縮される。
【0025】
ブリッジ処理部40、L2TP処理部41、IPsec処理部42は、パケット受信部10とパケット送信部20との間に直列に配置されている。パケット受信部10が受信したパケットは、ブリッジ処理部40、L2TP処理部41、IPsec処理部42の順に順次転送され、最終的にパケット送信部20に転送される。
【0026】
図示しないが、ネットワーク装置1は、CPU(Central Processing Unit)、RAM(Random access memory)、ROM(Read only memory)等を備えている。CPUは、ROM等の記憶部からRAM等のメモリ(低速メモリ)に読み込まれた所定プログラムを実行することで、ブリッジ処理部40、L2TP処理部41、IPsec処理部42として機能する。これらの一部又は全部は、ハードウェアで実現してもよい。
【0027】
図2に示すように、ブリッジ処理部40は、キャッシュ確認部40a、転送処理部40b(低速転送処理部40b1、高速転送処理部40b2)、キャッシュ生成部40cを備えている。
【0028】
キャッシュ確認部40aは、パケット受信部10から転送されたパケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているか否かを確認する(全検索)。その結果、該当キャッシュがキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されていない場合、キャッシュ確認部40aは、パケットを低速転送処理部40b1に送信する。一方、該当キャッシュがキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されている場合、キャッシュ確認部40aは、パケットを高速転送処理部40b2に送信する。
【0029】
低速転送処理部40b1は、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データに基づいて、低速転送処理を実行する。具体的には、低速転送処理部40b1は、アドレステーブル(MACアドレスとポートとを対応づけたテーブル)が記憶されたRAM等の記憶部(低速メモリ)から所定データ(パケットを送出するポート)を読み出し、当該読み出したポートからパケットを送出(ブリッジ転送)する処理を実行する。
【0030】
高速転送処理部40b2は、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュに基づいて高速転送処理を実行する。具体的には、高速転送処理部40b2は、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュ(ブリッジ処理情報)により特定されるポートからパケットを送出(ブリッジ転送)する処理を実行する。
【0031】
キャッシュ生成部40cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部40b1による低速転送処理の結果(低速転送処理部40b1により読み出されたポート)とを対応づけたキャッシュ(高速転送用キャッシュ)を生成してキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶する。
【0032】
図3(a)は、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されるキャッシュの一例である。
【0033】
図3(a)に示すように、ブリッジ処理部用キャッシュ記憶部31に記憶されるキャッシュは、転送形式、パケット種別、送信元パケット情報、送信先情報、ブリッジ処理情報を項目として含む。
【0034】
転送形式には、ルーティング、ブリッジ等の転送形式が記憶される。
【0035】
パケット種別には、ルーティングキャッシュ、ブリッジキャッシュ等のパケット種別が記憶される。
【0036】
送信元パケット情報には、送信元MACアドレスや送信元IPアドレスが記憶される。
【0037】
送信先情報には、宛先IPアドレスが記憶される。
【0038】
ブリッジ処理情報には、低速転送処理部40b1により読み出されたポートが記憶される。
【0039】
図4は、L2TP処理部41の機能ブロック図である。
【0040】
図4に示すように、L2TP処理部41は、キャッシュ確認部41a、転送処理部41b(低速転送処理部41b1、高速転送処理部41b2)、キャッシュ生成部41cを備えている。
【0041】
キャッシュ確認部41aは、ブリッジ処理部40から転送されたパケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されているか否かを確認する(全検索)。その結果、該当キャッシュがキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されていない場合、キャッシュ確認部41aは、パケットを低速転送処理部41b1に送信する。一方、該当キャッシュがキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されている場合、キャッシュ確認部41aは、パケットを高速転送処理部41b2に送信する。
【0042】
低速転送処理部41b1は、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データに基づいて、低速転送処理を実行する。具体的には、低速転送処理部40b1は、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データをパケットにL2TPヘッダとして付加(カプセル化)し、当該L2TPヘッダを付加したパケットを転送する処理を実行する。
【0043】
高速転送処理部41b2は、キャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュに基づいて高速転送処理を実行する。具体的には、高速転送処理部41b2は、キャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュ(L2TPv3処理情報)をパケットにL2TPヘッダとして付加(カプセル化)し、当該L2TPヘッダを付加したパケットを転送する処理を実行する。
【0044】
キャッシュ生成部41cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部41b1による低速転送処理の結果(低速転送処理部41b1により読み出された所定データ(L2TPヘッダ))とを対応づけたキャッシュ(高速転送用キャッシュ)を生成してキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶する。
【0045】
図3(b)は、キャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されるキャッシュの一例である。
【0046】
図3(b)に示すように、L2TP処理部用キャッシュ記憶部32に記憶されるキャッシュは、転送形式、パケット種別、送信元パケット情報、送信先情報、L2TPv3処理情報を項目として含む。
【0047】
転送形式には、ルーティング、ブリッジ等の転送形式が記憶される。
【0048】
パケット種別には、ルーティングキャッシュ、ブリッジキャッシュ等のパケット種別が記憶される。
【0049】
送信元パケット情報には、送信元MACアドレスや送信元IPアドレスが記憶される。
【0050】
送信先情報には、宛先IPアドレスが記憶される。
【0051】
L2TPv3処理情報には、低速転送処理部41b1により読み出された所定データ(L2TPヘッダ)が記憶される。
【0052】
図5は、IPsec処理部42の機能ブロック図である。
【0053】
図5に示すように、IPsec処理部42は、キャッシュ確認部42a、転送処理部42b(低速転送処理部42b1、高速転送処理部42b2)、キャッシュ生成部42cを備えている。
【0054】
キャッシュ確認部42aは、L2TP処理部41から転送されたパケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されているか否かを確認する。その結果、該当キャッシュがキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されていない場合、キャッシュ確認部42aは、パケットを低速転送処理部42b1に送信する。一方、該当キャッシュがキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されている場合、キャッシュ確認部42aは、パケットを高速転送処理部42b2に送信する。
【0055】
低速転送処理部42b1は、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データに基づいて、低速転送処理を実行する。具体的には、低速転送処理部42b1は、パケットを暗号化すると共に、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データをパケットにヘッダとして付加(カプセル化)し、当該ヘッダを付加したパケットを転送する処理を実行する。
【0056】
高速転送処理部42b2は、キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュに基づいて高速転送処理を実行する。具体的には、高速転送処理部40b2は、パケットを暗号化すると共に、キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュ(IPsec処理情報)をパケットにヘッダとして付加(カプセル化)し、当該ヘッダを付加したパケットを転送する処理を実行する。
【0057】
キャッシュ生成部42cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部42b1による低速転送処理の結果(低速転送処理部42b1により読み出された所定データ(ヘッダ))とを対応づけたキャッシュ(高速転送用キャッシュ)を生成してキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶する。
【0058】
図3(c)は、キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されるキャッシュの一例である。
【0059】
図3(c)に示すように、IPsec処理部用キャッシュ記憶部33に記憶されるキャッシュは、転送形式、パケット種別、送信元パケット情報、送信先情報、IPsec処理情報を項目として含む。
【0060】
転送形式には、ルーティング、ブリッジ等の転送形式が記憶される。
【0061】
パケット種別には、ルーティングキャッシュ、ブリッジキャッシュ等のパケット種別が記憶される。
【0062】
送信元パケット情報には、送信元MACアドレスや送信元IPアドレスが記憶される。
【0063】
送信先情報には、宛先IPアドレスが記憶される。
【0064】
IPsec処理情報には、低速転送処理部42b1により読み出された所定データ(ヘッダ)が記憶される。
【0065】
次に、上記構成のネットワーク装置1の動作例について説明する。
【0066】
図6~
図8は、ネットワーク装置1の動作例のシーケンス図である。以下、L2TP over IPsecで上り通信を行う場合の動作例について説明する。以下、キャッシュ記憶部30にキャッシュが記憶されていない状態で1つめのパケットを受信した場合の動作例について説明する。
<ブリッジ処理部40(主に、低速転送処理部40b1)の動作例>
図6は、ブリッジ処理部40の動作例のシーケンス図である。
【0067】
図6に示すように、パケット受信部10は、ネットワーク装置1外部から送信される(ステップS10)パケットを受信すると(ステップS11)、この受信したパケットをブリッジ処理部40に転送する(ステップS12)。
【0068】
次に、キャッシュ確認部40aは、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)にアクセスし(ステップS13)、パケット受信部10から転送されたパケットの一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているか否かを確認する(全検索)(ステップS14)。
【0069】
ここでは、該当キャッシュがキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されていないため(ステップS14:NO)、キャッシュ確認部40aは、パケット受信部10から転送されたパケットを低速転送処理部40b1に送信する(ステップS15)。
【0070】
次に、低速転送処理部40b1は、パケットに対して低速転送処理、すなわち、アドレステーブル(MACアドレスとポートとを対応づけたテーブル)が記憶されたRAM等の記憶部(低速メモリ)から所定データ(パケットを送出するポート)を読み出し(送信ポートを決定し(ステップS16))、当該読み出したポート(当該決定した送信ポート)からパケットを送出(ブリッジ転送)する処理を実行する(ステップS17)。
【0071】
次に、キャッシュ生成部40cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部40b1による低速転送処理の結果(低速転送処理部40b1により読み出されたポート)とを対応づけたキャッシュ(
図3(a)参照)を生成してキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶する(ステップS18)。また、キャッシュ生成部40cは、パケットをL2TP処理部41に転送する(ステップS19)。
<L2TP処理部41(主に、低速転送処理部41b1)の動作例>
図7は、L2TP処理部41の動作例のシーケンス図である。
【0072】
図7に示すように、キャッシュ確認部41aは、キャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)にアクセスし(ステップS20)、ブリッジ処理部40から転送されたパケットの一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されているか否かを確認する(全検索)(ステップS21)。
【0073】
ここでは、該当キャッシュがキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されていないため(ステップS21:NO)、キャッシュ確認部41aは、ブリッジ処理部40から転送されたパケットを低速転送処理部41b1に送信する(ステップS22)。
【0074】
次に、低速転送処理部41b1は、パケットに対して低速転送処理、すなわち、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データをパケットにL2TPヘッダとして付加(カプセル化)し(ステップS23)、当該L2TPヘッダを付加したパケットを転送する処理を実行する(ステップS24)。
【0075】
次に、キャッシュ生成部41cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部41b1による低速転送処理の結果(低速転送処理部41b1により読み出された所定データ(L2TPヘッダ))とを対応づけたキャッシュ(
図3(b)参照)を生成してキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶する(ステップS25)。また、キャッシュ生成部41cは、パケットをIPsec処理部42に転送する(ステップS26)。
<IPsec処理部42(主に、低速転送処理部42b1)の動作例>
図8は、IPsec処理部42の動作例のシーケンス図である。
【0076】
図8に示すように、キャッシュ確認部42aは、キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)にアクセスし(ステップS27)、L2TP処理部41から転送されたパケットの一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されているか否かを確認する(全検索)(ステップS28)。
【0077】
ここでは、該当キャッシュがキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されていないため(ステップS28:NO)、キャッシュ確認部42aは、L2TP処理部41から転送されたパケットを低速転送処理部42b1に送信する(ステップS29)。
【0078】
次に、低速転送処理部42b1は、パケットに対して低速転送処理、すなわち、パケットを暗号化すると共に、RAM等の記憶部(低速メモリ)から所定データを読み出し、当該読み出した所定データをパケットにヘッダとして付加(カプセル化)し(ステップS30)、当該ヘッダを付加したパケットを転送する処理を実行する(ステップS31)。
【0079】
次に、キャッシュ生成部42cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部42b1による低速転送処理の結果(低速転送処理部42b1により読み出された所定データ(ヘッダ))とを対応づけたキャッシュ(
図3(c)参照)を生成してキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶する(ステップS32)。また、キャッシュ生成部42cは、パケットをパケット送信部20に転送する(ステップS33)。
【0080】
次に、パケット送信部20は、IPsec処理部42から転送されたパケットをネットワークに送出する(ステップS34)。
【0081】
以上のように、キャッシュ記憶部30にキャッシュが記憶されていない状態で1つめのパケットを受信した場合、当該1つめのパケットに対しては、各機能ブロックにおいて、低速転送処理部40b1、41b1、42b1による処理が実行されると共に、キャッシュ(
図3(a)~
図3(c)参照)が生成されてキャッシュ記憶部30に記憶される。
【0082】
次に、キャッシュ記憶部30にキャッシュ(
図3(a)~
図3(c)参照)が記憶されている状態で2つめ以降のパケット(1つめと同じパケット)を受信した場合の動作例について説明する。
<ブリッジ処理部40(主に、高速転送処理部40b2)の動作例>
図6に示すように、パケット受信部10は、ネットワーク装置1外部から送信される(ステップS10)パケットを受信すると(ステップS11)、この受信したパケットをブリッジ処理部40に転送する(ステップS12)。
【0083】
次に、キャッシュ確認部40aは、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)にアクセスし(ステップS13)、パケット受信部10から転送されたパケットの一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているか否かを確認する(全検索)(ステップS14)。
【0084】
ここでは、該当キャッシュがキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているため(ステップS14:YES)、キャッシュ確認部40aは、パケット受信部10から転送されたパケットを高速転送処理部40b2に送信する(ステップS40)。
【0085】
次に、高速転送処理部40b2は、パケットに対して高速転送処理、すなわち、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し(送信ポートを決定し(ステップS41))、当該読み出したキャッシュ(ブリッジ処理情報)により特定されるポート(当該決定した送信ポート)からパケットを送出(ブリッジ転送)する処理を実行する(ステップS42)。
<L2TP処理部41(主に、高速転送処理部41b2)の動作例>
図7に示すように、キャッシュ確認部41aは、キャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)にアクセスし(ステップS20)、ブリッジ処理部40から転送されたパケットの一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されているか否かを確認する(全検索)(ステップS21)。
【0086】
ここでは、該当キャッシュがキャッシュ記憶部30(L2TP処理部用キャッシュ記憶部32)に記憶されているため(ステップS21:YES)、キャッシュ確認部41aは、ブリッジ処理部40から転送されたパケットを高速転送処理部41b2に送信する(ステップS43)。
【0087】
次に、高速転送処理部41b2は、パケットに対して高速転送処理、すなわち、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュ(L2TPv3処理情報)をパケットにL2TPヘッダとして付加(カプセル化)し(ステップS44)、当該L2TPヘッダを付加したパケットを転送する処理を実行する(ステップS45)。
<IPsec処理部42(主に、高速転送処理部42b2)の動作例>
図8に示すように、キャッシュ確認部42aは、キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)にアクセスし(ステップS27)、L2TP処理部41から転送されたパケットの一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されているか否かを確認する(ステップS28)。
【0088】
ここでは、該当キャッシュがキャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)に記憶されているため(ステップS28:YES)、キャッシュ確認部42aは、L2TP処理部41から転送されたパケットを高速転送処理部42b2に送信する(ステップS46)。
【0089】
次に、高速転送処理部42b2は、パケットに対して高速転送処理、すなわち、パケットを暗号化すると共に、キャッシュ記憶部30(IPsec処理部用キャッシュ記憶部33)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し、当該読み出したキャッシュ(IPsec処理情報)をパケットにヘッダとして付加(カプセル化)し(ステップS47)、当該ヘッダを付加したパケットを転送する処理を実行する(ステップS48)。
【0090】
次に、パケット送信部20は、IPsec処理部42から転送されたパケットをネットワークに送出する(ステップS34)。
【0091】
以上のように、キャッシュ記憶部30にキャッシュが記憶されている状態で2つめ以降のパケットを受信した場合、当該2つめ以降のパケットに対しては、各機能ブロックにおいて、高速転送処理部40b2、41b2、42b2による処理が実行される。
【0092】
なお、2つめ以降のパケットに対しては、高速転送処理部による処理だけでなく、低速転送処理部による処理が実行される場合がある。例えば、何らかの原因(例えば、インタフェースのダウンやリンクダウン、コンフィグの変更)でキャッシュ記憶部30に記憶されているキャッシュの一部が消えた場合である。この場合、2つめ以降のパケットに対しては、キャッシュが消えず残っている機能ブロックにおいては、高速転送処理部による処理が実行され、キャッシュが消えて残っていない機能ブロックにおいては、低速転送処理部による処理が実行される。このように、キャッシュのある機能ブロックにおいては高速転送が実行され、キャッシュのない機能ブロックにおいては低速転送が実行される場合がある(高速転送処理と低速転送処理の混在)。
【0093】
次に、比較例について説明する。
【0094】
比較例のネットワーク装置(図示せず)においては、パケットに対して、1つのキャッシュ(高速転送用キャッシュ)を作成し、次回の転送時からそのキャッシュに一致したパケットに対して高速転送処理を行う。ソフトウェア転送処理の中で、パケットに対してどのような処理を行ったかを記録していき、その内容を送信時に記録作成したものが高速転送用キャッシュである。そのため、キャッシュには完全一致が求められており、ある一部分の処理のみ違うパケットや、処理が追加されているパケットに関しては、別のキャッシュで管理されてしまう。例えば、受信したL2SWのポート番号が違うパケットや、条件により優先制御処理が追加されたパケット等があげられる。
【0095】
なお、「完全一致」とは、転送形式(ルーティング、ブリッジ等)と、パケットを構成する要素(アドレスファミリ、プロトコル番号、IPアドレス等)と、処理結果(PPPOEセッションID、ToS値等)が、以前に送信したパケットと今回送信するパケットで完全一致することをいう。
【0096】
また、「ある一部分の処理のみ違うパケット」の具体例としては、例えば、ブリッジ処理部40においては出力先インタフェース(ポート)の違うパケット、L2TP処理部41においてはL2TPのヘッダー情報の違うパケット、IPsec処理部42においては異なる暗号化アルゴリズムで暗号化されたパケットがある。
【0097】
比較例のネットワーク装置においては、キャッシュを識別するための要素に完全一致しないパターンが多いトラフィックにおいては、必ず最初低速パスをまわることになり、ネットワーク装置に負荷がかかるという問題がある。また、高速に転送できないという問題もある。
【0098】
これに対して、実施形態2によれば、機能ブロックごとに分割された高速転送用キャッシュを用いてソフトウェア転送処理を高速化するため、比較例では高速化できなかった、キャッシュを識別するための要素に完全一致しないパターンが多いトラフィックに対応することができる。
【0099】
以上説明したように、実施形態2によれば、パケットに対する処理を行う機能ブロック単位でパケットの転送処理の高速化を実現することができる。
【0100】
これは、機能ブロックが、それぞれ、キャッシュ確認部と、低速転送処理部と、高速転送処理部と、キャッシュ生成部と、を備えることによるものである。
【0101】
また実施形態2によれば、類似するトラフィックパターンの通信において、通信性能を上げることができる。その理由は、パケットが一致している機能ブロックは積極的に高速転送が利用できるためである。
【0102】
また実施形態2によれば、類似するトラフィックパターンの通信において、装置負荷を下げることができる。その理由は、パケットが一致している機能ブロックは積極的に高速転送が利用でき、1パケットにかかる負荷を下げることができるためである。
【0103】
また実施形態2によれば、キャッシュの有効利用ができる。その理由は、機能ブロックごとにキャッシュを作成するので、機能の組み合わせが違い別のキャッシュになるということがないためである。
【0104】
また実施形態2によれば、
図3に示すように、機能ブロックごとにキャッシュが作成される。L2TP over IPsecのキャッシュを持つとき、IPsecトンネルにL2TPv3と別のセグメントのネットワークが入る場合で、IPsecのキャッシュ(
図3(c)参照)を使用して、IPsec単体の通信も高速化することができる。この機能は、L2TPやIPsec以外の他の機能にも同様に実施することができる。これにより、ネットワーク装置1の負荷をなるべくかけず、転送を行うことができる。
【0105】
次に、変形例について説明する。
【0106】
図9は、ネットワーク装置1A(変形例)の概略構成図である。
【0107】
図9に示すように、本変形例のネットワーク装置1Aは、
図2に示す実施形態2のネットワーク装置1に対してIPホスト部15が追加されている。それ以外、実施形態2のネットワーク装置1と同様の構成である。
<ブリッジ処理部40(主に、低速転送処理部40b1)の動作例>
図10は、ネットワーク装置1A(ブリッジ処理部40)の動作例のフローチャートである。以下、キャッシュ記憶部30にキャッシュが記憶されていない状態で1つめのパケット(自終端パケット)を受信した場合の動作例について説明する。なお、自終端パケットとは、宛先端末がネットワーク装置1AであるIPパケットをいう。
【0108】
図10に示すように、パケット受信部10は、ネットワーク装置1A外部から送信される(ステップS80)パケット(自終端パケット)を受信すると(ステップS81)、この受信したパケットをブリッジ処理部40に転送する(ステップS82)。
【0109】
次に、キャッシュ確認部40aは、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)にアクセスし(ステップS83)、パケット受信部10から転送されたパケット(自終端パケット)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているか否かを確認する(全検索)(ステップS84)。
【0110】
ここでは、該当キャッシュがキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されていないため(ステップS84:NO)、キャッシュ確認部40aは、パケット受信部10から転送されたパケット(自終端パケット)を低速転送処理部40b1に送信する(ステップS85)。
【0111】
次に、低速転送処理部40b1は、パケットに対して低速転送処理、すなわち、アドレステーブル(MACアドレスとポートとを対応づけたテーブル)が記憶されたRAM等の記憶部(低速メモリ)から所定データ(パケットを送出するポート)を読み出し(送信ポートを決定し(ステップS86))、当該読み出したポート(当該決定した送信ポート)からパケットを送出(ブリッジ転送)する処理を実行する(ステップS87)。
【0112】
次に、キャッシュ生成部40cは、パケット(例えば、ヘッダ)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)と低速転送処理部40b1による低速転送処理の結果(低速転送処理部40b1により読み出されたポート)とを対応づけたキャッシュ(
図3(a)参照)を生成してキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶する(ステップS88)。また、キャッシュ生成部40cは、パケットをIPホスト部15に転送する(ステップS89)。
【0113】
次に、キャッシュ記憶部30にキャッシュ(
図3参照)が記憶されている状態で2つめ以降のパケット(1つめと同じ自終端パケット)を受信した場合の動作例について説明する。
<ブリッジ処理部40(主に、高速転送処理部40b2)の動作例>
図10に示すように、パケット受信部10は、ネットワーク装置1A外部から送信される(ステップS80)パケット(自終端パケット)を受信すると(ステップS81)、この受信したパケットをブリッジ処理部40に転送する(ステップS82)。
【0114】
次に、キャッシュ確認部40aは、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)にアクセスし(ステップS83)、パケット受信部10から転送されたパケット(自終端パケット)の一部(アドレスファミリ、プロトコル番号、IPアドレス等)が一致するキャッシュ(以下、該当キャッシュと呼ぶ)がキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているか否かを確認する(全検索)(ステップS84)。
【0115】
ここでは、該当キャッシュがキャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)に記憶されているため(ステップS84:YES)、キャッシュ確認部40aは、パケット受信部10から転送されたパケット(自終端パケット)を高速転送処理部40b2に送信する(ステップS90)。
【0116】
次に、高速転送処理部40b2は、パケットに対して高速転送処理、すなわち、キャッシュ記憶部30(ブリッジ処理部用キャッシュ記憶部31)からパケット(例えば、ヘッダ)の一部が一致するキャッシュを読み出し(送信ポートを決定し(ステップS90))、当該読み出したキャッシュ(ブリッジ処理情報)により特定されるポート(当該決定した送信ポート)からパケットを送出(ブリッジ転送)する処理を実行する。これにより、自終端パケットは最終的にIPホスト部15に転送される(ステップS91)。
【0117】
以上のように、機能ブロックが、それぞれ、キャッシュ確認部と、低速転送処理部と、高速転送処理部と、キャッシュ生成部と、を備えるため、ネットワーク装置1A内で終端するパケットや、ネットワーク装置1A内で生成する自発パケット対しても本発明のネットワーク装置1、1Aを適用することができる。
【0118】
また、上記実施形態では、複数の機能ブロックとして、ブリッジ処理部40、L2TP処理部41、IPsec処理部42を用いた例について説明したが、これに限らない。これら以外の各種の機能ブロック(例えば、QoSの優先制御処理を実行する機能ブロック)を用いてもよい。
【0119】
例えば、ある一部分の処理のみ違うパケット、例えば、別のポートVLANを使用しているが、QoS処理は同じ結果となるパケットを想定する。このパケットが2つ存在し、1つめのパケットが低速転送されたとすると、2つめのパケットは、1つめのパケットに対して、別のポートVLANを使用しているので、VLANの処理については、1つめとは別の処理が行われ、低速に転送される。それに対して、QoSの処理部分に関しては、処理結果が同じになるため、キャッシュも同一キャッシュとなり、キャッシュにヒットするため、高速に転送することができる。
【0120】
また、上記実施形態では、複数の機能ブロックとして、3つの機能ブロック(ブリッジ処理部40、L2TP処理部41、IPsec処理部42)を用いた例について説明したが、これに限らない。すなわち、機能ブロックの数は3つに限らず、2つ又は4つ以上であってもよい。
【0121】
上記実施形態1、2において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0122】
上記実施形態で示した数値は全て例示であり、これと異なる適宜の数値を用いることができるのは無論である。
【0123】
上記実施形態はあらゆる点で単なる例示にすぎない。上記実施形態の記載によって本発明は限定的に解釈されるものではない。本発明はその精神または主要な特徴から逸脱することなく他の様々な形で実施することができる。
【符号の説明】
【0124】
1、1A…ネットワーク装置
10…パケット受信部
15…IPホスト部
20…パケット送信部
30…キャッシュ記憶部
31…ブリッジ処理部用キャッシュ記憶部
32…L2TP処理部用キャッシュ記憶部
33…IPsec処理部用キャッシュ記憶部
40…ブリッジ処理部
40a…キャッシュ確認部
40b…転送処理部
40b1…低速転送処理部
40b2…高速転送処理部
40c…キャッシュ生成部
41…L2TP処理部
41a…キャッシュ確認部
41b…転送処理部
41b1…低速転送処理部
41b2…高速転送処理部
41c…キャッシュ生成部
42…IPsec処理部
42a…キャッシュ確認部
42b…転送処理部
42b1…低速転送処理部
42b2…高速転送処理部
42c…キャッシュ生成部
A-C…機能ブロック