以下に、本発明にかかるネットワーク中継装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1〜図8を参照してこの発明の実施の形態1を説明する。図1は、この発明における実施の形態1のネットワーク中継装置が適用される通信システムの構成の一例を示す図である。図1において、通信システムは、ネットワーク中継装置であるロードバランサー1と、複数(この場合は3台)のサーバ41a〜41cを有するwebサーバ群4と、インターネットなどのネットワーク3と、複数(この場合は2台)の通信端末2a,2bとを備えている。
ロードバランサー1は、リンク5aによってネットワーク3に接続されるとともに、リンク5b〜5dによってサーバ41a〜41cと接続され、通信端末2a,2bは、リンク5e,5fによってネットワーク3に接続されており、通信端末2a,2bとサーバ41a〜41cとは、リンク5(5a〜5fを示す)、ネットワーク3、およびロードバランサー1を介して相互通信を実現している。
図2は、図1に示した通信システムで用いるレイヤ2フレームであるMAC(Media Access Control)フレームのフォーマットを示す図である。図2において、MACフレームは、宛先MACアドレスや送信元MACアドレス、フレーム長やタイプなどの情報が設定されるMACヘッダ61と、IP(Internet Protocol)などのネットワーク層(レイヤ3)における宛先IPアドレスや送信元IPアドレス、プロトコルなどの情報が設定されるレイヤ3ヘッダ62と、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)などのトランスポート層(レイヤ4)における宛先ポート番号や送信元ポート番号などの情報が設定されるレイヤ4ヘッダ63と、SIP(Session Initiation Protocol)やHTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)などセッション層(レイヤ5)における各プロトコルで定められた情報が設定されるレイヤ5ヘッダ64と、データ65と、フレーム転送中においてフレームが壊れていないかを判定するために使われるFCS(Frame Check Sequence)66とで構成される。なお、データ65内には、さらにレイヤ6ヘッダやレイヤ7ヘッダとユーザデータとが含まれている。
図3は、図2に示したレイヤ3ヘッダ62のフォーマットの一例を示す図である。図3に示したレイヤ3ヘッダ62は、IPv4ヘッダであり、IPプロトコルのバージョンを示す4ビットのバージョン(Ver)と、IPヘッダフィールドの大きさを示す4ビットインターネットヘッダ長(IHL)と、IPデータグラムが要求するサービス品質を示す1バイトのサービスタイプ(TOS)と、IPヘッダおよびIPデータの長さを示す2バイトのトータル長(Total Length)と、上位層から各IPデータを識別するための2バイトの識別子(Identification)と、IPデータの分割に関する情報を示す3ビットのフラグ(Flag)と、各フラグメントのオリジナルデータにおける位置を示す13ビットのフラグメント・オフセット(Flagment Offset)と、通過可能なルータの残り数を示す1バイトの生存時間(TTL)と、IPデータに含むIPの上位プロトコルを識別するためのプロトコル種別コードを示す1バイトのプロトコルタイプ(Protocol)と、IPヘッダにおけるエラー検出のための2バイトのヘッダ・チェックサム(Header Checksum)と、送信元のIPアドレスを示す4バイトの送信元IPアドレス(Source Address)と、宛先のIPアドレスを示す4バイトの宛先IPアドレス(Destination Address)と、IPデータグラム伝送時にルータなどに依頼する処理を指定するオプション(Option)と、オプション・フィールドを使用した場合のビット調整のデータが設定されるパディング(Padding)とで構成される。
図4および図5は、先の図2に示したレイヤ4ヘッダ63のフォーマットの一例を示す図である。図4に示したレイヤ4ヘッダ63は、TCPヘッダであり、TCPを使用するアプリケーションに対する宛先ポート番号を示す2バイトの宛先ポート番号(Source Port)と、TCPを使用するアプリケーションに対する送信元ポート番号を示す2バイトの送信元ポート番号(Destination Port)と、送信データ・ストリーム中のデータセグメントのバイト位置を示す4バイトのシーケンス番号(Sequence Number)と、受信した最上位のバイトの次のバイト位置を示す4バイトの確認応答番号(Acknowledgment Number)と、セグメント内でのデータの開始位置を示す4ビットのオフセット(Offset)と、固定値「0」が設定される6ビットの予約(Reserved)と、セグメントのタイプを示す6ビットのコード・ビット(Code Bit)と、セグメント転送中の送受信バッファサイズの指定を示す2バイトのウィンドウ(Window Size)と、TCPヘッダにおけるセグメントのエラー検出のための2バイトのチェックサム(Checksum)と、緊急データのストリーム上の終了バイト位置を示す2バイトのアージェント・ポインタ(Urgent Pointer)と、最大セグメント長などを示す(Option)と、ビット調整のデータが設定されるパディング(Padding)とで構成される。
図5に示したレイヤ4ヘッダ63は、UDPヘッダであり、UDPを使用するアプリケーションに対する宛先ポート番号を示す2バイトの宛先ポート番号(Source Port)と、UDPを使用するアプリケーションに対する送信元ポート番号を示す2バイトの送信元ポート番号(Destination Port)と、データ長を示す2バイトのデータ長(Length)と、UCPヘッダにおけるデータのエラー検出のための2バイトのチェックサム(Checksum)とで構成される。
図6は、図2に示したレイヤ5ヘッダ64のフォーマットの一例を示す図である。図6に示したレイヤ5ヘッダ64はSIPヘッダの一例である。図6において、SIPヘッダは、SIPクライアントからユーザまたはサービスに対するコールセッションへの参加要求を出力させるINVITEと、要求によって取られるパスを示すVia:と、要求メッセージの転送の残り回数を示すMax−Forwards:と、要求の受信者を識別するための情報を示すTo:と、要求の発信者を識別するための情報を示すFrom:と、特定のクライアントに関する特定のインビテーションまたは全ての登録を一意に認識させるCall−ID:と、セッション開始から1ずつインクリメントされる連続番号(セッション開始時は1)と、メソッドが登録されるCSeq:と、以後のリクエストの送信先を示すContact:と、メッセージの本体のメディア・タイプを示すContent−Type:と、メッセージの本体のサイズを示すContent−Length:とで構成される。
図1に戻って、ロードバランサー1は、リンク5を介して受信したMACフレーム(図2参照)内の転送先識別情報(レイヤ3ヘッダ内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)、およびレイヤ5ヘッダ64、データ65からMACフレームの転送に必要な情報を抽出し、抽出した情報に基づいて受信したMACフレームを送信する。
図7は、ロードバランサー1の構成を示すブロック図である。図7において、ロードバランサー1は、複数(この場合は2つ)の送受信ユニット11−1,11−2と、転送ユニット12−1,12−2と、ヘッダ抽出ユニット13とを備えている。
送受信ユニット11−1,11−2は、リンク5のインタフェース機能を備えており、通信端末2a,2b、またはサーバ41a〜41cからのMACフレームを受信すると、受信したMACフレームを転送ユニット12−1,12−2に出力する。また、送受信ユニット11−1,11−2は、転送ユニット12−1,12−2から入力される通信端末2a,2bまたはサーバ41a〜41cへのMACフレームをリンク5に送信する。
転送ユニット12−1,12−2は、送受信ユニット11−1,11−2から入力されるMACフレームのレイヤ5ヘッダ64、およびデータ65、すなわちMACフレームからMACヘッダ61、レイヤ3ヘッダ62、レイヤ4ヘッダ63、およびFCS66を除いたフレームデータをヘッダ抽出ユニット13に出力する。また、MACフレームの転送先識別情報(レイヤ3ヘッダ内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)から転送処理に必要な情報を抽出する。具体的には、転送ユニット12−1,12−2は、レイヤ3ヘッダ62から宛先IPアドレス、送信元IPアドレス、およびプロトコルを抽出し、レイヤ4ヘッダ63から宛先ポート番号および送信元ポート番号を抽出する。
転送ユニット12−1,12−2は、抽出した宛先IPアドレス、送信元IPアドレス、プロトコル、宛先ポート番号、および送信元ポート番号と、ヘッダ抽出ユニット13からの検索結果と、予め定められているルーティング情報とに基づいて、MACフレームのルーティング判定処理を実行してMACフレームを送信する送受信ユニット11−1,11−2を選択する。転送ユニット12−1,12−2は、MACフレームを選択した送受信ユニット11−1,11−2に出力する。
ヘッダ抽出ユニット13は、転送ユニット12−1,12−2から入力されるフレームデータ内に、予め定め登録されているヘッダフィールドパターンと一致するパターンを検索する。ヘッダ抽出ユニット13は、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果として転送ユニット12−1,12−2に出力する。
図8は、ヘッダ抽出ユニット13の構成を示すブロック図である。図8において、ヘッダ抽出ユニット13は、入出力制御部131と、コピー部132(特許請求の範囲でいうところのフレーム複製部)と、n(1<n,nは自然数)個の検索部133−1〜133−nと、検索結果統合部134とを備えている。
入出力制御部131は、転送ユニット12−1,12−2から入力されるフレームデータを調停してコピー部132に出力するとともに、検索結果統合部134から出力される検索結果を転送ユニット12−1,12−2に出力する。
コピー部132は、入出力制御部131から出力されるデータフレームをn個(検索部133−1〜133−nの数だけ)コピーして、検索部133−1〜133−nにそれぞれ1つのデータフレームを出力する。また、コピー部132は、検索開始通知および検索終了通知を検索結果統合部134に出力する。
検索部133−1〜133−nには、予めそれぞれ異なるヘッダフィールドパターンが1つ登録されている。検索部133−1〜133−nは、コピー部132から入力されるフレームデータ内から自身に登録されているヘッダフィールドパターンを検索する。検索部133−1〜133−nは、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果統合部134に出力する。検索部133−1〜133−nは、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出することができなかった場合には、検索結果統合部134に対して何も出力を行なわない。
検索結果統合部134は、コピー部132から検索開始通知を受けてから検索終了通知を受けるまでの間に検索部133−1〜133−nから入力されるヘッダフィールドパターンとヘッダフィールド情報とを統合する。検索結果統合部134は、統合したヘッダフィールドパターンとヘッダフィールド情報とを検索結果として入出力制御部131に出力する。
つぎに、図1〜図8を参照して、この実施の形態1のロードバランサー1の動作について説明する。送受信ユニット11−1,11−2は、リンク5を介して通信端末2a,2b、またはサーバ41a〜41cが送信したMACフレームを受信する。送受信ユニット11−1,11−2は、受信したMACフレームを転送ユニット12−1,12−2に出力する。
転送ユニット12−1,12−2は、送受信ユニット11−1,11−2から入力されたMACフレームのフレームデータを入出力制御部131に出力する。入出力制御部131は、転送ユニット12−1,12−2から入力されるフレームデータを調停してコピー部132に出力する。
コピー部132は、入出力制御部131から入力されたフレームデータをn個コピーする。コピー部132は、コピーしたフレームデータを検索部133−1〜133−nに1つずつ出力するとともに、検索開始通知を検索結果統合部134に出力する。
検索部133−1〜133−nは、予め所定のプロトコル(ここでは、SIP)のヘッダフィールドパターンが1つずつ登録されている。検索部133−1〜133−nは、コピー部132から入力されるフレームデータ内から自身に登録されているヘッダフィールドパターンを検索する。検索部133−1〜133−nは、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、検出したヘッダフィールドパターンに対応付けてフレームデータに設定されているヘッダフィールド情報とを検索結果統合部134に出力する。
具体的には、たとえば、検索部133−1にはヘッダフィールドパターンとして「INVITE」が登録され、検索部133−2にはヘッダフィールドパターンとして「To:」が登録されているものとする。
検索部133−1は、ヘッダフィールドパターン「INVITE」を検索キーとして、コピー部132から入力されたフレームデータを検索する。フレームデータ内には、先の図6に示したSIPヘッダが含まれている。検索部133−1は、SIPヘッダ内の「INVITE」を検出する。検索部133−1は、ヘッダフィールドパターン「INVITE」とSIPヘッダ内に「INVITE」に対応付けられているヘッダフィールド情報である「sip:bob@biloxi.com SIP/2.0」を検索結果統合部134に出力する。
一方、検索部133−2は、ヘッダフィールドパターン「To:」を検索キーとして、コピー部132から入力されたフレームデータを検索する。検索部133−2は、SIPヘッダ内の「To:」を検出する。検索部133−2は、ヘッダフィールドパターン「To:」とSIPヘッダ内に「To:」に対応付けられているヘッダフィールド情報である「Bob<sip:bob@biloxi.com>を検索結果統合部134に出力する。
コピー部132は、検索開始通知を出力してから図示していない自装置内の計時機能を用いて所定の時間を計測する。所定の時間とは、検索部133−1〜133−nがフレームデータ内からヘッダフィールドパターンを検出するために必要な時間以上である。コピー部132は、検索開始通知を出力してから所定の時間が経過した後に、検索終了通知を検索結果統合部134に出力する。
検索終了通知を受けると、検索結果統合部134は、検索開始通知を受けてから検索終了通知を受けるまでの間に検索部133−1〜133−nから入力されたヘッダフィールドパターンと当該ヘッダフィールドパターンに対応付けられたヘッダフィールド情報との組を全て検索結果として入出力制御部131に出力する。入出力制御部131は、検索結果統合部134から入力された検索結果を、検索対象となるフレームデータを入力した転送ユニット12−1,12−2に出力する。
一方、転送ユニット12−1,12−2は、MACフレームのフレームデータを入出力制御部131に出力する際に、MACフレームから転送先識別情報(レイヤ3ヘッダ内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)を抽出している。たとえば、レイヤ3ヘッダ62が先の図3に示したIPヘッダの場合、プロトコルタイプに設定されているプロトコルと、送信元IPアドレスに設定されている送信元IPアドレスと、宛先IPアドレスに設定されている宛先IPアドレスとを抽出している。また、レイヤ4ヘッダ63が、先の図4に示したTCPヘッダ、または先の図5に示したUDPヘッダの場合、宛先ポート番号に設定されている宛先ポート番号、および送信元ポート番号に設定されている送信元ポート番号を抽出している。レイヤ3ヘッダ62およびレイヤ4ヘッダ63においては、プロトコルや送信元IPアドレス、宛先アドレス、宛先ポート番号、送信元ポート番号の設定位置は固定である。したがって、転送ユニット12−1,12−2は、それぞれのヘッダの先頭からのビット数またはバイト数をカウントすることで転送処理に必要な情報である転送先識別情報(プロトコルや送信元IPアドレス、宛先アドレス、宛先ポート番号、送信元ポート番号等)を抽出することができる。
転送ユニット12−1,12−2は、レイヤ3ヘッダ62、およびレイヤ4ヘッダ63から抽出した転送処理に必要な情報である転送先識別情報と、入出力制御部131から入力される検索結果と、予め定められているルーティング情報とに基づいて、MACフレームのルーティング判定処理を実行してMACフレームを送信する送受信ユニット11−1,11−2を選択する。このルーディング判定処理は、サーバ41a〜41cの負荷分散などを考慮した判定処理であるが、一般的なロードバランサーの処理であるのでここではその説明を省略する。転送ユニット12−1,12−2は、MACフレームを選択した送受信ユニット11−1,11−2に出力する。送受信ユニット11−1,11−2は、転送ユニット12−1,12−2から入力されたMACフレームをリンク5に送信する。
このようにこの実施の形態1においては、MACフレームのレイヤ5ヘッダ64、およびデータ65をn個コピー(複製)して生成されたフレームデータ毎に、それぞれ異なるヘッダフィールドパターンを用いてフレームデータからヘッダフィールドパターンを検出し、検出したヘッダフィールドパターンに対応付けてフレームデータに設定されているヘッダフィールド情報を抽出する検索部133−1〜133−nを備えてヘッダフィールド情報の抽出を並列に処理するようにしているため、1つの検索部で異なるヘッダフィールドパターンを検出する場合と比較して、MACフレーム内から任意のプロトコルのヘッダフィールド情報を高速に抽出して、フレームの転送処理時間を短縮することができる。
なお、この実施の形態1においては、コピー部132が検索開始通知を出力してから所定の時間が経過した後に検索終了通知を検索結果統合部134に出力するようにしたが、コピー部132が検索終了通知を検索結果統合部134に出力するのではなく、検索部133−1〜133−nが、それぞれフレームデータの検索を終了したことを通知する検索終了通知を検索結果統合部134、およびコピー部132に出力するようにしてもよい。この場合、検索結果統合部134は、コピー部132から検索開始通知を受けた後に、全ての検索部133−1〜133−nから検索終了通知を受けた時に、検索結果を転送ユニット12−1,12−2に出力すればよい。また、コピー部132は、全ての検索部133−1〜133−nから検索終了通知を受けた後に、入出力制御部131から入力された新たなフレームデータを検索部133−1〜133−nに出力するようにすればよい。
実施の形態2.
図9を参照してこの発明の実施の形態2を説明する。この発明における実施の形態2のネットワーク中継装置が適用される通信システムは、先の図1に示した実施の形態1の通信システムと同様であるのでここではその説明を省略する。
この実施の形態2のロードバランサー1は、先の図7に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の代わりに、ヘッダ抽出ユニット13aを備えている。図9は、この実施の形態2のロードバランサー1のヘッダ抽出ユニット13aの構成を示すブロック図である。
図9に示したヘッダ抽出ユニット13aは、先の図8に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の検索部133−1〜133−nに代えて、プロトコルAのヘッダフィールドパターンが設定されている検索部1351−1〜1351−nを有する検索処理部135と、プロトコルBのヘッダフィールドパターンが設定されている検索部1361−1〜1361−nを有する検索処理部136とを備えている。すなわち、この実施の形態2のロードバランサー1のヘッダ抽出ユニット13aは、複数(この場合は2つ)のプロトコルA,Bのヘッダフィールドパターンの抽出に対応するものである。なお、先の図8に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
検索処理部135の検索部1351−1〜1351−nには、それぞれプロトコルAの異なるヘッダフィールドパターンが1つ登録されている。たとえば、プロトコルAがSIPである場合、検索部1351−1〜1351−nには、それぞれSIPヘッダの異なるヘッダフィールドパターンが1つ登録されている。
検索処理部136の検索部1361−1〜1361−nには、それぞれプロトコルBの異なるヘッダフィールドパターンが1つ登録されている。たとえば、プロトコルBがSDPである場合、検索部1361−1〜1361−nには、それぞれSDPヘッダの異なるヘッダフィールドパターンが1つ登録されている。
検索部1351−1〜1351−n,1361−1〜1361−nは、コピー部132から入力されるフレームデータ内から自身に登録されているヘッダフィールドパターンを検索する。検索部1351−1〜1351−n,1361−1〜1361−nは、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果統合部134に出力する。検索部1351−1〜1351−n,1361−1〜1361−nは、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出することができなかった場合には、検索結果統合部134に対して何も出力しない。
なお、この実施の形態2のロードバランサー1と、先の実施の形態1のロードバランサー1との相違点は、実施の形態1のロードバランサー1は、ヘッダ抽出ユニット13内の検索部133−1〜133−nに1つのプロトコルに対するヘッダフィールドパターンが登録され1つのプロトコルのヘッダに対応するものであるのに対し、この実施の形態2のロードバランサー1は、ヘッダ抽出ユニット13a内の検索部1351−1〜1351−nにプロトコルAに対するヘッダフィールドパターンが登録され、検索部1361−1〜1361−nにプロトコルBに対するヘッダフィールドパターンが登録され2つのプロトコルのヘッダに対するものである。すなわち、各検索部1351−1〜1351−n,1361−1〜1361−nが検索するヘッダフィールドパターンが異なるだけであり、実施の形態1のロードバランサー1と実施の形態2のロードバランサー1との動作は同様のものとなるため、ここでは実施の形態2のロードバランサー1の動作の説明を省略する。
このようにこの実施の形態2においては、検索部1351−1〜1351−nを有する検索処理部135と、検索部1361−1〜1361−nを有する検索処理部136とを備え、検索処理部135はプロトコルAのヘッダフィールドパターンを検索し、検索処理部136はプロトコルAとは異なるプロトコルBのヘッダフィールドパターンを検索するようにしている。すなわち、プロトコル毎に検索部をグループ化するようにしている。これにより、1つの検索部で異なるプロトコルのヘッダフィールドパターンを検出する場合と比較して、MACフレーム内から異なるプロトコルのヘッダフィールド情報を高速に抽出して、フレームの転送処理時間を短縮することができる。
なお、この実施の形態2においては、検索処理部135が有する検索部1351−1〜1351−nと、検索処理部136が有する検索部1361−1〜1361−nの数をそれぞれn個としたが、検索処理部135の検索部の数と検索処理部136の検索部の数とは異なっていてもかまわない。
また、コピー部132が検索終了通知を検索結果統合部134に出力するのではなく、検索部1351−1〜1351−n,1361−1〜1361−nが、それぞれフレームデータの検索を終了したことを通知する検索終了通知を検索結果統合部134、およびコピー部132に出力するようにしてもよい。この場合、検索結果統合部134は、コピー部132から検索開始通知を受けた後、全ての検索部1351−1〜1351−n,1361−1〜1361−nから検索終了通知を受けた時に、検索結果を転送ユニット12−1,12−2に出力すればよい。また、コピー部132は、全ての検索部1351−1〜1351−n,1361−1〜1361−nから検索終了通知を受けた後に、入出力制御部131から入力された新たなフレームデータを検索部133−1〜133−1に入力するようにすればよい。
実施の形態3.
図10を参照してこの発明の実施の形態3を説明する。この発明における実施の形態3のネットワーク中継装置が適用される通信システムは、先の図1に示した実施の形態1の通信システムと同様であるのでここではその説明を省略する。
この実施の形態3のロードバランサー1は、先の図7に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の代わりに、ヘッダ抽出ユニット13bを備えている。図10は、この実施の形態3のロードバランサー1のヘッダ抽出ユニット13bの構成を示すブロック図である。
図10に示したヘッダ抽出ユニット13bは、先の図8に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の検索部133−1〜133−nに代えて、プロトコルパターンテーブル1371および検索部1372を有するx(xは自然数)個の検索処理部137−1〜137−xを備えている。図8に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
検索処理部137−1〜137−xのプロトコルパターンテーブル1371には、それぞれ異なるプロトコルのヘッダフィールドパターンが全て登録される。たとえば、検索処理部137−1がSIPに対応する場合、検索処理部137−1のプロトコルパターンテーブル1371にはSIPのヘッダフィールドパターンが全て登録され、検索処理部137−2がSDPに対応する場合、検索処理部137−2のプロトコルパターンテーブル1371にはSDPのヘッダフィールドパターンが全て登録される。
検索処理部137−1〜137−xの検索部1372は、コピー部132から入力されるフレームデータ内から、自身が存在する検索処理部137−1〜137−xのプロトコルパターンテーブル1371に登録されているヘッダフィールドパターンを検索する。検索部1372は、フレームデータ内に自身が存在する検索処理部137−1〜137−nのプロトコルパターンテーブル1372に登録されている全てのヘッダフィールドパターンの中の少なくとも1つと一致するパターンを検出した場合には、一致したヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果統合部134に出力する。検索部1372は、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出することができなかった場合には、検索結果統合部134に対して何も出力を行なわない。
つぎに、図10を参照してこの実施の形態3のロードバランサー1の動作を説明する。なお、この実施の形態3のロードバランサー1と先の実施の形態1のロードバランサー1の相違点は、ヘッダ抽出ユニット13の代わりにヘッダ抽出ユニット13bを備えていることであるので、ここでは、転送ユニット12−1,12−2からの入力されたフレームデータからヘッダフィールドパターンおよびヘッダフィールド情報を検索する動作、すなわちヘッダ抽出ユニット13bの動作のみを説明する。
コピー部132は、入出力制御部131から入力されたフレームデータをx個コピーする。コピー部132は、コピーしたフレームデータを検索処理部137−1〜137−xの検索部1372に1つずつ出力するとともに、検索開始通知を検索結果統合部134に出力する。
検索処理部137−1の検索部1372は、検索処理部137−1のプロトコルパターンテーブル1371に登録されているヘッダフィールドパターンを読み出す。検索処理部137−1の検索部1372は、コピー部132から入力されるフレームデータ内から、読み出したヘッダフィールドパターンを検索する。
たとえば、検索処理部137−1のプロトコルパターンテーブル1371に、SIPのヘッダフィールドパターンとして「To:」および「From:」が登録されている場合、検索処理部137−1の検索部1372は、コピー部132から入力されるデータフレーム内から、ヘッダフィールドパターン「To:」、「From:」を検索する。そして、ヘッダフィールドパターン「To:」を検出した場合には、ヘッダフィールドパターン「To:」に対応付けられてフレームデータに設定されているヘッダフィールド情報(図6の場合は、「Bob:<sip:bob@biloxi。com>)を抽出し、ヘッダフィールドパターン「To:」と抽出したヘッダフィールド情報とを検索結果統合部134に出力する。さらにフィールドパターン「From:」を検出した場合には、ヘッダフィールドパターン「From:」に対応付けられてフレームデータに設定されているヘッダフィールド情報(図6の場合は、Alice<sip:alice@atlanta。com;tag=1928301774)を抽出し、ヘッダフィールドパターン「From:」と抽出したヘッダフィールド情報とを検索結果統合部134に出力する。また、検索部1372は、フレームデータ内にヘッダフィールドパターンと一致するパターンを1つも検出することができなかった場合には、検索結果統合部134に対して何も出力を行なわない。
検索処理部137−2〜137−xの検索部1372も、それぞれ検索処理部137−1の検索部1372と同様に、自身が存在する検索処理部137−2〜137−xのプロトコルパターンテーブル1371に登録されている全てのヘッダフィールドパターンについて、コピー部132から入力されるデータフレーム内を検索して、ヘッダフィールドパターンと一致するパターンを検出した場合には、一致したヘッダフィールドパターンと、ヘッダフィールドパターに対応付けられているヘッダフィールド情報を検索結果統合部134に出力する。
コピー部132は、検索開始通知を出力してから図示していない自装置内の計時機能を用いて所定の時間を計測する。所定の時間とは、検索処理部137−1〜137−xの検索部1372がフレームデータ内からヘッダフィールドパターンを検出するために必要な時間以上である。コピー部132は、検索開始通知を出力してから所定の時間が経過した後に、検索終了通知を検索結果統合部134に出力する。
検索終了通知を受けると、検索結果統合部134は、検索開始通知を受けてから検索終了通知を受けるまでの間に検索処理部137−1〜137−xの検索部1372から入力されたヘッダフィールドパターンと当該ヘッダフィールドパターンに対応付けられたヘッダフィールド情報との組を全て検索結果として入出力制御部131に出力する。入出力制御部131は、検索結果統合部134から入力された検索結果を、検索対象となるフレームデータを入力した転送ユニット12−1,12−2に出力する。
このようにこの実施の形態3においては、ヘッダフィールドパターンが複数登録されるプロトコルパターンテーブル1371と、プロトコルパターンテーブル1371に登録されているヘッダフィールドパターンを用いて検索対象のフレームデータを検索して、フレームデータからヘッダフィールドパターンを検出し、検出したヘッダフィールドパターンに対応付けてフレームデータに設定されているヘッダフィールド情報を抽出する検索部1372とを有する検索処理部137−1〜137−xを備え、検索処理部137−1〜137−xにそれぞれ異なるプロトコルを割当ててヘッダフィールド情報の抽出を並列に処理するようにしているため、1つの検索部で異なるプロトコルのヘッダフィールドパターンを検出する場合と比較して、MACフレーム内から異なるプロトコルのヘッダフィールド情報を高速に抽出して、フレームの転送処理時間を短縮することができる。
なお、この実施の形態3においては、検索処理部137−1〜137−xのプロトコルパターンテーブル1371には、それぞれ異なるプロトコルのヘッダフィールドパターンを全て登録する場合を例に挙げて説明したが、検索処理部137−1〜137−xのプロトコルパターンテーブル1371に同一プロトコルのヘッダフィールドパターンが登録することを避ければ、1つの検索処理部137−1〜137−xのプロトコルパターンテーブル1371に複数のプロトコルのヘッダフィールドパターンを全て登録してもかまわない。
また、この実施の形態3においては、コピー部132が検索開始通知を出力してから所定の時間が経過した後に検索終了通知を検索結果統合部134に出力するようにしたが、コピー部132が検索終了通知を検索結果統合部134に出力するのではなく、検索処理部137−1〜137−xの検索部1372が、それぞれフレームデータの検索を終了したことを通知する検索終了通知を検索結果統合部134、およびコピー部132に出力するようにしてもよい。この場合、検索結果統合部134は、コピー部132から検索開始通知を受けた後に、全ての検索処理部137−1〜137−xの検索部1372から検索終了通知を受けた時に、検索結果を転送ユニット12−1,12−2に出力すればよい。また、コピー部132は、全ての検索処理部137−1〜137−xの検索部1372から検索終了通知を受けた後に、入出力制御部131から入力された新たなフレームデータを検索処理部137−1〜137−xの検索部1372に出力するようにすればよい。
実施の形態4.
図11および図12を用いてこの発明の実施の形態4を説明する。この発明におけるネットワーク中継装置が適用される通信システムは、先の図1に示した実施の形態1の通信システムと同様であるのでここではその説明を省略する。
この実施の形態4のロードバランサー1は、先の図7に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の代わりに、ヘッダ抽出ユニット13cを備えている。図11は、この実施の形態4のロードバランサー1のヘッダ抽出ユニット13cの構成を示すブロック図である。
図11において、ヘッダ抽出ユニット13cは、入出力制御部131と、検索データ分割部138と、プロトコルパターンテーブル141と、n個の検索部142−1〜142−nと、分割検索結果統合部139とを備えている。
入出力制御部131は、転送ユニット12−1,12−2から入力されるフレームデータを調停して検索データ分割部138に出力するとともに、検索結果統合部134から出力される検索結果を転送ユニット12−1,12−2に出力する。
検索データ分割部138は、入出力制御部131から入力されるフレームデータを予め定められた任意の文字数毎に分割し、分割したフレームデータ(分割フレームデータ)を分割した順番に検索部142−1〜142−nに出力する。また、検索データ分割部138は、分割フレームデータがフレームデータの何番目に位置するかの位置情報も分割フレームデータとともに検索部142−1〜142−nに出力する。また、検索データ分割部138は、分割検索結果統合部139からの分割フレームデータ要求によって分割フレームデータを分割検索結果統合部139に出力する。
プロトコルパターンテーブル141には、図12に示すように、ヘッダフィールドパターンに対応付けてプロトコルが登録される。検索部142−1〜142−nは、検索データ分割部138から入力された分割フレームデータ内から、プロトコルパターンテーブル141に登録されているヘッダフィールドパターンを検索する。検索部142−1〜142−nは、分割フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、分割フレームデータ内にヘッダフィールドパターンと一致するパターンを検出したことを通知する検出通知を出力する。このとき、検索部142−1〜142−nは、検索通知に分割フレームデータの位置情報と、ヘッダフィールドパターンとを含めておく。
分割検索結果統合部139は、検出通知を受けると分割フレームデータ要求を検索データ分割部138に出力して分割フレームデータを受け取る。分割検索結果統合部139は、受け取った分割フレームデータ内から検索通知に含まれるヘッダフィールドパターンを検索し、ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報を抽出する。
つぎに、図11を参照して、この実施の形態4のロードバランサー1の動作について説明する。なお、この実施の形態4のロードバランサー1と先の実施の形態1のロードバランサー1の相違点は、ヘッダ抽出ユニット13の代わりにヘッダ抽出ユニット13cを備えていることであるので、ここでは、転送ユニット12−1,12−2からの入力されたフレームデータからヘッダフィールドパターンおよびヘッダフィールド情報を検索する動作、すなわちヘッダ抽出ユニット13cの動作のみを説明する。
入出力制御部131は、転送ユニット12−1,12−2から入力されるフレームデータを調停して検索データ分割部138に出力する。入出力制御部131からフレームデータが入力されると、検索データ分割部138は、検索開始通知を分割検索結果統合部139に出力する。検索データ分割部138は、入出力制御部131から入力されるフレームデータを予め定められた任意の文字数毎に分割して分割フレームデータを生成して、1つの検索部142−1〜142−nに対して1つの分割フレームデータと当該分割フレームデータの位置情報とをそれぞれ出力する。
具体的には、検索データ分割部138は、たとえば、分割した1番目の分割フレームデータと1番目の分割フレームの位置情報とを検索部142−1に出力し、2番目の分割フレームデータと2番目の分割フレームデータの位置情報とを検索部142−2に出力し、…、n番目の分割フレームデータとn番目の分割フレームデータの位置情報とを検索部142−nに出力する。その後、検索データ分割部138は、検索部142−1〜142−nから検索終了通知を受けると、最初に検索終了通知を出力した検索部142−1〜142−nに、n+1番目の分割フレームデータとn+1番目の分割フレームデータの位置情報とを出力し、2番目に検索終了通知を出力した検索部142−1〜142−nに、n+2番目の分割フレームデータとn+2番目の分割フレームデータの位置情報とを出力するというように、フレームデータを任意の文字数で分割した分割フレームデータと当該分割フレームデータの位置情報とを、検索部142−1〜142−nの何れか一つに振り分ける。
検索部142−1〜142−nは、検索データ分割部138から入力された分割フレームデータ内から、プロトコルパターンテーブル141に登録されているヘッダフィールドパターンを検索する。検索部142−1〜142−nは、分割フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、分割フレームデータ内にヘッダフィールドパターンと一致するパターンを検出したことを通知する検出通知を出力する。このとき検出通知に、分割フレームデータの位置情報と、ヘッダフィールドパターンとを含めておく。また、検索部142−1〜142−nは、分割フレームデータの検索が終了すると検索終了通知を検索データ分割部138、および分割検索結果統合部139に出力する。
プロトコルパターンテーブル141には、先の図12に示したように、ヘッダフィールドパターンとして「To」および「o:」が登録されている。たとえば、検索部142−1〜142−nは、検索データ分割部138から入力された分割フレームデータ内から、ヘッダフィールドパターン「To」、「o:」を検索する。そして、ヘッダフィールドパターン「To」を検出した場合にはヘッダフィールドパターン「To」と分割フレームデータの位置情報とを含む検出通知を検索結果統合部134に出力する。さらにフィールドパターン「o:」を検出した場合にはヘッダフィールドパターン「o:」と分割フレームデータの位置情報とを含む検出通知を分割検索結果統合部139に出力する。また、検索部142−1〜142−nは、分割フレームデータの検索が終了すると検索終了通知を検索データ分割部138、および分割検索結果統合部139に出力する。
検索データ分割部138は、検索終了通知を受けると、前に分割して出力したフレームデータの直後から、また予め定められた任意の文字数毎に分割して分割フレームデータを生成し、その新たな分割フレームデータと当該分割フレームの位置情報とを検索終了通知を出力した検索部142−1〜142−nに出力する動作を、分割フレームデータがなくなるまで繰り返す。検索データ分割部138は、最後の分割フレームデータを検索部142−1〜142−nに出力した後に入力完了通知を分割検索結果統合部139、および検索部142−1〜142−nに出力する。
検索部142−1〜142−nは、入力完了通知を受けた時に既に分割フレームデータの検索が終了している場合には、検索終了通知を再度分割検索結果統合部139に出力し、入力完了通知を受けた時に分割フレームデータの検索中である場合には、検索中の分割フレームデータの検索が終了した後に、検索終了通知を分割検索結果統合部139に出力する。
一方、検索部142−1〜142−nから検出通知を受けると、分割検索結果統合部139は、検出通知内に含まれる分割フレームデータの位置情報を含む分割フレームデータ要求を検索データ分割部138に出力する。検索データ分割部138は、分割フレームデータ要求に含まれる分割フレームデータの位置情報に対応する分割フレームデータを分割検索結果統合部139に出力する。
分割検索結果統合部139は、検索データ分割部138から受け取った分割フレームデータ内から検索通知に含まれるヘッダフィールドパターンを検索し、ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報を抽出する。分割検索結果統合部139は、ヘッダフィールドパターンとヘッダフィールド情報とを対応付けて記憶しておく。
分割検索結果統合部139は、検索開始通知を受けてから、入力完了通知を受けた後に全ての検索部142−1〜142−nからの検索終了通知を受けるまでの間、検索部142−1〜142−nから検出通知を受けると、検出通知内に含まれる分割フレームデータの位置情報を含む分割フレームデータ要求を検索データ分割部138に出力して分割フレームデータを受け取り、受け取った分割フレームデータからヘッダフィールドパターンを検索し、ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報を抽出し、ヘッダフィールドパターンと抽出したヘッダフィールド情報とを対応付けて記憶する動作を繰り返す。
検索データ分割部138からの入力完了通知を受けた後に全ての検索部142−1〜142−nからの検索終了通知を受けると、分割検索結果統合部139は、記憶しているヘッダフィールドパターンとヘッダフィールド情報との組の全てを検索結果として入出力制御部131に出力する。入出力制御部131は、分割検索結果統合部139から入力された検索結果を、検索対象となるフレームデータを入力した転送ユニット12−1,12−2に出力する。
このようにこの実施の形態4においては、MACフレームのレイヤ5ヘッダ64、およびデータ65を、予め定められた文字数ごとに分割して生成した分割フレームデータの1つを検索対象として、検索対象となる分割フレームデータからプロトコルパターンテーブルに登録されている複数のヘッダフィールドパターンを検出する検索部142−1〜142−nと、検索部142−1〜142−nが検出したヘッダフィールドパターンに対応付けて分割フレームデータに設定されているヘッダフィールド情報を抽出する分割検索結果統合部139と備え、ヘッダフィールド情報の抽出を並列に処理するようにしているため、1つの検索部で異なるヘッダフィールドパターンを検出する場合と比較して、MACフレーム内から任意のプロトコルのヘッダフィールド情報を高速に抽出して、フレームの転送処理時間を短縮することができる。
実施の形態5.
図13を参照してこの発明の実施の形態5を説明する。この発明における実施の形態5のネットワーク中継装置が適用される通信システムは、先の図1に示した実施の形態1の通信システムと同様であるのでここではその説明を省略する。
この実施の形態5のロードバランサー1は、先の図7に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の代わりに、ヘッダ抽出ユニット13dを備えている。図13は、この実施の形態5のロードバランサー1のヘッダ抽出ユニット13dの構成を示すブロック図である。
図13に示したヘッダ抽出ユニット13dは、先の図8に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13の検索部133−1〜133−nに代えて、プロトコルパターンテーブル1431および検索部1432を有するm(1<m,mは自然数)個の検索処理部143−1〜143−mを備えている。図8に示した実施の形態1のロードバランサー1のヘッダ抽出ユニット13と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
転送ユニット12−1,12−2は、MACフレームのフレームデータを入出力制御部131に出力する際に、MACフレームの転送先識別情報(レイヤ3ヘッダ内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)から転送処理に必要な情報を抽出し、ヘッダ抽出ユニット13dにも出力する。
検索処理部143−1は検索対象となるプロトコルの中で最下位のプロトコルのヘッダフィールドパターンを検索し、検索処理部143−2は検索処理部143−1より1つ上位のプロトコルのヘッダフィールドパターンを検索し、…、検索処理部143−mは検索対象となるプロトコル中で最上位のプロトコルのヘッダフィールドパターンを検索する。
検索処理部143−1〜143−mは、プロトコルパターンテーブル1431と、検索部1432とを備えている。検索処理部143−1〜143−mのプロトコルパターンテーブル1431には、それぞれのプロトコルの順位に応じたプロトコルのヘッダフィールドパターンに対応付けられてプロトコル名が登録される。
検索処理部143−1〜143−mの検索部1432は、前段の検索処理部の検索部1432から通知されるプロトコル候補に対応するヘッダフィールドパターンを自身が存在する検索処理部143−1〜143−mのプロトコルパターンテーブルから読み出す。検索処理部143−1〜143−mの検索部1432は、コピー部132から入力されたフレームデータ内から読み出したヘッダフィールドパターンを検索する。検索処理部143−1〜143−mの検索部1432は、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果統合部134に出力する。検索処理部143−1〜143−mの検索部1432は、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出することができなかった場合には、検索結果統合部134に対して検索終了通知を出力する。
なお、検索処理部143−1は、前段の検索処理部が存在しない。この場合は、転送ユニット12−1,12−2にて抽出した転送先識別情報(レイヤ3ヘッダ内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)から自身が検索するプロトコル候補を選択すればよい。
また、登録されているプロトコルのうち、レイヤ5になりうるプロトコル全てを検索するプロトコル候補とするようにしてもよい。
検索処理部143−1〜143−mの検索部1432は、検出したヘッダフィールドパターンおよびヘッダフィールド情報に基づいて上位プロトコル候補を抽出する。検索処理部143−1〜143−mの検索部1432は、抽出した上位プロトコル候補を後段の検索処理部の検索部1432に通知する。
つぎに、図13を参照してこの実施の形態5のロードバランサー1の動作を説明する。なお、この実施の形態5のロードバランサー1と先の実施の形態1のロードバランサー1の相違点は、ヘッダ抽出ユニット13の代わりにヘッダ抽出ユニット13dを備えていることであるので、ここでは、転送ユニット12−1,12−2からの入力されたフレームデータからヘッダフィールドパターンおよびヘッダフィールド情報を検索する動作、すなわちヘッダ抽出ユニット13dの動作のみを説明する。また、ここでは、転送ユニット12−1,12−2が、MACフレームから抽出した転送先識別情報(レイヤ3ヘッダ内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)をフレームデータとともにヘッダ抽出ユニット13に出力するものとする。
入出力制御部131は、転送ユニット12−1,12−2から入力されたフレームデータおよび転送先識別情報をコピー部132に出力する。コピー部132は、入出力制御部131から入力されたフレームデータをm個コピーする。コピー部132は、コピーしたフレームデータを検索処理部143−1〜143−mの検索部1432に1つずつ出力するとともに、検索開始通知を検索結果統合部134に出力する。また、コピー部132は、検索処理部143−1〜143−mの中で最下位のレイヤ(この場合は、レイヤ5)に対応付けられている検索処理部143−1の検索部1432に転送先識別情報を出力する。
検索処理部143−1の検索部1432は、転送先識別情報(フレームデータのレイヤ3ヘッダ62のプロトコルタイプと、レイヤ4ヘッダ63の宛先ポート番号および送信元ポート番号に設定されているプロトコル、宛先ポート番号、および送信元ポート番号等)に基づいて、自身が検索するレイヤ5のプロトコルを選択する。
検索処理部143−1の検索部1432は、選択したプロトコル候補のプロトコルに対応付けられているヘッダフィールドパターンを検索処理部143−1のプロトコルパターンテーブル1431から読み出す。検索処理部143−1の検索部1432は、フレームデータ内から読み出したヘッダフィールドパターンを検索する。たとえば、抽出したプロトコル、宛先ポート番号、および送信元ポート番号からレイヤ5のプロトコルであるSIPを選択した場合、検索処理部143−1の検索部1432は、プロトコルパターンテーブル1431のプロトコルのSIPに対応付けられているヘッダフィールドパターンを読み出す。そして、フレームデータ内から読み出したヘッダフィールドパターンを検索する。
検索処理部143−1の検索部1432は、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果統合部134に出力する。また、検索処理部143−1の検索部1432は、検出したヘッダフィールドパターン、当該ヘッダフィールドパターンに対応付けられているヘッダフィールド情報、およびヘッダフィールドパターンのプロトコルに基づいて、上位プロトコル(この場合は、プレゼンテーション層であるレイヤ6のプロトコル)候補を選択する。検索処理部143−1の検索部1432は、選択した上位プロトコル候補を後段の検索処理部143−2の検索部1432に通知する。
検索処理部143−2の検索部1432は、検索処理部143−1の検索部1432から通知された上位プロトコル候補のプロトコルに対応付けられているヘッダフィールドパターンを検索処理部143−2のプロトコルパターンテーブル1431から読み出す。たとえば、検索処理部143−1の検索部1432から上位プロトコル候補としてSDPが通知された場合、検索処理部143−2の検索部1432は検索処理部143−2のプロトコルパターンテーブル1431からSDPに対応付けられているヘッダフィールドパターンを読み出す。
検索処理部143−2の検索部1432は、フレームデータ内にヘッダフィールドパターンと一致するパターンを検出した場合には、ヘッダフィールドパターンと、フレームデータ内の当該ヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報とを検索結果統合部134に出力する。また、検索処理部143−2の検索部1432は、検出したヘッダフィールドパターン、当該ヘッダフィールドパターンに対応付けられているヘッダフィールド情報、およびヘッダフィールドパターンのプロトコルに基づいて、レイヤ6のプロトコル候補を選択する。検索処理部143−1の検索部1432は、選択したレイヤ6のプロトコル候補を上位プロトコル候補として後段の検索処理部の検索部1432に通知する。
このように、検索処理部143−2〜143−mの検索部1432は、前段の検索処理部143−1〜143−m−1の検索部1432から通知された上位プロトコル候補に対応付けられて登録されているヘッダフィールドパターンを検索処理部143−2〜143−mのプロトコルパターンテーブル1431から読み出し、読み出したヘッダフィールドパターンをコピー部132から入力されたフレームデータから検出し、検出したヘッダフィールドパターンと当該ヘッダフィールドパターンに対応付けてフレームデータに設定されているヘッダフィールド情報とを検索結果統合部134に出力する。この処理は、上位プロトコルがなくなるまで続けられる。
コピー部132は、検索開始通知を出力してから図示していない自装置内の計時機能を用いて所定の時間を計測する。所定の時間とは、検索処理部143−1〜143−mの検索部1432がフレームデータ内からヘッダフィールドパターンを検出するために必要な時間以上である。コピー部132は、検索開始通知を出力してから所定の時間が経過した後に、検索終了通知を検索結果統合部134に出力する。
検索終了通知を受けると、検索結果統合部134は、検索開始通知を受けてから検索終了通知を受けるまでの間に検索処理部143−1〜143−mの検索部1432から入力されたヘッダフィールドパターンと当該ヘッダフィールドパターンに対応付けられたヘッダフィールド情報との組を全て検索結果として入出力制御部131に出力する。入出力制御部131は、検索結果統合部134から入力された検索結果を、検索対象となるフレームデータを入力した転送ユニット12−1,12−2に出力する。
このようにこの実施の形態5においては、ヘッダフィールドパターンに対応付けて当該ヘッダフィールドパターンを用いるプロトコルが登録されるプロトコルパターンテーブル1431と、上位プロトコル候補のプロトコルに対応付けてプロトコルパターンテーブル1431に登録されているヘッダフィールドパターンを用いて、検索対象のフレームデータからヘッダフィールドパターンを検出し、検出したヘッダフィールドパターンに対応付けて設定されているヘッダフィールド情報を抽出するとともに、検出したヘッダフィールドパターンおよびヘッダフィールド情報に基づいて1つ上位のプロトコルの候補を選択する検索部1432とを有する検索処理部143−1〜143−mを備え、この検索処理部143−1〜143−mをレイヤに対応付けておき、自身が存在する検索処理部134−1〜143−mより1つ下位のレイヤに対応付けられている検索処理部143−1〜143−mの検索部1432が選択した1つ上位のプロトコルの候補を上位プロトコル候補として用いるようにしている。これにより、検索すべきヘッダフィールドパターンの数を少なくすることが可能となり、MACフレーム内から任意のプロトコルのヘッダフィールド情報を高速に抽出して、フレームの転送処理時間を短縮することができる。
なお、この実施の形態5においては、最下位のプロトコルのヘッダフィールドパターンを検索する検索処理部143−1の検索部1432に転送ユニット12−1,12−2が抽出した転送先識別情報を入力するようにしたが、転送ユニット12−1,12−2からの転送先識別情報を用いることなく、検索処理部143−1のプロトコルパターンテーブル1431に登録されているプロトコルの中で、最下位のプロトコルであるレイヤ5になりうるプロトコルを全てプロトコル候補として選択するようにしてもよい。
また、この実施の形態5においては、コピー部132が検索開始通知を出力してから所定の時間が経過した後に検索終了通知を検索結果統合部134に出力するようにしたが、コピー部132が検索終了通知を検索結果統合部134に出力するのではなく、検索処理部143−1〜143−mの検索部1432が、それぞれフレームデータの検索を終了したことを通知する検索終了通知を検索結果統合部134、およびコピー部132に出力するようにしてもよい。この場合、検索結果統合部134は、コピー部132から検索開始通知を受けた後に、全ての検索処理部143−1〜143−mの検索部1432から検索終了通知を受けた時に、検索結果を転送ユニット12−1,12−2に出力すればよい。また、コピー部132は、全ての検索処理部143−1〜143−mの検索部1432から検索終了通知を受けた後に、入出力制御部131から入力された新たなフレームデータを検索処理部143−1〜143−mの検索部1432に出力するようにすればよい。
実施の形態6.
図14および図15を用いてこの発明の実施の形態6を説明する。上述した実施の形態1〜5では、ネットワーク中継装置としてロードバランサーを例に挙げて説明した。この実施の形態6では、ネットワーク中継装置としてフィヤーウォールを用いる場合を説明する。
図14は、この発明における実施の形態6のネットワーク中継装置が適用される通信システムの構成の一例を示す図である。図14に示した通信システムは、先の図1に示した実施の形態1の通信システムのロードバランサー1の代わりに、ファイヤーウォール7とルータ8とを備えており、ファイヤーウォール7とネットワーク3とがリンク5aによって接続され、ファイヤーウォール7とルータ8とはリンク5eによって接続され、ルータ8とサーバ41a〜41cとはリンク5b〜5dによって接続されており、通信端末2a,2bは、リンク5g,5fによってネットワーク3に接続されている。
この実施の形態6の通信システムで用いるMACフレームは、先の図2〜図6を用いて説明した実施の形態1の通信システムで用いるMACフレームと同一であるので、ここではその説明を省略する。
ファイヤーウォール7は、リンク5を介して受信したMACフレーム(図2参照)内の転送先識別情報(レイヤ3ヘッダ62内の宛先アドレス、送信元アドレス、およびプロトコルと、前記MACフレーム内のレイヤ4ヘッダ63内の宛先ポート番号および送信元ポート番号等といった転送先の識別に有用な情報)、およびレイヤ5ヘッダ65、データ66からMACフレームの転送に必要な情報を抽出し、抽出した情報に基づいて受信したMACフレームを送信する。
図15は、ファイヤーウォール7の構成を示すブロック図である。図15に示したファイヤーウォール7は、先の図7に示した実施の形態1のロードバランサー1の転送ユニット12−1,12−2とヘッダ抽出ユニット13との間にコード/デコードユニット73−1,73−2を備えている。図7に示した実施の形態1のロードバランサー1と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
コード/デコードユニット73−1,73−2は、転送ユニット12−1,12−2から入力されるフレームデータを予め定められた圧縮アルゴリズムに基づいて圧縮し、圧縮したフレームデータ(圧縮フレームデータ)をヘッダ抽出ユニット13に出力する。また、コード/デコードユニット73−1,73−2は、ヘッダ抽出ユニット13から入力される検索結果を予め定められた圧縮アルゴリズムに基づいてデコードし、デコードした検索結果を転送ユニット12−1,12−2に出力する。
ヘッダ抽出ユニット13は、先の実施の形態1では、フレームデータを検索対象としたが、この実施の形態6では、コード/デコードユニット73−1,73−2から入力される圧縮フレームデータを検索対象とする。すなわち、入出力制御部131は、コード/デコードユニット73−1,73−2から入力される圧縮フレームデータを調停してコピー部132に出力するとともに、検索結果統合部134から出力される検索結果をコード/デコードユニット73−1,73−2に出力する。コピー部132は、圧縮フレームデータをn個コピーして検索部133−1〜133−nにそれぞれ1つの圧縮フレームデータを出力する。
検索部133−1〜133−nには、予めそれぞれ異なるヘッダフィールドパターンを圧縮した圧縮ヘッダフィールドパターンが1つ登録され、圧縮フレームデータ内からこの圧縮ヘッダフィールドパターンを検索する。検索部133−1〜133−nは、圧縮フレームデータ内に圧縮ヘッダフィールドパターンと一致するパターンを検出した場合には、圧縮ヘッダフィールドパターンと、圧縮フレームデータ内の当該圧縮ヘッダフィールドパターンに対応付けて設定されている圧縮されたヘッダフィールド情報(圧縮ヘッダフィールド情報)とを検索結果統合部134に出力する。
検索結果統合部134は、コピー部132から検索開始通知を受けてから検索終了通知を受けるまでの間に検索部133−1〜133−nから入力される圧縮ヘッダフィールドパターンと、圧縮フレームデータ内の当該圧縮ヘッダフィールドパターンに対応付けて設定されている圧縮ヘッダフィールド情報とを統合する。検索結果統合部134は、統合した圧縮ヘッダフィールドパターンと、圧縮フレームデータ内の当該圧縮ヘッダフィールドパターンに対応付けて設定されている圧縮ヘッダフィールド情報とを検索結果として入出力制御部131に出力する。
この実施の形態6のファイヤーウォール7の動作は、先の実施の形態1のロードバランサー1とほぼ同じであり、相違点は、コード/デコードユニット73−1,73−2が検索対象となるフレームデータを圧縮した圧縮フレームデータを生成し、ヘッダ抽出ユニット13が圧縮フレームデータを検索対象として用いることであるので、ここでは動作の説明を省略する。
このようにこの実施の形態6においては、フレームデータを圧縮するようにしているため、検索部133−1〜133−nの検索対象となるフレームデータのデータ量を削減することが可能となり、MACフレーム内から任意のプロトコルのヘッダフィールド情報を高速に抽出して、フレームの転送処理時間を短縮することができる。
なお、この実施の形態6においては、ファイヤーウォール7に、先の実施の形態1のロードバランサー1のヘッダ抽出ユニット13を用いる場合を例に挙げて説明したが、先の実施の形態2〜5で説明したロードバランサー1のヘッダ抽出ユニット13a〜13dをヘッダ抽出ユニット13の代わりに用いるようにしてもよい。この場合、ヘッダフィールドパターンの代わりに、コード/デコードユニット73−1,73−2で用いる圧縮アルゴリズムによって圧縮されたヘッダフィールドパターンを用いることはいうまでもない。
また、実施の形態1〜5では、ネットワーク中継装置としてロードバランサー1を例に挙げ、実施の形態6では、ネットワーク中継装置としてファイヤーウォール7を例に挙げて説明したが、この発明のネットワーク中継装置はロードバランサー1やファイヤーウォール7に限るものではなく、MACフレーム内から文字列検索によって情報を抽出し、抽出した情報を用いてフレーム転送を行なう装置であればよい。
さらに、この実施の形態1〜6では、レイヤ2フレームとしてMACフレームを例に挙げて説明したが、レイヤ2フレーム、すなわちレイヤ2のプロトコルはこれに限るものではなく、たとえば、ATM(Asynchronous Transfer Mode)やFDDI(Fiber-Distributed Data Interface)などであってもかまわない。