以下、図面を参照して本発明の実施形態を詳細に説明する。
図1に本発明の一実施形態であるゲートウェイ装置900の構成を示す。なお、図中のブロック間の実線矢印はデータの流れ、破線矢印は制御の流れを示す。
同図に示すように、このゲートウェイ装置900は、アプリケーション800と、キャッシュ811、821を各々有する複数の中継サーバ810、820と、無線TCP層600と、無線から有線への中継部611および有線から無線への中継部612を持つTCP中継部610と、TCP層620と、IP層400と、有線IF部100と、複数の無線IF部200、210、220とを備えて構成されている。
無線TCP層600はセグメントフィルタ603を有する無線TCP入力部601と無線TCP出力部602とを有する。TCP層620はセグメントフィルタ623を有するTCP入力部621とTCP出力部622を有する。IP層400はデータグラムフィルタ405を備えるIP入力部401と、IP中継部403とIP出力部402と移動制御部404とを有する。有線IF部100は有線IF入力部101と有線IF出力部102とを有する。無線IF部200は無線IF入力部201と無線IF出力部202とを有する。無線IF部210は無線IF出力部212を有する。無線IF部220は無線IF入力部221と無線IF出力部222とを有する。
無線用に変更されたトランスポート層プロトコルを、ここでは仮に“無線TCP”と呼ぶことにする。例えば、無線通信時の高いエラー率に対処するためselective ackを行い、TCPセグメント損失を輻輳と見なさないために輻輳ウィンドウ制御を常にslow startにすると言った改造を施したTCPが考えられる。また、上りと下りの帯域が非対称な場合に、無線区間でのackの発生回数を減少させるように最大セグメントサイズを大きく設定し、タイムアウトによる再送を減らすために高速再送アルゴリズムのしきい値を小さくするように変更する改造を行ったTCPであってもよい。
なお、本発明はプロトコル層間にまたがった情報を利用して制御を行うので、各プロトコル層のブロックの境界は厳密なものではない。つまり、本実施形態であるプロトコル層に属している機能が、別のプロトコル層に実装される構成も考えられる。
図2に図1のゲートウェイ装置900を含む、本発明の第1の実施形態である第1の通信ネットワークの構成例を示す。同図に示すように、この通信ネットワークは、有線網1101に接続された有線端末1001、1002、1003と、有線網1101に接続されかつルータ1301を介して間接的に基地局1401、1402、1403と接続されたゲートウェイ装置901と、有線網1101に接続されかつ基地局1404、1405、1406を直接接続されたゲートウェイ902と、有線網1101に接続されかつ基地局1407、1408と直接接続されたゲートウェイ装置903と、基地局1401〜1408が各々受け持つ無線サービス領域1501〜1508の間を移動しながら通信を行う無線端末1601〜1605とから構成される。
お、ルータ1301は、IPデータグラムのヘッダ情報を見てルーティングを行う通常のルータであってもよいし、IPデータグラムを通す仮想回線を交換する交換機であって装置内ではIPデータグラムのヘッダを通常は参照しない(仮想回線設定時のみ回線のルート決定のために参照するなど)ものであってもよい。
図1に示したゲートウェイ装置900の構成は一般的なものであり、図2に示すネットワークのゲートウェイ装置901、902、903の特定の構成を示すものではない。しかし、説明上、有線IF部100は有線網1101に接続され、無線IF部200は基地局1401〜1406に接続される性質のものとする。また、本例のネットワークは、単一方向の無線IF部210が基地局1408に接続され、基地局1407に接続される無線IF部220と一組になって動作し、基地局1408から無線端末1605への送信が高速で、無線端末1605と基地局1407間の送受信は比較的低速である、非対称伝送速度の通信を実現しているものとする。
図3に本発明の一実施形態である無線端末1600の構成を示す。
同図に示すように、この無線端末1600は、無線対応アプリケーション850と、アプリケーション860と、無線TCP入力部701および無線TCP出力部702を含む無線TCP層700と、TCP入力部711およびTCP出力部712を含むTCP層710と、TCP選択部720と、IP入力部501およびIP出力部502を含むIP層500と、無線IF部300を有する。
ゲートウェイ装置900の有線IF部100、無線IF部200、210、220は、いわゆるデータリンク層の機能を実現するものであるが、一部TCP層、IP層の情報に基づく動作を行う。この動作において特に言及すべきなのは以下の点である。
無線IF入力部201、221は、複数のデータリンクフレームに分割された形で受信されたIPデータグラムを元のIPデータグラムにまとめるIPデータグラム再構成部203、223を持つ。
図4にIPデータグラムを複数のデータリンクフレームに分割する様子を示す。IPデータグラム再構成部203、223は、あるIPデータグラムを構成する複数のデータリンクフレームの間に、他のIPデータグラムを構成する複数のデータリンクフレームが介在する場合にも(図5に示す)、元のIPデータグラムを組み立て直す処理(再構成)を行う。このIPデータグラムの再構成は、例えば、あるIPデータグラムを構成する複数のデータリンクフレームは順序を変えずに伝送され、各データリンクフレームのヘッダにIPデータグラムの識別子が記述されていると言う条件下で行われる。
IPデータグラム再構成部203、223は、最初のデータリンクフレームに含まれるIPヘッダにより当該IPデータグラムのサイズを確認し、このサイズと識別子に基づいてIPデータグラムを構成するすべてのデータリンクフレームを認識し、これらを組み合わせてIPデータグラムを再構成する。また、IPデータグラム再構成部203、223は、同一でのIPデータグラムを構成するすべてのデータリンクフレームを受信しきる前にタイムアウトなどの所定条件を満たした場合は、それらのデータリンクフレームを廃棄する。
図4、図5の例では、TCPの純粋なack(データを含まないヘッダだけのack)がIPデータグラムを構成する複数のデータリンクフレームの間に介在している場合を想定している。特に、高速な無線リンクでTCPにより第1の情報を送信し、低速な無線リンクでそれに対するackを返し、かつ低速な無線リンクでは第2の情報を送信している場合、第2の情報を送るデータリンクフレームを短くしてその間にackの介在を許容することで、TCPのRTTの大きさ
やその分散を小さくしてTCPの性能を向上させることが期待できる。また、ここでのデータリンクフレームは、最初のものを除いてIPヘッダを持たない点がIPフラグメントとの大きな相違となっている。短期間の一意性を保証すれば十分なことから、識別子はIPヘッダに比べて十分に小さくすることができるので、この方法はIPフラグメントを用いた場合よりもオーバヘッドが小さい。もちろん、TCPセグメントサイズを小さくして、TCPのRTTの大きさと分散を小さくする方法よりも、この方法のオーバヘッドは少ない。
また、IPデータグラム再構成部203、223は、圧縮された形式のTCP/IPヘッダを通常形式のTCP/IPヘッダに戻してから、IPデータグラムをIP入力部に渡す機能を持つ。圧縮の方法としては、SLIP(Serial Line IP)やPPP(Point−to−Point Protocol )で利用される方法やその変形を適用できる。特に非対称伝送速度の無線通信では帯域の狭い(伝送速度の小さい)伝送路においてこれらの圧縮を用いることは有効であるため、広帯域の伝送路では特にこれらの圧縮をしない構成でもスループット向上などの効果がある。
ゲートウェイ装置900のIP層400は、通常のIP層とは以下の点で異なっている。
通常のIP層においては、IP入力部401が自システム宛のIPデータグラムを上位層(TCP層)に上げ、それ以外をIP中継部403に渡す。しかし、本発明に係るIP入力部401のデータグラムフィルタ405は、自システムに付与されたIPアドレス以外の宛先を持つIPデータグラムであっても、以下の条件(1),(2)を満たせば、それが無線IF部200、220から入力された時にはそれを無線TCP入力部601に、それが有線IF部100から入力された時にはそれをTCP入力部621に渡す。渡す際に、IPデータグラムにコネクション設定、TCP層での中継、アプリケーション層での中継のいずれかを識別するタグを付与する。
(1)新たなTCPコネクションの設定に関するIPデータグラム(以下では「コネクション設定IPデータグラム」と呼ぶ)。具体的には、TCPコネクションの設定に必要な、要求側(通常クライアント)からのSYNセグメント、それに対するサーバ側のackを含むSYNセグメント、それに対するクライアント側のackの3つのいずれかのセグメントを含むIPデータグラム。無線IF部200から入力されたIPデータグラムをこの対象にしない構成も考えられる。これは、無線端末がゲートウェイ装置のIPアドレスを指定して明示的にTCP中継を要求する場合に意味を持つ。
(2)既存のTCPコネクションを流れるIPデータグラム(プロトコルフィールドがTCPを示す)であって、TCPコネクション設定時にTCP層以上で中継すると定められたもの(以下では「上位層中継IPデータグラム」と呼ぶ)。具体的には、TCPコネクションを識別する、送信元IPアドレス・送信元ポート番号・宛先IPアドレス・宛先ポート番号の組が、TCP層中継またはアプリケーション層中継として、後述する中継方法テーブルに登録されたものであるIPデータグラム、あるいは送信元IPアドレス・宛先IPアドレス・フローIDの組みが、TCP層中継またはアプリケーション層中継として、後述する中継方法テーブルに登録されたものであるIPデータグラム。
なお、宛先IPアドレスや送信元IPアドレス、あるいはフローIDを参照することで、有線から有線、無線から無線へと中継されるIPデータグラムは、TCP層など上位層に上げる対象としないように構成してもよい。これは例えば、無線端末間の伝送の場合には無線区間だけを伝送するため、各無線端末の備える無線TCP層だけを無線伝送路の特性に合わせた変更を行うことで性能の向上が実現できる場合に有効となる。
IP層400に含まれる移動制御部404は、無線端末1601〜1605の移動を反映するように、IP中継部403のルーティング情報を変更し、入力されたIPデータグラムが宛先無線端末1601〜1605に対応する正しいIFに出力されるように制御を行う。
また、移動制御部404は、無線端末1601〜1605の移動が、ゲートウェイ装置に収容される基地局の無線サービス領域のうち、他のゲートウェイ装置に収容される基地局の無線サービス領域に物理的に隣接しないものから隣接するものへの移動であった場合、または隣接する無線サービス領域で無線端末の電源が投入された場合などの、移動後の適当な事象(例えば、受信電力がしきい値よりも小さくなったなど)を契機にして、TCP層以上の上位層に当該端末が他のゲートウェイ装置のサービス領域に移動する可能性があることを通知する。通常のハンドオフはネットワーク層以下で行われるが、本発明ではトランスポート層以上にも状態を持つので、トランスポート層以上のハンドオフを提供することが有効である場合がある。この通知はトランスポート層以上のハンドオフ準備を始める契機を知るために利用する。
ゲートウェイ装置900のTCP層(600、610、620を総称)は、通常のTCP層とは以下の点で異なっている。
通常のTCP層には、自システム宛のTCPセグメントのみが入力され、そこに含まれるデータをポート番号に従って適切なアプリケーションに渡す。しかし本発明に係るTCP層は、それらに加えてコネクション設定IPデータグラムに含まれるTCPセグメントおよび上位層中継IPデータグラムの処理を行う。
無線TCP層600は、既に述べたような無線用に改善されたトランスポート層プロトコルを実現する。無線TCP入力部601またはTCP入力部621がコネクション設定IPデータグラムを受けとると、セグメントフィルタ603または623が、TCPセグメントのヘッダの内容と、場合によってはペイロードの内容を基に、IP中継部403によって中継を行うか、TCP中継部610によって中継を行うか、アプリケーション中継サーバ810、820によって中継を行うかを決定する。多くの場合、TCPのヘッダに含まれる送信元と宛先のポート番号により上位層のアプリケーションを特定できる。特定できない場合は、TCPペイロード内の情報によりアプリケーションを推定する方法も考えられる。IP層で中継を行うか、TCP層で中継を行うか、アプリケーション層で中継を行うかは、設定しようとしているTCPコネクションが担うアプリケーションの種類によって決定される。以下に、この決定の指針の例を示す。
TCP層で中継を行うことの意義は、ゲートウェイ装置900のTCP層620や無線TCP層600を、有線網1101あるいは無線網の伝送路に適したプロトコルに変更することで、有線端末のTCP層や無線端末の無線TCP層を変更をすることなく、端末間のTCPスループットの向上ができる。さらに無線端末間のTCPコネクションを無線網で用いる2つのコネクションに分割して設定したり、無線端末と有線端末間のTCPコネクションを、無線網で用いるコネクションと有線網で用いるコネクションに分割して設定することで、1つのコネクションにおけるRTTが減少するため、TCPセグメントの損失が発生した時の再送が速やかに行われるため、この点に関してもスループット向上が望める。
しかし、前述した様にTCP層で中継を行うことで、TCPのエンド−エンドセマンティクスが保存されないため、TCP層での中継を行っての通信中にゲートウェイ装置900の動作が停止した時に、送信端末では相手端末にデータが届いたと認識していても、実際には相手端末にデータが届いていないという不整合を引き起こすことも考えられる。また、全てのコネクションをTCP層で中継する場合には、ゲートウェイ装置900の負荷が高くなり過ぎて、実際には性能が向上しないことも考えられる。
また、アプリケーション層で中継を行うことの意義は、転送するデータのセマンティクスにまで立ち入って中継を行うことができることにある。例えば中継時にデータのキャッシュを行えば、再度同じデータを中継する要求があった場合に、キャッシュ811、821からデータを読み出して送信することで、中継動作を省略することができる。また、ある情報に関して詳細度が階層的に表現されていて、データ量の少ない概要情報からデータ量が多い詳細情報まで複数の階層のデータで構成され、それらのデータがサーバに蓄積されている場合、サーバからゲートウェイ装置までは全ての階層のデータを転送しておくが、ユーザが使用する端末からゲートウェイ装置間の伝送路の状況に応じて、端末へ情報を転送する際には適宜階層を選択してデータを送信することができる。またデータに対して情報源圧縮符号化方法の変換を施しながら中継を行ったり、暗号化や復号化を施しながら中継を行うなど、データに対して任意の操作を行いながら中継および転送を行うことで、端末に対してより高度なサービスの提供が可能になる。
このためTCP層で中継するかどうか、あるいはアプリケーション層で中継するかどうかを決定する指針のひとつとして例えば以下の方法がある。
・TCPのエンド−エンドのセマンティクス(ackを受信したら送信データは相手ホストによって受信されている)を変更しないのが望ましいアプリケーションであれば、IP層で中継を行う。例えばtelnet。
・TCPのエンド−エンドのセマンティクスを保存する必要がなく、ゲートウェイに対応するアプリケーション中継サーバがないアプリケーションである場合は、TCP層で中継を行う。例えばsmtp。
・TCPのエンド−エンドのセマンティクスを保存する必要がなく、ゲートウェイに対応するアプリケーション中継サーバがあるアプリケーションである場合は、アプリケーション層で中継を行う。例えばftpやhttp。
またこれとは別の決定の指針の例を示す。
・TCPのスループットが要求されるバースト的なデータ転送を行うアプリケーションであればTCP層で中継を行う。例えばftpやhttp。
・TCPのスループットが要求されないインタラクティブなアプリケーションである場合にはIP層で中継を行う。例えばtelnet。
TCP層による中継をするかどうかの決定の指針は、予めアプリケーションによって定めたり、システムの構成やゲートウェイ装置の負荷の状況により適宜設定するなどの実施が可能である。
中継方法の決定後に、TCPコネクションを識別するための送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号の4つ組と、決定した中継の方法とを対応付けて、例えば図6示す中継方法テーブルに記憶する。なお、TCPコネクションは双方向なので、送信元・宛先の名前付けは便宜的なものでよく、IPデータグラムに含まれる情報の送信元と宛先のままの検索で中継方法テーブルにエントリがない場合は、IPデータグラムに含まれる情報の送信元と宛先を逆にして検索を行えばよい。また対応付けを送信元IPアドレス、宛先IPアドレス、フローIDの3つ組みとし、決定した中継の方法を図7に示す中継方法テーブルに記憶する実施でも良い。
TCP層以上で中継を行う場合には2つのTCPコネクションの識別情報として同じ4つ組が割り当てられることになるが(前述した送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号を識別情報として用いる場合)、対象とするIPデータグラムが、ゲートウェイ装置への入力か出力か、送信元と宛先はそのままか逆にしたかという、処理の文脈で暗黙にわかる情報を利用すれば2つのTCPコネクションを区別できる。なお、TCP層以上で中継を行う場合、2つのTCPコネクションを別々の4つ組で識別することもできるが、その場合はしかるべくテーブルを構成して検索を行うことが望まれる。
IP層で中継を行う場合は、入力されたIPデータグラムをそのままIP出力部402に渡す。TCP層以上で中継を行う場合は、ゲートウェイ装置900は元々要求されているTCPコネクションを無線TCPコネクションとTCPコネクションに2分割して設定する。ゲートウェイ装置900はTCPコネクションを設定するため最初のSYNセグメントを受け取ると、そのセグメントに対するackを含むSYNセグメントを送信元端末に返し、このSYNセグメントに対するackを受けとると第1のTCP(あるいは無線TCP)コネクションを設定する。一方、ゲートウェイ装置900と要求されていた宛先端末の間に第2の無線TCP(あるいはTCP)コネクションを設定するために、ゲートウェイ装置900は新たなSYNセグメントを送信する。これに対するackを含むSYNセグメントの受信、それに対するackの送信を通じて、第2の無線TCP(あるいはTCP)コネクションの設定が完了する。なお、アプリケーション層中継では中継サーバ810、820の要求で第2の無線TCP(あるいはTCP)コネクションが設定されるので、キャッシュ811、812に既に蓄積される情報を読み出すことによってアプリケーションの要求が満足される場合には、第2の無線TCP(あるいはTCP)コネクションが設定されない場合もあり得る。
本発明のゲートウェイ装置においてアプリケーション層での中継を行う場合において従来利用されるproxyと異なる点は、無線端末がコネクション設定を要求するときに、明示的にproxyを指定しなくとも、途中のゲートウェイ装置にて2つのTCPコネクションの接続およびアプリケーション層での中継がなされ、これを無線端末が意識することなく動作することができる点にある。
無線TCP入力部601は、上位層中継IPデータグラム(本来はそれに含まれるTCPセグメント)を受けとると、IP入力部で付与されたタグがTCP層中継である場合には、TCP中継部610の無線→有線中継部611を介してTCP出力部622にそれを渡す。また、TCP入力部621も、上位層中継IPデータグラムを受けとると、IP入力部で付与されたタグがTCP層中継である場合には、有線→無線中継部612を介して無線TCP出力部602にそれを渡す。タグがアプリケーション層中継である場合には、TCPのポート番号に対応するアプリケーションにIPデータグラムを渡す。
なお、ここでは無線TCPコネクションとTCPコネクションをゲートウェイ装置で中継接続する場合を例にとって説明したが、無線端末間の通信において無線TCPコネクションと無線TCPコネクションを中継接続する場合、あるいは有線端末間の通信においてTCPコネクションとTCPコネクションを中継接続する場合にも、用いるTCP層やIF部が異なるだけで、同様の手順で中継接続を行うことができる。
TCP層は、無線端末1601〜1605が、ゲートウェイ装置901〜903の各無線サービス領域(各ゲートウェイ装置に収容されている基地局の無線サービス領域の和)の間で移動する場合にTCP層のハンドオフを行う。当該無線端末のために中継している全てのTCP(および無線TCP)コネクションの状態を新たなゲートウェイ装置において再確立することで、TCP層のハンドオフは完了する。ここで言うコネクションの状態とは、
・各コネクションを識別するアドレスとポートの4つ組。
・第二(第一)のTCP(無線TCP)コネクションでackされていない、第1(第2)の無線TCP(TCP)コネクションにおける受信済みデータ。
・各TCPコネクションの受信ウィンドウ、輻輳ウィンドウ、ack済みシーケンス番号、送信済シーケンス番号。
などを含む。既に述べたように、移動制御部404が上記のゲートウェイ装置間のハンドオフが起こりそうな状況をTCP層のTCPハンドオフ制御部640に通知できるので、それを契機にTCPハンドオフ制御部640が準備を開始することにより、TCP層のハンドオフの時間を短縮することができる。具体的には、例えば、
・現在のゲートウェイ装置と移動先と予想されるゲートウェイ装置間に、TCP層ハンドオフの情報転送のためのTCPコネクションを設定する。
・各TCPコネクションの転送データ(最大のウィンドウサイズ分だけ)と管理情報を保持する領域を確保して初期化する。
・第1(第2)の無線TCP(あるいはTCP)コネクションにおいて受信したデータを、移動先と予想されるゲートウェイ装置にも転送して、確保した転送データ領域に格納する。確保した領域から溢れたら、シーケンス番号が小さい順に捨てる。
といった準備をしておく。実際にハンドオフが発生した時点で、受信ウィンドウ、輻輳ウィンドウ、ack済みシーケンス番号、送信済シーケンス番号などの管理情報の状態を確定して、この情報を新たなゲートウェイ装置に転送してゲートウェイ機能を移動し、これが完了したら新たなゲートウェイ装置によるTCP中継を開始する。なお、無線TCPのackが、通常のTCPと同様の累積的な性質を持っていれば、無線端末から旧ゲートウェイ装置に送信されたackを新ゲートウェイ装置で受信できなくても、無線TCPの状態が不安定になることはなく、スループットも低下しない。従って、旧ゲートウェイ装置から送信された全てのデータに対するackを受信する前に、新ゲートウェイ装置から未送信のデータの送出を始めてよい。この方法を用いることで、ハンドオフ時のデータ転送の中断時間を少なくすることができるため、TCPスループットの向上が可能となる。
なお、基地局1401〜1403、基地局1404〜1406の様に同一のゲートウェイ装置に収容された基地局間で無線端末1601〜1604がハンドオフする場合でも、前述した様にTCPのackが累積的であることを利用して、TCP出力部622は、旧基地局を介して送信したデータに対する全てのackを受信する前に、新基地局を介して未送信のデータの送信を開始しても良く、この場合にもTCPの状態が不安定になることはなく、スループットの低下も起こらないという効果がある。
次に、無線端末が移動して基地局間にまたがるハンドオフを行うことを、その端末に対してTCP中継動作をするゲートウェイ装置が予測検出したり、ハンドオフが完了したことを検出する手順について図8、図9を用いて説明する。
図8の無線端末1610において、電界強度測定部1804は基地局から送信される電波の受信電界強度を連続的に、あるいは定期的に測定し、定期的に制御部1700に通知する。BER(Bit Error Rate)測定部1806は、受信機1801から無線IF入力部311へ流れる信号のビット誤り率をある一定時間測定し、定期的に制御部1700に通知する。制御部1700の電界強度変化通知部1701は、電界強度測定部1804によって得られた受信電界強度を、自無線端末の識別子を含み、宛先をゲートウェイ装置としたメッセージをIP出力部512に渡す。識別子として、例えば無線端末1610に割り当てらてたIPアドレスを用いることができる。
同様に制御部1700のBER変化通知部1702は、BER測定部1806によって得られたビット誤り率と、自無線端末の識別子を含み、宛先をゲートウェイ装置としたメッセージをIP出力部512に渡す。IP出力部はこのメッセージをIPパケットとして無線IF出力部312と送信機1802を介して送信する。
無線端末1610が基地局との無線通信中に移動して、その基地局の無線サービス領域の境界付近に来ると一般に受信電界強度の低下やBERの増加が発生する。このためゲートウェイ装置では、これら無線端末から送信される受信電界強度やBERの通知を受信し、移動制御部404により前述する受信電界強度の低下やBERの増加が検出されると、その無線端末が通信中の基地局の無線サービス領域の境界付近に移動したと判断し、ハンドオフに備えた準備を開始することができる。
また図9に示す基地局1400においても同様に無線端末から送信される電波の受信電界強度を電界強度測定部1854で測定したり、受信機1851からIF出力部152へ流れる信号のビット誤り率をBER測定部1856で測定することができるため、ハンドオフ前の基地局での測定結果をゲートウェイ装置に送信することで、ゲートウェイ装置が無線端末のハンドオフを予測したり、ハンドオフ後の基地局での測定結果をゲートウェイ装置に送信することで、ゲートウェイ装置がハンドオフの完了を検出したりすることができる。
この様に無線伝送路の品質などを測定することの他に、無線端末1610の無線送受信部1800や基地局1400の無線送受信部1850にて無線端末と基地局間の無線伝送路が確立しているかどうかを検出し、その情報をゲートウェイ装置に通知することで、ゲートウェイ装置が無線端末のハンドオフを予測したり、ハンドオフの完了を検出したりする実施でも良い。
具体的には、無線端末1610の無線送受信部1800と基地局1400の無線送受信部1850の間の無線伝送路は、従来の無線通信システムと同様に無線送受信部または無線IF部310などに付与される物理アドレスやMACアドレスに基づいて確立状態などが管理される構成とする。このとき例えば基地局1400の無線送受信部1850では、ゲートウェイ装置にてTCP中継を行っている無線端末との間の無線伝送路が切断されたことを検出したとき、その無線端末の物理アドレスやMACアドレスを、ゲートウェイ装置が識別できる無線端末識別子(例えばIPアドレス)に変換するために図10に示す無線端末アドレス登録テーブルを参照し、この識別子を含み宛先をゲートウェイ装置としたメッセージをIP出力部552および有線IF出力部152を介して送信する。
ゲートウェイ装置900はこのメッセージを受信すると、TCP中継を行っていた無線端末と基地局との間の伝送路にてデータ転送ができない状態であることを認識し、基地局間のハンドオフ、あるいはゲートウェイ機能の移動の準備の動作を開始することができる。なお、図10に示す無線端末アドレス登録テーブルは、ゲートウェイ装置900に装備される構成でも良く、その場合には基地局1400は無線端末の物理アドレスやMACアドレスをゲートウェイ装置に通知すれば、ゲートウェイ装置は無線端末アドレス登録テーブルを参照して無線端末の識別子(例えばIPアドレス)を得ることができる。
逆に無線端末1610が移動先の基地局と無線伝送路を確立したことを、その基地局が検出したとき、その無線端末の物理アドレスまたはMACアドレスをゲートウェイが識別できる無線端末識別子(例えばIPアドレス)に変換するために図10に示す無線端末アドレス登録テーブルを参照し、この識別子を含み宛先をゲートウェイ装置としたメッセージをIP出力部552および有線IF出力部152を介して送信する。
ゲートウェイ装置900はこのメッセージを受信すると、無線端末1610と移動先基地局との間の伝送路が確立されたことを認識し、速やかに再度データの転送を開始することができる。なお、図10に示す無線端末アドレス登録テーブルは、ゲートウェイ装置900に装備される構成でも良く、その場合には基地局1400は無線端末の物理アドレスやMACアドレスをゲートウェイ装置に通知すれば、ゲートウェイ装置は無線端末アドレス登録テーブルを参照して無線端末の識別子(例えばIPアドレス)を得ることができる。
次に、異なるゲートウェイ装置に収容される基地局間で無線端末が移動した時に、その移動をゲートウェイ装置が検出する手順について説明する。
無線端末から基地局およびゲートウェイ装置を介してインターネットにアクセスするシステムで、多数の基地局の無線サービス領域が複数のサブネットで構成される場合、これらのサブネット間で無線端末が移動してもインターネットに接続できる(IPパケットの送信および受信ができる)ための技術としてMobile−IPやDHCP(Dynamic Host Configuration Protocol )を利用する場合について述べる。これらの技術では、無線端末が異なるサブネットに移動したときに、ネットワーク側に配置される各機能とのやりとりが行われる。
図11に本発明の第2の実施形態である第2の通信ネットワークの構成例を示す。同図に示すように、この通信ネットワークは、有線網1101に接続された有線端末1001、1002、1003と、有線網1101に接続されかつルータ1302を介して間接的に基地局1411、1412と接続され、かつルータ1303を介して間接的に基地局1413、1414と接続されたゲートウェイ装置911と、有線網1101に接続されかつルータ1304を介して間接的に基地局1415、1416と接続され、かつルータ1305を介して間接的に基地局1417、1418と接続されたゲートウェイ装置912と、基地局1411〜1418が各々受け持つ無線サービス領域1511〜1518の間を移動しながら通信を行う無線端末1611〜1614とから構成される。ここで同一のルータに接続される基地局1411と1412、1413と1414、1415と1416、1417と1418が同一のサブネットとして運用されており、またそれぞれのルータ1302〜1305には、Mobile−IPにて、移動先のサブネットでの諸機能を提供するFA(Foreign Agent )の機能が搭載されているとする。
Mobile−IPでは、各々のサブネットにあるFAが(DHCPなら各々のサブネットにあるDHCPサーバが)図11に示す様にサブネット識別子あるいはサブネットが識別できるFA(あるいはDHCPサーバ)のアドレスを定期的に基地局を介してを報知する。無線端末1611〜1614は定期的にこの報知情報を受信することで、それ以前に滞在していたサブネットと異なるサブネットに移動したときには、それを検出することができる。
そして、例えばMobile−IPを使用する場合には、そのサブネットに無線端末がいる間、その無線端末宛てパケットの気付アドレス(ケア・オブ・アドレス)がFAから通知されたり、ケア・オブ・アドレスに送られてくる当該無線端末宛てのパケットを無線端末へ転送するようFAに登録を要求したりする。また例えばDHCPでは、そのサブネットに無線端末がいる間、その無線端末からインターネットにアクセスするのに用いる一時的なIPアドレスをDHCPサーバから取得する。これらの一連のやりとりに加えて、そのサブネットを収容するゲートウェイ装置の識別子(例えばIPアドレス)をFAあるいはDHCPサーバより受信し、それが以前のTCPコネクションの中継接続を行っていたゲートウェイ装置の識別子と異なると、ゲートウェイ機能の移動が必要であることを検出する。このときFAあるいはDHCPサーバには、そのサブネットにいる無線端末のTCPコネクションを中継接続するゲートウェイ装置の識別子が登録されている。
ゲートウェイ機能を新たな(移動先での)ゲートウェイ装置へ移動する(TCP層でのハンドオフ)必要があることを無線端末が検出したら、自無線端末の識別子と以前のゲートウェイ装置の識別子を含むTCPハンドオフ要求を、移動先でのゲートウェイ装置宛てに送信する。
このTCP層でのハンドオフ要求を無線端末の移動先でのゲートウェイ装置が受信すると、無線端末の基地局間ハンドオフが完了し、それに引き続きゲートウェイ機能の移動が必要であることを認識し、以前のゲートウェイ装置に送信済みでかつ送達確認の無いデータおよびTCPコネクションの状態情報の転送を要求する。この後に前述したゲートウェイ機能の移動が行われる。
次に、FAあるいはDHCPサーバが基地局を介してサブネット識別番号を報知する方法に代えて、図12に示す様なゲートウェイ装置が識別子を報知する方法について説明する。図12に示した通信ネットワークの構成は、図2に示した第1の通信ネットワークの構成と基本的には同じである。
各々のゲートウェイ装置921〜923が基地局を介してその識別子(例えばIPアドレス)を報知し、無線端末が定期的にその報知情報を受信することで、それが以前のTCPコネクションの中継接続を行っていたゲートウェイ装置の識別子と異なると、ゲートウェイ装置機能の移動が必要であることを検出する。この場合にも、その後のTCPハンドオフの手順は前述した場合と同様である。
更に、ゲートウェイ装置900の無線TCP層600およびTCP層620は、TCPのpersist timerおよびkeep alive timerによるprobeセグメントの処理方法を図1、図2を用いて説明する。
一般にpersist timerによって生成されるwindow probeセグメントは、受信側が受信ウィンドウが開いた通知をしない理由が、開いたことを通知するackが失われたためか、実際にTCPのバッファに余裕がないためにそうなっているかを、送信側が調べるために送信するものである。無線端末1601〜1605から見た無線TCP層600のバッファ、有線端末1001〜1003から見たTCP層620のバッファがprobeの対象となるので、無線TCP層600とTCP層620は、通常と同じようにwindowprobeセグメントに対して応答を行う。即ち、空きバッファ量をもとに、通知すべき受信ウィンドウサイズを決めて、その値をackによって通知する。同時に、TCP中継部610を経由して、有線側から無線側へ、または無線側から有線側にwindow probeセグメントを中継してもよい。中継しないとしても、ゲートウェイ装置の無線TCP層600およびTCP層620でpersist timerを動かしてwindow probeを送信するようにしておけば、無線端末1601〜1605のTCP層または有線端末1001〜1003のTCP層のバッファが空いているのに、ゲートウェイ装置の無線TCP層600およびTCP層620に間違った受信ウィンドウサイズの状態が残ってデータを送信できなくなることはない。
一般にkeep alive timerによって生成されるprobeは、TCPコネクションに長期間活動が見られない理由が、端末が落ちているか、あるいは端末が落ちた後に再起動したために当該TCPコネクションを既に維持していないためかを確認するために送信される。従って、これらのprobeに対して、端末になり代わってゲートウェイ装置が応答することは本来の趣旨に反する。従って、このprobeに対してはゲートウェイ装置の無線TCP層300およびTCP層620は応答せずに、単にTCP中継部610を経由して他方に中継する。但し、無線TCP層600およびTCP層620は中継したTCPセグメント内容を記憶しておき、このprobeに対する応答が返ってくればそのまま中継する(通常の送信に対するackは一旦終端するのに対して)。
また、中継を行っているTCPコネクションを形成する無線側または有線側のいずれかのTCPコネクションが切断された場合は、他方も切断する。
次にアプリケーション中継サーバ810、820について図1を用いて説明する。アプリケーション中継サーバ810または820は、無線TCP入力部601またはTCP入力部621からIPデータグラム(に含まれるアプリケーションプロトコルデータ)を受けとると、当該アプリケーションプロトコルに定められた処理を行い、必要ならば第2のTCP(あるいは無線TCP)コネクションを設定するように、TCP出力部622または無線TCP出力部602に要求する。ユーザにより要求されたデータがキャッシュ811または821に存在しない場合が、第2のTCP(あるいは無線TCP)コネクションを設定する一つの例である。
次に無線端末1600について図3を用いて説明する。無線端末1600の無線IF部300は、いわゆるデータリンク層の機能を実現するが、本発明による無線IF部300は一部、TCP層およびIP層の情報に基づく動作を行う。特に言及すべきなのは以下の点である。
無線IF出力部302は、IPデータグラムを図4に示すように複数のデータリンクフレームに分割するIPデータグラム分割部303と、優先度の低いIPデータグラムを構成する複数のデータリンクフレームを送信している間に、送信すべき優先度の高いIPデータグラムが現れた場合に、優先度の高いIPデータグラムを含むデータリンクフレームを、優先度の低いIPデータグラムを含むデータリンクフレームに先立って送信する優先度制御部304を含む。IPデータグラム分割部303は、TCP/IPヘッダ圧縮機能も持つ。これらはゲートウェイ装置900の無線IF入力部200、220のIPデータグラム再構成部203、223と組になって動作する。優先度の高いIPデータグラムとしては、純粋なack(データを含まないヘッダだけのack)をペイロードに含むものを想定しており、これによって既に述べたようなTCPの性能を向上することができる。
このような機能を実現するために例えば以下の方法をとることができる。優先度の高低は、上位のIP層かTCP層で判断して、上位層が、各IPデータグラムに優先度を識別するタグを付けたり、各IPデータグラムを優先度別に設けられたデータリンク層のキューに繋げるようにしておけば、データリンク層の優先度制御部304でも識別できる。IPデータグラムがデータリンク層のキューに繋がれると、制御がデータリンク層に渡る。IPデータグラム分割部303がこのIPデータグラムを1つ以上のデータリンクフレームに分割する。リンクヘッダには、IPデータグラムを(適当な期間の間)一意に識別する識別子を含める。優先度制御部304は、キューを見て優先度の高いデータリンクフレームの送信をハードウェアに要求する。その後、一旦制御を上位層に渡す。上位層が送信すべきIPデータグラムを持っていれば、それがデータリンク層のキューに繋がれて、上記と同様の処理が行われる。上位層が送信すべきIPデータグラムを持っていなければ、先に送信したデータリンクフレームの送信完了のハードウェアからの割り込みによって、制御がデータリンク層に戻され、優先度制御部304がキューにある優先度の高い一つのデータリンクフレームの送信要求をハードウェアに対して行う。
なお、この分割・優先制御方式が特に有効となる無線端末からの出力方向の帯域が狭い場合には、上位層は送信処理のボトルネックとならないので、送信データがキューを形成するのはボトルネックとなるデータリンク層であると考えられる。従って、データリンク層は送信データの優先制御を行うのに適当な場所であると言える。
図5は、2番目のデータリンクフレームが優先度の高いIPデータグラム(純粋ack)を含む、データリンクフレームの送信例を示している。
無線端末1600のTCP層(TCP層700、無線TCP層710とTCP選択部720の総称)は、以下の点で通常のTCP層と異なる。
無線TCP層700は、既に述べたような無線用に改善されたトランスポート層プロトコルを実現する。また、TCPコネクション設定時に、相手が通常のTCPとして動作している場合は、当該コネクションの制御をTCP層710に引き継ぐ。
TCP選択部720は、無線対応アプリケーション850による明示的な要求によって、または明示的な要求無しに、アプリケーション860を特定または推定できる情報によって、通常のTCPによって通信を行うか、無線TCPによって通信を行うかを決定する。ここで通常のTCPならばゲートウェイ装置によるTCP層以上の中継は無しとして、無線TCPならばゲートウェイ装置によるTCP層以上の中継は有りとしてTCPコネクションが設定される。中継方法の決定基準は、ゲートウェイ装置の説明で述べたものに準ずる。
無線端末1600のアプリケーション層で、無線対応アプリケーション850は、TCP選択部720に無線TCPかTCPかの選択を明示的に要求する機能を持つものである。アプリケーション860は、TCP選択部720への明示的な要求を行わないものである。
次に、本発明の第3の実施形態である第3の通信ネットワークの構成を図13に示す。本実施形態の通信ネットワークは、複数のゲートウェイ装置にトランスポート層中継またはアプリケーション層中継の負荷を分散するためにルータを利用した例である。
ルータ1311が、有線端末1011〜1013を収容する有線網1111、ゲートウェイ装置931〜933、無線サービス領域1521〜1526をそれぞれ受け持つ基地局1421〜1426を相互接続する。ルータ1311は、無線端末1621〜1624がそれぞれに割り当てられたゲートウェイ装置931〜933のいずれかを介して、有線端末1011〜1013とIPデータグラムの送受を行うように、後述する方法でルーティングを行う。
図14にルータ1311の構成を示す。同図に示すように、このルータ1311において、有線IF部180、190は有線網1111またはゲートウェイ装置931〜933に接続され、無線IF部280、290は基地局1421〜1426に接続されている。IP層480は、IP中継部483のルーティング表に従って、これらのIFから入力されたIPデータグラムを適切なIFに出力する。
このルータ1311は、IP中継部483が各無線端末1621〜1624とゲートウェイ装置931〜933の対応表486を持っている点に特徴がある。
無線端末1621〜1624とゲートウェイ装置931〜933との対応付けは、無線端末1621〜1624が無線サービス領域1521〜1526にあることが検出された時や、無線端末1621〜1624の加入手続き時に行うことができる。前者の場合、基地局が新たな無線端末1621〜1624の検出を通知するIPデータグラムが、ルータ1311のデータグラムフィルタ485によって移動制御部484に転送される。移動制御部484は、ある規則に従って、通知された無線端末1621〜1624とゲートウェイ装置931〜933の対応関係を付けて、対応表486にその内容を登録する。ある規則とは、例えば直前の期間のゲートウェイ装置931〜933の負荷をもとに、負荷を均等化することを目標に置いて規定されたものである。
また、前述したように図12に示すゲートウェイ装置921〜923が基地局1401〜1408を介してゲートウェイ装置の識別子(例えばIPアドレス)を報知し、一方無線端末1601〜1604が定期的にこの報知情報を受信することで、その基地局を収容するゲートウェイ装置を認識することができる。ひとつの基地局を収容するゲートウェイ装置が複数ある場合には、例えば図15に示す様に、それぞれのゲートウェイ装置の識別子を基地局を介して報知し、その報知情報を受信した無線端末がそれらすべてのゲートウェイ装置にサービス提供要求の信号を送信する。その要求を受信したゲートウェイ装置はサービス提供応答の信号を無線端末に送信するが、例えば一番早く応答を送信したゲートウェイ装置の負荷が軽いと判断することができ、これを無線端末と対応づけるゲートウェイ装置として定めることもできる。
無線端末1621〜1624とゲートウェイ装置931〜933との対応付けを、無線端末1621〜1624の加入手続き時に行う場合、図示しない遠隔のネットワーク管理装置が対応表486を設定する。設定は、上記のように移動制御部484を介して行う方法によるものでもよいし、ルータ1311内の図示しない管理アプリケーションを介して行う方法によるものであってもよい。
このように設定された対応表486を用いたIPデータグラムのルーティングに関して、以下に詳述する。
有線端末1011〜1013から無線端末1621〜1624へのIPデータグラムの送信を、いくつかに場合分けする。
(W1)有線端末1011〜1013が送信するIPデータグラムのヘッダに宛先として無線端末1621〜1624のIPアドレスが直接書かれている場合。
(W2)いわゆるトンネリング技術を使い、有線端末1011〜1013が送信するIPデータグラムのヘッダは宛先としてルータ1311またはゲートウェイ装置931〜933のIPアドレスを持ち、当該IPペイロードに更にIPデータグラム(ないしはその変形)がカプセル化され、カプセル化されたIPデータグラムのヘッダの宛先として無線端末1621〜1624のアドレスが記されている場合。
(W2−1)ルータ1311が宛先アドレスの場合。
(W2−2)ゲートウェイ装置931〜933(それぞれ無線端末1621〜1624に対応付けられた)が宛先アドレスの場合。
ルータ1311で、有線端末1011〜1013から無線端末1621〜1624へのIPデータグラムをルーティングする際に、通常と異なる動作を行う必要があるのは(W1)と(W2−1)の場合である。(W1)の場合、IP中継部は対応表486に従い、IPデータグラムのヘッダの宛先である無線端末1621〜1624に対応するゲートウェイ装置931〜933に、IPデータグラムをルーティングする。(W2−1)の場合、ルータ1311のIP入力部481でカプセル化されたIPデータグラムを取り出し、その後は(W1)と同様にする。(W1)の場合はゲートウェイ装置931〜933が変換・中継後に送信するIPデータグラムも、有線端末1011〜1013から送信されたものと同様に無線端末1621〜1624を宛先としてヘッダに含むため、同じ宛先アドレスを持つIPデータグラムを別々方路にルーティングしなければならない。前者と後者は入力IFの違いや送信元のMACアドレスなどの情報によって区別できるため、このようなルーティングは可能である。
無線端末1621〜1624から有線端末1011〜1013へのIPデータグラムの送信を、いくつかに場合分けする。
(R1)無線端末1621〜1624が送信するIPデータグラムのヘッダに宛先として有線端末1011〜1013のIPアドレスが直接書かれている場合。
(R2)いわゆるトンネリング技術を使い、無線端末1621〜1624が送信するIPデータグラムのヘッダは宛先としてルータ1311またはゲートウェイ装置931〜933のIPアドレスを持ち、当該IPペイロードに更にIPデータグラム(ないしはその変形)がカプセル化され、カプセル化されたIPデータグラムのヘッダの宛先として有線端末1011〜1013のアドレスが記されている場合。
(R2−1)ルータ1311が宛先アドレスの場合。
(R2−2)ゲートウェイ装置931〜933(それぞれ無線端末1621〜1624に対応付けられた)が宛先アドレスの場合。
ルータ1311で、無線端末1621〜1624から有線端末1011〜1013へのIPデータグラムをルーティングする際に、通常と異なる動作を行う必要があるのは(R1)と(R2−1)の場合である。(R1)の場合、IP中継部は対応表486に従いIPデータグラムのヘッダの送信元である無線端末1621〜1624に対応するゲートウェイ装置931〜933にIPデータグラムをルーティングする。(R2−1)の場合、ルータ1311のIP入力部481でカプセル化されたIPデータグラムを取り出し、その後は(R1)と同様にする。(R1)の場合はゲートウェイ装置931〜933が変換・中継後に送信するIPデータグラムも、無線端末1621〜1624から送信されたものと同様に無線端末1011〜1013を宛先としてヘッダに含むため、同じ宛先アドレスを持つIPデータグラムを別々方路にルーティングしなければならない。前者と後者は入力IFの違いや送信元のMACアドレスなどの情報によって区別できるため、このようなルーティングは可能である。
次に、本発明の第4の実施形態である第4の通信ネットワークの構成を図16に示す。本実施形態の通信ネットワークの構成は、ゲートウェイ機能の信頼性向上のためにゲートウェイ装置を二重化した点に特徴がある。二重化されたゲートウェイ装置以外は図13の第3の通信ネットワークの構成に準ずる。
ルータ1312が、有線端末1011〜1013を収容する有線網1111、ゲートウェイ装置944、945、無線サービス領域1521〜1526をそれぞれ受け持つ基地局1421〜1426を相互接続する。ルータ1312は、無線端末1621〜1624が、ゲートウェイ装置944、945を介して、有線端末1011〜1013とIPデータグラムの送受を行うように、第3の通信ネットワークの構成で説明したのと類似する方法でルーティングを行う。
第4の通信ネットワーク構成のルータ1312は、有線端末1011〜1013が無線端末1621〜1624を最終的な宛先としてルータ1312に送信したIPデータグラム、および無線端末1621〜1624が有線端末1011〜1013を最終的な宛先としてルータ装置1312に送信したIPデータグラムを各ゲートウェイ装置944、945に同報する点で、第3の通信ネットワークの構成のルータ1311と異なる。
ルータ1311はゲートウェイ装置それぞれにインタフェースを持っているが、ルータ1312はシェアドメディアのネットワーク(例えば、Ethernet(R))によってゲートウェイ装置944と945を収容しているという物理的な接続関係の相違は本質的ではない。
ルータ1312がゲートウェイ装置944と945に同報を行う方法を示す。第3の通信ネットワークの構成で示した場合分けで、(W2−2)と(R2−2)はゲートウェイ装置が宛先アドレスなので、宛先アドレスをゲートウェイ装置944と945をホストグループに含むIPマルチキャストアドレスを宛先アドレスとすればよい。このホストグループは何らかの方法で予め設定しておく。このIPマルチキャストアドレスをシェアドメディアネットワークのMACアドレスに解決する際に、ゲートウェイ装置944と945を含むシェアドメディアネットワークのマルチキャストアドレスに解決する。このアドレス解決方法は、通常のIPマルチキャストと同様である。ここで、図17に示すゲートウェイ装置944と945の構成の中で、同報受信機能113は、シェアドメディアネットワークのマルチキャストアドレスを持つフレームを受信する機能を持っている。
(R1)、(R2−1)、(W1)および(W2−1)の場合は、宛先がシングルキャストのIPアドレスであるが、このシングルキャストのIPアドレスをシェアドメディアネットワークのMACアドレスに解決する際に、ゲートウェイ装置944と945を含むシェアドメディアネットワークのマルチキャストアドレスに解決するようにしておけばよい。このアドレス解決方法は、シングルキャストのIPアドレスはシングルキャストのMACアドレスに解決すると言う通常の方法とは異っている。
なお、ルータ1312とゲートウェイ装置944と945を接続するネットワークがシェアドメディアなので、ルータ1312がシングルキャストのMACアドレスに解決しても、ゲートウェイ装置944が自分宛のフレームに加えてゲートウェイ装置945宛のMACアドレスを持つフレームも受信し、ゲートウェイ装置945が自分宛のフレームに加えてゲートウェイ装置944宛のMACアドレスを持つフレームも受信するように、ゲートウェイ装置944と945の有線IF入力部111の同報受信機能113を設定しておけば、同様の効果が得られる。
図17に二重化可能なゲートウェイ装置944または945の構成を示す。
各ゲートウェイ装置944、945は、有線IF部110の有線IF入力部111に同報受信機能113を、有線IF出力部112には同報送信機能114を設けて構成される。例えば、シェアドメディアネットワークであるEthernet(R)のIFカードはこのような同報機能を持っているが、本発明では通常シングルキャストの宛先MACアドレス持つフレームによって送信すべきIPデータグラム(TCPまたは無線TCPセグメントを含む)を、マルチキャストの宛先MACアドレスを持つフレームによって同報する点に特徴がある。
IP層410は、ゲートウェイ装置900のIP層400と比べ、移動制御部を持たない点と、二重化制御部1900による制御を受ける点で異なるが、前者の相違は本質的ではなく、移動制御部を持つ二重化されたゲートウェイ装置も可能である。二重化制御部1900により一次ゲートウェイ装置のIP層として動作するように指示されると、IP層によって中継するべきデータグラムの中継を行う。二重化制御部1900により二次ゲートウェイ装置のIP層として動作するように指示されると、通常ならIP層によって中継するべきと判断されるデータグラムであっても中継は行わなず、黙ってデータグラムを廃棄する。
無線TCP層650、TCP層670およびTCP中継部660は、それぞれ無線TCP層600、TCP層620およびTCP中継部610と比較して、二重化制御部1900に対して必要な情報を与え、二重化制御部1900による制御を受ける点で異なる。この点に関して以下に詳述する。
まず、ゲートウェイ装置944を一次ゲートウェイ装置、ゲートウェイ装置945を二次ゲートウェイ装置とし、有線端末1011と無線端末1621との間のTCPコネクションを中継する場合について説明する。
この時、TCPセグメントを受信・応答しあう有線端末1011と一次ゲートウェイ装置944はTCPのピア関係にあり、無線TCPセグメントを受信・応答し合う無線端末1621と一次ゲートウェイ装置944は無線TCPのピア関係にある。二次ゲートウェイ装置945は、これらのTCPセグメントの交換を受信して内容を確認するが、一次ゲートウェイ装置944に障害が生じない限り、受信したTCPセグメントに応答することはなく、ピア関係にはない。
無線端末1621が無線TCPのコネクション設定要求を行ったと仮定する。
無線TCPのSYNセグメントが、図18の経路aによって一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報される。一次ゲートウェイ装置944はTCPのコネクション設定要求として、経路dによって有線端末1011と二次ゲートウェイ装置945にTCPのSYNセグメントを同報する。二次ゲートウェイ装置945の判定部1901は、無線TCPのSYNセグメントを受信した時点でこの受信を予期しており、予期したセグメントを受信したことで、一次ゲートウェイ装置944が正常に動作していると判断する。
もし、一定期間予期したセグメントを受信しなければ、判定部1901は経路fによって一次ゲートウェイ装置944に、動作確認メッセージを送る。これに対して一次ゲートウェイ装置944が経路eによって応答を返さなければ、二次ゲートウェイ装置945の判定部1901は、一次ゲートウェイ障害と判定し、切替え制御部1902に対して自装置を一次ゲートウェイ装置として構成するように指示する。切替え制御部1902は、無線TCP層650、TCP中継部660、TCP層670に対し、一次ゲートウェイ装置として動作するように指示する。今考えている場合、TCP層670はTCPのSYNセグメントを有線端末1011に送信する。
再び、一次ゲートウェイ装置944が正常に動作している場合に戻る。有線端末1011が返すTCPのSYN・ACKセグメントは、ルータ1312によって経路cで一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報される。一次ゲートウェイ装置944は、これを受けて経路dによって有線端末1011と二次ゲートウェイ装置945にACKセグメントを同報する。二次ゲートウェイ装置945の判定部1901がこの受信の有無に基づいて、一次ゲートウェイ装置944の動作状態を判断し、必要なら切替を行なうことは同様である。
更に、一次ゲートウェイ装置944は、経路bによって無線端末1621と二次ゲートウェイ装置945に対して無線TCPのSYN・ACKメッセージを返す。二次ゲートウェイ装置945の判定部1901がこの受信の有無に基づいて、一次ゲートウェイ装置944の動作状態を判断し、必要なら切替を行うことは同様である。無線端末1621が送信した無線TCPのACKセグメントは、ルータによって経路aで一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報される。
この時点で、一次ゲートウェイ装置944で中継される、無線端末1621と有線端末1011間の双方向のTCPコネクションが確立する。
有線端末1011から無線端末1621にデータを転送する場合を考える。有線端末1011から送信すべきデータを含むTCPセグメントが、経路cによって一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報される。一次ゲートウェイ装置944は、経路dによって当該データを受信確認するACKセグメントを有線端末1011と二次ゲートウェイ装置945に同報する。二次ゲートウェイ装置945の判定部1901がこのACKセグメントの受信の有無に基づいて、一次ゲートウェイ装置944の動作状態を判断し、必要なら切替を行なうことは同様である。更に、一次ゲートウェイ装置944は、送信すべきデータを含む無線TCPセグメントを、経路bによって無線端末1621と二次ゲートウェイ装置945に同報する。二次ゲートウェイ装置945の判定部1901はデータを含む無線TCPセグメントを予期しているため、この受信の有無に基づいて、一次ゲートウェイ装置944の動作状態を判断し、必要なら切替を行うことは同様である。無線端末1621は、このデータを受信確認する無線TCPのACKセグメントを、経路aで一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報する。このACKを受信しない場合は、一次ゲートウェイ装置944がタイムアウトによる再送を行うはずである。一次ゲートウェイ装置944が、再送を行うべきなのに行わない場合は、二次ゲートウェイ装置945の判定部1901は、一次ゲートウェイ装置944の動作状態を確認し、必要なら切替を行って再送を行う。
無線端末1621がTCPコネクションの切断を要求した場合を考える。無線端末1621は、経路aにより無線TCPのFINセグメントを一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報する。一次ゲートウェイ装置944は、経路dによってTCPのFINセグメントを有線端末1011と二次ゲートウェイ装置945に同報する。二次ゲートウェイ装置945の判定部1901がこのFINセグメントの受信の有無に基づいて、一次ゲートウェイ装置944の動作状態を判断し、必要なら切替を行うことは同様である。有線端末1621がこれに対して返すTCPのACKセグメントは、ルータ1312によって経路cで一次ゲートウェイ装置944と二次ゲートウェイ装置945に同報される。一次ゲートウェイ装置944は、経路bによって無線端末1621と二次ゲートウェイ装置945に、FINに対する無線TCPのACKセグメントを同報する。二次ゲートウェイ装置945の判定部1901がこのACKセグメントの受信の有無に基づいて、一次ゲートウェイ装置944の動作状態を判断し、必要なら切替を行うことは同様である。
次に、無線端末と有線端末間、無線端末間、あるいは有線端末間での通信を、TCP層ないしアプリケーション層で中継接続を行うゲートウェイ装置を、それぞれの通信と対応付ける手順について図9、図13および図14の構成などを含めて説明する。
なお、図13に示す構成の通信ネットワーク上でメッセージを転送する際には、IPパケットを用い、任意のトランスポート層のプロトコルを用いてデータ転送をする場合を考えるものとする。
ここで図9は、図13の基地局1421〜1426(以下、これらをまとめて基地局1400と呼ぶ)の構成例を示したものである。基地局1400は、電界強度変化通知部1751とBER(ビット誤り率)変化通知部1752と端末移動制御部1753を含む制御部1750、電界強度測定部1854を含む受信機1851と送信機1852およぴこれらが空中線1855を共用するための共用器1853を含む無線送受信部1850、BER測定部1856、IP入力部551とIP出力部552を含むIP層550、有線IF入力部151と有線IF出力部152を含む有線IF部150から構成される。なお、図中の実線矢印はデータの流れ、破線矢印は制御の流れを示す。
電界強度測定部1854は、各無線端末1621〜1624から送られてくる電波の受信電界強度を測定し、定期的に制御部1750に通知する。BER測定部1856は、受信機1851から有線IF出力部151へ流れる信号のビット誤り率を各無線端末1621〜1624対応に測定し、定期的に制御部1750に通知する。
なお、受信電界強度とビット誤り率は、無線端末と基地局との間の無線通信状態を表す情報の一例である。制御部1750の電界強度変化通知部1751は、電界強度測定部1854によって得られた各無線端末1621〜1624の受信電界強度と対応する無線端末1621〜1624の識別子を含み、宛先をルータ1311としたメッセージをIP出力部552に渡す。
同様に制御部1750のBER変化通知部1752は、BER測定部1856によって得られた各無線端末1621〜1624のビット誤り率と対応する無線端末1621〜1624の識別子を含み、宛先をルータ1311としたメッセージをIP出力部552に渡す。
識別子として、例えば無線端末1621〜1624に割り当てられたIPアドレスを用いることができる。IP出力部552を介してルータ1311に転送されるメッセージとしては、新たなICMP(Internet Control Message Protocol)メッセージを定義してもよい。すなわち、受信電界強度あるいはビット誤り率等の無線通信状態を表す情報と無線端末の識別子とを通知するためのICMPメッセージとして、新たにタイプとコードを割リ当て、情報内容(受信電界強度あるいはビット誤り率と無線端末の識別子)のフォーマットを定める。このメッセージは、定期的に基地局1400からルータ1311に通知するようにしても良いし、受信電界強度およびビット誤り率が予め定められた閾値を越えた場合のみに通知するようにしても良い。
図14は、図13のルータ1311の構成例を示したものである。ルータ1311は、大きく分けて、有線網1111および複数のゲートウェイ装置931〜933をそれぞれ1つづつ接続する複数(図14では、そのうちの2つのみを示している)の有線IF部180、190と、基地局1421〜1426のそれぞれを1つずつ接続する複数(図14では、そのうち2つのみを示している)の無線IF部280、290とIP層480とから構成される。
有線IF部180、190は、有線IF入力部(181、191)と有線IF出力部(182、192)とから構成され、無線IF部280、290は、無線IF入力部(281、291)と無線IF出力部(282、292)とから構成されている。
IP層480は、データグラムフィルタ485を持つIP入力部481と、IP出力部482と、対応表486を記憶したIP中継部483と、移動制御部484とから構成される。
基地局から送信される無線通信状態を通知するためのメッセージ(例えばICMPメッセージ)は、無線IF入力部281あるいは291を経由して、IP入力部481に至る。すると、IP入力部481はデータグラムフィルタ485によって、当該メッセージが無線通信状態を通知するためのICMPメッセージであることを認識する(ICMPのタイプとコードによリ識別できる)。そして、当該メッセージに含まれる識別子にて識別される無線端末で終端されるトランスポート層コネクションを中継しているゲートウェイ装置931〜933のいずれかに転送するべきメッセージ(IPデータグラム)であることを認識して、IP中継部483に渡す。
IP中継部483の対応表486には、無線端末1621〜1624のIPアドレスと、無線端末1621〜1624で終端されるトランス層ポートコネクションを中継するゲートウェイ装置931〜933のIPアドレスとの間の対応関係が示されている。
この対応関係は、例えば以下のようにして付けられているとする。無線端末1621〜1624が無線サービス領域1521〜1526のいずれかに新たに見い出された(電源投入時を含む)ことを基地局1421〜1426の端末移動制御部1753がルータ1311の移動制御部484に通知した時、移動制御部484がある規則によって無線端末とゲートウェイ装置931〜933のいずれかを対応つける。
さて、IP中継部483は、当該メッセージに含まれる無線端末のIPアドレスに対応するゲートウェイ装置931〜933のいずれかのIPアドレスを、対応表486によって得る。このゲートウェイ装置のIPアドレスを、そのメッセージの新たな宛先としてIPヘッダに書き込んで、IP出力部482に渡す。
IP出力部482では、メッセージをその宛先に対応する有線IF出力部(182あるいは192)を経由して、ゲートウェイ装置931〜933のいずれかに送信する。
なお、IP入力部481に入力されるメッセージの宛先はルータ1311のアドレスなので、本来は上位層に渡すべきものである。従って、前述したようなIP中継部483での処理(当該メッセージに含まれる識別子の無線端末に対応するゲートウェイ装置を対応表486を参照して特定して、当該メッセージをその特定されたゲートウェイ装置に転送するための処理)は、上位層にて行うようにしてもよい。すなわち、IP中継部483には渡さずに、上位層に当該メッセージを処理する部分を設けても良い。
次に、無線端末と基地局間の無線通信状態により、その無線端末との通信を中継接続するゲートウェイ装置のトランスポート層プロトコルを適応的に制御する手順について図19を用いて説明する。図19は、図13のゲートウェイ装置931〜933(以下、これらをまとめてゲートウェイ装置930と呼ぶ)の構成例を示したものである。ゲートウェイ装置930は、大きく分けて、有線IF部120とIP層420とTCP層620とTCP中継部610と無線TCP層630とから構成される。
有線IF部120は、有線IF入力部121と有線IF出力部122とから構成され、ルータ装置1311に接続するようになっている。IP層420は、データグラムフィルタ425を含むIP入力部421と、IP出力部422と、IP中継部423と、無線通信状態受信処理部426とから構成される。
TCP層620は、セグメントフィルタ623を含むTCP入力部621とTCP出力部622とから構成される。無線TCP層630は、セグメントフィルタ633を含む無線TCP入力部631と、無線TCP出力部632と、無線通信状態適応制御部634とから構成される。
TCP中継部610は、無線トランスポート層プロトコルを有線トランスポート層プロトコルに変換する中継部611と、有線トランスポート層プロトコルを無線トランスポートプロトコルに変換する中継部612とから構成される。
ルータ1311からゲートウェイ装置930に転送されたメッセージは、ゲートウェイ装置930の有線IF入力部121を通過して、IP入力部421に達する。
IP入力部421では、データグラムフィルタ425により、入力されたメッセージが無線通信状態を通知するためのメッセージであると認識すると、これを無線状態受信処理部426に送る。
無線状態受信処理部426は、メッセージ中の無線端末の識別子(例えばIPアドレス)と無線通信状態に関する情報(例えば、受信電界強度またはビット誤り率)を抽出し、それを無線TCP層630に通知する。
無線TCP層630の無線通信状態適応制御部634が、この無線通信状態に関する情報を基に無線TCPの動作を適応的に変更する。例えば、ビット誤り率がある閾値より高くなった場合(あるいは受信電界強度がある閾値よリも小さくなった場合)に、送信する無線TCPセグメントの最大サイズを小さくし、ビット誤り率がある閾値よりも低くなった場合(あるいは受信電界強度がある閾値よりも大きくなった場合)に、送信する無線TCPセグメントの最大サイズを大きくする。
このようなトランスポート層コネクションの制御指示(例えば、TCPセグメントのサイズの変更指示)は、例えば、無線TCP出力部632に作用し、以後、TCP中継部610の有線→無線中継部612から送られてくるTCPセグメントは、無線通信状態適応制御部634にて決定されたサイズにて無線TCP出力部632から出力され、IP出力部422、有線IF出力部122を介して基地局へ送信される。
これまでは、基地局1421〜1426のいずれかからルータ1311に送られてくる無線通信状態を通知するためのメッセージを基に、ルータ1311が、そのメッセージ中に含まれる識別子にて識別される無線端末と複数のゲートウェイ装置のいずれかとを対応づける(無線通信状態を通知するためのメッセージの転送先のゲートウェイ装置の特定)場合を説明してきた。
次に、基地局1421〜1426が無線端末と複数のゲートウェイ装置のいずれかとを対応づける場合について説明する。図20に基地局1401〜1406(以下、これらをまとめて基地局1400と呼ぶ)の他の構成例を示す。なお、図9と同一部分には同一符号を付し、異なる部分について説明する。すなわち、図20に示す構成では、制御部1750に対応表1754が具備されている。
対応表1704には、無線端末1621〜1624の識別子(例えばIPアドレス)と、無線端末1621〜1624で終端されるトランスポート層コネクションを中継するゲートウェイ装置931〜933のIPアドレスとの間の対応関係が示されている.
この対応関係は、例えば以下のようにして付けられているとする。まず、ルータ装置1311は、別に定められた方法で既に対応関係を対応表486に持ってるとする。基地局1421〜1426のいずれかの端末移動制御部1753が無線端末1621〜1624のいずれかを見い出したこと通知するためのメッセージをルータ1311に送信すると、ルータ1311の移動制御部484では、対応表486を参照して、その受け取ったメッセージに含まれる識別子(IPアドレス)の無線端末で終端されるトランスボート層コネクションを中継するゲートウェイ装置931〜933のいずれかの識別子(IPアドレス)を検索する。
そして、この検索されたゲートウェイ装置の識別子を含む所定の応答メッセージを、先に、無線端末を見い出したこと通知するためのメッセージを送信した基地局に対し送信する。
当該基地局では、ルータ1311からの応答メッセージを有線IF入力部151、IP入力部551を介して受信して、その応答メッセージからゲートウエイ装置の識別子を抽出すると、端末移動制御部1753では、そのゲートウエイ装置の識別子と当該無線端末との対応関係を対応表1754に登録する。
一方、制御部1750の電界強度変化通知部1751は、電界強度測定部1854によって得られた無線端末から送られてくる電波の受信電界強度と、当該無線端末の識別子を含むメッセージを生成し、IP出力部552に渡す。その際、電界強度変化通知部1751は対応表1754から、当該無線端末の識別子に対応するゲートウェイ装置の識別子(IPアドレス)を検索して、それを生成したメッセージの宛先として設定する。
同様に、制御部1750のBER変化通知部1752は、BER測定部1856によって得られた無線端末のビット誤り率と、当該無線端末の識別子を含むメッセージを生成し、IP出力部552に渡す。その際、BER変化通知部1752は対応表1754から、当該無線端末の識別子に対応するゲートウェイ装置の識別子(IPアドレス)を検索して、それを生成したメッセージに宛先として設定する。
このメッセージは、IP出力部552、有線IF出力部152を介してルータ1311に送信されると、ルータ1311では、通常のIPパケットと同じ扱いで、IPパケットに含まれるIPアドレスにて特定されるゲートウェイ装置931〜933のいずれかにルーティングされる。このメッセージを受信したゲートウェイ装置931〜933の動作は、前述した様に無線TCP層630の無線通信状態適応制御部634が、これらの無線通信状態に関する情報を基に無線TCPの動作を適応的に変更する。
次に、無線端末または有線端末からのTCPコネクション確立要求の際に使用される制御オプションの処理方法について図2および図21を用いて説明する。図21は本発明の一実施形態であるゲートウェイ装置の構成を示すもので、図1と同一部分には同一符号を付し、ここでは異なる部分について説明する。
例えば図2の通信ネットワークの構成の中で、ゲートウェイ装置901が図20に示される構成であるとする。このとき、ゲートウェイ装置901がオプションhを要求したTCPコネクション確立のためのパケットを有線網1101内にある端末1001より受信すると、(ここで、オプションhがパスMTUディスカバリを指示するものだとする)このときゲートウェイ装置901はオプションにh対する回答を端末1001に行うとともに、端末1001とのコネクションの確立を行う。このときに、コネクションのオプションとして何が要求されていたかをオプションテーブル683に記録しておく。
次にゲートウェイ装置901は端末1001がコネクションを確立したい相手である、例えば無線端末1601とのコネクション確立の動作に入る。ゲートウェイ装置901内のTCPハンドオフ制御部640はコネクション確立のためのパケットを生成する際にオプションテーブル683を参照する。これにより、ゲートウェイ装置901はオプションhが要求されていることを確認し、経路上のMTUを探索する。しかし一般的に無線リンクでのパケットサイズは有線リンクでのパケットサイズに比べると小さいので、ここでのMTUを無線端末1601と端末1001との間の経路上のMTUとして扱うと、有線網において必要以上のデータ分割が行われ、この結果リンクの利用効率が低下してしまう。そこで、無線端末とのコネクション確立の時にはhを不必要なものとして扱う。そこで、ゲートウェイ装置901内のTCPハンドオフ制御部640はTCPコネクショ
ン確立のためのパケットのオプションには何も加えずに無線端末1601に送信するよう無線TCP600内の無線TCP出力部602に要求を送信する。
このTCPコネクション確立のためのパケットを受信した無線端末1601はオプション無しと理解して、このパケットに対する送達確認・回答パケットをゲートウェイ装置901へ送信する。これにより、無線端末とゲートウェイ装置901との間のコネクションはオプション無しの状態で確立される。
以上の様に、例えば無線端末と有線端末との間のコネクションを分割設定する際に、通信リンクの状況などによってオプションの設定を柔軟に変更することにより、通信リンクを効率良く利用できることになる。
次に、無線端末が異なるゲートウェイ装置に収容される基地局間で移動し、これらのゲートウェイ装置間でゲートウェイ機能の移動(TCP層によるハンドオフ)が行われる手順について図22を用いて説明する。図22は本発明の一実施形態であるゲートウェイ装置の構成を示すもので、図1と同一部分には同一符号を付し、ここでは異なる部分について説明する。
無線端末が、異なるゲートウェイ装置に収容される基地局間で移動し、これらのゲートウェイ装置間でゲートウェイ機能の移動(TCP層によるハンドオフ)が行われる際に、ゲートウェイ装置960のTCPハンドオフ制御部640はTCP中継している2つのTCPコネクション(例えばゲートウェイ装置960と無線端末間、ゲートウェイ装置960と有線端末間)の現在のTCPコネクション状態を示す状態遷移変数689、694を参照する。
それぞれのTCPコネクションの状態遷移変数689、694が共にESTABLISHEDであった場合には、TCP中継している2つのTCPコネクションが確立されていてデータ転送状態であると検出され、無線端末が移動後にも新たなゲートウェイ装置にてゲートウェイ機能が実現できる様に、前述したTCP層によるハンドオフの一連の操作を行う。
これに対し、それぞれのTCPコネクションの状態遷移変数689、694のいずれかがESTABLISHEDでない場合には、ゲートウェイ装置960はそれぞれの(CLOSEDでない)TCPコネクションを切断する処理を行う。もちろん、共にCLOSEDであった場合には何ら動作を行わなくとも良い。
この様な判断基準でゲートウェイ装置間のハンドオフを実行することにより、異常な状態遷移におけるゲートウェイの動作手順を装備することを回避できるため、ゲートウェイ装置のシステム構成の簡略化が期待できる。
次に、無線端末が異なる基地局間でハンドオフした時の、無線端末におけるTCPコネクション管理手順について図23を用いて説明する。図23は本発明の一実施形態である無線端末の構成を示すもので、図3と同一部分には同一符号を付し、ここでは異なる部分について説明する。
無線端末1620が異なる基地局間でハンドオフをするため無線伝送路が切断されるとき、無線端末1620の無線TCP層において現在のTCPコネクション状態を示す無線TCP状態遷移変数734を参照したとき、この変数がSYN_SENT、SYN_RCVD、LISTENのいずれかであり、すなわちコネクションの確立の途中であった場合には、無線端末1620はこのコネクションを切断する動作を行うとともに、コネクションの切断が行われたことをTCPハンドオフ制御部740中の、コネクション確立時ハンドオフ切断変数741に記録しておく。
この後、無線端末1620のハンドオフが終了して無線伝送路が確立したことをTCPハンドオフ制御部740が検出すると、前述したコネクション確立時ハンドオフ切断変数741を参照し、コネクションの切断が行われたことが記録されていればTCPコネクションの再確立の動作を開始する。
以上により、無線端末1620がTCPコネクション確立途中のときにハンドオフによりそのコネクション切断されても、ハンドオフの後にコネクション再確立を自動的に行えるので、速やかにコネクションの再確立が行えるうえ、ユーザがコネクションの再確立のための動作を行うことを省くことが可能である。
次に、無線端末とゲートウェイ装置間の無線伝送伝送路が例えばハンドオフが原因で切断された時の、データフロー制御の手順について図2、図24および図25を用いて説明する。図24は本発明の一実施形態であるゲートウェイ装置の構成を示すもので、図1と同一部分には同一符号を付し、ここでは異なる部分について説明する。また図25は本発明の一実施形態である無線端末の構成を示すもので、図3と同一部分には同一符号を付し、ここでは異なる部分について説明する。図2中のゲートウェイ装置902が図24のゲートウェイ装置970で示す構成になっており、図2中の無線端末1604が図25の無線端末1630で示す構成になっているとする。
無線端末1604がゲートウェイ装置902を介して有線端末1001とコネクションを分割設定して通信中に、基地局1405がカバーする無線サービス領域1505から基地局1406がカバーする無線サービス領域1506にハンドオフを開始すると、ゲートウェイ装置970内のTCPハンドオフ制御部は、TCP層695内のパケット生成部699においてウィンドウサイズフィールドを0にしたデータを持たないパケットを生成し、TCP出力部697を介して有線端末1001にこのパケットを送信する。有線端末1001はこのウィンドウサイズが0であることを通知するパケットを受信すると相手の無線端末1604の受信バッファに空きが無いと解釈するため、それ以降無線端末1604宛てデータの送信を一時的に停止する。
また、無線端末1604が通信している相手の端末が例えば無線端末1603である場合には、ゲートウェイ装置901に対してウィンドウサイズフィールドが0のパケットを送信することで、同様に無線端末1604宛てデータの送信は一時的に停止される。
以上により、ネットワーク内で輻輳が生じているのではないが通信を行えない状態である、例えばハンドオフ動作中において、無線端末と通信している相手端末のTCP層においてデータの送信を一時的に停止させるとともに、このコネクションにおける無線端末への伝送レートを制御する輻輳ウィンドウの減少を止めることが可能であり、ハンドオフ終了後には直ちに高い伝送レートでのデータ送信を開始することができる。
また同様に、ハンドオフの動作を開始した無線端末1604のTCPハンドオフ制御部は、ハンドオフを開始したことを示す信号を無線TCP層750のパケット生成部755へ送信する。このときパケット生成部755において、ウィンドウサイズフィールドが0でデータを含まず、宛先アドレス及びコネクション識別ポート番号にはこの無線端末1604のアドレス(IPアドレス)及び現在通信を行っているコネクションのポート、送信元アドレスおよびコネクション識別ポート番号には、この無線端末と通信を行っている有線端末1001のアドレス(IPアドレス)及びポートに設定したパケットを生成する。パケット生成部755ではこの様に生成したパケットを無線TCP入力部751へ送信する。
このパケットを受信した無線TCP入力部751は、ウィンドウサイズが0であることを通知するパケットを受信すると相手の有線端末1001の受信バッファに空きが無いと解釈するため、それ以降有線端末1001宛てデータの送信を一時的に停止する。
無線端末1604のTCPハンドオフ制御部760は無線IF部300よりハンドオフが完了したことを示す信号を受信するか、あるいはIP入力部501や無線TCP入力部751よりこの無線端末1604と通信を行っている有線端末1001からパケットを受信したことを示す信号を受信するか、あるいはTCP制御部761より相手端末1001とのコネクションを切断したことを示す信号を受信した場合に、パケット生成部755に前述したウィンドウサイズ0のパケットの生成を中止することを示す信号を送信する。パケット生成部755はウィンドウサイズ0のパケットの生成を中止することを示す信号を受信するまで、例えば1秒ごとにこのパケットを生成して無線TCP入力部751へ送信する。
以上により、ネットワーク内で輻輳が生じているのではないが通信を行えない状態である、例えばハンドオフ動作中において、無線端末のTCP層においてデータの送信を一時的に停止させるとともに、このコネクションにおける無線端末側からの伝送レートを制御する輻輳ウィンドウの減少を止めることが可能であり、ハンドオフ終了後には直ちに高い伝送レートでのデータ送信を開始することができる。
次に、無線端末が基地局およびゲートウェイ装置を介して有線端末とコネクションを分割設定して通信中に、そのゲートウェイ装置に収容される基地局の無線サービス領域外に移動した場合の動作について図2および図26を用いて説明する。図26は本発明の一実施形態であるゲートウェイ装置の構成を示すもので、図1の構成の一部分を示している。図1と同一部分には同一符号を付し、ここでは異なる部分について説明する。図2中のゲートウェイ装置901〜903が図26のゲートウェイ装置980で示す構成になっているとする。
ゲートウェイ装置902のTCPハンドオフ制御部640が、そのゲートウェイ装置を介して通信中である無線端末1604と基地局1405の無線伝送路が切断されたことを示す信号を例えば基地局1405から受信したら、ゲートウェイ装置902が収容する基地局の無線サービス領域1504〜1506の境界に隣接するエリアをサービスする基地局を収容するゲートウェイ装置901及び903に対して、その無線端末1604からのパケットを受信した場合にパケットを転送してもらうよう要求する、無線端末1604の識別子(例えばIPアドレス)と自ゲートウェイ装置902の識別子(例えばIPアドレス)を含んだ図27のようなパケットを送信する。
このパケットを受信したゲートウェイ装置901および903は図28のような転送要求テーブルに、このパケットに含まれている無線端末1604のアドレスと、転送を要求しているゲートウェイ装置902のアドレスを記録する。
無線端末1604が移動した先のゲートウェイ装置901または903が、無線IF部あるいは基地局が収容されるルータ1301に接続される有線IF部からパケットを受信した場合には、ゲートウェイ装置901または903は、転送要求テーブル491を参照し、当該受信したパケットのソースアドレスが転送要求テーブル491に登録されている無線端末1604のアドレスである場合、転送先アドレスとして登録されているゲートウェイ装置902にそのパケットを転送する。 さらに転送要求テーブル491の各エントリに対しては、転送テーブルタイマー492にタイマーがセットされており(転送要求テーブル491のタイマーNo.の項に対応するタイマーの番号が記載されている)、一定時間が経過してタイマーが切れた場合にはそのタイマーの対象となる項目を削除する。
図26のゲートウェイ装置980に示したパケット転送を行う機能が図2のゲートウェイ装置903にない場合は基地局1407、1408に、またゲートウェイ装置901にパケット転送を行う機能がない場合はルータ1301にパケット転送を行う機能を搭載する構成でも良い。その場合にはゲートウェイ装置902は、前述した手順にて図27の様な転送要求のパケットを、それぞれ基地局1407、1408またはルータ1301宛てに送信する。
以上により、無線端末が通信中に異なるゲートウェイ装置が収容する基地局のサービスエリアに移動した場合でも、その基地局を収容するゲートウェイ装置あるいは基地局からパケットを転送してもらうことができるので、ゲートウェイ装置間のハンドオフがスムーズに行え、コネクションが切断されることがなくなる。