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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
500バイト程度の小さなパケットサイズを変更するこ
となく、端末において大きなパケットサイズによる効率
的なTCP通信を可能にする。 【解決手段】 通信ボード1上のCPUを利用してTC
Pレベルでパケットの分割及び組立を行うことによりT
CP通信を高速化する。
Description
する技術に関する。
IPの最大パケット長(Maximum Transfer Unit size:以
下、MTUサイズと呼ぶ)は1500バイトであり、T
CPの最大ユーザデータ長(Maximum Segment Siz: 以
下、MSSと呼ぶ)はMTUサイズからIP及びTCP
のヘッダ領域を除いた1460バイトである。
Pの最大ユーザデータ長MSSが小さいために、パケッ
ト単位で行われるTCPやIPのプロトコル処理、並び
に、ホスト端末と通信ボード間のデータ転送処理がホス
ト端末に対して大きなオーバヘッドとなり、この処理オ
ーバヘッドがTCP通信の高速化を妨げている。
は、より大きなMSSを用いることが望まれる。
iga bits Ethernet(登録商標):以
下、GbEと呼ぶ)の普及に伴い、ホスト端末において
もギガビットクラスの広い帯域を利用可能になってい
る。しかし、GbEで標準的に用いられているMTUサ
イズは通常のイーサネットと同じ1500バイトである
ため、現状のホスト端末ではやはり、パケット単位で行
われるプロトコル処理、並びに、ホスト端末と通信ボー
ド間のデータ転送処理が大きなオーバヘッドとなる。
く拡張したイーサネットフレーム(以下、ジャンボフレ
ームと呼ぶ)を用いてMTUサイズを拡大する方法が提
案されている(例えば、MTUサイズ:8800バイ
ト、MSS:8760バイト)。しかし、この方法には
下記に示す問題点がある。 (1) 原則として、サブネットを構成するホスト端末、並
びに、スイッチやルータ等のネットワーク機器全てが、
ジャンボフレームをサポートする必要がある。このた
め、ジャンボフレームをサポートしない既存のホスト端
末とは同一のサブネットを構成できない。 (2) 通信経路上の、広域網を含む全てのリンクにおける
MTUサイズ(以下、パスMTUサイズと呼ぶ)が例え
ば8800バイト以上と大きい必要がある。そうでない
場合は、ルータでのIPパケットの分割(IPフラグメ
ンテーション) や、ホスト端末でのパスMTUサイズに
応じたパケットサイズの調整(最大セグメントサイズの
交換、パスMTUディスカバリー(path MTU discover
y))が起きるため、大きなサイズのパケットで通信する
ことは不可能である。
MTUサイズよりも大きなMTUサイズをホスト端末に
提供することができるTCP通信方法を提供することで
ある。
記課題を解決するTCP通信方法であり、端末本体に搭
載される通信ボード上のCPU(オンボードCPU)を
利用してTCPレベルでパケットの分割及び組立を行う
ことを特徴とする。請求項2に係る発明は、請求項1に
おいて、前記端末本体のTCPモジュールから送信され
た1つのデータセグメントを前記通信ボード上で適切な
TCP/IPヘッダを持つ複数のデータセグメントに分
割してネットワークへ出力し、前記ネットワークから入
力された複数のデータセグメントを前記通信ボード上で
1つのデータセグメントに組み立てた後、前記TCPモ
ジュールに通知することを特徴とするTCP通信方法で
ある。
て、分割前のデータセグメントに対するACKパケット
の増加、並びに、組立前のデータセグメントに対するA
CKパケットの減少を前記通信ボード上で調整し、これ
らACKパケットの増減がTCPの輻輳制御や再送処理
等の制御手順へ及ぼす影響を防ぐことを特徴とするTC
P通信方法である。請求項4に係る発明は、請求項3に
おいて、送受信シーケンス番号及びACK番号をTCP
コネクション毎に保持するコネクションテーブルを前記
通信ボード上に用意し、前記コネクションテーブルを参
照して前記ACKパケットの増減を調整することを特徴
とするTCP通信方法である。
て、通信経路上のネットワークを含む全てのリンクにお
けるMTUサイズ(以下、パスMTUと呼ぶ)と、ネッ
トワークに対するMTUサイズ(以下、ネットMTUと
呼ぶ)を比較し、パスMTU≧ネットMTUである場合
はネットMTUに基づいて前記データセグメントの分割
を行い、パスMTU<ネットMTUである場合はパスM
TUに基づいて前記データセグメントの分割を行うこと
を特徴とするTCP通信方法である。請求項6に係る発
明は、請求項5において、宛先IPアドレス毎にパスM
TU情報を参照して、前記パスMTUに基づくデータセ
グメントの分割を行うことを特徴とするTCP通信方法
である。
て、UDPのようにメッセージ境界を保つ必要があるプ
ロトコルのパケットに対してはIPレベルでパケットの
分割及び組立を行うことを特徴とするTCP通信方法で
ある。
他の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通信方法である。
態例に係るTCP通信方法を説明する。
のCPU(オンボードCPU)を利用してパケットの分
割及び組立を行うことにより、ネットワークに対しては
標準のイーサネットと同じMTUサイズを使用しつつ、
端末本体のTCPやIP等のプロトコルモジュールにお
いて大きなパケットの利用を可能とする。このため、通
信ボード用のデバイスドライバでは、端末本体のIPモ
ジュールに対して、ネットワークに対するMTUサイズ
(以下、ネットMTUと呼ぶ)とは独立した、大きなM
TUサイズ(以下、ホストMTUと呼ぶ)を提供する。
るMSSを越えるセグメントを送信してはならない。一
方、MSSの値はMTUサイズに依存するため、大きな
MTUサイズを持たない既存の端末では、大きなセグメ
ントを使用することが不可能である。そこで、既存端末
とのTCP通信においても、本方法を適用できるよう
に、パケット分割・組立をIPではなくTCPレベルで
行う。即ち、端末本体のTCPモジュールから送信され
た1つのDT(データセグメント)を、通信ボード上
で、それぞれ適切なTCP/IPヘッダを持つ複数のD
Tに分割してネットワークへ出力する。また、ネットワ
ークから入力された複数のDTを、通信ボード上で1つ
のDTに組み立てた上で、端末本体のTCPモジュール
へ通知する。一方、UDP(ユーザデータグラムプロト
コル)のようなメッセージ境界を保つ必要があるプロト
コルに対しては、通信ボード上でIPレベルのパケット
分割・組立(IPフラグメンテーションとリアセンブ
リ)を行う高速化を図る。
は、端末本体のTCPモジュールで処理される1つのD
Tは、ネットワーク上で転送される複数のDTに対応す
ることになる。このため、既存の端末との通信を想定し
た場合、分割前のDTに対するACK(確認応答)の数
はは多くなり、逆に、組立前のDTに対するACKの数
は少なくなることが予想される。一方、TCPのslow s
tart(スロータート)手順やcongestion avoidance(コ
ンジェスチョンアボイダンス)手順、あるいは、fast r
ecovery (ファーストリカバリ)手順において参照され
る輻輳ウインドウ(cwnd)はACK受信により更新され
る。また、fast retransmit(ファーストリトランスミ
ット)手順では受信したACKを調べてパケット紛失を
検出する。これらのため、通信ボード上でACKの数並
びにその内容を調整し、これらの制御手順への影響を抑
える。
個々のTCPコネクション毎に、送受信シーケンス番号
やACK番号を登録し参照する。そこで、これらの情報
(TCPコネクション毎の送受信シーケンス番号やAC
K番号)を保持するためのコネクションテーブルを通信
ボード上に用意する。また、パスMTU<ネットMTU
である場合は、パケット分割は、ネットMTUではなく
パスMTUに基づいて行う。このため、パスMTU<ネ
ットMTUである場合は、宛先IPアドレス毎にパスM
TU情報を参照できるようにする。
0バイトのMTUサイズを持つ標準のイーサネットセグ
メントを想定しているが、これより大きなMTUサイズ
を持つイーサネットセグメントへ収容した場合も動作可
能である。
方法の全体構成を示す。図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(登録商標)コンピュータを用い
ている。
調してTCPレベルのパケット分割・組立機能を提供
し、TCPを用いた通信に対して効率的なホストバスイ
ンターフェースを提供する。デバイスドライバ2は端末
本体のOS(例えばUNIX)のカーネルの一部として
実装され、カーネル内に予め用意されているIP等のプ
ロトコルモジュールと協調して動作する。また、端末本
体は、ファームウェア並びにデバイスドライバ2に実装
した機能に対する各種パラメータの設定並びに統計情報
の取得を行うための制御用ソフトウェアを有する。これ
はユーザプロセスである。
記の機能を実現するため、通信ボードのファームウェア
並びに端末本体のデバイスドライバ2では、以下の処理
(1) 〜(5) を行う。
ルに対し、1500バイト以上のMTUサイズを通知す
る。通知するMTUサイズは制御プログラムにより可能
とし、例えば最大で36000バイトとする。デフォル
ト値は8800バイトとする。このMTUサイズはホス
トMTUである。
ョンの確立を監視して、必要に応じて、対応するTCP
コネクションテーブルを作成する。このテーブルの最大
数はデフォルトで16とするが、コンパイルオプション
により変更可能としている。TCPレベルのパケット分
割・組立機能は、このTCPコネクションテーブルが作
成されているコネクションに対してのみ適用する。
するSYNパケット並びにSYN+ACKパケットを用
いてMSSを互いに交換するため、ファームウェアで必
要に応じてこれを書き換え、TCPモジュールに大きな
MSSを通知する。
たパケットを、送信側ファームウェアにより、制御用ソ
フトウェアにより指定されたMTUサイズでネットワー
クに出力できるようにする。このMTUサイズはボード
MTUである。このために、付加するヘッダを含む送信
パケットを連続したオンボードメモリ(通信ボード1)
上に置く。そこで、デバイスドライバ2において以下の
手順(a)、(b)を用いることにより、デバイスドラ
イバ2自身並びに通信ボード1上において不要なデータ
コピーを行うことなく、分割した各パケットに対して通
信ボード1上で容易にヘッダを付加できるようにする。 (a)デバイスドライバ2では、分割する各パケット毎
にDMA(Direct MemoryAccess)転送要求を設定する。
この際、先頭パケット以外は、DMA転送を開始するア
ドレスをヘッダ領域分、前にずらす( 図1の(a)参
照) 。パケット本体のコピーは行わない。 (b)ファームウェアでは、先頭パケットのヘッダ情報
を基に各パケットのヘッダを作成し、各パケットの先頭
部分を上書きして送信する(図1の(b)参照)。
ワークから受信したパケットをできる限り大きなパケッ
トサイズでデバイスドライバに通知するために、以下に
示す方針(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)経過後は、受信したフレームを端末本体へ通知す
る。
のパケット分割を行うことにより、TCPモジュールか
ら渡された1つのTCPセグメントに対して、複数のA
CKパケットが返ることが予想される。このため、下記
の問題(1) 〜(2) が予想される。 (1) ACK処理負荷が削減されない。 (2) スロースタート(slow start)時の輻輳ウインドウの
急増など、TCP輻輳制御との不整合が発生する。
ジュールでは、大きなパケットサイズでプロトコル処理
を行うため、十分にACKパケットを送信できない可能
性があり、これによりTCPの輻輳制御や再送制御に悪
影響を与える恐れがあると言う問題がある。
領(a)〜(b)により端末本体に通知するTCP−A
CK(ユーザデータを含まない) を削減し、また、ネッ
トワーク側へ送出する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受信毎に端末本体へ通知する。
場合は、通信ボード1でACKを作成し送信する。但
し、原則として、3セグメント目を受信後に2セグメン
ト分のACKをする。 (ii)3セグメント目が受信されない場合は、deliv
er_timer発火後、端末本体への通知と同時にa
ck_timerを起動させる。ack_timer発
火までに端末本体からのACK受信もしくはネットワー
クからのDT受信がなければ、ACKを作成し送信る。 (iii) パケット紛失時は、前述のようにDT受信毎にそ
のままホストに通知させ、適切にDUPACKを発生さ
せる。
下のように定まる。
スMTU設定]図2にTCPコネクション確立に伴う処
理フローを示す。TCPでは、コネクション確立時に相
手から通知されたMSSと自分のMSSとを比較し、い
ずれあ小さい方のMSSを使用する。このため、通信ボ
ード1とそのデバイスドライバ2では、コネクション確
立時に以下の処理(1) 〜(2) を行い、端末本体のTCP
モジュールで使用するMSSを大きく保つと同時に、相
手端末に対しては、ネットMTU(netMTU)またはパ
スMTU(pathMTU)に基づくMSSを通知する。更
に、必要であればパケット分割に用いるパスMTUの設
定も行う。
のSYN(+ACK)を受信した場合(ステップS
1)、それに含まれるMSS(図2のSYN(+AC
K).MSS)を、同じIPアドレス宛のパスMTUが
あればこれに基づくMSSに、無い場合はネットMTU
に基づくMSSに更新し、相手端末に送信する(ステッ
プS2、S5)。受信がSYNであれば、同時にコネク
ションテーブルも作成する(ステップS3、S4)。
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)。
ス例を示す。ここでは、双方の端末で、ホストMTUを
9000バイト程度として、ネットMTUに1500ま
たは9000バイトを使用した4種類の組み合わせa〜
dに対するシーケンスを示している。
ネットワーク側のMSSは小さい方のネットMTUに基
づく適切な値(a〜cでは1460バイト、dでは89
60バイト)が設定され、端末側のMSSもネットワー
ク側のMSSの整数倍(a〜cでは8760バイト、d
では8960バイト)となるように調整されていること
が判る。なお、dでは、双方の端末のネットMTUが9
000バイトであるため、端末間に9000バイトより
小さいMTUサイズを持つ経路が存在しなければ、パケ
ット分割は行われない。
パスMTUが通信経路中に存在する可能性もある。これ
は、データ転送中にICMPunreachable が返送される
ことで検出できる。通信ボード1ではICMPunreacha
ble に含まれる新しいパスMTUの登録。更新を行い、
分割に用いるパケットサイズを調整する。
図4に、本方法をサポートする端末間におけるデータ転
送開始直後の通信シーケンスを示す。以下、図4に沿っ
てデータ転送時の動作手順(1) 〜(5) を説明する。
は、動作手順その1んいより提供される大きなMSS
(8760バイト:以降、ホストMSSと呼ぶ)並びに
MTUサイズを利用してプロトコル処理を行い、DT送
信を通信ボード1に要求する(図4中、(a)参照)。
作手順その1により決定したMSS(1460バイト:
以降、ネットMSSと呼ぶ)に適合するように分割し、
各々に適切なTCP/IPヘッダを付加した上で送信す
る(図4中、(b)参照)。
しく連続受信されている間は、原則としてネットワーク
から受信したDTを即座にTCPモジュールへは通知せ
ず、可能な限り大きなDTに組み立てる。DT通知は以
下のどちらかの条件(a)(b)を満たした時点で行
う。 (a)DTの長さ>ホストMTU−ネットMTU(図4
中、(c)参照)。 (b)先頭DTの受信後一定時間が経過(図4中、
(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)参照)。
いては、最後に送信したACKよりも新しい情報(AC
K番号、winsize)を含んでいれば送信側に転送する。こ
の際、通信ボード1でより進んだACK番号を既に送信
側に通知している場合は、これに合わせてACK番号と
ウインサイズ(winsize) を決定する(図4中、(i)参
照)。
上記(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)
参照)。
5に、DT紛失に伴う再送手順を含む通信シーケンス例
を示す。紛失DTに回復手順は、双方の端末のTCPに
よりエンド・エンドで提供される。以下、図5に従っ
て、TCPの誤り回復手順を考慮した方法の動作手順
(1) 〜(6) を説明する。
と、通信ボード1は既に受信組立済みのDT(26281:292
01) を即座にTCPモジュールへ通知する(図5中、
(a)参照)。以降、通信ボード1では、TCPモジュ
ールの誤り回復手順の完了を確認するまで、受信したD
Tの組立は行わない(図5中、(b)参照)。
ュールにおける誤り回復手順の完了を検出するために、
DT紛失の検出後、最大のシーケンス番号を持つ連続し
た受信済みDTのグループをリスト [rx_gle,rx_max]
形式で保存する。
受信済みDTグループは[30661,32121] であり、再送D
Tの受信直前は[30661,43801] となる。通信ボード1は
rx_gle までの紛失DTを受信することで、紛失部分が
なくなり、rx_max まで連続して受信した状態となる。
TCPモジュールから、rx_max まで送達確認するAC
Kが返されれば、TCPモジュールの誤り回復手順が完
了したと見なす。また、rx_max までの全てのDTが再
度連続して受信された場合も同様である。
信を要求するACK(a29201,w37961) が渡されると、通
信ボード1はこれを送信側に転送する。以降も、DT通
知毎に返送されるduplicate ACKについては、そのま
ま送信側に転送する。(図5中、(c)参照)。
た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を受信した時点で行う。
Kを受信すると、DT(29201:37961) を再送する。通信
ボード1れは、これをネットMSSに基づき分割し、先
頭のDT(29201:30661) だけを送信する(図5中、
(f)参照)。
(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モ
ジュールにより正常に連続受信されることが保証され
る。
手順]図6に、コネクション終了時の通信シーケンス例
を示す。本方法では、コネクション終了に伴う状態遷移
を簡素化するために、TCPモジュールからのコネクシ
ョン終了要求(FIN)並びにその送達確認のみを監視
する。TCPモジュールからのFINが送達確認された
時点で、そのコネクションに対しては、通信ボード1に
新たなパケット送信要求か来ないことが保証されるた
め、該当するコネクションテーブルを削除することがで
きる。以下、図6を例に、コネクション終了時の手順
(1) 〜(3) を説明する。
からFINフラグを有効にしたDTを渡されると、これ
がネットMSS以上のユーザデータを含むDTである場
合あ、これを通信ボード1で分割する。その際、FIN
フラグは分割後の最後のDTのみ有効にする(図6中、
(a)参照)。
Nセグメントについては、通信ボード1上で、通常のD
Tと同様、可能であれば前のDTに連結する。そして、
直ぐに、TCPモジュールへ通知する(図6中、(b)
参照)。
Kを受信すると、通信ボード1はこれをTCPモジュー
ルへ通知し、コネクションテーブルを削除する(図6
中、(c)参照)。以降は、通信ボード1はTCP通信
に介在せず、受信データをそのままTCPモジュールへ
通知する(図6中、(d)参照)。
CPUを利用して、TCPまで考慮したパケット分割と
組立を行うことにより、端末に大きなMTUサイズを提
供するから、例えば標準のイーサネットと同じMTUサ
イズ(1500バイト)をネットワーク上で用いること
ができる。つまり、ネットワークでは広く使用されてい
る小さなパケットサイズを用いつつ、ホスト内では大き
なパケットサイズで効率良くTCPのプロトコル処理を
行うことができる。このため、本方法をサポートする端
末のプロトコルモジュールでは、大きなMTUサイズを
サポートしない既存の端末やネットワーク機器と接続し
た場合でも、大きなパケットで処理を行うことが可能と
なる。
本体のTCPモジュールにおける1つのデータセグメン
ト(DT)が、ネットワーク上における複数のデータセ
グメント(DT)に対応するので、本方法をサポートす
る端末が既存端末と通信した場合は、双方の端末が送受
信するACK(確認応答)の数が変動するので、TCP
の輻輳制御や再送処理に影響が現れる可能性があるが、
ACK数の増減を調整することによりこの影響を抑制す
ることができる。
立を行うと、通信ボード1が端末本体ホストから受信す
るACKパケットが、通信ボード1が通信相手へ送信す
べきACKパケットよりも減少し、反対に、通信ボード
1が端末本体へ通知すべきACKパケットよりも、通信
ボード1が通信相手から受信するACKパケットが増加
する。このようなACKパケット数の不一致はTCP輻
輳制御機能等に副作用を与えるが、ACKパケット増減
を補償することにより、TCP輻輳制御機能等に与える
副作用を防ぐことができる。
Pパケットについては、通信ボード1上でIPフラグメ
ンテーション(IP分割)並びにそのデフラグメンテー
ション(IP組立)を行うことにより、送信端末トや受
信端末トにおけるプロトコル処理の負荷が削減可能であ
る。
Pレベルのパケット分解・組立には、メモリコピーを行
わず、DMA転送を行うことにより処理時間を短縮する
ことができる。
をサポートすることにより、他方の端末及びネットワー
ク機器がジャンボフレームをサポートしない場合でも、
相互接続性を保証することができる。
ポートしていれば、ネットワーク機器がジャンボフレー
ムをサポートしない場合でも、全てジャンボフレームを
適用した場合と同様に、各端末上でTCP、IP、デバ
イスドライバ等の処理オーバヘッドを削減することが可
能である。
いられている例えば1500バイト程度の小さなパケッ
トサイズを変更することなく、端末において大きなパケ
ットサイズによる効率的なTCP通信が可能となる。ま
た、パケットの分解・組立に伴うACKパケットの増大
・不足を補償することで、TCP輻輳制御等との不整合
を防止することができ、ネットワークに対して従来と同
様の輻輳制御等を提供することが可能となる。このよう
な効果を持つ本発明は、FPGA等の(プログラマブ
ル)ロジックによる実装を通じた通信装置への適用等が
可能である。
体構成を示す図。
図。
図。
Claims (9)
- 【請求項1】 端末本体に搭載される通信ボード上のC
PU(以下、オンボードCPUと呼ぶ)を利用してTC
Pレベルでパケットの分割及び組立を行うことによりT
CP通信を高速化することを特徴とするTCP通信方
法。 - 【請求項2】 請求項1において、前記端末本体のTC
Pモジュールから送信された1つのデータセグメントを
前記通信ボード上で適切なTCP/IPヘッダを持つ複
数のデータセグメントに分割してネットワークへ出力
し、前記ネットワークから入力された複数のデータセグ
メントを前記通信ボード上で1つのデータセグメントに
組み立てた後、前記TCPモジュールに通知することを
特徴とするTCP通信方法。 - 【請求項3】 請求項2において、分割前のデータセグ
メントに対するACKパケットの増加、並びに、組立前
のデータセグメントに対するACKパケットの減少を前
記通信ボード上で調整し、これらACKパケットの増減
がTCPの輻輳制御や再送処理等の制御手順へ及ぼす影
響を防ぐことを特徴とするTCP通信方法。 - 【請求項4】 請求項3において、送受信シーケンス番
号及びACK番号をTCPコネクション毎に保持するコ
ネクションテーブルを前記通信ボード上に用意し、前記
コネクションテーブルを参照して前記ACKパケットの
増減を調整することを特徴とするTCP通信方法。 - 【請求項5】 請求項2において、通信経路上のネット
ワークを含む全てのリンクにおけるMTUサイズ(以
下、パスMTUと呼ぶ)と、ネットワークに対するMT
Uサイズ(以下、ネットMTUと呼ぶ)を比較し、パス
MTU≧ネットMTUである場合はネットMTUに基づ
いて前記データセグメントの分割を行い、パスMTU<
ネットMTUである場合はパスMTUに基づいて前記デ
ータセグメントの分割を行うことを特徴とするTCP通
信方法。 - 【請求項6】 請求項5において、宛先IPアドレス毎
にパスMTU情報を参照して、前記パスMTUに基づく
データセグメントの分割を行うことを特徴とするTCP
通信方法。 - 【請求項7】 請求項1において、UDPのようにメッ
セージ境界を保つ必要があるプロトコルのパケットに対
してはIPレベルでパケットの分割及び組立を行うこと
を特徴とするTCP通信方法。 - 【請求項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】 請求項8において、前記ファームウェア
は、前記第1、第2及び第3機能により生じる前記端末
本体から前記通信ボードへのACKパケットの減少、並
びに、前記ネットワークから前記通信ボードへのACK
パケットの増加を防ぐ第4機能を提供することを特徴と
するTCP通信方法。
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)
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拼包方法和系统 |
-
2000
- 2000-09-07 JP JP2000271666A patent/JP4041646B2/ja not_active Expired - Fee Related
Cited By (34)
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 |