(57)【要約】【課題】  通信装置間の通信帯域を，ネットワーク上の中継装置で制御する際，誤り率が高いネットワークにおいて，トランスポートレイヤーの通信速度が，制御した帯域よりも著しく低下することを防ぐ。【解決手段】  中継装置が，通信装置から受信したデータに含まれるＳＩＤとデータサイズに基づいて，同通信において次に受信を期待するＳＩＤを予測し，予測したＳＩＤと，次に受信したデータが含むＳＩＤとを比較し，予測したＳＩＤ未満なら該データに対して制御帯域を解除する。また，予測したＳＩＤを超えるデータを一定数以上連続して受信すれば，それらのデータに対しても制御帯域を解除する。【選択図】  図１
2011199691.tif 000002
【特許請求の範囲】
【請求項１】
送信側装置と受信側装置とを接続するネットワーク上に設けられた中継装置であって，
前記送信側装置と前記受信側装置との間の通信コネクションにおけるデータの順序情報であるＳＩＤについて，前記送信側装置が，予め定めた数以上連続して受信した確認応答に同じＳＩＤが含まれていれば，当該ＳＩＤ以降のセグメントを再送する場合，
前記中継装置は，
前記送信側装置から，前記受信側装置をあて先とするデータを受信する受信部と，
前記受信側装置を宛先として前記データを送信する送信部と，
受信した前記受信データに含まれるＳＩＤとデータサイズとを抽出するＳＩＤ判定部と，
前記送信側装置と前記受信側装置との間の通信コネクションにおける，前記受信側装置への前記受信データの送信が，ネットワークレイヤーにて予め定めた帯域以下で行われるように，前記送信部を制御する帯域制御部と，を備え，
前記帯域制御部は，一つの前記通信コネクションにおいて，
前記ＳＩＤ判定部が抽出した前記ＳＩＤと前記データサイズとに基づいて，次に受信すると予測するデータの前記ＳＩＤを予測ＳＩＤとして算出し，
算出した前記予測ＳＩＤと次に受信した受信データのＳＩＤを比較し，等しくなければ，当該データを前記帯域制御の非対象，または，非対象の候補とする
ことを特徴とする中継装置。
【請求項２】
請求項１に記載の中継装置において，さらに，
前記帯域制御部は，
前記ＳＩＤ判定部による比較の結果，
前記受信データのＳＩＤが，前記予測ＳＩＤより小さい場合，前記受信データを前記帯域制御の非対象とし，
前記受信データの順序番号が，前記予測ＳＩＤを超える場合，前記受信データを帯域制御の非対象の候補とする
ことを特徴とする中継装置。
【請求項３】
請求項２に記載の中継装置において，
前記帯域制御部は，
前記受信データのＳＩＤが，前記予測ＳＩＤを連続して超えた超過数を記憶し，該超過数が予め定めた値以上となった場合に，前記帯域制御の非対象の候補とした前記受信データを，前記帯域制御の非対象とする
ことを特徴とする中継装置。
【請求項４】
前記請求項２に記載の中継装置において，
前記受信データに対する確認応答を，前記受信データと，前記予測ＳＩＤとに基づいて生成する応答生成部を備え，
前記応答生成部は，連続して非対象の候補とした前記受信データ数が予め定めた値以上になった場合，前記受信データに対する前記確認応答を生成し，
前記送信部は，
前記帯域制御の非対象の候補とした前記受信データを破棄し，
前記応答生成部が生成した前記確認応答を，該送信側装置宛に送信する
ことを特徴とする中継装置。
【請求項５】
送信側装置と受信側装置とを接続するネットワーク上に設けられた中継装置であって，
前記送信側装置が，前記受信側装置との間の通信コネクションにおけるデータの順序情報であるＳＩＤについて，前記送信側装置が，予め定めた数以上連続して受信した確認応答に同じＳＩＤが含まれていれば，当該ＳＩＤのセグメントを再送する場合，
前記中継装置は，
前記送信側装置から，前記受信側装置をあて先とするデータを受信する受信部と，
前記受信側装置を宛先として前記データを送信する送信部と，
受信した前記受信データに含まれるＳＩＤとデータサイズとを抽出するＳＩＤ判定部と，
前記送信側装置と前記受信側装置との間の通信コネクションにおける，前記受信側装置への前記受信データの送信が，ネットワークレイヤーにて予め定めた帯域以下で行われるように，前記送信部を制御する帯域制御部と，
前記送信側装置からの通信コネクション毎に，前記受信データの受信済区間を算出し記憶するＳＩＤ区間記憶部と，を備え，
前記帯域制御部は，
前記受信済みＳＩＤの区間と，前記受信データのＳＩＤとを比較し，
前記比較結果に基づき，当該受信データを前記帯域制御の対象とするか否かを決定する
ことを特徴とする中継装置。
【請求項６】
請求項５に記載の中継装置において，
前記帯域制御部は，
前記ＳＩＤが前記受信済みＳＩＤ区間に含まれる場合は，当該受信データを帯域制御の非対象とし，
前記ＳＩＤが前記受信済みＳＩＤ区間に含まれず，かつ，前記受信済みＳＩＤ区間の最大値以下の場合は，前記帯域制御部は当該受信データを同コネクションの他のデータよりも優先して送信すべき，かつ，前記帯域制御の対象とする
ことを特徴とする中継装置。
【請求項７】
請求項１ないし６のいずれか一に記載の中継装置において，
帯域制御の非対象とされたデータに対して，データ送信者毎に新たな制御帯域を記憶し，
前記の帯域制御の非対象とされたデータ対して，前記の新たな制御帯域内にて送信する
ことを特徴とする中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）等，サーバと端末間で通信するネットワークシステムにおいて，サーバ装置，または端末とサーバ装置との間の通信路上に設置される中継装置が備える帯域制御技術に関する。
【背景技術】
【０００２】
ネットワークを利用予定帯域ごとに契約し，契約帯域内では，一定料金で利用可能，という契約方法がある。
【０００３】
このような契約では，ネットワーク提供者にとっては，契約帯域を超えないように通信が制御され，また，ユーザにとっては，契約帯域内では，契約上限の帯域で通信できることが望ましい。
【０００４】
帯域制御装置の例として，特許文献１では中継装置がデータの送信タイミングをトークンバケットアルゴリズム，またはリーキーバケットアルゴリズムにより決定し，それぞれ最低保証帯域の保証と，最大許容帯域以下への制限を実現する方法を提案している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００６／０２６８７１９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＴＣＰ／ＩＰなどのプロトコルでは，端末が送信したセグメント（トランスポートレイヤーにおけるデータの固まりの呼称）がネットワーク上で紛失した場合，端末はセグメントの紛失を検知して該セグメントを再送する。
【０００７】
一般的に帯域制御は，前述の特許文献１のように，一定期間に中継するデータ量を規定値以下に抑えることで，ネットワークレイヤーでの通信帯域を制限するので，帯域制御装置はセグメントが再送されたものかどうかに関わらずデータの送出を制限帯域以下に抑える。
【０００８】
そのため，セグメントの紛失による再送が頻発する，品質の良くないネットワークでは，トランスポートレイヤーにおける通信帯域は，規定（契約）帯域よりも低下する。
【０００９】
また，受信側装置は，順番通りでないセグメントを受信すると重複確認応答を応答し，送信側装置はこの重複確認応答を一定数以上受信するとセグメントを紛失したと判定する（高速再転送と呼称）。しかし，帯域制御装置が通信帯域を制限すると，順序どおりでないセグメントを受信側装置が受信するのも遅れる。その結果，送信側装置が重複確認応答を遅れて受信するため，セグメント紛失の検知も遅くなり，トランスポートレイヤーの通信帯域はさらに低下する。
【００１０】
このため，ユーザにとって，契約の上限の帯域での通信ができなくなる可能性がある。
【課題を解決するための手段】
【００１１】
ＴＣＰでは，送信側装置は，セグメントにその順序を表す情報を含めて送信し，受信側装置は，次に送信側装置からの受信を期待するセグメントの順序情報を含む確認応答を送信する。
【００１２】
以下に開示される帯域制御機能の一例では，送信側装置が，予め定めた数以上連続して同じ順序情報（Sequence ID，以下，ＳＩＤと略す）を含む確認応答を受信した場合は，当該ＳＩＤ以降のセグメントを再送する場合を前提とする。
【００１３】
中継装置は，次に受信すると予測するセグメントのＳＩＤをコネクション毎に計算し，予測ＳＩＤとして記憶する。
【００１４】
帯域制御機能が同コネクションの次のセグメントを受信すると，該予測ＳＩＤと受信したセグメントのＳＩＤとを比較し，該ＳＩＤが予測ＳＩＤ未満ならば，該セグメントを再送されたセグメントと判断して，その帯域を制御せずに，受信側装置へ送信する。これにより，帯域制御装置が再送されたセグメントに対しても帯域を制御して，通信帯域を必要以上に制御することを防ぐ。
【００１５】
また，予測ＳＩＤを超えるＳＩＤを有するセグメントを一定数以上連続で受信した場合，予測ＳＩＤを持つセグメントが失われたものと判断し，それら予測ＳＩＤを超えるＳＩＤを有するセグメントに対して帯域を制御せずに受信側装置へ送信する。
【００１６】
開示される帯域制御機能の他の一例では，送信側装置が，予め定めた数以上連続して同じＳＩＤを含む確認応答を受信した場合は，当該ＳＩＤのセグメントを再送し，その後は，再送前に送信したセグメントの次のセグメントからの送信を再開する場合を前提とする。
【００１７】
中継装置は，コネクション毎に受信したセグメントのＳＩＤとそのサイズとを参照して，受信したセグメントの範囲を受信済区間として算出し，それまでの受信済区間と連結して記憶する。
【００１８】
帯域制御機能が同コネクションの次のセグメントを受信すると，該受信済区間と受信したセグメントのＳＩＤとを比較し，該ＳＩＤが受信済区間内ならば，該セグメントを再送されたセグメントと判断して，その帯域を制御せずに，受信側装置へ送信する。これにより，帯域制御装置が再送されたセグメントに対しても帯域を制御して，通信帯域を必要以上に制御することを防ぐ。
【００１９】
また，受信セグメントのＳＩＤが受信済区間外でかつ，受信済区間以下の場合，該セグメントを再送されたセグメントかつ帯域制御の対象と判断し，保留キューの他のセグメントより優先して受信側装置へ送信する。
【００２０】
これらにより，受信側装置による，失われたセグメントを要求する確認応答が，速やかに送信側装置へ送信されることになるので，送信側装置によるセグメント紛失の検知と再送が，帯域制御によって遅れ，結果的に通信帯域を必要以上に制御することを防ぐ。
【００２１】
上記態様により，誤り率の高いネットワークでの通信において，トランスポートレイヤーにおける通信帯域を，規定帯域に近づけることが可能になる。
【発明の効果】
【００２２】
本発明により，契約帯域により近い帯域での通信が可能になる。
【図面の簡単な説明】
【００２３】
【図１】実施例１の中継装置の構成図の一例である。
【図２】実施例１の中継装置として使用する情報処理装置の構成図の一例である。
【図３】実施例１の中継装置が送信元通信装置から受信したセグメントを処理するフローチャートの一例である。
【図４】実施例１の中継装置とサーバと端末との通信において，端末と中継装置間でセグメントが失われた場合のシーケンスの一例である。
【図５】実施例１の中継装置とサーバと端末間の通信において，中継装置とサーバ間でセグメントが失われた場合のシーケンスの一例である。
【図６】実施例２の中継装置の構成図の一例である。
【図７】実施例２の中継装置が送信元通信装置から受信したセグメントを処理するフローチャートの一例である。
【図８】実施例３の中継装置の構成図の一例である。
【図９】実施例４の中継装置の構成図の一例である。
【図１０】実施例２の中継装置とサーバと端末との通信において，端末と中継装置間でセグメントが失われた場合のシーケンスの一例である。
【図１１】実施例２の中継装置とサーバと端末間の通信において，中継装置とサーバ間でセグメントが失われた場合のシーケンスの一例である。
【図１２】実施例３の中継装置とサーバと端末との通信において，中継装置とサーバ間でセグメントが失われた場合のシーケンスの一例である。
【発明を実施するための形態】
【００２４】
以下，本発明の実施の形態について図面を参照して説明する。
【００２５】
以下の各実施例では，帯域制御機能をネットワーク上の中継装置が備えた場合について説明するが，サーバ装置が本帯域制御機能を備えてもよい。
【００２６】
以下の各実施例では，トランスポートレイヤーのプロトコルがＴＣＰであり，ＳＩＤとしてＴＣＰのシーケンス番号を利用する場合について説明するが，ＴＣＰと同様に，コネクション型の通信であり，各セグメントが，ＳＩＤとして，ＴＣＰのシーケンス番号に相当するデータの順序情報を有するその他のプロトコルであってもよい。
【００２７】
たとえば，ＴＣＰでは，送信側装置は，セグメントにＳＩＤを含めて送信し，受信側装置は，次に送信側装置からの受信を期待するセグメントのＳＩＤを確認応答番号として含む確認応答を送信する。
【００２８】
さらに，以下の各実施例では，帯域制御機能をネットワーク上の一つの中継装置が備えた場合について説明するが，帯域制御機能が備える各処理部や記憶部は，それぞれネットワークで接続された物理的に異なる装置が備えても良い。
【００２９】
さらに，以下の各実施例では，中継装置はサーバから端末への通信に対して帯域を制御する（すなわち，サーバが送信側装置となり，端末が受信側装置となる）が，逆に，端末からサーバへの通信を制御してもよく，また，その両方向に対してであってもよい。
【実施例１】
【００３０】
図１に示すように，本実施形態の通信システムは，トランスポートレイヤーの通信プロトコルにＴＣＰを使用してサーバからデータを受信する端末１０２と，同通信プロトコルを使用して端末にデータを送信するサーバ１０４と，端末１０２とサーバ１０４との間の，例えばインターネットなどのネットワーク１０６上で通信の中継と制御をおこなう中継装置１００を含んで構成される。端末１０２と，サーバ１０４と，中継装置１００はそれぞれ複数台あってもよい。
【００３１】
なお，本実施例では，端末１０２は，受信データに対する確認応答（ＡＣＫ）として，受信したセグメントに含まれるＳＩＤとそのサイズとを参照して，次に受信を期待するセグメントのＳＩＤを含む確認応答を，サーバ１０４へ送信するものとし，サーバ１０４は，予め定めた数以上連続して同じＳＩＤを含む確認応答を受信した場合は，当該ＳＩＤ以降のセグメントを再送するものとする。
【００３２】
中継装置１００において，保留キュー１３０は，後述の受信機能１１２が受信したセグメントを，後述の送信機能１１４が送信するまで保持するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）キューである。ＦＩＦＯキューは，後述のコネクション管理機能１１６が管理するコネクションと同数だけ生成され，各コネクションに対応する。
【００３３】
受信機能１１２は，ネットワーク１０６を介して，サーバ１０４，または端末１０２からセグメントを受信し，保留キュー１３０にエンキュー（enqueue）する。ただし，後述するユーザ管理機能１２４によって該セグメントが帯域制御の対象でないと判定された場合などは，保留キューにエンキューせず，後述の送信機能１１４が該セグメントを直ぐに送信する。
【００３４】
送信機能１１４は，受信機能１１２が受信した，または保留キュー１３０からデキュー（dequeue）したセグメントを，後述の帯域制御機能１１０が決定するタイミングで，端末１０２，またはサーバ１０４に送信する。
【００３５】
コネクション管理機能１１６は，受信したセグメントが新規のコネクションに属するか，確立済みのコネクションに属するかどうかを判定する。また，既存のコネクションに属する場合，どのコネクションに属するかを管理する。本機能は公知技術であり，コネクションの特定には，例えば通信プロトコルがＴＣＰ／ＩＰならば宛先ＩＰアドレス，送信元ＩＰアドレス，宛先ポート番号，送信元ポート番号の組み合わせを用いる。
【００３６】
ユーザ管理機能１２４は，受信したセグメントがどのユーザに属するかを判定し，該ユーザの通信に対する帯域制御の要否，制御帯域値を決定する機能で，公知の技術である。ユーザの判定のキーには，例えばセグメントの送信元ＩＰアドレスを使用する。ユーザの情報は，ユーザ管理機能１２４が記憶しても良いし，外部のデータベースに問い合わせても良い。
【００３７】
帯域制御機能１１０は，ユーザ管理機能１２４が決定した制御帯域に従って，受信機能１１２が受信したセグメント，または保留キュー１３０で保留中のセグメントを送信するタイミングを決定する。本技術は公知であり，送信タイミングの決定のアルゴリズムには，例えばトークンバケットなどがある。本実施例において，帯域制御のアルゴリズムは問わない。ただし，帯域制御機能１１０は，後述する解除フラグがＯＮであるセグメントに対しては，制御帯域内には含めず，帯域を制御しない。
【００３８】
次ＳＩＤ予測機能１１８は，受信したセグメントのＳＩＤ（以下，受信ＳＩＤと呼称）と，該セグメントのサイズを参照し，該セグメントの通信コネクションにおいて次に受信するセグメントのＳＩＤを計算により予測し，予測ＳＩＤとする。予測ＳＩＤは，ＴＣＰにおいて，端末１０２が，受信したセグメントに対して送信する確認応答に含める値と同様に，以下の通り計算する。
（予測ＳＩＤ）＝（受信ＳＩＤ）＋（セグメントのサイズ）        （式１）
セグメントのＳＩＤとサイズは，例えば通信プロトコルＴＣＰ，ＵＤＰでは，それぞれヘッダの情報から取得できる。
【００３９】
予測ＳＩＤ記憶機能１２６は，次ＳＩＤ予測機能１１８が計算した予測ＳＩＤを通信コネクション毎に記憶する。
【００４０】
セグメント情報記憶機能１２０は，セグメントが保留キュー１３０に存在する間，セグメント毎に予約フラグと解除フラグを記憶する。予約フラグと解除フラグの初期値はＯＦＦであり，後述のＳＩＤ判定機能１２２が変更する。
【００４１】
ＳＩＤ判定機能１２２は，コネクション管理機能１１６がセグメントを既存のコネクションに属すると判定した場合，受信ＳＩＤと，予測ＳＩＤ記憶機能１２６が記憶する同コネクションの予測ＳＩＤとを比較する。比較の結果に応じて，以下の３通りのいずれかの処理を行う。
（１）受信ＳＩＤが予測ＳＩＤ未満の場合，該セグメントに対して，帯域制御を解除する（帯域制御対象から外す）ための解除フラグをＯＮにする。
（２）受信ＳＩＤが予測ＳＩＤを超える場合，後述の順序外ＳＩＤ数記憶機能１２８が記憶する順序外ＳＩＤ数に１を加算し，該セグメントを帯域制御対象から外す候補とするための予約フラグをＯＮにする。順序外ＳＩＤ数は新たな概念であり，「コネクション毎に，受信ＳＩＤが予測ＳＩＤを連続して超えた回数」と定義する。
【００４２】
加算の結果，順序外ＳＩＤ数が予め定めた値（例えば２）以上になった場合，該セグメントと，同コネクションで予約フラグがＯＮである保留キュー１３０内のセグメントの解除フラグをＯＮにする。
【００４３】
なお，あるセグメントがあて先に届いていないとサーバ１０４が判断する「同じ確認応答番号の連続受信数」と「順序外ＳＩＤ数Ｎについて予め定めた値」との関係を，例えば以下のように定める。
「順序外ＳＩＤ数Ｎについて予め定めた値」＝「同じ確認応答番号の連続受信数」−１
（３）受信ＳＩＤが予測ＳＩＤと等しければ，同コネクションの順序外ＳＩＤ数を０に設定し，保留キュー１３０内で同コネクションの全てのセグメントの予約フラグをＯＦＦにする。
【００４４】
順序外ＳＩＤ数記憶機能１２８は，順序外ＳＩＤ数をコネクション毎に記憶する。各コネクションの順序外ＳＩＤの初期値は０であり，ＳＩＤ判定機能１２２が更新する。
【００４５】
図２は本実施形態の中継装置１００を実現する電子計算機の物理構成を示した図である。本実施形態の中継装置１００は，プログラムを実行し，図１に示す各機能を実現するプロセッサＨ２０１と，実行するプログラムやデータを一時的に保持するメモリ装置Ｈ２０２と，外部からの指示や情報を入力するための入力装置Ｈ２０３と，プログラムの実体，指示，情報等を格納し，データの記憶装置として使用されるディスク装置Ｈ２０４と，中継装置１００の内部と外部装置とのデータのやり取りを制御する通信制御装置Ｈ２０５と，中継装置１００の内部でデータのやり取りをおこなうためのバスなどの内部通信線Ｈ２０６と，中継装置１００の内部と外部装置とのデータのやり取りするための外部通信回線Ｈ２０７（図１のネットワーク１０６に相当）を備える。
【００４６】
上記プログラムは予め，中継装置１００内のメモリ装置Ｈ２０１またはディスク装置Ｈ２０４に格納されていても良いし，必要なときに，上記中継装置１００が利用可能な，着脱可能な記憶媒体から，または通信媒体（ネットワーク，または，ネットワークを伝播する搬送波またはデジタル信号）を介して他の装置から，導入されてもよい。
【００４７】
また，以下に説明する各機能とその処理内容は，ディスク装置Ｈ２０４に格納されているプログラムを，プロセッサＨ２０１が読み出して実行することにより，具現化されるものである
図３は，中継装置１００が一つのセグメントを受信した場合の動作を示すフローチャートである。
【００４８】
まず，受信機能１１２が，端末１０２またはサーバ１０４から，セグメントを受信する（Ｆ１００）。
【００４９】
次に，ユーザ管理機能１２４が該セグメントの属するユーザ情報から，該セグメントが帯域制御対象かどうか判定する（Ｆ１０２）。
【００５０】
受信したセグメントが帯域制御対象でない場合，送信機能１１４がセグメントを中継する（Ｆ１３０）。
【００５１】
該セグメントが帯域制御対象である場合，コネクション管理機能１１６が，該セグメントが新規のコネクションかどうか判定する（Ｆ１０４）。
【００５２】
該セグメントが確立済みのコネクションに属する場合，予測ＳＩＤ記憶機能１２６が記憶する同コネクションの予測ＳＩＤと，受信ＳＩＤを比較する（Ｆ１０６）。
新規のコネクションの場合，またはＦ１０６の比較で予測ＳＩＤと受信ＳＩＤが等しい場合，次ＳＩＤ予測機能１１８が予測ＳＩＤの値を更新し（Ｆ１０８），順序外ＳＩＤ数の値を０に設定し，保留キュー１３０内で同コネクションの全てのセグメントの予約フラグをＯＦＦにする（Ｆ１１０）
帯域制御機能１１０が，受信したセグメントが属するコネクションのＦＩＦＯキューに以前に受信されたセグメントが存在するかどうか判定し（Ｆ１２２），存在すれば，該セグメントを同コネクションのＦＩＦＯキュー末尾につなぐ（Ｆ１２８）。
【００５３】
保留キュー１３０の同コネクションのＦＩＦＯキューに以前に受信したセグメントが存在しなければ，帯域制御機能１１０が，受信したセグメントの解除フラグがＯＮかどうか判定する（Ｆ１２４）。
【００５４】
解除フラグがＯＮ（Ｆ１２４でＹｅｓ）ならば，帯域制御を解除し（すなわち，制御帯域を考慮せず），送信機能１１４に該セグメントを中継させる（Ｆ１３０）。
【００５５】
解除フラグがＯＦＦならば，帯域制御機能１１０が該セグメントを制御帯域内で送信可能かどうか判定する（Ｆ１２６）。
【００５６】
送信可能ならば，送信機能１１４に該セグメントを中継させる（Ｆ１３０）。
【００５７】
送信可能でないならば，帯域制御機能１１０は，該セグメントを保留キュー１３０の末尾につなぐ（Ｆ１２８）。
【００５８】
また，Ｆ１０６で受信ＳＩＤが予測ＳＩＤより小さい場合，送信機能１１４に該セグメントを中継させる（Ｆ１３０）。
【００５９】
また，Ｆ１０６で受信ＳＩＤが予測ＳＩＤより大きい場合，該セグメントの予約フラグをＯＮにし（Ｆ１１４），順序外ＳＩＤ数の値を１増加させる（Ｆ１１６）。
【００６０】
順序外ＳＩＤ数が予め定めた値Ｎ（例えば２）以上であれば，保留キュー１３０の同コネクションにおいて，予約フラグがＯＮであるセグメントの解除フラグをＯＮにする（Ｆ１２０）。
【００６１】
以降の処理はＦ１２２以下に従う。
【００６２】
また，帯域制御機能１１０は，並行して，保留キュー１３０の各コネクションのＦＩＦＯキューの先頭のセグメントが，制御帯域内で送信可能かどうか，または解除フラグがＯＮであるかどうかを繰り返し，例えば定期的に，判定する（Ｆ１３２）。
【００６３】
セグメントが送信可能，または解除フラグがＯＮである場合，Ｆ１２４以下の処理に従う。
【００６４】
図４は，サーバ１０４が中継装置１００を介して端末１０２にデータを送信する際，端末１０２と中継装置１００との間でセグメントが失われた場合のシーケンス例である。図４の通信は１つのコネクションとし，説明に必要のない確認応答は省略する。
【００６５】
Ｄ００は，サーバ１０４が送信するセグメントＤ０１からＤ０４までのＳＩＤとサイズを示す。サーバ１０４が，ある新規のコネクションにおいてセグメントＤ０１を送信すると，中継装置１００の受信機能１１２が該セグメントＤ０１を受信し（Ｆ１０４でＹｅｓ，Ｓ２０１とＳ２１０），中継装置１００の帯域制御機能１１０は，セグメントＤ０１を制御帯域内で送信可能と判断すると（Ｆ１２６でＹＥＳ），該セグメントＤ０１を端末１０２へと中継する（Ｆ１０８〜。ただし，解除フラグはＯＦＦ，Ｓ２１０）。ここで，次ＳＩＤ予測機能１１８が，上記の式１により，予測ＳＩＤを下記の通り２００と計算する（Ｆ１０８）。
１００（受信ＳＩＤ）＋１００（サイズ）＝  ２００
端末１０２は，セグメントＤ０１を受信すると，確認応答番号が２００の確認応答Ａ０１をサーバ１０４に送信する（Ｓ２２１）。
【００６６】
サーバ１０４が，Ｓ２０１と同様にセグメントＤ０２，Ｄ０３，Ｄ０４を送信すると（Ｓ２０２），中継装置１００の受信機能１１２は該セグメントを順に受信し（Ｆ１０４でＮＯ），受信ＳＩＤが予測ＳＩＤと等しいため（Ｆ１０６で「等しい」），次ＳＩＤ予測機能１１８が，式１により，予測ＳＩＤを３００（２００＋１００），４００（３００＋１００），５００（４００＋１００）と順に変更する（Ｆ１０８，Ｓ２１１）。
【００６７】
帯域制御機能１１０は，セグメントＤ０２を制御帯域内で送信可能でないと判断すると（Ｆ１２６でＮＯ），保留キュー末尾につなぐ（Ｆ１２８）。また，セグメントＤ０３，Ｄ０４受信時も，保留キューにセグメントＤ０２が存在するため（Ｆ１２２），セグメントＤ０３，Ｄ０４も保留キュー末尾につなぐ（Ｆ１２８）。
一定期間経過後に，帯域制御機能１１０が制御帯域内でセグメントＤ０２を送信可能と判定すると，セグメントＤ０２を端末１０２に送信する（Ｆ１３２〜。ただし，解除フラグはＯＦＦ，Ｓ２１２）が，セグメントＤ０２が，中継装置１００から端末１０２の間で失なわれ，端末１０２に到達しないとする（Ｓ２２２）。
【００６８】
中継装置１００はＳ２１２と同様に，一定期間の経過によりセグメントＤ０３が送信可能になると，該セグメントＤ０３を端末１０２に送信する（Ｆ１３２〜。ただし，解除フラグはＯＦＦ，Ｓ２１３）。
【００６９】
端末１０２はセグメントＤ０３を受信すると，セグメントＤ０２を未受信のため，確認応答番号が２００の確認応答Ａ０２をサーバ１０４に応答する（Ｓ２２３）。
【００７０】
中継装置１００はＳ２１３と同様に，一定期間の経過によりセグメントＤ０４が送信可能になると，該セグメントＤ０４を端末１０２に送信する（Ｆ１３２〜。ただし，解除フラグはＯＦＦ，Ｓ２１４）。
【００７１】
端末１０２は，セグメントＤ０２を未受信のため，Ｓ２２３と同様に，確認応答番号が２００の確認応答Ａ０３をサーバ１０４に応答する（Ｓ２２４）。
【００７２】
サーバ１０４は，確認応答番号が２００の確認応答Ａ０２，Ａ０３を受信すると，先に受信した確認応答Ａ０１と合わせて確認応答番号２００の確認応答を連続して３回受信したことになる。サーバ１０４は，同じ確認応答番号を連続して一定数（本実施例では３とする）受信したため，その確認応答番号のセグメント（ここではＤ０２）が端末１０２に到達していないと判断し，セグメントＤ０２以降のセグメントを再送する（Ｓ２０３）。
【００７３】
中継装置１００の受信機能１１２が，セグメントＤ０２，Ｄ０３，Ｄ０４を受信し（Ｆ１０４でＮＯ），各セグメントのＳＩＤが２００，３００，４００と，最新の予測ＳＩＤの５００未満であるため（Ｆ１０６で「＜」），ＳＩＤ判定機能１２２が，これらは再送されたセグメントと判断して，これらのセグメントに対しては帯域を制御せず，送信機能１１４が直ぐに該セグメントを送信する（Ｓ２１５）。
【００７４】
サーバ１０４が，Ｓ２０３に続いて，再送ではないセグメントＤ０５を送信し（Ｓ２０４），中継装置１００の受信機能１１２が該セグメントを受信した場合（Ｆ１０４でＮＯ），受信ＳＩＤと予測ＳＩＤは５００で等しいため（Ｆ１０６で「等しい」），帯域制御機能１１０は制御帯域内で該セグメントＤ０５を中継する（Ｆ１０８〜。ただし，解除フラグはＯＦＦ，Ｓ２１６）。
【００７５】
以上説明したように，中継装置１００と送信先の端末１０２の間で失われたセグメントがあってセグメントが再送される場合，中継装置１００は，受信ＳＩＤが予測ＳＩＤ未満であるセグメントについては，帯域制御を行わないので，予定帯域により近い帯域で送信することが可能になる。
【００７６】
図５は，サーバ１０４が中継装置１００を介して端末１０２にデータを送信する際，サーバ１０４と中継装置１００との間でセグメントが失なわれた場合のシーケンスの例である。図４の通信は１つのコネクションとし，説明に必要のない確認応答は省略する。
【００７７】
Ｄ１０は，サーバ１０４が送信するセグメントＤ１１からＤ１４までのＳＩＤとサイズを示す。
【００７８】
まず，サーバ１０４が，あるコネクションにおいてセグメントＤ１１を送信すると（Ｆ１０４でＹｅｓ，Ｓ３０１），中継装置１００は制御帯域内で該セグメントＤ１１を端末１０２へと中継する（Ｆ１０８〜。ただし，解除フラグはＯＦＦ，Ｓ３１０）。ここで，図４のＳ２１０と同様に，次ＳＩＤ予測機能１１８が上記式１により，予測ＳＩＤを２００と計算する。
【００７９】
端末１０２は，セグメントＤ１１を受信すると，確認応答番号が２００の確認応答Ａ１１をサーバ１０４に送信する（Ｓ３２１）。
【００８０】
次に，サーバ１０４がセグメントＤ１２を送信するが（Ｓ３０２），中継装置１００に到達する前にセグメントＤ１２が失なわれたとする（Ｓ３２３）。
【００８１】
Ｓ３０２と同様にサーバ１０４がセグメントＤ１３を送信する（Ｓ３０３）。
【００８２】
中継装置１００の受信機能１１２が該セグメントを受信すると，ＳＩＤ判定機能１２２が，予測ＳＩＤと，受信ＳＩＤを比較する（Ｓ３１３）。ここで，受信ＳＩＤが３００，予測ＳＩＤが２００と，受信ＳＩＤが予測ＳＩＤを超えているため（Ｆ１０６で「＞」），ＳＩＤ判定機能１２２は該セグメントの予約フラグをＯＮにし（Ｆ１１４），順序外ＳＩＤ数を０から１に変更する（Ｆ１１６）。Ｆ１１８のＮを本実施例では２とすると，該セグメントＤ１３については，順序外ＳＩＤ数＜Ｎとなり（Ｆ１１８で「ＮＯ」），帯域制御されるために直ぐには中継されず，保留キュー１３０で送信待ちとなる（Ｆ１２８）。
【００８３】
次に，サーバ１０４がセグメントＤ１４を送信する（Ｓ３０４）。
【００８４】
中継装置１００の受信機能１１２が該セグメントＤ１４を受信すると，ＳＩＤ判定機能１２２が，予測ＳＩＤと，受信ＳＩＤを比較する（Ｆ１０６，Ｓ３１２）。ここで，受信ＳＩＤが４００，予測ＳＩＤが２００と，受信ＳＩＤが予測ＳＩＤを超えているため（Ｆ１０６で「＞」），ＳＩＤ判定機能１２２は該セグメントの予約フラグをＯＮにし（Ｆ１１４），順序外ＳＩＤ数を１から２に変更する（Ｆ１１６）。ここで，順序外ＳＩＤ数が予め定めた値（本実施例では２とする）以上になるため（Ｆ１１８で「ＹＥＳ」），予約フラグがＯＮであるセグメント（保留キュー１３０に格納されているセグメントを含む。ここではＤ１３とＤ１４）の解除フラグをＯＮにする（Ｆ１２０）。
【００８５】
帯域制御機能１１０は，セグメントＤ１３とＤ１４の解除フラグがＯＮであるため（Ｆ１２４で「ＹＥＳ」，帯域を制御せずに，送信機能１１４がセグメントＤ１３とＤ１４を端末１０２へ送信する（Ｆ１３０）。Ｄ１４より後に受信するセグメントについても「受信ＳＩＤ＞予測ＳＩＤ」となるため，同様に処理される。
【００８６】
端末１０２は，Ｄ１３とＤ１４を受信するが，Ｄ１２を未だ受信していないので，それぞれに確認応答番号２００の確認応答Ａ１２とＡ１３をサーバ１０４に応答する（Ｓ３２２）（Ｄ１４より後に受信するセグメントについても同様）。
【００８７】
Ｓ３０５で，サーバ１０４は確認応答Ａ１２，Ａ１３を受信すると，Ａ１１と合わせて確認応答番号が同じ２００である確認応答を，連続して一定回数（ここでは３）受信したことになる。
【００８８】
サーバ１０４は，同じ確認応答番号を一定回数以上（上述の定義例に従えば３）連続受信し，そのセグメント（ここではＤ１２）が端末１０２に届いていないと判断するので，Ｄ１２以降のセグメントを端末１０２に再送する。
【００８９】
中継装置１００は，以降の失なわれることなく届くセグメントＤ１２，Ｄ１３，Ｄ１４については，「受信ＳＩＤ＝予測ＳＩＤ」となるので，これらに対しては，通常通り帯域制御内で端末１０２に送信する（Ｓ３１３，Ｓ３１４）。
以上説明したように，中継装置にセグメントが届かなかった場合，その後に受信するセグメントの帯域制御を行わないので，端末１０２から，失われたセグメントに関する確認応答が速やかにサーバ１０４に届く。この結果，サーバ１０４に，失われたセグメントＤ１２の再送を速やかに行わせることが可能になり，予定帯域により近い帯域で送信することが可能になる。
【００９０】
以上，本実施例によれば，中継装置が，トランスポートレイヤーにおける通信帯域を制御した帯域よりも著しく低下させることなく，帯域を制御することができる。
【００９１】
また，本実施例においては，サーバ１０４と端末１０２は，変更を必要とせず，既存の装置を使用可能である。
【実施例２】
【００９２】
第２の実施例は，端末とサーバ間の通信コネクションにおいて，ＲＦＣ２０１８で規定されている，ＴＣＰのＳＡＣＫ（Ｓｅｌｅｃｔｉｖｅ  ＡＣＫｎｏｗｌｅｄｇｅｍｅｎｔ）オプションが有効であり，具体的にどのセグメントが送達しているかを詳細に通知することが可能である場合に，トランスポートレイヤーにおける通信帯域が，帯域制御によって指定した帯域よりも著しく低下することを防ぐ実施形態である。
【００９３】
すなわち，サーバ１０４は，予め定めた数以上連続して同じＳＩＤを含む確認応答を受信した場合は，実施例１とは異なり，当該ＳＩＤのセグメントを再送し，その後は，再送前に送信したセグメントの次のセグメントからの送信を再開するものとする。
【００９４】
なお，本実施例ではＴＣＰのＳＡＣＫオプションが有効である場合について説明するが，失なわれたセグメントを再送し失われていないセグメントは再送しない通信プロトコルであれば，本実施例は適用可能である。
【００９５】
図６は実施例２の通信システムの一構成例である。中継装置２００は，実施例１の中継装置１００に加えて，ＳＡＣＫ判定機能２０２と，ＳＩＤ区間記憶機能２０４とを備える。また，中継装置２００は，実施例１の中継装置１００の次ＳＩＤ予測機能１１８と，予測ＳＩＤ記憶機能１２６と，順序外ＳＩＤ数記憶機能とを備えなくてよい。また，セグメント情報記憶機能２２０と，コネクション管理機能２１６と，ＳＩＤ判定機能２２２は，それぞれ実施例１のセグメント情報記憶機能１２０，ＳＩＤ判定機能１２２，コネクション管理機能１１６と異なる。
【００９６】
ＳＡＣＫ判定機能２０２は，サーバ１０４と端末１０２との間の通信コネクション確立時に，ＴＣＰプロトコルのＳＡＣＫオプションが有効かどうか判定する。ＳＡＣＫオプションが有効かどうかの判定は，セグメントのＴＣＰヘッダの情報を参照すれば可能であり，公知の技術である。なお，ＳＡＣＫオプションが有効であると，セグメントが失われた場合に，送信側装置は失われたセグメント以降の，失われていないセグメントは再送しない。
【００９７】
コネクション管理機能２１６は，実施例１のコネクション管理機能１１６の機能に加え，ＳＡＣＫ判定機能２０２が判定したコネクション毎のＳＡＣＫオプションの有効・無効を管理する機能を備える。
【００９８】
ＳＩＤ判定機能２２２は，コネクション毎に受信したセグメントのＳＩＤとそのサイズとから受信したセグメントの範囲（以下，受信済区間と呼称）を
受信済区間＝受信データのセグメント＋受信データサイズ−１
で算出し，それまでの受信済区間と連結する。
【００９９】
また，ＳＩＤ判定機能２２２は，受信したセグメントのＳＩＤが同コネクションの受信済区間内かどうか，受信済区間より大きいかどうかを判定する。該ＳＩＤが受信済区間内であれば，該セグメントは送信機能１１４により中継され，該ＳＩＤが受信済区間よりも大きければ，該セグメントに対して後述の優先フラグがＯＮにされる。
【０１００】
ＳＩＤ区間記憶機能２０４は，ＳＩＤ判定機能２２２が計算した受信済区間をコネクション毎に記憶する。
【０１０１】
例えば，ＳＩＤが１００で，セグメントのサイズが２００のセグメントを受信した場合，ＳＩＤが１００から２９９の範囲を受信したと考える。図６の例は，中継装置２００がコネクションＡにおいて，ＳＩＤが１００から１９９までと，３００から５００までのセグメントを受信済みであることを示す。
【０１０２】
セグメント情報記憶機能２２０は，実施例１のセグメント情報記憶機能１２０に加え，セグメント毎に優先フラグを記憶する機能を備える。優先フラグの初期値はＯＦＦである。また，実施例１の情報記憶機能１２０が記憶する予約フラグは必要としない。
【０１０３】
図７は，中継装置２００がセグメントを受信した場合の動作を示すフローチャートである。
【０１０４】
まず，受信機能１１２が，端末１０２またはサーバ１０４から，セグメントを受信する（Ｆ２００）。
【０１０５】
受信したセグメントが属するコネクションが，後述のＦ２０５によりＳＡＣＫオプションが有効でないと判定されていれば（Ｆ２０１でＮＯ），実施例１（図３のＦ１０２以降）の処理に従う（Ｆ２３４）。なお，Ｆ１０２以降の処理に従う代わりに，送信機能１１４が該セグメントを端末１０２に送信する（Ｆ２３０）実施例と，Ｆ１０２以降の処理に従う代わりに，Ｆ２２２以降の処理に従い，従来の帯域制御装置として機能するように構成しても良い。
【０１０６】
ＳＡＣＫオプションが有効である，またはＳＡＣＫ判定機能２０２によって未だ判定されていなければ（Ｆ２０１でＹＥＳ），Ｆ２０２以降の処理に従う。なお，ＳＡＣＫオプションが有効である場合，Ｆ２０２以降の処理に代わり，送信機能１１４が該セグメントを端末１０２に送信する（Ｆ２３０）実施例と，Ｆ１０２以降の処理に従う代わりに，Ｆ２２２以降の処理に従い，従来の帯域制御装置として機能するように構成しても良い。
【０１０７】
Ｆ２０２，Ｆ２０４の処理は実施例１のＦ１０２，Ｆ１０４の処理に等しい。
【０１０８】
新規のコネクションである場合（Ｆ２０４でＹＥＳ），ＳＡＣＫ判定機能２０２が，該セグメントのＴＣＰヘッダ情報に基づいて，ＳＡＣＫオプションが有効かどうかを判定する（Ｆ２０５）。
【０１０９】
新規のコネクションでない場合（Ｆ２０４でＮＯ），ＳＩＤ判定機能２２２が，ＳＩＤ区間記憶機能２０４が記憶する受信済区間に受信ＳＩＤが含まれるかどうか判定する（Ｆ２０６）。
【０１１０】
受信ＳＩＤが受信済区間に含まれない場合（Ｆ２０６でＹＥＳ），受信済区間の最大のＳＩＤより，受信ＳＩＤが大きいかどうかを判定する（Ｆ２０８）。
【０１１１】
受信ＳＩＤが受信済区間の最大ＳＩＤ以下の場合（Ｆ２０８でＮＯ），該セグメントの優先フラグをＯＮにする（Ｆ２１０）。
【０１１２】
Ｆ２０５の処理の後，またはＦ２１０の処理の後，またはＦ２０８で受信ＳＩＤが受信済区間より大きい場合（Ｆ２０８でＹＥＳ），ＳＩＤ区間記憶機能２０４が，受信したセグメントが属するコネクションの受信済区間を更新する。例えば図６のように，受信済区間が「１００〜１９９，３００〜５００」の場合に，ＳＩＤが２００，サイズが５０のセグメントを受信したとすると，受信済区間を「１００〜２４９，３００〜５００」に更新する（Ｆ２１２）。
【０１１３】
Ｆ２０６で，受信ＳＩＤが受信済区間に含まれる場合（Ｆ２０６でＮＯ），送信機能１１４が該セグメントを中継する（Ｆ２３０）。          Ｆ２１２の処理の後，帯域制御機能１１０が，セグメントが属するコネクションのＦＩＦＯキューに受信済のセグメントが存在するかどうか判定する（Ｆ２２２）。
【０１１４】
保留キューにセグメントが存在しない場合（Ｆ２２２でＮＯ）は，Ｆ２２６以降の処理に従う。Ｆ２２６，Ｆ２２８，Ｆ２３０，Ｆ２３２の処理は，それぞれ実施例１のＦ１２６，Ｆ１２８，Ｆ１３０，Ｆ１３２の処理に等しい。
【０１１５】
保留キューにセグメントが存在する場合（Ｆ２２２でＹＥＳ），帯域制御機能１１０が，セグメントの優先フラグを判定する（Ｆ２１８）。
【０１１６】
優先フラグがＯＦＦの場合（Ｆ２１８でＮＯ），該セグメントを保留キューの末尾につなぐ（Ｆ２２８）。
【０１１７】
優先フラグがＯＮの場合（Ｆ２１８でＹＥＳ），該セグメントを保留キューの先頭につなぐ（Ｆ２２０）。ただし，保留キューに優先フラグがＯＮのセグメントが既に存在する場合，それら優先フラグがＯＮのセグメントの最後尾かつ，優先フラグがＯＦＦのセグメントの先頭に挿入する。
【０１１８】
図１０は，図４と同様のサーバ１０４が中継装置２００を介して端末１０２にデータを送信する際，端末１０２と中継装置２００との間でセグメントが失われた場合における，実施例２のシーケンス例である。図１０の通信は１つのコネクションとし，説明に必要のない確認応答は省略する。
【０１１９】
図１０では，以下の点で実施例１の図４と異なる。また，サーバ１０４が送信するセグメントＤ０１からＤ０４までのＳＩＤとサイズは実施例１のＤ００と等しい。
【０１２０】
端末１０２が送信した，３つ目の確認応答番号が２００の確認応答Ａ０３をサーバ１０４が受信したとき（Ｓ４０２），サーバ１０４は，ＳＡＣＫオプションが有効であるから，失われたセグメントＤ０２を再送し，既に送信済みのセグメントＤ０３，Ｄ０４を再送しない。
【０１２１】
中継装置２００の受信機能１１２は，サーバ１０４が再送したセグメントＤ０２を受信すると（Ｓ４１０），ＳＩＤ区間記憶機能２０４が記憶する受信済区間が１００〜４９９で，該セグメントＤ０２のＳＩＤが２００であるため，該ＳＩＤは受信済区間に含まれ（Ｆ２０６でＮＯ），帯域制御機能１１０は，該セグメントＤ０２を帯域制御の非対象とする。セグメントＤ０２は，以下，実施例１と同様に端末１０２に送信される（Ｆ２３０）。
【０１２２】
図１１は，図５と同様のサーバ１０４が中継装置２００を介して端末１０２にデータを送信する際，サーバ１０４と中継装置２００との間でセグメントが失われた場合における，実施例２のシーケンスの例である。図１１の通信は１つのコネクションとし，説明に必要のない確認応答は省略する。
【０１２３】
図１１では，以下の点で実施例１の図５と異なる。
【０１２４】
Ｄ４０は，サーバ１０４が送信するセグメントＤ１１からＤ１５までのＳＩＤとサイズを示す。説明のため，図１１ではサーバ１０４が送信するセグメントが実施例１の図５よりも１つ多い例を挙げる。
【０１２５】
中継装置２００の受信機能１１２が，サーバ１０４が送信したセグメントＤ１４を受信すると（Ｓ４１１），該セグメントＤ１４のＳＩＤが受信済区間のＳＩＤより大きく（Ｆ２０６とＦ２０８でＹＥＳ），保留キューに既にセグメントが存在するため（Ｆ２２２でＹＥＳ），帯域制御機能１１０は，セグメントＤ１４を保留キュー末尾につなぐ（Ｆ２１８でＮＯ，Ｆ２２８）。
【０１２６】
同様に，中継装置２００はセグメントＤ１５を受信すると，セグメントD１５を保留キュー末尾につなぐ（Ｓ４１２）。
【０１２７】
失われたセグメントＤ１２を要求するために端末１０２が応答する確認応答番号２００の確認応答Ａ１２を，実施例１と同様に，連続して一定回数（ここでは３），サーバ１０４が受信すると，サーバ１０４はセグメントＤ１２が失われたと判断してセグメントＤ１２を再送する（Ｓ４０２）。
【０１２８】
中継装置２００の受信機能１１２がセグメントＤ１２を受信すると（Ｓ４１３），ＳＩＤ区間記憶機能２０４が記憶する受信済区間が１００〜１９９，３００〜５９９で，該セグメントＤ１２のＳＩＤが２００であるため，帯域制御機能１１０は，受信ＳＩＤが受信済区間外（Ｆ２０６でＹＥＳ），受信ＳＩＤが受信済区間以下（Ｆ２０８でＮＯ）と判断し，該セグメントＤ１２に優先フラグをたて（Ｆ２１０），保留キューの先頭につなぐ（Ｆ２２０）。
【０１２９】
保留キューにはセグメントＤ１２の以前からセグメントＤ１５が存在するが，優先フラグのついたセグメントＤ１２はセグメントD１５よりもキューの前方につながれるため，一定期間経過後にセグメントが送信可能になると（Ｆ２３２），セグメントＤ１５よりも先にセグメントＤ１２が送信される（Ｆ２３０，Ｓ４１４）。
【０１３０】
以上，本実施例によれば，失なわれたセグメントを再送し失われていないセグメントを再送しない通信プロトコルを使用した通信においても，中継装置が，トランスポートレイヤーにおける通信帯域を制御した帯域よりも著しく低下させることなく，帯域を制御することができる。
【実施例３】
【０１３１】
第３の実施例は，中継装置３００が，順序どおりでないセグメントをサーバ１０４から一定数以上受信した場合に，端末１０２に該セグメントを中継するのではなく，中継装置３００がサーバ１０４に応答し，セグメントの再送を促す実施例である。
【０１３２】
図８は実施例３の通信システムの一構成例である。中継装置３００は，実施例１の中継装置１００に加えて，応答生成機能３０２を備える。
【０１３３】
応答生成機能３０２は，受信機能１１２が受信したセグメントに対する確認応答を生成する。セグメントに対して応答を生成する技術は公知である。ただし，応答生成機能３０２は，公知技術とは異なり，生成する応答の確認応答番号として，予測ＳＩＤ記憶機能１２６が記憶する該セグメントが属するコネクションの予測ＳＩＤを使用する。
【０１３４】
中継装置３００が，セグメントを受信した場合の動作を示すフローチャートは，実施例１の図３とＦ１２０以外において等しい。
【０１３５】
中継装置３００では，Ｆ１２０において，保留キュー１３０が記憶する同コネクションのＦＩＦＯキューに存在し，予約フラグがＯＮであるセグメントに対する確認応答を，応答生成機能３０２が生成する。このとき，各確認応答の確認応答番号には，予測ＳＩＤ記憶機能１２６が記憶する同コネクションの予測ＳＩＤの値を使用する。
【０１３６】
次に送信機能１１４が，応答生成機能３０２が生成した確認応答を，サーバ１０４に送信する。また，生成した確認応答と対応する予約フラグがＯＮのセグメントは破棄する。
【０１３７】
図１２は，サーバ１０４が中継装置３００を介して端末１０２にデータを送信する際，サーバ１０４と中継装置３００との間でセグメントが失われた場合のシーケンスの例である。
【０１３８】
実施例３の図１２は，以下の点で実施例１の図５と異なる。また，サーバ１０４が送信するセグメントＤ１１からＤ１４までのＳＩＤとサイズは実施例１のＤ１０と等しい。
【０１３９】
中継装置３００の受信機能１１２が，失われたセグメントＤ１２以外のセグメントＤ１１，Ｄ１３，Ｄ１４を受信する（Ｓ３１０〜Ｓ３１２）と，順序外ＳＩＤ数が２で，Ｆ１１８のＮを２とすると，「順序外ＳＩＤ≧Ｎ」となるため（図３のＦ１１８でＹＥＳ），実施例３のＦ１２０において，応答生成機能３０２が，Ｄ１３，Ｄ１４に対応し，同コネクションの予測ＳＩＤである２００を確認応答番号とする確認応答Ａ３１，Ａ３２を生成し，サーバ１０４に応答する（Ｓ５１０）。
【０１４０】
サーバ１０４は，確認応答番号が同じ２００である確認応答を，連続して一定回数（ここでは３）受信したことになるため，セグメントＤ１２が失われたと判断し，実施例１と同様に，セグメントＤ１２を再送する。
【０１４１】
以上，本実施例によれば，中継装置３００が順序どおりでないセグメントを一定数受信した場合に，中継装置が確認応答を返すことで，より早いセグメントの再送を期待できる。
【実施例４】
【０１４２】
第４の実施例は，サーバ１０４が送信した再送セグメントに対して，中継装置４００が新たに制御帯域を設けることができる実施例である。
【０１４３】
図９は，実施例４の通信システムの一構成例である。中継装置４００は，実施例１の中継装置１００とは，ユーザ管理機能４２４と，帯域制御機能４１０とにおいて異なる。
【０１４４】
ユーザ管理機能４２４は，実施例１の機能に加え，ユーザ毎に，再送セグメントの制御帯域を記憶する。再送セグメントの制御帯域は予め定めておいてもよいし，過去一定期間に受信したセグメントの受信ＳＩＤが予測ＳＩＤと異なった回数に基づいてユーザ管理機能４２４が決定してもよい。
【０１４５】
帯域制御機能４１０は，解除フラグがＯＮであるセグメントの制御帯域を，解除するのではなく，ユーザ管理機能４２４が記憶する再送セグメントの制御帯域に変更する。
【０１４６】
中継装置４００が，セグメントを受信した場合の動作を示すフローチャートは，実施例１の図３とＦ１２４，Ｆ１２６以外において等しい。
【０１４７】
中継装置４００では，Ｆ１２４において，解除フラグがＯＮでも，Ｆ１３０の処理には移らず，Ｆ１２６において，解除フラグがＯＮならば，帯域制御機能４１０が，ユーザ管理機能４２４が記憶する再送セグメントの制御帯域内で該セグメントを送信可能かどうか判定する。
【０１４８】
該セグメントを制御帯域内で送信可能でないと判定すると（Ｆ１２６でＮＯ），該セグメントを保留キューの末尾ではなく，保留キューの先頭につなぐ。ただし，保留キューに優先フラグがＯＮのセグメントが既に存在する場合，それら優先フラグがＯＮのセグメントの最後尾かつ，優先フラグがＯＦＦのセグメントの先頭に挿入する。
【０１４９】
以上，本実施例によれば，中継装置４００は，サーバ１０４が再送したセグメントに対しても，帯域制御を行うことができる。
【符号の説明】
【０１５０】
１００：中継装置（実施例１），１０２：端末，１０４：サーバ，１０６：ネットワーク，１１０：帯域制御機能（実施例１），１１２：受信機能，１１４：送信機能，１１６：コネクション管理機能（実施例１），１１８：次ＳＩＤ予測機能，１２０：セグメント情報記憶機能（実施例１），１２２：ＳＩＤ判定機能（実施例１），１２４：ユーザ管理機能（実施例１），１２６：予測ＳＩＤ記憶機能，１２８：順序外ＳＩＤ数記憶機能，１３０：保留キュー，２００：中継装置（実施例２），２０２：ＳＡＣＫ判定機能，２０４：ＳＩＤ区間記憶機能，２１６：コネクション管理機能（実施例２）２２０：セグメント情報記憶機能（実施例２），２２２：ＳＩＤ判定機能（実施例２），３００：中継装置（実施例３），３０２：応答生成機能，４００：中継装置（実施例４），４１０：帯域制御機能（実施例４），４２４：ユーザ管理機能（実施例４），Ｈ２０１：プロセッサ，Ｈ２０２：メモリ装置，Ｈ２０３：入出力装置，Ｈ２０４：ディスク装置，Ｈ２０５：通信制御装置，Ｈ２０６：内部バス，Ｈ２０７：外部通信回線
【図１】
2011199691.tif 000003
【図２】
2011199691.tif 000004
【図３】
2011199691.tif 000005
【図４】
2011199691.tif 000006
【図５】
2011199691.tif 000007
【図６】
2011199691.tif 000008
【図７】
2011199691.tif 000009
【図８】
2011199691.tif 000010
【図９】
2011199691.tif 000011
【図１０】
2011199691.tif 000012
【図１１】
2011199691.tif 000013
【図１２】
2011199691.tif 000014