(57)【要約】【課題】通信機能を備えるコンピュータに対して有効であり、有用データを保有しないパケット送信の発生を削除し、コンピュータと基地局間の通信量を削減する通信制御方法を提供する。【解決手段】通信制御方法は、無線基地局を介して、ネットワークコンピュータと無線通信可能なコンピュータのためのものである。通信制御方法は、パケット送信用データの生成を検知し、送信用データが有用データ保有するか否かを判断し、有用データ非保有送信用データの通信ポート側への出力を規制し、有用データ非保有送信用データに対する疑似応答データを生成し返信し、有用データ保有パケット送信用データを以前に生成した疑似応答データを考慮して加工パケット送信用データを生成および通信用ポート側に出力し、受信する応答パケット通信データを上記加工内容を考慮して加工する。【選択図】    図１
2004208032.tif 000002
【特許請求の範囲】
【請求項１】
無線基地局を介して、形成されているネットワークのコンピュータと接続可能な無線通信機能を備えたコンピュータのための通信制御方法であって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断し、前記送信用データが有用データ非保有送信用データの場合には、当該送信用データの前記コンピュータの通信ポート側への出力を規制し、かつ該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信し、前記送信用データが有用データ保有送信用データの場合には、該有用データ保有パケット送信用データより以前に生成した疑似応答データを考慮して加工パケット送信用データを生成し前記通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データを前記加工パケット送信用データの加工内容を考慮して加工するとともに前記ネットワークアプリケーション側に出力することを特徴とする通信制御方法。
【請求項２】
無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ通信制御プログラムであって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断するパケット送信用データ判断機能と、該有用データ非保有送信用データの前記コンピュータの通信ポート側への出力を規制するデータ出力規制機能と、該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信する疑似応答データ生成・返信機能と、前記有用データ保有パケット送信用データを以前に生成した疑似応答データを考慮して加工した加工パケット送信用データの生成および前記通信用ポート側に出力する加工パケット送信用データ生成・出力機能と、受信する前記加工パケット送信用データに対する応答パケット通信データを前記加工パケット送信用データの加工内容を考慮して加工するとともに前記ネットワークアプリケーション側に出力する加工応答パケット通信データ生成・出力機能とを実行させることを特徴とするコンピュータ通信制御プログラム。
【請求項３】
前記加工送信パケット生成・発信機能は、以前に前記ネットワークアプリケーション側に返信した疑似応答データおよび以前に前記通信用ポート側に出力した加工パケット送信用データを考慮して、加工パケット送信用データを生成するものである請求項２に記載のコンピュータ通信制御プログラム。
【請求項４】
前記コンピュータ通信制御プログラムは、ネットワークドライバアプリケーションプログラムを備え、前記パケット送信用データ判断機能、前記データ出力規制機能、前記疑似応答データ生成・返信機能、前記加工パケット送信用データ生成・出力機能および前記加工応答パケット通信データ生成・出力機能は、該ネットワークドライバアプリケーションプログラムにより実行されるものである請求項２または３に記載のコンピュータ通信制御プログラム。
【請求項５】
無線基地局を介して、形成されているネットワークのコンピュータと接続可能な無線通信機能を備えたコンピュータのための通信制御方法であって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断し、前記送信用データが有用データ非保有送信用データの場合には、当該送信用データの前記コンピュータの通信ポート側への出力を規制し、かつ該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信し、前記送信用データが有用データ保有送信用データの場合には、該有用データ保有パケット送信用データより以前に生成した疑似応答データの影響を受けない加工パケット送信用データを生成し前記通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮して加工するとともに前記ネットワークアプリケーション側に出力することを特徴とする通信制御方法。
【請求項６】
無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ通信制御プログラムであって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断するパケット送信用データ判断機能と、該有用データ非保有送信用データの前記コンピュータの通信ポート側への出力を規制するデータ出力規制機能と、該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信する疑似応答データ生成・返信機能と、前記有用データ保有パケット送信用データを以前に生成した疑似応答データの影響を受けない加工パケット送信用データの生成および前記通信用ポート側に出力する加工パケット送信用データ生成・出力機能と、受信する前記加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮して加工するとともに前記ネットワークアプリケーション側に出力する加工応答パケット通信データ生成・出力機能とを実行させることを特徴とするコンピュータ通信制御プログラム。
【請求項７】
前記コンピュータ通信制御プログラムは、ネットワークドライバアプリケーションプログラムと、実行状態において前記ネットワークアプリケーションと該ネットワークドライバアプリケーション間にて機能する中継アプリケーションプログラムを備え、前記パケット送信用データ判断機能、前記データ出力規制機能、前記疑似応答データ生成・返信機能、前記加工パケット送信用データ生成・出力機能および前記加工応答パケット通信データ生成・出力機能は、前記ネットワークドライバアプリケーションプログラムと前記中継アプリケーションプログラムとにより実行される請求項６に記載のコンピュータ通信制御プログラム。
【請求項８】
前記ネットワークドライバアプリケーションプログラムは、前記ネットワークアプリケーションによって生成されたパケット送信用データ、受信した前記応答パケット通信データを前記中継アプリケーション側に転送する第１のデータ転送機能および前記データ出力規制機能を実行するものであり、前記中継アプリケーションプログラムは、前記パケット送信用データ判断機能、前記疑似応答データ生成・返信機能における疑似応答データ生成および生成データのネットワークドライバアプリケーション側への返信機能、前記加工パケット送信用データ生成・出力機能における加工パケット送信用データの生成および生成データのネットワークドライバアプリケーション側への返信機能、前記加工応答パケット通信データ生成・出力機能における加工応答パケット通信データの生成および生成データのネットワークドライバアプリケーション側への返信機能を実行するものであり、さらに、前記ネットワークドライバアプリケーションプログラムは、前記中継アプリケーション側から返信された中継アプリケーション生成データを前記有用データ保有パケット送信用データに関する加工パケット送信用データを除き、前記ネットワークアプリケーション側に転送する転送機能を備えている請求項７に記載のコンピュータ通信制御プログラム。
【請求項９】
前記加工パケット送信用データ生成・出力機能における加工パケット送信用データ生成は、前記コンピュータに格納されているプロトコルドライバにより加工パケット送信用データに付加される制御用番号シリーズが、前記ネットワークアプリケーションにより生成されたパケット送信用データに前記プロトコルドライバにより付加される制御番号シリーズと異なるものとなるようにパケット送信用データを加工するものである請求項６ないし８のいずれかに記載のコンピュータ通信制御プログラム。
【請求項１０】
前記請求項２ないし９のいずれかのコンピュータ通信制御プログラムを作動可能に格納したことを特徴とする無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ。
【請求項１１】
前記請求項２ないし９のいずれかのコンピュータ通信制御プログラムをコンピュータが読み取り可能な記録媒体に記録したことを特徴とするコンピュータ通信制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータのための通信制御方法、無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータのためのコンピュータ通信制御プログラムおよびそれを記憶した記録媒体ならびにそれを格納したコンピュータに関する。特に、クライアント側コンピュータとネットワークを構成するコンピュータ間において、有効なデータ交換が行われていない状況で発生するパケット通信を削減することが可能な通信制御方式およびコンピュータ通信制御プログラムに関する。
【０００２】
【従来の技術】
図９に示すように、複数のコンピュータからなるネットワーク１００に、無線通信機能を備えるクライアントコンピュータ１０１は、基地局１０２を介して接続可能である。そして、接続された状態では、クライアントコンピュータ（以下、クライアント）とネットワークコンピュータ（以下、サーバ）間では、いわゆるファイル共有等が可能となる。
現在では、コンピュータのオペレーションシステム（ＯＳ）として、Ｗｉｎｄｏｗｓ（登録商標）が一般的に用いられている。Ｗｉｎｄｏｗｓ（登録商標）のファイル共有等では、ＮＢＴ（Netbios over TCP／IP）プロトコルを使用が使用されている。そして、このファイル共有では、ＴＣＰのポート番号１３９（netbios−ssn）または、ポート番号４４５（microsoft−ds）を使用してサーバとクライアント間での通信が行われている。ＴＣＰは、ＲＦＣ７９３，ＮＢＴはＲＦＣ１００１、１００２で規格化されている。
ファイル共有等のアプリケーション（以下、ネットワークアプリケーション）は、このＮＢＴの規格上で、ＳＭＢ／ＣＩＦＳの仕様を用いて、データの交換が行われる。ＳＭＢプロトコルは、Ｍｉｃｒｏｓｏｆｔ社が主に開発し、現在でも改良を続けている独自のプロトコルであるが、これを正式にドキュメント化して、インターネット上などでファイル共有サービスとして利用できるようにしたものをＣＩＦＳ（Common Internet File System）プロトコルと呼び、その仕様が公開されている。
図１０に、ＳＭＢ／ＣＩＦＳ上で利用されるシーケンスを示す。
ＳＭＢ／ＣＩＦＳの仕様では、ＳＭＢ＿ＣＯＭ＿ＥＣＨＯというコマンドが存在する。このコマンドはクライアントがサーバとの接続を調べ、サーバからの反応を得るためのものである。クライアントはこのコマンドを定期的に発生させ、サーバからの返答がないときには現在の接続を切断する等の目的で使用される。すなわち、クライアントからＳＭＢ＿ＣＯＭ＿ＥＣＨＯリクエストパケットがＥＣＨＯ  ＣＯＵＮＴをｎとしてサーバに対して発せられ、サーバ側では、ＳＭＢ＿ＣＯＭ＿ＥＣＨＯレスポンスパケットをＳｅｑｕｅｃｅＮｏが１からｎまでのｎ個をクライアントに返す。
ＳＭＢ／ＣＩＦＳで用いられるＳＭＢ＿ＣＯＭ＿ＥＣＨＯコマンドはユーザが意識的に制限できないため、ユーザがアプリケーションを利用した後に、実際に有効なデータ交換を行っていない状態でも、パケットの交換が発生してしまう。具体的には、図１１に示すように、作動中のコンピュータより発生したパケット送信用データは、すべて送信され、さらに、この送信に対する応答パケット通信データを受信する。また、複数のコンピュータに対してアクセスした場合には、その数に比例して、このコマンドのためのパケットが増大する。
転送データ量を減らすための従来の技術としては通信データを圧縮することにより、転送データ量を減らすものは存在するが、上記パケットはデータ量自体が小さいこともあり、圧縮の効果が得られない。
【０００３】
【特許文献】
特開２００１−３０８９５４号公報
【０００４】
【発明が解決しようとする課題】
特許文献（特開２００１−３０８９５４号公報）の請求項１５には、「自ノードの他の通信装置と、他ノードの通信装置との間に位置する通信装置であって、前記自ノードの他の通信装置から前記他ノードの通信装置へのエコー要求パケットを受信した場合には、該エコー要求を終端し、エコー応答パケットを生成し、前記自ノードの他の通信装置へ送信することを特徴とする通信装置。」が開示されている。
しかし、この手法では、上記の通信機能を備える特別な通信装置が必要となる。
【０００５】
また、エコー要求パケットの他ノードの通信装置への送信および他ノードの通信装置からのエコー応答パケットの送信は削除される。しかし、通常アプリケーションがデータ通信を行う場合、その内容を示すヘッダ部をアプリケーションデータ中に設ける。ヘッダ部からそのパケットの種類を判別して、データ交換が行われない状態で発生するパケットを判断することができる。そこで、これらのパケットをクライアント側で止めてしまうことが可能となるが、その際、アプリケーションの動作に影響が出る。
稼動確認のパケットを止めた場合、アプリケーション側で接続が切断されたと判断し、その後の通信を行わなくなってしまい、アプリケーションのその後の動作が継続しなくなってしまう。
また、クライアント側に存在する媒体が稼動確認パケットを受け取った時に、そのパケットをサーバに送らずに決められた応答を返すことにより、クライアントのアプリケーションによる切断を回避することは可能であるが、ＴＣＰ通信ではクライアントサーバ間のデータ転送時にシーケンス番号、ＡＣＫ番号を使用してデータの到着順を保証しているため、この番号の違いが発生することにより、以降のデータ転送に支障をきたす。
【０００６】
図１２、図１３，図１４、図１５にシーケンス番号、ＡＣＫ番号の動作例を示す。
図１２では、通常のＴＣＰプロトコル通信で単一方向にデータが問題なく渡ったときの、シーケンス番号とＡＣＫ番号の値を示している。
クライアントからサーバに対して”１２３”という３ｂｙｔｅのデータが送信される時、ＴＣＰのプロトコルドライバにて、シーケンス番号がＳＳ０，ＡＣＫ番号がＳＣ０、データ部が”１２３”からなるパケットがサーバに対して発せられる。サーバのプロトコルドライバが、このパケットを受け取ると上位のアプリケーションにはデータ部分である”１２３”が渡る。また、シーケンス番号にはＳＳ０、ＡＣＫ番号はＳＣ０＋３（相手のシーケンス番号にデータ３ｂｙｔｅが加算された値）となったＡＣＫパケットがクライアントに返る。
その後、クライアントからサーバに対して”４５６”という３ｂｙｔｅのデータが送信される時、ＴＣＰのプロトコルドライバにて、シーケンス番号がＳＳ０＋３（前回送信したパケットのシーケンス番号にデータ長３（ｂｙｔｅ）を加算した値），ＡＣＫ番号がＳＣ０（前回受信したパケットのシーケンス番号にデータ長０（ｂｙｔｅ）を加算した値）、データ部が”４５６”となるパケットが発せられる。サーバのプロトコルドライバが、このパケットを受け取ると、上位のアプリケーションにはデータ部分である”４５６”が渡る。また、シーケンス番号にＳＳ０、ＡＣＫ番号はＳＣ０＋６（相手のシーケンス番号にデータ３ｂｙｔｅが加算された値）となったＡＣＫパケットがクライアントに返る。
さらに、クライアントからサーバに対して”７８９”というデータが送信されるときにも同様にシーケンス番号がＳＣ０＋６，ＡＣＫ番号がＳＳ０、データ部が”７８９”からなるパケットがサーバに発せられ、上位のアプリケーションに”７８９”が渡ると共に、シーケンス番号がＳＣ０，ＡＣＫ番号がＳＣ０＋６となるＡＣＫパケットがクライアントに返される。
【０００７】
図１３は、図１２の通信において、クライアントからサーバに発せられたパケットの内、データ部に”４５６”を持つパケットがネットワークの途中でロストした時の動作を示したものである。
クライアントからサーバに、データ部に”４５６”を持つパケットが発せられるまでは図１２と同様の動作をする。このパケットがネットワーク障害等によりロストした時には、サーバ側のプロトコルドライバにパケットが届かないので、上位のアプリケーションにはデータは渡らないとともに、ＡＣＫパケットはクライアントに返らない。
その後、再送が発生する前にクライアントからサーバにデータ”７８９”の送信が行われると、クライアントのプロトコルドライバでシーケンス番号がＳＣ０＋６、ＡＣＫ番号がＳＳ０、データが”７８９”のパケットが発せられる。しかし、サーバ側のプロトコルドライバではシーケンス番号がＳＣ０＋３のパケットを受け取っていないため、上位アプリケーションにデータは渡らず、ＡＣＫパケットは返らない。
クライアント側では一定時間ＡＣＫパケットが届かないとプロトコルドライバにより、ＡＣＫパケットを受け取っていないパケットの再送が発生するため、シーケンス番号がＳＣ０＋３、ＡＣＫ番号がＳＳ０、データが”４５６７８９”  のパケットがクライアントからサーバに飛び、サーバからクライアントにシーケンス番号がＳＳ０、ＡＣＫ番号がＳＣ０＋９のＡＣＫパケットが飛び、”４５６７８９”のデータが上位アプリケーションに渡る。
【０００８】
図１４では、図１２に比べてサーバとクライアント間で、双方向のデータの交換が発生するときのシーケンス番号、ＡＣＫ番号の動作を示すものである。この図ではネットワークドライバアプリケーションは何もしない。また、クライアントアプリケーションとサーバアプリケーション間では、クライアントからデータ”１２３”のサーバに渡ると、サーバ側で”ａｂ”をクライアントに返し、クライアントがこれを受け取るとデータ”４５６”をサーバに返し、サーバがこれを受け取ると”ｃｄ”をクライアントに返す通信を行った時のシーケンス番号、ＡＣＫ番号の動きを示す。この場合は、図１２の動作の時と比べて、返事となるデータの送信自体がＡＣＫパケットの役割も兼ねている。図１４でも双方のシーケンス番号、ＡＣＫ番号により、送受信データの整合性を保つようになっている。
【０００９】
図１５では、図１４の通信において、サーバアプリケーションが”１２３”を受けとった時に”ａｂ”を返す動作が、サーバ側の状態に影響を与えないことがわかっている時に、このパケットをクライアント側のネットワークドライバアプリケーションで、”１２３”のデータをサーバに送信せずに、”ａｂ”のデータをクライアントに返した時のシーケンスである。
ネットワークドライバアプリケーションではクライアントからサーバに送られようとしたパケットのＡＣＫ番号をシーケンス番号とし、シーケンス番号に３を加えた値をＡＣＫパケットとすると共にデータを”ａｂ”としてプロトコルドライバに返す。この場合はプロトコルドライバ側ではデータの送受信が正常に行われたと判断されるので、”ａｂ”のデータがクライアントアプリケーションに渡り、次の”４５６”のデータが送信される。プロトコルドライバからはシーケンス番号にＳＣ０＋３、ＡＣＫ番号にＳＳ０＋２のパケットがサーバに発せられる。
このパケットを受け取ったサーバのプロトコルドライバでは、シーケンス番号がＳＣ０のパケットを受け取っていないため、上位のアプリケーションにデータが渡らない。また、ＡＣＫのパケットもクライアントに送信されない。従って、クライアントから”４５６”のデータの再送が続き、接続が切れてしまうことになる。
【００１０】
本発明の目的は、既存の通信機能を備えるコンピュータに対して有効であり、特別な通信装置を設けることなく、有用データを保有しないパケット送信の発生を削除することができ、通信量、特にコンピュータと基地局間の通信量を削減できるとともに、パケット送信の発生を削除してもネットワークアプリケーションへの影響を発生させることがない無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータのための通信制御方法、無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータのためのコンピュータ通信制御プログラムおよびそれを記憶した記録媒体ならびにそれを格納したコンピュータを提供するものである。
【００１１】
【課題を解決するための手段】
上記目的を達成するものは、以下のものである。
（１）  無線基地局を介して、形成されているネットワークのコンピュータと接続可能な無線通信機能を備えたコンピュータのための通信制御方法であって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断し、前記送信用データが有用データ非保有送信用データの場合には、当該送信用データの前記コンピュータの通信ポート側への出力を規制し、かつ該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信し、前記送信用データが有用データ保有送信用データの場合には、該有用データ保有パケット送信用データより以前に生成した疑似応答データを考慮して加工パケット送信用データを生成し前記通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データを前記加工パケット送信用データの加工内容を考慮して加工するとともに前記ネットワークアプリケーション側に出力する通信制御方法。
【００１２】
（２）  無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ通信制御プログラムであって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断するパケット送信用データ判断機能と、該有用データ非保有送信用データの前記コンピュータの通信ポート側への出力を規制するデータ出力規制機能と、該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信する疑似応答データ生成・返信機能と、前記有用データ保有パケット送信用データを以前に生成した疑似応答データを考慮して加工した加工パケット送信用データの生成および前記通信用ポート側に出力する加工パケット送信用データ生成・出力機能と、受信する前記加工パケット送信用データに対する応答パケット通信データを前記加工パケット送信用データの加工内容を考慮して加工するとともに前記ネットワークアプリケーション側に出力する加工応答パケット通信データ生成・出力機能とを実行させるコンピュータ通信制御プログラム。
【００１３】
（３）  前記加工送信パケット生成・発信機能は、以前に前記ネットワークアプリケーション側に返信した疑似応答データおよび以前に前記通信用ポート側に出力した加工パケット送信用データを考慮して、加工パケット送信用データを生成するものである上記（２）に記載のコンピュータ通信制御プログラム。
（４）  前記コンピュータ通信制御プログラムは、ネットワークドライバアプリケーションプログラムを備え、前記パケット送信用データ判断機能、前記データ出力規制機能、前記疑似応答データ生成・返信機能、前記加工パケット送信用データ生成・出力機能および前記加工応答パケット通信データ生成・出力機能は、該ネットワークドライバアプリケーションプログラムにより実行されるものである上記（２）または（３）に記載のコンピュータ通信制御プログラム。
【００１４】
（５）  無線基地局を介して、形成されているネットワークのコンピュータと接続可能な無線通信機能を備えたコンピュータのための通信制御方法であって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断し、前記送信用データが有用データ非保有送信用データの場合には、当該送信用データの前記コンピュータの通信ポート側への出力を規制し、かつ該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信し、前記送信用データが有用データ保有送信用データの場合には、該有用データ保有パケット送信用データより以前に生成した疑似応答データの影響を受けない加工パケット送信用データを生成し前記通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮して加工するとともに前記ネットワークアプリケーション側に出力する通信制御方法。
【００１５】
（６）  無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ通信制御プログラムであって、
前記無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断するパケット送信用データ判断機能と、該有用データ非保有送信用データの前記コンピュータの通信ポート側への出力を規制するデータ出力規制機能と、該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信する疑似応答データ生成・返信機能と、前記有用データ保有パケット送信用データを以前に生成した疑似応答データの影響を受けない加工パケット送信用データの生成および前記通信用ポート側に出力する加工パケット送信用データ生成・出力機能と、受信する前記加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮して加工するとともに前記ネットワークアプリケーション側に出力する加工応答パケット通信データ生成・出力機能とを実行させるコンピュータ通信制御プログラム。
【００１６】
（７）  前記コンピュータ通信制御プログラムは、ネットワークドライバアプリケーションプログラムと、実行状態において前記ネットワークアプリケーションと該ネットワークドライバアプリケーション間にて機能する中継アプリケーションプログラムを備え、前記パケット送信用データ判断機能、前記データ出力規制機能、前記疑似応答データ生成・返信機能、前記加工パケット送信用データ生成・出力機能および前記加工応答パケット通信データ生成・出力機能は、前記ネットワークドライバアプリケーションプログラムと前記中継アプリケーションプログラムとにより実行される上記（６）に記載のコンピュータ通信制御プログラム。
（８）  前記ネットワークドライバアプリケーションプログラムは、前記ネットワークアプリケーションによって生成されたパケット送信用データ、受信した前記応答パケット通信データを前記中継アプリケーション側に転送する第１のデータ転送機能および前記データ出力規制機能を実行するものであり、前記中継アプリケーションプログラムは、前記パケット送信用データ判断機能、前記疑似応答データ生成・返信機能における疑似応答データ生成および生成データのネットワークドライバアプリケーション側への返信機能、前記加工パケット送信用データ生成・出力機能における加工パケット送信用データの生成および生成データのネットワークドライバアプリケーション側への返信機能、前記加工応答パケット通信データ生成・出力機能における加工応答パケット通信データの生成および生成データのネットワークドライバアプリケーション側への返信機能を実行するものであり、さらに、前記ネットワークドライバアプリケーションプログラムは、前記中継アプリケーション側から返信された中継アプリケーション生成データを前記有用データ保有パケット送信用データに関する加工パケット送信用データを除き、前記ネットワークアプリケーション側に転送する転送機能を備えている上記（７）に記載のコンピュータ通信制御プログラム。
（９）  前記加工パケット送信用データ生成・出力機能における加工パケット送信用データ生成は、前記コンピュータに格納されているプロトコルドライバにより加工パケット送信用データに付加される制御用番号シリーズが、前記ネットワークアプリケーションにより生成されたパケット送信用データに前記プロトコルドライバにより付加される制御番号シリーズと異なるものとなるようにパケット送信用データを加工するものである上記（６）ないし（８）のいずれかに記載のコンピュータ通信制御プログラム。
（１０）  上記（２）ないし（９）のいずれかのコンピュータ通信制御プログラムを作動可能に格納したことを特徴とする無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ。
（１１）  上記（２）ないし（９）のいずれかのコンピュータ通信制御プログラムをコンピュータが読み取り可能な記録媒体に記録したことを特徴とするコンピュータ通信制御プログラムを記録した記録媒体。
【００１７】
【発明の実施の形態】
そこで、本発明の無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータのための通信制御方法、無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータのためのコンピュータ通信制御プログラムおよびそれを記憶した記録媒体ならびにそれを格納したコンピュータを図面に示した実施例を用いて説明する。
図１は、本発明の実施例の通信制御方法ならびに本発明の実施例のコンピュータ通信制御プログラムを用いた状態の通信制御方法を説明するための説明図である。図２は、ネットワークドライバが受け取る通常のパケット送信用データの概要および本発明のプログラムが作動した状態においてネットワークドライバが受け取るパケット送信用データの概要を示す図である。図３は、本発明のプログラムが備えるシーケンス番号およびＡＣＫ番号管理テーブルを説明するための説明図である。図４は、本発明の実施例の通信制御方法およびプログラムのフローを説明するためのフローチャートである。図５は、本発明の実施例の通信制御方法およびプログラムの作動シーケンスを示す図である。
【００１８】
本発明の通信制御方法は、無線基地局を介して、形成されているネットワークのコンピュータと接続可能な無線通信機能を備えたコンピュータのための通信制御方法である。
また、本発明のコンピュータ通信制御プログラムは、無線基地局を介してネットワークと接続可能な無線通信機能を備えたコンピュータ通信制御プログラムである。
無線基地局とは、公衆通信組織（例えば、電話通信会社）が、保有する携帯電話、ＰＨＳなどの無線通信のための基地局であり、個人が所有する携帯電話、ＰＨＳなどと無線通信を行う。また、形成されているネットワークのコンピュータとは、例えば、企業内において構築されたＬＡＮに接続されているコンピュータである。また、無線通信機能を備えたコンピュータとは、上記の無線基地局との無線通信のための機能を備えるコンピュータであり、無線通信機能としては、内蔵タイプ、外付けタイプのいずれでもよく、具体的には、モデム、携帯電話、ＰＨＳ、ＰＨＳカードなどである。
本発明の通信制御方法および通信制御プログラムは、クライアントコンピュータのＯＳ機能に影響し、通信装置（例えば、モデム）またはネットワークドライバとの間に存在する媒体であって、上位アプリケーションから有用データを含まないパケット通信データ、具体的には、ＳＭＢ＿ＣＯＭ＿ＥＣＨＯパケットがサーバに対して発せられたときに、通信装置もしくはネットワークドライバに対してそのパケットを送信することなく、送信先のサーバからの応答が来たものとして、上位アプリケーションに返すものである。さらに、その際、サーバに送られないデータにより、発生するＴＣＰヘッダーのシーケンス番号の違いを吸収することにより、シーケンス番号の違いから発生する切断等の問題を回避するものである。
【００１９】
そこで、図１ないし図５に示す実施例を用いて、本発明の通信制御方法およびプログラムについて説明する。
この実施例の通信制御プログラムは、図１に示すように、コンピュータに格納され作動する状態では、ＯＳのネットワークアプリケーション（具体的には、ファイル共有アプリケーション）とネットワークドライバ間に位置する。具体的には、プロトコルドライバとネットワークドライバ間に位置し、プロトコルドライバとネットワークドライバ間において交信されるパケット通信データを制御するものである。
ネットワークドライバが、通常受け取るパケット送信用データは、図２の（ａ）に示すものである。図２の（ａ）では、ネットワークドライバが受け取るＳＭＢ／ＣＩＦＳパケットの代表的なヘッダ情報を示している。そして、ＩＰヘッダ部は、発信元となる自ＩＰアドレスと宛先となる宛先ＩＰアドレスを持つ。ＴＣＰヘッダ部は、シーケンス番号、ＡＣＫ番号と発信元と宛先のサーバ（コンピュータ）でアプリケーションとの対応付けのために使用する宛先ポート番号を持つ。ＮＢＴヘッダは、セッションパケットタイプおよびＮＢＴパケットサイズに関するデータを有する。ＳＭＢヘッダは、コマンド、フラグ、Ｅｃｈｏ Ｃｏｕｎｔ、Ｓｅｑｕｅｎｃｅ Ｎｏ（これは、ＴＣＰヘッダのシーケンス番号とは別なもの）に関するデータを有する。そして、送信用データが有用データ非保有であるかどうかは、ＮＢＴヘッダおよびＳＭＢヘッダのデータを用いて判断する。
【００２０】
この実施例では、図２に示すように、パケット送信用データにおける、ＳＭＢヘッダのコマンドが、0x2b（SMB＿COM＿ECHO）であり、ＳＭＢヘッダのフラグの第７ビット（SMB＿FLAGS＿SERVER＿TO REDIR）がＯＦＦであり、ＮＢＴヘッダのセッションパケットタイプが0x00（Session Message）の場合、有用データ非保有と判断する。
これに対して、本発明の通信制御方法およびプログラム作動時では、図２の（ｂ）に示すように、少なくとも、ＴＣＰヘッダ部は、生成時のパケット送信用データに対して、有用データ非保有の場合には、内容が変更され、シーケンス番号、変更ＡＣＫ番号と変更宛先ポート番号を持ち、有用データ保有の場合には、内容が変更され、シーケンス番号、変更ＡＣＫ番号と変更宛先ポート番号を持つものとなる。
また、本発明のプログラムは、上記のシーケンス番号、ＡＣＫ番号と宛先ポート番号の変更のためのシーケンス番号およびＡＣＫ番号管理テーブルを備えている。管理テーブルは、図３に示すように、ＩＰアドレス、宛先ポート、送信元ポート、送信サイズ差分および受信サイズ差分を関連付けて記憶する。
【００２１】
そこで、本発明の通信制御方法およびプログラム作動時の作用を図１および図４を用いて説明する。なお、図４に示すフローは、１つの送信用データが発生した状態におけるモデルフローであり、送信された加工パケット通信データのロスト、送信用データに対する応答データ受信までの間の新たな送信用データの発生を考慮していない。
図４に示すように、本発明による通信制御では、コンピュータが作動し、コンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成が検知されると、生成されたパケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断する。
そして、送信用データが有用データ非保有送信用データの場合には、有用データ非保有送信用データのコンピュータの通信ポート側への出力が規制される。具体的には、ネットワークドライバに送らない。さらに、有用データ非保有送信用データに対する疑似応答データを生成する。生成された疑似応答データは、ネットワークアプリケーション側に（具体的には、プロトコルドライバを介してネットワークアプリケーションに）返信される。これにより、ネットワークアプリケーションとしては、有用データ非保有送信データが相手が受領しそれに対する応答を受領したものと判断する。図１にも示されているように、ネットワークアプリケーションにより生成された有用データ非保有データは、プロトコルドライバに送られ、プロトコルドライバにより、ＩＰヘッダ、ＴＣＰヘッダが付与されネットワークアプリケーションに送られる。ネットワークアプリケーションは、通信データが備える宛先ポート番号およびデータ内容より有用データ非保有であることを判断する。そして、疑似応答データを作成し、プロトコルドライバに送信し、プロトコルドライバにより適宜データ処理（具体的には、ＩＰヘッダ、ＴＣＰヘッダの削除）され、ネットワークアプリケーションに送られる。つまり、図１に示すように、有用データ非保有データの場合には、ネットワークドライバアプリケーションにより適宜なデータ変更を加えて返信される。
【００２２】
また、生成されたパケット送信用データが、有用データを保有する場合には、図４に示すように、その有用データ保有パケット送信用データを以前に生成した疑似応答データを考慮して加工した加工パケット送信用データを生成する。この加工パケット送信用データの生成に上述の管理テーブルが利用される。そして、生成された加工パケット送信用データは、通信用ポート側（具体的には、ネットワークドライバ）に出力される。図１にも示されているように、ネットワークアプリケーションにより生成された有用データ保有データは、プロトコルドライバに送られ、プロトコルドライバにより、ＩＰヘッダ、ＴＣＰヘッダが付与されネットワークアプリケーションに送られる。ネットワークアプリケーションは、通信データが備える宛先ポート番号およびデータ内容より有用データ非保有であることを判断する。そして、加工有用データ保有データを作成し、ネットワークドライバに送ることにより、無線送信装置より、無線基地局に向けて送信される。
そして、図４に示すように、加工パケット送信用データを相手先が無事受信すると、応答パケット通信データが発信され、それを受信する。そして、受信した加工パケット送信用データに対する応答パケット通信データを加工パケット送信用データの加工内容を考慮して加工応答パケット通信データを生成する。この加工応答パケット通信データの生成にも上述した管理テーブルが利用される。そして、生成された加工応答パケット通信データは、ネットワークアプリケーション側（具体的には、プロトコルドライバを介してネットワークアプリケーションに）出力される。図１にも示されているように、ネットワークドライバより、ネットワークアプリケーションに送られた応答データは、上記のようにネットワークアプリケーションにより加工され、加工応答データとなり、プロトコルドライバに送られ加工されているためプロトコルドライバにおいて許容されるとともにプロトコルドライバにより適宜データ処理（具体的には、ＩＰヘッダ、ＴＣＰヘッダの削除）され、ネットワークアプリケーションに送られる。
以降、上記の制御が繰り返して行われる。
【００２３】
図５の作動シーケンス図を用いて、本発明の作用をより詳細に説明する。
ネットワークアプリケーションによ生成されるパケット送信用データは、図１に示すプロトコルドライバによって、シーケンス番号、ＡＣＫ番号情報等が付加される。また、パケット送信用データは、図２の（ａ）に示すように、宛先ポート番号（１３９、４４５）情報を含んでいる。この実施例のプログラムであるネットワークドライバアプリケーションは、このパケット送信用データが、有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断する機能を備える。なお、上記の制御対象とならない宛先ポート番号を有するものは、ネットワークドライバアプリケーションにより何ら変更されることなく通常通りネットワークドライバに送られ送信される。本発明では、特定のネットワークアプリケーションにより生成される送信用データ（具体的には、ファイル共有アプリケーション）のみ制御対象となる。
【００２４】
ネットワークアプリケーションは、具体的には、パケット送信用データの宛先ポートが、ポート番号１３９または４４５であるかを判断する。さらに、送信用データのＳＭＢヘッダ部からパケットを種類を調べ、ＳＭＢ＿ＣＯＭ＿ＥＣＨＯであるかを判断する。そして、該当する場合には、有用データ非保有送信用データ（図５において「無効要求」）であると判断し、ネットワークドライバへの転送を行わず、疑似応答データ（図５において「加工応答」）を生成する。例えば、ネットワークアプリケーションにより生成され、プロトコルドライバにより加工されたパケット送信用データが、図５に示すような情報（シーケンス番号＝ＳＣＯ、ＡＣＫ番号＝ＳＳＯ、データ内容＝３５バイト”無効要求”）を含む場合、疑似応答データは、相手方コンピュータのプロトコルドライバが付与するＡＣＫ番号を考慮して、図５に示すように、（シーケンス番号＝ＳＳＯ、ＡＣＫ番号＝ＳＣＯ＋５３、データ内容＝５３バイト”加工応答”）を生成する。このデータの生成は、もとの送信用データを修正するものまた新たに作成するものいずれであってもよい。
【００２５】
疑似応答データを生成した場合には、上述の管理テーブルに、その際のサーバのＩＰアドレス、宛先ポート及び発信元ポートと対応付けて、本来持つべき送信サイズの差分および受信サイズの差分を記憶する。また、作成された疑似応答データは、プロトコルドライバを介して、ネットワークアプリケーションに送られ、ネットワークアプリケーションはデータ（５３バイト”加工応答”）を受領する。よって、有効データ非保有送信用データの発信は行われないので、パケット送信量を減少させることができる。
また、有用データ保有送信用データである（図５において「有効要求」）と判断した場合には、加工パケット送信用データの生成を行う。この判断は、有用データ非保有送信用データであると判断されなかったものがすべて有用データを保有するものと判断する。また、通常、有用データ保有送信用データの発生の前に、有用データ非保有送信用データが発生しており、上述のようにそれに対する疑似応答が行われている。加工パケット送信用データの生成は、以前に行われた疑似応答を考慮して行うことが必要である。
【００２６】
具体的には、図５に示すように、有用データを保有するパケット送信用データ（図５において「有効要求」）が発生した場合であって、そのデータが情報（シーケンス番号＝ＳＣＯ＋５３、ＡＣＫ番号＝ＳＳＯ＋５３、データ内容＝５００”有効要求”）を含む場合、疑似応答したパケット通信データを相手先が受信していないことを考慮し、図５に示すように、情報を（シーケンス番号＝ＳＣＯ、ＡＣＫ番号＝ＳＳＯ、データサイズ＝５００”有効要求”）に加工する。このデータの生成は、もとの送信用データを修正するものまた新たに作成するものいずれであってもよい。そして、このデータ生成には、上述した管理テーブルを利用する。言い換えれば、有用データ保有送信用データは、シーケンス番号から送信サイズ差分、ＡＣＫ番号から受信サイズ差分を減算する。
【００２７】
そして、生成された加工パケット送信用データは、通信用ポート側（具体的には、ネットワークドライバ）に出力され、無線送信装置より基地局に送信され相手方のサーバを備えるネットワークに送信される。そして、加工パケット送信用データを相手先が無事受信すると、応答パケット通信データが発信され、それを受信する。
そして、受信した加工パケット送信用データに対する応答パケット通信データより加工応答パケット通信データを生成する。この加工応答パケット通信データの生成にも上述した管理テーブルが利用される。加工応答パケット通信データの生成には、加工パケット送信用データにおける加工履歴を考慮して行われる。
具体的には、図５に示すように、応答パケット送信用データ（図５において「有効応答」）が、情報（シーケンス番号＝ＳＳＯ、ＡＣＫ番号＝ＳＣＯ＋５００、データ内容＝３００バイト”有効応答”）を含む場合、加工パケット送信用データの生成時における変更を考慮し、図５に示すように、加工送信用データ（シーケンス番号＝ＳＳＯ＋５３、ＡＣＫ番号＝ＳＣＯ＋５５３、データ内容＝３００バイト”有効応答”）を生成する。この生成には、上述した管理テーブルを利用する。
つまり、相手方から受信したパケットについては、シーケンス番号に受信サイズ差分、ＡＣＫ番号に送信サイズ差分を加算することにより、シーケンス番号のずれによる、不具合を回避する。
そして、生成された加工応答パケット通信データは、ネットワークアプリケーション側に出力され、加工されているためプロトコルドライバにより許可され、ネットワークアプリケーションは、データ内容（３００バイト”有効応答”を受領する。
【００２８】
また、ネットワークアプリケーションにより新たなパケット送信用データ（図５における「無効要求」）が生成されると、プロトコルドライバにより加工されパケット送信用データは、例えば、情報（シーケンス番号＝ＳＣＯ＋５５３、ＡＣＫ番号＝ＳＳ０＋３５３、データ内容＝５３バイト”無効要求”）を含むものとなる。このデータは有効データ非保有であるので、疑似応答データが生成される。疑似応答データは、相手方コンピュータのプロトコルドライバが付与するＡＣＫ番号を考慮して、（シーケンス番号＝ＳＳＯ＋３５３、ＡＣＫ番号＝ＳＣＯ＋６０６、データ内容＝５３バイト”加工応答”）を生成し、返信する。
さらに、有用データを保有するパケット送信用データ（図５における「有効要求（２００バイト）」）が新たに発生すると、そのデータは情報（シーケンス番号＝ＳＣＯ＋６０６、ＡＣＫ番号＝ＳＳＯ＋４０６、データ内容＝２００バイト”有効応答”）を含むものとなり、生成される加工パケット送信用データは、疑似応答したパケット通信データを相手先が受信していないことを考慮し、加工送信用データ（シーケンス番号＝ＳＣＯ＋４００、ＡＣＫ番号＝ＳＳＯ＋３００、データ内容＝２００バイト”有効要求”）を生成し、これが送信される。
【００２９】
そして、応答パケット送信用データ（図５における「有効応答（１００バイト」）を受領し、そのデータは、情報（シーケンス番号＝ＳＳＯ＋４００、ＡＣＫ番号＝ＳＣＯ＋７００、データ内容＝１００バイト”有効応答”）を含むものとなり、加工パケット送信用データの生成時における変更を考慮し、応答通信データ（シーケンス番号＝ＳＳＯ＋５０６、ＡＣＫ番号＝ＳＣＯ＋８０６、データ内容＝１００バイト”有効応答”）を生成する。
以降、上記の制御が繰り返される。なお、上述の説明では、有効データ非保有送信用データと有効データ保有送信用データとが交互に発生するものを例として説明したが、実際にはその発生はコンピュータの使用状況に依拠し、通常はランダムに発生する。
【００３０】
そして、この実施例のプログラムでは、加工送信パケット生成・発信機能は、以前にネットワークアプリケーション側に返信した疑似応答データおよび必要により以前に通信用ポート側に出力した加工パケット送信用データを考慮して、加工パケット送信用データを生成する。
さらに、この実施例のプログラムは、ネットワークドライバアプリケーションプログラムを備え、パケット送信用データ判断機能、データ出力規制機能、疑似応答データ生成・返信機能、加工パケット送信用データ生成・出力機能および加工応答パケット通信データ生成・出力機能は、該ネットワークドライバアプリケーションプログラムにより実行されるものとなっている。
【００３１】
次に、図６ないし図８に示す他の実施例の通信制御方法およびプログラムについて説明する。
この実施例の通信制御プログラムは、図６に示すように、コンピュータに格納され作動する状態では、ＯＳのネットワークアプリケーション（具体的には、ファイル共有アプリケーション）とネットワークドライバ間に位置（具体的には、プロトコルドライバとネットワークドライバ間に位置）し、プロトコルドライバとネットワークドライバ間において交信されるパケット通信データを制御するネットワークドライバアプリケーションと、ネットワークアプリケーションよりプロトコルドライバを通って転送される送信用データを適宜加工しプロトコルドライバを介してネットワークアプリケーションに返信する中継アプリケーションにより構成されている。
この通信制御プログラムは、コンピュータに格納された状態では、ネットワークアプリケーションと同層に位置する中継アプリケーションと、ネットワークドライバより上位かつＴＣＰ／ＩＰ層より下位に位置するネットワークドライバアプリケーションにより構成されている。つまり、この実施例の通信制御プログラムは、中継アプリケーションとネットワークドライバアプリケーションの２つのプログラムによって構成されている。
【００３２】
また、この実施例の通信制御方法では、送信用データが有用データ保有送信用データの場合には、有用データ保有パケット送信用データより以前に生成した疑似応答データの影響を受けない加工パケット送信用データを生成し通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データより以前に生成した疑似応答データを考慮して加工するとともにネットワークアプリケーション側に出力するものとなっている点において、上述した実施例と相違している。
また、この実施例のコンピュータ通信制御プログラムでは、有用データ保有パケット送信用データを以前に生成した疑似応答データの影響を受けない加工パケット送信用データの生成および通信用ポート側に出力する加工パケット送信用データ生成・出力機能と、受信する前記加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮して加工するとともにネットワークアプリケーション側に出力する加工応答パケット通信データ生成・出力機能とを実行させるものである点において、上述した実施例と相違している。
【００３３】
具体的には、この実施例では、加工パケット送信用データ生成・出力機能における加工パケット送信用データ生成は、コンピュータに格納されているプロトコルドライバにより加工パケット送信用データに付加される制御用番号シリーズが、ネットワークアプリケーションにより生成されたパケット送信用データにプロトコルドライバにより付加される制御番号シリーズと異なるものとなるようにパケット送信用データを加工するものとなっている。
そして、この実施例のコンピュータ通信制御プログラムは、ネットワークドライバアプリケーションプログラムと、実行状態においてネットワークアプリケーションとネットワークドライバアプリケーション間にて機能する中継アプリケーションプログラムを備え、パケット送信用データ判断機能、データ出力規制機能、疑似応答データ生成・返信機能、加工パケット送信用データ生成・出力機能および加工応答パケット通信データ生成・出力機能は、ネットワークドライバアプリケーションプログラムと中継アプリケーションプログラムとにより実行されるものである。
【００３４】
特に、この実施例では、ネットワークドライバアプリケーションプログラムは、ネットワークアプリケーションによって生成されたパケット送信用データ、受信した応答パケット通信データを中継アプリケーション側に転送する第１のデータ転送機能およびデータ出力規制機能を実行するものであり、中継アプリケーションプログラムは、パケット送信用データ判断機能、疑似応答データ生成・返信機能における疑似応答データ生成および生成データのネットワークドライバアプリケーション側への返信機能、加工パケット送信用データ生成・出力機能における加工パケット送信用データの生成および生成データのネットワークドライバアプリケーション側への返信機能、加工応答パケット通信データ生成・出力機能における加工応答パケット通信データの生成および生成データのネットワークドライバアプリケーション側への返信機能を実行するものであり、さらに、ネットワークドライバアプリケーションプログラムは、中継アプリケーション側から返信された中継アプリケーション生成データを有用データ保有パケット送信用データに関する加工パケット送信用データを除き、ネットワークアプリケーション側に転送する転送機能を備えているものとなっている。
【００３５】
そこで、この実施例の通信制御方法およびプログラム作動時の作用を図６および図７を用いて説明する。なお、図７に示すフローは、１つの送信用データが発生した状態におけるモデルフローであり、送信された加工パケット通信データのロスト、送信用データに対する応答データ受信までの間の新たな送信用データの発生を考慮していない。
この実施例の通信制御方法では、図７に示すように、コンピュータが作動し、コンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成が検知されると、検知されたパケット送信用データは中継アプリケーションに転送される。図６にも示されているように、ネットワークアプリケーションにより生成された送信用データは、プロトコルドライバに送られ、プロトコルドライバにより、ＩＰヘッダ、ＴＣＰヘッダが付与されネットワークドライバアプリケーションに送られる。ネットワークドライバアプリケーションは、通信データが備える制御対象としている宛先ポート番号を有する通信データは、有効データを保有するか否かを判断することなく中継アプリケーション側に転送する。
【００３６】
そして、中継アプリケーションは、転送されたパケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断する。パケット送信用データが有用データ非保有送信用データの場合には、図６および図７に示すように、有用データ非保有送信用データに対する疑似応答データを作成し、これにより、コンピュータの通信ポート側への出力が規制される。生成された疑似応答データは、ネットワークドライバアプリケーション側に（具体的には、プロトコルドライバを介してネットワークドライバアプリケーションに）出力される。そして、ネットワークドライバアプリケーションは、受け取った疑似応答データをネットワークアプリケーション側に（具体的には、プロトコルドライバを介してネットワークアプリケーションに）転送する。これにより、ネットワークアプリケーションとしては、有用データ非保有送信データが相手が受領しそれに対する応答を受領したものと判断する。図６にも示されているように、作成された疑似応答データは、プロトコルドライバに送信され、プロトコルドライバにより適宜データ処理（具体的には、制御番号であるシーケンス番号およびＡＣＫ番号の再付与処理）され、ネットワークドライバアプリケーションに送られる。そして、ネットワークドライバアプリケーションは、疑似応答データをネットワークアプリケーション側に、プロトコルドライバを介して転送する。
【００３７】
また、中継アプリケーションに転送されたパケット送信用データが、有用データを保有する場合には、その有用データ保有パケット送信用データより以前に生成した疑似応答データの影響を受けないような加工パケット送信用データを生成する。具体的には、プロトコルドライバにより加工パケット送信用データに付加される制御用番号シリーズが、ネットワークアプリケーションにより生成されたパケット送信用データにプロトコルドライバにより付加される制御番号シリーズと異なるものとなるようにする。
そして、生成された加工パケット送信用データは、ネットワークドライバ側に（具体的には、プロトコルドライバを介してネットワークドライバに）出力される。なお、加工送信用データは、ネットワークドライバアプリケーションを通過させるものとなっている。そして、加工パケット送信用データは通信用ポートから無線基地局に向けて発信される。
【００３８】
そして、加工パケット送信用データを相手先が無事受信すると、応答パケット通信データが発信され、それを受信する。そして、受信した加工パケット送信用データの対応する応答パケット通信データは、ネットワークドライバアプリケーションによって、中継アプリケーション側に（具体的には、プロトコルドライバを介して中継アプリケーションに）転送される。中継アプリケーションは、受信した加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮してさらには加工パケット送信用データにおける加工内容を考慮して加工応答パケット通信データを生成する。加工前の応答パケット通信データは、上述の加工パケット送信用データに付加される制御用番号シリーズに対応する制御番号シリーズを備えている。そこで、プロトコルドライバにより付加される制御番号シリーズが、ネットワークアプリケーションにより生成されたパケット送信用データにプロトコルドライバにより付加される制御番号シリーズとなるように、さらに、以前に生成した疑似応答データを考慮するものとなるように加工する。
そして、生成された加工応答パケット通信データは、ネットワークドライバアプリケーション側に（具体的には、プロトコルドライバを介してネットワークドライバアプリケーションに）出力される。そして、応答パケット通信データは、上述のように加工されているため、プロトコルドライバによって、付与される制御番号は、以前の疑似応答データ（有効応答データも含む）との整合性を備えるものとなる。そして、ネットワークドライバアプリケーションは、受け取った加工応答パケット通信データをネットワークアプリケーション側に（具体的には、プロトコルドライバを介してネットワークアプリケーションに）転送する。
以降、上記の制御が繰り返して行われる。
【００３９】
図８の作動シーケンス図を用いて、本発明の作用をより詳細に説明する。
ネットワークアプリケーションにより生成されるパケット送信用データは、図６に示すプロトコルドライバによって、制御番号（シーケンス番号、ＡＣＫ番号）情報等が付加される。また、パケット送信用データは、図２の（ａ）に示すように、宛先ポート番号（例えば、１３９、４４５）情報を含んでいる。この実施例のプログラムであるネットワークドライバアプリケーションは、特定の宛先ポート番号を持つパケット送信用データを中継アプリケーション側に転送する。つまり、上記の制御対象とならない宛先ポート番号を有するものは、ネットワークドライバアプリケーションにより何ら変更されることなく通常通りネットワークドライバに送られ送信される。本発明では、特定のネットワークアプリケーションにより生成される送信用データ（具体的には、ファイル共有アプリケーション）のみ制御対象となる。
【００４０】
中継アプリケーションは、転送されたパケット送信用データが、有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断する機能を備える。判断条件については、上述した実施例と同じである。そして、該当する場合には、有用データ非保有送信用データであると判断し、ネットワークドライバ側への転送を行わず、疑似応答データを生成する。例えば、ネットワークアプリケーションにより生成され、プロトコルドライバにより加工されたパケット送信用データ（図８において「無効要求（５３バイト）」が、図８に示すような情報（シーケンス番号＝ＳＣＯ、ＡＣＫ番号＝ＲＳＯ、データ内容＝５３３バイト”無効要求”）を含む場合、疑似応答データは、相手方コンピュータのプロトコルドライバが付与するＡＣＫ番号を考慮して、図８に示すように、（シーケンス番号＝ＲＳＯ、ＡＣＫ番号＝ＳＣＯ＋５３、データ内容＝５３バイト”無効要求”）を生成する。なお、疑似応答データでは、送信元ポート番号は変更されない。このデータの生成は、もとの送信用データを修正するものまた新たに作成するものいずれであってもよい。また、作成された疑似応答データは、プロトコルドライバを介して、ネットワークドライバアプリケーションに送られる。そして、ネットワークドライバアプリケーションは、特定の宛先ポート番号を持つこの疑似応答データをネットワークアプリケーション側に転送する。
【００４１】
また、中継アプリケーションが、転送されたパケット送信用データが有用データ保有送信用データであると判断した場合に、加工パケット送信用データの生成を行う。この判断は、有用データ非保有送信用データであると判断されなかったものがすべて有用データを保有するものと判断する。また、通常、有用データ保有送信用データの発生の前に、有用データ非保有送信用データが発生しており、上述のようにそれに対する疑似応答が行われている。加工パケット送信用データの生成は、上述したようにこの実施例では、加工パケット送信用データに対してプロトコルドライバにより付加される制御用番号シリーズが、通常のパケット送信用データにプロトコルドライバにより付加される制御番号シリーズと異なるものとなるようにする。例えば、送信元ポート番号を変更する。
具体的には、図８に示すように、有用データを保有するパケット送信用データが発生した場合であって、そのデータが情報（シーケンス番号＝ＳＣＯ＋５３、ＡＣＫ番号＝ＲＳＯ＋５３、データ内容＝５００バイト”有効要求”、送信元ポート番号＝ＡＡ）を含む場合、例えば、送信元ポート番号を変更し、さらに必要な変更を行い加工パケット送信用データを生成する。この加工送信用データには送信元ポート番号が変更されているため、プロトコルドライバは、疑似応答したものと関連性のない制御番号が付与される。例えば、図８に示すように、加工送信用データは、（シーケンス番号＝ＲＣＯ、ＡＣＫ番号＝ＳＳＯ、データ内容＝５００バイト”有効要求”、送信元ポート番号＝ＢＢ）となる。このデータの生成は、もとの送信用データを修正するものまた新たに作成するものいずれであってもよい。
【００４２】
そして、加工パケット送信用データは、中継アプリケーションへの転送条件となっていないため転送されることなく、ネットワークドライバに送られ、無線送信装置より基地局に送信される。つまり、加工パケット送信用データは、相手先への送信に使う送信元ポート番号（CC）を中継アプリケーションが共有メモリ等を通じて、ネットワークドライバアプリケーションに伝えることにより、ネットワークドライバアプリケーションが中継アプリケーションへの転送を行わない仕組みを備えることにより、加工パケット通信データがネットワークドライバに送られ、無線送信装置より基地局に送信される。
そして、受信した加工パケット送信用データに対する応答パケット通信データは、ネットワークドライバアプリケーションによって、中継アプリケーションにプロトコルドライバを介して転送される。そして、中継アプリケーションは、加工応答パケット通信データを生成する。受信する応答データは、上述の加工送信用データにおける加工に起因して、疑似応答したものと対応しない制御番号が付与されている。そこで、応答データの加工は、プロトコルドライバによって、付与される制御番号は、以前の疑似応答データ（有効応答データも含む）との整合性を備えるものとなるように行われる。
【００４３】
図８に示すように、応答パケット送信用データは、例えば、情報（シーケンス番号＝ＳＳＯ、ＡＣＫ番号＝ＲＣＯ＋５００、データ内容＝３００バイト”有効応答”相手先ポート番号＝ＢＢ）となり、応答パケット送信用データの加工は、プロトコルドライバにより制御番号が付加されたものが、図８に示すように、情報（シーケンス番号＝ＲＳＯ＋５３、ＡＣＫ番号＝ＳＣＯ＋５５３、データ内容＝３００バイト”有効応答”、送信元ポート番号＝ＡＡ）となるように加工する。そして、この加工応答データは、ネットワークドライバアプリケーションにより転送されネットワークアプリケーションがそれを受信する。
また、ネットワークアプリケーションにより新たに生成されプロトコルドライバにより加工されパケット送信用データが、情報（シーケンス番号＝ＳＣＯ＋５５３、ＡＣＫ番号＝ＲＳ０＋３５３、データ内容＝５３バイト”無効要求”、送信元ポート番号＝ＡＡ）を含む場合、疑似応答データは、情報（シーケンス番号＝ＲＳＯ＋３５３、ＡＣＫ番号＝ＳＣＯ＋６０６、データ内容＝５３バイト”無効要求”、送信元ポート番号＝ＡＡ）を生成し、ネットワークアプリケーションに返信される。
以降、上記の制御が繰り返される。なお、上述の説明では、有効データ非保有送信用データと有効データ保有送信用データとが交互に発生するものを例として説明したが、実際にはその発生はコンピュータの使用状況に依拠し、通常はランダムに発生する。
【００４４】
また、以下のようなものであってもよい。
本発明の通信制御プログラム（ネットワークドライバアプリケーションおよび中継アプリケーション）が格納されたコンピュータでは、最初に事前処理が実行される。事前処理が実行されると、中継アプリケーションは決められたポート番号（2139）で接続を待ち受ける。そして、ネットワークアプリケーションからネットワークドライバアプリケーションによって転送された通信用データは、例えばＳ１というルートを通り転送される。具体的には、目的のサーバの139ポートに対する接続が自アドレスの2139ポートに転送される。また、目的のサーバに対する目的のポート番号（139）に対して接続するＳ２というルートも構築される。このＳ２ルートでの接続を行うときには、通信用データにおける発信元ポート番号を用いて判断し、この発信元ポートをネットワークドライバアプリケーションに通知し、Ｓ１ルートには転送されないものとなる。
【００４５】
そして、中継アプリケーションは、以下の基本的な処理を行う。
Ｓ１ルートで受信した通信用データが有効データを保有する場合には、Ｓ２ルートに送信する。これにより通信装置より発信される。また、Ｓ１ルートで受信した通信用データが、有効データ非保有の場合には、必要な加工（例えば、SMBヘッダの変更（具体的には、SMBヘッダのフラグの第７ビット（SMB＿FLAGS＿SERVER＿TO＿REDIR）をＯＮにする）などして疑似応答データを生成してＳ１ルートに送信され、これをネットワークアプリケーションが受領する。また、Ｓ２ルートによって受信した通信用データ（応答データ）は、Ｓ１ルートに送信され、ネットワークアプリケーションがこれを受領する。
上述した本発明の説明では、ソフトウェアとした実施例を用いて説明したが、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータであってもよい。
【００４６】
また、本発明は、上述したプログラムがコンピュータにより読み取り可能に記録された記録媒体であってもよい。記録媒体としては、磁気ディスク、例えば、フレキシブルディスク、光ディスク、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、例えば、ＭＤ（Mini−Disc）、または半導体メモリなどいずれであってもよい。また、媒体へのプログラムの格納は、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行ったものでもよい。
【００４７】
【発明の効果】
本発明の通信制御方法は、無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断し、前記送信用データが有用データ非保有送信用データの場合には、当該送信用データの前記コンピュータの通信ポート側への出力を規制し、かつ該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信し、前記送信用データが有用データ保有送信用データの場合には、該有用データ保有パケット送信用データを以前に生成した疑似応答データを考慮して加工パケット送信用データを生成し前記通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データを前記加工パケット送信用データの加工内容を考慮して加工するとともに前記ネットワークアプリケーション側に出力するものである。
【００４８】
また、本発明の通信制御方法は、無線通信機能を備えたコンピュータ内に格納されたネットワークアプリケーションに起因するパケット送信用データの生成を検知し、該パケット送信用データが有用データ保有送信用データであるか有用データ非保有送信用データであるかを判断し、前記送信用データが有用データ非保有送信用データの場合には、当該送信用データの前記コンピュータの通信ポート側への出力を規制し、かつ該有用データ非保有送信用データに対する疑似応答データを生成し前記ネットワークアプリケーション側に返信し、前記送信用データが有用データ保有送信用データの場合には、該有用データ保有パケット送信用データより以前に生成した疑似応答データの影響を受けない加工パケット送信用データを生成し前記通信ポート側に出力し、受信する前記加工パケット送信用データに対する応答パケット通信データを以前に生成した疑似応答データを考慮して加工するとともに前記ネットワークアプリケーション側に出力するものである。
【００４９】
本発明の通信制御方法および通信制御プログラムによれば、既存の通信機能を備えるコンピュータをそのまま用いることができ、特別な通信装置を設けることなく、有用データを保有しないパケット送信の発生を削除することができる。これにより、コンピュータと基地局間の通信量を削減できるとともに、パケット送信の発生を削除してもネットワークアプリケーションへの影響を発生させることもない。
【図面の簡単な説明】
【図１】図１は、本発明の実施例の通信制御方法ならびに本発明の実施例のコンピュータ通信制御プログラムを用いた状態の通信制御方法を説明するための説明図である。
【図２】図２は、ネットワークドライバが受け取る通常のパケット送信用データの概要および本発明のプログラムが作動した状態においてネットワークドライバが受け取るパケット送信用データの概要を示す図である。
【図３】図３は、本発明のプログラムが備えるシーケンス番号およびＡＣＫ番号管理テーブルを説明するための説明図である。
【図４】図４は、本発明の実施例の通信制御方法およびプログラムのフローを説明するためのフローチャートである。
【図５】図５は、本発明の実施例の通信制御方法およびプログラムの作動シーケンスを示す図である。
【図６】図６は、本発明の他の実施例の通信制御方法ならびに本発明の他の実施例のコンピュータ通信制御プログラムを用いた状態の通信制御方法を説明するための説明図である。
【図７】図７は、本発明の実施例の通信制御方法およびプログラムのフローを説明するためのフローチャートである。
【図８】図８は、本発明の実施例の通信制御方法およびプログラムの作動シーケンスを示す図である。
【図９】図９は、無線基地局を介したネットワークと無線通信機能を備えたコンピュータとの接続構成を説明するための説明図である。
【図１０】図１０は、従来の通信方法におけるシーケンスを示す図である。
【図１１】図１１は、従来の通信方法のフローを説明するためのフローチャートである。
【図１２】図１２は、従来の通信方法におけるシーケンスを示す図である。
【図１３】図１３は、従来の通信方法におけるパケットロスト発生状態におけるシーケンスを示す図である。
【図１４】図１４は、従来の通信方法における相手方からの応答がある場合のシーケンスを示す図である。
【図１５】図１５は、従来の通信方法において代理応答を行った場合のシーケンスを示す図である。
【図１】
2004208032.tif 000003
【図２】
2004208032.tif 000004
【図３】
2004208032.tif 000005
【図４】
2004208032.tif 000006
【図５】
2004208032.tif 000007
【図６】
2004208032.tif 000008
【図７】
2004208032.tif 000009
【図８】
2004208032.tif 000010
【図９】
2004208032.tif 000011
【図１０】
2004208032.tif 000012
【図１１】
2004208032.tif 000013
【図１２】
2004208032.tif 000014
【図１３】
2004208032.tif 000015
【図１４】
2004208032.tif 000016
【図１５】
2004208032.tif 000017