(57)【要約】【課題】肯定応答が送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合には、パケットの転送処理を終了せずに転送を継続する。【解決手段】送信局は、パケット１を送信する際、たとえば、Ｊ回の再送動作で受信局から肯定応答が返された場合は、その後のパケット２の送信の際に、たとえ、肯定応答も否定応答も返されなかった場合であっても、上記のＪ回の再送動作の完了をもって肯定応答が返されたものとみなし、次順のパケット３を送信する。【選択図】　図１
2004040692.tif 000002
【特許請求の範囲】
【請求項１】
所定の通信路を介してパケットを送信し、受信局から肯定応答が返された場合は次順のパケットを送信する一方、否定応答が返された場合は同じパケットを再送するパケット再送方法において、
肯定応答が得られるまでに同一のパケットを再送した回数を把握する工程と、
複数のパケットに対する前記再送回数を用いて統計値を算出する工程と、
前記統計値を用いて再送上限回数を算出する工程と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する工程と
を含むことを特徴とするパケット再送方法。
【請求項２】
前記次順パケット送信工程は、送信した同一のパケットに対する応答信号が所定時間内に得られずに再送した回数が前記再送上限回数に達したときに次順のパケットを送信することを特徴とする請求項１に記載のパケット再送方法。
【請求項３】
前記把握工程は、送信したパケットに対する応答信号が所定時間内に得られずに再送した回数を把握することを特徴とする請求項１に記載のパケット再送方法。
【請求項４】
所定の通信路を介してパケットを送信し、受信局から肯定応答が返された場合は次順のパケットを送信する一方、否定応答が返された場合は同じパケットを再送するパケット再送装置において、
肯定応答が得られるまでに同一のパケットを再送した回数を把握する手段と、
複数のパケットに対する前記再送回数を用いて統計値を算出する手段と、
前記統計値を用いて再送上限回数を算出する手段と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する手段と
を備えることを特徴とするパケット再送装置。
【請求項５】
前記次順パケット送信手段は、送信した同一のパケットに対する応答信号が所定時間内に得られずに再送した回数が前記再送上限回数に達したときに次順のパケットを送信することを特徴とする請求項４に記載のパケット再送装置。
【請求項６】
前記把握手段は、送信したパケットに対する応答信号が所定時間内に得られずに再送した回数を把握することを特徴とする請求項４に記載のパケット再送装置。
【請求項７】
前記把握手段は、所定のパケット数に対してのみ肯定応答が得られるまでに同一のパケットを再送した回数を把握することを特徴とする請求項４に記載のパケット再送装置。
【請求項８】
前記把握手段は、所定時間内でのみ肯定応答が得られるまでに同一のパケットを再送した回数を把握することを特徴とする請求項４に記載のパケット再送装置。
【請求項９】
前記通信路の電送品質を監視する手段をさらに備え、
前記把握手段は、電送品質が変化したことに応じて肯定応答が得られるまでに同一のパケットを再送した回数の把握を開始することを特徴とする請求項４に記載のパケット再送装置。
【請求項１０】
前記次順パケット送信手段は、統計値を所定のタイミングで反映して再送上限回数を切り換えることを特徴とする請求項４に記載のパケット再送装置。
【請求項１１】
前記受信局と無線通信路を介してパケットの送受信を行うことを特徴とする請求項４に記載のパケット再送装置。
【請求項１２】
所定の通信路を介してパケットを送信し、受信局から肯定応答が返された場合は次順のパケットを送信する一方、否定応答が返された場合は同じパケットを再送するパケット再送装置に実行させるためのプログラムであって、
肯定応答が得られるまでに同一のパケットを再送した回数を把握する工程と、
複数のパケットに対する前記再送回数を用いて統計値を算出する工程と、
前記統計値を用いて再送上限回数を算出する工程と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する工程と
を含むことを特徴とするプログラム。
【請求項１３】
前記次順パケット送信工程は、送信した同一のパケットに対する応答信号が所定時間内に得られずに再送した回数が前記再送上限回数に達したときに次順のパケットを送信することを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記把握工程は、送信したパケットに対する応答信号が所定時間内に得られずに再送した回数を把握することを特徴とする請求項１２に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット再送方法、パケット再送装置及びプログラムに関する。詳しくは、所定の通信路を介してパケットを送信し、受信局から否定応答（ＮＡＫ）が返された場合に、同じパケットを再送するパケット再送方法、パケット再送装置及びプログラムに関する。
【０００２】
【従来の技術】
高レベルデータリンク制御手順（ＨＤＬＣ：Ｈｉｇｈ−ｌｅｖｅｌ　ＤａｔａＬｉｎｋ　Ｃｏｎｔｒｏｌ　ｐｒｏｃｅｄｕｒｅ）やインターネットプロトコル（ＴＣＰ／ＩＰ：Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）などのパケット転送手順においては、受信局側でパケットのエラー検出を行い、エラーを検出した場合にデータの再送を送信局に要求する応答信号（ＮＡＫ）を返し、ＮＡＫを受信した送信局側で同じパケットを再送することにより、転送路上のエラー混入を補償するようになっている。なお、パケットのことをフレームということもあるが、本明細書では説明の便宜上パケットに統一する。
【０００３】
＜エラーがない場合＞
図１１は、エラーがない場合のタイムランである。送信局は送信バッファから最初のパケット（第１パケット）を取り出し、それを受信局に送信する。受信局は所定の手順でエラー検出を行い、エラーがなければ肯定応答（ＡＣＫ）を返送する。ＡＣＫを受け取った送信局は送信バッファから次順のパケット（第２パケット）を取り出し、それを受信局に送信する。受信局は上記と同様にエラー検出を行い、エラーがなければ肯定応答（ＡＣＫ）を返送する。この動作を、最終パケットになるまで繰り返すことにより、肯定応答（ＡＣＫ）に基づくハンドシェーク型のパケット転送を実行することができる。
【０００４】
＜エラーを検出した場合＞
図１２は、エラーを検出した場合のタイムランである。たとえば、受信局で第２パケットのエラーを検出した場合、受信局は否定応答（ＮＡＫ）を返送する。ＮＡＫを受け取った送信局は送信バッファから再び同一のパケット（この場合は第２パケット）を取り出し、それを受信局に送信（再送）する。受信局は上記と同様にエラー検出を行い、エラーがなければ肯定応答（ＡＣＫ）を返送し、または、再度エラーを検出した場合は否定応答（ＮＡＫ）を返送する。ＡＣＫを受け取った送信局は送信バッファから次順のパケット（第３パケット）を取り出し、それを受信局に送信し、または、ＮＡＫを受け取った送信局は送信バッファから再び同一のパケット（この場合は第２パケット）を取り出し、それを受信局に送信（再送）する。この動作を、最終パケットになるまで繰り返すことにより、二つの応答（ＡＣＫ／ＮＡＫ）に基づくハンドシェーク型のパケット転送を実行することができる。
【０００５】
ところで、電送路上のエラーは、送信局から受信局の方向（以下「下り方向」という）のみならず、その逆の方向、すなわち、受信局から送信局の方向（以下「上り方向」という）でも発生することがあり、上り方向のエラーは上記の応答信号（ＡＣＫまたはＮＡＫ）を失わせる要因となる。
【０００６】
＜応答信号の喪失＞
図１３は、応答信号（ＡＣＫまたはＮＡＫ）を喪失した場合のタイムランである。この場合、送信局は応答信号を受け取れないので、パケットの転送成功／失敗を判断できない。そこで、所定の時間が経過（タイムアウト）しても、応答信号を受け取ることができなかった場合は、転送失敗とみなし、同一のパケット（図では第２パケット）を再送するようにしている。
【０００７】
図１４は、以上のタイムラン（図１１〜図１３）を実現するための送信局側のアルゴリズムを示すフローチャートである。このアルゴリズムでは、まず、ステップＳ１０でループ変数ｉに初期値“１”をセットした後、以降のループ（第１〜第３のループ）を実行する。
【０００８】
＜第１のループ＞
このループは、ステップＳ１１〜ステップＳ１５から構成される。すなわち、第ｉパケットを送信してＡＣＫを受け取ると、再送回数変数Ｊを初期化（Ｊ＝０）した後、ｉを＋１してｉ＞ｉｍａｘ（ｉｍａｘは送信パケット数；たとえば、第１パケットから第ｎパケットまでのｎ個のパケットを送信する場合は、ｉｍａｘ＝ｎ）になるまでステップＳ１１〜ステップＳ１５をループする。このループによれば、肯定応答（ＡＣＫ）に基づくハンドシェーク型のパケット転送（図１１）を実現することができる。
【０００９】
＜第２のループ＞
このループは、ステップＳ１１、ステップＳ１２、ステップＳ１６およびステップＳ１９から構成される。すなわち、第ｉパケットを送信してＮＡＫを受け取ると、ｉを更新せずに、第ｉパケットを送信（再送）する。なお、このループでは第ｉパケットを再送する前に、ステップＳ１９で所定のエラー処理（応答信号エラー処理）を実行するが、この応答信号エラー処理については後述する。このループによれば、上記の第１のループとの組み合わせにより、二つの応答（ＡＣＫ／ＮＡＫ）に基づくハンドシェーク型のパケット転送（図１２）を実現することができる。
【００１０】
＜第３のループ＞
このループは、ステップＳ１１、ステップＳ１２、ステップＳ１６、ステップＳ１７、ステップＳ１８およびステップＳ１９から構成される。すなわち、第ｉパケットを送信して、いずれの応答信号（ＡＣＫ、ＮＡＫも）も受け取れなかった場合は、所定の時間が経過（タイムアウト）するまで応答信号を待ち、タイムアウトになると、所定のエラー処理（「タイムアウトエラー処理Ａ」と「応答信号エラー処理」）を実行する。
【００１１】
図１５は、タイムアウトエラー処理Ａのアルゴリズムである。このアルゴリズムでは、まず、ステップＳ１８ａでタイムアウトエラーカウント（ＴｉｍｅＥｒｒＣＴ）を＋１した後、ステップＳ１８ｂでＴｉｍｅＥｒｒＣＴが所定の上限回数に達しているか否かを判定する。そして、達していない場合は、次段のステップ１９の「応答信号エラー処理」を実行する一方、達している場合は、ステップＳ１８ｃで所要のエラー処理（たとえばユーザへの告知等）を行った後、パケットの転送処理を終了（エラー発生に伴う異常終了）する。
【００１２】
図１６は、応答信号エラー処理のアルゴリズムである。このアルゴリズムでは、まず、ステップＳ１９ａでＪを＋１した後、ステップＳ１９ｂでＪが所定の再送上限回数に達しているか否かを判定する。そして、達していない場合は、図１４のアルゴリズムに復帰して第ｉパケットの再送を行う一方、達している場合は、ステップＳ１９ｃで所要のエラー処理（たとえばユーザへの告知等）を行った後、パケットの転送処理を終了（エラー発生に伴う異常終了）する。
【００１３】
図１４の第３のループ（ステップＳ１１、ステップＳ１２、ステップＳ１６、ステップＳ１７、ステップＳ１８、ステップＳ１９）において、説明を簡単にするために、「タイムアウトエラー処理Ａ」と「応答信号エラー処理」がない場合を考える。この場合、タイムアウト（ステップＳ１７の判定結果が“ＹＥＳ”）になると、第ｉパケットを送信（再送）する。したがって、先の図１３の例、すなわち、所定の時間が経過（タイムアウト）しても、応答信号を受け取ることができなかった場合は、転送失敗とみなし、同一のパケット（図では第２パケット）を再送するという動作を行うことができる。
【００１４】
【発明が解決しようとする課題】
しかしながら、上記従来のパケット再送方法にあっては、以下の問題点があった。
【００１５】
今、本来の転送パケット（下り方向の転送パケット）が受信局で正しく受信されているものとする。このとき、何らかの原因で受信局からの肯定応答（ＡＣＫ）が送信局に届かなかったものとする。この場合、上記従来のパケット再送方法にあっては、受信局では正しく受信できているのにもかかわらず、第３のループによって同一のパケットの再送が行われ、受信局では無駄なパケットを受信することになる。また、更にＴｉｍｅＥｒｒＣＴの所定の上限回数回または再送上限回数を超えて再送を試みても肯定応答（ＡＣＫ）を受け取ることができなかった場合は、「タイムアウトエラー処理Ａ」（図１５参照）または「応答信号エラー処理」（図１６参照）でパケットの転送処理を終了（エラー発生に伴う異常終了）することになる。
【００１６】
すなわち、上記従来のパケット再送方法にあっては、本来の転送パケットが受信局で正しく受信されているにも係わらず、同一のパケットの再送を繰り返すうえ、更にはＴｉｍｅＥｒｒＣＴの所定の上限回数回または所定の再送上限回数を超えても肯定応答が送信局側で受け取れないことをもって、パケットの転送処理を異常終了しているため、無駄な再送時間が発生して送信レートが低下し、更にはパケット転送の不本意な中断を引き起こす場合があるという問題点があった。
【００１７】
そこで、本発明が解決しようとする課題は、肯定応答が送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合には、パケットの転送処理を終了せずに転送を継続することとし、これにより、無駄なパケットの再送処理を行わず送信時間の短縮が図れ、また、パケット転送の不本意な中断の回避をも図れ得ることを目的とする。
【００１８】
【課題を解決するための手段】
本発明は、所定の通信路を介してパケットを送信し、受信局から肯定応答が返された場合は次順のパケットを送信する一方、否定応答が返された場合は同じパケットを再送するパケット再送方法において、
肯定応答が得られるまでに同一のパケットを再送した回数を把握する工程と、
複数のパケットに対する前記再送回数を用いて統計値を算出する工程と、
前記統計値を用いて再送上限回数を算出する工程と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する工程と
を含むことを特徴とするものである。
【００１９】
この発明では、図１にその原理説明図を示すように、パケット１を送信する際、たとえば、Ｊ回の再送動作で受信局から肯定応答が返された場合は、その後のパケット２の送信の際に、たとえ、肯定応答も否定応答も返されなかった場合であっても、たとえば、上記のＪ回の再送動作の完了をもって肯定応答が返されたものとみなしたり、肯定応答が返されたものとみなしても良いと考えられる再送回数を統計処理などを用いて算出した値から設定し、その設定値の再送動作の完了をもって肯定応答が返されたものとみなし、次順のパケット３が送信される。
【００２０】
したがって、肯定／否定のいずれの応答も送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合（たとえば、上記のＪ回の再送完了時）には、無駄なパケットの再送信を省くことができ、また、パケットの転送処理を終了せずに転送を継続することができるので、これにより、送信時間の短縮やパケット転送の不本意な中断の回避を図ることができる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、以下の説明における様々な細部の特定ないし実例および数値や文字列その他の記号の例示は、本発明の思想を明瞭にするための、あくまでも参考であって、それらのすべてまたは一部によって本発明の思想が限定されないことは明らかである。また、周知の手法、周知の手順、周知のアーキテクチャおよび周知の回路構成等（以下「周知事項」）についてはその細部にわたる説明を避けるが、これも説明を簡潔にするためであって、これら周知事項のすべてまたは一部を意図的に排除するものではない。かかる周知事項は本発明の出願時点で当業者の知り得るところであるので、以下の説明に当然含まれている。
【００２２】
図２は、本実施の形態に係わるパケット通信システムの概略構成図である。このシステムは、有線または無線の通信路１０を介して相互に接続された送信局２０（パケット再送装置）と受信局３０とから構成されている。
【００２３】
送信局２０は、アプリケーション部２０ａ、送信バッファ２０ｂ、パケット送信部２０ｃ、応答信号受信部２０ｄ及び統計情報記憶部２０ｅを備え、また、受信局３０は、エラー検出部３０ａ、応答信号送信部３０ｂ、受信バッファ３０ｃ及びアプリケーション部３０ｄを備える。なお、図示の例は、送信局２０から受信局３０へパケット送信を行うシステムであるが、これは説明の便宜である。実際は、それぞれの局は両局間で相互にパケットのやりとりを行うことができる送受兼用局であり、送信局２０は受信局３０の構成を含み、受信局３０は送信局２０の構成を含む。
【００２４】
なお、送信局２０や受信局３０を構成する機器としては、有線用／無線用の別を問わない。たとえば、無線通信用のアクセスポイント、無線通信対応のＰＣカード、無線通信機能内蔵のコンピュータや携帯型の無線通信機器などであってもよく、また、その無線通信方式としては、たとえば、ＩＥＥＥ８０２．１１ｂなどの無線ＬＡＮ規格を用いるようにしてもよい。
【００２５】
以下、説明を簡単化するために、図示のとおり、一方を送信局２０とし、他方を受信局３０として、送信局２０から受信局３０へ所望のパケット通信を行うものとする。
【００２６】
送信局２０は、アプリケーション部２０ａで作られた送信データを送信バッファ２０ｂに格納し、その送信データを細切れにしてパケット送信部２０ｃから通信路１０経由で受信局３０へ送信する。細切れにされた送信データの１単位をパケット（またはフレーム）という。パケット送信部２０ｃは、送信バッファ２０ｂから順番にパケットを取り出して送信する。
【００２７】
受信局３０は、通信路１０経由でパケットを受信すると、エラー検出部３０ａでエラー検出を行い、エラーが検出されなかった場合は、応答信号送信部３０ｂから通信路１０経由で送信局２０に対して肯定応答（ＡＣＫ）を返すと共に、そのパケットを受信バッファ３０ｃに格納してアプリケーション部３０ｄからの利用を可能にする一方、エラー検出部３０ａでエラーが検出された場合は、応答信号送信部３０ｂから通信路１０経由で送信局２０に対して否定応答（ＮＡＫ）を返す。
【００２８】
送信局２０は、受信局３０からの応答（ＡＣＫ／ＮＡＫ）を応答信号受信部２０ｄで受け取り、その応答が肯定応答（ＡＣＫ）であった場合は、送信バッファ２０ｂから次順のパケットを取り出して受信局３０へ送信し、一方、否定応答（ＮＡＫ）であった場合は、送信バッファ２０ｂから同一のパケットを取り出して受信局３０へ送信（再送）する。
【００２９】
以上のとおり、本実施の形態の送信局２０は、送信バッファ２０ｂから取り出したパケットを受信局３０に送信し、送信局３０から肯定応答（ＡＣＫ）が返された場合は、送信バッファ２０ｂから次順のパケットを取り出して送信する一方、受信局３０から否定応答（ＮＡＫ）が返された場合は、送信バッファ２０ｂから同一のパケットを取り出して再送する点で冒頭で説明した従来技術と一致し、以下の点で相違する。
【００３０】
図３（ａ）は、送信局２０のパケット送信部２０ｃの機能概念図である。この図に示すように、パケット送信部２０ｃは二つの処理部（処理Ａ部２０ｃ＿１、処理Ｂ部２０ｃ＿２）を備えている。処理Ａ部２０ｃ＿１は後述の統計情報収集を兼ねたパケット送信を行い、処理Ｂ部２０ｃ＿２はその統計情報を利用したパケット送信を行う。これら二つの処理部は、たとえば、次の順番で動作する。
【００３１】
図３（ｂ）は、送信バッファ２０ｂに格納された送信データの模式図である。この送信データ４０は、全部でｍ個のパケットから構成されており、第１パケットを“Ｐ１”、第２パケットを“Ｐ２”、・・・・、第ｎパケットを“Ｐｎ”、第ｎ＋１パケットを“Ｐｎ＋１”、・・・・、第ｍ−１パケットを“Ｐｍ−１”、第ｍパケットを“Ｐｍ”と称することにすると、処理Ａ部２０ｃ＿１はＰ１〜Ｐｎの送信を担当し、処理Ｂ部２０ｃ＿２はＰｎ＋１〜Ｐｍの送信を担当する。
【００３２】
すなわち、ｍパケットのうちの第１パケット（Ｐ１）から第ｎパケット（Ｐｎ）までの送信は、パケット送信部２０ｃの処理Ａ部２０ｃ＿１によって行われ、残りのパケット（Ｐｎ＋１〜Ｐｍ）の送信は、パケット送信部２０ｃの処理Ｂ部２０ｃ＿２によって行われる。
【００３３】
ここで、上記の“統計情報”について説明する。統計情報とは、要するに、パケット送信時に何回の再送で肯定応答が返されたかを把握するための情報である。
【００３４】
図４は、統計情報の具体例を示す図である。この図において、統計情報５０は、トータル送信パケット数（ＴＰ）を“９０３２２”個としたときの例である。個数は便宜値である。
【００３５】
再送回数（Ｊ）は、ＴＰの送信を完了するまでの間に発生した全ての再送動作の回数列である。Ｊ＝０は再送動作なし、Ｊ＝１は再送回数１、Ｊ＝２は再送回数２、・・・・、Ｊ＝６は再送回数６である。各再送回数ごとの送信パケット数（ＭＰ）は、その再送回数で送信を完了した送信パケットの数（肯定応答が返された送信パケットの数）であり、図示の例では、Ｊ＝０で“８５０６６”個、Ｊ＝１で“４３５８”個、Ｊ＝２で“７７９”個、Ｊ＝３で“７５”個、Ｊ＝４で“３０”個、Ｊ＝５で“９”個、Ｊ＝６で“５”個であるものとする。
【００３６】
すなわち、パケット送信後に直ち（Ｊ＝０）に肯定応答が返された回数が“８５０６６”であり、１回の再送動作（Ｊ＝１）で肯定応答が返された回数が“４３５８”であり、２回の再送動作（Ｊ＝２）で肯定応答が返された回数が“７７９”であり、３回の再送動作（Ｊ＝３）で肯定応答が返された回数が“７５”であり、４回の再送動作（Ｊ＝４）で肯定応答が返された回数が“３０”であり、５回の再送動作（Ｊ＝５）で肯定応答が返された回数が“９”であり、６回の再送動作（Ｊ＝６）で肯定応答が返された回数が“５”である。
【００３７】
累計送信パケット数（ΣＭＰ）は、各再送回ごとの送信パケット数（ＭＰ）を加算したものである。Ｊ＝０では“８５０６６”、Ｊ＝１では“８５０６６＋４３５８＝９９４２４”、Ｊ＝２では“８５０６６＋４３５８＋７７９＝９０２０３”、Ｊ＝３では“８５０６６＋４３５８＋７７９＋７５＝９０２７８”、Ｊ＝４では“８５０６６＋４３５８＋７７９＋７５＋３０＝９０３０８”、Ｊ＝５では“８５０６６＋４３５８＋７７９＋７５＋３０＋９＝９０３１７”、Ｊ＝６では“８５０６６＋４３５８＋７７９＋７５＋３０＋９＋５＝９０３２２”である。
【００３８】
さて、この図において、最大の再送回数（Ｊ＝６）のときの累計送信パケット数（ΣＭＰ）と、トータル送信パケット数（ＴＰ）は一致（“９０３２２”個）しており、このことから、“９０３２２”個のパケットを全て（１００％）送信し終えるために必要な最大の再送回数は“６”回であることが認められる。
【００３９】
たとえば、各再送回ごとの送信完了割合（Ｎ）を次式▲１▼に従って求めると、
Ｎ〔％〕＝（ΣＭＰ／ＴＰ）×１００　・・・・▲１▼
Ｊ＝０では“９４．１８”％、Ｊ＝１では“９９．０１”％、Ｊ＝２では“９９．８７”％、Ｊ＝３では“９９．９５”％、Ｊ＝４では“９９．９８”％、Ｊ＝５では“９９．９９”％、Ｊ＝６では“１００”％となる。
【００４０】
したがって、この統計情報５０を利用することにより、同一の電送品質の通信路１０を用いてパケット通信を行った際に、たとえ、受信局３０から応答（ＡＣＫ／ＮＡＫ）が返らなかった場合においても、少なくとも、統計情報５０の最大の再送回数（Ｊ＝６）を実行した後であれば、１００％の送信完了割合（Ｎ）が得られたものとみなすことができ、異常終了することなく次順のパケット送信を継続することができる。
【００４１】
本実施の形態は、かかる思想に基づいてなされたものであり、処理Ａ部２０ｃ＿１でパケット送信を行った際に統計情報５０を収集し、その後、処理Ｂ部２０ｃ＿２でパケット送信を行う際に、上記の統計情報５０で得られた最大の再送回数（Ｊ＝６）を越えてもなお、受信局３０から応答（ＡＣＫ／ＮＡＫ）が得られなかった場合は、受信局３０で正常にパケットを受信したものとみなし、従来技術のように異常終了処理を行うことなく、次順のパケット送信を継続することとしたものである。これにより、パケット転送の不本意な中断の回避を図ることができる。
【００４２】
以下、本実施の形態のポイントである統計情報５０の収集及びその統計情報５０を利用したパケット送信のアルゴリズムについて、具体的に説明する。
【００４３】
＜処理Ａ部２０ｃ＿１の詳細動作＞
図５は、処理Ａ部２０ｃ＿１の詳細動作（アルゴリズム）を示すフローチャートである。このアルゴリズムでは、まず、ステップＳ２１で再送回数変数Ｊとループ変数ｉを初期化（Ｊ＝０，ｉ＝１）した後、以降のループ（第１〜第３のループ）を実行する。
【００４４】
＜第１のループ＞
このループは、ステップＳ２２〜ステップＳ２８から構成される。すなわち、第ｉパケットを送信してＡＣＫを受け取ると、式「ＭＰ（Ｊ）＝ＭＰ（Ｊ）＋１」を演算する（ステップＳ２４）。ここに、Ｊ＝０であるから、ＭＰ（Ｊ）はＭＰ０となり、この段階のＭＰ０の値は初期値“０”であるから、ＭＰ０は上記の演算により“１”となる。ＭＰ０＝１は、再送なし（Ｊ＝０）で正常に受信局３０に受信されたパケットの数“１”を表す。
【００４５】
次に、ＭＰ０のΣＭＰ０を演算する（ステップＳ２５）。この段階ではＭＰ０＝１であるので、ΣＭＰ０も１になる。次に、Ｊを初期化し（ステップＳ２６）、ｉを＋１して（ステップＳ２７）、ｉ＞ｉｍａｘ（ｉｍａｘは送信パケット数；たとえば、第１パケットから第ｎパケットまでのｎ個のパケットを送信する場合は、ｉｍａｘ＝ｎ）になるまでステップＳ２２〜ステップＳ２８をループする。
【００４６】
このループによれば、再送なしの肯定応答（ＡＣＫ）に基づくハンドシェーク型のパケット転送を実現することができると共に、ＭＰ０に再送なし（Ｊ＝０）で転送されたパケット数をセットすることができる。たとえば、先の統計情報５０では、ＭＰ０は“８５０６６”であるので、再送なし（Ｊ＝０）で転送されたパケット数が最終的に“８５０６６”個であったことが分かる。
【００４７】
＜第２のループ＞
このループは、ステップＳ２２、ステップＳ２３、ステップＳ３０及びステップＳ３１から構成される。すなわち、第ｉパケットを送信してＮＡＫを受け取ると、応答信号エラー処理を実行する（ステップＳ３２）。この応答信号エラー処理は、先に説明した図１６のものと同じ処理内容である。図１６において、まず、ステップＳ１９ａでＪを＋１した後、ステップＳ１９ｂでＪが所定の再送上限回数（この「再送上限回数」は、統計データを取得できるように考慮された十分大きな値が設定されている。）に達しているか否かを判定する。そして、達していない場合は、図５のアルゴリズムに復帰して第ｉパケットの再送（ステップＳ２２）を行う一方、達している場合は、ステップＳ１９ｃで所要のエラー処理（たとえばユーザへの告知等）を行った後、パケットの転送処理を終了（エラー発生に伴う異常終了）する。
【００４８】
ここで、Ｊの値は、肯定応答（ＡＣＫ）が返されるまでの否定応答（ＮＡＫ）の累計数を表す。たとえば、１回の否定応答（ＮＡＫ）の後に肯定応答（ＡＣＫ）が返された場合、Ｊの値は“１”となる。そして、肯定応答（ＡＣＫ）が返されたことによって、ステップＳ２３の判定結果が“ＹＥＳ”となり、ステップＳ２４のＭＰ（Ｊ）及びステップＳ２５のΣＭＰ（Ｊ）にＪ＝１をセットして、それぞれＭＰ１及びΣＭＰ１になる。
【００４９】
したがって、この場合は、ＭＰ１にＪ＝１（再送回数１）で転送されたパケット数がセットされる。たとえば、先の統計情報５０では、ＭＰ１は“４３５８”であるので、再送回数１（Ｊ＝１）で転送されたパケット数が最終的に“４３５８”個であったことが分かる。
【００５０】
また、２回の否定応答（ＮＡＫ）の後に肯定応答（ＡＣＫ）が返された場合、Ｊの値は“２”となる。そして、肯定応答（ＡＣＫ）が返されたことによって、ステップＳ２３の判定結果が“ＹＥＳ”となり、ステップＳ２４のＭＰ（Ｊ）及びステップＳ２５のΣＭＰ（Ｊ）にＪ＝２をセットして、それぞれＭＰ２及びΣＭＰ２になる。
【００５１】
したがって、この場合は、ＭＰ２にＪ＝２（再送回数２）で転送されたパケット数がセットされる。たとえば、先の統計情報５０では、ＭＰ２は“７７９”であるので、再送回数２（Ｊ＝２）で転送されたパケット数が最終的に“７７９”個であったことが分かる。
【００５２】
また、３回の否定応答（ＮＡＫ）の後に肯定応答（ＡＣＫ）が返された場合、Ｊの値は“３”となり、肯定応答（ＡＣＫ）が返されたことによって、ステップＳ２３の判定結果が“ＹＥＳ”となり、ステップＳ２４のＭＰ（Ｊ）及びステップＳ２５のΣＭＰ（Ｊ）にＪ＝３をセットして、それぞれＭＰ３及びΣＭＰ３になる。
【００５３】
したがって、この場合は、ＭＰ３にＪ＝３（再送回数３）で転送されたパケット数がセットされる。たとえば、先の統計情報５０では、ＭＰ３は“７５”であるので、再送回数３（Ｊ＝３）で転送されたパケット数が最終的に“７５”個であったことが分かる。
【００５４】
また、４回の否定応答（ＮＡＫ）の後に肯定応答（ＡＣＫ）が返された場合、Ｊの値は“４”となり、肯定応答（ＡＣＫ）が返されたことによって、ステップＳ２３の判定結果が“ＹＥＳ”となり、ステップＳ２４のＭＰ（Ｊ）及びステップＳ２５のΣＭＰ（Ｊ）にＪ＝４をセットして、それぞれＭＰ４及びΣＭＰ４になる。
【００５５】
したがって、この場合は、ＭＰ４にＪ＝４（再送回数４）で転送されたパケット数がセットされる。たとえば、先の統計情報５０では、ＭＰ４は“３０”であるので、再送回数４（Ｊ＝４）で転送されたパケット数が最終的に“３０”個であったことが分かる。
【００５６】
また、５回の否定応答（ＮＡＫ）の後に肯定応答（ＡＣＫ）が返された場合、Ｊの値は“５”となり、肯定応答（ＡＣＫ）が返されたことによって、ステップＳ２３の判定結果が“ＹＥＳ”となり、ステップＳ２４のＭＰ（Ｊ）及びステップＳ２５のΣＭＰ（Ｊ）にＪ＝５をセットして、それぞれＭＰ５及びΣＭＰ５になる。
【００５７】
したがって、この場合は、ＭＰ５にＪ＝５（再送回数５）で転送されたパケット数がセットされる。たとえば、先の統計情報５０では、ＭＰ５は“９”であるので、再送回数５（Ｊ＝５）で転送されたパケット数が最終的に“９”個であったことが分かる。
【００５８】
また、６回の否定応答（ＮＡＫ）の後に肯定応答（ＡＣＫ）が返された場合、Ｊの値は“６”となり、肯定応答（ＡＣＫ）が返されたことによって、ステップＳ２３の判定結果が“ＹＥＳ”となり、ステップＳ２４のＭＰ（Ｊ）及びステップＳ２５のΣＭＰ（Ｊ）にＪ＝６をセットして、それぞれＭＰ６及びΣＭＰ６になる。
【００５９】
したがって、この場合は、ＭＰ６にＪ＝６（再送回数６）で転送されたパケット数がセットされる。たとえば、先の統計情報５０では、ＭＰ６は“５”であるので、再送回数６（Ｊ＝６）で転送されたパケット数が最終的に“５”個であったことが分かる。
【００６０】
このようにして、パケット送信を行いながら統計情報５０を収集することができる。なお、統計情報５０の累計送信パケット総数ΣＭＰ（Ｊ）は、ステップＳ２５において演算される。たとえば、Ｊ＝０のときのΣＭＰ０はＭＰ０と同値であり、また、Ｊ＝１のときのΣＭＰ１はＭＰ０＋ＭＰ１で与えられる。同様に、Ｊ＝２のときのΣＭＰ２はＭＰ０＋ＭＰ１＋ＭＰ２で与えられ、Ｊ＝３のときのΣＭＰ３はＭＰ０＋ＭＰ１＋ＭＰ２＋ＭＰ３で与えられ、Ｊ＝４のときのΣＭＰ４はＭＰ０＋ＭＰ１＋ＭＰ２＋ＭＰ３＋ＭＰ４で与えられ、Ｊ＝５のときのΣＭＰ５はＭＰ０＋ＭＰ１＋ＭＰ２＋ＭＰ３＋ＭＰ４＋ＭＰ５で与えられ、Ｊ＝６のときのΣＭＰ６はＭＰ０＋ＭＰ１＋ＭＰ２＋ＭＰ３＋ＭＰ４＋ＭＰ５＋ＭＰ６で与えられる。
【００６１】
＜第３のループ＞
このループは、ステップＳ２２、ステップＳ２３、ステップＳ３０、ステップＳ３１、ステップＳ３２及びステップＳ３３から構成される。すなわち、第ｉパケットを送信して、いずれの応答信号（ＡＣＫ、ＮＡＫも）も受け取れなかった場合は、ステップ３３で所定の時間が経過（タイムアウト）するまで応答信号を待ち、タイムアウトになると、所定のエラー処理（ステップＳ３３）を実行する。ステップＳ３３のエラー処理は、図１５の「タイムアウトエラー処理Ａ」と同一のものであり、したがって、この第３のループは、冒頭で説明した第３のループと同じ動作をする。
【００６２】
以上説明した処理Ａ部２０ｃ＿１の詳細動作（アルゴリズム）は、肯定応答（ＡＣＫ）や否定応答（ＮＡＫ）に基づくハンドシェーク型のパケット転送を実現する点で先に説明した従来技術のアルゴリズム（図１４）と共通し、統計情報５０を収集する点で相違する。
【００６３】
＜処理Ｂ部２０ｃ＿２の詳細動作＞
図６は、処理Ｂ部２０ｃ＿２の詳細動作（アルゴリズム）を示すフローチャートである。このアルゴリズムでは、まず、「タイムアウト再送上限回数設定処理」（ステップＳ２９ａ）を実行する。
【００６４】
図７は、「タイムアウト再送上限回数設定処理」、詳しくは、所定の時間が経過しても応答（ＡＣＫ／ＮＡＫ）が得られない場合に、受信局が正しくパケットを受信できたとみなす再送回数（タイムアウト再送上限回数）を設定処理するための詳細動作（アルゴリズム）を示すフローチャートである。このフローチャートでは、再送回数変数Ｊを初期化（ステップＳ２９ａ＿１）した後、図４の統計情報５０を元に、前式▲１▼に従って、再送回数０（Ｊ＝０）のときの送信完了割合（Ｎ）を求める（ステップＳ２９ａ＿２）。すなわち、図４の統計情報５０において、Ｊ＝０のときのΣＭＰ０は“８５０６６”であり、ＴＰは“９０３２２”であるから、前式▲１▼より、Ｊ＝０のときのＮは“９４．１８”〔％〕となる。
【００６５】
次いで、式「Ｎ≧１００」を評価し（ステップＳ２９ａ＿３）、その評価結果がＴｒｕｅ（真値）となるまで、Ｊを＋１して（ステップＳ２９ａ＿４）、上記のＮ演算（ステップＳ２９ａ＿２）と式の評価（ステップＳ２９ａ＿３）を繰り返す。
【００６６】
すなわち、図４の統計情報５０において、Ｊ＝１（再送回数１）のときのΣＭＰ１は“９９４２４”であるから、前式▲１▼より、Ｊ＝１のときのＮは“９９．０１”〔％〕となる。同様に、Ｊ＝２（再送回数２）のときのΣＭＰ２は“９０２０３”であるから、Ｎは“９９．８７”〔％〕となり、Ｊ＝３（再送回数３）のときのΣＭＰ３は“９０２７８”であるから、Ｎは“９９．９５”〔％〕となり、Ｊ＝４（再送回数４）のときのΣＭＰ４は“９０３０８”であるから、Ｎは“９９．９８”〔％〕となり、Ｊ＝５（再送回数５）のときのΣＭＰ５は“９０３１７”であるから、Ｎは“９９．９９”〔％〕となり、Ｊ＝６（再送回数６）のときのΣＭＰ６は“９０３２２”であるから、Ｎは“１００”〔％〕となる。
【００６７】
したがって、上記の式の評価（ステップＳ２９ａ＿３）結果は、Ｊ＝６の段階でＴｒｕｅとなるので、この時点でループを抜け出し、所定のタイムアウト再送上限回数（以下「ＴｉｍｅＯｕｔＭａｘ」という）にそのときのＪの値（“６”）をセット（ステップＳ２９ａ＿５）した後、図６のアルゴリズムにリターンする。
【００６８】
なお、上述の場合では、Ｎ≧１００としたが、他の数字、たとえば、Ｎ≧９９．９７としてもよい。つまり、送信完了割合が“９９．９７”〔％〕を超える再送回数をもって、受信局が正しく受信できたとみなし、ＴｉｍｅＯｕｔＭａｘとしてＪの値（“４”）をセットするようにしてもよい。この場合、再送回数（Ｊ＝４）を実行した後であれば、送信が成功したとみなし、次順のパケットを送信することになる。また、仮に受信局でパケットを正しく受信できていないときに次順のパケットを受信してしまっても、受信局が受信できていないパケットの再送を要求すればよい。
【００６９】
図６のアルゴリズムでは、次に、ループ変数ｉにｎ＋１の値をセット（ステップＳ２９ｂ）した後、以降のループ（第１〜第３のループ）を実行する。ここに、ｎの値は、図３（ｂ）の送信データ４０におけるｎパケット目を意味し、言い換えれば、処理Ａ部２０ｃ＿１で送信を完了した最終パケットの番号である。
【００７０】
＜第１のループ＞
このループは、図６のステップＳ２９ｃ〜ステップＳ２９ｆから構成される。すなわち、第ｉパケットを送信してＡＣＫを受け取ると、ｉを＋１してｉ＞ｍ（ｍは図３（ｂ）の送信データ４０におけるｍパケット目）になるまでステップＳ２９ｃ〜ステップＳ２９ｆをループする。このループによれば、肯定応答（ＡＣＫ）に基づくハンドシェーク型のパケット転送を実現することができる。
【００７１】
＜第２のループ＞
このループは、図６のステップＳ２９ｃ、ステップＳ２９ｄ、ステップＳ２９ｇおよびステップＳ２９ｊから構成される。すなわち、第ｉパケットを送信してＮＡＫを受け取ると、応答信号エラー処理を実行する（ステップＳ２９ｊ）。この応答信号エラー処理は、先に説明した図１６のものと同じ処理内容である。図１６において、まず、ステップＳ１９ａでＪを＋１した後、ステップＳ１９ｂでＪが所定の再送上限回数（この「再送上限回数」は、タイムアウト再送上限回数（ＴｉｍｅＯｕｔＭａｘ）より大きな値が設定されている。）に達しているか否かを判定する。そして、達していない場合は、図６のアルゴリズムに復帰して第ｉパケットの再送（ステップＳ２９ｃ）を行う一方、達している場合は、ステップＳ１９ｃで所要のエラー処理（たとえばユーザへの告知等）を行った後、パケットの転送処理を終了（エラー発生に伴う異常終了）する。このループによれば、上記の第１のループとの組み合わせにより、二つの応答（ＡＣＫ／ＮＡＫ）に基づくハンドシェーク型のパケット転送を実現することができる。
【００７２】
＜第３のループ＞
このループは、図６のステップＳ２９ｃ、ステップＳ２９ｄ、ステップＳ２９ｇ、ステップＳ２９ｈ、ステップＳ２９ｉおよびステップＳ２９ｊから構成される。すなわち、第ｉパケットを送信して、いずれの応答信号（ＡＣＫ、ＮＡＫも）も受け取れなかった場合は、所定の時間が経過（タイムアウト）するまで応答信号を待ち、タイムアウトになると、所定のエラー処理（「タイムアウトエラー処理Ｂ」と「応答信号エラー処理」）を実行する。
【００７３】
＜タイムアウトエラー処理Ｂ＞
図８は、タイムアウトエラー処理Ｂの詳細動作（アルゴリズム）を示すフローチャートである。このアルゴリズムでは、まず、ステップＳ２９ｉ＿１でタイムアウトエラーカウント（ＴｉｍｅＥｒｒＣＴ）を＋１した後、ステップＳ２９ｉ＿２でＴｉｍｅＥｒｒＣＴがタイムアウト再送上限回数（ＴｉｍｅＯｕｔＭａｘ）に達しているか否かを判定する。
【００７４】
そして、達していない場合は、図６のアルゴリズムに復帰して第ｉパケットの再送（ステップＳ２９ｃ）を行う一方、達している場合は、パケット送信が成功しているものとみなし、図６のアルゴリズムのＡＣＫ検出ステップ後（ステップＳ２９ｄの“ＹＥＳ”判定後）にジャンプする。
【００７５】
図８の「タイムアウトエラー処理Ｂ」は、冒頭で説明した図１５の「タイムアウトエラー処理Ａ」に類似するものであるが、両者を比較すると、「タイムアウトエラー処理Ａ」が固定的な“上限回数”を用いるのに対し、本実施の形態の「タイムアウトエラー処理Ｂ」は、可変的な上限回数、すなわち、処理Ａ部２０ｃ＿１で収集した統計情報５０から算出されたタイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”を用いている点で相違する。
【００７６】
そして、この相違点により、たとえ、受信局３０から肯定応答も否定応答も返らない場合であっても、再送回数が、処理Ａ部２０ｃ＿１で収集した統計情報５０から算出されたタイムアウト再送上限回数“ＴｉｍｅＯｕｔＭａｘ”の値（図４の例ではＪ＝６）に達した時をもって、受信局３０に正常に受信されたものとみなし、その後のパケット送信を継続して実行することができる。
【００７７】
したがって、本実施の形態のアルゴリズムによれば、受信局３０から肯定応答も否定応答も返らない場合であっても、無駄なパケットの再送を行わず、送信時間の短縮を図ることができる。また、パケット送信を異常終了することがなく、パケット転送の不本意な中断の回避を図ることができ、特に電送品質の悪い通信路を使用する無線パケット通信システムなどに用いて好適なものとすることができる。
【００７８】
＜他の統計情報の例＞
図９及び図１０は、他の統計情報を示す図である。これらの統計情報６０、７０も、そのトータル送信パケット数（ＴＰ）は、前記の統計情報５０と同じ“９０３２２”個である。
【００７９】
図９に示す統計情報６０において、Ｊ＝０は再送動作なし、Ｊ＝１は再送回数１、Ｊ＝２は再送回数２、・・・・、Ｊ＝８は再送回数８である。各再送回数ごとの送信パケット数（ＭＰ）は、その再送回数で送信を完了した送信パケットの数（肯定応答が返された送信パケットの数）であり、図示の例では、Ｊ＝０で“７９１１２”個、Ｊ＝１で“７８１６”個、Ｊ＝２で“２８１３”個、Ｊ＝３で“３５４”個、Ｊ＝４で“１１０”個、Ｊ＝５で“６４”個、Ｊ＝６で“３７”、Ｊ＝７で“９”個、Ｊ＝８で“７”個であるものとする。
【００８０】
すなわち、パケット送信後に直ち（Ｊ＝０）に肯定応答が返された回数が“７９１１２”であり、１回の再送動作（Ｊ＝１）で肯定応答が返された回数が“７８１６”であり、２回の再送動作（Ｊ＝２）で肯定応答が返された回数が“２８１３”であり、３回の再送動作（Ｊ＝３）で肯定応答が返された回数が“３５４”であり、４回の再送動作（Ｊ＝４）で肯定応答が返された回数が“１１０”であり、５回の再送動作（Ｊ＝５）で肯定応答が返された回数が“６４”であり、６回の再送動作（Ｊ＝６）で肯定応答が返された回数が“３７”であり、７回の再送動作（Ｊ＝７）で肯定応答が返された回数が“９”であり、８回の再送動作（Ｊ＝８）で肯定応答が返された回数が“７”である。
【００８１】
累計送信パケット数（ΣＭＰ）は、各再送回ごとの送信パケット数（ＭＰ）を加算したものである。Ｊ＝０では“７９１１２”、Ｊ＝１では“７９１１２＋７８１６＝８６９２８”、Ｊ＝２では“７９１１２＋７８１６＋２８１３＝８９７４１”、Ｊ＝３では“７９１１２＋７８１６＋２８１３＋３５４＝９００９５”、Ｊ＝４では“７９１１２＋７８１６＋２８１３＋３５４＋１１０＝９０２０５”、Ｊ＝５では“７９１１２＋７８１６＋２８１３＋３５４＋１１０＋６４＝９０２６９”、Ｊ＝６では“７９１１２＋７８１６＋２８１３＋３５４＋１１０＋６４＋３７＝９０３０６”、Ｊ＝７では“７９１１２＋７８１６＋２８１３＋３５４＋１１０＋６４＋３７＋９＝９０３１５”、Ｊ＝８では“７９１１２＋７８１６＋２８１３＋３５４＋１１０＋６４＋３７＋９＋７＝９０３２２”である。
【００８２】
この図において、最大の再送回数（Ｊ＝８）のときの累計送信パケット数（ΣＭＰ）と、トータル送信パケット数（ＴＰ）は一致（“９０３２２”個）しており、このことから、“９０３２２”個のパケットを全て送信し終えるために必要な最大の再送回数は“８”回であることが認められる。
【００８３】
たとえば、各再送回ごとの送信完了割合（Ｎ）を前式▲１▼に従って求めると、Ｊ＝０では“８７．５９”％、Ｊ＝１では“９６．２４”％、Ｊ＝２では“９９．３６”％、Ｊ＝３では“９９．７５”％、Ｊ＝４では“９９．８７”％、Ｊ＝５では“９９．９４”％、Ｊ＝６では“９９．９８”％、Ｊ＝７では“９９．９９”％、Ｊ＝８では“１００”％となる。
【００８４】
したがって、この統計情報６０を利用することによっても、同一の電送品質の通信路１０を用いてパケット通信を行った際に、たとえ、受信局３０から応答（ＡＣＫ／ＮＡＫ）が返らなかった場合においても、少なくとも、統計情報６０の最大の再送回数（Ｊ＝８）を実行した後であれば、１００％の送信完了割合（Ｎ）が得られたものとみなすことができ、異常終了することなく次順のパケット送信を継続することができる。
【００８５】
なお、タイムアウト再送上限回数設定処理において、Ｎ≧９９．９０とした場合、統計情報６０では、タイムアウト再送上限回数（ＴｉｍｅＯｕｔＭａｘ）の値としてＪ＝５となるので、再送回数（Ｊ＝５）を実行した後であれば、送信が成功したとみなし、次順のパケットを送信することになる。
【００８６】
または、図１０に示す統計情報７０において、Ｊ＝０は再送動作なし、Ｊ＝１は再送回数１、Ｊ＝２は再送回数２、・・・・、Ｊ＝１０は再送回数１０である。各再送回数ごとの送信パケット数（ＭＰ）は、その再送回数で送信を完了した送信パケットの数（肯定応答が返された送信パケットの数）であり、図示の例では、Ｊ＝０で“７７５３０”個、Ｊ＝１で“６５６１”個、Ｊ＝２で“３８９１”個、Ｊ＝３で“１４２２”個、Ｊ＝４で“３８６”個、Ｊ＝５で“２８７”個、Ｊ＝６で“１５１”個、Ｊ＝７で“４９”個、Ｊ＝８で“２８”個、Ｊ＝９で“１１”個、Ｊ＝１０で“６”個であるものとする。
【００８７】
すなわち、パケット送信後に直ち（Ｊ＝０）に肯定応答が返された回数が“７７５３０”であり、１回の再送動作（Ｊ＝１）で肯定応答が返された回数が“６５６１”であり、２回の再送動作（Ｊ＝２）で肯定応答が返された回数が“３８９１”であり、３回の再送動作（Ｊ＝３）で肯定応答が返された回数が“１４２２”であり、４回の再送動作（Ｊ＝４）で肯定応答が返された回数が“３８６”であり、５回の再送動作（Ｊ＝５）で肯定応答が返された回数が“２８７”であり、６回の再送動作（Ｊ＝６）で肯定応答が返された回数が“１５１”であり、７回の再送動作（Ｊ＝７）で肯定応答が返された回数が“４９”であり、８回の再送動作（Ｊ＝８）で肯定応答が返された回数が“２８”であり、９回の再送動作（Ｊ＝９）で肯定応答が返された回数が“１１”であり、１０回の再送動作（Ｊ＝１０）で肯定応答が返された回数が“６”である。
【００８８】
累計送信パケット数（ΣＭＰ）は、各再送回ごとの送信パケット数（ＭＰ）を加算したものである。Ｊ＝０では“７７５３０”、Ｊ＝１では“７７５３０＋６５６１＝８４０９１”、Ｊ＝２では“７７５３０＋６５６１＋３８９１＝８７９８２”、Ｊ＝３では“７７５３０＋６５６１＋３８９１＋１４２２＝８９４０４”、Ｊ＝４では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＝８９７９０”、Ｊ＝５では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＋２８７＝９００７７”、Ｊ＝６では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＋２８７＋１５１＝９０２２８”、Ｊ＝７では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＋２８７＋１５１＋４９＝９０２７７”、Ｊ＝８では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＋２８７＋１５１＋４９＋２８＝９０３０５”、Ｊ＝９では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＋２８７＋１５１＋４９＋２８＋１１＝９０３１６”、Ｊ＝１０では“７７５３０＋６５６１＋３８９１＋１４２２＋３８６＋２８７＋１５１＋４９＋２８＋１１＋６＝９０３２２”である。
【００８９】
この図において、最大の再送回数（Ｊ＝１０）のときの累計送信パケット数（ΣＭＰ）と、トータル送信パケット数（ＴＰ）は一致（“９０３２２”個）しており、このことから、“９０３２２”個のパケットを全て送信し終えるために必要な最大の再送回数は“１０”回であることが認められる。
【００９０】
たとえば、各再送回ごとの送信完了割合（Ｎ）を前式▲１▼に従って求めると、Ｊ＝０では“８３．６２”％、Ｊ＝１では“９３．１０”％、Ｊ＝２では“９７．４１”％、Ｊ＝３では“９８．９８”％、Ｊ＝４では“９９．４１”％、Ｊ＝５では“９９．７３”％、Ｊ＝６では“９９．９０”％、Ｊ＝７では“９９．９５”％、Ｊ＝８では“９９．９８”％、Ｊ＝９では“９９．９９”％、Ｊ＝１０では“１００”％となる。
【００９１】
したがって、この統計情報７０を利用することによっても、同一の電送品質の通信路１０を用いてパケット通信を行った際に、たとえ、受信局３０から応答（ＡＣＫ／ＮＡＫ）が返らなかった場合においても、少なくとも、統計情報７０の最大の再送回数（Ｊ＝１０）を実行した後であれば、１００％の送信完了割合（Ｎ）が得られたものとみなすことができ、異常終了することなく次順のパケット送信を継続することができる。
【００９２】
なお、タイムアウト再送上限回数設定処理において、Ｎ≧９９．９０とした場合、統計情報７０では、タイムアウト再送上限回数（ＴｉｍｅＯｕｔＭａｘ）の値としてＪ＝６となるので、再送回数（Ｊ＝６）を実行した後であれば、送信が成功したとみなし、次順のパケットを送信することになる。
【００９３】
以上、説明したとおり、本実施の形態によれば、処理Ａ部２０ｃ＿１で収集された統計情報が、たとえば、図４の統計情報５０のようなものであれば、タイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”に“６”をセットし、または、図９の統計情報６０のようなものであれば、タイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”に“８”をセットし、あるいは、図１０の統計情報７０のようなものであれば、タイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”に“１０”をセットする。したがって、実際のパケット送信の状況に応じて、適応的にタイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”を可変設定することができ、無用な再送を回避して、パケット転送の効率改善を図ることができる。
【００９４】
なお、以上の説明では、統計情報５０、６０または７０の「最大」の再送回数（Ｊ＝６、Ｊ＝８またはＪ＝１０）をタイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”にセットしているが、これに限定されない。たとえば、画像のような不可逆性データを転送する場合は、多少のエラーも許容されるため、最大以外の他の再送回数をタイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”にセットしてもよい。
【００９５】
たとえば、図４の統計情報５０において、Ｊ＝３をタイムアウト上限回数“ＴｉｍｅＯｕｔＭａｘ”にセットした場合は、少なくとも“９９．９５”〔％〕の割合でデータ転送を完了することができる。ただし、この場合は、図７のステップＳ２９ａ＿３における比較基準値の“１００”を“９９．９５”と読み替えるものとする。
【００９６】
前記の説明では、送信データ４０のＰ１〜Ｐｎの送信処理を処理Ａ部２０ｃ＿１で担当し、残りのＰｎ＋１〜Ｐｍの送信処理を処理Ｂ部２０ｃ＿２で担当しているが、この態様に限らず、たとえば、一連の送信データを送信する際、最初の所定の時間だけ統計データの取得を行い、その後にその統計データを用いて、たとえば、比較基準値となる予め設定された送信完了割合を越える再送が実行された場合は、送信が成功したとみなしす送信処理を行うようにしてもよい。
【００９７】
また、統計データの取得は、どのようなタイミングで行ってもよい。また、たとえば、一連の送信データを送信している最中にランダムに統計データの取得処理とその統計データに基づく送信処理とを交互に切り換えるようにしてもよい。また、更には常に統計データの取得を行い、定期的あるいは統計データに変化が認められた場合に最新の統計データを反映させて送信処理を行なうようにしてもよい。また、所定期間内に同一の受信局に送信する場合は、前回取得した統計データを用いて送信処理するようにしてもよい。
【００９８】
または、通信路１０の電送品質（たとえば、無線の場合であれば電波の強さやＳ／Ｎ比など）を検出する検出手段を設け、その検出手段の出力をモニタして電送品質が変化した場合に所定時間または所定パケット数だけ処理Ａ部２０ｃ＿１を働かせてもよい。
【００９９】
また、以上の例では、統計データとして送信完了割合を求めたが、その他の統計情報であってもよく、たとえば、単位時間内で送信が成功したパケット数の割合などを用いてもよい。
また、上述の図６の例では、途中で否定応答（ＮＡＫ）を受信した場合においてもＴｉｍｅＥｒｒＣＴの回数を加算するようにしたが、タイムアウトエラーが連続して発生した場合のみＴｉｍｅＥｒｒＣＴの回数を加算するようにしてもよい。
【０１００】
また、本実施の形態の主要な機能は、マイクロコンピュータを含むハードウェア資産と、ＯＳや各種プログラムなどのソフトウェア資産との有機的結合によって機能的に実現することができる。この場合、ハードウェア資産およびＯＳは汎用のものを利用できるから、本発明にとって欠くことのできない必須の事項は、実質的に、上記の各アルゴリズム（図５〜図８）を適用して設計されたプログラムに集約されているということがいえる。したがって、本発明は、かかるプログラムのすべてまたはその要部を格納した、フレキシブルディスク、光ディスク、磁気ディスク、ハードディスク、半導体メモリなどの記録媒体（それ自体が流通経路に乗るものはもちろん、ネットワーク上にあって記録内容だけを提供するものも含む）を包含するものである。
【０１０１】
【発明の効果】
本発明によれば、肯定／否定のいずれの応答も送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合（たとえば、Ｊ回の再送完了時；図１参照）には、パケットの転送処理を終了せずに転送を継続することができ、これにより、パケット転送の不本意な中断の回避を図ることができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】本実施の形態に係わるパケット通信システムの概略構成図である。
【図３】送信局２０のパケット送信部２０ｃの機能概念図及び送信バッファ２０ｂに格納された送信データの模式図である。
【図４】統計情報の具体例を示す図である。
【図５】処理Ａ部２０ｃ＿１の詳細動作（アルゴリズム）を示すフローチャートである。
【図６】処理Ｂ部２０ｃ＿２の詳細動作（アルゴリズム）を示すフローチャートである。
【図７】タイムアウト上限回数設定処理の詳細動作（アルゴリズム）を示すフローチャートである。
【図８】タイムアウトエラー処理Ｂの詳細動作（アルゴリズム）を示すフローチャートである。
【図９】他の統計情報を示す図（その１）である。
【図１０】他の統計情報を示す図（その２）である。
【図１１】従来技術におけるエラーがない場合のタイムラン図である。
【図１２】従来技術におけるエラーを検出した場合のタイムラン図である。
【図１３】従来技術における応答信号（ＡＣＫまたはＮＡＫ）を喪失した場合のタイムラン図である。
【図１４】図１１〜図１３のタイムランを実現するためのアルゴリズムを示すフローチャートである。
【図１５】タイムアウトエラー処理Ａのアルゴリズムである。
【図１６】応答信号エラー処理のアルゴリズムである。
【符号の説明】
１……パケット、２……パケット、３……パケット、１０……通信路、２０……送信局（パケット再送装置）、２０ｃ＿１……処理Ａ部、２０ｃ＿２……処理Ｂ部、３０……受信局。
【図１】
2004040692.tif 000003
【図２】
2004040692.tif 000004
【図３】
2004040692.tif 000005
【図４】
2004040692.tif 000006
【図５】
2004040692.tif 000007
【図６】
2004040692.tif 000008
【図７】
2004040692.tif 000009
【図８】
2004040692.tif 000010
【図９】
2004040692.tif 000011
【図１０】
2004040692.tif 000012
【図１１】
2004040692.tif 000013
【図１２】
2004040692.tif 000014
【図１３】
2004040692.tif 000015
【図１４】
2004040692.tif 000016
【図１５】
2004040692.tif 000017
【図１６】
2004040692.tif 000018