JP2004072372A - パケット通信装置 - Google Patents

パケット通信装置 Download PDF

Info

Publication number
JP2004072372A
JP2004072372A JP2002228427A JP2002228427A JP2004072372A JP 2004072372 A JP2004072372 A JP 2004072372A JP 2002228427 A JP2002228427 A JP 2002228427A JP 2002228427 A JP2002228427 A JP 2002228427A JP 2004072372 A JP2004072372 A JP 2004072372A
Authority
JP
Japan
Prior art keywords
packet
acknowledgment
determined
data
layer
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.)
Pending
Application number
JP2002228427A
Other languages
English (en)
Inventor
Takeshi Sato
佐藤 剛
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2002228427A priority Critical patent/JP2004072372A/ja
Publication of JP2004072372A publication Critical patent/JP2004072372A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】遅延確認応答の採否を自動的に切り替える。
【解決手段】切替機能7は、受信したデータの種類が「連続」か「非連続」であるかに基づいて、その後の処理においてそれぞれ遅延確認応答を使用するか否かを切り替える。即ち、受信したデータの種類が「連続」である場合には、原則として遅延確認応答を用いた処理を行う。一方、受信したデータの種類が「非連続」である場合には、原則として遅延確認応答を用いない処理を行う。受信したデータの種類が「非連続」である場合には、TCPに基づいた通常の受信処理を行う。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
この発明は通信技術、なかでもTCP(Transmission Control Protocol)を採用する通信技術に関する。
【0002】
【従来の技術】
図14はTCPにおける肯定確認応答(Acknowledgement)を例示する概念図である。TCPを採用する通信技術では、受信ホスト102は、送信ホスト101からパケットD1,D2,D3をそれぞれ受信する毎に、肯定確認応答A1,A2,A3を送信ホスト101へと返信する。これにより送信ホスト101は受信ホスト102へとパケットD1,D2,D3が到着したことを認識し、信頼性を実現している。しかし、パケットが短時間に多数通信される場合には、短時間に多数の肯定確認応答が送信され、トラフィックの増大を招来してしまう。
【0003】
よってTCPに関するRFC(Request For Comment)では、遅延確認応答(RFC 1122:delayed Acknowledgement, RFC 813 Acknowledgement delay)が提案されている。図15は遅延確認応答を例示する概念図である。この技術では、受信ホスト102は、自身が受信したパケットの各々については肯定確認応答を送信しない。受信ホスト102は、一つのパケットD1を得た後に所定の待機時間で待機し、それまでに新たなパケットD2を受信した場合に、パケットD1,D2に対応した肯定確認応答A12を、送信ホスト101へと送信する。受信ホスト102は、同様にして、パケットD3,D4に対応した肯定確認応答A34を、パケットD5,D6に対応した肯定確認応答A56を、それぞれ送信ホスト101へと送信する。
【0004】
【発明が解決しようとする課題】
図16は遅延確認応答の問題点を示す概念図である。受信ホスト102が遅延確認応答を行う場合には、パケットD1の受信の後の所定の待機時間で待機する。そして待機中にパケットD2を受信できなかった場合には、パケットD2の受信を待たずに肯定確認応答A11を送信ホスト101に送信し、受信ホスト102がパケットD1を受信したことを送信ホスト101に認識させる。肯定確認応答A11を、遅延確認応答を用いなかった場合に送信される肯定確認応答A1と比較すれば、送信ホスト101はパケットD1が受信ホスト102に受信されたことを認識することが、遅延時間Δだけ遅れる。
【0005】
送信ホスト101からパケットを短時間に多数を受信できる場合には、遅延確認応答を用いることによってトラフィックを低減することができる。しかしながら、パケットD1に後続するパケットD2を、パケットD1の受信の後の所定の待機時間内に受信しなかった場合には、却って通信速度が低下する。
【0006】
従って、送信ホスト101から送信されるパケットによっては、遅延確認応答を用いない方が、効率よく通信を行える場合もある。しかしながら従来では遅延確認応答はいかなるパケットに対しても一律に採用していたため、通信速度の低下を招来している場合があった。
【0007】
本発明は上記の問題点を解決するためになされたもので、遅延確認応答の採否を自動的に切り替えること、遅延確認応答を採用する場合であっても不要な遅延を低減することにより、通信速度の低下を防ぐことを目的とする。
【0008】
【課題を解決するための手段】
この発明のうち請求項1にかかるものは、パケット通信装置であって、ネットワークから受信されたパケットの内容を判断する判断手段と、前記判断手段の判断結果に基づいて、確認応答を直ちに送信するか、遅延確認応答を行うかを決定する切替手段とを備える。
【0009】
この発明のうち請求項2にかかるものは、請求項1記載のパケット通信装置であって、前記判断手段は前記パケットが取り扱われるべきアプリケーションを判断し、前記切替手段は、前記アプリケーションに基づいて遅延確認応答の採否を決定する。
【0010】
この発明のうち請求項3にかかるものは、請求項2記載のパケット通信装置であって、前記アプリケーションは、前記パケットのポート番号に基づいて特定される。
【0011】
この発明のうち請求項4にかかるものは、請求項1記載のパケット通信装置であって、前記パケットの通信プロトコルを、前記パケットの送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号に基づいて判断する。
【0012】
この発明のうち請求項5にかかるものは、請求項4記載のパケット通信装置であって、前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号を記録する送受信記録手段と、前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号における通信の履歴についての統計を取る統計手段とを更に備える。そして前記統計の結果に基づいて前記遅延確認応答の採否が決定される。
【0013】
この発明のうち請求項6にかかるものは、請求項1記載のパケット通信装置であって、前記判断手段は、前記パケットから既に得られてトランスポート層に相当するプロトコル階層に受信されたデータと同じプロトコルに則るデータであって後続して受信されるデータである後続データの存否を判断する。前記切替手段は、前記後続データが存在すると判断した場合には前記遅延応答確認を行うと決定し、それ以外の場合には前記確認応答を直ちに送信すると決定する。
【0014】
この発明のうち請求項7にかかるものは、請求項6記載のパケット通信装置であって、前記判断手段は、ネットワーク層に相当するプロトコル階層及びこれよりもネットワーク側のプロトコル階層に受信されたデータを調べる。
【0015】
この発明のうち請求項8にかかるものは、請求項7記載のパケット通信装置であって、前記判断手段は前記ネットワーク層に相当するプロトコル階層についてのヘッダを調べる。
【0016】
この発明のうち請求項9にかかるものは、請求項1記載のパケット通信装置であって、前記パケットはTCPセグメントである。前記判断手段は、前記パケットのTCPヘッダが有するコードビットのプッシュフラグの内容を判断する。前記切替手段は前記プッシュフラグがアクティブである場合に前記確認応答を直ちに送信すると決定し、前記プッシュフラグがアクティブでない場合に前記遅延確認応答を行うと決定する。
【0017】
この発明のうち請求項10にかかるものは、請求項6乃至請求項9のいずれか一つに記載のパケット通信装置であって、前記パケットはTCPセグメントである。前記後続データが存在すると判断された場合には、前記パケットのTCPヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて前記遅延確認応答を行うと決定される。前記後続データが存在しないと判断された場合又は前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される。
【0018】
この発明のうち請求項11にかかるものは、請求項6乃至請求項9のいずれか一つに記載のパケット通信装置であって、前記後続データが存在すると判断され、かつ前記パケットが順序通り受信されたと判断した場合には、前記遅延確認応答を行うと決定される。前記後続データが存在しないと判断された場合又は前記パケットが順序通り受信されなかったと判断された場合には、前記確認応答を直ちに送信すると決定される。
【0019】
この発明のうち請求項12にかかるものは、請求項1記載のパケット通信装置であって、前記パケットはTCPセグメントである。前記パケットのTCPヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて遅延確認応答を採用すると決定される。前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される。
【0020】
この発明のうち請求項13にかかるものは、請求項1記載のパケット通信装置であって、前記パケットが順序通り受信されなかった場合に前記確認応答を直ちに送信すると決定される。
【0021】
【発明の実施の形態】
実施の形態1.
図1は本発明の実施の形態1にかかるパケット通信装置において適用される通信プロトコルの階層構造を示す概念図である。ネットワーク5から最も離れて最上位層1が設定され、階層が下位に進むに連れてTCP層2、IP(Internet Protocol)層3、MAC(Media Access Control)層4A、物理層4Bがこの順にネットワーク5に近づいて設定される。より上位の層はより下位の層からデータ(パケットから所定のヘッダが取り除かれたものを含む)を受信し、より上位の層はより下位の層へとデータを送信する。図1では受信データ及び送信データをそれぞれ右上がり及び右下がりのハッチングで示している。
【0022】
上述の層をOSI(Open System Interconnection)の参照プロトコルと比較すると最上位層1は参照プロトコルのアプリケーション層とプレゼンテーション層とセッション層に相当し、TCP層2、IP層3、MAC層4A、物理層4Bはそれぞれ参照プロトコルのトランスポート層、ネットワーク層、データリンク層、物理層に相当する。物理層4Bの少なくとも一部、即ち物理回路たるネットワーク5に直接に接続される部分は、ネットワーク5からパケットを電気的な信号として受信する受信回路90aを、ネットワーク5へとパケットを電気的な信号として送信する送信回路90bを、それぞれハードウェアとして含んでいる。MAC層4A、物理層4Bは、まとめてデータリンク層4として把握されることもある。
【0023】
TCP層2は従来のTCPの機能の他に、後述する判断機能6及び切替機能7を果たし、図1ではこれらの機能を便宜的にブロックを用いて示している。但し判断機能6及び切替機能7を発揮する手段がTCP通信装置において備えられていてもよい。IP層3はMAC層4Aから受信したデータを一時的に格納する機能を果たし、図1ではこれを便宜上ブロックを用いてバッファ8として描いている。MAC層4Aは物理層4Bから受信したデータを一時的に格納する機能を果たし、図1ではこれを便宜上ブロックを用いてバッファ9として描いている。但しバッファ8,9のバッファ機能を発揮する手段がTCP通信装置において備えられていてもよい。
【0024】
バッファ8,9は順次に受信する複数のデータを格納してもよい。例えばバッファ8はそれぞれが一つのパケットを一時的に格納するバッファ要素81〜84を、バッファ9はそれぞれが一つのパケットを一時的に格納するバッファ要素91〜94を、それぞれ有している。バッファ要素81,82,83,84はこの順に、バッファ要素91,92,93,94はこの順に、ネットワーク5から離れて最上位層1に近づく。
【0025】
これらのブロックで示された機能は、必ずしもこれらの機能を果たすための専用の回路によって実現される必要はなく、汎用的なコンピュータにおいて動作するソフトウェアによって実現されることができる。
【0026】
図2は図1に示された階層構造を有する通信プロトコルが採用されるパケット通信装置400を例示するブロック図である。通信装置400はネットワークコントローラ401と、CPU(中央演算ユニット)402と、RAM(ランダムアクセスメモリ)403と、不揮発性メモリ(たとえばリードオンリーメモリ)404とを備えている。これらは例えば別々のチップのLSIで構成され、内部バス405を介して相互に接続される。RAM403と不揮発性メモリ404とは、CPU402に内蔵されてもよい。
【0027】
ネットワークコントローラ401(あるいはその専用IC)が図1に示されたブロック4の物理層4B及びMAC層4Aを実現する。受信回路90a、送信回路90b、バッファ9はネットワークコントローラ401に内蔵される。
【0028】
図1の最上位層1、TCP層2、IP層3はソフトウェアによって実現される。CPU402が、内部バス405を介して不揮発性メモリ404からプログラムを読み出し、これを実行する。これにより、判断機能6,切替機能7を含め、最上位層1、TCP層2、IP層3の機能を実現する。RAM403はCPU402によってアクセス可能であり、IP層3のバッファ8の役割を担う。
【0029】
図3は本発明の実施の形態1の動作を示すフローチャートである。このフローチャートで示される動作はパケットが受信されてから確認応答を送信するまでの動作であって、TCP層2の機能として実行される。ステップ11においてIP層3からデータを受信する。このステップ11は、ネットワーク5からパケットが受信されるたびに、物理層4B、MAC層4A、IP層3を順次経由してデータが伝達された後に実行される。ステップ11が実行された後、ステップ12において、TCP層2は受信したデータの種類を判断する。より詳細にはTCP層2が判断機能6を用いてステップ12の判断を実行する。
【0030】
具体的には例えば、受信データのヘッダに備えられるTCPのポート番号を参照することによって、そのヘッダを有するデータが最上位層1において取り扱われるべきアプリケーションを特定する。アプリケーションが特定されれば、そのアプリケーションの特徴から、データが連続して受信されるか非連続かを判断することができる。例えばポート番号が21であれば、アプリケーションはFTP(File Transfer Protocol)であり、データは連続して受信される。またポート番号が23であれば、アプリケーションはTELNET(TELecommuncation NETwork)であり、データは非連続に受信される。データが連続して受信される他のアプリケーションの例としては、それぞれポート番号が25,110に対応するSMTP(Simple Mail Transfer Protocol),POP3(Post Office Protocol Version 3)を挙げることができる。このようにポート番号を参照することによってアプリケーションを特定することで、特にウェルノウンポート番号が指定されているアプリケーションを容易に特定することができる。
【0031】
ここで連続して受信される種類のデータとは、その属するパケットの通信プロトコルが、送信ホストと受信ホストとが交互にパケットを通信することを前提としないデータをいう。また非連続して受信される種類のデータとは、その属するパケットの通信プロトコルが、送信ホストと受信ホストとが交互に入れ替わって相互にパケットを通信することを前提とするデータをいう。後者の場合、従って、第1のホストから第2のホストへと2つのパケット#1,#2をこの順に送信する場合には、パケット#1が送信されてから,パケット#2が送信されるまでに、第2のホストから第1のホストへと送信されるパケット#3が存在する。
【0032】
切替機能7は、判断機能6によって判断された結果、即ち受信したデータの種類が「連続」か「非連続」であるかに基づいて、その後の処理においてそれぞれ遅延確認応答を使用するか否かを切り替える。即ち、受信したデータの種類が「連続」である場合には、ステップ13に進んで原則として遅延確認応答を用いた処理を行うと決定する。一方、受信したデータの種類が「非連続」である場合には、ステップ18に進んで原則として遅延確認応答を用いない処理を行うと決定する。図3においては確認応答を「ACK」と略記している。
【0033】
まず受信したデータの種類が「非連続」であると判断された場合には、ステップ14bに進み、TCPに基づいた通常の受信処理を行う。そしてステップ19において確認応答を送信ホストへと送信し、パケットの受信から確認応答までの処理が終了する。
【0034】
受信したデータの種類が「連続」であると判断された場合には、ステップ14aに進み、TCPに基づいた通常の受信処理を行う。そしてステップ14aで受信処理が行われたデータに引き続きデータが存在するか否かが、判断機能6によってステップ15において判断される。
【0035】
判断機能6は、IP層3内のバッファ8に格納されて次に最も早くTCP層2へと伝達されるデータ(以下「直近のバッファデータ」と称する)を調べる。そしてこの直近のバッファデータがTCPに則ったデータであればステップ14aで処理されたデータに後続するデータが存在すると判断する。当該判断に基づいて切替機能7は遅延確認応答を採用すると決定する。この決定に基づいて、ステップ17へと処理が進み、遅延確認応答処理が行われる。一方、直近のバッファデータが存在しないと判断された場合、若しくは直近のバッファデータがTCP以外のプロトコルに則ったデータであると判断された場合には、当該判断に基づいて切替機能7は遅延確認応答を採用せず、確認応答を行うと決定する。この決定に基づいて、ステップ16へと処理が進み、確認応答が送信される。
【0036】
ステップ15における判断は、パケットから既に得られ、トランスポート層に相当するプロトコル階層(図1ではTCP層2として示される)において受信されたデータと同じプロトコルに則って後続して受信されるデータである、後続データの存否を判断していると言える。
【0037】
ステップ15における判断は具体的には以下の通りに例示される。図4はステップ15における判断の具体的な第1の例を示す概念図である。IP層3内部のバッファ84に格納されているパケットである、直近のバッファデータQ4は、IPヘッダ41、トランスポート層用ヘッダ42、トランスポート層用データ43を備えている。
【0038】
一般にネットワーク層についてのヘッダには、自身が属するパケットがトランスポート層においてどのようなプロトコルに則るかを示すデータを有している。例えばIPヘッダ41には実施の形態2で後述するプロトコル番号が含まれている。プロトコル番号は、これが属するデータがトランスポート層のプロトコルとしてTCPが採用されるパケット(TCPセグメント)か、他の、例えばUDP(User Datagram Protocol)に則ったパケット(UDPデータグラム)から得られたデータであるかを示している。例えば直近のバッファデータQ4がTCPセグメントから得られたデータである場合には、トランスポート層用ヘッダ42、トランスポート層用データ43はそれぞれTCPヘッダ、TCPデータである。直近のバッファデータQ4がUDPデータグラムであれば、トランスポート層用ヘッダ42、トランスポート層用データ43はそれぞれUDPヘッダ、UDPデータである。
【0039】
図5は、ステップ15における判断の具体的な第2の例を示す概念図である。ここでは、MAC層4Aが備えるバッファ9に一時的に格納されたデータのIPヘッダ41が調べられる。ネットワーク層に相当するプロトコル階層(ここではIP層3)及びこれよりもネットワーク側のプロトコル階層(ここではMAC層4A)に受信されたデータは、ネットワーク層に相当するプロトコル階層についてのヘッダ(ここではIPヘッダ41)を備え、当該ヘッダはトランスポート層(例えばTCP層2)におけるプロトコルを特定するデータを有している。よってバッファ9に一時的に格納されたデータのIPヘッダ41を調べても、その属するパケットがTCPセグメントか、他の、例えばUDPデータグラムであるかを判断することができる。
【0040】
但し、バッファ9に格納されたデータにはヘッダとして、IPヘッダ41、トランスポート層用ヘッダ42の他に、データリンク層用ヘッダ40(例えばイーサネット(登録商標)ヘッダなど)が付加されている。
【0041】
このように、IP層3及びこれよりもネットワーク5に近いMAC層4Aにおいて受信されたデータのIPヘッダ41を調べることにより、TCP層3に受信されたデータと、同じプロトコルに則るデータが後続して受信されるか否かを判断することができる。
【0042】
図6はステップ15における判断の具体的な第3の例を示す概念図である。ここでは、バッファ8に、例えばバッファ要素84に、フラグ領域841及び直近のバッファデータQ4を格納する格納領域842を含ませている。上述のように、IPヘッダ41には、自身が属するデータは、トランスポート層のプロトコルとして何が採用されるかについての情報を有している。よってIPヘッダ41をIP層3が分析し、トランスポート層のプロトコルとしてTCPが採用されるか否かを示すフラグをフラグ領域841に書き込ませることができる。TCP層2からは、その判断機能6によってフラグ領域841を読み込み、ステップ15の判断を行うことができる。
【0043】
図7はステップ15における判断の具体的な第4の例を示す概念図であって、具体的な第3の例を図5に示された第2の具体例に同様に適用した例を示す。バッファ9にはフラグ領域941及び格納領域942を含ませている。よってIPヘッダ41をMAC層4Aが分析し、トランスポート層のプロトコルとしてTCPが採用されるか否かを示すフラグをフラグ領域941に書き込ませることができる。TCP層2からは、その判断機能6によってフラグ領域941を読み込み、ステップ15の判断を行うことができる。
【0044】
当該フラグ領域は必ずしもバッファ8やバッファ9に設ける必要はなく、当該フラグをグローバル変数として採用してもよい。
【0045】
図3に戻り、ステップ15で後続データが存在すると判断し、ステップ17へと処理が進めば、遅延確認応答の処理を行う。具体的には、前回確認応答を送信してからTCP層2が1回しかデータを受信していない場合には確認応答を送信せずに終了する。そしてその後に、直近のバッファデータQ4が(或いは直近のバッファデータQ4からIPヘッダ41が取り除かれたデータが)、IP層3に受信されるのを待つ。前回確認応答を送信してからTCP層2が所定の複数回でデータを受信した場合には確認応答を送信して終了する。或いは前回確認応答を送信してからTCP層2が所定の複数回のデータを受信していなくても、最後にデータを受信してから所定の待機時間が経過したら確認応答を送信して終了する。この所定の複数回数は例えば2回に設定される。
【0046】
ステップ15で後続データが存在しないと判断すれば、ステップ16へと処理が進み、直ちに遅延確認応答を送信ホストへと送信し、パケットの受信から遅延確認応答までの処理は終了する。
【0047】
以上のように、本実施の形態にかかるパケット通信装置では、ステップ12において判断機能6がパケットの内容、例えばパケットが取り扱われるアプリケーションを判断する。そして遅延確認応答を採用するか否かを切替機能7が決定する。これにより、確認応答の送信を直ちに行う必要がないパケットについては次のパケットを待ち、確認応答の送信を直ちに行う必要があるパケットについては確認応答を送信することができる。よってトラフィックの増大や遅延確認応答の待機時間による通信速度の低下を回避することができる。
【0048】
また本実施の形態にかかるパケット通信装置では、遅延確認応答を採用する場合であっても、ステップ15において後続データの有無を確認し、その存否に基づいて確認応答を直ちに送信するか否かを決定する。これにより、後続データが存在しない場合には遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。従ってステップ12,18,14b,19を実行せず、よってデータの「連続」「非連続」の判断、即ちデータが取り扱われるアプリケーションの種類の判断を行わなくても、ステップ15,16,17から上記の効果を得ることができる。換言すれば、ステップ12の判断に基づいて処理を切り替える効果とステップ15の判断に基づいて処理を切り替える効果とは、直接には関係せず、相互に独立している。
【0049】
本実施の形態ではこのようなパケットの内容の判断として後続データの有無の判断を用いたが、実施の形態3以降では他の基準によってパケットの内容を判断する場合が例示される。
【0050】
実施の形態2.
図8は本発明の実施の形態2にかかるパケット通信装置において適用される通信プロトコルの階層構造の一部を示す概念図である。ここではTCP層2とIP層3のみを示しており、その他の階層は図1に示された内容と同一に構成できる。
【0051】
TCP層2は判断機能6に加え、更に統計機能71、送受信記録機能72をも備えている。図8ではこれらの機能を便宜的にブロックを用いて示している。但し統計機能71、送受信記録機能72を発揮する手段が、TCP通信装置において備えられていてもよい。
【0052】
送受信記録機能72はIP層3から受信するデータが属するパケットの内容のうち、TCPコネクションを記録する。統計機能71は送受信記録機能72に記録されたTCPコネクションに基づいて後述する統計処理を行う。
【0053】
図9はIP層3からTCP層2へ与えられるデータQの構成を示す概念図である。データQはTCPに則って処理されるデータであり、IPヘッダ41、TCPヘッダ421、TCPデータ431を備えている。TCPヘッダ421、TCPデータ431はそれぞれ図4に示されたトランスポート層用ヘッダ42、トランスポート層用データ43に対応している。
【0054】
IPヘッダ41は送信元IPアドレス41a、宛先IPアドレス41b、プロトコル番号41cを有し、TCPヘッダ421は送信元ポート番号42a、宛先ポート番号42bを有している。ここではデータQがTCPに則って処理されるデータであるので、プロトコル番号41cは値“6”に設定される。
【0055】
TCPコネクションは送信元IPアドレス41a、宛先IPアドレス41b、送信元ポート番号42a、宛先ポート番号42bで決定される。送受信記録機能72はこれら4つを記録する。統計機能71は送受信記録機能72が記憶した内容で決定されるTCPコネクションにおいて、TCP層2が受信したデータが「連続」「非連続」であるかの統計を採る。
【0056】
TCP層2は、IP層3からデータを受信すると、そのデータのTCPコネクションを確認する。そして統計機能71に対して当該TCPコネクションを照会し、「連続」するデータが「非連続」するデータよりも多かったTCPコネクションであるとの統計結果、若しくは「非連続」するデータが「連続」するデータよりも多かったTCPコネクションであるとの統計結果のいずれが得られているを得る。そして「連続」するデータが「非連続」するデータよりも多かったTCPコネクションであるとの統計結果が得られている場合には、ステップ12からステップ13に処理を進め、「非連続」するデータが「連続」するデータよりも多かったTCPコネクションであるとの統計結果が得られている場合には、ステップ12からステップ18に処理を進める。
【0057】
以上のように本実施の形態では、受信したデータのTCPコネクションにおいて「連続」するデータと「非連続」するデータとのいずれが多く通信されたかについての統計結果を得て、これに基づいて遅延確認応答の採否を決定する。従って、ポート番号からアプリケーションが特定できない場合、例えば独自に作成されたアプリケーションが採用される場合に、遅延確認応答の採否を適切に決定することができる。
【0058】
実施の形態3.
図9に示されるように、TCPヘッダ421はコードビット42cを更に有している。そして図1に示されたステップ15の判断をコードビット42cに基づいて行ってもよい。コードビット42cの参照は、実施の形態1に説明されたようにバッファ8或いはバッファ9にTCP層2からアクセスすることによって実現してもよい。またTCP層2が受信したデータのコードビット42cを参照してもよい。
【0059】
本実施の形態では、TCP層2が、例えばTCP層2に設けられた判断機能6によって、コードビット42cに通常備えられるプッシュフラグPSHを参照して後続データの有無を判断する。プッシュフラグPSHとして与えられるビットがアクティブ(例えばその値が“1”)であれば、データの区切れを示す。つまりプッシュフラグPSHがアクティブの値が“1”であれば後続データがない可能性が高い。
【0060】
よって本実施の形態ではプッシュフラグPSHの値が“1”であれば遅延確認応答を採用せず、直ちに確認応答を送信すると切替機能7が決定する。よってステップ15からステップ16へと処理を進めて直ちに確認応答を送信する。プッシュフラグPSHの値が“0”であれば遅延確認応答を採用すると切替機能7が決定する。よってステップ15からステップ17へと処理を進めて遅延確認応答の処理を行う。これにより、後続データが存在しない可能性が高い場合に遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。
【0061】
コードビット42cの参照は、実施の形態1に説明されたようにバッファ8或いはバッファ9にTCP層2からアクセスすることによって実現してもよい。またTCP層2が受信したデータのコードビット42cを参照してもよい。
【0062】
実施の形態4.
図10は本発明の実施の形態4における処理の一部を示すフローチャートである。図3に示されたフローチャートのステップ15がステップ151に置換されており、それ以外のステップは図3に示されたステップを採用することができる。
【0063】
本実施の形態では、TCP層2が、例えばTCP層2に設けられた判断機能6によって、コードビット42cに通常備えられるアージェントフラグURGを参照する。アージェントフラグURGとして与えられるビットがアクティブ(例えばその値が“1”)であれば、緊急性があることを示す。そこでステップ151でアージェントフラグURGが“1”であれば、遅延確認応答を採用せず、直ちに確認応答を送信すると切替機能7が決定する。よってステップ15からステップ16へと処理を進める。アージェントフラグURGが“0”であれば、遅延確認応答を採用すると切替機能7が決定し、ステップ17に処理を進める。これにより、緊急性がある場合には迅速に確認応答を送信し、遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。
【0064】
図11は本実施の形態の変形を示すフローチャートである。図3に示されたフローチャートのステップ15とステップ17の間にステップ151が追加されており、それ以外のステップは図3に示されたステップを採用することができる。
【0065】
ステップ15によって後続データがあると判断された場合であっても、ステップ151によってデータに緊急性があると判断された場合は、ステップ16に処理が進む。このような処理の流れにより、緊急性ある場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【0066】
実施の形態5.
図12は本発明の実施の形態5における処理の一部を示すフローチャートである。図3に示されたフローチャートのステップ15がステップ152に置換されており、それ以外のステップは図3に示されたステップを採用することができる。
【0067】
本実施の形態では、TCP層2が、例えば判断機能6によって、受信されたパケットが順序通りに受信されたか否かを判断する。順番通りで無かった場合には、伝達途中でTCPセグメントが消失している可能性があるため、送信元に迅速に確認応答を送信する必要がある。よって順番通りでないと判断される場合には、遅延確認応答を採用せず、直ちに確認応答を送信すると切替機能7が決定する。よってステップ152からステップ16に進んで直ちに確認応答を送信し、送信元に迅速に確認応答を送信する。一方、順番通りであると判断される場合には、遅延確認応答を採用すると切替機能7が決定する。よってステップ152からステップ17に進んで遅延確認応答の処理が行われる。
【0068】
図13は本実施の形態の変形を示すフローチャートである。図3に示されたフローチャートのステップ15とステップ17の間にステップ152が追加されており、それ以外のステップは図3に示されたステップを採用することができる。
【0069】
ステップ15によって後続データがないと判断された場合であっても、ステップ152によって受信されたパケットが順序通りに受信されていないと判断された場合は、ステップ16に処理が進む。つまり後続データがあると判断され、かつ順序通りに受信されている場合にステップ17に進んで、遅延確認応答の処理が行われる。一方、後続データがないと判断されるか、或いは順序通りに受信されていないと判断された場合には、ステップ16に進んで、確認応答が直ちに送信される。このような処理の流れにより、受信されたパケットの順序が乱れている場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【0070】
TCP層2が、受信されたパケットが順序通りに受信されたか否かを判断する材料として、TCPヘッダに通常含まれるシーケンス番号や確認応答番号を採用することができる。
【0071】
上記の説明ではTCPプロトコルを採用した場合に着目して説明したが、確認応答を採用する、いわゆるコネクション型であれば、他のプロトコルを採用する場合に適用することができる。
【0072】
MAC層4Aにおけるプロトコルとしては、IEEE802.3やEthernet(登録商標)IIを採用することができる。また、OSIの参照プロトコルにおけるネットワーク層に相当する層として、IP層のみならずNCP(Netware Core Protcol)層をも採用し、OSIの参照プロトコルにおけるデータリンク層に相当する層として、MAC層4Aの代わりにLCP(Link Control Protocol)層を採用することができる。この場合、プロトコルとしてPPP(Point−to−Point Protocol)を採用することができる(従って、上述のNCPはPPPについてのものであって、ARPANET(Advanced Research Projects Agency NETwork)のそれではない)。
【0073】
【発明の効果】
この発明のうち請求項1にかかるパケット通信装置によれば、確認応答の送信を直ちに行う必要がないパケットについては次のパケットを待ち、確認応答の送信を直ちに行う必要があるパケットについては確認応答を送信することができる。よってトラフィックの増大や遅延確認応答の待機時間による通信速度の低下を回避することができる。
【0074】
この発明のうち請求項2にかかるパケット通信装置によれば、アプリケーションに依拠して、遅延確認応答の採否を決定するので、不要な待機時間を採用せず、通信速度の低下を防ぐことができる。
【0075】
この発明のうち請求項3にかかるパケット通信装置によれば、ウェルノウンポート番号が指定されているアプリケーションを容易に特定することができる。
【0076】
この発明のうち請求項4、請求項5にかかるパケット通信装置によれば、ポート番号からアプリケーションが特定できない場合、例えば独自に作成されたアプリケーションが採用される場合に、遅延確認応答の採否を適切に決定することができる。
【0077】
この発明のうち請求項6にかかるパケット通信装置によれば、後続データが存在しない場合には遅延確認応答の処理を行わず、通信速度の低下を防ぐことができる。
【0078】
一般にネットワーク層に相当するプロトコル階層及びこれよりもネットワーク側のプロトコル階層に受信されたデータは、ネットワーク層に相当するプロトコル階層についてのヘッダを備え、当該ヘッダはトランスポート層におけるプロトコルを特定するデータを有している。よってこの発明のうち請求項7、請求項8にかかるパケット通信装置によれば、トランスポート層に相当するプロトコル階層に受信されたデータと、同じプロトコルに則るデータが後続して受信されるか否かを判断することができる。
【0079】
この発明のうち請求項9にかかるパケット通信装置によれば、後続データが存在しない可能性が高い場合に遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。
【0080】
この発明のうち請求項10にかかるパケット通信装置によれば、後続データが存在しない場合には遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。しかも緊急性ある場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【0081】
この発明のうち請求項11にかかるパケット通信装置によれば、受信されたパケットの順序が乱れている場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【0082】
この発明のうち請求項12にかかるパケット通信装置によれば、緊急性ある場合には直ちに確認応答を送信することができる。
【0083】
この発明のうち請求項13にかかるパケット通信装置によれば、受信されたパケットの順序が乱れている場合には直ちに確認応答を送信することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかるパケット通信装置において適用される通信プロトコルの階層構造を示す概念図である。
【図2】本発明の実施の形態1にかかるパケット通信装置の構造を例示するブロック図である。
【図3】本発明の実施の形態1の動作を示すフローチャートである。
【図4】本発明の実施の形態1の動作の具体的な第1の例を示す概念図である。
【図5】本発明の実施の形態1の動作の具体的な第2の例を示す概念図である。
【図6】本発明の実施の形態1の動作の具体的な第2の例を示す概念図である。
【図7】本発明の実施の形態1の動作の具体的な第2の例を示す概念図である。
【図8】本発明の実施の形態2にかかるパケット通信装置において適用される通信プロトコルの階層構造の一部を示す概念図である。
【図9】IP層3からTCP層2へ与えられるデータQの構成を示す概念図である。
【図10】本発明の実施の形態4における処理の一部を示すフローチャートである。
【図11】本発明の実施の形態4の変形を示すフローチャートである。
【図12】本発明の実施の形態5における処理の一部を示すフローチャートである。
【図13】本発明の実施の形態5の変形を示すフローチャートである。
【図14】従来の技術を示す概念図である。
【図15】従来の技術を示す概念図である。
【図16】従来の技術を示す概念図である。
【符号の説明】
2 TCP層、3 IP層、6 判断機能、7 切替機能、41 IPヘッダ、41a 送信元IPアドレス、41b 宛先IPアドレス、41c プロトコル番号、42a 送信元ポート番号、42b 宛先ポート番号、71 統計機能、72 送受信記録機能、421 TCPヘッダ。

