(57)【要約】【課題】既存の通信プロトコルとの互換性を維持しつつ、送信装置から送信されたデータブロックを受信装置へ転送する際に利用される通信リソースの状態に基づいて、連続して送信するデータブロックの数を増減させること。【解決手段】送信装置２０から連続して送信されたデータブロックを受信装置１０へ転送する中継装置４０に、上記データブロックの転送に利用される通信リソースの状態を表す状態コードを特定させ、この状態コードを所定のデータサイズに分割して上記データブロックの所定領域へ書き込むようにさせる。受信装置１０は、上記データブロックの所定領域に書き込まれているデータをそのまま書き込んだ確認応答を送信装置２０へ送信し、この確認応答を受信した送信装置２０は、分割されて書き込まれている状態コードを読み出し、その状態コードに基づいて、連続して送信するデータブロックの数を増減させる。【選択図】        図１
2005064598.tif 000002
【特許請求の範囲】
【請求項１】
データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第２の通信コネクションを確立するコネクション確立手段と、前記第１の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信手段と、
前記第１の通信コネクションを介して受信したデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、
前記取得手段により取得された状態コードを複数部分に分割し、前記受信手段によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、
前記書き込み手段により前記状態コードを分割して書き込まれたデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する転送手段とを有する中継装置。
【請求項２】
データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、受信したデータブロックに対応する確認応答を該データブロックの送信元に送信する受信装置との間に第２の通信コネクションを確立するコネクション確立手段と、
前記第１の通信コネクションを介して受信したデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、
前記第２の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信手段と、
前記状態コードを複数部分に分割し、前記受信手段によって受信されている確認応答の各々の所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、
前記書き込み手段により前記分割された状態コードを書き込まれた確認応答を前記第１の通信コネクションを介して前記送信装置へ転送する転送手段とを有する中継装置。
【請求項３】
前記状態コードは、前記送信装置から送信されてくるデータブロックを記憶するキューの状態を表すデータまたは前記第２の通信コネクションの状態を表すデータの何れかであることを特徴とする請求項１または２に記載の中継装置。
【請求項４】
予め定められた数のデータブロックを連続して送信する送信手段と、
前記送信手段により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信手段と、
前記受信手段により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表すデータが分割されて書き込まれている場合に、該データを取得する取得手段と、
前記取得手段により取得されたデータに基づいて、連続して送信するデータブロックの数を変更する変更手段とを有する送信装置。
【請求項５】
前記受信手段により受信された確認応答に欠落があるか否かを該確認応答の内容に基づいて判定する判定手段を備え、
前記受信手段により受信された確認応答に欠落があると前記判定手段により判定された場合には、連続して送信するデータブロックの数を前記変更手段により変更することを禁止する禁止手段とを有することを特徴とする請求項４に記載の送信装置。
【請求項６】
データブロックを受信する受信手段と、
前記受信手段により受信されたデータブロックが中継装置により分割されて送信されたデータブロックであるか否かを該データブロックの内容に基づいて判定する判定手段と、
前記中継装置により分割されて送信されたデータブロックであると前記判定手段により判定された場合には、分割されたデータブロックを前記受信手段により全て受信した場合に、１つの確認応答を生成し、前記中継装置により分割されて送信されたデータブロックではないと前記判定手段により判定された場合には、前記受信手段により受信されたデータブロック毎に確認応答を生成する生成手段と、
前記生成手段により生成された確認応答に、前記受信手段により受信されたデータブロックの所定領域に書き込まれているデータを書き込んで送信する送信手段とを有する受信装置。
【請求項７】
コンピュータ装置に、
データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第２の通信コネクションを確立するコネクション確立機能と、
前記第１の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信機能と、
前記受信機能により受信されたデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出する検出機能と、
前記検出機能の検出結果を表す状態コード取得する取得機能と、
前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、
前記書き込み機能により前記状態コードを分割して書き込まれたデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する転送機能とを実現させるプログラム。
【請求項８】
コンピュータ装置に、
データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、該送信装置から送信されてくるセグメントを受信し、受信したデータブロックに対応する確認応答を返信する受信装置との間に第２の通信コネクションを確立するコネクション確立機能と、
前記第１の通信コネクションを介して受信したデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得機能と、
前記第２の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信機能と、
前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されている確認応答の各々の前記所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、
前記書き込み機能により前記状態コードを分割して書き込まれた確認応答を前記第１の通信コネクションを介して前記送信装置へ転送する転送機能とを実現させるプログラム。
【請求項９】
コンピュータ装置に、
予め定められた数のデータブロックを連続して送信する送信機能と、
前記送信機能により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信機能と、
前記受信機能により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表す状態コードが分割されて書き込まれている場合に、該状態コードを取得する取得機能と、
前記取得機能により取得された状態コードに基づいて、連続して送信するデータブロックの数を変更する変更機能とを実現させるプログラム。
【請求項１０】
コンピュータ装置に、
データブロックを受信する受信機能と、
前記受信機能により受信されたデータブロックが中継装置により分割されたデータブロックであるか否かを該データブロックの内容に基づいて判定する判定機能と、
前記中継装置により分割されて送信されたデータブロックであると前記判定機能により判定された場合には、分割されたデータブロックを前記受信手段により全て受信した場合に、１つの確認応答を生成し、前記中継装置により分割されて送信されたデータブロックではないと前記判定機能により判定された場合には、前記受信機能により受信されたデータブロック毎に確認応答を生成する生成機能と、
前記生成機能により生成された確認応答に、前記受信機能により受信されたデータブロックの所定領域に書き込まれていたデータを書き込んで送信する送信機能とを実現させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
中継装置を介してデータ通信を行う技術に関する。
【０００２】
【従来の技術】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）は、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのトランスポート層に相当する通信プロトコルであり、信頼性の高いデータ通信を実現させることができる。具体的には、ＴＣＰにしたがって行われる通信では、送信元から送信されるデータは、所定のデータサイズを有する部分データに分割され、部分データ毎に固有のヘッダを付与されたデータブロック（以下、「セグメント」）として送信される。このヘッダには、各セグメントに内包されている部分データを一意に特定するシーケンス番号が書き込まれており、このシーケンス番号は基本的に送信装置から送信されるセグメントの順番に一致している。そして、このセグメントを受信する受信装置は、そのセグメントに内包されているシーケンス番号に基づいて、セグメントの欠落の有無を検出し、欠落したセグメントの再送信をその送信元へ要求することができる。また、ＴＣＰにしたがって行われる通信では、その通信に関与するネットワーク機器（例えば、ルータなどの中継装置）に輻輳が発生する虞があることを検出させ、輻輳の発生を事前に回避させるようにすることも可能である。このように、輻輳の発生を事前に回避する技術としては、非特許文献１にその仕様が開示されているＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｉｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が挙げられる。以下、ＥＣＮをサポートしているＴＣＰにしたがって行われる通信について図面を参照しつつ説明する。
【０００３】
図１２は、ＥＣＮをサポートしているＴＣＰにしたがって行われる通信を説明するための図である。図１２の送信装置２２０から送信されたセグメントは、中継装置２４０を介して受信装置２１０へ送信される。この中継装置２４０は、送信装置２２０から送信されたセグメントを受信し記憶するキューを備えており、このキューに記憶させたセグメントを順次、受信装置２１０へ宛てて送信している。この中継装置２４０においては、このようにしてセグメントの中継が行われるため、上記キューの記憶容量を超過するデータ量のセグメントが送信されてしまうと、送信されたセグメントを中継しきれず、輻輳が発生してしまう。非特許文献１に開示されている技術では、このような事態の発生を回避するため、上記キューの空き容量を中継装置２４０に監視させ、その空き容量が所定の閾値以下になった場合に、その旨を送信装置２２０へ通知させるようにしている。より詳細に説明すると、中継装置２４０は、上記キューの空き容量が所定の閾値以下になったことを検出すると、受信装置２１０へ転送するセグメントの所定のビット（以下、「ＣＥビット」と呼ぶ）を１に書換え、そのセグメントを受信装置２１０へ転送する。このようなセグメントを受信した受信装置２１０は、そのセグメントに対する確認応答を送信する際に、そのセグメントの所定のビット（以下、「ＥＣＮｅｃｈｏビット」と呼ぶ）を１に書き換えて送信する。そして、このような確認応答を受信した送信装置２２０は、連続して送信するセグメントの数（以下、「輻輳ウィンドウサイズ」と呼ぶ）を縮小し、中継装置２４０における輻輳が発生しないようにする。そして、送信装置２２０は、セグメントの送信を継続する場合には、送信するセグメントの所定のビット（以下、「ＣＷＲビット」と呼ぶ）を１に書き換えて送信する。以降、中継装置２４０は、ＣＷＲビットの値が１であるセグメントを受信すると、送信装置２２０において輻輳ウィンドウサイズが変更されたことを検出し、送信装置２２０から受信したセグメントのＣＥビットを書き換えることを取り止める。
【０００４】
以上に説明したように、ＥＣＮをサポートしているＴＣＰにしたがって行われる通信では、中継装置２４０のキューの空き容量に基づいて輻輳の発生を事前に回避させるようにしている。
【０００５】
【非特許文献１】
2005064598.tif 000003
【０００６】
【発明が解決しようとする課題】
上述した非特許文献１に開示されている技術では、中継装置にキューの空き容量に不足が生じていることをセグメントの送信元へ通知させているが、逆に、キューの空き容量に余裕があることも通知することができたならば便利である。その理由は、このようなことが実現されると、キューの空き容量に余裕がある場合には、送信装置に輻輳ウィンドウサイズを拡大させ、セグメントの送信効率を向上させることができるからである。また、上記キューの空き容量だけではなく、送信装置から受信したセグメントを受信装置へ転送する際に利用する通信回線の帯域幅や通信品質など、上記セグメントを転送する際に用いられる通信リソースの状態を通知することができたならば、更に利便性が向上する。その理由は、このような通信リソースの状態も輻輳の発生に関与するからである。
【０００７】
しかしながら、非特許文献１に開示されている技術では、このように多様な通信リソースの状態をきめ細かくセグメントの送信元へ通知し、輻輳ウィンドウサイズを拡大または縮小させることはできない。その理由は、非特許文献１に開示されている技術において、上記キューの空き容量を通知するためのＣＥビットには、０または１の何れかの値のみしか書き込むことができず、多様な通信リソースの状態をきめ細かく表現することはできないからである。このようなニーズに応えるための方策としては、多様な通信リソースの状態をきめ細かく通知するために充分な領域を上記セグメント内に確保しておくことも考えられる。しかしながら、このようなことを行ってしまうと、既存の通信プロトコルとの下位互換性がなくなってしまう。一般に、上述した中継装置を介して通信を行う送信装置や受信装置の全てが上記拡張を施された通信プロトコルにしたがって通信を行う訳ではないので、下位互換性が確保されていないことは好ましくない。
【０００８】
本発明は、上記課題に鑑みて為されたものであり、既存の通信プロトコルとの互換性を維持しつつ、送信装置から送信されたデータブロックを受信装置へ転送する際に利用される通信リソースの状態に基づいて、その送信装置に連続して送信するデータブロックの数を拡大または縮小させることを可能にする技術を提供することを目的としている。
【０００９】
【課題を解決するための手段】
本発明は、上記課題を解決するために、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第２の通信コネクションを確立するコネクション確立手段と、前記第１の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信手段と、前記第１の通信コネクションを介して受信したデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、前記取得手段により取得された状態コードを複数部分に分割し、前記受信手段によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、前記書き込み手段により前記状態コードを分割して書き込まれたデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する転送手段とを有する中継装置を提供する。
【００１０】
また、本発明は、上記課題を解決するために、コンピュータ装置に、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第２の通信コネクションを確立するコネクション確立機能と、前記第１の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信機能と、前記受信機能により受信されたデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出する検出機能と、前記検出機能の検出結果を表す状態コード取得する取得機能と、前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、前記書き込み機能により前記状態コードを分割して書き込まれたデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する転送機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【００１１】
このような中継装置およびプログラムによれば、上記送信装置から送信されたデータブロックを上記受信装置へ転送する際に利用される通信リソースの状態に基づいて、上記送信装置へ送信するべき状態コードが特定され、この状態コードが上記受信装置を介して上記送信装置へ通知される。
【００１２】
また、本発明は、上記課題を解決するために、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、受信したデータブロックに対応する確認応答を該データブロックの送信元に送信する受信装置との間に第２の通信コネクションを確立するコネクション確立手段と、前記第１の通信コネクションを介して受信したデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、前記第２の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信手段と、前記状態コードを複数部分に分割し、前記受信手段によって受信されている確認応答の各々の所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、前記書き込み手段により前記分割された状態コードを書き込まれた確認応答を前記第１の通信コネクションを介して前記送信装置へ転送する転送手段とを有する中継装置を提供する。
【００１３】
また、本発明は、上記課題を解決するために、コンピュータ装置に、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第１の通信コネクションを確立する一方、該送信装置から送信されてくるセグメントを受信し、受信したデータブロックに対応する確認応答を返信する受信装置との間に第２の通信コネクションを確立するコネクション確立機能と、前記第１の通信コネクションを介して受信したデータブロックを前記第２の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得機能と、前記第２の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信機能と、前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されている確認応答の各々の前記所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、前記書き込み機能により前記状態コードを分割して書き込まれた確認応答を前記第１の通信コネクションを介して前記送信装置へ転送する転送機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【００１４】
このような中継装置およびプログラムによれば、上記送信装置から送信されたデータブロックを上記受信装置へ転送する際に利用される通信リソースの状態に基づいて、上記送信装置へ送信するべき状態コードが特定され、この状態コードが上記送信装置へ通知される。
【００１５】
また、本発明は、上記課題を解決するために、予め定められた数のデータブロックを連続して送信する送信手段と、前記送信手段により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信手段と、前記受信手段により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表すデータが分割されて書き込まれている場合に、該データを取得する取得手段と、前記取得手段により取得されたデータに基づいて、連続して送信するデータブロックの数を変更する変更手段とを有する送信装置を提供する。
【００１６】
また、本発明は、上記課題を解決するために、コンピュータ装置に、予め定められた数のデータブロックを連続して送信する送信機能と、前記送信機能により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信機能と、前記受信機能により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表す状態コードが分割されて書き込まれている場合に、該状態コードを取得する取得機能と、前記取得機能により取得された状態コードに基づいて、連続して送信するデータブロックの数を変更する変更機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【００１７】
このような送信装置およびプログラムによれば、送信したデータブロックに対応する確認応答に分割して書き込まれている状態コードに基づいて、連続して送信するデータブロックの数が変更される。
【００１８】
また、本発明は、上記課題を解決するために、データブロックを受信する受信手段と、前記受信手段により受信されたデータブロックが中継装置により分割されて送信されたデータブロックであるか否かを該データブロックの内容に基づいて判定する判定手段と、前記中継装置により分割されて送信されたデータブロックであると前記判定手段により判定された場合には、分割されたデータブロックを前記受信手段により全て受信した場合に、１つの確認応答を生成し、前記中継装置により分割されて送信されたデータブロックではないと前記判定手段により判定された場合には、前記受信手段により受信されたデータブロック毎に確認応答を生成する生成手段と、前記生成手段により生成された確認応答に、前記受信手段により受信されたデータブロックの所定領域に書き込まれているデータを書き込んで送信する送信手段とを有する受信装置を提供する。
【００１９】
また、本発明は、上記課題を解決するために、コンピュータ装置に、データブロックを受信する受信機能と、前記受信機能により受信されたデータブロックが中継装置により分割されたデータブロックであるか否かを該データブロックの内容に基づいて判定する判定機能と、前記中継装置により分割されて送信されたデータブロックであると前記判定機能により判定された場合には、分割されたデータブロックを前記受信手段により全て受信した場合に、１つの確認応答を生成し、前記中継装置により分割されて送信されたデータブロックではないと前記判定機能により判定された場合には、前記受信機能により受信されたデータブロック毎に確認応答を生成する生成機能と、前記生成機能により生成された確認応答に、前記受信機能により受信されたデータブロックの所定領域に書き込まれていたデータを書き込んで送信する送信機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【００２０】
このような受信装置およびプログラムによれば、上記送信装置から送信したデータブロックに対して常に対応する確認応答が送信されてくる。
【００２１】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施形態について説明する。
【００２２】
［Ａ：構成］
（１：システム構成）
図１は、本発明の実施形態に係る通信システムの全体構成の一例を示す図である。受信装置１０は、無線通信機能を備えたコンピュータ装置であり、自装置を収容している無線アクセスポイント装置との間で、ＴＣＰにしたがった通信を無線で行うことができる。送信装置２０は、例えば、インターネットなどの通信網３０に接続されたコンピュータ装置であり、ＴＣＰにしたがってデータを送信する機能を備えている。
【００２３】
中継装置４０は、通信網３０に接続された無線アクセスポイント装置であり、自装置の形成する無線エリアに在圏している受信装置１０と、上記送信装置２０との間の通信を中継する機能を備えている。より詳細に説明すると、中継装置４０は、収容している受信装置１０との間に無線通信コネクションを確立するとともに、通信網３０を介して送信装置２０との間に通信コネクションを確立する。そして、中継装置４０は、上記通信コネクションを介して送信装置２０から送信されてくるセグメントを受信し、受信したセグメントを上記無線通信コネクションを介して受信装置１０へ送信することができる。また、中継装置４０は、受信装置１０から送信されてくる確認応答を上記無線通信コネクションを介して受信し、受信した確認応答を上記通信コネクションを介して送信装置２０へ送信することもできる。
【００２４】
図１に示す通信システムに含まれている受信装置１０と、送信装置２０と、中継装置４０とは、基本的に、前述したＥＣＮにしたがって輻輳の発生を回避する機能を備えている。加えて、図１に示す受信装置１０、送信装置２０および中継装置４０は、それぞれ、本発明に係る受信装置、送信装置および中継装置に特徴的な機能を備えている。
【００２５】
具体的には、中継装置４０は、送信装置２０から受信したセグメントを受信装置１０へ転送する際に利用される通信リソース（例えば、前述したキューや、上記無線通信コネクション）の状態を検出しその検出結果を送信装置２０へ通知する機能を備えている。より詳細に説明すると、中継装置４０は図２に示される状態コードテーブルを格納している。この状態コードテーブルには、上記通信リソースの状態を表すデータに対応付けて、その通信リソースの状態を送信装置２０へ通知するためのデータである状態コードが格納されている。
【００２６】
なお、図２に例示されている状態コードテーブルには、“１１”、“０１”および“１０”の３種類の状態コードが格納されている。また、図２に示される状態コードテーブルでは、上記通信リソースの状態を表すデータとして、受信装置１０との間で確立した無線通信コネクションにおけるデータ誤り率が用いられている。ここで、データ誤り率とは、上記無線通信コネクションを介して受信装置１０へ送信されたセグメントにおいて発生したビット反転（本来“０”であるべきビットが“１”になっていることおよびその逆）の割合である。
【００２７】
図２の状態コードテーブルの格納内容は、以下に述べる３つのことを示している。すなわち、第１に、上記データ誤り率が３０％未満である場合には、状態コード“０１”を送信装置２０へ通知するべきことである。第２に、上記データ誤り率が３０％以上６０％未満である場合には、送信装置２０へ状態コード“１０”を通知するべきことである。そして、第３に、上記データ誤り率が６０％以上である場合には、状態コード“１１”を送信装置２０へ通知するべきことである。
【００２８】
そして、中継装置４０は、送信装置２０から受信したセグメントを受信装置１０へ転送する際に、上記データ誤り率を検出し、そのデータ誤り率と上記状態コードテーブルの格納内容とに基づいて特定された状態コードを１ビット単位に分割して上記セグメントの所定領域（本実施形態では、ＣＥビットに該当する領域）に書き込んで転送する。なお、本実施形態では、上記通信リソースの状態を表すデータとして、無線通信コネクションにおけるデータ誤り率を用いる場合について説明したが、前述したキューの空き容量や、無線通信コネクションに割当てられている帯域幅であっても良いことは勿論である。
【００２９】
一方、送信装置２０は、上記状態コードを通知された場合に、その状態コードに基づいて輻輳ウィンドウサイズを拡大または縮小する（すなわち、連続して送信するセグメントの数を変更する）。加えて、送信装置２０は、輻輳ウィンドウサイズを変更したことを前述したＣＷＲビットを用いて中継装置４０へ通知する機能を備えている。より詳細に説明すると、送信装置２０は、図３に示す制御テーブルを格納しており、この制御テーブルには、中継装置４０から通知されてくる状態コードの取り得る値に対応づけて、その状態コードを受信した場合に変更すべき輻輳ウィンドウサイズの値を表すデータが格納されている。
【００３０】
そして、受信装置１０は、セグメントを受信した場合に、常に、そのセグメントのＣＥビットの値をそのセグメントに対応する確認応答のＥＣＮｅｃｈｏビットに書き込んで送信する機能を備えている。これは、中継装置４０から転送されてくるセグメントに分割して書き込まれている状態コードをそのセグメントの送信元である送信装置２０へ確実に通知するためである。
【００３１】
このように、図１に示す通信システムにおいては、ＥＣＮをサポートしている既存のＴＣＰにしたがいつつ、無線通信コネクションにおけるデータ誤り率を送信装置２０へ通知し、そのデータ誤り率に基づいて輻輳ウィンドウサイズを変更させるようにしている。
【００３２】
（２：中継装置４０の構成）
まず、中継装置４０の構成について図４を参照しつつ説明する。図４は中継装置４０の構成例を示す図であり、この図に示されているように、中継装置４０は、制御部１００と、第１通信インターフェイス（以下、「ＩＦ」）部１１０ａと第２通信ＩＦ部１１０ｂと記憶部１２０と、これら各構成要素間のデータ授受を仲介するバス１３０と、を有している。
【００３３】
制御部１００は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、記憶部１２０に格納されているソフトウェアを実行することにより、中継装置４０の各部を制御するものである。第１通信ＩＦ部１１０ａは、通信網３０に接続されており、通信網３０を介して送信されてくるデータを受信し、受信したデータを制御部１００へ引渡すとともに、制御部１００から引渡されたデータを通信網３０へ送出する機能を備えている。第２通信ＩＦ部１１０ｂは、上述した無線エリアに在圏している受信装置１０と無線通信する機能を備えている。この第２通信ＩＦ部１１０ｂは、受信装置１０から送信されてくるデータを受信し、受信したデータを制御部１００へ引渡すとともに、制御部１００から引渡されたデータを受信装置１０へ宛てて送出する。
【００３４】
記憶部１２０は、図４に示されるように、揮発性記憶部１２０ａと不揮発性記憶部１２０ｂとを含んでいる。揮発性記憶部１２０ａは、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ソフトウェアを実行中の制御部１００によりワークエリアとして利用される他、前述したキューとして機能する。なお、本実施形態では、揮発性記憶部１２０ａをキューとして用いる場合について説明するが、後述する不揮発性記憶部１２０ｂをキューとして用いても良いことは勿論である。
【００３５】
不揮発性記憶部１２０ｂは、例えばハードディスクであり、前述した状態コードテーブル（図２参照）と各種ソフトウェアを格納している。不揮発性記憶部１２０ｂに格納されているソフトウェアの一例としては、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：以下、「ＯＳ」）を制御部１００に実現させるためのＯＳソフトウェアや、送信装置２０から送信されたセグメントを受信装置１０へ中継するセグメント中継動作を制御部１００に実行させるための中継ソフトウェアなどが挙げられる。以下では、これらソフトウェアを実行することにより制御部１００に付与される機能について説明する。
【００３６】
中継装置４０の電源（図示省略）が投入されると、制御部１００は、まず、ＯＳソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する。ＯＳソフトウェアにしたがって作動している制御部１００には、中継装置４０の各部を制御する機能、他のソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する機能が付与される。そして、ＯＳソフトウェアの実行を完了し、ＯＳを実現している状態の制御部１００は、即座に、中継ソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する。
【００３７】
図５は、上記中継ソフトウェアにしたがって作動している制御部１００が実行するセグメント中継動作の流れを示すフローチャートである。図５に示されているように、中継ソフトウェアにしたがって作動している制御部１００には、一般的な中継装置が備えている機能に加え、本発明に係る中継装置に特徴的な機能が付与される。具体的には、以下に述べる７つの機能が付与される。
【００３８】
第１に、送信装置２０との間で通信コネクションを第１通信ＩＦ部１１０ａに確立させるとともに、受信装置１０との間で無線通信コネクションを第２通信ＩＦ部１１０ｂに確立させるコネクション確立機能である。
【００３９】
第２に、上記通信コネクションを介して送信されてくるセグメントを受信し、上記キューへ格納する受信機能である。
【００４０】
第３に、上記コネクション確立機能により確立された無線通信コネクションにおけるデータ誤り率を検出する検出機能である。
【００４１】
第４に、上記検出機能の検出結果と状態コードテーブル（図２参照）の格納内容とに基づいて、送信装置２０へ通知するべき状態コードを特定する特定機能である。
【００４２】
第５に、上記特定機能により特定された状態コードを所定のデータサイズ（本実施形態では、１ビット）で分割して、分割された状態コードを上記受信機能により受信されたセグメントのＣＥビットに書き込む書き込み機能である。より詳細には、制御部１００は、上記状態コードを１ビット単位で分割し、上記セグメントに付与されたシーケンス番号にしたがって上記分割された状態コードをその先頭部分から順番に上記ＣＥビットに書き込んでゆく。なお、本実施形態では、上記状態コードを１ビット単位で分割する場合について説明したが、係る分割単位が１ビットに限定されないことは勿論である。
【００４３】
第６に、上記書き込み機能により上記状態コードを分割して書き込んだセグメントを上記無線通信コネクションを介して受信装置１０へ転送する転送機能である。
【００４４】
そして、第７に、上記受信機能により受信されたセグメントのＣＷＲビットに“１”が書き込まれている場合に、上記書き込み機能によるＣＥビットの書き込みを取り止める機能である。なお、本実施形態では、送信装置２０から送信されてくるセグメントのＣＷＲビットに書き込まれている値に基づいて、ＣＥビットの書き込みを取り止める場合について説明した。しかしながら、上記転送機能により上記状態コードを書き込んだセグメントを転送してから所定の時間が経過した場合に、上記ＣＥビットの書き込みを取り止めるとしても良いことは勿論である。
【００４５】
以上に説明したように、中継装置４０のハードウェア構成は一般的なコンピュータ装置のハードウェア構成と同一であり、記憶部に格納されている各種ソフトウェアを制御部１００に実行させることにより、本発明に係る中継装置に特有な機能が付与される。
【００４６】
（３：送信装置２０の構成）
次いで、送信装置２０の構成について図６を参照しつつ説明する。図６は送信装置２０の構成例を示す図である。送信装置２０の構成が中継装置４０の構成と異なっている点は、以下に述べる４つの点のみである。第１に、第２通信ＩＦ部１１０ｂを有していない点である。第２に、受信装置１０へ送信するべきデータを不揮発性記憶部１２０ｂに格納している点である。第３に、状態コードテーブル（図２参照）に替えて制御コードテーブル（図３参照）を不揮発性記憶部１２０ｂに格納している点である。そして、第４に、上述した中継ソフトウェアに替えて、上記データを受信装置１０へ送信する動作を制御部１００に実行させるための送信ソフトウェアを不揮発性記憶部１２０ｂに格納している点である。以下では、不揮発性記憶部１２０ｂに格納されているソフトウェアを実行することにより、制御部１００に付与される機能について説明する。
【００４７】
送信装置２０の電源（図示省略）が投入されると、制御部１００は、まず、ＯＳソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する。ＯＳソフトウェアにしたがって作動している制御部１００には、送信装置２０の各部を制御する機能や他のソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する機能が付与される。そして、ＯＳソフトウェアの実行を完了しＯＳを実現している状態の制御部１００は、上記データを送信することを受信装置１０から要求されると、不揮発性記憶部１２０ｂから上記送信ソフトウェアを読み出し実行する。この送信ソフトウェアにしたがって作動している制御部１００は、ＥＣＮをサポートしているＴＣＰにしたがってデータを送信する動作の他に、本発明に係る送信装置に特徴的な動作を行う。
【００４８】
図７は、上記送信ソフトウェアにしたがって作動している制御部１００が実行する輻輳ウィンドウサイズ変更動作の流れを示すフローチャートである。図７に示されているように、上記送信ソフトウェアにしたがって作動している制御部１００には、本発明に係る送信装置に特徴的な３つの機能が付与される。
【００４９】
第１に、送信したセグメントに対応する確認応答に前述した状態コードが分割されて書き込まれている場合には、その状態コードを取得する取得機能である。より詳細に説明すると、制御部１００は。受信した確認応答の所定領域に書き込まれている１ビットのデータをその確認応答に内包されているシーケンス番号の順に連結して、上記状態コードを取得する。
【００５０】
第２に、上記取得機能により取得した状態コードと上記制御テーブル（図３参照）の格納内容とに基づいて、輻輳ウィンドウサイズを更新する更新機能である。
【００５１】
そして、第３に、上記更新機能により輻輳ウィンドウサイズを更新した場合に、後続して送信するセグメントのＣＷＲビットに“１”を書き込んで送信する機能である。なお、前述した中継装置４０が、状態コードを書き込んだセグメントを送信してから所定の時間が経過した場合に、該状態コードの書き込みを取り止める場合には、輻輳ウィンドウサイズを変更したことを上記ＣＷＲビットを用いて通知する必要はない。
【００５２】
このように、送信装置２０のハードウェア構成も一般的なコンピュータ装置のハードウェア構成と同一であり、記憶部に格納されている各種ソフトウェアを制御部１００に実行させることにより、本発明に係る送信装置に特徴的な機能が付与される。
【００５３】
（４：受信装置１０の構成）
次いで、受信装置１０の構成について図８を参照しつつ説明する。図８は受信装置１０の構成例を示す図である。受信装置１０の構成が中継装置４０の構成と異なっている点は、以下に述べる２つの点のみである。第１に、第１通信ＩＦ部１１０ａを有していない点である。第２に、ＯＳソフトウェアと後述する受信ソフトウェアのみを不揮発性記憶部１２０ｂに格納している点である。以下では、不揮発性記憶部１２０ｂに格納されているソフトウェアを実行することにより、制御部１００に付与される機能について説明する。
【００５４】
受信装置１０の電源（図示省略）が投入されると、制御部１００は、まず、ＯＳソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する。ＯＳソフトウェアにしたがって作動している制御部１００には、受信装置１０の各部を制御する機能や他のソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する機能が付与される。そして、ＯＳソフトウェアの実行を完了しＯＳを実現している状態の制御部１００は、例えば、ユーザにより送信装置２０に格納されているデータを取得することを指示されると、上記データの送信を送信装置２０へ要求するとともに、上記受信ソフトウェアを不揮発性記憶部１２０ｂから読み出し実行する。
【００５５】
図９は、受信ソフトウェアにしたがって作動している制御部１００が実行するセグメント受信動作の流れを示すフローチャートである、図９に示されているように、上記受信ソフトウェアにしたがって作動している制御部１００には、一般的な受信装置が有する機能に加え、本発明に係る受信装置に特徴的な機能が付与される。具体的には、以下に述べる２つの機能が付与される。第１に、中継装置から転送されてくるセグメントを受信する受信機能である。そして、第２に、受信機能により受信されたセグメントに対して、常に、対応する確認応答を生成しそのセグメントの送信元である送信装置２０へ宛てて送信する送信機能である。
【００５６】
このように、送信装置２０のハードウェア構成も一般的なコンピュータ装置のハードウェア構成と同一であり、記憶部に格納されている各種ソフトウェアを制御部１００に実行させることにより、本発明に係る受信装置に特徴的な機能が付与される。
【００５７】
［Ｂ：動作］
次いで、本実施形態に係る通信システムにおいて行われる動作のうち、その特徴を顕著に示す動作について、図面を参照しつつ説明する。なお、以下では、本動作の開始時点では、受信装置１０と中継装置４０との間だに無線通信コネクションが確立されているものとし、送信装置２０と中継装置４０との間だに通信コネクションが確立されているものとする。また、本動作の開始時点では、上記無線通信コネクションを介した通信のデータ誤り率は５％であるものとする。そして、送信装置２０は、受信装置１０へ宛てて２個のセグメントを送信したものとする。
【００５８】
送信装置２０から送信された２個のセグメントは、上記通信コネクションを介して中継装置４０へ到達する。以下、この２個のセグメントを受信した場合に、中継装置４０の制御部１００が行う動作について図５を参照しつつ説明する。
【００５９】
図５に示されているように、中継装置４０の制御部１００は、送信装置２０から送信されきたセグメントを第１通信ＩＦ部１１０ａを介して受信すると、受信したセグメントを前述したキューへ書き込む（ステップＳＡ１）。
【００６０】
次に、制御部１００は、ステップＳＡ１にて受信したセグメントを受信装置１０へ転送する際に利用される通信リソースの状態を検出する（ステップＳＡ２）。本動作例では、制御部１００は、受信装置１０との間に確立した無線通信コネクションにおけるデータ誤り率を検出する。そして、制御部１００は、ステップＳＡ２の検出結果と状態コードテーブル（図２参照）の格納内容とに基づいて、送信装置２０へ通知するべき状態コードを特定する（ステップＳＡ３）。前述したように、本動作例では、上記無線通信コネクションにおけるデータ誤り率は５％であるから、制御部１００は、送信装置２０へ通知するべき状態コードとして“０１”を特定する。
【００６１】
次に、制御部１００は、ステップＳＡ３にて特定した状態コードを１ビット単位に分割し、上記キューに格納されているセグメントのＣＥビットへ書き込み（ステップＳＡ４）、そのセグメントを第２通信ＩＦ部１１０ｂを介して受信装置１０へ送信する（ステップＳＡ５）。例えば、送信装置２０から受信した２つのセグメントに内包されているシーケンス番号が５００と１０００とである場合には、制御部１００は、シーケンス番号が５００であるセグメントのＣＥビットに“０”を書き込み、シーケンス番号が１０００であるセグメントのＣＥビットに“１”を書き込んで、これらのセグメントを第２通信ＩＦ部１１０ｂを介して受信装置１０へ送信する。
【００６２】
このようにして中継装置４０から送信された２つのセグメントは、上述した無線通信コネクションを介して受信装置１０へ到達する。以下、このようなセグメントを受信した場合に受信装置１０の制御部１００が行う動作について図９を参照しつつ説明する。
【００６３】
受信装置１０の制御部１００は、中継装置４０から転送されてきたセグメントを上記無線通信コネクションを介して受信（ステップＳＣ１）すると、そのセグメントに対応する確認応答を生成し、その確認応答のＥＣＮｅｃｈｏビットに、そのセグメントのＣＥビットに書き込まれている値を書き込んで送信装置２０へ宛てて送信する（ステップＳＣ２）。具体的には、制御部１００は、内包しているシーケンス番号が５００であり、ＣＥビットの値が“０”であるセグメントに対しては、シーケンス番号１０００を内包している確認応答を生成し、その確認応答のＥＣＮｅｃｈｏビットに“０”を書き込んで送信する。また、制御部１００は、内包しているシーケンス番号が１０００であり、ＣＥビットの値が“１”であるセグメントに対しては、シーケンス番号１５００を内包している確認応答を生成し、その確認応答のＥＣＮｅｃｈｏビットに“１”を書き込んで送信する。
【００６４】
このようにして受信装置１０から送信された確認応答は、上述した無線通信コネクションを介して中継装置４０へ到達し、上記通信コネクションを介して中継装置４０から送信装置２０へ転送される。以下、このような確認応答を受信した場合に送信装置２０の制御部１００が行う動作について図７を参照しつつ説明する。
【００６５】
図７は、上記確認応答を受信した場合に送信装置２０の制御部１００が行う輻輳ウィンドウサイズ変更動作の流れを示すフローチャートである。図７に示されているように、制御部１００は、送信したセグメントに対する確認応答を全て受信すると（ステップＳＢ１）、受信した確認応答に分割して書き込まれている状態コードを取得する（ステップＳＢ２）。具体的には、制御部１００は、ステップＳＢ１にて受信した確認応答のＥＣＮｅｃｈｏビットに書き込まれているデータをその確認応答に内包されているシーケンス番号の順に連結し、中継装置４０から通知された状態コードを取得する。
【００６６】
次いで、制御部１００はステップＳＢ２にて取得した状態コードと、前述した制御テーブル（図３参照）の格納内容とに基づいて、輻輳ウィンドウサイズを変更する（ステップＳＢ３）。本動作例では、中継装置４０から通知された状態コードの値は、“０１”であるから、制御部１００は、輻輳ウィンドウサイズの値を倍増させる。
【００６７】
このように、本実施形態に係る送信装置によれば、中継装置から送信された状態コードに基づいて輻輳ウィンドウサイズを変更することができる。前述したように、この状態コードは、送信装置から送信されたセグメントを受信装置へ転送する際に利用される通信リソースの状態に基づいて特定されるものであり、係る通信リソースの状態に基づいて輻輳ウィンドウサイズを変更することが可能になる。
【００６８】
［Ｃ：変形例］
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、例えば、以下のように変形することが考えられる。
【００６９】
（１：変形例１）
上述した実施形態では、中継装置４０が通信網３０に接続されている無線アクセスポイント装置であり、自装置の形成する無線エリアに在圏している受信装置１０と通信網３０に接続された送信装置２０との間の通信を中継する場合について説明した。しかしながら、本発明に係る中継装置は、係る無線アクセスポイント装置に限定されるものではない。例えば、送信装置から無線で送信されてくるセグメントを受信し、このセグメントを無線で受信装置へ送出する中継装置であっても良く、また、第１の通信網と第２の通信網とに有線接続され、第１の通信網を介して送信されてくるセグメントを第２の通信網へ送出する中継装置であっても良い。要は、送信装置と受信装置との間の通信を中継する中継装置であればよく、送信装置或いは受信装置との通信の態様が無線通信であるか有線通信であるかは問わない。
【００７０】
（２：変形例２）
上述した実施形態では、送信装置、中継装置および受信装置が行う通信がＴＣＰに準拠している場合について説明した。しかしながら、係る通信が準拠すべき通信プロトコルは、ＴＣＰに限定されるものではない。要は、中継装置が検出した通信リソースの状態を送信装置へ通知可能な通信プロトコルであれば、どのような通信プロトコルであっても良い。
【００７１】
また、上述した実施形態では、受信装置１０が受信したセグメントの所定領域に書き込まれているデータをそのまま書き込んだ確認応答を返信する機能を有している場合について説明した。しかしながら、受信装置がこのような機能を備えていない場合であっても、中継装置により検出された通信リソースの状態を送信装置へ通知させるようにすることは可能である。このようなことは、以下に述べるようにして実現される。まず、中継装置に、送信装置から受信したセグメントをそのまま受信装置へ転送させる。そして、この中継装置に、上記セグメントに対する確認応答が受信装置から送信されてきた場合に、その確認応答に上記状態コードを分割して書き込ませ、送信装置へ転送させる。これにより、中継装置が検出した通信リソースの状態を送信装置へ通知することが可能になる。
【００７２】
（３：変形例３）
上述した実施形態では、通信リソースの状態のみに基づいて輻輳ウィンドウサイズを変更させる場合について説明した。しかしながら、通信リソースの状態に加え、予め定められた付加条件に合致した場合に輻輳ウィンドウサイズを変更させるとしても勿論良い。具体的には、以下に述べる２つの態様が挙げられる。第１に、特定の送信装置のみに輻輳ウィンドウサイズを変更させるようにする態様である。このようなことは、上述した条件データに、通信リソースの状態に応じて輻輳ウィンドウサイズを変更させる送信装置を一意に特定するデータ（例えば、その送信装置に割当てられている通信アドレスやその送信装置が属しているサブネットを表すデータ）を含めておくことにより実現される。第２に、特定の時間帯を表すデータを上述した条件データに含めておき、その時間帯にのみ、通信リソースの状態に応じて輻輳ウィンドウサイズを変更させる態様である。
【００７３】
（４：変形例４）
上述した実施形態では、受信装置１０に、中継装置４０から転送されてきたセグメントに対して常に確認応答を送信させる場合について説明した。しかしながら、中継装置４０から転送されてきたセグメントが中継装置４０により分割されて送信されたセグメントである場合には、それら分割されたセグメントの全部に対して１つのセグメントを送信するとしても勿論良い。なお、中継装置４０から転送されてきたセグメントが、中継装置４０により分割されたセグメントであるか否かは、そのセグメントのＩＰオプションフィールドと呼ばれる領域に書き込まれているデータに基づいて判定することができる。
【００７４】
（５：変形例５）
上述した実施形態では、受信装置１０は、セグメントを受信する度に、必ず、対応する確認応答を送信する場合について説明した。しかしながら、本発明に係る中継装置と送信装置とが通信可能な受信装置は、係る受信装置に限定されるものではなく、一般的なＴＣＰの仕様にしたがって確認応答を送信する受信装置であっても良い。なお、一般的なＴＣＰの仕様では、少なくとも２つのセグメンにつき１つの確認応答を送信するべきことが定められている。但し、受信装置が一般的なＴＣＰの仕様にしたがって確認応答を送信する場合には、図２に示す状態コードテーブルに替えて図１０に示す状態コードテーブルを中継装置４０に記憶させておくとともに、図３に示す制御テーブルに替えて図１１に示す制御テーブルを送信装置２０に記憶させておく必要がある。
【００７５】
図１０に示す状態コードテーブルが図２に示す状態コードテーブルと異なっている点は、４ビットのデータ長を有する状態コードを格納している点である。この状態コードは、上述した実施形態における状態コードを構成する各ビットっを２個ずつ並べて構成されている。すなわち、図１０における“１１１１”は、図３における“１１”に対応しており、図１０における“１１００”は、図３における“１０”に対応しており、図１０における“００１１”は、図３における“０１”と対応している。
【００７６】
中継装置４０は、通信リソースの状態に基づいて、これら４種類の状態コードのうちから、１つの状態コードを特定し、特定した状態コードを１ビット単位で分割して４個のセグメントに書き込み、本変形例に係る受信装置へ送信する。以下では、状態コード“００１１”が１ビットづつに分割されて書き込まれた４つのセグメントが中継装置４０から受信装置１０へ転送される場合について説明する。
【００７７】
本変形例に係る受信装置は、上記４つのセグメントを受信すると、一般的なＴＣＰの仕様にしたがって、以下に述べる３つの態様のうちの何れかの態様で確認応答を送信する。第１に、受信した４つのセグメントの各々に対応する確認応答を送信する態様（すなわち、確認応答を４つ送信する態様）である。第２に、受信した４つのセグメントのうちの任意の３つに対応する確認応答を送信する態様（すなわち、確認応答を３つ送信する態様）である。第３に、受信した４つのセグメントのうち１番目と３番目に受信したセグメントまたは２番目と３番目に受信したセグメントまたは２番目と４番目に受信したセグメントに対応する確認応答を送信する態様（すなわち、確認応答を２つ送信する態様）である。上記第１の態様により送信される４つの確認応答に分割して書き込まれている状態コードは“００１１”である。また、上記第２の態様により送信される３つの確認応答に分割して書き込まれている状態コードは“００１”または“０１１”の何れかである。そして、上記第３の態様により送信される２つの確認応答に分割して書き込まれている状態コードは“０１”である。
【００７８】
一方、図１１に示す制御テーブルには、上記４種類の状態コード（“００１１”、“００１”、“０１１”および“０１”）に対応付けて、輻輳ウィンドウサイズを倍増させるべきことを表すデータが格納されている。このデータは、図３に示す制御コードテーブルにおいては、状態コード“０１”に対応付けられていたものである。以上に説明したように、図１０に示す状態コードテーブルを中継装置４０に記憶させておくとともに、図１１に示す制御テーブルを送信装置２０に記憶させておくことにより、中継装置４０により中継されたセグメントを受信する受信装置が、一般的なＴＣＰの仕様にしたがって確認応答を送信する受信装置であって、中継装置４０により検出された通信リソースの状態を送信装置２０へ正しく通知することが可能になる。
【００７９】
（６：変形例６）
上述した実施形態では、状態コードが固定長データであり、そのデータ長が２ビットである場合について説明した。しかしながら、状態コードのデータ長は２ビットに限定されるものではない。要は、中継装置から送信装置へ通知するべき通信リソースの状態の種類に応じて適切なビット長の状態コードを割当てれば良い。また、状態コードは、固定長データに限定されるものではなく、可変長データであっても勿論良い。可変長の状態コードを用いる場合には、例えば、ハフマン符号のように、通信リソース状態の発生頻度に応じて、頻繁に発生する状態に対しては、ビット長の短い状態コードを割り当て、稀にしか発生しない状態に対してはビット長の長い状態コードを割当てることが可能になる。
【００８０】
（７：変形例７）
上述した実施形態では、送信装置に、受信した確認応答のＥＣＮｅｃｈｏビットに書き込まれているデータをその確認応答に内包されているシーケンス番号の順に連結することによって、中継装置から送信された状態コードを取得させる場合について説明した。しかしながら、受信装置から送信された確認応答のうち、送信装置に到達しない確認応答があった場合には、送信装置に輻輳ウィンドウサイズの変更を禁止するとしても勿論良い。このようにすると、確認応答の欠落が発生した場合であっても、送信装置が誤って輻輳ウィンドウサイズを変更することが防止されるといった効果を奏する。
【００８１】
（８：変形例８）
上述した実施形態では、送信装置２０へ通知するべき状態コードを検出した通信リソースの状態と図２に示す状態コードテーブルの格納内容とに基づいて特定する場合について説明した。しかしながら、係る状態コードテーブルを用いなくとも、送信装置２０へ通知するべき状態コードを特定することは可能である。例えば、以下に述べるような処理を制御部１００に実行させるプログラムを用いることにより実現される。すなわち、データ誤り率が３０％未満である場合には、状態コードに“０１”を設定させる。データ誤り率が３０％以上６０％未満である場合には、状態コードに“１０”を設定させる。そして、データ誤り率が６０％以上である場合には、状態コードに“１１”を設定させる。
【００８２】
（９：変形例９）
上述した実施形態では、中継装置や送信装置や受信装置に本発明に特徴的な機能を実現させるためのソフトウェアを予め記憶させておく場合について説明した。しかしながら、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃｋ―ＲｅａｄＯｎｌｙ  Ｍｅｍｏｒｙ）などのコンピュータ装置読み取り可能な記録媒体に上記ソフトウェアを書き込んでおき、このような記録媒体を用いて上記ソフトウェアを一般的なコンピュータ装置にインストールするとしても勿論良い。このようにすると、一般的なコンピュータ装置に、本発明に係る中継装置や送信装置や受信装置と同一の機能を付与することが可能になるといった効果を奏する。
【００８３】
【発明の効果】
本発明によれば、既存の通信プロトコルとの互換性を維持しつつ、送信装置から送信されたデータブロックを受信装置へ転送する際に利用される通信リソースの状態に基づいて、その送信装置に連続して送信するデータブロックの数を拡大または縮小させることが可能になるといった効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施形態に係る通信システムの全体構成の一例を示す図である。
【図２】同中継装置４０に記憶されている状態コードテーブルの一例を示す図である。
【図３】同送信装置２０に格納されている制御テーブルの一例を示す図である。
【図４】同中継装置４０の構成例を示す図である。
【図５】同中継装置４０の制御部１００が実行するセグメント中継動作の流れを示すフローチャートである。
【図６】同送信装置２０の構成例を示す図である。
【図７】同送信装置２０の制御部１００が実行する輻輳ウィンドウサイズ変更動作の流れを示すフローチャートである。
【図８】同受信装置１０の構成例を示す図である。
【図９】同受信装置１０の制御部１００が実行するセグメント受信動作の流れを示すフローチャートである。
【図１０】変形例４に係る状態コードテーブルの一例を示す図である。
【図１１】変形例４に係る制御テーブルの一例を示す図である。
【図１２】従来の技術を説明するための図である。
【符号の説明】
１０、２１０…受信装置、２０、２２０…送信装置、３０…通信網、４０、２４０…中継装置、１００…制御部、１１０ａ…第１通信ＩＦ部、１１０ｂ…第２通信ＩＦ部、１２０…記憶部、１２０ａ…揮発性記憶部、１２０ｂ…不揮発性記憶部、１３０…バス。
【図１】
2005064598.tif 000004
【図２】
2005064598.tif 000005
【図３】
2005064598.tif 000006
【図４】
2005064598.tif 000007
【図５】
2005064598.tif 000008
【図６】
2005064598.tif 000009
【図７】
2005064598.tif 000010
【図８】
2005064598.tif 000011
【図９】
2005064598.tif 000012
【図１０】
2005064598.tif 000013
【図１１】
2005064598.tif 000014
【図１２】
2005064598.tif 000015