(57)【要約】【課題】本発明は、各コアがパケットを最大限に並列処理可能なネットワーク中継装置を提供することを目的とする。【解決手段】  本発明のネットワーク中継装置は、上位フロー識別/転送処理部105-1〜105-xは1つのコアに上位フロー識別処理と転送処理を共存させ、上位フロー識別待ちキュー103-１〜103-nまた転送処理待ちキュー104-1〜104-mのどのキューからもパケットを刈り取って処理することができ、上位フロー識別待ちキュー103-１〜103-nにあるパケットを刈り取ると、上位フロー識別処理を行い、転送処理待ちキュー104-1〜104-mにあるパケットを刈り取ると、転送処理を行うことを特徴とする。【選択図】  図2
2011077746.tif 000002
【特許請求の範囲】
【請求項１】
受信キューと、受信キューからパケットを取り出す下位フロー識別部と、上位フロー識別待ちキューと、転送処理待ちキューと、複数の上位識別処理又は転送処理のいずれかを行う上位フロー識別転送処理部と、送信待ちキューを備えることを特徴とするネットワーク中継装置。
【請求項２】
請求項１に記載のネットワーク中継装置であって、
前記下位フロー識別部は受信したパケットで共通して使用される下位レイヤのヘッダ情報を用いて計算したハッシュ値により下位フローを識別し、
上位フロー識別転送処理部は、受信したパケット毎のサービスやトンネルするプロトコルが変わりうる上位レイヤのヘッダ情報、或いは、下位レイヤと上位レイヤのヘッダ情報の組合せで計算したハッシュ値により、フロー識別することを特徴とするネットワーク中継装置。
【請求項３】
請求項１に記載のネットワーク中継装置であって、処理量が変わる上位フロー識別処理と転送処理の2つの処理を1つの演算処理装置上に共存させ、上位フロー識別待ちキューにあるパケットを刈り取ると、上位フロー識別処理を行い、転送処理待ちキューにあるパケットを刈り取ると、転送処理を行うことを特徴とするネットワーク中継装置。
【請求項４】
請求項１に記載のネットワーク中継装置であって、上位フロー識別転送処理部は、待ちキュー番号で上位フロー識別待ちキューか転送処理待ちキューを判別することを特徴とするネットワーク中継装置。
【請求項５】
請求項１に記載のネットワーク中継装置であって、下位フロー識別部はパケットをヘッダ解析し、レイヤ4以上のヘッダ情報があるパケットに対して下位フロー毎に上位フロー識別待ちキューに振り分け、またレイヤ4以上のヘッダ情報がないパケットに対して下位フロー毎に転送処理待ちキューに振り分けることを特徴とするネットワーク中継装置。
【請求項６】
受信キューと、受信キューからパケットを取り出す下位フロー識別部と、上位フロー識別待ちキューと、転送処理待ちキューと、複数の上位識別処理又は転送処理のいずれかを行う上位フロー識別転送処理部と、送信待ちキューと、を具備するネットワーク中継装置であって、
前記上位フロー識別転送処理部が、処理量が異なる上位フロー識別処理と、転送処理と、を1つの演算処理装置上に共存させ、
前記上位フロー識別待ちキューにあるパケットを刈り取ると、上位フロー識別処理を行い、前記転送処理待ちキューにあるパケットを刈り取ると、前記転送処理を行うことを特徴とするネットワーク中継装置。
【請求項７】
請求項６に記載のネットワーク中継装置であって、
上位フロー識別転送処理部は、待ちキュー番号で上位フロー識別待ちキューか転送処理待ちキューを判別することを特徴とするネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速にパケットを転送するネットワーク中継装置に関する。
【背景技術】
【０００２】
近年、ネットワーク上のトラヒックが増加する中で、高速転送が求められるネットワーク中継装置において、パケット処理能力を向上するため、マルチコアCPUによるパケット並列処理方法がある。パケット並列処理技術は、パケット振分部と複数のパケット転送処理部を設け、パケット振分部が複数のパケット転送処理部にパケットを振り分けて並列処理させることにより、装置全体のパケット処理能力を向上させる手法である。マルチコアCPUにおいて、パケット振分処理として動作するコアをパケット振分部、パケット転送処理として動作するコアをパケット転送処理部と呼ぶ。
【０００３】
パケット振分部におけるパケットを振り分ける方法としては、ハッシュ法等があり、ハッシュ法とはパケットのヘッダ情報を元に計算したハッシュ値に従って、パケットを振り分ける方法である。例えば、フローを識別するヘッダ情報となるパケットの送信元IPアドレスや宛先IPアドレス、プロトコル番号等の要素を元にして、ハッシュ関数を計算し、得られたハッシュ値に従って、パケットの振り分け先を決定する方法であり、この方法によれば同一フロー内のパケットの順序制御が保障される。
特許文献1では、パケットの並列処理において、パケットの振り分けを統計情報収集部が計数するパケットの量に基づいて行うことにより、パケット転送処理の負荷が複数のパケット転送処理部になるべく均等になるように配分することが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2008-167305号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ネットワーク上のトラヒックは多様であり、ユーザが利用するサービス(Web、メール、動画等)毎のトラヒック量が変化している。サービスによって通信するプロトコルが異なるため、パケットを並列処理する際に振分処理時間また転送処理時間にばらつきが生じる。このばらつきのため、トラヒックの状況によって、必要なパケット振分処理用コアの数やパケット転送処理用コアの数に増減が出る。従来のパケット並列処理方法においては、パケット振分処理用コアの数とパケット転送処理用コアの数の比率を固定すると、パケット振分処理、又はパケット転送処理の一方が限界に達すると、性能限界に達してないもう一方の処理に割り当てたコアが余剰となり、存在するコアのパフォーマンスを最大限利用することができなくなるといった分割損が生じる。
【０００６】
本発明は、上記に鑑みて、各コアがパケットを最大限に並列処理可能なネットワーク中継装置を実現することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のネットワーク中継装置は、受信キューと、受信キューからパケットを取り出す下位フロー識別部と、上位フロー識別待ちキューと、転送処理待ちキューと、複数の上位識別処理又は転送処理のいずれかを行う上位フロー識別転送処理部と、送信待ちキューを備えることを特徴とする。また、下位フロー識別部は受信したパケットで共通して使用される下位レイヤのヘッダ情報を用いて計算したハッシュ値により下位フローを識別し、上位フロー識別転送処理部は、受信したパケット毎のサービスやトンネルするプロトコルが変わりうる上位レイヤのヘッダ情報、或いは、下位レイヤと上位レイヤのヘッダ情報の組合せで計算したハッシュ値により、フロー識別することを特徴とする。
【０００８】
さらに、処理量が変わる上位フロー識別処理と転送処理の2つの処理を1つの演算処理装置上に共存させ、上位フロー識別待ちキューにあるパケットを刈り取ると、上位フロー識別処理を行い、転送処理待ちキューにあるパケットを刈り取ると、転送処理を行うことを特徴とする。また、上位フロー識別転送処理部は、待ちキュー番号で上位フロー識別待ちキューか転送処理待ちキューを判別することを特徴とする。
【０００９】
より具体的には、下位フロー識別部はパケットをヘッダ解析し、レイヤ4以上のヘッダ情報があるパケットに対して下位フロー毎に上位フロー識別待ちキューに振り分け、またレイヤ4以上のヘッダ情報がないパケットに対して下位フロー毎に転送処理待ちキューに振り分けることを特徴とする。また、本発明のネットワーク中継装置は、受信キューと、受信キューからパケットを取り出す下位フロー識別部と、上位フロー識別待ちキューと、転送処理待ちキューと、複数の上位識別処理又は転送処理のいずれかを行う上位フロー識別転送処理部と、送信待ちキューと、を具備するネットワーク中継装置であって、上位フロー識別転送処理部が、処理量が異なる上位フロー識別処理と、転送処理と、を1つの演算処理装置上に共存させ、上位フロー識別待ちキューにあるパケットを刈り取ると、上位フロー識別処理を行い、転送処理待ちキューにあるパケットを刈り取ると、転送処理を行うことを特徴とする。また、上位フロー識別転送処理部は、待ちキュー番号で上位フロー識別待ちキューか転送処理待ちキューを判別することを特徴とする。
【発明の効果】
【００１０】
本発明によると、トラヒック状況に合せて上位フロー識別または転送処理を行うことにより、並列処理能力が向上したネットワーク中継装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】ネットワーク中継装置が適用するネットワークの一例
【図２】ネットワーク中継装置の機能ブロック図
【図３】下位フロー識別部と上位フロー識別待ちキュー
【図４】上位フロー識別/転送処理部と転送待ちキュー
【図５】上位フロー識別/転送処理部がパケットを刈り取る処理
【図６】排他テーブル
【図７】待ちキュー番号
【図８】上位ブロー識別/転送処理部の処理フローチャート
【図９】下位フロー識別部の処理フローチャート
【発明を実施するための形態】
【００１２】
本発明は、ネットワーク中継装置は受信キューと、受信キューからパケットを取り出す下位フロー識別部と、上位フロー識別待ちキューと、転送処理待ちキューと、複数の上位識別処理または転送処理のいずれか行う上位フロー識別/転送処理部と、送信待ちキューからなる構成を有することを特徴とする。
【００１３】
本発明において、フロー識別は２ヶ所で行われる。１つは下位フロー識別部である。下位フロー識別処理とは受信したパケットで共通して使用されるIPやEtherなどの下位レイヤ(OSIモデルのレイヤ3以下相当)のヘッダ情報に従い、パケットを分類することであり、下位レイヤの決まったエリアを下位フロー識別のために処理することで、処理コストを一定に保つことができる。下位フロー識別部において、例えばIPヘッダの送信元IPアドレスや宛先IPアドレスなどのヘッダ情報を用いてハッシュ関数計算し、計算したハッシュ値により、下位フロー毎に上位フロー識別待ちキューにパケットを振り分ける。
【００１４】
もう１つのフロー識別は、上位フロー識別処理部である。上位フロー識別処理とは、受信したパケット毎のサービスやトンネルするプロトコルが変わりうる上位レイヤ(OSIモデルのレイヤ4以上相当)のヘッダ情報、もしくはレイヤ2、3とレイヤ4以上のヘッダ情報の組合せで、パケットを分類することであり、上位フロー識別処理は扱うプロトコルやサービスによって処理コストが変化する処理である。上位フロー識別処理部において、例えばGREヘッダのGRE KEYなどの情報でハッシュ計算し、計算したハッシュ値により、上位フロー毎に転送処理待ちキューにパケットを振り分ける。転送処理とは、転送先によってパケットのヘッダの付け替えを行うプロトコル処理や、IPのルーティング情報に従って転送するなどの処理を行う。
【００１５】
本発明において、処理量が変わる上位フロー識別処理と転送処理を物理的に1つのコアに共存させる。この共存したコアを上位フロー識別/転送処理部と呼ぶ。上位フロー識別/転送処理部は上位フロー識別待ちキューまた転送待ちキューのどのキューからもパケットを刈り取ることができる。上位フロー識別待ちキューにあるパケットを刈り取ると、上位フロー識別処理を行い、また転送処理待ちキューにあるパケットを刈り取ると、転送処理を行う。待ちキュー番号によって上位フロー識別待ちキューか転送処理キューを判定する。
【００１６】
その結果、上位フロー識別/転送処理部がマルチコア上に操作するとき、トラヒック状況に合せて上位フロー識別または転送処理を行うことで、いずれかのコアがボトルネックとなることがなく、各コアが最大限に並列処理可能となる。
【００１７】
以下、図面を用いて、本発明に係る第１の実施例について詳細に説明する。
【００１８】
図1は、本発明のネットワーク中継装置が適用するネットワークの一例を示している。アクセス網は複数の端末を収容し、端末のアクセス方法には、例えば電話回線を使用したアクセス方法、ADSLを使用したアクセス方法、無線を使用したアクセス方法などがある。アクセス網AN1には端末UT1、アクセス網AN2には端末UT2が属している。
【００１９】
コア網CN1は伝送路とルータ等のパケット中継装置で構成され、データパケットがIPによって転送されるネットワークである。コア網CN1の出入り口にはゲートウェイGW1,GW2,GW3がある。インターネットIN1にはプロバイダがインターネットサービスを提供するため、WebサーバSV1、メールサーバSV2、動画配信サーバSV3などが接続されている。
【００２０】
複数のアクセス網AN1、AN2がそれぞれアクセスゲートウェイGW1、GW2を介してコア網CN1に接続されている。またゲートウェイGW3を介してインターネットIN1とコア網CN1も接続されている。アクセスゲートウェイGW1、GW2、ゲートウェイGW3はいずれも今回発明のネットワーク中継装置である。
アクセスゲートウェイGW1、GW2とゲートウェイGW3間において、トンネルTL1、TL2が張られている。セッションSE1、SE2、SE3は端末が利用するサービス毎に異なる。トンネルTL1、TL2は、コア網CN1において、論理的に経路を分けるためのもので、例えば、L2TPプロトコルによるトンネルやIPsecによるトンネル、GREやGTPといったプロトコルによるトンネルがこれに該当する。またトンネルTN１はセッションSE1、SE2を束にしてパケットをGW1とGW3間において論理的に通り抜けるパスである。トンネルTL2はセッションSE3に関するパケットをG2とG3間において論理的に通り抜けパスである。
【００２１】
ネットワーク中継装置GW1、GW2、GW3は受信したパケットを転送するため、転送先によってパケットのヘッダを付け替えして、IPのルーティング情報に従って転送するなどの処理を行う。例えば、ゲートウェイGW3において、インターネットIN1から受信したパケットをコア網CN1に転送するとき、パケットPK2にGREヘッダおよびIPヘッダIP1でカプセル化し、パケットPK1としてコア網CN1に送信する。またゲートウェイGW3は、コア網CN1から受信したパケットをインターネット側に転送するとき、パケットPK1のカプセル化したGREヘッダやIPヘッダIP2を取り除き、IPヘッダIP2の宛先アドレス情報に従って、パケットPK2としてインターネット側に送信する。ここでは、カプセルするヘッダはL2TPやGTPなどのプロトコルを用いてもよく、GREに限定したものではない。
【００２２】
以下、ゲートウェイGW3はコア網CN1から受信したパケットをインターネット側に送信する時の処理について説明する。
【００２３】
図2は、本発明のネットワーク中継装置の機能ブロックの構成を示す。ネットワーク中継装置100は受信待ちキュー101と、下位フロー識別部102と、上位フロー識別待ちキュー103-1〜103-nと、転送処理待ちキュー104-1〜104-mと、上位フロー識別/転送処理部105-１〜105-xと、送信待ちキュー106から構成されている。n,m,xは2以上の整数である。ネットワーク中継装置100がパケットを受信したとき、受信待ちキュー101にパケットを一時的に保持する。下位フロー識別部102は受信待ちキュー101からパケットを１つ取り出し、パケットで共通して使用されるIPやEtherなどの下位レイヤ(OSIモデルのレイヤ3以下相当)のヘッダ部分を解析し、下位フローを識別するための下位レイヤのヘッダ情報を取り出す。下位フロー識別部102は取り出したヘッダ情報引数としてハッシュ関数を計算し、計算したハッシュ値によって、下位フロー毎に上位フロー識別待ちキュー103-１〜103-nに振り分ける。下位フロー識別部102は下位レイヤの決まったエリアを下位フロー識別のために処理することで、処理コストを一定に保つことができる。図１で示したパケットPK1を用いて説明すると、IPヘッダIP１以下はレイヤ3以下のヘッダ部分である。例えば、パケットPK1のIPヘッダIP1の送信元IPアドレスや宛先IPアドレスを取り出してハッシュ計算を行う。IPヘッダIP1の送信元IPアドレスはGW3のIPアドレス、宛先IPアドレスはG1のIPアドレスであるので、GW3からGW1へのパケットはすべて同じハッシュ値となり、同一下位フローとみなして同一上位フロー識別待ちキューに振り分けられる。
【００２４】
上位フロー識別/転送処理部105-1〜105-xは、上位フロー識別処理と転送処理の2つの処理を1つのコア上同居させた処理部である。本実施例においてマルチコアCPUを用いたが、複数のCPUを用いて実施してもよい。上位フロー識別処理は受信したパケット毎のサービスやトンネルするプロトコルが変わりうる上位レイヤ(OSIモデルのレイヤ4以上相当)のヘッダ情報で上位フローを識別し、取り出したヘッダ情報でハッシュ計算し、計算したハッシュ値によって、上位フロー毎に転送処理待ちキュー104-1〜104-mに振り分ける。上位フロー識別処理は扱うプロトコルやサービスによって処理コストが変化する処理である。図１で示したパケットPK1を用いて説明すると、GREヘッダはレイヤ4以上のヘッダ情報である。GREヘッダ情報のGRE KEYでセッションを識別した場合、GRE KEYを引数としてハッシュ計算した時、端末がインターネットに接続するサービス毎のパケットが同一上位フローとなり、同一セッションにおけるパケットが同一転送処理待ちキュー105-1〜105-xに振り分けられる。また、上位フロー識別処理はレイヤ2、レイヤ3とレイヤ4以上のヘッダ情報の組合せでハッシュ関数計算してもよい。ここでは、トンネルするプロトコルはL2TPやGTPなどを用いてもよく、GREに限定したものではない。
【００２５】
転送処理は、転送先によってパケットのヘッダを付け替えし、ルーティングなどの処理を行い、送信待ちキュー106にパケットを入れる。上位フロー識別/転送処理部105-1〜105-xは上位フロー識別待ちキュー103-１〜103-nまた転送処理待ちキュー104-1〜104-mのどのキューからもパケットを刈り取ることができる。上位フロー識別待ちキュー103-１〜103-nにあるパケットを刈り取ると、上位フロー識別処理を行い、また転送処理待ちキューにあるパケットを刈り取ると、転送処理を行う。
【００２６】
次に、図3は下位フロー識別部と上位フロー識別待ちキューを示す。下位フロー識別部102はパケットを下位フロー毎に、上位フロー識別待ちキュー103-1〜103-mに振分処理するものである。下位フロー識別部102は受信したパケットで共通して使用される下位レイヤのヘッダ情報に従い、パケットを分類する。この分類は下位フローと呼ぶ。例えば、IPヘッダの宛先IPアドレスや送信元IPアドレス、Etherヘッダの送信元MACアドレスや宛先MACアドレスなどといった下位レイヤのヘッダ情報で、計算したハッシュ値を下位フロー識別するための情報として用いる。ここでは、このハッシュ値を下位フロー識別番号と呼ぶ。下位フロー識別部104は下位フロー識別番号毎にある上位フロー識別待ちキュー103-1〜103-mにパケットを振り分ける。つまり、下位フロー識別番号がｍ個があれば、上位フロー識別待ちキューはｍ個存在する。本実施例では、103-1〜103-mがｍ個の上位フロー識別待ちキューである。
【００２７】
図4は上位フロー識別/転送処理部と転送待ちキューを示す。上位フロー識別処理部とはパケットを上位フロー毎に、転送処理待ちキューは104-1〜104-n個に振り分ける処理をするものである。上位フロー識別処理部は受信したパケット毎のサービスやトンネルするプロトコルが変わりうるレイヤ4以上のヘッダ情報、もしくはレイヤ2、レイヤ3とレイヤ4以上のヘッダ情報の組合せで、パケットを分類する。この分類は上位フローと呼ぶ。例えば、GREヘッダのGRE KEYなどで計算したハッシュ値は上位フロー識別するための情報として用いる。ここでは、このハッシュ値を上位フロー識別番号と呼ぶ。上位フロー識別部は上位フロー識別番号毎にある転送処理待ちキュー104-1〜104-nにパケットを振り分ける。つまり、上位フロー識別番号がｎ個があれば、転送処理待ちキューがｎ個存在する。本実施例では、104-1〜104-nがn個転送処理待ちキューである。
【００２８】
図5は上位フロー識別部/転送処理部がパケットを刈り取る処理を示す。上位フロー識別/転送処理部105-1〜105-xは上位フロー識別待ちキュー103-１〜103-nまた転送処理待ちキュー104-1〜104-mのどのキューからもパケットを刈り取って処理することができる。以下、上位フロー識別待ちキューと転送処理待ちキューを合わせて、待ちキューと呼ぶ。1つの上位フロー識別/転送処理部がある待ちキューにあるパケットを処理している間、フローの順序逆転を防ぐため、ほかの上位フロー識別/転送処理部はそのキューにあるパケットを処理することができない。例えば、上位ブロー識別/転送処理部105-2は上位フロー識別待ちキュー103-2にあるパケット、上位ブロー識別/転送処理部105-3は転送処理待ちキュー104-1にあるパケット、上位ブロー識別/転送処理部105-xは転送処理待ちキュー104-2にあるパケットを処理しているとすると、上位フロー識別/転送処理部105-1は103-2、104-1、104-2のキューにあるパケットを処理することができない。それ以外の待ちキューにあるパケットを処理することができる。上位フロー識別/転送処理部が処理を行われている間、キューに排他をかけることで、ほかの上位フロー識別/転送処理部のアクセスを防ぐ。
【００２９】
図6は上位フロー待ち処理キューと転送待ち処理キューの排他テーブルを示す。
排他テーブル200は待ち処理キュー番号201と排他フラグ202から構成される。待ち処理キュー番号201は各上位フロー待ち処理キューまた各転送待ち処理キューの番号である。上位フロー識別/転送処理部は処理が始めると、該当待ち処理キュー番号に対して排他フラグをONにし、処理が完了後、該当待ち処理キュー番号に対して排他フラグをOFFにする。排他フラグをONに設定した上位フロー識別/転送処理部以外の上位フロー識別/転送処理部は該当待ち処理キュー番号にあるパケットを処理することができない。
【００３０】
図7は待ちキュー番号を示す。待ちキュー番号が8ビットの2進数で表したとき、上位1ビットが上位フロー識別待ちキューか転送処理待ちキューを表し、下位7ビットが上位/下位フロー識別番号を表す。図7で示したように、上位1ビットの値が0の場合、上位フロー識別待ちキューを表し、1の場合は転送処理待ちキューを表している。上位ブロー識別/転送処理部105-1〜105-xはどの待ちキューから刈り取るかの選択方式としては、統計情報により刈り取る回数が一番少ないキューから処理する方式と、時系列に待ちキューを処理する方式と、キュー長が一番長い待ちキューから処理する方式と、ランダムに待ちキューを処理する方式をとってもよい。
【００３１】
図８は上位ブロー識別/転送処理部の処理フローチャートを示す。上位ブロー識別/転送処理部105-1〜105-xは統計情報、時系列、キュー長またはランダムのいずれかの方法で待ちキューを決定する(S301)。決定した待ちキューにおいて、排他テーブル200を参照し、該当待ちキューの排他フラグを判定する(S302)。該当待ちキューの排他フラグがONの場合、再び処理待ちキューを決定(S301)の処理を行う。排他フラグはOFFの場合、排他フラグをONにする(S303)。上位ブロー識別/転送処理部105-1〜105-xは決定した待ちキューの番号で上位フロー識別待ちキューか転送処理待ちキューに属するパケットを判定する(S304)。上位フロー識別キューと判定した場合、上位ブロー識別/転送処理部105-1〜105-xは上位フロー識別処理を行う。上位ブロー識別/転送処理部105-1〜105-xはハッシュに必要なヘッダ情報を取り出し、ハッシュ計算を行う(S305)。計算したハッシュ値によって転送処理待ちキューにパケットを振り分ける(S306)。排他テーブル200において該当待ちキューの排他フラグをOFFにし(S309)、処理を終了する。
転送処理待ちキューと判定した場合、上位ブロー識別/転送処理部105-1〜105-xは転送処理を行う。上位ブロー識別/転送処理部105-1〜105-xはパケット転送するためパケットのヘッダ付け替えし、ルーティング検索などの処理を行い(S307)、送信待ちキューにパケットを入れる(S308)。排他テーブル200にアクセスし、排他フラグをOFFにして(S309)、処理を終了する。
【００３２】
本実施例によるネットワーク中継装置は、従来のパケット振分処理を処理量が一定となる下位フロー識別処理と変わりうる上位フロー識別処理に分けることによって、振分処理における負荷を分散した。また処理量が変わる上位フロー識別処理と転送処理部の2つの処理を1つのコア上共存させたとこで、コアはいずれかの振る舞いが出来て、トラヒックに応じてダイナミックに必要な処理を行うことができる。
【００３３】
次に、本発明に係る第２の実施例について説明する。実施例２では、ゲートウェイGW3はインターネットIN11から受信したパケットをコア網CN1に送信する時の処理について説明する。
【００３４】
実施例２では、図1において、ゲートウェイGW3は受信したパケットPK2はレイヤ4以上のヘッダがないことが分かる。このようなパケットは、第1の実施例において述べた下位フロー識別となる下位レイヤのヘッダしかないため、上位フロー識別処理が不要となる。下位フロー識別部102はパケットに対して、レイヤ4以上となるヘッダ情報があるかどうか、つまり上位フロー識別処理必要かどうかを判定する。例えば、ゲートウェイGW3において受信したパケットのIPヘッダの宛先IPアドレスが端末UT1、UT2の場合、インターネット側から受信したパケットであり、レイヤ4以上のヘッダがなく、上位フロー識別処理が必要ないと判断できる。または受信したパケットのIPヘッダの送信元IPアドレスがアクセスゲートウェイGW1、GW2の場合、コア網側からきたパケットで、レイヤ4以上のヘッダあり、上位フロー識別処理が必要あると判断できる。また受信したパケットのIPヘッダのプロトコルフィールドの値によって判断できる。プロトコルフィールドはIPより上位のプロトコルを表す値である。例えば、アクセスゲートウェイGW1とゲートウェイGW3間、GREプロトコルによるトンネリングする場合、ゲートウェイGW3がIPヘッダのプロトコルフィールドの値が47(GREプロトコル)なら、レイヤ4以上のヘッダがあると判断し、47以外ならレイヤ4以上のヘッダがないと判断できる。ここでは、L2TPやGTPなどのプロトコルを用いてトンネリングしてもよく、GREに限定したものではない。
【００３５】
下位フロー識別部102は上位フロー識別処理が必要ではないパケットに対して、パケットのレイヤ3以下のヘッダ情報に基づき、ハッシュ計算し、計算したハッシュ値によって、下位フロー毎に転送処理待ちキュー104-1〜104-nに振り分ける。上位フロー識別処理が必要なパケットに対して、同様にハッシュ計算し、下位フロー毎に上位フロー待ちキュー103-1〜103-mに振り分ける。
【００３６】
図９は下位フロー識別部の処理フローチャートを示す。下位フロー識別部102は受信キュー101からパケットと一つ取り出し(S401)、レイヤ3以下のヘッダ解析を行う(S402)。レイヤ3以下のヘッダ解析(S402)において、ハッシュ計算の引数となる情報と取り出す。また送信元IPアドレス、宛先IPアドレスやプロトコルフィールドの値などを用いてパケットが上位フロー識別必要かどうかの判定を行う(S403)。上位フロー識別が必要だと判断した場合、取り出したヘッダ情報でハッシュ計算し(S404)、計算したハッシュ値によって下位フロー毎に上位フロー識別待ちキュー103-1〜103-mに振り分ける(S406)。上位フロー識別処理が必要ではないパケットに対して、同様にハッシュ計算し(S404)、下位フロー毎にを転送処理待ちキュー104-1〜104-nに振り分ける(S405)。
【符号の説明】
【００３７】
100  ネットワーク中継装置
101  受信待ちキュー
102  下位フロー識別部
103-1〜103-m  上位フロー識別待ちキュー
104-1〜104-n  転送処理待ちキュー
105-1〜105-x  上位フロー識別/転送処理部
106  送信待ちキュー
200  排他テーブル
201  待ちキュー番号
202  排他テーブル
【図１】
2011077746.tif 000003
【図２】
2011077746.tif 000004
【図３】
2011077746.tif 000005
【図４】
2011077746.tif 000006
【図５】
2011077746.tif 000007
【図６】
2011077746.tif 000008
【図７】
2011077746.tif 000009
【図８】
2011077746.tif 000010
【図９】
2011077746.tif 000011