Claims (13)

  1. ネットワークから受信されたパケットの内容を判断する判断手段と、
    前記判断手段の判断結果に基づいて、確認応答を直ちに送信するか、遅延確認応答を行うかを決定する切替手段と
    を備えるパケット通信装置。
  2. 前記判断手段は前記パケットが取り扱われるべきアプリケーションを判断し、
    前記切替手段は、前記アプリケーションに基づいて遅延確認応答の採否を決定する、請求項1記載のパケット通信装置。
  3. 前記アプリケーションは、前記パケットのポート番号に基づいて特定される、請求項2記載のパケット通信装置。
  4. 前記パケットの通信プロトコルを、前記パケットの送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号に基づいて判断する、請求項1記載のパケット通信装置。
  5. 前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号を記録する送受信記録手段と、
    前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号における通信の履歴についての統計を取る統計手段と
    を更に備え、
    前記統計の結果に基づいて前記遅延確認応答の採否が決定される、請求項4記載のパケット通信装置。
  6. 前記判断手段は、前記パケットから既に得られてトランスポート層に相当するプロトコル階層に受信されたデータと同じプロトコルに則るデータであって後続して受信されるデータである後続データの存否を判断し、
    前記切替手段は、前記後続データが存在すると判断した場合には前記遅延応答確認を行うと決定し、それ以外の場合には前記確認応答を直ちに送信すると決定する、請求項1記載のパケット通信装置。
  7. 前記判断手段は、ネットワーク層に相当するプロトコル階層及びこれよりもネットワーク側のプロトコル階層に受信されたデータを調べる、請求項6記載のパケット通信装置。
  8. 前記判断手段は前記ネットワーク層に相当するプロトコル階層についてのヘッダを調べる、請求項7記載のパケット通信装置。
  9. 前記パケットはTCPセグメントであり、
    前記判断手段は、前記パケットのTCPヘッダが有するコードビットのプッシュフラグの内容を判断し、
    前記切替手段は前記プッシュフラグがアクティブである場合に前記確認応答を直ちに送信すると決定し、前記プッシュフラグがアクティブでない場合に前記遅延確認応答を行うと決定する、請求項1記載のパケット通信装置。
  10. 前記パケットはTCPセグメントであり、
    前記後続データが存在すると判断された場合には、前記パケットのTCPヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて前記遅延確認応答を行うと決定され、
    前記後続データが存在しないと判断された場合又は前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される、請求項6乃至請求項9のいずれか一つに記載のパケット通信装置。
  11. 前記後続データが存在すると判断され、かつ前記パケットが順序通り受信されたと判断した場合には、前記遅延確認応答を行うと決定され、
    前記後続データが存在しないと判断された場合又は前記パケットが順序通り受信されなかったと判断された場合には、前記確認応答を直ちに送信すると決定される、請求項6乃至請求項9のいずれか一つに記載のパケット通信装置。
  12. 前記パケットはTCPセグメントであり、
    前記パケットのTCPヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて遅延確認応答を採用すると決定され、
    前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される、請求項1記載のパケット通信装置。
  13. 前記パケットが順序通り受信されなかった場合に前記確認応答を直ちに送信すると決定される、請求項1記載のパケット通信装置。
