JP2004040692A - Packet retransmission method, packet retransmission device, and program - Google Patents
Packet retransmission method, packet retransmission device, and program Download PDFInfo
- Publication number
- JP2004040692A JP2004040692A JP2002198315A JP2002198315A JP2004040692A JP 2004040692 A JP2004040692 A JP 2004040692A JP 2002198315 A JP2002198315 A JP 2002198315A JP 2002198315 A JP2002198315 A JP 2002198315A JP 2004040692 A JP2004040692 A JP 2004040692A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- retransmissions
- acknowledgment
- retransmission
- returned
- 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
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】肯定応答が送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合には、パケットの転送処理を終了せずに転送を継続する。
【解決手段】送信局は、パケット1を送信する際、たとえば、J回の再送動作で受信局から肯定応答が返された場合は、その後のパケット2の送信の際に、たとえ、肯定応答も否定応答も返されなかった場合であっても、上記のJ回の再送動作の完了をもって肯定応答が返されたものとみなし、次順のパケット3を送信する。
【選択図】 図1[PROBLEMS] Even if an acknowledgment cannot be received by a transmitting station, if the original transfer packet is deemed to be correctly received by the receiving station, the transfer is continued without terminating the packet transfer processing. I do.
When a transmitting station transmits a packet 1, for example, when an acknowledgment is returned from the receiving station in J retransmission operations, the transmitting station transmits a packet 2 even if the acknowledgment is transmitted. Even if a negative response is not returned, it is regarded that a positive response has been returned upon completion of the J retransmission operations, and the next packet 3 is transmitted.
[Selection diagram] Fig. 1
Description
【0001】
【発明の属する技術分野】
本発明は、パケット再送方法、パケット再送装置及びプログラムに関する。詳しくは、所定の通信路を介してパケットを送信し、受信局から否定応答(NAK)が返された場合に、同じパケットを再送するパケット再送方法、パケット再送装置及びプログラムに関する。
【0002】
【従来の技術】
高レベルデータリンク制御手順(HDLC:High−level DataLink Control procedure)やインターネットプロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)などのパケット転送手順においては、受信局側でパケットのエラー検出を行い、エラーを検出した場合にデータの再送を送信局に要求する応答信号(NAK)を返し、NAKを受信した送信局側で同じパケットを再送することにより、転送路上のエラー混入を補償するようになっている。なお、パケットのことをフレームということもあるが、本明細書では説明の便宜上パケットに統一する。
【0003】
<エラーがない場合>
図11は、エラーがない場合のタイムランである。送信局は送信バッファから最初のパケット(第1パケット)を取り出し、それを受信局に送信する。受信局は所定の手順でエラー検出を行い、エラーがなければ肯定応答(ACK)を返送する。ACKを受け取った送信局は送信バッファから次順のパケット(第2パケット)を取り出し、それを受信局に送信する。受信局は上記と同様にエラー検出を行い、エラーがなければ肯定応答(ACK)を返送する。この動作を、最終パケットになるまで繰り返すことにより、肯定応答(ACK)に基づくハンドシェーク型のパケット転送を実行することができる。
【0004】
<エラーを検出した場合>
図12は、エラーを検出した場合のタイムランである。たとえば、受信局で第2パケットのエラーを検出した場合、受信局は否定応答(NAK)を返送する。NAKを受け取った送信局は送信バッファから再び同一のパケット(この場合は第2パケット)を取り出し、それを受信局に送信(再送)する。受信局は上記と同様にエラー検出を行い、エラーがなければ肯定応答(ACK)を返送し、または、再度エラーを検出した場合は否定応答(NAK)を返送する。ACKを受け取った送信局は送信バッファから次順のパケット(第3パケット)を取り出し、それを受信局に送信し、または、NAKを受け取った送信局は送信バッファから再び同一のパケット(この場合は第2パケット)を取り出し、それを受信局に送信(再送)する。この動作を、最終パケットになるまで繰り返すことにより、二つの応答(ACK/NAK)に基づくハンドシェーク型のパケット転送を実行することができる。
【0005】
ところで、電送路上のエラーは、送信局から受信局の方向(以下「下り方向」という)のみならず、その逆の方向、すなわち、受信局から送信局の方向(以下「上り方向」という)でも発生することがあり、上り方向のエラーは上記の応答信号(ACKまたはNAK)を失わせる要因となる。
【0006】
<応答信号の喪失>
図13は、応答信号(ACKまたはNAK)を喪失した場合のタイムランである。この場合、送信局は応答信号を受け取れないので、パケットの転送成功/失敗を判断できない。そこで、所定の時間が経過(タイムアウト)しても、応答信号を受け取ることができなかった場合は、転送失敗とみなし、同一のパケット(図では第2パケット)を再送するようにしている。
【0007】
図14は、以上のタイムラン(図11〜図13)を実現するための送信局側のアルゴリズムを示すフローチャートである。このアルゴリズムでは、まず、ステップS10でループ変数iに初期値“1”をセットした後、以降のループ(第1〜第3のループ)を実行する。
【0008】
<第1のループ>
このループは、ステップS11〜ステップS15から構成される。すなわち、第iパケットを送信してACKを受け取ると、再送回数変数Jを初期化(J=0)した後、iを+1してi>imax(imaxは送信パケット数;たとえば、第1パケットから第nパケットまでのn個のパケットを送信する場合は、imax=n)になるまでステップS11〜ステップS15をループする。このループによれば、肯定応答(ACK)に基づくハンドシェーク型のパケット転送(図11)を実現することができる。
【0009】
<第2のループ>
このループは、ステップS11、ステップS12、ステップS16およびステップS19から構成される。すなわち、第iパケットを送信してNAKを受け取ると、iを更新せずに、第iパケットを送信(再送)する。なお、このループでは第iパケットを再送する前に、ステップS19で所定のエラー処理(応答信号エラー処理)を実行するが、この応答信号エラー処理については後述する。このループによれば、上記の第1のループとの組み合わせにより、二つの応答(ACK/NAK)に基づくハンドシェーク型のパケット転送(図12)を実現することができる。
【0010】
<第3のループ>
このループは、ステップS11、ステップS12、ステップS16、ステップS17、ステップS18およびステップS19から構成される。すなわち、第iパケットを送信して、いずれの応答信号(ACK、NAKも)も受け取れなかった場合は、所定の時間が経過(タイムアウト)するまで応答信号を待ち、タイムアウトになると、所定のエラー処理(「タイムアウトエラー処理A」と「応答信号エラー処理」)を実行する。
【0011】
図15は、タイムアウトエラー処理Aのアルゴリズムである。このアルゴリズムでは、まず、ステップS18aでタイムアウトエラーカウント(TimeErrCT)を+1した後、ステップS18bでTimeErrCTが所定の上限回数に達しているか否かを判定する。そして、達していない場合は、次段のステップ19の「応答信号エラー処理」を実行する一方、達している場合は、ステップS18cで所要のエラー処理(たとえばユーザへの告知等)を行った後、パケットの転送処理を終了(エラー発生に伴う異常終了)する。
【0012】
図16は、応答信号エラー処理のアルゴリズムである。このアルゴリズムでは、まず、ステップS19aでJを+1した後、ステップS19bでJが所定の再送上限回数に達しているか否かを判定する。そして、達していない場合は、図14のアルゴリズムに復帰して第iパケットの再送を行う一方、達している場合は、ステップS19cで所要のエラー処理(たとえばユーザへの告知等)を行った後、パケットの転送処理を終了(エラー発生に伴う異常終了)する。
【0013】
図14の第3のループ(ステップS11、ステップS12、ステップS16、ステップS17、ステップS18、ステップS19)において、説明を簡単にするために、「タイムアウトエラー処理A」と「応答信号エラー処理」がない場合を考える。この場合、タイムアウト(ステップS17の判定結果が“YES”)になると、第iパケットを送信(再送)する。したがって、先の図13の例、すなわち、所定の時間が経過(タイムアウト)しても、応答信号を受け取ることができなかった場合は、転送失敗とみなし、同一のパケット(図では第2パケット)を再送するという動作を行うことができる。
【0014】
【発明が解決しようとする課題】
しかしながら、上記従来のパケット再送方法にあっては、以下の問題点があった。
【0015】
今、本来の転送パケット(下り方向の転送パケット)が受信局で正しく受信されているものとする。このとき、何らかの原因で受信局からの肯定応答(ACK)が送信局に届かなかったものとする。この場合、上記従来のパケット再送方法にあっては、受信局では正しく受信できているのにもかかわらず、第3のループによって同一のパケットの再送が行われ、受信局では無駄なパケットを受信することになる。また、更にTimeErrCTの所定の上限回数回または再送上限回数を超えて再送を試みても肯定応答(ACK)を受け取ることができなかった場合は、「タイムアウトエラー処理A」(図15参照)または「応答信号エラー処理」(図16参照)でパケットの転送処理を終了(エラー発生に伴う異常終了)することになる。
【0016】
すなわち、上記従来のパケット再送方法にあっては、本来の転送パケットが受信局で正しく受信されているにも係わらず、同一のパケットの再送を繰り返すうえ、更にはTimeErrCTの所定の上限回数回または所定の再送上限回数を超えても肯定応答が送信局側で受け取れないことをもって、パケットの転送処理を異常終了しているため、無駄な再送時間が発生して送信レートが低下し、更にはパケット転送の不本意な中断を引き起こす場合があるという問題点があった。
【0017】
そこで、本発明が解決しようとする課題は、肯定応答が送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合には、パケットの転送処理を終了せずに転送を継続することとし、これにより、無駄なパケットの再送処理を行わず送信時間の短縮が図れ、また、パケット転送の不本意な中断の回避をも図れ得ることを目的とする。
【0018】
【課題を解決するための手段】
本発明は、所定の通信路を介してパケットを送信し、受信局から肯定応答が返された場合は次順のパケットを送信する一方、否定応答が返された場合は同じパケットを再送するパケット再送方法において、
肯定応答が得られるまでに同一のパケットを再送した回数を把握する工程と、
複数のパケットに対する前記再送回数を用いて統計値を算出する工程と、
前記統計値を用いて再送上限回数を算出する工程と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する工程と
を含むことを特徴とするものである。
【0019】
この発明では、図1にその原理説明図を示すように、パケット1を送信する際、たとえば、J回の再送動作で受信局から肯定応答が返された場合は、その後のパケット2の送信の際に、たとえ、肯定応答も否定応答も返されなかった場合であっても、たとえば、上記のJ回の再送動作の完了をもって肯定応答が返されたものとみなしたり、肯定応答が返されたものとみなしても良いと考えられる再送回数を統計処理などを用いて算出した値から設定し、その設定値の再送動作の完了をもって肯定応答が返されたものとみなし、次順のパケット3が送信される。
【0020】
したがって、肯定/否定のいずれの応答も送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合(たとえば、上記のJ回の再送完了時)には、無駄なパケットの再送信を省くことができ、また、パケットの転送処理を終了せずに転送を継続することができるので、これにより、送信時間の短縮やパケット転送の不本意な中断の回避を図ることができる。
【0021】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、以下の説明における様々な細部の特定ないし実例および数値や文字列その他の記号の例示は、本発明の思想を明瞭にするための、あくまでも参考であって、それらのすべてまたは一部によって本発明の思想が限定されないことは明らかである。また、周知の手法、周知の手順、周知のアーキテクチャおよび周知の回路構成等(以下「周知事項」)についてはその細部にわたる説明を避けるが、これも説明を簡潔にするためであって、これら周知事項のすべてまたは一部を意図的に排除するものではない。かかる周知事項は本発明の出願時点で当業者の知り得るところであるので、以下の説明に当然含まれている。
【0022】
図2は、本実施の形態に係わるパケット通信システムの概略構成図である。このシステムは、有線または無線の通信路10を介して相互に接続された送信局20(パケット再送装置)と受信局30とから構成されている。
【0023】
送信局20は、アプリケーション部20a、送信バッファ20b、パケット送信部20c、応答信号受信部20d及び統計情報記憶部20eを備え、また、受信局30は、エラー検出部30a、応答信号送信部30b、受信バッファ30c及びアプリケーション部30dを備える。なお、図示の例は、送信局20から受信局30へパケット送信を行うシステムであるが、これは説明の便宜である。実際は、それぞれの局は両局間で相互にパケットのやりとりを行うことができる送受兼用局であり、送信局20は受信局30の構成を含み、受信局30は送信局20の構成を含む。
【0024】
なお、送信局20や受信局30を構成する機器としては、有線用/無線用の別を問わない。たとえば、無線通信用のアクセスポイント、無線通信対応のPCカード、無線通信機能内蔵のコンピュータや携帯型の無線通信機器などであってもよく、また、その無線通信方式としては、たとえば、IEEE802.11bなどの無線LAN規格を用いるようにしてもよい。
【0025】
以下、説明を簡単化するために、図示のとおり、一方を送信局20とし、他方を受信局30として、送信局20から受信局30へ所望のパケット通信を行うものとする。
【0026】
送信局20は、アプリケーション部20aで作られた送信データを送信バッファ20bに格納し、その送信データを細切れにしてパケット送信部20cから通信路10経由で受信局30へ送信する。細切れにされた送信データの1単位をパケット(またはフレーム)という。パケット送信部20cは、送信バッファ20bから順番にパケットを取り出して送信する。
【0027】
受信局30は、通信路10経由でパケットを受信すると、エラー検出部30aでエラー検出を行い、エラーが検出されなかった場合は、応答信号送信部30bから通信路10経由で送信局20に対して肯定応答(ACK)を返すと共に、そのパケットを受信バッファ30cに格納してアプリケーション部30dからの利用を可能にする一方、エラー検出部30aでエラーが検出された場合は、応答信号送信部30bから通信路10経由で送信局20に対して否定応答(NAK)を返す。
【0028】
送信局20は、受信局30からの応答(ACK/NAK)を応答信号受信部20dで受け取り、その応答が肯定応答(ACK)であった場合は、送信バッファ20bから次順のパケットを取り出して受信局30へ送信し、一方、否定応答(NAK)であった場合は、送信バッファ20bから同一のパケットを取り出して受信局30へ送信(再送)する。
【0029】
以上のとおり、本実施の形態の送信局20は、送信バッファ20bから取り出したパケットを受信局30に送信し、送信局30から肯定応答(ACK)が返された場合は、送信バッファ20bから次順のパケットを取り出して送信する一方、受信局30から否定応答(NAK)が返された場合は、送信バッファ20bから同一のパケットを取り出して再送する点で冒頭で説明した従来技術と一致し、以下の点で相違する。
【0030】
図3(a)は、送信局20のパケット送信部20cの機能概念図である。この図に示すように、パケット送信部20cは二つの処理部(処理A部20c_1、処理B部20c_2)を備えている。処理A部20c_1は後述の統計情報収集を兼ねたパケット送信を行い、処理B部20c_2はその統計情報を利用したパケット送信を行う。これら二つの処理部は、たとえば、次の順番で動作する。
【0031】
図3(b)は、送信バッファ20bに格納された送信データの模式図である。この送信データ40は、全部でm個のパケットから構成されており、第1パケットを“P1”、第2パケットを“P2”、・・・・、第nパケットを“Pn”、第n+1パケットを“Pn+1”、・・・・、第m−1パケットを“Pm−1”、第mパケットを“Pm”と称することにすると、処理A部20c_1はP1〜Pnの送信を担当し、処理B部20c_2はPn+1〜Pmの送信を担当する。
【0032】
すなわち、mパケットのうちの第1パケット(P1)から第nパケット(Pn)までの送信は、パケット送信部20cの処理A部20c_1によって行われ、残りのパケット(Pn+1〜Pm)の送信は、パケット送信部20cの処理B部20c_2によって行われる。
【0033】
ここで、上記の“統計情報”について説明する。統計情報とは、要するに、パケット送信時に何回の再送で肯定応答が返されたかを把握するための情報である。
【0034】
図4は、統計情報の具体例を示す図である。この図において、統計情報50は、トータル送信パケット数(TP)を“90322”個としたときの例である。個数は便宜値である。
【0035】
再送回数(J)は、TPの送信を完了するまでの間に発生した全ての再送動作の回数列である。J=0は再送動作なし、J=1は再送回数1、J=2は再送回数2、・・・・、J=6は再送回数6である。各再送回数ごとの送信パケット数(MP)は、その再送回数で送信を完了した送信パケットの数(肯定応答が返された送信パケットの数)であり、図示の例では、J=0で“85066”個、J=1で“4358”個、J=2で“779”個、J=3で“75”個、J=4で“30”個、J=5で“9”個、J=6で“5”個であるものとする。
【0036】
すなわち、パケット送信後に直ち(J=0)に肯定応答が返された回数が“85066”であり、1回の再送動作(J=1)で肯定応答が返された回数が“4358”であり、2回の再送動作(J=2)で肯定応答が返された回数が“779”であり、3回の再送動作(J=3)で肯定応答が返された回数が“75”であり、4回の再送動作(J=4)で肯定応答が返された回数が“30”であり、5回の再送動作(J=5)で肯定応答が返された回数が“9”であり、6回の再送動作(J=6)で肯定応答が返された回数が“5”である。
【0037】
累計送信パケット数(ΣMP)は、各再送回ごとの送信パケット数(MP)を加算したものである。J=0では“85066”、J=1では“85066+4358=99424”、J=2では“85066+4358+779=90203”、J=3では“85066+4358+779+75=90278”、J=4では“85066+4358+779+75+30=90308”、J=5では“85066+4358+779+75+30+9=90317”、J=6では“85066+4358+779+75+30+9+5=90322”である。
【0038】
さて、この図において、最大の再送回数(J=6)のときの累計送信パケット数(ΣMP)と、トータル送信パケット数(TP)は一致(“90322”個)しており、このことから、“90322”個のパケットを全て(100%)送信し終えるために必要な最大の再送回数は“6”回であることが認められる。
【0039】
たとえば、各再送回ごとの送信完了割合(N)を次式▲1▼に従って求めると、
N〔%〕=(ΣMP/TP)×100 ・・・・▲1▼
J=0では“94.18”%、J=1では“99.01”%、J=2では“99.87”%、J=3では“99.95”%、J=4では“99.98”%、J=5では“99.99”%、J=6では“100”%となる。
【0040】
したがって、この統計情報50を利用することにより、同一の電送品質の通信路10を用いてパケット通信を行った際に、たとえ、受信局30から応答(ACK/NAK)が返らなかった場合においても、少なくとも、統計情報50の最大の再送回数(J=6)を実行した後であれば、100%の送信完了割合(N)が得られたものとみなすことができ、異常終了することなく次順のパケット送信を継続することができる。
【0041】
本実施の形態は、かかる思想に基づいてなされたものであり、処理A部20c_1でパケット送信を行った際に統計情報50を収集し、その後、処理B部20c_2でパケット送信を行う際に、上記の統計情報50で得られた最大の再送回数(J=6)を越えてもなお、受信局30から応答(ACK/NAK)が得られなかった場合は、受信局30で正常にパケットを受信したものとみなし、従来技術のように異常終了処理を行うことなく、次順のパケット送信を継続することとしたものである。これにより、パケット転送の不本意な中断の回避を図ることができる。
【0042】
以下、本実施の形態のポイントである統計情報50の収集及びその統計情報50を利用したパケット送信のアルゴリズムについて、具体的に説明する。
【0043】
<処理A部20c_1の詳細動作>
図5は、処理A部20c_1の詳細動作(アルゴリズム)を示すフローチャートである。このアルゴリズムでは、まず、ステップS21で再送回数変数Jとループ変数iを初期化(J=0,i=1)した後、以降のループ(第1〜第3のループ)を実行する。
【0044】
<第1のループ>
このループは、ステップS22〜ステップS28から構成される。すなわち、第iパケットを送信してACKを受け取ると、式「MP(J)=MP(J)+1」を演算する(ステップS24)。ここに、J=0であるから、MP(J)はMP0となり、この段階のMP0の値は初期値“0”であるから、MP0は上記の演算により“1”となる。MP0=1は、再送なし(J=0)で正常に受信局30に受信されたパケットの数“1”を表す。
【0045】
次に、MP0のΣMP0を演算する(ステップS25)。この段階ではMP0=1であるので、ΣMP0も1になる。次に、Jを初期化し(ステップS26)、iを+1して(ステップS27)、i>imax(imaxは送信パケット数;たとえば、第1パケットから第nパケットまでのn個のパケットを送信する場合は、imax=n)になるまでステップS22〜ステップS28をループする。
【0046】
このループによれば、再送なしの肯定応答(ACK)に基づくハンドシェーク型のパケット転送を実現することができると共に、MP0に再送なし(J=0)で転送されたパケット数をセットすることができる。たとえば、先の統計情報50では、MP0は“85066”であるので、再送なし(J=0)で転送されたパケット数が最終的に“85066”個であったことが分かる。
【0047】
<第2のループ>
このループは、ステップS22、ステップS23、ステップS30及びステップS31から構成される。すなわち、第iパケットを送信してNAKを受け取ると、応答信号エラー処理を実行する(ステップS32)。この応答信号エラー処理は、先に説明した図16のものと同じ処理内容である。図16において、まず、ステップS19aでJを+1した後、ステップS19bでJが所定の再送上限回数(この「再送上限回数」は、統計データを取得できるように考慮された十分大きな値が設定されている。)に達しているか否かを判定する。そして、達していない場合は、図5のアルゴリズムに復帰して第iパケットの再送(ステップS22)を行う一方、達している場合は、ステップS19cで所要のエラー処理(たとえばユーザへの告知等)を行った後、パケットの転送処理を終了(エラー発生に伴う異常終了)する。
【0048】
ここで、Jの値は、肯定応答(ACK)が返されるまでの否定応答(NAK)の累計数を表す。たとえば、1回の否定応答(NAK)の後に肯定応答(ACK)が返された場合、Jの値は“1”となる。そして、肯定応答(ACK)が返されたことによって、ステップS23の判定結果が“YES”となり、ステップS24のMP(J)及びステップS25のΣMP(J)にJ=1をセットして、それぞれMP1及びΣMP1になる。
【0049】
したがって、この場合は、MP1にJ=1(再送回数1)で転送されたパケット数がセットされる。たとえば、先の統計情報50では、MP1は“4358”であるので、再送回数1(J=1)で転送されたパケット数が最終的に“4358”個であったことが分かる。
【0050】
また、2回の否定応答(NAK)の後に肯定応答(ACK)が返された場合、Jの値は“2”となる。そして、肯定応答(ACK)が返されたことによって、ステップS23の判定結果が“YES”となり、ステップS24のMP(J)及びステップS25のΣMP(J)にJ=2をセットして、それぞれMP2及びΣMP2になる。
【0051】
したがって、この場合は、MP2にJ=2(再送回数2)で転送されたパケット数がセットされる。たとえば、先の統計情報50では、MP2は“779”であるので、再送回数2(J=2)で転送されたパケット数が最終的に“779”個であったことが分かる。
【0052】
また、3回の否定応答(NAK)の後に肯定応答(ACK)が返された場合、Jの値は“3”となり、肯定応答(ACK)が返されたことによって、ステップS23の判定結果が“YES”となり、ステップS24のMP(J)及びステップS25のΣMP(J)にJ=3をセットして、それぞれMP3及びΣMP3になる。
【0053】
したがって、この場合は、MP3にJ=3(再送回数3)で転送されたパケット数がセットされる。たとえば、先の統計情報50では、MP3は“75”であるので、再送回数3(J=3)で転送されたパケット数が最終的に“75”個であったことが分かる。
【0054】
また、4回の否定応答(NAK)の後に肯定応答(ACK)が返された場合、Jの値は“4”となり、肯定応答(ACK)が返されたことによって、ステップS23の判定結果が“YES”となり、ステップS24のMP(J)及びステップS25のΣMP(J)にJ=4をセットして、それぞれMP4及びΣMP4になる。
【0055】
したがって、この場合は、MP4にJ=4(再送回数4)で転送されたパケット数がセットされる。たとえば、先の統計情報50では、MP4は“30”であるので、再送回数4(J=4)で転送されたパケット数が最終的に“30”個であったことが分かる。
【0056】
また、5回の否定応答(NAK)の後に肯定応答(ACK)が返された場合、Jの値は“5”となり、肯定応答(ACK)が返されたことによって、ステップS23の判定結果が“YES”となり、ステップS24のMP(J)及びステップS25のΣMP(J)にJ=5をセットして、それぞれMP5及びΣMP5になる。
【0057】
したがって、この場合は、MP5にJ=5(再送回数5)で転送されたパケット数がセットされる。たとえば、先の統計情報50では、MP5は“9”であるので、再送回数5(J=5)で転送されたパケット数が最終的に“9”個であったことが分かる。
【0058】
また、6回の否定応答(NAK)の後に肯定応答(ACK)が返された場合、Jの値は“6”となり、肯定応答(ACK)が返されたことによって、ステップS23の判定結果が“YES”となり、ステップS24のMP(J)及びステップS25のΣMP(J)にJ=6をセットして、それぞれMP6及びΣMP6になる。
【0059】
したがって、この場合は、MP6にJ=6(再送回数6)で転送されたパケット数がセットされる。たとえば、先の統計情報50では、MP6は“5”であるので、再送回数6(J=6)で転送されたパケット数が最終的に“5”個であったことが分かる。
【0060】
このようにして、パケット送信を行いながら統計情報50を収集することができる。なお、統計情報50の累計送信パケット総数ΣMP(J)は、ステップS25において演算される。たとえば、J=0のときのΣMP0はMP0と同値であり、また、J=1のときのΣMP1はMP0+MP1で与えられる。同様に、J=2のときのΣMP2はMP0+MP1+MP2で与えられ、J=3のときのΣMP3はMP0+MP1+MP2+MP3で与えられ、J=4のときのΣMP4はMP0+MP1+MP2+MP3+MP4で与えられ、J=5のときのΣMP5はMP0+MP1+MP2+MP3+MP4+MP5で与えられ、J=6のときのΣMP6はMP0+MP1+MP2+MP3+MP4+MP5+MP6で与えられる。
【0061】
<第3のループ>
このループは、ステップS22、ステップS23、ステップS30、ステップS31、ステップS32及びステップS33から構成される。すなわち、第iパケットを送信して、いずれの応答信号(ACK、NAKも)も受け取れなかった場合は、ステップ33で所定の時間が経過(タイムアウト)するまで応答信号を待ち、タイムアウトになると、所定のエラー処理(ステップS33)を実行する。ステップS33のエラー処理は、図15の「タイムアウトエラー処理A」と同一のものであり、したがって、この第3のループは、冒頭で説明した第3のループと同じ動作をする。
【0062】
以上説明した処理A部20c_1の詳細動作(アルゴリズム)は、肯定応答(ACK)や否定応答(NAK)に基づくハンドシェーク型のパケット転送を実現する点で先に説明した従来技術のアルゴリズム(図14)と共通し、統計情報50を収集する点で相違する。
【0063】
<処理B部20c_2の詳細動作>
図6は、処理B部20c_2の詳細動作(アルゴリズム)を示すフローチャートである。このアルゴリズムでは、まず、「タイムアウト再送上限回数設定処理」(ステップS29a)を実行する。
【0064】
図7は、「タイムアウト再送上限回数設定処理」、詳しくは、所定の時間が経過しても応答(ACK/NAK)が得られない場合に、受信局が正しくパケットを受信できたとみなす再送回数(タイムアウト再送上限回数)を設定処理するための詳細動作(アルゴリズム)を示すフローチャートである。このフローチャートでは、再送回数変数Jを初期化(ステップS29a_1)した後、図4の統計情報50を元に、前式▲1▼に従って、再送回数0(J=0)のときの送信完了割合(N)を求める(ステップS29a_2)。すなわち、図4の統計情報50において、J=0のときのΣMP0は“85066”であり、TPは“90322”であるから、前式▲1▼より、J=0のときのNは“94.18”〔%〕となる。
【0065】
次いで、式「N≧100」を評価し(ステップS29a_3)、その評価結果がTrue(真値)となるまで、Jを+1して(ステップS29a_4)、上記のN演算(ステップS29a_2)と式の評価(ステップS29a_3)を繰り返す。
【0066】
すなわち、図4の統計情報50において、J=1(再送回数1)のときのΣMP1は“99424”であるから、前式▲1▼より、J=1のときのNは“99.01”〔%〕となる。同様に、J=2(再送回数2)のときのΣMP2は“90203”であるから、Nは“99.87”〔%〕となり、J=3(再送回数3)のときのΣMP3は“90278”であるから、Nは“99.95”〔%〕となり、J=4(再送回数4)のときのΣMP4は“90308”であるから、Nは“99.98”〔%〕となり、J=5(再送回数5)のときのΣMP5は“90317”であるから、Nは“99.99”〔%〕となり、J=6(再送回数6)のときのΣMP6は“90322”であるから、Nは“100”〔%〕となる。
【0067】
したがって、上記の式の評価(ステップS29a_3)結果は、J=6の段階でTrueとなるので、この時点でループを抜け出し、所定のタイムアウト再送上限回数(以下「TimeOutMax」という)にそのときのJの値(“6”)をセット(ステップS29a_5)した後、図6のアルゴリズムにリターンする。
【0068】
なお、上述の場合では、N≧100としたが、他の数字、たとえば、N≧99.97としてもよい。つまり、送信完了割合が“99.97”〔%〕を超える再送回数をもって、受信局が正しく受信できたとみなし、TimeOutMaxとしてJの値(“4”)をセットするようにしてもよい。この場合、再送回数(J=4)を実行した後であれば、送信が成功したとみなし、次順のパケットを送信することになる。また、仮に受信局でパケットを正しく受信できていないときに次順のパケットを受信してしまっても、受信局が受信できていないパケットの再送を要求すればよい。
【0069】
図6のアルゴリズムでは、次に、ループ変数iにn+1の値をセット(ステップS29b)した後、以降のループ(第1〜第3のループ)を実行する。ここに、nの値は、図3(b)の送信データ40におけるnパケット目を意味し、言い換えれば、処理A部20c_1で送信を完了した最終パケットの番号である。
【0070】
<第1のループ>
このループは、図6のステップS29c〜ステップS29fから構成される。すなわち、第iパケットを送信してACKを受け取ると、iを+1してi>m(mは図3(b)の送信データ40におけるmパケット目)になるまでステップS29c〜ステップS29fをループする。このループによれば、肯定応答(ACK)に基づくハンドシェーク型のパケット転送を実現することができる。
【0071】
<第2のループ>
このループは、図6のステップS29c、ステップS29d、ステップS29gおよびステップS29jから構成される。すなわち、第iパケットを送信してNAKを受け取ると、応答信号エラー処理を実行する(ステップS29j)。この応答信号エラー処理は、先に説明した図16のものと同じ処理内容である。図16において、まず、ステップS19aでJを+1した後、ステップS19bでJが所定の再送上限回数(この「再送上限回数」は、タイムアウト再送上限回数(TimeOutMax)より大きな値が設定されている。)に達しているか否かを判定する。そして、達していない場合は、図6のアルゴリズムに復帰して第iパケットの再送(ステップS29c)を行う一方、達している場合は、ステップS19cで所要のエラー処理(たとえばユーザへの告知等)を行った後、パケットの転送処理を終了(エラー発生に伴う異常終了)する。このループによれば、上記の第1のループとの組み合わせにより、二つの応答(ACK/NAK)に基づくハンドシェーク型のパケット転送を実現することができる。
【0072】
<第3のループ>
このループは、図6のステップS29c、ステップS29d、ステップS29g、ステップS29h、ステップS29iおよびステップS29jから構成される。すなわち、第iパケットを送信して、いずれの応答信号(ACK、NAKも)も受け取れなかった場合は、所定の時間が経過(タイムアウト)するまで応答信号を待ち、タイムアウトになると、所定のエラー処理(「タイムアウトエラー処理B」と「応答信号エラー処理」)を実行する。
【0073】
<タイムアウトエラー処理B>
図8は、タイムアウトエラー処理Bの詳細動作(アルゴリズム)を示すフローチャートである。このアルゴリズムでは、まず、ステップS29i_1でタイムアウトエラーカウント(TimeErrCT)を+1した後、ステップS29i_2でTimeErrCTがタイムアウト再送上限回数(TimeOutMax)に達しているか否かを判定する。
【0074】
そして、達していない場合は、図6のアルゴリズムに復帰して第iパケットの再送(ステップS29c)を行う一方、達している場合は、パケット送信が成功しているものとみなし、図6のアルゴリズムのACK検出ステップ後(ステップS29dの“YES”判定後)にジャンプする。
【0075】
図8の「タイムアウトエラー処理B」は、冒頭で説明した図15の「タイムアウトエラー処理A」に類似するものであるが、両者を比較すると、「タイムアウトエラー処理A」が固定的な“上限回数”を用いるのに対し、本実施の形態の「タイムアウトエラー処理B」は、可変的な上限回数、すなわち、処理A部20c_1で収集した統計情報50から算出されたタイムアウト上限回数“TimeOutMax”を用いている点で相違する。
【0076】
そして、この相違点により、たとえ、受信局30から肯定応答も否定応答も返らない場合であっても、再送回数が、処理A部20c_1で収集した統計情報50から算出されたタイムアウト再送上限回数“TimeOutMax”の値(図4の例ではJ=6)に達した時をもって、受信局30に正常に受信されたものとみなし、その後のパケット送信を継続して実行することができる。
【0077】
したがって、本実施の形態のアルゴリズムによれば、受信局30から肯定応答も否定応答も返らない場合であっても、無駄なパケットの再送を行わず、送信時間の短縮を図ることができる。また、パケット送信を異常終了することがなく、パケット転送の不本意な中断の回避を図ることができ、特に電送品質の悪い通信路を使用する無線パケット通信システムなどに用いて好適なものとすることができる。
【0078】
<他の統計情報の例>
図9及び図10は、他の統計情報を示す図である。これらの統計情報60、70も、そのトータル送信パケット数(TP)は、前記の統計情報50と同じ“90322”個である。
【0079】
図9に示す統計情報60において、J=0は再送動作なし、J=1は再送回数1、J=2は再送回数2、・・・・、J=8は再送回数8である。各再送回数ごとの送信パケット数(MP)は、その再送回数で送信を完了した送信パケットの数(肯定応答が返された送信パケットの数)であり、図示の例では、J=0で“79112”個、J=1で“7816”個、J=2で“2813”個、J=3で“354”個、J=4で“110”個、J=5で“64”個、J=6で“37”、J=7で“9”個、J=8で“7”個であるものとする。
【0080】
すなわち、パケット送信後に直ち(J=0)に肯定応答が返された回数が“79112”であり、1回の再送動作(J=1)で肯定応答が返された回数が“7816”であり、2回の再送動作(J=2)で肯定応答が返された回数が“2813”であり、3回の再送動作(J=3)で肯定応答が返された回数が“354”であり、4回の再送動作(J=4)で肯定応答が返された回数が“110”であり、5回の再送動作(J=5)で肯定応答が返された回数が“64”であり、6回の再送動作(J=6)で肯定応答が返された回数が“37”であり、7回の再送動作(J=7)で肯定応答が返された回数が“9”であり、8回の再送動作(J=8)で肯定応答が返された回数が“7”である。
【0081】
累計送信パケット数(ΣMP)は、各再送回ごとの送信パケット数(MP)を加算したものである。J=0では“79112”、J=1では“79112+7816=86928”、J=2では“79112+7816+2813=89741”、J=3では“79112+7816+2813+354=90095”、J=4では“79112+7816+2813+354+110=90205”、J=5では“79112+7816+2813+354+110+64=90269”、J=6では“79112+7816+2813+354+110+64+37=90306”、J=7では“79112+7816+2813+354+110+64+37+9=90315”、J=8では“79112+7816+2813+354+110+64+37+9+7=90322”である。
【0082】
この図において、最大の再送回数(J=8)のときの累計送信パケット数(ΣMP)と、トータル送信パケット数(TP)は一致(“90322”個)しており、このことから、“90322”個のパケットを全て送信し終えるために必要な最大の再送回数は“8”回であることが認められる。
【0083】
たとえば、各再送回ごとの送信完了割合(N)を前式▲1▼に従って求めると、J=0では“87.59”%、J=1では“96.24”%、J=2では“99.36”%、J=3では“99.75”%、J=4では“99.87”%、J=5では“99.94”%、J=6では“99.98”%、J=7では“99.99”%、J=8では“100”%となる。
【0084】
したがって、この統計情報60を利用することによっても、同一の電送品質の通信路10を用いてパケット通信を行った際に、たとえ、受信局30から応答(ACK/NAK)が返らなかった場合においても、少なくとも、統計情報60の最大の再送回数(J=8)を実行した後であれば、100%の送信完了割合(N)が得られたものとみなすことができ、異常終了することなく次順のパケット送信を継続することができる。
【0085】
なお、タイムアウト再送上限回数設定処理において、N≧99.90とした場合、統計情報60では、タイムアウト再送上限回数(TimeOutMax)の値としてJ=5となるので、再送回数(J=5)を実行した後であれば、送信が成功したとみなし、次順のパケットを送信することになる。
【0086】
または、図10に示す統計情報70において、J=0は再送動作なし、J=1は再送回数1、J=2は再送回数2、・・・・、J=10は再送回数10である。各再送回数ごとの送信パケット数(MP)は、その再送回数で送信を完了した送信パケットの数(肯定応答が返された送信パケットの数)であり、図示の例では、J=0で“77530”個、J=1で“6561”個、J=2で“3891”個、J=3で“1422”個、J=4で“386”個、J=5で“287”個、J=6で“151”個、J=7で“49”個、J=8で“28”個、J=9で“11”個、J=10で“6”個であるものとする。
【0087】
すなわち、パケット送信後に直ち(J=0)に肯定応答が返された回数が“77530”であり、1回の再送動作(J=1)で肯定応答が返された回数が“6561”であり、2回の再送動作(J=2)で肯定応答が返された回数が“3891”であり、3回の再送動作(J=3)で肯定応答が返された回数が“1422”であり、4回の再送動作(J=4)で肯定応答が返された回数が“386”であり、5回の再送動作(J=5)で肯定応答が返された回数が“287”であり、6回の再送動作(J=6)で肯定応答が返された回数が“151”であり、7回の再送動作(J=7)で肯定応答が返された回数が“49”であり、8回の再送動作(J=8)で肯定応答が返された回数が“28”であり、9回の再送動作(J=9)で肯定応答が返された回数が“11”であり、10回の再送動作(J=10)で肯定応答が返された回数が“6”である。
【0088】
累計送信パケット数(ΣMP)は、各再送回ごとの送信パケット数(MP)を加算したものである。J=0では“77530”、J=1では“77530+6561=84091”、J=2では“77530+6561+3891=87982”、J=3では“77530+6561+3891+1422=89404”、J=4では“77530+6561+3891+1422+386=89790”、J=5では“77530+6561+3891+1422+386+287=90077”、J=6では“77530+6561+3891+1422+386+287+151=90228”、J=7では“77530+6561+3891+1422+386+287+151+49=90277”、J=8では“77530+6561+3891+1422+386+287+151+49+28=90305”、J=9では“77530+6561+3891+1422+386+287+151+49+28+11=90316”、J=10では“77530+6561+3891+1422+386+287+151+49+28+11+6=90322”である。
【0089】
この図において、最大の再送回数(J=10)のときの累計送信パケット数(ΣMP)と、トータル送信パケット数(TP)は一致(“90322”個)しており、このことから、“90322”個のパケットを全て送信し終えるために必要な最大の再送回数は“10”回であることが認められる。
【0090】
たとえば、各再送回ごとの送信完了割合(N)を前式▲1▼に従って求めると、J=0では“83.62”%、J=1では“93.10”%、J=2では“97.41”%、J=3では“98.98”%、J=4では“99.41”%、J=5では“99.73”%、J=6では“99.90”%、J=7では“99.95”%、J=8では“99.98”%、J=9では“99.99”%、J=10では“100”%となる。
【0091】
したがって、この統計情報70を利用することによっても、同一の電送品質の通信路10を用いてパケット通信を行った際に、たとえ、受信局30から応答(ACK/NAK)が返らなかった場合においても、少なくとも、統計情報70の最大の再送回数(J=10)を実行した後であれば、100%の送信完了割合(N)が得られたものとみなすことができ、異常終了することなく次順のパケット送信を継続することができる。
【0092】
なお、タイムアウト再送上限回数設定処理において、N≧99.90とした場合、統計情報70では、タイムアウト再送上限回数(TimeOutMax)の値としてJ=6となるので、再送回数(J=6)を実行した後であれば、送信が成功したとみなし、次順のパケットを送信することになる。
【0093】
以上、説明したとおり、本実施の形態によれば、処理A部20c_1で収集された統計情報が、たとえば、図4の統計情報50のようなものであれば、タイムアウト上限回数“TimeOutMax”に“6”をセットし、または、図9の統計情報60のようなものであれば、タイムアウト上限回数“TimeOutMax”に“8”をセットし、あるいは、図10の統計情報70のようなものであれば、タイムアウト上限回数“TimeOutMax”に“10”をセットする。したがって、実際のパケット送信の状況に応じて、適応的にタイムアウト上限回数“TimeOutMax”を可変設定することができ、無用な再送を回避して、パケット転送の効率改善を図ることができる。
【0094】
なお、以上の説明では、統計情報50、60または70の「最大」の再送回数(J=6、J=8またはJ=10)をタイムアウト上限回数“TimeOutMax”にセットしているが、これに限定されない。たとえば、画像のような不可逆性データを転送する場合は、多少のエラーも許容されるため、最大以外の他の再送回数をタイムアウト上限回数“TimeOutMax”にセットしてもよい。
【0095】
たとえば、図4の統計情報50において、J=3をタイムアウト上限回数“TimeOutMax”にセットした場合は、少なくとも“99.95”〔%〕の割合でデータ転送を完了することができる。ただし、この場合は、図7のステップS29a_3における比較基準値の“100”を“99.95”と読み替えるものとする。
【0096】
前記の説明では、送信データ40のP1〜Pnの送信処理を処理A部20c_1で担当し、残りのPn+1〜Pmの送信処理を処理B部20c_2で担当しているが、この態様に限らず、たとえば、一連の送信データを送信する際、最初の所定の時間だけ統計データの取得を行い、その後にその統計データを用いて、たとえば、比較基準値となる予め設定された送信完了割合を越える再送が実行された場合は、送信が成功したとみなしす送信処理を行うようにしてもよい。
【0097】
また、統計データの取得は、どのようなタイミングで行ってもよい。また、たとえば、一連の送信データを送信している最中にランダムに統計データの取得処理とその統計データに基づく送信処理とを交互に切り換えるようにしてもよい。また、更には常に統計データの取得を行い、定期的あるいは統計データに変化が認められた場合に最新の統計データを反映させて送信処理を行なうようにしてもよい。また、所定期間内に同一の受信局に送信する場合は、前回取得した統計データを用いて送信処理するようにしてもよい。
【0098】
または、通信路10の電送品質(たとえば、無線の場合であれば電波の強さやS/N比など)を検出する検出手段を設け、その検出手段の出力をモニタして電送品質が変化した場合に所定時間または所定パケット数だけ処理A部20c_1を働かせてもよい。
【0099】
また、以上の例では、統計データとして送信完了割合を求めたが、その他の統計情報であってもよく、たとえば、単位時間内で送信が成功したパケット数の割合などを用いてもよい。
また、上述の図6の例では、途中で否定応答(NAK)を受信した場合においてもTimeErrCTの回数を加算するようにしたが、タイムアウトエラーが連続して発生した場合のみTimeErrCTの回数を加算するようにしてもよい。
【0100】
また、本実施の形態の主要な機能は、マイクロコンピュータを含むハードウェア資産と、OSや各種プログラムなどのソフトウェア資産との有機的結合によって機能的に実現することができる。この場合、ハードウェア資産およびOSは汎用のものを利用できるから、本発明にとって欠くことのできない必須の事項は、実質的に、上記の各アルゴリズム(図5〜図8)を適用して設計されたプログラムに集約されているということがいえる。したがって、本発明は、かかるプログラムのすべてまたはその要部を格納した、フレキシブルディスク、光ディスク、磁気ディスク、ハードディスク、半導体メモリなどの記録媒体(それ自体が流通経路に乗るものはもちろん、ネットワーク上にあって記録内容だけを提供するものも含む)を包含するものである。
【0101】
【発明の効果】
本発明によれば、肯定/否定のいずれの応答も送信局側で受け取れない場合であっても、本来の転送パケットが受信局で正しく受信されているとみなされる場合(たとえば、J回の再送完了時;図1参照)には、パケットの転送処理を終了せずに転送を継続することができ、これにより、パケット転送の不本意な中断の回避を図ることができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本実施の形態に係わるパケット通信システムの概略構成図である。
【図3】送信局20のパケット送信部20cの機能概念図及び送信バッファ20bに格納された送信データの模式図である。
【図4】統計情報の具体例を示す図である。
【図5】処理A部20c_1の詳細動作(アルゴリズム)を示すフローチャートである。
【図6】処理B部20c_2の詳細動作(アルゴリズム)を示すフローチャートである。
【図7】タイムアウト上限回数設定処理の詳細動作(アルゴリズム)を示すフローチャートである。
【図8】タイムアウトエラー処理Bの詳細動作(アルゴリズム)を示すフローチャートである。
【図9】他の統計情報を示す図(その1)である。
【図10】他の統計情報を示す図(その2)である。
【図11】従来技術におけるエラーがない場合のタイムラン図である。
【図12】従来技術におけるエラーを検出した場合のタイムラン図である。
【図13】従来技術における応答信号(ACKまたはNAK)を喪失した場合のタイムラン図である。
【図14】図11〜図13のタイムランを実現するためのアルゴリズムを示すフローチャートである。
【図15】タイムアウトエラー処理Aのアルゴリズムである。
【図16】応答信号エラー処理のアルゴリズムである。
【符号の説明】
1……パケット、2……パケット、3……パケット、10……通信路、20……送信局(パケット再送装置)、20c_1……処理A部、20c_2……処理B部、30……受信局。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a packet retransmission method, a packet retransmission device, and a program. More specifically, the present invention relates to a packet retransmission method, a packet retransmission device, and a program for transmitting a packet via a predetermined communication path and retransmitting the same packet when a negative acknowledgment (NAK) is returned from a receiving station.
[0002]
[Prior art]
In a packet transfer procedure such as a high-level data link control procedure (HDLC: High-level Data Link Control procedure) or an Internet protocol (TCP / IP: Transmission Control Protocol / Internet Protocol), an error of a packet is detected on the receiving station side. When an error is detected, a response signal (NAK) requesting the transmitting station to retransmit the data is returned, and the transmitting station receiving the NAK retransmits the same packet, thereby compensating for the error contamination on the transfer path. ing. Although a packet is sometimes called a frame, it is unified into a packet for convenience of description in this specification.
[0003]
<If there is no error>
FIG. 11 shows a time run when there is no error. The transmitting station extracts the first packet (first packet) from the transmission buffer and transmits it to the receiving station. The receiving station detects an error according to a predetermined procedure, and returns an acknowledgment (ACK) if there is no error. Upon receiving the ACK, the transmitting station extracts the next packet (second packet) from the transmission buffer and transmits it to the receiving station. The receiving station performs error detection as described above, and returns an acknowledgment (ACK) if there is no error. By repeating this operation until the final packet is reached, a handshake type packet transfer based on an acknowledgment (ACK) can be executed.
[0004]
<When an error is detected>
FIG. 12 shows a time run when an error is detected. For example, if the receiving station detects an error in the second packet, the receiving station returns a negative acknowledgment (NAK). The transmitting station that has received the NAK takes out the same packet (the second packet in this case) again from the transmission buffer and transmits (retransmits) it to the receiving station. The receiving station performs error detection in the same manner as described above, and returns an acknowledgment (ACK) if there is no error, or returns a negative acknowledgment (NAK) if an error is detected again. The transmitting station that has received the ACK extracts the next packet (third packet) from the transmission buffer and transmits it to the receiving station, or the transmitting station that receives the NAK retransmits the same packet (in this case, the same packet) from the transmission buffer. The second packet) is extracted and transmitted (retransmitted) to the receiving station. By repeating this operation until the last packet is reached, a handshake type packet transfer based on two responses (ACK / NAK) can be executed.
[0005]
By the way, the error on the transmission line is caused not only in the direction from the transmitting station to the receiving station (hereinafter referred to as “downward direction”) but also in the opposite direction, that is, in the direction from the receiving station to the transmitting station (hereinafter referred to as “upward direction”). The error may occur, and the uplink error causes the above-mentioned response signal (ACK or NAK) to be lost.
[0006]
<Response signal loss>
FIG. 13 shows a time run when a response signal (ACK or NAK) is lost. In this case, since the transmitting station cannot receive the response signal, it cannot determine success / failure of the packet transfer. Therefore, if a response signal cannot be received even after a predetermined time has elapsed (timed out), it is regarded as a transfer failure, and the same packet (second packet in the figure) is retransmitted.
[0007]
FIG. 14 is a flowchart showing an algorithm on the transmitting station side for realizing the above time runs (FIGS. 11 to 13). In this algorithm, first, an initial value "1" is set to a loop variable i in step S10, and then the subsequent loops (first to third loops) are executed.
[0008]
<First loop>
This loop includes steps S11 to S15. That is, when the ACK is received after transmitting the i-th packet, after initializing the retransmission number variable J (J = 0), i is incremented by 1 and i> imax (imax is the number of transmitted packets; for example, from the first packet When transmitting n packets up to the n-th packet, steps S11 to S15 are looped until imax = n). According to this loop, a handshake type packet transfer (FIG. 11) based on an acknowledgment (ACK) can be realized.
[0009]
<Second loop>
This loop includes steps S11, S12, S16, and S19. That is, when the NAK is received after transmitting the i-th packet, the i-th packet is transmitted (retransmitted) without updating i. In this loop, before retransmitting the i-th packet, a predetermined error process (response signal error process) is executed in step S19. This response signal error process will be described later. According to this loop, a handshake-type packet transfer (FIG. 12) based on two responses (ACK / NAK) can be realized in combination with the first loop.
[0010]
<Third loop>
This loop includes steps S11, S12, S16, S17, S18, and S19. That is, when the i-th packet is transmitted and none of the response signals (ACK and NAK) are received, the response signal is waited until a predetermined time elapses (timeout). (“Time-out error processing A” and “response signal error processing”).
[0011]
FIG. 15 shows the algorithm of the timeout error processing A. In this algorithm, first, after incrementing the timeout error count (TimeErrCT) by 1 in step S18a, it is determined in step S18b whether TimeErrCT has reached a predetermined upper limit. If it has not reached, the "response signal error processing" of the
[0012]
FIG. 16 shows an algorithm for response signal error processing. In this algorithm, first, J is incremented by 1 in step S19a, and then it is determined in step S19b whether J has reached a predetermined upper limit of retransmission. If not reached, the process returns to the algorithm of FIG. 14 to retransmit the i-th packet, while if reached, a required error process (for example, notification to the user) is performed in step S19c. Then, the packet transfer process is terminated (abnormal termination due to occurrence of an error).
[0013]
In the third loop of FIG. 14 (step S11, step S12, step S16, step S17, step S18, step S19), "timeout error processing A" and "response signal error processing" Think about when not. In this case, when a timeout occurs (the determination result in step S17 is “YES”), the i-th packet is transmitted (retransmitted). Therefore, if the response signal cannot be received even after the predetermined time has elapsed (timed out) in the example of FIG. 13, it is regarded as a transfer failure and the same packet (the second packet in the figure) Can be performed.
[0014]
[Problems to be solved by the invention]
However, the above conventional packet retransmission method has the following problems.
[0015]
Now, it is assumed that the original transfer packet (downstream transfer packet) is correctly received by the receiving station. At this time, it is assumed that an acknowledgment (ACK) from the receiving station has not reached the transmitting station for some reason. In this case, in the above-described conventional packet retransmission method, the same packet is retransmitted by the third loop even though the receiving station has correctly received the packet, and the receiving station receives the useless packet. Will do. Further, if an acknowledgment (ACK) cannot be received even if retransmission is attempted more than the predetermined upper limit number of times or the retransmission upper limit number of TimeErrCT, “time-out error processing A” (see FIG. 15) or “ The response signal error process ”(see FIG. 16) terminates the packet transfer process (abnormal termination due to error occurrence).
[0016]
That is, in the above-described conventional packet retransmission method, the same packet is retransmitted in spite of the fact that the original transfer packet is correctly received by the receiving station, and furthermore, a predetermined upper limit number of times of TimeErrCT or Since the transmitting station does not receive an acknowledgment even if the predetermined retransmission upper limit number is exceeded, the packet transfer process is abnormally terminated, so that unnecessary retransmission time occurs and the transmission rate is reduced. There has been a problem that the transfer may be unintentionally interrupted.
[0017]
Therefore, the problem to be solved by the present invention is that even if an acknowledgment cannot be received by the transmitting station, the packet transfer is performed when the original transfer packet is considered to be correctly received by the receiving station. It is intended to continue the transfer without terminating the process, thereby shortening the transmission time without performing unnecessary packet retransmission processing and avoiding unintentional interruption of the packet transfer. And
[0018]
[Means for Solving the Problems]
According to the present invention, a packet that transmits a packet via a predetermined communication path and transmits the next packet when an acknowledgment is returned from the receiving station, and retransmits the same packet when a negative acknowledgment is returned In the retransmission method,
Determining the number of times the same packet has been retransmitted before an acknowledgment is obtained;
Calculating a statistical value using the number of retransmissions for a plurality of packets;
Calculating the maximum number of retransmissions using the statistical value,
Transmitting the next packet when the number of retransmissions for the same packet reaches the retransmission upper limit number;
It is characterized by including.
[0019]
According to the present invention, as shown in FIG. 1, when transmitting a
[0020]
Therefore, even if neither the positive or negative response can be received by the transmitting station, the original transfer packet is considered to be correctly received by the receiving station (for example, when the J retransmissions have been completed). ) Can save unnecessary packet retransmission and can continue the transfer without terminating the packet transfer process, thereby shortening the transmission time and making the packet transfer unwilling. Interruption can be avoided.
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, the specification or examples of various details and examples of numerical values, character strings, and other symbols are merely reference for clarifying the idea of the present invention, and all or some of them Obviously, the idea of the invention is not limited. In addition, well-known techniques, well-known procedures, well-known architectures, and well-known circuit configurations (hereinafter, “known matters”) will not be described in detail, but this is also for the purpose of simplifying the description, It does not intentionally exclude all or some of the matters. Such a well-known matter can be known to those skilled in the art at the time of filing the present invention, and is naturally included in the following description.
[0022]
FIG. 2 is a schematic configuration diagram of the packet communication system according to the present embodiment. This system includes a transmitting station 20 (packet retransmitting device) and a receiving
[0023]
The
[0024]
The devices constituting the transmitting
[0025]
Hereinafter, for the sake of simplicity, it is assumed that one is a transmitting
[0026]
The
[0027]
When receiving the packet via the
[0028]
The transmitting
[0029]
As described above, transmitting
[0030]
FIG. 3A is a functional conceptual diagram of the
[0031]
FIG. 3B is a schematic diagram of the transmission data stored in the transmission buffer 20b. The
[0032]
That is, the transmission from the first packet (P1) to the n-th packet (Pn) of the m packets is performed by the processing A unit 20c_1 of the
[0033]
Here, the above “statistical information” will be described. The statistical information is, in short, information for ascertaining how many retransmissions have returned an acknowledgment when transmitting a packet.
[0034]
FIG. 4 is a diagram illustrating a specific example of the statistical information. In this figure, the
[0035]
The number of retransmissions (J) is a sequence of the number of all retransmission operations that occur until the transmission of the TP is completed. J = 0 indicates no retransmission operation, J = 1 indicates the number of
[0036]
That is, the number of times an acknowledgment is returned immediately (J = 0) after packet transmission is “85066”, and the number of times an acknowledgment is returned in one retransmission operation (J = 1) is “4358”. Yes, the number of times an acknowledgment was returned in two retransmissions (J = 2) is “779”, and the number of times an acknowledgment was returned in three retransmissions (J = 3) is “75”. Yes, the number of times an acknowledgment was returned in four retransmissions (J = 4) is “30”, and the number of times an acknowledgment was returned in five retransmissions (J = 5) is “9”. Yes, the number of times an acknowledgment has been returned in six retransmission operations (J = 6) is “5”.
[0037]
The total number of transmitted packets (ΣMP) is the sum of the number of transmitted packets (MP) for each retransmission. "85066 + 4358 + 779 = 90203" for J = 2, "85066 + 4358 + 779 + 90203" for J = 2, "85066 + 4358 + 779 + 75 = 90278" for J = 4, "85066 + 4358 + 779 + 75 + 30 = 90308", J = 4 for J = 0. 5 is “85066 + 4358 + 779 + 75 + 30 + 9 = 90317”, and J = 6 is “85066 + 4358 + 779 + 75 + 30 + 9 + 5 = 90322”.
[0038]
In this figure, the total number of transmitted packets (パ ケ ッ ト MP) at the maximum number of retransmissions (J = 6) and the total number of transmitted packets (TP) match (“90322”). It is recognized that the maximum number of retransmissions required to complete transmission of all (90322) packets (100%) is "6".
[0039]
For example, when the transmission completion ratio (N) for each retransmission is calculated according to the following equation (1),
N [%] = (ΣMP / TP) × 100 ・ ・ ・ ・ ▲ 1 ▼
"94.18"% when J = 0, "99.01"% when J = 1, "99.87"% when J = 2, "99.95"% when J = 3, and "99.95"% when J = 4. .98 "%," 99.99 "% when J = 5, and" 100 "% when J = 6.
[0040]
Therefore, by using this
[0041]
The present embodiment is based on such an idea. When the processing A unit 20c_1 performs packet transmission, the
[0042]
Hereinafter, the algorithm of the collection of the
[0043]
<Detailed Operation of Processing A Unit 20c_1>
FIG. 5 is a flowchart showing a detailed operation (algorithm) of the processing A unit 20c_1. In this algorithm, first, in step S21, a retransmission count variable J and a loop variable i are initialized (J = 0, i = 1), and then the subsequent loops (first to third loops) are executed.
[0044]
<First loop>
This loop includes steps S22 to S28. That is, when the ACK is received by transmitting the i-th packet, the expression “MP (J) = MP (J) +1 "is calculated (step S24). Here, since J = 0, MP (J) Is MP 0 And MP at this stage 0 Is an initial value “0”, so that MP 0 Becomes "1" by the above operation. MP 0 = 1 represents the number “1” of packets normally received by the receiving
[0045]
Next, MP 0 ΣMP 0 Is calculated (step S25). At this stage, MP 0 = 1 0 Also becomes 1. Next, J is initialized (step S26), i is incremented by 1 (step S27), and i> imax (imax is the number of transmission packets; for example, n packets from the first packet to the n-th packet are transmitted). In this case, steps S22 to S28 are looped until imax = n).
[0046]
According to this loop, handshake-type packet transfer based on acknowledgment (ACK) without retransmission can be realized, and MP 0 Can be set to the number of packets transferred without retransmission (J = 0). For example, in the above
[0047]
<Second loop>
This loop includes steps S22, S23, S30, and S31. That is, when the i-th packet is transmitted and the NAK is received, a response signal error process is executed (step S32). This response signal error processing has the same processing content as that of FIG. 16 described above. In FIG. 16, first, J is incremented by 1 in step S19a, and then in step S19b, J is set to a predetermined upper limit number of retransmissions (this “retransmission upper limit number” is set to a sufficiently large value that is considered so as to obtain statistical data. Is determined. If not reached, the process returns to the algorithm of FIG. 5 to retransmit the i-th packet (step S22), while if reached, required error processing is performed in step S19c (for example, notification to the user). After that, the packet transfer process is terminated (abnormal termination due to occurrence of an error).
[0048]
Here, the value of J represents the cumulative number of negative acknowledgments (NAK) until an acknowledgment (ACK) is returned. For example, when an acknowledgment (ACK) is returned after one negative acknowledgment (NAK), the value of J is “1”. Then, since the affirmative response (ACK) is returned, the determination result of step S23 becomes “YES”, and the MP (J) And ΣMP in step S25 (J) Is set to J = 1, and MP 1 And ΣMP 1 become.
[0049]
Therefore, in this case, MP 1 Is set to the number of packets transferred with J = 1 (retransmission count 1). For example, in the above
[0050]
When an affirmative response (ACK) is returned after two negative responses (NAK), the value of J is “2”. Then, since the affirmative response (ACK) is returned, the determination result of step S23 becomes “YES”, and the MP (J) And ΣMP in step S25 (J) Is set to J = 2, and MP 2 And ΣMP 2 become.
[0051]
Therefore, in this case, MP 2 Is set to the number of packets transferred with J = 2 (the number of retransmissions 2). For example, in the above
[0052]
If an affirmative response (ACK) is returned after three negative responses (NAK), the value of J is "3", and the determination result of step S23 is determined by the return of the affirmative response (ACK). “YES”, and the MP in step S24 (J) And ΣMP in step S25 (J) And set J = 3 to MP 3 And ΣMP 3 become.
[0053]
Therefore, in this case, MP 3 Is set to the number of packets transferred with J = 3 (3 retransmissions). For example, in the above
[0054]
When an affirmative response (ACK) is returned after four negative responses (NAK), the value of J becomes “4”, and the determination result of step S23 is determined by the return of the affirmative response (ACK). “YES”, and the MP of step S24 (J) And ΣMP in step S25 (J) And set J = 4 to MP 4 And ΣMP 4 become.
[0055]
Therefore, in this case, MP 4 Is set to the number of packets transferred with J = 4 (4 retransmissions). For example, in the above
[0056]
When an affirmative response (ACK) is returned after five negative responses (NAK), the value of J becomes “5”, and the determination result of step S23 is determined by the return of the affirmative response (ACK). “YES”, and the MP in step S24 (J) And ΣMP in step S25 (J) And set J = 5 to MP 5 And ΣMP 5 become.
[0057]
Therefore, in this case, MP 5 Is set to the number of packets transferred with J = 5 (5 retransmissions). For example, in the above
[0058]
When an acknowledgment (ACK) is returned after six negative acknowledgments (NAK), the value of J is “6”, and the determination result of step S23 is returned by the acknowledgment (ACK) being returned. “YES”, and the MP in step S24 (J) And ΣMP in step S25 (J) Is set to J = 6, and MP 6 And ΣMP 6 become.
[0059]
Therefore, in this case, MP 6 Is set to the number of packets transferred with J = 6 (the number of retransmissions 6). For example, in the above
[0060]
In this way, the
[0061]
<Third loop>
This loop includes steps S22, S23, S30, S31, S32, and S33. That is, if the i-th packet is transmitted and no response signal (ACK or NAK) is received, a response signal is waited until a predetermined time elapses (timeout) in step 33, and when a timeout occurs, a predetermined time is reached. Is executed (step S33). The error processing in step S33 is the same as the “time-out error processing A” in FIG. 15, and therefore, the third loop performs the same operation as the third loop described at the beginning.
[0062]
The detailed operation (algorithm) of the process A unit 20c_1 described above is a conventional algorithm (FIG. 14) described above in that a handshake type packet transfer based on an acknowledgment (ACK) or a negative acknowledgment (NAK) is realized. And is different in that
[0063]
<Detailed Operation of Processing B Unit 20c_2>
FIG. 6 is a flowchart illustrating a detailed operation (algorithm) of the processing B unit 20c_2. In this algorithm, first, "timeout retransmission upper limit number setting process" (step S29a) is executed.
[0064]
FIG. 7 shows the “timeout retransmission upper limit number setting process”. More specifically, if a response (ACK / NAK) is not obtained even after a predetermined period of time has elapsed, the number of retransmissions that the receiving station considers to have correctly received the packet ( It is a flowchart which shows the detailed operation | movement (algorithm) for setting processing of a timeout retransmission upper limit number. In this flowchart, after the retransmission count variable J is initialized (step S29a_1), based on the
[0065]
Next, the expression “N ≧ 100” is evaluated (step S29a_3), J is incremented by 1 (step S29a_4) until the evaluation result becomes True (true value), and the above N operation (step S29a_2) and the expression The evaluation (step S29a_3) is repeated.
[0066]
That is, in the
[0067]
Therefore, since the result of the evaluation of the above expression (Step S29a_3) becomes True at the stage of J = 6, the loop exits at this point, and the J at the predetermined timeout retransmission upper limit number (hereinafter referred to as “TimeOutMax”) is performed. Is set (step S29a_5), and the process returns to the algorithm of FIG.
[0068]
In the above case, N ≧ 100, but another number, for example, N ≧ 99.97 may be used. In other words, the value of J (“4”) may be set as TimeOutMax, assuming that the receiving station has successfully received the signal when the transmission completion ratio exceeds “99.97” [%]. In this case, if the retransmission count (J = 4) has been executed, the transmission is regarded as successful, and the next packet is transmitted. Further, even if the receiving station does not receive the packet correctly and receives the next packet, the receiving station may request retransmission of the unreceived packet.
[0069]
In the algorithm of FIG. 6, next, after setting the value of n + 1 to the loop variable i (step S29b), the subsequent loops (first to third loops) are executed. Here, the value of n means the n-th packet in the
[0070]
<First loop>
This loop includes steps S29c to S29f in FIG. That is, when the ACK is received after transmitting the i-th packet, i is incremented by 1 and steps S29c to S29f are looped until i> m (m is the m-th packet in the
[0071]
<Second loop>
This loop includes steps S29c, S29d, S29g, and S29j in FIG. That is, when the i-th packet is transmitted and the NAK is received, a response signal error process is executed (step S29j). This response signal error processing has the same processing content as that of FIG. 16 described above. In FIG. 16, first, J is incremented by 1 in step S19a, and in step S19b, J is set to a predetermined upper limit number of retransmissions (the "retransmission upper limit number") is set to a value larger than the timeout upper limit number of retransmissions (TimeOutMax). ) Is determined. If not reached, the process returns to the algorithm of FIG. 6 to retransmit the i-th packet (step S29c), while if reached, required error processing (for example, notification to the user, etc.) in step S19c After that, the packet transfer process is terminated (abnormal termination due to occurrence of an error). According to this loop, a handshake-type packet transfer based on two responses (ACK / NAK) can be realized in combination with the first loop.
[0072]
<Third loop>
This loop includes steps S29c, S29d, S29g, S29h, S29i, and S29j in FIG. That is, when the i-th packet is transmitted and none of the response signals (ACK and NAK) are received, the response signal is waited until a predetermined time elapses (timeout). (“Time-out error processing B” and “response signal error processing”).
[0073]
<Timeout error processing B>
FIG. 8 is a flowchart showing the detailed operation (algorithm) of the timeout error processing B. In this algorithm, first, in Step S29i_1, the timeout error count (TimeErrCT) is incremented by 1, and then in Step S29i_2, it is determined whether or not TimeErrCT has reached the timeout retransmission upper limit number (TimeOutMax).
[0074]
If it has not reached, the process returns to the algorithm of FIG. 6 to retransmit the i-th packet (step S29c), while if it has reached, it is considered that the packet transmission has succeeded, and the algorithm of FIG. Jumps after the ACK detection step (after "YES" determination in step S29d).
[0075]
The “time-out error process B” in FIG. 8 is similar to the “time-out error process A” in FIG. 15 described at the beginning, but comparing the two shows that the “time-out error process A” has a fixed “upper limit count”. Is used, the “timeout error process B” of the present embodiment uses a variable upper limit number, that is, a timeout upper limit number “TimeOutMax” calculated from the
[0076]
Due to this difference, even if neither an acknowledgment nor a negative acknowledgment is returned from the receiving
[0077]
Therefore, according to the algorithm of the present embodiment, even when neither an acknowledgment nor a negative acknowledgment is returned from the receiving
[0078]
<Example of other statistical information>
9 and 10 are diagrams illustrating other statistical information. These
[0079]
In the
[0080]
That is, the number of times an acknowledgment is returned immediately (J = 0) after transmitting a packet is “79112”, and the number of times an acknowledgment is returned in one retransmission operation (J = 1) is “7816”. Yes, the number of times an acknowledgment was returned in two retransmissions (J = 2) is “2813”, and the number of times an acknowledgment was returned in three retransmissions (J = 3) is “354”. Yes, the number of times an acknowledgment was returned in four retransmission operations (J = 4) is “110”, and the number of times an acknowledgment was returned in five retransmission operations (J = 5) is “64”. Yes, the number of times that an acknowledgment was returned in six retransmission operations (J = 6) is “37”, and the number of times of acknowledgment returned in seven retransmission operations (J = 7) is “9”. Yes, the number of times an acknowledgment was returned in eight retransmission operations (J = 8) is “7”.
[0081]
The total number of transmitted packets (ΣMP) is the sum of the number of transmitted packets (MP) for each retransmission. When J = 0, "79112", when J = 1, "79112 + 7816 = 86928", when J = 2, "79112 + 7816 + 2813 = 89974", when J = 3, "79112 + 7816 + 2813 + 354 = 90095", and when J = 4, "79112 + 7816 + 2813 + 354 + 110 = 90205", J = 4. 5 is "79112 + 7816 + 2813 + 354 + 110 + 64 = 90269"; J = 6 is "79112 + 7816 + 2813 + 354 + 110 + 64 + 37 = 90306"; J = 7 is "79112 + 7816 + 2813 + 354 + 110 + 64 + 37 + 9 = 90315";
[0082]
In this figure, the total number of transmitted packets (ΣMP) at the maximum number of retransmissions (J = 8) and the total number of transmitted packets (TP) match (“90322”). It is recognized that the maximum number of retransmissions required to finish transmitting all "" packets is "8".
[0083]
For example, when the transmission completion ratio (N) for each retransmission is calculated according to the above formula (1), "87.59"% when J = 0, "96.24"% when J = 1, and "96.24"% when J = 2. 99.36 "%," 99.75 "% when J = 3," 99.87 "% when J = 4," 99.94 "% when J = 5," 99.98 "% when J = 6, When J = 7, it is “99.99”%, and when J = 8, it is “100”%.
[0084]
Therefore, by using the
[0085]
In the timeout retransmission upper limit number setting process, if N ≧ 99.90, the value of the timeout retransmission upper limit number (TimeOutMax) is J = 5 in the
[0086]
Alternatively, in the
[0087]
That is, the number of times an acknowledgment is returned immediately (J = 0) after packet transmission is “77530”, and the number of times an acknowledgment is returned in one retransmission operation (J = 1) is “6561”. Yes, the number of times that an acknowledgment was returned in two retransmission operations (J = 2) is “3891”, and the number of times of acknowledgment returned in three retransmission operations (J = 3) is “1422”. Yes, the number of times an acknowledgment was returned in four retransmissions (J = 4) is “386”, and the number of times an acknowledgment was returned in five retransmissions (J = 5) is “287”. Yes, the number of times an acknowledgment is returned in six retransmission operations (J = 6) is “151”, and the number of times an acknowledgment is returned in seven retransmission operations (J = 7) is “49”. Yes, the number of times that an acknowledgment is returned in eight retransmission operations (J = 8) is “28”, and the acknowledgment is performed in nine retransmission operations (J = 9). A number of times which is returned "11", the number of times the positive acknowledgment is returned in 10 retransmissions operation (J = 10) is "6".
[0088]
The total number of transmitted packets (ΣMP) is the sum of the number of transmitted packets (MP) for each retransmission. When J = 0, “77530”, when J = 1, “77530 + 6561 = 84091”, when J = 2, “77530 + 6561 + 3891 = 87982”, when J = 3, “77530 + 6561 + 3891 + 1422 = 89404”, when J = 4, “77530 + 6561 + 3891 + 1422 + 386 = 89790”, J = 89790 5 is “77530 + 6561 + 3891 + 1422 + 386 + 287 = 90077”, J = 6 is “77530 + 6561 + 3891 + 1422 + 386 + 287 + 151 = 90228”, J = 7 is “77530 + 6561 + 3891 + 122 + 386 + 287 + 151 + 49 = 90277”, and ++ 78 = + 91 is +78. 7530 + 6561 + 3891 + 1422 + 386 + 287 + 151 + 49 + 28 + 11 = 90316 is ", the J = 10" 77530 + 6561 + 3891 + 1422 + 386 + 287 + 151 + 49 + 28 + 11 + 6 = 90322 ".
[0089]
In this figure, the total number of transmitted packets (ΣMP) at the maximum number of retransmissions (J = 10) and the total number of transmitted packets (TP) match (“90322”). It is recognized that the maximum number of retransmissions required to finish transmitting all "" packets is "10".
[0090]
For example, when the transmission completion ratio (N) for each retransmission is calculated according to the above equation (1), "83.62"% when J = 0, "93.10"% when J = 1, and "93.10"% when J = 2. 97.41 "%," 98.98 "% when J = 3," 99.41 "% when J = 4," 99.73 "% when J = 5," 99.90 "% when J = 6, When J = 7, it is “99.95”%, when J = 8, it is “99.98”%, when J = 9, it is “99.99”%, and when J = 10, it is “100”%.
[0091]
Therefore, by using the
[0092]
In the timeout retransmission upper limit number setting process, if N ≧ 99.90, the
[0093]
As described above, according to the present embodiment, if the statistical information collected by the process A unit 20c_1 is, for example, the
[0094]
In the above description, the “maximum” number of retransmissions (J = 6, J = 8 or J = 10) of the
[0095]
For example, in the
[0096]
In the above description, the processing of transmitting P1 to Pn of the
[0097]
The acquisition of the statistical data may be performed at any timing. Further, for example, during transmission of a series of transmission data, a process of acquiring statistical data and a transmission process based on the statistical data may be alternately switched. Further, statistical data may be constantly acquired, and the transmission process may be performed periodically or when the statistical data changes, by reflecting the latest statistical data. When transmitting to the same receiving station within a predetermined period, the transmission processing may be performed using the statistical data acquired last time.
[0098]
Alternatively, detection means for detecting the transmission quality of the communication path 10 (for example, radio wave intensity and S / N ratio in the case of wireless communication) is provided, and the output of the detection means is monitored to change the transmission quality. The processing A unit 20c_1 may operate for a predetermined time or a predetermined number of packets.
[0099]
In the above example, the transmission completion ratio is obtained as statistical data. However, other statistical information may be used. For example, the ratio of the number of packets transmitted successfully within a unit time may be used.
In the example of FIG. 6 described above, the number of TimeErrCT is added even when a negative acknowledgment (NAK) is received on the way, but the number of TimeErrCT is added only when a timeout error occurs continuously. You may do so.
[0100]
The main functions of the present embodiment can be functionally realized by an organic combination of a hardware resource including a microcomputer and software resources such as an OS and various programs. In this case, since the hardware resources and the OS can use general-purpose ones, the essential items indispensable for the present invention are substantially designed by applying the above-described algorithms (FIGS. 5 to 8). It can be said that it is concentrated in the program that has been. Therefore, the present invention provides a recording medium (such as a flexible disk, an optical disk, a magnetic disk, a hard disk, or a semiconductor memory) storing all or a main part of such a program (not only on a distribution channel but also on a network). (Including those that provide only recorded contents).
[0101]
【The invention's effect】
According to the present invention, even if neither affirmative / negative response can be received by the transmitting station, the original transfer packet is considered to be correctly received by the receiving station (for example, J retransmissions). At the time of completion; see FIG. 1), the transfer can be continued without terminating the packet transfer processing, thereby avoiding unintended interruption of packet transfer.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the principle of the present invention.
FIG. 2 is a schematic configuration diagram of a packet communication system according to the present embodiment.
FIG. 3 is a functional conceptual diagram of a
FIG. 4 is a diagram illustrating a specific example of statistical information.
FIG. 5 is a flowchart showing a detailed operation (algorithm) of a process A unit 20c_1.
FIG. 6 is a flowchart illustrating a detailed operation (algorithm) of a processing B unit 20c_2;
FIG. 7 is a flowchart illustrating a detailed operation (algorithm) of a timeout upper limit number setting process.
FIG. 8 is a flowchart showing a detailed operation (algorithm) of a timeout error process B;
FIG. 9 is a diagram (part 1) showing other statistical information.
FIG. 10 is a diagram (part 2) showing other statistical information.
FIG. 11 is a time run diagram when there is no error in the related art.
FIG. 12 is a time run diagram when an error is detected in the related art.
FIG. 13 is a time run diagram when a response signal (ACK or NAK) in the related art is lost.
FIG. 14 is a flowchart showing an algorithm for realizing the time runs of FIGS. 11 to 13;
FIG. 15 is an algorithm of timeout error processing A;
FIG. 16 shows an algorithm of response signal error processing.
[Explanation of symbols]
1 ... packet, 2 ... packet, 3 ... packet, 10 ... communication path, 20 ... transmitting station (packet retransmitting device), 20c_1 ... Processing A unit, 20c_2 ... Processing B unit, 30 ... reception Bureau.
Claims (14)
肯定応答が得られるまでに同一のパケットを再送した回数を把握する工程と、
複数のパケットに対する前記再送回数を用いて統計値を算出する工程と、
前記統計値を用いて再送上限回数を算出する工程と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する工程と
を含むことを特徴とするパケット再送方法。In a packet retransmission method of transmitting a packet through a predetermined communication path and transmitting the next packet when a positive response is returned from the receiving station, while retransmitting the same packet when a negative response is returned,
Determining the number of times the same packet has been retransmitted before an acknowledgment is obtained;
Calculating a statistical value using the number of retransmissions for a plurality of packets;
Calculating the maximum number of retransmissions using the statistical value,
Transmitting the next packet when the number of retransmissions for the same packet has reached the upper limit number of retransmissions.
肯定応答が得られるまでに同一のパケットを再送した回数を把握する手段と、
複数のパケットに対する前記再送回数を用いて統計値を算出する手段と、
前記統計値を用いて再送上限回数を算出する手段と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する手段と
を備えることを特徴とするパケット再送装置。A packet retransmitting device that transmits a packet via a predetermined communication path and transmits the next packet when an acknowledgment is returned from the receiving station, while retransmitting the same packet when a negative acknowledgment is returned,
Means for ascertaining the number of times the same packet has been retransmitted before an acknowledgment is obtained;
Means for calculating a statistic using the number of retransmissions for a plurality of packets,
Means for calculating the maximum number of retransmissions using the statistical value,
Means for transmitting the next packet when the number of retransmissions for the same packet reaches the retransmission upper limit number.
前記把握手段は、電送品質が変化したことに応じて肯定応答が得られるまでに同一のパケットを再送した回数の把握を開始することを特徴とする請求項4に記載のパケット再送装置。Further comprising means for monitoring the transmission quality of the communication path,
The packet retransmitting apparatus according to claim 4, wherein the recognizing means starts recognizing the number of times the same packet has been retransmitted until an acknowledgment is obtained in response to a change in transmission quality.
肯定応答が得られるまでに同一のパケットを再送した回数を把握する工程と、
複数のパケットに対する前記再送回数を用いて統計値を算出する工程と、
前記統計値を用いて再送上限回数を算出する工程と、
同一のパケットに対する再送回数が前記再送上限回数に達したときに次順のパケットを送信する工程と
を含むことを特徴とするプログラム。A packet is transmitted via a predetermined communication path, and if a positive response is returned from the receiving station, the next packet is transmitted. If a negative response is returned, the same packet is retransmitted. A program for causing
Determining the number of times the same packet has been retransmitted before an acknowledgment is obtained;
Calculating a statistical value using the number of retransmissions for a plurality of packets;
Calculating the maximum number of retransmissions using the statistical value,
Transmitting the next packet when the number of retransmissions for the same packet reaches the retransmission upper limit number.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002198315A JP2004040692A (en) | 2002-07-08 | 2002-07-08 | Packet retransmission method, packet retransmission device, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002198315A JP2004040692A (en) | 2002-07-08 | 2002-07-08 | Packet retransmission method, packet retransmission device, and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004040692A true JP2004040692A (en) | 2004-02-05 |
Family
ID=31705804
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002198315A Pending JP2004040692A (en) | 2002-07-08 | 2002-07-08 | Packet retransmission method, packet retransmission device, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004040692A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008160551A (en) * | 2006-12-25 | 2008-07-10 | Toshiba Corp | Wireless communication device |
| US7706309B2 (en) | 2004-03-09 | 2010-04-27 | Seiko Epson Corporation | Data transfer control device, electronic instrument, and data transfer control method |
| JP2016082245A (en) * | 2014-10-09 | 2016-05-16 | Kddi株式会社 | Radio communication apparatus, radio communication method, and radio communication program |
-
2002
- 2002-07-08 JP JP2002198315A patent/JP2004040692A/en active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7706309B2 (en) | 2004-03-09 | 2010-04-27 | Seiko Epson Corporation | Data transfer control device, electronic instrument, and data transfer control method |
| JP2008160551A (en) * | 2006-12-25 | 2008-07-10 | Toshiba Corp | Wireless communication device |
| JP2016082245A (en) * | 2014-10-09 | 2016-05-16 | Kddi株式会社 | Radio communication apparatus, radio communication method, and radio communication program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3761517B2 (en) | Stop prevention mechanism by timer of high-speed wireless communication system | |
| CN1671094B (en) | Method and apparatus for responding to a spurious timeout | |
| JP5070239B2 (en) | Method and communication apparatus for improving TTI bundling transmission | |
| TWI508485B (en) | Method and apparatus for handling status imformation in a telecommunication system | |
| TWI734380B (en) | Computer-implemented method and system and non-transitory computer-readable storage medium | |
| JP2000502852A (en) | Concatenated error detection coding and packet numbering for hierarchical ARQ scheme | |
| CN1937477A (en) | Method and device for improving signaling transmission speed of wireless communication system | |
| JP2010093862A (en) | Communication device and method | |
| CN1645866B (en) | Transmitter device for controlling data transmission | |
| WO2016053528A1 (en) | Proactive tcp connection stall recovery for http streaming content requests | |
| WO2014194806A1 (en) | Link processing method and mobile terminal in multiplexing control protocol | |
| EP2255483A1 (en) | Method and apparatus for managing transmission of tcp data segments | |
| US7496038B2 (en) | Method for faster detection and retransmission of lost TCP segments | |
| EP3031159B1 (en) | Retransmission control network node and related method | |
| KR101533512B1 (en) | Methods and devices for performing an automatic repeat request reset in a wireless communication environment | |
| JP2004040692A (en) | Packet retransmission method, packet retransmission device, and program | |
| CN1988533B (en) | Method for realizing IuUP/NBUP protocol process control function | |
| CN115038115A (en) | Data transmission method, apparatus, electronic device, storage medium and product | |
| EP2846469A1 (en) | Rateless encoding | |
| JPH0955718A (en) | Data communication device | |
| CN113965466B (en) | Data transmission system adaptive to network bandwidth | |
| CN101552657A (en) | Transmission apparatus, transmission method, and program | |
| US20140071993A1 (en) | Transfer device and transfer method | |
| JP3665309B2 (en) | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND COMMUNICATION METHOD | |
| JP2014222466A (en) | Information processing device, information processing system, and information processing system communication method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20050407 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050407 |