(57)【要約】【課題】コネクション通信を行っている端末装置間のコネクション維持に必要な通知が途中経路で消失してしまう場合においても、コネクションを維持し続ける手段を提供すること。【解決手段】第１の端末装置と第２の端末装置との間のTCP/IPコネクションを確立する際、当該端末装置の各IPアドレスと各ポート番号との４つ組み合わせからなるコネクション情報と当該コネクションの各方向での送達確認済みのシーケンス番号と当該コネクションに関するTCPセグメントを最後に中継した時刻とを第１の中継装置及び第２の中継装置それぞれで記憶しておき、予め定められた期間以上当該コネクションに関するTCPセグメントの中継が行われず、かつ第１の中継装置及び第２の中継装置間でのパケット受信が発生していない場合、第１の中継装置は第１の端末装置に対してコネクション維持通知を送信し、第２の中継装置は第２の端末装置に向けてコネクション維持通知を送信する。【選択図】図６
2008072552.tif 000002
【特許請求の範囲】
【請求項１】
無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と、第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信システムであって、
前記第一の中継装置と前記第二の中継装置とは、
前記無線回線の切断を検出する手段と、
前記無線回線が切断を検出した際に、前記第一の端末装置と前記第二の端末装置それぞれに無線回線が維持されていることを示す制御信号を送信する手段と
を備えることを特徴とする通信システム。
【請求項２】
無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置を介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置がパケットデータを送受信する通信システムであって、
前記第一の中継装置は、
前記第一及び第二の端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する手段と、
前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する手段と、
前記第二の中継装置からのパケットを受信していないことを検出する手段と、
前記第二の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第一の端末装置に対してコネクション維持通知を送信する手段と
を備え、
前記第二の中継装置は、
前記第一及び第二の端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する手段と、
前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する手段と、
前記第一の中継装置からのパケットを受信していないことを検出する手段と、
前記第一の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第二の端末装置に対してコネクション維持通知を送信する手段と
を備えることを特徴とする通信システム。
【請求項３】
無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信システムであって、
前記第一の中継装置は、
前記第二の中継装置に対して死活監視用パケットを送信する手段と、
前記第二の中継装置からの死活監視用パケットの応答パケットを受信する手段と、
前記死活監視用パケットを送信してからの経過時間を測定する手段と、
前記測定の結果、予め定められた期間を経過した場合に、前記第一の端末装置に対してコネクション維持通知を送信する手段と
を備え、
前記第二の中継装置は、
前記第一の中継装置に対して死活監視用パケットを送信する手段と、
前記第一の中継装置からの死活監視用パケットの応答パケットを受信する手段と、
前記死活監視用パケットを送信してからの経過時間を測定する手段と、
前記測定の結果、予め定められた期間を経過した場合に、前記第二の端末装置に対してコネクション維持通知を送信する手段と
を備えることを特徴とする通信システム。
【請求項４】
無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置であって、
前記無線回線の切断を検出する手段と、
前記無線回線が切断を検出した際に、接続されている端末装置に、無線回線が維持されていることを示す制御信号を送信する手段と
を備えることを特徴とする中継装置。
【請求項５】
無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置であって、
パケットデータを送受信する端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する手段と、
前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する手段と、
前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことを検出する手段と、
前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、接続されている端末装置に対してコネクション維持通知を送信する手段と
を備えることを特徴とする中継装置。
【請求項６】
無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置であって、
前記無線回線を含むネットワークで接続された他の中継装置に対して死活監視用パケットを送信する手段と、
前記無線回線を含むネットワークで接続された他の中継装置からの死活監視用パケットの応答パケットを受信する手段と、
前記死活監視用パケットを送信してからの経過時間を測定する手段と、
前記測定の結果、予め定められた期間を経過した場合に、接続されている端末装置に対してコネクション維持通知を送信する手段と
を備えることを特徴とする中継装置。
【請求項７】
無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と、第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信方法であって、
前記第一の中継装置と前記第二の中継装置とは、
前記無線回線の切断を検出し、
前記無線回線が切断を検出した際に、前記第一の端末装置と前記第二の端末装置それぞれに無線回線が維持されていることを示す制御信号を送信する
ことを特徴とする通信方法。
【請求項８】
無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置を介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置がパケットデータを送受信する通信方法であって、
前記第一の中継装置と前記第二の中継装置とは、
前記第一及び第二の端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶し、
前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出し、
前記第一の中継装置は、
前記第二の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第一の端末装置に対してコネクション維持通知を送信し、
前記第二の中継装置は、
前記第一の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第二の端末装置に対してコネクション維持通知を送信する
ことを特徴とする通信方法。
【請求項９】
無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信方法であって、
前記第一の中継装置は、
前記第二の中継装置に対して死活監視用パケットを送信し、
前記第二の中継装置からの死活監視用パケットの応答パケットを受信し、
前記死活監視用パケットを送信してからの経過時間を測定し、
前記測定の結果、予め定められた期間を経過した場合に、前記第一の端末装置に対してコネクション維持通知を送信し、
前記第二の中継装置は、
前記第一の中継装置に対して死活監視用パケットを送信し、
前記第一の中継装置からの死活監視用パケットの応答パケットを受信し、
前記死活監視用パケットを送信してからの経過時間を測定し、
前記測定の結果、予め定められた期間を経過した場合に、前記第二の端末装置に対してコネクション維持通知を送信する
ことを特徴とする通信方法。
【請求項１０】
無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置のプログラムであって、
前記無線回線の切断を検出する処理と、
前記無線回線が切断を検出した際に、接続されている端末装置に、無線回線が維持されていることを示す制御信号を送信する処理と
を中継装置に実行させることを特徴とする中継装置のプログラム。
【請求項１１】
無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置のプログラムであって、
パケットデータを送受信する端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する処理と、
前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する処理と、
前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことを検出する処理と、
前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、接続されている端末装置に対してコネクション維持通知を送信する処理と
を中継装置に実行させることを特徴とする中継装置のプログラム。
【請求項１２】
無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置のプログラムであって、
前記無線回線を含むネットワークで接続された他の中継装置に対して死活監視用パケットを送信する処理と、
前記無線回線を含むネットワークで接続された他の中継装置からの死活監視用パケットの応答パケットを受信する処理と、
前記死活監視用パケットを送信してからの経過時間を測定する手段と、
前記測定の結果、予め定められた期間を経過した場合に、接続されている端末装置に対してコネクション維持通知を送信する処理と
を中継装置に実行させることを特徴とする中継装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ネットワークを利用した通信の技術に関し、特に途中経路の通信品質が不安定な利用環境おいて、端末装置とサーバ装置間のエンド−エンド通信のために、パケット通信方式を利用してデータ伝送を行うデータ通信システムにおいて、通信セッション維持する技術に関する。
【背景技術】
【０００２】
近年、コンピュータなどの端末装置間でデータ通信を行うためのネットワークとしてインターネット（Internet）が普及している。それと共に、モバイルコンピューティングやリモートアクセスと呼ばれる利用形態が普及している。
【０００３】
インターネットに接続される端末装置やルータには、非特許文献１で示されるインターネットプロトコル（Internet Protocol、以下、IPと称する）と呼ばれる経路制御プロトコルに従って動作させるプログラムが搭載されている。IPを用いることにより、異なるLANに接続されている任意の端末装置間でのパケット通信を可能としている。
【０００４】
ところで、IPによるパケット交換では、パケットが通信メディアを介して伝送されている時に、一部のデータ内容に誤りが生じた場合、あるいは途中経路のルータに十分なパケット格納領域が確保できない場合には、伝送途中でパケットの消失が発生する。また、IPによるパケット交換ではパケットの到着順序が保障されていないため、任意の端末装置から異なるLANに接続している端末装置へ一連のパケットを送信する場合には、パケットの送信順序と到着順序が異なることがある。
【０００５】
インターネットでは、このような途中経路でのパケット消失や順序入れ替わりに対しても信頼性のあるデータ通信、すなわち送信したパケットの内容の消失が無く、かつ送信された順序の通りに受信側で受け取ることのできる方式として、非特許文献２で示されるトランスミッションコントロールプロトコル（Transmission Control Protocol、以下、TCPと称する）通信方式があり、広く利用されている。
【０００６】
図１は、TCP/IP通信方式を用いる従来のパケット通信システムの一構成例を示すブロック図である。図２は、図１に示したパケット通信システムにおいて送受信するパケットデータの構成を示す図であり、各プロトコルヘッダの位置関係を示す図である。図３は、図２に示したIPヘッダの構成を示すブロック図である。図４は、図２に示したTCPヘッダの構成を示すブロック図である。また、図５は、TCP/IP通信方式における送受信する応用データが存在しない期間において、TCPコネクションを維持するために実施されるコネクション維持の手順を示すシーケンス図である。
【０００７】
図１に示すTCP/IP通信方式を用いる従来のパケット通信システムは、第１の端末装置100、第２の端末装置200、第１の中継装置300、第２の中継装置400、第１の有線ネットワーク1001、第２の有線ネットワーク1002、無線ネットワーク1003から構成されている。第１の端末装置100と第１の中継装置300はそれぞれ、第１の有線ネットワーク1001に接続されている。また、第１の中継装置300と第２の中継装置400とはそれぞれ、無線ネットワーク1003に接続されている。また、第２の中継装置400と第２の端末装置200は第２の有線ネットワーク1002に接続されている。
【０００８】
第１の端末装置100は、例えば第１の有線ネットワーク1001に接続可能な通信装置を備えた情報処理装置であり、第１のプロセッサ101、第１のTCPモジュール102、第１のIPモジュール103、及び第１のネットワークアクセスモジュール104を備えている。
【０００９】
第２の端末装置200は、例えば第２の有線ネットワーク1001に接続可能な通信装置を備えた情報処理装置であり、第２のプロセッサ201、第２のTCPモジュール202、第２のIPモジュール203、及び第２のネットワークアクセスモジュール204を備えている。
【００１０】
第１の中継装置300は、第１の有線ネットワーク1001及び無線ネットワーク1003に接続可能な通信装置を備えた情報処理装置であり、第３のIPモジュール301、第３のネットワークアクセスモジュール302、及び第４のネットワークアクセスモジュール303を備えている。
【００１１】
第２の中継装置400は、無線ネットワーク1003及び第２の有線ネットワーク1002に接続可能な通信装置を備えた情報処理装置であり、第４のIPモジュール401、第５のネットワークアクセスモジュール402、及び第６のネットワークアクセスモジュール403を備えている。
【００１２】
第１のプロセッサ101及び第２のプロセッサ201はそれぞれ、通信を行うためのアプリケーションプログラムに従って処理を実行する。ここで、アプリケーションプログラムとは、相互にデータを交換して利用者に通信サービスを提供する応用プログラムを意味する。
【００１３】
応用プログラムには、FTP（File Transfer Protocol）クライアント・サーバ、HTTP（Hyper Text Transfer Protocol）クライアント・サーバ、telnetクライアント・サーバ、POP（Post Office Protocol）クライアント・サーバ、SMTP（Simple Mail Transfer Protocol）クライアント・サーバ等の既知のもの、あるいは利用者が独自に作成したものが用いられる。なお、以降では応用プログラムの処理により発生し、第１のプロセッサ101と第２のプロセッサ201との間で交換されるデータを応用データと呼ぶ。
【００１４】
第１のTCPモジュール102及び第２のTCP処理モジュール202はそれぞれ、TCP通信方式の実現するモジュールである。
【００１５】
第１のIPモジュール103、第２のIPモジュール203、第３のIPモジュール301、及び第４のIPモジュール401はそれぞれ、IPに基づいた経路制御機能を実現するモジュールである。
【００１６】
図２を用いて応用データ送信の様子を説明する。
【００１７】
応用データは、まず、パケットとして伝送可能なデータサイズからなる複数の分割応用データ部分に分割され、各分割応用データに対して、通信方式で必要となるプロトコル制御ヘッダが付与されて送信される。なお、図２中のアクセス回線トレイラとは、アクセス回線に送信するパケットの最後を示すデータであり、利用するアクセス回線毎に定義されるものである。
【００１８】
第１のプロセッサ101と第２のプロセッサ201との間で応用データの送受信を行う場合、まず、第１のプロセッサ101と第２のプロセッサ201との間にコネクションを構築し、その後構築されたコネクションを介して応用データの伝送が行われる。また、応用データの送受信が終了した場合、もしくは応用データの送受信要求があらかじめ定められた期間以上発生しない場合には構築していたコネクションを破棄する。なお、この定められた期間のことを一般に「タイムアウト時間」と呼ぶ。ただし、コネクションを利用する応用プログラムによっては、長時間送受信は実行しないものの、コネクションは維持し続けたいという要求を持つ場合もある。この場合、「コネクション維持」要求を受けることで、タイムアウト時間を越える期間送受信要求が発生しない場合であっても、コネクションを維持し続ける。
【００１９】
以上の機能は、コネクション制御機能とデータ送受信機能を実現するTCPプロトコル制御を実行するトランスポート層プロトコルモジュールである第１のTCPモジュール102及び第２のTCPモジュール202によって実現される。
【００２０】
次に、図１に示した従来のパケット通信システムにおける、コネクション制御機能について説明する。なお、コネクション制御機能は、第１のTCPモジュール103及び第２のTCPモジュール203によって実行されるものであり、TCPモジュールの下位レイヤに位置する各モジュールや装置は、受け取ったデータを送信先となるモジュールや装置に向けて送信する機能を実行するのみである。
【００２１】
なお、以降で説明する動作は、第１のプロセッサ101から第１の通信インタフェース管理モジュール102に機能毎の動作要求がなされた時に実行される。または、第２のプロセッサ201から第２の通信インタフェース管理モジュール202に機能毎の動作要求がなされたときに実行される。
（１）TCP基本動作
まず、図１に示した各TCPモジュールで共通した基本動作、及びTCPセグメントにおけるTCPヘッダの利用方法について説明する。
【００２２】
前述の通り、TCPでは両端のTCPモジュール間で仮想的なコネクションが構築され、TCPセグメントが送受信される。ここで、TCPセグメントではコネクションとTCPセグメントを対応付けるための情報が必要となる。
【００２３】
各TCPモジュール内部における、TCPセグメントとコネクションの対応は、図４で示すTCPセグメントヘッダ中の、送信元ポート番号を表すSource Portフィールド、及び送信先ポート番号を表すDestination Portフィールドの組み合わせにより決定される。また、ネットワーク全体でのTCPセグメントとコネクションの対応は、前述したTCPヘッダ中のSource Portフィールド、Destination Portフィールドに加えて、図６で示すIPヘッダ中の送信元IPアドレスを表すSource Addressフィールド、及び送信先IPアドレスを表すDestination Addressフィールドの組み合わせにより決定される。
【００２４】
すなわち、任意のコネクションを構築している一方のソケットS１のIPアドレスがA1、ポート番号がP1、他方のソケットS2のIPアドレスがA2、ポート番号がP2とし、ソケットS1を保持する装置のTCPモジュールをTCPモジュールM1、ソケットS2を保持する装置のTCPモジュールをTCPモジュールM2とすると、TCPモジュールM1からTCPモジュールM2へTCPセグメントを送出する場合は、以下に示す動作となる。
【００２５】
まず、TCPモジュールM1は、TCPヘッダ中のSource PortフィールドにP1を格納し、Destination PortフィールドにP2を格納したTCPセグメントを生成し、IPモジュールへ渡す。次に、IPモジュールはIPヘッダ中のSource AddressフィールドにA1を格納し、Destination AddressフィールドにA2を格納したIPデータグラムを生成し、ネットワークアクセス装置に渡す。
【００２６】
一方、TCPセグメントを含むIPデータグラムを受け取ったTCPモジュールM2は、TCPヘッダ中のSource Portフィールドの値P1、TCPヘッダ中のDestination Portフィールドの値P2、IPヘッダ中のSource Addressフィールド値A1、及びIPヘッダ中のDestination Addressフィールド値A2から、当該TCPセグメントがソケットS1とソケットS2の組み合わせから構築されたコネクションに対応するものであると判断することができる。
【００２７】
また、TCPでは送受信するTCPセグメントの到達保障性を実現するために、シーケンス番号と呼ばれる値を用いた制御を行う。
【００２８】
TCPモジュールM1からTCPモジュールM2へTCPセグメントを送信する場合、TCPモジュールM1は、保持しているコネクション毎に、プロセッサから受け取った応用データへ1バイトを単位とした番号(以降、シーケンス番号と呼ぶ)を付与し、当該TCPセグメントに格納されたサブ応用データの先頭シーケンス番号の値をTCPヘッダのSequence Numberフィールドへ格納する。
【００２９】
TCPモジュールM2は、受信したTCPセグメントから取り出したSequence Numberフィールドの値をコネクション毎に記録しており、その記録から今回受信したTCPセグメントに含まれているサブ応用データが、既に受信したものである、もしくは新しく受け取ったものであるかどうかを判断する。
【００３０】
また、TCPモジュールM2は、新しいサブ応用データを受け取った場合には、最後に受け取ったサブ応用データのシーケンス番号に1を加えた値を、Acknowledgement Sequence Numberフィールドに格納し、確認フラグフィールド（A）に「有効」を意味する値を格納したTCPセグメントを生成し、TCPモジュールM1に送信する。
【００３１】
TCPモジュールM1は、TCPヘッダの確認フラグフィールド（A）に「有効」を意味する値が設定されたTCPセグメントを受け取ると、Acknowledgement Sequence Numberフィールドの値（X）を取り出し、シーケンス番号X-1までのサブ応用データが到達確認されたと判断する。
【００３２】
また、TCPモジュールM1では、TCPセグメント送出時に、再送タイマを起動する。再送タイマの値が規定された時刻に到達した時点(これを、再送タイムアウトと呼ぶ)で、上述した到達確認がなされていない場合、当該TCPセグメントの送出に失敗したとみなし、当該TCPセグメントを再度送出する。
【００３３】
なお、同一のTCPセグメントの送出で再送タイムアウトが連続して発生した場合、TCPモジュールM1は、コネクションを構築しているTCPモジュールM2が通信不可能状態になったと判断し、当該コネクションを強制的に切断する。一般的なTCPモジュールの実装では、再送タイムアウトが４回連続して発生した場合に、コネクションの強制切断を行う。
【００３４】
また、プロセッサで実行される応用プログラムの処理上送信すべき応用データが発生せず、結果としてTCPモジュールにおいてもTCPセグメントを送信する契機が発生しない状態が一定時間以上続いた場合も同様に、コネクションの強制切断を行う。
【００３５】
以降では、コネクション維持動作について示す。
（２）TCPコネクション維持動作
コネクション維持動作TCPでは、プロセッサで実行する応用プログラムにおいて送信すべき応用データが存在しない状態が予め定められた期間以上続いた場合には、コネクションの強制切断する機能がある。一方で、送信すべき応用データが存在しない場合でも、コネクションを維持したいという要求も存在する。例えば、TELNETサービスでは、サービス利用者が入力を行わない限り応用データの送信要求も発生しないが、いつ入力があっても対応できるようにコネクションは維持し続けたいという要求が一般的である。このような要求に対応するため、TCPでは応用データの送受信要求が発生しない期間中においてもコネクションを維持するための機能(一般にKeepalive機能と呼ばれる)を提供する。以降では、第１のTCPモジュール103から第2のTCPモジュール203に向けてコネクションの維持制御を行う場合を例にして図５を用いて説明する。
【００３６】
第１のTCPモジュール102は、その時点までに自身が送出しかつ送達確認の完了しているサブ応用データのシーケンス番号がX、及び通信相手から受信したサブ応用データのシーケンス番号がYである状態で、コネクション維持手続きの実行が必要であると判断すると、コネクションを維持するTCPセグメント(Keepalive)D1を生成し、第2のTCPモジュール202に向けて送出する。ここで、TCPセグメント(Keepalive)D1のTCPヘッダでは、通常のTCPヘッダ各フィールド設定に加えて、Sequence NumberフィールドにXの値が格納され、Acknowledgement NumberフィールドにはYの値が格納され、確認フラグフィールド(A)にはそれぞれ「有効」を意味する値がそれぞれ設定される。
【００３７】
次に、TCPセグメント(Keepalive)D1を受け取った第２のTCPモジュール202は、受け取ったTCPセグメント(Keepalive)D1のTCPヘッダから、Sequence Numberフィールドの値(X)、Acknowledgement Numberフィールドの値(Y)、及び確認フラグフィールド(A)の値（「有効」）であることを確認し、当該TCPセグメントがセッション維持通知であると判断する。
【００３８】
さらに、第２のTCPモジュール202は、TCPセグメント(Keepalive)D1のためのTCPセグメント(Keepalive-ack)D2を生成し、第１のTCPモジュールへ送出する。ここで、TCPセグメント(Keepalive-ack)D2のTCPヘッダでは、通常のTCPヘッダ各フィールド設定に加えて、Sequence NumberフィールドにはYの値が、Acknowledgement NumberフィールドにはXの値が、確認フラグフィールド(A)にはそれぞれ「有効」を意味する値がそれぞれ設定される。更に、第２のTCPモジュール202は、当該セッションの維持を維持し続ける。
【００３９】
次に、TCPセグメント(Keepalive-ack)D2を受け取った第１のTCPモジュール102は、TCPセグメント(Keepalive-ack)D2のTCPヘッダから、Sequence Numberフィールドの値(Y)、Acknowledgement Numberフィールドの値(X)、及び確認フラグフィールド(A)の値(「有効」)であることを確認し、当該TCPセグメントがセッション維持通知応答であると判断し、セッションの維持を継続する。
【００４０】
なお、第１のTCPモジュール102は、送出したTCPセグメント(Keepalive)D1を送出する際に再送タイマを起動し、再送タイムアウトまでに到達応答であるTCPセグメント(Keepalive-ack)D2が受信されていない場合、TCPセグメント(Keepalive)D1の再送を実行する。ここで、同一のTCPセグメント(Keepalive)D1で再送タイムアウトが連続して発生した場合には、上述したコネクション強制切断が実行される。
【００４１】
また、第２のプロセッサ201から第１のプロセッサ101に向けたコネクション継続処理は、上述した第1のプロセッサ101から第2のプロセッサ201に向けたコネクション継続処理の動作を対称にしたものである。
【００４２】
【非特許文献１】IETF RFC 791(Internet Protocol : IP)
【非特許文献２】IETF RFC 793(Transmission Control Protocol)
【発明の開示】
【発明が解決しようとする課題】
【００４３】
しかしながら、上述したような２つの端末装置間におけるパケット通信方法では、以下に記載するような問題点がある。
【００４４】
図１に示すような途中経路に無線通信路を含む場合、従来の技術では、無線通信路が不安定な状況ではコネクションの切断が頻繁に発生し、その度にコネクションの確立処理から再度実行しなくてはならなくなるために、通信システムの利用効率が低下してしまう。
【００４５】
その理由は、従来のTCP/IPを用いたパケット通信システムでは、途中経路に存在する中継装置は、無線通信路に直接接続するものであっても、TCPセグメントを含んだIPデータグラムを単純に経路制御表に従って転送するのみであり、コネクションの維持に関与せず、途中経路の通信路障害を通知することもないためである。
【００４６】
電波を利用する無線通信路は、電波同士の干渉や障害物等の外乱により通信路の品質変動が大きく、状況によってはデータ送受信が達成できないほど通信路品質が悪化する場合もある。例えば、図１において、第１の端末装置100と第１の中継装置300とを搭載した鉄道車両やバスが地下やトンネルに入った場合が相当する。
【００４７】
そのような状況にある無線通信路に送出されたデータは、無線通信路を通過する間に消失してしまい、本来の宛先まで到達することができない。
【００４８】
上述の通り、TCPのコネクション制御は、通信を行う両端の装置上にあるTCPモジュールのみによって実行される。つまり、コネクションの端点にある送信元TCPモジュールでは、送出したTCPセグメントに対する到達応答が確認できない場合、それが送出先のTCPモジュールに問題がありコネクションを維持するのが不可能な状態であるためなのか、途中経路の品質が悪化しているためにTCPセグメントが消失しているためなのかを区別することができない。
【００４９】
到達応答が確認できない送信元TCPモジュールは、再送タイムアウトを契機としてTCPセグメントの再送を行うが、途中経路の通信品質が回復しない場合、送信元TCPセグメントでは再送の連続失敗として検出され、コネクションの強制終了が実行されてしまうことになる。
【００５０】
その後、無線通信路の通信路品質が良好になったとしても、TCPモジュールは、既に終了してしまったコネクションの確立処理を再度実行し、新たなコネクションを確立しなければ応用データの送受信を再開することが出来ない。そのため、頻繁にコネクションの切断が発生する通信路環境で従来のTCPコネクション制御を適用することは、通信シスステムの利用効率を低下させてしまう。
【００５１】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は、途中経路においてデータ伝送が実現できないほど通信品質が悪化した状況が頻繁に発生した場合においても、コネクションの切断を発生させないパケット通信の技術を提供することにある。
【課題を解決するための手段】
【００５２】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と、第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信システムであって、前記第一の中継装置と前記第二の中継装置とは、前記無線回線の切断を検出する手段と、前記無線回線が切断を検出した際に、前記第一の端末装置と前記第二の端末装置それぞれに無線回線が維持されていることを示す制御信号を送信する手段とを備えることを特徴とする。
【００５３】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置を介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置がパケットデータを送受信する通信システムであって、前記第一の中継装置は、前記第一及び第二の端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する手段と、前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する手段と、前記第二の中継装置からのパケットを受信していないことを検出する手段と、前記第二の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第一の端末装置に対してコネクション維持通知を送信する手段とを備え、前記第二の中継装置は、前記第一及び第二の端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する手段と、前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する手段と、前記第一の中継装置からのパケットを受信していないことを検出する手段と、前記第一の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第二の端末装置に対してコネクション維持通知を送信する手段とを備えることを特徴とする。
【００５４】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信システムであって、前記第一の中継装置は、前記第二の中継装置に対して死活監視用パケットを送信する手段と、前記第二の中継装置からの死活監視用パケットの応答パケットを受信する手段と、前記死活監視用パケットを送信してからの経過時間を測定する手段と、前記測定の結果、予め定められた期間を経過した場合に、前記第一の端末装置に対してコネクション維持通知を送信する手段とを備え、前記第二の中継装置は、前記第一の中継装置に対して死活監視用パケットを送信する手段と、前記第一の中継装置からの死活監視用パケットの応答パケットを受信する手段と、前記死活監視用パケットを送信してからの経過時間を測定する手段と、前記測定の結果、予め定められた期間を経過した場合に、前記第二の端末装置に対してコネクション維持通知を送信する手段とを備えることを特徴とする。
【００５５】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置であって、前記無線回線の切断を検出する手段と、前記無線回線が切断を検出した際に、接続されている端末装置に、無線回線が維持されていることを示す制御信号を送信する手段とを備えることを特徴とする。
【００５６】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置であって、パケットデータを送受信する端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する手段と、前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する手段と、前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことを検出する手段と、前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、接続されている端末装置に対してコネクション維持通知を送信する手段とを備えることを特徴とする。
【００５７】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置であって、前記無線回線を含むネットワークで接続された他の中継装置に対して死活監視用パケットを送信する手段と、前記無線回線を含むネットワークで接続された他の中継装置からの死活監視用パケットの応答パケットを受信する手段と、前記死活監視用パケットを送信してからの経過時間を測定する手段と、前記測定の結果、予め定められた期間を経過した場合に、接続されている端末装置に対してコネクション維持通知を送信する手段とを備えることを特徴とする。
【００５８】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と、第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信方法であって、前記第一の中継装置と前記第二の中継装置とは、前記無線回線の切断を検出し、前記無線回線が切断を検出した際に、前記第一の端末装置と前記第二の端末装置それぞれに無線回線が維持されていることを示す制御信号を送信することを特徴とする。
【００５９】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置を介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置がパケットデータを送受信する通信方法であって、前記第一の中継装置と前記第二の中継装置とは、前記第一及び第二の端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶し、前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出し、前記第一の中継装置は、前記第二の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第一の端末装置に対してコネクション維持通知を送信し、前記第二の中継装置は、前記第一の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、前記第二の端末装置に対してコネクション維持通知を送信することを特徴とする。
【００６０】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された第一の中継装置と第二の中継装置とを介して、第一の中継装置に接続された第一の端末装置と第二の中継装置に接続された第二の端末装置とがパケットデータを送受信する通信方法であって、前記第一の中継装置は、前記第二の中継装置に対して死活監視用パケットを送信し、前記第二の中継装置からの死活監視用パケットの応答パケットを受信し、前記死活監視用パケットを送信してからの経過時間を測定し、前記測定の結果、予め定められた期間を経過した場合に、前記第一の端末装置に対してコネクション維持通知を送信し、前記第二の中継装置は、前記第一の中継装置に対して死活監視用パケットを送信し、前記第一の中継装置からの死活監視用パケットの応答パケットを受信し、前記死活監視用パケットを送信してからの経過時間を測定し、前記測定の結果、予め定められた期間を経過した場合に、前記第二の端末装置に対してコネクション維持通知を送信することを特徴とする。
【００６１】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置のプログラムであって、前記無線回線の切断を検出する処理と、前記無線回線が切断を検出した際に、接続されている端末装置に、無線回線が維持されていることを示す制御信号を送信する処理とを中継装置に実行させることを特徴とする。
【００６２】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置のプログラムであって、パケットデータを送受信する端末装置のIPアドレスとポート番号との４つの組合せからなるコネクション情報と、前記コネクションに関するTCPセグメントを最後に中継した時刻とを記憶する処理と、前記記憶した中継時刻と現在時刻との比較により、予め定められた期間以上前記コネクションに関するTCPセグメントの中継が行われていないことを検出する処理と、前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことを検出する処理と、前記無線回線を含むネットワークで接続された他の中継装置からのパケットを受信していないことと、前記コネクションに関するTCPセグメントの中継が行われていないことを検出した際に、接続されている端末装置に対してコネクション維持通知を送信する処理とを中継装置に実行させることを特徴とする。
【００６３】
上記課題を解決する本発明は、無線回線を含むネットワークで接続された二つの中継装置を介して、端末装置間でパケットデータを送受信する通信システムにおける中継装置のプログラムであって、前記無線回線を含むネットワークで接続された他の中継装置に対して死活監視用パケットを送信する処理と、前記無線回線を含むネットワークで接続された他の中継装置からの死活監視用パケットの応答パケットを受信する処理と、前記死活監視用パケットを送信してからの経過時間を測定する手段と、前記測定の結果、予め定められた期間を経過した場合に、接続されている端末装置に対してコネクション維持通知を送信する処理とを中継装置に実行させることを特徴とする。
【発明の効果】
【００６４】
本発明の効果は、パケット通信システムにおいて、途中経路の通信品質の悪化した場合においてもコネクションの切断頻度が軽減されることにより通信システムの利用効率が改善されることにある。
【００６５】
その理由は、パケット通信システムの途中経路に位置する中継装置において、コネクション確立時及びパケット送受信時に、コネクションを利用している両端の装置が交換するコネクション確立及び維持のために必要となるコネクション情報及びTCPセグメント中継時刻を記憶しておき、当該コネクションに関するパケットの伝送が一定時間以上観測されない場合は、コネクション維持処理を代理で行うためである。
【発明を実施するための最良の形態】
【００６６】
本発明の第１の実施の形態について図面を参照して説明する。
【００６７】
図６は第１の実施の形態によるパケット通信システムのシステム構成を示すブロック図である。図６において、本発明の一実施例によるパケット通信システムは、第１の通信端末100、第２の通信端末200、第１の中継装置500、第２の中継装置600、第１の有線ネットワーク1001、第２の有線ネットワーク1002、及び無線ネットワーク1003とから構成されている。
【００６８】
第１の通信端末100及び第２の通信端末200はそれぞれ、本発明の第１の実施の形態において、コネクションを確立しパケット通信によるデータ送受信を実行する情報端末である。なお、第１の通信端末100及び第２の通信端末200の詳細な構成は、図１を用いて説明したものと同一であるため、その説明は省略する。また、第１の有線ネットワーク1001、第２の有線ネットワーク1002、及び無線ネットワーク1003についても、図１で説明したものと同一であるため、その説明は省略する。
【００６９】
第１の中継装置500、及び第２の中継装置600はそれぞれ、本発明の第１の実施の形態において、IPプロトコル制御により受信したIPパケットのIPヘッダから出力経路を選択してIPデータグラムの中継を行う機能と、中継するIPデータグラムの内容を解析し、IPデータグラムに含まれるTCPセグメントのTCPヘッダからコネクションを識別する情報を取得することで、自身を経由するコネクションを管理し、通信品質が不安定な通信路からのパケット受信が一定期間以上滞った場合には、コネクション維持を通知するTCPセグメントを送出することによりコネクションの切断を防ぐ機能とを備えている。
【００７０】
図６において、第１の中継装置500は、第３のネットワークアクセスモジュール505、第４のネットワークアクセスモジュール506、及び第１のコネクション監視モジュール511とから構成されている。
【００７１】
第３のネットワークアクセスモジュール505、及び第４のネットワークアクセスモジュール506はそれぞれ、第１のコネクション監視モジュール511から受け取ったIPデータグラムから、接続しているネットワークのネットワークアクセス方式に従ったデータフレームを生成し、生成したデータフレームを接続している通信路へ送出する機能と、ネットワークから受信したデータフレームよりIPデータグラムを取り出して第１のコネクション監視モジュール511へ渡す機能とを備えている。
【００７２】
第１のコネクション監視モジュール511は、IPデータグラムの中継を行う機能と、自中継装置を経由するコネクションを管理し、接続している無線ネットワークの通信品質が悪化した際にコネクション維持の手続きを行う機能を実行する。
【００７３】
図７に示す如く、第１のコネクション監視装置511は、IP処理モジュール5111、セッション維持処理モジュール5112、入出力状況監視装置5113、及び記憶装置5114から構成される。
【００７４】
入出力状況監視装置5113は、IP処理モジュール5111と第4のネットワークアクセスモジュール506間のIPデータグラム授受を中継する機能と、第4のネットワークアクセスモジュール506からのデータ受信を検出するとセッション維持装置5112に通信する機能を有する。
【００７５】
IP処理モジュール5111は、第３のネットワークアクセスモジュール及び入出力状況監視装置5113からIPデータグラムを受け取り、そのIPヘッダの情報と保持する経路制御テーブルからIPデータグラムの宛先に対応するネットワークアクセスモジュールへ送出する機能と、IPヘッダのProtocolフィールドの値がTCPを意味する値である場合には、受け取ったIPデータグラムをセッション維持装置に渡す機能とを備えている。
【００７６】
セッション維持処理モジュール5112は、記憶装置5114を利用して第１のコネクション監視装置511を経由するコネクション管理表を保持する機能と、各コネクションに関するTCPセグメントの送受信が一定期間検出されず、かつ入出力監視装置5113を利用して本実施の形態において不安定な回線である第４のネットワークアクセスモジュールからのパケット受信が停止していると判断した場合には、第１の端末装置宛にコネクション維持のTCPセグメントを生成、及び送出する機能とを備えている。
【００７７】
なお、第２の中継装置600の構成と機能は、第１の中継装置500と同様であるため、説明を省略する。
【００７８】
図８は、セッション維持処理モジュール5112及びセッション維持処理モジュール6112のそれぞれで保持する、コネクション管理表の一構成例を示したものである。コネクション管理表では、安定な無線回線を介して対向となる中継装置のIPアドレスと各中継装置内部で管理するコネクション情報と、不安定な無線回線を介して対向となる中継装置のIPアドレスと各中継装置内部で管理するコネクション情報とを格納する。
【００７９】
次に、図８、図９、図１０、図１１、図１２、図１３、及び図１４を用いて、本発明で新規のコネクションを確立する場合の動作を、第１の端末装置100から第２の端末装置に向けてコネクション確立する場合を例にして動作を説明する。以降では、第１の端末装置100のIPアドレスをA1、第１の端末装置100の用意したポート番号をP1、第２の端末装置200のIPアドレスをA2、第２の端末装置200が用意したポート番号をP2とする。また、第１の中継装置500に装備された第４のネットワークアクセスモジュール506に割り当てられたIPアドレスをR1、第２の中継装置600に装備された第５のネットワークアクセスモジュール605に割り当てられたIPアドレスをR2とする。
【００８０】
まず、第１の端末装置100は、コネクション確立を要求するTCPセグメント(SYN)を生成し、IPデータグラムとして第2の端末装置200に向けて送出する(S1-1)。ここで、TCPセグメント(SYN)のTCPヘッダでは、Source PortフィールドにP1が、Destination PortフィールドにはP2の値が、Sequence Numberフィールドには第１の端末装置100で生成したシーケンス番号の初期値X1の値がそれぞれ格納される。また、IPデータグラムのIPヘッダでは、Source AddressフィールドにA1の値が、Destination AddressフィールドにA2の値がそれぞれ格納される。
【００８１】
S1-2の説明
次に、第１の中継装置500は、受け取ったIPデータグラムの内容がTCPセグメントである場合には、当該TCPセグメントのSource Address(A1)、Source Port(P1)、Destination Address(A2)、及びDestination Port(P2)の組み合わせからなるコネクション(以降、「コネクション(A1,P1,A2,P2)」と呼ぶ)が、既に図８で示すコネクション管理表に存在するかどうかを確認し、存在しない場合にはコネクション管理表へ新たなエントリとして作成し、作成時の時刻T(S1-2)を記録する(S1-2)。ここで、当該TCPセグメントは安定な通信回線に接続された第３のネットワークアクセスモジュール505側から受信し、不安定な通信回線に接続された第４のネットワークアクセスモジュール側へ送信するものであるため、コネクション管理表への登録結果は図１１に示す様になる。
【００８２】
S1-3の説明
また、第１の中継装置500は、内部に保持する経路制御表に従って受け取ったIPデータグラムを第2の中継装置600に向けて転送する(S1-3)。
【００８３】
S1-4の説明
次に、第２の中継装置600は、受け取ったIPデータグラムの内容がTCPセグメントである場合には、当該TCPセグメントのSource Address(A1)、Source Port(P1)、Destination Address(A2)、及びDestination Port(P2)の組み合わせからなるコネクションが、既に図８で示すコネクション管理表に存在するかどうかを確認し、存在しない場合にはコネクション管理表へ新たなエントリとして作成し、作成時の時刻であるT(S1-4)を記録する(S1-4)。当該TCPセグメントは不安定な通信回線に接続された第５のネットワークアクセスモジュール605側から受信し、安定な通信回線に接続された第６のネットワークアクセスモジュール606側へ送信するものであるので経路制御表への登録結果は図１２に示す様になる。
【００８４】
S1-5の説明
また、第２の中継装置600は、内部に保持する経路制御表に従って受け取ったIPデータグラムを第２の端末装置200に向けて転送する(S1-5)。
【００８５】
S1-6の説明
次に、第２の端末装置200は、TCPセグメント(SYN)に対する到達応答であるTCPセグメント(SYN, ACK)を生成し、第１の端末装置100に向けて送出する(S-6)。ここで、TCPセグメント(SYN, ACK)のTCPヘッダでは、通常の設定に加えてSequence Numberフィールドには第２の端末装置200の内部で生成したシーケンス番号の初期値Y1の値が、Acknowledge Sequence NumberフィールドにはX1+1の値が、さらに確認フラグフィールド(A)には「有効」を意味する値が、それぞれ格納されている。
【００８６】
S1-7の説明
次に、第２の中継装置600は、受け取ったIPデータグラムの内容がTCPセグメントであり、かつ当該TCPヘッダの確認フラグフィールド(A)の値が「有効」であるので、コネクション管理表からコネクション(A1,P1,A2,P2)に対応するエントリについて、TCPセグメント(SYN, ACK)の送信先である第１の端末装置100 (A1, P1)の到達確認済みシーケンス番号の箇所にAcknowledge Sequence Numberフィールドの値(X1+1)から1引いた値(X1)を格納する(S1-7)。
【００８７】
S1-8の説明
また、第２の中継装置600は、内部に保持する経路制御表に従って受け取ったIPデータグラムを第1の中継装置500に向けて転送する(S1-8)。
【００８８】
S1-9の説明
次に、第１の中継装置500は、受け取ったIPデータグラムの内容がTCPセグメントであり、かつ当該TCPヘッダの確認フラグフィールド(A)の値が「有効」であるので、コネクション管理表からコネクション(A1,P1,A2,P2)に対応するエントリについて、TCPセグメント(SYN, ACK)の送信先である第1の端末装置100 (A1, P1)の到達確認済みシーケンス番号の箇所にAcknowledge Sequence Numberフィールドの値(X1+1)から1引いた値(X1)を格納し、更新時の時刻T(S1-9)を記録する(S1-9)。
【００８９】
S1-10の説明
また、第１の中継装置500は、内部に保持する経路制御表に従って受け取ったIPデータグラムを第1の端末装置100に向けて転送する(S1-10)。
【００９０】
S1-11の説明
次に、第１の中継装置100は、TCPセグメント(SYN,ACK)に対する到達応答であるTCPセグメント(ACK)を生成し、第2の端末装置200に向けて送出する(S-11)。ここで、TCPセグメント(ACK)のTCPヘッダでは、通常の設定に加えてSequence NumberフィールドにはX1+1の値が、Acknowledge Sequence NumberフィールドにはY1+1の値が、さらに確認フラグフィールド(A)には「有効」を意味する値が、それぞれ格納されている。
【００９１】
S1-12の説明
次に、第１の中継装置500は、受け取ったIPデータグラムの内容がTCPセグメントであり、かつ当該TCPヘッダの確認フラグフィールド(A)の値が「有効」であるので、コネクション管理表からコネクション(A1,P1,A2,P2)に対応するエントリについて、TCPセグメント(ACK)の送信先である第２の端末装置200 (A2, P2)の到達確認済みシーケンス番号の箇所にAcknowledge Sequence Numberフィールドの値(Y1+1)から1引いた値(Y1)を格納し、更新時の時刻T(S1-12)を記録する(S1-12)。
【００９２】
S1-13の説明
また、第１の中継装置500は、内部に保持する経路制御表に従って受け取ったIPデータグラムを第２の中継装置600に向けて転送する(S1-13)。
【００９３】
S1-14の説明
次に、第２の中継装置600は、受け取ったIPデータグラムの内容がTCPセグメントであり、かつ当該TCPヘッダの確認フラグフィールド(A)の値が「有効」であるので、コネクション管理表からコネクション(A1,P1,A2,P2)に対応するエントリについて、TCPセグメント(ACK)の送信先である第2の端末装置200 (A2, P2)の到達確認済みシーケンス番号の箇所にAcknowledge Sequence Numberフィールドの値(Y1+1)から1引いた値(Y1)を格納し、更新時の時刻であるT(S1-14)を記録する(S1-14)。
【００９４】
S1-15の説明
また、第２の中継装置600は、内部に保持する経路制御表に従って受け取ったIPデータグラムを第２の端末装置200に向けて転送する(S1-15)。
【００９５】
コネクションを新規に確立する際、以上で述べた処理シーケンスを実行することで、第１の中継装置500と第2の中継装置600はそれぞれ、コネクション維持を行うために必要な情報を取得する。ここで、図１３は、上述したコネクション確立の処理シーケンスを完了した際の第１の中継装置500が保持しているコネクション管理表の様子を示したものである。また、図１４は、上述したコネクション確立の処理シーケンスを完了した際の第２の中継装置600が保持しているコネクション管理表の様子を示したものである。
【００９６】
以降、第１の中継装置500と第２の中継装置600とはそれぞれ、自中継装置を通過するTCPセグメントを検出する度に、TCPヘッダの内容を確認し、確認フラグフィールド(A)の値が「有効」である場合には、保有するコネクション管理表の対応するエントリにある「到達確認済みシーケンス番号」の値を当該TCPヘッダのAcknowledge Sequence Numberフィールドの値から1引いた値に設定し、さらに「最終更新時刻」の値を更新時の時刻に設定する。
【００９７】
次に、本発明の一実施例におけるコネクション維持を行う場合の動作を、図１５のシーケンス図を用いて説明する。
【００９８】
図１５では、第１の端末装置100から送信するサブ応用データについては、シーケンス番号X2までの到達確認が完了しており、また、第２の端末装置から送信するサブ応用データについてはシーケンス番号Y2までの到達確認が完了しているものとする。また、第１の中継装置500と第２の中継装置600とが接続している無線ネットワーク1003の通信品質が悪化しており、第１の中継装置500及び第２の中継装置600のそれぞれが送出する通信パケットは途中で消失しているとする。
【００９９】
上記に述べた状況における、コネクション維持の動作を以下で説明する。
【０１００】
まず、第１の中継装置500は、最後に自中継装置を経由したコネクション(A1,P1,A2,P2)に関するTCPセグメントを検出した時刻T(S2-1)から、予め設定された期間(以降、「Keepaliveタイムアウト1」とする)経過しても当該コネクション(A1,P1,A2,P2)に関するTCPセグメントの通過が検出されない場合、コネクション維持処理の実行を決定する(S2-2)。
【０１０１】
図１６では、S2-2の時点において第１の中継装置500が保持しているコネクション管理表の内容を示している。
【０１０２】
第１の中継装置500は、コネクション維持のためのTCPセグメント(Keepalive)を生成し、安定した回線側に位置する第１の端末装置100に向けて送出する(S2-3)。ここで、TCPセグメント(Keepalive)S2-3のTCPヘッダでは、通常のTCPヘッダ各フィールド設定に加えて、Sequence NumberフィールドにY2の値が、Acknowledge Sequence NumberフィールドにX2の値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。
【０１０３】
次に、TCPセグメント(Keepalive)S2-3を受け取った第１の端末装置100は、当該TCPセグメントがコネクション維持の通知であることを確認すると、TCPセグメント(Keepalive)S2-3の送達確認を通知するためのTCPセグメント(Keepalive-ack)を送出する(S2-4)。
【０１０４】
ここで、TCPセグメント(Keepalive-ack)S2-4のTCPヘッダでは、通常のTCPヘッダ各フィールド設定に加えて、Sequence NumberフィールドにX2の値が、Acknowledge Sequence NumberフィールドにY2の値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納されている。
【０１０５】
次に、TCPセグメント(Keepalive-ack)S2-4を受け取った第１の中継装置500は、当該TCPセグメントが自身で送信したTCPセグメント(Keepalive)S2-3に対する送達確認であると判断すると、当該TCPセグメントを終端し、図１６で示したコネクション管理表のコネクション(A1,P1,A2,P2)に対応するエントリにある「最終更新時刻」を、TCPセグメント(Keepalive-ack) S2-4の受信時刻であるT(S2-4)に更新する(S2-5)。
【０１０６】
以降、「Keepaliveタイムアウト1」期間中に当該コネクション(A1,P1,A2,P2)に関するTCPセグメントの通過が検出されない場合には、コネクション維持のためのTCPセグメント(Keepalive)の送信を行う(S2-6)。
【０１０７】
以上の手順により、第１の中継装置500と第２の中継装置600との間の通信路品質が悪化した状態が長期間続いた場合でも、第１の端末装置100に対して、保持しているTCPコネクション(A1, P1, A2, P2)を確立した状態のまま維持し続けさせることが可能となる。
【０１０８】
また、第２の中継装置600と第２の端末装置200との間においても、上述した第１の中継装置500と第１の端末装置100との間で行われるコネクション維持の手順と同様の動作を行う(S2-7〜S2-12)。
【０１０９】
図１７では、S2-7の時点において第２の中継装置600が保持しているコネクション管理表の内容を示している。
【０１１０】
これにより、第２の端末装置200に対して、保持しているTCPコネクション(A1, P1, A2, P2)を確立した状態のまま維持し続けさせることが可能となる。
【０１１１】
なお、第１の中継装置500が用いる「Keepaliveタイムアウト1」の値と、第２の中継装置600が用いる「Keepaliveタイムアウト2」の値は、必ずしも一致している必要は無く、第1の中継装置500と第2の中継装置600のそれぞれが実行するコネクション維持手続きは、独立して動作する。
【０１１２】
以上に述べた通り、無線ネットワーク1003の通信路品質が悪化した状況においても、第１の中継装置500が第１の端末装置100に対して、第２の中継装置の代理としてコネクション維持手続きを実施し、かつ第２の中継装置600が第１の中継装置500の代理として第２の端末装置200に対してコネクション維持手続きを実施することで、各端末装置のTCPモジュールはコネクションの破棄を行わなくなる。これにより、無線ネットワーク1003の通信路品質が改善した場合に、コネクション確立処理を実施する必要がなく、即座に応用データの送受信が再開することが可能となる。
【０１１３】
本発明の第２の実施の形態について説明する。
【０１１４】
第１の実施の形態では、第１の中継装置500と第２の中継装置600とはそれぞれ、第１の端末装置100、または、第２の端末装置200が送出し、自身を通過するTCPセグメントが予め設定された期間検出されなかったことを契機として、当該TCP通信のみに対するコネクション維持処理の実行を決定した。第２の実施の形態では、第１の中継装置500と第２の中継装置600との間で交換される死活確認要求に対する応答が一定期間確認されなかった場合を契機として、第１の中計装置500及び第２の中計装置600とを経由する全てのTCP通信についてコネクション維持処理の実行を決定する。
【０１１５】
以降では、図６のブロック図、図１８のシーケンス図、及び図１９を用いて、本発明の第２の実施の形態における第１の中継装置500と第２の中継装置600との間でのコネクション維持実現手段について示す。
【０１１６】
図１９は、本発明の第２の実施の形態における第１の中継装置500が保持するコネクション管理表の一構成例を、図２０は、本発明の第２の実施の形態における第２の中継装置600が保持するコネクション管理表の一状態をそれぞれ示している。
【０１１７】
ここで、第１の端末装置100と第２の端末装置200との間では既に、3つのコネクションCa(A1, P1a, A2, P2a)、Cb(A1, P1b, A2, P2b)、Cc(A1, P1c, A2, P2c)が確立しているものとする。コネクションCaでは、第１の端末装置100側の送達確認済みシーケンス番号がX1a、及び第２の端末装置200側の送達確認済みシーケンス番号がX2a、となっているものとする。また、コネクションCbでは、第１の端末装置100側の送達確認済みシーケンス番号がX1b、及び第２の端末装置200側の送達確認済みシーケンス番号がX2b、となっているものとする。さらに、コネクションCbでは、第１の端末装置100側の送達確認済みシーケンス番号がX1c、及び第２の端末装置200側の送達確認済みシーケンス番号がX2c、となっているものとする。
【０１１８】
この場合、第１の中継装置500の保持するコネクション管理表への登録状況は図１９に示す通りであり、第２の中継装置600の保持するコネクション管理表への登録状況は図２０に示す通りとなる。
【０１１９】
上記で述べた状況における、コネクション維持を行う場合の動作を、図１８のシーケンス図を用いて以下で説明する。
【０１２０】
まず、第１の中継装置500は、第2の中継装置600に割り当てられたIPアドレスR2に向けて、死活確認要求メッセージを送信する(S12-1)。
【０１２１】
死活確認要求メッセージ(S12-1)を受け取った第2の中継装置600は、図２０に示すコネクション管理表に登録されている全コネクションCa〜Ccの最終更新時刻を死活確認要求(S12-1)の受信時刻であるT(S12-1)に更新する(S12-2)。
【０１２２】
次に、第２の中継装置600は、第１の中継装置500に向けて死活確認応答メッセージを送信する(S12-3)。
【０１２３】
死活確認応答メッセージ(S12-3)を受け取った第１の中継装置500は、図１９に示すコネクション管理表に登録されている全コネクションの最終更新時刻を死活確認応答メッセージ(S12-3)の受信時刻であるT(S12-3)に更新する(S12-4)。
【０１２４】
また、上述した死活確認手続きは、第２の中継装置600から開始することもある。この場合、第１の中継装置500と第２の中継装置600とは、S12-1〜S12-4で述べた動作が入れ替わる(S12-5〜S12-8)。
【０１２５】
図１８では、S12-8以降、第1の中継装置500と第2の中継装置600が接続している無線ネットワーク1003の通信品質が悪化しており、死活確認要求メッセージが途中で消失しているとする。
【０１２６】
第１の中継装置500は、最後に死活確認を行った時刻T(S12-5)から、予め設定されたKeepaliveタイムアウト1’を経過しても第２の中継装置600との間での死活確認がなされない場合、コネクション維持処理の実行を決定する(S12-9)。
【０１２７】
第１の中継装置500は、図１９で登録されている全TCPコネクションCa〜Ccそれぞれに対してコネクション維持のためのTCPセグメント(Keepalive)を生成し、安定した回線側に位置する第1の端末装置100に向けて送出する(S12-10)。
【０１２８】
ここで、コネクションCaに対するTCPセグメント(Keepalive)のTCPヘッダでは、通常のTCPヘッダ各フィールドの設定に加えて、Sequence NumberフィールドにY1aの値が、Acknowledge Sequence NumberフィールドにはX1aの値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。また、コネクションCbに対するTCPセグメント(Keepalive)のTCPヘッダでは、通常のTCPヘッダ各フィールドの設定に加えて、Sequence NumberフィールドにY1bの値が、Acknowledge Sequence NumberフィールドにはX1bの値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。さらに、ネクションCcに対するTCPセグメント(Keepalive)のTCPヘッダでは、通常のTCPヘッダ各フィールドの設定に加えて、Sequence NumberフィールドにY1cの値が、Acknowledge Sequence NumberフィールドにはX1cの値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。
【０１２９】
次に、TCPセグメント(Keepalive)を受け取った第１の中継装置100は、当該TCPセグメントがコネクション維持の通知であることを確認するとコネクションCa〜Ccそれぞれについて送達確認を通知するTCPセグメント(Keepalive-ack)を個別に送出する(S12-11)。
【０１３０】
ここで、コネクションCaに対するTCPセグメント(Keepalive-ack)のTCPヘッダでは、通常のTCPヘッダ各フィールドの設定に加えて、Sequence NumberフィールドにX1aの値が、Acknowledge Sequence NumberフィールドにはY1aの値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。また、コネクションCbに対するTCPセグメント(Keepalive-ack)のTCPヘッダでは、通常のTCPヘッダ各フィールドの設定に加えて、Sequence NumberフィールドにX1bの値が、Acknowledge Sequence NumberフィールドにはY1bの値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。さらに、コネクションCcに対するTCPセグメント(Keepalive-ack)のTCPヘッダでは、通常のTCPヘッダ各フィールドの設定に加えて、Sequence NumberフィールドにX1cの値が、Acknowledge Sequence NumberフィールドにはY1cの値が、確認フラグフィールドには「有効」を意味する値がそれぞれ格納される。
【０１３１】
次に、各TCPセグメント(Keepalive-ack)を受け取った第１の中継装置500は、各TCPセグメントが自身から送信したTCPセグメント(Keepalive)S12-10に対する送達確認であると判断すると、当該TCPセグメントを終端し、図１９に示す如く、コネクション管理表にある各コネクションの最終更新時刻をTCPセグメント(Keepalive-ack)S12-11の受信時刻であるT(S12-11)に更新する(S12-12)。
【０１３２】
以降、「Keepaliveタイムアウト1’」期間中に第２の中継装置600との間の死活確認が検出されない場合には、第１の端末装置100との間のコネクション維持手続きを繰り返す。
以上の手順により、第１の中継装置500と第２の中継装置600との間の通信路品質が悪化した状態が長期間続いた場合でも、第１の端末装置100に対して、保持しているTCPコネクションCa(A1,P1a,A2,P2a)、Cb(A1,P1b,A2,P2b)、Cc(A1,P1c,A2,P2c)を確立した状態のまま維持し続けさせることが可能となる。
【０１３３】
また、第２の中継装置600と第２の端末装置200との間においても、上述した第１の中継装置と第１の端末装置100との間で行われるコネクション維持手順と同様の動作を行うことで、第２の端末装置200に対して、保持しているTCPコネクションCa(A1,P1a,A2,P2a)、Cb(A1,P1b,A2,P2b)、Cc(A1,P1c,A2,P2c)を確立した状態のまま維持し続けさせることが可能となる。
【０１３４】
なお、本発明の第１の実施の形態と同様に、第１の中継装置500が用いる「Keepaliveタイムアウト1’」の値と、第２の中継装置600が用いる「Keepaliveタイムアウト2’」の値は必ずしも一致している必要は無く、第１の中継装置500と第２の中継装置600それぞれが実行するコネクション維持手続きは、独立して動作する。
【０１３５】
以上に述べた通り、本発明の第２の実施例でも、無線ネットワーク1003の通信路品質が悪化した状況においても、第１の中継装置500が第１の端末装置100に対して、第２の中継装置の代理としてコネクション維持手続きを実施し、かつ第２の中継装置600が第１の中継装置500の代理として第２の端末装置200に対してコネクション維持手続きを実施することで、各端末装置のTCPモジュールはコネクションの破棄を行わなくなる。これにより、無線ネットワーク1003の通信路品質が改善した場合に、コネクション確立処理を実施する必要がなく、即座に応用データの送受信が再開することが可能となる。
【０１３６】
また、本実施例では死活確認要求としてはICMP ECHOメッセージ、死活確認応答としてはICMP REPLYメッセージを利用しているが、必ずしもこれに限るものではない。
【０１３７】
このように、本発明によれば、途中経路に無線ネットワークのように通信品質の不安定な回線が存在するパケット通信システムで、予めコネクションを確立した上でデータ送受信を行う通信方式を用いる場合に、途中経路の通信品質が悪化してパケット送受信が不可能な状態になった場合でも、コネクションの切断を回避し、パケット通信システムの通信効率低下をおこさない。
【図面の簡単な説明】
【０１３８】
【図１】従来のパケット通信システムの一構成例を示すブロック図である。
【図２】図１に示したパケット通信システムで送受信する情報の構成を示す図であり、各プロトコルヘッダの位置関係を示す図である。
【図３】図２に示したIPヘッダの構成を示す図である。
【図４】図２に示したTCPヘッダの構成を示す図である。
【図５】図１に示したパケット通信システムで、コネクション維持の手順を示すシーケンス図である。
【図６】本発明のパケット通信システムの一構成例を示すブロック図である。
【図７】本発明のパケット通信システムの実施の形態を示す図であり、図６で示した第１のコネクション監視モジュールの構成を示すブロック図である。
【図８】本発明のパケット通信システムの実施の形態を示す図であり、第１のコネクション監視モジュール及び第２のコネクション監視モジュールそれぞれの記憶装置で有するコネクション管理テーブルの一構成例を示した図である。
【図９】本発明のパケット通信システムの実施の形態を示す図であり、コネクション確立時の手順を示すシーケンス図である。
【図１０】本発明のパケット通信システムの実施の形態を示す図であり、コネクション確立時の手順を示すシーケンス図である。
【図１１】本発明のパケット通信システムの実施の形態を示す図であり、図９、１０で示したコネクション確立動作時の手順において、第１のコネクション監視モジュールの記憶装置で有する管理テーブルの内部状態を示した図である。
【図１２】本発明のパケット通信システムの実施の形態を示す図であり、図９、１０で示したコネクション確立動作時の手順において、第２のコネクション監視モジュールの記憶装置で有する管理テーブルの内部状態を示した図である。
【図１３】本発明のパケット通信システムの実施の形態を示す図であり、図９、１０で示したコネクション確立動作時の手順が完了した時点において、第１のコネクション監視モジュールの記憶装置で有する管理テーブルの内部状態を示した図である。
【図１４】本発明のパケット通信システムの実施の形態を示す図であり、図９、１０で示したコネクション確立動作時の手順が完了した時点において、第２のコネクション監視モジュールの記憶装置で有する管理テーブルの内部状態を示した図である。
【図１５】本発明のパケット通信システムの実施の形態を示す図であり、コネクション維持実行時の手順を示すシーケンス図である。
【図１６】本発明のパケット通信システムの実施の形態を示す図であり、図１５で示したコネクション確立動作時の手順において、第１のコネクション監視モジュールの記憶装置で有する管理テーブルの内部状態を示した図である。
【図１７】本発明のパケット通信システムの実施の形態を示す図であり、図１５で示したコネクション確立動作時の手順において、第２のコネクション監視モジュールの記憶装置で有する管理テーブルの内部状態を示した図である。
【図１８】本発明のパケット通信システムの別の実施の形態を示す図であり、コネクション維持実行時の手順を示すシーケンス図である。
【図１９】本発明のパケット通信システムの別の実施の形態を示す図であり、第１のコネクション監視モジュールの記憶装置で有するコネクション管理テーブルの一構成例を示した図である。
【符号の説明】
【０１３９】
１００    第１の端末装置
１０１    第１のプロセッサ
１０２    第１のTCPモジュール
１０３    第１のIPモジュール
１０４    第１のネットワークアクセスモジュール
２００    第２の端末装置
２０１    第２のプロセッサ
２０２    第２のTCPモジュール
２０３    第２のIPモジュール
２０４    第２のネットワークアクセスモジュール
３００    従来技術における第１の中継装置
３０１    第３のIPモジュール
３０２、５０５    第３のネットワークアクセスモジュール
３０３、５０６    第４のネットワークアクセスモジュール
４００    従来技術における第２の中継装置
４０１    第４のIPモジュール
４０２、６０５    第５のネットワークアクセスモジュール
４０３、６０６    第６のネットワークアクセスモジュール
５００    本発明のパケット通信システムにおける第１の中継装置
５１１    第１のコネクション監視モジュール
６００    本発明のパケット通信システムにおける第２の中継装置
６１１    第２のコネクション監視モジュール
１００１    第１の有線ネットワーク
１００２    第２の有線ネットワーク
１００３    無線ネットワーク
５１１１、６１１１    IP処理モジュール
５１１２、６１１２    セッション維持処理モジュール
５１１３、６１１３    入出力状況監視装置
５１１４、６１１４    記憶装置
【図１】
2008072552.tif 000003
【図２】
2008072552.tif 000004
【図３】
2008072552.tif 000005
【図４】
2008072552.tif 000006
【図５】
2008072552.tif 000007
【図６】
2008072552.tif 000008
【図７】
2008072552.tif 000009
【図８】
2008072552.tif 000010
【図９】
2008072552.tif 000011
【図１０】
2008072552.tif 000012
【図１１】
2008072552.tif 000013
【図１２】
2008072552.tif 000014
【図１３】
2008072552.tif 000015
【図１４】
2008072552.tif 000016
【図１５】
2008072552.tif 000017
【図１６】
2008072552.tif 000018
【図１７】
2008072552.tif 000019
【図１８】
2008072552.tif 000020
【図１９】
2008072552.tif 000021