(57)【特許請求の範囲】
【請求項１】
受信側の通信装置が、
連続再送が要求されるデータ量を示す再送データ量を取得し、
前記再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定し、
前記連続再送が要求される前記フレーム群の中の先頭フレームを特定するための要求フレーム情報及び前記最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、
前記生成されたＮＡＫフレームを送信し、
送信側の通信装置が、
前記受信側の通信装置から送信されたＮＡＫフレームを受信し、
前記受信されたＮＡＫフレームに含まれる前記要求フレーム情報及び前記最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームを送信フレームを格納する格納部から順次読み出し、
前記読み出された各再送フレームを連続的に送信する、
ことを含み、
前記受信側の通信装置が、
前記障害が発生した前記先頭フレーム以降に前記送信側の通信装置から連続して送信されるフレーム群の中の、前記先頭フレームから前記再送データ量以内に送信されるフレームに、障害が検出された場合、前記再送データ量に基づいて、前記連続再送が要求される前記フレーム群が増加するように、前記最終フレーム情報を更新し、
前記先頭フレームを特定するための要求フレーム情報及び前記更新された最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、
前記生成されたＮＡＫフレームを送信する、
ことを更に含み、
前記送信側の通信装置が、
前記各再送フレームの連続送信中に、前記更新された最終フレーム情報を含む前記ＮＡＫフレームが受信された場合に、既に受信されていた最終フレーム情報で特定されていた最終フレームを、前記更新された最終フレーム情報に基づいて特定されるフレームに変更する、
ことを更に含む、
通信方法。
【請求項２】
前記受信側の通信装置が、
前記障害が発生した前記先頭フレーム以降に前記送信側の通信装置から連続して送信されるフレーム群の中の、前記先頭フレームから前記再送データ量を超えて送信されるフレームに、障害が検出された場合、更新せず前記最終フレーム情報を維持する、
ことを更に含む請求項１に記載の通信方法。
【請求項３】
前記受信側の通信装置が、
前記最終フレーム情報に基づいて特定される連続再送の最終フレームの次に送信されるフレームに障害が検出された場合には、前記再送データ量に基づいて次の連続再送のための最終フレーム情報を再度決定する、
ことを更に含む請求項１又は２に記載の通信方法。
【請求項４】
前記送信側の通信装置が、
既に初回読み出しが終了しているフレームの次に初回読み出しすべきフレームが格納されている第１アドレスと、現在読み出すべきフレームが格納されている第２アドレスとを別々に保持し、
前記第２アドレスを用いて前記最終フレームまでの各再送フレームの順次読み出しが終了した後、前記第１アドレスを前記第２アドレスと一致させることにより前記次に初回読み出しすべきフレームを前記格納部から読み出す、
ことを更に含む請求項１から３のいずれか１項に記載の通信方法。
【請求項５】
前記送信側の通信装置が、
前記受信されたＮＡＫフレームに含まれるトランザクション識別子と、既に送信されたフレームに含まれていたトランザクション識別子とを比較することにより、前記各再送フレームの連続送信を開始するか否かを判定し、
前記各再送フレームの連続送信を開始する際及びシーケンス番号が一巡する際にのみ、送信されるフレームに含まれるトランザクション識別子を更新する、
ことを更に含む請求項１から４のいずれか１項に記載の通信方法。
【請求項６】
前記最終フレーム情報として前記再送データ量そのものが用いられ、
前記要求フレーム情報で前記先頭フレームが特定され、前記先頭フレーム及び前記再送データ量で前記最終フレームが特定される、
ことを特徴とする請求項１から５のいずれか１項に記載の通信方法。
【請求項７】
前記受信側の通信装置が、
所定の誤り率以上で誤りが発生している箇所のデータ量をバースト誤り量としてカウントし、
前記バースト誤り量の統計情報に基づいて、前記再送データ量を決定する、
ことを更に含む請求項１から６のいずれか１項に記載の通信方法。
【請求項８】
連続再送が要求されるデータ量を示す再送データ量を取得する再送データ量取得部と、
前記再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定する決定部と、
前記連続再送が要求される前記フレーム群の中の先頭フレームを示す要求フレーム情報及び前記最終フレーム情報を少なくとも含むＮＡＫフレームを生成する生成部と、
前記要求フレーム情報で特定される先頭フレームから前記最終フレーム情報で特定される最終フレームまでの連続再送を要求するために前記ＮＡＫフレームを送信側通信装置に送信する送信部と、
前記障害が発生した前記先頭フレーム以降に前記送信側通信装置から連続して送信されるフレーム群の中の、前記先頭フレームから前記再送データ量以内に送信されるフレームに、障害を検出する検出部と、
を備え、
前記決定部は、前記先頭フレームから前記再送データ量以内に送信されるフレームに、障害が検出された場合、前記再送データ量に基づいて、前記連続再送が要求される前記フレーム群が増加するように、前記最終フレーム情報を更新し、
前記生成部は、前記先頭フレームを特定するための要求フォーム情報及び前記更新された最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、
前記送信部は、前記生成されたＮＡＫフレームを送信する、
ことを特徴とする通信装置。
【請求項９】
既に送信されたフレームデータを格納する格納部と、
受信側の通信装置から送信されたＮＡＫフレームを受信する受信部と、
前記受信されたＮＡＫフレームに含まれる要求フレーム情報及び最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームのデータを前記格納部から順次読み出す読出処理部と、
前記読み出された各再送フレームを連続的に送信する送信部と、
を備え、
前記読出処理部は、前記要求フレーム情報と共に、既に受信されているＮＡＫフレームに基づいて既に特定されている前記先頭フレームから前記最終フレームまでの再送フレーム群が増加するように更新された最終フレーム情報を含むＮＡＫフレームが、前記各再送フレームの連続送信中に、受信された場合、当該既に特定されている前記最終フレームを、当該更新された最終フレーム情報に基づいて特定されるフレームに変更する、
ことを特徴とする通信装置。
【請求項１０】
コンピュータに、請求項１から７のいずれか一項に記載の通信方法を実行させる通信プログラム。
【請求項１１】
前記検出部は、前記障害が発生した前記先頭フレーム以降に前記送信側の通信装置から連続して送信されるフレーム群の中の、前記先頭フレームから前記再送データ量を超えて送信されるフレームに、障害を検出し、
前記通信装置は、前記先頭フレームから前記再送データ量を超えて送信されるフレームに、障害が検出された場合に、更新せず前記最終フレーム情報を維持する、
請求項８に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＣＫ（Acknowledgement）及びＮＡＫ（No Acknowledgement）を用いた通信制御技術に関する。
【背景技術】
【０００２】
従来、データの送受信における誤り制御方法としては、大きくＦＥＣ（前方誤り訂正：Forward Error Correction）方式（誤り訂正）と、ＡＲＱ（自動再送要求：Automatic Repeat reQuest）方式（誤り検出）の２つが存在する。
【０００３】
ＦＥＣは、送信データに付与された冗長データにより、誤りを検出し、さらに訂正する方法である。冗長データを生成する符号として、ハミング符号、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号、ＲＳ（Reed-Solomon）符号及びＬＤＰＣ（Low Density Parity Check）符号などが存在し、バースト誤り、ランダム誤りなど誤り特性に合わせて符号が選ばれる。
【０００４】
一方、ＡＲＱは、同じく送信データに付与された冗長データにより、誤りが生じたこと検出し、送信データを再送信し、誤りを訂正する方法である。冗長データを生成する符号として、パリティ符号、ＣＲＣ（Cyclic Redundancy Check）符号などが存在する。誤り検出時のデータ再送方法としては、Ｓｔｏｐ−ａｎｄ−Ｗａｉｔ ＡＲＱ（以降、ＳＡＷと表記する）、Ｇｏ−Ｂａｃｋ−Ｎ  ＡＲＱ（以降、ＧＢＮと表記する）、及びＳｅｌｅｃｔｉｖｅ  Ｒｅｐｅａｔ  ＡＲＱ（以降、ＳＲと表記する）の大きく３方式が存在する。
【０００５】
図２３（Ａ）はＳＡＷ方式の例を示す図である。本方式では、送信側から送信されたフレームが、受信側で正しく受信できた場合、受信側は、送信側へフレームが正常に受信できたことを示すＡＣＫ（Acknowledgement）を返信する。送信側は、ＡＣＫを受信したならば、次フレームを送信する。また、送信側から送信されたパケットを受信側で正常に受信できなかった場合、受信側は、送信側へフレームの再送を要求するＮＡＫ（No Acknowledgement）（以降、ＮＡＣＫとも表記される）を送信する。これを受けて送信側はパケットを再送する。このような方式は、例えば、下記特許文献３にも開示されている（段落００１８参照）。本方式は、最も基本的であり、実装も実用的である。しかし、１フレーム毎に、ＡＣＫ又はＮＡＫを受信する必要があるため、距離の増大とともに、フレームの送信からＡＣＫ又はＮＡＫを受信するまでの遅延（ＲＴＴ：Round Trip Time）が大きくなり、帯域が劣化する問題がある。
【０００６】
図２３（Ｂ）はＧＢＮ方式の例を示す図である。本方式では、ＲＴＴに基づいて、受信側からのＡＣＫを受信すること無く１度に送れるデータ量（以降、ウィンドウサイズと表記する）が決められ、送信側は、このウィンドウサイズまでのフレームを送信し、ＡＣＫを受信する毎に、再びウィンドウサイズの上限までフレームを送信する。受信側がフレーム誤りを検出した場合にはＮＡＫを返送し、送信側が誤りフレーム以降を全て再送する。図２３（Ｂ）の例によれば、フレーム＃４  ｇ１−０１に誤りが発生し、ＮＡＫ＃４  ｇ１−０２が返送されることで、送信側から誤りフレーム＃４以降全て（ｇ１−０３）が再送されている。
【０００７】
ＧＢＮ方式は、ウィンドウ制御により、ＲＴＴの影響をＳＡＷ方式よりも小さくし、転送効率を向上させることができる。しかし、ＧＢＮ方式がランダム誤りの多い回線で利用された場合、多くの再送が生じ、帯域劣化が生じるといった問題がある。また、ＧＢＮ方式は、ＳＡＷ方式よりも実装難易度が高い。
【０００８】
図２３（Ｃ）はＳＲ方式の例を示す図である。本方式も、ＧＢＮ方式と同様、受信側ウィンドウサイズを決め、送信側はウィンドウサイズ値までのフレームを送信し、ＡＣＫが返送されたならば、次のフレームからウィンドウサイズの上限までの全てのフレームを送信する。ＳＲ方式では、受信側がフレーム誤りを検出することによりＮＡＫを返送すると、送信側は、誤りフレームのみを再送する。図２３（Ｃ）の例によれば、フレーム＃４  ｇ１−０４に誤りが生じ、ＮＡＫ＃４  ｇ１−０５が返送されることで、送信側から誤りフレーム＃４  ｇ１−０６のみが再送されている。
【０００９】
このように、ＳＲ方式は、伝送効率は上述の３つの方式の中で最も高いが、再送制御のための制御信号が必要となるため、バースト誤り（連続した多数のフレームが誤る場合）発生時には、制御信号が多くなり、帯域が劣化する。また、ＳＲ方式は、伝送速度が高速になると、受信側に多量の受信バッファを必要とするため、コストや消費電力が増加するといった問題がある。
【００１０】
ＦＥＣは、無線通信や光通信などの通信システムでは物理層に適用される。ＦＥＣでは、物理回線の誤り率などから、予め、設計の段階で、ＦＥＣにより訂正可能な誤り数が決定される。このため、ＦＥＣでは、訂正可能な誤り数を超えるような想定以上の数の誤りが発生した場合、誤りの訂正が不可能となる。一方、誤り訂正数を大きくすると、冗長データサイズが大きくなり、誤りがない場合（正常時）の帯域利用効率が劣化する。
【００１１】
上述のような訂正しきれない誤りは、上位層のＴＣＰ（Transmission Control Protocol）などのプロトコルにより実施される再送制御により回復される。しかしながら、ＴＣＰで実施される再送制御は、ＧＢＮ方式又はＳＲ方式であるため、上述のような問題を抱える。また、当該再送制御を長距離かつ大容量の回線に適用した場合、十分に物理回線の容量を使いこなすことができない。
【００１２】
このような問題点を解決する方式の１つとして、ＴＣＰの下位層であるデータリンクで、ＧＢＮ方式とＳＲ方式の２つの再送方式を切り替えて使用する技術が下記特許文献１により提案されている（以降、第１従来技術と表記する）。図２４は、第１従来技術における再送方式の切り替え手法を示す図である。図２４（Ａ）は、ＳＲ方式からＧＢＮ方式への切り替え例を示し、図２４（Ｂ）は、ＧＢＮ方式からＳＲ方式への切り替え例を示す。
【００１３】
図２４において、Ｓｉ（ｉ＝０〜１５）は、データ番号ｉのデータがＳＲモードで送信されたことを示し、Ｇｉ（ｉ＝６〜９）は、データ番号ｉのデータがＧＢＮモードで送信されたことを示す。データ番号はシーケンス番号に相当し、図２４ではモジュロ数１６が使用されている。ｋは、モジュロの巡回数を示し、一巡する毎に１ずつ加算される。Ａｉ及びＮｉは受信側の情報を表し、Ａｉはデータ番号ｉに対するＡＣＫを、Ｎｉはデータ番号ｉに対するＮＡＫを表す。○は伝送路で誤りが生じなかったことを、×は伝送路で誤りが生じたことを表す。また、ＲＴＦはＲＴＴに相当するフレーム数を表し、この例では、ＲＴＦ＝４である。
【００１４】
図２４（Ａ）では、既に番号６及び７のデータが未確認の状態で、これらのデータの回復過程でＳＲモードからＧＢＮモードに変更（最旧未確認の番号＝６と次のデータに付けるべき番号＝６が一致する）されている。図内ｇ２−０２の箇所からＧＢＮモードでフレームの再送が行われている。図２４（Ｂ）では、既に番号６、７及び１０のデータが未確認の状態で、これらのデータの回復過程でＧＢＮモードからＳＲモードに復帰されている。復帰条件が、（（ＧＢＮモードへ移行した番号−再送要求番号）ｍｏｄ（モジュロ数）＝（４−１０）ｍｏｄ１６＝１０＜（モジュロ数−ＲＴＦ＋１）＝１６−４＋１＝１３）となり、満たされ、図２４（Ｂ）のｇ２−０８の箇所からＳＲモードでフレームの再送が行われている。
【００１５】
このように、第１従来技術は、データに付与されるシーケンス番号と未確認シーケンス番号とが一致する、即ち、シーケンス番号が一巡することをトリガにして、２種類のＡＲＱ方式の切り替えを行うことにより、無線におけるチャンネル切り替えのバースト誤りを回復する。シーケンス番号が一巡するということは、回復できていない誤りのあるフレームが存在することを意味しており、当該技術は、これらをＧＢＮ方式で一気に再送信することで、ＳＲの複雑さ及びバッファ容量不足の問題を解消している。
【００１６】
同様の技術が下記特許文献２により提案されている（以降、第２従来技術と表記する）。第２従来技術は、上記２種類のＡＲＱ方式を、受信側で検出した回線の誤り率に応じて切り替えて行うことで、効率の良い誤り回復を行う。図２５は、第２従来技術における再送方式の切り替え手法の例を示す図である。図２５では、データが正常に受信された時間（図２５で示される受信データ上の白地の部分）、受信データに誤りが検出された、あるいは未受信である時間（図２５で示される受信データ上の斜線部）に対応して、誤り率計算部で計算された平均誤り率と再送制御方式の変遷の様子が表わされている。
【００１７】
図２５において、通信スタート時には、受信平均誤り率が、再送制御方式の切り替えを判断するための閾値ＴＥ以下であるため、ＳＲ方式による再送制御が行われる。伝送誤りが増加することで受信平均誤り率が増加し、受信平均誤り率が閾値ＴＥを越えると、ＧＢＮ方式に切り替えて伝送が行われる。このようにして、第２従来技術では、制御信号量の低減が図られる。
【００１８】
また、下記特許文献４では、再送パケットによる通信量の増加を低減するための以下のような手法が提案されている。下記特許文献４では、データ送信装置が、欠落パケット数に応じたエラー率が第１のエラー率でかつ復元可能であると判定されたパケット数（連鎖復元数）が第１のパケット数であった場合よりも再送パケット数が少なくなるように、再送パケット数を決定すること、遅延時間情報と連鎖復元数とに応じて再送パケット数を決定することが提案されている（段落００６２参照）。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特公平０７‐０７９３３２号公報
【特許文献２】特許第３７８４９８２号
【特許文献３】特開２００６−２２２６６３号公報
【特許文献４】特開２０１０−１４１４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
しかしながら、上述のような各従来技術は次のような問題を抱える。
例えば、２種類のＡＲＱ方式を切り替える手法（上述の第１従来技術及び第２従来技術）では、ＡＲＱ方式の切り替えに多くの時間がかかってしまう。しかし、それら手法では、このような時間が考慮されていない。よって、このような手法では、ＡＲＱ方式の切り替え中に発生した誤りに対して、制御信号量が低減できない等、個々のＡＲＱ方式の効果が得られないため、帯域を向上させることができない。
【００２１】
これら従来手法の問題は例えば以下のような理由で生じる。第１従来技術は、２つのＡＲＱ方式の切り替えをシーケンス番号（上記特許文献１内ではデータ番号）が一巡することをトリガとして行っているからである。よって、第１従来技術では、ＲＴＴが大きいネットワーク即ち長距離の回線においては、バースト誤りが発生してからＡＲＱ方式が切り替えられるまでに時間がかかってしまう。
【００２２】
第２従来技術は、２つのＡＲＱ方式の切り替えを平均誤り率に基づいて行っているからである。よって、第２従来技術では、バースト誤りが発生してから、受信平均誤り率が閾値ＴＥを超え、ＡＲＱ方式がＳＲ方式からＧＢＮ方式に切りかわるのに、多くの時間が費やされる。例えば、図２５によれば、ｇ３−０１で示される間、ＳＲ方式からＧＢＮ方式に切り替わるのに時間を要し、この間の再送はＳＲ方式で実施される。
【００２３】
本発明の目的は、フレーム障害から回復するための再送を効率よく実施する通信制御技術を提供することにある。
【課題を解決するための手段】
【００２４】
本発明の各態様では、上述した課題を解決するために、それぞれ以下の構成を採用する。
【００２５】
第１の態様は、受信側の通信装置及び送信側の通信装置により実行される通信方法に関する。第１態様に係る通信方法では、受信側の通信装置が、連続再送が要求されるデータ量を示す再送データ量を取得し、この再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定し、上記連続再送が要求されるフレーム群の中の先頭フレームを特定するための要求フレーム情報及び上記最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、この生成されたＮＡＫフレームを送信し、送信側の通信装置が、受信側の通信装置から送信されたＮＡＫフレームを受信し、この受信されたＮＡＫフレームに含まれる上記要求フレーム情報及び上記最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームを送信フレームを格納する格納部から順次読み出し、読み出された各再送フレームを連続的に送信する。更に、前記受信側の通信装置が、前記障害が発生した前記先頭フレーム以降に前記送信側の通信装置から連続して送信されるフレーム群の中の、前記先頭フレームから前記再送データ量以内に送信されるフレームに、障害が検出された場合、前記再送データ量に基づいて、前記連続再送が要求される前記フレーム群が増加するように、前記最終フレーム情報を更新し、前記先頭フレームを特定するための要求フレーム情報及び前記更新された最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、前記生成されたＮＡＫフレームを送信し、前記送信側の通信装置が、前記各再送フレームの連続送信中に、前記更新された最終フレーム情報を含む前記ＮＡＫフレームが受信された場合に、既に受信されていた最終フレーム情報で特定されていた最終フレームを、前記更新された最終フレーム情報に基づいて特定されるフレームに変更する。
【００２６】
第２の態様は通信装置に関する。第２の態様に係る通信装置は、連続再送が要求されるデータ量を示す再送データ量を取得する再送データ量取得部と、当該再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定する決定部と、上記連続再送が要求される上記フレーム群の中の先頭フレームを示す要求フレーム情報及び上記最終フレーム情報を少なくとも含むＮＡＫフレームを生成する生成部と、上記要求フレーム情報で特定される先頭フレームから上記最終フレーム情報で特定される最終フレームまでの連続再送を要求するために上記ＮＡＫフレームを送信側通信装置に送信する送信部と、当該障害が発生した上記先頭フレーム以降に送信側通信装置から連続して送信されるフレーム群の中の、上記先頭フレームから上記再送データ量以内に送信されるフレームに、障害を検出する検出部と、を備える。そして、前記決定部は、前記先頭フレームから前記再送データ量以内に送信されるフレームに、障害が検出された場合、前記再送データ量に基づいて、前記連続再送が要求される前記フレーム群が増加するように、前記最終フレーム情報を更新し、前記生成部は、前記先頭フレームを特定するための要求フォーム情報及び前記更新された最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、前記送信部は、前記生成されたＮＡＫフレームを送信する。
【００２７】
第３の態様は通信装置に関する。第３の態様に係る通信装置は、既に送信されたフレームデータを格納する格納部と、受信側の通信装置から送信されたＮＡＫフレームを受信する受信部と、受信されたＮＡＫフレームに含まれる要求フレーム情報及び最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームのデータを上記格納部から順次読み出す読出処理部と、読み出された各再送フレームを連続的に送信する送信部と、を備える。そして、前記読出処理部は、前記要求フレーム情報と共に、既に受信されているＮＡＫフレームに基づいて既に特定されている前記先頭フレームから前記最終フレームまでの再送フレーム群が増加するように更新された最終フレーム情報を含むＮＡＫフレームが、前記各再送フレームの連続送信中に、受信された場合、当該既に特定されている前記最終フレームを、当該更新された最終フレーム情報に基づいて特定されるフレームに変更する。
【００２８】
なお、本発明の別態様としては、上記第２の態様又は上記第３の態様に係る通信装置の構成をコンピュータに実現させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記憶媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
【発明の効果】
【００２９】
上記各態様によれば、フレーム障害から回復するための再送を効率よく実施する通信制御技術を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】第１実施形態における通信端末の構成例を概念的に示す図である。
【図２】フレーム識別部の処理構成例を概念的に示す図である。
【図３Ａ】ＮＡＫテーブル部への登録方法の例を概念的に示す図である。
【図３Ｂ】ＮＡＫテーブル部への登録方法の例を概念的に示す図である。
【図４】ＡＣＫ／ＮＡＫ生成部の動作例を示すフローチャートである。
【図５】ＩＤ付与部の動作例を示すフローチャートである。
【図６】ヘッダ処理部の動作例を示すフローチャートである。
【図７】再送／更新処理部の動作例を示すフローチャートである。
【図８Ａ】受信処理部の動作例を示すフローチャートである。
【図８Ｂ】図８Ａに示されるフローチャートにおけるＥＯＳ生成処理を更に詳細に示したフローチャートである。
【図９】誤り発生時の通信端末間の伝送シーケンスの例を示す図である。
【図１０】図９の伝送シーケンスの各時点におけるＮＡＫテーブル部の登録例を示す図である。
【図１１Ａ】Ａ０１時点での送信側の通信端末で処理されるフレーム及びそのフレームを格納する送信バッファ部を概念的に示す図である。
【図１１Ｂ】Ａ０１時点での送信側の通信端末で処理されるフレーム及びそのフレームを格納する送信バッファ部を概念的に示す図である。
【図１２Ａ】Ｂ０１時点での受信側の通信端末で処理されるフレームを概念的に示す図である。
【図１２Ｂ】Ｂ０１時点での受信側の通信端末で処理されるフレームを概念的に示す図である。
【図１３Ａ】送信側の通信端末のフレーム識別部で保持される各変数値と受信フレームと送信フレームとの関係を示す図である。
【図１３Ｂ】受信側の通信端末のフレーム識別部で保持される各変数値と受信フレームと送信フレームとの関係を示す図である。
【図１４Ａ】Ａ０２時点での送信側の通信端末で処理されるフレーム及びそのフレームを格納する送信バッファ部を概念的に示す図である。
【図１４Ｂ】Ａ０２時点での送信側の通信端末で処理されるフレーム及びそのフレームを格納する送信バッファ部を概念的に示す図である。
【図１５Ａ】Ｂ０２時点での受信側の通信端末で処理されるフレーム及びそのフレームを格納する受信バッファ部を概念的に示す図である。
【図１５Ｂ】Ｂ０２時点での受信側の通信端末で処理されるフレーム及びそのフレームを格納する受信バッファ部を概念的に示す図である。
【図１６】Ａ０４時点での送信側の通信端末で処理されるフレーム及びそのフレームを格納する送信バッファ部を概念的に示す図である。
【図１７】Ａ０５時点での送信側の通信端末で処理されるフレーム及びそのフレームを格納する送信バッファ部を概念的に示す図である。
【図１８】Ｂ０７時点での受信側の通信端末で処理されるフレーム及びそのフレームを格納する受信バッファ部並びに更新前後のＮＡＫテーブル部を概念的に示す図である。
【図１９】Ａ０６時点での送信側の通信端末で処理されるフレームを概念的に示す図である。
【図２０】第２実施形態における通信端末の構成例を概念的に示す図である。
【図２１】第２実施形態におけるバースト誤り量検出部の動作例を示すフローチャートである。
【図２２Ａ】バースト誤り量検出部内の変数の状態を示す図である。
【図２２Ｂ】バースト誤り量の統計情報の例を示す図である。
【図２３】ＳＡＷ方式、ＧＢＮ方式及びＳＲ方式の例を示す図である。
【図２４】第１従来技術における再送方式の切り替え手法を示す図である。
【図２５】第２従来技術における再送方式の切り替え手法の例を示す図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【００３２】
［第１実施形態］
〔装置構成〕
図１は、第１実施形態における通信端末の構成例を概念的に示す図である。第１実施形態における通信端末１０及び２０は、各ＮＩＣ１２を通して回線１及び２により相互に接続される。
【００３３】
なお、本実施形態は、各通信端末に接続される他の通信端末の数や、伝送媒体を制限しない。伝送媒体は、例えば、無線、光ケーブル、ＵＴＰ（Unshielded Twist Pair cable）等である。通信端末１０及び２０は、後述する同じＮＩＣ１２をそれぞれ持てばよいが、以降、説明の便宜のため、通信端末１０を送信用端末として説明し、通信端末２０を受信用端末として説明する。ここで、送信用端末とは、フレームを送信しかつＡＣＫ又はＮＡＫを受信する端末を意味し、受信用端末とは、送信用端末から送信されたフレームを受信しかつＡＣＫ又はＮＡＫを送信する端末を意味する。また、図１の例では、本発明に関連しない構成要素は図示されていない。よって、通信端末１０及びＮＩＣ１２は、図１で示される構成以外にも、例えば、コネクション確立部、再送信タイマ等なども有している。
【００３４】
また、以降の説明では、ＮＩＣ（Network Interface Card）としてイーサネット（登録商標）ＮＩＣを例示し、送受信されるデータの単位をパケットではなくフレームと表記する。なお、本実施形態は、データリンク層をイーサネット（登録商標）に制限するものではなく、データリンク層はＩＥＥＥ８０１．１１（無線ＬＡＮ）等であってもよい。
【００３５】
以下、通信端末１０及び２０は同じ構成を有すればよいため、通信端末１０の構成を代表して図１を用いて説明する。通信端末１０は、他ブロック１１、ＮＩＣ１２等を有する。他ブロック１１は、ＣＰＵ（Central Processing Unit）等の上位構成の処理ブロックであり、外部へ送出するためのデータをＮＩＣ１２へ送り、外部からのデータをＮＩＣ１２経由で受信する。本実施形態は、他ブロック１１の詳細処理を制限しない。
【００３６】
ＮＩＣ１２は、本発明の通信装置に相当し、回線１及び２を収容し、回線１を経由して受信用の通信端末２０へデータを送信し、回線２を経由して通信端末２０からのデータを受信する。ＮＩＣ１２は、図１に示されるように、内部インタフェース部１００、ヘッダ付与部１０１、送信バッファ部１０２、ＡＣＫ／ＮＡＫ生成部１０３、トランザクション識別子付与部（以降、ＩＤ付与部と表記する）１１４、ヘッダ誤り訂正符号付与部（以降、ＥＣＣ付与部と表記する）１０４、フレーム誤り検出符号付与部（以降、ＥＤＣ付与部と表記する）１０５、送信部１０６、受信部１０８、ヘッダ誤り訂正部１０９、フレーム誤り検出部１１０、フレーム識別部１１１、送信バッファ制御部１１２、受信バッファ部１１３、再送データ量設定部１１５等を有する。
【００３７】
ＮＩＣ１２に含まれる各処理部は、個々に又は複数組み合わせられて、ハードウェア構成要素又はソフトウェア構成要素若しくはそれらの組み合わせにより実現される。ハードウェア構成要素とは、例えば、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、ゲートアレイ、論理ゲートの組み合わせ、信号処理回路、アナログ回路等のようなハードウェア回路である。ソフトウェア構成要素とは、１又は複数のメモリ上のデータ（プログラム）が１又は複数のプロセッサ（例えば、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）等）で実行されることにより実現される、タスク、プロセス、関数のようなソフトウェア部品（断片）である。例えば、ＡＣＫ／ＮＡＫ生成部１０３、フレーム識別部１１１、送信バッファ制御部１１２及びＩＤ付与部１１４は、図示しないプログラム制御プロセッサ上で図示しないメモリに格納されたプログラムを実行することにより実現されてもよい。
【００３８】
内部インタフェース部１００は、他ブロック１１から送信用のデータを取得し、そのデータをヘッダ付与部１０１へ渡す。また、内部インタフェース部１００は、読出し可能なデータが受信バッファ部１１３にある場合、受信バッファ部１１３からデータを取得し、その読み出されたデータを他ブロック１１へ送る。
【００３９】
ヘッダ付与部１０１は、内部インタフェース部１００からデータを取得し、そのデータにシーケンス番号を含むフレームヘッダを付加し、フレームヘッダが付加されたデータをフレームとして送信バッファ部１０２へ送る。また、ヘッダ付与部１０１は、送信バッファ部１０２からバッファ空き情報を入手し、空きサイズが閾値より小さくなった場合、内部インタフェース部１００へデータ出力の停止を要求する。なお、フレームヘッダには、再送に使用するタイプ、フラグ、シーケンス番号に加えて、あて先アドレス、送信元アドレス等のフレームの送信に必要な情報が設定される。
【００４０】
送信バッファ部１０２は、ヘッダ付与部１０１から入力されたフレームをフレームに付与されているシーケンス番号に従い保存する。送信バッファ部１０２は本件発明の格納部及び読出処理部に相当する。送信バッファ部１０２は、読出し可能なフレームが保存されている場合には、そのフレームを読出し、読み出されたフレームをＡＣＫ／ＮＡＫ生成部１０３へ送る。送信バッファ部１０２は、ＡＣＫ／ＮＡＫ生成部１０３からの読出し停止に応じてフレームの読出しを停止する。更に、送信バッファ部１０２は、送信バッファ制御部１１２からの再送信指示に従い、当該再送信フレームを再度読出しその読み出された再送信フレームをＡＣＫ／ＮＡＫ生成部１０３へ送る。送信バッファ部１０２は、送信バッファ制御部１１２からの指示により、内部のフレームを削除する。
【００４１】
ＡＣＫ／ＮＡＫ生成部１０３は、フレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示を受けると、送信バッファ部１０２へフレームの読出し停止を指示し、そのＡＣＫ／ＮＡＫ生成指示に応じてＡＣＫフレーム又はＮＡＫフレームを生成する。ＡＣＫ／ＮＡＫ生成部１０３は、フレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示を受けなくなると、送信バッファ部１０２へのフレームの読出し停止を解除し、送信バッファ部１０２から送られてきたフレームをＩＤ付与部１１４へ送る。ＡＣＫ／ＮＡＫ生成部１０３は本発明の生成部に相当する。
【００４２】
なお、ＡＣＫ／ＮＡＫ生成指示には、次に受信すべきフレームのシーケンス番号、そのフレームに付与されるはずのトランザクション識別子が含まれる。ＮＡＫの生成指示には、更に、シーケンス番号と後述する再送データ量ＲＤＳ（Retransmission Data Size）とから生成される再送されるべきフレームの中の最終フレームを示すシーケンス番号（以降、ＥＯＳ（End Of Sequence number）又は最終シーケンス番号と表記する）が含まれる。ＡＣＫ／ＮＡＫ生成部１０３は、生成するＡＣＫ／ＮＡＫに、次に受信すべきフレームのシーケンス番号、トランザクション識別子、及びＥＯＳを設定する。
【００４３】
ＩＤ付与部１１４は、フレーム識別部１１１から送られる再送／更新指示により、ＡＣＫ／ＮＡＫ生成部１０３から送られるフレームが再送フレームであるか否かを知る。ＩＤ付与部１１４は、そのフレームが再送フレームである場合、トランザクション識別子を更新又は付加し、当該フレームをＥＣＣ付与部１０４へ送る。ＩＤ付与部１１４は、そのフレームが再送フレームでない場合、そのフレームに現在保持されているトランザクション識別子を付加し、当該フレームをＥＣＣ付与部１０４へ送る。
【００４４】
なお、再送／更新指示には、ＮＡＫフレームに設定されている再送が要求されるフレームのシーケンス番号、ＥＯＳ、及び当該ＮＡＫフレームに設定されていたトランザクション識別子が含まれる。
【００４５】
ＥＣＣ付与部１０４は、ＩＤ付与部１１４からフレームを受けると、当該フレームのヘッダ部のための誤り訂正符号（以降、ヘッダ誤り訂正符号と表記する）を計算し、そのヘッダ誤り訂正符号をヘッダの一部として当該フレームに付与する。また、ＥＣＣ付与部１０４は、ヘッダ誤り訂正符号が付与されたフレームをＥＤＣ付与部１０５へ送る。ヘッダ誤り訂正符号としては、一般的によく用いられるハミング、ＲＳ、ＢＣＨ符号等が利用される。
【００４６】
ＥＤＣ付与部１０５は、ＥＣＣ付与部１０４からフレームを取得すると、当該フレームのための誤り検出符号（以降、フレーム誤り検出符号と表記する）を計算し、このフレーム誤り検出符号を当該フレームに付与する。ＥＤＣ付与部１０５は、フレーム誤り検出符号が付加されたフレームを送信部１０６へ送る。フレーム誤り検出符号には、一般的によく用いられるＣＲＣ符号などが利用される。
【００４７】
送信部１０６は、ＥＤＣ付与部１０５からフレームを取得し、取得されたフレームに対して符号化、スクランブル、シリアライズを行い、それら処理により得られた信号を回線１を介して送信する。例えば、送信部１０６は、イーサネット（登録商標）におけるＰＣＳ（Physical Coding Sub-layer）、ＰＭＡ（Physical Medium Attachment）、ＰＭＤ（Physical Medium Dependent）相当の送信機能を持つ。
【００４８】
受信部１０８は、回線２を介して受信された信号に対してデシリアライズ、デスクランブル、復号化を行い、得られたデータをフレームとしてヘッダ誤り訂正部１０９へ送る。例えば、受信部１０８は、イーサネット（登録商標）におけるＰＣＳ、ＰＭＡ、ＰＭＤ相当の受信機能を持つ。
【００４９】
ヘッダ誤り訂正部１０９は、受信部１０８からフレームを受けると、当該フレームのヘッダ部に対する誤り訂正を行い、このヘッダ誤り訂正の結果と訂正されたフレームとをフレーム誤り検出部１１０へ送る。
【００５０】
フレーム誤り検出部１１０は、ヘッダ誤り訂正部１０９からフレームを受けると、当該フレームの誤り検出を行い、このフレーム誤り検出の結果、上記ヘッダ誤り訂正の結果、当該フレーム、及び当該フレームのフレーム長をフレーム識別部１１１へ送る。なお、ヘッダ誤り訂正部１０９及びフレーム誤り検出部１１０は本件発明の検出部に相当する。
【００５１】
フレーム識別部１１１は、フレーム誤り検出部１１０からヘッダ誤り訂正の結果、フレーム誤り検出の結果、フレーム及びフレーム長を取得し、再送データ量設定部１１５から後述する再送データ量ＲＤＳを取得すると、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームヘッダの内容に応じた処理を行う。フレーム識別部１１１の具体的処理内容については後述する。フレーム識別部１１１は本発明の決定部及び更新部に相当する。
【００５２】
送信バッファ制御部１１２は、再送／更新指示をフレーム識別部１１１から受けると、その再送／更新指示が再送指示を示す場合には、送信バッファ部１０２へシーケンス番号、ＥＯＳ及び再送指示を送る。送信バッファ制御部１１２は、その再送／更新指示が更新指示を示す場合には、送信バッファ部１０２内の当該フレームを削除するため、送信バッファ部１０２へシーケンス番号と更新指示を送る。送信バッファ制御部１１２は本件発明の読出処理部に相当する。
【００５３】
受信バッファ部１１３は、フレーム識別部１１１からフレームを受けると、当該フレームをシーケンス番号に従って保存する。受信バッファ部１１３は、フレーム識別部１１１からフレームの廃棄指示が受けるとそのフレームを廃棄する。更に、受信バッファ部１１３は、読出し可能なフレームが存在する場合には、内部インタフェース部１００へその旨を通知し、内部インタフェース部１００からのフレーム読出し指示に従いフレームを読出し、読み出されたフレームを内部インタフェース部１００へ送る。なお、フレームの読出しはシーケンス番号順に行われる。
【００５４】
再送データ量設定部１１５は、ＣＰＵ等の制御部（図示せず）から送られる再送データ量ＲＤＳを保持し、そのＲＤＳをフレーム識別部１１１へ送る。ＲＤＳとは、誤りが発生したフレームからの再送信すべきデータ量を示す。再送データ量設定部１１５は、再送データ取得部と表記することもできる。
【００５５】
図２は、フレーム識別部１１１の処理構成例を概念的に示す図である。
フレーム識別部１１１は、図２に示されるように、ヘッダ処理部２０１、再送／更新処理部２０２、受信処理部２０３、ＮＡＫテーブル部２０４等を有する。
【００５６】
ヘッダ処理部２０１は、フレーム誤り検出部１１０からヘッダ誤り訂正の結果、フレーム誤り検出の結果、フレーム及びフレーム長を取得すると、そのフレームデータからフラグ、シーケンス番号、トランザクション識別子（ＸＩＤ）、ＥＯＳを抽出する。ヘッダ処理部２０１は、ヘッダ誤り訂正の結果、フラグの状態に応じて、それら抽出された情報を再送／更新処理部２０２及び受信処理部２０３へ送る。なお、ヘッダ処理部２０１は、ヘッダ誤り訂正の結果が訂正不能を示す場合、そのフレームを廃棄する。
【００５７】
再送／更新処理部２０２は、ヘッダ処理部２０１から取得されたフラグがＡＣＫフラグ又はＮＡＫフラグを示す場合に、再送／更新指示を生成し、この再送／更新指示を送信バッファ制御部１１２及びＩＤ付与部１１４へ送る。
【００５８】
ＮＡＫテーブル部２０４は、受信処理部２０３から、正常受信されたフレームのシーケンス番号及びフレーム長を取得し、これら情報に基づいて既に受信されたフレームに関する情報を格納するテーブルを生成し、そのテーブル情報を受信処理部２０３へ送る。
【００５９】
受信処理部２０３は、ヘッダ処理部２０１から、ＳＮフラグ、ＲＴフラグ、フレーム誤り検出の結果を取得し、ＮＡＫテーブル部２０４から、当該フレームの受信状況を取得し、再送データ量設定部１１５からＲＤＳを取得する。受信処理部２０３は、これら取得された情報に基づいて、ＡＣＫ／ＮＡＫ生成指示を生成する。受信処理部２０３は、ＮＡＫ生成指示を生成する場合、上述したように、次に受信すべきフレームのシーケンス番号、そのフレームに付与されるはずのトランザクション識別子、ＥＯＳを当該ＮＡＫ生成指示に含める。受信処理部２０３は、ＡＣＫ／ＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３に送る。また、受信処理部２０３は、当該フレームデータの保存指示又はフレームの廃棄指示を受信バッファ部１１３へ送る。
【００６０】
受信処理部２０３は、フレーム種別（再送フレームか否か）及びフレーム誤りの条件に応じて、バースト誤りを検出し、バースト誤りに応じて最終シーケンス番号ＥＯＳの値を決定する。即ち、バースト誤りに応じてトータル再送データ量が調整される。なお、再送フレームが受信された場合と非再送フレームが受信された場合とでは、ＥＯＳの生成処理の方法が異なる。再送フレームが受信された場合、未受信フレームの情報は既にＮＡＫテーブル部２０４で管理されているため、ＮＡＫテーブル部２０４に格納される情報を利用することによりＥＯＳの値が決定される。
【００６１】
一方、非再送フレームが受信された場合、受信処理部２０３は、前回フレーム誤り又はフレームロスが発生したフレームからＥＯＳで示されるフレームまでの間、即ち、再送データ量ＲＤＳの間、新たなフレーム誤り又はフレームロスを監視する。以降、フレーム誤り又はフレームロスを総称してフレーム障害と表記する場合もある。当該監視のために、例えば、受信処理部２０３は、後述する変数「ＴＳＥＱ（Temporarily Sequence number）」を利用することにより、フレーム障害が検出される度に、最終シーケンス番号ＥＯＳが算出される。前回ＮＡＫ送信時に付与された前ＥＯＳと一致しないＥＯＳを含むＮＡＫはｅＮＡＫ（拡張ＮＡＫ）と表記される。なお、ＴＳＥＱの初期値には、ＮＥＸＴ＿ＳＥＱが利用される。
【００６２】
フレーム識別部１１１内では、フレームの識別及び管理を行うために、例えば、以下のような変数を使用してもよい。
・ＮＥＸＴ＿ＳＥＱ：受信側の変数であり、次に受信すべき先頭フレームのシーケンス番号を保持する。
・ＮＨＥＤ＿ＳＥＱ（１）：受信側の変数であり、受信済み先頭フレームのシーケンス番号を保持し、ＮＡＫテーブル部２０４に登録される。
・ＮＮＡＫ＿ＳＥＱ（１）：受信側の変数であり、ＮＥＸＴ＿ＳＥＱにより特定されるフレームの次に受信すべき先頭フレームのシーケンス番号を保持し、ＮＡＫテーブル部２０４に登録される。
・ＲＣＶ＿ＳＥＱ：受信フレームに含まれるシーケンス番号を保持する。
・ＲＣＶ＿ＸＩＤ：受信フレームに含まれるトランザクション識別子を保持する。
・ＬＥＮ：受信フレームのフレーム長を保持する。ＬＥＮには、例えば、ＭＡＣのフレーム長である６４バイトから１５１８バイトの値が設定される。
・ＲＣＶ＿ＥＯＳ：受信されたＮＡＫフレームに含まれる、再送すべきフレームの中の最終フレームのシーケンス番号を保持する。
・ＲＥＧ＿ＳＸＩＤ：送信側の変数であり、次の送信フレームに設定するためのトランザクション識別子を保持する。この変数は、受信されたＡＣＫ／ＮＡＫフレームに含まれるトランザクション識別子（ＲＣＶ＿ＸＩＤ）と比較されることで、その受信フレームが対応済みか否かを判定するために利用される。
・ＲＥＧ＿ＲＸＩＤ：受信側の変数であり、受信済みのフレームのトランザクション識別子を保持する。この変数は、受信されたフレームに含まれるトランザクション識別子（ＲＣＶ＿ＸＩＤ）と比較されることで、その受信フレームが受信側で既に受信されたフレームであるか否かを判定するために利用される。
・ＰＥＯＳ：送信側の変数であり、直近で対応されたＮＡＫフレーム又は拡張ＮＡＫフレームに設定されていたＥＯＳの値を保持する。
・ＴＳＥＱ：受信側の変数であり、次に受信予定のフレームのシーケンス番号を保持する。この変数は、フレーム障害が発生した後に受信されたフレームの連続性を確認するため、即ち、ＥＯＳを更新する必要のあるフレームロスが再度発生したことを確認するために設けられている。
【００６３】
受信側では、ＮＥＸＴ＿ＳＥＱ以降のシーケンス番号を含むフレームが受信バッファ部１１３で管理される。受信側の通信端末２０は、ＮＡＫテーブル部２０４に格納される情報に基づいて既に受信されたフレーム及び未だ受信されていないフレームを判別し、ＮＥＸＴ＿ＳＥＱの次に受信すべきシーケンス番号を認識する。
【００６４】
図３Ａ及び図３Ｂは、ＮＡＫテーブル部２０４への登録方法の例を概念的に示す図である。例えば、ＮＡＫテーブル部２０４には、正常受信されたフレームに関し、シーケンス番号（ＲＣＶ＿ＳＥＱ）と、シーケンス番号（ＲＣＶ＿ＳＥＱ）及びそのフレーム長（ＬＥＮ）が加算された値とが格納される。図３Ａ及び図３Ｂの例によれば、前者がＮＨＥＤ＿ＳＥＱ（ｐ）（図示されるＨ（ｐ））として設定され、後者がＮＮＡＫ＿ＳＥＱ（ｐ）（図示されるＮ（ｐ））として設定される。図３Ａ及び図３Ｂにおいて、Ｆ（ｗ）は登録すべきフレームを示し、Ｆ（ｘ）及びＦ（ｙ）は既に登録されているフレームを示す。ＮＡＫテーブル部２０４に関してはフレームＦ（ｗ）を登録する前後の各状態がそれぞれ示される。ｄ−９９は受信側で次に受信すべきシーケンス番号（ＮＥＸＴ＿ＳＥＱ）を示し、ｄ−１００からｄ−１０７は受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）又は受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）に受信フレーム長（ＬＥＮ）を加算して得られる値を示す。ここの説明では、或るフレームに関し、シーケンス番号（ＲＣＶ＿ＳＥＱ）をＳ値と表記し、シーケンス番号（ＲＣＶ＿ＳＥＱ）に受信フレーム長（ＬＥＮ）を加算して得られる値をＳＬ値と表記する場合もある。
【００６５】
図３Ａの（１）には、何も登録されていないＮＡＫテーブル部２０４にフレームＦ（ｗ）を登録する場合が示される。この場合、フレームＦ（ｗ）のｄ−１０２がＨ（１）に設定され、フレームＦ（ｗ）のｄ−１０３がＮ（１）に設定される。ｄ−１０２は、フレームＦ（ｗ）のＳ値を示し、ｄ−１０３は、フレームＦ（ｗ）のＳＬ値を示す。
【００６６】
図３Ａの（２）には、フレームＦ（ｘ）が既に登録されている状態で、フレームＦ（ｗ）を登録する場合が示される。図３Ａの（２）では、フレームＦ（ｘ）のＳ値とフレームＦ（ｗ）のＳＬ値とが（ｄ−１０２で）一致する場合が例示される。この場合、Ｈ（１）が、フレームＦ（ｗ）のＳ値（ｄ−１０１）に更新される。
【００６７】
図３Ａの（３）には、フレームＦ（ｘ）が既に登録されている状態で、フレームＦ（ｗ）を登録する場合が示される。図３Ａの（３）では、フレームＦ（ｘ）のＳＬ値とフレームＦ（ｗ）のＳ値とが（ｄ−１０３で）一致する場合が例示される。この場合、Ｎ（１）が、フレームＦ（ｗ）のＳＬ値（ｄ−１０４）に更新される。
【００６８】
図３Ａの（４）には、フレームＦ（ｘ）が既に登録されている状態で、フレームＦ（ｗ）を登録する場合が示される。図３Ａの（４）では、フレームＦ（ｗ）のＳＬ値（ｄ−１０１）がフレームＦ（ｘ）のＳ値（ｄ−１０２）よりも小さい場合が例示される。この場合、Ｈ（１）にフレームＦ（ｗ）のＳ値（ｄ−１００）が設定され、Ｎ（１）にフレームＦ（ｗ）のＳＬ値（ｄ−１０１）が設定され、Ｈ（２）にフレームＦ（ｘ）のＳ値（ｄ−１０２）が設定され、Ｎ（２）にフレームＦ（ｘ）のＳＬ値（ｄ−１０３）が設定される。
【００６９】
図３Ｂの（５）には、フレームＦ（ｘ）が既に登録されている状態で、フレームＦ（ｗ）を登録する場合が示される。図３Ｂの（５）では、フレームＦ（ｗ）のＳ値（ｄ−１０６）がフレームＦ（ｘ）のＳＬ値（ｄ−１０３）よりも大きい場合が例示される。この場合、Ｈ（１）にフレームＦ（ｘ）のＳ値（ｄ−１０２）が設定され、Ｎ（１）にフレームＦ（ｘ）のＳＬ値（ｄ−１０３）が設定され、Ｈ（２）にフレームＦ（ｗ）のＳ値（ｄ−１０６）が設定され、Ｎ（２）にフレームＦ（ｗ）のＳＬ値（ｄ−１０７）が設定される。
【００７０】
図３Ｂの（６）には、フレームＦ（ｘ）及びＦ（ｙ）が既に登録されている状態で、フレームＦ（ｗ）を登録する場合が示される。図３Ｂの（６）では、フレームＦ（ｘ）のＳＬ値がフレームＦ（ｗ）のＳ値と（ｄ−１０３）で一致し、かつ、フレームＦ（ｗ）のＳＬ値がフレームＦ（ｙ）のＳ値と（ｄ−１０６）で一致する場合が例示される。この場合、Ｎ（１）がフレームＦ（ｙ）のＳＬ値（ｄ−１０７）に更新され、Ｈ（２）及びＮ（２）が削除される。
【００７１】
図３Ｂの（７）には、フレームＦ（ｘ）及びＦ（ｙ）が既に登録されている状態で、フレームＦ（ｗ）を登録する場合が示される。図３Ｂの（７）では、フレームＦ（ｘ）のＳＬ値（ｄ−１０３）がフレームＦ（ｗ）のＳ値（ｄ−１０４）より小さく、かつ、フレームＦ（ｗ）のＳＬ値（ｄ−１０５）がフレームＦ（ｙ）のＳ値（ｄ−１０６）よりも小さい場合が例示される。この場合、元のＨ（２）及び元のＮ（２）が新たなＨ（３）及び新たなＮ（３）に変更され、Ｈ（２）にはフレームＦ（ｗ）のＳ値（ｄ−１０４）が設定され、Ｎ（２）にはフレームＦ（ｗ）のＳＬ値（ｄ−１０５）が設定される。
【００７２】
図３Ａ及び図３Ｂの例によれば、ＮＡＫテーブル部２０４は、ＳＥＱの小さいフレームから順にその情報を登録し、Ｈ（ｐ＋１）とＮ（ｐ）とが同じ値になるレコード（行）を統合する。このようにすれば、ＮＡＫテーブル部２０４の登録数を抑えることができる。
【００７３】
〔動作例〕
以下、第１実施形態における通信装置１０及び２０の動作例について説明する。
【００７４】
図４は、ＡＣＫ／ＮＡＫ生成部１０３の動作例を示すフローチャートである。
ＡＣＫ／ＮＡＫ生成部１０３は、送信バッファ部１０２から読み出し中のフレームの存在を確認する（Ｓ３０）。ＡＣＫ／ＮＡＫ生成部１０３は、読み出し中のフレームが存在する場合（Ｓ３０；ＹＥＳ）、更に、フレーム識別部１１１からのＡＣＫ／ＮＡＫ生成指示の存在を確認する（Ｓ３１）。ＡＣＫ／ＮＡＫ生成部１０３は、読み出し中のフレームが有りかつＡＣＫ／ＮＡＫ生成指示が無い場合（Ｓ３０；ＹＥＳかつＳ３１；ＮＯ）、その読み出されたフレームをＩＤ付与部１１４へ送る（Ｓ３６）。
【００７５】
ＡＣＫ／ＮＡＫ生成部１０３は、読み出されたフレームが有りかつＡＣＫ／ＮＡＫ生成指示が有る場合（Ｓ３０；ＹＥＳかつＳ３１；ＹＥＳ）、送信バッファ部１０２へフレームの読み出し停止指示を送る（Ｓ３３）。続いて、ＡＣＫ／ＮＡＫ生成部１０３は、ＡＣＫ／ＮＡＫ生成指示に応じてＡＣＫフレーム又はＮＡＫフレームを生成する（Ｓ３４）。
【００７６】
ＡＣＫ／ＮＡＫ生成部１０３は、生成されたフレームをＩＤ付与部１１４へ送ると共に、送信バッファ部１０２へフレームの読み出し停止の解除指示を送る（Ｓ３５）。以降、ＡＣＫ／ＮＡＫ生成部１０３は、送信バッファ部１０２から読み出されたフレームをＩＤ付与部１１４へ送る（Ｓ３６）。
【００７７】
ＡＣＫ／ＮＡＫ生成部１０３は、送信バッファ部１０２から読み出されたフレームが無い場合でも（Ｓ３０；ＮＯ）、ＡＣＫ／ＮＡＫ生成指示が有る場合（Ｓ３２；ＹＥＳ）、上述と同様に、ＡＣＫ／ＮＡＫ生成指示に応じてＡＣＫフレーム又はＮＡＫフレームを生成し（Ｓ３７）、生成されたフレームをＩＤ付与部１１４へ送る。
【００７８】
図５は、ＩＤ付与部１１４の動作例を示すフローチャートである。
上述のように、ＡＣＫ／ＮＡＫ生成部１０３から送信用フレームを受けると（Ｓ４０；ＹＥＳ）、ＩＤ付与部１１４は、送信用フレーム内のＳＮフラグが１であるか否かをチェックする（Ｓ４１）。ＩＤ付与部１１４は、ＳＮフラグが１でない場合（Ｓ４１；ＦＡＬＳＥ）、そのフレームがＡＣＫ／ＮＡＫフレームであり送信フレームでないと判断し、そのままそのフレームをＥＣＣ付与部１０４へ送る（Ｓ４７）。
【００７９】
一方、ＩＤ付与部１１４は、ＳＮフラグが１である場合（Ｓ４１；ＴＲＵＥ）、その送信用フレームが送信フレームであると判断し、フレーム識別部１１１からの再送指示の存在を確認する（Ｓ４２）。ＩＤ付与部１１４は、再送指示が無い場合（Ｓ４２；ＮＯ）、当該送信用フレームのシーケンス番号（ＳＥＱ）と一つ前のフレームに設定されていたシーケンス番号（ＰＲＥ＿ＳＥＱ）とを比較する（Ｓ４８）。
【００８０】
ＰＲＥ＿ＳＥＱがＳＥＱ以上である場合（Ｓ４８；ＦＡＬＳＥ）、ＩＤ付与部１１４は、シーケンス番号が一巡していると判断し、そのフレームのトランザクション識別子を更新する（Ｓ４４及びＳ４５）。図５の例では、そのフレームのトランザクション識別子（ＲＣＶ＿ＸＩＤ）が１加算される。
【００８１】
続いて、ＩＤ付与部１１４は、ＳＥＱの値をＰＲＥ＿ＳＥＱに反映させた後（Ｓ４６）、当該フレームをＥＣＣ付与部１０４へ送る（Ｓ４７）。
【００８２】
一方、ＩＤ付与部１１４は、フレーム識別部１１１からの再送指示が有る場合（Ｓ４２；ＹＥＳ）、その送信用フレームのＲＴフラグが１に設定されておりかつその送信用フレームのシーケンス番号（ＳＥＱ）がフレーム識別部１１１から当該再送指示と共に送られてきた受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）と一致しているか否かを確認する（Ｓ４３）。ＲＴフラグが１に設定されているフレームは再送フレームであることを示す。
【００８３】
ＩＤ付与部１１４は、その送信用フレームが再送フレームであり（ＲＴ＝１）、かつ、その送信用フレームのシーケンス番号（ＳＥＱ）が受信側で要求されているシーケンス番号（ＲＣＶ＿ＳＥＱ）と等しい場合に（ＲＣＶ＿ＳＥＱ＝ＳＥＱ）（Ｓ４３；ＴＲＵＥ）、送信用フレームのトランザクション識別子を更新する（Ｓ４４及びＳ４５）。なお、ＩＤ付与部１１４は、ＲＴが１でないか又はＲＣＶ＿ＳＥＱとＳＥＱとが異なる場合に（Ｓ４３；ＦＡＬＳＥ）、フレーム識別部１１１で保持されている値（例えば、ＲＥＧ＿ＳＸＩＤ）をその送信用フレームに設定する（Ｓ４５）。以降、上述したように、処理（Ｓ４６）及び（Ｓ４７）が実行される。
【００８４】
このように本実施形態では、通常のフレーム送信からフレームの再送信に移行する際に、トランザクション識別子が１インクリメントされる。以降、再送フレームが送出される間を再送シーケンス期間と表記する場合もある。これにより、各フレームに設定されるトランザクション識別子は、或る再送シーケンス期間の開始から次の再送シーケンス期間の開始までを示すということもできる。
【００８５】
次に、フレーム識別部１１１の動作例について図６、図７、図８Ａ及び図８Ｂを用いて説明する。図６は、ヘッダ処理部２０１の動作例を示すフローチャートである。図６には、送信側及び受信側の両方の処理が示されている。
【００８６】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から受信フレームを受けると、ヘッダ誤り訂正部１０９によるヘッダ誤り訂正が完了しているか否かをチェックする（Ｓ５０）。ヘッダ誤り訂正が完了していない場合（Ｓ５０；ＮＯ）、ヘッダ処理部２０１は、当該受信フレームを廃棄する（Ｓ５１）。ヘッダ誤り訂正が完了している場合（Ｓ５０；ＹＥＳ）、ヘッダ処理部２０１は、その受信フレームに設定されているフラグを確認する（Ｓ５２）。
【００８７】
ヘッダ処理部２０１は、ＳＮフラグが１に設定されている場合（Ｓ５２；ＳＮ）、その受信フレームを送信フレームと判断し、その受信フレームからシーケンス番号ＲＣＶ＿ＳＥＱ及びトランザクション識別子ＲＣＶ＿ＸＩＤを抽出する。ヘッダ処理部２０１は、抽出されたＲＣＶ＿ＳＥＱ及びＲＣＶ＿ＸＩＤと共に、その受信フレームを受信処理部２０３に送る（Ｓ５３）。
【００８８】
一方、ＡＣＫフラグ又はＮＡＫフラグに１が設定されている場合（Ｓ５２；ＡＣＫ／ＮＡＫ）、ヘッダ処理部２０１は、その受信フレームをＡＣＫフレーム又はＮＡＫフレームであると判断し、その受信フレームからシーケンス番号ＲＣＶ＿ＳＥＱ、トランザクション識別子ＲＣＶ＿ＸＩＤ、最終シーケンス番号ＲＣＶ＿ＥＯＳを抽出する。ヘッダ処理部２０１は、抽出されたＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ及びＲＣＶ＿ＥＯＳを再送／更新処理部２０２へ送る（Ｓ５４）。
【００８９】
図７は、再送／更新処理部２０２の動作例を示すフローチャートである。再送／更新処理部２０２は、送信側の処理を行う。再送／更新処理部２０２は、ＡＣＫフレーム又はＮＡＫフレームの受信に応じて動作する。
【００９０】
再送／更新処理部２０２は、ヘッダ処理部２０１からＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ、ＲＣＶ＿ＥＯＳを受けると（Ｓ６０；ＹＥＳ）、トランザクション識別子ＲＣＶ＿ＸＩＤ及び最終シーケンス番号ＲＣＶ＿ＥＯＳが以下の条件４を満たすか否かをチェックする（Ｓ６１）。
（条件４）ＲＣＶ＿ＸＩＤ≧ＲＥＧ＿ＳＸＩＤ又はＲＣＶ＿ＥＯＳ＞ＰＥＯＳ
【００９１】
上記条件４の中の前者（ＲＣＶ＿ＸＩＤ≧ＲＥＧ＿ＳＸＩＤ）は、保持されるトランザクション識別子と受信されたトランザクション識別子とが同一となっているか又は更新されたか否かの判定を意味する。上記条件４の中の後者（ＲＣＶ＿ＥＯＳ＞ＰＥＯＳ）は、最終シーケンス番号が更新されたか否かの判定を意味する。再送／更新処理部２０２は、保持されるトランザクション識別子と受信されたトランザクション識別子とが同一となっているか又は更新された場合、若しくは、最終シーケンス番号が更新された場合には（Ｓ６１；ＴＲＵＥ）、その受信フレームに対応する必要があると認識し、そうでない場合には（Ｓ６１；ＦＡＬＳＥ）、その受信フレームは対応済みと認識する。
【００９２】
上記条件４を満たさない場合（Ｓ６１；ＦＡＬＳＥ）、再送／更新処理部２０２は、受信されたＡＣＫフレーム又はＮＡＫフレームは対応済みと判断し、その受信フレームを無視（廃棄）する。上記条件４を満たす場合（Ｓ６１；ＴＲＵＥ）、再送／更新処理部２０２は、その受信フレームが未対応であると判断し、次のように動作する。
【００９３】
その受信フレームが未対応である場合（Ｓ６１；ＴＲＵＥ）、再送／更新処理部２０２は、その受信フレームに設定されているフラグに基づいてその受信フレームがＡＣＫフレームであるか又はＮＡＫフレームであるかを識別する（Ｓ６２）。
【００９４】
その受信フレームがＮＡＫフレームである場合（Ｓ６２；ＮＡＫ）、再送／更新処理部２０２は、ヘッダ処理部２０１から送られてきたＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＥＯＳ及びＲＣＶ＿ＸＩＤを含む再送指示を生成する。再送／更新処理部２０２は、その再送指示を送信バッファ制御部１１２及びＩＤ付与部１１４へ送る（Ｓ６４）。再送／更新処理部２０２は、続いて、上記条件４に基づいて、ＲＥＧ＿ＳＸＩＤ及びＰＥＯＳの各値を更新する（Ｓ６５）。具体的には、条件４の中のＲＣＶ＿ＸＩＤ≧ＲＥＧ＿ＳＸＩＤが成立する場合、ＲＣＶ＿ＸＩＤに１を加算した値がＲＥＧ＿ＳＸＩＤに設定される。また、条件４の中のＲＣＶ＿ＥＯＳ＞ＰＥＯＳが成立する場合、ＲＣＶ＿ＥＯＳの値がＰＥＯＳに代入される。なお、本実施形態では、ＲＥＧ＿ＳＸＩＤの更新にＲＣＶ＿ＸＩＤを使用しているが、ＩＤ付与部１１４で保持されているＸＩＤが使用されても良い。
【００９５】
これにより、未対応のＮＡＫフレームが受信された場合には、再送シーケンスが開始されるか、又は、再送シーケンス中において最終シーケンス番号が更新される。結果、再送シーケンス期間中に受信された、拡張ＮＡＫフレーム以外のＮＡＫフレームは、対応済みと判定される。
【００９６】
一方、当該受信フレームがＡＣＫフレームである場合（Ｓ６２；ＡＣＫ）、再送／更新処理部２０２は、更新指示を生成し、その更新指示を送信バッファ制御部１１２及びＩＤ付与部１１４へ送る（Ｓ６３）。その更新指示には、そのＡＣＫフレームに含まれるＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤが含まれる。これにより、ＡＣＫフレームに含まれるＲＣＶ＿ＳＥＱより小さい（前の）シーケンス番号を含むフレームが送信バッファ部１０２から削除される。
【００９７】
図８Ａ及び図８Ｂは、受信処理部２０３の動作例を示すフローチャートである。受信処理部２０３は受信側の処理を行う。
【００９８】
受信処理部２０３は、ヘッダ処理部２０１から、ＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ及び受信フレームを受けると（Ｓ７００；ＹＥＳ）、その受信フレームが次に受信すべき先頭フレームであるか否かを判定する（Ｓ７０１）。この判定は、その受信フレームのＲＣＶ＿ＳＥＱとＮＥＸＴ＿ＳＥＱとが一致するか否かにより行われる。
【００９９】
まず、受信フレームが次に受信すべき先頭フレームであった場合（Ｓ７０１；ＴＲＵＥ）の処理について説明する。受信処理部２０３は、その受信フレームが次に受信すべき先頭フレームである場合には（Ｓ７０１；ＴＲＵＥ）、その受信フレームに含まれるトランザクション識別子（ＲＣＶ＿ＸＩＤ）をＲＥＧ＿ＲＸＩＤに保持する（Ｓ７０２）。続いて、受信処理部２０３は、その受信フレームに誤りがあるか否かを判定する（Ｓ７０３）。
【０１００】
受信フレームに誤りがある場合で（Ｓ７０３；ＹＥＳ）かつその受信フレームが再送フレームである場合には（Ｓ７０４；ＦＡＬＳＥ）、受信処理部２０３は、ＮＡＫテーブル部２０４のＮＨＥＤ＿ＳＥＱ（最大ｐ）の値をＥＯＳへ設定する（Ｓ７０６）。一方、受信フレームに誤りがある場合で（Ｓ７０３；ＹＥＳ）かつその受信フレームが再送フレームでない場合には（Ｓ７０４；ＴＲＵＥ）、受信処理部２０３は、その受信フレームのＲＣＶ＿ＳＥＱにＲＤＳを加算した値をＥＯＳに設定することにより、ＥＯＳを更新する（Ｓ７０５）。
【０１０１】
受信処理部２０３は、そのように更新されたＥＯＳと共に、ＮＥＸＴ＿ＳＥＱ及びＲＥＧ＿ＲＸＩＤを含むＮＡＫ生成指示を生成し、そのＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７４２）。その後、受信処理部２０３は、その受信フレームを廃棄し（Ｓ７４６）、再度、ヘッダ処理部２０１からの入力を待つ（Ｓ７００）。
【０１０２】
その受信フレームに誤りがない場合には（Ｓ７０３；ＮＯ）、受信処理部２０３は、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱの登録があるか否かをチェックする（Ｓ７１０）。受信処理部２０３は、ＮＮＡＫ＿ＳＥＱの登録がない場合（Ｓ７１０；ＮＯ）、当該受信フレーム以降、フレーム障害の発生したフレームが存在していないため、現状のＮＥＸＴ＿ＳＥＱにその受信フレームのフレーム長（ＬＥＮ）を加算することにより、ＮＥＸＴ＿ＳＥＱを更新し（Ｓ７２０）、その更新されたＮＥＸＴ＿ＳＥＱと共に、ＲＣＶ＿ＸＩＤを含むＡＣＫ生成指示を生成する（Ｓ７２１）。受信処理部２０３は、そのＡＣＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送り、その受信フレームを受信バッファ部１１３へ送る（Ｓ７２２）。
【０１０３】
受信フレームに誤りがなく、かつ、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱの登録がある場合（Ｓ７０３；ＮＯ、Ｓ７１０；ＹＥＳ）、受信処理部２０３は、以下の条件３を判定する（Ｓ７１１）。以下の条件３は、既に受信しているフレームと現受信フレームとの間に未受信のフレームがあるか否かを判定するための条件である。以下の条件３が成立した場合（Ｓ７１１；ＴＲＵＥ）、当該未受信フレームがないことを示し、条件３が成立しない場合（Ｓ７１１；ＦＡＬＳＥ）、当該未受信フレームがあることを示す。
（条件３）ＮＨＥＤ＿ＳＥＱ（１）＝＝ＮＥＸＴ＿ＳＥＱ＋ＬＥＮ
【０１０４】
上記条件３が成立しない場合（Ｓ７１１；ＦＡＬＳＥ）、受信処理部２０３は、現状のＮＥＸＴ＿ＳＥＱにその受信フレームのフレーム長（ＬＥＮ）を加算することによりＮＥＸＴ＿ＳＥＱを更新する（Ｓ７１２）。その後、受信処理部２０３は、その受信フレームが再送フレームであれば（Ｓ７１３；ＦＡＬＳＥ）、更新されたＮＥＸＴ＿ＳＥＱと共に、ＲＣＶ＿ＸＩＤを含むＡＣＫ生成指示を生成する（Ｓ７３３）。一方、その受信フレームが再送フレームでない場合（Ｓ７１３；ＴＲＵＥ）、受信処理部２０３は、ＮＡＫテーブル部２０４のＮＨＥＤ＿ＳＥＱ（最大ｐ）の値をＥＯＳに設定し（Ｓ７１４）、更新されたＥＯＳと共に、ＮＥＸＴ＿ＳＥＱ及びＲＣＶ＿ＸＩＤを含むＮＡＫ生成指示を生成する（Ｓ７１５）。受信処理部２０３は、そのように生成されたＡＣＫ生成指示又はＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送り、その受信フレームを受信バッファ部１１３へ送る（Ｓ７２２）。
【０１０５】
上記条件３が成立する場合（Ｓ７１１；ＴＲＵＥ）、未受信フレームがないため、受信処理部２０３は、現状のＮＥＸＴ＿ＳＥＱにＮＡＫテーブル部２０４のＮＮＡＫ＿ＳＥＱ（１）を設定することにより、ＮＥＸＴ＿ＳＥＱを更新する（Ｓ７３０）。これにより、ＮＥＸＴ＿ＳＥＱには、現受信フレーム以降に受信されるべきフレームであって未だ受信されていない先頭フレームのシーケンス番号が設定されることになる。続いて、受信処理部２０３は、ＮＡＫテーブル部２０４から、ＮＨＥＤ＿ＳＥＱ（１）及びＮＮＡＫ＿ＳＥＱ（１）を含むレコードを削除する（Ｓ７３１）。これにより、ＮＡＫテーブル部２０４に格納される他のレコードのレコード番号ｐが繰り上げられる。
【０１０６】
受信処理部２０３は、ＮＡＫテーブル部２０４の更新後、更に、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）の登録があり、かつ、当該受信フレームが再送フレームであるか否かが判定される（Ｓ７３２）。ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）の登録があり、かつ、当該受信フレームが再送フレームでない場合（Ｓ７３２；ＴＲＵＥ）、受信処理部２０３は、上述した処理（Ｓ７１４）以降の処理を行う。一方、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）の登録がない場合、又は、当該受信フレームが再送フレームである場合（Ｓ７３２；ＦＡＬＳＥ）、受信処理部２０３は、上述した処理（Ｓ７３３）以降の処理を行う。
【０１０７】
次に、受信フレームが次に受信すべき先頭フレームでなかった場合（Ｓ７０１；ＦＡＬＳＥ）の処理について説明する。受信処理部２０３は、その受信フレームが次に受信すべき先頭フレームでない場合には（Ｓ７０１；ＦＡＬＳＥ）、以下の条件１を判定する。以下の条件１は、受信フレームのシーケンス番号が次に受信すべき先頭フレームのシーケンス番号よりも小さく、かつ、受信フレームのトランザクション識別子が既に受信済みであることを判定する。
（条件１）ＲＣＶ＿ＳＥＱ＜ＮＥＸＴ＿ＳＥＱかつＲＣＶ＿ＸＩＤ＝ＲＥＧ＿ＲＸＩＤ
【０１０８】
条件１が成立する場合（Ｓ７４０；ＴＲＵＥ）かつその受信フレームが再送フレームである場合（Ｓ７４１；ＦＡＬＳＥ）、受信処理部２０３は、現在、再送フレーム受信中であり、以後、ＮＥＸＴ＿ＳＥＱのシーケンス番号を持つ再送フレームを受信する可能性があると判断し、ＮＥＸＴ＿ＳＥＱ及びＲＣＶ＿ＸＩＤを含むＡＣＫ生成指示を生成する（Ｓ７４５）。一方、条件１が成立する場合（Ｓ７４０；ＴＲＵＥ）かつその受信フレームが再送フレームでない場合（Ｓ７４１；ＴＲＵＥ）、受信処理部２０３は、その受信フレームは既に受信しているフレームと判断し、ＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７４２）。受信処理部２０３は、生成されたＡＣＫ生成指示又はＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送り、その受信フレームを廃棄する（Ｓ７４６）。
【０１０９】
条件１が成立しない場合（Ｓ７４０；ＦＡＬＳＥ）、受信処理部２０３は、その受信フレームに関する情報がＮＡＫテーブル部２０４に登録されているか否かを確認する（Ｓ７５０）。その受信フレームに関する情報が登録されていない場合（Ｓ７５０；ＮＯ）、受信処理部２０３は、その受信フレームに関する情報をＮＡＫテーブル部２０４へ登録する（Ｓ７５１）。ＮＡＫテーブル部２０４への登録では、上述した通りであり、受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）がＮＨＥＤ＿ＳＥＱ（ｐ）へ、シーケンス番号（ＲＣＶ＿ＲＥＱ）にフレーム長（ＬＥＮ）を加算して得られる値がＮＮＡＫ＿ＳＥＱ（ｐ）へ設定される。
【０１１０】
続いて、受信処理部２０３は、ＥＯＳを生成する（Ｓ７５２）。この処理（Ｓ７５２）については後述する。
【０１１１】
受信処理部２０３は、ＮＥＸＴ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ及びＥＯＳを含むＮＡＫ生成指示を生成し（Ｓ７５３）、このＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る。その後、受信処理部２０３は、その受信フレームに誤りがあれば（Ｓ７５５；ＹＥＳ）、その受信フレームを廃棄し（Ｓ７４６）、その受信フレームに誤りがなければ（Ｓ７５５；ＮＯ）、その受信フレームを受信バッファ部１１３へ送る（Ｓ７２２）。
【０１１２】
図８Ｂは、図８Ａに示されるフローチャートにおけるＥＯＳ生成処理（Ｓ７５２）を更に詳細に示したフローチャートである。受信処理部２０３は、ＥＯＳを生成するにあたり次のように動作する。
【０１１３】
受信処理部２０３は、受信フレームのＲＴフラグを確認することにより、その受信フレームが再送フレームであるか否かを判定する（Ｓ７８０）。受信処理部２０３は、その受信フレームが再送フレームであると判定すると（Ｓ７８０；ＦＡＬＳＥ）、ＮＡＫテーブル部２０４に格納されるＮＨＥＤ＿ＳＥＱ（最大ｐ）の値をＥＯＳへ代入する（Ｓ７８１）。
【０１１４】
一方、受信処理部２０３は、その受信フレームが再送フレームでないと判定すると（Ｓ７８０；ＴＲＵＥ）、フレーム誤り検出の結果を参照することにより、その受信フレームに誤りがあるか否かを確認する（Ｓ７８２）。このフレーム誤りの確認は、フレーム誤りとフレームロスとの違いにより、ＥＯＳの値を変えるために行われる。
【０１１５】
受信フレームに誤りがある場合（Ｓ７８２；ＹＥＳ）、受信処理部２０３は、ＥＯＳより、受信フレームのＲＣＶ＿ＳＥＱが大きいか否かを判定する（Ｓ７８３）。判定処理（Ｓ７８２）及び（Ｓ７８３）により、フレーム障害が発生した先頭フレーム（ＳＥＱ）から再送データ量ＲＤＳの間のフレームに次のフレーム障害が発生しているか否かが確認される。これは、言い換えれば、再送シーケンス間のフレーム障害の発生の確認である。ＲＣＶ＿ＳＥＱがＥＯＳ以下である場合（Ｓ７８３；ＦＡＬＳＥ）は、受信処理部２０３は、再送シーケンス間にフレーム障害が発生したと判断し、ＴＳＥＱに、受信フレームのＲＣＶ＿ＳＥＱを代入し、かつ、ＥＯＳに、そのＲＣＶ＿ＳＥＱとＲＤＳとの和を代入することにより、次に受信予定のフレームのシーケンス番号ＴＳＥＱ及び最終シーケンス番号ＥＯＳを更新する（Ｓ７８５）。
【０１１６】
ＲＣＶ＿ＳＥＱがＥＯＳより大きい場合（Ｓ７８３；ＴＲＵＥ）、受信処理部２０３は、更に、ＮＥＸＴ＿ＳＥＱがＥＯＳより大きいか否かを判定する（Ｓ７８４）。ＮＥＸＴ＿ＳＥＱがＥＯＳより大きい場合とは、再送信が完了し、非再送フレームが受信されている状態を意味する。受信処理部２０３は、ＮＥＸＴ＿ＳＥＱがＥＯＳ以下である場合（Ｓ７８４；ＦＡＬＳＥ）、フレーム障害の間隔が再送データ量ＲＤＳより大きいと判断し、ＥＯＳ及びＴＳＥＱを更新しない（Ｓ７８６）。これにより、無駄な再送を抑える。ＮＥＸＴ＿ＳＥＱがＥＯＳより大きい場合（Ｓ７８４；ＴＲＵＥ）、受信処理部２０３は、再送シーケンスが終了した後にフレーム障害が発生したと判断し、上記処理（Ｓ７８５）を実行する。
【０１１７】
受信処理部２０３は、フレームに誤りが無い場合（Ｓ７８２；ＮＯ）、受信フレームのシーケンス番号ＲＣＶ＿ＳＥＱがＴＳＥＱと一致するか否かを確認する（Ｓ７９０）。ここで、ＲＣＶ＿ＳＥＱがＴＳＥＱと一致しないことは（Ｓ７９０；ＦＡＬＳＥ）、ＮＥＸＴ＿ＳＥＱ以降のシーケンス番号のフレームでフレームロスが発生していることを意味し、両者が一致することは（Ｓ７９０；ＴＲＵＥ）、その逆を意味する。受信処理部２０３は、両者が一致する場合（Ｓ７９０；ＴＲＵＥ）、フレームロスが発生していないため、ＴＳＥＱに、ＲＣＶ＿ＳＥＱとＬＥＮとを加算した値を設定し、ＥＯＳを更新しない（Ｓ７９１）。
【０１１８】
受信処理部２０３は、ＲＣＶ＿ＳＥＱとＴＳＥＱとが一致しない場合（Ｓ７９０；ＦＡＬＳＥ）、ＲＣＶ＿ＳＥＱがＥＯＳより大きいか否かを判定する（Ｓ７９２）。これは、上述の判定処理（Ｓ７８３）と同意である。受信処理部２０３は、ＲＣＶ＿ＳＥＱがＥＯＳ以下である場合（Ｓ７９２；ＦＡＬＳＥ）、ＴＳＥＱ及びＥＯＳを次のように更新する（Ｓ７９３）。ＴＳＥＱに、受信フレームのＲＣＶ＿ＳＥＱとそのフレーム長との和が設定され、ＥＯＳに、更新前のＴＳＥＱと再送データ量ＲＤＳとの和が設定される。
【０１１９】
受信処理部２０３は、ＲＣＶ＿ＳＥＱがＥＯＳより大きい場合（Ｓ７９２；ＴＲＵＥ）、ＮＥＸＴ＿ＳＥＱがＥＯＳより大きいか否かを判定する（Ｓ７９４）。ＮＥＸＴ＿ＳＥＱがＥＯＳより大きい場合とは、再送信が完了し、非再送フレームが受信されている状態を意味する。受信処理部２０３は、ＮＥＸＴ＿ＳＥＱがＥＯＳより大きい場合（Ｓ７９４；ＴＲＵＥ）、ＴＳＥＱに、受信フレームのＲＣＶ＿ＳＥＱとそのフレーム長との和を設定し（Ｓ７９６）、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されているか否かを確認する（Ｓ７９７）。ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されていない場合（Ｓ７９７；ＮＯ）、受信処理部２０３は、最終シーケンス番号ＥＯＳに、ＮＥＸＴ＿ＳＥＱと再送データ量ＲＤＳの和を代入することで最終シーケンス番号ＥＯＳを更新する（Ｓ７９８）。ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されている場合（Ｓ７９７；ＹＥＳ）、受信処理部２０３は、ＮＡＫテーブル部２０４で保持されているＮＨＥＤ＿ＳＥＱ（最大ｐ）の値をＥＯＳに設定する（Ｓ７８１）。
【０１２０】
一方、受信処理部２０３は、ＮＥＸＴ＿ＳＥＱがＥＯＳ以下である場合（Ｓ７９４；ＦＡＬＳＥ）、再送信継続中であると判断し、ＥＯＳ及びＴＳＥＱを更新しない（Ｓ７９５）。これにより、無駄な再送を抑える。
【０１２１】
以下、第１実施形態における通信装置１０及び２０の動作例を図９に示される具体的な伝送シーケンス例に基づいて説明する。図９は、誤り発生時の通信端末間の伝送シーケンスの例を示す図である。図１０は、図９の伝送シーケンスの各時点におけるＮＡＫテーブル部２０４の登録例を示す図である。
【０１２２】
図９中の"Ｆ（＊）＃"は送信フレーム又は再送信フレームを示し、"Ａ（＊）＃"はＡＣＫフレームを示し、"Ｎ（＊）＃"及び"ｅＮ（＊）＃"はＮＡＫフレームを示す。"＊"はフレームに付与されるシーケンス番号であり、"＃"は当該フレームのトランザクション識別子を示す。また、図９によれば、シーケンス番号の初期値は５であり、トランザクション識別子の初期値が０であると仮定される。
【０１２３】
図１０におけるＨ（ｐ）及びＮ（ｐ）は図３Ａ及び図３Ｂと同じ意味で用いられる。即ち、Ｈ（ｐ）は、ＮＨＥＤ＿ＳＥＱ（ｐ）を示し、Ｎ（ｐ）は、ＮＮＡＫ＿ＳＥＱ（ｐ）を示す。なお、Ｂ０１時点では、ＮＥＸＴ＿ＳＥＱを示すＮ（０）には、シーケンス番号の初期値（５）が設定されている。
【０１２４】
図９の例では、説明の便宜上、ＡＣＫを受信せずに送信できる受信ウィンドウサイズが１０フレームであり、再送データ量（ＲＤＳ）が２であり、フレーム長（ＬＥＮ）が１であると仮定される。また、図９では、送信フレームＦ（５）０、Ｆ（７）０、Ｆ（１１）０でフレーム誤りが発生し、送信フレームＦ（１０）０でフレームロスが発生し、フレーム誤り及びフレームロスから回復するまでの伝送シーケンスが示される。
【０１２５】
図９の伝送シーケンスによれば、送信フレームＦ（５）０において第１のフレーム誤りが発生すると、受信側の通信端末２０は、Ｂ０１時点において、ＲＤＳ（値２）に応じて決められたＥＯＳ（値７）を含むＮＡＫフレームＮ（５）０を送信する。ここで、ＥＯＳ（値７）は、誤りの発生したフレームのシーケンス番号（値５）にＲＤＳ（値２）を加算することにより得られる。
【０１２６】
次に、上記ＥＯＳで示されるフレーム範囲内の送信フレームＦ（７）において第２のフレーム誤りが発生すると、受信側の通信端末２０は、Ｂ０３時点において、ＥＯＳの値を９に更新し、この更新されたＥＯＳ（値９）を含む拡張ＮＡＫフレームｅＮ（５）０を送信する。これにより、フレームＦ（５）からフレームＦ（９）までが再送されている。
【０１２７】
また、受信側の通信端末２０は、再送シーケンス（フレームＦ（５）１からフレームＦ（９）１）の終了後、Ｂ０９時点で、ＮＡＫテーブル部２０４に登録されている情報からＥＯＳ（値１２）を生成し、ＮＡＫフレームＮ（１０）１を送信することで、フレーム誤り及びフレームロスからの回復が実現される。
【０１２８】
以下、図９に示すＡ０１からＡ０６及びＢ０１からＢ１０の各時点における送信側の通信端末１０及び受信側の通信端末２０の具体的動作をそれぞれ説明する。なお、フレーム識別部１１１の動作については、図６、図７、図８Ａ及び図８Ｂを参照しながら、具体的に説明する。
【０１２９】
〈Ａ０１〉
Ａ０１では、送信側の通信端末１０は、送信フレームＦ（５）０を通信端末２０へ送信する。図１１Ａ及び図１１Ｂは、Ａ０１時点での送信側の通信端末１０で処理されるフレーム及びそのフレームを格納する送信バッファ部１０２を概念的に示す図である。なお、図１１Ｂでは、図面サイズの制限により、フレームＦ（５）を２段で示す場合もある。図１１Ａに示す送信データとは、ＮＩＣ１２が他ブロック１１から取得するデータであり、図１１Ａに示すフレームＦ（５）とは、ヘッダ付与部１０１から送信バッファ部１０２へ送られるフレームである。
【０１３０】
他ブロック１１から取得される送信データにおける、ヘッダ情報ｇ７−０１はデータｇ７−０２を宛先まで送り届けるために必要な情報である。ここではイーサネット（登録商標）が例示されているため、ヘッダ情報ｇ７−０１は、宛先アドレス、送信元アドレス及びＴｙｐｅ／Ｌｅｎｇｔｈなどを含み、ＭＡＣヘッダとも呼ばれる。
【０１３１】
《ヘッダ付与》
通信端末１０と通信端末２０との間でコネクションが確立し、図１１Ａに示される送信データが他ブロック１１から内部インタフェース部１００に送られると、内部インタフェース部１００は、ヘッダ付与部１０１からの受け取り停止指示が有効でない限り、当該送信データをヘッダ付与部１０１へ送る。なお、ヘッダ付与部１０１からの受け取り停止指示が有効である場合、内部インタフェース部１００は、送信データの停止要求を他ブロック１１へ出力する。送信データがヘッダ付与部１０１に送られると、ヘッダ付与部１０１は、送信バッファ部１０２から出力停止指示が無い限り、送信データに再送ヘッダｇ７−０３を挿入する。送信バッファ部１０２からの出力停止指示が有効であれば、ヘッダ付与部１０１は、受け取り停止指示を内部インタフェース部１００へ送る。
【０１３２】
図１１Ａに示されるように、再送ヘッダｇ７−０３は、タイプ、フラグ及びシーケンス番号を含む。タイプには、再送ヘッダを識別するのに使用するため任意の値（イーサネット（登録商標）では２バイト分）が設定される。フラグは、例えば、ＳＮ、ＮＡＫ、ＡＣＫ及びＲＴを示す４ビットで構成され、フレームの識別に使用される。初回フレーム送信時は、ＳＮフラグに１が設定され、再送時のフレームにはＲＴに１が設定される。また、ＡＣＫフレーム、ＮＡＫフレームには、ＡＣＫビット、ＮＡＫビットに１が設定される。Ａ０１の時点では、ヘッダ付与部１０１は、次のようなフラグ（ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝０）を設定する。
【０１３３】
シーケンス番号は、一般的な再送制御では、送信フレームを特定するために使用されるが、本実施形態では、その他に送信バッファ部１０２で格納されているフレームの先頭アドレスをも示す。すなわち、或るフレームのシーケンス番号とフレーム長との和が次フレームのシーケンス番号を示すと共に、送信バッファ部１０２へそのフレームを保存する際の先頭アドレスをも示す。このシーケンス番号を用いて送信バッファ部１０２及び受信バッファ部１１３に対する読出し及び書き込みが行われる。
【０１３４】
ヘッダ付与部１０１により再送ヘッダｇ７−０３が付加されたフレームＦ（５）は、送信バッファ部１０２へ送られる。
【０１３５】
《送信バッファ保存》
図１１Ａには、送信バッファ部１０２に保存されたフレームと、当該フレームの先頭アドレスとシーケンス番号との関係とが示されている。ＳＲ、ｓｒｄ、ｓｒｃ、ＳＷ及びｓｗｒは、送信バッファ部１０２においてフレームの保存及び読み出し制御に利用されるアドレス変数を示す。ｓｒｃは通常ｓｒｄと一緒にカウントされ、再送ではない初回送信のための読み出しが終了したアドレスを示す。言い換えれば、ｓｒｃは再送前に読み出しが終了しているフレームの末尾アドレス（次フレームの先頭アドレス）を示す。ＳＲはＡＣＫが未だ受信されていないフレームの先頭アドレス、ｓｒｄは送信バッファ部１０２から現時点で次に読み出すべき箇所を示すアドレス、ＳＷは次に送信バッファ部１０２に保存されるフレームの先頭アドレス、ｓｗｒは送信バッファ部１０２に現時点で次に書き込むべき箇所を示すアドレスである。この時点では、ＳＲがｄ−３に設定され、ｓｒｄ及びｓｒｃがｄ−５に設定され、ＳＷがｄ−６に設定され、ｓｗｒがｄ−７に設定される。図１１Ａに示されるフレームＦ（５）（ｇ７−０５）に付与されるシーケンス番号ｇ７−０４はｄ−５である。
【０１３６】
フレームｇ７−０５を受けると、送信バッファ部１０２は、再送ヘッダｇ７−０３内のシーケンス番号ｇ７−０４（値ｄ−５）に従って、図１１Ａに示されるように、フレームｇ７−０５をアドレスｄ−５に保存する。つまり、シーケンス番号ｇ７−０４の値はバッファ内アドレスｄ−５と等しい。なお、フレームの書き込み中はｓｗｒが利用され、１フレーム分の書き込みが終了する毎にＳＷにｓｗｒが代入されることにより、バッファの書き込みアドレスが更新されていく。例えば、フレームＦ（５）の書き込みが終了すると、ＳＷには値'ｄ−６'が設定される。
【０１３７】
送信バッファ部１０２は、読み出し可能なフレームが存在する場合、当該フレームの読み出しを行い、ＡＣＫ／ＮＡＫ生成部１０３へ出力する。図１１Ａの場合、送信バッファ部１０２は、ｓｒｄの値（ｄ−５）がＳＷの値（ｄ−６）より小さいため、読み出し可能なフレームが存在すると判断し、ｓｒｄの値（ｄ−５）からＳＷの値（ｄ−６）までのフレームを読み出す。なお、送信バッファ部１０２は、ｓｒｄの値とＳＷの値とが等しい場合、読み出し可能なフレームはないと判断する。ＡＣＫ／ＮＡＫ生成部１０３から読み出し停止指示が与えられると、送信バッファ部１０２は、読み出し停止指示が解除されるまでフレームの読み出しを停止する。
【０１３８】
《ＡＣＫ／ＮＡＫ生成》
フレームｇ７−０５（フレームＦ（５））が与えられると、ＡＣＫ／ＮＡＫ生成部１０３は、フレーム識別部１１１から、ＡＣＫ／ＮＡＫ生成指示がない限り、当該フレームをＩＤ付与部１１４へ送る（図４の処理Ｓ３０、Ｓ３１及びＳ３６に相当）。但し、ここの例では、通信端末１０から通信端末２０への片方向通信のみを想定しているため、通信端末１０のＡＣＫ／ＮＡＫ生成部１０３はＡＣＫ又はＮＡＫを生成しない。
【０１３９】
《トランザクション識別子の付与》
図１１Ｂの（１）には、送信バッファ部１０２から読み出されたフレームＦ（５）（ｇ７−０５）が示されている。図１１Ｂの（１）に示されるフレームｇ７−０５をＡＣＫ／ＮＡＫ生成部１０３から取得したＩＤ付与部１１４は、そのフレームｇ７−０５にトランザクション識別子（図１１Ｂに示されるＸＩＤ）を挿入し、図１１Ｂの（２）に示されるフレームｇ７−０６を出力する。
【０１４０】
ここで、図５を参照しながらトランザクション識別子の具体的な決定手法について説明する。ＩＤ付与部１１４は、フレームｇ７−０５を受け（Ｓ４０；ＹＥＳ）、そのフレームに含まれるＳＮフラグを確認する（Ｓ４１）。Ａ０１時点では、フレームｇ７−０５のＳＮフラグは１であるため（Ｓ４１；ＴＲＵＥ）、ＩＤ付与部１１４は、更に、フレーム識別部１１１からの再送指示の存在を確認する（Ｓ４２）。
【０１４１】
Ａ０１時点では、再送指示は無いため（Ｓ４２；ＮＯ）、ＩＤ付与部１１４は、フレームｇ７−０５のシーケンス番号（ＳＥＱ＝５）と一つ前のフレームに設定されていたシーケンス番号（ＰＲＥ＿ＳＥＱ＝４）とを比較する（Ｓ４８）。ＳＥＱはＰＲＥ＿ＳＥＱより大きいため（Ｓ４８；ＴＲＵＥ）、ＩＤ付与部１１４は、トランザクション識別子（ＸＩＤ＝０）を当該フレームへ挿入し（Ｓ４５）、ＰＲＥ＿ＳＥＱの値をＳＥＱの値（５）とする（Ｓ４６）。
【０１４２】
《誤り訂正及び検出》
このようにフレームｇ７−０６がＩＤ付与部１１４から出力されると、ＥＣＣ付与部１０４は、そのフレームｇ７−０６における宛先アドレスフィールドからＴｙｐｅ／Ｌｅｎｇｔｈフィールドまでのデータのための誤り訂正符号を算出する。ＥＣＣ付与部１０４は、その算出されたヘッダ誤り訂正符号ｇ７−０９をＴｙｐｅ／Ｌｅｎｇｔｈフィールドの前に挿入することにより、図１１Ｂの（３）に示されるフレームｇ７−０８を生成する。ＥＣＣ付与部１０４は、生成されたフレームｇ７−０８をＥＤＣ付与部１０５へ送る。
【０１４３】
当該フレームｇ７−０８を受けると、ＥＤＣ付与部１０５は、そのフレームｇ７−０８における宛先アドレスフィールドからデータフィールドまでのデータのための誤り検出符号を算出する。ＥＤＣ付与部１０５は、算出されたフレーム誤り検出符号ｇ７−１１をフレームの末尾に付加することにより、図１１Ｂの（４）に示されるフレームｇ７−１０を生成する。ＥＤＣ付与部１０５は、生成されたフレームｇ７−１０を送信部１０６へ送る。生成されたフレームｇ７−１０は、図９のフレームＦ（５）０に相当する。
【０１４４】
《送信》
送信部１０６は、ＥＤＣ付与部１０５により生成されたフレームｇ７−１０に対して符号化、スクランブリング、シリアライズを行うことにより送信信号を生成し、その送信信号を回線１を介して送出する。
【０１４５】
このようなＡ０１時点での処理は、ウィンドウサイズ（例えば１０）に達するまで繰り返し実行される。但し、図９の例では、通信端末１０は、Ａ０２時点でＮＡＫを受信するため、ウィンドウサイズに達する前に処理を止め、ＮＡＫで要求されたシーケンス番号からＲＤＳ（再送データ量）分のフレームを再送する。このようなＡ０２時点での処理については後述する。
【０１４６】
〈Ｂ０１〉
Ｂ０１では、受信側の通信端末２０は、フレーム誤りの発生したフレームＦ（５）０を受信してから、ＮＡＫフレームＮ（５）０を返信するまでの処理を実行する。
【０１４７】
《受信》
図１２Ａ及び図１２Ｂは、Ｂ０１時点での受信側の通信端末２０で処理されるフレームを概念的に示す図である。なお、図１２Ａ及び図１２Ｂでは、図面サイズの制限により、フレームを２段で示す場合もある。
【０１４８】
受信側の通信端末２０では、受信部１０８が、通信端末１０から送信されたデータ信号（フレームＦ（５）０）を受信すると、そのデータ信号に対してデシリアライズ、デスクランブリング、復号化を行うことにより、図１２Ａの（１）に示される受信フレームＦ（５）０を取得し、これをヘッダ誤り訂正部１０９へ送る。
【０１４９】
《誤り訂正及び検出》
受信部１０８から受信フレームを受けると、ヘッダ誤り訂正部１０９は、その受信フレームにおける宛先アドレスフィールドからヘッダ誤り訂正符号フィールドまでのデータの誤り（ヘッダ誤り）を当該フレームに付与されているヘッダ誤り訂正符号を用いて訂正する。ヘッダ誤り訂正部１０９は、誤り訂正されたフレームと誤り訂正結果ｇ８−０１をフレーム誤り検出部１１０へ送る。誤り訂正結果は、訂正完了又は訂正未完了を示す。
【０１５０】
フレーム誤り検出部１１０は、ヘッダ誤り訂正部１０９から誤り訂正されたフレームと誤り訂正の結果とを取得すると、そのフレームにおける宛先アドレスフィールドからデータフィールドまでのデータの誤り（フレーム誤り）をそのフレームに付与されているフレーム誤り検出符号を用いて検出する。更に、フレーム誤り検出部１１０は、そのフレームのフレーム長をカウントする。但し、送信バッファ部１０２のアドレスと受信バッファ部１１３のアドレスとの整合をとるため、そのフレームに含まれるＸＩＤとフレーム誤り検出符号とを除外したフレームの長さがカウントされる。
【０１５１】
フレーム誤り検出部１１０は、図１２Ａの（２）に示されるように、ヘッダ誤り訂正の結果ｇ８−０１、フレーム誤り検出の結果ｇ８−０２、フレーム長ＬＥＮｇ８−０３をそのフレームに含めた上で、そのフレームをフレーム識別部１１１へ送る。なお、フレームに誤りがある場合、当該フレーム長ＬＥＮには例えば'０'が設定される。
【０１５２】
《フレーム識別》
フレーム識別部１１１は、そのフレームに誤りが発生していること及びそのフレームが再送フレームでないことを確認し、ＥＯＳを生成する。ＥＯＳは、再送データ量設定部１１５から提供されるＲＤＳとそのフレームに含まれるシーケンス番号とを加算することにより算出される。この例では、ＲＤＳを２とすると、ＥＯＳは、７（＝５＋２）に決定される。フレーム識別部１１１は、算出されたＥＯＳ（７）と、次に受信すべきフレームのシーケンス番号（ＮＥＸＴ＿ＳＥＱ＝５）と、トランザクション識別子とを含むＮＡＫ生成指示（図１２Ａの（３）参照）を生成しそのＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３に送る。
【０１５３】
ここで、上述した図６、図７、図８Ａ及び図８Ｂと共に、図１３Ａ及び図１３Ｂを参照しながら、Ｂ０１時点におけるフレーム識別部１１１の処理をより具体的に説明する。図１３Ａは、送信側の通信端末１０のフレーム識別部１１１で保持される各変数値と受信フレームと送信フレームとの関係を示す図であり、図１３Ｂは、受信側の通信端末２０のフレーム識別部１１１で保持される各変数値と受信フレームと送信フレームとの関係を示す図である。図１３Ａ及び図１３Ｂには、図９に示される各時点での各変数値がそれぞれ表わされている。図１３Ｂに示されるように、Ｂ０１時点における受信側の通信端末２０のフレーム識別部１１１では、各変数は次のような値に設定されている。ＮＥＸＴ＿ＳＥＱ＝５、ＲＥＧ＿ＲＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０、ＮＨＥＤ＿ＳＥＱ（１）、ＮＮＡＫ＿ＳＥＱ（１）、ＲＥＧ＿ＳＸＩＤ、ＲＣＶ＿ＥＯＳ及びＬＥＮ＝ＮＵＬＬ。
【０１５４】
ヘッダ処理部２０１は、図１２Ａの（２）に示すフレームを受けると、ヘッダ誤り訂正が完了しているか否かをチェックする（図６のＳ５０）。ここでは、フレームＦ（５）０にはフレーム誤りが生じているが、ヘッダ誤り訂正は完了したものと仮定する。また、Ａ０１時点で説明されたように、フレームＦ（５）０のフラグは次のように設定されている（ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝０）。よって、ヘッダ処理部２０１は、ヘッダ誤り訂正が完了しており（Ｓ５０；ＹＥＳ）、かつ、そのフレームのフラグがＳＮ＝１であることを確認すると（Ｓ５２；ＳＮ）、当該受信フレームからシーケンス番号ＲＣＶ＿ＳＥＱ、トランザクション識別子ＲＣＶ＿ＸＩＤを抽出し、それら抽出されたデータと共にその受信フレームを受信処理部２０３へ送る（Ｓ５３）。
【０１５５】
受信処理部２０３は、ヘッダ処理部２０１から、ＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ及び受信フレーム（図１２Ａの（２））を受けると（図８ＡのＳ７００；ＹＥＳ）、ＲＣＶ＿ＳＥＱの値とＮＥＸＴ＿ＳＥＱの値とが一致するか否か判定する（Ｓ７０１）。Ｂ０１時点では、ＲＣＶ＿ＳＥＱ（値５）とＮＥＸＴ＿ＳＥＱ（値５）（図１３Ｂ参照）とが一致するため（Ｓ７０１；ＴＲＵＥ）、受信処理部２０３は、ＲＣＶ＿ＸＩＤ（値０）をＲＥＧ＿ＲＸＩＤに設定することにより、ＲＥＧ＿ＲＸＩＤを更新する（Ｓ７０２）。これにより、受信側の通信端末２０では、そのフレームＦ（５）０が既に受信されたフレームとして認識される。
【０１５６】
続いて、受信処理部２０３は、その受信フレームのフレーム誤り検出の結果ｇ８−０２を参照することにより、その受信フレームに誤りが有るか否かを判定する（Ｓ７０３）。Ｂ０１時点では、フレームＦ（５）０に誤りが含まれているため（Ｓ７０３；ＹＥＳ）、受信処理部２０３は、その受信フレームのＲＴフラグを確認する（Ｓ７０４）。Ｂ０１時点ではＲＴフラグは０であるため（Ｓ７０４；ＴＲＵＥ）、受信処理部２０３は、その受信フレームが再送フレームでないと判断し、ＥＯＳを決定する（Ｓ７０５）。ここでは、再送データ量設定部１１５から供給される再送データ量ＲＤＳ（例えば２）とその受信フレームのシーケンス番号ＲＣＶ＿ＳＥＱとを加算することにより、ＥＯＳは、７（＝ＲＣＶ＿ＳＥＱ＋ＲＤＳ＝５＋２）に決定される。
【０１５７】
続いて、受信処理部２０３は、ＮＥＸＴ＿ＳＥＱ（値５）とＥＯＳ（値７）とＲＥＧ＿ＲＸＩＤ（値０）とを含むＮＡＫ生成指示を生成し（Ｓ７４２）、そのＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る。その後、受信処理部２０３は、その受信フレームを廃棄する（Ｓ７４６）。
【０１５８】
《ＡＣＫ／ＮＡＫ生成》
ＡＣＫ／ＮＡＫ生成部１０３は、フレーム識別部１１１からＮＡＫ生成指示（図１２Ａの（３））を取得すると、そのＮＡＫ生成指示に応じてＮＡＫフレームＮ（５）０（図１２Ａの（４））を生成する。このときＮＡＫフレームＮ（５）０内のフラグは、次のように設定され（ＳＮ＝０、ＡＣＫ＝０、ＮＡＫ＝１、ＲＴ＝０）、シーケンス番号には５（ＮＥＸＴ＿ＳＥＱ）が設定され、ＥＯＳｇ８−０４には７が設定され、ＸＩＤには０が設定される。このようなＡＣＫ／ＮＡＫ生成部１０３の処理は、図４におけるＳ３０、Ｓ３２及びＳ３７に相当する。
【０１５９】
ＡＣＫ／ＮＡＫ生成部１０３は、生成されたＮＡＫフレームＮ（５）０をＩＤ付与部１１４へ送る。なお、送信バッファ部１０２から読み出されたフレームが有る場合、ＡＣＫ／ＮＡＫ生成部１０３は、読み出し停止指示を送信バッファ部１０２へ出力した後、上述のような処理を行う（図４におけるＳ３０、Ｓ３１、Ｓ３３、Ｓ３４、Ｓ３５及びＳ３６に相当）。
【０１６０】
《トランザクション識別子付与》
ＩＤ付与部１１４は、ＡＣＫ／ＮＡＫ生成部１０３からＮＡＫフレームＮ（５）０（図１２Ａの（４））を受けると、このフレームのＳＮフラグ（＝０）を確認することにより、そのフレームが送信フレーム又は再送信フレームでないと判断し、そのＮＡＫフレームをＥＣＣ付与部１０４へ送る。このようなＩＤ付与部１１４の処理は、図５におけるＳ４０、Ｓ４１及びＳ４７に相当する。
【０１６１】
《誤り訂正及び検出》
ＥＣＣ付与部１０４は、ＩＤ付与部１１４からＮＡＫフレームＮ（５）０を受けると、そのフレームの宛先アドレスフィールドからＴｙｐｅ／Ｌｅｎｇｔｈフィールドまでのデータのための誤り訂正符号を算出する。ＥＣＣ付与部１０４は、その算出されたヘッダ誤り訂正符号ｇ８−０５をＴｙｐｅ／Ｌｅｎｇｔｈフィールドの前に挿入し、そのヘッダ誤り訂正符号ｇ８−０５を含むＮＡＫフレーム（図１２Ｂの（５）参照）をＥＤＣ付与部１０５へ送る。
【０１６２】
ＥＤＣ付与部１０５は、ＮＡＫフレームＮ（５）０（図１２Ｂの（５））を受けると、そのフレームにおける宛先アドレスフィールドからパディングフィールドまでのデータのための誤り検出符号を算出する。ＥＤＣ付与部１０５は、算出されたフレーム誤り検出符号ｇ８−０６をそのフレームの末尾に付加し、フレーム誤り検出符号ｇ８−０６を含むＮＡＫフレームＮ（５）０を送信部１０６へ送る。
【０１６３】
《送信》
送信部１０６は、ＥＤＣ付与部１０５からＮＡＫフレームＮ（５）０（図１２Ｂの（６））を受けると、そのフレームデータに対して符号化、スクランブリング及びシリアライズを行うことで送信信号を生成し、その送信信号を回線２を介して送信する。
【０１６４】
〈Ａ０２〉
Ａ０２では、送信側の通信端末１０は、受信側の通信端末２０から、ＮＡＫフレームＮ（５）０を受信してから、再送フレームＦ（５）１を送信するまでの処理を実行する。ＮＡＫフレームＮ（５）０が送信側の通信端末１０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０１６５】
《フレーム識別》
図１３Ａに示されるように、Ａ０２時点における送信側の通信端末１０のフレーム識別部１１１では、各変数は次のような値に設定されている。ＲＥＧ＿ＳＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０、ＲＣＶ＿ＥＯＳ＝７、ＬＥＮ＝１、その他の各変数値＝ＮＵＬＬ。
【０１６６】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びＮＡＫフレームＮ（５）０のフレーム長を取得すると、ヘッダ誤り訂正の結果を参照することによりヘッダ誤り訂正が完了していると判断する（図６のＳ５０；ＹＥＳ）。続いて、ヘッダ処理部２０１は、当該フレームに含まれるフラグを確認することにより、受信フレームがＮＡＫフレームであることを認識する（Ｓ５２；ＡＣＫ／ＮＡＫ）。
【０１６７】
ヘッダ処理部２０１は、当該受信フレームからＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＥＯＳ、ＲＣＶ＿ＸＩＤを抽出し、これらデータを再送／更新処理部２０２へ送る（Ｓ５４）。Ａ０２時点では、上述したように、ＲＣＶ＿ＳＥＱは５であり、ＲＣＶ＿ＥＯＳは７であり、ＲＣＶ＿ＸＩＤは０である。
【０１６８】
再送／更新処理部２０２は、ヘッダ処理部２０１からＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値７）及びＲＣＶ＿ＸＩＤ（値０）を受けると（図７のＳ６０；ＹＥＳ）、上述の条件４を判定する（Ｓ６１）。Ａ０２時点では、ＲＣＶ＿ＸＩＤ（値０）≧ＲＥＧ＿ＳＸＩＤ（値０）が成立する（Ｓ６１；ＴＲＵＥ）。また、当該受信フレームは、ＮＡＫフレームＮ（５）０である（Ｓ６２；ＮＡＫ）。よって、再送／更新処理部２０２は、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値７）、ＲＣＶ＿ＸＩＤ（値０）を含む再送指示を送信バッファ制御部１１２及びＩＤ付与部１１４へ送る（Ｓ６４）。その後、再送／更新処理部２０２は、ＲＣＶ＿ＸＩＤ（値０）≧ＲＥＧ＿ＳＸＩＤ（値０）が成立しているため、ＲＣＶ＿ＸＩＤ（値０）に１を加算した値をＲＥＧ＿ＳＸＩＤに設定し、ＲＣＶ＿ＥＯＳ（７）をＰＥＯＳに設定する（Ｓ６５）。これにより、ＲＥＧ＿ＳＸＩＤは１に設定され、ＰＥＯＳは７に設定される。
【０１６９】
図１４Ａ及び図１４Ｂは、Ａ０２時点での送信側の通信端末１０で処理されるフレーム及びそのフレームを格納する送信バッファ部１０２を概念的に示す図である。なお、図１４Ｂでは、図面サイズの制限により、フレームを２段で示す場合もある。図１４Ａの（１）には、再送／更新処理部２０２により生成された再送指示が示される。
【０１７０】
《送信バッファ制御》
図１４Ａの（１）に示される再送指示が送信バッファ制御部１１２に送られると、送信バッファ制御部１１２は、その再送指示に含まれるＲＣＶ＿ＳＥＱ（値５）及びＲＣＶ＿ＥＯＳ（値７）と共に、再送指示を送信バッファ部１０２へ通知する。上述したように、シーケンス番号ＲＣＶ＿ＳＥＱは、送信バッファ部１０２に格納される再送フレームの先頭アドレスを示している。
【０１７１】
送信バッファ部１０２は、ＲＣＶ＿ＳＥＱで示されるアドレス（ｄ−５）が先頭アドレスとなるフレームから、ＲＣＶ＿ＥＯＳで示されるアドレス（ｄ−７）が先頭アドレスとなるフレームまでを読み出す。このとき、既に初回読み出しが終了しているフレームに対して、再送フレームであることを示すフラグ（ＲＴ＝１）が設定される。Ａ０２時点では、送信バッファ部１０２内の各アドレス変数は、図１４Ａの（２）に示されるような値となっている。即ち、ＳＲはｄ−５を示し、ｓｒｄとｓｒｃはフレームＦ（１１）０が送信されているためｄ−１２を示し、ＳＷはｄ−１２を示し、ｓｗｒはｄ−１３を示す。
【０１７２】
送信バッファ部１０２は、図１４Ａの（１）で示される再送指示を受けると、図１４Ａの（２）に示されるように、ｓｒｄをＲＣＶ＿ＳＥＱ（ｄ−５）に設定し、ｓｒｄで示されるアドレスからフレームを読み出す。送信バッファ部１０２は、ｓｒｄがＥＯＳ（ｄ−７）を超えるまで、読み出されたフレームのＲＴフラグに１を設定する。つまり、Ａ０２時点以降、フレームＦ（５）、Ｆ（６）及びＦ（７）が再送のために順次読み出される。図９の例によれば、Ａ０２時点では、フレームＦ（５）が読み出される。ところで、実際の運用ではフレーム長は可変長であるため、ＲＤＳの値によればＥＯＳは必ずしもフレームの先頭アドレスを示さない場合もあり得る。このような場合、即ち、ＥＯＳがフレームの中間アドレスを示す場合には、そのフレームまでが読み出される。
【０１７３】
《ＡＣＫ／ＮＡＫ生成》
上述のように再度読み出されたフレームＦ（５）（図１４Ｂの（４））がＡＣＫ／ＮＡＫ生成部１０３に送られると、ＡＣＫ／ＮＡＫ生成部１０３は、上述したＡ０１時点と同様に、フレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示がないため、当該フレームＦ（５）をＩＤ付与部１１４へ送る。
【０１７４】
《トランザクション識別子付与》
ＩＤ付与部１１４は、ＡＣＫ／ＮＡＫ生成部１０３からフレームＦ（５）（図１４Ｂの（４））を受けると、そのフレームにトランザクション識別子ｇ９−０１を挿入し、図１４Ｂの（５）で示されるフレームを出力する。トランザクション識別子の具体的な決定手法については以下のとおりである（図５参照）。
【０１７５】
ＩＤ付与部１１４は、ＡＣＫ／ＮＡＫ生成部１０３からフレームＦ（５）を受け、フレーム識別部１１１から、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値７）及びＲＣＶ＿ＸＩＤ（値０）を含む再送指示を受けている（図５のＳ４０；ＹＥＳかつＳ４２；ＹＥＳ）。更に、フレームＦ（５）のＳＮフラグは１に設定されている（Ｓ４１；ＴＲＵＥ）。よって、ＩＤ付与部１１４は、フレームＦ（５）のＲＴフラグ及びシーケンス番号ＳＥＱ、並びに受信されたＮＡＫフレームのシーケンス番号ＲＣＶ＿ＳＥＱを確認する。ＩＤ付与部１１４は、ＲＴフラグが１でありかつＳＥＱ（値５）とＲＣＶ＿ＳＥＱ（値５）とが等しいため（Ｓ４３；ＴＲＵＥ）、ＲＣＶ＿ＸＩＤ（値０）に１を加算した値をトランザクション識別子ｇ９−０１としてそのフレームＦ（５）に挿入する（Ｓ４４及びＳ４５）。ＩＤ付与部１１４は、トランザクション識別子ｇ９−０１（値１）を含む再送フレームＦ（５）１をＥＣＣ付与部１０４へ送る（Ｓ４７）。
【０１７６】
《誤り訂正及び検出》《送信》
ＩＤ付与部１１４からＥＣＣ付与部１０４へ送られた再送フレームＦ（５）１は、Ａ０１時点の処理と同様に、回線１を介して通信端末２０へ送信される。
【０１７７】
〈Ｂ０２〉
Ｂ０２では、受信側の通信端末２０は、フレームＦ（６）０を受信してから、ＮＡＫフレームＮ（５）０を返信するまでの処理を実行する。フレームＦ（６）０が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０１７８】
図１５Ａ及び図１５Ｂは、Ｂ０２時点での受信側の通信端末２０で処理されるフレーム及びそのフレームを格納する受信バッファ部１１３を概念的に示す図である。なお、図１５Ａでは、図面サイズの制限により、フレームを２段で示す場合もある。図１５Ａの（１）には、フレーム誤り検出部１１０から出力される受信フレームＦ（６）０が示される。
【０１７９】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０２時点では、Ｂ０１時点からＲＣＶ＿ＳＥＱが５から６に変わっており、ＬＥＮがＮＵＬＬから１に変わっている。その他の各変数は、Ｂ０１時点と同様である。
【０１８０】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（６）０（図１５Ａの（１））のフレーム長を取得すると、フレームＦ（６）０に関しヘッダ誤り訂正が完了している（訂正の必要ない）ことを確認する（図６のＳ５０；ＹＥＳ）。ヘッダ処理部２０１は、フレームＦ（６）０のフラグの設定状況（ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝０）に応じて（Ｓ５２；ＳＮ）、そのフレームＦ（６）０が初回送信フレームであると判断する。ヘッダ処理部２０１は、その受信フレームＦ（６）０からＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤを抽出し、それらデータ及びそのフレームを受信処理部２０３へ送る（Ｓ５３）。
【０１８１】
これらデータを取得した受信処理部２０３は、Ｂ０２時点では、ＲＣＶ＿ＳＥＱ（値６）とＮＥＸＴ＿ＳＥＱ（値５）（図１３Ｂ参照）とが一致しないため（Ｓ７０１；ＦＡＬＳＥ）、ＲＣＶ＿ＳＥＱ（６）及びＲＣＶ＿ＸＩＤ（０）が以下の条件１を満たすか否かをチェックする（Ｓ７４０）。
（条件１）ＲＣＶ＿ＳＥＱ＜ＮＥＸＴ＿ＳＥＱかつＲＣＶ＿ＸＩＤ＝ＲＥＧ＿ＲＸＩＤ
【０１８２】
Ｂ０２時点では、ＲＣＶ＿ＳＥＱ（値６）がＮＥＸＴ＿ＳＥＱ（値５）より大きいため、条件１は成立しない（Ｓ７４０；ＦＡＬＳＥ）。そこで、受信処理部２０３は、フレームＦ（６）０がＮＡＫテーブル部２０４に登録済みであるか否かをチェックする（Ｓ７５０）。フレームＦ（６）０が初めて正常に受信されたフレームであるため、Ｂ０２時点では、ＮＡＫテーブル部２０４には登録がない（Ｓ７５０；ＮＯ）。そこで、受信処理部２０３は、そのフレームＦ（６）０をＮＡＫテーブル部２０４へ登録する（Ｓ７５１）。Ｂ０２時点では、ＲＣＶ＿ＳＥＱ（値６）及びＬＥＮ（値１）であるため、図１５Ａの（２）に示されるように、ＮＨＥＤ＿ＳＥＱ（１）にはｄ−６（＝ＲＣＶ＿ＳＥＱ）が設定され、ＮＮＡＫ＿ＳＥＱ（１）にはｄ−７（＝ＲＣＶ＿ＳＥＱ＋ＬＥＮ）が設定される。
【０１８３】
続いて、受信処理部２０３は、次のようにＥＯＳを生成する（Ｓ７５２）。
【０１８４】
具体的には、受信処理部２０３は、まず、ＲＴフラグを確認することによりその受信フレームＦ（６）０が再送フレームでないことを確認する（図８ＢのＳ７８０；ＴＲＵＥ）。受信処理部２０３は、その受信フレームＦ（６）０に誤りが無いことを確認すると（Ｓ７８２；ＮＯ）、フレームＦ（６）０のＲＣＶ＿ＳＥＱ（値６）がＴＳＥＱと一致するか否かを確認する（Ｓ７９０）。ＴＳＥＱの初期値はＮＥＸＴ＿ＳＥＱとなるため、Ｂ０２時点ではＴＳＥＱには５が設定されている。
【０１８５】
受信処理部２０３は、ＲＣＶ＿ＳＥＱ（値６）とＴＳＥＱ（値５）とが一致しないため（Ｓ７９０；ＦＡＬＳＥ）、ＲＣＶ＿ＳＥＱとＥＯＳとを比較する（Ｓ７９２）。Ｂ０２時点では、ＥＯＳは７（＝ＮＥＸＴ＿ＳＥＱ（値５）＋ＲＤＳ（値２））であり、ＲＣＶ＿ＳＥＱは６である。よって、受信処理部２０３は、ＴＳＥＱ及びＥＯＳを更新する（Ｓ７９３）。具体的には、ＴＳＥＱに、フレームＦ（６）０のＲＣＶ＿ＳＥＱ（値６）とそのフレーム長ＬＥＮ（値１）との和が設定され、ＥＯＳに、ＴＳＥＱ（値５）と再送データ量ＲＤＳ（値２）との和が設定される。結果、更新後のＴＳＥＱは７となり、更新後のＥＯＳは７となる。
【０１８６】
受信処理部２０３は、このように生成されたＥＯＳ（値７）、次に受信すべきフレームのシーケンス番号（ＮＥＸＴ＿ＳＥＱ＝５）、及びトランザクション識別子（ＲＣＶ＿ＸＩＤ＝０）を含むＮＡＫ生成指示を生成しそのＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３に送る（Ｓ７５３）。なお、このとき生成されたＮＡＫ生成指示は、Ｂ０１時点で生成されたＮＡＫ生成指示（図１２Ａの（３））と同じ内容となる。
【０１８７】
続いて、受信処理部２０３は、その受信フレームＦ（６）０に誤りが無いことを確認すると（Ｓ７５５；ＮＯ）、その受信フレームＦ（６）０（図１５Ａの（１））からＲＣＶ＿ＸＩＤ、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びＬＥＮを削除したフレームＦ（６）（図１５Ｂの（３））とＮＥＸＴ＿ＳＥＱ（値５）とを受信バッファ部１１３へ送る（Ｓ７２２）。
【０１８８】
《受信バッファ》
受信バッファ部１１３は、フレームＦ（６）（図１５Ｂの（３））及びＮＥＸＴ＿ＳＥＱ（値５）をフレーム識別部１１１から受けると、フレームＦ（６）内のＲＣＶ＿ＳＥＱに基づいてそのフレームＦ（６）を保存する。
【０１８９】
図１５Ｂの（４）及び（５）に示されるＲＲ、ｒｒｄ、ＲＷ、ｒｗｒは、受信バッファ部１１３内でのフレームの保存及び読み出しに利用されるアドレス変数を示している。ＲＲは、読み出しが完了していないフレームの先頭アドレスを示し、ｒｒｄは、受信バッファ部１１３から現時点で次に読み出すべき箇所を示すアドレスを示し、ＲＷは、次に受信バッファ部１１３へ保存されるフレームの先頭アドレスを示し、ｒｗｒは、受信バッファ部１１３に現時点で次に書き込むべき箇所を示すアドレスを示す。
【０１９０】
フレームＦ（６）が書き込まれる前では、ＲＲ、ｒｒｄ、ＲＷ及びｒｗｒにはそれぞれ同値（ｄ−５）が設定されている。そして、当該フレームＦ（６）のＲＣＶ＿ＳＥＱが６であることから、ｒｗｒにはｄ−７が設定され、アドレスｄ−６に当該フレームＦ（６）が保存される。フレームＦ（６）保存後の各アドレス変数は、図１５Ｂの（５）に示されるような値に設定される。即ち、ＲＲ、ｒｒｄ及びＲＷが同値（ｄ−５）に設定され、ｒｗｒがｄ−７に設定される。受信バッファ部１１３は、フレームＦ（６）の保存終了後、ＲＷにＮＥＸＴ＿ＳＥＱを代入し、更新されたＲＷとＲＲとを内部インタフェース部１００へ送る。ここで、受信バッファ部１１３内のアドレスｄ−６はＮＡＫテーブル部２０４のＮＨＥＤ＿ＳＥＱ（１）となり、アドレスｄ−７は、ＮＡＫテーブル部２０４のＮＮＡＫ＿ＳＥＱ（１）となる。受信バッファ部１１３からのフレーム読み出しは、ＲＷがＲＲより大きい場合に開始される。ＲＷは、ＡＣＫ／ＮＡＫを返信する際に更新され、その値はＮＥＸＴ＿ＳＥＱとなる。ｒｒｄとＲＲは受信バッファ部１１３からフレームを読み出す毎に更新される。
【０１９１】
《読み出し》
内部インタフェース部１００は、受信バッファ部１１３からアドレスＲＷ及びＲＲを受けると、これらアドレスが以下の条件２を満たすか否かを判定する。
（条件２）ＲＲ＜ＲＷ
Ｂ０２時点では、ＲＲ及びＲＷは共に５であり、上記条件２が成立しないため、内部インタフェース部１００は、受信バッファ部１１３内に読み出し可能なフレームがないと判断し、読み出し処理を行わない。なお、条件２が成立した場合、内部インタフェース部１００は、受信バッファ部１１３へ読み出し指示を送り、受信バッファ部１１３から読み出されたフレームを他ブロック１１へ送る。
【０１９２】
《送信》
ＥＯＳ（値７）、次に受信すべきフレームのシーケンス番号（ＮＥＸＴ＿ＳＥＱ＝５）、及びトランザクション識別子（ＲＣＶ＿ＸＩＤ＝０）を含むＮＡＫ生成指示がフレーム識別部１１１からＡＣＫ／ＮＡＫ生成部１０３に送られると、Ｂ０１時点と同様に、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６は動作する。結果、ＮＡＫフレームＮ（５）０が回線２を介して通信端末１０へ送られる。
【０１９３】
〈Ａ０３〉
Ａ０３では、送信側の通信端末１０は、受信側の通信端末２０から、ＮＡＫフレームＮ（５）０を受信しそれに対応する処理を実行する。Ａ０３時点での通信端末２０の処理は、対応済みのＮＡＫフレームを受信した際の処理に相当する。ＮＡＫフレームＮ（５）０が送信側の通信端末１０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０１９４】
《フレーム識別》
図１３Ａに示されるように、Ａ０３時点における送信側の通信端末１０のフレーム識別部１１１では、各変数は次のような値に設定されている。ＲＥＧ＿ＳＸＩＤ＝１、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０、ＲＣＶ＿ＥＯＳ＝７、ＬＥＮ＝１、その他の各変数値＝ＮＵＬＬ。
【０１９５】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びＮＡＫフレームＮ（５）０のフレーム長を取得すると、Ａ０２時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＡＣＫ／ＮＡＫ、Ｓ５４）。Ａ０３時点では、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値７）及びＲＣＶ＿ＸＩＤ（値０）がヘッダ処理部２０１から再送／更新処理部２０２へ送られる。
【０１９６】
再送／更新処理部２０２は、ヘッダ処理部２０１からＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値７）及びＲＣＶ＿ＸＩＤ（値０）を受けると（図７のＳ６０；ＹＥＳ）、上記条件４を判定する（Ｓ６１）。Ａ０３時点では、ＲＣＶ＿ＸＩＤ（０）がＲＥＧ＿ＳＸＩＤ（値１）より小さく、かつ、ＲＣＶ＿ＥＯＳ（値７）とＰＥＯＳ（値７）とが一致するため、上記条件４は成立しない（Ｓ６１；ＦＡＬＳＥ）。これにより、再送／更新処理部２０２は、受信フレームであるＮＡＫフレームＮ（５）０が既に対応済みであると判断し、そのＮＡＫフレームＮ（５）０を無視（廃棄）する。Ａ０２時点で既にフレームの再送が開始されており、かつ、その後ＥＯＳが更新されていないため、Ａ０３時点で受信されたＮＡＫフレームＮ（５）０は対応済みである。
【０１９７】
〈Ｂ０３〉
Ｂ０３では、受信側の通信端末２０は、送信側の通信端末１０から、フレーム誤りの発生したフレームＦ（７）０を受信してから、拡張ＮＡＫフレームｅＮ（５）０を送信するまでの処理を実行する。拡張ＮＡＫフレームとは、上述したように、前回送信したＮＡＫフレームに含まれるＥＯＳとは異なる値を持つＥＯＳを含むＮＡＫフレームを意味する。なお、フレームＦ（７）０が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０１９８】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０３時点では、既にフレームＦ（６）０が正常に受信されているため、ＮＨＥＤ＿ＳＥＱ（１）に６（＝ＲＣＶ＿ＳＥＱ）が設定され、ＮＮＡＫ＿ＳＥＱ（１）に７（＝ＲＣＶ＿ＳＥＱ＋ＬＥＮ）が設定されている。また、ＲＣＶ＿ＳＥＱが７に更新されている。
【０１９９】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（７）０のフレーム長を取得すると、当該受信フレームからシーケンス番号ＲＣＶ＿ＳＥＱ（値７）、トランザクション識別子ＲＣＶ＿ＸＩＤ（値０）を抽出し、それら抽出されたデータと共にその受信フレームを受信処理部２０３へ送る（Ｓ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。
【０２００】
受信処理部２０３は、ヘッダ処理部２０１から、ＲＣＶ＿ＳＥＱ（値７）、ＲＣＶ＿ＸＩＤ（値０）及び受信フレームＦ（７）０を受けると（図８ＡのＳ７００；ＹＥＳ）、Ｂ０２時点と同様に、処理（Ｓ７０１；ＦＡＬＳＥ、Ｓ７４０；ＦＡＬＳＥ、Ｓ７５０；ＮＯ、Ｓ７５１）を行う。なお、Ｂ０３時点の処理（Ｓ７５１）では、フレームＦ（７）０には誤りがあるため、ＮＡＫテーブル部２０４にフレームＦ（７）０は登録されない。また、この時点での、ＴＳＥＱ及びＥＯＳは、Ｂ０２時点において更新された値となるため、ＴＳＥＱが７に設定され、ＥＯＳが７に設定されている。
【０２０１】
続いて、受信処理部２０３は、次のようにＥＯＳを生成する（Ｓ７５２）。受信フレームＦ（７）０のＲＴは０であり（Ｓ７８０；ＴＲＵＥ）、そのフレームＦ（７）０にはフレーム誤りが発生している（Ｓ７８２；ＹＥＳ）。そこで、受信処理部２０３は、ＥＯＳ（値７）とＲＣＶ＿ＳＥＱ（値７）とを比較する（Ｓ７８３）。Ｂ０３時点では、両者は等しいため（Ｓ７８３；ＦＡＬＳＥ）、受信処理部２０３は、フレーム障害（フレームＦ（５）０）が発生したフレームからＲＤＳ（値２）の間のフレームにフレーム障害が発生したと判断する。よって、受信処理部２０３は、ＴＳＥＱにフレームＦ（７）０のＲＣＶ＿ＳＥＱ（値７）を代入し、ＥＯＳにＲＣＶ＿ＳＥＱ（値７）とＲＤＳ（値２）との和（値９）を代入する（Ｓ７８５）。更新後のＴＳＥＱは７となり、更新後のＥＯＳは９となる。
【０２０２】
ＥＯＳ（値９）の作成完了後、受信処理部２０３は、ＮＥＸＴ＿ＳＥＱ（値５）、ＥＯＳ（値９）及びＲＣＶ＿ＸＩＤ（値０）を含むＮＡＫ生成指示を生成し、そのＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７５３）。ここで生成されたＮＡＫ生成指示は、Ｂ０１時点及びＢ０２時点で送信されたＮＡＫフレームに含まれたＥＯＳから更新されたＥＯＳを含むため、拡張ＮＡＫの生成指示を意味する。その後、受信処理部２０３は、フレームＦ（７）０に誤りが含まれるため（Ｓ７５５；ＹＥＳ）、そのフレームＦ（７）０を廃棄する（Ｓ７４６）。
【０２０３】
《送信》
ＥＯＳ（９）、ＮＥＸＴ＿ＳＥＱ（５）及びＲＣＶ＿ＸＩＤ（０）を含むＮＡＫ生成指示がフレーム識別部１１１からＡＣＫ／ＮＡＫ生成部１０３に送られると、Ｂ０１時点及びＢ０２時点と同様に、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６は動作する。結果、７から９に更新されたＥＯＳを含む拡張ＮＡＫフレームｅＮ（５）０が回線２を介して通信端末１０へ送られる。
【０２０４】
〈Ａ０４〉
Ａ０４では、送信側の通信端末１０は、受信側の通信端末２０から、拡張ＮＡＫフレームｅＮ（５）０を受信しそれに対応する処理を実行する。拡張ＮＡＫフレームｅＮ（５）０が送信側の通信端末１０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２０５】
《フレーム識別》
図１３Ａに示されるように、Ａ０４時点でのフレーム識別部１１１で保持される各変数については、ＲＣＶ＿ＥＯＳのみがＡ０３時点から変更されている。Ａ０４時点では、ＲＣＶ＿ＥＯＳは９である。
【０２０６】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及び拡張ＮＡＫフレームｅＮ（５）０のフレーム長を取得すると、Ａ０２時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＡＣＫ／ＮＡＫ、Ｓ５４）。Ａ０４時点では、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値９）及びＲＣＶ＿ＸＩＤ（値０）がヘッダ処理部２０１から再送／更新処理部２０２へ送られる。
【０２０７】
再送／更新処理部２０２は、ヘッダ処理部２０１からＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値９）及びＲＣＶ＿ＸＩＤ（値０）を受けると（図７のＳ６０；ＹＥＳ）、上記条件４を判定する（Ｓ６１）。Ａ０４時点では、ＲＣＶ＿ＥＯＳ（値９）がＰＥＯＳ（値７）より大きいため、上記条件４が成立する（Ｓ６１；ＴＲＵＥ）。また、当該受信フレームは、拡張ＮＡＫフレームｅＮ（５）０である（Ｓ６２；ＮＡＫ）。よって、再送／更新処理部２０２は、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＥＯＳ（値９）、ＲＣＶ＿ＸＩＤ（値０）を含む再送指示を送信バッファ制御部１１２及びＩＤ付与部１１４へ送る（Ｓ６４）。その後、再送／更新処理部２０２は、ＲＣＶ＿ＥＯＳ（値９）がＰＥＯＳ（値７）より大きい条件のみ成立するため、ＲＣＶ＿ＥＯＳ（値９）をＰＥＯＳに設定する（Ｓ６５）。これにより、ＲＥＧ＿ＳＸＩＤは１のまま維持され、ＰＥＯＳは９に更新される。
【０２０８】
図１６は、Ａ０４時点での送信側の通信端末１０で処理されるフレーム及びそのフレームを格納する送信バッファ部１０２を概念的に示す図である。図１６の（１）には、フレーム識別部１１１（再送／更新処理部２０２）から出力される再送指示が示される。
【０２０９】
《送信バッファ制御（ｅＮＡＫ受信時）》
図１６の（１）に示される再送指示が送信バッファ制御部１１２に送られると、送信バッファ制御部１１２は、再送指示、再送フレームの先頭アドレスを示すＲＣＶ＿ＳＥＱ（値５）及び再送フレームの終了アドレスを示すＲＣＶ＿ＥＯＳ（値９）を送信バッファ部１０２へ送る。
【０２１０】
送信バッファ部１０２は、再送フレーム読出し中である場合には、再送するデータ量を更新する。具体的には、ＲＣＶ＿ＥＯＳのアドレスをｄ−７から、ｄ−９へ更新する。つまり、ｅＮＡＫによる再送指示を受けることで、送信バッファ部１０２は、図１６の（３）に示されるように、ｄ−８からｄ−１０に保存されているフレームＦ（８）及びＦ（９）を追加で読み出す。送信バッファ部１０２は、このとき、初回読出しが終了しているフレームに対して、再送フレームであることを示すＲＴ＝１のフラグを付与する。
【０２１１】
Ａ０４の時点で、送信バッファ部１０２内の各アドレスは、図１６の（２）に示されるように設定されている。即ち、ＳＲはｄ−５に設定され、ｓｒｄはフレームＦ（６）０が送信されているためｄ−７に設定され、ＳＷ及びｓｒｃはｄ−１２に設定され、ｓｗｒはｄ−１３に設定されている。送信バッファ部１０２は、上述のように、ＲＣＶ＿ＳＥＱ（５）、ＲＣＶ＿ＥＯＳ（９）等を受けると、図１６の（３）に示されるように、フレームＦ（７）の読出し中であるため、ｓｒｄを（ｄ−７）のまま維持し、読み出しを継続する。送信バッファ部１０２は、ＥＯＳの値をｄ−７からｄ−９に更新し、ｓｒｄがＥＯＳ（ｄ−９）よりも大きくなるまで、フレームの読み出しを継続し、読み出されたフレームのＲＴフラグに１を設定する。即ち、Ａ０４時点では、フレームＦ（８）及びＦ（９）が追加で再送されることになる。図９によれば、再送されるデータ量が、ｇ６−０１からｇ６−０２へ拡張される。
【０２１２】
なお、実運用においてフレーム長は可変であり、ＲＤＳの値によって、ＥＯＳは、必ずしもフレームの先頭アドレスを示さないため、ＥＯＳがフレームの途中アドレスである場合、そのフレームまでが再送される。以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ａ０２時点と同様であり、フレームＦ（７）１が回線１を介して通信端末１０へ送信される。その後、フレームＦ（８）１及びフレームＦ（９）１も再送信される。
【０２１３】
〈Ｂ０４〉
Ｂ０４では、受信側の通信端末２０は、誤りのないフレームＦ（８）０を受信してから、ＮＡＫフレームＮ（５）０を返信するまでの処理を実行する。フレームＦ（８）０が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２１４】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０４時点でのフレーム識別部１１１で保持される各変数については、ＲＣＶ＿ＥＯＳのみがＢ０３時点から変更されている。Ｂ０４時点では、ＲＣＶ＿ＳＥＱは８である。
【０２１５】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（８）０のフレーム長を取得すると、Ｂ０２時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ０４時点では、ＲＣＶ＿ＳＥＱ（値８）、ＲＣＶ＿ＸＩＤ（値０）及びフレームＦ（８）０がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２１６】
これらデータを取得した受信処理部２０３は、Ｂ０２時点と同様に、図８ＡのＳ７００；ＹＥＳ、Ｓ７０１；ＦＡＬＳＥ、Ｓ７４０；ＦＡＬＳＥ、Ｓ７５０；ＮＯ、及び、Ｓ７５１を実行する。なお、Ｂ０４時点でのＴＳＥＱ及びＥＯＳの各値は７及び９である。
【０２１７】
続いて、受信処理部２０３は、Ｂ０２時点と同様にＥＯＳを生成する（Ｓ７５２）。具体的には、受信処理部２０３は、図８ＢのＳ７８０；ＴＲＵＥ、Ｓ７８２；ＮＯ、Ｓ７９０；ＦＡＬＳＥ、Ｓ７９２；ＦＡＬＳＥ、及び、Ｓ７９３を実行する。処理（Ｓ７９３）では、ＴＳＥＱに、フレームＦ（８）０のＲＣＶ＿ＳＥＱ（値８）とそのフレーム長ＬＥＮ（値１）との和が設定され、ＥＯＳに、ＴＳＥＱ（値７）と再送データ量ＲＤＳ（値２）との和が設定される。結果、更新後のＴＳＥＱは９となり、更新後のＥＯＳは９となる。
【０２１８】
受信処理部２０３は、ＮＥＸＴ＿ＳＥＱ（値５）及びＥＯＳ（値９）を含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７５３）。ここで出力されるＮＡＫ生成指示に含まれるＮＥＸＴ＿ＳＥＱ（値５）及びＥＯＳ（値９）は、Ｂ０３時点で生成されたＮＡＫ生成指示に含まれるものと同じである。よって、ここで生成されたＮＡＫ生成指示は、拡張ＮＡＫを生成するための指示ではない。以降、受信処理部２０３は、Ｂ０２時点と同様の処理（Ｓ７５５；ＮＯ、Ｓ７２２）を実行する。
【０２１９】
以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ｂ０２時点と同様であり、ＮＡＫフレームＮ（５）０が回線２を介して通信端末１０へ送信される。
【０２２０】
〈Ｂ０５〉
Ｂ０５では、受信側の通信端末２０は、誤りのないフレームＦ（９）０を受信してから、ＮＡＫフレームＮ（５）０を返信するまでの処理を実行する。フレームＦ（８）０が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２２１】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０５時点でのフレーム識別部１１１で保持される各変数については、ＲＣＶ＿ＳＥＱのみがＢ０４時点から変更されている。Ｂ０５時点では、ＲＣＶ＿ＳＥＱは９である。
【０２２２】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（９）０のフレーム長を取得すると、Ｂ０４時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ０５時点では、ＲＣＶ＿ＳＥＱ（値９）、ＲＣＶ＿ＸＩＤ（値０）及びフレームＦ（９）０がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２２３】
これらデータを取得した受信処理部２０３は、Ｂ０２時点と同様に、図８ＡのＳ７００；ＹＥＳ、Ｓ７０１；ＦＡＬＳＥ、Ｓ７４０；ＦＡＬＳＥ、Ｓ７５０；ＮＯ、及び、Ｓ７５１を実行する。なお、Ｂ０５時点でのＴＳＥＱ及びＥＯＳの各値は９である。
【０２２４】
続いて、受信処理部２０３は、次のようにＥＯＳを生成する（Ｓ７５２）。
【０２２５】
具体的には、受信処理部２０３は、図８ＢのＳ７８０；ＴＲＵＥ、及び、Ｓ７８２；ＮＯを実行した後、ＴＳＥＱとＲＣＶ＿ＳＥＱとを比較する（Ｓ７９０）。Ｂ０５時点では、ＴＳＥＱ（値９）とＲＣＶ＿ＳＥＱ（値９）とが一致する（Ｓ７９０；ＴＲＵＥ）。これは、受信フレームＦ（９）０が、連続して受信されたフレームであることを意味する。フレームＦ（８）０及びＦ（９）０は連続して受信されている。受信処理部２０３は、次に、ＴＳＥＱに、受信フレームのシーケンス番号ＲＣＶ＿ＳＥＱとフレーム長ＬＥＮとの和を代入することでＴＳＥＱを更新する。なお、ＥＯＳは、フレーム誤り又はフレームロスが発生していないので、値を維持する。更新後のＴＳＥＱ及びＥＯＳは、１０（＝ＲＣＶ＿ＳＥＱ（９）＋ＬＥＮ（１））及び９となる。
【０２２６】
受信処理部２０３は、Ｂ０４時点と同じＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７５３）。即ち、ここで生成されたＮＡＫ生成指示についても拡張ＮＡＫを生成するための指示ではない。以降、受信処理部２０３は、Ｂ０４時点と同様の処理（Ｓ７５５；ＮＯ、Ｓ７２２）を実行する。更に、以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ｂ０４時点と同様であり、ＮＡＫフレームＮ（５）０が回線２を介して通信端末１０へ送信される。
【０２２７】
〈Ｂ０６〉
Ｂ０６では、受信側の通信端末２０は、送信側の通信端末１０から、フレーム誤りの発生したフレームＦ（１１）０を受信してから、ＮＡＫフレームＮ（５）０を送信するまでの処理を実行する。なお、フレームＦ（１１）０が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２２８】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０６時点でのフレーム識別部１１１で保持される各変数については、ＲＣＶ＿ＥＯＳのみがＢ０５時点から変更されている。Ｂ０６時点では、ＲＣＶ＿ＳＥＱは１１である。なお、図９に示されるように、フレームＦ（９）０の次に送信されたフレームＦ（１０）０はフレームロスにより受信側の通信端末２０で受信されていない。
【０２２９】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（１１）０のフレーム長を取得すると、Ｂ０５時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ０６時点では、ＲＣＶ＿ＳＥＱ（値１１）、ＲＣＶ＿ＸＩＤ（値０）及びフレームＦ（１１）０がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２３０】
これらデータを取得した受信処理部２０３は、Ｂ０５時点と同様に、図８ＡのＳ７００；ＹＥＳ、Ｓ７０１；ＦＡＬＳＥ、Ｓ７４０；ＦＡＬＳＥ、Ｓ７５０；ＮＯ、及び、Ｓ７５１を実行する。なお、Ｂ０６時点でのＴＳＥＱ及びＥＯＳの各値は１０及び９である。
【０２３１】
続いて、受信処理部２０３は次のようにＥＯＳを生成する（Ｓ７５２）。
【０２３２】
具体的には、受信処理部２０３は、図８ＢのＳ７８０；ＴＲＵＥ、及び、Ｓ７８２；ＹＥＳを実行した後、ＥＯＳとＲＣＶ＿ＳＥＱとを比較する（Ｓ７８３）。Ｂ０６時点では、ＲＣＶ＿ＳＥＱ（値１１）がＥＯＳ（値９）より大きいため（Ｓ７８３；ＴＲＵＥ）、受信処理部２０３は、次に、ＥＯＳとＮＥＸＴ＿ＳＥＱとを比較する（Ｓ７８４）。Ｂ０６時点では、ＥＯＳ（値９）はＮＥＸＴ＿ＳＥＱ（値５）よりも大きいため（Ｓ７８４；ＦＡＬＳＥ）、受信処理部２０３は、フレーム障害の間隔が再送データ量ＲＤＳより大きいと判断し、無駄な再送を抑えるためＥＯＳの更新及びＴＳＥＱの更新を行わない（Ｓ７８６）。これにより、ＴＳＥＱ及びＥＯＳの各値は維持される（ＴＳＥＱ＝１０、ＥＯＳ＝９）。
【０２３３】
受信処理部２０３は、Ｂ０５時点と同じＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７５３）。即ち、ここで生成されたＮＡＫ生成指示についても拡張ＮＡＫを生成するための指示ではない。以降、受信処理部２０３は、処理（Ｓ７５５；ＹＥＳ、Ｓ７４６）を実行する。更に、以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ｂ０５時点と同様であり、ＮＡＫフレームＮ（５）０が回線２を介して通信端末１０へ送信される。
【０２３４】
〈Ａ０５〉
Ａ０５では、送信側の通信端末１０は、再送フレームＦ（９）１を送信してから非再送フレームＦ（１２）１を送信するまでの処理を実行する。Ａ０５時点での通信端末１０の処理は、ＥＯＳ超過時の処理に相当する。図１７は、Ａ０５時点での送信側の通信端末１０で処理されるフレーム及びそのフレームを格納する送信バッファ部１０２を概念的に示す図である。
【０２３５】
《送信バッファ制御》
対応すべきＮＡＫフレームを受信することなく、読み出しアドレスｓｒｄが通信端末２０からＮＡＫフレームによって通知されたＥＯＳを超えた場合、送信バッファ部１０２は、受信側の通信端末２０から要求されたトータル再送データ量を満足したと判断し、再送フレームの読み出しを終了し、再送前のフレームの続きからフレームの送信を再開する。
【０２３６】
Ａ０５時点での送信バッファ部１０２の各アドレス変数は、図１７の（１）に示されるように設定されている。即ち、ＳＲはｄ−５に設定され、ｓｒｄはフレームＦ（９）１が送信されているためｄ−１０に設定され、ＳＷはフレームＦ（１５）までの書き込みが終了していることから値ｄ−１６に設定され、ｓｒｃは再送前に読み出したフレームのアドレスｄ−１２に設定され、ｓｗｒはｄ−１７に設定される。この状態からフレームＦ（９）が読み出されると、ｓｒｄがｄ−１０に変更され、ＥＯＳがｄ−９に変更される。これにより、ｓｒｄがＥＯＳを超えるため、送信バッファ部１０２は、図１７の（２）に示されるように、ｓｒｄにｓｒｃを代入し、フレームＦ（１２）からの読み出しを再開する。つまり、フレームＦ（１０）及びフレームＦ（１１）は、読み飛ばされることとなる。このとき読み出されたフレームＦ（１２）は、再送フレームでないため、ＲＴフラグが０に設定される。
【０２３７】
図１７の（３）は、送信バッファ部１０２から読み出されたフレームＦ（１２）を示す。このフレームＦ（１２）は、ＡＣＫ／ＮＡＫ生成部１０３へ送られる。以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理がＡ０２時点と同様に実行される。結果、フレームＦ（１２）１が回線１を介して通信端末２０へ送信される。
【０２３８】
〈Ｂ０７〉（再送フレームの受信）
Ｂ０７では、受信側の通信端末２０は、送信側の通信端末１０から、フレームＦ（５）１を受信してから、ＡＣＫフレームＡ（７）１を送信するまでの処理を実行する。なお、フレームＦ（５）１が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２３９】
《フレーム識別》
図１８は、Ｂ０７時点での受信側の通信端末２０で処理されるフレーム及びそのフレームを格納する受信バッファ部１１３並びに更新前後のＮＡＫテーブル部２０４を概念的に示す図である。なお、図１３Ｂに示されるように、Ｂ０７時点でのフレーム識別部１１１で保持される各変数については、ＲＣＶ＿ＳＥＱ及びＲＣＶ＿ＸＩＤのみがＢ０６時点から変更されている。Ｂ０７時点では、ＲＣＶ＿ＳＥＱは５であり、ＲＣＶ＿ＸＩＤは１である。
【０２４０】
フレームＦ（５）１のフラグには、ＳＮ（値１）、ＡＣＫ（値０）、ＮＡＫ（値０）及びＲＴ（値１）が設定されている。ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（５）１のフレーム長を取得すると、Ｂ０５時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ０７時点では、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＸＩＤ（値１）及びフレームＦ（５）１がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２４１】
これらデータを取得した受信処理部２０３は、ＲＣＶ＿ＳＥＱの値とＮＥＸＴ＿ＳＥＱの値とが一致するか否か判定する（Ｓ７０１）。Ｂ０７時点では、ＲＣＶ＿ＳＥＱ（値５）とＮＥＸＴ＿ＳＥＱ（値５）とが一致するため（Ｓ７０１；ＴＲＵＥ）、受信処理部２０３は、現在のトランザクションを示すＲＣＶ＿ＸＩＤ（値１）をＲＥＧ＿ＲＸＩＤに設定することにより、ＲＥＧ＿ＲＸＩＤを更新する（Ｓ７０２）。これにより、受信側の通信端末２０では、そのフレームＦ（５）１が既に受信されたフレームとして認識される。
【０２４２】
その後、受信処理部２０３は、フレームＦ（５）１に誤りがないため（Ｓ７０３；ＮＯ）、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されているか否かをチェックする（Ｓ７１０）。Ｂ０７時点では、図１３Ｂに示されるように、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）の登録があるため（Ｓ７１０；ＹＥＳ）、受信処理部２０３は、既に受信されているフレームと現在受信されたフレームとの間に未受信のフレームの存在を確認するため、以下の条件３を判定する（Ｓ７１１）。
（条件３）ＮＨＥＤ＿ＳＥＱ（１）＝＝ＮＥＸＴ＿ＳＥＱ＋ＬＥＮ
【０２４３】
Ｂ０７時点では、ＮＨＥＤ＿ＳＥＱ（１）（値６）、ＮＥＸＴ＿ＳＥＱ（値５）、ＬＥＮ（値１）であることから条件３は成立する（Ｓ７１１；ＴＲＵＥ）。この場合、受信処理部２０３は、既に受信されているフレームと現在受信されたフレームとの間に未受信のフレームがないと判定し、現状のＮＥＸＴ＿ＳＥＱにＮＡＫテーブル部２０４のＮＮＡＫ＿ＳＥＱ（１）を代入することによりＮＥＸＴ＿ＳＥＱを更新する（Ｓ７３０）。結果、ＮＥＸＴ＿ＳＥＱは７に更新される。
【０２４４】
続いて、受信処理部２０３は、ＮＡＫテーブル部２０４から、ＮＨＥＤ＿ＳＥＱ（１）及びＮＮＡＫ＿ＳＥＱ（１）を削除する（Ｓ７３１）。この処理では、ＮＨＥＤ＿ＳＥＱ（ｐ）にＮＨＥＤ＿ＳＥＱ（ｐ＋１）が設定されかつＮＮＡＣ＿ＳＥＱ（ｐ）にＮＮＡＣ＿ＳＥＱ（ｐ＋１）が設定される。更新後のＮＡＫテーブル部２０４は、図１８の（２）で示される。受信処理部２０３は、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されておりかつ当該受信フレームが再送フレームか否か確認する（Ｓ７３２）。
【０２４５】
受信処理部２０３は、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されておりかつ当該受信フレームＦ（５）１が再送フレームであるため（Ｓ７３２；ＦＡＬＳＥ）、ＲＣＶ＿ＸＩＤ及び更新されたＮＥＸＴ＿ＳＥＱを含むＡＣＫ生成指示を生成、ＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７３３）。更に、受信処理部２０３は、当該フレームＦ（５）１とＮＥＸＴ＿ＳＥＱとを受信バッファ部１１３へ送る（Ｓ７２２）。
【０２４６】
《受信バッファ》
図１８の（３）に示されるフレームＦ（５）及びＮＥＸＴ＿ＳＥＱ（値７）を受けると、受信バッファ部１１３は、フレームＦ（５）内のＲＣＶ＿ＳＥＱ（値５）に応じて、当該フレームＦ（５）を格納する。図１８の（４）には、フレームＦ（５）が格納される前の受信バッファ部１１３が示されている。ＲＲは読み出しが完了していないフレームの先頭アドレス、ｒｒｄは受信バッファ部１１３から現時点で次に読み出すべき箇所を示すアドレス、ＲＷは次に受信バッファ部１１３へ保存されるフレームの先頭アドレス、ｒｗｒは受信バッファ部１１３に現時点で次に書き込むべき箇所を示すアドレスを示す。フレームＦ（５）を格納する前では、ＲＲ、ｒｒｄ及びＲＷは同じ値（ｄ−５）に設定され、ｒｗｒはｄ−１０に設定されている。
【０２４７】
ここで、フレームＦ（５）のＲＣＶ＿ＳＥＱの値は５であるため、受信バッファ部１１３のアドレスｒｗｒがｄ−５に設定され、ｄ−５から当該フレームＦ（５）が格納される。この格納終了後、ＲＷはＮＥＸＴ＿ＳＥＱ（値７）に更新され、ＲＷは（ｄ−７）に更新される。これにより、フレームＦ（５）格納後においては、図１８の（５）に示されるように、ＲＲ及びｒｒｄが同じ値（ｄ−５）に設定され、ＲＷがｄ−７に設定され、ｒｗｒがｄ−６に設定される。受信バッファ部１１３からのフレーム読み出しは、ＲＲがＲＷより小さい場合に開始される。ＲＷはＡＣＫ／ＮＡＫを返信する際に更新され、その値はＮＥＸＴ＿ＳＥＱとなる。ｒｒｄとＲＲは受信バッファ部１１３からフレームを読み出す毎に更新される。
【０２４８】
《読み出し》
更新されたアドレスＲＷとアドレスＲＲが内部インタフェース部１００に与えられると、内部インタフェース部１００は、上記（条件２）を判定する。Ｂ０７時点では、ＲＲが５に設定され、ＲＷが７に設定されている。また、上記（条件２）を満たすため、受信バッファ部１１３内に読出し可能なフレームが有ると判断し、受信バッファ部１１３へ読出し指示を出力する。この読み出し指示によって受信バッファ部１１３から読み出されたフレームＦ（５）及びＦ（６）が他ブロック１１へ送られる。
【０２４９】
《送信》
ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ｂ０１時点と同様であり、ＡＣＫフレームＡ（７）１が回線２を介して送信側の通信端末１０へ送られる。
【０２５０】
〈Ａ０６〉
Ａ０６では、送信側の通信端末１０は、受信側の通信端末２０から、ＡＣＫフレームＡ（７）１を受信してから非再送フレームＦ（１４）１を送信するまでの処理を実行する。ＡＣＫフレームＡ（７）１が送信側の通信端末１０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２５１】
《フレーム識別》
図１３Ａに示されるように、Ａ０６時点でのフレーム識別部１１１で保持される各変数は次のように設定されている。即ち、ＲＥＧ＿ＳＸＩＤが１に設定され、ＲＣＶ＿ＳＥＱが７に設定され、ＲＣＶ＿ＸＩＤが１に設定され、ＬＥＮが１に設定され、その他の値はＮＵＬＬに設定されている。
【０２５２】
ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びＡＣＫフレームＡ（７）１のフレーム長を取得すると、Ａ０２時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＡＣＫ／ＮＡＫ、Ｓ５４）。Ａ０６時点では、ＲＣＶ＿ＳＥＱ（値７）及びＲＣＶ＿ＸＩＤ（値１）がヘッダ処理部２０１から再送／更新処理部２０２へ送られる。
【０２５３】
再送／更新処理部２０２は、ヘッダ処理部２０１からＲＣＶ＿ＳＥＱ（値７）及びＲＣＶ＿ＸＩＤ（値１）を受けると（図７のＳ６０；ＹＥＳ）、上記条件４を判定する（Ｓ６１）。Ａ０６時点では、ＲＥＧ＿ＳＸＩＤが１でありかつＲＣＶ＿ＸＩＤが１であるから、上記条件４が成立する（Ｓ６１；ＴＲＵＥ）。これにより、再送／更新処理部２０２は、そのＡＣＫフレームＡ（７）１が未対応であると判定する。また、当該フレームは、ＡＣＫフレームである。よって、受信処理部２０３は、受信されたＡＣＫフレームに含まれるＲＣＶ＿ＳＥＱ（値７）及びＲＣＶ＿ＸＩＤ（値１）を含む更新指示を送信バッファ制御部１１２及びＩＤ付与部１１４へ送る（Ｓ６３）。
【０２５４】
《送信バッファ制御》
図１９は、Ａ０６時点での送信側の通信端末１０で処理されるフレームを概念的に示す図である。送信バッファ制御部１１２は、図１９の（１）で示される更新指示を受けると、この更新指示及びＲＣＶ＿ＳＥＱ（値７）を送信バッファ部１０２へ送る。これらを受けた送信バッファ部１０２は、アドレスｓｒｄと受信されたＲＣＶ＿ＳＥＱとを比較し、値の大きい方をｓｒｄに設定し、フレームの読み出しを開始する。このとき、アドレスｓｒｃが受信されたＲＣＶ＿ＳＥＱより小さい場合には、同様にｓｒｃの値も更新される。Ａ０６時点での更新前では、送信バッファ部１０２内の各アドレスは、図１９の（２）に示されるように、ＳＲがｄ−５に設定され、ｓｒｄ及びｓｒｃがｄ−１４に設定され、ＳＷがｄ−１７に設定され、ｓｗｒがｄ−１８に設定されている。
【０２５５】
送信バッファ部１０２は、更新指示及びＲＣＶ＿ＳＥＱ（値７）を受けると、図１９の（３）に示されるように、ＳＲの値を受信されたＲＣＶ＿ＳＥＱ（値７）に更新する。これにより、ＳＲはｄ−７に設定されるため、送信バッファ部１０２は、それより前のフレームＦ（５）及びフレームＦ（６）を削除する。Ａ０６時点において、ｓｒｄ（値ｄ−１４）は、ＲＣＶ＿ＳＥＱ（値７）より大きいため、アドレスｓｒｄのフレームＦ（１４）から継続してフレームが読み出される。
【０２５６】
以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ａ０１時点と同様であり、フレームＦ（１４）１が回線１を介して受信側の通信端末２０へ送信される。
【０２５７】
〈Ｂ０８〉
Ｂ０８では、受信側の通信端末２０は、送信側の通信端末１０から、フレームＦ（６）１を受信してから、ＡＣＫフレームＡ（７）１を送信するまでの処理を実行する。なお、フレームＦ（６）１が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２５８】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０８時点でのフレーム識別部１１１で保持される各変数については、ＮＥＸＴ＿ＳＥＱ、ＮＨＥＤ＿ＳＥＱ（１）、ＮＮＡＫ＿ＳＥＱ（１）、ＲＥＧ＿ＲＸＩＤ、ＲＣＶ＿ＳＥＱがＢ０７時点から変更されている。Ｂ０８時点では、ＮＥＸＴ＿ＳＥＱは７であり、ＮＨＥＤ＿ＳＥＱ（１）は８であり、ＮＮＡＫ＿ＳＥＱ（１）は１０であり、ＲＥＧ＿ＲＸＩＤは１であり、ＲＣＶ＿ＳＥＱは６である。
【０２５９】
フレームＦ（６）１のフラグには、ＳＮ（値１）、ＡＣＫ（値０）、ＮＡＫ（値０）及びＲＴ（値１）が設定されている。ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（６）１のフレーム長を取得すると、Ｂ０５時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ０８時点では、ＲＣＶ＿ＳＥＱ（値６）、ＲＣＶ＿ＸＩＤ（値１）及びフレームＦ（６）１がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２６０】
これらデータを取得した受信処理部２０３は、ＲＣＶ＿ＳＥＱ（値６）とＮＥＸＴ＿ＳＥＱ（値７）とが一致しないため（Ｓ７０１；ＦＡＬＳＥ）、上記（条件１）を満たすか否かをチェックする（Ｓ７４０）。Ｂ０８時点では、ＲＣＶ＿ＳＥＱ（値６）、ＮＥＸＴ＿ＳＥＱ（値７）、ＲＣＶ＿ＸＩＤ（値１）、ＲＥＧ＿ＲＸＩＤ（値１）であるため、条件１は成立する（Ｓ７４０；ＴＲＵＥ）。続いて、受信処理部２０３は、当該フレームＦ（６）１が再送フレームであるか否かを確認する（Ｓ７４１）。フレームＦ（６）１は再送フレーム（ＲＴ＝１）であるため（Ｓ７４１；ＦＡＬＳＥ）、受信処理部２０３は、ＮＥＸＴ＿ＳＥＱ（値７）、ＲＣＶ＿ＸＩＤ（値１）を含むＡＣＫ生成指示を生成しＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７４５）。なお、ここで生成されるＡＣＫ生成指示に含まれるＮＥＸＴ＿ＳＥＱ及びＲＣＶ＿ＸＩＤは、Ｂ０７時点で生成されたＡＣＫ生成指示に含まれる値と同じである。その後、受信処理部２０３は、その受信フレームを廃棄する（Ｓ７４６）。
【０２６１】
以降、ＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ｂ０１時点と同様であり、ＡＣＫフレームＡ（７）１が回線２を介して送信側の通信端末１０へ送信される。
【０２６２】
〈Ｂ０９〉
Ｂ０９では、受信側の通信端末２０は、非再送フレームＦ（１２）１を受信してから、ＮＡＫフレームＮ（１０）１を返信するまでの処理を実行する。Ｂ０９時点における通信端末２０の処理は、再送フレームが受信された後、非再送フレームが受信された際の処理に相当する。フレームＦ（１２）１が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２６３】
《フレーム識別》
図１３Ｂに示されるように、Ｂ０９時点でのフレーム識別部１１１で保持される各変数については、ＮＥＸＴ＿ＳＥＱ、ＮＨＥＤ＿ＳＥＱ（１）、ＮＮＡＫ＿ＳＥＱ（１）、ＲＣＶ＿ＳＥＱがＢ０８時点から変更されている。Ｂ０９時点では、ＮＥＸＴ＿ＳＥＱは１０であり、ＮＨＥＤ＿ＳＥＱ（１）は１２であり、ＮＮＡＫ＿ＳＥＱ（１）は１３であり、ＲＣＶ＿ＳＥＱは１２である。
【０２６４】
フレームＦ（１２）１のフラグには、ＳＮ（値１）、ＡＣＫ（値０）、ＮＡＫ（値０）及びＲＴ（値０）が設定されている。ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（１２）１のフレーム長を取得すると、Ｂ０５時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ０９時点では、ＲＣＶ＿ＳＥＱ（値１２）、ＲＣＶ＿ＸＩＤ（値１）及びフレームＦ（１２）１がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２６５】
これらデータを取得した受信処理部２０３は、ＲＣＶ＿ＳＥＱ（値１２）とＮＥＸＴ＿ＳＥＱ（値１０）とが一致しないため（Ｓ７０１；ＦＡＬＳＥ）、上記（条件１）を満たすか否かをチェックする（Ｓ７４０）。Ｂ０９時点では、ＲＣＶ＿ＳＥＱ（値１２）、ＮＥＸＴ＿ＳＥＱ（値１０）、ＲＣＶ＿ＸＩＤ（値１）、ＲＥＧ＿ＲＸＩＤ（値１）であるため、条件１は成立しない（Ｓ７４０；ＦＡＬＳＥ）。そこで、受信処理部２０３は、フレームＦ（１２）１がＮＡＫテーブル部２０４に登録済みであるか否かをチェックする（Ｓ７５０）。このとき、フレームＦ（１２）１はＮＡＫテーブル部２０４には登録されていない（Ｓ７５０；ＮＯ）。そこで、受信処理部２０３は、そのフレームＦ（１２）１をＮＡＫテーブル部２０４へ登録する（Ｓ７５１）。Ｂ０９時点では、ＲＣＶ＿ＳＥＱ（値１２）及びＬＥＮ（値１）であるため、図１０に示されるように、ＮＨＥＤ＿ＳＥＱ（１）（Ｈ（１））にはｄ−１２（＝ＲＣＶ＿ＳＥＱ）が設定され、ＮＮＡＫ＿ＳＥＱ（１）（Ｎ（１））にはｄ−１３（＝ＲＣＶ＿ＳＥＱ＋ＬＥＮ）が設定される。
【０２６６】
続いて、受信処理部２０３は、次のようにＥＯＳを生成する（Ｓ７５２）。
【０２６７】
具体的には、受信処理部２０３は、図８ＢのＳ７８０；ＴＲＵＥ、及び、Ｓ７８２；ＮＯを実行した後、ＴＳＥＱとＲＣＶ＿ＳＥＱとを比較する（Ｓ７９０）。Ｂ０９時点では、ＴＳＥＱ（値１０）とＲＣＶ＿ＳＥＱ（値１２）とは一致しない（Ｓ７９０；ＦＡＬＳＥ）ため、受信処理部２０３は、ＲＣＶ＿ＳＥＱとＥＯＳとを比較する（Ｓ７９２）。Ｂ０９時点では、ＲＣＶ＿ＳＥＱ（値１２）がＥＯＳ（値９）より大きいため（Ｓ７９２；ＴＲＵＥ）、受信処理部２０３は、更に、ＮＥＸＴ＿ＳＥＱとＥＯＳとを比較する（Ｓ７９４）。ＮＥＸＴ＿ＳＥＱ（値１０）はＥＯＳ（値９）より大きいため（Ｓ７９４；ＴＲＵＥ）、受信処理部２０３は、再送信シーケンスが終了し、非再送フレームを受信している状態にあると判定する。この場合、受信処理部２０３は、次に受信予定のフレームのシーケンス番号ＴＳＥＱに、ＲＣＶ＿ＳＥＱ（値１２）とそのフレームのＬＥＮ（値１）との和を代入することによりＴＳＥＱを更新する（Ｓ７９６）。
【０２６８】
続いて、受信処理部２０３は、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されているか否かをチェックする（Ｓ７９７）。このとき、ＮＡＫテーブル部２０４には、図１０に示される以下のようなレコードが登録されている。
ｐ＝１；ＮＨＥＤ＿ＳＥＱ（１）＝１２；ＮＮＡＫ＿ＳＥＱ（１）＝１３
受信処理部２０３は、ＮＮＡＫ＿ＳＥＱ（１）が登録されているため（Ｓ７９７；ＹＥＳ）、ＮＨＥＤ＿ＳＥＱ（１）の値１２をＥＯＳへ代入することにより、ＥＯＳを更新する（Ｓ７８１）。更新後のＴＳＥＱ及びＥＯＳは、１３（＝ＲＣＶ＿ＳＥＱ（値１２）＋ＬＥＮ（値１））、１２（＝ＮＨＥＤ＿ＳＥＱ（１））となる。
【０２６９】
なお、上述の例では、ｐが１であるＮＨＥＤ＿ＳＥＱ（１）の値をＥＯＳに代入しているが、ＮＡＫテーブル部２０４に複数レコードが登録されている場合には、最も大きいｐのＮＨＥＤ＿ＳＥＱ（ｐ）の値をＥＯＳに代入してもよい。また、ＮＨＥＤ＿ＳＥＱ（ｐ）−１の値をＥＯＳに代入することにより余分な再送を抑えるようにしてもよい。上述の例の場合、値１１（＝ＮＨＥＤ＿ＳＥＱ（１）−１）がＥＯＳに代入されるようにしてもよい。
【０２７０】
ＥＯＳの生成後、受信処理部２０３は、ＮＥＸＴ＿ＳＥＱ（値１０）及びＥＯＳ（値１２）を含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送る（Ｓ７５３）。以降、受信処理部２０３は、Ｂ０２時点と同様に処理を行う。結果、受信バッファ部１１３が、フレームＦ（１２）内のＲＣＶ＿ＳＥＱに基づいてそのフレームＦ（１２）を保存する。また、それ以降のＡＣＫ／ＮＡＫ生成部１０３、ＩＤ付与部１１４、ＥＣＣ付与部１０４、ＥＤＣ付与部１０５及び送信部１０６の各処理は、Ｂ０２時点と同様であり、ＮＡＫフレームＮ（１０）１が回線２を介して送信側の通信端末１０へ送信される。
【０２７１】
〈Ｂ１０〉
Ｂ１０では、受信側の通信端末２０は、非再送フレームＦ（１９）２を受信してから、ＡＣＫフレームＡ（２０）２を返信するまでの処理を実行する。Ｂ１０時点での通信端末２０の処理は、ＮＡＫテーブル部２０４に登録がない状態でＮＥＸＴ＿ＳＥＱにより示されるフレームが受信された際の処理に相当する。フレームＦ（１９）２が受信側の通信端末２０の受信部１０８で受信されてから、フレーム識別部１１１に送られるまでの処理は、上述のＢ０１時点における受信側の通信端末２０での処理（《受信》及び《誤り訂正及び検出》）と同様であるため、ここでは説明を省略する。
【０２７２】
《フレーム識別》
図１３Ｂに示されるように、Ｂ１０時点でのフレーム識別部１１１で保持される各変数については、ＮＥＸＴ＿ＳＥＱが１９であり、ＲＥＧ＿ＲＸＩＤが２であり、ＲＣＶ＿ＳＥＱが１９であり、ＲＣＶ＿ＸＩＤが２であり、ＬＥＮが１であり、その他はＮＵＬＬである。
【０２７３】
フレームＦ（１９）２のフラグには、ＳＮ（値１）、ＡＣＫ（値０）、ＮＡＫ（値０）及びＲＴ（値０）が設定されている。ヘッダ処理部２０１は、フレーム誤り検出部１１０から、ヘッダ誤り訂正の結果、フレーム誤り検出の結果及びフレームＦ（１９）２のフレーム長を取得すると、Ｂ０９時点と同じ処理を実行する（図６のＳ５０；ＹＥＳ、Ｓ５２；ＳＮ、Ｓ５３）。Ｂ１０時点では、ＲＣＶ＿ＳＥＱ（値１９）、ＲＣＶ＿ＸＩＤ（値２）及びフレームＦ（１９）２がヘッダ処理部２０１から受信処理部２０３へ送られる。
【０２７４】
これらデータを取得した受信処理部２０３は、Ｂ０７時点と同様に、図８Ａの各処理（Ｓ７００；ＹＥＳ、Ｓ７０１；ＴＲＵＥ、Ｓ７０２、Ｓ７０３；ＮＯ）を行う。なお、Ｂ１０時点では、処理Ｓ７０２において、ＲＣＶ＿ＸＩＤ（値２）がＲＥＧ＿ＲＸＩＤに設定される。受信処理部２０３は、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）が登録されているか否かをチェックする（Ｓ７１０）。Ｂ１０時点では、図１３Ｂに示されるように、ＮＡＫテーブル部２０４にＮＮＡＫ＿ＳＥＱ（１）の登録がないため（Ｓ７１０；ＮＯ）、受信処理部２０３は、現状のＮＥＸＴ＿ＳＥＱ（値１９）に当該フレーム長ＬＥＮ（値１）を加算することによりＮＥＸＴ＿ＳＥＱを更新する（Ｓ７２０）。
【０２７５】
そして、受信処理部２０３は、ＲＣＶ＿ＸＩＤ（値２）及び更新されたＮＥＸＴ＿ＳＥＱ（値２０）を含むＡＣＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ送り（Ｓ７２１）、当該フレームＦ（１９）２を受信バッファ部１１３へ送る（Ｓ７２２）。以降、《受信バッファ》、《読み出し》、《送信》の各処理は、Ｂ０７時点と同様であるため、ここでは説明を省略する。
【０２７６】
〔第１実施形態の作用及び効果〕
上述のように、第１実施形態では、受信側の通信端末２０により、再送が要求されるフレーム群の中の最終フレームを特定するための最終シーケンス番号ＥＯＳが決定され、そのＥＯＳと当該フレーム群の中の先頭フレームを特定するためのシーケンス番号とを含むＮＡＫフレームが送信側の通信端末１０へ送信される。送信側の通信端末１０では、そのＮＡＫフレームを受信すると、そのＮＡＫフレームで要求される再送シーケンスが開始される。即ち、そのＮＡＫフレームに含まれるシーケンス番号（ＲＣＶ＿ＳＥＱ）で特定される先頭フレームから、そのＮＡＫフレームに含まれる最終シーケンス番号（ＲＣＶ＿ＥＯＳ）で特定される最終フレームまでが送信バッファ部１０２から順次読み出され、読み出された各再送フレームが受信側の通信端末１０へ連続的に送信される。
【０２７７】
即ち、第１実施形態では、フレームロスやフレーム誤りなどのようなフレーム障害が発生した場合に、当該フレーム障害に対応するフレームから一定量（再送データ量ＲＤＳ）のフレームが連続的に再送される。これにより、受信側の通信端末２０は、前回、フレーム障害により正常に受信することができなかったフレームを正常に受信することができ、フレーム障害から回復することができる。また、第１実施形態によれば、フレーム障害が発生したフレームからの複数のフレームがまとめて再送されるため、無駄な再送を抑制し、かつ、制御信号量を削減することができ、ひいては、通信リソースの使用効率（利用可能な通信帯域）を向上させることができる。具体的には、フレーム障害の発生したフレームのみを再送するＳＲ方式より、制御信号量を低減することができ、フレーム障害が発生したフレーム以降の全てを再送するＧＢＮ方式より、無駄な再送を抑えることができる。
【０２７８】
更に、第１実施形態では、受信側の通信端末２０において、障害が発生した先頭フレーム以降に送信側の通信端末１０から連続して送信されるフレーム群の中の、当該先頭フレームから再送データ量ＲＤＳ以内に送信されるフレームに、フレーム障害の発生の有無が判定され、そのフレーム障害が発生した場合には、最終シーケンス番号ＥＯＳが更新される。そして、更新された最終シーケンス番号ＥＯＳを含むＮＡＫフレーム（拡張ＮＡＫフレーム）が送信側の通信端末１０で受信され、再送シーケンスの最終フレームがその更新された最終シーケンス番号ＥＯＳで特定されるフレームに変更される。逆に、再送シーケンス終了後にフレーム障害が発生した場合には、そのフレーム障害に基づく再送シーケンスでは、元の再送データ量ＲＤＳが利用される。
【０２７９】
このように、第１実施形態では、通常時には、再送データ量ＲＤＳに対応する数のフレームが連続再送されるが、障害が発生した先頭フレーム以降に送信側の通信端末１０から連続して送信されるフレーム群の中の、当該先頭フレームから再送データ量ＲＤＳ以内に送信されるフレームに、障害が発生した場合には、拡張ＮＡＫフレームを用いることにより、連続再送されるフレーム数が増やされる。従って、第１実施形態によれば、バースト誤りの発生状況に応じて、連続再送されるデータ量を柔軟に変更できるため、通信リソースの使用効率（利用可能な通信帯域）を向上させることができる。
【０２８０】
更に、第１実施形態では、送信側の通信端末１０において、既に初回読み出しが終了しているフレームの次に初回読み出しすべきフレームが格納されているアドレス（上記変数ｓｒｃ）と、現在読み出すべきフレームが格納されているアドレス（上記変数ｓｒｄ）とが別々に保持される（送信バッファ部１０２）。そして、ＮＡＫフレームに含まれていた最終シーケンス番号ＥＯＳで特定される最終フレームの再送が完了する、即ち、再送シーケンスが終了すると、ｓｒｄにｓｒｃが代入されることにより、前回初回読み出しされたフレームの次のフレームから通常送信が再開される。
【０２８１】
これにより、第１実施形態によれば、再送シーケンスからの復帰において、無駄なフレームが送信されることを防ぐことができる。これにより、通信リソースの使用効率を向上させることができる。
【０２８２】
更に、第１実施形態では、送信側の通信端末１０において、再送シーケンスを開始する際にのみ、フレームに含まれるトランザクション識別子が更新され、このトランザクション識別子により、再送シーケンスを開始するか否かが判定される。これにより、送信側の通信端末１０において、再送シーケンス中であるか否かが適切に判定され、再送シーケンスが無駄に継続するような事態を防ぐことができる。
【０２８３】
〔第１実施形態の補足〕
上述の第１実施形態では、通信端末１０から通信端末２０へのフレーム転送を例としたが、逆に、通信端末２０から通信端末１０へのフレーム転送でも同様の動作となる。また、ＡＣＫ／ＮＡＫ生成部１０３においてＡＣＫ／ＮＡＫ生成要求と読み出しフレームとが競合した場合、ＡＣＫ／ＮＡＫ生成部１０３が、ＡＣＫ／ＮＡＫ用のシーケンス番号（ＡＮ＿ＳＥＱ）領域とＡＣＫ／ＮＡＫ用のトランザクション識別子（ＡＮ＿ＸＩＤ）領域とを再送ヘッダに追加することにより、ＡＣＫ／ＮＡＫ情報を読み出しフレームに相乗り（Piggyback）させるようにしてもよい。この場合、双方向通信においてもＡＣＫ／ＮＡＫフレームのオーバヘッドを抑え、スループットを向上させることができる。
【０２８４】
上述の第１実施形態では、再送されるべきフレーム群の最終フレームを特定するための情報（最終フレーム情報）として最終シーケンス番号ＥＯＳがＮＡＫフレームに設定されたが、このＥＯＳの代わりに再送データ量ＲＤＳがＮＡＫフレームに設定されるようにしてもよい。この場合、送信側の通信端末１０が、ＮＡＫフレームに含まれるＲＤＳに基づいて、最終フレームを特定するようにすればよい。この特定は、ＮＡＫフレームに設定されるシーケンス番号（ＲＣＶ＿ＳＥＱ）にＲＤＳを加算して得られる値を用いることにより実現できる。
【０２８５】
また、上述の第１実施形態における受信処理部２０３の処理を以下のように変更するようにしてもよい。図８Ａの処理（Ｓ７１４）及び（Ｓ７０６）、図８Ｂの処理（Ｓ７８１）では、処理を容易にするために、ＮＡＫテーブル部２０４に登録されているＮＨＥＤ＿ＳＥＱ（最大ｐ）の値をＥＯＳに設定しているが、以下の条件５を満たすｐに関するＮＨＥＤ＿ＳＥＱ（ｐ）の値をＥＯＳに設定するようにしてもよい。
（条件５）ＲＤＳ＜（ＮＮＡＫ＿ＳＥＱ（ｐ）−ＮＨＥＤ＿ＳＥＱ（ｐ））
【０２８６】
上記条件５が成立する場合、ＲＤＳを超える連続受信済みフレームを再送信することが無くなるため、再送効率を向上させることができる。具体的に、再送データ量ＲＤＳが２であり、ＮＡＫテーブル部２０４に以下の登録がある場合を例に挙げる。
ｐ＝１、ＮＨＥＤ＿ＳＥＱ（１）＝５０、ＮＮＡＫ＿ＳＥＱ（１）＝５２
ｐ＝２、ＮＨＥＤ＿ＳＥＱ（２）＝５５、ＮＮＡＫ＿ＳＥＱ（２）＝５８
ｐ＝３、ＮＨＥＤ＿ＳＥＱ（３）＝５９、ＮＮＡＫ＿ＳＥＱ（３）＝６１
【０２８７】
上述の第１実施形態では、ＮＨＥＤ＿ＳＥＱ（３）の値５９がＥＯＳに設定されるが、本変形例によれば、ｐが２の場合に条件５が成立するため、ＮＨＥＤ＿ＳＥＱ（２）の値５５がＥＯＳに設定される。この場合、シーケンス番号５５から５８で示されるフレームは再送されない。
【０２８８】
［第２実施形態］
図２０は、第２実施形態における通信端末の構成例を概念的に示す図である。第２実施形態における通信端末は、図２０に示されるように、第１実施形態における再送データ量設定部１１５に代えて、バースト誤り量検出部１１６を有する。バースト誤り量検出部１１６は本件発明の再送データ量取得部に相当する。他の処理部については基本的には第１実施形態と同様である。以下、第２実施形態における通信端末について第１実施形態と異なる点を中心に説明する。
【０２８９】
バースト誤り量検出部１１６は、フレーム誤り検出部１１０から提供されるフレーム誤り検出結果及びフレーム長ＬＥＮに基づいて、バースト誤り量を算出する。バースト誤り量とは、所定のビットエラーレート（ＢＥＲ：Bit Error Rate）以上で誤りが発生している箇所のデータ量を意味する。よって、バースト誤り量検出部１１６は、所定のビットエラーレート（ＢＥＲ：Bit Error Rate）以上で発生しているフレーム障害に関し、前回のフレーム障害から今回のフレーム障害までの間のデータ量をバースト誤り量としてカウントする。
【０２９０】
上記所定閾値Ｗは、バースト誤り量検出部１１６において、所定のＢＥＲ以上の誤りが発生している箇所のデータ量を検出するために利用される。例えば、所定のＢＥＲが１０−６の場合、１０６ビットの送信に対して１ビットの誤りが発生することを示すため、当該所定閾値Ｗには、１２５０００バイト（＝１０６／８）が設定される。
【０２９１】
バースト誤り量検出部１１６は、検出されたバースト誤り量の統計情報（ヒストグラム）を生成することにより、その統計情報に応じて再送データ量ＲＤＳを決定し、決定された再送データ量ＲＤＳをフレーム識別部１１１へ送る。バースト誤り量の統計情報は、検出されたバースト誤り量の統計データ（例えば、ヒストグラム）である。
【０２９２】
〔動作例〕
以下、第２実施形態における通信端末の動作例として、バースト誤り量検出部１１６の具体的な動作例を図２１、図２２Ａ及び図２２Ｂを用いて説明する。図２１は、第２実施形態におけるバースト誤り量検出部１１６の動作例を示すフローチャートである。図２２Ａは、バースト誤り量検出部１１６内の変数の状態を示す図である。図２２Ｂは、バースト誤り量の統計情報の例を示す図である。
【０２９３】
ここでの例では、図２１、図２２Ａ及びＢに示されるように、バースト誤り量検出部１１６は、バースト誤り量を検出するために、以下のような変数を用いると仮定する。
・ＲＣＶ＿ＳＥＱ（ｊ）：受信フレームに含まれるシーケンス番号を示す。
・ＬＥＮ（ｊ）：受信フレームのフレーム長を示す。なお、フレームデータ部に誤りがある場合、ＬＥＮ（ｊ）には０が設定される。
・ＥＲＲ（ｊ）：受信フレームの誤りの有無を示す。値１の場合誤りが有ることを示す。
・ＥＰ（ｊ）：フレーム障害の発生したフレームのシーケンス番号が保持される。
・ＥＰ２（ｊ）：前にフレーム障害の発生したフレームのシーケンス番号が保持される。
・ＳＴ：バースト誤り量の監視が開始されているか否かを示すフラグである。ここでは、ＳＴが１に設定されていることが、バースト誤り量の監視が開始されていることを意味する。
・ＢＥ（ｊ）：バースト誤り量を示す。
・ＲＤＳ（ｊ）：フレーム識別部１１１へ送られる再送データ量ＲＤＳを示す。
・ＮＥＸＴ＿ＳＥＱ（ｊ）：次に受信すべきフレームのシーケンス番号を示す。
ここで、ｊは、１以上の正の整数で、受信されたフレームの順番（シーケンス番号）を示す。
【０２９４】
バースト誤り量検出部１１６は、処理を開始するにあたり、フレーム誤り検出部１１０から、受信フレームＦ（ｊ）に関し、ヘッダ誤り訂正の結果、フレーム誤り検出の結果ＥＲＲ（ｊ）、シーケンス番号ＲＣＶ＿ＳＥＱ（ｊ）及びフレーム長ＬＥＮ（ｊ）を取得する。バースト誤り量検出部１１６は、ヘッダ誤り訂正の結果がヘッダ誤りの訂正の完了（ヘッダ誤り無しも含む）を示す場合には（Ｓ９００；ＹＥＳ）、更に、フレーム誤り検出の結果及びシーケンス番号に基づいて、フレームの誤り又はフレームロス（フレーム障害）が生じているか否かを判定する（Ｓ９０１）。
【０２９５】
この判定は、例えば、以下の条件に基づいて実施される。
（ＮＥＸＴ＿ＳＥＱ（ｊ）≠ＲＣＶ＿ＳＥＱ（ｊ））ｏｒ（ＥＲＲ（ｊ）＝１）
この条件が成立した場合、フレーム障害が生じている。具体的には、前者が成立する場合、フレームロスが生じており、後者が成立する場合、フレーム誤りが生じている。
【０２９６】
バースト誤り量検出部１１６は、フレーム障害が発生している場合（Ｓ９０１；ＹＥＳ）、監視フラグＳＴを確認する（Ｓ９０２）。バースト誤り量の監視が開始されていない場合（Ｓ９０２；ＮＯ）、バースト誤り量検出部１１６は、ＥＰ、ＥＰ２、ＳＴ及びＢＥの各変数を初期化する（Ｓ９０３）。具体的には、ＥＰ（ｊ）及びＥＰ２（ｊ）に、ＮＥＸＴ＿ＳＥＱを設定し、ＳＴに１を設定し（監視開始の設定）、ＢＥ（ｊ）に０を設定する（バースト誤り量の初期化）。
【０２９７】
続いて、バースト誤り量検出部１１６は、次に受信すべきフレームのシーケンス番号ＮＥＸＴ＿ＳＥＱを更新する（Ｓ９０９）。ここで、ＮＥＸＴ＿ＳＥＱには、フレームＦ（ｊ）のシーケンス番号ＲＣＶ＿ＳＥＱ（ｊ）にそのフレーム長ＬＥＮ（ｊ）を加算した値が設定される。
【０２９８】
以上の処理は、バースト誤り量の監視を開始する際の処理に相当する。このバースト誤り量の監視を開始する際の処理について、図２２Ａの（１）及び（２）で示される具体例に基づいてより具体的に説明する。図２２Ａの（１）で示されるように、フレームＦ（ｊ−１）がロスし、フレームＦ（ｊ）が受信された場合、ＮＥＸＴ＿ＳＥＱにｄ−２００が設定されており、ＲＣＶ＿ＳＥＱ（ｊ）がｄ−２０１であり、ＥＲＲ（ｊ）が０であるため、上記条件のうち、「ＮＥＸＴ＿ＳＥＱ（ｊ）≠ＲＣＶ＿ＳＥＱ（ｊ）」が成立し、結果、フレームロスが発生していると判定される（Ｓ９０１；ＹＥＳ）。また、処理（９０３）では、ＥＰ（ｊ）には、ＲＣＶ＿ＳＥＱ（ｊ）の値ｄ−２０１にＬＥＮ（ｊ）の値１が加算された値ｄ−２０２が設定され、ＥＰ２（ｊ）には、ＮＥＸＴ＿ＳＥＱの値であるｄ−２００が設定される。処理（Ｓ９０９）では、ＮＥＸＴ＿ＳＥＱには、ＲＣＶ＿ＳＥＱ（ｊ）の値ｄ−２０１にＬＥＮ（ｊ）の値１が加算された値ｄ−２０２が設定される。
【０２９９】
一方、バースト誤り量検出部１１６は、バースト誤り量の監視が既に開始されている場合（Ｓ９０２；ＹＥＳ）、前回フレーム障害の発生したフレームの先頭から今回フレーム障害の発生したフレームの先頭までのデータ量を算出し、その算出されたデータ量をバースト誤り量ＢＥへ加算する（Ｓ９０４）。更に、バースト誤り量検出部１１６は、変数ＥＰ及びＥＰ２を更新した後（Ｓ９０５）、上述のようにＮＥＸＴ＿ＳＥＱを更新する（Ｓ９０９）。
【０３００】
以上の処理は、バースト誤り量ＢＥをカウントする処理に相当する。この累積処理について、図２２Ａの（３）で示される具体例に基づいてより具体的に説明する。図２２Ａの（３）では、図２２Ａの（１）及び（２）に続いて、フレームＦ（ｊ＋１）がロスし、フレームＦ（ｊ＋２）が受信された場合が例示される。この例によれば、処理（Ｓ９０４）において、ＢＥ（ｊ＋２）に、ＢＥ（ｊ）に、ＥＰ（ｊ）からＥＰ２（ｊ）を減算した値を加算して得られる値（（ｄ−２０２）−（ｄ−２００））が設定されることにより、バースト誤り量がカウントされる。  
【０３０１】
処理（Ｓ９０５）では、ＥＰ（ｊ＋２）に、フレームＦ（ｊ＋２）のＲＣＶ＿ＳＥＱ（ｊ＋２）の値ｄ−２０３にＬＥＮ（ｊ＋２）の値１を加算した値ｄ−２０４が設定され、ＥＰ２（ｊ＋２）に、ＥＰ（ｊ）の値ｄ−２０２が設定される。処理（９０９）では、ＮＥＸＴ＿ＳＥＱ（ｊ＋２）に、受信フレームＦ（ｊ＋２）のＲＣＶ＿ＳＥＱ（ｊ＋２）とそのフレーム長ＬＥＮ（ｊ＋２）との和が代入される。
【０３０２】
フレーム障害が発生していない場合（Ｓ９０１；ＮＯ）、バースト誤り量検出部１１６は、前回フレーム障害が発生してからのデータ間隔が所定値Ｗよりも長いか否かを判定する（Ｓ９０６）。前回フレーム障害が発生してからのデータ間隔が所定値Ｗ以下である場合には（Ｓ９０６；ＦＡＬＳＥ）、バースト誤り量検出部１１６は、バースト誤り量の監視（カウント）を継続し、ＮＥＸＴ＿ＳＥＱを更新する（Ｓ９０９）。
【０３０３】
一方、前回フレーム障害が発生してからのデータ間隔が所定値Ｗより長い場合には（Ｓ９０６；ＴＲＵＥ）、バースト誤り量検出部１１６は、バースト誤り量の統計処理を行い、この統計処理で得られたバースト誤り量の統計情報（ヒストグラム）から再送データ量ＲＤＳを決定し、その再送データ量ＲＤＳをフレーム識別部１１１へ送る（Ｓ９０７）。更に、バースト誤り量検出部１１６は、監視フラグＳＴを監視されていない状態（０）に設定する（Ｓ９０７）。これにより、バースト誤り量のカウントは終了する。
【０３０４】
以上の処理は、バースト誤り量の監視を終了させる際の処理に相当する。この終了処理について、図２２Ａの（４）で示される具体例に基づいてより具体的に説明する。図２２Ａの（４）では、図２２Ａの（１）、（２）及び（３）に続いて、フレームＦ（ｊ＋２）及びフレームＦ（ｊ＋３）が順次正常に受信された後、フレームＦ（ｊ＋４）が正常に受信された場合が例示される。この例によれば、処理（Ｓ９０１）において、フレーム障害が発生していないと判定される（Ｓ９０１；ＮＯ）。
【０３０５】
そして、図２２Ａの（４）の例によれば、処理（Ｓ９０６）において、フレームＦ（ｊ＋１）の先頭から今回受信されたフレームＦ（ｊ＋４）の先頭までのデータ量と所定値Ｗとが比較される。当該データ量が所定値Ｗよりも大きい場合には（Ｓ９０６；ＴＲＵＥ）、バースト誤り量ＢＥの統計処理が行われ、バースト誤り量の統計情報が生成される。図２２Ｂには、バースト誤り量の統計情報（ヒストグラム）の例が示される。図２２Ｂの例では、各バースト誤り量の発生頻度が統計的に取得されている。例えば、バースト誤り量検出部１１６は、そのバースト誤り量の統計情報から、最頻値ｄ−３００を再送データ量ＲＤＳに決定する（Ｓ９０７）。なお、再送データ量ＲＤＳの値は、最頻値ｄ−３００でなくとも、中央値ｄ−３０１、平均値ｄ−３０２、又は最大値ｄ−３０３のとされてもよい。
【０３０６】
〔第２実施形態における作用及び効果〕
第１実施形態における作用及び効果を十分に得るためには、再送データ量ＲＤＳをどのような値に設定するかが重要となる。再送データ量ＲＤＳが小さすぎると、従来のＳＲ方式と同じような動作となり、逆に再送データ量ＲＤＳが大きすぎると、従来のＧＢＮ方式と同じような動作となり、第１実施形態における作用及び効果を十分に得ることができない場合がある。
【０３０７】
そこで、第２実施形態では、バースト誤り量検出部１１６により、バースト誤り量として、所定の誤り率以上で誤りが発生している箇所のデータ量がカウントされ、このバースト誤り量の統計情報から再送データ量ＲＤＳが決定される。これにより、第２実施形態によれば、バースト誤り量から最適な再送データ量ＲＤＳを決定することができる。これにより、例えば、再送が頻繁に繰り返されるような事態を防ぐことができる。従って、第２実施形態によれば、通信リソースの使用効率を一層向上させることができる。
【０３０８】
なお、上述の説明で用いた複数のフローチャートでは、複数のステップ（処理）が順番に記載されているが、本実施形態で実行される処理ステップの実行順序は、その記載の順番に制限されない。本実施形態では、図示される処理ステップの順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
【０３０９】
上記の各実施形態及び各変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。
【０３１０】
（付記１）連続再送が要求されるデータ量を示す再送データ量を取得する再送データ量取得部と、
前記再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定する決定部と、
前記連続再送が要求される前記フレーム群の中の先頭フレームを示す要求フレーム情報及び前記最終フレーム情報を少なくとも含むＮＡＫフレームを生成する生成部と、
前記要求フレーム情報で特定される先頭フレームから前記最終フレーム情報で特定される最終フレームまでの連続再送を要求するために前記ＮＡＫフレームを送信側通信装置に送信する送信部と、
を備えることを特徴とする通信装置。
【０３１１】
（付記２）前記ＮＡＫフレームを受信した前記送信側通信装置から連続再送されるフレーム群の中に障害を検出する検出部を更に備え、
前記決定部は、前記連続再送されているフレーム群の中に障害が検出された場合に、前記最終フレーム情報を更新する、
ことを特徴とする付記１に記載の通信装置。
【０３１２】
（付記３）前記決定部は、前記最終フレーム情報に基づいて特定される連続再送の最終フレームの次に送信されるフレームに障害が検出された場合には、前記再送データ量に基づいて次の連続再送のための最終フレーム情報を再度決定する、
ことを特徴とする付記２に記載の通信装置。
【０３１３】
（付記４）前記決定部は、前記最終フレーム情報として、前記再送データ量そのものを用いることを特徴とする付記１から３のいずれか１つに記載の通信装置。
【０３１４】
（付記５）
前記再送データ量取得部は、所定の誤り率以上で誤りが発生している箇所のデータ量をバースト誤り量としてカウントし、このバースト誤り量の統計情報に基づいて、前記再送データ量を決定することを特徴とする付記１から４のいずれか１つに記載の通信装置。
【０３１５】
（付記６）
前記再送データ量取得部は、前記バースト誤り量の統計情報における、最頻値、中央値、平均値、最大値のいずれか１つを前記再送データ量に設定することを特徴とする付記５に記載の通信装置。
【０３１６】
（付記７）既に送信されたフレームデータを格納する格納部と、
受信側の通信装置から送信されたＮＡＫフレームを受信する受信部と、
前記受信されたＮＡＫフレームに含まれる要求フレーム情報及び最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームのデータを前記格納部から順次読み出す読出処理部と、
前記読み出された各再送フレームを連続的に送信する送信部と、
を備えることを特徴とする通信装置。
【０３１７】
（付記８）前記読出処理部は、前記各再送フレームの連続送信中に、前記最終フレーム情報とは異なる更新された最終フレーム情報を含むＮＡＫフレームが受信された場合に、前記最終フレームを該更新された最終フレーム情報に基づいて特定されるフレームに変更する、
ことを特徴とする付記７に記載の通信装置。
【０３１８】
（付記９）前記読出処理部は、既に初回読み出しが終了しているフレームの次に初回読み出しすべきフレームが格納されている第１アドレスと、現在読み出すべきフレームが格納されている第２アドレスとを別々に保持し、前記第２アドレスを用いて前記最終フレームまでの各再送フレームの順次読み出しが終了した後、前記第１アドレスを前記第２アドレスと一致させることにより前記次に初回読み出しすべきフレームを前記格納部から読み出す、
ことを特徴とする付記７又は８に記載の通信装置。
【０３１９】
（付記１０）前記受信されたＮＡＫフレームに含まれるトランザクション識別子と、既に送信されたフレームに含まれていたトランザクション識別子とを比較することにより、前記各再送フレームの連続送信を開始するか否かを判定し、前記各再送フレームの連続送信を開始する際及びシーケンス番号が一巡する際にのみ、送信されるフレームに含まれるトランザクション識別子を更新する更新部を更に備えることを特徴とする付記７から９のいずれか１つに記載の通信装置。
【０３２０】
（付記１１）前記受信されたＮＡＫフレームには、前記最終フレーム情報として、連続再送が要求されるデータ量を示す再送データ量が含まれており、
前記読出処理部は、前記要求フレーム情報で前記先頭フレームを特定し、前記先頭フレーム及び前記再送データ量で前記最終フレームを特定する、
ことを特徴とする付記７から１０のいずれか１つに記載の通信装置。
【０３２１】
（付記１２）受信側の通信装置が、
連続再送が要求されるデータ量を示す再送データ量を取得し、
前記再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定し、
前記連続再送が要求される前記フレーム群の中の先頭フレームを特定するための要求フレーム情報及び前記最終フレーム情報を少なくとも含むＮＡＫフレームを生成し、
前記生成されたＮＡＫフレームを送信し、
送信側の通信装置が、
前記受信側の通信装置から送信されたＮＡＫフレームを受信し、
前記受信されたＮＡＫフレームに含まれる前記要求フレーム情報及び前記最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームを送信フレームを格納する格納部から順次読み出し、
前記読み出された各再送フレームを連続的に送信する、
ことを含む通信方法。
【０３２２】
（付記１３）前記受信側の通信装置が、
前記送信側の通信装置から連続再送されるフレーム群の中に障害を検出し、
前記連続再送されているフレーム群の中に障害が検出された場合に、前記最終フレーム情報を更新し、
前記送信側の通信装置が、
前記各再送フレームの連続送信中に、前記最終フレーム情報とは異なる更新された最終フレーム情報を含むＮＡＫフレームが受信された場合に、前記最終フレームを該更新された最終フレーム情報に基づいて特定されるフレームに変更する、
ことを更に含む付記１２に記載の通信方法。
【０３２３】
（付記１４）前記受信側の通信装置が、
前記最終フレーム情報に基づいて特定される連続再送の最終フレームの次に送信されるフレームに障害が検出された場合には、前記再送データ量に基づいて次の連続再送のための最終フレーム情報を再度決定する、
ことを更に含む付記１２又は１３に記載の通信方法。
【０３２４】
（付記１５）前記送信側の通信装置が、
既に初回読み出しが終了しているフレームの次に初回読み出しすべきフレームが格納されている第１アドレスと、現在読み出すべきフレームが格納されている第２アドレスとを別々に保持し、
前記第２アドレスを用いて前記最終フレームまでの各再送フレームの順次読み出しが終了した後、前記第１アドレスを前記第２アドレスと一致させることにより前記次に初回読み出しすべきフレームを前記格納部から読み出す、
ことを更に含む付記１２から１４のいずれか１つに記載の通信方法。
【０３２５】
（付記１６）前記送信側の通信装置が、
前記受信されたＮＡＫフレームに含まれるトランザクション識別子と、既に送信されたフレームに含まれていたトランザクション識別子とを比較することにより、前記各再送フレームの連続送信を開始するか否かを判定し、
前記各再送フレームの連続送信を開始する際及びシーケンス番号が一巡する際にのみ、送信されるフレームに含まれるトランザクション識別子を更新する、
ことを更に含む付記１２から１５のいずれか１つに記載の通信方法。
【０３２６】
（付記１７）前記最終フレーム情報として前記再送データ量そのものが用いられ、
前記要求フレーム情報で前記先頭フレームが特定され、前記先頭フレーム及び前記再送データ量で前記最終フレームが特定される、
ことを特徴とする付記１２から１６のいずれか１つに記載の通信方法。
【０３２７】
（付記１８）
前記受信側の通信装置が、
所定の誤り率以上で誤りが発生している箇所のデータ量をバースト誤り量としてカウントし、
前記バースト誤り量の統計情報に基づいて、前記再送データ量を決定する、
ことを更に含む付記１２から１７のいずれか１つに記載の通信方法。
【０３２８】
（付記１９）
前記再送データ量の決定は、前記バースト誤り量の統計情報における、最頻値、中央値、平均値、最大値のいずれか１つを前記再送データ量に設定することを特徴とする付記１８に記載の通信方法。
【０３２９】
（付記２０）コンピュータに、
連続再送が要求されるデータ量を示す再送データ量を取得する再送データ量取得部と、
前記再送データ量に基づいて、障害が発生したフレームからの連続再送が要求されるフレーム群の中の最終フレームを特定するための最終フレーム情報を決定する決定部と、
前記連続再送が要求される前記フレーム群の中の先頭フレームを示す要求フレーム情報及び前記最終フレーム情報を少なくとも含むＮＡＫフレームを生成する生成部と、
前記要求フレーム情報で特定される先頭フレームから前記最終フレーム情報で特定される最終フレームまでの連続再送を要求するために前記ＮＡＫフレームを送信側通信装置に送信する送信部と、
を実現させることを特徴とする通信プログラム。
【０３３０】
（付記２１）コンピュータに、
既に送信されたフレームデータを格納する格納部と、
受信側の通信装置から送信されたＮＡＫフレームを受信する受信部と、
前記受信されたＮＡＫフレームに含まれる要求フレーム情報及び最終フレーム情報に基づいて特定される先頭フレームから最終フレームまでの各再送フレームのデータを前記格納部から順次読み出す読出処理部と、
前記読み出された各再送フレームを連続的に送信する送信部と、
を実現させることを特徴とする通信プログラム。
【符号の説明】
【０３３１】
１、２  回線
１０  （送信側）通信端末
２０  （受信側）通信端末
１１  他ブロック
１２  ＮＩＣ
１００  内部インタフェース部
１０１  ヘッダ付与部
１０２  送信バッファ部
１０３  ＡＣＫ／ＮＡＫ生成部
１０４  ヘッダ誤り訂正符号付与部（ＥＣＣ付与部）
１０５  フレーム誤り検出符号付与部（ＥＤＣ付与部）
１０６  送信部
１０８  受信部
１０９  ヘッダ誤り訂正部
１１０  フレーム誤り検出部
１１１  フレーム識別部
１１２  送信バッファ制御部
１１３  受信バッファ部
１１４  トランザクション識別子付与部（ＩＤ付与部）
１１５  再送データ量設定部
１１６  バースト誤り量検出部
２０１  ヘッダ処理部
２０２  再送／更新処理部
２０３  受信処理部
２０４  ＮＡＫテーブル部
【図１】
0005817387.tif 000002
【図２】
0005817387.tif 000003
【図３Ａ】
0005817387.tif 000004
【図３Ｂ】
0005817387.tif 000005
【図４】
0005817387.tif 000006
【図５】
0005817387.tif 000007
【図６】
0005817387.tif 000008
【図７】
0005817387.tif 000009
【図８Ａ】
0005817387.tif 000010
【図８Ｂ】
0005817387.tif 000011
【図９】
0005817387.tif 000012
【図１０】
0005817387.tif 000013
【図１１Ａ】
0005817387.tif 000014
【図１１Ｂ】
0005817387.tif 000015
【図１２Ａ】
0005817387.tif 000016
【図１２Ｂ】
0005817387.tif 000017
【図１３Ａ】
0005817387.tif 000018
【図１３Ｂ】
0005817387.tif 000019
【図１４Ａ】
0005817387.tif 000020
【図１４Ｂ】
0005817387.tif 000021
【図１５Ａ】
0005817387.tif 000022
【図１５Ｂ】
0005817387.tif 000023
【図１６】
0005817387.tif 000024
【図１７】
0005817387.tif 000025
【図１８】
0005817387.tif 000026
【図１９】
0005817387.tif 000027
【図２０】
0005817387.tif 000028
【図２１】
0005817387.tif 000029
【図２２Ａ】
0005817387.tif 000030
【図２２Ｂ】
0005817387.tif 000031
【図２３】
0005817387.tif 000032
【図２４】
0005817387.tif 000033
【図２５】
0005817387.tif 000034