JP2002084289A - Tcp通信方法 - Google Patents

Tcp通信方法

Info

Publication number
JP2002084289A
JP2002084289A JP2000271666A JP2000271666A JP2002084289A JP 2002084289 A JP2002084289 A JP 2002084289A JP 2000271666 A JP2000271666 A JP 2000271666A JP 2000271666 A JP2000271666 A JP 2000271666A JP 2002084289 A JP2002084289 A JP 2002084289A
Authority
JP
Japan
Prior art keywords
tcp
communication
mtu
packet
board
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
JP2000271666A
Other languages
English (en)
Other versions
JP4041646B2 (ja
Inventor
Teruyuki Hasegawa
輝之 長谷川
Toru Hasegawa
亨 長谷川
Satohiko Kato
聰彦 加藤
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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2000271666A priority Critical patent/JP4041646B2/ja
Publication of JP2002084289A publication Critical patent/JP2002084289A/ja
Application granted granted Critical
Publication of JP4041646B2 publication Critical patent/JP4041646B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 ネットワークで広く用いられている例えば1
500バイト程度の小さなパケットサイズを変更するこ
となく、端末において大きなパケットサイズによる効率
的なTCP通信を可能にする。 【解決手段】 通信ボード1上のCPUを利用してTC
Pレベルでパケットの分割及び組立を行うことによりT
CP通信を高速化する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はTCP通信を高速化
する技術に関する。
【0002】
【従来の技術】通常のイーサネット(登録商標)では、
IPの最大パケット長(Maximum Transfer Unit size:以
下、MTUサイズと呼ぶ)は1500バイトであり、T
CPの最大ユーザデータ長(Maximum Segment Siz: 以
下、MSSと呼ぶ)はMTUサイズからIP及びTCP
のヘッダ領域を除いた1460バイトである。
【0003】このように通常のイーサネットでは、TC
Pの最大ユーザデータ長MSSが小さいために、パケッ
ト単位で行われるTCPやIPのプロトコル処理、並び
に、ホスト端末と通信ボード間のデータ転送処理がホス
ト端末に対して大きなオーバヘッドとなり、この処理オ
ーバヘッドがTCP通信の高速化を妨げている。
【0004】これらの処理オーバヘッドを減らすために
は、より大きなMSSを用いることが望まれる。
【0005】一方、近年、ギガビットイーサネット(G
iga bits Ethernet(登録商標):以
下、GbEと呼ぶ)の普及に伴い、ホスト端末において
もギガビットクラスの広い帯域を利用可能になってい
る。しかし、GbEで標準的に用いられているMTUサ
イズは通常のイーサネットと同じ1500バイトである
ため、現状のホスト端末ではやはり、パケット単位で行
われるプロトコル処理、並びに、ホスト端末と通信ボー
ド間のデータ転送処理が大きなオーバヘッドとなる。
【0006】その解決策として、フレーム長を独自に長
く拡張したイーサネットフレーム(以下、ジャンボフレ
ームと呼ぶ)を用いてMTUサイズを拡大する方法が提
案されている(例えば、MTUサイズ:8800バイ
ト、MSS:8760バイト)。しかし、この方法には
下記に示す問題点がある。 (1) 原則として、サブネットを構成するホスト端末、並
びに、スイッチやルータ等のネットワーク機器全てが、
ジャンボフレームをサポートする必要がある。このた
め、ジャンボフレームをサポートしない既存のホスト端
末とは同一のサブネットを構成できない。 (2) 通信経路上の、広域網を含む全てのリンクにおける
MTUサイズ(以下、パスMTUサイズと呼ぶ)が例え
ば8800バイト以上と大きい必要がある。そうでない
場合は、ルータでのIPパケットの分割(IPフラグメ
ンテーション) や、ホスト端末でのパスMTUサイズに
応じたパケットサイズの調整(最大セグメントサイズの
交換、パスMTUディスカバリー(path MTU discover
y))が起きるため、大きなサイズのパケットで通信する
ことは不可能である。
【0007】
【発明が解決しようとする課題】本発明の課題は、パス
MTUサイズよりも大きなMTUサイズをホスト端末に
提供することができるTCP通信方法を提供することで
ある。
【0008】
【課題を解決するための手段】請求項1に係る発明は上
記課題を解決するTCP通信方法であり、端末本体に搭
載される通信ボード上のCPU(オンボードCPU)を
利用してTCPレベルでパケットの分割及び組立を行う
ことを特徴とする。請求項2に係る発明は、請求項1に
おいて、前記端末本体のTCPモジュールから送信され
た1つのデータセグメントを前記通信ボード上で適切な
TCP/IPヘッダを持つ複数のデータセグメントに分
割してネットワークへ出力し、前記ネットワークから入
力された複数のデータセグメントを前記通信ボード上で
1つのデータセグメントに組み立てた後、前記TCPモ
ジュールに通知することを特徴とするTCP通信方法で
ある。
【0009】請求項3に係る発明は、請求項2におい
て、分割前のデータセグメントに対するACKパケット
の増加、並びに、組立前のデータセグメントに対するA
CKパケットの減少を前記通信ボード上で調整し、これ
らACKパケットの増減がTCPの輻輳制御や再送処理
等の制御手順へ及ぼす影響を防ぐことを特徴とするTC
P通信方法である。請求項4に係る発明は、請求項3に
おいて、送受信シーケンス番号及びACK番号をTCP
コネクション毎に保持するコネクションテーブルを前記
通信ボード上に用意し、前記コネクションテーブルを参
照して前記ACKパケットの増減を調整することを特徴
とするTCP通信方法である。
【0010】請求項5に係る発明は、請求項2におい
て、通信経路上のネットワークを含む全てのリンクにお
けるMTUサイズ(以下、パスMTUと呼ぶ)と、ネッ
トワークに対するMTUサイズ(以下、ネットMTUと
呼ぶ)を比較し、パスMTU≧ネットMTUである場合
はネットMTUに基づいて前記データセグメントの分割
を行い、パスMTU<ネットMTUである場合はパスM
TUに基づいて前記データセグメントの分割を行うこと
を特徴とするTCP通信方法である。請求項6に係る発
明は、請求項5において、宛先IPアドレス毎にパスM
TU情報を参照して、前記パスMTUに基づくデータセ
グメントの分割を行うことを特徴とするTCP通信方法
である。
【0011】請求項7に係る発明は、請求項1におい
て、UDPのようにメッセージ境界を保つ必要があるプ
ロトコルのパケットに対してはIPレベルでパケットの
分割及び組立を行うことを特徴とするTCP通信方法で
ある。
【0012】請求項8に係る発明は上記課題を解決する
他のTCP通信方法であり、TCPを処理するTCPモ
ジュール及びIPを処理するIPモジュールを有する端
末本体と、CPU及びメモリを有し、ネットワーク及び
前記ホストに接続される通信ボードと、該通信ボードの
CPU(オンボードCPU)上で動作するファームウェ
アと、前記端末本体が有するCPU(ホストCPU)で
動作する、前記通信ボード用のデバイスドライバとによ
りTCP通信を行うこと、前記ファームウェアは、TC
Pコネクションの確立を監視し、該TCPコネクション
の確立手順を利用することより、前記端末本体が前記ネ
ットワーク上のパケットサイズよりも大きなパケットサ
イズを利用することを可能にする第1機能と、前記通信
ボードへ前記端末本体から分割されてDMA転送された
TCPセグメントに適切なTCPヘッダを付加し、前記
通信ボードから前記ネットワークへ転送する第2機能
と、前記ネットワークから前記通信ボードが受信したパ
ケットをTCPコネクション毎にまとめて1つのパケッ
トとして前記端末本体へ通知する第3機能を提供するこ
と、前記デバイスドライバは、前記端末本体から前記通
信ボードへ渡されるべきパケットを、メモリコピーを行
うことなく、前記通信ボードでのTCPヘッダの付加を
考慮して分割し、通信ボードの前記メモリにDMA転送
する機能を提供することを特徴とする。請求項8に係る
発明は、請求項8において、前記ファームウェアは、前
記第1、第2及び第3機能により生じる前記端末本体か
ら前記通信ボードへのACKパケットの減少、並びに、
前記ネットワークから前記通信ボードへのACKパケッ
トの増加を防ぐ第4機能を提供することを特徴とするT
CP通信方法である。
【0013】
【発明の実施の形態】図面を参照して、本発明の実施形
態例に係るTCP通信方法を説明する。
【0014】[発明の基本]本方法では、通信ボード上
のCPU(オンボードCPU)を利用してパケットの分
割及び組立を行うことにより、ネットワークに対しては
標準のイーサネットと同じMTUサイズを使用しつつ、
端末本体のTCPやIP等のプロトコルモジュールにお
いて大きなパケットの利用を可能とする。このため、通
信ボード用のデバイスドライバでは、端末本体のIPモ
ジュールに対して、ネットワークに対するMTUサイズ
(以下、ネットMTUと呼ぶ)とは独立した、大きなM
TUサイズ(以下、ホストMTUと呼ぶ)を提供する。
【0015】TCPでは、コネクション確立時に交換す
るMSSを越えるセグメントを送信してはならない。一
方、MSSの値はMTUサイズに依存するため、大きな
MTUサイズを持たない既存の端末では、大きなセグメ
ントを使用することが不可能である。そこで、既存端末
とのTCP通信においても、本方法を適用できるよう
に、パケット分割・組立をIPではなくTCPレベルで
行う。即ち、端末本体のTCPモジュールから送信され
た1つのDT(データセグメント)を、通信ボード上
で、それぞれ適切なTCP/IPヘッダを持つ複数のD
Tに分割してネットワークへ出力する。また、ネットワ
ークから入力された複数のDTを、通信ボード上で1つ
のDTに組み立てた上で、端末本体のTCPモジュール
へ通知する。一方、UDP(ユーザデータグラムプロト
コル)のようなメッセージ境界を保つ必要があるプロト
コルに対しては、通信ボード上でIPレベルのパケット
分割・組立(IPフラグメンテーションとリアセンブ
リ)を行う高速化を図る。
【0016】上記の処理により、TCP通信において
は、端末本体のTCPモジュールで処理される1つのD
Tは、ネットワーク上で転送される複数のDTに対応す
ることになる。このため、既存の端末との通信を想定し
た場合、分割前のDTに対するACK(確認応答)の数
はは多くなり、逆に、組立前のDTに対するACKの数
は少なくなることが予想される。一方、TCPのslow s
tart(スロータート)手順やcongestion avoidance(コ
ンジェスチョンアボイダンス)手順、あるいは、fast r
ecovery (ファーストリカバリ)手順において参照され
る輻輳ウインドウ(cwnd)はACK受信により更新され
る。また、fast retransmit(ファーストリトランスミ
ット)手順では受信したACKを調べてパケット紛失を
検出する。これらのため、通信ボード上でACKの数並
びにその内容を調整し、これらの制御手順への影響を抑
える。
【0017】ACK調整を行うために、通信ボード上で
個々のTCPコネクション毎に、送受信シーケンス番号
やACK番号を登録し参照する。そこで、これらの情報
(TCPコネクション毎の送受信シーケンス番号やAC
K番号)を保持するためのコネクションテーブルを通信
ボード上に用意する。また、パスMTU<ネットMTU
である場合は、パケット分割は、ネットMTUではなく
パスMTUに基づいて行う。このため、パスMTU<ネ
ットMTUである場合は、宛先IPアドレス毎にパスM
TU情報を参照できるようにする。
【0018】端末の収容先としては、基本的には150
0バイトのMTUサイズを持つ標準のイーサネットセグ
メントを想定しているが、これより大きなMTUサイズ
を持つイーサネットセグメントへ収容した場合も動作可
能である。
【0019】[全体構成]図1に本例に係るTCP通信
方法の全体構成を示す。図1において、1は通信ボー
ド、2はデバイスドライバ、3はTCP/IPモジュー
ルである。通信ボード1はオンボードCPUを有する市
販のPCIバス用GbEボード(例えば、Alteon Websy
stems ACEnic(アルテオン・ウェブシステムズ社のエー
スニック))には用い、本発明実現のため、GbEボー
ドのオンボードCPU(図示省略)上で動作する高速デ
ータ通信ソフトウェア(ファームウェア)を改修してあ
る。また、GbEボードに搭載されたPCI/GbEコ
ントロール用ASIC中には、2 つのRISC−CPU
(MIPS R4000 相当)が組み込まれており、端末本体(図
示省略)からダウンロードされたファームウェアによっ
て、送信パケットと受信パケットに対して付加的な処理
を行うことができるようにしてある。デバイスドライバ
2は端末本体と通信ボード1との間のデータ転送を制御
するための通信ボード1用デバイスドライバであり、端
末本体が有するCPU(ホストCPU:図示省略)で動
作する。デバイスドライバ2には、本発明実現のため、
GbEボード用デバイスドライバを改修して用いてい
る。TCP/IPモジュール3はTCPを処理するTC
Pモジュール及びIPを処理するIPモジュールであ
り、端末本体に備えられている。その他、端末本体はメ
モリ等を備え、ジャンボフレームをサポートしている。
端末本体にはUNIX(登録商標)コンピュータを用い
ている。
【0020】ファームウェアはデバイスドライバ2と協
調してTCPレベルのパケット分割・組立機能を提供
し、TCPを用いた通信に対して効率的なホストバスイ
ンターフェースを提供する。デバイスドライバ2は端末
本体のOS(例えばUNIX)のカーネルの一部として
実装され、カーネル内に予め用意されているIP等のプ
ロトコルモジュールと協調して動作する。また、端末本
体は、ファームウェア並びにデバイスドライバ2に実装
した機能に対する各種パラメータの設定並びに統計情報
の取得を行うための制御用ソフトウェアを有する。これ
はユーザプロセスである。
【0021】[ファームウェアとデバイスドライバ]上
記の機能を実現するため、通信ボードのファームウェア
並びに端末本体のデバイスドライバ2では、以下の処理
(1) 〜(5) を行う。
【0022】(1) デバイスドライバ2からIPモジュー
ルに対し、1500バイト以上のMTUサイズを通知す
る。通知するMTUサイズは制御プログラムにより可能
とし、例えば最大で36000バイトとする。デフォル
ト値は8800バイトとする。このMTUサイズはホス
トMTUである。
【0023】(2) ファームウェアでは、TCPコネクシ
ョンの確立を監視して、必要に応じて、対応するTCP
コネクションテーブルを作成する。このテーブルの最大
数はデフォルトで16とするが、コンパイルオプション
により変更可能としている。TCPレベルのパケット分
割・組立機能は、このTCPコネクションテーブルが作
成されているコネクションに対してのみ適用する。
【0024】(3) TCPではコネクション確立時に交換
するSYNパケット並びにSYN+ACKパケットを用
いてMSSを互いに交換するため、ファームウェアで必
要に応じてこれを書き換え、TCPモジュールに大きな
MSSを通知する。
【0025】(4) 上位プロトコルモジュールから渡され
たパケットを、送信側ファームウェアにより、制御用ソ
フトウェアにより指定されたMTUサイズでネットワー
クに出力できるようにする。このMTUサイズはボード
MTUである。このために、付加するヘッダを含む送信
パケットを連続したオンボードメモリ(通信ボード1)
上に置く。そこで、デバイスドライバ2において以下の
手順(a)、(b)を用いることにより、デバイスドラ
イバ2自身並びに通信ボード1上において不要なデータ
コピーを行うことなく、分割した各パケットに対して通
信ボード1上で容易にヘッダを付加できるようにする。 (a)デバイスドライバ2では、分割する各パケット毎
にDMA(Direct MemoryAccess)転送要求を設定する。
この際、先頭パケット以外は、DMA転送を開始するア
ドレスをヘッダ領域分、前にずらす( 図1の(a)参
照) 。パケット本体のコピーは行わない。 (b)ファームウェアでは、先頭パケットのヘッダ情報
を基に各パケットのヘッダを作成し、各パケットの先頭
部分を上書きして送信する(図1の(b)参照)。
【0026】(5) 受信側のファームウェアでは、ネット
ワークから受信したパケットをできる限り大きなパケッ
トサイズでデバイスドライバに通知するために、以下に
示す方針(a)〜(e)に従って組み立てる。 (a)受信したフレームがTCPセグメントであり、且
つ、対応するコネクションテーブルが存在する場合は、
原則として、端末本体に対して受信通知のための割り込
みをかけず、端末本体へのDMA転送のみ行い、次のフ
レームの受信を待つ。 (b)次の受信フレームが、受信済み(但し、端末本体
には未通知)のTCPセグメントに連続するTCPセグ
メントである場合は、受信フレームからTCP/IPヘ
ッダ等を取り除いて、1つのTCPセグメントに結合さ
れるようにDMA転送する。結合されたTCPセグメン
トに対するTCP/IPヘッダの書き換えも同時に行
う。 (c)セグメント紛失等により連続するTCPセグメン
トを受信しなかった場合や、上記の結合処理によってホ
ストMTUを超えたTCPセグメントとなる場合等、パ
ケット組立が不可能である場合は、これ以前に受信した
未通知のフレームのみを端末本体へ通知する。以降は、
セグメント紛失から回復するまで、該当するコネクショ
ンに属するセグメントの組立は行わない。 (d)セグメント紛失を検出した場合(rx_next
!=rex_max)は、シーケンス番号(SEQ番
号)を持つセグメントのグループrx_gleとrx_
max)を保持する。このグループが受信ホストから送
達確認(ACK.no≧rx_max−rex)される
か、このグループまでのセグメントを再度、紛失なく連
続して受信した場合に、セグメント紛失が回復したと見
なす。 (e)一定の待ち時間(deliver_timeou
t)経過後は、受信したフレームを端末本体へ通知す
る。
【0027】[TCP−ACK補償機能]TCPレベル
のパケット分割を行うことにより、TCPモジュールか
ら渡された1つのTCPセグメントに対して、複数のA
CKパケットが返ることが予想される。このため、下記
の問題(1) 〜(2) が予想される。 (1) ACK処理負荷が削減されない。 (2) スロースタート(slow start)時の輻輳ウインドウの
急増など、TCP輻輳制御との不整合が発生する。
【0028】一方、パケット組立を行う端末のTCPモ
ジュールでは、大きなパケットサイズでプロトコル処理
を行うため、十分にACKパケットを送信できない可能
性があり、これによりTCPの輻輳制御や再送制御に悪
影響を与える恐れがあると言う問題がある。
【0029】これらの問題を解決するために、以下の要
領(a)〜(b)により端末本体に通知するTCP−A
CK(ユーザデータを含まない) を削減し、また、ネッ
トワーク側へ送出するTCP−ACKを増加させること
とする。
【0030】(a)TCP−ACKの削減(送信側) (i) TCPコネクションテーブルにACK番号、並び
に、送信TCPセグメントのSEQ番号を記録する。記
録するSEQ番号は必要に応じて上書きする。 (ii)保持しているTCPセグメントのSEQ番号を送達
確認する場合、または、2×ホスト側MSS−ボード側
MSS(2*h_mss−n_mss)を超えるTCP
パケットを新規に送達確認する場合、または、最もSE
Q番号の大きい送信済みパケットをACKする場合(A
CK.no==snd_max)に、ACKを端末本体
に通知する。 (iii) DUPACK(重複ACK:ACK.noとAC
K.win(ウインドウサイズ)が前回と同じACK)
では、ホスト側MSS/ボード側MSSで与えられる個
数のDUPACK受信毎に端末本体へ通知する。
【0031】(b)TCP−ACKの増加(受信側) (i) TCPセグメントが連続して2セグメント受信した
場合は、通信ボード1でACKを作成し送信する。但
し、原則として、3セグメント目を受信後に2セグメン
ト分のACKをする。 (ii)3セグメント目が受信されない場合は、deliv
er_timer発火後、端末本体への通知と同時にa
ck_timerを起動させる。ack_timer発
火までに端末本体からのACK受信もしくはネットワー
クからのDT受信がなければ、ACKを作成し送信る。 (iii) パケット紛失時は、前述のようにDT受信毎にそ
のままホストに通知させ、適切にDUPACKを発生さ
せる。
【0032】従って、TCP通信に対する動作手順は以
下のように定まる。
【0033】[動作手順その1:コネクション確立とパ
スMTU設定]図2にTCPコネクション確立に伴う処
理フローを示す。TCPでは、コネクション確立時に相
手から通知されたMSSと自分のMSSとを比較し、い
ずれあ小さい方のMSSを使用する。このため、通信ボ
ード1とそのデバイスドライバ2では、コネクション確
立時に以下の処理(1) 〜(2) を行い、端末本体のTCP
モジュールで使用するMSSを大きく保つと同時に、相
手端末に対しては、ネットMTU(netMTU)またはパ
スMTU(pathMTU)に基づくMSSを通知する。更
に、必要であればパケット分割に用いるパスMTUの設
定も行う。
【0034】(1) 図2において、TCPモジュールから
のSYN(+ACK)を受信した場合(ステップS
1)、それに含まれるMSS(図2のSYN(+AC
K).MSS)を、同じIPアドレス宛のパスMTUが
あればこれに基づくMSSに、無い場合はネットMTU
に基づくMSSに更新し、相手端末に送信する(ステッ
プS2、S5)。受信がSYNであれば、同時にコネク
ションテーブルも作成する(ステップS3、S4)。
【0035】(2) ネットワークからのSYN(+AC
K)を受信した場合(ステップS6)、それに含まれる
MSS(図2のSYN(+ACK).MSS)と、同じ
IPアドレス宛のパスMTUがあればこれに基づくMS
S(図2のnmss)と、無い場合はネットMTUに基づく
MSS(図2のnmss)と比較する(ステップS7、S
8)。前者が小さい場合は、nmssの更新、並びに、パス
MTUの登録あるいは更新を行う(ステップS9)。次
に、ホストMTUに基づくMSSを超えないようにnmss
を整数倍した値を、SYN(+ACK)のMSSとして
TCPジュールに通知する(ステップS10、S1
3)。また、受信がSYNであれば、コネクションテー
ブルを作成する(ステップS11、S12)。
【0036】図3にコネクション確立時の通信シーケン
ス例を示す。ここでは、双方の端末で、ホストMTUを
9000バイト程度として、ネットMTUに1500ま
たは9000バイトを使用した4種類の組み合わせa〜
dに対するシーケンスを示している。
【0037】図3より、いずれの組み合わせの場合も、
ネットワーク側のMSSは小さい方のネットMTUに基
づく適切な値(a〜cでは1460バイト、dでは89
60バイト)が設定され、端末側のMSSもネットワー
ク側のMSSの整数倍(a〜cでは8760バイト、d
では8960バイト)となるように調整されていること
が判る。なお、dでは、双方の端末のネットMTUが9
000バイトであるため、端末間に9000バイトより
小さいMTUサイズを持つ経路が存在しなければ、パケ
ット分割は行われない。
【0038】一方、a〜dの全ての場合で、より小さい
パスMTUが通信経路中に存在する可能性もある。これ
は、データ転送中にICMPunreachable が返送される
ことで検出できる。通信ボード1ではICMPunreacha
ble に含まれる新しいパスMTUの登録。更新を行い、
分割に用いるパケットサイズを調整する。
【0039】[動作手順その2:データ転送時の手順]
図4に、本方法をサポートする端末間におけるデータ転
送開始直後の通信シーケンスを示す。以下、図4に沿っ
てデータ転送時の動作手順(1) 〜(5) を説明する。
【0040】(1) 送信側のTCP並びにIPモジュール
は、動作手順その1んいより提供される大きなMSS
(8760バイト:以降、ホストMSSと呼ぶ)並びに
MTUサイズを利用してプロトコル処理を行い、DT送
信を通信ボード1に要求する(図4中、(a)参照)。
【0041】(2) 送信側の通信ボード1では、DTを動
作手順その1により決定したMSS(1460バイト:
以降、ネットMSSと呼ぶ)に適合するように分割し、
各々に適切なTCP/IPヘッダを付加した上で送信す
る(図4中、(b)参照)。
【0042】(3) 受信側の通信ボード1では、DTが正
しく連続受信されている間は、原則としてネットワーク
から受信したDTを即座にTCPモジュールへは通知せ
ず、可能な限り大きなDTに組み立てる。DT通知は以
下のどちらかの条件(a)(b)を満たした時点で行
う。 (a)DTの長さ>ホストMTU−ネットMTU(図4
中、(c)参照)。 (b)先頭DTの受信後一定時間が経過(図4中、
(d)参照)。
【0043】(4) 一般的なTCPの実装では、2つのD
Tを正しく受信する毎に、対応するACK番号を持つA
CKを1つ返す。DT送信側が本方法をサポートしてい
ない場合も同様の間隔でACKが返るように、以下の要
領(a)(b)に従い受信側の通信ボード1でACKを
補填する。この際、TCPモジュールからのACKと重
複することを避けるようにしている。 (a)新たに2つのDTを送達確認可能である場合、次
のDT受信時にACKを送信する(図4中、(e)参
照)。但し、2つのDT毎にACKを返すために、最後
に受信したDTはACKの対象に含めない。 (b)上記(3) によるDT通知時点で、新たに2つのD
TをACKできる場合はACKタイマを設定する(図4
中、(f)〜(h)参照)。このタイマは次のDTの受
信(図4中、(f)参照)、もしくは、TCPモジュー
ルからのACK応答(図4中、(g)参照)によりキャ
ンセルされる。タイマが満了した場合は、通信ボード1
からACKを送信する(図4中、(h)参照)。
【0044】また、TCPモジュールからのACKにつ
いては、最後に送信したACKよりも新しい情報(AC
K番号、winsize)を含んでいれば送信側に転送する。こ
の際、通信ボード1でより進んだACK番号を既に送信
側に通知している場合は、これに合わせてACK番号と
ウインサイズ(winsize) を決定する(図4中、(i)参
照)。
【0045】(5) 一方、DT送信側の通信ボード1には
上記(4) により2つのDT送信毎に1つのACKが戻
る。TCPモジュールにおいても、cwndを適切に更新す
るために、分割前の2つのDTに対して1つのACKが
通知されることが望ましい。また、silly window syndr
ome (シリーウインドウシンドローム)を避けるために
は、ホストMSS以上の受信ウインドウを通知すべきで
ある。逆に、Nagle algorithm(ナグルアルゴリズム) 、
keep alive(キープアライブ)、window probe(ウイン
ドウプローブ)等の手順では、受信したACKを必ず通
知すべきである。そこで通信ボード1では、下記(a)
(b)(c)いずれかの処理は見込まれる場合のみ、A
CKを通知する。 (a)ホストMTUの2倍−ネットMTU以上のDTを
送信確認する(図4中、(j)参照)。 (b)干す炉MTU以上の受信ウインドウが付与される
(図4中、(k)参照)。 (c)送達確認待ちのDTがなくなるか、既にない(図
4中、(l)参照)。 なお、ACk番号またはwinsize のいずれかに、TCP
モジュールにまだ通知すべきでない小さな更新がある場
合は、これらを調整した上で通知する(図4中、(k)
参照)。
【0046】[動作手順その3:誤り回復時の手順]図
5に、DT紛失に伴う再送手順を含む通信シーケンス例
を示す。紛失DTに回復手順は、双方の端末のTCPに
よりエンド・エンドで提供される。以下、図5に従っ
て、TCPの誤り回復手順を考慮した方法の動作手順
(1) 〜(6) を説明する。
【0047】(1) DT(29201:30661) の紛失を検出する
と、通信ボード1は既に受信組立済みのDT(26281:292
01) を即座にTCPモジュールへ通知する(図5中、
(a)参照)。以降、通信ボード1では、TCPモジュ
ールの誤り回復手順の完了を確認するまで、受信したD
Tの組立は行わない(図5中、(b)参照)。
【0048】(2) 受信側通信ボード1では、TCPモジ
ュールにおける誤り回復手順の完了を検出するために、
DT紛失の検出後、最大のシーケンス番号を持つ連続し
た受信済みDTのグループをリスト [rx_gle,rx_max]
形式で保存する。
【0049】図5の例では、DT紛失を検出した直後の
受信済みDTグループは[30661,32121] であり、再送D
Tの受信直前は[30661,43801] となる。通信ボード1は
rx_gle までの紛失DTを受信することで、紛失部分が
なくなり、rx_max まで連続して受信した状態となる。
TCPモジュールから、rx_max まで送達確認するAC
Kが返されれば、TCPモジュールの誤り回復手順が完
了したと見なす。また、rx_max までの全てのDTが再
度連続して受信された場合も同様である。
【0050】(3) TCPモジュールから、紛失DTの送
信を要求するACK(a29201,w37961) が渡されると、通
信ボード1はこれを送信側に転送する。以降も、DT通
知毎に返送されるduplicate ACKについては、そのま
ま送信側に転送する。(図5中、(c)参照)。
【0051】(4) 送信側の通信ボード1において検出し
たduplicate ACK(a29291,w62615) は、fast retrans
mit の開始前後で以下(a)(b)のように処理を変え
る。 (a)fast retransmit を素早く開始させるために、T
CPモジュールに同一のACKを既に通知済みか同化検
査し、通知済みであれば1つのACKを、そうでなけれ
ば2つのACKをTCPモジュールに通知する。更に、
2つのduplicateACKいついては、受信次第TCPモ
ジュールに通知する(図5中、(e)参照)。 (b)その後は、fast recovery 手順でのcwndの急激な
増加を避けるために、ホストMTU/ネットMTU(比
の値)個に1つの割合で、duplicate ACKが通知され
るようにする。但し、fast retransmit 開始のために先
に通知した4つのACKを考慮して、次の(5番目)の
ACK通知だけは、前のACKから数えてホストMTU
の4倍/ネットMTU(比の値)−3なる個数のduplic
ate ACKを受信した時点で行う。
【0052】(5) TCPモジュールは、duplicate AC
Kを受信すると、DT(29201:37961) を再送する。通信
ボード1れは、これをネットMSSに基づき分割し、先
頭のDT(29201:30661) だけを送信する(図5中、
(f)参照)。
【0053】(6) 受信側の通信ボード1では、再送DT
(29201:30661) の受信により、紛失部分がなくなり受信
済みDTグループ[30661,43801] まで連続して受信した
状態となる。そこで通信ボード1では、rx_max =4380
1 をrx_max_rec に記録し、再送DTをTCPモジュ
ールに通知する。そして、TCPモジュールから返送さ
れるACK(a43801,w35040) により、誤り回復の完了を
確認する。これにより、以降の受信DT(45261:46721−
51101:52561 は組立可能となる(図5中、(g)参
照)。一方、ACKが戻る前に受信したDT(43801:452
61) は、誤り回復完了を検出する前であるため、受信後
すぐにTCPモジュールへ通知されている(図5中、
(h)参照)。本DTはrx_max_rec に連続するた
め、ACK(a43801,w35050) が戻った時点で、TCPモ
ジュールにより正常に連続受信されることが保証され
る。
【0054】[動作手順その4:コネクション終了時の
手順]図6に、コネクション終了時の通信シーケンス例
を示す。本方法では、コネクション終了に伴う状態遷移
を簡素化するために、TCPモジュールからのコネクシ
ョン終了要求(FIN)並びにその送達確認のみを監視
する。TCPモジュールからのFINが送達確認された
時点で、そのコネクションに対しては、通信ボード1に
新たなパケット送信要求か来ないことが保証されるた
め、該当するコネクションテーブルを削除することがで
きる。以下、図6を例に、コネクション終了時の手順
(1) 〜(3) を説明する。
【0055】(1) 通信ボード1では、TCPモジュール
からFINフラグを有効にしたDTを渡されると、これ
がネットMSS以上のユーザデータを含むDTである場
合あ、これを通信ボード1で分割する。その際、FIN
フラグは分割後の最後のDTのみ有効にする(図6中、
(a)参照)。
【0056】(2) 一方、ネットワークから受信したFI
Nセグメントについては、通信ボード1上で、通常のD
Tと同様、可能であれば前のDTに連結する。そして、
直ぐに、TCPモジュールへ通知する(図6中、(b)
参照)。
【0057】(3) ネットワークからFINに対するAC
Kを受信すると、通信ボード1はこれをTCPモジュー
ルへ通知し、コネクションテーブルを削除する(図6
中、(c)参照)。以降は、通信ボード1はTCP通信
に介在せず、受信データをそのままTCPモジュールへ
通知する(図6中、(d)参照)。
【0058】上述のように、通信ボード1のオンボード
CPUを利用して、TCPまで考慮したパケット分割と
組立を行うことにより、端末に大きなMTUサイズを提
供するから、例えば標準のイーサネットと同じMTUサ
イズ(1500バイト)をネットワーク上で用いること
ができる。つまり、ネットワークでは広く使用されてい
る小さなパケットサイズを用いつつ、ホスト内では大き
なパケットサイズで効率良くTCPのプロトコル処理を
行うことができる。このため、本方法をサポートする端
末のプロトコルモジュールでは、大きなMTUサイズを
サポートしない既存の端末やネットワーク機器と接続し
た場合でも、大きなパケットで処理を行うことが可能と
なる。
【0059】また、パケットの分割・組立により、端末
本体のTCPモジュールにおける1つのデータセグメン
ト(DT)が、ネットワーク上における複数のデータセ
グメント(DT)に対応するので、本方法をサポートす
る端末が既存端末と通信した場合は、双方の端末が送受
信するACK(確認応答)の数が変動するので、TCP
の輻輳制御や再送処理に影響が現れる可能性があるが、
ACK数の増減を調整することによりこの影響を抑制す
ることができる。
【0060】つまり、TCPレベルのパケット分解・組
立を行うと、通信ボード1が端末本体ホストから受信す
るACKパケットが、通信ボード1が通信相手へ送信す
べきACKパケットよりも減少し、反対に、通信ボード
1が端末本体へ通知すべきACKパケットよりも、通信
ボード1が通信相手から受信するACKパケットが増加
する。このようなACKパケット数の不一致はTCP輻
輳制御機能等に副作用を与えるが、ACKパケット増減
を補償することにより、TCP輻輳制御機能等に与える
副作用を防ぐことができる。
【0061】更に、TCP以外のパケット、例えばUD
Pパケットについては、通信ボード1上でIPフラグメ
ンテーション(IP分割)並びにそのデフラグメンテー
ション(IP組立)を行うことにより、送信端末トや受
信端末トにおけるプロトコル処理の負荷が削減可能であ
る。
【0062】また、端末本体と通信ボード1間でのTC
Pレベルのパケット分解・組立には、メモリコピーを行
わず、DMA転送を行うことにより処理時間を短縮する
ことができる。
【0063】互いに通信する端末間の一方が上述の機能
をサポートすることにより、他方の端末及びネットワー
ク機器がジャンボフレームをサポートしない場合でも、
相互接続性を保証することができる。
【0064】また、上述の機能を双方の端末がともにサ
ポートしていれば、ネットワーク機器がジャンボフレー
ムをサポートしない場合でも、全てジャンボフレームを
適用した場合と同様に、各端末上でTCP、IP、デバ
イスドライバ等の処理オーバヘッドを削減することが可
能である。
【0065】
【発明の効果】本発明によれば、ネットワークで広く用
いられている例えば1500バイト程度の小さなパケッ
トサイズを変更することなく、端末において大きなパケ
ットサイズによる効率的なTCP通信が可能となる。ま
た、パケットの分解・組立に伴うACKパケットの増大
・不足を補償することで、TCP輻輳制御等との不整合
を防止することができ、ネットワークに対して従来と同
様の輻輳制御等を提供することが可能となる。このよう
な効果を持つ本発明は、FPGA等の(プログラマブ
ル)ロジックによる実装を通じた通信装置への適用等が
可能である。
【図面の簡単な説明】
【図1】本発明の実施形態例に係るTCP通信方法の全
体構成を示す図。
【図2】コネクション確立時の処理フローを示す図。
【図3】コネクション確立時の通信シーケンス例を示す
図。
【図4】データ転送時の通信シーケンス例を示す図。
【図5】再送時の通信シーケンス例を示す図。
【図6】コネクション終了時の通信シーケンス例を示す
図。
【符号の説明】
1 通信ボード 2 デバイスドライバ 3 TCP/IPモジュール
───────────────────────────────────────────────────── フロントページの続き (72)発明者 加藤 聰彦 埼玉県上福岡市大原二丁目1番15号 株式 会社ケイディディ研究所内 Fターム(参考) 5K030 GA01 HA08 HB28 JA05 KA12 LA02 5K033 AA01 AA03 CB04 CB06 CC02 5K034 AA01 AA07 BB06 LL01 MM25

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 端末本体に搭載される通信ボード上のC
    PU(以下、オンボードCPUと呼ぶ)を利用してTC
    Pレベルでパケットの分割及び組立を行うことによりT
    CP通信を高速化することを特徴とするTCP通信方
    法。
  2. 【請求項2】 請求項1において、前記端末本体のTC
    Pモジュールから送信された1つのデータセグメントを
    前記通信ボード上で適切なTCP/IPヘッダを持つ複
    数のデータセグメントに分割してネットワークへ出力
    し、前記ネットワークから入力された複数のデータセグ
    メントを前記通信ボード上で1つのデータセグメントに
    組み立てた後、前記TCPモジュールに通知することを
    特徴とするTCP通信方法。
  3. 【請求項3】 請求項2において、分割前のデータセグ
    メントに対するACKパケットの増加、並びに、組立前
    のデータセグメントに対するACKパケットの減少を前
    記通信ボード上で調整し、これらACKパケットの増減
    がTCPの輻輳制御や再送処理等の制御手順へ及ぼす影
    響を防ぐことを特徴とするTCP通信方法。
  4. 【請求項4】 請求項3において、送受信シーケンス番
    号及びACK番号をTCPコネクション毎に保持するコ
    ネクションテーブルを前記通信ボード上に用意し、前記
    コネクションテーブルを参照して前記ACKパケットの
    増減を調整することを特徴とするTCP通信方法。
  5. 【請求項5】 請求項2において、通信経路上のネット
    ワークを含む全てのリンクにおけるMTUサイズ(以
    下、パスMTUと呼ぶ)と、ネットワークに対するMT
    Uサイズ(以下、ネットMTUと呼ぶ)を比較し、パス
    MTU≧ネットMTUである場合はネットMTUに基づ
    いて前記データセグメントの分割を行い、パスMTU<
    ネットMTUである場合はパスMTUに基づいて前記デ
    ータセグメントの分割を行うことを特徴とするTCP通
    信方法。
  6. 【請求項6】 請求項5において、宛先IPアドレス毎
    にパスMTU情報を参照して、前記パスMTUに基づく
    データセグメントの分割を行うことを特徴とするTCP
    通信方法。
  7. 【請求項7】 請求項1において、UDPのようにメッ
    セージ境界を保つ必要があるプロトコルのパケットに対
    してはIPレベルでパケットの分割及び組立を行うこと
    を特徴とするTCP通信方法。
  8. 【請求項8】 TCPを処理するTCPモジュール及び
    IPを処理するIPモジュールを有する端末本体と、C
    PU及びメモリを有し、ネットワーク及び前記ホストに
    接続される通信ボードと、該通信ボードの前記CPU
    (オンボードCPU)上で動作するファームウェアと、
    前記端末本体が有するCPU(以下、ホストCPUと呼
    ぶ)で動作する、前記通信ボード用のデバイスドライバ
    とによりTCP通信を行うこと、前記ファームウェア
    は、TCPコネクションの確立を監視し、該TCPコネ
    クションの確立手順を利用することより、前記端末本体
    が前記ネットワーク上のパケットサイズよりも大きなパ
    ケットサイズを利用することを可能にする第1機能と、
    前記通信ボードへ前記端末本体から分割されてDMA転
    送されたTCPセグメントに適切なTCPヘッダを付加
    し、前記通信ボードから前記ネットワークへ転送する第
    2機能と、前記ネットワークから前記通信ボードが受信
    したパケットをTCPコネクション毎にまとめて1つの
    パケットとして前記端末本体へ通知する第3機能を提供
    すること、前記デバイスドライバは、前記端末本体から
    前記通信ボードへ渡されるべきパケットを、メモリコピ
    ーを行うことなく、前記通信ボードでのTCPヘッダの
    付加を考慮して分割し、通信ボードの前記メモリにDM
    A転送する機能を提供することを特徴とするTCP通信
    方法。
  9. 【請求項9】 請求項8において、前記ファームウェア
    は、前記第1、第2及び第3機能により生じる前記端末
    本体から前記通信ボードへのACKパケットの減少、並
    びに、前記ネットワークから前記通信ボードへのACK
    パケットの増加を防ぐ第4機能を提供することを特徴と
    するTCP通信方法。
JP2000271666A 2000-09-07 2000-09-07 Tcp通信方法 Expired - Fee Related JP4041646B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000271666A JP4041646B2 (ja) 2000-09-07 2000-09-07 Tcp通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000271666A JP4041646B2 (ja) 2000-09-07 2000-09-07 Tcp通信方法

Publications (2)

Publication Number Publication Date
JP2002084289A true JP2002084289A (ja) 2002-03-22
JP4041646B2 JP4041646B2 (ja) 2008-01-30

Family

ID=18757917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000271666A Expired - Fee Related JP4041646B2 (ja) 2000-09-07 2000-09-07 Tcp通信方法

Country Status (1)

Country Link
JP (1) JP4041646B2 (ja)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068803A1 (ja) * 2003-01-27 2004-08-12 Fujitsu Limited パス設定方法及びそれを用いた伝送装置及び監視制御装置及びそのプログラムを記録した記録媒体
JP2006295819A (ja) * 2005-04-14 2006-10-26 Sony Corp データ送信装置、データ送信方法及びデータ送信プログラム
JP2007538331A (ja) * 2004-05-18 2007-12-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びバッファリング方法
JP2008028767A (ja) * 2006-07-21 2008-02-07 Sumitomo Electric Networks Inc ネットワークカードおよび情報処理装置
US7561573B2 (en) 2005-03-23 2009-07-14 Fujitsu Limited Network adaptor, communication system and communication method
JP2010124430A (ja) * 2008-11-21 2010-06-03 Fujitsu Advanced Engineering Ltd コンピュータプログラム、データ捕捉装置、データ捕捉方法及びデータ管理システム
WO2010073671A1 (ja) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
JP2011249922A (ja) * 2010-05-24 2011-12-08 Nec Access Technica Ltd ネットワーク装置、tcpパケット受信装置及び方法
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8261057B2 (en) 2004-06-30 2012-09-04 Citrix Systems, Inc. System and method for establishing a virtual private network
US8291119B2 (en) 2004-07-23 2012-10-16 Citrix Systems, Inc. Method and systems for securing remote access to private networks
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8351333B2 (en) 2004-07-23 2013-01-08 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol using false acknowledgements
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8499057B2 (en) 2005-12-30 2013-07-30 Citrix Systems, Inc System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8559449B2 (en) 2003-11-11 2013-10-15 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8856777B2 (en) 2004-12-30 2014-10-07 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
CN115622944A (zh) * 2022-10-09 2023-01-17 上海华讯网络系统有限公司 基于多并行度下数据流的tcp拼包方法和系统

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068803A1 (ja) * 2003-01-27 2004-08-12 Fujitsu Limited パス設定方法及びそれを用いた伝送装置及び監視制御装置及びそのプログラムを記録した記録媒体
US8559449B2 (en) 2003-11-11 2013-10-15 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US8086800B2 (en) 2004-05-18 2011-12-27 Koninklijke Philips Electronics N.V. Integrated circuit and method for buffering to optimize burst length in networks on chips
JP2007538331A (ja) * 2004-05-18 2007-12-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びバッファリング方法
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8726006B2 (en) 2004-06-30 2014-05-13 Citrix Systems, Inc. System and method for establishing a virtual private network
US8261057B2 (en) 2004-06-30 2012-09-04 Citrix Systems, Inc. System and method for establishing a virtual private network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8892778B2 (en) 2004-07-23 2014-11-18 Citrix Systems, Inc. Method and systems for securing remote access to private networks
US8634420B2 (en) 2004-07-23 2014-01-21 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol
US8914522B2 (en) 2004-07-23 2014-12-16 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
US8897299B2 (en) 2004-07-23 2014-11-25 Citrix Systems, Inc. Method and systems for routing packets from a gateway to an endpoint
US8291119B2 (en) 2004-07-23 2012-10-16 Citrix Systems, Inc. Method and systems for securing remote access to private networks
US8351333B2 (en) 2004-07-23 2013-01-08 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol using false acknowledgements
US8363650B2 (en) 2004-07-23 2013-01-29 Citrix Systems, Inc. Method and systems for routing packets from a gateway to an endpoint
US9219579B2 (en) 2004-07-23 2015-12-22 Citrix Systems, Inc. Systems and methods for client-side application-aware prioritization of network communications
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8856777B2 (en) 2004-12-30 2014-10-07 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8788581B2 (en) 2005-01-24 2014-07-22 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8848710B2 (en) 2005-01-24 2014-09-30 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US7561573B2 (en) 2005-03-23 2009-07-14 Fujitsu Limited Network adaptor, communication system and communication method
JP2006295819A (ja) * 2005-04-14 2006-10-26 Sony Corp データ送信装置、データ送信方法及びデータ送信プログラム
US8499057B2 (en) 2005-12-30 2013-07-30 Citrix Systems, Inc System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
JP2008028767A (ja) * 2006-07-21 2008-02-07 Sumitomo Electric Networks Inc ネットワークカードおよび情報処理装置
JP2010124430A (ja) * 2008-11-21 2010-06-03 Fujitsu Advanced Engineering Ltd コンピュータプログラム、データ捕捉装置、データ捕捉方法及びデータ管理システム
WO2010073671A1 (ja) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
US9042244B2 (en) 2008-12-25 2015-05-26 Panasonic Intellectual Property Corporation Of America TCP transmission control device and method of control of TCP transmission
JP2011249922A (ja) * 2010-05-24 2011-12-08 Nec Access Technica Ltd ネットワーク装置、tcpパケット受信装置及び方法
CN115622944A (zh) * 2022-10-09 2023-01-17 上海华讯网络系统有限公司 基于多并行度下数据流的tcp拼包方法和系统

Also Published As

Publication number Publication date
JP4041646B2 (ja) 2008-01-30

Similar Documents

Publication Publication Date Title
JP2002084289A (ja) Tcp通信方法
US10237153B2 (en) Packet retransmission method and apparatus
JP4248550B2 (ja) マルチtcp確認応答を用いたtcp輻輳制御システム及びその方法
EP1771742B1 (en) High performance tcp for systems with infrequent ack
US7042907B2 (en) Packet transfer apparatus and method
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
US6907042B1 (en) Packet processing device
CN102006283B (zh) 数据传输的方法和装置
US7277390B2 (en) TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
US20050226239A1 (en) Optimizing IEEE 802.11 for TCP/IP data transfer
US8085669B2 (en) Session relay device and session relay method
JP2021525044A (ja) 伝送制御方法および装置
US20070291782A1 (en) Acknowledgement filtering
JP5832335B2 (ja) 通信装置および通信システム
JP4434019B2 (ja) データ配信管理装置およびデータ配信管理方法
WO2019196853A1 (zh) Tcp加速方法及装置
JP2000022744A (ja) パケット通信システム、パケット通信装置及びパケット通信方法
KR100468290B1 (ko) 유디피 제어시스템
JP3741421B2 (ja) データ通信方法及び通信端末装置
US9628397B2 (en) Communication device and related packet processing method
KR100913897B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
JP4531302B2 (ja) パケット中継装置、及びその方法
JP2006279867A (ja) Adsl通信装置、プログラム及び方法
de AE Lima et al. On the performance of TCP loss recovery mechanisms
KR20040024628A (ko) 유디피 제어시스템의 송수신처리방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071015

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071112

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

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees