【手続補正書】
【提出日】平成21年4月7日(2009.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つ以上のサーバと１つ以上のクライアントの間の通信をネットワーク上で中継するネットワーク中継装置であって、接続されたネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向の場合、前記パケットのＡＣＫ番号を前記クライアントから受信したときの元のＡＣＫ番号より小さい値へ書き換えた後に前記サーバへ送信するネットワーク中継装置。
【請求項２】
前記中継を行うセッション毎に前記クライアントから受信したパケットのＡＣＫ番号を順に複数記憶し、前記受信したパケットが属するセッションに対応して記憶される複数のＡＣＫ番号の中でその時点でもっとも古く記憶されたＡＣＫ番号に、前記元のＡＣＫ番号を書き換える請求項１に記載のネットワーク中継装置。
【請求項３】
前記サーバと前記クライアントとの間で音声通信のセッションが行われる場合に、前記音声通信のセッション以外のＴＣＰによる通信のセッションにおいて、前記ＡＣＫ番号の書き換えを行う請求項１または２に記載のネットワーク中継装置。
【請求項４】
前記ネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向でかつ前記パケット内にＴＣＰデータが格納されていないデータ無しのＡＣＫの場合は、前記ＡＣＫ番号を小さい値へ書き換えた後に当該パケットを送信する処理と、当該パケットを送信しない処理とを交互に実行する請求項１に記載のネットワーク中継装置。
【請求項５】
前記中継を行うセッション毎に前記クライアントから受信したパケットのＡＣＫ番号を順に複数記憶し、前記ネットワーク上より受信したパケットが上り方向のＡＣＫであって、かつその直前に送信された上り方向のＡＣＫが２度続けて同じＡＣＫ番号の場合は、前記受信したパケットが属するセッションに対応して記憶される複数のＡＣＫ番号の中でその時点でもっとも古く記憶されたＡＣＫ番号に、前記元のＡＣＫ番号を書き換えて送信し、前記ネットワーク上より受信したパケットが上り方向のＡＣＫであってかつその直前に送信された２つの上り方向のＡＣＫが同じＡＣＫ番号でない場合は、その直前に前記ネットワーク上へ送信した上り方向のパケットと同じＡＣＫ番号に元のＡＣＫ番号を書き換えた後に送信する請求項１に記載のネットワーク中継装置。
【請求項６】
少なくとも１つ以上のサーバと、少なくとも１つ以上のクライアントと、前記サーバと前記クライアントの間の通信をネットワーク上で中継するネットワーク中継装置とを備え、前記ネットワーク中継装置は、ネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向の場合、前記パケットのＡＣＫ番号を前記クライアントから受信したときの元のＡＣＫ番号より小さい値へ書き換えた後に前記サーバへ送信するネットワーク通信システム。
【請求項７】
前記サーバと前記クライアントとの間で音声通信のセッションが行われる場合に、前記ネットワーク中継装置は、前記音声通信のセッション以外のＴＣＰによる通信のセッションにおいて、前記ＡＣＫ番号の書き換えを行う請求項６に記載のネットワーク通信システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正の内容】
【発明の名称】ネットワーク中継装置およびネットワーク通信システム
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
一般にＴＣＰによる通信は、サーバ、クライアントの組によって実現される。ここでクライアントとは接続要求を出すネットワーク端末を指し、サーバとは接続要求を受けるネットワーク端末を指す。クライアントからサーバへの接続要求の後、サーバ、クライアント間では互いにパケットを用いて、ＴＣＰデータの送受信を行う。データ送信を行うサーバもしくはクライアントは、ＴＣＰデータを伴うＴＣＰセグメントを対となるクライアントもしくはサーバに送信する。ＴＣＰデータ１０４に実データを伴うＴＣＰセグメント１０２には、ＴＣＰヘッダ１０３内のシーケンス番号フィールド１１０に、そのＴＣＰデータ１０４の先頭にある１バイトデータが送信すべきデータ全体の何バイト目であるかが記される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
図２０はＴＣＰの基本的なデータ送信についての説明図である。図２０のように、サーバ２０１側からＴＣＰセグメントＸ１、Ｘ３、Ｘ５をクライアント２０２に送信する度に、クライアント２０２からサーバ２０１に確認応答を含むＴＣＰセグメント（以下、ＡＣＫと称す）Ｘ２、Ｘ４、Ｘ６を送信している。クライアント２０２が送信するそれぞれのＡＣＫのＡＣＫ番号フィールドには、クライアント２０２が受信したＴＣＰセグメントが持つシーケンス番号に１を加えた値が格納され、サーバ２０１に送信される。例えばＸ２はＸ１に対する確認応答なので、Ｘ１のシーケンス番号に１を足した値が格納される。Ｘ２を受信したサーバ２０１は、Ｘ２のＡＣＫ番号フィールドの値が、先に送信したＸ1のシーケンス番号に１を足した値になっていることより、Ｘ1が正常にクライアント２０２に送信することができたということを確認でき、以降ＴＣＰセグメントＸ３を送信する。以上より、サーバ２０１はクライアント２０２からＡＣＫを受けとることによって、送信したＴＣＰデータが確実にクライアント２０２に届けられたことを確認できる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
Ｄ）「ＴＣＰの送信モード」。スロースタートモードだと、スループットは急激に上がり、輻輳回避モードだと緩やかにスループットは上がる。送信モードの切替えは、スロースタートモード時に輻輳が発生した場合と、スロースタートモード時にＣＷＮＤがスロースタートスレッシュホルドを超えた場合である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
本発明は上記目的を達成するために、少なくとも１つ以上のサーバと１つ以上のクライアントの間の通信をネットワーク上で中継するネットワーク中継装置であって、接続されたネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向の場合、前記パケットのＡＣＫ番号を前記クライアントから受信したときの元のＡＣＫ番号より小さい値へ書き換えた後に前記サーバへ送信するようにしたものである。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
本発明によれば、元の番号より小さな値へ書き換えられたＡＣＫ番号を有するＡＣＫパケットを受け取ったサーバは、自分がそれより前にクライアントに送ったパケットが全て届いているわけでないと判断し、クライアントへ送ったパケットの全てが届くことを示すＡＣＫ番号を有するＡＣＫパケットをクライアントから受け取るまでクライアントへの新たなパケット送信を行わなくなるので、下り方向のＴＣＰスループットがネットワークの許容範囲を超えず、その結果同時に流した音声通信パケットなどのパケットロスを低減することができる。またウインドウサイズを使わないので、ウインドウサイズを処理しない端末を用いた通信でスループットが下がらない等の問題を解決することができる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
本発明に係るネットワーク中継装置は、少なくとも１つ以上のサーバと１つ以上のクライアントの間の通信をネットワーク上で中継するネットワーク中継装置であって、接続されたネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向の場合、前記パケットのＡＣＫ番号を前記クライアントから受信したときの元のＡＣＫ番号より小さい値へ書き換えた後に前記サーバへ送信する構成を採る。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
また、本発明は、前記中継を行うセッション毎に前記クライアントから受信したパケットのＡＣＫ番号を順に複数記憶し、前記受信したパケットが属するセッションに対応して記憶される複数のＡＣＫ番号の中でその時点でもっとも古く記憶されたＡＣＫ番号に、前記元のＡＣＫ番号を書き換える構成を採る。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
また、本発明は、前記サーバと前記クライアントとの間で音声通信のセッションが行われる場合に、前記音声通信のセッション以外のＴＣＰによる通信のセッションにおいて、前記ＡＣＫ番号の書き換えを行う構成を採る。
これにより、音声や音声に加え動画情報も同時に送受信するパケットの通信が優先され、その他の種類のパケットの通信スループットが抑えられるので、デジタル音声または動画の通信品質が保たれ、良好なデジタル音声通話や動画配信が実現される。
また、本発明は、前記ネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向でかつ前記パケット内にＴＣＰデータが格納されていないデータ無しのＡＣＫの場合は、前記ＡＣＫ番号を小さい値へ書き換えた後に当該パケットを送信する処理と、当該パケットを送信しない処理とを交互に実行する構成を採る。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
また、本発明は、前記中継を行うセッション毎に前記クライアントから受信したパケットのＡＣＫ番号を順に複数記憶し、前記ネットワーク上より受信したパケットが上り方向のＡＣＫであって、かつその直前に送信された上り方向のＡＣＫが２度続けて同じＡＣＫ番号の場合は、前記受信したパケットが属するセッションに対応して記憶される複数のＡＣＫ番号の中でその時点でもっとも古く記憶されたＡＣＫ番号に、前記元のＡＣＫ番号を書き換えて送信し、前記ネットワーク上より受信したパケットが上り方向のＡＣＫであってかつその直前に送信された２つの上り方向のＡＣＫが同じＡＣＫ番号でない場合は、その直前に前記ネットワーク上へ送信した上り方向のパケットと同じＡＣＫ番号に元のＡＣＫ番号を書き換えた後に送信する構成を採る。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】削除
【補正の内容】
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】削除
【補正の内容】
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】削除
【補正の内容】
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
また、本発明に係るネットワーク通信システムは、少なくとも１つ以上のサーバと、少なくとも１つ以上のクライアントと、前記サーバと前記クライアントの間の通信をネットワーク上で中継するネットワーク中継装置とを備え、前記ネットワーク中継装置は、ネットワーク上より受信したパケットが前記クライアントから前記サーバへの上り方向の場合、前記パケットのＡＣＫ番号を前記クライアントから受信したときの元のＡＣＫ番号より小さい値へ書き換えた後に前記サーバへ送信する構成を採る。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
これにより、元の番号より小さな値へ書き換えられたＡＣＫ番号を有するＡＣＫパケットを受け取ったサーバは、自分がそれより前にクライアントに送ったパケットが全て届いているわけでないと判断し、クライアントへ送ったパケットの全てが届くことを示すＡＣＫ番号を有するＡＣＫパケットをクライアントから受け取るまでクライアントへの新たなパケット送信を行わなくなるので、下り方向のＴＣＰスループットがネットワークの許容範囲を超えず、その結果同時に流した音声通信パケットなどのパケットロスを低減することができる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
また、本発明は、前記サーバと前記クライアントとの間で音声通信のセッションが行われる場合に、前記ネットワーク中継装置は、前記音声通信のセッション以外のＴＣＰによる通信のセッションにおいて、前記ＡＣＫ番号の書き換えを行う構成を採る。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
これにより、音声や音声に加え動画情報も同時に送受信するパケットの通信が優先され、その他の種類のパケットの通信スループットが抑えられるので、デジタル音声または動画の通信品質が保たれ、良好なデジタル音声通話や動画配信が実現される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
ＴＣＰシェ−パー本体Ａ１２は、パケット転送部Ａ２においてＴＣＰパケット（ＴＣＰセグメントを持つパケット）を、経路Ｂ１を介してインターセプトし、インターセプトしたＴＣＰパケットのＡＣＫ番号の変更を行った後、もしくはシーケンス番号を取得した後に経路Ｂ２を介して再度パケット転送部Ａ２に戻す。ＴＣＰパケット以外のパケットについては、ＴＣＰシェ−パー本体Ａ１２はインターセプトしない。従って、ＴＣＰパケット以外のパケットについてはパケット転送部Ａ２がパケット入力部Ａ１から受け取った後、そのままパケット出力部へ転送する。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図３に示すように、本実施の形態１におけるＴＣＰシェーパー本体Ａ１２はパケット傍受部Ａ３、ＡＣＫ番号変更部Ａ４、シーケンス番号取得部Ａ５、セッション管理部Ａ６、セッション情報保持手段Ａ７、パケット数保持手段Ａ８の各モジュールで構成されている。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
セッションのモード情報（例えば図４のセッション１におけるＣ３）には、該当するセッションのモードの状態、つまりスロースタートモードであるか、輻輳回避モードであるかの情報が格納される。本実施の形態１においてはスロースタートモードを１、輻輳回避モードを０とする。いずれのモードにおいても、後述するある一定のルールに基づいて抽出された上り方向ＡＣＫはそのＡＣＫ番号（例えば図１９における１１１）が書き換えられた後にＷＡＮ側サーバ３０２へと転送されるが、それ以外の上り方向ＡＣＫはＷＡＮ側サーバ３０２へは転送されない。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
パケットＫ４０に対しても前述のパケットＫ３０の場合と同様な処理が行われる。すなわち、パケットＫ４０がＴＣＰデータを含み、そのセッションリストがセッション１のセッションリストＣ４であると特定されるので（図９のｆ３１〜ｆ３３）、シーケンスＴＣＰシェーパー中継装置４０３のシーケンス番号取得部Ａ５は、パケットＫ４０のシーケンス番号１３００１とＴＣＰデータ長１０００とを加算した値１４００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｌ４におけるＳ２に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１３００１とを比較する（図９のｆ３４）。シーケンス番号とＴＣＰデータ長とを加算した値１４００１のほうが大きいので、シーケンス番号取得部Ａ５はＫ４０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ａ５はシーケンス番号とＴＣＰデータ長とを加算した値１４００１をセッション情報保持手段Ａ７のセッションリストＣ４のＳ３に格納する。その後、シーケンス番号取得部Ａ５はパケットＫ４０をパケットＭ４としてパケット傍受部Ａ３へ渡す（図９のｆ３８）。パケットＭ４はパケット転送部Ａ２・パケット出力部Ａ９へと順次渡されて、ＴＣＰシェーパー中継装置４０３よりクライアント４０２へと転送される。このとき、セッションリストＣ４は図１１に示すように状態Ｌ４から状態Ｌ５へと遷移する。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
すなわちまずパケットＫ６０は前述のパケットＫ１０等の場合と同様にして、ＴＣＰデータを含むパケットであると判定され（図９のｆ３１）、そのセッションリストがセッション１のセッションリストＣ４であると特定される（図９のｆ３２〜ｆ３３）。その後、ＴＣＰシェーパー中継装置４０３のシーケンス番号取得部Ａ５は、パケットＫ６０のシーケンス番号１４００１とＴＣＰデータ長１０００とを加算した値１５００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｌ６におけるＳ２に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１４００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１５００１のほうが大きいので、シーケンス番号取得部Ａ５はパケットＫ６０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ａ５はシーケンス番号とＴＣＰデータ長とを加算した値１５００１をセッション情報保持手段Ａ７のセッションリストＣ４のＳ３に格納する。その後、シーケンス番号取得部Ａ５はパケットＫ６０をパケットＭ６としてパケット傍受部Ａ３へ渡す（図９のｆ３８）。パケットＭ６はパケット転送部Ａ２・パケット出力部Ａ９へと順次渡されて、ＴＣＰシェーパー中継装置４０３よりクライアント４０２へと転送される。このとき、セッションリストＣ４は図１１に示すように状態Ｌ６から状態Ｌ７へと遷移する。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
パケットＫ７０に対しても前述のパケットＫ６０の場合と同様な処理が行われる。すなわち、パケットＫ７０がＴＣＰデータを含み、そのセッションリストがセッション１のセッションリストＣ４であると特定されるので（図９のｆ３１〜ｆ３３）、ＴＣＰシェーパー中継装置４０３のシーケンス番号取得部Ａ５は、パケットＫ７０のシーケンス番号１５００１とＴＣＰデータ長１０００とを加算した値１６００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｌ７におけるＳ３に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１５００１とを比較する（図９のｆ３４）。シーケンス番号とＴＣＰデータ長とを加算した値１６００１のほうが大きいので、シーケンス番号取得部Ａ５はＫ７０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ａ５はシーケンス番号とＴＣＰデータ長とを加算した値１６００１をセッション情報保持手段Ａ７のセッションリストＣ４のＳ４に格納する。その後、シーケンス番号取得部Ａ５はパケットＫ７０をパケットＭ７としてパケット傍受部Ａ３へ渡す（図９のｆ３８）。パケットＭ７はパケット転送部Ａ２・パケット出力部Ａ９へと順次渡されて、ＴＣＰシェーパー中継装置４０３よりクライアント４０２へと転送される。このとき、セッションリストＣ４は図１１に示すように状態Ｌ７から状態Ｌ８へと遷移する。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】０１２８
【補正方法】変更
【補正の内容】
【０１２８】
図１０においてパケットＫ９０はシーケンス番号＝１２００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０３のシーケンス番号取得部Ａ５は図９の処理フローｆ３２において取得したパケットＫ９０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１２００１  ＋  １０００  ＝  １３００１と加算する。次にＴＣＰシェーパー中継装置４０３のシーケンス番号取得部Ａ５は、このシーケンス番号とＴＣＰデータ長とを加算した値１３００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｌ９におけるＳ３に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１６００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１３００１のほうが小さいので、シーケンス番号取得部Ａ５はパケットＫ９０が再送ＴＣＰパケットであると判断し、再送パケット用の処理を行う（図９のｆ３６〜ｆ３７）。この場合シーケンス番号取得部Ａ５は、セッション情報保持手段Ａ７におけるセッション１のモード情報Ｃ３を、輻輳回避モードであることを示す値０に更新する（図９のｆ３６、しかしもともと輻輳回避モードであるためモード情報Ｃ３の値は変化しない）。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
サーバ４０１は輻輳状態の間、ＴＣＰデータを含むパケットをクライアント４０２へ再送のみ行い、新たなＴＣＰデータをクライアント４０２に送信しないため、輻輳状態が長く続くと転送効率が悪くなる。そこでサーバ４０１を輻輳状態からなるべく早く復帰させるために、ＴＣＰシェーパー中継装置４０３は例えばサーバ４０１へのＡＣＫを生成し、送信する。
【手続補正３０】
【補正対象書類名】明細書
【補正対象項目名】０１３７
【補正方法】変更
【補正の内容】
【０１３７】
図１２においてパケットＰ１０はシーケンス番号＝１１００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０６のシーケンス番号取得部Ａ５は図９の処理フローｆ３２において取得したパケットＰ１０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１１００１  ＋  １０００  ＝  １２００１と加算する。次にＴＣＰシェーパー中継装置４０６のシーケンス番号取得部Ａ５は、このシーケンス番号とＴＣＰデータ長とを加算した値１２００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｑ１におけるＳ１に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１１００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１２００１のほうが大きいので、シーケンス番号取得部Ａ５はパケットＰ１０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値をセッション情報保持手段Ａ７のセッションリストＣ４に追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ａ５はシーケンス番号とＴＣＰデータ長とを加算した値１２００１をセッション情報保持手段Ａ７のセッションリストＣ４のＳ２に格納する。その後、シーケンス番号取得部Ａ５はパケットＰ１０をパケットＲ１としてパケット傍受部Ａ３へ渡す（図９のｆ３８）。パケットＲ１はパケット転送部Ａ２・パケット出力部Ａ９へと順次渡されて、ＴＣＰシェーパー中継装置４０６よりクライアント４０５へと転送される（図９のｆ３８）。このとき、セッションリストＣ４は図１３に示すように状態Ｑ１から状態Ｑ２へと遷移する。
【手続補正３１】
【補正対象書類名】明細書
【補正対象項目名】０１４４
【補正方法】変更
【補正の内容】
【０１４４】
図１２においてパケットＰ３０はシーケンス番号＝１２００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０６のシーケンス番号取得部Ａ５は図９の処理フローｆ３２において取得したパケットＰ３０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１２００１  ＋  １０００  ＝  １３００１と加算する。次にＴＣＰシェーパー中継装置４０６のシーケンス番号取得部Ａ５は、このシーケンス番号とＴＣＰデータ長とを加算した値１３００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｑ３におけるＳ１に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１２００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１３００１のほうが大きいので、シーケンス番号取得部Ａ５はパケットＰ３０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ａ５はシーケンス番号とＴＣＰデータ長とを加算した値１３００１をセッション情報保持手段Ａ７のセッションリストＣ４のＳ２に格納する。その後、シーケンス番号取得部Ａ５はパケットＰ３０をパケットＲ３としてパケット傍受部Ａ３へ渡す（図９のｆ３８）。パケットＲ３はパケット転送部Ａ２・パケット出力部Ａ９へと順次渡されて、ＴＣＰシェーパー中継装置４０６よりクライアント４０５へと転送される。このとき、セッションリストＣ４は図１３に示すように状態Ｑ３から状態Ｑ４へと遷移する。
【手続補正３２】
【補正対象書類名】明細書
【補正対象項目名】０１５８
【補正方法】変更
【補正の内容】
【０１５８】
パケットＲ７・Ｒ８を受信したクライアント４０５は、このようにパケットＲ７・Ｒ８を短い間隔で受信した場合には、パケットＲ７・Ｒ８に対するＡＣＫとして、ＡＣＫ番号１６００１を持ち、かつＴＣＰデータを含まないパケットＲ９をサーバ４０４に送信するものとする。その途中でサーバ４０４とクライアント４０５間の通信経路途中にあるＴＣＰシェーパー中継装置４０６が一旦そのパケットＲ９を受信する。パケットＲ９は上り方向なので、ＡＣＫ番号変更部Ａ４は前述のＡＣＫパケットＲ２等の場合と同様に、再び図８に示すｆ４０１からのフローに従ってクライアント４０５から受け取ったＡＣＫ番号よりも小さな値のＡＣＫ番号へ書き換えてからサーバ４０４へ渡すかあるいはサーバ４０４に対するＡＣＫパケットをドロップすることによりサーバ４０４からクライアント４０５へのデータ送信の帯域を抑えるための処理を行う。すなわちパケットＲ９はパケットＲ２等の時と同様にして、ＴＣＰデータを含まないパケットであると判定され（図８のｆ４０１）、そのセッションリストがセッション１のセッションリストＣ４であると特定される（図８のｆ４０２）。
【手続補正３３】
【補正対象書類名】明細書
【補正対象項目名】０１７１
【補正方法】変更
【補正の内容】
【０１７１】
図１２においてパケットＰ１２０はシーケンス番号＝１２００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０６のシーケンス番号取得部Ａ５は図９の処理フローｆ３２において取得したパケットＰ１２０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１２００１  ＋  １０００  ＝  １３００１と加算する。次にＴＣＰシェーパー中継装置４０６のシーケンス番号取得部Ａ５は、このシーケンス番号とＴＣＰデータ長とを加算した値１３００１と、セッション情報保持手段Ａ７のセッションリストＣ４の状態Ｑ１２におけるＳ４に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１７００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１３００１のほうが小さいので、シーケンス番号取得部Ａ５はパケットＰ１２０が再送ＴＣＰパケットであると判断し、再送パケット用の処理を行う（図９のｆ３６〜ｆ３７）。この場合シーケンス番号取得部Ａ５は、セッション情報保持手段Ａ７におけるセッション１のモード情報Ｃ３を、輻輳回避モードであることを示す値０に更新する（図９のｆ３６）。
【手続補正３４】
【補正対象書類名】明細書
【補正対象項目名】０１８３
【補正方法】変更
【補正の内容】
【０１８３】
またＴＣＰシェーパー本体Ｔ１２内のパケット傍受部Ｔ３・ＡＣＫ番号変更部Ｔ４・シーケンス番号取得部Ｔ５・セッション情報保持手段Ｔ７は、実施の形態１におけるパケット傍受部Ａ３・ＡＣＫ番号変更部Ａ４・シーケンス番号取得部Ａ５・セッション情報保持手段Ａ７と同じ動作をする。
【手続補正３５】
【補正対象書類名】明細書
【補正対象項目名】０１９０
【補正方法】変更
【補正の内容】
【０１９０】
パケット転送部Ｔ２の処理フローは、実施の形態１のパケット転送部Ａ２のフローを表す図６において、パケット入力部Ａ１の代わりにパケット入力部Ｔ１、パケット傍受部Ａ３の代わりにパケット傍受部Ｔ３、パケット転送部Ａ２の代わりにパケット転送部Ｔ２としたものである。以下では図６を、パケット入力部Ａ１をパケット入力部Ｔ１、パケット傍受部Ａ３をパケット傍受部Ｔ３、パケット転送部Ａ２をパケット転送部Ｔ２としたものとして扱う。
【手続補正３６】
【補正対象書類名】明細書
【補正対象項目名】０１９９
【補正方法】変更
【補正の内容】
【０１９９】
以上の構成および処理フローを有する拡張版ＴＣＰシェーパーの動作例を説明する。輻輳回避モード時の拡張版ＴＣＰシェーパーの動作は、実施の形態１で示した基本型ＴＣＰシェーパーと同じである。
【手続補正３７】
【補正対象書類名】明細書
【補正対象項目名】０２０５
【補正方法】変更
【補正の内容】
【０２０５】
図１７においてパケットｖ１０はシーケンス番号＝１１００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は図９の処理フローｆ３２において取得したパケットｖ１０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１１００１  ＋  １０００  ＝  １２００１と加算する。
【手続補正３８】
【補正対象書類名】明細書
【補正対象項目名】０２１２
【補正方法】変更
【補正の内容】
【０２１２】
ｆ１００６においてＡＣＫ番号変更部Ｔ４はクライアント４０８から受け取ったＡＣＫ番号よりも小さな値のＡＣＫ番号へ書き換えてからサーバ４０７へ渡す処理を実行する。つまり、ＴＣＰシェーパー中継装置４０９のＡＣＫ番号変更部Ｔ４はセッション情報保持手段Ｔ７のセッションリストＣ４に格納されている最も登録時刻の古いＡＣＫ番号、すなわちこの場合の状態ｚ２におけるＳ０に格納された値１０００１を取得し（図１６のｆ１００６）。その結果、セッションリストＣ４のＳ０の値１０００１が削除され、Ｓ１に格納された値がＳ０に移り、Ｓ２に格納された値がＳ１に移る）、その値１０００１をパケットｅ２のＡＣＫ番号に上書きし（図１６のｆ１００７）、先のｆ１００６で取得したＡＣＫ番号をＡＣＫ番号キャッシュＹ１書きこむ（図１６のｆ１００８。その結果、ＡＣＫ番号キャッシュＹ１は空でなくなる）。パケットｅ２のＡＣＫ番号が書き換えられたパケットｖ２０はパケット傍受部Ｔ３へと渡され（図１６のｆ１０１２）、そしてパケット転送部Ｔ２・パケット出力部Ｔ９へと順次渡されて、ＴＣＰシェーパー中継装置４０９よりサーバ４０７に転送される。このとき、セッションリストＣ４は図１８に示すように状態ｚ２から状態ｚ３へと遷移する。
【手続補正３９】
【補正対象書類名】明細書
【補正対象項目名】０２１５
【補正方法】変更
【補正の内容】
【０２１５】
図１７においてパケットｖ３０はシーケンス番号＝１２００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は図９の処理フローｆ３２において取得したパケットｖ３０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１２００１  ＋  １０００  ＝  １３００１と加算する。次にＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は、このシーケンス番号とＴＣＰデータ長とを加算した値１３００１と、セッション情報保持手段Ｔ７のセッションリストＣ４の状態ｚ３におけるＳ１に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１２００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１３００１のほうが大きいので、シーケンス番号取得部Ｔ５はパケットｖ３０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ｔ５はシーケンス番号とＴＣＰデータ長とを加算した値１３００１をセッション情報保持手段Ｔ７のセッションリストＣ４のＳ２に格納する。その後、シーケンス番号取得部Ｔ５はパケットｖ３０をパケットｅ３としてパケット傍受部Ｔ３へ渡す（図９のｆ３８）。パケットｅ３はパケット転送部Ｔ２・パケット出力部Ｔ９へと順次渡されて、ＴＣＰシェーパー中継装置４０９よりクライアント４０８へと転送される。このとき、セッションリストＣ４は図１８に示すように状態ｚ３から状態ｚ４へと遷移する。
【手続補正４０】
【補正対象書類名】明細書
【補正対象項目名】０２２７
【補正方法】変更
【補正の内容】
【０２２７】
すなわちまずパケットｖ７０は前述のパケットｖ１０等の場合と同様にして、ＴＣＰデータを含むパケットであると判定され（図９のｆ３１）、そのセッションリストがセッション１のセッションリストＣ４であると特定される（図９のｆ３２〜ｆ３３）。次にＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は、パケットｖ７０のシーケンス番号１４００１とＴＣＰデータ長１０００とを加算した値１５００１と、セッション情報保持手段Ｔ７のセッションリストＣ４の状態ｚ７におけるＳ２に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１４００１とを比較する（図９のｆ３４）。シーケンス番号とＴＣＰデータ長とを加算した値１５００１のほうが大きいので、シーケンス番号取得部Ｔ５はパケットｖ７０が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ｔ５はシーケンス番号とＴＣＰデータ長とを加算した値１５００１をセッション情報保持手段Ｔ７のセッションリストＣ４のＳ３に格納する。その後、シーケンス番号取得部Ｔ５はパケットｖ７０をパケットｅ７としてパケット傍受部Ｔ３へ渡す（図９のｆ３８）。パケットｅ７はパケット転送部Ｔ２・パケット出力部Ｔ９へと順次渡されて、ＴＣＰシェーパー中継装置４０９よりクライアント４０８へと転送される。このとき、セッションリストＣ４は図１８に示すように状態ｚ７から状態ｚ８へと遷移する。
【手続補正４１】
【補正対象書類名】明細書
【補正対象項目名】０２２８
【補正方法】変更
【補正の内容】
【０２２８】
パケットｖ８０についても前述のパケットｖ７０の場合と同様な処理が行われる。すなわち、パケットｖ８０がＴＣＰデータを含み、そのセッションリストがセッション１のセッションリストＣ４であると特定されるので（図９のｆ３１〜ｆ３３）、ＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は、パケットｖ８０のシーケンス番号１５００１とＴＣＰデータ長１０００とを加算した値１６００１と、セッション情報保持手段Ｔ７のセッションリストＣ４の状態ｚ８におけるＳ３に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１５００１とを比較する（図９のｆ３４）。シーケンス番号とＴＣＰデータ長とを加算した値１６００１のほうが大きいので、シーケンス番号取得部Ｔ５はパケットｖ８０が再送ＴＣＰパケットではないと判断し、パケットｖ８０のシーケンス番号１５００１とＴＣＰデータ長１０００とを加算した値１６００１をセッション情報保持手段Ｔ７のセッションリストＣ４のＳ４に格納する（図９のｆ３５）。その後、シーケンス番号取得部Ｔ５はパケットｖ８０をパケットｅ８としてパケット傍受部Ｔ３へ渡す（図９のｆ３８）。パケットｅ８はパケット転送部Ｔ２・パケット出力部Ｔ９へと順次渡されて、ＴＣＰシェーパー中継装置４０９よりクライアント４０８へと転送される。このとき、セッションリストＣ４は図１８に示すように状態ｚ８から状態ｚ９へと遷移する。
【手続補正４２】
【補正対象書類名】明細書
【補正対象項目名】０２３２
【補正方法】変更
【補正の内容】
【０２３２】
ｆ１００９においてＡＣＫ番号変更部Ｔ４はクライアント４０８から受け取ったＡＣＫ
番号よりも小さな値のＡＣＫ番号へ書き換えてからサーバ４０７へ渡す処理を実行する。つまり、ＴＣＰシェーパー中継装置４０９のＡＣＫ番号変更部Ｔ４はＡＣＫ番号データベースＴ８のＡＣＫ番号キャッシュＹ１に格納されている値１１００１を取得し（図１６のｆ１００９）、その値１１００１をパケットｅ９のＡＣＫ番号に上書きし（図１６のｆ１０１０）、  ＡＣＫ番号キャッシュＹ１に格納されている値１１００１を削除する（図１６のｆ１０１１。その結果、ＡＣＫ番号キャッシュＹ１は空になる。）。パケットｅ９のＡＣＫ番号が書き換えられたパケットｖ９０はパケット傍受部Ｔ３へと渡され（図１６のｆ１０１２）、そしてパケット転送部Ｔ２・パケット出力部Ｔ９へと順次渡されて、ＴＣＰシェーパー中継装置４０９よりサーバ４０７に転送へと転送される。このとき、セッションリストＣ４は図１８に示すように状態ｚ９から状態ｚ１０へと遷移する。
【手続補正４３】
【補正対象書類名】明細書
【補正対象項目名】０２３４
【補正方法】変更
【補正の内容】
【０２３４】
すなわちまずパケットｖ１００は前述のパケットｖ１０等の場合と同様にして、ＴＣＰデータを含むパケットであると判定され（図９のｆ３１）、そのセッションリストがセッション１のセッションリストＣ４であると特定される（図９のｆ３２〜ｆ３３）。次にＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は、パケットｖ１００のシーケンス番号１６００１とＴＣＰデータ長１０００とを加算した値１７００１と、セッション情報保持手段Ｔ７のセッションリストＣ４の状態ｚ１０におけるＳ４に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１６００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１７００１のほうが大きいので、シーケンス番号取得部Ｔ５はパケットｖ１００が再送ＴＣＰパケットではないと判断し、シーケンス番号とＴＣＰデータ長とを加算した値を追加登録する（図９のｆ３５）。この場合シーケンス番号取得部Ｔ５はシーケンス番号とＴＣＰデータ長とを加算した値１７００１をセッション情報保持手段Ｔ７のセッションリストＣ４のＳ５に格納する。その後、シーケンス番号取得部Ｔ５はパケットｖ１００をパケットｅ１０としてパケット傍受部Ｔ３へ渡す（図９のｆ３８）。パケットｅ１０はパケット転送部Ｔ２・パケット出力部Ｔ９へと順次渡されて、ＴＣＰシェーパー中継装置４０９よりクライアント４０８へと転送される。このとき、セッションリストＣ４は図１８に示すように状態ｚ１０から状態ｚ１１へと遷移する。
【手続補正４４】
【補正対象書類名】明細書
【補正対象項目名】０２４３
【補正方法】変更
【補正の内容】
【０２４３】
図１７においてパケットｖ１２０はシーケンス番号＝１２００１、ＴＣＰデータ長＝１０００バイトであるので、ＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は図９の処理フローｆ３２において取得したパケットｖ１２０のシーケンス番号とＴＣＰデータ長を加算する。すなわち、１２００１  ＋  １０００  ＝  １３００１と加算する。次にＴＣＰシェーパー中継装置４０９のシーケンス番号取得部Ｔ５は、このシーケンス番号とＴＣＰデータ長とを加算した値１３００１と、セッション情報保持手段Ｔ７のセッションリストＣ４の状態ｚ１２におけるＳ４に格納された、この時点で最も登録された時刻が新しいＡＣＫ番号の値１７００１とを比較する。シーケンス番号とＴＣＰデータ長とを加算した値１３００１のほうが小さいので、シーケンス番号取得部Ｔ５はパケットｖ１２０が再送ＴＣＰパケットであると判断し、再送パケット用の処理を行う（図９のｆ３６〜ｆ３７）。この場合シーケンス番号取得部Ｔ５は、セッション情報保持手段Ｔ７におけるセッション１のモード情報Ｃ３を、輻輳回避モードであることを示す値０に更新する（図９のｆ３６）。
【手続補正４５】
【補正対象書類名】明細書
【補正対象項目名】０２６４
【補正方法】変更
【補正の内容】
【０２６４】
３０１    ＬＡＮ側クライアント
３０２    ＷＡＮ側サーバ
３０３    ＴＣＰシェーパーを搭載した中継装置
Ｄ１    クライアント
Ｄ２    アクセスルータ（ＩＰ電話機能含）
Ｄ３    伝送路
Ｄ４    アクセスルータとＩＰ電話間の通信
Ｄ５    クライアント・サーバ間の通信
Ｄ６    上位の中継装置
Ｄ７    サーバ
Ｄ８    ＩＰ電話
Ｄ９    伝送路
Ｄ１０    伝送路
Ａ１    パケット入力部
Ａ２    パケット転送部
Ａ３    パケット傍受部
Ａ４    ＡＣＫ番号変更部
Ａ５    シーケンス番号取得部
Ａ６    セッション管理部
Ａ７    セッション情報保持手段
Ａ８    パケット数保持手段
Ａ９    パケット出力部
Ａ１１    ＴＣＰシェーパーの機能を持つ中継装置
Ａ１２    ＴＣＰシェーパー本体
４０１、４０４    サーバ
４０２、４０５    クライアント
４０３、４０６    ＴＣＰシェーパーを搭載した中継装置
Ｔ１    パケット入力部
Ｔ２    パケット転送部
Ｔ３    パケット傍受部
Ｔ４    ＡＣＫ番号変更部
Ｔ５    シーケンス番号取得部
Ｔ６    セッション管理部
Ｔ７    セッション情報保持手段
Ｔ８    ＡＣＫ番号データベース
Ｔ９    パケット出力部
Ｔ１１    ＴＣＰシェーパーの機能を持つ中継装置
Ｔ１２    ＴＣＰシェーパー本体
４０７    サーバ
４０８    クライアント
４０９    ＴＣＰシェーパーを搭載した中継装置
１０１    パケット全体
１０２    パケットデータ
１０３    ＴＣＰヘッダ
１０４    ＴＣＰデータ
１１０    シーケンス番号
１１１    ＡＣＫ番号
１１２    ウインドウサイズ
１１４    発信元ポート番号
１１５    宛先ポート番号
２０１、２０３、２０５、２０７、２０９、２１１、２１３、２１５    サーバ
２０２、２０４、２０６、２０８、２１０、２１２、２１４、２１６    クライアント
５００    ＩＰヘッダ
５０１    プロトコル番号
５０２    送信元ＩＰアドレス
５０３    宛先ＩＰアドレス