JP4283589B2 - 通信装置、通信制御方法及びプログラム - Google Patents
通信装置、通信制御方法及びプログラム Download PDFInfo
- Publication number
- JP4283589B2 JP4283589B2 JP2003124527A JP2003124527A JP4283589B2 JP 4283589 B2 JP4283589 B2 JP 4283589B2 JP 2003124527 A JP2003124527 A JP 2003124527A JP 2003124527 A JP2003124527 A JP 2003124527A JP 4283589 B2 JP4283589 B2 JP 4283589B2
- Authority
- JP
- Japan
- Prior art keywords
- data packet
- packet
- sequence number
- transmitted
- acknowledgment
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/187—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Description
【発明の属する技術分野】
本発明は、パケット通信網を介して送受信されるパケットの再送制御のための技術に関する。
【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との間でパケット通信が行われる場合パケット通信が行われる場合の他の例を示すシーケンスチャートである。図15は、サーバ装置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 (18)
- 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを前記受信手段により連続して受信した回数が予め定められた回数に達した場合には、欠落しているデータパケットを前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とする通信装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを前記受信手段により連続して受信した回数が予め定められた回数に達し、かつ該確認応答パケットに、前記相手先の装置に到着したデータパケットのシーケンス番号を示す選択的確認応答情報が内包されている場合、欠落しているデータパケットを該選択的確認応答情報により特定して前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とする通信装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とする通信装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号より大きく且つ前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号より小さい場合、欠落しているデータパケットを前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とする通信装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号より大きく且つ前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とする通信装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とする通信装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、
前記送信過程において送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
前記送信過程においてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
前記再送過程においてデータパケットが再送された後で受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
を有し、
前記制御過程では、前記再送過程においてデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを連続して受信した回数が予め定められた回数に達した場合には、欠落しているデータパケットを再送し、前記送信過程において送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが受信されると、送信すべきデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とする通信制御方法。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、
前記送信過程において送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
前記送信過程においてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
前記再送過程においてデータパケットが再送された後で受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
を有し、
前記制御過程では、前記再送過程においてデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを連続して受信した回数が予め定められた回数に達し、かつ該確認応答パケットに、前記相手先の装置に到着したデータパケットのシーケンス番号を示す選択的確認応答情報が内包されている場合、欠落しているデータパケットを該選択的確認応答情報により特定して再送し、前記送信過程において送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが受信されると、送信すべきデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とする通信制御装置。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、
前記送信過程において送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
前記送信過程においてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
前記再送過程においてデータパケットが再送された後で受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
を有し、
前記制御過程では、前記再送過程においてデータパケットが再送された後で受信された確認応答パケットに内包されたシーケンス番号が、前記再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号と一致する場合、送信すべきデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とする通信制御方法。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、
前記送信過程において送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
前記送信過程においてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
前記再送過程においてデータパケットが再送された後で受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
を有し、
前記制御過程では、前記再送過程においてデータパケットが再送された後で受信された確認応答パケットに内包されたシーケンス番号が、前記再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号より大きく且つ最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号より小さい場合、欠落しているデータパケットを再送し、前記送信過程において送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが受信されると、送信すべきデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とする通信制御方法。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、
前記送信過程において送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
前記送信過程においてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
前記再送過程においてデータパケットが再送された後で受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
を有し、
前記制御過程では、前記再送過程においてデータパケットが再送された後で受信された確認応答パケットに内包されたシーケンス番号が、前記再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号より大きく且つ最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、送信すべきデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とする通信制御方法。 - 複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信過程と、
前記送信過程において送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信過程と、
前記送信過程においてデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送過程と、
前記再送過程においてデータパケットが再送された後で受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御過程と
を有し、
前記制御過程では、前記再送過程においてデータパケットが再送された後で受信された確認応答パケットに内包されたシーケンス番号が、最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、送信すべきデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とする通信制御方法。 - コンピュータを、
複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
して機能させるプログラムであって、
前記制御手段は、前記再送手段によりデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを前記受信手段により連続して受信した回数が予め定められた回数に達した場合には、欠落しているデータパケットを前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とするプログラム。 - コンピュータを、
複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
して機能させるプログラムであって、
前記制御手段は、前記再送手段によりデータパケットが再送された後、同一のシーケンス番号が内包された確認応答パケットを前記受信手段により連続して受信した回数が予め定められた回数に達し、かつ該確認応答パケットに、前記相手先の装置に到着したデータパケットのシーケンス番号を示す選択的確認応答情報が内包されている場合、欠落しているデータパケットを該選択的確認応答情報により特定して前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とするプログラム。 - コンピュータを、
複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
を備え、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度に戻す
ことを特徴とするプログラム。 - コンピュータを、
複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
して機能させるプログラムであって、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号より大きく且つ前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号より小さい場合、欠落しているデータパケットを前記再送手段に再送させ、前記送信手段により送信されたデータパケットに内包されるシーケンス番号のうち最大のシーケンス番号に後続するシーケンス番号を内包した確認応答パケットが前記受信手段により受信されると、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とするプログラム。 - コンピュータを、
複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
して機能させるプログラムであって、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記再送手段により再送されたデータパケットに後続する2番目のデータパケットに内包されたシーケンス番号より大きく且つ前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とするプログラム。 - コンピュータを、
複数のデータパケットを各データパケットに内包されたシーケンス番号の順にパケット通信網を介して相手先の装置へ送信する送信手段と、
前記送信手段により送信されたデータパケットのうち前記相手先の装置が次に送信を要求しているデータパケットのシーケンス番号を内包した確認応答パケットを受信する受信手段と、
前記送信手段によりデータパケットが送信された時点から予め定められた待機時間が経過するまでに、該データパケットのシーケンス番号よりも後の順番を示すシーケンス番号を内包した確認応答パケットが前記受信手段により受信されなかった場合、該データパケットを送信する際の送信速度を予め定められた送信速度に変更するとともに、該データパケットを再送する再送手段と、
前記再送手段によりデータパケットが再送された後に、前記受信手段により受信された確認応答パケットの種別と該確認応答パケットに内包された情報とに基づいて、送信すべきデータパケットを決定し該データパケットを送信する際の送信速度を制御する制御手段と
して機能させるプログラムであって、
前記制御手段は、前記再送手段によりデータパケットが再送された後、前記受信手段により受信された確認応答パケットに内包されたシーケンス番号が、前記送信手段により最後に送信されたデータパケットのシーケンス番号に後続するシーケンス番号と一致する場合、前記送信手段に送信させるデータパケットの送信速度を、前記待機時間が経過する直前の送信速度から定められる送信速度よりも小さくする
ことを特徴とするプログラム。
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 JP2004297742A (ja) | 2004-10-21 |
JP4283589B2 true 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) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1771702A (zh) * | 2003-04-10 | 2006-05-10 | 皇家飞利浦电子股份有限公司 | 多媒体消息传递方法和系统 |
JP4244159B2 (ja) * | 2003-05-16 | 2009-03-25 | 株式会社エヌ・ティ・ティ・ドコモ | 受信装置、通信システムおよびプログラム |
KR100529931B1 (ko) | 2003-12-09 | 2005-11-22 | 엘지전자 주식회사 | 무선 네트워크망을 통해 통신하는 서버 시스템 |
US20050262184A1 (en) * | 2004-05-21 | 2005-11-24 | Naveen Cherukuri | Method and apparatus for interactively training links in a lockstep fashion |
US7711878B2 (en) * | 2004-05-21 | 2010-05-04 | Intel Corporation | Method and apparatus for acknowledgement-based handshake mechanism for interactively training links |
US7623464B2 (en) * | 2004-07-09 | 2009-11-24 | Cisco Technology, Inc. | Rapid protocol failure detection |
WO2006007870A1 (en) * | 2004-07-23 | 2006-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Data unit sender control method |
US7903546B2 (en) * | 2005-01-14 | 2011-03-08 | Cisco Technology, Inc. | Detecting unavailable network connections |
JP4697525B2 (ja) | 2005-04-20 | 2011-06-08 | ソニー株式会社 | 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム |
WO2007007383A1 (ja) * | 2005-07-08 | 2007-01-18 | Fujitsu Limited | 送信装置、受信装置、情報通信方法 |
JP2007081678A (ja) * | 2005-09-13 | 2007-03-29 | Ntt Docomo Inc | データ中継装置及びデータ中継方法 |
US8036101B2 (en) * | 2006-05-08 | 2011-10-11 | Samsung Electronics Co., Ltd | Retransmission apparatus and method for high-speed data processing |
JP4832957B2 (ja) * | 2006-05-23 | 2011-12-07 | 株式会社エヌ・ティ・ティ・ドコモ | 到達確認型ブロードキャスト配信方法、及びブロードキャスト配信サーバ |
CN101502152A (zh) * | 2006-06-20 | 2009-08-05 | 株式会社Ntt都科摩 | 移动通信系统中使用的无线通信装置及方法 |
WO2007148629A1 (ja) * | 2006-06-20 | 2007-12-27 | Ntt Docomo, Inc. | 移動通信システムで使用される無線通信装置及び無線通信方法 |
CN101047484B (zh) * | 2006-06-21 | 2010-10-13 | 华为技术有限公司 | 一种传输层重传方法和系统 |
WO2008043390A1 (en) * | 2006-10-09 | 2008-04-17 | Telefonaktiebolaget Lm Ericsson (Publ) | 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 |
WO2010109748A1 (ja) * | 2009-03-25 | 2010-09-30 | 三菱電機株式会社 | 信号伝送装置 |
US8325623B1 (en) | 2010-02-16 | 2012-12-04 | Google Inc. | System and method for reducing latency during data transmissions over a network |
JP2012059136A (ja) * | 2010-09-10 | 2012-03-22 | Oki Electric Ind Co Ltd | 業務支援システム、業務支援方法及びプログラム |
CN102427452B (zh) * | 2011-12-06 | 2014-07-30 | 北京星网锐捷网络技术有限公司 | 同步报文发送方法、装置和网络设备 |
WO2013139010A1 (zh) * | 2012-03-21 | 2013-09-26 | 华为技术有限公司 | 确认包的处理方法、设备及系统 |
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 |
US10999012B2 (en) | 2014-11-07 | 2021-05-04 | Strong Force Iot Portfolio 2016, Llc | Packet coding based network communication |
US9992088B1 (en) | 2014-11-07 | 2018-06-05 | Speedy Packets, Inc. | Packet coding based network communication |
US9992126B1 (en) | 2014-11-07 | 2018-06-05 | Speedy Packets, Inc. | Packet coding based network communication |
US10320526B1 (en) | 2014-11-07 | 2019-06-11 | Strong Force Iot Portfolio 2016, Llc | Packet coding based network communication |
US9979664B2 (en) | 2015-07-07 | 2018-05-22 | Speedy Packets, Inc. | Multiple protocol network communication |
US9825733B1 (en) | 2014-11-07 | 2017-11-21 | Speedy Packets, Inc. | Packet coding based network communication |
JP6409558B2 (ja) * | 2014-12-19 | 2018-10-24 | 富士通株式会社 | 通信装置、中継装置、および、通信制御方法 |
CN106230561A (zh) * | 2016-07-22 | 2016-12-14 | 努比亚技术有限公司 | 数据收集方法、装置及系统 |
WO2018114519A1 (en) * | 2016-12-21 | 2018-06-28 | British Telecommunications Public Limited Company | Managing congestion response during content delivery |
US11190430B2 (en) | 2016-12-21 | 2021-11-30 | British Telecommunications Public Limited Company | Determining the bandwidth of a communication link |
EP3563575B1 (en) | 2016-12-29 | 2024-04-10 | British Telecommunications public limited company | Transmission parameter control for segment delivery |
EP4344156A3 (en) * | 2017-08-10 | 2024-05-22 | Samsung Electronics Co., Ltd. | Method and apparatus for data processing in 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 | 西南交通大学 | 一种流式数据传输控制方法 |
CN113162862A (zh) * | 2020-01-23 | 2021-07-23 | 华为技术有限公司 | 拥塞控制方法及装置 |
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)
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 |
ATE267502T1 (de) * | 2000-07-05 | 2004-06-15 | Roke Manor Research | Verfahren zum betreiben eines puffers für das wiederzusammenstellen von paketen und netzwerk- router |
US7099273B2 (en) * | 2001-04-12 | 2006-08-29 | Bytemobile, Inc. | Data transport acceleration and management within a network communication system |
WO2003043288A1 (en) * | 2001-11-13 | 2003-05-22 | Ems Technologies, Inc. | Enhancements for tcp perfomance enhancing proxies |
US7116634B1 (en) * | 2001-12-21 | 2006-10-03 | Cisco Technology, Inc. | TCP sequence number recovery in a redundant forwarding system |
-
2003
- 2003-03-25 JP JP2003124527A patent/JP4283589B2/ja not_active Expired - Fee Related
-
2004
- 2004-03-23 US US10/807,505 patent/US7296206B2/en not_active Expired - Fee Related
- 2004-03-24 EP EP20040007062 patent/EP1463228B1/en not_active Expired - Lifetime
- 2004-03-25 CN CNB2004100317855A patent/CN1319303C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1463228A3 (en) | 2007-01-17 |
EP1463228A2 (en) | 2004-09-29 |
US20050013246A1 (en) | 2005-01-20 |
CN1533083A (zh) | 2004-09-29 |
US7296206B2 (en) | 2007-11-13 |
EP1463228B1 (en) | 2012-12-26 |
JP2004297742A (ja) | 2004-10-21 |
CN1319303C (zh) | 2007-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4283589B2 (ja) | 通信装置、通信制御方法及びプログラム | |
US7505412B2 (en) | Transmission control method and system | |
JP5694993B2 (ja) | 通信装置及び通信方法 | |
US7742419B2 (en) | Method, system and article for improved TCP performance during packet reordering | |
US7593338B2 (en) | Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol | |
JP2002152308A (ja) | データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体 | |
Lefevre et al. | Understanding TCP's behavior over wireless links | |
JP2004537218A (ja) | Nackベースのプロトコルにおける輻輳制御の信頼性のある効率的な対応方法 | |
CN101369877B (zh) | 无线传输控制协议处理方法和设备 | |
US7764616B2 (en) | Transmitter device for controlling data transmission | |
JP4244159B2 (ja) | 受信装置、通信システムおよびプログラム | |
EP1435704B1 (en) | Transmission control method and system | |
TWI308012B (en) | Method for adaptive estimation of retransmission timeout in wireless communication systems | |
Altahir et al. | Performance evaluation of TCP congestion control mechanisms using NS-2 | |
KR100913897B1 (ko) | 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법 | |
JP3784801B2 (ja) | 伝送制御方法、通信装置、通信システム及びプログラム | |
Carletto et al. | Shallow window reduction for congestion control under TCP | |
Xylomenos et al. | Adaptive link layer protocols for shared wireless links. | |
Fan et al. | Wireless-aware congestion control for transmission over heterogeneous networks | |
JP2008536339A (ja) | 事実上輻輳のないギャランティードサービス対応ネットワーク:外部インターネットNextGenTCP(方形波形)TCPフレンドリSANの即座の準備のできた実施 | |
Premalatha et al. | Mitigating congestion in wireless networks by using TCP variants | |
WO2003069920A2 (en) | Transmission and flow control |
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 |