(57)【要約】【課題】送信側から送信されたパケットを受信側で正常に受信したことを示す通知が送信側で受け取れなかった場合に、再送を正しくかつ効率よく行うことができるようにする。【解決手段】パケット番号が付与されたパケットを送信側から順次受信側へ送信し、受信側がパケットを正常に受信した場合には送信側へ通知し、受信側から正常に受信した通知を受け取らない場合には正常に受信した通知を受け取らなかったパケット番号から送信側が送信を再開するパケット通信方法において、最後のパケット番号が付与されたパケットのデータ量を１バイトとし、最後のパケット番号の一つ前までの間で正常に受信した通知を受け取らなかった場合には、正常に受信した通知を受け取らなかったパケット番号から最後のパケット番号の一つ前までのパケットについてデータ量を小さく分割して順次送信し、最後のパケット番号のパケットについてはデータ量を減らすことなく送信する。【選択図】図１
2008219323.tif 000002
【特許請求の範囲】
【請求項１】
パケット番号が付与されたパケットを送信側から順次受信側へ送信し、前記受信側が前記パケットを正常に受信した場合には正常に受信したことを前記送信側へ通知し、前記正常に受信した通知を前記送信側が受け取らなかった場合には、前記正常に受信した通知を受け取らなかったパケット番号から前記送信側がパケットの送信を再開するパケット通信方法であって、
前記パケット番号が付与されたパケットのうち最後のパケット番号が付与されたパケットのデータ量を１バイトとし、
最後のパケット番号の一つ前までの間で前記正常に受信した通知を前記送信側が受け取らなかった場合には、前記正常に受信した通知を受け取らなかったパケット番号から最後のパケット番号の一つ前までのパケットについてデータ量を小さく分割して前記送信側から順次送信し、最後のパケット番号のパケットについてはデータ量を小さくすることなく送信することを特徴とするパケット通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信側から送信されたパケットを受信側で正常に受信したことを示す通知が送信側で受け取れなかった場合に送信側からパケットを再送するパケット通信方法に関する。
【背景技術】
【０００２】
従来のパケット通信方法においては、パケット番号が付与されたパケットを送信側から順次受信側へ送信し、受信側がパケットを正常に受信した場合には、正常に受信したことをＡＣＫ信号により送信側へ通知している。そして、送信側がＡＣＫ信号を受信しない場合には、受信側がパケットを正しく受信できなかった、すなわち未達（ＮＡＫ）が発生したと判断して、未達のパケットを再送している。なお、送信側がＡＣＫ信号を受信しない現象は、受信側がパケットを正常に受信できなくてＡＣＫ信号を送信しなかった場合と、受信側がパケットを正常に受信してＡＣＫ信号を送信したにも関わらず、送信側でＡＣＫ信号を受信できなかった場合の２つの場合に生じる。
【０００３】
また、送信側から送信されたパケットを受信側で正常に受信できない未達は、妨害電波や他の機器からのノイズ等によって生じる。前記未達は、送信されるデータ量が大きい場合に生じやすく、その場合には再送時に再び未達となるおそれがある。前記妨害電波や他の機器からのノイズ等の通信障害による未達を防ぐには、予め全パケットのデータ量を小さくする、例えば１バイトにするのが好ましいが、その場合には、全データの送信時間が長くなる不都合が発生する。
【０００４】
そこで、データを効率よく送信し、かつ再送時の未達を防ぐには、未達を生じたパケット番号以降のパケットについてはデータ量を小さく分割して、未達を生じたパケット番号から送信を再開することが有効となる。図６に示すパケット構成のパケット通信方法では、１つのパケットのデータ量を例えば２５６バイト、最初のパケット番号を０、最後のパケット番号をＥとし、送信するデータ量に応じてパケット番号［０、［１〜９、Ａ〜Ｄ］〜Ｅ］までのパケットで送信し、未達が起きた場合には未達が起きたパケット番号以降のパケットのデータ量を例えば３２バイトと小さく分割して、未達（ＮＡＫ）が起きたパケット番号のパケットからパケットの送信を再開することとしている。
【０００５】
また、前記のように、未達を生じたパケット番号以降のパケットについてデータ量を小さく分割して送信を再開する方法では、最後のパケット番号Ｅで未達（ＮＡＫ）が起きた場合、本来であれば、［Ｅ］［０］［１］・・・と分割して再送することとなる。しかし、［Ｅ］は一連のデータの終わりを示し、一方［０］は新たなデータの始まりを意味しており、未だ一連のデータ送信が終了していない状態では、新たなデータの始まりを意味する［０］を含む再送を行うことができない。そこで、本出願人は、図７に示すように、最後のパケット番号Ｅで未達（ＮＡＫ）が起きたときだけパケット番号１から分割送信を開始するパケット通信方法を採用した。
【０００６】
しかしながら、前記パケット通信方法を実際に行ってみると、最後のパケット番号Ｅで未達（ＮＡＫ）が起きて、データが小さく分割されたパケット番号１から送信が再開された場合、図８に示すように、受信側がパケット番号１のパケット［３２バイト］を受信できず、送信側がパケット番号１のパケットを延々と送信し続ける現象が発生する場合のあることが判明した。すなわち、受信側が最後のパケット番号Ｅを受信できず、パケット番号Ｅの受信について、ＡＣＫ信号（正常に受信した通知）を送信側へ送信しなかった場合、送信側ではパケット番号Ｅで未達が起きたと判断してパケット番号Ｅのパケットを分割してパケット１から送信を開始する。しかし、受信側では、受信できなかったパケット番号Ｅの着信を待ち続けているため、送信側から送信されたパケット番号１のデータが着信しても捨ててしまい、パケット番号１についてＡＣＫ信号を送信側へ送信することがない。一方、送信側では、パケット番号１のパケット送信に対してＡＣＫ信号を受信しないため、パケット番号１のパケットを繰り返し送信し続けることになる。
【０００７】
なお、送信側が受信側から最後のパケット番号Ｅを正常に受信した通知を受け取らない現象は、前記場合の他に、受信側が最後のパケット番号Ｅを正しく受信してＡＣＫ信号を送信側へ送信したにもかかわらず、何らかの事情で送信側がＡＣＫ信号を受信できなかった場合にも生じる。この場合、受信側では既に最後のパケット番号Ｅまでデータ受信を完了しており、次にパケット番号１の受信を待ち受けている状態となり、その状態のときに、送信側がＡＣＫ信号未受信により未達と判断したパケット番号Ｅについて小さく分割してパケット番号１から送信再開するため、受信側では送信側から送信されたパケット番号１について正しく受信してＡＣＫ信号を送信側へ送信することができ、前記のような送信側がパケット番号１を繰り返し送信し続ける現象が発生しない。
【０００８】
【特許文献１】特開平１０−１５０４３５号公報
【特許文献２】特開２００２−３４４４５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は前記の点に鑑みなされたものであって、送信側から送信されたパケットを受信側で正常に受信したことを示す通知が送信側で受け取れなかった場合に、再送を正しくかつ効率よく行うことができるパケット通信方法の提供を目的とする。
【課題を解決するための手段】
【００１０】
本発明は、パケット番号が付与されたパケットを送信側から順次受信側へ送信し、前記受信側が前記パケットを正常に受信した場合には正常に受信したことを前記送信側へ通知し、前記正常に受信した通知を前記送信側が受け取らなかった場合には、前記正常に受信した通知を受け取らなかったパケット番号から前記送信側がパケットの送信を再開するパケット通信方法であって、前記パケット番号が付与されたパケットのうち最後のパケット番号が付与されたパケットのデータ量を１バイトとし、最後のパケット番号の一つ前までの間で前記正常に受信した通知を前記送信側が受け取らなかった場合には、前記正常に受信した通知を受け取らなかったパケット番号から最後のパケット番号の一つ前までのパケットについてデータ量を小さく分割して前記送信側から順次送信し、最後のパケット番号のパケットについてはデータ量を小さくすることなく送信することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、あらかじめ最後のパケット番号のパケットについてはデータ量が最小単位の１バイトに設定されているため、最後のパケット番号で通信障害による未達が起き難くなっている。しかも、最後のパケット番号で未達が起きても、未達が起きた最後のパケットについては初めからデータ量が最小単位にされていて、通信障害による未達が繰り返し発生するおそれが少ないことから、そのまま最後のパケット番号のパケットのみを再送すればよい。さらに、本発明では、受信側が最後のパケット番号のパケットを受信できず、最後のパケット番号のパケットを待ち受けている状態のときに、送信側から最後のパケット番号のパケットが再送されることになるため、再送された最後のパケット番号のパケットを受信側で受信することができ、前記のように最後のパケット番号のデータを分割してパケット番号１から再送する場合の受信エラー、すなわち、再送パケットを受信側で受け取れなくなって送信側が延々とパケットを再送するという不具合を生じるおそれがない。また、あらかじめ全パケットのデータ量を１バイトと小さくするものではなく、未達の起きたパケット番号から最後のパケット番号の一つ前までのパケットについてデータを小さく分割して送信するため、効率よくデータを送信することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を説明する。図１は本発明の一実施例に係るパケット通信方法における送信側のフローチャート、図２はパケットの構成の一例を示す図、図３は同実施例における各パケットのデータ量を示す図、図４は同実施例において途中で未達が起きた場合の各パケットのデータ量を示す図、図５は同実施例において最後のパケット番号で未達が起きた場合の各パケットのデータ量を示す図である。
【００１３】
本発明のパケット通信方法は、送信側から所定のデータがパケットで受信側へ送信される。送信側と受信側は、有線あるいは無線の通信経路によって接続可能とされている。送信側および受信側はハードディスク装置やメモリ等に格納された送信データや受信データに対して読み書き可能な公知のランダム・アクセス手段を備える。前記送信側の機器の例としては、携帯端末やパソコン、受信側としてはパソコンやプリンタ等を挙げることができ、それぞれＣＰＵを備える。
【００１４】
図１に示すように、送信側では、有線または無線の通信経路によって受信側との接続が確率される（Ｓ１０１）。次に、ハードディスク装置やメモリ等から読み出されたデータが所定のデータ量に分割されて一連のパケット番号が付与されたパケットとされ、パケット番号順に受信側へ送信される（Ｓ１０２）。
【００１５】
図２に示すように、各パケット１０は、分割されたデータが格納されると共に、ヘッダにはエラー検査情報、フッタにはパケット番号が格納されている。なお、前記エラー検査情報とパケット番号は、何れをヘッダにあるいはフッタに格納してもよく、また両方共ヘッダあるいはフッタに格納してもよい。本実施例では、最初に送信されるパケットにパケット番号０、一方、最後に送信されるパケットにパケット番号Ｅが付与され、その間のパケットがパケット番号１〜９、Ａ〜Ｄが付されるようになっている。パケット番号０は、最初に送信されるパケットであることを示し、パケット番号Ｅは最後に送信されるパケットであることを示す。最後のパケット番号Ｅのパケットは１バイトとされる。なお、最初のパケット番号０と最後のパケット番号Ｅの間のパケットの数は、送信されるデータ量によって変化する。図３に示す例では、パケット番号０〜４のパケットが各２５６バイト、最後の一つ前のパケット番号５のパケットが２５５バイト、最後のパケット番号Ｅのパケットが１バイトのデータ量とされている。
【００１６】
前記パケット番号順にしたがうパケット送信毎に、未達（ＮＡＫ）が起きたか（受信側からＡＣＫ信号を受信していないか）判断され（Ｓ１０３）、未達（ＮＡＫ）が起きていない（ＡＣＫ信号を受信している）場合には、最後のパケット番号のパケットが送信済みか判断される（Ｓ１０４）。最後のパケット番号のパケットが送信済みでない場合には、パケット番号に１加算され（Ｓ１０５）、加算後のパケット番号のパケットが送信される（Ｓ１０２）。前記Ｓ１０２〜Ｓ１０５の処理は、最後のパケット番号のパケットが送信されるまで繰り返され、最後のパケット番号のパケットが送信済みと判断されると送信側からのデータ送信が終了する。なお、受信側は、パケット番号毎にパケットを正しく受信するとＡＣＫ信号を送信側へ送信する。
【００１７】
一方、Ｓ１０３において、未達（ＮＡＫ）が起きている（受信側からＡＣＫ信号を受信していない）と判断されると、次に未達（ＮＡＫ）の起きたパケットが最後のパケット番号か判断され（Ｓ１０６）、最後のパケット番号ではない場合には、未達（ＮＡＫ）が起きたパケット番号から最後のパケット番号の一つ前まで各パケットのデータ量が、最初に設定されている各パケットのデータ量よりも小さく分割される（Ｓ１０７）。例えば、図４に示すように、パケット番号４のパケット（データ量２５６バイト）で未達（ＮＡＫ）が起きた場合、未達（ＮＡＫ）の起きたパケット番号４から最後の一つ前のパケット番号のパケットまで、データ量が小さく分割される。なお、図示の例では、未達（ＮＡＫ）の起きたパケット番号から最後のパケット番号の二つ前のパケットまでは３２バイトに分割され、最後のパケット番号の一つ前のパケットについては３１バイトに分割されている。
【００１８】
データ量が小さく分割されたパケットについて、前記未達（ＮＡＫ）の起きたパケット番号から順に送信が再開され（Ｓ１０８）、また、送信毎に受信側から未達（ＮＡＫ）が起きたか（ＡＣＫ信号を受信していないか）判断される（Ｓ１０９）。未達（ＮＡＫ）が起きていない（受信側からＡＣＫ信号を受信している）場合には、最後の一つ前のパケット番号のパケットが送信済みか判断され（Ｓ１１０）、送信済みではない場合、パケット番号に１加算され（Ｓ１１１）、加算後のパケット番号のパケットが送信される（Ｓ１０８）。前記Ｓ１０８〜Ｓ１１１は、最後の一つ前のパケット番号のパケットが送信済みとなるまで繰り返される。また、前記Ｓ１０９で未達（ＮＡＫ）が起きている（受信側からＡＣＫ信号を受信していない）場合には、未達（ＮＡＫ）が起きたパケット番号のパケットから再度送信（Ｓ１０８）が開始される。
【００１９】
Ｓ１１０で最後のパケット番号の一つ前のパケットを送信済みと判断された場合、あるいは前記Ｓ１０６で未達（ＮＡＫ）の起きたパケットが最後のパケット番号であると判断された場合には、最後のパケット番号のパケット（１バイト）が送信され（Ｓ１１２）、次いで未達（ＮＡＫ）が起きたか（受信側からＡＣＫ信号を受信していないか）判断され（Ｓ１１３）、未達（ＮＡＫ）が起きている場合には、未達の起きた最後のパケット番号のパケット（１バイト）について再送が行われる（Ｓ１１２）。図５には、最後のパケット番号で未達（ＮＡＫ）が起きた場合の各パケットのデータ量を示す。一方、Ｓ１１３で未達（ＮＡＫ）が起きていないと判断されると、送信側からのデータ通信が終了する。
【００２０】
このように、本発明によれば、あらかじめ最後のパケット番号のパケットについては、データ量が１バイトと最小単位に設定されているため、最後のパケット番号のパケットでは通信障害による未達を生じにくく、また、未達が発生した場合には、最後のデータ番号のパケットのみをそのまま再送すればよい。しかも、あらかじめ全パケットのデータ量を１バイトと小さくするものではなく、未達の起きたパケット番号から最後のパケット番号の一つ前までのパケットについてデータを小さく分割して送信するため、効率よくデータを送信することができる。
【００２１】
なお、前記実施例では、未達が起きた場合には、未達の起きたパケットについて正常に送信されるまで繰り返して再送が行われるが、再送を繰り返す最大時間を設けたり、再送繰り返しの最大回数を設けたりして、その繰り返し最大時間や繰り返し最大回数を超えた場合にはタイムアウトとしてエラー報知をするようにしてもよい。
【００２２】
また、前記実施例では、未達時に２５６バイトから３２バイトへ分割する例を示したが、本発明は前記の例に限られるものではなく、最初のデータ量および分割後のデータ量を他の値としてもよい。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施例に係るパケット通信方法における送信側のフローチャートである。
【図２】パケットの構成の一例を示す図である。
【図３】同実施例における各パケットのデータ量を示す図である。
【図４】同実施例において途中で未達が起きた場合の各パケットのデータ量を示す図である。
【図５】同実施例において最後のパケット番号で未達が起きた場合の各パケットのデータ量を示す図である。
【図６】未達が起きたパケット番号以降のパケットについてデータ量を小さくする場合の各パケットのデータ量を示す図である。
【図７】最後のパケット番号で未達が起きた場合の再送時における各パケットのデータ量を示す図である。
【図８】最後のパケット番号で未達が起きた場合の再送繰り返しによる通信エラーの状態を示す図である。
【符号の説明】
【００２４】
１０  パケット
【図１】
2008219323.tif 000003
【図２】
2008219323.tif 000004
【図３】
2008219323.tif 000005
【図４】
2008219323.tif 000006
【図５】
2008219323.tif 000007
【図６】
2008219323.tif 000008
【図７】
2008219323.tif 000009
【図８】
2008219323.tif 000010