JP2005143076A - パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法 - Google Patents

パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法 Download PDF

Info

Publication number
JP2005143076A
JP2005143076A JP2004230274A JP2004230274A JP2005143076A JP 2005143076 A JP2005143076 A JP 2005143076A JP 2004230274 A JP2004230274 A JP 2004230274A JP 2004230274 A JP2004230274 A JP 2004230274A JP 2005143076 A JP2005143076 A JP 2005143076A
Authority
JP
Japan
Prior art keywords
data
packet
data position
received
original data
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
JP2004230274A
Other languages
English (en)
Other versions
JP4186893B2 (ja
Inventor
Mitsuhiro Inazumi
満広 稲積
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004230274A priority Critical patent/JP4186893B2/ja
Priority to US10/965,003 priority patent/US7586952B2/en
Publication of JP2005143076A publication Critical patent/JP2005143076A/ja
Application granted granted Critical
Publication of JP4186893B2 publication Critical patent/JP4186893B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

【課題】TCPによるパケット通信でありながらリアルタイム性を確保した通信を可能とする。
【解決手段】元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信装置であって、前記受信装置は、受信された受信済みパケットの元データ上のデータ位置を記憶するデータ位置記憶手段6と、該データ位置記憶手段6に記憶された元データ上のデータ位置と前記受信パケットの元データ上のデータ位置とを比較するデータ位置比較手段3と、該データ位置比較手段3により前記受信パケットの元データ上のデータ位置が前記データ位置記憶手段6に記憶された元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成手段8とを有する。
【選択図】 図1

Description

本発明はリアルタイム通信に好適なパケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法に関する。
インターネットなどのネットワーク上での通信は、パケット型通信であると言うこと、またベストエフォート型通信であるなどの特徴がある。
パケット型通信(以下ではパケット通信という)においては、パケットと呼ばれるデータ構造を単位として通信が行われることに特徴がある。通信されるパケットには、たとえば音声などの元データを細分化してなるデータ部分と宛先情報などの付加情報が含まれる。
また、ベストエフォート型通信においては、通信の質が保証されないと言う特徴がある。通信の質が保証されないというのは、送信したパケットが宛先に到着するまでの遅延時間、到着する順序は保証されないということであり、更には到着すること自体が保証されないと言うことである。
パケットの宛先への到着を保証する方法としては、IETF標準であるRFC793(非特許文献1)に規定されたコネクション型の通信プロトコルであるTCP(Transmission Control Protocol)などがある。
このTCPによるパケット通信では、到着したデータに対応する受信確認応答パケット(以下、ACK応答パケットという)が受信装置から送信装置へ送信される。これにより、送信装置では自分の送信したパケットが受信装置に到着したことを確認することができ、受信装置からACK応答パケットが返ってこなければパケットの再送を行う。これによって、パケットが宛先に届くことを保証することができる。図10から図14を用いてこれを簡単に説明する。
図10は、TCPにおいて用いられる個々のパケットに含まれるデータ(音声など送信すべきデータ)に付加される付加情報を模式的に示したものである。このうち、本発明の説明において特に関連があるのは、シーケンス番号(以下、SEQ番号という)、受信確認応答番号(以下、ACK番号という)、及びウィンドサイズ(以下、WINという)である。
図11は非特許文献1に関する単純化したTCPによるパケット通信動作を模式的に示した図である。この図11において、送信装置から最初に送信されるパケットをパケットAとする。このパケットAのSEQ:2000は、SEQ番号が2000であることを表し、送信されるパケットに含まれるデータの元データ上のデータ位置を表している。
なお、元データ上のデータ位置は、一般的には、「パケットのSEQ番号値−SEQ番号初期値」で表すことができる。たとえば、パケットAのSEQ番号初期値が0であれば、パケットAのSEQ:2000は、パケットAに含まれるデータは、元データの先頭から2000バイト目からのデータであることを示している。SEQの初期値は0であるとは限らないが、以下の説明では、SEQ番号初期値は0であるとする。
また、このパケットAのACK:1000は、ACK番号が1000であることを示しているが、この例ではACK番号が1000であることに特別な意味はない。なお、以下では、パケットに含まれるデータの元データ上の位置をパケットの元データ上の位置という。
また、送信装置から受信装置へ送信される個々のパケットに含まれるデータの長さは、それぞれがすべて100バイトであるとする。
このパケットAが受信装置で受信されたとき、受信装置では受信確認応答としてのACK応答パケットaが生成され、そのAKC応答パケットaが送信装置に送信される。このACK応答パケットaのACK:2100は、ACK応答パケットaのACK番号が2100であることを示しており、この2100は、この場合、パケットAのSEQ番号が2000で、かつ、パケットA中に含まれるデータの長さが100であるので、その和である2100を意味している。
このACK:2100であることの意味は、受信装置が送信装置に対して、次に送信を要求するのは、元データの先頭位置を0としてデータ位置が2100からのデータであると言うことである。あるいは、現在、元データの先頭から2100バイトのデータを受け取ったと言うことである。
なお、ACK応答パケットaにおいて、受信装置から送信装置へ送信されるデータは無いので、ACK応答パケットaのSEQ番号は、パケットAに記述されているACK番号である1000がそのまま使用され、SEQ:1000として記述される。同様に、送信装置から送られてくるパケットBに対しては、受信装置においてACK応答パケットbが生成される。
ここで、この図11に示すように、パケットCが何らかの原因によりパケットロスしたと仮定する。TCPによるパケット通信においては、送信装置は、パケット送信時に図中の太い矢印Tsで示すようなAKC応答パケット到着待ち時間としてのタイムアウト時間を設定する。このタイムアウト時間内に受信装置からのACK応答パケットが戻らない場合、送信装置は、そのパケット(この例ではパケットC)がパケットロスしたと判断し、パケットロスしたパケットCをパケットDとして再送する。
この図11は、送信装置では1パケットごとに受信装置からのACK応答パケットを待つものであるが、実際には、より効率的に通信を行うために、ウィンドウサイズの設定によるウィンドウ制御を用いたパケット通信が行われる。
図12は非特許文献1に関する所定のウィンドウサイズの設定がなされた場合のTCPによるパケット通信動作の一例を説明する図である。この例においても、送信装置から送り出されるパケットに含まれるデータは全て100バイトであるとする。また、ウィンドウサイズは、簡単のためにパケット4つ分のデータサイズに相当する400バイトであるとする。
このウィンドウ制御を用いることにより、送信装置は、そのウィンドウサイズに達するまでは、受信装置からのACK応答パケットを待たずに連続的なパケット送信を行うことが可能となる。
図12ではACK応答パケットを待たずに3つのパケットを送信し(この図12の例では、たとえば、SEQ:2000、SEQ:2100、SEQ:2200のパケットが受信装置からのACK応答パケットを待たずに送信されている)、以降も、ACK応答パケットを待たずに最大4つ分のパケットを送信することができる。図11と図12を比較すれば、図12の方が効率的なパケット通信を行えることは明らかである。
図13は、図12の方式において、パケットロスが発生した場合の処理を模式的に示したものである。図13に示すように、ACK応答パケットを待たずに、この場合、最大で4つのパケットA、B、C、Dを送信することができる。
ここで、送信したパケットのうち、パケットBがパケットロスしたとする。その後、パケットAに対応するACK応答パケットaが送信装置に到着したことに対応し、送信装置ではパケットEが送信される。しかし、パケットBがパケットロスしたために、このパケットBに対応するACK応答パケットは返されない。また、パケットC、D、Eは正常に受信装置において受信されるが、パケットBがパケットロスしているので、パケットC、D、Eに対応するACK応答パケットの送信は保留される。
送信装置においては、パケットBの送信を基点に、太い矢印Tsで示すタイムアウト時間(パケット到着最大待ち時間)が設定され、そのタイムアウト時間内にACK応答パケットの到着がない場合、タイムアウトとしてパケットBがパケットロスしたものと判断し、パケットBと同じパケットがパケットFとして再送される。
そして、パケットFを受信した受信装置においては、このパケットFの受信によって、パケットC、D、Eによるデータも有効となるため、その分も含めたACK応答パケットfが返される。
この方法に対し、IETF標準のRFC2582(非特許文献2)に規定される方法がある。図14は非特許文献2に関するTCPによるパケット通信動作の一例を説明する図である。この方法は、パケットロスしたことの監視を前述した図13の方法のようにタイムアウト時間によって行うのではなく、受信装置からのACK応答パケットを用いて行うものである。
この図14においても図13と同じくパケットBがパケットロスしたとする。受信装置において、パケットAに対するACK応答パケットaが送信された後、パケットCが受信されたとする。それにより、受信装置では、少なくとも1つのパケットがパケットロスしたことを検出する。このとき、受信装置においては、ACK応答パケットaと同じ内容のACK応答パケットa’a”を送信する。
送信装置においては、受信装置から同一のACK応答パケットが複数回送信されたことにより、それに対応するパケット、つまりACK応答パケットaのACK番号が2100(ACK:2100)であるので、SEQ番号が2100(SEQ:2100)であるパケットBがパケットロスしたことを知ることができる。よって、パケットロスしたパケットBをパケットFとして再送する。
図13と図14を比較することにより明らかであるが、図14の方法の方が図13の方法に比べて、より高速にデータ通信を再開することができる。
以上は送信装置からのパケットがパケットロスしたと仮定したものであるが、受信装置からのACK応答パケットがパケットロスした場合も、処理内容としては同様である。
このように、TCPによるパケット通信は、パケットの宛先への到着を受信装置からのACK応答パケットにより確認し、ACK応答パケットが受信されずに到着を確認できないパケットについては再送を行い、それにより通信の完全性を保証するものである。
しかし、インターネット上で、音声や動画像などのリアルタイムデータを通信するときには、IETF標準であるRFC768(非特許文献3)に規定されたコネクションレス型通信プロトコルであるUDP(User Datagram Protocol)が用いられることが多い。このUDPにおいては、送信装置と受信装置でのハンドシェィクは行われず、パケットロス時にもパケットが再送されることはない。
図15は非特許文献3に関するUDPにおいて用いられるパケットの付加情報を模式的に示した図である。UDPによるパケット通信においては、TCPの場合のパケットへの付加情報(図10参照)のように、SEQ番号やACK番号、またWINに対応するデータは含まれていない。これは、UDPによるパケット通信がTCPによるパケット通信のようなハンドシェイクを行わないことによるものであり、UDPのみによるパケット通信ではパケットのロスや到着順序の逆転も検出できない。
図16は非特許文献3に関するUDPによるパケット通信動作の一例を説明する図である。この図16より明らかであるように、送信装置からのパケットはパケットロスの有無に係らず一定の時間間隔で送信される。これは、音声や動画像などのリアルタイム通信に適したものである。一方、先に述べたように、パケットロス時にも再送は行われず、パケットの宛先への到着は保証されない。また、その到着する順序も保証されない。
IETF標準RFC793 IETF標準RFC2582 IETF標準RFC768
単純なTCPを用いた通信においてはパケットロスに対し、図11と図13を用いて説明したように、ACK応答パケットをタイムアウト時間内で待ち、タイムアウト時間経過してもACK応答パケットが到着しない場合には再送を行うことになる。そのために通信が抑制され、大きな遅延が発生する可能性がある。
また、図14で説明したような方法によるパケット通信においても、図11や図13に示す単純なものに比較して高速化されたとは言え、少なくとも、複数のACK応答パケットが通信される分だけの遅延が発生する。
しかし、パケットの通信遅延が問題となるリアルタイム通信においては、このような再送処理を用いることはできない。つまり、音声や動画像などのリアルタイムデータにおいては、パケットロスしたパケットが再送により到着したとしても、その再生のタイミングに間に合わなければ、再送されたパケットに含まれるデータは無意味なものとなってしまうからである。
一方、UDPを用いたパケット通信においては、このような再送処理を伴う通信の抑制による送信装置の遅延が発生することはない。しかし、UDPを用いた通信においては、UDPによるパケットの通過がファイアウォールなどで禁止されている場合が多いと言う問題がある。これは、リアルタイムで通信される音声や動画像は非常にデータ量が大きく、これを許可することにより、他の通信における通信速度の低下などを引き起こす可能性があるからである。
以上のように、従来技術においては、TCPによるパケット通信はリアルタイム性を保証することが困難であると言う問題があり、UDPによるパケット通信においては、そのデータの通過がファイアウォールなどで禁止されていると言う問題がある。
そこで本発明はTCPを用いたパケット通信を用いながらUDPによるパケット通信と同様なリアルタイム性を確保することができるパケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法を提供することを目的としている。
(1)本発明のパケット通信装置は、元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信装置であって、前記受信装置は、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、該データ位置記憶手段に記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較手段と、該データ位置比較手段により前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成手段とを有することを特徴とする。
このように、本発明は送信装置から送られてきたパケット(受信パケット)のデータ位置とすでに受信処理された受信済みパケットのデータ位置との比較においてのみ受信確認応答(ACK応答パケット)が生成されるので、送信装置においては、パケットロスの有無に係わらず、一定の時間間隔でのデータ送信が可能となる。これによって、たとえば、音声や動画像といったリアルタイムデータの通信に好適なパケット通信が可能となる。さらに、本発明は受信装置のみの対応で済むので、送信装置の変更は不要である。
これによって、TCPを用いてUDPと同等のリアルタイム性を確保することができる。また、パケットのデータ形式としてはTCPと同等のものを用いるためファイアウォールを通過しやすくなる。また、送信装置はTCPと同等であるので、たとえば、外部からの悪意のある通信に対して、受信装置がリアルタイム通信を拒否できるといった効果もある。これは、TCPの場合は、受信装置がACK応答パケットを返さなければ、受信確認応答を待たずに連続送信が可能なデータサイズであるウィンドウサイズを超えての送信は行えないからである。
(2)前記(1)に記載のパケット通信装置においては、前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新するデータ位置更新手段を設け、このデータ位置更新手段は、前記データ位置比較手段により前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であると判断された場合に、前記受信パケットの前記元データ上のデータ位置に該受信パケットに含まれるデータのデータ長さを加えたデータ位置で、前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新するようにしている。
これによって、現時点における受信済みパケットの元データ上のデータ位置を適正に表すことができる。これにより、送信装置から送られてきたパケット(受信パケット)のデータ位置とすでに受信処理された受信済みパケットのデータ位置との比較を適正に行うことができ、両者のデータ位置の前後関係の判断を適正に行うことができる。
(3)前記(1)または(2)に記載のパケット通信装置においては、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であるとの判断は、前記受信パケットに含まれるシーケンス番号と前記受信済みパケットに含まれるシーケンス番号とに基づいて行い、前記受信パケットに含まれるシーケンス番号が前記受信済みパケットに含まれるシーケンス番号シーケンス番号より大きな値である場合に、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であるとの判断を行うことが好ましい。
これは、受信パケットの前記元データ上におけるデータ位置と受信済みパケットの前記元データ上におけるデータ位置の前後関係を、受信パケットおよび受信済みパケットに含まれるそれぞれのシーケンス番号の大きさによって判断するということである。なお、前記(2)の場合においては、受信パケットに含まれるシーケンス番号が前記受信済みパケットに含まれるシーケンス番号より大きな値である場合に、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であると判断する。これにより、受信パケットと受信済みパケットとの前記元データ上におけるデータ位置の前後関係を適性に判断することができる。
(4)前記(2)または(3)に記載のパケット通信装置においては、前記受信確認応答生成手段で生成される受信確認応答は、そのデータ位置として、前記データ位置更新手段による更新結果としての前記受信パケットの前記元データ上のデータ位置に、該受信パケットに含まれるデータのデータ長さを加えたデータ位置が記述されるようにしている。 これによって、受信済みパケットの元データ上のデータ位置を送信装置に対して適正に通知することができる。
(5)前記(1)〜(4)のいずれかに記載のパケット通信装置においては、前記データ位置比較手段において、前記受信パケットの前記元データ上のデータ位置と前記データ位置記憶手段に記憶された前記元データ上のデータ位置とを比較した結果、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置よりも前の位置である場合は、該受信パケットを廃棄させることが好ましい。
これは、送信されてくるパケットのデータ位置の順序が逆転した場合、それを廃棄するものであり、これによって、音声や動画像などのリアルタイムデータの通信を行う場合において、受信装置で無意味なパケットについての処理を行わないようにすることがきる。
なお、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置よりも前の位置であるか否かの判断は、前記(3)に記載したように、受信パケットおよび受信済みパケットに含まれるそれぞれのシーケンス番号の大きさによって判断することができる。(5)の場合においては、受信パケットに含まれるシーケンス番号が受信済みパケットに含まれるシーケンス番号より小さな値である場合に、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して前の位置であると判断する。
(6)本発明のパケット通信方法は、元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信方法であって、前記受信装置は、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、該データ位置記憶ステップにより記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較ステップと、該データ位置比較ステップによって、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップにより記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成ステップとを有することを特徴としている。
この(6)に記載のパケット通信方法においても、前記(1)と同様の効果を得ることができる。
また、(6)に記載のパケット通信方法においても、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信パケットの前記元データ上のデータ位置に該受信パケットに含まれるデータのデータ長さを加えたデータ位置で、前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置を更新するようにすることが好ましい。
また、(6)に記載のパケット通信方法においても、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置に対して、後の位置であるとの判断は、前記受信パケットに含まれるシーケンス番号と前記受信済みパケットに含まれるシーケンス番号とに基づいて行い、前記受信パケットに含まれるシーケンス番号が前記受信済みパケットに含まれるシーケンス番号シーケンス番号より大きな値である場合に、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置に対して、後の位置であるとの判断を行うことが好ましい。
また、(6)に記載のパケット通信方法においても、前記受信確認応答は、そのデータ位置として、前記データ位置更新結果としての前記受信パケットの前記元データ上のデータ位置に、該受信パケットに含まれるデータのデータ長さを加えたデータ位置が記述されるようにすることが好ましい。
また、(6)に記載のパケット通信方法においても、前記受信パケットの前記元データ上のデータ位置と前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置とを比較した結果、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置よりも前の位置である場合は、該受信パケットを廃棄させるようにすることが好ましい。
(7)本発明のデータ受信装置は、送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信装置であって、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、該データ位置記憶手段に記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較手段と、該データ位置比較手段により前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成手段とを有することを特徴とする。
この(7)に記載のデータ受信装置を用いることによって、(1)に記載したパケット通信装置を構成することができ、(1)のパケット通信装置と同様の効果を得ることができる。なお、(7)に記載のデータ受信装置においても、前記(2)〜(5)に記載したパケット通信装置の特徴と同様の特徴を有することが好ましい。
(8)本発明のデータ受信方法は、送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信方法であって、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、該データ位置記憶ステップにより記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較ステップと、該データ位置比較ステップによって、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップにより記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成ステップとを有することを特徴とする。
この(8)に記載のデータ受信方法を用いることによって(6)に記載したパケット通信方法を構築することができる。なお、(8)に記載のデータ受信方法においても、前記(2)〜(5)に記載したパケット通信装置の特徴と同様の特徴を有することが好ましい。
(9)本発明のパケット通信装置は、元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信装置であって、前記受信装置は、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、パケット到着最大待ち時間を含むタイムアウト条件を設定するタイムアウト条件設定手段と、前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定手段と、このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成手段とを有することを特徴とする。
これは受信装置にタイムアウト処理を行うもので、これによれば、バースト的な連続したパケットロスが発生した場合であっても送信装置ではUDPを用いたパケット通信と同様の連続的な送信が可能となる。
(10)前記(9)に記載のパケット通信装置においては、前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新するデータ位置更新手段を設け、このデータ位置更新手段は、前記タイムアウト条件判定手段によりタイムアウトの判定がなされた場合に、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に前記パケット到着最大待ち時間に対応するタイムアウトデータ長さを加えたデータ位置で、前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新するようにしている。
これによって、現時点における受信済みデータ位置を適正に表すことができる。これにより、送信装置から送られてきたパケットのデータ位置とすでに受信処理された受信済みパケットのデータ位置との比較を適正に行うことができ、両者のデータ位置の前後関係の判断を適正に行うことができる。
(11)前記(10)に記載のパケット通信装置においては、前記受信確認応答生成手段で生成される受信確認応答は、そのデータ位置として、前記データ位置更新手段による更新結果としての前記データ位置記憶手段に記憶された元データ上のデータ位置に前記タイムアウトデータ長さを加えたデータ位置が記述されるようにしている。
これによって、受信済みパケットの元データ上のデータ位置を送信装置に対して適正に通知することができる。
(12)前記(9)〜(11)のいずれかに記載のパケット通信装置においては、前記パケット到着最大待ち時間は、平均通信速度を毎秒ABRバイト、前記送信装置と受信装置の平均往復遅延時間をRTT秒、受信確認応答を待たずに連続送信が可能なデータサイズであるウィンドウサイズをWINバイトとしたとき、((WIN/ABR)−RTT)秒またはその近傍に設定されることが好ましい。
これは、送信装置から受信装置へデータが到着し、それに対するACK応答が送信装置で受信されるためには、最低でもRTT秒だけの時間が必要であり、これによって、送信を継続させるためのタイムアウト時間の最大値は((WIN/ABR)−RTT)秒程度であると考えることができるからである。したがって、タイムアウト時間がこの値よりも小さく設定されていれば、連続した送信が可能となるということである。
ただし、ウィンドウサイズに相当するパケットがすべて失われるという最悪の状態に対応できるようにすることを考えると、タイムアウト時間の最大値((WIN/ABR)−RTT)秒またはその近傍に設定することが好ましい。
(13)前記(10)または(12)に記載のパケット通信装置においては、前記タイムアウトデータ長さは、前記タイムアウト時間×ABRに設定される。
これは、タイムアウト時間が前記(12)のように設定されることにより、そのタイムアウト時間によってタイムアウトデータ長さの設定が可能となることを示している。
(14)前記(9)〜(13)のいずれかに記載のパケット通信装置においては、前記タイムアウト条件判定手段におけるタイムアウトの判定の結果、タイムアウトと判定されなかった場合は、タイムアウトと判定されなかった受信パケットに対し、該受信パケットの前記元データにおけるデータ位置と前記データ位置記憶手段に記憶された元データ上のデータ位置とを比較し、前記受信パケットの前記元データにおけるデータ位置が前記データ位置記憶手段に記憶された元データ上のデータ位置に対して、後の位置であると判断された場合には、受信確認応答を生成することが好ましい。
これは、タイムアウト時間に達しない間に送信装置からパケットが受信された場合であり、この場合は、前記(1)のパケット通信装置の発明と同じ処理を行うことを可能としている。これによって、この(14)に記載のパケット通信装置は、(1)の発明に加えて、バースト的な連続したパケットロスが発生した場合であっても送信装置ではUDPを用いたパケット通信と同様の連続的な送信が可能となるという効果を有するものである。
(15)本発明のパケット通信方法は、元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信方法であって、前記受信装置は、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、パケット到着最大待ち時間を含むタイムアウト条件の設定を行うタイムアウト条件設定ステップと、前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定ステップと、このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成ステップとを有することを特徴とする。
この(15)に記載のパケット通信方法においても、前記(9)に記載したパケット通信装置と同様の効果が得られる。
また、この(15)に記載のパケット通信方法においても、前記タイムアウトの判定がなされた場合に、前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置に前記パケット到着最大待ち時間に対応するタイムアウトデータ長さを加えたデータ位置で、前記データ位置記憶ステップによって記憶された前記元データ上のデータ位置を更新することが好ましい。
また、この(15)に記載のパケット通信方法においても、前記受信確認応答は、そのデータ位置として、前記データ位置更新結果としての前記データ位置記憶ステップによって記憶された元データ上のデータ位置に前記タイムアウトデータ長さを加えたデータ位置が記述されることが好ましい。
また、この(15)に記載のパケット通信方法においても、前記タイムアウト時間は、平均通信速度を毎秒ABRバイト、前記送信装置と受信装置の平均往復遅延時間をRTT秒、受信確認応答を待たずに連続送信が可能なデータサイズであるウィンドウサイズをWINバイトとしたとき、((WIN/ABR)−RTT)秒またはその近傍に設定されることが好ましい。
また、この(15)に記載のパケット通信方法においても、前記タイムアウトデータ長さは、前記タイムアウト時間×ABRに設定されることが好ましい。
また、この(15)に記載のパケット通信方法においても、前記タイムアウト条件判定ステップにおけるタイムアウトの判定の結果、タイムアウトと判定されなかった場合は、タイムアウトと判定されなかった受信パケットに対し、該受信パケットの前記元データにおけるデータ位置と前記データ位置記憶ステップによって記憶された元データ上のデータ位置とを比較し、前記受信パケットの前記元データにおけるデータ位置が前記データ位置記憶ステップによって記憶された元データ上のデータ位置に対して、後の位置であると判断された場合には、受信確認応答を生成することが好ましい。
(16)本発明のデータ受信装置は、送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信装置であって、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、パケット到着最大待ち時間を含むタイムアウト条件を設定するタイムアウト条件設定手段と、前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定手段と、このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成手段とを有することを特徴とする。
この(16)に記載のデータ受信装置を用いることによって、(9)に記載したパケット通信装置を構成することができ、(9)のパケット通信装置と同様の効果を得ることができる。なお、(16)に記載のデータ受信装置においても、前記(10)〜(14)に記載したパケット通信装置の特徴と同様の特徴を有することが好ましい。
(17)本発明のデータ受信方法は、送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信方法であって、受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、パケット到着最大待ち時間を含むタイムアウト条件の設定を行うタイムアウト条件設定ステップと、前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定ステップと、このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成ステップとを有することを特徴とする。
この(17)に記載のデータ受信方法を用いることによって(15)に記載したパケット通信方法を構築することができる。なお、(17)に記載のデータ受信方法においても、前記(10)〜(14)に記載したパケット通信装置の特徴と同様の特徴を有することが好ましい。
以下、本発明の実施形態について説明する。なお、この実施形態で説明する内容は、本発明のパケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法の説明を含むものである。
〔実施形態1〕
本発明の実施形態1を図1から図4を用いて詳細に説明する。なお、この実施形態1およびそのあとで説明する実施の形態2においては、元データ(音声や動画像などリアルタイム性のあるデータとする)はその先頭から順にパケット化されて送信されるものとする。
また、本発明においては、送信されるパケット(受信側から見れば受信したパケット)の元データ上のデータ位置の前・後とは、時間軸上における送信順序の前・後を示し、データ位置が前にあるほど送信順序は時間軸上の前方であることを示している。それはまた、受信側においては、期待される到着時間の前・後を示すもので、データ位置が前ほど、本来の到着時間は時間軸上の前方であるべきことを示している。
なお、元データ上のデータ位置の前・後は、送信されるパケット(受信側においては受信したパケット)に含まれるシーケンス番号の大きさに基づいて判断することが可能である。たとえば、受信側において、受信した複数のパケットのそれぞれに含まれるシーケンス番号が大きいほど、該パケットの元データ上のデータ位置は後の位置であるとする。
図1は本発明の実施形態1におけるパケット通信装置の構成を示したものである。なお、本発明は受信側(受信装置という)の処理に特徴を有し、送信側(送信装置という)はTCPによるパケット通信を行う従来の送信装置そのものを特に変更する必要がないので、この図1では受信装置の構成のみが示されている。
この図1に示されるパケット通信装置における受信装置は、送信されてきたパケットを受信するパケット受信手段1、このパケット受信手段1で受信したパケット(受信パケットという)の元データ上のデータ位置を取得するデータ位置取得手段2、このデータ位置取得手段2により取得されたデータ位置とすでに受信された受信済みパケットの元データ上のデータ位置とを比較するデータ位置比較手段3、受信パケットをある条件(これについては後述する)において廃棄するパケット廃棄手段4、受信パケットに含まれるデータ(再生すべき音声や動画像などのデータ)を取得するデータ取得手段5、上述のすでに受信された受信済みパケットの元データ上のデータ位置を記憶するデータ位置記憶手段6、このデータ位置記憶手段6の記憶内容をデータ位置比較手段3の比較結果に基づいて更新するデータ位置更新手段7、このデータ位置更新手段7による更新結果に基づいて受信確認応答としてのACK応答パケットを生成する受信確認応答生成手段8、この受信確認応答生成手段8で生成されたACK応答パケットを送信装置に送信する受信確認応答送信手段9を有した構成となっている。
なお、これら各構成要素の詳細な動作や詳細な機能などについては以下の説明の中で必要に応じて逐次行う。
図2は本発明の実施形態1のパケット通信動作を説明する図であり、従来技術の一例を説明した図13に対応するものである。この図2の動作例においても、個々のパケットに含まれるデータは全て100バイトであるとする。また、ウィンドウサイズは、簡単のためにパケット4つ分のデータに相当する400バイトであるとする。また、この図2においても、図13と同様に、パケットBがパケットロスした状況を例として示す。
以下、上述した図1と図2、さらに実施形態1の処理の流れを示す図3のフローチャートを用いて、この実施形態1の動作を詳細に説明する。
図3は本発明の実施形態1の処理手順を説明するフローチャートである。図3において、通信モードとしては、ここではリアルタイムモードが選択されているものとする(ステップS1)。なお、リアルタイムモードが選択されていない場合は、TCPによるパケット通信の通常の受信処理(ステップS11)を行えばよいので、ステップS2以降で示されるこの実施形態1の処理は行う必要はない。
リアルタイムモードにおいて、まず、送信装置から送信されたパケット(図2におけるパケットA)がパケット受信手段1で受信されたとする(ステップS2)。ここで、受信パケットがデータ受信処理終了を示すパケットであるか否かを判断し(ステップS3)、データ受信処理終了を示すパケットであれば処理を終了するが、そうでなければ、その受信パケットの元データ上のデータ位置(以下では、受信パケットのデータ位置という)をデータ位置取得手段2が取得する(ステップS4)。
これは、たとえば、図10に示した個々のパケットの付加情報の中から、SEQ番号を読み出す処理である。この図2の例においては、パケットAからはSEQ番号として2000が読み出される。
ここで、取得された受信パケットのデータ位置(SEQ番号)と、データ位置記憶手段6に記憶されている受信済みパケットの元データ上のデータ位置(以下、受信済みデータ位置という)のSEQ番号が、データ位置比較手段3により比較される(ステップS5)。ここではデータ位置記憶手段6に記憶されている受信済みデータ位置のSEQ番号が2000以下であると仮定する。
これにより、ステップS5の判断において、受信パケットのデータ位置はその前後関係において、データ位置記憶手段6に記憶されている受信済みデータ位置と同じか、それより後の位置であると判断されるため、受信済みデータ位置の更新とACK応答パケットの生成および送信が行われる(ステップS6〜S8)。
具体的には、まず、データ位置更新手段7によって、データ位置記憶手段6に記憶された受信済みデータ位置が、「受信パケットのデータ位置+データ長さ」に更新される。この例では受信パケットAのデータ位置(この例では2000)とその受信パケットAのデータ長さ(この例では100)の和(この例では2100)に更新される(ステップS6)。そして、それに対応するACK応答パケットaが生成され(ステップS7)、生成されたACK応答パケット(この場合、ACK応答パケットa)が送信装置に送信される(ステップS8)。
このACK応答パケットaは、ステップS6における更新結果である受信パケットAのデータ位置(2000)とその受信パケットのデータ長さ(100)の和である2100のデータ位置、すなわち、「2000+100=2100」のデータ位置を有するACK応答パケットとなる。
そして、受信パケットAに含まれるデータ(たとえば、音声や動画像などのデータ)を上位アプリケーションへ転送する(ステップS9)。
その後、ステップS1に処理が戻り、図2に示すように、送信装置からはパケットBが送信されて来るが、このパケットBはパケットロスしたので、受信装置ではパケットBを受信することができず、それに対するACK応答パケットは生成されない。
さらにその後、パケットCが送信され、このパケットCが受信装置で受信されると(ステップS2)、上述のパケットAに対する処理と同様の処理が行われる。つまり、受信パケットCのデータ位置は2200であり、このデータ位置2200は、データ位置記憶手段6に記憶されているこの時点における受信済みデータ位置の2100よりもデータ位置の前後関係において後であるために、データ位置記憶手段6に記憶されている受信済みパケットのデータ位置は「2200+100」の2300に更新されるとともに、その更新結果に基づいたACK応答パケットcが送信される。
ところで、従来例である図13においては、パケットロスしたパケットBに続いて送信されたパケットCが正常に受信されても、それに対応するACK応答パケットは生成されない。これはパケットBが未着であると言うパケットロスの履歴に基づいた判断がなされるからである。
これに対して、この実施形態1においては、上述のように、過去のパケットロスの履歴に係わらず、受信パケットのデータ位置と受信済みパケットのデータ位置との比較を行い、受信パケットのデータ位置が受信済みデータ位置よりも後であるという条件を満たしたときにACK応答パケットが生成される。そのため、図2に示すように、パケットBが受信できなくても、パケットC、Dに対応するACK応答パケットc、dが生成される。これによって、送信装置においては、図11に示したUDPによるパケット通信のように、パケットロスの有無に係わらず、一定の時間間隔でのパケット送信が可能となる。
また、図2に示すように、パケットEに対応するACK応答パケットeがパケットロスしたとする。この場合においても、パケットFに対応するACK応答パケットfが送信されるので、ACK応答パケットeのロスが通信に影響を与えることはない。
このように、この実施形態1においては、通常のTCPによるパケット通信においてリアルタイム性を阻害しているハンドシェイク、再送による遅延が発生しない。しかも、パケットデータ形式としてはTCPと同等のものを用いるパケット通信であるために、UDPによる通信では通過を禁止しているファイアウォールを通過することができる。
一方、通常のTCPによるパケット通信においてはパケットが宛先に到着することが保証されているが、本発明においてはそれが保証されない。しかし、UDPによるパケット通信を用いたリアルタイム通信を要求するアプリケーションにおいては、パケットロスの影響を低減する方法は予め用意されており、パケットが宛先に到着することが保証されないこと自体は大きな問題とはならない。そのため、受信装置のデータ受信部を本発明が適用可能となるように置換することを除いては、受信装置では従来のアプリケーションをそのまま用いることができる。
また、送信装置においては、受信装置が通常のTCPによるパケット通信を行っているのか、それとも本発明による通信を行っているのかを区別する必要がなく、従来のアプリケーションを修正なしに使用することができる。
勿論、本発明の処理は従来技術と共存することが可能であり、図3のフローチャートの最初の処理(ステップS1の処理)として示したように、リアルタイムモードを選択した場合にのみ、本発明の処理が行われ、それ以外においては従来のTCPによるパケット通信処理(ステップS11)が行われるようにすることができる。
また、図4は本発明の実施形態1においてパケット間に到着順序の逆転が生じた場合の動作を説明する図である。従来のTCPによるパケット通信においては、同一データが重複して受信された場合を除き、到着したデータが廃棄されることはない。
図4に示すように、パケットEが何らかの原因により非常に大きく遅延して受信装置に到達したとする。従来のTCPによるパケット通信においてもウィンドウサイズを非常に大きくした場合には、このようなことが起こりえる。
このように、あるパケットが何らかの原因により、非常に大きく遅延して受信装置に到達するような状況が発生した場合は、図3のフローチャートのステップS5の判断において、受信パケットのデータ位置がデータ位置記憶手段6に記憶されている受信済みデータ位置に同じか後かの条件を満たさなかった場合は、その遅延したパケットを廃棄する。
すなわち、この図4におけるパケットEのデータ位置は、そのSEQ番号によれば、この場合、2400である。一方、データ位置記憶手段6に記憶されているその時点における受信済みデータ位置は、この場合、ACK応答パケットfにより記述されたデータ位置である2600に更新されている。
したがって、パケットEのデータ位置は、データ位置記憶手段6に記憶されている、その時点における受信済みデータ位置よりも前のパケットであると判断される。このように、あるパケットが何らかの原因により、非常に大きく遅延して受信装置に到達することによって、パケット間に到着順序の逆転が生じるような状況が発生した場合は、このパケットEは廃棄されることになる(ステップS10)。このため、このパケットEに対応するACK応答パケットは生成されず、パケットEの大きな遅延が通信に影響を与えることはない。
以上説明したように、この実施形態1では、所定のウィンドウサイズを有した通常のTCPによるパケット通信処理に加え、リアルタイム通信用のパケット通信処理を持っている。すなわち、たとえば、以降がリアルタイム通信であるとの指示がされた場合、その指示の出されたあとパケット通信における受信装置の処理をリアルタイム通信用のパケット受信処理に切り替えることができる。
このリアルタイム通信用のパケット受信処理は、図2のフローチャートにおけるステップS2以降の処理である。このリアルタイム通信用のパケット受信処理を要約すれば、受信パケットのデータ位置が、データ位置記憶手段6に記憶された受信済みデータ位置よりも後である場合、それに対応するACK応答を返す。また、データ位置記憶手段6に記憶された受信済みデータ位置は最新のデータ位置に更新される。
また、パケットロスが検出されたとしても、設定されたウィンドウサイズに達するまでは、受信パケットのデータ位置が、データ位置記憶手段6に記憶された受信済みデータ位置よりも後である場合、パケットロスの検出を無視してACK応答を返す。一方、受信パケットのデータ位置が、データ位置記憶手段6に記憶された受信済みデータ位置よりも前である場合、その受信パケットを廃棄する。このとき、データ位置記憶手段6に記憶された受信済みデータ位置は更新されない。
このように、受信装置はパケットロスに対する制御などを全く行わず、受信した1つ1つのパケットにのみ注目してACK応答パケットを生成してそれを送信装置へ送信する。これは従来の受信処理よりも非常に簡単な処理となる。これにより、少数のパケットロスに対する再送を抑制することになる。また、ACK応答パケットがパケットロスしたとしても、次々に送られるACK応答により再送が抑制されることになる。
これによって、UDPと同等のリアルタイム性を確保することができる。また、パケットデータ形式としてはTCPと同等の形式を用いるためファイアウォールを通過しやすくなる。さらに、受信装置のみの対応であるので、送信装置の変更が不要である。また、送信装置はTCPと同等であるので、たとえば、外部からの悪意のある通信に対して、受信装置がリアルタイム通信を拒否できるという効果もある。つまり、UDPの場合、送信装置は受信装置の状態に係わらずデータを送信し続けることができるのに対し、TCPの場合は、受信装置がACK応答パケットを返さなければ、ウィンドウサイズを超えての送信は行えないからである。
〔実施形態2〕
本発明の実施形態2を図5から図9を用いて詳細に説明する。この実施形態2は、図5に示すような状況に対応できるようにすることを主な目的としている。
図5は連続したパケットロスが生じた場合のTCPによるパケット通信動作を説明する図である。図5において、受信装置においては、パケットAが受信され、それに対応したACK応答パケットaが送信された後、送信装置から送信されたパケットに連続的なパケットロスが発生したとする。
このとき、送信装置はウィンドウサイズ(ここでも4パケット分としている)に達するまではパケットを送信することができるが、ウィンドウサイズに達した時点で送信は停止する。また、受信装置においては、パケットAよりも後に送信された全てのパケットが未着であるために、パケットAに対するACK応答パケットaを送信したあとは、ACK応答パケットが生成されることはない。
このため、この図5に示す例においては、送信装置では図5において太い矢印Tsで示したパケット到着待ち最大時間としてのタイムアウト時間が経過するまでは送信が再開されず、タイムアウト時間が経過した時点で、この場合、パケットB以降の再送が開始される。なお、パケットFはパケットBに対する再送パケットである。
この図5のような連続したパケットロス(たとえば、バースト的なパケットロス)が発生した場合、送信装置では連続的な送信が行えない状況となる。このような状況は前述した実施形態1においても起こり得る。すなわち、実施形態1は、通常のパケットロスに対して対処することを目的としたものであり、通常のパケットロスに対しては十分対応可能となるが、この図5のようなバースト的なパケットロスへの対応は十分ではない。実施形態2はこれを解決するものである。
図6は本発明の実施形態2を説明する受信装置の構成図である。実施形態2では、図6の構成図に示すように、受信装置にタイムアウト条件設定手段11、タイムアウト条件記憶手段12、タイムアウト条件判定手段13を設ける。それ以外の構成は図1と同様であるので、同じ構成要素には同一符号が付されている。なお、これらタイムアウト条件設定手段11、タイムアウト条件記憶手段12、タイムアウト条件判定手段13の動作や機能については以下に示す実施形態2の動作説明の中で説明する。
以下、図6から図9を用いて本発明の実施形態2について詳細に説明する。なお、この実施形態2においても個々のパケットに含まれるデータは全て100バイトであるとする。また、ウィンドウサイズはここでもパケット4つ分のデータに相当する400バイトであるとする。
図7は本発明の実施形態2の処理手順を説明するフローチャートである。図7のフローチャートにおいて、通信モードとしてはリルタイムモードが選択されているものとする(ステップS21)。このリアルタイムモードにおいて、パケットを受信するか、あるいは、タイムアウト判定処理を行う(ステップS22)。
図8はこの実施形態2のパケット通信動作を説明する図であり、この図8の例では、送信装置から送信されたパケットAはパケットロスせずに受信装置に到着するので、まずはこのパケットAを受信する。このパケットAの受信により、タイムアウト条件設定手段11が起動され、タイムアウト条件が設定される(ステップS23)。そして、その設定されたタイムアウト条件がタイムアウト条件記憶手段12に記憶される。
このタイムアウト条件設定手段11で設定されるタイムアウト条件は、パケット到着最大待ち時間としてのタイムアウト時間とこのタイムアウト時間に対応するタイムアウトデータ長さからなり、このタイムアウト時間とタイムアウトデータ長さはタイムアウト条件記憶手段12に記憶される。この図8の例ではタイムアウトデータ長さは200バイトとしている。このタイムアウトデータ長さとタイムアウト時間との間には、「タイムアウトデータ長さ=タイムアウト時間×平均通信速度(平均ビットレート)」の関係が成り立つ。このタイムアウト時間とタイムアウトデータ長さについては後に詳細に説明する。
図8の受信装置に太い矢印Trで示したものが、タイムアウト時間であり、受信装置でタイムアウト処理を行うことが実施形態2の特徴でもある。
なお、受信パケットAに対しては実施形態1の図3におけるステップS3〜S9と同様の処理(この図7ではステップS28〜S34)がなされ、ACK応答パケットaが生成されて送信装置に送信されるとともに、パケットAに含まれるデータ(音声や動画像などのデータ)が上位のアプリケーションに転送される。
その後、図5や図8で示したように連続したパケットロスによりパケットB、C、D、Eがパケットロスしたとする。これによって、受信装置へのこれらのパケットB、C、D、Eの到着はないが、この実施形態2では、受信装置においてタイムアウト条件に基づいてタイムアウトか否かの判定がなされる(ステップS24)。このタイムアウトか否かの判定は、タイムアウト条件判定手段13によって、タイムアウト条件記憶手段12に記憶されているタイムアウト時間が経過したか否かを判定することにより行われる。そして、タイムアウト時間が経過すると、データ位置更新手段7によって、データ位置記憶手段6に記憶されている受信済みデータ位置の更新がなされる。
このデータ位置更新手段7によるデータ位置更新処理は、具体的には、まず、データ位置記憶手段6に記憶されている受信済みデータ位置が、タイムアウト条件に基づいて更新される。すなわち、データ位置記憶手段6に記憶されている受信済みデータ位置が、受信済みデータ位置に、タイムアウト条件記憶手段12に記憶されているタイムアウトデータ長を加えた値(受信済みデータ位置+タイムアウトデータ長さ)に更新される(ステップS25)。この例では、データ位置記憶手段6に記憶されている受信済みデータ位置は、パケットAの受信によって受信済みデータ位置は2100となっているので、この受信済みデータ位置(2100)とタイムアウトデータ長さ(この例では200)の和(2300)に更新される。
そして、その更新結果のデータ位置を有するACK応答パケットxが生成される(ステップS26)。すなわち、データ位置記憶手段6に記憶されている受信済みデータ位置である2100とタイムアウトデータ長さである200の和2300をデータ位置としたACK応答パケットxが生成される。
この生成されたACK応答パケットxは送信装置に送信される(ステップS27)。なお、このACK応答パケットxは、実際に受信したパケットに対するACK応答パケットではなく、パケットの受信がなされないにもかかわらず生成されるもので、いわば模擬的なACK応答パケット(ダミーのACK応答パケット)である。
つまり、模擬的なACK応答パケットは、受信装置側において、到着すべき受信パケットが所定の時間内(タイムアウト時間内)に到着しなかった場合、実際にはパケットの受信確認はしていないにもかかわらず、受信したものとして送信装置側に送信されるものである。一方、送信装置側では、その模擬的なACK応答パケットを通常のACK応答パケットとして受信するので、たとえば、途中でパケットロスしたようなパケットに対する再送処理は行われない。
そして、ステップS22に戻り、パケットを受信するか、あるいは、タイムアウト判定処理が行われるが、この場合、これ以降もデータが受信されないために、タイムアウト判定処理が行われる。
このタイムアウト判定処理として、まず、次のタイムアウト条件を設定し(ステップS23)、設定されたタイムアウト条件がタイムアウト条件記憶手段12に記憶され、続いて、上述同様、タイムアウトか否かの判定がなされる(ステップS24)。
この判定の結果、タイムアウトとなると、データ位置更新手段7によって、データ位置記憶手段6に記憶されている受信済みデータ位置(この例では2300)が、その受信済みデータ位置(この例では2300)とタイムアウトデータ長さ(この例では200)の和(この例では2500)に更新される(ステップS25)。
そして、その更新結果のデータ位置を有するACK応答パケットyが生成される(ステップS26)。すなわち、データ位置記憶手段6に記憶されている受信済みデータ位置である2300とタイムアウトデータ長さである200の和2500をデータ位置としたACK応答パケットyが生成される。この生成されたACK応答パケットyが送信装置に送信される(ステップS27)。なお、このACK応答パケットyもACK応答パケットxと同様、模擬的なACK応答パケットである。
そして、ステップS22に戻る。今度はパケットFを受信したのち、次のタイムアウト条件を設定し、設定されたタイムアウト条件がタイムアウト記憶手段に記憶される(ステップS23)。
その後、上述同様、タイムアウトか否かの判定がなされるが(ステップS24)、この場合、正常にパケットを受信しているので、タイムアウトとはならず、ステップS28〜S34の処理が行われる。このステップS28〜S34の処理は、図3のステップS3〜S9の処理と同じである。
なお、ステップS30において、受信パケットのデータ位置が受信済みパケットのデータ位置記憶手段6の受信済みパケットのデータ位置と同じかあるいは後であるかの条件を満たさない場合、すなわち、パケットが何らかの原因により、非常に大きく遅延して受信装置に到達したような場合は、その遅延したパケットを廃棄する処理(ステップS35)を行うことも図3と同様である。
この図8と先に説明した図5との比較より明らかであるように、この実施形態2においては、バースト的なパケットロスが発生したにもかかわらず、送信装置では連続的なパケット送信が可能となる。これは図16に示したUDPによるパケット通信の場合と同様に、リアルタイム通信に適したものである。
なお、この実施形態2で用いられるタイムアウト時間は、ウィンドウサイズをWIN(バイト)、平均通信速度をABR(バイト/秒)、送信装置と受信装置の通信における平均往復遅延時間をRTT(秒)とした時、((WIN/ABR)−RTT)またはその近傍とすることが望ましい。
図9は本発明の実施形態2で用いられるタイムアウト条件の設定について説明する図である。送信装置においては、図に示したように、WIN/ABRの時間だけはACK応答無しに送信を継続することができる。つまりACK応答パケットがこの時間以内に到着すれば、それにより送信を継続することができる。
また、この図9に示したように、送信装置から受信装置へデータが到着し、それに対するACK応答パケットが送信装置で受信されるためには、最低でもRTT秒だけの時間が必要である。つまり、送信を継続させるためのタイムアウト時間の最大値は((WIN/ABR)−RTT)秒程度であると考えることができる。したがって、タイムアウト時間がこの値よりも小さく設定されていれば、連続した送信が可能となる。
しかし、頻繁にタイムアウトが起こるような状況においては、通信遅延の変動などにより到着の遅れたパケットを廃棄してしまう確率も大きくなる。そのため、タイムアウト時間としては、上述の最大値((WIN/ABR)−RTT)秒とするか、または、その近傍に設定することが望ましい。また、このときのタイムアウトデータ長さとして適切であるのは、タイムアウト時間にABRの値を乗算したものであることは以上の説明より明らかである。
図8を例にとり、これを再度検証してみる。説明を簡単にするために、図8においては、1秒間に1つのパケットが送信されるとする。1つのパケットに含まれるデータはここでは100バイトとしているのでABR(平均通信速度)は100バイト/秒である。また、この場合、WINは400バイトとしている。さらに、図8より明らかであるようにRTTとしては、ほぼ2秒としている。これらの値は現実的な数字ではないが、説明の一般性を損なうものではない。
以上の数字を((WIN/ABR)−RTT)の式に当てはめると、タイムアウト時間は、((400/100)−2)=2秒となる。これは、この例においては2パケットの送信時間に相当し、図8のタイムアウト時間を示す太い矢印はほぼその長さとなっている。また、このタイムアウト時間は、2パケット分の200バイトのタイムアウトデータ長さに相当する。
図8において、タイムアウト時に生成されるACK応答パケットは、このタイムアウトデータ長さを用いている。これらの値を用いることにより、図8に示したように、連続したパケットロスの発生時においても、送信装置では連続した送信を行うことが可能となる。
以上説明したように、実施形態2は前述した実施形態1を基本にして、受信装置にタイムアウト処理を追加したものである。なお、TCPを用いた従来技術においては、タイムアウト処理を行うのは送信装置である。
この実施形態2では、連続的に発生するバースト的なパケットロスに対応するために、受信装置においてタイムアウト処理を行い、設定されたタイムアウト時間内にデータの到着がない場合、実際にパケットの受信がなくても模擬的なACK応答パケットを生成し、送信装置において送信が抑制されることを防止する。
これによって、実施形態1で得られる効果に加えて、バースト的なパケットロスが生じても送信装置の送信の連続性を確保することができる。
なお、本発明は上述の実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲で種々変形実施可能となるものである。たとえば、実施形態2において、パケットAを受信した場合のタイムアウト時間の設定は図8においては、パケットAを受信した時点が基点となっているが、これは、パケットAに対するACK応答パケットaを送信した時点を基点とすることもできる。
また、本発明は以上説明した本発明を実現するための処理手順が含まれる処理プログラムを作成し、その処理プログラムをフロッピィディスク、光ディスク、ハードディスクなどの記録媒体に記録させておくこともでき、本発明は、その処理プログラムの記録された記録媒体をも含むものである。また、ネットワークから当該処理プログラムを得るようにしてもよい。
本発明の実施形態1を説明する受信装置の構成図である。 本発明の実施形態1のパケット通信動作を説明する図である。 本発明の実施形態1の処理手順を説明するフローチャートである。 本発明の実施形態1においてパケット間に到着順序の逆転が生じた場合の動作を説明する図である。 連続したパケットロスが生じた場合のTCPによるパケット通信動作を説明する図である。 本発明の実施形態2を説明する受信装置の構成図である。 本発明の実施形態2の処理手順を説明するフローチャートである。 本発明の実施形態2のパケット通信動作を説明する図である。 本発明の実施形態2で用いられるタイムアウト条件の設定について説明する図である。 TCPによるパケットの付加情報を模式的に示す図である。 非特許文献1に関する単純化されたTCPによるパケット通信動作の一例を説明するフローチャートである。 非特許文献1に関する所定のウィンドウサイズの設定がなされた場合のTCPによるパケット通信動作の一例を説明する図である。 図12においてパケットロスが生じた場合のパケット通信動作を説明する図である。 非特許文献2に関するTCPによるパケット通信動作の一例を説明する図である。 非特許文献3に関するUDPにおいて用いられるパケットの付加情報を模式的に示した図である。 非特許文献3に関するUDPによるパケット通信動作の一例を説明する図である。
符号の説明
1 パケット受信手段、2 データ位置取得手段、3 データ位置比較手段、4 パケット廃棄手段、5 データ取得手段、6 データ位置記憶手段、7 データ位置更新手段、8 受信確認応答生成手段、11 タイムアウト条件設定手段、12 タイムアウト条件記憶手段、13 タイムアウト条件判定手段

Claims (17)

  1. 元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信装置であって、前記受信装置は、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、
    該データ位置記憶手段に記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較手段と、
    該データ位置比較手段により前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成手段と、
    を有することを特徴とするパケット通信装置。
  2. 前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新するデータ位置更新手段を設け、このデータ位置更新手段は、前記データ位置比較手段により前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であると判断された場合に、前記受信パケットの前記元データ上のデータ位置に該受信パケットに含まれるデータのデータ長さを加えたデータ位置で、前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新することを特徴とする請求項1記載のパケット通信装置。
  3. 前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であるとの判断は、前記受信パケットに含まれるシーケンス番号と前記受信済みパケットに含まれるシーケンス番号とに基づいて行い、前記受信パケットに含まれるシーケンス番号が前記受信済みパケットに含まれるシーケンス番号シーケンス番号より大きな値である場合に、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して後の位置であるとの判断を行うことを特徴とする請求項1または2記載のパケット通信装置。
  4. 前記受信確認応答生成手段で生成される受信確認応答は、そのデータ位置として、前記データ位置更新手段による更新結果としての前記受信パケットの前記元データ上のデータ位置に、該受信パケットに含まれるデータのデータ長さを加えたデータ位置が記述されることを特徴とする請求項2または3記載のパケット通信装置。
  5. 前記データ位置比較手段において、前記受信パケットの前記元データ上のデータ位置と前記データ位置記憶手段に記憶された前記元データ上のデータ位置とを比較した結果、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置よりも前の位置である場合は、該受信パケットを廃棄させることを特徴とする請求項1〜4のいずれかに記載のパケット通信装置。
  6. 元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信方法であって、前記受信装置は、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、
    該データ位置記憶ステップにより記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較ステップと、
    該データ位置比較ステップによって、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップにより記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成ステップと、
    を有することを特徴とするパケット通信方法。
  7. 送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信装置であって、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、
    該データ位置記憶手段に記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較手段と、
    該データ位置比較手段により前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶手段に記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成手段と、
    を有することを特徴とするデータ受信装置。
  8. 送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信方法であって、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、
    該データ位置記憶ステップにより記憶された前記元データ上のデータ位置と前記受信パケットの前記元データ上のデータ位置とを比較するデータ位置比較ステップと、
    該データ位置比較ステップによって、前記受信パケットの前記元データ上のデータ位置が前記データ位置記憶ステップにより記憶された前記元データ上のデータ位置に対して、後の位置であると判断された場合に、前記受信確認応答を生成する受信確認応答生成ステップと、
    を有することを特徴とするデータ受信方法。
  9. 元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信装置であって、前記受信装置は、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、
    パケット到着最大待ち時間を含むタイムアウト条件を設定するタイムアウト条件設定手段と、
    前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定手段と、
    このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成手段と、
    を有することを特徴とするパケット通信装置。
  10. 前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新するデータ位置更新手段を設け、このデータ位置更新手段は、前記タイムアウト条件判定手段によりタイムアウトの判定がなされた場合に、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に前記パケット到着最大待ち時間に対応するタイムアウトデータ長さを加えたデータ位置で、前記データ位置記憶手段に記憶された前記元データ上のデータ位置を更新することを特徴とする請求項9記載のパケット通信装置。
  11. 前記受信確認応答生成手段で生成される受信確認応答は、そのデータ位置として、前記データ位置更新手段による更新結果としての前記データ位置記憶手段に記憶された元データ上のデータ位置に前記タイムアウトデータ長さを加えたデータ位置が記述されることを特徴とする請求項10記載のパケット通信装置。
  12. 前記パケット到着最大待ち時間は、平均通信速度を毎秒ABRバイト、前記送信装置と受信装置の平均往復遅延時間をRTT秒、受信確認応答を待たずに連続送信が可能なデータサイズであるウィンドウサイズをWINバイトとしたとき、((WIN/ABR)−RTT)秒またはその近傍に設定されることを特徴とする請求項9〜11のいずれかに記載のパケット通信装置。
  13. 前記タイムアウトデータ長さは、前記タイムアウト時間×ABRに設定されることを特徴とする請求項10または11に記載のパケット通信装置。
  14. 前記タイムアウト条件判定手段におけるタイムアウトの判定の結果、タイムアウトと判定されなかった場合は、
    タイムアウトと判定されなかった受信パケットに対し、該受信パケットの前記元データにおけるデータ位置と前記データ位置記憶手段に記憶された元データ上のデータ位置とを比較し、前記受信パケットの前記元データにおけるデータ位置が前記データ位置記憶手段に記憶された元データ上のデータ位置に対して、後の位置であると判断された場合には、受信確認応答を生成することを特徴とする請求項9〜13のいずれかに記載のパケット通信装置。
  15. 元データを分割してパケットとして送信装置から受信装置に逐次送信し、送信されてきたパケットを受信した受信装置からは前記送信装置に対し受信パケットに対する受信確認応答を送信するパケット通信方法であって、前記受信装置は、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、
    パケット到着最大待ち時間を含むタイムアウト条件の設定を行うタイムアウト条件設定ステップと、
    前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定ステップと、
    このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成ステップと、
    を有することを特徴とするパケット通信方法。
  16. 送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信装置であって、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶手段と、
    パケット到着最大待ち時間を含むタイムアウト条件を設定するタイムアウト条件設定手段と、
    前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定手段と、
    このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成手段と、
    を有することを特徴とするデータ受信装置。
  17. 送信装置側から送信されてきたパケットを受信パケットとして受信し、前記送信装置側に対し該受信パケットに対する受信確認応答を送信するデータ受信方法であって、
    受信された受信済みパケットの前記元データ上のデータ位置を記憶するデータ位置記憶ステップと、
    パケット到着最大待ち時間を含むタイムアウト条件の設定を行うタイムアウト条件設定ステップと、
    前記タイムアウト条件に基づいてタイムアウトか否かを判定するタイムアウト条件判定ステップと、
    このタイムアウト条件判定手段によりタイムアウトと判定された場合には、前記データ位置記憶手段に記憶された前記元データ上のデータ位置に基づいて模擬的な受信確認応答を生成する受信確認応答生成ステップと、
    を有することを特徴とするデータ受信方法。
JP2004230274A 2003-10-16 2004-08-06 パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法 Active JP4186893B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004230274A JP4186893B2 (ja) 2003-10-16 2004-08-06 パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法
US10/965,003 US7586952B2 (en) 2003-10-16 2004-10-14 Packet transmission system, packet transmission method, data reception system, and data reception method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003356538 2003-10-16
JP2004230274A JP4186893B2 (ja) 2003-10-16 2004-08-06 パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法

Publications (2)

Publication Number Publication Date
JP2005143076A true JP2005143076A (ja) 2005-06-02
JP4186893B2 JP4186893B2 (ja) 2008-11-26

Family

ID=34593911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004230274A Active JP4186893B2 (ja) 2003-10-16 2004-08-06 パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法

Country Status (2)

Country Link
US (1) US7586952B2 (ja)
JP (1) JP4186893B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010187292A (ja) * 2009-02-13 2010-08-26 Mitsubishi Electric Corp 送信装置および送信制御方法
US10715282B2 (en) 2016-01-18 2020-07-14 Huawei Technologies Co., Ltd. Method and related device for improving TCP transmission efficiency using delayed ACK

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006148614A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd コンテンツ受信装置、コンテンツ送信装置、コンテンツ受信方法、コンテンツ送信方法及びネットワークシステム
US7706288B2 (en) * 2005-09-27 2010-04-27 Qualcomm Incorporated RF channel switching in broadcast OFDM systems
US20080020751A1 (en) * 2005-09-27 2008-01-24 Qualcomm Incorporated Channel monitoring methods in a wireless broadcast system
US9554319B2 (en) * 2005-09-27 2017-01-24 Qualcomm Incorporated Channel handoff methods in wireless broadcast systems
US8310920B2 (en) * 2007-03-02 2012-11-13 Saratoga Data Systems, Inc. Method and system for accelerating transmission of data between network devices
US9270477B2 (en) * 2008-05-28 2016-02-23 Airmagnet, Inc. Method and apparatus of measuring and reporting data gap from within an analysis tool
US20090296592A1 (en) * 2008-05-28 2009-12-03 Fluke Corporation Method and apparatus of measuring and reporting data gap from within an analysis tool
CN102143137A (zh) * 2010-09-10 2011-08-03 华为技术有限公司 媒体流发送及接收方法、装置和系统
JP6636882B2 (ja) * 2016-09-02 2020-01-29 ファナック株式会社 数値制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6700871B1 (en) * 1999-05-04 2004-03-02 3Com Corporation Increased throughput across data network interface by dropping redundant packets
US6735647B2 (en) * 2002-09-05 2004-05-11 International Business Machines Corporation Data reordering mechanism for high performance networks
US7349400B2 (en) * 2003-04-29 2008-03-25 Narus, Inc. Method and system for transport protocol reconstruction and timer synchronization for non-intrusive capturing and analysis of packets on a high-speed distributed network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010187292A (ja) * 2009-02-13 2010-08-26 Mitsubishi Electric Corp 送信装置および送信制御方法
US10715282B2 (en) 2016-01-18 2020-07-14 Huawei Technologies Co., Ltd. Method and related device for improving TCP transmission efficiency using delayed ACK

Also Published As

Publication number Publication date
US20050111456A1 (en) 2005-05-26
JP4186893B2 (ja) 2008-11-26
US7586952B2 (en) 2009-09-08

Similar Documents

Publication Publication Date Title
US11641387B2 (en) Timely delivery of real-time media problem when TCP must be used
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
JP5694993B2 (ja) 通信装置及び通信方法
JP2002524915A (ja) 低待ち時間通信用のシステムおよび方法
JP2004297742A (ja) 通信装置、通信制御方法及びプログラム
WO2014037760A1 (zh) 增加数据流传输的方法和系统
JPWO2005027456A1 (ja) 通信システム、通信装置、およびデータの再送制御方法
JP4186893B2 (ja) パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法
WO2007052764A1 (ja) セッション中継装置およびセッション中継方法
CN114024914A (zh) 视频数据传输方法、装置及电子设备
WO2004110013A1 (ja) パケット通信装置
JP2005520374A (ja) Tcp/ipに対する変更
Thubert IPv6 over low-power wireless personal area network (6LoWPAN) selective fragment recovery
JP4624062B2 (ja) 通信システム
US20120233344A1 (en) Communication apparatus
JP2007235976A (ja) データ通信装置
US20030137948A1 (en) Retransmission control in wireless packet data networks
JP2007013823A (ja) 輻輳制御方法およびその通信端末
JP2007006068A (ja) 高速ネットワークにおけるパケットの同期送受信方法、送受信システム、送受信装置および同期送受信プログラム
JP2006217235A (ja) 輻輳制御方法及び送信端末
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
JP2008199431A (ja) 通信装置
JP2008099139A (ja) 通信方法
JP3784801B2 (ja) 伝送制御方法、通信装置、通信システム及びプログラム
KR20110078564A (ko) 멀티-호밍 기능을 제공하는 통신 프로토콜에 있어서의 패킷 왕복 시간 업데이트 방법 및 멀티-호밍 기능을 제공하는 통신 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060714

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080728

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4