(57)【特許請求の範囲】
【請求項１】
ＩＰ端末と他のＩＰ端末との間に接続され、他の中継装置にパケットを転送するためのセッションを該他の中継装置との間に確立し、該セッションを使用して前記ＩＰ端末から送信されたパケットを前記他のＩＰ端末に中継する中継装置において、
前記ＩＰ端末から送信されたパケットの受信を検出するパケット検出部と、
前記ＩＰ端末から受信したパケットを一時保留するパケット保留部と、
前記パケット検出部により前記セッションを使用するパケットが所定期間検出されない場合に該セッションを切断するセッション制御部と、
前記ＩＰ端末から送信されたパケットを転送するインターフェース部と、
を有し、
前記セッションの切断後に、該セッションを使用するユーザデータを前記ＩＰ端末から受信した場合に、
前記パケット保留部は、前記ユーザデータを一時保留し、
前記セッション制御部は、前記セッションを再確立するとともに、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、及び送信元ＩＰアドレスの情報を有する確立要求メッセージを生成し、
前記インターフェース部は、生成された前記確立要求メッセージを前記他の中継装置との間に接続され前記ユーザデータを中継する呼制御ネットワークに転送した後、前記パケット保留部に保留された前記ユーザデータを前記呼制御ネットワークを介して前記他の中継装置に転送することを特徴とする中継装置。
【請求項２】
前記セッション制御部は、前記呼制御ネットワークを介して前記他の中継装置に前記確立要求メッセージを送信するＴＣＰ管理部を備えたことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記セッション制御部は、前記ＩＰ端末から受信した前記ユーザデータに連続性を有する第１の順序情報が含まれる場合に該第１の順序情報に基づいて連続性を有する第２の順序情報を生成し、前記確立要求メッセージに前記第２の順序情報を含めることを特徴とする請求項２に記載の中継装置。
【請求項４】
前記第２の順序情報は、前記第１の順序情報から１減算した値であることを特徴とする請求項３に記載の中継装置。
【請求項５】
前記第２の順序情報は、ゼロ以上の整数であることを特徴とする請求項３に記載の中継装置。
【請求項６】
前記セッション制御部は、前記セッションに固有のフロー識別子を生成し、前記セッションを確立するためのセッション確立用メッセージに前記フロー識別子を含めることを特徴とする請求項１から請求項３のいずれかに記載の中継装置。
【請求項７】
ＩＰ端末と他のＩＰ端末との間に接続され、他の中継装置にパケットを転送するためのセッションを該他の中継装置との間に確立し、該セッションを使用して前記ＩＰ端末から送信されたパケットを前記他のＩＰ端末に中継する中継装置のパケット中継方法において、
前記セッションを使用するパケットを所定期間受信しない場合に前記セッションを切断する第１のステップと、
前記セッション切断後に、該セッションを使用するユーザデータを前記ＩＰ端末から受信する第２のステップと、
受信した前記ユーザデータを一時保留する第３のステップと、
前記ユーザデータを受信した後、前記セッションを再確立するとともに、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、及び送信元ＩＰアドレスの情報を有する確立要求メッセージを生成する第４のステップと、
生成した前記確立要求メッセージを前記他の中継装置との間に接続され前記ユーザデータを中継する呼制御ネットワークに転送する第５のステップと、
前記確立要求メッセージの転送後に、一時保留された前記ユーザデータを前記呼制御ネットワークを介して前記他の中継装置に転送する第６のステップと、
を有することを特徴とするパケット中継方法。
【請求項８】
ＩＰ端末と、前記ＩＰ端末とは異なる他のＩＰ端末と、
前記ＩＰ端末と前記他のＩＰ端末との間に接続され、他の中継装置にパケットを転送するためのセッションを該他の中継装置との間に確立し、該セッションを使用して前記ＩＰ端末から送信されたパケットを前記他のＩＰ端末に中継する中継装置と、を備える通信システムにおいて、
前記中継装置は、
前記ＩＰ端末から送信されたパケットの受信を検出するパケット検出部と、
前記ＩＰ端末から受信したパケットを一時保留するパケット保留部と、
前記パケット検出部により前記セッションを使用するパケットが所定期間検出されない場合に該セッションを切断するセッション制御部と、
前記ＩＰ端末から送信されたパケットを転送するインターフェース部と、
を有し、
前記セッションの切断後に、該セッションを使用するユーザデータを前記ＩＰ端末から受信した場合に、
前記パケット保留部は、前記ユーザデータを一時保留し、
前記セッション制御部は、前記セッションを再確立するとともに、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、及び送信元ＩＰアドレスの情報を有する確立要求メッセージを生成し、
前記インターフェース部は、生成された前記確立要求メッセージを前記他の中継装置との間に接続され前記ユーザデータを中継する呼制御ネットワークに転送した後、前記パケット保留部に保留された前記ユーザデータを前記呼制御ネットワークを介して前記他の中継装置に転送することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（インターネットプロトコル）ネットワークと呼制御ネットワークを接続するゲートウェイ装置に関するものである。
【背景技術】
【０００２】
ＩＰ端末を収容する複数のユーザネットワークと、複数のユーザネットワーク間にあって呼制御・呼管理を行う呼制御ネットワークとを備えた通信システムにおいて、ユーザネットワークと呼制御ネットワークの間に設けられ、ユーザネットワーク内で発行される通信要求または最初のデータを解析することにより呼制御ネットワーク内に所要の呼を確立し、通信要求またはデータをＩＰ（Internet Protocol）パケットとして呼制御ネットワーク内に中継するゲートウェイ装置がある。（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ２００６／０５１５９４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような通信システムで呼制御ネットワークの帯域を有効活用するには、通信需要に応じて呼を切断したり再確立したりするのが望ましい。しかしながら、呼すなわちセッションの切断要求や確立要求を発するのはゲートウェイ装置であるのに対し、ＴＣＰ（Transmission Control Protocol）コネクションの切断要求や確立要求をするのはＩＰ端末であるため、ゲートウェイ装置がセッションを再確立してもＴＣＰ通信を再開できないという問題があった。すなわち、セッションが切断されるとＴＣＰコネクションも切断されてしまうが、ゲートウェイ装置がセッションを切断した場合はＩＰ端末にセッションの切断を知らせる手段が無いため、ＩＰ端末がＴＣＰコネクションの再確立を要求することは無く、ＴＣＰ通信を再開できないという問題があった。
【０００５】
本発明はこのような問題を解決するためになされたもので、ＩＰ端末からの要求とは別にセッションを切断した場合であってセッションを再確立する際に、ＴＣＰ通信も再開できる中継装置、パケットの中継方法、及び通信システムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る中継装置は、ＩＰ端末と他のＩＰ端末との間に接続され、他の中継装置にパケットを転送するためのセッションを該他の中継装置との間に確立し、該セッションを使用して前記ＩＰ端末から送信されたパケットを前記他のＩＰ端末に中継する中継装置において、前記ＩＰ端末から送信されたパケットの受信を検出するパケット検出部と、前記ＩＰ端末から受信したパケットを一時保留するパケット保留部と、前記パケット検出部により前記セッションを使用するパケットが所定期間検出されない場合に該セッションを切断するセッション制御部と、前記ＩＰ端末から送信されたパケットを転送するインターフェース部と、を有し、前記セッションの切断後に、該セッションを使用するユーザデータを前記ＩＰ端末から受信した場合に、前記パケット保留部は、前記ユーザデータを一時保留し、前記セッション制御部は、前記セッションを再確立するとともに、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、及び送信元ＩＰアドレスの情報を有する確立要求メッセージを生成し、前記インターフェース部は、生成された前記確立要求メッセージを前記他の中継装置との間に接続され前記ユーザデータを中継する呼制御ネットワークに転送した後、前記パケット保留部に保留された前記ユーザデータを前記呼制御ネットワークを介して前記他の中継装置に転送することを特徴とするものである。
【０００７】
本発明に係るパケット中継方法は、ＩＰ端末と他のＩＰ端末との間に接続され、他の中継装置にパケットを転送するためのセッションを該他の中継装置との間に確立し、該セッションを使用して前記ＩＰ端末から送信されたパケットを前記他のＩＰ端末に中継する中継装置のパケット中継方法において、前記セッションを使用するパケットを所定期間受信しない場合に前記セッションを切断する第１のステップと、前記セッション切断後に、該セッションを使用するユーザデータを前記ＩＰ端末から受信する第２のステップと、受信した前記ユーザデータを一時保留する第３のステップと、前記ユーザデータを受信した後、前記セッションを再確立するとともに、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、及び送信元ＩＰアドレスの情報を有する確立要求メッセージを生成する第４のステップと、生成した前記確立要求メッセージを前記他の中継装置との間に接続され前記ユーザデータを中継する呼制御ネットワークに転送する第５のステップと、前記確立要求メッセージの転送後に、一時保留された前記ユーザデータを前記呼制御ネットワークを介して前記他の中継装置に転送する第６のステップと、を有することを特徴とするものである。
【０００８】
本発明に係る通信システムは、ＩＰ端末と、前記ＩＰ端末とは異なる他のＩＰ端末と、前記ＩＰ端末と前記他のＩＰ端末との間に接続され、他の中継装置にパケットを転送するためのセッションを該他の中継装置との間に確立し、該セッションを使用して前記ＩＰ端末から送信されたパケットを前記他のＩＰ端末に中継する中継装置と、を備える通信システムにおいて、前記中継装置は、前記ＩＰ端末から送信されたパケットの受信を検出するパケット検出部と、前記ＩＰ端末から受信したパケットを一時保留するパケット保留部と、前記パケット検出部により前記セッションを使用するパケットが所定期間検出されない場合に該セッションを切断するセッション制御部と、前記ＩＰ端末から送信されたパケットを転送するインターフェース部と、を有し、前記セッションの切断後に、該セッションを使用するユーザデータを前記ＩＰ端末から受信した場合に、前記パケット保留部は、前記ユーザデータを一時保留し、前記セッション制御部は、前記セッションを再確立するとともに、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、及び送信元ＩＰアドレスの情報を有する確立要求メッセージを生成し、前記インターフェース部は、生成された前記確立要求メッセージを前記他の中継装置との間に接続され前記ユーザデータを中継する呼制御ネットワークに転送した後、前記パケット保留部に保留された前記ユーザデータを前記呼制御ネットワークを介して前記他の中継装置に転送することを特徴とするものである。
【発明の効果】
【０００９】
本発明によれば、中継装置、パケット中継方法、通信システムは、セッションを使用するパケットが所定期間検出されない場合に中継装置がこのセッションを切断し、セッション切断後に中継装置がＩＰ端末からこのセッションを使用するＴＣＰパケットを受信するとＴＣＰパケットを一時保留してセッションを再確立し、セッション再確立後、サーバを介して接続された他の中継装置との間にＴＣＰコネクションを確立し、ＴＣＰコネクションの確立後に一時保留したＴＣＰパケットをサーバに向けて転送させることにより、中継装置がＩＰ端末からの要求とは別にセッションを切断した場合であっても、セッション切断後にＴＣＰ通信を再開できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係る通信システムの構成を示す図である。
【図２】図１に示すゲートウェイ装置のハードウェア構成を示す図である。
【図３】図１に示すゲートウェイ装置の機能ブロックを示す図である。
【図４】図３の記憶部に記憶されたセッション情報テーブルの一例を示すである。
【図５】図３の記憶部に記憶されたセッション状態テーブルの一例を示すである。
【図６】図３に示すセッション制御部の詳細を示すである。
【図７】本発明の実施の形態１に係る通信システムのシーケンスを示す図である。
【図８】本発明の実施の形態１に係るゲートウェイ装置のフローチャートである。
【図９】本発明の実施の形態２に係るゲートウェイ装置のセッション制御部の詳細を示す図である。
【図１０】本発明の実施の形態２に係る通信システムのシーケンスを示す図である。
【図１１】本発明の実施の形態３に係るゲートウェイ装置のセッション制御部の詳細を示す図である。
【図１２】本発明の実施の形態３に係る通信システムのシーケンスを示す図である。
【図１３】本発明の実施の形態３に係るゲートウェイ装置が送信するINVITEメッセージの一例を示すである。
【図１４】本発明の実施の形態４に係るゲートウェイ装置のセッション制御部の詳細を示す図である。
【図１５】本発明の実施の形態４に係るセッション情報テーブルの一例を示すである。
【図１６】本発明の実施の形態４に係る通信システムのシーケンスを示す図である。
【図１７】本発明の実施の形態４に係るゲートウェイ装置が送信するINVITEメッセージの一例を示すである。
【図１８】本発明の実施の形態４に係るセッション状態テーブルの一例を示すである。
【図１９】本発明の実施の形態５に係るゲートウェイ装置のセッション制御部の詳細を示す図である。
【図２０】本発明の実施の形態５に係る通信システムのシーケンスを示す図である。
【図２１】本発明の実施の形態５に係るゲートウェイ装置が送信するINVITEメッセージの一例を示すである。
【発明を実施するための形態】
【００１１】
実施の形態１．
本発明を実施するための実施の形態１におけるゲートウェイ装置１を図１ないし図８を用いて説明する。
図１はゲートウェイ装置１すなわち中継装置が使用される通信システム１００の構成を示す図である。通信システム１００は、呼制御・呼管理の機能を持たないユーザネットワーク４Ａ、４Ｂと、２つ以上のユーザネットワーク４Ａ、4Ｂ間に設けられた呼制御・呼管理の機能を備えた呼制御ネットワーク５と、を備えたものである。
【００１２】
ユーザネットワーク４ＡはＩＰ端末３Ａとゲートウェイ装置１Ａ、ユーザネットワーク４ＢはＩＰ端末３Ｂとゲートウェイ装置１Ｂ、呼制御ネットワーク５はＳＩＰ（Session Initiation Protocol）サーバ２を収容しており、ユーザネットワーク４Ａと呼制御ネットワーク５はゲートウェイ装置１Ａにより、ユーザネットワーク４Ｂと呼制御ネットワーク５はゲートウェイ装置１Ｂによりそれぞれ接続されている。
なお、ここではユーザネットワーク４Ａ、４ＢにＩＰ端末３とゲートウェイ装置１がそれぞれ１台ずつ設けられた例を示しているが、各ユーザネットワークに収容されるＩＰ端末は複数台であっても良い。また、説明を簡潔にするため、図１ではゲートウェイ装置１とＩＰ端末３を直接接続しているが、ルーター（図示しない）を介しマルチホップ接続としても良い。
【００１３】
図２はゲートウェイ装置１のハードウェア構成を示す図である。
ゲートウェイ装置１は、データを処理するためのＣＰＵ１２と、データ処理に必要なプログラムや情報を記憶するメモリ１３と、ユーザネットワーク４および呼制御ネットワーク５とのEthernet（登録商標）インタフェース１１とを備えている。
【００１４】
また、図３はゲートウェイ装置の機能ブロックを示している。
ユーザネットワーク４とのインタフェース部１１Ａ、呼制御ネットワーク５とのインタフェース部１１Ｂ、インタフェース部１１Ａから入力されたＩＰパケットを検出するパケット検出部１４Ａ、インタフェース部１１Ｂから入力されたＩＰパケットを検出するパケット検出部１４Ｂ、パケット検出部１４Ａ、１４Ｂで検出したデータを一時的に保留するパケット保留部１５、ＩＰパケットデータの通信路に対応した呼接続すなわちセッションの制御をするセッション制御部１６、フロー条件とセッション制御用のパラメータとを対応付けたセッション情報テーブル１７０やセッションの使用状態を示すセッション状態テーブル１７１を記憶した記憶部１７、セッションごとに通信路の使用有無を監視する無通信監視部１８を備えている。無通信監視部１８にはセッションごとにタイマ１８０が設けられ、未使用状態の時間を計測している。
【００１５】
セッション情報テーブル１７０は、図４に示すように、セッションを接続するためのフロー条件とセッションを接続する際に使用するセッション制御パラメータとから構成されている。フロー条件には、中継するＩＰパケットのＤＡやＳＡといったＩＰアドレス、使用されるプロトコル、送信元及び宛先のポート番号があり、セッション制御パラメータには、例えば、宛先ＳＩＰ−ＵＲＩ（Uniform Resource Identifier）、使用帯域、等がある。なお、図中の米印の領域は任意の値とすることができる。
【００１６】
一方、セッション状態テーブル１７１は、図５に示すように、セッション識別子であるCall-ID、対向するゲートウェイ装置１のＳＩＰ−ＵＲＩ、このフローをどのように使用したかを示す発信／着信の状態、通信時間、フロー情報により構成され、セッション情報テーブル１７０の条件に従って確定したセッションの情報が時系列的に順に記載されている。
【００１７】
フロー情報の領域には、セッション情報テーブル１７０のフロー条件に基づいて実際に使用したフロー情報が格納されている。すなわち、セッション情報テーブル１７０のフロー条件として任意領域とされているものであっても、実際に使用された値がセッションごとに格納される。図５において、「自側」とは自装置、「対向」とは対向するゲートウェイ装置１又はその先に接続されたＩＰ端末３を示している。フロー情報には、中継するＩＰパケットのＤＡやＳＡといったＩＰアドレス、使用するプロトコル、送信元及び宛先のポート番号、セッション及びＴＣＰコネクションの状態の欄、及びタイマ満了により切断したセッションか否かを示す欄すなわち切断情報の欄があり、セッションやＴＣＰコネクションの確立途中の状態も把握できる。なお、ＴＣＰコネクション状態の欄の括弧書きはゲートウェイ装置２自身が生成したメッセージではなく、ＩＰ端末３により生成されたメッセージを中継したことを示すものである。また、タイマの欄はＴＣＰコネクションが確立されるとリセットされるものとする。
【００１８】
図６はセッション制御部１６の詳細を示す図である。ＩＰパケットからＩＰアドレスを抽出するＤＡ／ＳＡ抽出部１６０、ＩＰパケットの種類を識別するパケット識別部１６１、呼すなわちセッションの確立や切断に必要なメッセージを管理するセッション管理部１６３、ＴＣＰコネクションの確立に必要なメッセージを管理するＴＣＰ管理部１６４、セッション管理部１６３やＴＣＰ管理部１６４等と連携して記憶部１７に記憶されたセッション情報テーブル１７０やセッション状態テーブル１７１の情報を取得したり更新したりするセッション情報取得部１６２を備えている。
【００１９】
セッション管理部１６にはセッションの確立や切断に必要なメッセージをパケットとして生成するメッセージ生成部１６３０と呼の確立や切断に必要なメッセージをパケットとして受付けるメッセージ受付部１６３１が設けられ、ＴＣＰ管理部１６４にはＴＣＰコネクションに必要なメッセージをＴＣＰパケットとして生成するＴＣＰ生成部１６４０とＴＣＰコネクションに必要なメッセージをＴＣＰパケットとして受付けるＴＣＰ受付部１６４１が設けられている。図６では、セッション管理に必要なメッセージとして、本実施の形態と特に関係の深いINVITE、200 OK、BYEの生成部と受付部をそれぞれ明記しているが、メッセージ生成部１６３０はその他セッション管理に必要なメッセージも生成し、メッセージ受付部１６３１はこれらのメッセージを受付けることはいうまでもない。なお、ＴＣＰパケットとは、ＴＣＰプロトコルを用いて通信に使用されるパケットであって、上記ＴＣＰコネクションに必要なＴＣＰコネクション確立用のパケット以外にデータ用パケットも含まれる。以下、ＴＣＰパケットに限定する必要の無いものはＩＰパケットと称する。
【００２０】
ここで、動作について説明する。
まず、通信システム全体の動作を、図７を用いて説明する。ユーザネットワーク４Ａに設けられたＩＰ端末３Ａとユーザネットワーク４Ｂに設けられたＩＰ端末３Ｂ間でＴＣＰ通信を行う場合、ＩＰ端末３Ａはまず、ＴＣＰコネクションの確立要求メッセージであるTCP-SYNパケットをＩＰ端末３Ｂ宛に送信する（S101）。TCP-SYNパケットがゲートウェイ装置１Ａに到着すると、ゲートウェイ装置１Ａは呼制御ネットワーク５にセッションがあるか否かを確認し、セッションが無い場合はＳＤＰ（Session Description Protocol）のオファーを含むセッション確立要求メッセージであるINVITEメッセージを生成しＳＩＰサーバ２に向けて送信する（S102）。このとき、INVITEメッセージはセッション情報テーブル１７０に基づいて所望の宛先ＳＩＰ−ＵＲＩ宛にセッション制御パラメータに従って送信される。
ここで、INVITEメッセージにＳＤＰを使用するのは、セッション制御のデータ送受信ホスト・ポートの制御にＳＤＰを使用するのが一般的だからである。
【００２１】
ＳＩＰサーバ２はINVITEメッセージを受信するとゲートウェイ装置１Ａに応答メッセージである100 Tryingパケットで応答し（S103）、ゲートウェイ装置１ＢにINVITEメッセージを転送する（S104）。ゲートウェイ装置１ＢはINVITEメッセージを受信すると100 Tryingパケットで応答し（S105）、セッション確立の準備が整うとＳＤＰのアンサーを含むセッション確立応答メッセージである200 OKレスポンスを送信する（S106）。200 OKレスポンスを受信したＳＩＰサーバ２はゲートウェイ装置１Ａに200 OKレスポンスを転送し、ゲートウェイ装置１Ａがこの200 OKレスポンスを受取ると２つのゲートウェイ装置１Ａ、１Ｂ間のセッションが確立する。そして、ゲートウェイ装置１ＡがＡＣＫメッセージを送信し、ＳＩＰサーバ２がこれをゲートウェイ装置１Ｂに転送し、ＳＩＰシグナリングが完了する（Ｓ107）。
【００２２】
S102〜S107によりセッションが確立すると、ゲートウェイ装置１ＡはS101にてＩＰ端末３Ａから受信して保留していたTCP-SYNパケットをゲートウェイ装置１Ｂ宛に転送し、ゲートウェイ装置１ＢはTCP-SYNパケットを受信すると、これを中継してＩＰ端末３Ｂに転送する（S108）。
TCP-SYNパケットを受信したＩＰ端末３Ｂは、TCP-SYNへの応答メッセージであるTCP-ACKと共に、逆方向のTCP-SYNを１つのパケットとしてＩＰ端末３Ａ宛に送信する。このTCP-SYN/ACKパケットは、先ほどと逆の順序でゲートウェイ装置１Ｂ、ＳＩＰサーバ２、ゲートウェイ装置１Ａと中継され、ＩＰ端末３Ａに届けられる（S109）。
なお、ＴＣＰで送信されるユーザデータは必ずしもＳＩＰシグナリングと同じ経路を通るとは限らないため、TCP-SYN/ACKパケットはＳＩＰサーバ２を経由しなくてもよい。
また、ＴＣＰパケットの種類はヘッダの制御ビットによって規定され、TCP-SYNパケットはＳＹＮフラグ、TCP-ACKパケットはＡＣＫフラグ、TCP-SYN/ACKパケットはＳＹＮフラグとＡＣＫフラグの両方が１に設定される。
【００２３】
ＩＰ端末３ＡがTCP-SYN/ACKパケットを受取ると、TCP-SYNに対する応答としてTCP-ACKパケットをＩＰ端末３Ｂ宛に送信する。このTCP-ACKパケットもゲートウェイ装置１Ａ、ＳＩＰサーバ２、ゲートウェイ装置１Ｂの順に中継され、ＩＰ端末３Ｂに届けられる（S110）。なお、上記と同様に、TCP-SYN/ACKパケットはＳＩＰサーバ２を経由しなくてもよい。
このようにTCP-SYNとTCP-ACKを双方向にやり取りしてＴＣＰコネクションを張ることを3way handshakeといい、3way handshakeが完了するとＩＰ端末３ＡとＩＰ端末３Ｂの間にＴＣＰコネクションが確立される。
【００２４】
一旦ＴＣＰコネクションが確立すると、ＴＣＰコネクションの切断またはセッションの切断がなされるまで２つのＩＰ端末３Ａ、３Ｂ間では双方向にデータのＴＣＰ通信が可能となる（S111）。なお、ここではＩＰ端末３Ａが最初にTCP-SYNパケットを送信する場合を示したが、ＩＰ端末３ＢがＴＣＰ通信の開始を要求する場合はＩＰ端末３ＢからTCP-SYNが送信される。
【００２５】
ＴＣＰコネクションが確立された状態において、このＴＣＰコネクションで使用されるセッションが一定期間使用されない状態が続くと、ゲートウェイ装置１Ａはセッションの切断要求メッセージであるBYEパケットを生成してＳＩＰサーバ２に送信し、ＳＩＰサーバ２がゲートウェイ装置１Ｂに転送する（S112）。ゲートウェイ装置１ＢがBYEパケットへの応答メッセージである200 OKレスポンスを送信しゲートウェイ装置１Ａに到達すると、２つのゲートウェイ装置１Ａ、１Ｂ間のセッションは切断される（S113）。
ここではゲートウェイ装置１ＡがBYEパケットを送信する例を示したが、ゲートウェイ装置１ＢからBYEパケットを送信してセッションを切断しても良い。セッションが切断されると、このセッションを利用するＴＣＰコネクション用に確保されたリソースが解放される。
【００２６】
セッションが切断された状態において、ＩＰ端末３Ａが再びＩＰ端末３Ｂ宛のユーザデータData#2をＴＣＰにて送信すると（S114）、ゲートウェイ装置１ＡはこのＴＣＰパケットを自装置内に一時的に保留し、先ほどと同様の手順でゲートウェイ装置１Ｂとの間にセッションを確立する（S115〜S120）。
セッションが確立されると、今度はゲートウェイ装置１Ａ自身がTCP-SYNパケットを生成し（S119）、セッション確立時に取得した宛先ＩＰアドレスと宛先ポート番号、及びＩＰ端末３Ａより受信したＩＰパケットのＴＣＰヘッダの情報、すなわち送信元ＩＰアドレスと送信元ポート番号に基づいてゲートウェイ装置１Ｂとの間で3way handshakeを行い２つのゲートウェイ装置１Ａ、１Ｂ間のＴＣＰコネクションを確立する（S121〜S123）。
【００２７】
ＴＣＰコネクションが確立されると、ゲートウェイ装置１ＡはS114により受信し保留していたＴＣＰパケットを転送し（S124）、このＴＣＰパケットはゲートウェイ装置１Ｂを介してＩＰ端末３Ｂに届けられる。
なお、ここではゲートウェイ装置１Ａがセッション及びＴＣＰコネクションの確立要求を発する場合について説明したが、確立要求を発するゲートウェイ装置はセッションを切断したゲートウェイ装置と同じである必要はない。望ましくは、セッション切断後に最初にＴＣＰ通信を再開するゲートウェイ装置１がセッションの再確立要求及びＴＣＰコネクションの確立要求を発すると良い。
【００２８】
次に、ゲートウェイ装置１内の動作について図３及び図６を用いて説明する。
まず、ユーザネットワーク４から呼制御ネットワーク５へＩＰパケットを中継する場合について説明する。
ユーザネットワーク４ＡからのＩＰパケットがインタフェース部１１Ａに入力されると、このＩＰパケットはパケット検出部１４Ａで検出され、パケット保留部１５とセッション制御部１６に転送される。パケット保留部１５はこのＩＰパケットをセッション制御部１６から転送指示がくるまで保留し、転送指示がくるとインタフェース部１１Ｂを介して呼制御ネットワーク５に向けて送出する。
【００２９】
セッション制御部１６はパケット検出部１４ＡからＩＰパケットを受取ると、ＤＡ/ＳＡ抽出部１６０にてＩＰアドレス情報を抽出し、セッション情報取得部１６２に抽出した情報を伝達すると共にＩＰパケットをパケット識別部１６１に転送する。パケット識別部１６１は受取ったＩＰパケットがユーザデータなのかセッション制御用のパケットなのかＴＣＰコネクションに関するパケットなのかを識別し、ユーザデータであればセッション情報取得部１６２に、セッション制御用のパケットであればセッション管理部１６３に、ＴＣＰコネクションに関するパケットであればＴＣＰ管理部１６４にその旨を伝える。
なお、ユーザネットワーク４Ａは通常セッション制御に非対応であることを前提としているため、パケット識別部１６１で受取るデータはユーザデータ、あるいはＴＣＰコネクションに関するパケットのいずれかである。
【００３０】
検出されたＩＰパケットがＴＣＰコネクションに関するパケットの場合、すなわちＴＣＰパケットの場合、ＴＣＰ管理部１６４はＴＣＰ受付部１６４１にてTCP-SYNパケットなのか、TCP-ACKパケットなのか、TCP-SYN/ACKパケットなのかを識別し、セッション情報取得部１６２に伝達する。セッション情報取得部１６２は、ＴＣＰ管理部１６４からの情報とＤＡ/ＳＡ抽出部１６０から受取ったＩＰアドレス等の情報に基づいて、セッション状態テーブル１７１のデータを更新する。
【００３１】
ＴＣＰ受付部１６４１からTCP-SYNパケットであるとの情報を受取った場合、セッション情報取得部１６２はセッション管理部１６３にセッションを確立するよう指示する。指示を受けたセッション管理部１６３はセッション情報取得部１６２が取得したセッション情報テーブル１７０のセッション制御パラメータに基づいてINVITEメッセージを生成し、対向するゲートウェイ装置１宛に送出する。その後、対向するゲートウェイ装置１から200 OKレスポンスを受取ってセッションが確立すると、セッション情報取得部１６２はパケット保留部１５に転送指示を送り、一時保留していたTCP-SYNパケットを呼制御ネットワーク５に送出させ、無通信監視部１８にはこのセッションに対応するタイマ１８０のスタート指示を送る。
【００３２】
セッション情報取得部１６２がＴＣＰ受付部１６４１からTCP-SYN/ACKパケットまたはTCP-ACKパケットであるとの情報を受取った場合、セッション情報取得部１６２は記憶部１７に記憶されたセッション状態テーブル１７１を更新し、パケット保留部１５に転送指示を送り一時保留していたTCP-SYN/ACKパケットまたはTCP-ACKパケットを呼制御ネットワーク５に送出させる。
【００３３】
ところで、検出されたＩＰパケットがＴＣＰパケットのユーザデータの場合、セッション情報取得部１６２はＤＡ/ＳＡ抽出部１６０から受取ったＩＰアドレスの情報に基づいて、記憶部１７に記憶されたセッション状態テーブル１７１からＩＰパケットの通信路に対応するセッション及びＴＣＰコネクションの情報を取得する。セッション情報取得部１６２は、セッション及びＴＣＰコネクションが確立されている場合、すなわち図５においてセッション状態の欄が「200 OK」でＴＣＰコネクション状態の欄が「TCP-ACK」または「（TCP-ACK）」の場合にはパケット保留部１５に転送指示を送り、無通信監視部１８にこのセッションに対応するタイマをリセットさせるリセット信号を送る。
【００３４】
検出されたＩＰパケットがＴＣＰパケットのユーザデータであって対応するセッションが未確立の場合、すなわち図５においてセッション状態の欄が「ＢＹＥ」の場合は、セッション情報取得部１６２はセッション状態テーブル１７１を参照してゲートウェイ装置１により切断されたセッションか否か、すなわち図５においてタイマの欄が「満了」であるか否かを判断する。ゲートウェイ装置１（対向するゲートウェイ装置１も含む）により切断されたセッションの場合、セッション状態テーブル１７１のセッション状態の欄は「ＢＹＥ」、ＴＣＰコネクション状態の欄は「TCP-ACK」または「（TCP-ACK）」、タイマの欄は「満了」が記入されている。このとき、セッション情報取得部１６２はセッション管理部１６３に指示を出し、上記と同様の手順により対向するゲートウェイ装置１との間にセッションを再確立させ、無通信監視部１８にこのセッションに対応するタイマのスタート指示を送る。
【００３５】
セッション再確立後、ＴＣＰ管理部１６４はTCP-SYNパケットを生成して対向するゲートウェイ装置１に送信し、TCP-SYN/ACKを受取るとTCP-ACKを返してＴＣＰコネクションを確立する。ＴＣＰコネクションの確立後、セッション情報取得部１６２はパケット保留部１５に転送指示を送り、一時保留していたユーザデータのＴＣＰパケットを呼制御ネットワーク５に送出させる。
なお、このセッションを使用するパケットを送出する際には、ユーザデータか制御用データかの種別によらず、このセッションに対応するタイマのリセット信号を無通信監視部１８に送信するものとする。
【００３６】
ゲートウェイ装置１がセッションを切断した場合以外であって、セッション未確立の状態でユーザデータを検出することは通常ありえない。ＴＣＰ通信を行うには、まずＩＰ端末３がTCP-SYNパケットを送信し、3way handshakeによりＴＣＰコネクションを確立するからである。したがって、セッション状態テーブル１７１に過去のセッション情報が記憶されていない場合、検出されたユーザデータのＩＰパケットは異常パケットと判断し、セッション情報取得部１６２はパケット保留部１５にパケット廃棄を指示する。
なお、この機能はオプショナルとして設けるものであって、ゲートウェイ装置１Ａでそのまま転送するようにしても良い。異常パケットはＩＰ端末でも廃棄できるからである。
【００３７】
ここまでが、ユーザネットワーク４Ａから呼制御ネットワーク５へＴＣＰパケットを中継する場合の動作である。次に、呼制御ネットワーク５からユーザネットワーク４へＩＰパケットを中継する場合について説明する。
ＩＰパケットが呼制御ネットワーク５からインタフェース部１１Ｂに入力されるとパケット検出部１４Ｂで検出され、パケット保留部１５とセッション制御部１６に転送される。パケット保留部１５はこのＩＰパケットをセッション制御部１６から転送指示がくるまで保留し、転送指示がくるとインタフェース部１１Ａを介してユーザネットワーク４に向けて送出する。
【００３８】
セッション制御部１６は、パケット検出部１４ＢからＩＰパケットを受取ると、先ほどと同様にＤＡ/ＳＡ抽出部１６０にてＩＰアドレス情報を抽出してセッション情報取得部１６２に伝達し、ＩＰパケットをパケット識別部１６１に転送する。ＩＰパケット識別部１６１は受取ったＩＰパケットがユーザデータなのかセッション制御用のパケットなのかＴＣＰコネクションに関するパケットなのかを識別し、ユーザデータであればセッション情報取得部１６２に、セッション制御用のパケットであればセッション管理部１６３に、ＴＣＰコネクションに関するＴＣＰパケットであればＴＣＰ管理部１６４にその旨を伝える。
【００３９】
検出されたＩＰパケットがセッション制御用のパケットの場合、セッション管理部１６３はINVITE、100 Trying、200 OK、BYEのいずれなのかをセッション情報取得部１６２に通知し、セッション情報取得部１６２はこの情報とＤＡ/ＳＡ抽出部１６０からの情報に基づいて情報セッション状態テーブル１７１のデータを更新する。また、セッション制御用のパケットはゲートウェイ装置１宛てなのでＩＰ端末３に転送する必要が無いことから、パケット保留部１５にパケット廃棄の指示を出力する。
【００４０】
セッション管理部１６３がINVITEメッセージを受付けた場合、セッション情報取得部１６２はセッション管理部１６３にセッション情報テーブル１７０の情報に基づいて100 Tryingを送信するよう指示し、セッション確立の準備が整った時点で同じくセッション情報テーブル１７０の情報に基づいて200 OKを送信するよう指示する。
なお、メッセージの送信指示をするごとにセッション状態テーブル１７１の更新も行うものとする。
【００４１】
セッション管理部１６３が200 OKレスポンスを受付けた時は無通信監視部１８に対応するセッションのタイマスタート指示を出力し、BYEパケットを受付けた時は無通信監視部１８にこのセッションのタイマ１８０をリセットして停止するよう指示を出力する。
また、セッション情報取得部１６２がセッション管理部１６３から100 Tryingパケットを受付けたとの情報を得た場合はセッション状態テーブル１７１のデータを更新し、タイマ１８０のスタート指示やリセットは行わない。
【００４２】
ところで、検出されたＩＰパケットがユーザデータの場合、セッション情報取得部１６２はＤＡ/ＳＡ抽出部１６０から受取ったＩＰアドレスの情報に基づいてセッション状態テーブル１７１を更新し、無通信監視部１８に対応するセッションのタイマリセット信号を送りパケット保留部１５には転送指示を送信する。このとき、ＴＣＰパケットであるかその他のＩＰパケットであるかを区別する必要は無い。
【００４３】
一方、検出されたＩＰパケットがＴＣＰコネクションに関するＴＣＰパケットの場合、ＴＣＰ管理部１６４はＴＣＰ受付部１６４１にてTCP-SYNパケットなのか、TCP-ACKパケットなのか、TCP-SYN/ACKパケットなのかを識別し、セッション情報取得部１６２に伝達する。セッション情報取得部１６２は、ＴＣＰ管理部１６４からの情報とＤＡ/ＳＡ抽出部１６０から受取ったＩＰアドレス等の情報に基づいて、セッション状態テーブル１７１のデータを更新すると共に、図５におけるＴＣＰコネクション状態を参照し、ＩＰ端末３から正規の切断シーケンス（例えば、ＴＣＰのコネクション解放メッセージであるＦＩＮパケットやコネクションリセット要求メッセージであるＲＳＴパケットの送信による切断シーケンス）が行われたＴＣＰコネクションであるか否かによって、対向するゲートウェイ装置１が生成したＴＣＰパケットなのか、ＩＰ端末３が生成したＴＣＰパケットなのかを判別する。
【００４４】
対向するゲートウェイ装置１が生成したＴＣＰパケットであると判断した場合、ＴＣＰ管理部１６４は受付けたＴＣＰパケットがTCP-SYNまたはTCP-SYN/ACKであればセッション状態テーブル１７１に基づいてTCP-ACKを生成し、対向するゲートウェイ装置１に送信する。また、対向するゲートウェイ装置１が生成したＴＣＰパケットであると判断した場合であって、ＴＣＰ管理部１６４が受付けたパケットがTCP-ACKの時はセッション状態テーブル１７１を更新する。なお、これらのＴＣＰパケットはゲートウェイ装置１宛てに送信されたものであるから、パケット保留部１５にはパケット廃棄の指示を出力する。
【００４５】
一方、セッション情報取得部１６２がＩＰ端末３の生成したＴＣＰパケットであると判断した場合、ユーザデータを受信した場合と同様に、セッション状態テーブル１７１を更新して無通信監視部１８に対応するセッションのタイマリセット信号を送信し、パケット保留部１５には転送指示を出力する。
なお、図３では呼制御ネットワーク５から入力されたパケットもパケット保留部１５で一時保留する構成としているが、パケット検出部１４Ｂにパケットの種類を分別し、ユーザデータもしくはＩＰ端末３Ａ宛のＩＰパケットであれば転送し、それ以外であれば廃棄する機能を設け、パケット保留部１５を迂回するようにしても良い。
【００４６】
ここで、ゲートウェイ装置１がセッション確立後に一定期間、このセッションを使用するＩＰパケットを検出しない場合の動作について説明する。
上記のとおり、無通信監視部１８はセッションごとにタイマ１８０を備えている。各タイマはセッション確立時にスタートし、このセッションを使用するＩＰパケットを検出するとリセットされ、BYEパケットを受信するとリセットされて停止する。また、タイマ１８０は満了によっても停止する。
【００４７】
タイマ１８０には満了時間が予め設定されており、タイマ１８０がスタートしてから一定時間内にこのタイマと対応付けられたセッションを使用するＩＰパケットが検出されなければ満了する。タイマ１８０が満了すると、無通信監視部１８はセッション情報取得部１６２にセッション切断要求を送信する。セッション情報取得部１６２は無通信監視部１８からのセッション切断要求に基づいてセッション状態テーブル１７１を更新し、セッション管理部１６３にBYEパケットの生成及び送信を指示する。対向するゲートウェイ装置１からこのBYEパケットへの応答である200 OKレスポンスを受信すると、セッション情報管理部１６３はこのセッションを切断し、セッション情報取得部１６２はセッション状態テーブル１７１を更新する。
なお、タイマの満了時間はシステムの運用方針等によって決まる値であり、ゲートウェイ装置１に外部インタフェースを備えることで、保守の際に変更することもできる。
【００４８】
セッションを切断する際、セッション情報取得部１６２はタイマ満了によりセッションを切断する場合であってもBYEパケットを受信してセッションを切断する場合であっても、セッション状態テーブル１７１のフロー情報のひとつとしてセッション状態を「BYE」に更新する。これにより、ゲートウェイ装置１はセッションを確立する際に以前に対応するセッションがあったか否かを判断することができる。すなわち、ＩＰ端末３からＴＣＰコネクションを確立するためのメッセージが送信されるのか、ゲートウェイ装置１自らTCP-SYNやTCP-ACKを生成しなければならないのかを判断できる。
【００４９】
図５の例では、セッション状態テーブル１７１にセッション状態の欄とＴＣＰコネクション状態の欄を設け、以前にセッションがあったか否かを判別できるようにしている。別の方法として、フロー情報に「現在のフロー情報」と「過去のフロー情報」の欄を設け、セッションが切断されると「現在のフロー情報」を「過去のフロー情報」に変換し、現在のフロー情報をリセットするようにしても良い。このようなセッション状態テーブルを設けることにより、セッション切断後にこのセッションを再確立する場合、セッション制御部１６は以前にセッションがあったか否かを判断するために「過去のフロー情報」の欄を確認すればよいことになる。
【００５０】
ところで、ゲートウェイ装置１はパケット処理やセッション管理をソフトウェアで行うこともある。ソフトウェアで処理する場合も上記と同様の動作をするが、プログラムの処理を図８のフローチャートを用いて説明する。
ゲートウェイ装置１はＩＰパケットが到着したことを検出すると（Ｓ１）、メモリ１３に一時保留する（Ｓ２）。次に、ＩＰパケットのＩＰアドレスに基づいてメモリ１３に記憶されたセッション制御パラメータを呼び出し（Ｓ３）、対応するセッションが有るか無いかを判断する（Ｓ４）。対応するセッションがある場合、セッションに対応して設けられたタイマ１８０を停止してリセットし（Ｓ５）、メモリ１３に一時保留されたＩＰパケットを転送する（Ｓ１０）。また、ＩＰパケットの転送をトリガーとしてタイマ１８０をスタートする（Ｓ１１）。なお、タイマ１８０が満了すると、ゲートウェイ装置１は対応するセッションを切断する。
【００５１】
Ｓ４において対応するセッションが無いと判断した場合はセッションを確立し（Ｓ６）、呼び出したセッション制御パラメータに基づいてＩＰ端末３の要求によるセッションの確立なのか、自発的なセッションの確立なのかを判断する（Ｓ７）。
なお、「自発的」とはＩＰ端末３のセッション確立要求ではなく、ユーザデータを転送するためにゲートウェイ装置１が一旦切断したセッションを自ら再確立することをいう。
【００５２】
ＩＰ端末３の要求によるセッション確立の場合、すなわち、セッション状態テーブル１７１のセッション状態の欄に「200 OK」が記入され、ＴＣＰコネクション状態の欄に「（TCP-SYN）」、「（TCP-SYN/ACK）」、「（TCP-ACK）」のいずれも記入されず、タイマの欄が空欄の場合、ＩＰ端末３からの要求によりセッションを再確立したもののＴＣＰコネクションは確立されていない場合、ゲートウェイ装置１はＴＣＰの3way handshakeに必要なＴＣＰパケットがＩＰ端末３から送信されるのを待ってこれを中継する（Ｓ８）。一方、自発的なセッション再確立の場合、すなわち、セッション状態テーブル１７１のセッション状態の欄に「200 OK」が記入され、かつ、タイマの欄に「満了」が記入されている場合、このセッションはゲートウェイ装置１により以前に切断されたセッションを再確立するものであり、ＩＰ端末３はＴＣＰの3way handshakeに必要なＴＣＰパケットを送信しないので、ゲートウェイ装置１自身がパケットを生成し、ＴＣＰコネクションを確立する（Ｓ９）。
Ｓ８又はＳ９によりＴＣＰコネクションが確立すると、メモリ１３に保留しているＴＣＰパケットのユーザデータがあればこれを呼制御ネットワークに転送し（Ｓ１０）、対応するセッションのタイマ１８０をスタートさせる（Ｓ１１）。
【００５３】
なお、ここではセッション制御プロトコルとしてＳＩＰを用いる場合について説明したが、H.323、MEGACO（Media Gateway Control Protocol）のようにＩＰネットワーク上でセッション制御やセッション管理ができるプロトコルであれば他のプロトコルを用いても良い。
【００５４】
本実施の形態によれば、ゲートウェイ装置１は中継するＩＰパケットを検出するＩＰパケット検出部１４Ａ、１４Ｂと、ＩＰパケットを一時的に保留するパケット保留部１５と、ＩＰパケットのセッション制御を行うセッション制御部１６と、セッション制御に必要なセッション制御パラメータやセッションの状態を記憶する記憶部１７と、セッションごとのタイマ１８０と、を備えたことにより、一定期間セッションを使用するＩＰパケットが検出されない場合にこのセッションを切断することができるため、呼制御ネットワークの通信路を有効に活用できる。
【００５５】
また、ゲートウェイ装置１は、中継するＩＰパケットのＩＰアドレスやポート番号、プロトコルといったフロー条件と、呼接続情報である宛先ＳＩＰ−ＵＲＩ、帯域といったセッション制御パラメータとを関連付けたセッション情報テーブル１７０、及び実際に行われた通信の情報とセッションの状態を示すフロー情報とから構成されたセッション状態テーブル１７１とを備え、さらにＴＣＰコネクションの確立に必要なメッセージの生成や受付といった管理を行うＴＣＰ管理機能を備えたことにより、ゲートウェイ装置１が自らセッションを切断した場合であっても、セッション切断後に受信したこのセッションを使用するＴＣＰパケットの宛先ＳＩＰ−ＵＲＩに基づいて再度セッションを確立し、セッション再確立時に取得した宛先アドレス・宛先ポート番号、及びＴＣＰパケットのＴＣＰヘッダに格納された送信元ＩＰアドレス・送信元ポート番号に基づいてＴＣＰコネクションも自ら確立することができる。
【００５６】
また、通信システムにおいて、このような機能を有するゲートウェイ装置１を設けることにより、データの伝送需要に応じてゲートウェイ装置１がセッションを切断したり再確立したりできるため、セッションの接続時間ではなく伝送路の使用時間に応じた柔軟な課金管理も可能となる。
【００５７】
実施の形態２．
実施の形態１では、セッション切断後に再度セッションを確立してＴＣＰパケットを中継する場合について説明した。実施の形態２では、セッション切断前後においてＴＣＰの連続性が要求される場合について説明する。
【００５８】
本実施の形態に係るゲートウェイ装置１が使用される通信システム１００の構成、及びゲートウェイ装置１のハードウェア構成は実施の形態１と同じであるため説明を省略する。ゲートウェイ装置１の機能及び動作について図９及び図１０を用いて説明する。
図９は実施の形態１に記載の図６の構成に順序情報管理部１６５を追加したもので、その他の構成は図６と同じである。順序情報管理部１６５は、ＴＣＰコネクションを使用する呼制御ネットワーク５において、シーケンス番号やＡＣＫ番号に連続性が要求される場合に、自身で生成するＴＣＰパケットに順序情報を付与したり、受信したＴＣＰパケットから順序情報を抽出したりする。
【００５９】
順序情報管理部１６５で抽出されたシーケンス番号等の順序情報はセッション情報取得部１６２に伝達され、セッション状態テーブル１７１に保存される。また、順序情報を付与する場合には、セッション情報取得部１６２がセッション状態テーブル１７１から順序情報を取り出して順序情報管理部１６５に伝達する。順序情報管理部１６５は、セッション情報取得部１６２から受取った順序情報に基づいて新たな順序情報を生成し、ＴＣＰ生成部１６４に通知する。ＴＣＰ生成部１６４は、生成するＴＣＰコネクション制御用のＴＣＰパケットのＴＣＰヘッダに、生成した順序情報であるシーケンス番号やＡＣＫ番号を付けて出力する。
【００６０】
ここで、通信システム全体のシーケンスを図１０に示す。なお、同一動作は同一番号を付して説明する。
セッションが切断されるまでの動作（S101〜S113）は実施の形態１と同じであるため説明を省略する。
セッションが切断された状態のS214にて、ＩＰ端末３Ａからシーケンス番号が「Ｘ」、ＡＣＫ番号が「Ｙ」のユーザデータData#2のＴＣＰパケットが送信されると、ゲートウェイ装置１ＡはこのＴＣＰパケットをパケット保留部１５に一時的に保留し、受信したＴＣＰパケットの情報をセッション制御部１６Ａに通知する。
【００６１】
セッション制御部１６Ａは受信したＩＰパケットからＩＰアドレス、プロトコルの種類、ポート番号、等の情報を抽出し、この情報に基づいてセッション情報テーブル１７０から対応するセッション制御パラメータを、セッション状態テーブル１７１からこのＩＰパケットに対応するセッションは一定期間使用されていないためゲートウェイ装置１Ａまたはゲートウェイ装置１Ｂにより切断されたものか否かの情報を読み取る。
【００６２】
ところで、ゲートウェイ装置１Ａが保留したＴＣＰパケットのデータを転送するには、呼制御ネットワーク５のセッション及びＴＣＰコネクションを再確立する必要がある。セッション制御部１６Ａが記憶部１７のセッション状態テーブル１７１を参照し、中継するＩＰパケットの通信路に対応するセッションが切断されていると判断した場合、ゲートウェイ装置１Ａはセッション管理部１６３に指示を出し、INVITEメッセージを生成してＳＩＰサーバ２に向けて送信させる（S115）。ＳＩＰサーバ２はINVITEメッセージを受取るとこのゲートウェイ装置１Ａに100 Tryingパケットを返信する（S116）と共に、対向するゲートウェイ装置１ＢにINVITEメッセージを転送する（S117）。対向するゲートウェイ装置１ＢはINVITEメッセージを受取るとＳＩＰサーバ２に100 Tryingパケットの応答を返し（S118）、セッション確立の準備が整うとＳＩＰサーバ２に200 OKレスポンスを送信する（S119）。ＳＩＰサーバ２は200 OKレスポンスを受信するとINVITEメッセージを送信したゲートウェイ装置１Ａに転送し、このゲートウェイ装置１Ａがこの200 OKレスポンスを受信し、ＡＣＫを返信する（Ｓ120）とセッションの確立が完了する。
【００６３】
一旦切断されたセッションが再確立された場合、ゲートウェイ装置１ＡはTCP-SYNパケットを生成して対向するゲートウェイ装置１Ｂとの間で3way handshakeを行う（S221〜S223）。このとき、ＴＣＰヘッダのシーケンスフィールドにはＩＰ端末３Ａから受信したＩＰパケットのシーケンス番号「Ｘ」すなわち第１の順序情報より１つ小さい「Ｘ−１」すなわち第２の順序情報をゲートウェイ装置１Ａのシーケンス番号初期値として記入する。また、TCP-SYNパケットではＴＣＰヘッダのＡＣＫフィールドは通常使用しないため、この領域を利用してゲートウェイ装置１Ｂに応答の際にシーケンス番号として使用して欲しい値「Ｙ−１」を記入する。
【００６４】
なお、TCP-SYNパケットのＡＣＫフィールドは3way handshakeをする装置であっても通常は参照しない領域である。TCP-SYNパケットのＡＣＫフィールドに拡張機能を持たせる場合は、上記のようにゲートウェイ装置１Ａ、１Ｂに対応する機能を予め備えておくものとする。
【００６５】
ゲートウェイ装置１Ａがシーケンスフィールドに「Ｘ−１」、ＡＣＫフィールドに「Ｙ−１」を記入したTCP-SYNパケットを生成してゲートウェイ装置１Ｂに送信すると（S221）、ゲートウェイ装置１Ｂは自身のシーケンス番号初期値を「Ｙ−１」に設定し、TCP-SYN/ACKパケットのシーケンスフィールドに「Ｙ−１」を記入する。また、ゲートウェイ装置１ＢはTCP-SYNパケットの順序情報を正常に受信したことを伝えるため、ＡＣＫフィールドにTCP-SYNパケットのシーケンス番号に「＋１」の計算を行った「Ｘ」を記入し、ゲートウェイ装置１Ａに返信する（S222）。
【００６６】
ゲートウェイ装置１Ｂからシーケンスフィールドが「Ｙ−１」、ＡＣＫフィールドが「Ｘ」のTCP-SYN/ACKパケットを受取ったゲートウェイ装置１Ａは、ＡＣＫフィールドに記載されたＡＣＫ番号により自身が送信したTCP-SYNパケットが正常に受信されたことを確認できる。TCP-SYN/ACKパケットを正常に受信したゲートウェイ装置１ＡはTCP-ACKパケットを返信する（S223）。このとき、シーケンスフィールドには先ほど送信したTCP-SYNパケットの次に送信するパケットであることを示すため、TCP-SYNのシーケンス番号である「Ｘ−１」に「＋１」した「Ｘ」を記入し、ＡＣＫフィールドには「Ｙ−１」に「＋１」の計算をした「Ｙ」を記入して送信する。
【００６７】
このようにＴＣＰパケットに順序情報を付与することにより、3way handshakeが完了した時点でゲートウェイ装置１Ａには所望のシーケンス番号である「Ｘ」と所望のＡＣＫ番号である「Ｙ」を設定することができる。これらの値はゲートウェイ装置１Ａに保留しているユーザデータとそれぞれ同じ値であることから（S224）、セッション切断前後においてＴＣＰの順序情報の連続性を保つことができる。
【００６８】
本実施の形態によれば、実施の形態１に記載の効果に加えて、ユーザデータの順序情報を抽出し、この値に基づいてＴＣＰの3way handshakeの際にゲートウェイ装置の順序情報初期値を設定することにより、セッション切断前後においてＴＣＰの順序情報に連続性が要求される場合であってもＴＣＰ通信を再開できる。
【００６９】
実施の形態３．
実施の形態２では、セッション切断前後でＴＣＰの順序情報の連続性を保つために、２つのゲートウェイ装置間で行うＴＣＰの3way handshakeを用いてゲートウェイ装置のシーケンス番号初期値及びＡＣＫ番号初期値を設定した。実施の形態３では、セッション再確立時の制御プロトコル及びＴＣＰの3way handshakeを利用して順序情報の連続性を保つ場合について説明する。
【００７０】
本実施の形態に係るゲートウェイ装置１が使用される通信システム１００の構成、及びゲートウェイ装置１のハードウェア構成は実施の形態１と同じであるため説明を省略する。ゲートウェイ装置１の機能及び動作について図１１ないし図１３を用いて説明する。
【００７１】
図１１は実施の形態２に記載の図９の構成とほぼ同じで、順序情報管理部１６５Ｂの機能が一部異なる。ＴＣＰの連続性が要求される呼制御ネットワーク５において、順序情報として０以上の整数しか許容されない場合がある。順序情報管理部１６５Ｂは中継するＩＰパケットから順序情報を抽出し、新たな順序情報を生成してセッション制御用のパケットやＴＣＰコネクション用のパケットに付与する。また、ユーザデータの順序情報は新たに生成した順序情報に変換する。
【００７２】
順序情報管理部１６５Ｂはセッション情報取得部１６２と双方向に信号のやり取りができるように接続されており、順序情報管理部１６５ＢがＩＰパケットから抽出したシーケンス番号やＡＣＫ番号といった順序情報はセッション情報取得部１６２に伝えられ、セッション状態テーブル１７１に記憶される。また、順序情報管理部１６５Ｂが新たな順序情報を生成する際には、セッション情報取得部１６２がセッション状態テーブル１７１から順序情報を取り出して順序情報管理部１６５Ｂに伝える。
順序情報管理部１６５Ｂは生成した新たな順序情報をＴＣＰ管理部１６４のＴＣＰ生成部１６４０に伝え、ＴＣＰ生成部１６４０はこの順序情報をTCP-SYNパケットやTCP-ACKパケットのＴＣＰヘッダにシーケンス番号やＡＣＫ番号として記入して出力する。
【００７３】
ここで、通信システム全体のシーケンスを図１２に示す。
セッションが切断されるまでの動作（S101〜S113）は実施の形態１と同じであるため説明を省略する。
セッションが切断された状態のS214にて、ＩＰ端末３Ａからシーケンス番号が「Ｘ」、ＡＣＫ番号が「Ｙ」のユーザデータData#2のＴＣＰパケットが送信されると、ゲートウェイ装置１ＡはこのＴＣＰパケットをパケット保留部１５に一時的に保留し、受信したＴＣＰパケットの情報をセッション制御部１６Ｂに通知する。
なお、ＩＰ端末３Ａから送信されたData#2のシーケンス番号「Ｘ」はＴＣＰの順序情報の連続性を示すものであり、第１の順序情報に相当する。
【００７４】
セッション制御部１６Ｂは受信したＩＰパケットからＩＰアドレス、プロトコルの種類、ポート番号、等の情報を抽出し、この情報に基づいてセッション情報テーブル１７０から対応するセッション制御パラメータを、セッション状態テーブル１７１からこのＩＰパケットに対応するセッションは一定期間使用されていないためゲートウェイ装置１Ａまたはゲートウェイ装置１Ｂにより切断されたものか否かの情報を読み取る。
【００７５】
ゲートウェイ装置１Ａが保留したデータを転送するには、呼制御ネットワーク５のセッション及びＴＣＰコネクションを再確立する必要がある。セッション制御部１６Ｂが記憶部１７のセッション状態テーブル１７１を参照し、対応するセッションは切断されていると判断した場合、ゲートウェイ装置１Ａはセッション管理部１６３に指示を出し、順序情報管理部１６５Ｂにて抽出したユーザデータData#2のシーケンス番号及びＡＣＫ番号を含むINVITEメッセージを生成して送信させる（S315）。
【００７６】
ここで、図１２のS315にてゲートウェイ装置１Ａが送信するINVITEメッセージのメッセージフォーマットの例を図１３に示す。このメッセージはテキスト形式で記載され、リクエストの種類等が格納されたリクエスト行と、パケット概要を示す情報が格納されたヘッダ領域と、空白行と、セッション確立後の通話に関する情報が格納されたボディ領域とで構成されている。リクエスト行の内容、必須のヘッダ、及びボディ領域の具体的なパラメータについて説明する。
【００７７】
（リクエスト行）
リクエスト行は３つの情報、すなわちリクエストの種類、リクエストの宛先を示すためのＵＲＩ、ＳＩＰのバージョンにより構成されている。図１３の例では、リクエストの種類が「INVITE」、宛先のＵＲＩが「sip:85011bf9a84ecf6f@121.0.50.50」、ＳＩＰのバージョンが「SIP/2.0」となっている。
【００７８】
（ヘッダ領域のパラメータ）
ヘッダにはリクエストの概要を示すための情報が「ヘッダ名：値」という形式で複数格納されている。
Via：ＳＩＰのバージョン、データ伝送に使用するプロトコル、このリクエストに対するレスポンスを送る相手を示す。図１３の例ではＳＩＰのバージョンをSIP/2.0、データ伝送プロトコルをUDP、レスポンスを送る相手は1.1.1.1のbranch=z9hG4bK29ffa9907d949bd9に設定されている。
Max-Forwards：リクエストの最大中継回数を示す。この値は１回中継されるごとに１ずつ減らされ、０になるとエラーを示すレスポンスが返される。「70」という値はＳＩＰで推奨されている一般的な値である。
From：リクエストの送信者を示す。なお、tagは送信者を識別するための値である。図１３の例では送信者をsip:foo@example.com、tagをaaaaaとしている。
To：リクエストの受信者を示す。図１３の例ではsip:bar@example.com、tagをbbbbbとしている。
Call-ID：一連の通話（セッション）で発生するＳＩＰリクエストやＳＩＰレスポンスを他の通話（セッション）のものと識別するための識別子を示す。この識別子はINVITEによるセッションの確立要求からBYEによるセッション切断要求まで同じものが使用される。また、他のセッションとは異なるユニークな識別子を設定する必要がある。ここではccccc@1.1.1.1が設定されている。
CSeq：リクエストの順序を示す。図１３の例では１が設定されている。
Contact：これ以降のリクエストの送信先をURIで示す。図１３の例ではsip:foo@1.1.1.1が設定されている。
Content-Type：この後に続くボディ領域の種類を示す。図１３の例ではボディがＳＤＰなのでapplication/sdpが設定されている。
Content-Lencgth：ボディ領域のサイズを示す。図１３の例ではボディが182バイトに設定されていることを示している。
【００７９】
（ボディ領域のパラメータ）
ｖ：プロトコルのバージョンを示す。ＳＤＰのバージョン０を使用するため、図１３の例ではｖ＝０が設定されている。
ｏ：セッションを識別するための情報を示す。ユーザ名、セッションＩＤ、セッションバージョン、ネットワークタイプ、アドレスタイプ、セッションを開始した装置のアドレスが左から順に記入されている。図１３の例ではユーザ名が省略されている。また、ネットワークタイプのＩＮはインターネットを使うことを示している。
ｓ：セッション名を示す。図１３では省略されている。
ｃ：コネクション情報を示す。ネットワークタイプ、アドレスタイプ、送信元のホスト名又はＩＰアドレスが左から順に記入されている。
ｔ：セッションの開始時刻、終了時刻を示す。セッションの開始や終了はＳＩＰが制御するため、ＳＤＰでは指定することができず、ここではｔ＝０  ０がセットされている。
ｍ：メディアについての情報を示す。メディアタイプ、ポート番号、プロトコル、フォーマットが左から順に記入されている。
ａ：様々な属性を示す。ひとつのａフィールドは属性と値からなり、複数のａフィールドを規定することもできる。図１２のS213に記載されているＴＣＰのシーケンス番号「Ｘ」とＡｃｋ番号「Ｙ」は、図１３では、図中破線で囲んだように、シーケンス番号が属性「X-TCP-seq」、値「10000」として設定され、ＡＣＫ番号が属性「X-TCP-ack」、値「20000」として設定されている。
【００８０】
ＳＩＰサーバ２はシーケンス番号及びＡＣＫ番号を含むINVITEメッセージを受取るとゲートウェイ装置１Ａに100 Tryingパケットを送信して応答し（S316）、このINVITEメッセージをゲートウェイ装置１Ｂに転送する（S317）。ゲートウェイ装置１ＢはINVITEメッセージを受取ると、このセッションで次にＴＣＰを使用して伝送されてくるユーザデータのシーケンス番号が「Ｘ」、ＡＣＫ番号が「Ｙ」であるとの情報をセッション情報テーブル１７０に記憶する。
【００８１】
ゲートウェイ装置１ＢはINVITEメッセージへの応答としてＳＩＰサーバ２に100 Tryingパケットを送信し（S318）、セッション確立の準備が整うとゲートウェイ装置１Ａに向けて200 OKレスポンスを送信する（S319）。ゲートウェイ装置１Ａがこの200 OKレスポンスを受信し、ＡＣＫを返信する（S320）とセッションの確立が完了する。
【００８２】
一旦切断されたセッションが再確立された場合、ゲートウェイ装置１Ａは実施の形態２と同様に、TCP-SYNパケットを生成して対向するゲートウェイ装置１Ｂとの間で3way handshakeを行う（S321〜S323）。このとき、順序情報付与・変換部１６５Ｂはゲートウェイ装置１Ａで初期値として使用したいシーケンス番号すなわち第２の順序情報を決定し、ＴＣＰヘッダのシーケンスフィールドに記入する。図１２の例ではシーケンス番号は「Ａ」となっている（S321）。なお、ＡＣＫ番号の初期値は通常０が用いられる。
【００８３】
ゲートウェイ装置１ＢにTCP-SYNパケットが到達すると、ゲートウェイ装置１Ｂも自身の順序情報付与・変換部１６５Ｂにて初期値として使用したいシーケンス番号を決定する。例えば図１２の例では、ゲートウェイ装置１Ｂのシーケンス初期値を「Ｂ」としており、TCP-SYN/ACKパケットのシーケンスフィールドに「Ｂ」を記入し、ＡＣＫフィールドにはTCP-SYNパケットのシーケンス番号「Ａ」を正常に受信したことを示すためにTCP-SYNのシーケンス番号に「＋１」を演算した「Ａ＋１」を記入してゲートウェイ装置１Ａに返信する（S322）。
【００８４】
ゲートウェイ装置１Ｂからシーケンスフィールドが「Ｂ」、ＡＣＫフィールドが「Ａ＋１」のTCP-SYN/ACKパケットを受取ったゲートウェイ装置１Ａは、ＡＣＫフィールドに記載されたＡＣＫ番号により自身が送信したTCP-SYNパケットが正常に受信されたことを確認できる。TCP-SYN/ACKパケットを正常に受信したゲートウェイ装置１Ａは、TCP-ACKパケットを返信する（S323）。このとき、シーケンスフィールドには先ほど送信したTCP-SYNパケットの次に送信するＴＣＰパケットであることを示すため、TCP-SYNのシーケンス番号である「Ａ」に「＋１」を演算した「Ａ＋１」を記入し、ＡＣＫフィールドにはTCP-SYN/ACKパケットのシーケンス番号を正常に受信したことを示すために「Ｂ」に「＋１」を演算した「Ｂ＋１」を記入してゲートウェイ装置１Ｂに返信する。
【００８５】
このようにＴＣＰパケットに順序情報を付与することにより、２つのゲートウェイ装置１Ａ、１Ｂ間での3way handshakeが完了してＴＣＰコネクションが確立すると、ゲートウェイ装置１Ａにはシーケンス番号「Ａ＋１」とＡＣＫ番号「Ｂ＋１」は設定され、ゲートウェイ装置１Ｂにはシーケンス番号「Ｂ」とＡＣＫ番号「Ａ＋１」が設定される。
【００８６】
S214においてゲートウェイ装置１Ａのパケット保留部１５に一時保留されたＴＣＰパケットは、ＴＣＰコネクションが確立するとセッション情報取得部１６２からの指令によりＩＰパケットを呼制御ネットワーク５に転送する（S324）。このとき、ゲートウェイ装置１Ａのシーケンス番号は「Ａ＋１」、ＡＣＫ番号は「Ｂ＋１」に設定されているため、順序情報管理部１６５Ｂは転送するユーザデータ#2のシーケンスフィールドの値を「Ａ＋１」、ＡＣＫフィールドの値を「Ｂ＋１」に変換する。
【００８７】
このユーザデータData#2のＴＣＰパケットがゲートウェイ装置１Ｂに到達すると、セッション制御部１６ＢはこのＴＣＰパケットからＩＰアドレスを抽出し、このＩＰアドレスに基づいてセッションを再確立する際にセッション情報テーブル１７０に記憶したシーケンス番号「Ｘ」及びＡＣＫ番号「Ｙ」を呼び出す。その後、順序情報管理部１６５Ｂにより、ユーザデータData#2のシーケンスフィールドの値を「Ａ＋１」から「Ｘ」に、ＡＣＫフィールドの値を「Ｂ＋１」から「Ｙ」に変換してＩＰ端末３Ｂに転送する（S325）。
【００８８】
これ以降、ＩＰ端末３ＡからＩＰ端末３ＢへＴＣＰにて送信されるＩＰパケット、すなわちＴＣＰパケットのシーケンス番号は１ずつインクリメントされる。例えばＩＰ端末３ＡがＴＣＰヘッダにシーケンス番号「Ｘ＋ｎ」、ＡＣＫ番号「Ｙ＋ｍ」を格納したデータData#nをＴＣＰにてゲートウェイ装置１Ａに送信した場合（S326）、ゲートウェイ装置１Ａはシーケンス番号を「Ａ＋ｎ＋１」、ＡＣＫ番号を「Ｂ＋ｍ＋１」に変換し（S327）、ゲートウェイ装置１Ｂが再びシーケンス番号を「Ｘ＋ｎ」、ＡＣＫ番号を「Ｙ＋ｍ」に変換してＩＰ端末３Ｂに転送する（S328）。
【００８９】
このように、ゲートウェイ装置１Ａがセッションを再確立する際に対向するゲートウェイ装置１ＢにＴＣＰのシーケンス番号初期値及びＡＣＫ番号初期値を通知しておくことで、呼制御ネットワーク５においてゲートウェイ装置１Ａ、１ＢがＴＣＰのシーケンス番号やＡＣＫ番号として任意の値を用いる場合であっても、対向するゲートウェイ装置１Ｂが中継するユーザデータData#2のシーケンス番号及びＡＣＫ番号をゲートウェイ装置１Ａで変換される前の値に再変換することができる。
【００９０】
本実施の形態によれば、セッションを再確立する際の制御プロトコルとＴＣＰの3way handshakeを利用して、ＴＣＰで通信されるユーザデータのシーケンス番号及びＡＣＫ番号、ゲートウェイ装置１Ａが呼制御ネットワーク５上で使用するシーケンス番号及びＡＣＫ番号をゲートウェイ装置１Ｂに通知できるようにしたため、ＡＣＫ番号は３２bitの符号なし整数で表される値であるが、ゲートウェイ装置１Ａ、１Ｂに設定されるＡＣＫ番号が０より小さな値とならず、ユーザデータに含まれるＴＣＰの順序情報の連続性を維持した状態でデータを中継することができる。
【００９１】
実施の形態４．
実施の形態３では、セッション切断前後でＴＣＰの連続性を保つために、セッション再確立時の制御プロトコル及びＴＣＰの3way handshakeを利用してゲートウェイ装置にシーケンス番号及びＡＣＫ番号を設定した。実施の形態４では、セッション切断前後のセッション確立用の制御プロトコルを利用してＴＣＰの連続性を維持する場合について説明する。
【００９２】
本実施の形態に係るゲートウェイ装置１が使用される通信システム１００の構成、及びゲートウェイ装置１のハードウェア構成は実施の形態１と同じであるため説明を省略する。ゲートウェイ装置１の機能及び動作について図１４ないし図１８を用いて説明する。
図１４に示すように、セッション制御部１６Ｃの構成は実施の形態１とほぼ同じで、セッション情報取得部１６２Ｃの機能が一部異なる。セッション情報取得部１６２Ｃには通信フローごとにフロー識別子を生成し管理する識別子管理部１６２０が設けられ、このフロー識別子は、図１５に示すように、セッション情報テーブル１７０Ｃにセッション制御パラメータとあわせて記憶されている。
【００９３】
ここで、図１６のシーケンス図を用いて通信システム全体の動作について説明する。
ＩＰ端末３ＡからＴＣＰコネクションの接続要求であるTCP-SYNパケットが送信され（S101）、ゲートウェイ装置１Ａがこれを検出すると、ゲートウェイ装置１Ａはセッション制御部１６Ｃにて送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル、送信元ポート番号、宛先ポート番号等を抽出し、記憶部１７のセッション情報テーブル１７０Ｃからセッション制御パラメータを取得する。
【００９４】
ゲートウェイ装置１Ａは取得したセッション制御パラメータに基づいて、セッション制御部１６Ｃの識別子管理部１６２０にて通信フローに対応するセッションごとに固有のフロー識別子を生成し、セッション管理部１６３にてこのフロー識別子を含むINVITEメッセージを生成する。なお、生成されたフロー識別子は、セッション制御パラメータとあわせてセッション情報テーブル１７０Ｃに記憶される。
【００９５】
ここで、ゲートウェイ装置１ＡがS402にて送信するINVITEメッセージの一例を図１７に示す。INVITEメッセージのメッセージフォーマットは実施の形態３とほぼ同じで、属性を規定するａフィールドが異なる。図１７の例では、図中破線で囲んだように、フロー識別子Ｚとして属性「X-peer-flowID」、値「30000」が設定されている。
【００９６】
ゲートウェイ装置１Ａからを呼制御ネットワーク５にメッセージを送信する際、アドレス情報を秘匿するためにＩＰアドレスとポート番号を書き換えるＮＡＰＴ（Network Address Port Transfer）変換という技術を用いることがある。ＮＡＰＴ変換前後の送信元ＩＰアドレス及び送信元ポート番号は、ＮＡＰＴ変換テーブルとして、例えば図１５に示すように、セッション情報テーブル１７０Ｃの一部として記憶されている。
【００９７】
図１６のシーケンスにおいて、ゲートウェイ装置１Ａ、１ＢがＮＡＰＴ変換を行う場合を黒丸で示す。ゲートウェイ装置１Ａはフロー識別子Ｚを含むINVITEメッセージを生成して送信し（S402）、ＳＩＰサーバ２はこのINVITEメッセージに対し100 Tryingで応答し（S403）、ゲートウェイ装置１Ｂに転送する（S404）。対向するゲートウェイ装置１ＢはこのINVITEメッセージを受信すると、ゲートウェイ装置１Ａが設定したＩＰアドレス、ポート番号、フロー識別子Ｚを自身のセッション情報テーブル１７０Ｃに記憶し、100 Tryingパケット及び200 OKレスポンスの応答を送信し（S405、Ｓ406）、ゲートウェイ装置１ＡはＡＣＫを返信する（S407）。
【００９８】
ゲートウェイ装置１Ａは200 OKレスポンスを受信すると、先ほどフロー識別子Ｚと対応付けて記憶したセッション情報テーブル１７０Ｃと、200 OKレスポンスに記載されたゲートウェイ装置１ＢのＩＰアドレス及びポート番号に基づいて、図１８に示すようなセッション状態テーブル１７１Ｃを生成する。
【００９９】
呼制御ネットワーク５上にセッションが確立されると、ゲートウェイ装置１Ａは保留していたS101にて受信したTCP-SYNパケットをゲートウェイ装置１Ｂに向けて送出する（S408）。このとき、TCP-SYNパケットの宛先ＩＰアドレス及び宛先ポート番号はＮＡＰＴ変換により200 OKレスポンスのＳＤＰで通知された値に書き換えられ、送信元ＩＰアドレス及び送信元ポート番号は自身のセッション情報テーブル１７０Ｃで規定された値にＮＡＰＴ変換により書き換えられる。
【０１００】
ゲートウェイ装置１ＢはこのTCP-SYNパケットを受信すると、セッション状態テーブル１７１Ｃに記憶したＮＡＰＴ変換の情報に基づいてＩＰアドレスとポート番号を変換し、ＩＰ端末３Ｂに転送する。TCP-SYNパケットを受信したＩＰ端末３ＢはTCP-SYN/ACKパケットを生成し、S409にて対向するＩＰ端末３Ａに向けて送信する。ゲートウェイ装置１ＢはTCP-SYN/ACKパケットを受信すると、セッション状態テーブル１７１Ｃに基づいて、送信元ＩＰアドレスと送信元ポート番号を先ほど200 OKレスポンスを送信した際のＩＰアドレスとポート番号に変換し、宛先ＩＰアドレスと宛先ポート番号をゲートウェイ装置１ＡからTCP-SYNを受信した際の送信元アドレス及び送信元ポート番号に変換し、ゲートウェイ装置１Ａに向けて転送する。
【０１０１】
TCP-SYN/ACKパケットを受信したゲートウェイ装置１Ａはセッション状態テーブル１７１Ｃに記憶したＮＡＰＴ変換の情報に基づいて、ＩＰアドレスとポート番号をTCP-SYNパケットを送信した際の送信元ＩＰアドレスと送信元ポート番号、すなわちＩＰ端末３ＡのＩＰアドレスとポート番号に変換してＩＰ端末３Ａに転送する。
TCP-SYN/ACKパケットを受信したＩＰ端末３ＡはTCP-ACKパケットを生成し、S410にて対向するＩＰ端末３Ｂに向けて送信する。このTCP-ACKパケットも、TCP-SYNパケットと同様にゲートウェイ装置１Ａ、１ＢにてＮＡＰＴ変換されてＩＰ端末３Ｂに到達する。
このようにしてＴＣＰの3way handshakeが完了すると、ＩＰ端末３Ａ、３Ｂ間にＴＣＰコネクションが確立し、双方向のＴＣＰ通信が可能となる（S411）。
【０１０２】
ゲートウェイ装置１Ａは、実施の形態１と同様に、このセッションを使用するＩＰパケットを一定期間検出しない状態が続くと、BYEパケットを生成して対向するゲートウェイ装置１Ｂに送信する（S112）。
【０１０３】
ゲートウェイ装置１Ｂから200 OKレスポンスの応答を受信すると、ゲートウェイ装置１Ａはこのセッションを切断し、このセッションに対応するタイマ１８０を停止してリセットすると共に、セッション状態テーブル１７１Ｃを更新する（S113）。
ここではゲートウェイ装置１Ａがセッション切断を要求するBYEパケットを生成する場合を示したが、ゲートウェイ装置１ＢがBYEパケットを生成してもよい。どちらがトリガーとなるかは、先にタイマ１８０が満了したものとしても良いし、予め二者間で決めておいても良い。
【０１０４】
セッションが切断された後、再びＩＰ端末３ＡがS113にてＩＰ端末３Ｂ宛てにユーザデータData#2のＴＣＰパケットを送信すると（S114）、ゲートウェイ装置１ＡはこのユーザデータData#2を自装置内のパケット保留部１５に一時保留し、セッションを再確立するために再びINVITEメッセージを生成してＳＩＰサーバ２に送信する（S415）。このとき、INVITEメッセージのａフィールドには先ほどと同様にフロー識別子Ｚが設定される。
【０１０５】
対向するゲートウェイ装置１ＢはS417によりINVITEメッセージを受信すると100 TryingをＳＩＰサーバ２に返信し（S418）、セッション確立の準備が整ったところでゲートウェイ装置１Ａに向けて200 OKレスポンスを送信する（S419）。このとき、200 OKレスポンスの宛先ＩＰアドレスには、INVITEメッセージの送信元ＩＰアドレスがセットされ、200 OKレスポンスの宛先ポート番号には、INVITEメッセージの送信元ポート番号がセットされる。
ゲートウェイ装置１Ａがこの200 OKレスポンスを受信しＡＣＫを返信すると（S420）、呼制御ネットワーク５にセッションが再確立される。
【０１０６】
ゲートウェイ装置１Ａは、INVITEメッセージを生成する際にセッション状態テーブル１７１Ｃを参照し、このセッション確立要求は一旦切断されたセッションを再確立するものなのか、ＩＰ端末３ＡからのTCP-SYNパケット送信の要求に応じてセッションを確立するものなのかを判断する。
【０１０７】
一旦切断されたセッションを再確立するものであると判断した場合、ゲートウェイ装置１Ａはセッションを再確立した後、ＴＣＰ管理部１６４にてTCP-SYNパケットを生成し、対向するゲートウェイ装置１Ｂ宛に送信する（S421）。ゲートウェイ装置１ＢはTCP-SYN/ACKパケットを生成してこれに応答し（S422）、ゲートウェイ装置１ＡがTCP-ACKパケットで応答する（S423）ことにより3way handshakeが成立し、２つのゲートウェイ装置１Ａ、１Ｂ間にＴＣＰコネクションが確立される。
【０１０８】
ＴＣＰコネクションが確立すると、ゲートウェイ装置１ＡはS114にて受信し保留していたユーザデータData#2のＴＣＰパケットを、セッション状態テーブル１７１Ｃに基づいてＮＡＰＴ変換し、対向するゲートウェイ装置１ＢにＴＣＰにて転送する（S424）。ゲートウェイ装置１ＢはこのユーザデータData#2のＴＣＰパケットを受信すると、自装置のセッション状態テーブル１７１Ｃの情報に基づいてＮＡＰＴ変換し、ＩＰ端末３Ｂに転送する（S425）。
以後、ＩＰ端末３Ａ、３Ｂ間を伝送するＴＣＰパケットはゲートウェイ装置１Ａ、１Ｂで中継される際にＮＡＰＴ変換され（S426〜S428）、呼制御ネットワークとユーザネットワークとでは異なるＩＰアドレス及びポート番号を持つことになる。
【０１０９】
本実施の形態によれば、セッションごとに固有のフロー識別子を設け、セッション確立の際に２つのゲートウェイ装置間でフロー識別子を共有することにより、ゲートウェイ装置１Ａ、１ＢがＮＡＰＴ変換する場合であっても、セッション切断前のフローを特定することができ、同じセッションでＴＣＰコネクションを確立することができる。
【０１１０】
実施の形態５．
実施の形態３では、セッション切断前後でＴＣＰの順序情報の連続性を保つために、制御プロトコルや3way handshakeを利用してゲートウェイ装置にシーケンス番号及びＡＣＫ番号を設定した。また、実施の形態４では、セッションごとに固有のフロー識別子を設けることにより、セッション切断前のフローを特定してＴＣＰコネクションを確立できるようにした。実施の形態５では、実施の形態３と実施の形態４を組合せた場合について説明する。
【０１１１】
本実施の形態に係るゲートウェイ装置１が使用される通信システム１００の構成、及びゲートウェイ装置１のハードウェア構成は実施の形態１と同じであるため説明を省略する。ゲートウェイ装置１の機能及び動作について図１９ないし図２１を用いて説明する。
図１９はセッション制御部１６Ｄの機能ブロック図で、セッション情報取得部１６２Ｄにフロー識別子を生成したり管理したりする識別子管理部１６２０Ｄを備えると共に、実施の形態３に記載したのと同じ機能を有する順序情報管理部１６５Ｄを備えたものである。
【０１１２】
ここで、図２０のシーケンス図を用いて通信システム全体の動作について説明する。
ＩＰ端末３ＡからＴＣＰコネクションの接続要求であるTCP-SYNパケットが送信され（S101）、ゲートウェイ装置１Ａがこれを検出すると、ゲートウェイ装置１Ａはセッション制御部１６Ｄにて送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル、送信元ポート番号、宛先ポート番号等を抽出し、記憶部１７のセッション情報テーブル１７０Ｄからセッション制御パラメータを取得する。
【０１１３】
ゲートウェイ装置１Ａは取得したセッション制御パラメータに基づいて、セッション制御部１６Ｄの識別子管理部１６２０Ｄにて通信フローに対応するフロー識別子Ｚを生成し、セッション管理部１６３にてこのフロー識別子を含むINVITEメッセージを生成する。なお、生成されたフロー識別子Ｚは、セッション制御パラメータとあわせてセッション情報テーブル１７０Ｄに記憶される。
【０１１４】
ゲートウェイ装置１Ａは、呼制御ネットワーク５にＩＰパケットを転送する際にＩＰアドレスやポート番号を秘匿するためにＮＡＰＴ変換を行う。図２０のシーケンスにおいて、ゲートウェイ装置１Ａ、１ＢがＮＡＰＴ変換を行う場合を黒丸で示す。
【０１１５】
ゲートウェイ装置１Ａはフロー識別子Ｚを含むINVITEメッセージを生成すると、セッション情報テーブル１７０Ｄに基づいて送信する（S402）。対向するゲートウェイ装置１ＢはこのINVITEメッセージを受信すると、ゲートウェイ装置１Ａが設定したＩＰアドレス、ポート番号、フロー識別子Ｚを自身のセッション情報テーブル１７０Ｄに記憶し、100 Tryingパケット及び200 OKレスポンスを返信する（S405、Ｓ406）。
【０１１６】
ゲートウェイ装置１Ａは200 OKレスポンスを受信すると（S406）、先ほどフロー識別子Ｚと対応付けて記憶したセッション情報テーブル１７０Ｄと、200 OKレスポンスに記載されたゲートウェイ装置１ＢのＩＰアドレス及びポート番号に基づいて、セッション状態テーブル１７１Ｄを生成し、ＡＣＫを返信する（S407）。
【０１１７】
呼制御ネットワーク５上にセッションが確立されると、ゲートウェイ装置１ＡはS101にて受信し保留していたTCP-SYNパケットをゲートウェイ装置１Ｂに向けて送出する（S408）。このとき、TCP-SYNパケットの宛先ＩＰアドレス及び宛先ポート番号はＮＡＰＴ変換により200 OKレスポンスのＳＤＰで通知された値に書き換えられ、送信元ＩＰアドレス及び送信元ポート番号は自身のセッション情報テーブル１７０ＤのＮＡＰＴ変換情報に基づいて書き換えられる。
【０１１８】
ゲートウェイ装置１ＢはこのTCP-SYNパケットを受信すると、セッション状態テーブル１７１Ｄに記憶したＮＡＰＴ変換の情報に基づいてＩＰアドレスとポート番号を変換し、ＩＰ端末３Ｂに転送する。TCP-SYNパケットを受信したＩＰ端末３ＢはTCP-SYN/ACKパケットを生成し、対向するＩＰ端末３Ａに向けて送信する（S409）。ゲートウェイ装置１ＢはTCP-SYN/ACKパケットを受信すると、セッション状態テーブル１７１Ｄに基づいて、送信元ＩＰアドレスと送信元ポート番号を先ほど200 OKレスポンスを送信した際のＩＰアドレスとポート番号に変換し、宛先ＩＰアドレスと宛先ポート番号をゲートウェイ装置１ＡからTCP-SYNを受信した際の送信元アドレス及び送信元ポート番号に変換し、ゲートウェイ装置１Ａに向けて転送する。
【０１１９】
TCP-SYN/ACKパケットを受信したゲートウェイ装置１Ａはセッション状態テーブル１７１Ｄに記憶したＮＡＰＴ変換の情報に基づいて、ＩＰアドレスとポート番号をTCP-SYNパケットを送信した際の送信元ＩＰアドレスと送信元ポート番号に変換してＩＰ端末３Ａに転送する（S409）。
TCP-SYN/ACKパケットを受信したＩＰ端末３ＡはTCP-ACKパケットを生成し、対向するＩＰ端末３Ｂに向けて送信する。このTCP-ACKパケットも、TCP-SYNパケットと同様にゲートウェイ装置１Ａ、１ＢにてＮＡＰＴ変換されてＩＰ端末３Ｂまで送られる（S410）。
このようにしてＴＣＰの3way handshakeが完了すると、ＩＰ端末３Ａ、３Ｂ間にＴＣＰコネクションが確立し、双方向のＴＣＰ通信が可能となる（S411）。
【０１２０】
ゲートウェイ装置１Ａは、このセッションを使用するＩＰパケットを一定期間検出しない状態が続くと、BYEパケットを生成して対向するゲートウェイ装置１Ｂに送信する（S112）。対向するゲートウェイ装置１Ｂから200 OKレスポンスの応答を受信すると、ゲートウェイ装置１Ａはこのセッションを切断し、対応するタイマ１８０を停止してリセットし、セッション状態テーブル１７１Ｄを更新する（S113）。
ここで、セッション切断前に最後にＩＰ端末３ＡからＩＰ端末３ＢにＴＣＰで送信されたデータのシーケンス番号は「Ｘ−１」、ＡＣＫ番号は「Ｙ−１」であるとする。
【０１２１】
セッションが切断された状態のS214において、ＩＰ端末３Ａからシーケンス番号が「Ｘ」、ＡＣＫ番号が「Ｙ」のユーザデータData#2のＴＣＰパケットが送信されると、ゲートウェイ装置１ＡはこのＴＣＰパケットをパケット保留部１５に一時的に保留し、受信したＴＣＰパケットの情報をセッション制御部１６Ｄに通知する。
【０１２２】
セッション制御部１６Ｄは受信したＴＣＰパケットからＩＰアドレス、プロトコルの種類、ポート番号、等の情報を抽出し、この情報に基づいてセッション情報テーブル１７０Ｄから対応する帯域等のセッション制御パラメータを読み取り、セッション状態テーブル１７１Ｄからこのセッションはゲートウェイ装置１Ａ、１Ｂにより切断されたものかＩＰ端末３Ａ、３Ｂからの要求により切断されたものかの情報を読み取る。
【０１２３】
ゲートウェイ装置１Ａが保留したデータを転送するには、呼制御ネットワーク５のセッション及びＴＣＰコネクションを再確立しなければならないので、セッション制御部１６Ｄはセッション管理部１６３にINVITEメッセージを生成させ、セッション情報テーブル１７０Ｄのセッション制御パラメータに基づいて呼制御ネットワーク５に送出する（S415）。
【０１２４】
ここで、ゲートウェイ装置１ＡがS415にて送信するINVITEメッセージの一例を図２１に示す。INVITEメッセージのメッセージフォーマットは実施の形態３とほぼ同じで、属性を規定するａフィールドが異なる。図２１の例では、図中破線で囲んだように、フロー識別子Ｚが属性「X-peer-flowID」、値「30000」として、ＴＣＰのシーケンス番号Ａが属性「A-TCP-seq」、値「10000」として、ＡＣＫ番号０が属性「A-TCP-ack」、値「0」として、それぞれ設定されている。
【０１２５】
ＳＩＰサーバ２はS415にてINVITEメッセージを受取るとこのゲートウェイ装置１Ａに100 Tryingパケットを返信し（S416）、対向するゲートウェイ装置１ＢにこのINVITEメッセージを転送する（S417）。ゲートウェイ装置１ＢはINVITEメッセージを受信すると、ゲートウェイ装置１Ａが設定したＩＰアドレス、ポート番号、フロー識別子Ｚを自身のセッション情報テーブル１７０Ｄに記憶し、100 Tryingパケット及び200 OKレスポンスを返信する（S418、S419）。
【０１２６】
ゲートウェイ装置１Ａが200 OKレスポンスを受信しＡＣＫを返信するとセッションの再確立が完了する（S420）。ゲートウェイ装置１Ａは200 OKレスポンスに格納されたフロー情報及びセッション情報テーブル１７０Ｄの情報に基づいてセッション状態テーブル１７１Ｄを更新し、無通信監視部１８にこのセッションと対応するタイマ１８０のスタート指示を送る。
【０１２７】
また、ゲートウェイ装置１Ａは、INVITEメッセージを生成する際にセッション状態テーブル１７１Ｄを参照し、このセッション確立要求は一旦切断されたセッションを再確立するものなのか、ＩＰ端末３ＡからのTCP-SYNパケット送信の要求に応じてセッションを確立するものなのかを判断している。一旦切断されたセッションを再確立するものであると判断した場合、ゲートウェイ装置１ＡはＴＣＰ管理部１６４にてTCP-SYNパケットを生成し、対向するゲートウェイ装置１Ｂ宛に送信する（S521）。このとき、ＴＣＰヘッダのシーケンスフィールドには先ほどシーケンス番号初期値として設定した「Ａ」を記入し、ＡＣＫフィールドには先ほどＡＣＫ番号初期値として設定した「０」を記入する。
【０１２８】
対向するゲートウェイ装置１ＢにTCP-SYNパケットが到達すると、ゲートウェイ装置１Ｂも自身の順序情報付与・変換部１６５Ｂにて初期値として使用したいシーケンス番号を決定する。図２０では、ゲートウェイ装置１Ｂはシーケンス初期値を「Ｂ」とし、TCP-SYNパケットへの応答としてシーケンスフィールドに「Ｂ」、ＡＣＫフィールドにTCP-SYNパケットのシーケンス番号に「＋１」の演算をした「Ａ＋１」を記入し、ゲートウェイ装置１Ａに返信する（S522）。
【０１２９】
ゲートウェイ装置１Ｂからシーケンスフィールドが「Ｂ」、ＡＣＫフィールドが「Ａ＋１」のTCP-SYN/ACKパケットを受取ったゲートウェイ装置１Ａは、ＡＣＫフィールドに記載されたＡＣＫ番号により自身が送信したTCP-SYNパケットが正常に受信されたことを確認できる。TCP-SYN/ACKパケットを正常に受信したゲートウェイ装置１Ａは、TCP-ACKパケットを生成し、シーケンスフィールドに先ほど送信したTCP-SYNパケットの次に送信するパケットであることを示すため、TCP-SYNのシーケンス番号である「Ａ」に「＋１」を演算した「Ａ＋１」を記入し、ＡＣＫフィールドにはTCP-SYN/ACKパケットのシーケンス番号を正常に受信したことを示すために「Ｂ」に「＋１」を演算した「Ｂ＋１」を記入してゲートウェイ装置１Ｂに応答する（S523）。
【０１３０】
このようにＴＣＰパケットに順序情報を付与することにより、２つのゲートウェイ装置１Ａ、１Ｂ間にＴＣＰコネクションが確立した時点で、ゲートウェイ装置１Ａにはシーケンス番号「Ａ＋１」、ＡＣＫ番号「Ｂ＋１」が設定され、ゲートウェイ装置１Ｂにはシーケンス番号「Ｂ」、ＡＣＫ番号「Ａ＋１」が設定される。
【０１３１】
ゲートウェイ装置１Ａは、ＴＣＰコネクションが確立するとS214にて受信しパケット保留部１５に一時保留したＴＣＰパケットを、セッション情報取得部１６２Ｄからの指令に従ってＴＣＰにて呼制御ネットワーク５に転送する（S524）。このとき、ゲートウェイ装置１Ａのシーケンス番号は「Ａ＋１」、ＡＣＫ番号は「Ｂ＋１」に設定されているため、順序情報管理部１６５Ｄは転送するユーザデータ#2のシーケンスフィールドの値を「Ａ＋１」、ＡＣＫフィールドの値を「Ｂ＋１」に変換する。
【０１３２】
このユーザデータData#2のＴＣＰパケットがゲートウェイ装置１Ｂに到達すると、セッション制御部１６ＤはこのＴＣＰパケットからＩＰアドレスを抽出し、抽出したＩＰアドレスに基づいてセッション情報テーブル１７０Ｄに記憶されたシーケンス番号「Ｘ」及びＡＣＫ番号「Ｙ」を呼び出す。その後、順序情報管理部１６５Ｄにより、ユーザデータData#2のシーケンスフィールドの値を「Ａ＋１」から「Ｘ」に、ＡＣＫフィールドの値を「Ｂ＋１」から「Ｙ」に変換してＩＰ端末３Ｂに転送する（S525）。
【０１３３】
これ以降、ＩＰ端末３ＡからＩＰ端末３ＢへＴＣＰにて送信されるＴＣＰパケットのシーケンス番号は１ずつインクリメントされる。例えばＩＰ端末３ＡがＴＣＰヘッダにシーケンス番号「Ｘ＋ｎ」、ＡＣＫ番号「Ｙ＋ｍ」を格納したユーザデータData#nをＴＣＰにて送信する場合（S526）、ゲートウェイ装置１Ａはシーケンス番号を「Ａ＋ｎ＋１」、ＡＣＫ番号を「Ｂ＋ｍ＋１」に変換し、ゲートウェイ装置１Ｂが再びシーケンス番号を「Ｘ＋ｎ」、ＡＣＫ番号を「Ｙ＋ｍ」に変換してＩＰ端末３Ｂに転送する（S527）。
【０１３４】
このように、ゲートウェイ装置１Ａがセッションを再確立する際に対向するゲートウェイ装置１Ｂにフロー識別子とＴＣＰのシーケンス番号初期値及びＡＣＫ番号初期値を通知することで、ゲートウェイ装置１Ａ、１ＢがＮＡＰＴ変換する場合や呼制御ネットワーク５上で任意のシーケンス番号及びＡＣＫ番号を用いる場合であっても、対向するゲートウェイ装置１Ｂが中継するユーザデータの宛先や順序情報をゲートウェイ装置１Ａで変換される前の値に再変換することができる（S528）。
【０１３５】
本実施の形態によれば、実施の形態１の構成にフロー識別子を管理する識別子管理部１６２０Ｄとシーケンス番号やＡＣＫ番号といった順序情報を管理する順序情報管理部１６５Ｄとを備えたことにより、ゲートウェイ装置１がＮＡＰＴ変換する場合やＴＣＰの順序情報に連続性が要求される場合であっても、ゲートウェイ装置１が切断したセッションを再確立した後にＴＣＰコネクションを確立することができる。これにより、ＩＰ端末３が再度ＴＣＰの3way handshakeを実行せずともゲートウェイ装置１Ａ、１Ｂ間においてＴＣＰ通信を再開できる。
【０１３６】
なお、ここでは実施の形態３と実施の形態４を組合せた場合について説明したが、実施の形態２と実施の形態４を組合せることもできる。この場合は実施の形態２に記載の効果と実施の形態４に記載の効果を得ることができる。
また、実施の形態２ないし実施の形態５においても実施の形態１と同様に、ＳＩＰの代わりにセッション制御プロトコルとしてH.323、MEGACO等を用いることができる。
【符号の説明】
【０１３７】
１、１Ａ、１Ｂ  ゲートウェイ装置
２  ＳＩＰサーバ
３、３Ａ、３Ｂ  ＩＰ端末
４、４Ａ、４Ｂ  ユーザネットワーク
５  呼制御ネットワーク
１４Ａ、１４Ｂ  パケット検出部
１５  パケット保留部
１６、１６Ａ〜１６Ｄ  セッション制御部
１６０  ＤＡ／ＳＡ抽出部
１６１  パケット識別部
１６２、１６２Ｃ、１６２Ｄ  セッション情報取得部
１６３  セッション管理部
１６４  ＴＣＰ管理部
１６５、１６５Ｂ、１６５Ｄ  順序情報管理部
１７  記憶部
１７０、１７０Ｄ  セッション情報テーブル
１７１、１７１Ｄ  セッション状態テーブル
１８  無通信監視部
１８０  タイマ
【図１】
0005664320.tif 000002
【図２】
0005664320.tif 000003
【図３】
0005664320.tif 000004
【図４】
0005664320.tif 000005
【図５】
0005664320.tif 000006
【図６】
0005664320.tif 000007
【図７】
0005664320.tif 000008
【図８】
0005664320.tif 000009
【図９】
0005664320.tif 000010
【図１０】
0005664320.tif 000011
【図１１】
0005664320.tif 000012
【図１２】
0005664320.tif 000013
【図１３】
0005664320.tif 000014
【図１４】
0005664320.tif 000015
【図１５】
0005664320.tif 000016
【図１６】
0005664320.tif 000017
【図１７】
0005664320.tif 000018
【図１８】
0005664320.tif 000019
【図１９】
0005664320.tif 000020
【図２０】
0005664320.tif 000021
【図２１】
0005664320.tif 000022