JPWO2012066824A1 - 通信装置および通信システム - Google Patents
通信装置および通信システム Download PDFInfo
- Publication number
- JPWO2012066824A1 JPWO2012066824A1 JP2012544129A JP2012544129A JPWO2012066824A1 JP WO2012066824 A1 JPWO2012066824 A1 JP WO2012066824A1 JP 2012544129 A JP2012544129 A JP 2012544129A JP 2012544129 A JP2012544129 A JP 2012544129A JP WO2012066824 A1 JPWO2012066824 A1 JP WO2012066824A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- communication
- packet
- transmission
- band
- 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
Links
- 238000004891 communication Methods 0.000 title claims description 498
- 230000005540 biological transmission Effects 0.000 claims abstract description 408
- 239000000872 buffer Substances 0.000 claims description 133
- 230000004044 response Effects 0.000 claims description 57
- 238000012790 confirmation Methods 0.000 claims description 39
- 230000002829 reductive effect Effects 0.000 claims description 15
- 230000003247 decreasing effect Effects 0.000 claims description 13
- 230000000670 limiting effect Effects 0.000 claims description 2
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 221
- 238000000034 method Methods 0.000 description 81
- 238000010586 diagram Methods 0.000 description 63
- 230000008569 process Effects 0.000 description 46
- 238000012545 processing Methods 0.000 description 40
- 230000008859 change Effects 0.000 description 29
- 230000036961 partial effect Effects 0.000 description 26
- 102100027674 CTD small phosphatase-like protein Human genes 0.000 description 14
- 101150029784 CTDSPL gene Proteins 0.000 description 14
- 101100187065 Schizosaccharomyces pombe (strain 972 / ATCC 24843) nif1 gene Proteins 0.000 description 14
- 230000007423 decrease Effects 0.000 description 10
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150082208 DIABLO gene Proteins 0.000 description 1
- 102100033189 Diablo IAP-binding mitochondrial protein Human genes 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 235000013311 vegetables Nutrition 0.000 description 1
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/1829—Arrangements specially adapted for the receiver end
- H04L1/1854—Scheduling and prioritising arrangements
-
- 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
-
- 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/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/16—Flow control; Congestion control in connection oriented networks, e.g. frame relay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/40—Flow control; Congestion control using split connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
ある拠点にある端末が、別の海外の拠点にある端末と通信する場合は、自拠点LAN(Local Area Network)と国内WANを接続する回線と、国内WANと海外WANを接続する回線と、海外WANと別拠点LANを接続する回線と、を経由して通信が行われる。これらの回線は、契約帯域によって、使用可能な帯域幅が制限されている。
さらに、送信端末は、ウィンドウサイズ(受信したことを受信端末から通知されなくても送信可能なデータサイズ)と呼ばれるパラメータを管理しており、RTT(Round Trip Time)や廃棄検出の有無に応じて、ウィンドウサイズを変化させる。
TCP通信と同様の送信帯域制御技術として、非特許文献1に記載のATM(Asynchronous Transfer Mode)のABR(Available Bit Rate)や、特許文献1に記載の技術を用いた通信がある。本通信では、受信端末から送信端末へ、受信帯域や輻輳有無の情報がフィードバック通知され、送信端末は、フィードバック通知された情報に基づいて、送信帯域を制御する。
更に、TCP通信と同様の送信帯域制御技術として、特許文献3に記載の技術がある。本技術では、帯域制限を行う通信装置における、入力前の帯域と、出力後の帯域を比較し、帯域制限によるパケット廃棄に係るパケット廃棄帯域が一定値を超過したときに、帯域制限値を変化させる。
本発明の別の態様によると、
2つの端末間に位置し、端末間のTCP通信を中継する第一の通信装置と第二の通信装置を備え、
前記第二の通信装置が、通信中に受信できなかったデータの箇所を検出すると、未受信箇所の識別情報を確認応答パケットに含めて、前記第一の通信装置に対してフィードバック通知し、
前記第一の通信装置は、フィードバック通知された確認応答パケットに含まれる未受信箇所のデータを含む再送パケットを前記第二の通信装置に送信し、
前記第二の通信装置は、前記未受信箇所のデータを含む再送パケットを受信するまで、前記未受信箇所の識別情報を含む確認応答パケットを、前記第一の通信装置に対して、定期的にフィードバック通知する通信システムが提供される。
また、本発明の別の態様によると、
第一のデータ通信と第二のデータ通信の2つのデータ通信を中継する通信装置において、
第二のデータ通信においてデータ付パケットを受信した場合は、少なくともひとつ前に受信したデータ付パケットに対する確認応答、又は、最後尾データより手前のデータに対する確認応答を返信し、
第一のデータ通信において確認応答待ちの送信中データが有り、かつ、第二のデータ通信において整列待ちの受信中データが無い状態で第一のデータ通信において確認応答を受信して確認応答待ちの送信中データが無くなったタイミングで、第二のデータ通信において受信した最後尾データに対する確認応答を返信する通信装置が提供される。
第一のTCP通信と第二のTCP通信の2つのTCP通信を中継する通信装置において、
第二のTCP通信においてデータ付パケットを受信した場合は、少なくともひとつ前に受信したデータ付パケットに対する確認応答、又は、最後尾データより手前のデータに対する確認応答を返信し、
第一のTCP通信において確認応答待ちの送信中データが有り、かつ、第二のTCP通信において整列待ちの受信中データが無い状態で第一のTCP通信において確認応答を受信して確認応答待ちの送信中データが無くなったタイミングで、第二のTCP通信において受信した最後尾データに対する確認応答を返信する通信装置が提供される。
この通信装置によると、通信装置が故障しても、送信端末では送信が完了している一方で、受信端末では受信が完了していない、というケースの発生を防ぐ効果がある。
2つの端末間に位置し、端末間のTCP通信を3つのTCP通信に分割して中継する第一の通信装置と第二の通信装置を備え、
前記第一の通信装置がデータ送信端末との第一のTCP通信を実施し、前記第二の通信装置がデータ受信端末との第二のTCP通信を実施し、前記第一の通信装置と前記第二の通信装置の間で第三のTCP通信を実施し、各TCP通信が送信データの再送と受信データの整列を独立して実施する通信システムであって、
前記第二の通信装置が、通信中に受信できなかったデータの箇所を検出すると、未受信箇所の識別情報を確認応答パケットに含めて、前記第一の通信装置に対してフィードバック通知し、
前記第一の通信装置は、フィードバック通知された確認応答パケットに含まれる未受信箇所のデータを含む再送パケットを前記第二の通信装置に送信し、
前記第二の通信装置は、前記未受信箇所のデータを含む再送パケットを受信するまで、前記未受信箇所の識別情報を含む確認応答パケットを、前記第一の通信装置に対して、定期的にフィードバック通知する前記通信システムが提供される。
この通信システムによると、RTT毎の送信量を定めたウィンドウサイズ2605を制御することにより、帯域制御を行うTCP通信しかできない端末間でも、RTTや廃棄率に依存しない通信を実現することができる。
まず、第一のTCP通信と第二のTCP通信の2つのTCP通信を中継する通信装置が、各TCP通信に対して送信バッファと受信バッファを持ち、(1)第一のTCP通信の送信バッファ内にACK待ちの送信中データが無く、尚且つ、第二のTCP通信の受信バッファ内に整列待ちの受信中データも無い状態で、第二のTCP通信においてデータパケットを受信した場合はACK返信を行わず、(2)第一のTCP通信の送信バッファ内にACK待ちの送信中データが有り、或いは、第二のTCP通信の受信バッファ内に整列待ちの受信中データが有る状態で、第二のTCP通信においてデータパケットを受信した場合は少なくとも1つ前に受信したデータパケットに対するACKを返信し、(3)第一のTCP通信の送信バッファ内にACK待ちの送信中データが有り、尚且つ、第二のTCP通信の受信バッファ内に整列待ちの受信中データが無い状態で、第一のTCP通信においてACKを受信してACK待ちの送信中データが無くなった状態になったタイミングで、第二のTCP通信において受信したデータパケットのうち、最後尾に位置するデータパケットに対するACKを返信するための手段を備える態様とした。この態様により、受信端末が、送信端末から送信した末尾データを受信するまで、送信端末は末尾データに対するACKを受け取ることができないため、通信装置が故障しても、送信端末では送信が完了している一方で、受信端末では受信が完了していない、というケースの発生を防ぐ効果がある。本態様の詳細は、実施例1を中心に後述する。
以下、本発明の態様を詳細に説明するべく、通信の中継を行う通信装置の構成や処理シーケンスや、当該装置がネットワークを介して接続されることにより構成されるシステム等の詳細について実施例を用いて述べる。
図1には、通信装置#1(910)と通信装置#2(920)をネットワーク0(900)とネットワーク1、2(901、902)の境界に設置して、ネットワーク1(901)に接続している端末(903・904)と、ネットワーク2(902)に接続している端末(905・906)の間で、3つのTCP通信を経由して通信が行われる様子を示す。通信装置#1(910)は、ネットワークインターフェースNIF0/1(915/916)と、演算部911を備える。演算部911は、TCP通信を行うTCPモジュール913/914と、データの乗せ換えを行うProxyモジュール912を実行する。なお、本実施例では、通信装置(910、920)はひとつでもよい。また、通信装置(910、920)は、例えば、プロキシ装置でもよい。
以下、上述の状態の不一致を防ぐための構成・処理を詳細に説明する。
図3には、ハードウェアで実装した、本実施例の通信装置910のブロック図を表す。通信装置920も同様の構成である。通信装置910は、外部ネットワークとのパケットの送受信を行うネットワークインターフェースNIF0/1(1011/1012)と、TCP以外のUDPパケット等を素通しさせるためのフィルタ(1009/1010)と、TCP通信のための制御を行うNIF0/1向けTCPモジュール1007/1008と、NIF0向けTCPモジュール1007の管理するN個(Nは1以上の整数)の送信バッファ1013およびN個の受信バッファ1015と、NIF1向けTCPモジュール1008の管理するN個の送信バッファ1016およびN個の受信バッファ1014と、送受信バッファ間でデータの乗せ換えを行うプロキシモジュール1000と、N個のエントリを備えた状態テーブル1001を有する。ソフトウェアで実装する際は、状態テーブル1001と送受信バッファ(1013〜1016)を記憶部に持ち、フィルタ(1009/1010)とTCPモジュール1007/1008とプロキシモジュール1000の部分をモジュールとして演算部(図1の演算部912に対応)に持たせる。
標準TCPを実現するTCPブロック1007は、受信処理を行うRX部(受信処理部)3102と、送信処理を行うTX部(送信処理部)3101を有する。RX部3102は、受信パケットをTCP制御パケットとデータ付パケットとACK/部分的確認応答用SACKパケットに分離するパケット解析部3108と、受信したTCP制御パケットに基づいて状態テーブル1001内のTCP状態1003を変更するTCP制御部3107と、受信したデータパケットの送信シーケンス番号SEQ2912と受信シーケンス番号ACK2913とに基づいて、状態テーブル1001内のバッファ管理ポインタ1005を変更してACKパケットや部分的確認応答SACK付ACKパケットを返信する受信履歴更新部3106、とを有する。受信履歴更新部3106のバッファ管理ポインタ1005の変更については、後述する。TX部3101は、状態テーブル1001内のTCP状態1004を用いてTCP制御パケットを送信するTCP制御部3103と、受信したACKパケットに基づいて状態テーブル1001内のバッファ管理ポインタ1005を変更し、受信した部分的確認応答SACK付ACKパケットを用いて送信バッファ1015からデータを読み出してパケットを再送するTXパケット再送部3104と、送信バッファ1015からデータを読み出してパケットを送信して、状態テーブル1001内のバッファ管理ポインタ1005を変更する送信履歴更新部3105と、ACK/SACKパケット、TCP制御パケット、再送パケット、データパケットをFIFOで集約して出力するマルチプレクサ(集約部)3109およびバッファ3110〜3113とを有する。なお、実施例1、2において、TCP1007/1008は同様の構成としてもよい。
図5には、送受信バッファ管理用のポインタの説明図を表す。本図では、データを左から右に書き込んでいき、左から右に読み出していくものとする。
受信バッファ1013/1014は、受信したデータの先頭(受信右端、データを書き込む先頭位置)を示すポインタright_recv1103と、整列済みデータと未整列データの境界を示すポインタleft_recv1102と、プロキシモジュール1000による読出し済データと未読出しデータの境界を示すleft_rbuf1101と、受信できずに歯抜けになっているデータ箇所(ロスセグメント)の左端と右端を表すポインタleft/right_loss1107−1〜SEG_SIZE(最大SEG_SIZE個)を管理する。
図8には、本実施例における通信装置(100、101)のACK返信方法を記載したシーケンス図を表す。
図41と同様に、送信端末103から受信端末104に向けて4380バイトから構成されるファイルデータを1460バイトのデータを含むパケット3個(110、113、116)に分割して送信する例を示している。送信端末103からの1つ目のパケット(110−112)には、送信シーケンス番号として0、パケット長として1460が記載される(0番目のバイトから1459番目のバイトが送信される)。2つ目のパケット(113−115)には、送信シーケンス番号として先頭データを表す1460、パケット長として1460が記載される(1460番目のバイトから2919番目のバイトが送信される)。同様に、3つ目のパケット(116−118)には、送信シーケンス番号として先頭データを表す2920、パケット長として1460が記載される(2920番目のバイトから4379番目のバイトが送信される)。 通信装置#1(100)・通信装置#2(101)(図1の通信装置910、920に相当)は、先頭パケット(110・111)を受け取ってもACKを返信しない。通信装置#1(100)・通信装置#2(101)は、2つ目のパケット(113・114)を受け取ってから、1つ目のパケットに対するACKパケット(121、120)を返信する。更に、3つ目のパケット(116・117)を受け取ると、2つ目のパケットに対するACKパケット(122、124)を返信する。送信端末103は、3つ目のパケット(116)を送信しても、2つ目のパケットに対するACKパケット(122)しか受信しないので、送信が完了していないと判断したままである(128)。通信装置#2(101)から3つ目のパケット(118)が受信端末104に到達して初めて、3つ目のパケットに対する末尾のACKパケット(125)が受信端末104から返信され、受信端末130は受信が完了したと判断する(130)。通信装置#2(101)・通信装置#1(100)は、末尾のACKパケット(125・126)を受け取ると、3つ目のパケットに対する末尾のACKパケット(126・127)を送信側へ送信する。送信端末103は、末尾のACKパケット127を受け取り、送信が完了したと判断する(129)。受信端末130で受信が完了したと判断されない限り(130)、末尾のACKパケット(125、126、127)が送信端末103に返信されず、送信端末129が送信完了と判断しないため、受信端末104が編集データを受け取れないまま、送信端末のアプリケーションが終了してしまい、編集データが消滅してしまう、といった事態を防ぐことができる。なお、上述のように、ひとつ前に受信したデータパケットに対するACKを送信する以外にも、2つ前、3つ前など少なくともひとつ前のデータパケットに対するACKを送信してもよい。また、先頭パケット110に対しては、ACKを送信しない以外にも、先頭パケットの最後尾データに対応する受信シーケンス番号を含まないような(例えば、0〜1459)ACKを返送し、先頭パケットの最後尾データに対応する受信シーケンス番号を含むACKは返送しないようにしてもよい。
図9には、通信装置間の回線帯域が狭いなど、受信端末104からの末尾のACKパケット(125)の返信が遅れた場合のシーケンス図を示す。この場合、送信端末103は、3つ目のパケット(116)が途中で廃棄したと判断して、パケットの再送を行う(500)。通信装置#1(100)は、再送パケット(501)を受信すると、2つ目のパケット(113)に対するACKパケット(502)を重複して返信する。すると、送信端末103は、再びパケット廃棄が生じたと判断して、再度送信を行う(503)。通信装置#1(100)は、再送パケット(504)を受信すると、2つ目のパケットに対するACKパケット(505)を重複して返信する。すると、送信端末103は、再三パケット廃棄が生じたと判断して、再度送信を行う(506)。通信装置#1(100)は、再送パケット(507)を受信すると、2つ目のパケットに対するACKパケット(508)を重複して返信する。
このように、何度も再送をした後に、3つ目のパケット(116)に対するACKパケット(127)を受け取ると、送信端末(103)がTCPフラグ番号をRST(reset)にセットしたパケット(509)を送信して、受信側では、強制的にTCPコネクションを切断しなければならなくなる。
図12には、通信装置#1(100)と同一のACK返信を行う通信装置#1(600)が、アプリケーション内部でウィンドウサイズを持っているCIFS(Common Internet File System)等のアプリケーションを高速化させるために、次に来るコマンドを予測して送信する機能を持っている場合に、本実施例の処理により不具合が発生することを説明するためのシーケンス図を示す。クライアント(クライアント装置)603が、サーバ604に向けて、ファイルの0バイト目から0xf000(61440)バイト読み出すreadコマンドを記載したパケット610を送信したとする。通信装置#1(600)は、パケット610を中継してパケット611としてサーバ604に向けて送信すると共に、次にやって来るパケットには、ファイルの0xf000バイト目から0xf000(61440)バイト読み出すreadコマンドが記載されていると予測して、予め予測したreadコマンドを記載したパケット613をサーバに向けて送信する。クライアントの発行したコマンドを記載したパケット611と、予測したコマンドを記載したパケット613は、通信装置#2(601)経由で、パケット(612、614)としてサーバ604に届けられる。サーバ604は、コマンド記載パケットに対するACKパケット615を返信すると共に、コマンド記載の、ファイルの0バイト目から0xf000(61440)バイトのデータ(618)と、ファイルの0xf000バイト目から0xf000(61440)バイトのデータ(621)をクライアント(603)に向けて送信する。これらのデータ(618、621)は、通信装置#2(701)経由で通信装置#1(700)へデータ(619、622)として送られる。通信装置#1(700)は、クライアントの要求してきたデータ(619)を受信端末603へ送信する(620)一方で、後続データ(622)については、受信端末603への送信と末尾データに対するACKの受信が完了していないため、受け取ったデータサイズ0x1e000よりも少ないサイズを受信シーケンス番号に記載したACKパケット624をサーバ側に返信する。クライアント603は、コマンドで要求したデータ(623)を受け取ると、受信が完了したと判断して(629)、再びコマンドを発行できるようになる。ここで、クライアント603が、通信装置#1(600)が予測したコマンド613とは異なるコマンド(例えば、trans、create)を記載したパケット626を送信したとする。この場合、サーバ604は、送信したデータサイズよりも小さな受信シーケンス番号を持つACKパケット(625)が来て、送信が未完了だと判断している状態で(630)、次のコマンドを記載したパケット628を受信することになり、前のコマンドに対する処理が終わっていないため、次のコマンドに対する処理が行われず、アプリケーションが停止してしまう。
図8、図10、図11、図13に示す通信装置の動作シーケンスは、図1に示すシステム、図3、図4のブロックを持つ装置によって実現される。
上記のシーケンスにより、通信装置内にACK待ちの送信中データも整列待ちの受信中データも無い状態でデータパケットを受信した場合はACK返信を行わない手段が実現される。
上記のシーケンスにより、通信装置内にACK待ちの送信中データ、或いは整列待ちの受信中データが有る状態でデータパケットを受信した場合は1つ前に受信したデータパケットに対するACKを返信する手段が実現される。
上記のシーケンスにより、受信バッファに整列待ちの受信中データが無い状態で、受信端末側からACKを受信して、送信バッファに確認応答待ちの送信中データが無くなったタイミングで通常のACKを返信する手段が実現される。
処理がスタートすると(ステップ3801)、受信履歴更新部3106は、ペイロード長が0より大きなパケットを受信するまで待機する(ステップ3802)。パケットを受信すると、受信履歴更新部3106は、NIF0の受信バッファの管理ポインタ1005を変更し(ステップ3803)、NIF0の受信バッファ1013へパケットデータを記録する(ステップ3804)。更に、受信履歴更新部3106は、NIF1の送信バッファ1016に送信中データが残っている、またはNIF0の受信バッファに残っている受信中データのサイズが受信パケットのペイロードサイズよりも大きいか否かを判定する(ステップ3805)。受信履歴更新部3106は、否と判定された場合は、ステップ3802に戻る。受信履歴更新部3106は、真と判定された場合は、受信済みデータの1パケット前、または1バイト前に対するACKを返信する(ステップ3806)。ステップ3805により、図14に示した、最初に到着したデータに対してACKを返信しないシーケンス処理が実現される。また、ステップ3805に続くステップ3806により、図15に示した、受信済みデータの1パケット前、または1バイト前に対するACK返信のシーケンス処理が実現される。
処理がスタートすると(ステップ3901)、TXパケット再送部3104は、ペイロード長が0のACKパケットを受信するまで待機する(ステップ3902)。ACKパケットを受信すると、TXパケット再送部3104は、NIF0の送信バッファと、NIF1の受信バッファにデータが有るか否かを判定する(ステップ3903)。無い場合は、ステップ3902へ戻る。有る場合は、TXパケット再送部3104は、受信したACKパケット記載の受信シーケンス番号ACK2913やleft_edge_1〜4(2919、2921、2923、2925)やright_edge_1〜4(2920、2922、2924、2926)に基づいて、NIF0の送信バッファの管理ポインタを変更する(ステップ3905)。ステップ3905では、受信したACKパケットに記載されている受信シーケンス番号ACK2913が、left_send1104よりも大きい場合、left_send1104は、受信シーケンス番号ACK2913の値に変更される。例えば、末尾ACKであれば、送信バッファ中にACK待ちのデータがなくなる。更に、ステップ3903と同様に、TXパケット再送部3104は、もう一度、NIF0の送信バッファと、NIF1の受信バッファにデータが有るか否かを判定する(ステップ3906)。
ステップ2313で否と判定されるケース以外、ACK返信を行ってから(ステップ2325)、ステップ1702へ戻る。
ステップ2325の処理がスタートすると(ステップ2401)、right_sbuf1106とleft_send1104が等しく、尚且つ、right_recv1103とleft_rbuf1101が等しいか否かを判定する(ステップ2402)。ステップ2402は、送信バッファにも受信バッファにも送受信中のデータが残っていないことを確認するための処理である。否と判定され、すなわち、送受信中のデータが残っていると判定された場合は、図12や図13のシーケンス図に示したようなサーバ側に予測コマンドを送信中か否かを判定する(ステップ2403)。否と判定された場合は、prev_left_recv1900を受信シーケンス番号としてACKを返信する(ステップ2404)。ステップ2402で真と判定され、送信バッファにも受信バッファにも送受信中のデータが残っていないと判定された場合や、ステップ2403で真と判定され、サーバ側に予測コマンドを送信中だと判定された場合は、left_recv1102を受信シーケンス番号としてACKを返信する(ステップ2405)。
処理スタート後(ステップ1801)、left_pktがleft_loss[k]以下であり、尚且つleft_loss[k]がright_pktよりも小さいか否かを判定する(ステップ1802)。ステップ1802において、否と判定された場合は、left_pktがright_loss[k]よりも小さく、尚且つright_loss[k]がright_pkt以下であるか否かを判定する(ステップ1803)。ここで、否と判定された場合は、left_loss[k]がleft_pktよりも小さく、right_pktがright_loss[k]よりも小さいか否かを判定する(ステップ1804)。ステップ1804において真と判定された場合、right_loss[k]にleft_pktを代入した上で(ステップ1805)、新規ロスセグメントleft_loss[j]とright_loss[j]を作成して、left_loss[k]にright_pktの値を、right_loss[k]にright_loss[k]の値を代入する(1806)。
以下、ポインタの移動について補足して説明する。
受信したデータサイズに応じて受信シーケンス番号を記載してACKパケットを返信する通信装置が、パケットを前から順番に受信することが出来ずに、ロスセグメントが発生したときに、どのようにポインタが移動するかを以下に示す。通信装置が送信端末との間のTCP通信に用いる受信バッファのポインタ移動と、通信装置が受信端末との間のTCP通信に用いる送信バッファのポインタ移動を示す。
本実施例では、実施例1で示した図3、図4のブロック構成を持つ装置と同様の構成を用いる。図18や図19で示した受信履歴更新部3106やTXパケット再送部3104で行う処理に、幾つかの処理を追加することで、本実施例の通信装置800を実現する。
新たに、PSHデータ受信中か否かを判定するための状態変数PSH_recvを定義して、図18に示したステップ3801の後に、PSH_recvに0を代入する処理(ステップ4001)を挿入する。更に、ステップ3804の後に、受信パケットのTCPフラグにPSHフラグがセットされているか否かを判定する処理(ステップ4002)を挿入する。ステップ4002において、真と判定された場合は、PSH_recvに1を代入して(ステップ4003)、ステップ3805に移る。ステップ4002において、否と判定された場合は、NIF0において、従来どおり、受信済みデータに対するACKを返信してから(ステップ4004)、ステップ3802へと戻る。本処理方式により、PSHパケットを受信したときだけ、実施例1に示したACK返信の機能が有効になる。
図19に示したステップ3905の後に、PSH_recvが1であるか否かを判定する処理(ステップ4101)を追加する。ステップ4101で真(PSH_recvが1である)と判定した場合は、ステップ3906へ戻る。ステップ4101で偽と判定した場合は、ステップ3906を飛ばして、ステップ3908へと進む。更に、ステップ3907の後に、PSH_recvに0を代入する処理(ステップ4102)を追加する。本処理方式により、PSHパケットを受信したときだけ、実施例1に示した、末尾データに対するACKパケットが受信端末側から到着するまで、末尾ACKを返信しない機能が有効になる。
上記の方式により、送信端末では、送信が完了したと判断しているのにもかかわらず、受信端末では、受信が完了していないと判断している状態の不一致を防ぐことができる。
通信装置910/920(例えば、通信装置)は、図3に示したブロック図と同様なブロック図で実装することができ、NIF TCP1008が独自TCPモジュール2501/2502に変わる。
図27には、左側に、標準的なTCPの例として従来型TCPの帯域制御方式を、特許出願1記載の右側に独自TCPの帯域制御方式を示す。従来型TCPは、送信端末2601において、RTT毎の送信量を定めたウィンドウサイズ2605を制御することで(2607)、送信帯域を制御する。送信帯域は、ウィンドウサイズ/RTTで表される。この方式による帯域制御は、RTTが増加すると回線が空いていても送信不可能な時間2610が増加して、回線帯域の利用率が減少する、という課題があった。一方、独自TCPでは、一定時間毎の送信量を定めたトークンサイズ2606を制御することで(2608)、送信帯域を制御する。送信帯域は、トークンサイズ/インターバル時間で表される。独自TCPを用いることで、回線が空いていても送信不可能な時間を無くすことが出来るため、回線帯域の利用率が増加する(2609)。RTTに依存しない帯域制御を実現することができる。
なお、ここで、送信帯域とは、シェーパ3209へパケットを振り分ける振分部3208において、シェーパ毎に観測している入力帯域を指す。また、制御帯域とは、シェーパ3209からの実際の出力帯域を指す。
まず、標準TCPを実現するTCPブロック1007(913/924)について説明すると、図4に示すように受信処理を行うRX部3102と、送信処理を行うTX部3101を有する。RX部3102は、受信パケットをTCP制御パケットとデータ付パケットとACK/部分的確認応答用SACKパケットに分離するパケット解析部3108と、受信したTCP制御パケットに基づいて状態テーブル1001内のTCP状態1003を変更するTCP制御部3107と、受信したデータパケットの送信シーケンス番号SEQ2912と受信シーケンス番号ACK2913とに基づいて、状態テーブル1001内のバッファ管理ポインタ1005を変更してACKパケットや部分的確認応答SACK付ACKパケットを返信する受信履歴更新部3106、とを有する。受信履歴更新部3106のバッファ管理ポインタ1005の変更では、実施例1に記載の方法を用いる。
以上の、送信帯域制御部3206の制御により、図27のトークンサイズに基づく帯域制御を実現可能となる。
処理がスタートすると(ステップ4201)、送信帯域制御部3206が(以下同じ)、パケット再送率(=再送帯域/制御帯域)の増加率が一定値を超過したか否かを判定する(ステップ4202)。超過した場合は、現在の再送帯域と、昔の制御帯域を用いて、制御帯域を更新する(ステップ4203)。超過しなかった場合は、制御帯域を増加させる(ステップ4204)。
処理がスタートすると(ステップ3501)、送信帯域制御部3206が(以下同じ)、初めにタイマ3203の出力する現在時刻と、送信・再送帯域テーブル3205記載の基準時刻との差が、インターバル3204以上であるか否かを判定する(ステップ3502)。インターバルとして、計測したRTT等を使用してもよい。ステップ3502において真と判断された場合、制御帯域(基準時刻後)tokenの値をtmpに退避させておく(ステップ3503)。更に、再送ビット積算値(基準時刻後)/インターバル/送信帯域(基準時刻前)で求められる再送率(基準時刻後)rts_ratioが、再送帯域(基準時刻前)/送信帯域(旧基準時刻前)で求められる旧再送率(基準時刻前)old_rts_ratioのK倍(K:予め定められた1以上の定数)よりも大きいか否かを判定する(ステップ3504)。大きい場合は、再送率が増加していると判断して、制御帯域(基準時刻後)tokenの値を、制御帯域(基準時刻前)old_tokenの値よりも小さくなるように、再送帯域rtsを用いて減少させる。例えば、制御帯域(基準時刻後)token=制御帯域(基準時刻前)old_token−再送帯域(基準時刻後)rtsとする(ステップ3505)。ステップ3504で偽と判定された場合は、制御帯域(基準時刻後)tokenを増加させる(ステップ3506)。ステップ3505・3506が終了すると、送信帯域(基準時刻前)old_snd=送信帯域(基準時刻後)snd、再送帯域(基準時刻前)old_rts=再送帯域(基準時刻後)rts、基準時刻=基準時刻+インターバル、送信ビット積算値(基準時刻後)=0、再送ビット積算値(基準時刻後)=0、制御帯域(旧基準時刻前)old_old_token=制御帯域(基準時刻前)old_token、送信帯域(旧基準時刻前)old_old_snd=送信帯域(基準時刻前)old_snd、制御帯域(基準時刻前)old_token=tmp、とし、各値を送信・再送帯域テーブル3205に記憶する(ステップ3507)。
以上記載した手段を用いることで、標準的なTCP通信しかできない端末間でも、RTTや廃棄率に依存しない通信を実現することができる。
以上の受信履歴更新部3106と、TXパケット再送部3104の制御により、図28の全廃棄箇所の即時再送が実現可能となる。
[変形例]
図43には、送信帯域制御部3206がシェーパ毎の送信・再送帯域テーブル3205記載の値を用いて、制御帯域を更新する例を示す。
処理がスタートすると(ステップ4301)、送信帯域制御部3206が(以下同じ)、1区間前のパケット再送帯域rtsが閾値を超過したか否かを判定する(ステップ4302)。超過した場合は、送信帯域制御部3206は、1区間前の再送帯域と、2区間以上前の送信/制御帯域を用いて、制御帯域を減少させる(ステップ4303)。ステップ4303の結果、通信装置から、一のシェーパーに対応するWAN側へのTX部3101からのデータ流出量は、減少する。
図43に示す処理により、2区間以上に亘る送信/制御/再送帯域に基づく帯域制御と、他の通信帯域を圧迫しないような帯域制御の共存が可能となる。
処理がスタートすると(ステップ4401)、送信帯域制御部3206が(以下同じ)、基準時刻後の再送帯域rtsが、予め定めた閾値thr_Rよりも大きいか否かを判定する(ステップ4402)。大きい場合、送信帯域制御部3206は、基準時刻前の制御帯域old_tokenよりも小さくなるように、基準時刻後の再送帯域rtsを用いて、新たな制御帯域(基準時刻後)tokenを決定する(ステップ4408)。例えば、old_token−rtsを新たな制御帯域(基準時刻後)tokenとする(ステップ4408)。ステップ4402にて否と判定した場合、送信帯域制御部3206は、現在時刻と基準時刻との差がインターバル以上か否かを判定する(ステップ4403)。否の場合は、ステップ4402に戻る。
図45には、図33の変形例として、送信帯域制御部3206がシェーパ毎の送信・再送帯域テーブル3205記載の値を用いて、制御帯域を更新する処理を表す。
処理がスタートすると(ステップ4501)、送信帯域制御部3206が(以下同じ)、パケット再送率の変化率(rts_ratio/old_rts_ratio)が閾値を超過したか否かを判定する(ステップ4502)。超過した場合は、1区間前の再送帯域と、2区間以上前の送信/制御帯域を用いて、制御帯域を減少させる(ステップ4503)。超過しなかった場合は、制御帯域を増加させる(ステップ4504)。これにより、2区間以上に亘る送信/制御/再送帯域、および再送率の変化率に基づく、帯域制御が可能となる。
処理がスタートすると(ステップ4601)、ステップ4602、4603は、図45のステップ4502及び4503に対応する。ステップ4602の結果、パケットの再送率の変化率(rts_ratio/old_rts_ratio)が閾値を超過しなかった場合は、送信帯域制御部3206は、過去の一定期間、再送率の変化率の閾値超過が無いか否かを判定する(ステップ4604)。
これにより、2区間以上に亘る送信/制御/再送帯域、および再送率の変化率に基づく帯域制御と、他の通信帯域を圧迫しないような帯域制御を共存させることが可能となる。つまり、廃棄率の増加率が閾値を下回ってから一定時間経つまでは、他通信との競合が発生する可能性があると判断し、線形的にゆっくりと帯域を増加させる。一方、廃棄率の増加率が閾値を下回っている状態が一定時間続くと、他通信との競合が発生していないと判断し、指数的に急激に帯域を増加させる。これにより、他の通信帯域を圧迫しないような帯域制御が可能となる。
なお、ステップ4605とステップ4606の帯域の増加のさせ方は、指数的な増加、線形的な増加に限定されない。例えば、ステップ4602の結果、一定期間における再送の変化率が閾値以下の場合に増加させる制御帯域量が、一定期間における再送の変化率が閾値を超過した場合に増加させる制御帯域量の2倍や3倍としてもよい。つまり、ステップ4305と4306では、送信帯域制御部3206は、制御帯域を増加させる場合、2区間以上前の再送率の変化率に基づいて、制御帯域の増加量を制御し、過去の再送率の変化率が一定期間、閾値を下回っている場合に比べ、閾値に達した場合の制御帯域の増加量を抑えるようにしてもよい。
送信帯域制御部3206は、ステップ4604の代わりに一定期間における再送率の変化率が閾値を上回った回数によって、帯域の増加を緩やかにするか急にするかを判定してもよい。
処理がスタートすると(ステップ4701)、送信帯域制御部3206が(以下同じ)、初めにタイマ3203の出力する現在時刻と、送信・再送帯域テーブル3205記載の基準時刻との差が、インターバル3204以上であるか否かを判定する(ステップ4702)。インターバルには、計測したRTTを用いてもよいし、予め定めた値を用いても良い。ステップ4702において真と判断された場合、送信帯域制御部3206は、制御帯域(基準時刻後)tokenの値をtmpに退避させておく(ステップ4703)。更に、再送率(基準時刻後)rts_ratioが、旧再送率(基準時刻前)old_rts_ratioのK倍(K:予め定められた1以上の定数)よりも大きいか否かを判定する(ステップ4704)。大きい場合は、送信帯域制御部3206は、再送率が増加していると判断して、制御帯域(基準時刻後)tokenの値を、制御帯域(基準時刻前)old_tokenの値よりも小さくなるように、再送帯域rtsを用いて減少させる。例えば、制御帯域(基準時刻後)token=制御帯域(基準時刻前)old_token−再送帯域(基準時刻後)rtsとする(ステップ4705)。更に、最後に帯域減少させた時刻としてdec_timeに現在時刻を代入しておく(ステップ4706)。
制御帯域を減少させる場合、送信帯域制御部3206は、監視した時点を含む第一の期間よりも、過去の送信状況、再送状況や設定されていた制御帯域に基づいて、減少させる帯域量を決定し、制御帯域を減少させる。
以上の構成や処理により、通信装置は、第一の期間における再送状況と、過去の送信状況によって、きめ細やかな帯域制御を行うことができる。また、帯域の増減をきめ細やかに行うことで、他の通信帯域への圧迫を防ぐことができる。
図48は、図9に示すデータ通信を行う前に、TCPコネクションを確立するためのシーケンス図を示す。はじめに、送信端末103と通信装置#1 100との間で、SYN4801、SYN−ACK4802、ACK4803のやり取りを行いコネクションを確立する。次に、通信装置#1 100と通信装置#2 101との間で、SYN4804、SYN−ACK4805、ACK4806のやり取りを行いコネクションを確立する。最後に、通信装置#2 101と受信端末104との間で、SYN4807、SYN−ACK4808、ACK4809のやり取りを行いコネクションを確立する。送信端末103は、送信端末103と通信装置#1 100との間で、コネクションが確立した後に、図9と同様にデータ送信を開始する。
104、905、906 端末
110 データの流れ
100、910 通信装置
101、920 通信装置
900、901、902、907 ネットワーク
1000 プロキシモジュール
Claims (17)
- 2つの端末間に位置し、端末間のTCP通信を中継する第一の通信装置と第二の通信装置を備え、
前記第二の通信装置が、通信中に受信できなかったデータの箇所を検出すると、未受信箇所の識別情報を確認応答パケットに含めて、前記第一の通信装置に対してフィードバック通知し、
前記第一の通信装置は、フィードバック通知された確認応答パケットに含まれる未受信箇所のデータを含む再送パケットを前記第二の通信装置に送信し、
前記第二の通信装置は、前記未受信箇所のデータを含む再送パケットを受信するまで、前記未受信箇所の識別情報を含む確認応答パケットを、前記第一の通信装置に対して、定期的にフィードバック通知する通信システム。 - 前記第一の通信装置が予め定められたインターバル時間と、該インターバル時間毎に更新される基準時刻とを管理しており、現在時刻と基準時刻の差がインターバル時間を超過した場合に、基準時刻にインターバル時間を加算して該基準時刻を更新し、
前記第一の通信装置が、再送/廃棄帯域と、送信帯域と、再送/廃棄帯域と送信帯域の総和を制限するための制御帯域とを、基準時刻以降現在時刻までの第一時間と、基準時刻から該基準時刻よりもインターバル時間前の旧基準時刻までの第二時間と、該旧基準時刻からさらにインターバル時間前までの第三時間とに分けてそれぞれ記録するテーブルを備え、
基準時刻以降の前記第一時間の再送/廃棄帯域と、基準時刻以前の前記第二時間の制御帯域又は送信帯域とに基づいて、基準時刻以降の制御帯域を変化させることを特徴とする請求項1に記載の通信システム。 - 基準時刻から旧基準時刻の間の前記第二時間の送信帯域又は制御帯域と、基準時刻以降現在時刻までの前記第一時間の再送/廃棄帯域との比で求められる第一再送率が、該旧基準時刻からさらにインターバル時間前までの前記第三時間の送信帯域又は制御帯域と、基準時刻から旧基準時刻の間の前記第二時間の再送/廃棄帯域との比で求められる第二再送率よりも大きいときに、
基準時刻以降の制御帯域を、基準時刻以降の再送/廃棄帯域に基づいて、基準時刻から旧基準時刻の間の前記第二時間の制御帯域よりも小さくなるように減少させることを特徴とする請求項2に記載の通信システム。 - 基準時刻から旧基準時刻の間の前記第二時間の送信帯域又は制御帯域と、基準時刻以降現在時刻までの前記第一時間の再送/廃棄帯域との比で求められる第一再送率が、該旧基準時刻からさらにインターバル時間前までの前記第三時間の送信帯域又は制御帯域と、基準時刻から旧基準時刻の間の前記第二時間の再送/廃棄帯域との比で求められる第二再送率よりも小さいとき、制御帯域を減少させた時点より所定の期間経過しているか判定し、前記判定結果、所定の期間経過している場合は、基準時刻以降の制御帯域を第一の量大きくなるよう制御し、前記判定結果、所定の期間経過していない場合は、第一の量より小さい第二の量だけ大きくなるよう制御する、ことを特徴とする請求項3に記載の通信システム。
- 前記第一の通信装置が、一定時間毎の送信量を定めたトークンサイズを制御することで制御帯域を制御する請求項1に記載の通信システム。
- 前記第一の通信装置及び前記第二の通信装置は、プロキシ装置である請求項1に記載の通信システム。
- 前記通信システムは、前記第一の通信装置がデータ送信端末との第一のTCP通信を実施し、前記第二の通信装置がデータ受信端末との第二のTCP通信を実施し、前記第一の通信装置と前記第二の通信装置の間で第三のTCP通信を実施し、各TCP通信が送信データの再送と受信データの整列を独立して実施し、
前記第一の通信装置は、
第一のTCP通信においてデータ付パケットを受信した場合は、少なくともひとつ前に受信したデータ付パケットに対する確認応答、又は、最後尾データより手前のデータに対する確認応答を返信し、
第三のTCP通信において確認応答待ちの送信中データが有り、かつ、第一のTCP通信において整列待ちの受信中データが無い状態で第三のTCP通信において確認応答を受信して確認応答待ちの送信中データが無くなったタイミングで、第一のTCP通信において受信した最後尾データに対する確認応答を返信することを特徴とする請求項1に記載の通信システム。 - 第三のTCP通信において確認応答待ちの送信中データが有り、又は、第一のTCP通信において整列待ちの受信中データが有る状態で第一のTCP通信においてデータ付パケットを受信した場合に、前記少なくともひとつ前に受信したデータ付パケットに対する確認応答、又は、前記最後尾データより手前のデータに対する確認応答を返信する請求項7に記載の通信システム。
- 第三のTCP通信において確認応答待ちの送信中データが無く、かつ、第一のTCP通信において整列待ちの受信中データも無い状態で、第一のTCP通信においてデータ付パケットを受信した場合は確認応答の返信を行わない請求項8に記載の通信システム。
- 前記第一の通信装置は、
第三のTCP通信に対する送信バッファと、
第一のTCP通信に対する受信バッファと
を備え、
第三のTCP通信の前記送信バッファ内に確認応答待ちの送信中データが記憶され、
第一のTCP通信の前記受信バッファ内に整列待ちの受信中データが記憶され、
前記送信バッファを参照して、第三のTCP通信において確認応答待ちの送信中データが有るか否か判定し、前記受信バッファを参照して第一のTCP通信において整列待ちの受信中データが有るか否かを判定する請求項7に記載の通信システム。 - 第一のデータ通信と第二のデータ通信の2つのデータ通信を中継する通信装置において、
第二のデータ通信においてデータ付パケットを受信した場合は、少なくともひとつ前に受信したデータ付パケットに対する確認応答、又は、最後尾データより手前のデータに対する確認応答を返信し、
第一のデータ通信において確認応答待ちの送信中データが有り、かつ、第二のデータ通信において整列待ちの受信中データが無い状態で第一のデータ通信において確認応答を受信して確認応答待ちの送信中データが無くなったタイミングで、第二のデータ通信において受信した最後尾データに対する確認応答を返信する通信装置。 - 第一のデータ通信において確認応答待ちの送信中データが有り、又は、第二のデータ通信において整列待ちの受信中データが有る状態で第二のデータ通信においてデータ付パケットを受信した場合に、前記少なくともひとつ前に受信したデータ付パケットに対する確認応答、又は、前記最後尾データより手前のデータに対する確認応答を返信する請求項11に記載の通信装置。
- 第一のデータ通信において確認応答待ちの送信中データが無く、かつ、第二のデータ通信において整列待ちの受信中データも無い状態で、第二のデータ通信においてデータ付パケットを受信した場合は確認応答の返信を行わない請求項12に記載の通信装置。
- 第一のデータ通信に対する送信バッファと、
第二のデータ通信に対する受信バッファと
を備え、
第一のデータ通信の前記送信バッファ内に確認応答待ちの送信中データが記憶され、
第二のデータ通信の前記受信バッファ内に整列待ちの受信中データが記憶され、
前記送信バッファを参照して、第一のデータ通信において確認応答待ちの送信中データが有るか否か判定し、前記受信バッファを参照して第二のデータ通信において整列待ちの受信中データが有るか否かを判定する請求項11に記載の通信装置。 - 第一のデータ通信において確認応答待ちの送信中データが有り、又は、第二のデータ通信において整列待ちの受信中データが有る状態で、第二のデータ通信において、前回受信したデータ付パケットと同じデータ付パケットを受信した場合は、前回確認応答を返信したデータよりも後ろで、かつ、最後尾データより手前のデータに対する確認応答を返信することを特徴とする請求項12に記載の通信装置。
- 第一のデータ通信で予測コマンドを送信し、
第一のデータ通信で受信したデータ又は該データに対して加工を施したデータを、第二のデータ通信にて送信した後で、第二のデータ通信において予測コマンドに対するデータ付パケットを受信した場合は、該データ付パケットの最後尾データに対する確認応答を第二のデータ通信で返信することを特徴とする請求項11に記載の通信装置。 - 第二のデータ通信において、PSHフラグ付のデータパケットを受信した後、第一のデータ通信において、確認応答を受信して確認応答待ちの送信中データが無くなった状態になったタイミングで、第二のデータ通信において受信したデータパケットのうち、最後尾に位置するデータパケットに対する確認応答を返信することを特徴とする請求項11に記載の通信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012544129A JP5544430B2 (ja) | 2010-11-16 | 2011-07-28 | 通信装置および通信システム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010255521 | 2010-11-16 | ||
JP2010255521 | 2010-11-16 | ||
JP2012544129A JP5544430B2 (ja) | 2010-11-16 | 2011-07-28 | 通信装置および通信システム |
PCT/JP2011/067282 WO2012066824A1 (ja) | 2010-11-16 | 2011-07-28 | 通信装置および通信システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014098260A Division JP5816718B2 (ja) | 2010-11-16 | 2014-05-12 | 通信装置、通信システム、およびデータ通信の中継方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012066824A1 true JPWO2012066824A1 (ja) | 2014-05-12 |
JP5544430B2 JP5544430B2 (ja) | 2014-07-09 |
Family
ID=46083768
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012544129A Active JP5544430B2 (ja) | 2010-11-16 | 2011-07-28 | 通信装置および通信システム |
JP2014098260A Active JP5816718B2 (ja) | 2010-11-16 | 2014-05-12 | 通信装置、通信システム、およびデータ通信の中継方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014098260A Active JP5816718B2 (ja) | 2010-11-16 | 2014-05-12 | 通信装置、通信システム、およびデータ通信の中継方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9124518B2 (ja) |
EP (1) | EP2642702B1 (ja) |
JP (2) | JP5544430B2 (ja) |
CN (1) | CN103329491B (ja) |
BR (1) | BR112013005106A2 (ja) |
MX (1) | MX2013002291A (ja) |
SG (1) | SG189825A1 (ja) |
WO (1) | WO2012066824A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5258938B2 (ja) | 2011-07-26 | 2013-08-07 | 株式会社日立製作所 | 通信装置 |
JP5264966B2 (ja) | 2011-07-26 | 2013-08-14 | 株式会社日立製作所 | 通信装置 |
US9270792B2 (en) | 2012-11-21 | 2016-02-23 | Ubiquiti Networks, Inc. | Method and system for improving wireless link efficiency |
JP5636574B2 (ja) | 2013-01-30 | 2014-12-10 | 株式会社日立製作所 | 通信装置、パケット転送方法及びそのプログラム |
US10021688B2 (en) * | 2013-06-07 | 2018-07-10 | Apple Inc. | Managing pending acknowledgement packets in a communication device |
US10270705B1 (en) * | 2013-12-18 | 2019-04-23 | Violin Systems Llc | Transmission of stateful data over a stateless communications channel |
US20150245409A1 (en) * | 2014-02-21 | 2015-08-27 | Broadcom Corporation | Carrier aggregation over lte and wifi |
US9356737B2 (en) * | 2014-03-26 | 2016-05-31 | Keysight Technologies, Inc. | Retry buffer and method of performing retry operation using retry buffer |
JP6194835B2 (ja) * | 2014-03-27 | 2017-09-13 | 東芝三菱電機産業システム株式会社 | 鉄鋼プラント制御システム |
JP2015195511A (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | パケット解析プログラム、パケット解析装置およびパケット解析方法 |
JP6373753B2 (ja) * | 2014-12-26 | 2018-08-15 | 株式会社東芝 | 伝送装置 |
US9860614B2 (en) | 2015-05-13 | 2018-01-02 | Huawei Technologies Co., Ltd. | System and method for hybrid photonic electronic switching |
US9860615B2 (en) * | 2015-05-14 | 2018-01-02 | Huawei Technologies Co., Ltd. | System and method for photonic switching |
US9654849B2 (en) * | 2015-05-15 | 2017-05-16 | Huawei Technologies Co., Ltd. | System and method for photonic switching |
CN106341738B (zh) * | 2015-07-08 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
US20190199833A1 (en) * | 2016-05-18 | 2019-06-27 | Nec Corporation | Transmission device, method, program, and recording medium |
WO2018014795A1 (en) * | 2016-07-21 | 2018-01-25 | Vishare Technology Limited | Method and apparatus for packet transmission |
JP7003467B2 (ja) | 2017-07-14 | 2022-01-20 | 富士通株式会社 | パケット分類プログラム、パケット分類方法およびパケット分類装置 |
CN109309934B (zh) * | 2017-07-27 | 2021-01-15 | 华为技术有限公司 | 一种拥塞控制方法及相关设备 |
US11444882B2 (en) * | 2019-04-18 | 2022-09-13 | F5, Inc. | Methods for dynamically controlling transmission control protocol push functionality and devices thereof |
WO2021193542A1 (ja) * | 2020-03-27 | 2021-09-30 | 日本電気株式会社 | 通信システム |
US11792306B2 (en) * | 2020-11-06 | 2023-10-17 | Improbable Worlds Limited | Network protocol for view replication over unreliable networks |
DE102021118304A1 (de) | 2021-07-15 | 2023-01-19 | Marquardt Gmbh | Displayverbindung |
DE102021118303A1 (de) | 2021-07-15 | 2023-01-19 | Marquardt Gmbh | Displayverbindung |
DE202021103793U1 (de) | 2021-07-15 | 2021-08-23 | Marquardt Gmbh | Displayverbindung |
DE202021103790U1 (de) | 2021-07-15 | 2021-08-05 | Marquardt Gmbh | Displayverbindung |
US20230370203A1 (en) * | 2022-05-12 | 2023-11-16 | Meta Platforms, Inc. | Selective acknowledgement framework for high-performance networks |
CN118381839A (zh) * | 2023-01-20 | 2024-07-23 | 达发科技(苏州)有限公司 | 计算机装置及其传输控制协议报文处理方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3808882B2 (ja) * | 1997-09-22 | 2006-08-16 | 株式会社東芝 | ゲートウェイ装置および無線端末装置 |
JPH11112576A (ja) * | 1997-10-06 | 1999-04-23 | Hitachi Ltd | インターネットワーク装置のコネクション制御方法 |
JP3730480B2 (ja) * | 2000-05-23 | 2006-01-05 | 株式会社東芝 | ゲートウェイ装置 |
JP3893247B2 (ja) * | 2001-01-12 | 2007-03-14 | 三菱電機株式会社 | データ配信管理装置 |
US7295516B1 (en) * | 2001-11-13 | 2007-11-13 | Verizon Services Corp. | Early traffic regulation techniques to protect against network flooding |
US7317685B1 (en) * | 2001-11-26 | 2008-01-08 | Polycom, Inc. | System and method for dynamic bandwidth allocation for videoconferencing in lossy packet switched networks |
JP2004080070A (ja) | 2002-08-09 | 2004-03-11 | Nippon Telegr & Teleph Corp <Ntt> | データ転送方法及びデータ転送システム並びにコンテンツ配信システム |
JP4250036B2 (ja) | 2003-08-08 | 2009-04-08 | 富士通株式会社 | メディア伝送方法及びメディア伝送装置 |
US7796517B2 (en) * | 2004-06-28 | 2010-09-14 | Minghua Chen | Optimization of streaming data throughput in unreliable networks |
JP2006074104A (ja) | 2004-08-31 | 2006-03-16 | Mitsubishi Electric Corp | 配信管理装置及びゲートウェイ装置及び配信管理方法及び配信管理システム |
CN101278529B (zh) * | 2005-10-03 | 2011-10-19 | 松下电器产业株式会社 | 通信装置 |
US8265076B2 (en) * | 2006-01-20 | 2012-09-11 | Cisco Technology, Inc. | Centralized wireless QoS architecture |
WO2007092901A2 (en) * | 2006-02-07 | 2007-08-16 | Asankya Networks, Inc. | Systems and methods of improving performance of transport protocols |
US8223655B2 (en) * | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | System and method for provisioning resources of a packet network based on collected network performance information |
US20080091868A1 (en) * | 2006-10-17 | 2008-04-17 | Shay Mizrachi | Method and System for Delayed Completion Coalescing |
JP5056341B2 (ja) | 2006-11-07 | 2012-10-24 | 富士通株式会社 | 通信中継装置、通信中継方法および通信中継処理プログラム |
US7952999B1 (en) * | 2007-05-08 | 2011-05-31 | Juniper Networks, Inc. | Feedback control of processor use in virtual systems |
KR101594359B1 (ko) * | 2008-01-31 | 2016-02-16 | 엘지전자 주식회사 | 랜덤 접속에서 백오프 정보를 시그널링하는 방법 |
EP3410623B1 (en) | 2008-01-31 | 2021-07-28 | LG Electronics Inc. | Method for sending status information in mobile telecommunications system and receiver of mobile telecommunications |
JP2009214015A (ja) | 2008-03-11 | 2009-09-24 | Kobayashi Seiji | 乾留と焼結による廃棄物の処理方法とその処理装置 |
-
2011
- 2011-07-28 SG SG2013015425A patent/SG189825A1/en unknown
- 2011-07-28 WO PCT/JP2011/067282 patent/WO2012066824A1/ja active Application Filing
- 2011-07-28 EP EP11842123.9A patent/EP2642702B1/en active Active
- 2011-07-28 CN CN201180042533.0A patent/CN103329491B/zh active Active
- 2011-07-28 BR BR112013005106A patent/BR112013005106A2/pt not_active IP Right Cessation
- 2011-07-28 JP JP2012544129A patent/JP5544430B2/ja active Active
- 2011-07-28 MX MX2013002291A patent/MX2013002291A/es active IP Right Grant
- 2011-07-28 US US13/820,012 patent/US9124518B2/en active Active
-
2014
- 2014-05-12 JP JP2014098260A patent/JP5816718B2/ja active Active
-
2015
- 2015-05-19 US US14/715,805 patent/US9979658B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP5816718B2 (ja) | 2015-11-18 |
SG189825A1 (en) | 2013-06-28 |
JP2014143760A (ja) | 2014-08-07 |
US20150341272A1 (en) | 2015-11-26 |
CN103329491A (zh) | 2013-09-25 |
EP2642702A1 (en) | 2013-09-25 |
CN103329491B (zh) | 2016-04-27 |
US9979658B2 (en) | 2018-05-22 |
MX2013002291A (es) | 2013-10-28 |
BR112013005106A2 (pt) | 2016-05-10 |
WO2012066824A1 (ja) | 2012-05-24 |
EP2642702B1 (en) | 2019-04-03 |
US20130229916A1 (en) | 2013-09-05 |
JP5544430B2 (ja) | 2014-07-09 |
EP2642702A4 (en) | 2016-01-06 |
US9124518B2 (en) | 2015-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5816718B2 (ja) | 通信装置、通信システム、およびデータ通信の中継方法 | |
US10237153B2 (en) | Packet retransmission method and apparatus | |
JP5258938B2 (ja) | 通信装置 | |
JP4433202B2 (ja) | トランスポート層中継方法及びトランスポート層中継装置並びにプログラム | |
JP5651805B2 (ja) | 通信装置 | |
US9467390B2 (en) | Method and device for data transmission | |
US8085669B2 (en) | Session relay device and session relay method | |
CN107852371B (zh) | 数据分组网络 | |
JPWO2008023656A1 (ja) | 通信装置 | |
WO2019052264A1 (zh) | 传输报文的方法、网络组件和计算机可读存储介质 | |
CN111131179A (zh) | 业务处理方法、装置、网络设备及存储介质 | |
JP5832335B2 (ja) | 通信装置および通信システム | |
CN103098422A (zh) | 通信装置 | |
JP4229807B2 (ja) | データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム | |
JP7067544B2 (ja) | 通信システム、通信装置、方法およびプログラム | |
CN113424578B (zh) | 一种传输控制协议加速方法和装置 | |
JP4506430B2 (ja) | アプリケーションモニタ装置 | |
WO2015022809A1 (ja) | 通信装置及び送信帯域制御方法 | |
US20140369189A1 (en) | Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent | |
KR100913897B1 (ko) | 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법 | |
JP6268027B2 (ja) | 通信システム、送信装置、及び通信方法 | |
KR101396785B1 (ko) | 네트워크 장치에서 tcp 기능을 수행하는 방법 | |
KR20060133344A (ko) | Wp-tcp 지원을 하는 개선된 wap 프록시 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140225 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20140226 |
|
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: 20140415 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140512 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5544430 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |