(57)【要約】【課題】複数のＣＰＵコアをもつ通信装置間での通信コネクション確立のときに、処理を実行する処理用コアを決定する際に管理テーブルを検索せず処理を高速化する。【解決手段】ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２は複数のＣＰＵコアをもつ。ＩＰｓｅｃ装置１は一番目のＩＫＥデータに自身の処理用コアの番号１０２を設定し送信する。ＩＰｓｅｃ装置２は二番目のＩＫＥデータに自身の処理用コアの番号１０４と一番目のＩＫＥデータに含まれたＩＰｓｅｃ装置１の処理用コアの番号１０２を設定して送信する。ＩＰｓｅｃ装置１は受信した二番目のＩＫＥデータから処理用コアを番号１０２のＣＰＵコアと決定する。ＩＰｓｅｃ装置１は三番目のＩＫＥデータに自身の処理コアの番号１０２とＩＰｓｅｃ装置２の処理用コアの番号１０４を設定し送信する。ＩＰｓｅｃ装置２は受信した三番目のＩＫＥデータから処理用コアを番号１０４のＣＰＵコアと決定する。【選択図】図７
2009277069.tif 000002
【特許請求の範囲】
【請求項１】
通信コネクションの確立を要求する第１通信装置と、前記第１通信装置から通信コネクションの確立を要求される第２通信装置とを備えた通信システムにおいて、
前記第１通信装置は、
通信コネクションの確立処理に使用可能であるとともに固有の識別子が付与された複数の第１側ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアと、
前記複数の第１側ＣＰＵコアの中から通信コネクションの確立処理に使用する第１側ＣＰＵコアである第１側処理コアを決定する第１側処理コア決定部と、
前記第２側通信装置と通信する第１側通信部と
を備え、
前記第２通信装置は、
通信コネクションの確立処理に使用可能であるとともに固有の識別子が付与された複数の第２側ＣＰＵコアと、
前記複数の第２側ＣＰＵコアの中から通信コネクションの確立処理に使用する第２側ＣＰＵコアである第２側処理コアを決定する第２側処理コア決定部と、
前記第１側通信装置と通信する第２側通信部と
を備え、
前記第１側処理コア決定部は、
所定の第１側基準に従って前記第１側処理コアを決定し、
前記所定の第１側基準により決定された前記第１側処理コアは、
自己である前記第１側処理コアに付与された前記識別子を含むとともに通信コネクションの確立を要求する第１側確立要求データを作成し、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側確立要求データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側確立要求データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により前記第１側確立要求データが受信されると所定の第２側規則に従って前記第１側確立要求データを処理する前記第２側処理コアを決定し、
前記所定の第２側基準により決定された前記第２側処理コアは、
前記第１側確立要求データに応答するデータであって、自己である前記第２側処理コアに付与された識別子と、前記第１側確立要求データに含まれている前記第１側処理コアの識別子とを含む第２側応答データを作成し、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
前記第１側通信部は、
前記第２側通信部により送信された前記第２側応答データを受信し、
前記第１側処理コア決定部は、
前記第１側通信部により受信された前記第２側応答データに含まれている前記第１側処理コアの識別子の示す前記第１側ＣＰＵコアを前記第２側応答データを処理する前記第１側処理コアとして決定し、
前記識別子から決定された前記第１側処理コアは、
前記第２側応答データに応答するデータであって、前記第２側応答データに含まれている前記第１側処理コアの前記識別子と前記第２側処理コアの前記識別子とを含む第１側応答データを作成し、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側応答データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側応答データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により受信された前記第１側応答データに含まれている前記第２側処理コアの前記識別子の示す前記第２側ＣＰＵコアを前記第１側応答データを処理する前記第２側処理コアとして決定し、
前記識別子から決定された前記第２側処理コアは、
前記第１側応答データに応答するデータであって、前記第１側応答データに含まれている前記第１側処理コアの識別子と前記第２側処理コアの識別子とを含む第２側応答データを作成し、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
以降、前記第１通信装置と前記第２通信装置とは、
通信コネクションが確立するまでの間、相手の通信装置からの応答データに対する別の応答データを返信するとともに前記相手の通信装置に返信する前記別の応答データに前記第１側処理コアの前記識別子と前記第２側処理コアの前記識別子とを含めて送信し、前記相手の通信装置から受信した前記応答データに含まれている前記識別子に従って、前記相手の通信装置から受信した前記応答データを処理する処理コアを決定することを特徴とする通信システム。
【請求項２】
前記第１通信装置は、さらに、
前記複数の第１側ＣＰＵコアの各第１側ＣＰＵコアごとの専有メモリ領域を有する第１側記憶部を備え、
前記第２通信装置は、さらに、
前記複数の第２側ＣＰＵコアの各第２側ＣＰＵコアごとの専有メモリ領域を有する第２側記憶部を備え、
前記所定の基準により決定された前記第１側処理コアは、
前記第１側確立要求データを作成するときに、前記第１側記憶部の自己の専有メモリ領域に所定の状態情報を書き込む第１側状態テーブルを作成し、前記第１側状態テーブルに前記所定の状態情報を書き込むとともに、前記第１側確立要求データに前記第１側処理コアの識別子に加えて、前記自己の専有メモリ領域における前記第１側状態テーブルのアドレスを含め、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側確立要求データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側確立要求データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により前記第１側確立要求データが受信されると所定の規則に従って前記第１側確立要求データを処理する前記第２側処理コアを決定し、
前記所定の基準により決定された前記第２側処理コアは、
前記第２側記憶部の自己の専有メモリ領域に所定の状態情報を書き込む第２側状態テーブルを作成し、前記第２側状態テーブルに前記所定の状態情報を書き込むとともに、前記第２側応答データに前記第１側処理コアの識別子と前記第２側処理コアの識別子とに加えて、前記自己の専有メモリ領域における前記第２側状態テーブルのアドレスと、前記第１側確立要求データに含まれている前記第１側状態テーブルのアドレスとを含め、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
前記第１側通信部は、
前記第２側通信部により送信された前記第２側応答データを受信し、
前記第１側処理コア決定部は、
前記第１側通信部により受信された前記第２側応答データに含まれている前記第１側処理コアの識別子の示す前記第１側ＣＰＵコアを前記第２側応答データを処理する前記第１側処理コアとして決定し、
前記識別子から決定された前記第１側処理コアは、
前記第１側通信部により受信された前記第２側応答データに含まれている前記第１側状態テーブルのアドレスを参照して前記第１側状態テーブルにアクセスすることにより前記第１側状態テーブルに所定の状態情報を書き込むとともに、前記第１側応答データに前記第１側処理コアの識別子と前記第２側処理コアの識別子とに加えて、前記第２側応答データに含まれている前記第１側状態テーブルのアドレスと前記第２側状態テーブルのアドレスとを含め、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側応答データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側応答データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により受信された前記第１側応答データに含まれている前記第２側処理コアの識別子の示す前記第２側ＣＰＵコアを前記第１側応答データを処理する前記第２側処理コアとして決定し、
前記識別子から決定された前記第２側処理コアは、
前記第２側通信部により受信された前記第１側応答データに含まれている前記第２側状態テーブルのアドレスを参照して前記第２側状態テーブルにアクセスすることにより前記第２側状態テーブルに所定の状態情報を書き込むとともに、前記第２側応答データに前記第１側処理コアの識別子と前記第２側処理コアの識別子とに加えて、前記第１側応答データに含まれている前記第１側状態テーブルのアドレスと前記第２側状態テーブルのアドレスとを含め、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
以降、前記第１通信装置と前記第２通信装置とは、
通信コネクションが確立するまでの間、相手の通信装置からの応答データに応答する別の応答データを返信するとともに前記相手の通信装置に返信する前記別の応答データに前記第１側処理コアの識別子と前記第２側処理コアの識別子とに加えて、前記第１側状態テーブルのアドレスと前記第２側状態テーブルのアドレスとを含めて送信し、前記相手の通信装置から受信した前記応答データに含まれている前記アドレスを参照して状態テーブルにアクセスすることを特徴とする請求項１記載の通信システム。
【請求項３】
通信コネクションの確立を要求する第１通信装置と、前記第１通信装置から通信コネクションの確立を要求される第２通信装置とを備えた通信システムにおいて、
前記第１通信装置は、
通信コネクションの確立処理に使用可能な複数の第１側ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアと、
前記複数の第１側ＣＰＵコアの中から通信コネクションの確立処理に使用する第１側ＣＰＵコアである第１側処理コアを所定の第１側基準に従って決定する第１側処理コア決定部と、
前記複数の第１側ＣＰＵコアの各第１側ＣＰＵコアからアクセス可能な共有メモリ領域を有する第１側記憶部と、
前記第２側通信装置と通信する第１側通信部と
を備え、
前記第２通信装置は、
通信コネクションの確立処理に使用可能な複数の第２側ＣＰＵコアと、
前記複数の第２側ＣＰＵコアの中から通信コネクションの確立処理に使用する第２側ＣＰＵコアである第２側処理コアを所定の第２側基準に従って決定する第２側処理コア決定部と、
前記複数の第２側ＣＰＵコアの各第２側ＣＰＵコアからアクセス可能な共有メモリ領域を有する第２側記憶部と、
前記第１側通信装置と通信する第２側通信部と
を備え、
前記第１側処理コア決定部は、
前記第１側基準に従って前記第１側処理コアを決定し、
決定された前記第１側処理コアは、
前記第１側記憶部の前記共有メモリ領域に所定の状態情報を書き込む第１側状態テーブルを作成し、前記第１側状態テーブルに前記所定の状態情報を書き込むとともに、前記共有メモリ領域における前記第１側状態テーブルのアドレスを含み、且つ、通信コネクションの確立を要求する第１側確立要求データを作成し、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側確立要求データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側確立要求データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により前記第１側確立要求データが受信されると前記第２側基準に従って前記複数の第２側ＣＰＵコアの中から前記第１側確立要求データを処理する前記第２側処理コアを決定し、
決定された前記第２側処理コアは、
前記第２側記憶部の前記共有メモリ領域に所定の状態情報を書き込む第２側状態テーブルを作成し、前記第２側状態テーブルに前記所定の状態情報を書き込むとともに、前記第１側確立要求データに応答するデータであって前記共有メモリ領域における前記第２側状態テーブルのアドレスと、前記第１側確立要求データに含まれている前記第１側状態テーブルのアドレスとを含む第２側応答データを作成し、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
前記第１側通信部は、
前記第２側通信部により送信された前記第２側応答データを受信し、
前記第１側処理コア決定部は、
前記第１側通信部により前記第２側応答データが受信されると前記第１側基準に従って前記複数の第１側ＣＰＵコアの中から前記第２側応答データを処理する前記第１側処理コアを決定し、
決定された前記第１側処理コアは、
前記第１側通信部により受信された前記第２側応答データに含まれている前記第１側状態テーブルのアドレスを参照して前記第１側状態テーブルにアクセスすることにより前記第１側状態テーブルに所定の状態情報を書き込むとともに、前記第２側応答データに応答するデータであって前記第２側応答データに含まれている前記第１側状態テーブルのアドレスと前記第２側状態テーブルのアドレスとを含む第１側応答データを作成し、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側応答データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側応答データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により前記第１側応答データが受信されると前記第２側基準に従って前記複数の第２側ＣＰＵコアの中から前記第１側応答データを処理する前記第２側処理コアを決定し、
決定された前記第２側処理コアは、
前記第２側通信部により受信された前記第１側応答データに含まれている前記第２側状態テーブルのアドレスを参照して前記第２側状態テーブルにアクセスすることにより前記第２側状態テーブルに所定の状態情報を書き込むとともに、前記第１側応答データに応答するデータであって前記第１側応答データに含まれている前記第１側状態テーブルのアドレスと前記第２側状態テーブルのアドレスとを含む第２側応答データを作成し、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
以降、前記第１通信装置と前記第２通信装置とは、
通信コネクションが確立するまでの間、相手の通信装置からの応答データに応答する別の応答データを返信するとともに前記相手の通信装置に返信する前記別の応答データに前記第１側状態テーブルのアドレスと前記第２側状態テーブルのアドレスとを含めて送信し、前記相手の通信装置から受信した前記応答データに含まれている前記アドレスを参照して状態テーブルにアクセスすることを特徴とする通信システム。
【請求項４】
前記第１側処理コアと前記第２側処理コアとは、
前記相手の通信装置に送信する前記状態テーブルのアドレスを前記相手の通信装置の処理コアに復号可能に暗号化することを特徴とする請求項２または３のいずれかに記載の通信システム。
【請求項５】
相手の通信装置に通信コネクションの確立を要求する第１通信装置において、
通信コネクションの確立処理に使用可能であるとともに固有の識別子が付与された複数の第１側ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアと、
前記複数の第１側ＣＰＵコアの中から通信コネクションの確立処理に使用する第１側処理コアを決定する第１側処理コア決定部と、
前記相手の通信装置と通信する第１側通信部と
を備え、
前記第１側処理コア決定部は、
所定の第１側基準に従って前記第１側処理コアを決定し、
前記所定の第１側基準により決定された前記第１側処理コアは、
自己である前記第１側処理コアに付与された前記識別子を含むとともに通信コネクションの確立を要求する第１側確立要求データを作成し、前記第１側確立要求データを前記第１側通信部を介して、通信コネクションの確立に使用されるデータであってＣＰＵコアの識別子を含むデータを受信すると、受信した前記データに含まれる前記ＣＰＵコアの識別子を前記データに応答する第２側応答データに含めて返信する前記相手の通信装置である前記第２通信装置に送信し、
前記第１側処理コア決定部は、
前記第１側通信部を介して前記第２通信装置から前記第１側処理コアに付与された前記識別子を含む前記第２側応答データを受信するとともに、前記第２側応答データに含まれる前記第１側処理コアに付与された前記識別子の示す前記第１側ＣＰＵコアを、受信した前記第２側応答データを処理する前記第１側処理コアとして決定し、
前記識別子により決定された前記第１側処理コアは、
前記第２側応答データに応答する第１側応答データに前記第２側応答データに含まれている前記第１側処理コアに付与された前記識別子を含めて前記第２通信装置に前記第１側通信部を介して送信し、
以降、
前記第１通信装置は、
通信コネクションが確立するまでの間、前記第２通信装置からの第２側応答データに応答する第１側応答データに前記第１側処理コアに付与された前記識別子を含むめて前記第２通信装置に返信するとともに、前記第２通信装置から受信した第２側応答データに含まれている前記第１側処理コアに付与された前記識別子に従って、前記第２通信装置から受信した前記第２側応答データを処理する前記第１側処理コアを決定することを特徴とする第１通信装置。
【請求項６】
相手の通信装置に通信コネクションの確立を要求する第１通信装置において、
通信コネクションの確立処理に使用可能な複数の第１側ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアと、
前記複数の第１側ＣＰＵコアの中から通信コネクションの確立処理に使用する第１側処理コアを所定の第１側基準に従って決定する第１側処理コア決定部と、
前記複数の第１側ＣＰＵコアの各第１側ＣＰＵコアからアクセス可能な共有メモリ領域を有する第１側記憶部と、
前記相手の通信装置と通信する第１側通信部と
を備え、
前記第１側処理コア決定部は、
前記所定の第１側基準に従って前記第１側処理コアを決定し、
前記所定の第１側基準に従って決定された前記第１側処理コアは、
前記第１側記憶部の前記共有メモリ領域に所定の状態情報を書き込む第１側状態テーブルを作成し、前記第１側状態テーブルに前記所定の状態情報を書き込むとともに、前記共有メモリ領域における前記第１側状態テーブルのアドレスを含み、且つ、通信コネクションの確立を要求する第１側確立要求データを作成し、前記第１側確立要求データを前記第１側通信部を介して、通信コネクションの確立に使用されるデータであって前記第１側状態テーブルのアドレスを含むデータを受信すると、受信した前記データに含まれる前記第１側状態テーブルの前記アドレスを前記データに応答する第２側応答データに含めて返信する前記相手の通信装置である前記第２通信装置に送信し、
前記第１側処理コア決定部は、
前記第１側通信部を介して前記第２通信装置から前記第１側状態テーブルの前記アドレスを含む前記第２側応答データを受信すると、前記第１側基準に従って、受信した前記第２側応答データを処理する前記第１側処理コアを決定し、
前記第１側基準により定された前記第１側処理コアは、
受信した前記第２側応答データに含まれている前記第１側状態テーブルの前記アドレスを参照して前記第１側状態テーブルにアクセスすることにより前記第１側状態テーブルに所定の状態情報を書き込むとともに、前記第２側応答データに応答するデータであって前記第２側応答データに含まれている前記第１側状態テーブルの前記アドレスを含む第１側応答データを作成し、作成した前記第１側応答データを前記第１側通信部を介して前記第２通信装置に送信し、
以降、
第１通信装置は、
通信コネクションが確立するまでの間、前記第２通信装置からの第２側応答データに応答する第１側応答データに前記第１側状態テーブルの前記アドレスを含めて返信するとともに、前記第２通信装置から受信した第２側応答データに含まれている前記第１側状態テーブルの前記アドレスを参照して前記第１側状態テーブルにアクセスすることを特徴とする第１通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信装置と通信装置との間で通信コネクションを確立する通信システムに関する。
【背景技術】
【０００２】
通信ネットワークに接続されたニ者間の通信装置で通信データの転送を行なうプロトコルとして、論理的な通信路であるコネクションを生成し通信するコネクション確立型のプロトコルとコネクションを確立しないで通信するコネクションレス型のプロトコルが使用されている。コネクション確立型のプロトコルとしは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、ＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）などである。通信プロトコルでのコネクション確立の時系列シーケンスにおいては、個々の通信装置それぞれで状態を維持している。対向の通信装置からの通信データを受信し処理するために状態を維持している理由は、通信ネットワーク上での通信データの紛失や重複などに備え、処理を高速化するために用いられている。通信装置上でＴＣＰやＩＫＥ等を実装する場合は、ソフトウェアにより処理される場合がほとんどであり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にプログラムを実行させて、プロトコルシーケンスの状態から状態へ遷移する処理を実現する。一方で、以前からＣＰＵを用いた処理の並列化によるプログラムの高速化は多くの実装方法が提案されている。例えば文献、特開平９−２１２３７５号公報、特開平９−６２６３７号公報、特表２００７−５２６７１８号公報などである。最近では、ＣＰＵの中に複数のＣＰＵコアを内蔵したマルチコアＣＰＵを用いたＬＳＩも市販されている。
【０００３】
ＩＫＥでは、通信で用いるコネクションをＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）と呼んでいる。ＳＡを確立すると同時に、暗号通信で用いるアルゴリズムと秘密鍵を二者間で共有する。ＳＡ確立のためには、通信プロトコルシーケンスの途中の状態をメモリに管理テーブルとして記憶しておいて維持管理する。従来の技術としては、特開平９−６２６３７のように、受信した通信データの内容を用いて、あらかじめ設定されていた管理テーブルを検索し、起動タイプと起動パラメータを得て、複数のプロセッサで処理を実行していた。
【特許文献１】特開平９−２１２３７５号公報
【特許文献２】特開平９−６２６３７号公報
【特許文献３】特表２００７−５２６７１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来では、マルチコアＣＰＵの場合、処理を実行するプロセッサ（ＣＰＵコア）を決定するのに管理テーブルを検索する必要があり、処理時間がかかっていた。またコネクションやＳＡを管理している管理テーブルを検索する必要があり、処理時間がかかっていた。
【０００５】
この発明は、処理を実行するプロセッサ（ＣＰＵコア）を決定する際に管理テーブルを検索しないで、処理を高速化することを目的とする。また、コネクションやＳＡを管理している管理テーブルを検索しないで、処理を高速化することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の通信システムは、
通信コネクションの確立を要求する第１通信装置と、前記第１通信装置から通信コネクションの確立を要求される第２通信装置とを備えた通信システムにおいて、
前記第１通信装置は、
通信コネクションの確立処理に使用可能であるとともに固有の識別子が付与された複数の第１側ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアと、
前記複数の第１側ＣＰＵコアの中から通信コネクションの確立処理に使用する第１側ＣＰＵコアである第１側処理コアを決定する第１側処理コア決定部と、
前記第２側通信装置と通信する第１側通信部と
を備え、
前記第２通信装置は、
通信コネクションの確立処理に使用可能であるとともに固有の識別子が付与された複数の第２側ＣＰＵコアと、
前記複数の第２側ＣＰＵコアの中から通信コネクションの確立処理に使用する第２側ＣＰＵコアである第２側処理コアを決定する第２側処理コア決定部と、
前記第１側通信装置と通信する第２側通信部と
を備え、
前記第１側処理コア決定部は、
所定の第１側基準に従って前記第１側処理コアを決定し、
前記所定の第１側基準により決定された前記第１側処理コアは、
自己である前記第１側処理コアに付与された前記識別子を含むとともに通信コネクションの確立を要求する第１側確立要求データを作成し、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側確立要求データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側確立要求データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により前記第１側確立要求データが受信されると所定の第２側規則に従って前記第１側確立要求データを処理する前記第２側処理コアを決定し、
前記所定の第２側基準により決定された前記第２側処理コアは、
前記第１側確立要求データに応答するデータであって、自己である前記第２側処理コアに付与された識別子と、前記第１側確立要求データに含まれている前記第１側処理コアの識別子とを含む第２側応答データを作成し、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
前記第１側通信部は、
前記第２側通信部により送信された前記第２側応答データを受信し、
前記第１側処理コア決定部は、
前記第１側通信部により受信された前記第２側応答データに含まれている前記第１側処理コアの識別子の示す前記第１側ＣＰＵコアを前記第２側応答データを処理する前記第１側処理コアとして決定し、
前記識別子から決定された前記第１側処理コアは、
前記第２側応答データに応答するデータであって、前記第２側応答データに含まれている前記第１側処理コアの前記識別子と前記第２側処理コアの前記識別子とを含む第１側応答データを作成し、
前記第１側通信部は、
前記第１側処理コアにより作成された前記第１側応答データを前記第２通信装置に送信し、
前記第２側通信部は、
前記第１側通信部により送信された前記第１側応答データを受信し、
前記第２側処理コア決定部は、
前記第２側通信部により受信された前記第１側応答データに含まれている前記第２側処理コアの前記識別子の示す前記第２側ＣＰＵコアを前記第１側応答データを処理する前記第２側処理コアとして決定し、
前記識別子から決定された前記第２側処理コアは、
前記第１側応答データに応答するデータであって、前記第１側応答データに含まれている前記第１側処理コアの識別子と前記第２側処理コアの識別子とを含む第２側応答データを作成し、
前記第２側通信部は、
前記第２側処理コアにより作成された前記第２側応答データを前記第１通信装置に送信し、
以降、前記第１通信装置と前記第２通信装置とは、
通信コネクションが確立するまでの間、相手の通信装置からの応答データに対する別の応答データを返信するとともに前記相手の通信装置に返信する前記別の応答データに前記第１側処理コアの前記識別子と前記第２側処理コアの前記識別子とを含めて送信し、前記相手の通信装置から受信した前記応答データに含まれている前記識別子に従って、前記相手の通信装置から受信した前記応答データを処理する処理コアを決定することを特徴とする。
【発明の効果】
【０００７】
この発明により、マルチコアＣＰＵを有する通信装置において、処理を実行するプロセッサ（ＣＰＵコア）を決定する際に管理テーブルを検索しないで、処理を高速化する通信システムを提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下に説明する実施の形態１〜実施の形態４は、マルチコアＣＰＵを用いた通信装置において、通信プロトコルのコネクション生成時、処理するＣＰＵコアの情報やコネクションごとの管理テーブルの情報を通信プロトコルに含めて送受信することにより、受信処理時、これらの情報を用いて処理を高速化する実施形態である。
【０００９】
実施の形態１．
以下に図１〜図７を参照して実施の形態１を説明する。図１は、コンピュータで実現される実施の形態１のＩＰｓｅｃ装置（イニシエータ）の外観の一例を示す図である。図１において、ＩＰｓｅｃ装置は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。また、ＩＰｓｅｃ装置は、レスポンダーとなる他のＩＰｓｅｃ装置とネットワークを介して接続している。
【００１０】
図２は、コンピュータで実現されるＩＰｓｅｃ装置のハードウェア資源の一例を示す図である。図２において、ＩＰｓｅｃ装置は、プログラムを実行するマルチコアＣＰＵ１００（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。マルチコアＣＰＵ１００は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００１１】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００１２】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００１３】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、マルチコアＣＰＵ１００、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１４】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラム、マルチコアＣＰＵ１００の各ＣＰＵコアが実行するプログラムが記憶されている。マルチコアＣＰＵ１００は、プログラム群８２３からプログラムを読み出して実行する。
【００１５】
ファイル群８２４には、以下に述べる実施の形態の説明において、「状態テーブル」として説明する情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してマルチコアＣＰＵ１００によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００１６】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１７】
図３は、実施の形態１における通信システムのネットワーク構成図である。５台のＩＰｓｅｃ装置（ＩＰｓｅｃ装置１、ＩＰｓｅｃ装置２、ＩＰｓｅｃ装置３、ＩＰｓｅｃ装置４、ＩＰｓｅｃ装置５）が、広域網（幹線側）である通信ネットワーク６に接続されている。
（１）ＩＰｓｅｃ装置１のローカル接続（末端接続）の端末として、端末１１、端末１２、端末１３がＩＰｓｅｃ装置１と接続されている。
（２）ＩＰｓｅｃ装置２のローカル接続（末端接続）の端末として、端末２１、端末２２がＩＰｓｅｃ装置２と接続されている。
（３）ＩＰｓｅｃ装置３のローカル接続（末端接続）の端末として、端末３１、端末３２がＩＰｓｅｃ装置３と接続されている。
（４）ＩＰｓｅｃ装置４のローカル接続（末端接続）の端末として、端末４１、端末４２がＩＰｓｅｃ装置４と接続されている。
（５）ＩＰｓｅｃ装置５のローカル接続（末端接続）の端末として、端末５１、端末５２がＩＰｓｅｃ装置５と接続されている。
【００１８】
ＩＰｓｅｃ装置は、事前に装置に設定されているＳＰＤ（Ｓｅｃｕｒｉｔｙ  Ｐｏｌｉｃｙ  Ｄａｔａｂａｓｅ）により、２台のＩＰｓｅｃ装置間でＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を確立し、端末間の暗号通信を開始する。
【００１９】
図４は、ＩＰｓｅｃ装置１に設定されているＳＰＤである。
（１）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２とは二種類のＳＡを確立し、その内の一つのＳＡは端末１１、端末１２と端末２１間のＳＡであり、もう一つのＳＡは端末１３と端末２２間のＳＡである。
（２）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置３とは一種類のＳＡを確立し、ＳＡは端末１１、端末１２、端末１３と端末３１、端末３２間のＳＡである。
（３）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置４とは一種類のＳＡを確立し、ＳＡは端末１１、端末１２、端末１３と端末４１、端末４２間のＳＡである。
（４）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置５とは二種類のＳＡを確立し、その内の一つのＳＡは端末１１、端末１２、端末１３と端末５１間のＳＡであり、もう一つのＳＡは端末１１、端末１２、端末１３と端末５２間のＳＡである。なおＳＡごとに採用する暗号アルゴリズムは異なっている。図４によれば端末１１と端末２１間の通信においては、ＩＰｓｅｃ装置１は、対向装置であるＩＰｓｅｃ装置２とＳＡを確立し、ＥＳＰ暗号アルゴリズムとしてＡＥＳ、ＥＳＰ認証アルゴリズムとしてＨＭＡＣ−ＳＨＡ１を使用するＳＡを確立し、ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間で暗号通信する。
【００２０】
図５は、ＩＰｓｅｃ装置１が図４に示すＳＰＤに従って全てのＳＡを確立した時の図である。黒い太線で表したものがＳＡを示している。
（１）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２とは、端末１１、端末１２と端末２１間通信用のＳＡを確立し、端末１１、端末１２と端末２１間の通信データを暗号通信する。
（２）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２とは、端末１３と端末２２間通信用のＳＡを確立し、端末１３と端末２２間の通信データを暗号通信する。
（３）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置３とは、端末１１、端末１２、端末１３と端末３１、端末３２間通信用のＳＡを確立し、端末１１、端末１２、端末１３と端末３１、端末３２間の通信データを暗号通信する。
（４）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置４とは、端末１１、端末１２、端末１３と端末４１、端末４２間通信用のＳＡを確立し、端末１１、端末１２、端末１３と端末４１、端末４２間の通信データを暗号通信する。
（５）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置５とは、端末１１、端末１２、端末１３と端末５１間通信用のＳＡを確立し、端末１１、端末１２、端末１３と端末５１間の通信データを暗号通信する。
（６）ＩＰｓｅｃ装置１とＩＰｓｅｃ装置５とは、端末１１、端末１２、端末１３と端末５２間通信用のＳＡを確立し、端末１１、端末１２、端末１３と端末５２間の通信データを暗号通信する。
【００２１】
ＩＫＥにおけるＳＡ確立のプロトコルシーケンスは、業界のデファクトスタンダードとなっているＲＦＣ２４０９やＩＰｓｅｃの市販の解説本に記載されているように、ＩＰｓｅｃ装置二者間で数往復の通信によりＳＡを確立する。ＩＫＥのバージョン１のＳＡ確立では、ｍａｉｎモードで３往復、ｑｕｉｃｋモードで１．５往復の通信データのやり取りでＳＡを確立する。１台のＩＰｓｅｃ装置がＳＡを確立するための処理は、対向の装置の台数ごとに設定されたＳＡの数の可能性がある。例えばモバイル端末との通信にＩＰｓｅｃ通信を行なう場合は、モバイル端末ごとにＳＡを確立するため、数百、千台規模のモバイル端末のＳＡ確立のための性能向上方法が検討されている。ＣＰＵの中に複数のＣＰＵコアを内蔵したマルチコアＣＰＵを用いたプログラムの実装では、ＩＫＥのＳＡ確立の処理を複数のＣＰＵコアで同時に処理させれば、性能向上する。そこで、以下の実施の形態により、性能の向上を図る。
【００２２】
図６は、ＩＰｓｅｃ装置１の内部構造である。図において、
（１）マルチコアＣＰＵ１００は、複数のＣＰＵコアを内蔵している。すなわち、マルチコアＣＰＵ１００は、ＩＫＥデータ振り分けＣＰＵコア１０１（処理コア決定部）、ＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４、ＥＳＰ・ＡＨ用ＣＰＵコア１０５を内蔵している。
（２）通信Ｉ／Ｆ１１１は、端末１１、端末１２、端末１３が発信した平文データを受信し、端末１１、端末１２、端末１３へ平文データを送信する通信インタフェースである。
（３）通信Ｉ／Ｆ１１２（通信部）は、通信ネットワーク６との間で暗号データを送信かつ受信する通信インタフェースである。ＩＫＥのＳＡ確立のためのプロトコル処理は、一連の通信プロトコルシーケンスごとに、三つのＣＰＵコア（複数のＣＰＵコアの一例）であるＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４で分担する。
（４）外部メモリ１２１（記憶部）には、ＩＫＥ用ＣＰＵコア１０２の専有メモリ空間１３１があり、ＳＡ確立の一連のシーケンスのプロトコルを制御するための個々のＳＡごとに状態テーブルが書き込まれる。状態テーブルには、ＤｉｆｆｉｅＨｅｌｌｍａアルゴリズムの計算値やプロトコルの状態を示す変数等が書き込まれる。図６のＩＰｓｅｃ装置の構成はＩＰｓｅｃ装置２、ＩＰｓｅｃ装置３、ＩＰｓｅｃ装置４、ＩＰｓｅｃ装置５でも同等である。
（５）ＥＳＰの暗号通信では、例えば端末１１と端末２１間の平文データは、ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間ではＥＳＰデータとして暗号化され転送されている。ＩＰｓｅｃ装置１においては、端末１１が端末２１宛てに送信した平文データをＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１１が受信し、ＥＳＰ・ＡＨ用ＣＰＵコア１０５が平文データをＥＳＰデータに暗号化し、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＥＳＰデータをＩＰｓｅｃ装置宛へ送信する。端末２１が端末１１宛てに送信した平文データは、ＩＰｓｅｃ装置２が暗号化し、ＩＰｓｅｃ装置１へ送信し、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２が受信し、ＥＳＰ・ＡＨ用ＣＰＵコア１０５がＥＳＰの暗号データを平文データに復号し、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１１から平文データを端末１１宛へ送信する。ＥＳＰ・ＡＨ用ＣＰＵコア１０５が行う暗号処理と復号処理では、確立したＳＡにおいて保有した使用するアルゴリズムと共有した秘密鍵を用いて、それぞれ暗号処理と復号処理を行う。
【００２３】
（動作の説明）
図７は、ＩＫＥのＳＡ確立の一連のシーケンスを示した図である。また図８は、図７をさらに具体的に示したシーケンス図である。以下では主に図８を参照して動作を説明する。なお図７ではＩＰｓｅｃ装置１（第１通信装置）がＩＫＥのイニシエータとしてＳＡ確立を開始した図である。ＳＡ確立の一連のシーケンスの最初のデータを送信するＩＰｓｅｃ装置１がイニシエータとなり、対向側のＩＰｓｅｃ装置２（第２通信装置）がレスポンダーとなる。ＩＫＥのＳＡ確立の一連のシーケンスは、ＩＫＥのｖｅｒｓｉｏｎ１においては、ｍａｉｎモードやａｇｇｒｅｓｓｉｖｅモードでのＳＡ確立シーケンスのことである。
【００２４】
（ＩＰｓｅｃ装置１）
ＩＰｓｅｃ装置１のＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥのイニシエータとしてＳＡ確立を開始する時にプロトコル処理を実行するＣＰＵコア（処理コア）を所定の基準（第１側基準）に従って決める（Ｓ１０１）。決め方である所定の基準は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図７の例では、ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥ用ＣＰＵコア１０２（第１側処理コア）を選択したとしている。選択されたＩＫＥ用ＣＰＵコア１０２は、ＩＫＥのＳＡ確立の一連のシーケンスの「一番目のＩＫＥデータ」（第１側確立要求データ）を作成し（Ｓ１０２）、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する（Ｓ１０３）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、外部メモリ１２１のＩＫＥ用ＣＰＵコア１０２の専有メモリ空間１３１に、新しく状態テーブル１４１（第１側状態テーブル）を書き込み、「一連のシーケンスの状態情報やアルゴリズムでの演算結果」（所定の状態情報の一例）を書き込む（Ｓ１０４）。
【００２５】
ＩＫＥ用ＣＰＵコア１０２は、「一番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側ＣＰＵコア番号（第１側処理コアの識別子）として１０２を設定し、受信側ＣＰＵコア番号（第１側処理コアの識別子）として、未定である０を設定して送信する。
【００２６】
図９はベンダＩＤペイロードの形式を表している。ベンダＩＤペイロードは、ＩＰｓｅｃ装置を製造するメーカが自由に設定して使用できる領域であり、先頭に１バイトのネクストペイロード、次に１バイトのリザーブ、２バイトのペイロードレングス、４バイトの送信側ＣＰＵコア番号、４バイトの受信側ＣＰＵコア番号からなる。
【００２７】
（ＩＰｓｅｃ装置２）
ＩＰｓｅｃ装置１が発信した「一番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置２が受信する。ＩＰｓｅｃ装置２は、通信Ｉ／Ｆ１１２（第２側通信装置）から「一番目のＩＫＥデータ」を受信する（Ｓ１０５ａ）。通信Ｉ／Ｆ１１２は、ＩＫＥデータ振り分けＣＰＵコア１０１へ「一番目のＩＫＥデータ」を渡す（１０６ａ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、「一番目のＩＫＥデータ」のベンダＩＤペイロードの受信側ＣＰＵコア番号に０が設定されているので、処理するＣＰＵコアが未定と判定し、ＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の三つの中からＩＫＥデータを処理するＣＰＵコア（第２側処理コア）を所定の基準（第２側基準）に従って決定する（Ｓ１０７ａ）。決め方の所定の基準は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図７ではＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥ用ＣＰＵコア１０４を選択したとしている。ＩＫＥ用ＣＰＵコア１０４は、ＩＫＥデータ振り分けＣＰＵコア１０１から「一番目のＩＫＥデータ」を受信し（Ｓ１０８ａ）、処理する（Ｓ１０９ａ）。
【００２８】
ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、「一番目のＩＫＥデータ」を処理し、「二番目のＩＫＥデータ」（第２側応答データ）を作成し（Ｓ１１０ａ）、ＩＰｓｅｃ装置２の通信Ｉ／Ｆ１１２（第２側通信部）からＩＰｓｅｃ装置１宛てへ送信する（Ｓ１１１ａ）。この時、ＩＫＥ用ＣＰＵコア１０４による「一番目のＩＫＥデータ」の処理では、ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、外部メモリ１２１のＩＫＥ用ＣＰＵコア１０４の専有メモリ空間に、新しく状態テーブル（第２側状態テーブル）を書き込み、「一連のシーケンスの状態情報やアルゴリズムでの演算結果」（所定の状態情報の一例）を書き込む（Ｓ１１２ａ）。「二番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側ＣＰＵコア番号として１０４を設定し、受信側ＣＰＵコア番号として（「一番目のＩＫＥデータ」の送信側のＣＰＵコア番号に設定してあった）１０２を設定して送信する。
【００２９】
（ＩＰｓｅｃ装置１）
ＩＰｓｅｃ装置２が発信した「二番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置１が受信する（１０５ｂ）。ＩＰｓｅｃ装置１は、通信Ｉ／Ｆ１１２から「二番目のＩＫＥデータ」を受信する。通信Ｉ／Ｆ１１２はＩＫＥデータ振り分けＣＰＵコア１０１へ「二番目のＩＫＥデータ」を渡す（Ｓ１０６ｂ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥデータのベンダＩＤペイロードの受信側ＣＰＵコア番号に１０２が設定されているので、処理するＣＰＵコアとしてＩＫＥ用ＣＰＵコア１０２を決定する（Ｓ１０７ｂ）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、ＩＫＥデータ振り分けＣＰＵコア１０１から「二番目のＩＫＥデータ」を受信し（Ｓ１０８ｂ）処理する（Ｓ１０９ｂ）。
【００３０】
ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、「二番目のＩＫＥデータ」を処理し、「三番目のＩＫＥデータ」（第１側応答データ）を作成し（Ｓ１１０ｂ）、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する（Ｓ１１１ｂ）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、外部メモリ１２１のＩＫＥ用ＣＰＵコア１０２の専有メモリ空間１３１に書き込まれていた状態テーブル１４１を更新して書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１１２ｂ）。ＩＫＥ用ＣＰＵコア１０２は、「三番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側ＣＰＵコア番号として１０２（第１側処理コアの識別子）を設定し、受信側ＣＰＵコア番号として１０４（第２側処理コアの識別子）を設定して送信する。
【００３１】
（ＩＰｓｅｃ装置２）
ＩＰｓｅｃ装置１が発信した「三番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置２が受信する。ＩＰｓｅｃ装置２は、通信Ｉ／Ｆ１１２から「三番目のＩＫＥデータ」を受信する（Ｓ１０５ｃ）。通信Ｉ／Ｆ１１２は、ＩＫＥデータ振り分けＣＰＵコア１０１へ「三番目のＩＫＥデータ」を渡す（Ｓ１０６ｃ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥデータのベンダＩＤペイロードの受信側ＣＰＵコア番号に１０４が設定されているので、処理するＣＰＵコアとしてＩＫＥ用ＣＰＵコア１０４を決定する（Ｓ１０７ｃ）。ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、ＩＫＥデータ振り分けＣＰＵコア１０１から「三番目のＩＫＥデータ」を受信し（Ｓ１０８ｃ）、処理する（Ｓ１０９ｃ）。
【００３２】
以後、図示していないが、四番目（第２側応答データ）の、五番目（第１側応答データ）の、・・・のＩＫＥデータをＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間で送信と受信を繰り返し、ＳＡを確立する。
【００３３】
各ＩＰｓｅｃ装置のＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥのＳＡ確立の一連のシーケンスに従って対向のＩＰｓｅｃ装置から二番目以降のＩＫＥデータを受信した時に、予め保持しているメモリを一切検索することなく、ベンダＩＤペイロードの受信側ＣＰＵコア番号の情報に従って処理するＣＰＵコアを決定することが出来るため、ＩＫＥデータを処理するＣＰＵコアへ振り分ける処理の性能を向上することが可能である。
【００３４】
実施の形態２．
図１０〜図１２を参照して実施の形態２を説明する。本実施の形態２はＩＫＥデータのベンダＩＤペイロードに送信側ＣＰＵコア番号と受信側ＣＰＵコア番号とに加えて、更に、状態テーブルを識別するための「状態テーブルのアドレス」を表す送信側状態テーブルアドレスと受信側状態テーブルアドレスを追加し、ＩＫＥのＳＡを確立する方式とした。
【００３５】
ネットワーク構成は実施の形態１の図３と同じである。図１０は本実施の形態２のＩＰｓｅｃ装置である。実施の形態１の図６と異なるのは、状態テーブル１４１のアドレスが記載されていることである。実施の形態２ではＩＫＥデータに状態テーブル１４１のアドレスを設定するため記載している。
【００３６】
（動作の説明）
図１１は本実施の形態２におけるＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間でのＩＫＥのＳＡ確立の一連のシーケンスである。ＩＫＥデータのベンダＩＤペイロードに送信側状態テーブルアドレスと受信側状態テーブルアドレスを追加する以外は、実施の形態１の図７と同様であるので、図８も参照しながら説明する。
【００３７】
（ＩＰｓｅｃ装置１）
以下のＳ１０１〜Ｓ１０４は実施の形態１と同じである。ＩＰｓｅｃ装置１のＩＫＥデータ振り分けＣＰＵコア１０１が、ＩＫＥのイニシエータとしてＳＡ確立を開始する時にプロトコル処理を実行するＣＰＵコアを決める（Ｓ１０１）。決め方は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図１１ではＩＫＥ用ＣＰＵコア１０２が、ＩＫＥのＳＡ確立の一連のシーケンスの「一番目のＩＫＥデータ」を作成し（Ｓ１０２）、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する（Ｓ１０３）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は外部メモリ１２１のＩＫＥ用ＣＰＵコア１０２の専有メモリ空間１３１に新しく状態テーブル１４１を書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１０４）。
【００３８】
ＩＫＥ用ＣＰＵコア１０２は、「一番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側ＣＰＵコア番号として１０２と送信側状態テーブルアドレスとして図１０に示す送信側状態テーブルの先頭アドレスである「０ｘ１００１０００」とを設定し、受信側ＣＰＵコア番号として未定である０を設定し、受信側状態テーブルアドレスとして未定である０を設定して送信する。図１２はベンダＩＤペイロードの形式を表している。図１２は実施の形態１の図９に対して送信側状態テーブルアドレスと受信側状態テーブルアドレスが追加されている。すなわちベンダＩＤペイロードは、先頭に１バイトのネクストペイロード、次に１バイトのリザーブ、２バイトのペイロードレングス、４バイトの送信側ＣＰＵコア番号、４バイトの送信側状態テーブルアドレス、４バイトの受信側ＣＰＵコア番号、４バイトの受信側状態テーブルアドレスからなる。
【００３９】
（ＩＰｓｅｃ装置２）
以下のＳ１０５ａ〜Ｓ１０９ａは実施の形態１と同じである。ＩＰｓｅｃ装置１が発信した「一番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置２が受信する。ＩＰｓｅｃ装置２は、通信Ｉ／Ｆ１１２から「一番目のＩＫＥデータ」を受信する（Ｓ１０５ａ）。通信Ｉ／Ｆ１１２は，ＩＫＥデータ振り分けＣＰＵコア１０１へ「一番目のＩＫＥデータ」を渡す（Ｓ１０６ａ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥデータのベンダＩＤペイロードの受信側ＣＰＵコア番号に０が設定されているので、処理するＣＰＵコアが未定であるので、ＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の三つから選択し、ＩＫＥデータを処理するＣＰＵコアを決定する（Ｓ１０７ａ）。決め方は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図１１ではＩＫＥ用ＣＰＵコア１０４が、ＩＫＥデータ振り分けＣＰＵコア１０１から「一番目のＩＫＥデータ」を受信し（Ｓ１０８ａ）、処理する（Ｓ１０９ａ）。
【００４０】
ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、「一番目のＩＫＥデータ」を処理し、「二番目のＩＫＥデータ」を作成し（Ｓ１１０ａ）、ＩＰｓｅｃ装置２の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置１宛てへ送信する（Ｓ１１１ａ）。この時、「一番目のＩＫＥデータ」の処理では、ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、外部メモリ１２１のＩＫＥ用ＣＰＵコア１０４の専有メモリ空間に、新しく状態テーブルを書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１１２ａ）。「二番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側ＣＰＵコア番号として１０４を設定し、送信側状態テーブルアドレスとして状態テーブルの先頭のメモリアドレスである０ｘ１０７７０００を設定し、受信側ＣＰＵコア番号として（「一番目のＩＫＥデータ」の送信側ＣＰＵコア番号に設定してあった）１０２を設定し、受信側状態テーブルアドレスとして（「一番目のＩＫＥデータ」の送信側状態テーブルに設定してあった）０ｘ１００１０００を設定して送信する。
【００４１】
（ＩＰｓｅｃ装置１）
ＩＰｓｅｃ装置２が発信した「二番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置１が受信する（Ｓ１０５ｂ）。ＩＰｓｅｃ装置１は、通信Ｉ／Ｆ１１２から「二番目のＩＫＥデータ」を受信する。通信Ｉ／Ｆ１１２はＩＫＥデータ振り分けＣＰＵコア１０１へ「二番目のＩＫＥデータ」を渡す（Ｓ１０６ｂ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥデータのベンダＩＤペイロードの受信側ＣＰＵコア番号に１０２が設定されているので、処理するＣＰＵコアとしてＩＫＥ用ＣＰＵコア１０２を決定する（Ｓ１０７ｂ）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、ＩＫＥデータ振り分けＣＰＵコア１０１から「二番目のＩＫＥデータ」を受信し（Ｓ１０８ｂ）、処理する（Ｓ１０９ｂ）。
【００４２】
ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、「二番目のＩＫＥデータ」のベンダＩＤペイロード内の受信側状態テーブルアドレス０ｘ１００１０００を得て、ＩＫＥプロトコルシーケンス用の状態テーブルの番地にアクセスし、状態に合う処理を実行し、「三番目のＩＫＥデータ」を作成し（Ｓ１１０ｂ）、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する（Ｓ１１１ｂ）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は外部メモリ１２１のＩＫＥ用ＣＰＵコア１０２の専有メモリ空間１３１に書き込まれていた状態テーブル１４１を更新して書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１１２ｂ）。ＩＫＥ用ＣＰＵコア１０２は、「三番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側ＣＰＵコア番号として１０２を設定し、送信側状態テーブルアドレスとして０ｘ１００１０００を設定し、受信側ＣＰＵコア番号として１０４を設定し、受信側状態テーブルアドレスとして０ｘ１０７７０００を設定して送信する。
【００４３】
（ＩＰｓｅｃ装置２）
ＩＰｓｅｃ装置１が発信した「三番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置２が受信する。ＩＰｓｅｃ装置２は、通信Ｉ／Ｆ１１２から「三番目のＩＫＥデータ」を受信する（Ｓ１０５ｃ）。通信Ｉ／Ｆ１１２はＩＫＥデータ振り分けＣＰＵコア１０１へ「三番目のＩＫＥデータ」を渡す（Ｓ１０６ｃ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥデータのベンダＩＤペイロードの受信側ＣＰＵコア番号に１０４が設定されているので、処理するＣＰＵコアとしてＩＫＥ用ＣＰＵコア１０４を決定する（Ｓ１０７ｃ）。ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、ＩＫＥデータ振り分けＣＰＵコア１０１から「三番目のＩＫＥデータ」を受信し（Ｓ１０８ｃ）、処理する（Ｓ１０９ｃ）。この時、ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は「三番目のＩＫＥデータ」のベンダＩＤペイロード内の受信側状態テーブルアドレス０ｘ１０７７０００を得て、ＩＫＥプロトコルシーケンス用の状態テーブルの番地にアクセスし、状態に合う処理を実行し、四番目のＩＫＥデータを作成し（Ｓ１１０ｃ）、ＩＰｓｅｃ装置２の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置１宛てへ送信する（Ｓ１１１ｃ）。
【００４４】
以後、図示していないが、四番目の、五番目の、・・・のＩＫＥデータをＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間で送信と受信を繰り返し、ＳＡを確立する。
【００４５】
各ＩＰｓｅｃ装置のＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥのＳＡ確立の一連のシーケンスに従って対向のＩＰｓｅｃ装置から二番目以降のＩＫＥデータを受信した時に、予め保持しているメモリを一切検索することなく、ベンダＩＤペイロードの受信側ＣＰＵコア番号の情報に従って処理するＣＰＵコアを決定することが出来るため、ＩＫＥデータを処理するＣＰＵコアへ振り分ける処理の性能を向上することが可能である。さらに、個々のＣＰＵコアにおいて状態テーブルを検索処理をすること無く、ベンダＩＤペイロードの受信側状態テーブルアドレスに設定されているメモリアドレスへアクセスすることによって各ＣＰＵコアの処理の性能を向上することが可能である。
【００４６】
実施の形態３．
図１３〜図１５を参照して実施の形態３を説明する。本実施の形態３は、実施の形態２に対してＩＫＥデータのベンダＩＤペイロードに状態テーブルのアドレスのみを設定する実施形態である。ただし、実施の形態２と異なり、外部メモリ１２１に作成する状態テーブルは、共有メモリ空間に作成する。これにより、各ＩＫＥ用ＣＰＵコア１０２〜１０４が状態テーブルにアクセス可能とした。このように、ＩＫＥデータのベンダＩＤペイロードにはＣＰＵコア番号は設定せず、ＳＡ確立中の中間生成情報を記録する状態テーブルを識別するための状態テーブルのアドレスを表す送信側状態テーブルアドレスと受信側状態テーブルアドレスとを設定する方式とした。
【００４７】
ネットワーク構成は実施の形態１と同じである。図１３は実施の形態３のＩＰｓｅｃ装置である。図６と異なるのは、外部メモリ１２１内にＣＰＵコアの「共有メモリ空間１５１」を設け、ＣＰＵコアの共有メモリ空間１５１内に状態テーブル１４１を設けて、状態テーブル１４１のアドレスが記載されていることである。ＣＰＵコアの共有メモリ空間１５１に対しては、ＩＫＥ用ＣＰＵコア１０２とＩＫＥ用ＣＰＵコア１０３とＩＫＥ用ＣＰＵコア１０４は、自由に書き込みと読み出しが可能である。
【００４８】
図１４は、実施の形態３におけるＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間でのＩＫＥのＳＡ確立の一連のシーケンスである。ＩＰｓｅｃ装置１がＩＫＥのイニシエータとしてＳＡ確立を開始する図である。ＳＡ確立の一連のシーケンスの最初のデータを送信する装置がイニシエータとなり、対向側の装置がレスポンダーとなる。ＩＫＥのＳＡ確立の一連のシーケンスは、ＩＫＥのｖｅｒｓｉｏｎ１においては、ｍａｉｎモードやａｇｇｒｅｓｓｉｖｅモードでのＳＡ確立シーケンスのことである。
【００４９】
以下に動作を説明する。図１４の場合は処理用ＣＰＵコアが切り換わる以外は実施の形態１と同様であるため、図８のシーケンス図も参照して説明する。
【００５０】
ＩＰｓｅｃ装置１のＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥのイニシエータとしてＳＡ確立を開始する時にプロトコル処理を実行するＣＰＵコアを決める（Ｓ１０１）。決め方は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図１４の例ではＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥ用ＣＰＵコア１０２を選択したものとする。選択されたＩＫＥ用ＣＰＵコア１０２は、ＩＫＥのＳＡ確立の一連のシーケンスの「一番目のＩＫＥデータ」を作成し（Ｓ１０２）、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する（Ｓ１０３）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２は、外部メモリ１２１のＣＰＵコアの「共有メモリ空間１５１内」に、新しく状態テーブル１４１を書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１０４）。
【００５１】
ＩＫＥ用ＣＰＵコア１０２は、「一番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側状態テーブルアドレスとして送信側状態テーブルの先頭アドレスである０ｘ２００１０００を設定し、受信側状態テーブルアドレスとして未定である０を送信する。図１５はベンダＩＤペイロードの形式を表している。図１５は図１２に対してＣＰＵコア番号がなくなった形式である。ベンダＩＤペイロードは、先頭に１バイトのネクストペイロード、次に１バイトのリザーブ、２バイトのペイロードレングス、４バイトの送信側状態テーブルアドレス、４バイトの受信側状態テーブルアドレスからなる。
【００５２】
（ＩＰｓｅｃ装置１）
ＩＰｓｅｃ装置１が発信した「一番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置２が受信する。ＩＰｓｅｃ装置２は、通信Ｉ／Ｆ１１２から「一番目のＩＫＥデータ」を受信する（Ｓ１０５ａ）。通信Ｉ／Ｆ１１２はＩＫＥデータ振り分けＣＰＵコア１０１へ「一番目のＩＫＥデータ」を渡す（Ｓ１０６ａ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の三つから選択し、ＩＫＥデータを処理するＣＰＵコアを決定する（Ｓ１０７ａ）。決め方は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図１４では、ＩＫＥ用ＣＰＵコア１０４が処理用ＣＰＵコアとして決定されたとする。ＩＫＥ用ＣＰＵコア１０４は、ＩＫＥデータ振り分けＣＰＵコア１０１から「一番目のＩＫＥデータ」を受信し（Ｓ１０８ａ）、処理する（Ｓ１０９ａ）。
【００５３】
ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、「一番目のＩＫＥデータ」を処理し、「二番目のＩＫＥデータ」を作成し（Ｓ１１０ａ）、ＩＰｓｅｃ装置２の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置１宛てへ送信する（Ｓ１１１ａ）。この時、「一番目のＩＫＥデータ」の処理では、ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４は、外部メモリ１２１のＣＰＵコアの共有メモリ空間１５１内に、新しく状態テーブル１４１を書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１１２ａ）。「二番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側の送信側状態テーブルアドレスとして状態テーブルの先頭のメモリアドレスである０ｘ２０７７０００を設定し、受信側状態テーブルアドレスとして（「一番目のＩＫＥデータ」の送信側状態テーブルに設定してあった）０ｘ２００１０００を設定して送信する。
【００５４】
（ＩＰｓｅｃ装置１）
ＩＰｓｅｃ装置２が発信した「二番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置１が受信する（Ｓ１０５ｂ）。ＩＰｓｅｃ装置１は、通信Ｉ／Ｆ１１２から「二番目のＩＫＥデータ」を受信する。通信Ｉ／Ｆ１１２はＩＫＥデータ振り分けＣＰＵコア１０１へ「二番目のＩＫＥデータ」を渡す（Ｓ１０６ｂ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の三つから選択し、ＩＫＥデータを処理するＣＰＵコアを決定する（Ｓ１０７ｂ）。決め方は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図１４ではＩＫＥ用ＣＰＵコア１０３が、処理用ＣＰＵコアとして決定された場合である。ここでは処理用ＣＰＵコアが切り換わっている点が実施の形態１、実施の形態２と異なる。なお図８は実施の形態１の説明のものであるので処理用ＣＰＵコアの切り換えは示していない。ＩＫＥ用ＣＰＵコア１０３は、ＩＫＥデータ振り分けＣＰＵコア１０１から「二番目のＩＫＥデータ」を受信し（Ｓ１０８ｂ）、処理する（Ｓ１０９ｂ）。
【００５５】
ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０３は、「二番目のＩＫＥデータ」のベンダＩＤペイロード内の受信側状態テーブルアドレス０ｘ２００１０００を得て、ＣＰＵコアの共有メモリ空間１５１内のＩＫＥプロトコルシーケンス用の状態テーブル１４１の番地にアクセスし、状態に合う処理を実行し、「三番目のＩＫＥデータ」を作成し（Ｓ１１０ｂ）ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する（Ｓ１１１ｂ）。ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０３は外部メモリ１２１のＣＰＵコアの共有メモリ空間１５１に書き込まれていた状態テーブル１４１を更新して書き込み、一連のシーケンスの状態情報やアルゴリズムでの演算結果を書き込む（Ｓ１１２ｂ）。ＩＫＥ用ＣＰＵコア１０３は、「三番目のＩＫＥデータ」のベンダＩＤペイロードには、送信側状態テーブルアドレスとして０ｘ２００１０００を設定し、受信側状態テーブルアドレスとして０ｘ２０７７０００を設定して送信する。
【００５６】
（ＩＰｓｅｃ装置２）
ＩＰｓｅｃ装置１が発信した「三番目のＩＫＥデータ」は、通信ネットワーク６を経由して、ＩＰｓｅｃ装置２が受信する（Ｓ１０５ｃ）。ＩＰｓｅｃ装置２は、通信Ｉ／Ｆ１１２から「三番目のＩＫＥデータ」を受信する。通信Ｉ／Ｆ１１２は、ＩＫＥデータ振り分けＣＰＵコア１０１へ「三番目のＩＫＥデータ」を渡す（Ｓ１０６ｃ）。ＩＫＥデータ振り分けＣＰＵコア１０１は、ＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の三つから選択し、ＩＫＥデータを処理するＣＰＵコアを決定する（Ｓ１０７ｃ）。決め方は、順番にＩＫＥ用ＣＰＵコア１０２、ＩＫＥ用ＣＰＵコア１０３、ＩＫＥ用ＣＰＵコア１０４の順番でも良いし、処理をしていないＣＰＵコアを優先しても良い。図１４ではＩＫＥ用ＣＰＵコア１０３が処理用ＣＰＵコアとして決定された場合を示している。ここでは処理用ＣＰＵコアがＩＫＥ用ＣＰＵコア１０４からＩＫＥ用ＣＰＵコア１０３に切り換わっている。なお図８は実施の形態１の説明のものであるので処理用ＣＰＵコアの切り換えは示していない。ＩＫＥ用ＣＰＵコア１０３は、ＩＫＥデータ振り分けＣＰＵコア１０１から「一番目のＩＫＥデータ」を受信し処理する。ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０３は、ＩＫＥデータ振り分けＣＰＵコア１０１から「三番目のＩＫＥデータ」を受信し（Ｓ１０８ｃ）、処理する（Ｓ１０９ｃ）。この時、ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０３は、「三番目のＩＫＥデータ」のベンダＩＤペイロード内の受信側状態テーブルアドレス０ｘ２０７７０００を得て、ＣＰＵコアの共有メモリ空間内のＩＫＥプロトコルシーケンス用の状態テーブルの番地にアクセスし、状態に合う処理を実行し、四番目のＩＫＥデータを作成しＩＰｓｅｃ装置２の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置１宛てへ送信する。
【００５７】
以後、図示していないが、四番目の、五番目の、・・・のＩＫＥデータをＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間で送信と受信を繰り返し、ＳＡを確立する。
【００５８】
各ＩＰｓｅｃ装置の個々のＣＰＵコアにおいて状態テーブルを検索処理すること無く、ベンダＩＤペイロードの受信側状態テーブルアドレスに設定されているメモリアドレスへアクセスすることによって各ＣＰＵコアの処理の性能を向上することが可能である。
【００５９】
実施の形態４．
図１６、図１７を参照して実施の形態４を説明する。実施の形態４は、実施の形態３におけるＩベンダＩＤペイロードの状態テーブルの送信側状態テーブルアドレス、受信側状態テーブルアドレスを暗号化する実施形態である。
【００６０】
図１６は、実施の形態３において、ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２間でのＩＫＥのＳＡ確立の一連のシーケンスを表した図（図１４）であり、点線で囲った領域は送信側状態テーブルアドレスと送信側状態テーブルアドレスを暗号データとして扱っていることを示す。
【００６１】
図１７は、ベンダＩＤペイロードの形式を表した図であり、送信側状態テーブルアドレス領域と送信側状態テーブルアドレス領域は、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）の暗号ブロック長の長さである１６バイトの領域をそれぞれ確保する。
【００６２】
本実施の形態４におけるＩＰｓｅｃ装置１とＩＰｓｅｃ装置２の動作は前実施の形態３と同じであるが、送信側状態テーブルアドレス領域と送信側状態テーブルアドレス領域を暗号する処理と復号処理が追加される。ＩＰｓｅｃ装置１とＩＰｓｅｃ装置２は、装置ごとに事前に設定された秘密情報（暗号鍵）を保有している。秘密情報（暗号鍵）は、ＩＰｓｅｃ装置ごとに異なっていても良い。
【００６３】
実施の形態４に特有の新たに追加された部分のみを記述する。図１６において、ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０２が「一番目のＩＫＥデータ」を作成する時に、秘密情報（暗号鍵）を用いて送信側状態テーブルアドレスを暗号化し、暗号化したデータを図１７に示す送信側状態テーブルアドレスの領域に設定し、ＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する。ＩＰｓｅｃ装置２のＩＫＥ用ＣＰＵコア１０４が「二番目のＩＫＥデータ」を作成する時に、秘密情報（暗号鍵）を用いて送信側状態テーブルアドレスを暗号化し、暗号化したデータを図１７示す送信側状態テーブルアドレスの領域に設定し、受信側状態テーブルアドレスとして「一番目のＩＫＥデータ」の送信側状態テーブルに設定してあった暗号データを設定してＩＰｓｅｃ装置２の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置１宛てへ送信する。
【００６４】
ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０３は、受信した「二番目のＩＫＥデータ」のベンダＩＤペイロード内の受信側状態テーブルアドレス領域の暗号データを秘密情報（暗号鍵）を用いて復号し、状態テーブルのアドレスを取得し、ＩＫＥのプロトコル処理を実行する。
【００６５】
ＩＰｓｅｃ装置１のＩＫＥ用ＣＰＵコア１０３が「三番目のＩＫＥデータ」を作成する時に、秘密情報（暗号鍵）を用いて送信側状態テーブルアドレスを暗号化し、暗号化したデータを図１７に示す送信側状態テーブルアドレスの領域に設定し、受信側状態テーブルアドレスとして「二番目のＩＫＥデータ」の送信側状態テーブルに設定してあった暗号データを設定してＩＰｓｅｃ装置１の通信Ｉ／Ｆ１１２からＩＰｓｅｃ装置２宛てへ送信する。
【００６６】
以上のように動作するので、各ＩＰｓｅｃ装置の個々のＣＰＵコアにおいて状態テーブルを検索処理をすること無く、ベンダＩＤペイロードの受信側状態テーブルアドレスに設定されているメモリアドレスへアクセスすることによって各ＣＰＵコアの処理の性能を向上し、ネットワーク上での不正な改ざんを避けることができ、セキュリティ強度を向上させる効果がある。
【００６７】
以上の実施の形態では、
通信装置二者間での通信ネットワークを介した通信プロトコルにおいて、以下の手段を備えた装置間での通信コネクション確立方法を説明した。
（ａ）コネクションを確立する通信装置において、複数のＣＰＵ（中央演算装置、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））がプログラムにより通信コネクション確立処理を実施する手段；
（ｂ）コネクション確立の処理を実施しているＣＰＵを識別する情報を通信プロトコルデータに付加して送信する手段；
（ｃ）コネクション確立の二者間の対向装置において処理を実施しているＣＰＵを識別する情報を受信し、通信プロトコルデータに付加して対向装置へ返信する手段；
（ｄ）受信した通信プロトコルデータに付加された処理を実施しているＣＰＵを識別する情報を用いて、処理するＣＰＵを選択し、選択したＣＰＵが受信した通信プロトコルデータを処理してコネクション確立の処理を実施する手段。
【００６８】
以上の実施の形態では、
通信装置二者間での通信ネットワークを介した通信プロトコルにおいて、以下の手段を備えた装置間での通信コネクション確立方法を説明した。
（ａ）コネクションを確立する通信装置において、複数のＣＰＵ（中央演算装置、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））がプログラムにより通信コネクション確立処理を実施する手段；
（ｂ）コネクション確立の処理を実施しているＣＰＵを識別する情報とコネクション確立のための制御情報を識別するための情報を通信プロトコルデータに付加して送信する手段；
（ｃ）コネクション確立の二者間の対向装置において処理を実施しているＣＰＵを識別する情報とコネクション確立のための制御情報を識別するための情報を受信し、通信プロトコルデータに付加して対向装置へ返信する手段；
（ｄ）受信した通信プロトコルデータに付加された処理を実施しているＣＰＵを識別する情報を用いて、処理するＣＰＵを選択し、選択したＣＰＵが、コネクション確立のための制御情報を識別するための情報を用いてコネクション確立のための制御情報にアクセスし、受信した通信プロトコルデータを処理してコネクション確立の処理を実施する手段。
【００６９】
以上の実施の形態では、
通信装置二者間での通信ネットワークを介した通信プロトコルにおいて、以下の手段を備えた装置間での通信コネクション確立方法を説明した。
（ａ）コネクションを確立する通信装置において、複数のＣＰＵ（中央演算装置、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））がプログラムにより通信コネクション確立処理を実施する手段；
（ｂ）コネクション確立のための制御情報を識別するための情報を通信プロトコルデータに付加して送信する手段；
（ｃ）コネクション確立の二者間の対向装置においてコネクション確立のための制御情報を識別するための情報を受信し、通信プロトコルデータに付加して対向装置へ返信する手段；
（ｄ）受信した通信プロトコルデータに付加されたコネクション確立のための制御情報を識別するための情報を用いてコネクション確立のための制御情報にアクセスし、受信した通信プロトコルデータを処理してコネクション確立の処理を実施する手段。
【００７０】
以上の実施の形態では、
通信装置者間での通信ネットワークを介した通信プロトコルにおいて、以下の手段を備えた装置間での通信コネクション確立方法を説明した。
（ａ）コネクションを確立する通信装置において、複数のＣＰＵ（中央演算装置、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））がプログラムにより通信コネクション確立処理を実施する手段；
（ｂ）コネクション確立のための制御情報を識別するための情報を暗号して通信プロトコルデータに付加して送信する手段；
（ｃ）コネクション確立の二者間の対向装置においてコネクション確立のための制御情報を識別するための情報を受信し、通信プロトコルデータに付加して対向装置へ返信する手段；
（ｄ）受信した通信プロトコルデータに付加されたコネクション確立のための制御情報を識別するための情報を復号して元の情報に戻してから用いてコネクション確立のための制御情報にアクセスし、受信した通信プロトコルデータを処理してコネクション確立の処理を実施する手段。
【図面の簡単な説明】
【００７１】
【図１】実施の形態１におけるＩＰｓｅｃ装置の外観の一例を示す図。
【図２】実施の形態１におけるＩＰｓｅｃ装置のハードウェア資源の一例を示す図。
【図３】実施の形態１における通信システムの構成例を示す図。
【図４】実施の形態１におけるＩＰｓｅｃ装置のＳＰＤ情報を示す図。
【図５】実施の形態１におけるＩＰｓｅｃのＳＡを確立した状態を示す図。
【図６】実施の形態１におけるＩＰｓｅｃ装置のブロック図。
【図７】実施の形態１におけるＩＫＥのＳＡ確立のシーケンス図。
【図８】図７を具体的に示したシーケンス図。
【図９】実施の形態１におけるペンダＩＤペイロードの形式。
【図１０】実施の形態２におけるＩＰｓｅｃ装置のブロック図。
【図１１】実施の形態２におけるＩＫＥのＳＡ確立のシーケンス図。
【図１２】実施の形態２におけるペンダＩＤペイロードの形式。
【図１３】実施の形態３におけるＩＰｓｅｃ装置のブロック図。
【図１４】実施の形態３におけるＩＫＥのＳＡ確立のシーケンス図。
【図１５】実施の形態３におけるペンダＩＤペイロードの形式。
【図１６】実施の形態４におけるＩＫＥのＳＡ確立のシーケンス図。
【図１７】実施の形態４におけるペンダＩＤペイロードの形式。
【符号の説明】
【００７２】
１，２，３，４，５  ＩＰｓｅｃ装置、６  通信ネットワーク、１１，１２，１３，２１，２２，３１，３２，４１，４２，５１，５２  端末、１００  マルチコアＣＰＵ、１０１  ＩＫＥデータ振り分けＣＰＵコア、１０２  ＩＫＥ用ＣＰＵコア、１０３  ＩＫＥ用ＣＰＵコア、１０４  ＩＫＥ用ＣＰＵコア、１０５  ＥＳＰ・ＡＨ用ＣＰＵコア、１０９  内部バス、１１１，１１２  通信Ｉ／Ｆ、１２１  外部メモリ、１３１  ＩＫＥ用ＣＰＵコア１０２の専有メモリ空間、１４１  状態テーブル、１５１  共有メモリ空間。
【図１】
2009277069.tif 000003
【図２】
2009277069.tif 000004
【図３】
2009277069.tif 000005
【図４】
2009277069.tif 000006
【図５】
2009277069.tif 000007
【図６】
2009277069.tif 000008
【図７】
2009277069.tif 000009
【図８】
2009277069.tif 000010
【図９】
2009277069.tif 000011
【図１０】
2009277069.tif 000012
【図１１】
2009277069.tif 000013
【図１２】
2009277069.tif 000014
【図１３】
2009277069.tif 000015
【図１４】
2009277069.tif 000016
【図１５】
2009277069.tif 000017
【図１６】
2009277069.tif 000018
【図１７】
2009277069.tif 000019