JP2007159052A - 送信機および中継装置並びに通信システム、通信プログラム、通信方法。 - Google Patents

送信機および中継装置並びに通信システム、通信プログラム、通信方法。 Download PDF

Info

Publication number
JP2007159052A
JP2007159052A JP2005355287A JP2005355287A JP2007159052A JP 2007159052 A JP2007159052 A JP 2007159052A JP 2005355287 A JP2005355287 A JP 2005355287A JP 2005355287 A JP2005355287 A JP 2005355287A JP 2007159052 A JP2007159052 A JP 2007159052A
Authority
JP
Japan
Prior art keywords
data unit
identification information
transmitter
data
unit
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.)
Pending
Application number
JP2005355287A
Other languages
English (en)
Inventor
Kazunori Yamamoto
和徳 山本
Hideharu Suzuki
偉元 鈴木
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 JP2005355287A priority Critical patent/JP2007159052A/ja
Publication of JP2007159052A publication Critical patent/JP2007159052A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】通信初期においても高いスループットを実現できる新規な送信機および中継装置並びに通信システム、通信プログラム、通信方法の提供。
【解決手段】送信機40からの送信データを中継装置20を介して受信機10に送信するに際し、受信機10からの最初の受信確認応答が受信されるまでの間、送信機40が中継装置20からの転送通知メッセージである前記送信データの識別情報を取得し、その情報に基づいてデータ送信量を調節する。これによって、ネットワーク輻輳に対処しつつ輻輳ウィンドウサイズを的確に増加させて通信初期においても高いスループットを実現できる。
【選択図】 図3

Description

本発明は、インターネットなどで使われるトランスポート層(レイヤー4)のプロトコルであるTCP(Transmission Control Protcol)による輻輳制御技術に係り、特にその輻輳制御技術を実現するための送信機および中継装置並びに通信システム、通信プログラム、通信方法に関するものである。
近年、ネットワークが広帯域化する中、TCPによる輻輳制御が通信速度を制限する要因となりつつあるとの報告がなされている。
TCPでは、ネットワークの伝送速度を直接的に把握できないため、低レートで通信を開始し、徐々に送信レートを増加させていく輻輳制御方法が採られている。
そのため、ネットワークが広帯域化すると、送信レートがネットワークの伝送速度に達するまでに時間がかかり、その間、十分な通信効率が得られないという問題が生じる。
TCPでは輻輳制御に、ネットワークに滞留するデータ量を制御するウィンドウ制御方式が採用されている。
ネットワークに滞留するデータ量は、輻輳状況に応じて動的に加減される輻輳ウィンドウ(cwnd)によって定められた量に調節される。
この輻輳ウィンドウ(cwnd)は、通信開始時に1セグメントに初期化され、受信確認応答(以下、これを適宜「ACK(ACKnowledgement)」という)を受信するごとに1セグメントづつ増加される。この輻輳ウィンドウ(cwnd)の増加方法は、スロースタート(slow start)と呼ばれ、このスロースタート(slow start)では、輻輳ウィンドウ(cwnd)は指数的に増加される。
ところが、このスロースタート(slow start)では、送信レートは指数的に加速されるが、ネットワークの伝送速度が大きい場合には、伝送速度に達するまでに時間がかかり、十分な通信効率が得られない。そのため、サイズの小さなデータ通信においては、伝送速度が生かされないまま通信が終了する場合もあり、広帯域化のメリットを享受できない懸念がある。
このようなスロースタート(slow start)の問題を解決する方法には、輻輳ウィンドウ(cwnd)の増加速度を速める方法の他に、輻輳ウィンドウ(cwnd)の初期ウィンドウサイズ自体を適宜増加させる方法が提案されている。
例えば、以下の非特許文献1などでは、輻輳ウィンドウ(cwnd)の初期ウィンドウサイズIW(バイト:byte)を次の式(1)のように増加させる方法が提案されている。
IW=min(4mss、max(2mss、4380)…(1)
ここで、「mss」はTCPの最大セグメントサイズ(MSS:Maxmum Segment Size)(バイト)を表す。
この方法では、最大セグメントサイズ(MSS)が「1095バイト」以下のとき、初期ウィンドウサイズは4セグメントに増加される。初期ウィンドウサイズが1セグメントの場合に比べ、データの転送時間は、2回から3回の往復伝播遅延時間(RTT:Round-trip Time)短縮される。
また、以下に示す非特許文献2などでは、TCPおよびIPオプションを用いて、初期ウィンドウサイズを増加させる方法が提案されている。
この方法では、送信ノードは、所望の送信レートをSYN(またはSYN/ACK)パケットのIPヘッダオプションフィールドに記載して送信する。オプションフィールドに記載された送信レートは、経路上のルータによって更新されながら受信ノードまで転送される。受信ノードは、受け取った送信レートをSYN/ACK(またはACK)パケットのTCPヘッダオプションフィールドに記載して、送信ノードに返送する。送信ノードは、受け取った送信レートとRTTの測定値からウィンドウサイズを算出し、初期ウィンドウサイズに設定するようにしている。
M.Allman,S.Floyd,and C.Partridge,"Increasing TCP’s Initial Window,"IETF RFC3390, Oct,2002. A.K.Jain and S.Floyd,"Quick−Start for TCP and IP、"work in progress,draft−amit−quick−start−01.txt,Aug.2002.
ところで、前記非特許文献1のような方法によって初期ウィンドウサイズを増加させると、バースト的に送信されるセグメント数が増加するため、パケットロスが発生する可能性が高まる。パケットロスが発生すると、TCPは、輻輳ウィンドウの増減方法をスロースタート(slow start)からコンジェスションアボイダンス(congestion avoidance)に切り替えるため、輻輳ウィンドウの増加速度は鈍化する。従って、前記(1)式を超えて、初期ウィンドウサイズを設定する場合、ネットワーク輻輳に十分、配慮しなければならない。
一方、前記非特許文献2のような方法は、ルータに新たに機能を追加する必要があり、経路上に1つでも未対応のルータがあれば機能しない。
また、隣接するルータ間に複数のリンクが存在する場合、ルータは直結されないリンクの利用状況を把握できないため、要求された送信レートを受け入れてよいか判断できない問題もある。
そこで、本発明はこのような課題を有効に解決するために案出されたものであり、その目的は、伝送帯域の大きい移動通信において、ネットワークの輻輳状況を加味してTCPの初期ウィンドウサイズを拡大し、通信初期においても高いスループットを実現できる新規な送信機および中継装置並びに通信システム、通信プログラム、通信方法を提供するものである。
前記課題を解決するために発明1の送信機は、
中継装置を介して受信機にデータユニットを送信する送信機であって、前記中継装置によって中継された前記データユニットの識別情報を取得する識別情報取得手段と、当該識別情報取得手段で取得された前記識別情報に基づいて前記データユニットのロスを判定するロス判定手段と、当該ロス判定手段による判定結果に応じて前記データユニットの送信量を制御する送信量制御手段とを具備することを特徴とするものである。
また、発明2の送信機は、
発明1に記載の送信機において、前記送信量制御手段は、前記データユニットの受信に対する前記受信機からの最初の確認応答が受信される前に、前記ロス判定手段による判定結果に応じて前記データユニットの送信量を制御するようになっていることを特徴とするものである。
また、発明3の送信機は、
発明1に記載の送信機において、前記受信機によって前記データユニットに対して送信された確認応答を受信する確認応答受信手段をさらに備え、前記送信量制御手段は、当該確認応答受信手段によって前記データユニットに対する最初の前記確認応答が受信されたときは、当該確認応答に応じて前記データユニットの送信量を制御するようになっていることを特徴とするものである。
また、発明4の送信機は、
発明3に記載の送信機において、前記送信量制御手段は、前記データユニットのデータ量を制限するウィンドウサイズを制御するウィンドウ制御部を備え、当該ウィンドウ制御部は、前記データユニットに対する前記受信機からの最初の確認応答が受信されたときは、それまでに受け取った前記識別情報に対応する前記データユニットのサイズの合計値に基づいて前記ウィンドウサイズを制御するようになっていることを特徴とするものである。
また、発明5の送信機は、
発明1〜4のいずれかに記載の送信機において、前記中継装置に対して前記データユニットの識別情報を送信するか否かを指示する指示情報制御手段をさらに備えていることを特徴とするものである。
また、発明6の送信機は、
発明5に記載の送信機において、前記指示情報制御手段は、前記データユニットに対する前記受信機からの最初の確認応答が受信されるときは、前記中継装置に対して前記データユニットの識別情報を送信しないことを指示するようになっていることを特徴とするものである。
一方、発明7の中継装置は、
送信機から受信機宛に送信されたデータユニットを転送する中継装置であって、前記データユニットの識別情報を取得する識別情報取得手段と、前記送信機によって前記データユニットに記載された指示情報を取得する指示情報取得手段と、当該指示情報取得手段で取得された前記指示情報を判定する指示情報判定手段と、当該指示情報判定手段の判定結果に応じて前記識別情報取得手段によって取得された前記データユニットの前記識別情報を前記送信機に対して通知する識別情報通知手段とを具備することを特徴とする中継装置。
また、発明8の中継装置は、
発明7に記載の中継装置であって、前記識別情報通知手段は、前記データユニットが前記受信機に対して転送されたときは、前記識別情報を前記送信機に対して通知するようになっていることを特徴とするものである。
また、発明9の通信システムは、
データユニットを送信する送信機と、当該データユニットを受信して受信機に中継する中継装置とを備えた通信システムであって、前記送信機は、前記中継装置によって中継された前記データユニットの識別情報を取得する識別情報取得手段と、当該識別情報取得手段で取得された前記識別情報に基づいて前記データユニットのロスを判定するロス判定手段と、当該ロス判定手段による判定結果に応じて前記データユニットの送信量を制御する送信量制御手段とを具備することを特徴とするものである。
また、発明10の通信システムは、
発明9に記載の通信システムにおいて、前記中継装置は、前記データユニットの識別情報を取得する識別情報取得手段と、前記送信機によって前記データユニットに記載された指示情報を取得する指示情報取得手段と、当該指示情報取得手段で取得された前記指示情報を判定する指示情報判定手段と、当該指示情報判定手段の判定結果に応じて前記識別情報取得手段によって取得された前記データユニットの前記識別情報を前記送信機に対して通知する識別情報通知手段とを具備することを特徴とするものである。
他方、発明11の通信プログラムは、
中継装置を介して受信機にデータユニットを送信する送信機で用いられる通信プログラムであって、前記送信機のコンピュータを、前記中継装置によって中継された前記データユニットの識別情報を取得する識別情報取得手段と、当該識別情報取得手段で取得された前記識別情報に基づいて前記データユニットのロスを判定するロス判定手段と、当該ロス判定手段による判定結果に応じて前記データユニットの送信量を制御する送信量制御手段として機能させることを特徴とするものである。
また、発明12の通信方法は、
送信機からのデータユニットを中継装置を介して受信機に送信するようにした通信方法であって、前記中継装置によって中継された前記データユニットの識別情報を取得すると共に、当該識別情報に基づいて前記データユニットのロスを判定し、そのロス判定結果に応じて前記送信機からの前記データユニットの送信量を制御するようにしたことを特徴とするものである。
前記発明1の送信機によれば、受信機にデータユニットを送信するに際して受信機からの確認応答がなくとも中継装置からの前記データユニットに関する識別情報(以下、適宜、「転送通知メッセージ」または「フィードバック情報」という)を利用してデータ送信量を調節することが可能となる。
これによって、受信機から確認応答が受信されるまでにネットワーク輻輳に対処しつつ、初期データの送信量を的確に調節することが可能となるため、従来法のように初期データの送信量を一律に設定する場合に比べて、通信初期のスループットを大幅に向上させることができる。
また、前記発明2の送信機によれば、受信機から確認応答が受信される前に、初期データの送信量を的確に設定(増加させる)することで、通信初期のスループットを大幅に向上させることができる。
また、前記発明3の送信機によれば、前記発明2と同様に、受信機から確認応答が受信されるまでの通信初期のスループットを大幅に向上させることができると共に、確認応答が受信された後のデータ量を的確に設定(増加させる)することが可能となるため、ネットワーク輻輳に対処しつつ、効率的なデータユニットの送信を行うことができる。
また、前記発明4の送信機によれば、前記発明2などと同様に、受信機から確認応答が受信されるまでの通信初期のスループットを大幅に向上させることができると共に、確認応答が受信された後のウィンドウサイズを的確に設定(増加させる)することが可能となるため、ネットワーク輻輳に対処しつつ、効率的なデータユニットの送信を行うことができる。
また、前記発明5の送信機によれば、指示情報制御手段をさらに備えることにより、中継装置からのフードバック情報の送信を自由にコントロールすることが可能となるため、フィードバック情報が不要なときにいたずらにそれが送られてくるのを回避することができる。
また、前記発明6の送信機によれば、前記指示情報制御手段は、前記データユニットに対する前記受信機からの最初の確認応答が受信されるときは、前記中継装置に対して前記データユニットの識別情報を送信しないことを指示することにより、もはやフィードバック情報が不要になった後にいたずらにそれが送られてくるのを回避することができる。
一方、前記発明7の中継装置によれば、受信機にデータユニットを送信するに際して受信機からの確認応答がなくとも送信機に対して前記データユニットの識別情報を取得して通知することができる。
これによって、送信機はそのフィードバック情報を取得して利用してデータ送信量を調節することが可能となるため、受信機から確認応答が受信されるまでにネットワーク輻輳に対処しつつ、初期データの送信量を的確に調節することが可能となるため、従来法のように初期データの送信量を一律に設定する場合に比べて、通信初期のスループットを大幅に向上させることができる。
また、送信機から前記データユニットに記載された指示情報を取得してその指示情報を判定し、その判定結果に応じて前記識別情報を前記送信機に対して通知するようになっているため、識別情報の通知が不要になった後に、いたずらにその識別情報を送信機側に通知することがなくなる。
また、前記発明8の中継装置によれば、前記データユニットが前記受信機に対して転送したときは、その識別情報を前記送信機に対して通知するようになっているため、送信機は、転送されたデータユニットの確認応答がある前に、その識別情報に基づいて最適な初期ウィンドウサイズを設定することができる。
また、前記発明9の通信システムによれば、発明1と同様に、受信機から確認応答が受信されるまでにネットワーク輻輳に対処しつつ、初期データの送信量を的確に調節することが可能となるため、従来法のように初期データの送信量を一律に設定する場合に比べて、通信初期のスループットを大幅に向上させることができる。これによって、通信システム全体の信頼性や利用率向上に貢献することができる。
また、前記発明10の通信システムによれば、発明7と同様に、送信機はそのフィードバック情報を取得して利用してデータ送信量を調節することが可能となるため、受信機から確認応答が受信されるまでにネットワーク輻輳に対処しつつ、初期データの送信量を的確に調節することが可能となるため、従来法のように初期データの送信量を一律に設定する場合に比べて、通信初期のスループットを大幅に向上させることができる。
また、送信機から前記データユニットに記載された指示情報を取得してその指示情報を判定し、その判定結果に応じて前記識別情報を前記送信機に対して通知するようになっているため、識別情報の通知が不要になった後に、いたずらにその識別情報を送信機側に通知することがなくなる。これによって、通信システム全体の信頼性や利用率向上に貢献することができる。
他方、前記発明11の通信プログラムによれば、既存の殆どの送信機に標準的に備えられている送信機のコンピュータによって各手段をソフトウェア上で実現することが可能となる。これによって、既存の殆どの送信機をそのまま活用することが可能となるため、専用のハードウェアなどによって各手段を実現する場合に比べて経済的且つ容易に実現することが可能となる。
また、前記発明12の通信方法によれば、前記発明1などと同様に、受信機から送信機へ最初の確認応答が受信されるまでにネットワーク輻輳に対処しつつ、初期データの送信量を的確に調節することが可能となるため、従来法のように初期データの送信量を一律に設定する場合に比べて、通信初期のスループットを大幅に向上させることができる。
以下、本発明を実施するための最良の形態を添付図面を参照しながら詳述する。
図1〜図3は、本発明に係る通信システム100の実施の一形態を示したものである。
図1に示すように、この通信システム100は、ユーザに携帯される移動機(受信機)10と、管轄する無線エリア内の移動機10と無線通信可能な基地局(中継装置)20と、この基地局20が接続されるコアネットワーク30に接続されるサーバ装置(送信機)40とから主に構成されており、移動機10は、基地局20およびコアネットワーク30を介してサーバ装置40と通信可能となっている。
この通信システム100は、IMT−2000(Intenational Mobile Telecommunications-2000)に準拠している。
移動機10、基地局20およびサーバ装置40の数は、それぞれ1以上の任意の数である。
なお、本実施の形態では、サーバ装置40はコアネットワーク30に直接接続されているが、サーバ装置40はインターネットに接続され、インターネットとコアネットワーク30を接続するゲートウェイ装置を介してコアネットワーク30に接続されてもよい。また、ゲートウェイ装置がTCPを終端する機能を有する場合には、サーバ装置40の代わりにゲートウェイ装置が本発明の送信機として適用される。
図2は、この通信システム100の通信プロトコル構成を示す図である。
図示するように、トランスポート層(TCP)以上の層での通信は移動機10およびサーバ装置40のみで終端され、ネットワーク層以下の層での通信は通信システム100を構成するすべての装置で終端される。ただし、基地局20は、後述のようにトランスポート層のデータユニットを操作することができる。
また、この通信システム100は、無線区間(無線ネットワーク)にてビット誤りに対処するための通信処理を行うため、無線区間の伝送遅延は有線区間(有線ネットワーク)よりも大きいという通信特性を有する。
図3は、この通信システム100を構成する移動機10、基地局20、サーバ装置40のそれぞれの機能を示す機能ブロック図である。
図示するように、まず、サーバ装置40は、データユニット送信手段40Aと、識別情報取得(受信)手段40Bと、ロス判定手段40Cと、送信量制御手段40Dと、確認応答受信手段40Eと、指示情報制御手段40Fとを少なくとも備えた構成となっている。
ここで、データユニット送信手段40Aは、送信データにTCPおよびIPヘッダを有するTCPセグメントを付加したデータユニットを生成して所定の基地局20に対して送信する機能を提供するものである。
また、識別情報受信手段40Bは、基地局20からコアネットワーク30を介して送られてくる送信済みのデータユニットの識別情報を、いわゆるフィードバック情報として取得する機能を提供するものであり、ロス判定手段40Cは、この識別情報受信手段40Bで取得された前記識別情報に基づいて前記データユニットのロスを判定する機能を提供するものである。
送信量制御手段40Dは、このロス判定手段40Cによる判定結果に応じて前記データユニットの送信量を制御する提供するものであり、具体的には、データユニットのデータ量を制限するウィンドウサイズを制御するウィンドウ制御部を備え、このウィンドウ制御部によって、前記データユニットに対する移動機10からの最初の確認応答が受信されたときは、それまでに受け取った前記識別情報に対応するデータユニットのサイズの合計値に基づいて前記ウィンドウサイズを制御することで送信初期における実質的なデータの送信量を制御するようになっている。
また、確認応答受信手段40Eは、前記データユニットに対して送信された移動機10からの確認応答(ACK)を受信する機能を提供するものである。
また、指示情報制御手段40Fは、基地局20に対して前記データユニットの識別情報をサーバ装置40側に送信するか否かを指示する情報を制御する機能を提供するものである。具体的には後述するが、例えば前記データユニットのTCPセグメントに転送通知要求フラグを設定するなどによってそのデータユニットの識別情報の送信を指示することになる。
また、同図に示すように、基地局20にあっては、データユニット転送手段20Aと、識別情報取得手段20Bと、識別情報通知手段20Cと、指示情報取得手段20Dと、指示情報判定手段20Eとを少なくとも備えた構成となっている。
ここで、データユニット転送手段20Aは、サーバ装置40から送られてきたデータユニットを受信し、そのデータユニットに付加されているTCPセグメントなどから転送先の移動機10を特定してそのデータユニットを転送する機能を提供するものである。
また、識別情報取得手段20Bは、前記データユニット転送手段20Aによって移動機10側へ転送するデータユニットごとの識別情報をそのTCPセグメントなどから取得する機能を提供するものであり、識別情報通知手段20Cは、この識別情報取得手段20Bで取得したデータユニットごとの識別情報を、いわゆるフィードバック情報として前記コアネットワーク30を介して通知する機能を提供するものである。
また、指示情報取得手段20Dは、前記データユニットとは別に、あるいはデータユニットと共にサーバ装置40から送られてきた指示情報などを取得する機能を提供するものである。
そして、指示情報判定手段20Eは、この指示情報取得手段20Dで取得された具体的な指示情報を判定(解釈)してその指示通りに基地局20の動作を制御する機能を提供するものである。
また、同図に示すように、移動機10にあっては、データユニット受信手段10Aと、確認応答送信手段10Bとを少なくとも備えた構成となっている。
ここで、データユニット受信手段10Aは、基地局20から自己宛に転送されてきたデータユニットを受信して図示しないデータ処理手段に配信する機能を提供するものであり、また、確認応答送信手段10Bは、前記データユニットを受信したときは、その確認応答(ACK)を所定の基地局20経由でサーバ装置40側に送信する機能を提供するものである。
図4は、本発明の通信システム100を構成する基地局20のハードウェア構成を示すブロック図である。
この図から明らかなように、この基地局20は、実際には一般的なコンピュータと同様に、CPU(中央処理装置)21、RAM(主記憶装置)23、ROM(不揮発性メモリ)22、無線部24、通信インタフェース25などがバス26を介して互いに情報通信可能に接続された構成となっている。そして、CPU21は、図示しない電源が投入されると、ROM22などに記憶されている各種プログラム221を適宜読み出してきてRAM23にロードし、このRAM23をワークエリアとしてそれらのプログラムを実行することにより所定の各種処理を実行する構成となっている。
また、このROM22などに記憶されているプログラム221は、具体的には、後述する転送通知プログラムや、トランスポート層よりも下位の通信処理を行わせるプログラム、これらのプログラムの実行制御を行わせるシステムプログラムの他、これら各種プログラムおよび無線部24、通信インタフェース25などの機能を適宜利用して、前記データユニット転送手段20Aや、識別情報取得手段20B、識別情報通知手段20C、指示情報取得手段20D、指示情報判定手段20Eの各機能をソフトウェア上で実現するためのそれぞれの制御プログラムが含まれる。
無線部24は、移動機10との間で無線信号を送受信するための入出力装置の1つであり、CPU21から送信すべきデータが供給されると、この送信データにより変調された搬送波を無線区間へ送出し、無線区間を伝播してきた搬送波からデータを復調すると、この受信データをCPU21に供給する(データユニット転送手段20A)。この無線部24およびCPU21により、移動機10との間でのデータの送受信が行われる。
通信インタフェース25は、コアネットワーク30との間で信号を送受信するための同じ入出力装置の1つであり、CPU21から送信すべきデータが供給されると、この送信データにより変調された信号をコアネットワーク30へ送出し、コアネットワーク30から供給された信号からデータを復調すると、この受信データをCPU21に供給する。この通信インタフェース25およびCPU21により、サーバ装置40との間でのデータの送受信がコアネットワーク30を介して実現される。
移動機10との通信処理では、CPU21は、データリンク層にてRLC(Radio Link Control)に従う処理を行う。
図5は、RLCのAM(Acknowlegement Mode)モードでの送信データの流れを表したものである。
図示するように、上位層から供給されたデータ(SDU:Service Data Unit)は、まず、SDUバッファ231に格納され、送信用キュー232に十分な空きがあれば、SDUは、SDUバッファ231から取り出され、より小さなデータ単位(PDU:Protocol Data Unit)に分割された後、送信用キュー232に格納される。
そして、下位層が送信可能ならば、送信用キュー232に格納されたPDUは、その送信用キュー232から取り出され、下位層に送出されるとともに、その複製が再送信用キュー233に格納される。なお、これらの処理は、管理する移動機10ごとに行われる。
転送通知処理(識別情報通知処理)では、CPU21は、SDUバッファ231からSDUが取り出されたとき、そのSDUにTCPセグメントが格納されているか、またTCPセグメントが格納されている場合には、そのTCPセグメントに転送通知要求フラグが設定されているかを確認し、それらの条件がともに満たされた場合、そのTCPセグメントの最初と最後のシーケンス番号を取得してサーバ装置40に通知する。
通知方法には、SACKオプションと同様の方法を用いる。すなわち、CPU21(識別情報通知手段20C)は、新たに生成したTCPセグメントのオプションフィールドに取得されたシーケンス番号を格納し、サーバ装置40に送信する。なお、TCPセグメントの送信に必要なポート番号やIPアドレスなどの情報は、取り出されたSDUに格納されるTCPおよびIPヘッダから取得される。
通知を受けたサーバ装置40(識別情報受信手段40B)は、TCPオプションフィールドに記載されたシーケンス番号の範囲のデータが有線区間から抜けたことを知る。
次に、図6は、サーバ装置40のハードウェア構成を示すブロック図である。
この図から明らかなように、サーバ装置40は、一般的なコンピュータと同様に、CPU(中央処理装置)41、RAM(主記憶装置)43、ROM(不揮発性メモリ)42、通信インタフェース44などがバス45を介して互いに情報通信可能に接続された構成となっている。そして、CPU41は、図示しない電源が投入されると、ROM42などに記憶されているプログラム421を適宜読み出してきてRAM43にロードし、このRAM43をワークエリアとしてそれらのプログラムを実行することにより各種処理を行う構成となっている。
また、このROM42などに記憶されている各種プログラム421は、具体的には、後述する輻輳制御処理プログラムや、トランスポート層にて一般的なTCPに従う通信処理を行わせるプログラム、これらのプログラムの実行制御を行わせるシステムプログラムの他、これら各種プログラムおよび通信インタフェース44などの機能を適宜利用して、前記データユニット送信手段40Aや、識別情報受信手段40B、ロス判定手段40C、送信量制御手段40D、確認応答受信手段40Eと、指示情報制御手段40Fの各機能をソフトウェア上で実現するためのそれぞれの制御プログラムが含まれる。
通信インタフェース44は、コアネットワーク30との間で信号を送受信するための入出力装置の1つであり、CPU41から送信すべきデータが供給されると、この送信データにより変調された信号をコアネットワーク30へ送出し(データユニット送信手段40A)、コアネットワーク30から供給された信号からデータを復調すると、この受信データをCPU41に供給する(識別情報受信手段40B、確認応答受信手段40E)。
通信インタフェース44およびCPU41により、移動機10との間でのデータの送受信がコアネットワーク30を介して行われる。
輻輳制御処理では、CPU41は、移動機10から返送されるACKを最初に受信するまで基地局20からの転送通知メッセージ(識別情報)に基づいて、輻輳ウィンドウ(cwnd)を調節する。
CPU41(データユニット送信手段40A)は、最初に送信されたデータに対するACKを受信するまで、データを含む、すなわちデータ長が「0」でないTCPセグメントの転送通知要求(識別情報取得要求)フラグを設定して送信を行う。なお、この転送通知要求フラグには、例えば、TCヘッダ内で使用されていない6ビットのうちの1ビットを用いることができる。
転送通知要求フラグの設定されたTCPセグメントを受信した基地局20は、前述の方法にて転送通知(識別情報通知)を行う。
CPU41は、基地局20から返送される転送通知メッセージを受信した(識別情報受信手段40B)ならば、その転送通知メッセージに基づいて、以下のように輻輳ウィンドウ(cwnd)を変更する(送信量制御手段40D)。
サーバ装置40のCPU41(送信量制御手段40D)は、基地局20から返送される転送通知メッセージを受信するとロス判定を行い(ロス判定手段40C)、最初にロス判定が肯定的となるまで、輻輳ウィンドウ(cwnd)をスロースタート(slow start)と同様の方法で増加させる。すなわち、
cwnd+=L+mss…(2)
ここで、「L」は、通知されたデータサイズ、「mss」は、MSSを表す。
通常のスロースタート(slow start)では、輻輳ウィンドウ(cwnd)は、「mss」ずつ増加されるのに対し、前記(2)式では、「L」だけ余分に増加されている。
通常のスロースタート(slow start)では、ACKが受信されると、ACKによって受信確認されたデータサイズと、輻輳ウィンドウ(cwnd)の増加分、すなわち「mss」とを合わせたサイズのデータ送信が可能となる。
本実施の形態の輻輳制御処理では、転送通知メッセージはACKとして利用されないため、通常のスロースタート(slow start)と同量のデータを送信するためには、輻輳ウィンドウ(cwnd)を通知されたデータサイズ(L)だけ余分に増加させる必要がある。
ところで、上述のロス判定手段40Cによるロス判定は、SACKオプションと同様の方法で行われる。
すなわち、シーケンス番号「S1」から「S2(S1<S2)」までのデータが通知されていない状態で「S2」よりもシーケンス番号の大きいデータに対する通知メッセージが3つ以上受信されるか、あるいは「S2」よりもシーケンス番号の大きいデータが「3MSS」サイズ以上通知されたとき、「S1」から「S2」までのデータはロスしたと判定される。
最初のロス判定が肯定的となった後、CPU41(送信量制御手段40Dのウィンドウサイズ制御部)は、輻輳ウィンドウ(cwnd)をコンジェスションアボイダンス(congestion avoidance)と同様の方法で変更する。すなわち、ロス判定が否定的であった場合、輻輳ウィンドウ(cwnd)は、次のように増加される。
cwnd+=L+mss/cwnd…(3)
ここで、輻輳ウィンドウ(cwnd)が通常のコンジェスションアボイダンス(congestion avoidance)に比べ、通知されたデータサイズ「L」だけ余分に増加される理由は、上述した通りである。また、ロス判定が肯定的であった場合、輻輳ウィンドウ(cwnd)は、次のように減少される。
cwnd−=F/2…(4)
ここで、「F」はサーバ装置40と基地局20との間に滞留するデータ量を表す。
サーバ装置40と基地局20との間に滞留するデータ量は、サーバ装置40によって送信されたデータ量から基地局20によって通知されたデータ量と、ロス判定が肯定的となったデータ量を引いて算出される。
前記(4)式にて、輻輳ウィンドウ(cwnd)から「F/2」を減じているのは、サーバ装置40から基地局20までの間に滞留するデータ量を1/2に減少させるためである。ただし、サーバ装置40と基地局20との往復伝播遅延の間に複数回、ロス判定が肯定的となった場合、輻輳ウィンドウ(cwnd)は1度だけ減少されるものとする。
CPU41(送信量制御手段40D)は、前記(4)式によって輻輳ウィンドウ(cwnd)を減少させた後、その直後に送信したデータ、あるいはそれよりもシーケンス番号の大きいデータに対する通知メッセージが受信されるまでは、ロス判定が肯定的であっても、輻輳ウィンドウ(cwnd)を減少させない。なお、CPU41(データユニット送信手段40A)は、ロス判定が肯定的であっても、当該データの再送は行わない。
ところで、ロス判定が肯定的となったとき、サーバ装置40から基地局20までの間に滞留するデータ量は、通知されたデータサイズ(L)に加えてロス判定が肯定的となったデータサイズ(Lloss)だけ減少したことになる。
この減少量(L+Lloss)に相当するデータを新たに送信するために、CPU41(送信量制御手段40Dのウィンドウサイズ制御部)は、輻輳ウィンドウ(cwnd)を次のように増加させる。
cwnd+=(L+Lloss)…(5)
CPU41(送信量制御手段40Dのウィンドウサイズ制御部)は、移動機10からのACKを最初に受信するまで輻輳ウィンドウ(cwnd)を上述の方法で更新し、確認応答受信手段40EによってACKを受信すると、輻輳ウィンドウ(cwnd)をそれまで通知されたデータサイズに設定する。
このデータサイズは、サーバ装置40と移動機10の間の往復伝播遅延の間に、ネットワークが送信可能なデータ量に等しいか、それよりも小さい値である。
このように本発明は、有線区間の輻輳に従来と同様の方法で対処しつつ、実質的に輻輳ウィンドウ(cwnd)の初期値を増加させることが可能である。
輻輳制御処理では、CPU41(送信量制御手段40Dのウィンドウサイズ制御部)は、移動機10からのACKを最初に受信した後、ACKに基づいて輻輳ウィンドウ(cwnd)を調節する。
CPU41(送信量制御手段40Dのウィンドウサイズ制御部)は、ACKによって受信確認されたデータ量(Lacked)が、最初にACKを受信した時点のサーバ装置40と基地局20との間のデータ滞留量(Lfirstack)に等しくなるまで、輻輳ウィンドウ(cwnd)を次のように増加させる。
cwnd+=min(α・mss、mss/2)…(6)
ここで、「α」は、輻輳ウィンドウ(cwnd)の増加速度を決定するパラメータである。
例えば、「α=1」としたとき、輻輳ウィンドウ(cwnd)は、スロースタート(slow start)と同速度で増加され、「α=1/cwnd」としたとき、コンジェスションアボイダンス(congestion avoidance)と同速度で増加される。
「α」を大きく設定するほど、送信レートがネットワークの伝送速度に達するまでの時間は短縮されるが、伝送速度に達した後に発生するパケットロス数は増加する。また、「mss」は、これまでと同様に「MSS」を表す。
ACKによって受信確認されたデータ量(Lacked)が、最初にACKを受信した時点のサーバ装置40と基地局20との間のデータ滞留量(Lfirstack)に等しくなるまで輻輳ウィンドウ(cwnd)の増加量は、高々「mss/2」に抑えられる。
これは、最初にACKを受信してから、サーバ装置40と基地局20との往復伝播遅延時間が経過するまでの間、サーバ装置40と基地局20との間に滞留するデータ量を1/2に減少させるためである。
ところで、ロスの有無にかかわらず、最初にACKを受信してから、サーバ装置40と基地局20との往復伝播遅延時間が経過するまでの間、サーバ装置40と基地局20との間のデータ滞留量を1/2に減少させるのは、最初にACKを受信する前に送信されたすべてのデータに対してロス判定ができるとは限らないためである。
例えば、最後に転送通知フラグが設定されたデータ、すなわち、最初にACKを受信する直前に送信されたデータがロスした場合、そのデータのロス判定はできない。そのデータよりも大きなシーケンス番号をもつデータに対して通知がなされないためである。
そこで、本実施の形態ではロスが発生していない場合でもサーバ装置40と基地局20との間に滞留するデータ量を1/2に減少させる安全側の制御を採っている。
CPU41(送信量制御手段40Dのウィンドウサイズ制御部)は、ACKによって受信確認されたデータ量(Lacked)が最初にACKを受信した時点のサーバ装置40と基地局20との問のデータ滞留量(Lfirstack)に等しくなった後、後述する時点まで次のように輻輳ウィンドウ(cwnd)を増加させる。
cwnd+=α・mss …(7)
ここで、「α」は、前記(6)式と同じパラメータである。
なお、CPU41(データユニット送信手段40A)は、TCPと同様の方法でロスを検出して、そのデータを再送する。ただし、最初にACKを受信するまでに送信されたデータに対しては、ロスが検出されても輻輳ウィンドウ(cwnd)を減少させない。それらのデータに対しては、前記(4)式、または(6)式によって既に対処がなされているためである。
CPU41は、次の2つの条件のうち、いずれかが満されるとき前記(7)式による輻輳ウィンドウ(cwnd)の変更を終了し、通常のTCPの動作に移る。
第一の条件は、最初にACKを受信する前に送信されたデータ以外のデータに対してロスが検出されたときである。CPU41は、そのデータのロスを検出すると、そのデータの再送後、スロースタート(slow start)またはコンジェスションアボイダンス(congestion avoidance)による処理に移る。
第二の条件は、前記(7)式のパラメータ「α」に関係する。
「α」が「1」よりも小さい場合、本発明を用いたときの輻輳ウィンドウ(cwnd)の値が一定時問後に従来法を用いたときの値を下回り、期待する効果が得られない可能性がある。そこで、本発明では輻輳ウィンドウ(cwnd)の値が従来法を用いたときの値を下回る直前で前記(7)式による輻輳ウィンドウ(cwnd)の変更を終え、スロースタート(slow start)による処理に移る。すなわち、従来法と同じ速度で輻輳ウィンドウ(cwnd)を増加させる。
「α」が定数の場合、次の条件が満たされている間、本発明は従来法よりも大きな輻輳ウィンドウ(cwnd)の値を保持する。
IWprop・(α+1)n−1≧IWlegacy・2n−1 …(8)
ここで、「IWprop」および「IWlegacy」は、それぞれ本発明と従来法の初期ウィンドウサイズを表す。また、「n」は、最初のデータの送信後、経過したRTTの回数を表す。前記(8)式を満たす「n」の最大値をNとすると、「α」が定数の場合、CPU41は、N番目のRTTまで、前記(8)式によって輻輳ウィンドウ(cwnd)を更新し、N+1番目のRTTからスロースタート(slow start)による処理に移る。
「α」の値が輻輳ウィンドウ(cwnd)に反比例する場合(すなわち、α=k/cwnd、k:定数)、次の条件が満たされている間、本発明は従来法よりも大きな輻輳ウィンドウ(cwnd)の値を保持する。
IWprop+k(n−1)≧IWlegacy・2n−1 …(9)
ここで、「n」は、前記(8)式と同様に、最初のデータの送信後、経過したRTTの回数を表す。この(9)式を満たす「n」の最大値をNとすると、「α」が定数の場合、CPU41は、N番目のRTTまで、この(9)式によって輻輳ウィンドウ(cwnd)を更新し、N+1番目のRTTから、スロースタート(slow start)による処理に移る。
次に、上述した構成の通信システム100の動作について説明する。
ただし、移動機10とサーバ装置40の間には、基地局20を中継装置としてTCPコネクションが確立されているものとする。
よって、以降の説明において、基地局20のCPU21は、既にROM22から制御プログラムおよび転送通知プログラムは勿論、前記データ転送手段20Aや識別情報取得手段20Bなどの各手段を実現するためのプログラム221などを読み出して実行しており、また、サーバ装置40のCPU41も同じくROM42から制御プログラムおよび通信プログラムは勿論、識別情報受信手段40Bやロス判定手段40Cなどの各手段を実現するためのプログラム421を読み出して実行しているものとする。
また、以降の動作例では通信システム100のサーバ装置40と移動機10の間のRTT、およびサーバ装置40と基地局20の間のRTTをそれぞれ「100msec」および「10msec」に、有線ネットワークおよび無線ネットワークの帯域をそれぞれ「10Mbps」および「2.5Mbps」に設定した。なお、これらの値は、説明の容易さから選んだものでIMT−2000に準拠した移動通信システムとは異なる。
また、基地局20のSDUバッファサイズを「6Kバイト」に設定し、バッファに空きがない場合、バッファの先頭からSDUが廃棄されるフロントドロップ(Front Drop)方式を用いた。
さらに、TCPの初期シーケンス番号を「0」、MSSを「1Kバイト」、初期輻輳ウィンドウサイズを「4Kバイト」とし、TCPコネクションの送受信バッファは十分に大きく、TCPセグメントの送信は、標準的なTCPに実装されるフロー制御によっては制限されないものとした。
また、TCPのSACKオプションが使用されるものとし、また、前記(6)式および(7)式で用いられるパラメータ「α」をそれぞれ「3」に設定した。
まず、以降の説明において参照する新たな図面について説明する。
図7は、基地局20における転送通知プログラムを実行中のCPU21により行われる転送通知処理の流れを示すフローチャートであり、図8〜図10は、サーバ装置40における各種プログラムを実行中のCPU41により行われる輻輳制御処理の流れを示すフローチャートである。
また、図11および図12は、通信システム100により行われる通信の一例を示すシーケンス図である。
図11および図12には、サーバ装置40側に、送信データのシーケンス番号(括弧外に表記)、データ送信後のサーバ装置40と基地局20との間のデータ滞留量(括弧内、左に表記)および、転送通知メッセージまたは確認応答受信後の輻輳ウィンドウサイズ(括弧内、右に表記〕が示されている。また、移動機側に確認応答のシーケンス番号(括弧外に表記)および、SACKオプションによって通知されるシーケンス番号(括弧内に表記)が示され、基地局に、転送データのシーケンス番号が示されている。
さて、サーバ装置40のCPU41(データユニット送信手段40A)は、移動機10からの要求によりTCPコネクションを確立すると、転送通知要求フラグを設定して所定のTCPセグメントを送信する。
本実施の形態では、初期ウィンドウサイズが「4000バイト」に設定されているため、図11に示すように、シーケンス番号「0−999」、「10000−1999」、「2000−2999」および「3000−3999」の4つのTCPセグメントが連続して送信される。
基地局20のCPU21(データユニット転送手段20A)は、シーケンス番号「0」のTCPセグメントがSDUとして供給されると、それをSDUバッファ231に格納する。
SDUバッファ231には、先に格納された送信待ちのSDUがないため、CPU21は、直ちにSDUを取り出し(図7のステップSA1)、SDUに格納されるデータユニットがTCPセグメントか否かを判定する(ステップSA2)。
この判定の結果、SDUに格納されるデータユニットがTCPセグメントでないとき(No)は、最初のステップSA1に戻るが、SDUに格納されるデータユニットがTCPセグメントであるとき(Yes)は、次のステップSA3に移行してTCPセグメントの転送通知フラグが設定されているか否かを判定する。
この判定の結果、TCPセグメントの転送通知フラグが設定されていないと判定したとき(No)は、最初のステップSA1に戻るが、TCPセグメントの転送通知フラグが設定されていると判定したとき(Yes)は、識別情報取得手段20Bによって、TCPセグメントに格納されるデータの最初と最後のシーケンス番号(0および999)を取得し、識別情報通知手段20Cによって、新しく生成した転送通知メッセージに、それらを格納してサーバ装置40に送信する(ステップSA4)。その後、最後のステップSA5に移行して前記SDUバッファ231にSDUが残っているかを判定し、残っていないと判定したとき(No)はその送信処理を終了することになるが、残っていると判定したとき(Yes)は、最初のステップSA1に戻って同様の処理を繰り返すことになる。
なお、CPU21(データユニット転送手段20A)は、SDUバッファ231から取り出されたSDUをPDUに分割し、送信用キュー232に格納する。さらに、送信キュー232に格納されたPDUを順に下位層に送出する。CPU21がPDUを下位層に送出するとは、PDUを無線リンクに送出することに等しい。このように実際は、TCPセグメントはPDUに分割されて無線リンクに送出されるが、図11では、TCPセグメントの流れのみを示している。
次にサーバ装置40のCPU41(識別情報受信手段40B)は、TCPセグメントを受信すると(図8のステップSB1)、それがACKか否かを判定する(ステップSB2)。受信されたTCPセグメントがACKであると判定したとき(Yes)は、図9のステップSC3へ移行することになるが、受信されたTCPセグメントがACKでないと判定したとき(No)は、ロス判定手段40Cによってロス判定を行う(ステップSB3)。
この結果、ロス判定が肯定的であるとき(Yes)は、図9のステップSC5へ移行することになるが、ロス判定が否定的であるとき(No)は、前記(2)式に従って、転送通知されたデータサイズ(L=1000バイト)およびMSS(mss=1000バイト)だけ輻輳ウィンドウ(cwnd)を増加させ(ステップSB4)、新たにデータの送信が可能か否かを判定する(ステップSB5)。
輻輳ウィンドウ(cwnd)は、6000バイトでサーバ装置40と移動機10との間のデータ滞留量は「0」から「3999」までの4000バイトであり、また、本実施の形態では、データ送信はフロー制御による制約を受けないため、CPU41(データユニット送信手段40A)は、新たにシーケンス番号「4000−4999」のTCPセグメントを送信する(ステップSB6)。
続いて、CPU41は、さらにデータの送信が可能か否かを判定する(ステップSB5)。輻輳ウィンドウ(cwnd)は、6000バイトでサーバ装置40と移動機10との間のデータ滞留量は「0」から「4999」までの5000バイトであり、フロー制御による制約を受けないため、CPU41は、新たにシーケンス番号「5000−5999」のTCPセグメントを送信する(ステップSB6)。
さらに、CPU41は、データの送信が可能か否かを判定するが(ステップSB5)、サーバ装置40と移動機10との間のデータ滞留量が既に6000バイト(=cwnd)に達しているため、今回はデータの送信を見送る。
以上のようにして、サーバ装置40のCPU41は、シーケンス番号「14000−14999」のTCPセグメントに対する通知メッセージが受信されるまで、前記(2)式に従って輻輳ウィンドウ(cwnd)を更新しながら、データを送信する。
さて、シーケンス番号「15000−15999」のTCPセグメントが基地局20に到着したとき、基地局20のSDUバッファ231は、先に到着したTCPセグメントで既に一杯であり、SDUバッファ231の先頭に位置するSDUが廃棄される。
廃棄されたSDUは、シーケンス番号「9000−9999」のTCPセグメントに相当する。このTCPセグメントのロスは、シーケンス番号「14000−14999」のTCPセグメントに対する転送通知メッセージ(識別情報)がサーバ装置40に到着したとき、検出される。
同様に、シーケンス番号「17000−17999」、「19000−19999」、「21000−21999」、「23000−23999」および「25000−25999」のTCPセグメントが基地局20に到着したとき、SDUバッファ231の先頭のSDUが廃棄される。
それらのSDUは、シーケンス番号「11000−11999」、「13000−13999」、「15000−15999」、「17000−17999」および「19000−19999」のTCPセグメントに相当し、シーケンス番号「16000−16999」、「18000−18999」、「20000−20999」、「21000−21999」および「22000−22999」のTCPセグメントに対する転送通知メッセージ(識別情報)がサーバ装置に到着したとき検出される。
以下では、シーケンス番号「14000−14999」のTCPセグメントに対する転送通知メッセージ(識別情報)がサーバ装置に到着した後の提案法の動作について説明する。
サーバ装置40のCPU41(識別情報受信手段40B、ロス判定手段40C)は、シーケンス番号「14000−14999」のTCPセグメントに対する転送通知メッセージを受信すると(図8のステップSB1、ステップSB2:No)、それまで送信されたデータにロスがないか判定を行う(ステップSB3)。
シーケンス番号「9000−9999」のTCPセグメントが通知されておらず、そのセグメントよりもシーケンス番号の大きいTCPセグメント(10000−10999、12000−12999、14000−14999)に対して通知メッセージが3つ受信されたため、ロス判定は肯定的となる。ここで、図9のステップSC5の処理に移る。
まず、サーバ装置40のCPU41(送信量制御手段40D)は、前に輻輳ウィンドウ(cwnd)が減少されてからサーバ装置40と基地局20との間の往復伝播遅延時間が経過したか否かを判定する(図9のステップSC5)。輻輳ウィンドウ(cwnd)を減少させるのは、今回が初めてであるため、CPU41は前記(4)式に従って輻輳ウィンドウ(cwnd)を減少させる(ステップSC6)。
このメッセージが到着したとき、サーバ装置40と基地局20との間に滞留するデータ量は、サーバ装置40によって送信されたデータ量「26000バイト」から基地局20によって通知されたデータ量「11000バイト」を引いたデータ量「15000バイト」である。従って、輻輳ウィンドウ(cwnd)は、「18000バイト(=26000−8000)」に減じられる。
次に、CPU41(送信量制御手段40D)は、前記(5)式に従って、輻輳ウィンドウ(cwnd)を増加させる。
輻輳ウィンドウ(cwnd)は、ロス判定が肯定的となったデータ量「1000バイト」と、通知されたデータ量「1000バイト」を合わせたデータ量「2000バイト」だけ増加される(ステップSC7)。
続いて、CPU41(データユニット送信手段40A)は、新たにデータの送信が可能か否かを判定する(ステップSC9)。
輻輳ウィンドウ(cwnd)は、「20000バイト」であり、サーバ装置40と移動機10との問のデータ滞留量は「26000バイト(>cwnd=20000)」のため、CPU41は、データの送信を行わない。
サーバ装置40のCPU41(識別情報受信手段40B、ロス判定手段40C)は、シーケンス番号「16000−16999」のTCPセグメントに対する転送通知メッセージ(識別情報)を受信すると(図9のステップSC1、ステップSC2:No)、シーケンス番号「11000−11999」のTCPセグメントのロスを検出する(ステップSC4:Yes)。
次に、CPU41は、前回輻輳ウィンドウ(cwnd)を減少させてから、サーバ装置40と基地局20との間の往復伝播遅延時間が経過したか否かを判定する(ステップSC5)。
往復伝播遅延時間は経過していないため、CPU41は、ロス判定が肯定的となったデータ量「1000バイト」と、通知されたデータ量「1000バイト」を合わせたデータ量「2000バイト」だけ輻輳ウィンドウ(cwnd)を増加させる(ステップSC7)。
次に、CPU41は、新たにデータの送信が可能か否かを判定する(ステップSC9)。
輻輳ウィンドウ(cwnd)は、「22000バイト(byte)」であり、サーバ装置40と移動機10との問のデータ滞留量は「26000バイト(>cwnd=22000)のため、CPU41は、データの送信を行わない。
サーバ装置40のCPU41は、シーケンス番号「18000−18999」および「20000−20999」のTCPセグメントに対する転送通知メッセージ(識別情報)に対しても同様の処理を行う。
サーバ装置40のCPU41は、シーケンス番号「21000−21999」のTCPセグメントに対する転送通知メッセージを受信すると(図9のステップSC1、ステップSC2:No)、シーケンス番号「17000−17999の」TCPセグメントのロスを検出する(ステップSC4:Yes)。
前回輻輳ウィンドウ(cwnd)を減少させてから、往復伝播遅延時問は経過していないため(ステヅプSC5:No)、CPU41は、ロス判定が肯定的となったデータ量「1000バイト」と、通知されたデータ量「1000バイト」を合わせたデータ量「2000バイト」だけ輻輳ウィンドウ(cwnd)を増加させ(ステップSC7)、新たにデータの送信が可能か否かを判定する(ステップSC9)。
輻輳ウィンドウ(cwnd)は、「28000バイト」であり、サーバ装置40と移動機10との問のデータ滞留量は、「26000バイト(<cwnd=28000)」のため、CPU41(データユニット送信手段40A)は、シーケンス番号「26000−26999」のTCPセグメントを送信する(ステップSC1O)。
さらに続けて、CPU41は、さらにデータの送信が可能か否かを判定する(ステップSC9)。
輻輳ウィンドウ(cwnd)は「28000バイト」で、サーバ装置40と移動機10との間のデータ滞留量は「27000バイト(<cwnd=28000)」のため、CPU41は、新たにシーケンス番号「27000−27999」のTCPセグメントを送信する(ステップSC1O)。
さらに、CPU41は、データの送信が可能か否かを判定するが(ステップSC9)、サーバ装置40と移動機10との間のデータ滞留量が既に「28000bバイト(=cwnd)」に達しているため、今回はデータの送信を見送る。
サーバ装置40のCPU41は、シーケンス番号「22000−22999」のTCPセグメントに対する転送通知メッセージに対しても同様の処理を行い、シーケンス番号「28000−28999」および「29000−29999」のTCPセグメントを新たに送信する。
サーバ装置40のCPU41は、シーケンス番号「23000−23999」のTCPセグメントに対する転送通知メッセージ(識別情報)を受信すると(図9のステップSC1、ステップSC2:No)、それまで送信されたデータにロスがないか判定を行う(ステップSC4)。
ロス判定は否定的であるため、CPU41は前記(3)式に従って輻輳ウィンドウ(cwnd)を増加させる(ステップSC8)。
次にCPU41は、新たにデータの送信が可能か否かを判定する(ステップSC9)。
輻輳ウィンドウ(cwnd)は「31000バイト」であり、サーバ装置40と移動機10との間のデータ滞留量は「30000バイト(<cwnd=31000)」のため、CPU41は、新たにシーケンス番号「30000−31999」のTCPセグメントを送信する(ステップSC1O)。
さらに、CPU41は、データの送信が可能か否かを判定するが(ステップSC9)、サーバ装置40と移動機10との間のデータ滞留量が既に「31000バイト(=cwnd)」に達しているため、今回はデータの送信を見送る。
以上のようにして、サーバ装置40のCPU41は、移動機10からのACKが最初に受信されるまで前記(3)式に従って輻輳ウィンドウ(cwnd)を更新しながら、データを送信する。
サーバ装置40のCPU41(確認応答受信手段40E、送信量制御手段40D)は、シーケンス番号「0−999」に対するACKを受信すると(図9のステップSC1、ステップSC2:Yes)、輻輳ウィンドウ(cwnd)をこれまでに通知されたデータ量に設定する(ステップSC3)。
シーケンス番号「0−999」に対するACKが受信されるまで、「29000バイト」のデータが通知されているため、輻輳ウィンドウ(cwnd)は、「29000バイト」に設定される。
以上のように、本発明は、移動機からのACKが最初に受信されるまで、ネットワーク輻輳に対処しながら、輻輳ウィンドウ(cwnd)を増加させることで、実質的に初期ウィンドウを拡大することができる。
次に、ACKが受信された後の本発明の動作について説明する(図10)。
サーバ装置40のCPU41(確認応答受信手段40E)は、シーケンス番号「0−999」に対するACKを受信すると(図10のステップSD1)、第一の条件が満たされるか否かを判定する(ステップSD2)。
第一の条件は、最初にACKが受信されてから送信されたデータに対してロスが検出されることである。第一の条件は満たされていると判断したとき(Yes)は、そのまま処理を終了することになるが、第一の条件は満たされていないと判断したとき(No)は、次にCPU41は、第二の条件が満たされるか否かを判定する(ステップSD3)。
第二の条件は、最初にACKが受信されてから、前記(9)式を満たす「n」の最大値Nに等しい回数のRTTが経過することである。
このステップSD3における判定の結果、第二の条件は満たされていると判定したとき(Yes)は、そのまま処理を終了することになるが、第二の条件は満たされていないと判定したとき(No)は、次にCPU41は、ACKによって受信確認されたデータ量(Lacked)が、最初にACKを受信した時点のサーバ装置40と基地局20との間のデータ滞留量(Lfirstack)よりも大きいか否かを判定する(ステップSD4)。
ACKによって受信確認されたデータ量は「1000バイト」で、最初にACKが受信された時点のサーバ装置40と基地局20との間のデータ滞留量は、それまでに送信されたデータ量「43000バイト」から通知されたデータ量「29000バイト」とロス判定が肯定的となったデータ量「6000バイト」とを引いた「8000バイト」であるから、CPU41は、前記(6)式に従って輻輳ウィンドウ(cwnd)を増加させる(ステップSD5)。
次に、CPU41は、新たにデータの送信が可能か否かを判定する(ステップSD7)。
輻輳ウィンドウ(cwnd)は、「29000バイト」であり、サーバ装置40と移動機10との間のデータ滞留量は「42000バイト(>cwnd=29000)」のため、CPU41は、データの送信を行わない。
サーバ装置40のCPU41は、シーケンス番号「1000−1999」から「7000−7999」までのTCPセグメントに対するACKに対しても同様の処理を行う。
サーバ装置40のCPU41は、シーケンス番号「8000−8999」のTCPセグメントに対するACKを受信すると(図10のステップSD1)、第一および第二の条件が満たされないと判定する(ステップSD2:No、ステップSD3:No)。
次に、CPU41は、ACKによって受信確認されたデータ量(Lacked)が、最初にACKを受信した時点のサーバ装置40と基地局20との間のデータ滞留量(Lfirstack)よりも大きいか否かを判定する(ステップSD4)。
ACKによって受信確認されたデータ量(Lacked)は「9000バイト」であり、最初にACKを受信した時点のサーバ装置40と基地局20との間のデータ滞留量(Lfirstack)は「8000バイト」であるから、CPU41は、(7)式に従って輻輳ウィンドウ(cwnd)を増加させる(ステップSD6)。
次に、CPU41は、新たにデータの送信が可能か否かを判定する(ステップSD7)。
輻輳ウィンドウ(cwnd)は「29000バイト」であり、サーバ装置40と移動機10との間のデータ滞留量は「42000バイト(>cwnd=29000)」のため、CPU41は、データの送信を行わない。
以上のようにして、サーバ装置40のCPU41は、第一あるいは第二の条件が満たされるまで前記(7)式に従って輻輳ウィンドウ(cwnd)を更新しながらデータを送信する。
本実施の形態では、シーケンス番号「62000−62999」のTCPセグメントが基地局20に到着したときバッファ溢れによって廃棄されたシーケンス番号「56000−56999」のTCPセグメントのロスが検出され、本発明は、前記(7)式に従って輻輳ウィンドウ(cwnd)を更新するのを止め、コンジェスションアボイダンス(c ongestion avoidance)に移る。
以上のように、本発明はさらにスロースタート(slow start)よりも緩やかに輻輳ウィンドウ(cwnd)を増加させることで、ネットワーク輻輳に伴うパケットロスを低減することもできる。
本発明の実施形態にかかわる通信システム100の構成を示す図である。 通信システム100の通信プロトコル構成を示す図である。 通信システム100を構成する移動機10、基地局20、サーバ装置40のそれぞれの機能を示す機能ブロック図である。 通信システム100を構成する基地局20の構成を示すブロック図である。 基地局20にてRLCにより処理される送信データの流れを示す図である。 通信システム100を構成するサーバ装置40の構成を示すブロック図である。 基地局20にて転送通知プログラム221を実行中のCPU21により行われる転送通知処理の流れを示すフローチャートである。 サーバ装置40にて通信プログラム421を実行中のCPU41により行われる通信処理の流れを示すフローチャートである。 サーバ装置40にて通信プログラム421を実行中のCPU41により行われる通信処理の流れを示すフローチャートである。 サーバ装置40にて通信プログラム421を実行中のCPU41により行われる通信処理の流れを示すフローチャートである。 通信システム1OOにより行われる通信の一例を示すシーケンス図である。 通信システム1OOにより行われる通信の一例を示すシーケンス図である。
符号の説明
10…移動機(受信機)
10A…データユニット受信手段
10B…確認応答送信手段
20…基地局(中継装置)
20A…データユニット転送手段
20B…識別情報取得手段
20C…識別情報通知手段
20D…指示情報取得手段
20E…指示情報判定手段
40…サーバ装置(送信機)
40A…データユニット送信手段
40B…識別情報受信手段
40C…ロス判定手段
40D…送信量制御手段
40E…確認応答受信手段
40F…指示情報制御手段
100…通信システム

Claims (12)

  1. 中継装置を介して受信機にデータユニットを送信する送信機であって、
    前記中継装置によって中継された前記データユニットの識別情報を取得する識別情報取得手段と、
    当該識別情報取得手段で取得された前記識別情報に基づいて前記データユニットのロスを判定するロス判定手段と、
    当該ロス判定手段による判定結果に応じて前記データユニットの送信量を制御する送信量制御手段とを具備することを特徴とする送信機。
  2. 請求項1に記載の送信機において、
    前記送信量制御手段は、前記データユニットの受信に対する前記受信機からの最初の確認応答が受信される前に、前記ロス判定手段による判定結果に応じて前記データユニットの送信量を制御するようになっていることを特徴とする送信機。
  3. 請求項1に記載の送信機において、
    前記受信機によって前記データユニットに対して送信された確認応答を受信する確認応答受信手段をさらに備え、
    前記送信量制御手段は、当該確認応答受信手段によって前記データユニットに対する最初の前記確認応答が受信されたときは、当該確認応答に応じて前記データユニットの送信量を制御するようになっていることを特徴とする送信機。
  4. 請求項3に記載の送信機において、
    前記送信量制御手段は、前記データユニットのデータ量を制限するウィンドウサイズを制御するウィンドウ制御部を備え、
    当該ウィンドウ制御部は、前記データユニットに対する前記受信機からの最初の確認応答が受信されたときは、それまでに受け取った前記識別情報に対応する前記データユニットのサイズの合計値に基づいて前記ウィンドウサイズを制御するようになっていることを特徴とする送信機。
  5. 請求項1〜4のいずれか1項に記載の送信機において、
    前記中継装置に対して前記データユニットの識別情報を送信するか否かを指示する情報を制御する指示情報制御手段をさらに備えていることを特徴とする送信機。
  6. 請求項5に記載の送信機において、
    前記指示情報制御手段は、前記データユニットに対する前記受信機からの最初の確認応答が受信されるときは、前記中継装置に対して前記データユニットの識別情報を送信しないことを指示するようになっていることを特徴とする送信機。
  7. 送信機から受信機宛に送信されたデータユニットを転送する中継装置であって、
    前記データユニットの識別情報を取得する識別情報取得手段と、
    前記送信機によって前記データユニットに記載された指示情報を取得する指示情報取得手段と、
    当該指示情報取得手段で取得された前記指示情報を判定する指示情報判定手段と、
    当該指示情報判定手段の判定結果に応じて前記識別情報取得手段によって取得された前記データユニットの前記識別情報を前記送信機に対して通知する識別情報通知手段とを具備することを特徴とする中継装置。
  8. 請求項7に記載の中継装置であって、
    前記識別情報通知手段は、前記データユニットが前記受信機に対して転送されたときは、前記識別情報を前記送信機に対して通知するようになっていることを特徴とする中継装置。
  9. データユニットを送信する送信機と、当該データユニットを受信して受信機に中継する中継装置とを備えた通信システムであって、
    前記送信機は、
    前記中継装置によって中継された前記データユニットの識別情報を取得する識別情報取得手段と、
    当該識別情報取得手段で取得された前記識別情報に基づいて前記データユニットのロスを判定するロス判定手段と、
    当該ロス判定手段による判定結果に応じて前記データユニットの送信量を制御する送信量制御手段とを具備することを特徴とする通信システム。
  10. 請求項9に記載の通信システムにおいて、
    前記中継装置は、
    前記データユニットの識別情報を取得する識別情報取得手段と、
    前記送信機によって前記データユニットに記載された指示情報を取得する指示情報取得手段と、
    当該指示情報取得手段で取得された前記指示情報を判定する指示情報判定手段と、
    当該指示情報判定手段の判定結果に応じて前記識別情報取得手段によって取得された前記データユニットの前記識別情報を前記送信機に対して通知する識別情報通知手段とを具備することを特徴とする通信システム。
  11. 中継装置を介して受信機にデータユニットを送信する送信機で用いられる通信プログラムであって、
    前記送信機のコンピュータを、
    前記中継装置によって中継された前記データユニットの識別情報を取得する識別情報取得手段と、
    当該識別情報取得手段で取得された前記識別情報に基づいて前記データユニットのロスを判定するロス判定手段と、
    当該ロス判定手段による判定結果に応じて前記データユニットの送信量を制御する送信量制御手段として機能させることを特徴とする通信プログラム。
  12. 送信機からのデータユニットを中継装置を介して受信機に送信するようにした通信方法であって、
    前記中継装置によって中継された前記データユニットの識別情報を取得すると共に、当該識別情報に基づいて前記データユニットのロスを判定し、そのロス判定結果に応じて前記送信機からの前記データユニットの送信量を制御するようにしたことを特徴とする通信方法。
JP2005355287A 2005-12-08 2005-12-08 送信機および中継装置並びに通信システム、通信プログラム、通信方法。 Pending JP2007159052A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005355287A JP2007159052A (ja) 2005-12-08 2005-12-08 送信機および中継装置並びに通信システム、通信プログラム、通信方法。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005355287A JP2007159052A (ja) 2005-12-08 2005-12-08 送信機および中継装置並びに通信システム、通信プログラム、通信方法。

Publications (1)

Publication Number Publication Date
JP2007159052A true JP2007159052A (ja) 2007-06-21

Family

ID=38242778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005355287A Pending JP2007159052A (ja) 2005-12-08 2005-12-08 送信機および中継装置並びに通信システム、通信プログラム、通信方法。

Country Status (1)

Country Link
JP (1) JP2007159052A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010070699A1 (ja) * 2008-12-15 2010-06-24 富士通株式会社 データ送信方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010070699A1 (ja) * 2008-12-15 2010-06-24 富士通株式会社 データ送信方法

Similar Documents

Publication Publication Date Title
US10237153B2 (en) Packet retransmission method and apparatus
JP4495085B2 (ja) 通信システム、通信装置、およびデータの再送制御方法
US8014287B2 (en) Communications apparatus
US6091733A (en) Communication device using communication protocol including transport layer and communication method using communication protocol including transport layer
US7835273B2 (en) Method for transmitting data in mobile ad hoc network and network apparatus using the same
JP4878391B2 (ja) 適応的なキュー待ち時間を伴うスケジューリング及びキューマネージメント
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
JP3617649B2 (ja) 最適化された受信側始動型送信レート増大方法
US8085669B2 (en) Session relay device and session relay method
KR100600607B1 (ko) 무선 휴대 인터넷 시스템에서 arq 제어 장치 및 제어방법
KR20120048019A (ko) 멀티-홉 중계 통신 시스템에서 다운링크 데이터 전송 제어를 위한 방법 및 장치
JP2008167141A (ja) データ伝送方法および装置、それを用いた通信システム
US20200281043A1 (en) Data receiving status reporting method and apparatus
WO2022116178A1 (zh) 一种tcp mss调整方法、装置及系统
JP2009510968A (ja) 適当な通信プロトコルを用いてメッセージ送信を提供する方法
JP2017028589A (ja) 通信装置、無線通信装置、および通信方法
JP4328794B2 (ja) 通信システム、通信装置、及び送信制御方法
WO2013125109A1 (ja) 通信装置および通信システム
Wang et al. Use of TCP decoupling in improving TCP performance over wireless networks
WO2017107148A1 (zh) 一种数据传输方法及网络侧设备
JP5569452B2 (ja) 無線通信装置、方法及びプログラム
US20080130684A1 (en) Method and apparatus for performing reordering in a wireless communications system
JP2005136684A (ja) データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム
JP2003087320A (ja) パケット中継装置、及びその方法
JP2007159052A (ja) 送信機および中継装置並びに通信システム、通信プログラム、通信方法。