JP2002228427A 2002-08-06 2002-08-06 パケット通信装置 Pending JP2004072372A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002228427A JP2004072372A (ja) 2002-08-06 2002-08-06 パケット通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002228427A JP2004072372A (ja) 2002-08-06 2002-08-06 パケット通信装置

Publications (1)

Publication Number Publication Date
JP2004072372A true JP2004072372A (ja) 2004-03-04

Family

ID=32015112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002228427A Pending JP2004072372A (ja) 2002-08-06 2002-08-06 パケット通信装置

Country Status (1)

Country Link
JP (1) JP2004072372A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166281A (ja) * 2005-12-14 2007-06-28 Casio Hitachi Mobile Communications Co Ltd データパケット転送装置、データパケット転送方法、及び、データパケット転送プログラム
JP2009303089A (ja) * 2008-06-17 2009-12-24 Fujitsu Ltd 遅延時間計測装置、遅延時間計測プログラム、および遅延時間計測方法
JP2012182551A (ja) * 2011-02-28 2012-09-20 Toshiba Corp データ送信装置、データ通信装置および通信プログラム
US9106417B2 (en) 2009-02-27 2015-08-11 Kabushiki Kaisha Toshiba Communication apparatus for transmission protocol processing and reception protocol processing

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166281A (ja) * 2005-12-14 2007-06-28 Casio Hitachi Mobile Communications Co Ltd データパケット転送装置、データパケット転送方法、及び、データパケット転送プログラム
JP4624252B2 (ja) * 2005-12-14 2011-02-02 Necカシオモバイルコミュニケーションズ株式会社 データパケット転送装置、データパケット転送方法、及び、データパケット転送プログラム
JP2009303089A (ja) * 2008-06-17 2009-12-24 Fujitsu Ltd 遅延時間計測装置、遅延時間計測プログラム、および遅延時間計測方法
US9344347B2 (en) 2008-06-17 2016-05-17 Fujitsu Limited Delay time measuring apparatus, computer readable record medium on which delay time measuring program is recorded, and delay time measuring method
US9106417B2 (en) 2009-02-27 2015-08-11 Kabushiki Kaisha Toshiba Communication apparatus for transmission protocol processing and reception protocol processing
JP2012182551A (ja) * 2011-02-28 2012-09-20 Toshiba Corp データ送信装置、データ通信装置および通信プログラム

Similar Documents

Publication Publication Date Title
US8427945B2 (en) SoC device with integrated supports for Ethernet, TCP, iSCSI, RDMA and network application acceleration
TWI411279B (zh) 封包聚合的方法與系統
US6577596B1 (en) Method and apparatus for packet delay reduction using scheduling and header compression
US8121148B2 (en) Protocol stack using shared memory
JP2000332817A (ja) パケット処理装置
JP2006261873A (ja) パケット転送装置およびその転送制御方式
EP3846405B1 (en) Method for processing tcp message, toe assembly, and network device
US9998373B2 (en) Data routing acceleration
JP2003333076A (ja) ネットワークスタックをオフロードする方法
US7356034B2 (en) Terminal device, method for processing communication data inside the terminal device, and program for implementing the method
US7580410B2 (en) Extensible protocol processing system
JP5957318B2 (ja) ネットワークシステム、情報中継装置、及びパケット配信方法
JP2004072372A (ja) パケット通信装置
US7420991B2 (en) TCP time stamp processing in hardware based TCP offload
TW200931912A (en) High speed packet processing in a wireless network
JP2006253867A (ja) フレーム伝送システム及びフレーム伝送方法
US20040223506A1 (en) Packet communication device sending delayed acknowledgement through network
JP2011071701A (ja) パケット中継装置
CN1612566A (zh) 网络协议引擎
JP2005101690A (ja) 中継装置及び中継方法
US20170265103A1 (en) Communication device, communication method, and non-transitory computer readable medium
US20240007405A1 (en) Transport protocol selection based on connection state
JP2002368786A (ja) パケット転送方法及びパケット転送装置
JP4321390B2 (ja) 半導体集積回路
JP2006107095A (ja) Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法