JP4235507B2 - 中継装置、送信装置、受信装置およびプログラム - Google Patents

中継装置、送信装置、受信装置およびプログラム Download PDF

Info

Publication number
JP4235507B2
JP4235507B2 JP2003207601A JP2003207601A JP4235507B2 JP 4235507 B2 JP4235507 B2 JP 4235507B2 JP 2003207601 A JP2003207601 A JP 2003207601A JP 2003207601 A JP2003207601 A JP 2003207601A JP 4235507 B2 JP4235507 B2 JP 4235507B2
Authority
JP
Japan
Prior art keywords
status code
data block
function
data
communication connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003207601A
Other languages
English (en)
Other versions
JP2005064598A5 (ja
JP2005064598A (ja
Inventor
基治 三宅
浩 稲村
修 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003207601A priority Critical patent/JP4235507B2/ja
Priority to CNB2004100558654A priority patent/CN1310479C/zh
Priority to US10/914,910 priority patent/US7817552B2/en
Priority to DE200460004706 priority patent/DE602004004706T2/de
Priority to EP20040019168 priority patent/EP1507370B1/en
Publication of JP2005064598A publication Critical patent/JP2005064598A/ja
Publication of JP2005064598A5 publication Critical patent/JP2005064598A5/ja
Application granted granted Critical
Publication of JP4235507B2 publication Critical patent/JP4235507B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
中継装置を介してデータ通信を行う技術に関する。
【0002】
【従来の技術】
TCP(Transmission Control Protocol)は、OSI(Open Systems Interconnection)参照モデルのトランスポート層に相当する通信プロトコルであり、信頼性の高いデータ通信を実現させることができる。具体的には、TCPにしたがって行われる通信では、送信元から送信されるデータは、所定のデータサイズを有する部分データに分割され、部分データ毎に固有のヘッダを付与されたデータブロック(以下、「セグメント」)として送信される。このヘッダには、各セグメントに内包されている部分データを一意に特定するシーケンス番号が書き込まれており、このシーケンス番号は基本的に送信装置から送信されるセグメントの順番に一致している。そして、このセグメントを受信する受信装置は、そのセグメントに内包されているシーケンス番号に基づいて、セグメントの欠落の有無を検出し、欠落したセグメントの再送信をその送信元へ要求することができる。また、TCPにしたがって行われる通信では、その通信に関与するネットワーク機器(例えば、ルータなどの中継装置)に輻輳が発生する虞があることを検出させ、輻輳の発生を事前に回避させるようにすることも可能である。このように、輻輳の発生を事前に回避する技術としては、非特許文献1にその仕様が開示されているECN(Explicit Congesition Notification)が挙げられる。以下、ECNをサポートしているTCPにしたがって行われる通信について図面を参照しつつ説明する。
【0003】
図12は、ECNをサポートしているTCPにしたがって行われる通信を説明するための図である。図12の送信装置220から送信されたセグメントは、中継装置240を介して受信装置210へ送信される。この中継装置240は、送信装置220から送信されたセグメントを受信し記憶するキューを備えており、このキューに記憶させたセグメントを順次、受信装置210へ宛てて送信している。この中継装置240においては、このようにしてセグメントの中継が行われるため、上記キューの記憶容量を超過するデータ量のセグメントが送信されてしまうと、送信されたセグメントを中継しきれず、輻輳が発生してしまう。非特許文献1に開示されている技術では、このような事態の発生を回避するため、上記キューの空き容量を中継装置240に監視させ、その空き容量が所定の閾値以下になった場合に、その旨を送信装置220へ通知させるようにしている。より詳細に説明すると、中継装置240は、上記キューの空き容量が所定の閾値以下になったことを検出すると、受信装置210へ転送するセグメントの所定のビット(以下、「CEビット」と呼ぶ)を1に書換え、そのセグメントを受信装置210へ転送する。このようなセグメントを受信した受信装置210は、そのセグメントに対する確認応答を送信する際に、そのセグメントの所定のビット(以下、「ECNechoビット」と呼ぶ)を1に書き換えて送信する。そして、このような確認応答を受信した送信装置220は、連続して送信するセグメントの数(以下、「輻輳ウィンドウサイズ」と呼ぶ)を縮小し、中継装置240における輻輳が発生しないようにする。そして、送信装置220は、セグメントの送信を継続する場合には、送信するセグメントの所定のビット(以下、「CWRビット」と呼ぶ)を1に書き換えて送信する。以降、中継装置240は、CWRビットの値が1であるセグメントを受信すると、送信装置220において輻輳ウィンドウサイズが変更されたことを検出し、送信装置220から受信したセグメントのCEビットを書き換えることを取り止める。
【0004】
以上に説明したように、ECNをサポートしているTCPにしたがって行われる通信では、中継装置240のキューの空き容量に基づいて輻輳の発生を事前に回避させるようにしている。
【0005】
【非特許文献1】
Figure 0004235507
【0006】
【発明が解決しようとする課題】
上述した非特許文献1に開示されている技術では、中継装置にキューの空き容量に不足が生じていることをセグメントの送信元へ通知させているが、逆に、キューの空き容量に余裕があることも通知することができたならば便利である。その理由は、このようなことが実現されると、キューの空き容量に余裕がある場合には、送信装置に輻輳ウィンドウサイズを拡大させ、セグメントの送信効率を向上させることができるからである。また、上記キューの空き容量だけではなく、送信装置から受信したセグメントを受信装置へ転送する際に利用する通信回線の帯域幅や通信品質など、上記セグメントを転送する際に用いられる通信リソースの状態を通知することができたならば、更に利便性が向上する。その理由は、このような通信リソースの状態も輻輳の発生に関与するからである。
【0007】
しかしながら、非特許文献1に開示されている技術では、このように多様な通信リソースの状態をきめ細かくセグメントの送信元へ通知し、輻輳ウィンドウサイズを拡大または縮小させることはできない。その理由は、非特許文献1に開示されている技術において、上記キューの空き容量を通知するためのCEビットには、0または1の何れかの値のみしか書き込むことができず、多様な通信リソースの状態をきめ細かく表現することはできないからである。このようなニーズに応えるための方策としては、多様な通信リソースの状態をきめ細かく通知するために充分な領域を上記セグメント内に確保しておくことも考えられる。しかしながら、このようなことを行ってしまうと、既存の通信プロトコルとの下位互換性がなくなってしまう。一般に、上述した中継装置を介して通信を行う送信装置や受信装置の全てが上記拡張を施された通信プロトコルにしたがって通信を行う訳ではないので、下位互換性が確保されていないことは好ましくない。
【0008】
本発明は、上記課題に鑑みて為されたものであり、既存の通信プロトコルとの互換性を維持しつつ、送信装置から送信されたデータブロックを受信装置へ転送する際に利用される通信リソースの状態に基づいて、その送信装置に連続して送信するデータブロックの数を拡大または縮小させることを可能にする技術を提供することを目的としている。
【0009】
【課題を解決するための手段】
本発明は、一の態様において、送信装置から受信装置へ送信された1以上のデータブロックを中継装置が中継する場合において、前記中継装置が、通信リソースの状態を表す状態コードを取得するステップと、前記中継装置が、前記状態コードを複数部分に分割し、各データブロックに付与されたシーケンス番号に従って、該分割された状態コードを、その先頭部分から順番に、前記送信装置から受信した各データブロックの所定領域に書き込むステップと、
前記中継装置が、各々分割された状態コードが書き込まれた複数のデータブロックを、前記受信装置へ送信するステップと、前記中継装置が、前記複数のデータブロックに対する確認応答を前記受信装置から受信すると、前記送信装置に転送するステップと、前記送信装置が、前記複数の確認応答を前記中継装置から受信すると、該受信した複数の確認応答に基づいて状態コードを復元し、該状態コードに基づいてウィンドウ制御を実行するステップとを有する通信制御方法を提供する。
本発明は、他の態様において、送信装置から受信装置へ送信された1以上のデータブロックを中継装置が中継する場合において、前記中継装置が、通信リソースの状態を表す状態コードを取得するステップと、前記中継装置が、前記状態コードを複数部分に分割し、各確認応答に付与されたシーケンス番号に従って、該分割された状態コードを、その先頭部分から順番に、前記受信装置から受信した各データブロックに対応する確認応答の所定領域にそれぞれ書き込むステップと、前記中継装置が、各々分割された状態コードが書き込まれた複数の確認応答を、前記送信装置へ送信するステップと、前記送信装置が、前記複数の確認応答を受信すると、該受信した複数の確認応答に基づいて状態コードを復元し、該状態コードに基づいてウィンドウ制御を実行するステップとを有する通信制御方法を提供する。これらの方法によれば、通信リソースの状態の状態に応じて、連続して送信すべきデータブロック数を増加または減少させることができる。
また、本発明は、他の観点において、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第2の通信コネクションを確立するコネクション確立手段と、前記第1の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信手段と、前記第1の通信コネクションを介して受信したデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、前記取得手段により取得された状態コードを複数部分に分割し、前記受信手段によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、前記書き込み手段により前記状態コードを分割して書き込まれたデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する転送手段とを有する中継装置を提供する。
【0010】
また、本発明は、上記課題を解決するために、コンピュータ装置に、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第2の通信コネクションを確立するコネクション確立機能と、前記第1の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信機能と、前記受信機能により受信されたデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出する検出機能と、前記検出機能の検出結果を表す状態コード取得する取得機能と、前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、前記書き込み機能により前記状態コードを分割して書き込まれたデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する転送機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【0011】
このような中継装置およびプログラムによれば、上記送信装置から送信されたデータブロックを上記受信装置へ転送する際に利用される通信リソースの状態に基づいて、上記送信装置へ送信するべき状態コードが特定され、この状態コードが上記受信装置を介して上記送信装置へ通知される。
【0012】
また、本発明は、上記課題を解決するために、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、受信したデータブロックに対応する確認応答を該データブロックの送信元に送信する受信装置との間に第2の通信コネクションを確立するコネクション確立手段と、前記第1の通信コネクションを介して受信したデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、前記第2の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信手段と、前記状態コードを複数部分に分割し、前記受信手段によって受信されている確認応答の各々の所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、前記書き込み手段により前記分割された状態コードを書き込まれた確認応答を前記第1の通信コネクションを介して前記送信装置へ転送する転送手段とを有する中継装置を提供する。
【0013】
また、本発明は、上記課題を解決するために、コンピュータ装置に、データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、該送信装置から送信されてくるセグメントを受信し、受信したデータブロックに対応する確認応答を返信する受信装置との間に第2の通信コネクションを確立するコネクション確立機能と、前記第1の通信コネクションを介して受信したデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得機能と、前記第2の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信機能と、前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されている確認応答の各々の前記所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、前記書き込み機能により前記状態コードを分割して書き込まれた確認応答を前記第1の通信コネクションを介して前記送信装置へ転送する転送機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【0014】
このような中継装置およびプログラムによれば、上記送信装置から送信されたデータブロックを上記受信装置へ転送する際に利用される通信リソースの状態に基づいて、上記送信装置へ送信するべき状態コードが特定され、この状態コードが上記送信装置へ通知される。
【0015】
また、本発明は、上記課題を解決するために、予め定められた数のデータブロックを連続して送信する送信手段と、前記送信手段により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信手段と、前記受信手段により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表すデータが分割されて書き込まれている場合に、該データを取得する取得手段と、前記取得手段により取得されたデータに基づいて、連続して送信するデータブロックの数を変更する変更手段とを有する送信装置を提供する。
【0016】
また、本発明は、上記課題を解決するために、コンピュータ装置に、予め定められた数のデータブロックを連続して送信する送信機能と、前記送信機能により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信機能と、前記受信機能により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表す状態コードが分割されて書き込まれている場合に、該状態コードを取得する取得機能と、前記取得機能により取得された状態コードに基づいて、連続して送信するデータブロックの数を変更する変更機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【0017】
このような送信装置およびプログラムによれば、送信したデータブロックに対応する確認応答に分割して書き込まれている状態コードに基づいて、連続して送信するデータブロックの数が変更される。
【0018】
また、本発明は、上記課題を解決するために、データブロックを受信する受信手段と、前記受信手段により受信されたデータブロックが中継装置により分割されて送信されたデータブロックであるか否かを該データブロックの内容に基づいて判定する判定手段と、前記中継装置により分割されて送信されたデータブロックであると前記判定手段により判定された場合には、分割されたデータブロックを前記受信手段により全て受信した場合に、1つの確認応答を生成し、前記中継装置により分割されて送信されたデータブロックではないと前記判定手段により判定された場合には、前記受信手段により受信されたデータブロック毎に確認応答を生成する生成手段と、前記生成手段により生成された確認応答に、前記受信手段により受信されたデータブロックの所定領域に書き込まれているデータを書き込んで送信する送信手段とを有する受信装置を提供する。
【0019】
また、本発明は、上記課題を解決するために、コンピュータ装置に、データブロックを受信する受信機能と、前記受信機能により受信されたデータブロックが中継装置により分割されたデータブロックであるか否かを該データブロックの内容に基づいて判定する判定機能と、前記中継装置により分割されて送信されたデータブロックであると前記判定機能により判定された場合には、分割されたデータブロックを前記受信手段により全て受信した場合に、1つの確認応答を生成し、前記中継装置により分割されて送信されたデータブロックではないと前記判定機能により判定された場合には、前記受信機能により受信されたデータブロック毎に確認応答を生成する生成機能と、前記生成機能により生成された確認応答に、前記受信機能により受信されたデータブロックの所定領域に書き込まれていたデータを書き込んで送信する送信機能とを実現させるプログラムと、コンピュータ装置読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体と、を提供する。
【0020】
このような受信装置およびプログラムによれば、上記送信装置から送信したデータブロックに対して常に対応する確認応答が送信されてくる。
【0021】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施形態について説明する。
【0022】
[A:構成]
(1:システム構成)
図1は、本発明の実施形態に係る通信システムの全体構成の一例を示す図である。受信装置10は、無線通信機能を備えたコンピュータ装置であり、自装置を収容している無線アクセスポイント装置との間で、TCPにしたがった通信を無線で行うことができる。送信装置20は、例えば、インターネットなどの通信網30に接続されたコンピュータ装置であり、TCPにしたがってデータを送信する機能を備えている。
【0023】
中継装置40は、通信網30に接続された無線アクセスポイント装置であり、自装置の形成する無線エリアに在圏している受信装置10と、上記送信装置20との間の通信を中継する機能を備えている。より詳細に説明すると、中継装置40は、収容している受信装置10との間に無線通信コネクションを確立するとともに、通信網30を介して送信装置20との間に通信コネクションを確立する。そして、中継装置40は、上記通信コネクションを介して送信装置20から送信されてくるセグメントを受信し、受信したセグメントを上記無線通信コネクションを介して受信装置10へ送信することができる。また、中継装置40は、受信装置10から送信されてくる確認応答を上記無線通信コネクションを介して受信し、受信した確認応答を上記通信コネクションを介して送信装置20へ送信することもできる。
【0024】
図1に示す通信システムに含まれている受信装置10と、送信装置20と、中継装置40とは、基本的に、前述したECNにしたがって輻輳の発生を回避する機能を備えている。加えて、図1に示す受信装置10、送信装置20および中継装置40は、それぞれ、本発明に係る受信装置、送信装置および中継装置に特徴的な機能を備えている。
【0025】
具体的には、中継装置40は、送信装置20から受信したセグメントを受信装置10へ転送する際に利用される通信リソース(例えば、前述したキューや、上記無線通信コネクション)の状態を検出しその検出結果を送信装置20へ通知する機能を備えている。より詳細に説明すると、中継装置40は図2に示される状態コードテーブルを格納している。この状態コードテーブルには、上記通信リソースの状態を表すデータに対応付けて、その通信リソースの状態を送信装置20へ通知するためのデータである状態コードが格納されている。
【0026】
なお、図2に例示されている状態コードテーブルには、“11”、“01”および“10”の3種類の状態コードが格納されている。また、図2に示される状態コードテーブルでは、上記通信リソースの状態を表すデータとして、受信装置10との間で確立した無線通信コネクションにおけるデータ誤り率が用いられている。ここで、データ誤り率とは、上記無線通信コネクションを介して受信装置10へ送信されたセグメントにおいて発生したビット反転(本来“0”であるべきビットが“1”になっていることおよびその逆)の割合である。
【0027】
図2の状態コードテーブルの格納内容は、以下に述べる3つのことを示している。すなわち、第1に、上記データ誤り率が30%未満である場合には、状態コード“01”を送信装置20へ通知するべきことである。第2に、上記データ誤り率が30%以上60%未満である場合には、送信装置20へ状態コード“10”を通知するべきことである。そして、第3に、上記データ誤り率が60%以上である場合には、状態コード“11”を送信装置20へ通知するべきことである。
【0028】
そして、中継装置40は、送信装置20から受信したセグメントを受信装置10へ転送する際に、上記データ誤り率を検出し、そのデータ誤り率と上記状態コードテーブルの格納内容とに基づいて特定された状態コードを1ビット単位に分割して上記セグメントの所定領域(本実施形態では、CEビットに該当する領域)に書き込んで転送する。なお、本実施形態では、上記通信リソースの状態を表すデータとして、無線通信コネクションにおけるデータ誤り率を用いる場合について説明したが、前述したキューの空き容量や、無線通信コネクションに割当てられている帯域幅であっても良いことは勿論である。
【0029】
一方、送信装置20は、上記状態コードを通知された場合に、その状態コードに基づいて輻輳ウィンドウサイズを拡大または縮小する(すなわち、連続して送信するセグメントの数を変更する)。加えて、送信装置20は、輻輳ウィンドウサイズを変更したことを前述したCWRビットを用いて中継装置40へ通知する機能を備えている。より詳細に説明すると、送信装置20は、図3に示す制御テーブルを格納しており、この制御テーブルには、中継装置40から通知されてくる状態コードの取り得る値に対応づけて、その状態コードを受信した場合に変更すべき輻輳ウィンドウサイズの値を表すデータが格納されている。
【0030】
そして、受信装置10は、セグメントを受信した場合に、常に、そのセグメントのCEビットの値をそのセグメントに対応する確認応答のECNechoビットに書き込んで送信する機能を備えている。これは、中継装置40から転送されてくるセグメントに分割して書き込まれている状態コードをそのセグメントの送信元である送信装置20へ確実に通知するためである。
【0031】
このように、図1に示す通信システムにおいては、ECNをサポートしている既存のTCPにしたがいつつ、無線通信コネクションにおけるデータ誤り率を送信装置20へ通知し、そのデータ誤り率に基づいて輻輳ウィンドウサイズを変更させるようにしている。
【0032】
(2:中継装置40の構成)
まず、中継装置40の構成について図4を参照しつつ説明する。図4は中継装置40の構成例を示す図であり、この図に示されているように、中継装置40は、制御部100と、第1通信インターフェイス(以下、「IF」)部110aと第2通信IF部110bと記憶部120と、これら各構成要素間のデータ授受を仲介するバス130と、を有している。
【0033】
制御部100は、例えばCPU(Central Proccessing Unit)であり、記憶部120に格納されているソフトウェアを実行することにより、中継装置40の各部を制御するものである。第1通信IF部110aは、通信網30に接続されており、通信網30を介して送信されてくるデータを受信し、受信したデータを制御部100へ引渡すとともに、制御部100から引渡されたデータを通信網30へ送出する機能を備えている。第2通信IF部110bは、上述した無線エリアに在圏している受信装置10と無線通信する機能を備えている。この第2通信IF部110bは、受信装置10から送信されてくるデータを受信し、受信したデータを制御部100へ引渡すとともに、制御部100から引渡されたデータを受信装置10へ宛てて送出する。
【0034】
記憶部120は、図4に示されるように、揮発性記憶部120aと不揮発性記憶部120bとを含んでいる。揮発性記憶部120aは、例えばRAM(Random Access Memory)であり、ソフトウェアを実行中の制御部100によりワークエリアとして利用される他、前述したキューとして機能する。なお、本実施形態では、揮発性記憶部120aをキューとして用いる場合について説明するが、後述する不揮発性記憶部120bをキューとして用いても良いことは勿論である。
【0035】
不揮発性記憶部120bは、例えばハードディスクであり、前述した状態コードテーブル(図2参照)と各種ソフトウェアを格納している。不揮発性記憶部120bに格納されているソフトウェアの一例としては、オペレーティングシステム(Operating System:以下、「OS」)を制御部100に実現させるためのOSソフトウェアや、送信装置20から送信されたセグメントを受信装置10へ中継するセグメント中継動作を制御部100に実行させるための中継ソフトウェアなどが挙げられる。以下では、これらソフトウェアを実行することにより制御部100に付与される機能について説明する。
【0036】
中継装置40の電源(図示省略)が投入されると、制御部100は、まず、OSソフトウェアを不揮発性記憶部120bから読み出し実行する。OSソフトウェアにしたがって作動している制御部100には、中継装置40の各部を制御する機能、他のソフトウェアを不揮発性記憶部120bから読み出し実行する機能が付与される。そして、OSソフトウェアの実行を完了し、OSを実現している状態の制御部100は、即座に、中継ソフトウェアを不揮発性記憶部120bから読み出し実行する。
【0037】
図5は、上記中継ソフトウェアにしたがって作動している制御部100が実行するセグメント中継動作の流れを示すフローチャートである。図5に示されているように、中継ソフトウェアにしたがって作動している制御部100には、一般的な中継装置が備えている機能に加え、本発明に係る中継装置に特徴的な機能が付与される。具体的には、以下に述べる7つの機能が付与される。
【0038】
第1に、送信装置20との間で通信コネクションを第1通信IF部110aに確立させるとともに、受信装置10との間で無線通信コネクションを第2通信IF部110bに確立させるコネクション確立機能である。
【0039】
第2に、上記通信コネクションを介して送信されてくるセグメントを受信し、上記キューへ格納する受信機能である。
【0040】
第3に、上記コネクション確立機能により確立された無線通信コネクションにおけるデータ誤り率を検出する検出機能である。
【0041】
第4に、上記検出機能の検出結果と状態コードテーブル(図2参照)の格納内容とに基づいて、送信装置20へ通知するべき状態コードを特定する特定機能である。
【0042】
第5に、上記特定機能により特定された状態コードを所定のデータサイズ(本実施形態では、1ビット)で分割して、分割された状態コードを上記受信機能により受信されたセグメントのCEビットに書き込む書き込み機能である。より詳細には、制御部100は、上記状態コードを1ビット単位で分割し、上記セグメントに付与されたシーケンス番号にしたがって上記分割された状態コードをその先頭部分から順番に上記CEビットに書き込んでゆく。なお、本実施形態では、上記状態コードを1ビット単位で分割する場合について説明したが、係る分割単位が1ビットに限定されないことは勿論である。
【0043】
第6に、上記書き込み機能により上記状態コードを分割して書き込んだセグメントを上記無線通信コネクションを介して受信装置10へ転送する転送機能である。
【0044】
そして、第7に、上記受信機能により受信されたセグメントのCWRビットに“1”が書き込まれている場合に、上記書き込み機能によるCEビットの書き込みを取り止める機能である。なお、本実施形態では、送信装置20から送信されてくるセグメントのCWRビットに書き込まれている値に基づいて、CEビットの書き込みを取り止める場合について説明した。しかしながら、上記転送機能により上記状態コードを書き込んだセグメントを転送してから所定の時間が経過した場合に、上記CEビットの書き込みを取り止めるとしても良いことは勿論である。
【0045】
以上に説明したように、中継装置40のハードウェア構成は一般的なコンピュータ装置のハードウェア構成と同一であり、記憶部に格納されている各種ソフトウェアを制御部100に実行させることにより、本発明に係る中継装置に特有な機能が付与される。
【0046】
(3:送信装置20の構成)
次いで、送信装置20の構成について図6を参照しつつ説明する。図6は送信装置20の構成例を示す図である。送信装置20の構成が中継装置40の構成と異なっている点は、以下に述べる4つの点のみである。第1に、第2通信IF部110bを有していない点である。第2に、受信装置10へ送信するべきデータを不揮発性記憶部120bに格納している点である。第3に、状態コードテーブル(図2参照)に替えて制御コードテーブル(図3参照)を不揮発性記憶部120bに格納している点である。そして、第4に、上述した中継ソフトウェアに替えて、上記データを受信装置10へ送信する動作を制御部100に実行させるための送信ソフトウェアを不揮発性記憶部120bに格納している点である。以下では、不揮発性記憶部120bに格納されているソフトウェアを実行することにより、制御部100に付与される機能について説明する。
【0047】
送信装置20の電源(図示省略)が投入されると、制御部100は、まず、OSソフトウェアを不揮発性記憶部120bから読み出し実行する。OSソフトウェアにしたがって作動している制御部100には、送信装置20の各部を制御する機能や他のソフトウェアを不揮発性記憶部120bから読み出し実行する機能が付与される。そして、OSソフトウェアの実行を完了しOSを実現している状態の制御部100は、上記データを送信することを受信装置10から要求されると、不揮発性記憶部120bから上記送信ソフトウェアを読み出し実行する。この送信ソフトウェアにしたがって作動している制御部100は、ECNをサポートしているTCPにしたがってデータを送信する動作の他に、本発明に係る送信装置に特徴的な動作を行う。
【0048】
図7は、上記送信ソフトウェアにしたがって作動している制御部100が実行する輻輳ウィンドウサイズ変更動作の流れを示すフローチャートである。図7に示されているように、上記送信ソフトウェアにしたがって作動している制御部100には、本発明に係る送信装置に特徴的な3つの機能が付与される。
【0049】
第1に、送信したセグメントに対応する確認応答に前述した状態コードが分割されて書き込まれている場合には、その状態コードを取得する取得機能である。より詳細に説明すると、制御部100は。受信した確認応答の所定領域に書き込まれている1ビットのデータをその確認応答に内包されているシーケンス番号の順に連結して、上記状態コードを取得する。
【0050】
第2に、上記取得機能により取得した状態コードと上記制御テーブル(図3参照)の格納内容とに基づいて、輻輳ウィンドウサイズを更新する更新機能である。
【0051】
そして、第3に、上記更新機能により輻輳ウィンドウサイズを更新した場合に、後続して送信するセグメントのCWRビットに“1”を書き込んで送信する機能である。なお、前述した中継装置40が、状態コードを書き込んだセグメントを送信してから所定の時間が経過した場合に、該状態コードの書き込みを取り止める場合には、輻輳ウィンドウサイズを変更したことを上記CWRビットを用いて通知する必要はない。
【0052】
このように、送信装置20のハードウェア構成も一般的なコンピュータ装置のハードウェア構成と同一であり、記憶部に格納されている各種ソフトウェアを制御部100に実行させることにより、本発明に係る送信装置に特徴的な機能が付与される。
【0053】
(4:受信装置10の構成)
次いで、受信装置10の構成について図8を参照しつつ説明する。図8は受信装置10の構成例を示す図である。受信装置10の構成が中継装置40の構成と異なっている点は、以下に述べる2つの点のみである。第1に、第1通信IF部110aを有していない点である。第2に、OSソフトウェアと後述する受信ソフトウェアのみを不揮発性記憶部120bに格納している点である。以下では、不揮発性記憶部120bに格納されているソフトウェアを実行することにより、制御部100に付与される機能について説明する。
【0054】
受信装置10の電源(図示省略)が投入されると、制御部100は、まず、OSソフトウェアを不揮発性記憶部120bから読み出し実行する。OSソフトウェアにしたがって作動している制御部100には、受信装置10の各部を制御する機能や他のソフトウェアを不揮発性記憶部120bから読み出し実行する機能が付与される。そして、OSソフトウェアの実行を完了しOSを実現している状態の制御部100は、例えば、ユーザにより送信装置20に格納されているデータを取得することを指示されると、上記データの送信を送信装置20へ要求するとともに、上記受信ソフトウェアを不揮発性記憶部120bから読み出し実行する。
【0055】
図9は、受信ソフトウェアにしたがって作動している制御部100が実行するセグメント受信動作の流れを示すフローチャートである、図9に示されているように、上記受信ソフトウェアにしたがって作動している制御部100には、一般的な受信装置が有する機能に加え、本発明に係る受信装置に特徴的な機能が付与される。具体的には、以下に述べる2つの機能が付与される。第1に、中継装置から転送されてくるセグメントを受信する受信機能である。そして、第2に、受信機能により受信されたセグメントに対して、常に、対応する確認応答を生成しそのセグメントの送信元である送信装置20へ宛てて送信する送信機能である。
【0056】
このように、送信装置20のハードウェア構成も一般的なコンピュータ装置のハードウェア構成と同一であり、記憶部に格納されている各種ソフトウェアを制御部100に実行させることにより、本発明に係る受信装置に特徴的な機能が付与される。
【0057】
[B:動作]
次いで、本実施形態に係る通信システムにおいて行われる動作のうち、その特徴を顕著に示す動作について、図面を参照しつつ説明する。なお、以下では、本動作の開始時点では、受信装置10と中継装置40との間だに無線通信コネクションが確立されているものとし、送信装置20と中継装置40との間だに通信コネクションが確立されているものとする。また、本動作の開始時点では、上記無線通信コネクションを介した通信のデータ誤り率は5%であるものとする。そして、送信装置20は、受信装置10へ宛てて2個のセグメントを送信したものとする。
【0058】
送信装置20から送信された2個のセグメントは、上記通信コネクションを介して中継装置40へ到達する。以下、この2個のセグメントを受信した場合に、中継装置40の制御部100が行う動作について図5を参照しつつ説明する。
【0059】
図5に示されているように、中継装置40の制御部100は、送信装置20から送信されきたセグメントを第1通信IF部110aを介して受信すると、受信したセグメントを前述したキューへ書き込む(ステップSA1)。
【0060】
次に、制御部100は、ステップSA1にて受信したセグメントを受信装置10へ転送する際に利用される通信リソースの状態を検出する(ステップSA2)。本動作例では、制御部100は、受信装置10との間に確立した無線通信コネクションにおけるデータ誤り率を検出する。そして、制御部100は、ステップSA2の検出結果と状態コードテーブル(図2参照)の格納内容とに基づいて、送信装置20へ通知するべき状態コードを特定する(ステップSA3)。前述したように、本動作例では、上記無線通信コネクションにおけるデータ誤り率は5%であるから、制御部100は、送信装置20へ通知するべき状態コードとして“01”を特定する。
【0061】
次に、制御部100は、ステップSA3にて特定した状態コードを1ビット単位に分割し、上記キューに格納されているセグメントのCEビットへ書き込み(ステップSA4)、そのセグメントを第2通信IF部110bを介して受信装置10へ送信する(ステップSA5)。例えば、送信装置20から受信した2つのセグメントに内包されているシーケンス番号が500と1000とである場合には、制御部100は、シーケンス番号が500であるセグメントのCEビットに“0”を書き込み、シーケンス番号が1000であるセグメントのCEビットに“1”を書き込んで、これらのセグメントを第2通信IF部110bを介して受信装置10へ送信する。
【0062】
このようにして中継装置40から送信された2つのセグメントは、上述した無線通信コネクションを介して受信装置10へ到達する。以下、このようなセグメントを受信した場合に受信装置10の制御部100が行う動作について図9を参照しつつ説明する。
【0063】
受信装置10の制御部100は、中継装置40から転送されてきたセグメントを上記無線通信コネクションを介して受信(ステップSC1)すると、そのセグメントに対応する確認応答を生成し、その確認応答のECNechoビットに、そのセグメントのCEビットに書き込まれている値を書き込んで送信装置20へ宛てて送信する(ステップSC2)。具体的には、制御部100は、内包しているシーケンス番号が500であり、CEビットの値が“0”であるセグメントに対しては、シーケンス番号1000を内包している確認応答を生成し、その確認応答のECNechoビットに“0”を書き込んで送信する。また、制御部100は、内包しているシーケンス番号が1000であり、CEビットの値が“1”であるセグメントに対しては、シーケンス番号1500を内包している確認応答を生成し、その確認応答のECNechoビットに“1”を書き込んで送信する。
【0064】
このようにして受信装置10から送信された確認応答は、上述した無線通信コネクションを介して中継装置40へ到達し、上記通信コネクションを介して中継装置40から送信装置20へ転送される。以下、このような確認応答を受信した場合に送信装置20の制御部100が行う動作について図7を参照しつつ説明する。
【0065】
図7は、上記確認応答を受信した場合に送信装置20の制御部100が行う輻輳ウィンドウサイズ変更動作の流れを示すフローチャートである。図7に示されているように、制御部100は、送信したセグメントに対する確認応答を全て受信すると(ステップSB1)、受信した確認応答に分割して書き込まれている状態コードを取得する(ステップSB2)。具体的には、制御部100は、ステップSB1にて受信した確認応答のECNechoビットに書き込まれているデータをその確認応答に内包されているシーケンス番号の順に連結し、中継装置40から通知された状態コードを取得する。
【0066】
次いで、制御部100はステップSB2にて取得した状態コードと、前述した制御テーブル(図3参照)の格納内容とに基づいて、輻輳ウィンドウサイズを変更する(ステップSB3)。本動作例では、中継装置40から通知された状態コードの値は、“01”であるから、制御部100は、輻輳ウィンドウサイズの値を倍増させる。
【0067】
このように、本実施形態に係る送信装置によれば、中継装置から送信された状態コードに基づいて輻輳ウィンドウサイズを変更することができる。前述したように、この状態コードは、送信装置から送信されたセグメントを受信装置へ転送する際に利用される通信リソースの状態に基づいて特定されるものであり、係る通信リソースの状態に基づいて輻輳ウィンドウサイズを変更することが可能になる。
【0068】
[C:変形例]
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、例えば、以下のように変形することが考えられる。
【0069】
(1:変形例1)
上述した実施形態では、中継装置40が通信網30に接続されている無線アクセスポイント装置であり、自装置の形成する無線エリアに在圏している受信装置10と通信網30に接続された送信装置20との間の通信を中継する場合について説明した。しかしながら、本発明に係る中継装置は、係る無線アクセスポイント装置に限定されるものではない。例えば、送信装置から無線で送信されてくるセグメントを受信し、このセグメントを無線で受信装置へ送出する中継装置であっても良く、また、第1の通信網と第2の通信網とに有線接続され、第1の通信網を介して送信されてくるセグメントを第2の通信網へ送出する中継装置であっても良い。要は、送信装置と受信装置との間の通信を中継する中継装置であればよく、送信装置或いは受信装置との通信の態様が無線通信であるか有線通信であるかは問わない。
【0070】
(2:変形例2)
上述した実施形態では、送信装置、中継装置および受信装置が行う通信がTCPに準拠している場合について説明した。しかしながら、係る通信が準拠すべき通信プロトコルは、TCPに限定されるものではない。要は、中継装置が検出した通信リソースの状態を送信装置へ通知可能な通信プロトコルであれば、どのような通信プロトコルであっても良い。
【0071】
また、上述した実施形態では、受信装置10が受信したセグメントの所定領域に書き込まれているデータをそのまま書き込んだ確認応答を返信する機能を有している場合について説明した。しかしながら、受信装置がこのような機能を備えていない場合であっても、中継装置により検出された通信リソースの状態を送信装置へ通知させるようにすることは可能である。このようなことは、以下に述べるようにして実現される。まず、中継装置に、送信装置から受信したセグメントをそのまま受信装置へ転送させる。そして、この中継装置に、上記セグメントに対する確認応答が受信装置から送信されてきた場合に、その確認応答に上記状態コードを分割して書き込ませ、送信装置へ転送させる。これにより、中継装置が検出した通信リソースの状態を送信装置へ通知することが可能になる。
【0072】
(3:変形例3)
上述した実施形態では、通信リソースの状態のみに基づいて輻輳ウィンドウサイズを変更させる場合について説明した。しかしながら、通信リソースの状態に加え、予め定められた付加条件に合致した場合に輻輳ウィンドウサイズを変更させるとしても勿論良い。具体的には、以下に述べる2つの態様が挙げられる。第1に、特定の送信装置のみに輻輳ウィンドウサイズを変更させるようにする態様である。このようなことは、上述した条件データに、通信リソースの状態に応じて輻輳ウィンドウサイズを変更させる送信装置を一意に特定するデータ(例えば、その送信装置に割当てられている通信アドレスやその送信装置が属しているサブネットを表すデータ)を含めておくことにより実現される。第2に、特定の時間帯を表すデータを上述した条件データに含めておき、その時間帯にのみ、通信リソースの状態に応じて輻輳ウィンドウサイズを変更させる態様である。
【0073】
(4:変形例4)
上述した実施形態では、受信装置10に、中継装置40から転送されてきたセグメントに対して常に確認応答を送信させる場合について説明した。しかしながら、中継装置40から転送されてきたセグメントが中継装置40により分割されて送信されたセグメントである場合には、それら分割されたセグメントの全部に対して1つのセグメントを送信するとしても勿論良い。なお、中継装置40から転送されてきたセグメントが、中継装置40により分割されたセグメントであるか否かは、そのセグメントのIPオプションフィールドと呼ばれる領域に書き込まれているデータに基づいて判定することができる。
【0074】
(5:変形例5)
上述した実施形態では、受信装置10は、セグメントを受信する度に、必ず、対応する確認応答を送信する場合について説明した。しかしながら、本発明に係る中継装置と送信装置とが通信可能な受信装置は、係る受信装置に限定されるものではなく、一般的なTCPの仕様にしたがって確認応答を送信する受信装置であっても良い。なお、一般的なTCPの仕様では、少なくとも2つのセグメンにつき1つの確認応答を送信するべきことが定められている。但し、受信装置が一般的なTCPの仕様にしたがって確認応答を送信する場合には、図2に示す状態コードテーブルに替えて図10に示す状態コードテーブルを中継装置40に記憶させておくとともに、図3に示す制御テーブルに替えて図11に示す制御テーブルを送信装置20に記憶させておく必要がある。
【0075】
図10に示す状態コードテーブルが図2に示す状態コードテーブルと異なっている点は、4ビットのデータ長を有する状態コードを格納している点である。この状態コードは、上述した実施形態における状態コードを構成する各ビットっを2個ずつ並べて構成されている。すなわち、図10における“1111”は、図3における“11”に対応しており、図10における“1100”は、図3における“10”に対応しており、図10における“0011”は、図3における“01”と対応している。
【0076】
中継装置40は、通信リソースの状態に基づいて、これら4種類の状態コードのうちから、1つの状態コードを特定し、特定した状態コードを1ビット単位で分割して4個のセグメントに書き込み、本変形例に係る受信装置へ送信する。以下では、状態コード“0011”が1ビットづつに分割されて書き込まれた4つのセグメントが中継装置40から受信装置10へ転送される場合について説明する。
【0077】
本変形例に係る受信装置は、上記4つのセグメントを受信すると、一般的なTCPの仕様にしたがって、以下に述べる3つの態様のうちの何れかの態様で確認応答を送信する。第1に、受信した4つのセグメントの各々に対応する確認応答を送信する態様(すなわち、確認応答を4つ送信する態様)である。第2に、受信した4つのセグメントのうちの任意の3つに対応する確認応答を送信する態様(すなわち、確認応答を3つ送信する態様)である。第3に、受信した4つのセグメントのうち1番目と3番目に受信したセグメントまたは2番目と3番目に受信したセグメントまたは2番目と4番目に受信したセグメントに対応する確認応答を送信する態様(すなわち、確認応答を2つ送信する態様)である。上記第1の態様により送信される4つの確認応答に分割して書き込まれている状態コードは“0011”である。また、上記第2の態様により送信される3つの確認応答に分割して書き込まれている状態コードは“001”または“011”の何れかである。そして、上記第3の態様により送信される2つの確認応答に分割して書き込まれている状態コードは“01”である。
【0078】
一方、図11に示す制御テーブルには、上記4種類の状態コード(“0011”、“001”、“011”および“01”)に対応付けて、輻輳ウィンドウサイズを倍増させるべきことを表すデータが格納されている。このデータは、図3に示す制御コードテーブルにおいては、状態コード“01”に対応付けられていたものである。以上に説明したように、図10に示す状態コードテーブルを中継装置40に記憶させておくとともに、図11に示す制御テーブルを送信装置20に記憶させておくことにより、中継装置40により中継されたセグメントを受信する受信装置が、一般的なTCPの仕様にしたがって確認応答を送信する受信装置であって、中継装置40により検出された通信リソースの状態を送信装置20へ正しく通知することが可能になる。
【0079】
(6:変形例6)
上述した実施形態では、状態コードが固定長データであり、そのデータ長が2ビットである場合について説明した。しかしながら、状態コードのデータ長は2ビットに限定されるものではない。要は、中継装置から送信装置へ通知するべき通信リソースの状態の種類に応じて適切なビット長の状態コードを割当てれば良い。また、状態コードは、固定長データに限定されるものではなく、可変長データであっても勿論良い。可変長の状態コードを用いる場合には、例えば、ハフマン符号のように、通信リソース状態の発生頻度に応じて、頻繁に発生する状態に対しては、ビット長の短い状態コードを割り当て、稀にしか発生しない状態に対してはビット長の長い状態コードを割当てることが可能になる。
【0080】
(7:変形例7)
上述した実施形態では、送信装置に、受信した確認応答のECNechoビットに書き込まれているデータをその確認応答に内包されているシーケンス番号の順に連結することによって、中継装置から送信された状態コードを取得させる場合について説明した。しかしながら、受信装置から送信された確認応答のうち、送信装置に到達しない確認応答があった場合には、送信装置に輻輳ウィンドウサイズの変更を禁止するとしても勿論良い。このようにすると、確認応答の欠落が発生した場合であっても、送信装置が誤って輻輳ウィンドウサイズを変更することが防止されるといった効果を奏する。
【0081】
(8:変形例8)
上述した実施形態では、送信装置20へ通知するべき状態コードを検出した通信リソースの状態と図2に示す状態コードテーブルの格納内容とに基づいて特定する場合について説明した。しかしながら、係る状態コードテーブルを用いなくとも、送信装置20へ通知するべき状態コードを特定することは可能である。例えば、以下に述べるような処理を制御部100に実行させるプログラムを用いることにより実現される。すなわち、データ誤り率が30%未満である場合には、状態コードに“01”を設定させる。データ誤り率が30%以上60%未満である場合には、状態コードに“10”を設定させる。そして、データ誤り率が60%以上である場合には、状態コードに“11”を設定させる。
【0082】
(9:変形例9)
上述した実施形態では、中継装置や送信装置や受信装置に本発明に特徴的な機能を実現させるためのソフトウェアを予め記憶させておく場合について説明した。しかしながら、例えばCD−ROM(Compact Disck―ReadOnly Memory)などのコンピュータ装置読み取り可能な記録媒体に上記ソフトウェアを書き込んでおき、このような記録媒体を用いて上記ソフトウェアを一般的なコンピュータ装置にインストールするとしても勿論良い。このようにすると、一般的なコンピュータ装置に、本発明に係る中継装置や送信装置や受信装置と同一の機能を付与することが可能になるといった効果を奏する。
【0083】
【発明の効果】
本発明によれば、既存の通信プロトコルとの互換性を維持しつつ、送信装置から送信されたデータブロックを受信装置へ転送する際に利用される通信リソースの状態に基づいて、その送信装置に連続して送信するデータブロックの数を拡大または縮小させることが可能になるといった効果を奏する。
【図面の簡単な説明】
【図1】 本発明の実施形態に係る通信システムの全体構成の一例を示す図である。
【図2】 同中継装置40に記憶されている状態コードテーブルの一例を示す図である。
【図3】 同送信装置20に格納されている制御テーブルの一例を示す図である。
【図4】 同中継装置40の構成例を示す図である。
【図5】 同中継装置40の制御部100が実行するセグメント中継動作の流れを示すフローチャートである。
【図6】 同送信装置20の構成例を示す図である。
【図7】 同送信装置20の制御部100が実行する輻輳ウィンドウサイズ変更動作の流れを示すフローチャートである。
【図8】 同受信装置10の構成例を示す図である。
【図9】 同受信装置10の制御部100が実行するセグメント受信動作の流れを示すフローチャートである。
【図10】 変形例4に係る状態コードテーブルの一例を示す図である。
【図11】 変形例4に係る制御テーブルの一例を示す図である。
【図12】 従来の技術を説明するための図である。
【符号の説明】
10、210…受信装置、20、220…送信装置、30…通信網、40、240…中継装置、100…制御部、110a…第1通信IF部、110b…第2通信IF部、120…記憶部、120a…揮発性記憶部、120b…不揮発性記憶部、130…バス。

Claims (10)

  1. 送信装置から受信装置へ送信された1以上のデータブロックを中継装置が中継する場合において、
    前記中継装置が、通信リソースの状態を表す状態コードを取得するステップと、
    前記中継装置が、前記状態コードを複数部分に分割し、各データブロックに付与されたシーケンス番号に従って、該分割された状態コードを、その先頭部分から順番に、前記送信装置から受信した各データブロックの所定領域に書き込むステップと
    前記中継装置が、各々分割された状態コードが書き込まれた複数のデータブロックを、前記受信装置へ送信するステップと
    前記中継装置が、前記複数のデータブロックに対する確認応答を前記受信装置から受信すると、前記送信装置に転送するステップと、
    前記送信装置が、前記複数の確認応答を前記中継装置から受信すると、該受信した複数の確認応答に基づいて状態コードを復元し、該状態コードに基づいてウィンドウ制御を実行するステップと
    を有する通信制御方法。
  2. 送信装置から受信装置へ送信された1以上のデータブロックを中継装置が中継する場合において、
    前記中継装置が、通信リソースの状態を表す状態コードを取得するステップと、
    前記中継装置が、前記状態コードを複数部分に分割し、各確認応答に付与されたシーケンス番号に従って、該分割された状態コードを、その先頭部分から順番に、前記受信装置から受信した各データブロックに対応する確認応答の所定領域にそれぞれ書き込むステップと
    前記中継装置が、各々分割された状態コードが書き込まれた複数の確認応答を、前記送信装置へ送信するステップと、
    前記送信装置が、前記複数の確認応答を受信すると、該受信した複数の確認応答に基づいて状態コードを復元し、該状態コードに基づいてウィンドウ制御を実行するステップと
    を有する通信制御方法。
  3. データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第2の通信コネクションを確立するコネクション確立手段と、
    前記第1の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信手段と、
    前記第1の通信コネクションを介して受信したデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、
    前記取得手段により取得された状態コードを複数部分に分割し、前記受信手段によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、
    前記書き込み手段により前記状態コードを分割して書き込まれたデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する転送手段と
    を有する中継装置。
  4. データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、受信したデータブロックに対応する確認応答を該データブロックの送信元に送信する受信装置との間に第2の通信コネクションを確立するコネクション確立手段と、
    前記第1の通信コネクションを介して受信したデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得手段と、
    前記第2の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信手段と、
    前記状態コードを複数部分に分割し、前記受信手段によって受信されている確認応答の各々の所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み手段と、
    前記書き込み手段により前記分割された状態コードを書き込まれた確認応答を前記第1の通信コネクションを介して前記送信装置へ転送する転送手段と
    を有する中継装置。
  5. 前記状態コードは、前記送信装置から送信されてくるデータブロックを記憶するキューの状態を表すデータまたは前記第2の通信コネクションの状態を表すデータの何れかである
    ことを特徴とする請求項3または4のいずれかに記載の中継装置。
  6. 予め定められた数のデータブロックを連続して送信する送信手段と、
    前記送信手段により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信手段と、
    前記受信手段により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表すデータが分割されて書き込まれている場合に、該データを取得する取得手段と、
    前記取得手段により取得されたデータに基づいて、連続して送信するデータブロックの数を変更する変更手段と
    を有する送信装置。
  7. 前記受信手段により受信された確認応答に欠落があるか否かを該確認応答の内容に基づいて判定する判定手段を備え、
    前記受信手段により受信された確認応答に欠落があると前記判定手段により判定された場合には、連続して送信するデータブロックの数を前記変更手段により変更することを禁止する禁止手段と
    を有することを特徴とする請求項6に記載の送信装置。
  8. コンピュータ装置に、
    データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、受信したデータブロックの所定領域に書き込まれているデータを書き込んだ確認応答を当該データブロックの送信元へ送信する受信装置との間に第2の通信コネクションを確立するコネクション確立機能と、
    前記第1の通信コネクションを介して前記送信装置から連続して送信されてくるデータブロックを受信する受信機能と、
    前記受信機能により受信されたデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出する検出機能と、
    前記検出機能の検出結果を表す状態コード取得する取得機能と、
    前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されているデータブロックの各々の前記所定領域に対して、これらデータブロックに付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、
    前記書き込み機能により前記状態コードを分割して書き込まれたデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する転送機能と
    を実現させるプログラム。
  9. コンピュータ装置に、
    データブロックに付与したシーケンス番号にしたがって当該データブロックを決められた数づつ連続して送信する送信装置との間に第1の通信コネクションを確立する一方、該送信装置から送信されてくるセグメントを受信し、受信したデータブロックに対応する確認応答を返信する受信装置との間に第2の通信コネクションを確立するコネクション確立機能と、
    前記第1の通信コネクションを介して受信したデータブロックを前記第2の通信コネクションを介して前記受信装置へ転送する際に利用される通信リソースの状態を検出しその検出結果を表す状態コードを取得する取得機能と、
    前記第2の通信コネクションを介して受信装置から送信されてくる確認応答であって、該受信装置が次に受信するべきデータブロックを表すシーケンス番号を内包した確認応答を受信する受信機能と、
    前記取得機能により取得された状態コードを複数部分に分割し、前記受信機能によって受信されている確認応答の各々の前記所定領域に対して、これら確認応答に付与されたシーケンス番号にしたがって前記分割された状態コードをその先頭部分から順番に書き込んでいく書き込み機能と、
    前記書き込み機能により前記状態コードを分割して書き込まれた確認応答を前記第1の通信コネクションを介して前記送信装置へ転送する転送機能と
    を実現させるプログラム。
  10. コンピュータ装置に、
    予め定められた数のデータブロックを連続して送信する送信機能と、
    前記送信機能により送信されたデータブロックに対応する確認応答を該データブロックの宛先から受信する受信機能と、
    前記受信機能により受信された確認応答の所定領域に、連続して送信するデータブロックの数を変更すべきことを表す状態コードが分割されて書き込まれている場合に、該状態コードを取得する取得機能と、
    前記取得機能により取得された状態コードに基づいて、連続して送信するデータブロックの数を変更する変更機能と
    を実現させるプログラム。
JP2003207601A 2003-08-14 2003-08-14 中継装置、送信装置、受信装置およびプログラム Expired - Fee Related JP4235507B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003207601A JP4235507B2 (ja) 2003-08-14 2003-08-14 中継装置、送信装置、受信装置およびプログラム
CNB2004100558654A CN1310479C (zh) 2003-08-14 2004-08-04 通信控制方法和系统
US10/914,910 US7817552B2 (en) 2003-08-14 2004-08-10 Communication control method and system
DE200460004706 DE602004004706T2 (de) 2003-08-14 2004-08-12 Verfahren und System zur Kommunikationssteuerung
EP20040019168 EP1507370B1 (en) 2003-08-14 2004-08-12 Communication control method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003207601A JP4235507B2 (ja) 2003-08-14 2003-08-14 中継装置、送信装置、受信装置およびプログラム

Publications (3)

Publication Number Publication Date
JP2005064598A JP2005064598A (ja) 2005-03-10
JP2005064598A5 JP2005064598A5 (ja) 2006-09-21
JP4235507B2 true JP4235507B2 (ja) 2009-03-11

Family

ID=33562595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003207601A Expired - Fee Related JP4235507B2 (ja) 2003-08-14 2003-08-14 中継装置、送信装置、受信装置およびプログラム

Country Status (5)

Country Link
US (1) US7817552B2 (ja)
EP (1) EP1507370B1 (ja)
JP (1) JP4235507B2 (ja)
CN (1) CN1310479C (ja)
DE (1) DE602004004706T2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1548972A3 (en) * 2003-12-26 2006-12-27 NTT DoCoMo, Inc. Transmitter device and relay device for performing data transmission control
US8009696B2 (en) * 2004-08-06 2011-08-30 Ipeak Networks Incorporated System and method for achieving accelerated throughput
CN101218774B (zh) * 2005-06-15 2012-10-10 艾利森电话股份有限公司 通过因特网协议网络的自适应移动电话语音传输
JP4703310B2 (ja) * 2005-08-04 2011-06-15 株式会社東芝 通信方法および通信システム
KR100728037B1 (ko) * 2006-03-03 2007-06-14 삼성전자주식회사 무선 데이터 스트리밍 시스템의 파라미터 제어 방법 및장치
US7990255B2 (en) * 2006-11-02 2011-08-02 Audiovox Corporation Range extending positive repeater
TWI459754B (zh) * 2007-01-12 2014-11-01 Koninkl Philips Electronics Nv 無線網狀網路中擁擠管理之方法
DE102007012143A1 (de) * 2007-03-12 2008-09-18 Viprinet Gmbh Anordnung und Verfahren zum Übermitteln eines Datenstroms über gebündelte Netzwerkzugangsleitungen, sowie Sende- und Empfangshilfsvorrichtung und Sende- und Empfangsverfahren dafür
EP2154839B1 (en) * 2007-06-06 2013-05-22 Fujitsu Limited Relay device and terminal
US8654782B2 (en) * 2007-11-05 2014-02-18 Cisco Technology, Inc. Mesh tree formation in wireless networks
EP2079205A1 (en) * 2008-01-14 2009-07-15 British Telecmmunications public limited campany Network characterisation
JP5391830B2 (ja) * 2009-05-25 2014-01-15 富士通株式会社 無線基地局装置、通信システムおよびデータ転送方法
JP5392351B2 (ja) * 2009-08-20 2014-01-22 富士通株式会社 中継局、受信局、送信局、および、パケット通信システム
EP2471302B1 (en) * 2009-08-25 2014-03-05 Telefonaktiebolaget LM Ericsson (publ) Using the ecn mechanism to signal congestion directly to the base station
US20130155938A1 (en) * 2011-12-16 2013-06-20 Belair Networks Tcp-relay for wireless applications
JP5800032B2 (ja) 2011-12-28 2015-10-28 富士通株式会社 計算機システム,通信制御装置及び計算機システムの制御方法
WO2013155875A1 (en) * 2012-04-16 2013-10-24 The Hong Kong University Of Science And Technology Distributive source coding and signal processing
US9258234B1 (en) * 2012-12-28 2016-02-09 Juniper Networks, Inc. Dynamically adjusting liveliness detection intervals for periodic network communications
US9769017B1 (en) 2014-09-26 2017-09-19 Juniper Networks, Inc. Impending control plane disruption indication using forwarding plane liveliness detection protocols
US10374936B2 (en) 2015-12-30 2019-08-06 Juniper Networks, Inc. Reducing false alarms when using network keep-alive messages
US10397085B1 (en) 2016-06-30 2019-08-27 Juniper Networks, Inc. Offloading heartbeat responses message processing to a kernel of a network device
US11750441B1 (en) 2018-09-07 2023-09-05 Juniper Networks, Inc. Propagating node failure errors to TCP sockets
WO2020185707A1 (en) 2019-03-08 2020-09-17 goTenna Inc. Method for utilization-based traffic throttling in a wireless mesh network
CN114915371A (zh) * 2021-02-10 2022-08-16 华为技术有限公司 一种通信方法、设备和芯片系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2984910B2 (ja) 1995-11-17 1999-11-29 株式会社超高速ネットワーク・コンピュータ技術研究所 データフロー制御方法
US7392279B1 (en) * 1999-03-26 2008-06-24 Cisco Technology, Inc. Network traffic shaping using time-based queues
FR2805112B1 (fr) * 2000-02-11 2002-04-26 Mitsubishi Electric Inf Tech Procede et unite de controle de flux d'une connexion tcp sur un reseau a debit controle
AU2001256506A1 (en) * 2000-05-18 2001-11-26 British Telecommunications Public Limited Company Communications network
US6876639B1 (en) * 2000-06-01 2005-04-05 Nortel Networks Limited Transmission control protocol handoff notification system and method
US6741555B1 (en) * 2000-06-14 2004-05-25 Nokia Internet Communictions Inc. Enhancement of explicit congestion notification (ECN) for wireless network applications
JP3882187B2 (ja) * 2001-04-19 2007-02-14 日本電気株式会社 フロー制御システムおよび方法
US7394764B2 (en) * 2001-12-14 2008-07-01 Sasken Communication Technologies Limited Technique for improving transmission control protocol performance in lossy networks
US7362744B2 (en) * 2002-08-15 2008-04-22 International Business Machines Corporation Database management system and method of using it to transmit packets
CA2508833A1 (en) * 2003-01-28 2004-08-12 Telefonaktiebolaget L M Ericsson (Publ) Method and device for congestion notification in packet networks indicating several different congestion causes
US7596091B2 (en) * 2005-02-28 2009-09-29 Microsoft Corporation Unified congestion notification mechanism for reliable and unreliable protocols by augmenting ECN

Also Published As

Publication number Publication date
EP1507370B1 (en) 2007-02-14
CN1310479C (zh) 2007-04-11
CN1581841A (zh) 2005-02-16
US7817552B2 (en) 2010-10-19
DE602004004706D1 (de) 2007-03-29
DE602004004706T2 (de) 2007-10-31
EP1507370A3 (en) 2005-08-10
US20050063458A1 (en) 2005-03-24
EP1507370A2 (en) 2005-02-16
JP2005064598A (ja) 2005-03-10

Similar Documents

Publication Publication Date Title
JP4235507B2 (ja) 中継装置、送信装置、受信装置およびプログラム
JP4235506B2 (ja) 送信装置、中継装置およびプログラム
US20090268747A1 (en) Communication apparatus
US20040258051A1 (en) Hybrid wired and wireless communication system and a communication method thereof
JP2006279394A (ja) セッション中継装置、セッション中継方法およびプログラム
JPWO2005027456A1 (ja) 通信システム、通信装置、およびデータの再送制御方法
US7764616B2 (en) Transmitter device for controlling data transmission
JP2006217242A (ja) 無線通信方法および無線通信装置
JP2009237768A (ja) データ受信装置、データ受信方法およびデータ処理プログラム
JP2003078560A (ja) トランスポートレイヤプロトコルにおけるフロー制御方式
JP4244159B2 (ja) 受信装置、通信システムおよびプログラム
US20060116074A1 (en) Communication repeater, communication repeater program, and communication repeater system
US20050041606A1 (en) Data communication apparatus, data communication method, data communication program and recording medium in which data communication program was recorded
JP7098101B2 (ja) 工場において工程管理するための無線通信装置および工程管理方法
JP3929452B2 (ja) モバイルアドホックネットワークにおけるトランスポート層を用いた効率的なデータの送受信方法及びその方法を用いたネットワーク装置
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
JP6375972B2 (ja) シンクノード、センサネットワークシステム、情報収集方法、及び情報収集プログラム
JP4203400B2 (ja) 受信装置、通信システム及びプログラム
JP6822032B2 (ja) 処理決定装置、処理決定方法、及び、処理決定プログラム
JPH11205384A (ja) データ通信システム及びデータ通信装置
JP2001057581A (ja) 通信方法、及び通信装置
JP5339537B2 (ja) 不安定な無線リンクにおける切断耐性を高める無線端末、プロキシサーバ及びプログラム
JP3987548B2 (ja) 通信方法、及び通信装置
JP2008099139A (ja) 通信方法
JP2005167352A (ja) 送信装置およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081215

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees