JP2004297742A - 通信装置、通信制御方法及びプログラム - Google Patents

通信装置、通信制御方法及びプログラム Download PDF

Info

Publication number
JP2004297742A
JP2004297742A JP2003124527A JP2003124527A JP2004297742A JP 2004297742 A JP2004297742 A JP 2004297742A JP 2003124527 A JP2003124527 A JP 2003124527A JP 2003124527 A JP2003124527 A JP 2003124527A JP 2004297742 A JP2004297742 A JP 2004297742A
Authority
JP
Japan
Prior art keywords
data packet
packet
sequence number
acknowledgment
transmitted
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.)
Granted
Application number
JP2003124527A
Other languages
English (en)
Other versions
JP4283589B2 (ja
Inventor
Motoharu Miyake
基治 三宅
Hiroshi Inamura
浩 稲村
Osamu Takahashi
修 高橋
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 JP2003124527A priority Critical patent/JP4283589B2/ja
Priority to US10/807,505 priority patent/US7296206B2/en
Priority to EP20040007062 priority patent/EP1463228B1/en
Priority to CNB2004100317855A priority patent/CN1319303C/zh
Publication of JP2004297742A publication Critical patent/JP2004297742A/ja
Application granted granted Critical
Publication of JP4283589B2 publication Critical patent/JP4283589B2/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers

Abstract

【課題】情報量を増加させることなく、データパケットの不必要な再送を防ぐと共に、通信効率を無駄に下げることなく、データパケットの送信速度を適切に制御する技術を提供する。
【解決手段】サーバ装置10は、データパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットを受信しなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する。データパケットを再送した後に受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、パケット通信網を介して送受信されるパケットの再送制御のための技術に関する。
【0002】
【従来の技術】
移動通信網の一種として、パケット通信サービスを提供する移動パケット通信網がある。この移動パケット通信網を用いることにより、当該移動パケット通信網を介して、サーバ装置はクライアント装置へデータパケットを届けることができ、また、クライアント装置は当該データパケットに対する確認応答データパケットをサーバ装置へ届けることができる。
ところで、移動パケット通信網とクライアント装置との間の通信区間には無線区間が含まれている。無線区間における通信は電波を用いて行われるから、電波環境が悪化したりすると、移動パケット通信網を介した通信は停止状態となることがある。このような状況下では、サーバ装置がデータパケットを送信しても、このパケットは所定の時間内にクライアント装置へ届かない場合がある。しかし、電波環境が改善したりして移動パケット通信網を介した通信が再開されると、移動パケット通信網内に一時的に保存されていたデータパケットがクライアント装置に届く。
一方、サーバ装置では、送信したデータパケットに対する確認応答パケットを所定の時間内に受信しなかった場合には、パケットロスが発生したと判断され、当該データパケットが再送される。
このような場合、クライアント装置には、移動パケット通信網内に滞留していたデータパケット(以下、オリジナルデータパケットという)と、再送されたデータパケット(以下、再送データパケットという)との両方が届くことになる。クライアント装置はデータパケットを受信したときに当該データパケットに対する確認応答パケットを返送するから、サーバ装置はオリジナルデータパケットに対する確認応答パケットと再送データパケットに対する確認応答パケットを受信することになる。両確認応答パケットは受信タイミングを除いて完全に同一であることから、サーバ装置は、一つ目の確認応答パケットを受信した時点では、当該確認応答パケットがオリジナルデータパケットに対するものなのか又は再送データパケットに対するものなのかを判別することができない。つまり、オリジナルデータパケットがクライアント装置に届いているか否かをサーバ装置は判別することができない。このため、サーバ装置では、再送データパケットに後続するデータパケットが再送される。しかし、実際には、クライアント装置には、上述したようにオリジナルデータパケットは届いているという問題が生じる。
【0003】
このような問題を解決する技術が非特許文献1、非特許文献2及び非特許文献3に記載されている。非特許文献1には、タイムスタンプオプション(RFC 1323)を利用することにより、確認応答パケットがオリジナルデータパケットに対するものか又は再送データパケットに対するものかの判別を正確に行うことを可能とさせる技術が記載されている。
【0004】
非特許文献2には、有線パケット通信網を介するパケット通信において、統計情報を用いて、確認応答パケットがオリジナルデータパケットに対するものか又は再送データパケットに対するものかを推定する技術が記載されている。さらに、この文献では、サーバ装置とクライアント装置との間の通信コネクションが確立されているときにデータパケットを送信してから確認応答パケットが届くまでの時間を実測して得られるラウンドトリップタイムのうち最小のラウンドトリップタイムの1/2を閾値として上記の推定を行うことが提案されている。つまり、再送データパケットを送信してから一つ目の確認応答パケットを受信するまでの経過時間が閾値以上の場合(閾値を超過した場合)には再送データパケットに対する確認応答パケットとみなし、閾値未満の場合(閾値以下の場合)にはオリジナルデータパケットに対する確認応答パケットとみなす。なお、最小のラウンドトリップタイムの1/2を閾値とすることは、以下に列記する事情に基づいて提案されている。
[事情1]統計をとったところ、再送データパケットを送信してから最小のラウンドトリップタイムの1/2が経過するまでの期間、3/4が経過するまでの期間、及び1/1が経過するまでの期間内にオリジナルデータパケットに対する確認応答パケットを受信する確率に大差はないことが分かった。
[事情2]統計をとったところ、再送データパケットを送信してから最小のラウンドトリップタイムの1/2が経過した辺りから再送データパケットに対する確認応答パケットを受信する確率が急激に増加することが分かった。
【0005】
また、非特許文献3には、タイムアウトの検出によって再送データパケットを送信した後に受信した確認応答パケットに対処する技術が記載されている。この技術における対処方法は、この確認応答パケットを受信すると、再送データパケットを送信する直前に送信したオリジナルデータパケットに後続するデータパケットを2つ送信するというものである。
【0006】
【非特許文献1】
Eifelアルゴリズム(draft−ietf−tsvwg−tcp−eifel−alg−04.txt)
【非特許文献2】
Mark Allman,Vern Paxson,”On Estimating End−To−End Network Path Properties,”ACM SIGCOMM’99,vol.29,no.4,pp 263−274,Oct.1999(2.8節)
【非特許文献3】
F−RTOアルゴリズム(draft−sarolahti−tsvwg−tcp−frto−03.txt)
【0007】
【発明が解決しようとする課題】
しかしながら、非特許文献1の技術においては、通信環境が良好であっても、サーバ装置においてはオリジナルデータパケットに対してタイムスタンプ情報が付加され、クライアント装置においては確認応答データパケットに対してタイムスタンプ情報が付加される。つまり、どちらのデータパケットについてもその情報量が増加する。情報量が増加すれば、移動パケット通信網において送受信されるデータパケットの総量も増加するため、輻輳などの通信トラブルが発生する頻度も多くなる恐れがある。また、この技術を、通信量に応じて通信料金が変化する従量制課金を前提としている移動パケット通信網を介したパケット通信に適用した場合、上述の問題の発生頻度が十分に高くなければ、通信料の上昇を招いてしまう。もちろん、通信料の上昇は、クライアント装置の使用者やサーバ装置の使用者の望むところではない。
また、当該技術を応用して、データパケットに対して情報を付加するのではなく、通信時に使用されるTCPヘッダ内の予約ビットに情報を設定する方法も考えられる。
【0008】
また、非特許文献2の技術を、移動通信網を介する移動通信環境のように無線区間でのデータパケットの遅延が非常に大きい通信環境に用いても、最適な判別結果を得ることはできない。
【0009】
非特許文献3の技術においては、サーバ装置は、再送データパケットを送信した後に受信した確認応答パケットだけでは、送信すべきデータパケットがいずれであるかを判別することができない。そして、この確認応答パケットの受信後に送信したデータパケットに対する確認応答パケットを受信した場合に、判別可能となる。しかし、この場合、当該確認応答パケットが期待される確認応答パケットでなければ、輻輳制御におけるスロースタートと呼ばれるアルゴリズムに従って、データパケットの送信速度、即ち、単位時間当たりのデータパケットの送信量を制御する。なお、期待される確認応答パケットとは、2つ目のデータパケットに後続するデータパケットの送信をサーバ装置に要求するものである。
しかし、タイムアウトが検出された原因が移動パケット通信網を介した通信の一時的な停止にある場合には、送信されたデータパケットはクライアント装置に届かないわけではなく、遅れて届くだけである。このような場合にも、上述のスロースタートに従ってデータパケットの送信速度を下げてしまうことは、通信効率を無駄に下げてしまうことになる。
【0010】
そこで、本発明は、以上説明した事情に鑑みてなされたものであり、情報量を増加させることなく、データパケットの不必要な再送を防ぐと共に、通信効率を無駄に下げることなく、データパケットの送信速度を適切に制御する技術を提供する。
【0011】
【課題を解決するための手段】
本発明は、複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段とを備えることを特徴とする通信装置を提供する。
【0012】
また、本発明は、複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、前記送信過程にて送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、前記送信過程にてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信過程にて受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、前記再送過程にてデータパケットが再送された後に、前記受信過程にて受信された確認応答パケットの種別および該確認応答パケットに内包された情報に基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程とを有することを特徴とする通信制御方法を提供する。
【0013】
また、本発明は、コンピュータを、複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段、前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段、前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段、前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別および該確認応答パケットに内包された情報に基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段として機能させるためのプログラムを提供する。
【0014】
本発明によれば、複数のデータパケットが各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信され、送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットが受信され、データパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度が予め定められた送信速度に変更されるとともに、該データパケットが再送される。そして、データパケットが再送された後に受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットが決定され該データパケットが送信される際の送信速度が制御される。
【0015】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
[第1実施形態]
(構成)
<通信システム1の構成>
図1は、この発明の第一実施形態に係る通信システム1の構成を例示するブロック図である。
通信端末40は、クライアント装置50と接続され、クライアント装置50とパケット通信を行う。移動パケット通信網30は、当該移動パケット通信網30に収容される通信端末40に対して、パケット通信サービスを提供する。サーバ装置10は、インターネット20、移動パケット通信網30、通信端末40を介してクライアント装置50とパケット通信を行う。なお、本実施形態においては、サーバ装置10とクライアント装置50とは、インターネットTCP(Transmission Control Protocol)に従ってパケット通信を行うものとする。
【0016】
<TCPに従ったパケット通信について>
TCPに従ったパケット通信で取り扱われるデータパケットには、図2に示されるようなデータ構造のヘッダが内包されている。なお、以降、本明細書では、データパケットの送信元をサーバ装置10、データパケットの送信先をクライアント装置50として説明を行う。サーバ装置10から送信されるデータパケットに内包されるヘッダのシーケンス番号には、当該データパケットがデータのどの位置にあたるのかを相対的に示す値が格納される。サーバ装置10は、複数のデータパケットを各データパケットに内包されたシーケンス番号の順にクライアント装置50へ送信する。また、クライアント装置50から送信される確認応答パケットに内包されるヘッダの確認応答番号には、クライアント装置50が次に受信すべきデータパケットのシーケンス番号の値が格納される。
TCPに従って行われるパケット通信では、その信頼性を確保するために、サーバ装置10から送信されたデータパケットがクライアント装置50へ到達しなかった場合に、そのデータパケットを再送信させるようにしている。なお、以下では、サーバ装置10から送信されたデータパケットがクライアント装置50へ到達しないことを「データパケットの欠落」と称する。
【0017】
サーバ装置10は、以下に述べる2種類の判断基準でデータパケットの欠落を検出し、欠落したデータパケットを再送信している。第1の判定基準は、データパケットを送信してから所定の時間(以下、「再送タイムアウト時間」という)内に、そのデータパケットを受信したことを示す確認応答パケットがクライアント装置50から送信されてきたか否かである。この再送タイムアウト時間内に確認応答が送信されてこなかった場合には、サーバ装置10はデータパケットの欠落が発生したものとみなして、そのデータパケットを再送信する。以下では、第1の判定基準によるデータパケットの再送信を「タイムアウトによる再送信」という。第2の判定基準は、クライアント装置50から重複確認応答パケットが所定の回数(例えば、3回)送信されてきたか否かである。重複確認応答パケットとは、受信したデータパケットのシーケンス番号と、その1つ前に受信したデータパケットのシーケンス番号とが連続していなかった場合に、受信すべきデータパケットのシーケンス番号をサーバ装置10へ通知するためにクライアント装置50が送信する確認応答パケットである。サーバ装置10は、この重複確認応答パケットを所定の回数受信した場合には、再送タイムアウト時間の経過前であっても、データパケットの欠落が発生したものとみなして、即座に、その重複確認応答パケットで示されるデータパケットを再送信する。このように、第2の判定基準によるデータパケットの再送信は、再送タイムアウト時間の経過を待たずに行われるため、「高速再送信」と呼ばれている。
【0018】
また、TCPに従って行われる通信では、データパケットの欠落が発生した場合に、欠落したデータパケットの再送信を行うことに加え、その原因を特定してそれに応じて制御をしている。一般に、上述したデータパケットの欠落は、ネットワークが輻輳状態であることや、クライアント装置50の処理能力を超えた数のデータパケットが送信されたことによって引き起こされる。サーバ装置10は、前者に対処するために輻輳制御と呼ばれる動作を行うとともに、後者に対処するためにフロー制御と呼ばれる動作を行う。以下、サーバ装置10が行う輻輳制御およびフロー制御について説明する。
【0019】
サーバ装置10は、snd_max、snd_nxt、snd_una、snd_wnd、snd_cwnd、sstreshの6種類のパラメータ変数を記憶しており、これら6種類のパラメータ変数に基づいて算出される個数のデータパケットをクライアント装置50へ送信することにより、上述した輻輳制御およびフロー制御を実現している。図3は、これら6種類のパラメータ変数の関係を説明するための図である。snd_maxには、送信済みのデータパケットに内包されているシーケンス番号のうちで最大のシーケンス番号(図3では、シーケンス番号‘3000’)が格納されている。snd_nxtには、サーバ装置10が次に送信するデータパケットのシーケンス番号(図3では、シーケンス番号‘3500’)が格納されている。snd_unaには、サーバ装置10が送信したデータパケットのうち、対応する確認応答パケットを受信していないデータパケットに内包されているシーケンス番号のうちで最小のシーケンス番号(図3では、シーケンス番号‘2000”)が格納されている。snd_cwndには、サーバ装置10が先に送信したデータパケットに対して確認応答パケットを受信することなく、送信可能なデータパケットの個数を示す値がバイト単位で格納されている。ただし、実際にサーバ装置10が1往復時間内に送信可能なデータパケットは、snd_unaからsnd_una+min(snd_wnd,snd_cwnd)で示される範囲にあるデータパケットである。ここで、snd_wndには、クライアント装置50から通知された広告ウィンドウサイズが格納されている。この広告ウィンドウサイズとは、クライアント装置50の受信バッファの空き容量を示す値である。また、1往復時間とは、サーバ装置10がデータパケットを送信してから、そのデータパケットに対する確認応答パケットを受信するまでに要する時間である。以下では、サーバ装置10が1往復時間内に送信可能なデータパケットの数を「送信ウィンドウサイズ」という。このように、送信ウィンドウサイズはsnd_wndを超えることはない。このため、クライアント装置50のバッファの空き容量を超える数のデータパケットが1往復時間内に送信されることはない。サーバ装置10は、クライアント装置50から通知された広告ウィンドウサイズをパラメータ変数snd_wndへ格納することにより、フロー制御を実現する。
【0020】
また、サーバ装置10は、上述したsnd_cwndの値を適切に更新することによって輻輳制御を実現する。このsnd_cwndには、初期値として最大データパケットサイズが格納されている。なお、最大データパケットサイズ(Maximum Segment Size:以下、「MSS」という)とは、1つのデータパケットの大きさの最大値を示す値であり、デフォルトでは512バイト(すなわち、1MSS=512バイト)である。サーバ装置10は規定の輻輳制御アルゴリズムに従ってsnd_cwndに格納されている値を更新する。具体的には、サーバ装置10は、snd_cwndの値が所定の閾値(例えば、65535バイト)に達するまで、送信したデータパケットに対する確認応答パケットを受信する度に、例えば、その値を‘1MSS’、‘2MSS’、‘3MSS’、‘4MSS’と線形的に増加させる。なお、‘4MSS’は‘1MSS’の4倍の値を示している。そして、サーバ装置10は、snd_cwndの値が所定の閾値に達すると、以降、データパケットの欠落を検出するまで、その値を線形的に増加させる。この所定の閾値が格納されるパラメータ変数が上述のsstreshである。また、snd_cwndの値がsstreshの値に達するまでの制御を、スロースタート制御といい、snd_cwndの値がsstreshの値に達した以降の制御を輻輳回避制御という。
【0021】
そして、サーバ装置10は、重複確認応答パケットによって又はタイムアウトの検出によってデータパケットの欠落を検出した場合には、スロースタート制御のアルゴリズムに従って、sstreshの値を、タイムアウトを検出した時点で送信ウィンドウサイズsnd_cwndに格納されていた値の2分の1の値で更新するとともに、snd_cwndに‘1MSS’を格納する。その後の動作は、データパケットの欠落を検出したのは重複確認応答パケットによってであるか又はタイムアウトの検出によってであるかによって異なる。
タイムアウトの検出によってデータパケットの欠落を検出した場合には、サーバ装置10は、snd_nxtをsnd_unaに書き換えて、snd_nxtで示されるデータパケットから再送信を開始するとともに、再送信したデータパケットに対して確認応答を受信する毎にsnd_cwndに格納されている値を、上述したスロースタート制御のアルゴリズムに従って増加させる。
【0022】
重複確認応答パケットによってデータパケットの欠落を検出した場合には、サーバ装置10は、前述した高速再送信を行い、欠落したデータパケットの再送信を行う。更に、サーバ装置10が高速回復アルゴリズムに従う場合、まず、データパケットの欠落を検出した時点でのsnd_cwndの値の2分の1に更新した後、クライアント装置50から確認応答パケットを1つ受信する度に、snd_cwndの値を1つずつ増加させていく。そして、このsnd_cwndの値を用いて、以前に送信済みのデータパケットのうち、最大のシーケンス番号を有するデータパケットに後続するデータパケットの送信を開始する。
【0023】
以上に説明したデータパケットを再送する機能、輻輳制御およびフロー制御を行う機能は、TCPにしたがってデータパケットを送信するサーバ装置10に従来から備わる機能である。サーバ装置10に備わる本実施形態に係る機能については後述する。
クライアント装置50は、TCPに従ってパケット通信を行う機能を備えたコンピュータ装置である。
【0024】
<サーバ装置10の構成>
次に、サーバ装置10の構成について説明する。サーバ装置10の構成は一般的なコンピュータと同様であるから、本発明に係る構成のみについて図4を参照しながら説明する。
CPU100は、記憶部105に記憶されるプログラムを実行することにより、サーバ装置10の装置各部の制御を行う。また、CPU100は、タイマ100aを備える。タイマ100aは、CPU100によりセットされた一定時間が経過すると、トリガ信号を出力する。本実施形態においては、タイマ100aでは、上述の再送タイムアウト時間が計測される。
記憶部105は、RAM(Random Accsess Memory)102と、ROM(Read Only Memory)103と、HD(Hard Disk)104から構成される。
【0025】
ROM103には、CPU100によって実行されることによりサーバ装置10にデータパケット送信制御機能を実現させるための送信制御プログラムが記憶されている。本実施形態に係るデータパケット送信制御機能とは、以下の機能のことである。
サーバ装置10は、上述のタイムアウトを検出しデータパケットを再送した後、当該データパケットのシーケンス番号を示す確認応答番号が内包された確認応答パケットを受信した場合、当該確認応答パケットは再送したデータパケット(再送データパケット)に対するものではなく、再送データパケットの再送前に送信したオリジナルデータパケットに対する確認応答パケットであると判別する。なぜなら、再送データパケットに対する確認応答パケットであれば、当該確認応答パケットに内包される確認応答番号には、当該再送データパケットのシーケンス番号よりも大きな値が格納されているからである。
この判別の結果、サーバ装置10は、クライアント装置10ではサーバ装置10から送信されたオリジナルデータパケットのうちいくつかは受信され、いくつかは受信されていないことを判別する。更に、当該確認応答パケットに係る重複確認応答パケットを受信すると、上述の高速再送信を行い、欠落したデータパケットを再送する。その後、欠落したデータパケットが全て受信されたことを示す確認応答パケットを受信すると、送信済のデータパケットのうち最大のシーケンス番号を有するデータパケットに後続するデータパケットの送信を再開することを決定する。ここで後続のデータパケットを送信する際に用いるsnd_cwndの値として、タイムアウトを検出する直前に格納されていた値を用いる。これによって、後続のデータパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度に設定する。
【0026】
(動作)
次に本実施形態の動作について説明する。
図5は、サーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。また、図6は、サーバ装置10の本実施形態に係るパケット送信動作及び受信動作を示すフローチャートである。
【0027】
まず、図5において、サーバ装置10から、シーケンス番号‘500’、‘1000’、‘1500’,‘2000’を有する各データパケット(オリジナルデータパケットS1〜S4)のがクライアント装置50へ送信される。
しかし、例えば通信端末40と移動パケット通信網30との間の無線通信環境が悪化し、オリジナルデータパケットS1が欠落したとする。そして、オリジナルデータパケットS2〜S4の送信が一時的に中断されたとする。その後、無線通信環境が良好となり、通信が再開されると、オリジナルデータパケットS2〜S4はクライアント装置50に送信されるが、クライアント装置50では、これらのオリジナルデータパケットS2〜S4は順次遅延して受信されることになる。
【0028】
この場合、まず、オリジナルデータパケットS2を受信したクライアント装置50では、オリジナルデータパケットS2に対する確認応答パケットR2がサーバ装置10へ送信される。なお、この確認応答パケットR2に内包される確認応答番号には、シーケンス番号‘500’が格納される。これは、クライアント装置50がオリジナルデータパケットS1の送信を要求していることを示している。
そして、オリジナルデータパケットS2に続いてオリジナルデータパケットS3〜S4を順次受信したクライアント装置50では、各オリジナルデータパケットS3〜S4に対する確認応答パケットR3〜R4が順次サーバ装置10へ送信される。これらの確認応答パケットR3〜R4の有する各確認応答番号にも同様に、オリジナルデータパケットS1のシーケンス番号‘500’が格納される。以上の結果、サーバ装置10ではこれらの確認応答パケットR2〜R4が順次遅延して受信されることになる。
【0029】
次に、以上説明したところまでのサーバ装置10の動作について図6を参照しながら説明する。
サーバ装置10のCPU100は、オリジナルデータパケットS2〜S4の送信を行う。このとき、CPU100は、図7に示されるように、上述の各パラメータ変数を管理している。ここでは、send_unaには‘500’、snd_maxには‘2000’、snd_nxtには‘2500’、snd_cwndには‘4MSS’snd_wndには‘100MSS’、sstreshには‘65535バイト’、がそれぞれ格納されている。なお、以降では、本実施形態に係るパラメータ変数であるsnd_cwnd、sstreshのみについて説明し、その他のパラメータ変数の説明を省略する。
その後、CPU100は、オリジナルデータパケットS1に対してクライアント装置50から送信される確認応答パケットの受信を待機する。このため、CPU100は、タイマ100aに再送タイムアウト時間をセットし、タイマ100aに再送タイムアウト時間の計測をさせる。
そして、上述のオリジナルデータパケットS1のパケットロス及びオリジナルデータパケットS3〜S4の受信遅延があったため、クライアント装置50から送信された確認応答パケットR2を受信する前に、再送タイムアウト時間が経過したとする。即ち、CPU100は、タイムアウトを検出したとする(ステップC10)。このとき、CPU100は、オリジナルデータパケットS1〜S4が全て欠落したと判定する。そして、CPU100はタイマ100aの値をリセットするとともに、上述の輻輳制御アルゴリズムに従って、sstreshの値及びsnd cwndの値を変更する。具体的には、sstreshの値を、snd_cwndの値‘4MSS’の2分の1の値‘2MSS’に書き換え、snd_cwndの値を‘4MSS’から‘1MSS’に書き換える。ここで、CPU100は、書き換える前のsnd_cwndの値‘4MSS’を一時的にRAM102に記憶させる。
次いで、シーケンス番号‘500’を有するデータパケットをクライアント装置50へ再送する(ステップC11)。
その後、CPU100は、上述の確認応答パケットR2を受信すると(ステップC12)、以下のことを判別する。確認応答番号‘500’を有する確認応答パケットは、シーケンス番号‘500’を有するデータパケットを送信する以前に受信されているため、この確認応答パケットR2は重複確認応答パケットであると判別する。そして、この重複確認応答パケットR2が再送データパケットを送信する前に送信したオリジナルデータパケットに対する確認応答パケットであると判別する。そして、オリジナルデータパケットS1〜S4が全て欠落したわけではないことを判別する。更に、確認応答パケットR3〜R4を連続して受信すると、CPU100は、上述の高速再送信を行うこととなる。そこで、まず、CPU100は、シーケンス番号‘500’を有するデータパケットをクライアント装置50へ再送する(ステップC13)。
【0030】
図5においては、サーバ装置10では、再送データパケットS′1が送信された後、確認応答パケットR2〜R4が受信され、再送データパケットS″1が送信される。一方、クライアント装置50では、再送データパケットS′1が受信されると、次に受信すべきデータパケットのシーケンス番号‘2500’を示す確認応答番号が内包される確認応答パケットR′1が送信される。
【0031】
ここで、図6に戻って、CPU100は、確認応答パケットR′1を受信すると(ステップC14)、シーケンス番号‘500’,‘1000’、‘1500’、‘2000’を有する各データパケットが全てクライアント装置50に受信されたことを判別する。そして、本実施形態においては、CPU100は、snd_cwndの値を、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶させた値に書き換える(ステップC15)。具体的には、snd_cwndの値を‘1MSS’から‘4MSS’に書き換える。その後、新たにsnd_cwndの値を算出するとともに、sstreshの値を更新する。具体的には、snd_cwndの値‘4MSS’を2分の1の値‘2MSS’に書き換える。更に、この値を、sstreshを格納する。即ち、sstreshの値を‘2MSS’に書き換える。このとき次に送信すべきデータパケットの数は2つとなる。そして、CPU100は、シーケンス番号‘2500’,‘3000’を有する2つの各データパケットをクライアント装置50へ送信する。
図5においては、サーバ装置10からオリジナルデータパケットS5〜S6がクライアント装置50へ送信される。
以上のようにして、サーバ装置10からクライアント装置50へデータパケットが送信される。
【0032】
本実施形態においては、クライアント装置50に受信されていないデータパケットのみ再送されるようにしているため、データパケットの不必要な送信を防ぐことが可能となる。
また、従来の技術においては、タイムアウト検出後に重複確認応答パケットが受信された場合データパケットの再送が完了した後に、snd_cwndの値が、タイムアウトを検出する直前に格納されていた値に書き換えらることはない。これによって、送信速度が過度に抑制されてしまう。しかし、本実施形態によれば、snd_cwndの値を書き換えることにより、このような事態を回避することができる。
【0033】
[第2実施形態]
次に、SACK情報を用いたパケット通信が行われる場合について説明する。以下、上記第一実施形態と共通する部分については、その説明を省略したり、同一の符号を使用して説明したりする。
なお、SACK情報とは、データパケットの欠落が発生した後にクライアント装置50が受信したデータパケットをサーバ装置10へ通知するための情報である。この情報は、図2に示されるデータパケットに内包されるヘッダのオプション部分に格納される。具体的には、例えば、‘SACK=1500_2999’という情報が格納されていれば、データパケットのうち、データにおける相対的な位置が‘1500〜2999’であるデータパケットが受信されたことを意味する。
【0034】
本実施形態においては、サーバ装置10は、タイムアウトを検出しデータパケットを再送した後、当該データパケットの有するシーケンス番号を示す確認応答番号が内包され且つSACK情報が内包された重複確認応答パケットを受信した場合、上述の第1実施形態と同様に、上述の高速再送信を行い、欠落したデータパケットを再送する。その後、欠落したデータパケットが全て受信されたことを示す確認応答パケットを受信すると、次に送信すべきデータパケットを送信する際に用いるsnd_cwndの値として、タイムアウトを検出する直前に格納されていた値を用いる。これによって、データパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度に設定する。
サーバ装置10のROM103には、以上説明した機能をサーバ装置10に実現させるための送信制御プログラムが記憶されている。
【0035】
図8は、本実施形態において、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合の動作を示すシーケンスチャートである。図9は、サーバ装置10の本実施形態に係るパケット送信動作及び受信動作の流れを示すフローチャートである。なお、上述の第1実施形態と共通するステップについては同一の符号を使用し、その詳細な説明を省略する。
【0036】
図7において、サーバ装置10から、シーケンス番号‘500’、‘1000’、‘1500’,‘2000’、‘2500’、‘3000’を有する各データパケット(オリジナルデータパケットS11〜S16)がクライアント装置50へ送信される。そして、オリジナルデータパケットS11、S12が欠落し、オリジナルデータパケットS13〜S16が順次遅延してクライアント装置50に受信されるとする。
【0037】
この場合、まず、オリジナルデータパケットS13を受信したクライアント装置50では、オリジナルデータパケットS13に対する確認応答パケットR13がサーバ装置10へ送信される。なお、この確認応答パケットR13の有する確認応答番号には、オリジナルデータパケットS11のシーケンス番号と同じ値‘500’が格納される。更に、確認応答パケットR13には、オリジナルデータパケットS13が受信されたことを示すSACK情報‘SACK=1500_1999’が内包される。そして、オリジナルデータパケットS13に続いてオリジナルデータパケットS14〜S16を順次受信したクライアント装置50では、各オリジナルデータパケットS14〜S16に対する確認応答パケットR14〜R16が順次サーバ装置10へ送信される。これらの確認応答パケットR14〜R16の有する各確認応答番号にも同様に、オリジナルデータパケットS11のシーケンス番号と同じ値‘500’が格納される。また、確認応答パケットR14にはSACK情報‘SACK=1500_2499’、確認応答パケットR15にはSACK情報‘SACK=1500_2999’、確認応答パケットR16にはSACK情報‘SACK=1500_3499’、がそれぞれ内包される。
以上の結果、これらの確認応答パケットR13〜R16は、サーバ装置10では順次遅延して受信されるとする。
【0038】
次に、サーバ装置10の動作について図9を参照しながら説明する。
サーバ装置10のCPU100は、オリジナルデータパケットS11〜S16の送信を行う。このとき、snd_cwndには‘6MSS’、sstreshには‘65535バイト’、がそれぞれ格納されている。
そして、上述のオリジナルデータパケットS1〜S2のパケットロス及びオリジナルデータパケットS14〜S16の受信遅延があったため、クライアント装置50から送信された確認応答パケットR13を受信する前に、再送タイムアウト時間が経過したとする。即ち、CPU100は、タイムアウトを検出したとする(ステップC20)。この場合には、上述の第1実施形態と同様に、シーケンス番号‘500’を有するデータパケット(再送データパケットS′11)を再送する(ステップC21)。更にその後、CPU100は、上述の確認応答パケットR13を受信すると、ここで、この確認応答パケットR13が再送データパケットS′11を送信する前に送信したオリジナルデータパケットに対する確認応答パケットであると判別する。そして、シーケンス番号‘500’を有するデータパケットに対する重複確認応答パケット(確認応答パケットR13〜R15)を受信したとする(ステップC22)。本実施形態では、この確認応答パケットにはSACK情報が内包されているため、サーバ装置10のCPU100は、この情報に基づいて、再送すべきデータパケットがいずれであるのかを判別する(ステップC24)。このSACK情報‘SACK=1500_1999’によって、シーケンス番号‘500’、‘1000’を有するオリジナルデータパケットS11〜S12を再送すべきであると判別される。そして、上述の高速再送信を行い、まず、シーケンス番号‘500’を有するデータパケット(図8における再送データパケットS″11)をクライアント装置50へ再送する。その後、クライアント装置50から送信された確認応答パケットR16を受信すると、CPU100は、次に、再送すべきデータパケットのシーケンス番号‘1000’を有するデータパケット(図8における再送データパケットS′12)をクライアント装置50へ再送する(ステップC24)。
【0039】
一方、クライアント装置50では、再送データパケットS′12が受信されると、欠落したデータパケットが全て受信されたこととなるため、確認応答番号‘3500’を有する確認応答パケット(図8における確認応答パケットR′16)が送信される。この確認応答番号の値は、受信されたデータパケットのうち最大のシーケンス番号‘3000’を有するデータパケットS16に後続する1番目のデータパケットの有するシーケンス番号‘3500’を示している。なお、欠落したデータパケットが全て受信されたため、確認応答パケットR′16にはSACK情報は内包されない。
【0040】
サーバ装置10のCPU100は、確認応答パケットR′16を受信すると(ステップC25)、上述の第1実施形態と同様に、snd_cwndの値をタイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶された値に書き換える(ステップC26)。その後、新たにsnd_cwndの値を算出するとともに、sstreshの値を更新する。具体的には、snd_cwndの値‘6MSS’を2分の1の値‘3MSS’に書き換える。更に、この値を、sstreshを格納する。即ち、sstreshの値を‘3MSS’に書き換える。このとき次に送信すべきデータパケットの数は3つとなる。そして、CPU100は、そして、シーケンス番号‘3500’,‘4000’、‘4500’を有する3つの各データパケット(図8におけるS17〜S19)をクライアント装置50へ送信する。
【0041】
[第3実施形態]
次に、SACK情報を用いたパケット通信を行う場合の他の例について説明する。
本実施形態において、上述の第2実施形態と異なる点は、上述した重複確認応答パケットによる高速再送信を行わない点である。具体的には、サーバ装置10は、タイムアウトを検出しデータパケットを再送した後、当該データパケットの有するシーケンス番号を示す確認応答番号が内包され且つSACK情報が内包された確認応答パケットを1つ受信した段階で、上述の第1実施形態と同様に、当該確認応答パケットが再送データパケットの再送前に送信されたオリジナルデータパケットに対するであると判別する。即ち、サーバ装置10は、クライアント装置10ではサーバ装置10から送信されたオリジナルデータパケットのうちいくつかは受信され、いくつかは受信されていないことを判別する。そして、タイムアウト検出後に再送したデータパケットのシーケンス番号と、受信された確認応答パケットに内包されるSACK情報とを用いて、次に送信すべきデータパケットを決定する。そして、欠落したデータパケットを全て再送した後にデータパケットを送信する際、このとき用いるsnd_cwndの値として、タイムアウトを検出する直前に格納されていた値を用いる。これによって、データパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度に設定する。
【0042】
図10は、本実施形態において、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合の動作を示すシーケンスチャートである。また、図11は、サーバ装置10の本実施形態に係るパケット送信動作及び受信動作を示すフローチャートである。
【0043】
まず、図10において、サーバ装置10から、シーケンス番号‘500’、‘1000’、‘1500’,‘2000’、‘2500’、‘3000’を有する各データパケット(オリジナルデータパケットS21〜S26)がクライアント装置50へ送信される。ここで、無線通信環境の悪化により、オリジナルデータパケットS21、S22が欠落し、オリジナルデータパケットS23〜S26がクライアント装置50に遅延して受信されるとする。
【0044】
この場合も、上述の第2実施形態と同様に、SACK情報が内包される確認応答パケットR23〜R26がクライアント装置50から送信される。
しかし、これらの確認応答パケットR23〜R26は、クライアント装置50におけるオリジナルデータパケットS23〜S26の受信遅延により、サーバ装置10にて順次遅延して受信されることになる。
すると、図11に示されるように、サーバ装置10のCPU100は、確認応答パケットの受信に対するタイムアウトを検出し(ステップC30)、シーケンス番号‘500’を有するデータパケット(図10における再送データパケットS′21)を再送する(ステップC31)。なお、このときのsstreshの値とsnd_cwndの値とは、上述の第2実施形態と同様、それぞれ‘3MSS’、‘1MSS’である。そして、タイムアウト検出前のsstreshの値‘65535バイト’とsnd_cwndの値‘6MSS’とは一時的にRAM102に記憶される。
【0045】
続いて、確認応答番号‘500’を有する確認応答パケットR23を受信すると(ステップC32)、CPU100は以下のような動作を行う。
まず、CPU100は、確認応答パケットR23に内包されるSACK情報を解析する(ステップC33)。このSACK情報には、‘SACK=1500_1999’が示されているから、CPU100は、この確認応答パケットR23はオリジナルデータパケットS23に対するものであり、オリジナルデータパケットS23が受信されたことを判別する。更に、‘1500’以下のシーケンス番号を有するオリジナルデータパケットS21〜S22が受信されておらず、これらのデータパケットが欠落したことを判別する。しかし、オリジナルデータパケットS21については、既に再送している(再送データパケットS′21)ため、次に、オリジナルデータパケットS22を再送することを決定する。しかし、送信済のオリジナルデータパケットS21〜S26の全てについて受信されたことはまだ確認できていないため、次に、送信すべきデータパケットを送信する。具体的には、CPU100は、シーケンス番号‘1000’を有するデータパケット(図10における再送データパケットS′22)を再送する。
【0046】
続いて、確認応答番号‘500’とSACK情報‘SACK=1500_2499’とが内包される確認応答パケットR24を受信した場合も、確認応答パケットR23を受信した場合と同様に、当該確認応答パケットR24を受信する直前に送信したデータパケットに後続するデータパケットを1つ送信する。このようにして、送信済のオリジナルデータパケットS21〜S26のうち最大のシーケンス番号‘3000’を有するデータパケットに後続するデータパケットに内包されるべきシーケンス番号‘3500’を示す確認応答番号が内包される確認応答パケットを受信するまで、他の確認応答パケットを1つ受信する度、当該確認応答パケットを受信する直前に送信したデータパケットを1つ送信する。
そして、CPU100は、確認応答番号‘3500’が内包される確認応答パケット(図10における確認応答パケットR′26)を受信すると、ここで、sstreshの値とsnd_cwndの値とをそれぞれ、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶された値に書き換える。更に、新たにsnd_cwndの値を算出するとともに、sstreshの値を更新する。ここでは、例えば、snd_cwndの値‘6MSS’を2分の1の値‘3MSS’に書き換える。更に、この値を、sstreshを格納する。即ち、sstreshの値を‘3MSS’に書き換える。
以上のようにして、CPU100は、データパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度に設定する。
【0047】
[第4実施形態]
次に、遅延確認応答アルゴリズムに従ってパケット通信が行われる場合について説明する。
なお遅延確認応答アルゴリズムに従ったパケット通信では、データパケットを受信したクライアント装置50は、確認応答パケットの送信を遅延させる。本実施形態においては、クライアント装置50は、データパケットを2つ受信するまで確認応答パケットを送信しない。そして、データパケットを2つ受信すると、これらのデータパケットに対する確認応答パケットを1つにまとめて送信する。即ち、2つ目のデータパケットに後続するデータパケットの有するシーケンス番号の値を確認応答番号に格納し、これを内包する確認応答パケットを送信する。以上のようにして、クライアント装置50は、データパケットを2つ受信する毎に、確認応答パケットを送信する。但し、データパケットを1つしか受信していないが所定の時間が経過してしまった場合には、クライアント装置50は、受信された1つのデータパケットに対する確認応答パケットを送信する。
サーバ装置10は、このような遅延確認応答パケットを受信すると、このパケットに示される確認応答番号の値から以下のことを判別する。当該値と同じ値をシーケンス番号に有するデータパケットの1つ前及び2つ前の順番のデータパケットがクライアント装置50に受信されたことを判別する。
【0048】
本実施形態におけるサーバ装置10の送信制御機能は、以下の通りである。サーバ装置10は、タイムアウトを検出してデータパケットを再送した後、確認応答パケットを受信すると、まず、この確認応答パケットに内包される確認応答番号の値(A)が、再送されたデータパケットに後続する2番目のデータパケットに内包されるシーケンス番号の値(B)と同じであるか又はそれよりも大きいかを判別する。更に、(A)が(B)よりも大きい場合、更に(A)が送信済のデータパケットのうち最大のシーケンス番号を有するデータパケットに後続する1番目のデータパケットの有するシーケンス番号の値(C)と同じであるか否かを判定する。そして、(A)と(B)とが同じである場合には、データパケットの欠落はなく、通信が一時的に停止したなどの比較的軽微な通信トラブルによってタイムアウトが検出されたと見なす。そして、snd_wndの値を、タイムアウトを検出する直前に格納されていた値に書き換える。これによって、データパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度に設定する。
しかし、(A)が(B)より大きく且つ(C)以下である場合には、データパケットや確認応答パケットの欠落、データパケットの到着順の逆転などの比較的重大な通信トラブルが発生したと見なす。そして、欠落したデータパケットを再送し、その後、送信済のデータパケットのうち最大のシーケンス番号を有するデータパケットに後続する1番目のデータパケットの有するシーケンス番号を示す確認応答パケットを受信すると、このシーケンス番号を示すデータパケットを送信する。そして、このとき用いるsnd_wndの値として、タイムアウトを検出する直前に格納されていた値よりも小さい値を用いる。ここでは、2分の1の値を用いる。これによって、データパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度よりもに小さい速度にする。
また、(A)が(B)より大きく且つ(C)と同じである場合には、データパケットや確認応答パケットの欠落、データパケットの到着順の逆転などの比較的重大な通信トラブルが発生したと見なす。そして、このシーケンス番号を示すデータパケットを送信する。そして、このとき用いるsnd_wndの値として、タイムアウトを検出する直前に格納されていた値よりも小さい値を用いる。ここでは、2分の1の値を用いる。これによって、データパケットの送信速度を、タイムアウトを検出する直前の送信速度から定められる送信速度よりも小さい速度にする。
以上のようにして、サーバ装置10は、データパケットの送信速度を制御する。
【0049】
(動作例1)
図12は、本実施形態において、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。また、図13は、サーバ装置10の本実施形態に係るパケット送信動作及び受信動作を示すフローチャートである。
まず、図12において、サーバ装置10から、シーケンス番号‘500’、‘1000’、‘1500’,‘2000’、‘2500’、‘3000’を有する各データパケット(オリジナルデータパケットS41〜S46)がクライアント装置50へ送信される。ここで、無線通信環境の悪化により、オリジナルデータパケットS41〜S42がクライアント装置50に遅延して受信されたとする。その後、オリジナルデータパケットS43〜S46は正常にクライアント装置50に受信されたとする。
クライアント装置50では、まず、オリジナルデータパケットS41〜S42が受信されると、これらのデータパケットに対する確認応答パケットR42が送信される。この確認応答パケットR42に内包される確認応答番号には、オリジナルデータパケットS42に後続するデータパケットの有するシーケンス番号‘1500’が格納されている。以上の結果、この確認応答パケットR42は、サーバ装置10にて遅延して受信されるとする。しかし、この確認応答パケットR42がサーバ装置10に受信される前に、サーバ装置10にてタイムアウトが検出されたとする。
【0050】
次に、以上説明したところまでのサーバ装置10の動作について、図13を参照しながら説明する。
サーバ装置10のCPU100は、オリジナルデータパケットS41〜S46の送信を行う。このとき、CPU100が管理しているパラメータ変数のうち、snd_cwndには‘6MSS’、sstreshには‘65535バイト’がそれぞれ格納されている。
そして、ステップC41において、CPU100は、確認応答パケットR42を受信する前に、タイムアウトを検出したとする。このとき、CPU100は、オリジナルデータパケットS1が欠落したと判定する。そして、CPU100はタイマ100aの値をリセットするとともに、上述の輻輳制御アルゴリズムに従って、sstreshの値及びsnd_cwndの値を変更する。即ち、sstreshの値を、snd_cwndの値‘6MSS’の2分の1の値‘3MSS’に書き換え、snd_cwndの値を‘6MSS’から‘1MSS’に書き換える。ここで、CPU100は、書き換える前のsnd_cwndの値‘6MSS’及びsstreshの値‘65535バイト’を一時的にRAM102に記憶させる。
次いで、シーケンス番号500を有するデータパケット(図11における再送データパケットS′41)をクライアント装置50へ再送する(ステップC42)。
【0051】
その後、CPU100は、上述の確認応答パケットR42を受信すると(ステップC43)、この確認応答パケットR32に内包される確認応答番号の値と、再送データパケットS′41(再送されたオリジナルデータパケットS41)に内包されるシーケンス番号の値とを用いて以下の判定を行う(ステップC44)。
確認応答パケットR42に内包される確認応答番号の値(A)が、再送されたオリジナルデータパケットS41に後続する2番目のデータパケットに内包されるシーケンス番号の値(B)と同じであるか又は(B)よりも大きいかを判定する。ここでは、(A)は‘1500’であり、(B)は‘1500’であり、(C)は‘3500’である。即ち、(A)と(B)とが同じである。
この場合、この確認応答パケットR42は、オリジナルデータパケットS41とこれに後続するオリジナルデータパケットS42とに対応する遅延確認応答パケットであることを判別する。即ち、オリジナルデータパケットS41〜S42はクライアント装置50に受信されており、データパケットの欠落はなかったと判別する。そして、データパケットの送信速度を下げる必要がないと判定する。このため、ステップC45において、CPU100は、snd_cwndの値を、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶させた値に書き換える。具体的には、snd_cwndの値を‘1MSS’から‘6MSS’に書き換える。更に、CPU100は、sstreshの値を、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶させた値に書き換える。具体的には、sstreshの値を‘3MSS’から‘65535バイト’に書き換える。更に、輻輳制御アルゴリズムに従って、snd_cwndの値を‘6MSS’を線形的に増加させ‘7MSS’に書き換える。これにより、本実施形態におけるデータパケットの送信速度を、タイムアウト検出直前の送信速度から定められる送信速度に設定する。なお、このとき、送信済の7つのデータパケットのうち3つのデータパケットに対する確認応答パケット(確認応答パケットR42)が受信されたことになる。即ち、残りの4つのデータパケットに対する確認応答パケットはまだ受信されておらず、従って、次に送信可能なデータパケットの個数は3つになる。
そして、CPU100は、送信済のデータパケットS37に後続する3つのデータパケットをクライアント装置50へ送信する。具体的には、シーケンス番号‘3500’,‘4000’、‘4500’を有する各データパケットを送信する。図11においては、サーバ装置10からオリジナルデータデータパケットS47〜S48がクライアント装置50へ送信される。
【0052】
なお、従来であれば、snd_cwndの値及びsstreshの値は、タイムアウトを検出する直前に格納されていた値に書き換えられない。このため、snd_cwndの値は、‘1MSS’のままであり、sstreshの値は‘3MSS’のままである。このため、データパケットの欠落がなかったことが判別されても、次に送信されるデータパケットの数は、1つに制限されてしまう。これでは、送信速度が過度に抑制されてしまう。しかし、本実施形態によれば、snd_cwndの値及びsstreshの値を書き換えることにより、このような事態を回避することができる。
【0053】
(動作例2)
次に、本実施形態において、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合の他の例を示すシーケンスチャートである。図14は、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。また、サーバ装置10の本実施形態に係るパケット送信動作及び受信動作を示すフローチャートは、図13に示される。なお、上述の動作例1及び各実施形態と共通する部分については、その説明を省略する。
【0054】
まず、図14において、サーバ装置10から、シーケンス番号‘500’、‘1000’、‘1500’,‘2000’、‘2500’、‘3000’を有する各データパケット(オリジナルデータパケットS51〜S56)がクライアント装置50へ送信される。しかし、無線通信環境の悪化により、オリジナルデータパケットS51及びS55が欠落したとする。つまり、オリジナルデータパケットS52〜S54,S56のみクライアント装置50に送信されるとする。
【0055】
この場合、クライアント装置50では、まず、オリジナルデータパケットS52が受信されるが、オリジナルデータパケットS51の欠落があったため、2つ目のデータパケットが受信される前に、所定の時間が経過したとする。すると、クライアント装置50では、オリジナルデータパケットS52のみに対する確認応答パケットR52が送信される。この確認応答パケットR52に内包される確認応答番号には、オリジナルデータパケットS52に後続するデータパケットの有するシーケンス番号‘1500’が格納されている。
その後、クライアント装置50では、オリジナルデータパケットS53〜S54が受信されると、確認応答番号‘2500’を有する確認応答パケットR54が送信される。その後、オリジナルデータパケットS55が欠落したため、所定の時間内にはオリジナルデータパケットS56のみ受信される。このとき、クライアント装置50では、オリジナルデータパケットS55が受信されないため、このデータパケットの送信を要求する旨を示す確認応答パケットが送信される。つまり、このオリジナルデータパケットS55のシーケンス番号‘2500’を示す確認応答番号が内包される確認応答パケットR56が送信される。
しかし、これらの確認応答パケットR52、R54、R56は、無線通信環境の悪化により、欠落したとする。
【0056】
以上の状況におけるサーバ装置10の動作について図13を参照しながら説明する。
サーバ装置10のCPU100は、ステップC41において、確認応答パケットの受信に対するタイムアウトを検出したとする。そして、snd_cwndの値を‘1MSS’に書き換え、シーケンス番号‘500’を有するデータパケット(再送データパケットS′51)を再送する(ステップC42)。なお、ここでも、CPU100は、書き換える前のsnd_cwndの値‘6MSS’及びsstreshの値‘65535バイト’を一時的にRAM102に記憶させる。
【0057】
一方、図14に戻って、クライアント装置50では、再送データパケットS′51が受信されると、これに対する確認応答パケットとして、まだ受信されていないシーケンス番号‘2500’を有するデータパケットの送信を要求する確認応答パケットが送信される。つまり、確認応答番号‘2500’を有する確認応答番号R′56が送信される。
この確認応答パケットR′56がサーバ装置10で受信されると、サーバ装置10では図13におけるステップC44の判定が行われる。
【0058】
ステップC44では、サーバ装置10のCPU100は、確認応答パケットR′56に内包される確認応答番号の値‘2500’(A)が、再送されたオリジナルデータパケットS51(再送データパケットS′51)に後続する2つ目のデータパケットに内包されるシーケンス番号の値‘1500’(B)よりも大きいことを判別する。このように判別すると、次に、ステップC46の判定を行う。ステップC46では、(A)が、オリジナルデータパケットS41〜S46のうち最大のシーケンス番号‘3000’を有するデータパケットに後続する1番目のデータパケットの有するシーケンス番号の値‘3500’(C)と同じであるか否かを判別する。ここでは、(A)は、(C)と同じではないことが判別される。
そして、比較的重大な通信トラブルがあったと見なし、送信速度を下げる必要があると判定する。そして、CPU100は、送信済のオリジナルデータパケットS51〜S56のうち最大のシーケンス番号‘3000’を有するオリジナルデータパケットS56に後続するデータパケットを送信する際に、snd_cwndの値を、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶させた値より小さい値に書き換えることを決定する(ステップC47)。
【0059】
そして、この確認応答パケットR′56によって示される確認応答番号‘2500’がシーケンス番号に格納されるデータパケット(図14における再送データパケットS′55)を再送する(ステップC48)。
【0060】
一方、図14に戻って、クライアント装置50では、再送データパケットS′55が受信されると、これに対する確認応答パケットとして、次に受信すべきデータパケットのシーケンス番号‘3500’を有するデータパケットの送信を要求する確認応答パケットが送信される。つまり、確認応答番号‘3500’を有する確認応答番号R′55が送信される。
【0061】
この確認応答パケットR′55がサーバ装置10で受信されると、サーバ装置10では以下の動作が行われる。
図13において、サーバ装置10のCPU100は、確認応答番号R′55によって示される確認応答番号‘3500’が、送信済のオリジナルデータパケットS51〜S56のうち最大のシーケンス番号‘3000’を有するオリジナルデータパケットS56に後続するデータパケットであることを判別する。即ち、CPU100が次に送信すべきデータパケットは、シーケンス番号‘3500’を有するデータパケットであることを判別する。そして、ここで、snd_cwndの値を、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶させた値よりも小さい値に書き換える。ここでは、2分の1の値に書き換える。具体的には、snd_cwndの値を‘1MSS’から、‘6MSS’の2分の1の値‘3MSS’に書き換える。また、CPU100は、sstreshの値を、‘3MSS’から、‘65535バイト’の2分の1の値‘32767バイト’に書き換える。
そして、CPU100は、送信済のオリジナルデータパケットS51〜S56のうち最大のシーケンス番号‘3000’を有するオリジナルデータパケットS56に後続する3つのデータパケットをクライアント装置50へ送信する。具体的には、シーケンス番号‘3500’,‘4000’、‘4500’を有する3つの各データパケットを送信する。図14においては、サーバ装置10からオリジナルデータパケットS57〜S59がクライアント装置50へ送信される。
【0062】
以上のようにして、比較的重大な通信トラブルが発生したと見なされた場合には、snd_cwndの値及びsstreshの値がそれぞれ、タイムアウトを検出する直前に格納されていた値より小さい値に書き換えられることで、送信速度が適切に制限される。
【0063】
(動作例3)
次に、本実施形態において、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合パケット通信が行われる場合の他の例を示すシーケンスチャートである。図14は、サーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。また、サーバ装置10の本実施形態に係るパケット送信動作及び受信動作を示すフローチャートは、図12に示される。なお、上述の動作例1及び各実施形態と共通する部分については、その説明を省略する。
【0064】
本例が動作例2と異なる点は、以下の点である。サーバ装置10で、タイムアウトが検出され、シーケンス番号‘500’を有するデータパケットS′61が送信された後、クライアント装置50から受信される確認応答パケットR′66に内包される確認応答番号の値が異なる。本例においては、確認応答パケットR′66に内包される確認応答番号の値は、‘3500’である。これは、送信済のオリジナルデータパケットS61〜S66のうち最大のシーケンス番号‘3000’を有するデータパケットS66に後続する1番目のデータパケットの有するシーケンス番号‘3500’と同じである。従って、ステップC44及びC46における判別の結果、この場合にも、上述の(動作例2)と同様に、比較的重大な通信トラブルが発生している恐れがあるため、送信速度を下げる必要があることが判別される。
【0065】
しかし、本例においては、サーバ装置10のCPU100は、データパケットを再送せず、データパケットS66に後続するシーケンス番号‘3500’を有するデータパケットを送信することを決定する。そして、ここで、snd_cwndの値及びsstreshの値をそれぞれ、タイムアウトを検出する直前に格納されていた値、即ち、RAM102に記憶させた値より小さい値に書き換える。ここでは、2分の1の値に書き換える。具体的には、snd_cwndの値を‘1MSS’から、‘6MSS’の2分の1の値‘3MSS’に書き換える。また、CPU100は、sstreshの値を、‘3MSS’から、‘65535バイト’の2分の1の値‘32767バイト’に書き換える。そして、シーケンス番号‘3500’,‘4000’、‘4500’を有する3つの各データパケット(図15におけるオリジナルデータパケットS67〜S69)を送信する。
【0066】
以上説明した各実施形態においては、データパケット及び確認応答パケットに、例えばタイムスタンプオプション情報などを付加してパケットの情報量を増加させる必要がない。また、サーバ装置10及びクライアント装置50に対する大幅な設計変更を必要としない。このため、クライアント装置50として、既存のパーソナルコンピュータや、インターネットに接続可能な携帯電話機などの情報処理装置を使用することが可能であり、ユーザの利便性を高めることができる。
【0067】
[変形例]
以上、本発明の実施形態について説明したが、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
【0068】
上述の各実施形態においては、TCPに従ってパケット通信を行うようにしたが、本発明は、TCP以外のパケット通信プロトコルにも適用可能である。
【0069】
なお、上述の実施形態においては、クライアント装置50は通信端末40を介してサーバ装置10とパケット通信を行った。しかし、クライアント装置50が無線通信機能を備え、通信端末40を介することなく、移動パケット通信網40、インターネット20を介してサーバ装置10とパケット通信を行う構成であっても良い。
【0070】
上述の各実施形態において、サーバ装置10は、高速再送信を行った後、高速回復アルゴリズムに従って、タイムアウト検出前に送信済みのデータパケットのうち、最大のシーケンス番号を有するデータパケットに後続するデータパケットの送信を開始するようにしても良い。このような構成においても、タイムアウト検出前に送信済みのデータパケットのうち、最大のシーケンス番号を有するデータパケットに後続するデータパケットのシーケンス番号が内包される確認応答パケットを受信したときに、snd_cwndの値、sstreshの値をタイムアウト検出直前の値に戻せば良い。
【0071】
【発明の効果】
本発明によれば、サーバ装置及びクライアント装置に対する大幅な設計変更を必要とせず、データパケットの不必要な再送を防ぐと共に、通信効率を無駄に下げることなく、データパケットの送信速度を適切に制御する。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る通信システム1の構成を示すブロック図である。
【図2】同実施形態に係るデータパケットに付加されるヘッダのデータ構成を示す図である。
【図3】TCPにおける送信ウィンドウを説明するための図である。
【図4】本発明の第1実施形態に係るサーバ装置10の構成を示すブロック図である。
【図5】同実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。
【図6】同実施形態に係るサーバ装置10のパケット送信及び受信動作を示すフローチャートである。
【図7】同実施形態に係る送信ウィンドウを説明するための図である。
【図8】本発明の第2実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。
【図9】同実施形態に係るサーバ装置10のパケット送信及び受信動作を示すフローチャートである。
【図10】本発明の第3実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。
【図11】同実施形態に係るサーバ装置10のパケット送信及び受信動作を示すフローチャートである。
【図12】本発明の第4実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信が行われる場合の一例を示すシーケンスチャートである。
【図13】同実施形態に係るサーバ装置10のパケット送信及び受信動作を示すフローチャートである。
【図14】同実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信が行われる場合の他の例を示すシーケンスチャートである。
【図15】同実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信が行われる場合の他の例を示すシーケンスチャートである。
【符号の説明】
1・・・通信システム、10・・・サーバ装置、100・・・CPU、100a・・・タイマ、100b・・・タイマ、101・・・通信部、102・・・RAM、103・・・ROM、104・・・HD、105・・・記憶部、111・・・バス、20・・・インターネット、30・・・移動パケット通信網、40・・・通信端末、50・・・クライアント装置。

Claims (8)

  1. 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
    前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
    前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
    を備えることを特徴とする通信装置。
  2. 前記制御手段は、前記再送手段によりデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを前記受信手段により連続して受信した回数が予め定められた回数に達した場合には、欠落しているデータパケットを前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
    を備える請求項1記載の通信装置。
  3. 前記制御手段は、前記再送手段によりデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを前記受信手段により連続して受信した回数が予め定められた回数に達し、かつ該確認応答パケットに、前記相手先の装置に到着したデータパケットのシーケンス番号を示す選択的確認応答情報が内包されている場合、欠落しているデータパケットを該選択的確認応答情報により特定して前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
    を備える請求項1記載の通信装置。
  4. 前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに内包されたシーケンス番号から予め定められた分だけ後ろのシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
    ことを特徴とする請求項1に記載の通信装置。
  5. 前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに内包されたシーケンス番号から予め定められた分だけ後ろのシーケンス番号より大きく且つ前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号より小さい場合、欠落しているデータパケットを前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
    ことを特徴とする請求項1に記載の通信装置。
  6. 前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
    ことを特徴とする請求項1に記載の通信装置。
  7. 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、前記送信過程にて送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
    前記送信過程にてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信過程にて受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
    前記再送過程にてデータパケットが再送された後に、前記受信過程にて受信された確認応答パケットの種別および該確認応答パケットに内包された情報に基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
    を有することを特徴とする通信制御方法。
  8. コンピュータを、
    複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段、
    前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段、
    前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段、
    前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別および該確認応答パケットに内包された情報に基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段
    として機能させるためのプログラム。
JP2003124527A 2003-03-25 2003-03-25 通信装置、通信制御方法及びプログラム Expired - Fee Related JP4283589B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003124527A JP4283589B2 (ja) 2003-03-25 2003-03-25 通信装置、通信制御方法及びプログラム
US10/807,505 US7296206B2 (en) 2003-03-25 2004-03-23 Communication device, transmission control method, and program product
EP20040007062 EP1463228B1 (en) 2003-03-25 2004-03-24 Communication device, transmission control method, and program product for controlling retransmission of data
CNB2004100317855A CN1319303C (zh) 2003-03-25 2004-03-25 通信设备,传输控制方法,和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003124527A JP4283589B2 (ja) 2003-03-25 2003-03-25 通信装置、通信制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2004297742A true JP2004297742A (ja) 2004-10-21
JP4283589B2 JP4283589B2 (ja) 2009-06-24

Family

ID=32821665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003124527A Expired - Fee Related JP4283589B2 (ja) 2003-03-25 2003-03-25 通信装置、通信制御方法及びプログラム

Country Status (4)

Country Link
US (1) US7296206B2 (ja)
EP (1) EP1463228B1 (ja)
JP (1) JP4283589B2 (ja)
CN (1) CN1319303C (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006303925A (ja) * 2005-04-20 2006-11-02 Sony Corp 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
JP2007318251A (ja) * 2006-05-23 2007-12-06 Ntt Docomo Inc 到達確認型ブロードキャスト配信方法、移動端末、及びブロードキャスト配信サーバ
WO2007148629A1 (ja) * 2006-06-20 2007-12-27 Ntt Docomo, Inc. 移動通信システムで使用される無線通信装置及び無線通信方法
JP2012059136A (ja) * 2010-09-10 2012-03-22 Oki Electric Ind Co Ltd 業務支援システム、業務支援方法及びプログラム
JP2016119553A (ja) * 2014-12-19 2016-06-30 富士通株式会社 通信装置、中継装置、および、通信制御方法

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050118305A (ko) * 2003-04-10 2005-12-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 멀티미디어 메시징 방법 및 시스템
JP4244159B2 (ja) * 2003-05-16 2009-03-25 株式会社エヌ・ティ・ティ・ドコモ 受信装置、通信システムおよびプログラム
KR100529931B1 (ko) * 2003-12-09 2005-11-22 엘지전자 주식회사 무선 네트워크망을 통해 통신하는 서버 시스템
US7711878B2 (en) * 2004-05-21 2010-05-04 Intel Corporation Method and apparatus for acknowledgement-based handshake mechanism for interactively training links
US20050262184A1 (en) * 2004-05-21 2005-11-24 Naveen Cherukuri Method and apparatus for interactively training links in a lockstep fashion
US7623464B2 (en) * 2004-07-09 2009-11-24 Cisco Technology, Inc. Rapid protocol failure detection
US20070280107A1 (en) * 2004-07-23 2007-12-06 Reiner Ludwig Data Unit Sender Control Method
US7903546B2 (en) * 2005-01-14 2011-03-08 Cisco Technology, Inc. Detecting unavailable network connections
EP1903747B1 (en) 2005-07-08 2017-03-08 Fujitsu Ltd. Transmitting apparatus, receiving apparatus and information communication method
JP2007081678A (ja) * 2005-09-13 2007-03-29 Ntt Docomo Inc データ中継装置及びデータ中継方法
EP1855410A3 (en) * 2006-05-08 2013-02-13 Samsung Electronics Co., Ltd. Retransmission apparatus and method for high-speed data processing
JPWO2007148630A1 (ja) * 2006-06-20 2009-11-19 株式会社エヌ・ティ・ティ・ドコモ 移動通信システムで使用される無線通信装置及び方法
CN101047484B (zh) * 2006-06-21 2010-10-13 华为技术有限公司 一种传输层重传方法和系统
US20100149973A1 (en) * 2006-10-09 2010-06-17 Daniel Krupp Method and Apparatus for use in a Communications Network
US8015313B2 (en) * 2008-03-04 2011-09-06 Sony Corporation Method and apparatus for managing transmission of TCP data segments
FR2941830A1 (fr) * 2009-01-30 2010-08-06 Ixel Procede pour le transfert sequentiel d'une suite de donnees entre une unite emettrice et une unite receptrice
CN102361810B (zh) * 2009-03-25 2014-05-07 三菱电机株式会社 电梯的信号传输装置
US8325623B1 (en) 2010-02-16 2012-12-04 Google Inc. System and method for reducing latency during data transmissions over a network
CN102427452B (zh) * 2011-12-06 2014-07-30 北京星网锐捷网络技术有限公司 同步报文发送方法、装置和网络设备
CN103548297A (zh) * 2012-03-21 2014-01-29 华为技术有限公司 确认包的处理方法、设备及系统
US9660924B2 (en) * 2012-04-16 2017-05-23 Hewlett Packard Enterprise Development Lp Determining a maximal size of packets
US9130843B2 (en) * 2012-05-18 2015-09-08 Alcatel Lucent Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source
CN102694631B (zh) * 2012-05-23 2015-03-18 华为技术有限公司 一种用于控制数据传输的方法和装置
US9118569B2 (en) * 2013-04-06 2015-08-25 Citrix System, Inc. Systems and methods for TCP Westwood hybrid approach
US20140341098A1 (en) * 2013-05-15 2014-11-20 Qualcomm Incorporated Access point response to ps-poll
US20140355623A1 (en) * 2013-06-03 2014-12-04 Futurewei Technologies, Inc. Transmission Control Protocol (TCP) Connection Control Parameter In-Band Signaling
US9253681B1 (en) * 2014-06-18 2016-02-02 Sprint Spectrum L.P. Physical resource block allocation for TTI bundling
US10320526B1 (en) 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10999012B2 (en) 2014-11-07 2021-05-04 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10135746B2 (en) 2015-07-07 2018-11-20 Strong Force Iot Portfolio 2016, Llc Cross-session network communication configuration
US9992126B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US9992088B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US9825733B1 (en) 2014-11-07 2017-11-21 Speedy Packets, Inc. Packet coding based network communication
CN106230561A (zh) * 2016-07-22 2016-12-14 努比亚技术有限公司 数据收集方法、装置及系统
CN110199505B (zh) 2016-12-21 2022-11-18 英国电讯有限公司 确定通信链路的带宽
WO2018114519A1 (en) * 2016-12-21 2018-06-28 British Telecommunications Public Limited Company Managing congestion response during content delivery
EP3563575B1 (en) 2016-12-29 2024-04-10 British Telecommunications public limited company Transmission parameter control for segment delivery
WO2019031924A1 (en) 2017-08-10 2019-02-14 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR DATA PROCESSING IN A WIRELESS COMMUNICATION SYSTEM
CN107864135A (zh) * 2017-11-07 2018-03-30 山东网智物联网科技有限公司 物联网通信方法、装置及物联网通信的实现装置
CN107800519B (zh) * 2017-11-20 2020-12-01 烽火通信科技股份有限公司 一种数据包的重传方法和重传系统
CN110324256B (zh) * 2019-05-13 2022-10-14 西南交通大学 一种流式数据传输控制方法
US10806206B1 (en) 2020-02-12 2020-10-20 John P. Ryan Venting system for hats
CN113489575A (zh) * 2021-06-25 2021-10-08 阿波罗智联(北京)科技有限公司 一种数据传输方法、装置及电子设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440545A (en) * 1993-08-02 1995-08-08 Motorola, Inc. Packet delivery system
JPH07253936A (ja) * 1994-01-27 1995-10-03 Toshiba Corp タイムアウト処理回路およびそれを用いた受信装置
CN1122539A (zh) * 1994-09-06 1996-05-15 摩托罗拉公司 重建和传送分段消息的方法
JPH08186571A (ja) * 1994-12-28 1996-07-16 Fujitsu Ltd Atmセル損失検出制御方式
US5553083B1 (en) * 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
US5533021A (en) * 1995-02-03 1996-07-02 International Business Machines Corporation Apparatus and method for segmentation and time synchronization of the transmission of multimedia data
FI98174C (fi) * 1995-05-09 1997-04-25 Nokia Telecommunications Oy Datansiirtojärjestelmä, jossa on liukuvaan ikkunaan perustuva datavuonohjaus
US5742765A (en) * 1996-06-19 1998-04-21 Pmc-Sierra, Inc. Combination local ATM segmentation and reassembly and physical layer device
US5956341A (en) * 1996-12-13 1999-09-21 International Business Machines Corporation Method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment
US6446028B1 (en) * 1998-11-25 2002-09-03 Keynote Systems, Inc. Method and apparatus for measuring the performance of a network based application program
US6611495B1 (en) * 1999-02-22 2003-08-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for improved data transfer in packet-switched communication networks
US6831912B1 (en) * 2000-03-09 2004-12-14 Raytheon Company Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links
US6757248B1 (en) 2000-06-14 2004-06-29 Nokia Internet Communications Inc. Performance enhancement of transmission control protocol (TCP) for wireless network applications
ES2220661T3 (es) * 2000-07-05 2004-12-16 Roke Manor Research Limited Metodo de operacion de una memoria temporal de reensamblado de paquetes.
US7099273B2 (en) * 2001-04-12 2006-08-29 Bytemobile, Inc. Data transport acceleration and management within a network communication system
US20030131079A1 (en) * 2001-11-13 2003-07-10 Ems Technologies, Inc. Performance enhancing proxy techniques for internet protocol traffic
US7116634B1 (en) * 2001-12-21 2006-10-03 Cisco Technology, Inc. TCP sequence number recovery in a redundant forwarding system

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006303925A (ja) * 2005-04-20 2006-11-02 Sony Corp 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
JP4697525B2 (ja) * 2005-04-20 2011-06-08 ソニー株式会社 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
US8514755B2 (en) 2005-04-20 2013-08-20 Sony Corporation Transmitting and receiving system, transmitting apparatus, transmitting method, receiving apparatus, receiving method, and program
JP2007318251A (ja) * 2006-05-23 2007-12-06 Ntt Docomo Inc 到達確認型ブロードキャスト配信方法、移動端末、及びブロードキャスト配信サーバ
WO2007148629A1 (ja) * 2006-06-20 2007-12-27 Ntt Docomo, Inc. 移動通信システムで使用される無線通信装置及び無線通信方法
JP4945564B2 (ja) * 2006-06-20 2012-06-06 株式会社エヌ・ティ・ティ・ドコモ 移動通信システム及び無線通信方法
US8275565B2 (en) 2006-06-20 2012-09-25 Ntt Docomo, Inc. Radio communication apparatus and radio communication method used in mobile communication system
JP2012059136A (ja) * 2010-09-10 2012-03-22 Oki Electric Ind Co Ltd 業務支援システム、業務支援方法及びプログラム
JP2016119553A (ja) * 2014-12-19 2016-06-30 富士通株式会社 通信装置、中継装置、および、通信制御方法

Also Published As

Publication number Publication date
CN1319303C (zh) 2007-05-30
EP1463228A3 (en) 2007-01-17
EP1463228A2 (en) 2004-09-29
JP4283589B2 (ja) 2009-06-24
CN1533083A (zh) 2004-09-29
EP1463228B1 (en) 2012-12-26
US20050013246A1 (en) 2005-01-20
US7296206B2 (en) 2007-11-13

Similar Documents

Publication Publication Date Title
JP4283589B2 (ja) 通信装置、通信制御方法及びプログラム
US7505412B2 (en) Transmission control method and system
KR100785293B1 (ko) 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
JP5694993B2 (ja) 通信装置及び通信方法
US7385923B2 (en) Method, system and article for improved TCP performance during packet reordering
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US20100020689A1 (en) Immediate ready implementation of virtually congestion free guaranteed service capable network : nextgentcp/ftp/udp intermediate buffer cyclical sack re-use
CN108418767A (zh) 数据传输方法、设备及计算机存储介质
CN102891883B (zh) 无线传输控制协议处理方法和设备
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
US7593338B2 (en) Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
JP2002152308A (ja) データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体
US20040196785A1 (en) Congestion notification process and system
EP1435704B1 (en) Transmission control method and system
JP4244159B2 (ja) 受信装置、通信システムおよびプログラム
JP3893247B2 (ja) データ配信管理装置
Altahir et al. Performance evaluation of TCP congestion control mechanisms using NS-2
TWI308012B (en) Method for adaptive estimation of retransmission timeout in wireless communication systems
KR101231793B1 (ko) Tcp 세션 최적화 방법 및 네트워크 노드
Kung et al. TCP with sender-based delay control
JP2004222271A (ja) 伝送制御方法、通信装置、通信システム及びプログラム
Law et al. Engineering TCP transmission and retransmission mechanisms for wireless networks
WO2020173384A1 (zh) 一种通信方法、装置及系统
JP2008536339A (ja) 事実上輻輳のないギャランティードサービス対応ネットワーク:外部インターネットNextGenTCP(方形波形)TCPフレンドリSANの即座の準備のできた実施
Premalatha et al. Mitigating congestion in wireless networks by using TCP variants

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080328

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: 20081029

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: 20090317

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: 20090319

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: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees