(57)【要約】【課題】遅延確認応答の採否を自動的に切り替える。【解決手段】切替機能７は、受信したデータの種類が「連続」か「非連続」であるかに基づいて、その後の処理においてそれぞれ遅延確認応答を使用するか否かを切り替える。即ち、受信したデータの種類が「連続」である場合には、原則として遅延確認応答を用いた処理を行う。一方、受信したデータの種類が「非連続」である場合には、原則として遅延確認応答を用いない処理を行う。受信したデータの種類が「非連続」である場合には、ＴＣＰに基づいた通常の受信処理を行う。【選択図】　　　　図１
2004072372.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークから受信されたパケットの内容を判断する判断手段と、
前記判断手段の判断結果に基づいて、確認応答を直ちに送信するか、遅延確認応答を行うかを決定する切替手段と
を備えるパケット通信装置。
【請求項２】
前記判断手段は前記パケットが取り扱われるべきアプリケーションを判断し、
前記切替手段は、前記アプリケーションに基づいて遅延確認応答の採否を決定する、請求項１記載のパケット通信装置。
【請求項３】
前記アプリケーションは、前記パケットのポート番号に基づいて特定される、請求項２記載のパケット通信装置。
【請求項４】
前記パケットの通信プロトコルを、前記パケットの送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号に基づいて判断する、請求項１記載のパケット通信装置。
【請求項５】
前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号を記録する送受信記録手段と、
前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号における通信の履歴についての統計を取る統計手段と
を更に備え、
前記統計の結果に基づいて前記遅延確認応答の採否が決定される、請求項４記載のパケット通信装置。
【請求項６】
前記判断手段は、前記パケットから既に得られてトランスポート層に相当するプロトコル階層に受信されたデータと同じプロトコルに則るデータであって後続して受信されるデータである後続データの存否を判断し、
前記切替手段は、前記後続データが存在すると判断した場合には前記遅延応答確認を行うと決定し、それ以外の場合には前記確認応答を直ちに送信すると決定する、請求項１記載のパケット通信装置。
【請求項７】
前記判断手段は、ネットワーク層に相当するプロトコル階層及びこれよりもネットワーク側のプロトコル階層に受信されたデータを調べる、請求項６記載のパケット通信装置。
【請求項８】
前記判断手段は前記ネットワーク層に相当するプロトコル階層についてのヘッダを調べる、請求項７記載のパケット通信装置。
【請求項９】
前記パケットはＴＣＰセグメントであり、
前記判断手段は、前記パケットのＴＣＰヘッダが有するコードビットのプッシュフラグの内容を判断し、
前記切替手段は前記プッシュフラグがアクティブである場合に前記確認応答を直ちに送信すると決定し、前記プッシュフラグがアクティブでない場合に前記遅延確認応答を行うと決定する、請求項１記載のパケット通信装置。
【請求項１０】
前記パケットはＴＣＰセグメントであり、
前記後続データが存在すると判断された場合には、前記パケットのＴＣＰヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて前記遅延確認応答を行うと決定され、
前記後続データが存在しないと判断された場合又は前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される、請求項６乃至請求項９のいずれか一つに記載のパケット通信装置。
【請求項１１】
前記後続データが存在すると判断され、かつ前記パケットが順序通り受信されたと判断した場合には、前記遅延確認応答を行うと決定され、
前記後続データが存在しないと判断された場合又は前記パケットが順序通り受信されなかったと判断された場合には、前記確認応答を直ちに送信すると決定される、請求項６乃至請求項９のいずれか一つに記載のパケット通信装置。
【請求項１２】
前記パケットはＴＣＰセグメントであり、
前記パケットのＴＣＰヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて遅延確認応答を採用すると決定され、
前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される、請求項１記載のパケット通信装置。
【請求項１３】
前記パケットが順序通り受信されなかった場合に前記確認応答を直ちに送信すると決定される、請求項１記載のパケット通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は通信技術、なかでもＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ）を採用する通信技術に関する。
【０００２】
【従来の技術】
図１４はＴＣＰにおける肯定確認応答（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を例示する概念図である。ＴＣＰを採用する通信技術では、受信ホスト１０２は、送信ホスト１０１からパケットＤ１，Ｄ２，Ｄ３をそれぞれ受信する毎に、肯定確認応答Ａ１，Ａ２，Ａ３を送信ホスト１０１へと返信する。これにより送信ホスト１０１は受信ホスト１０２へとパケットＤ１，Ｄ２，Ｄ３が到着したことを認識し、信頼性を実現している。しかし、パケットが短時間に多数通信される場合には、短時間に多数の肯定確認応答が送信され、トラフィックの増大を招来してしまう。
【０００３】
よってＴＣＰに関するＲＦＣ（Ｒｅｑｕｅｓｔ　Ｆｏｒ　Ｃｏｍｍｅｎｔ）では、遅延確認応答（ＲＦＣ　１１２２：ｄｅｌａｙｅｄ　Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ，　ＲＦＣ　８１３　Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ　ｄｅｌａｙ）が提案されている。図１５は遅延確認応答を例示する概念図である。この技術では、受信ホスト１０２は、自身が受信したパケットの各々については肯定確認応答を送信しない。受信ホスト１０２は、一つのパケットＤ１を得た後に所定の待機時間で待機し、それまでに新たなパケットＤ２を受信した場合に、パケットＤ１，Ｄ２に対応した肯定確認応答Ａ１２を、送信ホスト１０１へと送信する。受信ホスト１０２は、同様にして、パケットＤ３，Ｄ４に対応した肯定確認応答Ａ３４を、パケットＤ５，Ｄ６に対応した肯定確認応答Ａ５６を、それぞれ送信ホスト１０１へと送信する。
【０００４】
【発明が解決しようとする課題】
図１６は遅延確認応答の問題点を示す概念図である。受信ホスト１０２が遅延確認応答を行う場合には、パケットＤ１の受信の後の所定の待機時間で待機する。そして待機中にパケットＤ２を受信できなかった場合には、パケットＤ２の受信を待たずに肯定確認応答Ａ１１を送信ホスト１０１に送信し、受信ホスト１０２がパケットＤ１を受信したことを送信ホスト１０１に認識させる。肯定確認応答Ａ１１を、遅延確認応答を用いなかった場合に送信される肯定確認応答Ａ１と比較すれば、送信ホスト１０１はパケットＤ１が受信ホスト１０２に受信されたことを認識することが、遅延時間Δだけ遅れる。
【０００５】
送信ホスト１０１からパケットを短時間に多数を受信できる場合には、遅延確認応答を用いることによってトラフィックを低減することができる。しかしながら、パケットＤ１に後続するパケットＤ２を、パケットＤ１の受信の後の所定の待機時間内に受信しなかった場合には、却って通信速度が低下する。
【０００６】
従って、送信ホスト１０１から送信されるパケットによっては、遅延確認応答を用いない方が、効率よく通信を行える場合もある。しかしながら従来では遅延確認応答はいかなるパケットに対しても一律に採用していたため、通信速度の低下を招来している場合があった。
【０００７】
本発明は上記の問題点を解決するためになされたもので、遅延確認応答の採否を自動的に切り替えること、遅延確認応答を採用する場合であっても不要な遅延を低減することにより、通信速度の低下を防ぐことを目的とする。
【０００８】
【課題を解決するための手段】
この発明のうち請求項１にかかるものは、パケット通信装置であって、ネットワークから受信されたパケットの内容を判断する判断手段と、前記判断手段の判断結果に基づいて、確認応答を直ちに送信するか、遅延確認応答を行うかを決定する切替手段とを備える。
【０００９】
この発明のうち請求項２にかかるものは、請求項１記載のパケット通信装置であって、前記判断手段は前記パケットが取り扱われるべきアプリケーションを判断し、前記切替手段は、前記アプリケーションに基づいて遅延確認応答の採否を決定する。
【００１０】
この発明のうち請求項３にかかるものは、請求項２記載のパケット通信装置であって、前記アプリケーションは、前記パケットのポート番号に基づいて特定される。
【００１１】
この発明のうち請求項４にかかるものは、請求項１記載のパケット通信装置であって、前記パケットの通信プロトコルを、前記パケットの送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号に基づいて判断する。
【００１２】
この発明のうち請求項５にかかるものは、請求項４記載のパケット通信装置であって、前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号を記録する送受信記録手段と、前記送信元アドレス、前記宛先アドレス、前記送信元ポート番号、前記宛先ポート番号における通信の履歴についての統計を取る統計手段とを更に備える。そして前記統計の結果に基づいて前記遅延確認応答の採否が決定される。
【００１３】
この発明のうち請求項６にかかるものは、請求項１記載のパケット通信装置であって、前記判断手段は、前記パケットから既に得られてトランスポート層に相当するプロトコル階層に受信されたデータと同じプロトコルに則るデータであって後続して受信されるデータである後続データの存否を判断する。前記切替手段は、前記後続データが存在すると判断した場合には前記遅延応答確認を行うと決定し、それ以外の場合には前記確認応答を直ちに送信すると決定する。
【００１４】
この発明のうち請求項７にかかるものは、請求項６記載のパケット通信装置であって、前記判断手段は、ネットワーク層に相当するプロトコル階層及びこれよりもネットワーク側のプロトコル階層に受信されたデータを調べる。
【００１５】
この発明のうち請求項８にかかるものは、請求項７記載のパケット通信装置であって、前記判断手段は前記ネットワーク層に相当するプロトコル階層についてのヘッダを調べる。
【００１６】
この発明のうち請求項９にかかるものは、請求項１記載のパケット通信装置であって、前記パケットはＴＣＰセグメントである。前記判断手段は、前記パケットのＴＣＰヘッダが有するコードビットのプッシュフラグの内容を判断する。前記切替手段は前記プッシュフラグがアクティブである場合に前記確認応答を直ちに送信すると決定し、前記プッシュフラグがアクティブでない場合に前記遅延確認応答を行うと決定する。
【００１７】
この発明のうち請求項１０にかかるものは、請求項６乃至請求項９のいずれか一つに記載のパケット通信装置であって、前記パケットはＴＣＰセグメントである。前記後続データが存在すると判断された場合には、前記パケットのＴＣＰヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて前記遅延確認応答を行うと決定される。前記後続データが存在しないと判断された場合又は前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される。
【００１８】
この発明のうち請求項１１にかかるものは、請求項６乃至請求項９のいずれか一つに記載のパケット通信装置であって、前記後続データが存在すると判断され、かつ前記パケットが順序通り受信されたと判断した場合には、前記遅延確認応答を行うと決定される。前記後続データが存在しないと判断された場合又は前記パケットが順序通り受信されなかったと判断された場合には、前記確認応答を直ちに送信すると決定される。
【００１９】
この発明のうち請求項１２にかかるものは、請求項１記載のパケット通信装置であって、前記パケットはＴＣＰセグメントである。前記パケットのＴＣＰヘッダが有するコードビットのアージェントフラグがアクティブである場合を除いて遅延確認応答を採用すると決定される。前記アージェントフラグがアクティブである場合には前記確認応答を直ちに送信すると決定される。
【００２０】
この発明のうち請求項１３にかかるものは、請求項１記載のパケット通信装置であって、前記パケットが順序通り受信されなかった場合に前記確認応答を直ちに送信すると決定される。
【００２１】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１にかかるパケット通信装置において適用される通信プロトコルの階層構造を示す概念図である。ネットワーク５から最も離れて最上位層１が設定され、階層が下位に進むに連れてＴＣＰ層２、ＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）層３、ＭＡＣ（Ｍｅｄｉａ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌ）層４Ａ、物理層４Ｂがこの順にネットワーク５に近づいて設定される。より上位の層はより下位の層からデータ（パケットから所定のヘッダが取り除かれたものを含む）を受信し、より上位の層はより下位の層へとデータを送信する。図１では受信データ及び送信データをそれぞれ右上がり及び右下がりのハッチングで示している。
【００２２】
上述の層をＯＳＩ（Ｏｐｅｎ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）の参照プロトコルと比較すると最上位層１は参照プロトコルのアプリケーション層とプレゼンテーション層とセッション層に相当し、ＴＣＰ層２、ＩＰ層３、ＭＡＣ層４Ａ、物理層４Ｂはそれぞれ参照プロトコルのトランスポート層、ネットワーク層、データリンク層、物理層に相当する。物理層４Ｂの少なくとも一部、即ち物理回路たるネットワーク５に直接に接続される部分は、ネットワーク５からパケットを電気的な信号として受信する受信回路９０ａを、ネットワーク５へとパケットを電気的な信号として送信する送信回路９０ｂを、それぞれハードウェアとして含んでいる。ＭＡＣ層４Ａ、物理層４Ｂは、まとめてデータリンク層４として把握されることもある。
【００２３】
ＴＣＰ層２は従来のＴＣＰの機能の他に、後述する判断機能６及び切替機能７を果たし、図１ではこれらの機能を便宜的にブロックを用いて示している。但し判断機能６及び切替機能７を発揮する手段がＴＣＰ通信装置において備えられていてもよい。ＩＰ層３はＭＡＣ層４Ａから受信したデータを一時的に格納する機能を果たし、図１ではこれを便宜上ブロックを用いてバッファ８として描いている。ＭＡＣ層４Ａは物理層４Ｂから受信したデータを一時的に格納する機能を果たし、図１ではこれを便宜上ブロックを用いてバッファ９として描いている。但しバッファ８，９のバッファ機能を発揮する手段がＴＣＰ通信装置において備えられていてもよい。
【００２４】
バッファ８，９は順次に受信する複数のデータを格納してもよい。例えばバッファ８はそれぞれが一つのパケットを一時的に格納するバッファ要素８１〜８４を、バッファ９はそれぞれが一つのパケットを一時的に格納するバッファ要素９１〜９４を、それぞれ有している。バッファ要素８１，８２，８３，８４はこの順に、バッファ要素９１，９２，９３，９４はこの順に、ネットワーク５から離れて最上位層１に近づく。
【００２５】
これらのブロックで示された機能は、必ずしもこれらの機能を果たすための専用の回路によって実現される必要はなく、汎用的なコンピュータにおいて動作するソフトウェアによって実現されることができる。
【００２６】
図２は図１に示された階層構造を有する通信プロトコルが採用されるパケット通信装置４００を例示するブロック図である。通信装置４００はネットワークコントローラ４０１と、ＣＰＵ（中央演算ユニット）４０２と、ＲＡＭ（ランダムアクセスメモリ）４０３と、不揮発性メモリ（たとえばリードオンリーメモリ）４０４とを備えている。これらは例えば別々のチップのＬＳＩで構成され、内部バス４０５を介して相互に接続される。ＲＡＭ４０３と不揮発性メモリ４０４とは、ＣＰＵ４０２に内蔵されてもよい。
【００２７】
ネットワークコントローラ４０１（あるいはその専用ＩＣ）が図１に示されたブロック４の物理層４Ｂ及びＭＡＣ層４Ａを実現する。受信回路９０ａ、送信回路９０ｂ、バッファ９はネットワークコントローラ４０１に内蔵される。
【００２８】
図１の最上位層１、ＴＣＰ層２、ＩＰ層３はソフトウェアによって実現される。ＣＰＵ４０２が、内部バス４０５を介して不揮発性メモリ４０４からプログラムを読み出し、これを実行する。これにより、判断機能６，切替機能７を含め、最上位層１、ＴＣＰ層２、ＩＰ層３の機能を実現する。ＲＡＭ４０３はＣＰＵ４０２によってアクセス可能であり、ＩＰ層３のバッファ８の役割を担う。
【００２９】
図３は本発明の実施の形態１の動作を示すフローチャートである。このフローチャートで示される動作はパケットが受信されてから確認応答を送信するまでの動作であって、ＴＣＰ層２の機能として実行される。ステップ１１においてＩＰ層３からデータを受信する。このステップ１１は、ネットワーク５からパケットが受信されるたびに、物理層４Ｂ、ＭＡＣ層４Ａ、ＩＰ層３を順次経由してデータが伝達された後に実行される。ステップ１１が実行された後、ステップ１２において、ＴＣＰ層２は受信したデータの種類を判断する。より詳細にはＴＣＰ層２が判断機能６を用いてステップ１２の判断を実行する。
【００３０】
具体的には例えば、受信データのヘッダに備えられるＴＣＰのポート番号を参照することによって、そのヘッダを有するデータが最上位層１において取り扱われるべきアプリケーションを特定する。アプリケーションが特定されれば、そのアプリケーションの特徴から、データが連続して受信されるか非連続かを判断することができる。例えばポート番号が２１であれば、アプリケーションはＦＴＰ（Ｆｉｌｅ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）であり、データは連続して受信される。またポート番号が２３であれば、アプリケーションはＴＥＬＮＥＴ（ＴＥＬｅｃｏｍｍｕｎｃａｔｉｏｎ　ＮＥＴｗｏｒｋ）であり、データは非連続に受信される。データが連続して受信される他のアプリケーションの例としては、それぞれポート番号が２５，１１０に対応するＳＭＴＰ（Ｓｉｍｐｌｅ　Ｍａｉｌ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ），ＰＯＰ３（Ｐｏｓｔ　Ｏｆｆｉｃｅ　Ｐｒｏｔｏｃｏｌ　Ｖｅｒｓｉｏｎ　３）を挙げることができる。このようにポート番号を参照することによってアプリケーションを特定することで、特にウェルノウンポート番号が指定されているアプリケーションを容易に特定することができる。
【００３１】
ここで連続して受信される種類のデータとは、その属するパケットの通信プロトコルが、送信ホストと受信ホストとが交互にパケットを通信することを前提としないデータをいう。また非連続して受信される種類のデータとは、その属するパケットの通信プロトコルが、送信ホストと受信ホストとが交互に入れ替わって相互にパケットを通信することを前提とするデータをいう。後者の場合、従って、第１のホストから第２のホストへと２つのパケット＃１，＃２をこの順に送信する場合には、パケット＃１が送信されてから，パケット＃２が送信されるまでに、第２のホストから第１のホストへと送信されるパケット＃３が存在する。
【００３２】
切替機能７は、判断機能６によって判断された結果、即ち受信したデータの種類が「連続」か「非連続」であるかに基づいて、その後の処理においてそれぞれ遅延確認応答を使用するか否かを切り替える。即ち、受信したデータの種類が「連続」である場合には、ステップ１３に進んで原則として遅延確認応答を用いた処理を行うと決定する。一方、受信したデータの種類が「非連続」である場合には、ステップ１８に進んで原則として遅延確認応答を用いない処理を行うと決定する。図３においては確認応答を「ＡＣＫ」と略記している。
【００３３】
まず受信したデータの種類が「非連続」であると判断された場合には、ステップ１４ｂに進み、ＴＣＰに基づいた通常の受信処理を行う。そしてステップ１９において確認応答を送信ホストへと送信し、パケットの受信から確認応答までの処理が終了する。
【００３４】
受信したデータの種類が「連続」であると判断された場合には、ステップ１４ａに進み、ＴＣＰに基づいた通常の受信処理を行う。そしてステップ１４ａで受信処理が行われたデータに引き続きデータが存在するか否かが、判断機能６によってステップ１５において判断される。
【００３５】
判断機能６は、ＩＰ層３内のバッファ８に格納されて次に最も早くＴＣＰ層２へと伝達されるデータ（以下「直近のバッファデータ」と称する）を調べる。そしてこの直近のバッファデータがＴＣＰに則ったデータであればステップ１４ａで処理されたデータに後続するデータが存在すると判断する。当該判断に基づいて切替機能７は遅延確認応答を採用すると決定する。この決定に基づいて、ステップ１７へと処理が進み、遅延確認応答処理が行われる。一方、直近のバッファデータが存在しないと判断された場合、若しくは直近のバッファデータがＴＣＰ以外のプロトコルに則ったデータであると判断された場合には、当該判断に基づいて切替機能７は遅延確認応答を採用せず、確認応答を行うと決定する。この決定に基づいて、ステップ１６へと処理が進み、確認応答が送信される。
【００３６】
ステップ１５における判断は、パケットから既に得られ、トランスポート層に相当するプロトコル階層（図１ではＴＣＰ層２として示される）において受信されたデータと同じプロトコルに則って後続して受信されるデータである、後続データの存否を判断していると言える。
【００３７】
ステップ１５における判断は具体的には以下の通りに例示される。図４はステップ１５における判断の具体的な第１の例を示す概念図である。ＩＰ層３内部のバッファ８４に格納されているパケットである、直近のバッファデータＱ４は、ＩＰヘッダ４１、トランスポート層用ヘッダ４２、トランスポート層用データ４３を備えている。
【００３８】
一般にネットワーク層についてのヘッダには、自身が属するパケットがトランスポート層においてどのようなプロトコルに則るかを示すデータを有している。例えばＩＰヘッダ４１には実施の形態２で後述するプロトコル番号が含まれている。プロトコル番号は、これが属するデータがトランスポート層のプロトコルとしてＴＣＰが採用されるパケット（ＴＣＰセグメント）か、他の、例えばＵＤＰ（Ｕｓｅｒ　Ｄａｔａｇｒａｍ　Ｐｒｏｔｏｃｏｌ）に則ったパケット（ＵＤＰデータグラム）から得られたデータであるかを示している。例えば直近のバッファデータＱ４がＴＣＰセグメントから得られたデータである場合には、トランスポート層用ヘッダ４２、トランスポート層用データ４３はそれぞれＴＣＰヘッダ、ＴＣＰデータである。直近のバッファデータＱ４がＵＤＰデータグラムであれば、トランスポート層用ヘッダ４２、トランスポート層用データ４３はそれぞれＵＤＰヘッダ、ＵＤＰデータである。
【００３９】
図５は、ステップ１５における判断の具体的な第２の例を示す概念図である。ここでは、ＭＡＣ層４Ａが備えるバッファ９に一時的に格納されたデータのＩＰヘッダ４１が調べられる。ネットワーク層に相当するプロトコル階層（ここではＩＰ層３）及びこれよりもネットワーク側のプロトコル階層（ここではＭＡＣ層４Ａ）に受信されたデータは、ネットワーク層に相当するプロトコル階層についてのヘッダ（ここではＩＰヘッダ４１）を備え、当該ヘッダはトランスポート層（例えばＴＣＰ層２）におけるプロトコルを特定するデータを有している。よってバッファ９に一時的に格納されたデータのＩＰヘッダ４１を調べても、その属するパケットがＴＣＰセグメントか、他の、例えばＵＤＰデータグラムであるかを判断することができる。
【００４０】
但し、バッファ９に格納されたデータにはヘッダとして、ＩＰヘッダ４１、トランスポート層用ヘッダ４２の他に、データリンク層用ヘッダ４０（例えばイーサネット（登録商標）ヘッダなど）が付加されている。
【００４１】
このように、ＩＰ層３及びこれよりもネットワーク５に近いＭＡＣ層４Ａにおいて受信されたデータのＩＰヘッダ４１を調べることにより、ＴＣＰ層３に受信されたデータと、同じプロトコルに則るデータが後続して受信されるか否かを判断することができる。
【００４２】
図６はステップ１５における判断の具体的な第３の例を示す概念図である。ここでは、バッファ８に、例えばバッファ要素８４に、フラグ領域８４１及び直近のバッファデータＱ４を格納する格納領域８４２を含ませている。上述のように、ＩＰヘッダ４１には、自身が属するデータは、トランスポート層のプロトコルとして何が採用されるかについての情報を有している。よってＩＰヘッダ４１をＩＰ層３が分析し、トランスポート層のプロトコルとしてＴＣＰが採用されるか否かを示すフラグをフラグ領域８４１に書き込ませることができる。ＴＣＰ層２からは、その判断機能６によってフラグ領域８４１を読み込み、ステップ１５の判断を行うことができる。
【００４３】
図７はステップ１５における判断の具体的な第４の例を示す概念図であって、具体的な第３の例を図５に示された第２の具体例に同様に適用した例を示す。バッファ９にはフラグ領域９４１及び格納領域９４２を含ませている。よってＩＰヘッダ４１をＭＡＣ層４Ａが分析し、トランスポート層のプロトコルとしてＴＣＰが採用されるか否かを示すフラグをフラグ領域９４１に書き込ませることができる。ＴＣＰ層２からは、その判断機能６によってフラグ領域９４１を読み込み、ステップ１５の判断を行うことができる。
【００４４】
当該フラグ領域は必ずしもバッファ８やバッファ９に設ける必要はなく、当該フラグをグローバル変数として採用してもよい。
【００４５】
図３に戻り、ステップ１５で後続データが存在すると判断し、ステップ１７へと処理が進めば、遅延確認応答の処理を行う。具体的には、前回確認応答を送信してからＴＣＰ層２が１回しかデータを受信していない場合には確認応答を送信せずに終了する。そしてその後に、直近のバッファデータＱ４が（或いは直近のバッファデータＱ４からＩＰヘッダ４１が取り除かれたデータが）、ＩＰ層３に受信されるのを待つ。前回確認応答を送信してからＴＣＰ層２が所定の複数回でデータを受信した場合には確認応答を送信して終了する。或いは前回確認応答を送信してからＴＣＰ層２が所定の複数回のデータを受信していなくても、最後にデータを受信してから所定の待機時間が経過したら確認応答を送信して終了する。この所定の複数回数は例えば２回に設定される。
【００４６】
ステップ１５で後続データが存在しないと判断すれば、ステップ１６へと処理が進み、直ちに遅延確認応答を送信ホストへと送信し、パケットの受信から遅延確認応答までの処理は終了する。
【００４７】
以上のように、本実施の形態にかかるパケット通信装置では、ステップ１２において判断機能６がパケットの内容、例えばパケットが取り扱われるアプリケーションを判断する。そして遅延確認応答を採用するか否かを切替機能７が決定する。これにより、確認応答の送信を直ちに行う必要がないパケットについては次のパケットを待ち、確認応答の送信を直ちに行う必要があるパケットについては確認応答を送信することができる。よってトラフィックの増大や遅延確認応答の待機時間による通信速度の低下を回避することができる。
【００４８】
また本実施の形態にかかるパケット通信装置では、遅延確認応答を採用する場合であっても、ステップ１５において後続データの有無を確認し、その存否に基づいて確認応答を直ちに送信するか否かを決定する。これにより、後続データが存在しない場合には遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。従ってステップ１２，１８，１４ｂ，１９を実行せず、よってデータの「連続」「非連続」の判断、即ちデータが取り扱われるアプリケーションの種類の判断を行わなくても、ステップ１５，１６，１７から上記の効果を得ることができる。換言すれば、ステップ１２の判断に基づいて処理を切り替える効果とステップ１５の判断に基づいて処理を切り替える効果とは、直接には関係せず、相互に独立している。
【００４９】
本実施の形態ではこのようなパケットの内容の判断として後続データの有無の判断を用いたが、実施の形態３以降では他の基準によってパケットの内容を判断する場合が例示される。
【００５０】
実施の形態２．
図８は本発明の実施の形態２にかかるパケット通信装置において適用される通信プロトコルの階層構造の一部を示す概念図である。ここではＴＣＰ層２とＩＰ層３のみを示しており、その他の階層は図１に示された内容と同一に構成できる。
【００５１】
ＴＣＰ層２は判断機能６に加え、更に統計機能７１、送受信記録機能７２をも備えている。図８ではこれらの機能を便宜的にブロックを用いて示している。但し統計機能７１、送受信記録機能７２を発揮する手段が、ＴＣＰ通信装置において備えられていてもよい。
【００５２】
送受信記録機能７２はＩＰ層３から受信するデータが属するパケットの内容のうち、ＴＣＰコネクションを記録する。統計機能７１は送受信記録機能７２に記録されたＴＣＰコネクションに基づいて後述する統計処理を行う。
【００５３】
図９はＩＰ層３からＴＣＰ層２へ与えられるデータＱの構成を示す概念図である。データＱはＴＣＰに則って処理されるデータであり、ＩＰヘッダ４１、ＴＣＰヘッダ４２１、ＴＣＰデータ４３１を備えている。ＴＣＰヘッダ４２１、ＴＣＰデータ４３１はそれぞれ図４に示されたトランスポート層用ヘッダ４２、トランスポート層用データ４３に対応している。
【００５４】
ＩＰヘッダ４１は送信元ＩＰアドレス４１ａ、宛先ＩＰアドレス４１ｂ、プロトコル番号４１ｃを有し、ＴＣＰヘッダ４２１は送信元ポート番号４２ａ、宛先ポート番号４２ｂを有している。ここではデータＱがＴＣＰに則って処理されるデータであるので、プロトコル番号４１ｃは値“６”に設定される。
【００５５】
ＴＣＰコネクションは送信元ＩＰアドレス４１ａ、宛先ＩＰアドレス４１ｂ、送信元ポート番号４２ａ、宛先ポート番号４２ｂで決定される。送受信記録機能７２はこれら４つを記録する。統計機能７１は送受信記録機能７２が記憶した内容で決定されるＴＣＰコネクションにおいて、ＴＣＰ層２が受信したデータが「連続」「非連続」であるかの統計を採る。
【００５６】
ＴＣＰ層２は、ＩＰ層３からデータを受信すると、そのデータのＴＣＰコネクションを確認する。そして統計機能７１に対して当該ＴＣＰコネクションを照会し、「連続」するデータが「非連続」するデータよりも多かったＴＣＰコネクションであるとの統計結果、若しくは「非連続」するデータが「連続」するデータよりも多かったＴＣＰコネクションであるとの統計結果のいずれが得られているを得る。そして「連続」するデータが「非連続」するデータよりも多かったＴＣＰコネクションであるとの統計結果が得られている場合には、ステップ１２からステップ１３に処理を進め、「非連続」するデータが「連続」するデータよりも多かったＴＣＰコネクションであるとの統計結果が得られている場合には、ステップ１２からステップ１８に処理を進める。
【００５７】
以上のように本実施の形態では、受信したデータのＴＣＰコネクションにおいて「連続」するデータと「非連続」するデータとのいずれが多く通信されたかについての統計結果を得て、これに基づいて遅延確認応答の採否を決定する。従って、ポート番号からアプリケーションが特定できない場合、例えば独自に作成されたアプリケーションが採用される場合に、遅延確認応答の採否を適切に決定することができる。
【００５８】
実施の形態３．
図９に示されるように、ＴＣＰヘッダ４２１はコードビット４２ｃを更に有している。そして図１に示されたステップ１５の判断をコードビット４２ｃに基づいて行ってもよい。コードビット４２ｃの参照は、実施の形態１に説明されたようにバッファ８或いはバッファ９にＴＣＰ層２からアクセスすることによって実現してもよい。またＴＣＰ層２が受信したデータのコードビット４２ｃを参照してもよい。
【００５９】
本実施の形態では、ＴＣＰ層２が、例えばＴＣＰ層２に設けられた判断機能６によって、コードビット４２ｃに通常備えられるプッシュフラグＰＳＨを参照して後続データの有無を判断する。プッシュフラグＰＳＨとして与えられるビットがアクティブ（例えばその値が“１”）であれば、データの区切れを示す。つまりプッシュフラグＰＳＨがアクティブの値が“１”であれば後続データがない可能性が高い。
【００６０】
よって本実施の形態ではプッシュフラグＰＳＨの値が“１”であれば遅延確認応答を採用せず、直ちに確認応答を送信すると切替機能７が決定する。よってステップ１５からステップ１６へと処理を進めて直ちに確認応答を送信する。プッシュフラグＰＳＨの値が“０”であれば遅延確認応答を採用すると切替機能７が決定する。よってステップ１５からステップ１７へと処理を進めて遅延確認応答の処理を行う。これにより、後続データが存在しない可能性が高い場合に遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。
【００６１】
コードビット４２ｃの参照は、実施の形態１に説明されたようにバッファ８或いはバッファ９にＴＣＰ層２からアクセスすることによって実現してもよい。またＴＣＰ層２が受信したデータのコードビット４２ｃを参照してもよい。
【００６２】
実施の形態４．
図１０は本発明の実施の形態４における処理の一部を示すフローチャートである。図３に示されたフローチャートのステップ１５がステップ１５１に置換されており、それ以外のステップは図３に示されたステップを採用することができる。
【００６３】
本実施の形態では、ＴＣＰ層２が、例えばＴＣＰ層２に設けられた判断機能６によって、コードビット４２ｃに通常備えられるアージェントフラグＵＲＧを参照する。アージェントフラグＵＲＧとして与えられるビットがアクティブ（例えばその値が“１”）であれば、緊急性があることを示す。そこでステップ１５１でアージェントフラグＵＲＧが“１”であれば、遅延確認応答を採用せず、直ちに確認応答を送信すると切替機能７が決定する。よってステップ１５からステップ１６へと処理を進める。アージェントフラグＵＲＧが“０”であれば、遅延確認応答を採用すると切替機能７が決定し、ステップ１７に処理を進める。これにより、緊急性がある場合には迅速に確認応答を送信し、遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。
【００６４】
図１１は本実施の形態の変形を示すフローチャートである。図３に示されたフローチャートのステップ１５とステップ１７の間にステップ１５１が追加されており、それ以外のステップは図３に示されたステップを採用することができる。
【００６５】
ステップ１５によって後続データがあると判断された場合であっても、ステップ１５１によってデータに緊急性があると判断された場合は、ステップ１６に処理が進む。このような処理の流れにより、緊急性ある場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【００６６】
実施の形態５．
図１２は本発明の実施の形態５における処理の一部を示すフローチャートである。図３に示されたフローチャートのステップ１５がステップ１５２に置換されており、それ以外のステップは図３に示されたステップを採用することができる。
【００６７】
本実施の形態では、ＴＣＰ層２が、例えば判断機能６によって、受信されたパケットが順序通りに受信されたか否かを判断する。順番通りで無かった場合には、伝達途中でＴＣＰセグメントが消失している可能性があるため、送信元に迅速に確認応答を送信する必要がある。よって順番通りでないと判断される場合には、遅延確認応答を採用せず、直ちに確認応答を送信すると切替機能７が決定する。よってステップ１５２からステップ１６に進んで直ちに確認応答を送信し、送信元に迅速に確認応答を送信する。一方、順番通りであると判断される場合には、遅延確認応答を採用すると切替機能７が決定する。よってステップ１５２からステップ１７に進んで遅延確認応答の処理が行われる。
【００６８】
図１３は本実施の形態の変形を示すフローチャートである。図３に示されたフローチャートのステップ１５とステップ１７の間にステップ１５２が追加されており、それ以外のステップは図３に示されたステップを採用することができる。
【００６９】
ステップ１５によって後続データがないと判断された場合であっても、ステップ１５２によって受信されたパケットが順序通りに受信されていないと判断された場合は、ステップ１６に処理が進む。つまり後続データがあると判断され、かつ順序通りに受信されている場合にステップ１７に進んで、遅延確認応答の処理が行われる。一方、後続データがないと判断されるか、或いは順序通りに受信されていないと判断された場合には、ステップ１６に進んで、確認応答が直ちに送信される。このような処理の流れにより、受信されたパケットの順序が乱れている場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【００７０】
ＴＣＰ層２が、受信されたパケットが順序通りに受信されたか否かを判断する材料として、ＴＣＰヘッダに通常含まれるシーケンス番号や確認応答番号を採用することができる。
【００７１】
上記の説明ではＴＣＰプロトコルを採用した場合に着目して説明したが、確認応答を採用する、いわゆるコネクション型であれば、他のプロトコルを採用する場合に適用することができる。
【００７２】
ＭＡＣ層４Ａにおけるプロトコルとしては、ＩＥＥＥ８０２．３やＥｔｈｅｒｎｅｔ（登録商標）ＩＩを採用することができる。また、ＯＳＩの参照プロトコルにおけるネットワーク層に相当する層として、ＩＰ層のみならずＮＣＰ（Ｎｅｔｗａｒｅ　Ｃｏｒｅ　Ｐｒｏｔｃｏｌ）層をも採用し、ＯＳＩの参照プロトコルにおけるデータリンク層に相当する層として、ＭＡＣ層４Ａの代わりにＬＣＰ（Ｌｉｎｋ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ）層を採用することができる。この場合、プロトコルとしてＰＰＰ（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ　Ｐｒｏｔｏｃｏｌ）を採用することができる（従って、上述のＮＣＰはＰＰＰについてのものであって、ＡＲＰＡＮＥＴ（Ａｄｖａｎｃｅｄ　Ｒｅｓｅａｒｃｈ　Ｐｒｏｊｅｃｔｓ　Ａｇｅｎｃｙ　ＮＥＴｗｏｒｋ）のそれではない）。
【００７３】
【発明の効果】
この発明のうち請求項１にかかるパケット通信装置によれば、確認応答の送信を直ちに行う必要がないパケットについては次のパケットを待ち、確認応答の送信を直ちに行う必要があるパケットについては確認応答を送信することができる。よってトラフィックの増大や遅延確認応答の待機時間による通信速度の低下を回避することができる。
【００７４】
この発明のうち請求項２にかかるパケット通信装置によれば、アプリケーションに依拠して、遅延確認応答の採否を決定するので、不要な待機時間を採用せず、通信速度の低下を防ぐことができる。
【００７５】
この発明のうち請求項３にかかるパケット通信装置によれば、ウェルノウンポート番号が指定されているアプリケーションを容易に特定することができる。
【００７６】
この発明のうち請求項４、請求項５にかかるパケット通信装置によれば、ポート番号からアプリケーションが特定できない場合、例えば独自に作成されたアプリケーションが採用される場合に、遅延確認応答の採否を適切に決定することができる。
【００７７】
この発明のうち請求項６にかかるパケット通信装置によれば、後続データが存在しない場合には遅延確認応答の処理を行わず、通信速度の低下を防ぐことができる。
【００７８】
一般にネットワーク層に相当するプロトコル階層及びこれよりもネットワーク側のプロトコル階層に受信されたデータは、ネットワーク層に相当するプロトコル階層についてのヘッダを備え、当該ヘッダはトランスポート層におけるプロトコルを特定するデータを有している。よってこの発明のうち請求項７、請求項８にかかるパケット通信装置によれば、トランスポート層に相当するプロトコル階層に受信されたデータと、同じプロトコルに則るデータが後続して受信されるか否かを判断することができる。
【００７９】
この発明のうち請求項９にかかるパケット通信装置によれば、後続データが存在しない可能性が高い場合に遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。
【００８０】
この発明のうち請求項１０にかかるパケット通信装置によれば、後続データが存在しない場合には遅延確認応答における待機時間を採用せず、通信速度の低下を防ぐことができる。しかも緊急性ある場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【００８１】
この発明のうち請求項１１にかかるパケット通信装置によれば、受信されたパケットの順序が乱れている場合には後続データの有無に関わらずに直ちに確認応答を送信することができる。
【００８２】
この発明のうち請求項１２にかかるパケット通信装置によれば、緊急性ある場合には直ちに確認応答を送信することができる。
【００８３】
この発明のうち請求項１３にかかるパケット通信装置によれば、受信されたパケットの順序が乱れている場合には直ちに確認応答を送信することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１にかかるパケット通信装置において適用される通信プロトコルの階層構造を示す概念図である。
【図２】本発明の実施の形態１にかかるパケット通信装置の構造を例示するブロック図である。
【図３】本発明の実施の形態１の動作を示すフローチャートである。
【図４】本発明の実施の形態１の動作の具体的な第１の例を示す概念図である。
【図５】本発明の実施の形態１の動作の具体的な第２の例を示す概念図である。
【図６】本発明の実施の形態１の動作の具体的な第２の例を示す概念図である。
【図７】本発明の実施の形態１の動作の具体的な第２の例を示す概念図である。
【図８】本発明の実施の形態２にかかるパケット通信装置において適用される通信プロトコルの階層構造の一部を示す概念図である。
【図９】ＩＰ層３からＴＣＰ層２へ与えられるデータＱの構成を示す概念図である。
【図１０】本発明の実施の形態４における処理の一部を示すフローチャートである。
【図１１】本発明の実施の形態４の変形を示すフローチャートである。
【図１２】本発明の実施の形態５における処理の一部を示すフローチャートである。
【図１３】本発明の実施の形態５の変形を示すフローチャートである。
【図１４】従来の技術を示す概念図である。
【図１５】従来の技術を示す概念図である。
【図１６】従来の技術を示す概念図である。
【符号の説明】
２　ＴＣＰ層、３　ＩＰ層、６　判断機能、７　切替機能、４１　ＩＰヘッダ、４１ａ　送信元ＩＰアドレス、４１ｂ　宛先ＩＰアドレス、４１ｃ　プロトコル番号、４２ａ　送信元ポート番号、４２ｂ　宛先ポート番号、７１　統計機能、７２　送受信記録機能、４２１　ＴＣＰヘッダ。
【図１】
2004072372.tif 000003
【図２】
2004072372.tif 000004
【図３】
2004072372.tif 000005
【図４】
2004072372.tif 000006
【図５】
2004072372.tif 000007
【図６】
2004072372.tif 000008
【図７】
2004072372.tif 000009
【図８】
2004072372.tif 000010
【図９】
2004072372.tif 000011
【図１０】
2004072372.tif 000012
【図１１】
2004072372.tif 000013
【図１２】
2004072372.tif 000014
【図１３】
2004072372.tif 000015
【図１４】
2004072372.tif 000016
【図１５】
2004072372.tif 000017
【図１６】
2004072372.tif 000018