(57)【要約】【課題】帯域利用効率を向上する。【解決手段】初回のフレーム転送はフレームを複数ブロックに分割することなく送信部１０を介して送信する。受信側はフレーム終端・識別部１２で受信したフレームに含まれる誤りの検出、フレーム識別を行う。誤りが検出された場合、誤り検出符号計算部１４−１でフレームを複数のブロックに分割し、ブロック毎の誤り検出符号を計算し、ブロック長と計算されたブロック誤り検出符号をＮＡＫに設定して送信側へ送信する。送信側は、ＮＡＫを受信すると、ブロック誤り検出符号計算手段１４−０でＮＡＫに対応するフレームを、受信側からＮＡＫによって通知されるブロック長毎に誤り検出符号を計算し、その値と、ＮＡＫに含まれる受信側で計算されたブロック誤り検出符号を誤り検出符号比較部１３で比較し、一致しないブロックのみを再送フレームに入れ再送する。【選択図】図４
2011234268.tif 000002
【特許請求の範囲】
【請求項１】
対向する通信装置から送信されるプロトコル・データ・ユニット（ＰＤＵ）単位のデータを受信して受信データとして出力する受信部と、
前記受信データに誤りがあるか否かを判定する受信データ判定部と、
前記受信データを所定のブロック長の受信データブロックに分割し、前記受信データブロック毎に受信ブロック誤り検出符号を計算する受信ブロック誤り検出符号計算部と、
前記対向する通信装置との間に介在する回線の品質に基づいて前記ブロック長を決定するブロック長決定部と、
前記受信データ判定部が前記受信データに誤りを検出したとき、前記ブロック長と前記受信ブロック誤り検出符号とを前記対向する通信装置に送信して再送を要求する送信部と
を具備する
通信制御装置。
【請求項２】
前記回線の品質は、ＢＥＲ（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）に基づいて算出し、
前記ブロック長決定部は、前記ＢＥＲを複数の範囲に分類してブロック長を算出する
請求項１に記載の通信制御装置。
【請求項３】
前記受信データを格納する受信バッファ部をさらに具備し、
再送の要求に応答して前記対向する通信装置が送信した再送データを受信したとき、前記再送データに含まれる制御情報に基づいて、前記再送データに含まれる前記ブロック長の再送ブロックのうちの誤りを検出されない再送ブロックを前記受信バッファ部に格納して前記受信データの修復を行う
請求項１または請求項２に記載の通信制御装置。
【請求項４】
前記再送ブロックは誤り訂正符号を含み、
前記再送ブロックの誤りを前記誤り訂正符号に基づいて誤り訂正する誤り訂正部をさらに具備し、
前記受信バッファ部は、前記制御情報に基づいて誤り訂正された前記再送ブロックを格納して前記受信データの修復を行う
請求項３に記載の通信制御装置。
【請求項５】
前記対向する通信装置に送信する送信データを格納する送信バッファ部と、
前記対向する通信装置において算出された対向ブロック長と、前記対向する通信装置が受信した対向受信データを前記対向ブロック長に分割して計算した対向受信ブロック誤り検出符号とを含む再送要求を受信したとき、前記送信バッファ部に格納された前記送信データを前記対向ブロック長の送信データブロックに分割し、前記送信データブロック毎に送信ブロック誤り検出符号を計算する送信ブロック誤り検出符号計算部と、
前記対向受信ブロック誤り検出符号と、前記送信ブロック誤り検出符号とを比較する誤り検出符号比較部と、
前記送信部は、前記対向受信ブロック誤り検出符号と前記送信ブロック誤り検出符号とが異なるブロックの前記送信バッファ部に格納されたデータと前記送信ブロック誤り検出符号とを前記対向する通信装置に再送する
請求項１から請求項４のいずれかに記載の通信制御装置。
【請求項６】
前記送信データブロック毎に送信ブロック誤り訂正符号を計算するブロック誤り訂正符号計算部をさらに具備し、
前記送信部は、前記対向受信ブロック誤り検出符号と前記送信ブロック誤り検出符号とが異なるブロックの前記送信バッファ部に格納されたデータと前記送信ブロック誤り訂正符号とを前記対向する通信装置に再送する
請求項５に記載の通信制御装置。
【請求項７】
対向する通信装置からプロトコル・データ・ユニット（ＰＤＵ）単位のデータを受信して受信データとして出力するステップと、
前記受信データに誤りがあるか否かを判定するステップと、
前記受信データを所定のブロック長の受信データブロックに分割し、前記受信データブロック毎に受信ブロック誤り検出符号を計算するステップと、
前記対向する通信装置との間に介在する回線の品質に基づいて前記ブロック長を決定するステップと、
前記判定の結果が前記受信データに誤りを検出したことを示すとき、前記ブロック長と前記受信ブロック誤り検出符号とを前記対向する通信装置に送信して再送を要求するステップと
を具備する
通信制御方法。
【請求項８】
前記回線の品質をＢＥＲ（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）に基づいて算出するステップをさらに具備し、
前記ブロック長を決定するステップは、前記ＢＥＲを複数の範囲に分類してブロック長を算出するステップを備える
請求項７に記載の通信制御方法。
【請求項９】
前記受信データを受信バッファに格納するステップと、
再送の要求に応答して前記対向する通信装置が送信した再送データを受信するステップと、
前記再送データに含まれる制御情報に基づいて、前記再送データに含まれる前記ブロック長の再送ブロックのうちの誤りを検出されない再送ブロックを前記受信バッファ部に格納して前記受信データの修復を行うステップと
をさらに具備する
請求項７または請求項８に記載の通信制御方法。
【請求項１０】
前記再送ブロックは誤り訂正符号を含み、
前記再送ブロックの誤りを前記誤り訂正符号に基づいて誤り訂正するステップをさらに具備する
請求項９に記載の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの送受信を行う通信制御装置および通信制御方法に関し、特にデータの再送を行う通信制御装置および通信方法に関する。
【背景技術】
【０００２】
従来、データの送受信における誤り制御方法としては、大きく誤り訂正方法と誤り検出方法（再送方法）の２つがある。前者の誤り訂正方法は、送信データに付与された冗長データにより、誤りを検出し、さらに訂正する方法である。冗長データを生成する符号として、ハミング符号、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号、ＲＳ（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）符号、およびＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  ｃｏｄｅｓ）符号などがあり、バースト誤り、ランダム誤りなど誤り特性に合わせて符号を選ぶ必要がある。後者の誤り検出方法は、同じく送信データに付与された冗長データにより、誤りが生じたこと検出し、送信データを再送信し、誤りの訂正する方法である。冗長データを生成する符号として、パリティ符号、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号などがある。さらに、誤り検出時のデータ再送方法としては、Ｓｔｏｐ  ａｎｄ  Ｗａｉｔ−ＡＲＱ（Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  ｒｅＱｕｅｓｔ）、Ｇｏ  Ｂａｃｋ  Ｎ−ＡＲＱ、およびＳｅｌｅｃｔｉｖｅ  Ｒｅｐｅａｔ−ＡＲＱの大きく３方式がある。
【０００３】
誤り訂正方式は、訂正可能な誤り数を超える数の誤りが発生した際、誤りの訂正が不可能であり、誤り訂正数を大きくすると、冗長データサイズが大きくなり、誤り無し時の帯域利用効率が劣化する。また、パケット転送のような場合、パケット毎に冗長データを付与することが多いため、パケットロスが発生すると、誤り訂正が不可能となる。
【０００４】
誤り検出方式は、パケット転送によるパケットロスに対応することが出来る反面、データ送信からデータ送信完了を示す確認応答（ＡＣＫ：Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）を受信するまでの時間（ＲＴＴ：Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）が長いと、再送方式によっては、帯域利用効率が劣化する。また、誤りが多発すると、再送を繰り返すため著しく帯域が劣化する。
【０００５】
誤りが発生したパケットのみを再送するＳｅｌｅｃｔｉｖｅ  Ｒｅｐｅａｔ−ＡＲＱ方式は、再送方式の中で最も再送効率が良い。その方式においても、帯域の利用効率を向上させるためにパケットサイズを大きくすると、誤り率が高い回線の場合には再送パケットの誤り確率が高くなり、再送が頻繁に発生して帯域利用効率が著しく劣化する。逆に、パケットサイズを小さくすると、誤り率の低い回線の場合でもパケットのオーバーヘッドが増え、帯域の利用効率が劣化する。
【０００６】
これらの問題を解決する方式として、特許文献１（特許第００３３４９９２６号公報）に開示される方法がある。この方法では、送信パケットは複数のブロックに分割され、送信データに誤りが検出された場合には、その誤りブロックデータのみが更に複数のブロックに分割されて、再送される。
【０００７】
図１は、上記文献に開示される通信制御装置の構成を示す図であり図２に、その通信方式におけるフレームの構造が示される。送信制御、受信制御の両制御機能を具備する通信制御装置３０１は、データ端末Ａ／Ｂ３００と無線機３０８に接続される。通信制御装置３０１は、端末インタフェース３０２、ＣＰＵ３０３、メモリ３０４、ブロック化部３０５、ブロック組立部３０６、無線インタフェース３０７を備える。
【０００８】
送信側を通信制御装置Ａ、受信側を通信制御装置Ｂとすると、通信制御装置Ａにおいて、送信パケットが端末インタフェース３０２から入力されると、ブロック化部３０５は、送信パケットを図２（ａ）に示されるように複数のブロックに分割し、各ブロック３１１にブロック番号３０９とＣＲＣ（誤り検出のための符号）３１０とを付加して新たなパケットを生成する。生成されたパケットは、無線インタフェース３０７、無線機３０８を経由して送信される。受信側の通信制御装置Ｂは、無線機３０８、無線インタフェース３０７を経由して、図２（ａ）に示される構成のパケットを受信し、ブロック組立部３０６において各ブロックの誤り検出が行われる。誤りの無いブロックのみがメモリ３０４へ保存される。誤りがある場合、ＣＰＵ３０３は、該当ブロックのブロック番号を入れた再送要求をブロック化部３０５、無線インタフェース３０７を経由して無線機３０８から通信制御装置Ａへ送信する。
【０００９】
通信制御装置Ａは、再送要求を受けると、再送要求パケットに入っているブロック番号に基づいて、該当するブロックをメモリ３０４から読み出す。ブロック化部３０５は、読み出されたブロックを２つのサブブロック３１１−１−１、３１１−１−２に分割し、ブロック番号としてサブブロック番号３０９−１−１、３０９−１−２を付与し、それぞれのサブブロックの誤り検出符号３１０−１−１、３１０−１−２を付加する。図２（ｂ）に示されるように、再生成されたパケットは、通信制御装置Ｂに送信される。
【００１０】
通信制御装置Ｂでは、ブロック組立部３０６は、無線インタフェース３０７を介して受信したデータに対して、パケットに含まれている誤り検出符号３１０−１−１、３１０−１−２に基づいて各ブロックの誤り検出を行う。正常なブロック（誤りが検出されなかったブロック）のデータは、メモリ３０４に保存される。全く誤りがなければ、通信制御装置Ａに受信応答を送信すると共に、初回に正常受信したブロックおよび再送により正常に受信したブロックに基づいて組み立てたデータをメモリ３０４に転送し、端末インタフェース３０２を介してデータ端末Ｂに送信する。また、再送において誤りが検出されたブロックがある場合は、そのブロック番号を再送要求パケットに入れて通信制御装置Ａに送信する。
【００１１】
通信制御装置Ａは、再送要求を受けると、再送要求パケットに入っているブロック番号（サブブロック番号を含む）に基づいて、該当するサブブロックをメモリ３０４から読み出す。ブロック化部３０５は、読み出されたサブブロックをさらに２つのサブブロック３１１−１−１−１、３１１−１−１−２に分割し、ブロック番号としてサブブロック番号３０９−１−１−１、３０９−１−１−２を付与する。ブロック化部３０５は、それぞれのサブブロックに誤り検出符号３１０−１−１−１、３１０−１−１−２を付加した図２（ｃ）に示されるような構成のパケットを生成する。通信制御装置Ａは、このように生成されたパケットを通信制御装置Ｂへ送信する。すべて誤り無く受信できるまで、この手順が繰り返されパケット送信が完了する。
【００１２】
上述した方式では、初回のパケット送信時に常にブロック分割を行い、それぞれのブロックにブロック番号および誤り検出符号（上記方式では、ＣＲＣを使用）が付与される。そのため、常に分割されるブロック数分のブロック番号および誤り検出符号などのオーバーヘッドを含み、ブロック化を行わずパケット転送した場合に比べ回線帯域の利用効率が劣化する。
【００１３】
また、特許文献２（特開平１０−２１００７９号公報）には、データパケットに対して動作可能なパケット再分割器およびエラー検出コード発生器を備えた通信ユニットが開示されている。パケット再分割器からのパケットのサブ部分に対応するエラー検出コード（第１のエラー検出コード）を含むＮＡＫが生成され、パケットのサブ部分の再送信を要求する。発信側ユニットは、各サブ部分に対してエラー検出コード（第２のエラー検出コード）を計算する。各サブ部分に対する計算された第２のエラー検出コードは、そのサブ部分に対する受信された第１のエラー検出コードと比較される。対応するエラー検出コードが整合しないサブ部分は悪いサブ部分として識別され再送信される。この通信ユニットでは、パケットのサブ部分のブロック長が固定されている。パケットのサブ部分のブロック長が短く設定されると、フレーム長が長い場合、ＮＡＫフレームが大きくなり、帯域利用効率が劣化する。また、逆にブロック長が長く設定されると、再送フレームに誤りが生じる可能性が高くなるため、再再送により、遅延の増加および、帯域の利用効率低下を招く。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第００３３４９９２６号公報
【特許文献２】特開平１０−２１００７９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明の目的は、以上のような問題を解消し、帯域利用効率を向上することができる通信制御装置および通信方式を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の観点では、通信制御装置は、受信部と、受信データ判定部と、受信ブロック誤り検出符号計算部と、ブロック長決定部と、送信部とを具備する。受信部は、対向する通信装置から送信されるプロトコル・データ・ユニット（ＰＤＵ）単位のデータを受信して受信データとして出力する。受信データ判定部は、受信データに誤りがあるか否かを判定する。受信ブロック誤り検出符号計算部は、受信データを所定のブロック長の受信データブロックに分割し、受信データブロック毎に受信ブロック誤り検出符号を計算する。ブロック長決定部は、対向する通信装置との間に介在する回線の品質に基づいてブロック長を決定する。送信部は、受信データ判定部が受信データに誤りを検出したとき、ブロック長と受信ブロック誤り検出符号とを対向する通信装置に送信して再送を要求する。
【００１７】
本発明の他の観点では、通信制御方法は、対向する通信装置からプロトコル・データ・ユニット（ＰＤＵ）単位のデータを受信して受信データとして出力するステップと、受信データに誤りがあるか否かを判定するステップと、受信データを所定のブロック長の受信データブロックに分割し、受信データブロック毎に受信ブロック誤り検出符号を計算するステップと、対向する通信装置との間に介在する回線の品質に基づいてブロック長を決定するステップと、判定の結果が受信データに誤りを検出したことを示すとき、ブロック長と受信ブロック誤り検出符号とを対向する通信装置に送信して再送を要求するステップとを具備する。
【発明の効果】
【００１８】
本発明によれば、初回のパケット転送時でも、パケットをブロック化することなく転送でき、また誤り発生時でも回線の品質に合わせブロック長を調整することにより帯域利用効率を向上することができる通信制御装置および通信方式を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】従来の通信制御装置の構成を示すブロック図である。
【図２】従来の通信制御におけるフレーム構成を示す図である。
【図３】第１の実施の形態における伝送シーケンス例を示す図である。
【図４】第１の実施の形態に係る端末装置の構成を示すブロック図である。
【図５】第１の実施の形態における初回送信フレーム（＃Ｋ）のフレームフォーマットと送信バッファ上に保存されるフレーム（＃Ｋ）を示す図である。
【図６】第１の実施の形態における初回受信フレーム（＃Ｋ）受信時の受信側のフレームフォーマットおよびフレーム処理を示す図である。
【図７】第１の実施の形態におけるＮＡＫ（＃Ｋ）受信時の送信側のフレームフォーマットおよびフレーム処理を示す図である。
【図８】第１の実施の形態における再送フレーム（＃Ｋ）受信時の受信側のフレームフォーマットおよびフレーム処理を示す図である。
【図９】第１の実施の形態における送信側ＮＩＣの動作を示すフローチャートである。
【図１０】第１の実施の形態における受信側ＮＩＣの動作を示すフローチャートである。
【図１１】第２の実施の形態に係る端末装置の構成を示すブロック図である。
【図１２】第２の実施の形態におけるＮＡＫ（＃Ｋ）受信時の送信側のフレームフォーマットおよびフレーム処理を示す図である。
【図１３】第２の実施の形態における再送フレーム（＃Ｋ）受信時の受信側のフレームフォーマットおよびフレーム処理を示す図である。
【図１４】第２の実施の形態における送信側ＮＩＣの動作を示すフローチャートである。
【図１５】第２の実施の形態における受信側ＮＩＣの動作を示すフローチャートである。
【図１６】第１の実施の形態におけるブロック長決定部の構成を示すブロック図である。
【図１７】第１の実施の形態におけるブロック長決定部の動作を示すフローチャートである。
【図１８】第１の実施の形態における受信ブロック長の算出の動作を示すフローチャートである。
【発明を実施するための形態】
【００２０】
本発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
（第１の実施の形態）
図３に、第１の実施の形態に係る通信システムの構成および伝送シーケンスが示される。通信システムは、端末Ａ１および端末Ｂ２を備え、端末Ａ１と端末Ｂ２との間でネットワークを介してデータ通信を行う。ここで、ネットワークは、通信回線１００、１０１として例示され、通信回線１００によって端末Ａ１から端末Ｂ２にデータが送信され、通信回線１０１によって端末Ｂ２から端末Ａ１にデータが送信される。データは、所定のサイズに区切られ、制御情報が付加されたデータの固まり（プロトコル・データ・ユニット：ＰＤＵ）として送受される。プロトコル・データ・ユニットは、通信方式、処理レイヤによって異なる名称、例えば、上記ではパケットと呼ばれる。ここでは、一般的によく知られているＥｔｈｅｒｎｅｔ（登録商標）のプロトコルにおいて使用されるフレームと称して説明する。
【００２２】
図３には、端末Ａ１から端末Ｂ２へデータが転送されるときに、誤りが検出されてデータが再送されるシーケンス例が示されている。すなわち、端末Ａ１からフレーム（＃Ｋ）３０が送信（初回送信）され、受信した端末Ｂ２がそのフレームデータに誤りを検出し、端末Ｂ２からＮＡＫ（＃Ｋ）３１が返信される（ＮＡＫ：Ｎｅｇａｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）。端末Ａ１は、ＮＡＫ（＃Ｋ）３１による再送要求に従い再送フレーム（＃Ｋ）３２を生成し、再送信する。再送信された再送フレーム（＃Ｋ）３２に誤りが無いため、端末Ｂ２は、ＡＣＫ（＃Ｋ）３３を送信する（ＡＣＫ：Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）。端末Ａ１がＡＣＫ（＃Ｋ）３３を受信することにより、フレーム（＃Ｋ）３０の送信が完了する。なお、図３では、説明を容易にするため、ＡＣＫを受信せずに送信できるサイズを示す受信ウインドウサイズを１フレーム分としている。
【００２３】
図４に、第１の実施の形態に係る通信制御装置を備える端末Ａ１、端末Ｂ２の構成を示す。なお、端末Ｂ２の構成は、端末Ａ１の構成と同じであり、以下端末Ａ１の構成を説明する。端末Ａ１は、通信制御装置としてＮＩＣ（Ｎｅｔｗｏｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）６と、ＣＰＵなどを備える上位ブロック５とを具備する。ＮＩＣ６は、本発明に係る送信制御回路としての機能、および受信制御回路としての機能の双方を有する。ＮＩＣ６は、上位ブロック５に接続され、また通信回線１００および通信回線１０１によって対向する端末Ｂ２に接続される。上位ブロック５は、データ送信するときに、送信データをＮＩＣ６へ出力する。また、上位ブロック５は、端末Ｂ２から受信した受信データをＮＩＣ６から入力する。
【００２４】
ＮＩＣ６は、上位インタフェース部７、フレーム生成部８、送信バッファ部９、送信部１０、受信部１１、フレーム終端・識別部１２、誤り検出符号比較部１３、ブロック誤り検出符号計算部１４−０〜１、再送フレーム生成部１５、ＡＣＫ／ＮＡＫフレーム生成部１６、受信バッファ部１７、ブロック長決定部１８を備える。
【００２５】
上位インタフェース部７は、上位インタフェース信号１０２を介して上位ブロック５から出力される送信データを受信し、送信データ信号１０４をフレーム生成部８に出力する。また、受信バッファ１７から読み出し可能な受信フレームデータ１２３を読み出し、上位インタフェース信号１０２を介して上位ブロック５へ出力する。
【００２６】
フレーム生成部８は、上位インタフェース部７から送信データ信号１０４を入力し、再送フレーム生成部１５から再送信データ信号１１６を入力し、さらにＡＣＫ／ＮＡＫフレーム生成部１６からＡＣＫ／ＮＡＫデータ信号１２２を入力する。フレーム生成部８は、ヘッダと、誤り検出符号を含むフッタとを付与したフレームデータを示すフレームデータ信号およびデータ有効信号１０５を送信バッファ９と送信部１０とに出力する。また、フレーム生成部８は、送信バッファ９からバッファの空きサイズを示すバッファ空きサイズ信号１０６を入力し、空きサイズが閾値を超えると、送信データ信号１０４の停止を要求するバックプレッシャー信号１０３を上位インタフェース部７へ出力する。なお、ヘッダには、当然ヘッダにおける誤りを検出するための誤り検出符号およびフレームの再送制御に必要な情報が付加される。
【００２７】
送信バッファ部９は、フレーム生成部８からフレームデータ信号およびデータ有効信号１０５を入力し、フレームデータを保存する。また、送信バッファ部９は、誤り検出符号比較部１３から出力される再送信フレームデータ読み出し信号１１０に応答して、指示された再送信フレームデータ信号１１２をブロック誤り検出符号計算部１４−０へ出力する。また、誤り検出符号比較部１３からの指示により、送信バッファ部９は、バッファ上にあるフレームデータの削除を行う。
【００２８】
送信部１０は、フレーム生成部８からフレームデータ信号およびデータ有効信号１０５を入力し、フレームデータを符号化、スクランブル、シリアライズし、通信回線１００を介して送信する。送信部１０は、所謂ＰＣＳ（ｐｈｙｓｉｃａｌ  ｃｏｄｉｎｇ  ｓｕｂｌａｙｅｒ）、ＰＭＡ（ｐｈｙｓｉｃａｌ  ｍｅｄｉｕｍ  ａｔｔａｃｈｍｅｎｔ）、ＰＭＤ（ｐｈｙｓｉｃａｌ  ｍｅｄｉａ  ｄｅｐｅｎｄｅｎｔ）の送信側相当の機能を有する。
【００２９】
受信部１１は、通信回線１０１を介して受信した信号をデシリアライズ、デスクランブル、復号化し、受信フレーム信号１０７をフレーム終端・識別部１２へ出力する。受信部１１は、ＰＣＳ、ＰＭＡ、ＰＭＤの受信側相当の機能を有する。
【００３０】
フレーム終端・識別部１２は、受信部１１から入力される受信フレーム信号１０７のヘッダ部およびフレーム全体に対する誤り検出を行い、また、受信フレームが初めて受信した初回フレームか、再送フレームか、または、ＡＣＫ／ＮＡＫフレームかの識別を行う。受信フレームが初回フレームまたは再送フレームである場合、フレーム終端・識別部１２は、受信バッファ部１７およびブロック誤り検出符号計算部１４−１に受信フレーム信号１１７と、誤り検出結果信号１１８とを出力する。受信フレームがＡＣＫ／ＮＡＫフレームである場合、フレーム終端・識別部１２は、誤り検出符号比較部１３に受信ＡＣＫ／ＮＡＫ信号１０８と誤り検出結果信号１０９とを出力する。
【００３１】
誤り検出符号比較部１３は、受信ＡＣＫ／ＮＡＫ信号１０８がＡＣＫを示すとき、送信バッファ部９のリードポインタを更新し、当該ＡＣＫに対応する送信フレームを送信バッファ９上から削除する。受信ＡＣＫ／ＮＡＫ信号１０８がＮＡＫを示すとき、当該ＮＡＫに対応する送信フレームを送信バッファ部９から読み出すため、ＮＡＫフレームに設定されているフレーム先頭ポインタとブロックポインタとを参照して再送信フレームデータ読み出し信号１１０を生成し、送信バッファ９へ出力する。また、ＮＡＫフレームのヘッダに設定されているブロック長をブロック長信号１１１として、ブロック誤り検出符号計算部１４−０へ出力する。
【００３２】
さらに、誤り検出符号比較部１３は、ブロック誤り検出符号計算部１４−０により計算されたブロック誤り検出符号と、ＮＡＫフレームに含まれる受信側装置（ここでは端末Ｂ２）で計算されたブロック誤り検出符号との比較を行い、再送信するブロックを決定する。再送信ブロックが決まると、誤り検出符号比較部１３は、ブロック誤り検出符号計算部１４−０で計算された当該ブロックのブロック誤り検出符号と当該再送ブロックとを含む再送ブロックデータ信号１１４と、当該ブロック位置を示すポインタと、再送フレームのヘッダ情報を含む再送制御情報１１５とを再送フレーム生成部１５へ出力する。なお、フレーム終端・識別部１２から出力される誤り検出結果信号１０９がフレームヘッダに誤りがあることを示すとき、ＡＣＫ／ＮＡＫの両フレームは廃棄される。
【００３３】
ブロック誤り検出符号計算部１４−０は、送信バッファ部９から再送信フレームデータ信号１１２を入力すると、誤り検出符号比較部１３から入力したブロック長信号１１１に基づいて、誤り検出符号の計算を行う。ブロック誤り検出符号計算部１４−０は、再送フレームデータと計算された誤り検出符号とをブロックデータ誤り検出符号信号１１３として誤り検出符号比較部１３へ出力する。
【００３４】
ブロック誤り検出符号計算部１４−１は、フレーム終端・識別部１２から受信フレーム信号１１７と誤り検出結果信号１１８とを入力し、ブロック長決定部１８からブロック長ｚ１２９を入力すると、誤り検出結果信号１１８の状態により以下の処理を行う。
（１）ヘッダ部に誤りあり、フレームに誤りありの場合
処理を行わず、受信フレームを廃棄する。
（２）ヘッダ部に誤りなし、フレームに誤りありの場合
所定のブロック長ｚ毎の誤り検出符号を計算し、受信ブロック誤り検出符号信号１１９とし、誤り検出結果信号１２０をＡＣＫ／ＮＡＫフレーム生成部１６へ出力する。
（３）フレームに誤りなしの場合
受信フレームを廃棄し、誤り検出結果信号１２０をＡＣＫ／ＮＡＫフレーム生成部１６へ出力する。
【００３５】
再送フレーム生成部１５は、誤り検出符号比較部１３から再送ブロックデータ信号１１４、ブロック位置を示すブロックポインタと再送フレームのヘッダ情報とを含む再送制御情報１１５を入力する。これらの情報に基づいて、再送フレーム生成部１５は、１フレーム分の再送ブロックデータ信号とブロック位置を示すブロックポインタとをまとめ、再送ヘッダ情報、再送指示を含む再送信データ信号１１６をフレーム生成部８へ出力する。
【００３６】
ＡＣＫ／ＮＡＫフレーム生成部１６は、ブロック誤り検出符号計算部１４−１から誤り検出結果信号１２０と受信ブロック誤り検出符号信号１１９とを入力する。誤り検出結果信号１２０の状態が、ヘッダ部に誤りなし、かつ、フレームに誤りありの場合、１フレーム分のブロック誤り検出符号とブロック位置を示すブロックポインタとをまとめ、ＮＡＫヘッダ情報と合わせてＡＣＫ／ＮＡＫデータ信号１２２とし、フレーム生成部８へ出力する。誤り検出結果信号１２０の状態が、フレームに誤りなしの場合、ＡＣＫヘッダ情報をＡＣＫ／ＮＡＫデータ信号１２２としてフレーム生成部８へ出力する。
【００３７】
受信バッファ部１７は、フレーム終端・識別部１２から受信フレーム信号１１７と、誤り検出結果信号１１８とを入力する。受信バッファ部１７は、ブロックの位置を示すブロックポインタに基づいて、フレームデータを保存する。また、受信バッファ部１７は、上位インタフェース部７からの受信フレーム読み出し信号１２４に基づいて、受信データ信号１２３を上位インタフェース部７へ出力する。
【００３８】
ブロック長決定部１８は、フレーム終端・識別部１２から受信フレーム信号１１７と誤り検出結果信号１１８を入力する。ブロック長決定部１８は、回線の品質を監視するため受信フレームバイト数をカウントし、誤り発生時に、その値から再送時のブロック長ｚを決定し、ブロック誤り検出符号計算部１４−１へ出力する。ブロック長決定部１８は、図１６に示されるように、累積フレームバイトカウンタ部２１、カウンタ制御部２２、ラッチ部２３、送信側ブロック長検出部２４、受信側ブロック長計算部２５、ブロック長選択部２６、レジスタ２７を備える。
【００３９】
累積フレームバイトカウンタ部２１は、フレーム終端・識別部１２から受信フレーム信号１１７を受け、受信フレーム長をバイト単位でカウントし、累積フレームバイトカウンタ値ｘを求める。カウントされたカウンタ値は、カウンタ制御部２２およびラッチ部２３へ累積フレームバイトカウンタ値ｘ１３０として出力される。また、累積フレームバイトカウンタ部２１は、カウンタ制御部２３から出力されるラッチ＆クリア指示１３１に応答してカウンタ値をリセットする。
【００４０】
カウンタ制御部２２は、フレーム終端・識別部１２から出力される誤り検出結果信号１１８に基づいてフレーム誤りの発生を監視する。フレーム誤りが検出されると、カウンタ制御部２２は、ラッチ＆クリア指示１３１を累積フレームバイトカウンタ部２１およびラッチ部２３に出力する。また、カウンタ制御部２２は、レジスタ２７から供給される閾値ｙと、累積フレームバイトカウンタ部２１から出力される累積フレームバイトカウンタ値ｘ１３０とを比較する。累積フレームバイトカウンタ値ｘ１３０が閾値ｙを超える場合、カウンタ制御部２２は、ラッチ＆クリア指示１３１を累積フレームバイトカウンタ部２１およびラッチ部２３に出力し、識別フラグ１３５をラッチ部２３に出力する。
【００４１】
ラッチ部２３は、カウンタ制御部２２から出力されるラッチ＆クリア指示１３１に応答して、累積フレームバイトカウンタ部２１から出力される累積フレームバイトカウンタ値ｘ１３０を取り込んでラッチ（保持）し、ラッチ累積フレームバイト値ｘ’１３２として受信ブロック長計算部２５へ出力する。また、ラッチ部２３は、カウンタ制御部２２から出力される識別フラグ１３５を取り込んでラッチ（保持）し、ラッチ識別フラグ１４６として受信ブロック長計算部２５へ出力する。
【００４２】
送信側ブロック長検出部２４は、フレーム終端・識別部１２から出力される受信フレーム信号１１７に基づいて送信側（対向側）の通信装置によって設定されるブロック長とフレーム種別（初回フレームまたは再送フレーム）とを検出し、送信側ブロック長ｚｔ１３４として、ブロック長選択部２６へ出力する。
【００４３】
受信側ブロック長計算部２５は、ラッチ部２３から出力されるラッチ累積フレームバイト値ｘ’１３２およびラッチ識別フラグ１３６に基づいて、ブロック長を決定し、受信側ブロック長ｚｒ１３３としてブロック長選択部２６へ出力する。
【００４４】
ブロック長選択部２６は、送信側ブロック長検出部２４から出力される送信側ブロック長ｚｔと、受信側ブロック長計算部２５から出力される受信側ブロック長ｚｒ１３３とを取り込み、送信側ブロック長ｚｔに設定されているフレーム種別に基づいていずれか一方をブロック長ｚ１２９としてブロック誤り検出符号計算部１４−１へ出力する。
【００４５】
レジスタ２７は、ＣＰＵ等を備える上位ブロック５に接続され（図示せず）、予め設定される各種値を保持する。保持される各種値は、カウンタ制御部２２へ供給される。
【００４６】
また、ＮＩＣ６は、上記以外に、例えば、コネクションの確立手段、フレームロス時の再送信タイマ手段なども当然有するが、これらは、従来からあるものを利用すればよく、本発明の特徴的な構成要素ではないため、ここでは説明を省略する。本実施の形態において、説明の便宜上、ＡＣＫを受信せずに送信できるサイズを示す受信ウインドウサイズを１フレーム分とする。また、再送回数も１回まで行うこととする。また、後述する他の実施の形態についても、同様とする。
【００４７】
図９は、ＮＩＣ６の送信制御動作の流れを示すフローチャートであり、図１０は、ＮＩＣ６の受信制御動作の流れを示すフローチャートである。
【００４８】
図５、図６、図７、図８は、図３に示されるシーケンスにおけるフレームフォーマットを示す図である。これら図３〜図８を参照して、第１の実施の形態に係る通信システムの動作について説明する。なお、ここでは、図３に示されるように、端末Ａ１から端末Ｂ２へデータの転送を行うものとして説明する。
【００４９】
図３に示されるシーケンス例に沿って説明する。このシーケンス例では、端末Ａ１からのフレーム（＃Ｋ）３０の初回送信時に誤りが発生し、端末Ｂ２からＮＡＫ３１が返信される。端末Ａ１は、ＮＡＫ３１の要求に従い再送フレーム（＃Ｋ）３２を生成して再送信する。再送信された再送フレーム（＃Ｋ）３２に誤りが無いため、端末Ｂ２は、ＡＣＫ（＃Ｋ）３３を送信する。端末Ａ１がＡＣＫ（＃Ｋ）３３を受信することにより、フレーム（＃Ｋ）３０の送信が完了する。以下詳細に説明する。
【００５０】
端末Ａ１に搭載されるＮＩＣ６は、上位ブロック５から送信データを受け取り、送信処理４０（初回フレーム送信）を開始する。
【００５１】
図９に示されるように、ＮＩＣ６の送信制御動作は、まず、コネクション確立（図９ステップＳ００）を行って開始される。コネクション確立後、上位ブロック５から上位インタフェース部７に与えられた送信データは、フレーム生成部８から出力されるバックプレッシャー信号１０３が有効を示していないため、送信データ信号１０４としてフレーム生成部８に供給される。なお、バックプレッシャー信号１０３が有効を示す場合、上位インタフェース部７は、送信データの停止要求を上位ブロック５に通知する。
【００５２】
送信データ信号１０４が与えられると、フレーム生成部８は、再送フレーム生成部１５から出力される再送信データ信号１１６に含まれる再送要求指示があるかどうかと、送信バッファ部９のバッファ空きサイズが任意の閾値ｗ以下であるかどうかを確認する（図９ステップＳ０１、Ｓ０２、Ｓ０３）。ここで、ｗは１以上の正の整数とし、本実施の形態ではｗは、１フレーム分のサイズとする。再送要求指示がある場合、または、送信バッファ部９の空きサイズが閾値ｗ以下の場合、フレーム生成部８は、バックプレッシャー信号１０３を有効に設定し、送信データの停止要求を上位インタフェース部７に供給する。本実施の形態では、この時点で再送フレーム生成部１５からの再送要求指示が無く、送信バッファ部９の空きサイズが閾値ｗ以上であるとしているため、フレーム生成部８は、図５（ａ）に示されるように、送信データ信号１０４によって与えられるデータをデータ部２０１としてヘッダ部２００、フッタ部２０３を付与し、フレーム（＃Ｋ）３０を生成する。生成されたフレーム（＃Ｋ）３０を示すフレームデータ信号およびデータ有効信号１０５とは、送信バッファ部９および送信部１０へ供給される（図９ステップＳ０４）。
【００５３】
このとき、ヘッダ部２００には、図５（ｃ）に示されるように、再送信に必要なシリアル番号を含むその他情報、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタが含まれる。また、フレーム生成部８は、ヘッダ部２００に対する誤り検出符号を付加する。本実施の形態では、フレーム生成部８は、ヘッダ部２００のブロック長には、再送時送信側が希望するブロック長を設定し、フレーム先頭ポインタには、送信バッファ部９にフレーム（＃Ｋ）が保存される際のフレーム先頭ポインタｐ５１を設定する。再送フレーム先頭ポインタは、再送フレーム生成時に使用されるため、ここでは特に設定は行われない。フッタ部２０３には、ヘッダ部２００から、データ部２０１の最後尾までの範囲に対する誤り検出符号が付与される。本実施の形態では、誤り検出符号は、一般的によく使用されているＣＲＣを用いることとし、後述されるブロック毎の誤り検出符号も同じＣＲＣを用いることとする。
【００５４】
フレームデータ信号およびデータ有効信号１０５が与えられると、送信バッファ部９は、フレーム（＃Ｋ）３０のヘッダ部２００に含まれるフレーム先頭ポインタｐ５１に従い、図５（ｂ）に示されるようにフレームデータを送信バッファ部９内に保存する。また、送信部１０は、フレームデータを符号化、スクランブル、シリアライズし、通信回線１００を介して端末Ｂ２へ送信する（図９ステップＳ０５）。
【００５５】
一方、端末Ｂ２は、端末Ａ１からフレーム（＃Ｋ）３０を受信してデータ部２０１の誤りを検出し（処理４１、ＮＡＫ（＃Ｋ）３１を送信する（処理４２）。端末Ｂ２に搭載されるＮＩＣ６は、図１０に示されるように、この一連の処理を実行する。以下に詳細を説明する。
【００５６】
端末Ｂ２に搭載されるＮＩＣ６の受信部１１にフレーム（＃Ｋ）３０が与えられると、受信部１１は、受信されたフレームデータをデシリアライズ、デスクランブル、復号化して、受信フレーム信号１０７を生成し、フレーム終端・識別部１２へ供給する（図１０ステップＳ２４）。
【００５７】
フレーム終端・識別部１２は、図６（ａ）に示されるように、受信フレーム（＃Ｋ）３０のヘッダ部２００の誤り検出と、ヘッダ部２００、データ部２０１、フッタ部２０３を含むフレーム全体の誤り検出とを行う。図３に示されるシーケンスでは、この受信フレームに誤りがあることから、フレーム終端・識別部１２は、データ部２０１またはフッタ部２０３に誤りが検出されたことを誤り検出結果信号１１８に設定し、受信フレーム信号１１７とあわせて、受信バッファ部１７、ブロック誤り検出符号計算部１４−１およびブロック長決定部１８へ供給する（図１０ステップＳ２７）。なお、フレームのヘッダ部２００に誤りがある場合、フレーム終端・識別部１２は、ヘッダ部２００に誤りが検出されたことを誤り検出結果信号１１８に設定して受信バッファ部１７とブロック誤り検出符号計算部１４−１へ供給し、当該フレームは廃棄される（図１０ステップＳ２５、Ｓ２６）。
【００５８】
誤り検出結果信号１１８と受信フレーム信号１１７とが与えられると、受信バッファ部１７は、受信フレーム信号１１７のヘッダ部２００に設定されているフレーム先頭ポインタｐ５１に従い、図６（ｂ）に示されるように、フレーム（＃Ｋ）３０の先頭がバッファ上のポインタ位置ｐ５１になるように、フレームデータをバッファリングする（図１０ステップＳ３１）。
【００５９】
誤り検出結果信号１１８および受信フレーム信号１１７が与えられると、ブロック長決定部１８は、誤り検出結果信号１１８が、当該フレームに誤りがないことを示す場合、受信フレーム信号１１７からフレーム長を入手し、累積フレームバイトカウンタ値をカウントアップする。誤り検出結果信号１１８が、当該フレームに誤りがあることを示す場合、累積フレームバイトカウンタ値から、ブロック長ｚを決定し、ブロック誤り検出符号計算部１４−１へ出力する。なお、累積フレームバイトカウンタ値が任意の値ｙを超えた場合、ブロック長決定部１８は、ブロック長ｚを決定し、ブロック誤り検出符号計算部１４−１へ出力する。
【００６０】
ブロック長決定部１８からブロック長ｚ１２９が与えられると、ブロック誤り検出符号計算部１４−１は、図６（ｃ）に示されるように、誤り検出結果信号１１８と受信フレーム信号１１７とに基づいてブロック長ｚ１２９毎に、データの先頭から誤り検出符号の計算を行う。図６（ｄ）に示されるように、ブロック誤り検出符号計算部１４−１は、ブロック誤り検出符号の計算結果と各ブロックの先頭を示すブロックポインタとを受信ブロック誤り検出符号信号１１９として誤り検出結果信号１２０と合わせ、ＡＣＫ／ＮＡＫフレーム生成部１６へ供給する（図１０ステップＳ２９、Ｓ３０、Ｓ３２）。
【００６１】
受信ブロック誤り検出符号信号１１９と誤り検出結果信号１２０とが与えられると、ＡＣＫ／ＮＡＫフレーム生成部１６は、１フレーム分の受信ブロック誤り検出符号信号をまとめ、ＮＡＫヘッダ情報と合わせてＡＣＫ／ＮＡＫデータ信号１２２として、フレーム生成部８へ供給する（図１０ステップＳ３５、Ｓ３６）。
【００６２】
フレーム生成部８は、図６（ｅ）に示されるように、ＡＣＫ／ＮＡＫデータ信号１２２に基づいてＮＡＫフレームヘッダ部２０５、フッタ部２０６を付与し、ＮＡＫ（＃Ｋ）３１を生成し、フレームデータ信号およびデータ有効信号１０５を送信部１０へ供給する（図１０ステップＳ２１、Ｓ２２）。この時、ヘッダ部２０５には、図６（ｆ）に示されるように、再送信に必要なシリアル番号を含むその他情報、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタが当然含まれる。また、ヘッダ部２０５に対する誤り検出符号が付加される。本実施の形態では、図６（ｆ）に示されるブロック長には、受信側でブロック化した際のブロック長ｚが設定され、フレーム先頭ポインタには、図６（ａ）に示されるように、ヘッダ部２００に含まれる送信バッファ上保存されたフレーム（＃Ｋ）３０のフレーム先頭ポインタｐ５１が設定される。再送フレーム先頭ポインタは、再送フレーム生成時に使用されるため、ここでは特に設定は行われない。フッタ部２０６には、ヘッダ部２０５から、データ部の最後尾までの範囲に対する誤り検出符号が付与される。さらに、各ブロックの先頭に付与されるブロックポインタｐ６０−０〜ｐ６０−ｎ（ｎは１以上の正の整数）には、簡単な誤り検出符号が当然付与される。
【００６３】
フレームデータ信号およびデータ有効信号１０５が与えられると、送信部１０は、フレームデータを符号化、スクランブル、シリアライズし、通信回線１０１を介して端末Ａ１へ送信する（図１０ステップＳ２３）。
【００６４】
次に、端末Ｂ２からＮＡＫ（＃Ｋ）３１を受信した端末Ａ１に搭載されるＮＩＣ６の処理４３（図３参照）、および再送フレーム（＃Ｋ）３２を送信する処理４４（図３参照）を説明する。
【００６５】
ＮＡＫ（＃Ｋ）３１が端末Ａ１に搭載されるＮＩＣ６に与えられると、受信部１１は、受信されたフレームデータをデシリアライズ、デスクランブル、復号化し、受信フレーム信号１０７をフレーム終端・識別部１２へ供給する。
【００６６】
フレーム終端・識別部１２は、ＮＡＫ（＃Ｋ）３１のヘッダ部２０５の誤り検出と、フレーム全体の誤り検出とを行う（図７（ａ）参照）。また、フレーム終端・識別部１２は、受信フレームがＮＡＫフレーム、ＡＣＫフレームのどちらであるか識別を行う。図３に示されるシーケンスでは、この時点でＮＡＫ（＃Ｋ）３１には誤りがないことから、フレーム終端・識別部１２は、ＮＡＫ（＃Ｋ）３１に誤りが検出されないことを示す誤り検出結果信号１０９を生成し、受信ＡＣＫ／ＮＡＫ信号１０８とあわせて、誤り検出符号比較部１３へ供給する（図９ステップＳ０７、Ｓ０９）。なお、ＮＡＫ（＃Ｋ）３１のヘッダ部２０５に誤りがある場合、フレーム終端・識別部１２は、ヘッダ部に誤りが検出されたことを示す誤り検出結果信号１０９を生成して誤り検出符号比較部１３へ供給し、当該ＮＡＫフレームは廃棄される（図９ステップＳ０８）。
【００６７】
誤り検出結果信号１０９と受信ＡＣＫ／ＮＡＫ信号１０８とが与えられると、誤り検出符号比較部１３は、受信ＡＣＫ／ＮＡＫ信号１０８に含まれるＮＡＫ（＃Ｋ）３１のヘッダ部２０５（図７（ａ）参照）からフレーム先頭ポインタ値ｐ５１を取り出す。また、誤り検出符号比較部１３は、各ブロックの先頭に付与されるブロックポインタｐ６０−０〜ｐ６０−ｎに基づいて再送信フレームデータ読み出し信号１１０を生成し、送信バッファ部９へ供給する。さらに、誤り検出符号比較部１３は、ＮＡＫ（＃Ｋ）３１のヘッダ部２０５内ブロック長（図７（ａ）参照）に設定されているブロック長ｚを取り出し、ブロック長信号１１１としてブロック誤り検出符号計算部１４−０に供給する。なお、図７（ａ）に示されるＮＡＫ（＃Ｋ）３１のヘッダ部２０５の詳細は、図６（ｆ）に示される。
【００６８】
再送信フレームデータ読み出し信号１１０が与えられると、送信バッファ部９は、送信バッファ上に保存されているフレーム（＃Ｋ）３０を１フレー分読み出し、再送信フレームデータ信号１１２として、ブロック誤り検出符号計算部１４−０へ供給する（図７（ｂ）参照）。ブロック誤り検出符号計算部１４−０は、すでに誤り検出符号比較部１３から与えられているブロック長ｚに基づいて、ブロック毎の誤り検出符号であるブロック誤り検出符号２０７（−０〜ｎ）を計算する。計算されたブロック誤り検出符号２０７は、各ブロックの先頭を示すポインタｐ６０を付加され、ブロックデータ２０２と合わせて、ブロックデータ誤り検出符号信号１１３として、誤り検出符号比較部１３に供給される（図９ステップＳ１１）。
【００６９】
誤り検出符号比較部１３は、各ブロックの先頭を示すポインタｐ６０に基づいて、ＮＡＫ（＃Ｋ）３１のデータ部に含まれる受信側で計算されたブロック毎のブロック誤り検出符号２０４（図７（ａ）参照）と、ブロックデータ誤り検出符号信号１１３に含まれる送信バッファ内フレーム（＃Ｋ）のブロック誤り検出符号２０７との比較を行う。一致する場合、誤り検出符号比較部１３は、当該ブロックが受信側へ正しく送信されたと判断し、再送対象のブロックから除く。不一致の場合、誤り検出符号比較部１３は、当該ブロックが受信側へ正しく送信されていないと判断する。その場合、誤り検出符号比較部１３は、当該ブロックと当該ブロックの誤り検出符号を含む再送ブロックデータ信号１１４と、ブロック位置を示すポインタｐ６０、再送フレームのヘッダ情報を含む再送制御情報１１５とを再送フレーム生成部１５に供給する。ここでは、ＮＡＫ（＃Ｋ）３１のブロック誤り検出符号２０４−２、２０４−ｍ（ｍは、ｎ以下の正の整数）において不一致が発生したものとしており、これに対応する再送ブロックデータが、再送フレーム生成部１５に供給されることになる（図９ステップＳ１２、Ｓ１３、Ｓ１４、Ｓ１５）。
【００７０】
再送フレーム生成部１５は、１フレーム分の再送ブロックデータ信号とブロック位置を示すポインタとをまとめ、再送ヘッダ情報、再送指示と合わせて再送信データ信号１１６として、フレーム生成部８に供給する（図９ステップＳ１６）。
【００７１】
フレーム生成部８は、図７（ｄ）に示されるように、再送信データ信号１１６に示される再送信データに再送フレームヘッダ部２０８、フッタ部２０９を付与して再送フレーム（＃Ｋ）３２を生成し、フレームデータ信号およびデータ有効信号１０５として、送信バッファ部９と送信部１０へ供給する（図９ステップＳ０１、Ｓ０４）。
【００７２】
このとき、ヘッダ部２０８には、図７（ｅ）に示されるように、再送信に必要なシリアル番号を含むその他情報、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタが当然含まれる。また、ヘッダ部２０８に対する誤り検出符号が付加される。本実施の形態では、ブロック長とフレーム先頭ポインタとには、ＮＡＫ（＃Ｋ）のヘッダ２０５に設定されたブロック長ｚとフレーム先頭ポインタｐ５１が設定される。また、再送フレーム先頭ポインタには、送信バッファ上に再送フレーム（＃Ｋ）３２が保存される際のフレーム先頭ポインタｐ５２が設定される。フッタ部２０９には、ヘッダ部２０８から、データ部の最後尾までの範囲に対する誤り検出符号が付与される。
【００７３】
フレームデータ信号およびデータ有効信号１０５が送信バッファ部９に与えられると、送信バッファ部９は、再送フレームデータ（＃Ｋ）のヘッダ部２０８に含まれるフレーム先頭ポインタｐ５２に基づいて、図７（ｆ）に示されるように、フレームデータを送信バッファ部９内に保存する（図９ステップＳ０５）。
【００７４】
フレームデータ信号およびデータ有効信号１０５が与えられると、送信部１０は、フレームデータを符号化、スクランブル、シリアライズし、通信回線１００を介して端末Ｂ２へ送信する（図９ステップＳ０５）。
【００７５】
次に、端末Ａ１から再送フレーム（＃Ｋ）３２を受信した際の端末Ｂ２に搭載されるＮＩＣ６の処理４５（図３参照）、および、ＡＣＫ（＃Ｋ）３３の送信処理４６（図３参照）を説明する。
【００７６】
再送フレーム（＃Ｋ）３２が端末Ｂ２に搭載されるＮＩＣ６に与えられると、受信部１１は、受信されたフレームデータをデシリアライズ、デスクランブル、復号化して受信フレーム信号１０７を生成し、フレーム終端・識別部１２へ供給する（図１０ステップＳ２４）。
【００７７】
フレーム終端・識別部１２は、受信した再送フレーム（＃Ｋ）３２のヘッダ部２０８の誤り検出と、ヘッダ部２０８からフッタ部２０９までを含むフレーム全体の誤り検出とを行う（図８（ａ）参照）。誤りが検出されない場合、フレーム終端・識別部１２は、誤りが無いことを示す誤り検出結果信号１１８を生成し、受信フレーム信号１１７とあわせて、受信バッファ部１７、ブロック誤り検出符号計算部１４−１、およびフレーム長決定部１８に供給する（図１０ステップＳ２５、Ｓ２７）。
【００７８】
再送フレーム（＃K）３２を含む受信フレーム信号１１７と誤り検出結果信号１１８が、ブロック長決定部１８に与えられると、ブロック長決定部１８は、誤り検出結果信号１１８が、当該フレームに誤りがないことを示す場合、受信フレーム信号１１７からフレーム長を入手し、累積フレームバイトカウンタ値をカウントアップする。誤り検出結果信号１１８が、当該フレームに誤りがあることを示す場合、当該フレームのヘッダから、ブロック長を検出し、ブロック長ｚ１２９として、ブロック誤り検出符号計算部１４−１へ出力する。
【００７９】
受信バッファ部１７は、図８（ｂ）に示されるように、受信バッファ上に保存されているフレーム（＃Ｋ）３０のデータに対して、再送フレーム（＃Ｋ）３２のヘッダに含まれるフレーム先頭ポインタｐ５１と各ブロックの先頭に付与されたブロックポインタｐ６０に基づいてブロックデータ２０２を保存する（図１０ステップＳ３１）。
【００８０】
図８では、再送フレーム（＃Ｋ）３２（図８（ａ））によって再送されたブロック２０２−２とブロック２０２−ｍが、図８（ｂ）に示されるように、受信バッファ上のフレーム（＃Ｋ）のブロック２０２−２とブロック２０２−ｍに保存されることになる。また、受信バッファ部１７は、受信バッファの書き込みポインタを更新して、受信バッファ上のフレーム（＃Ｋ）３０が読み出し可能となったことを上位インタフェース部７に伝える。なお、受信フレーム信号１１７が再送フレームであり、かつ、誤り検出結果信号１１８がヘッダ誤りなしおよびフレーム誤りありを示す場合、受信バッファ部１７は、ブロック誤り検出符号計算部１４−１からブロック毎に供給されるブロック誤り検出結果信号１２１に基づいて、誤りのないブロックのみを受信バッファに保存する（図１０ステップＳ３０、Ｓ３１、Ｓ３３）。
【００８１】
受信バッファ上のフレーム（＃Ｋ）が読み出し可能であることが上位インタフェース部７に伝えられると、インタフェース部７は、受信フレーム読み出し信号１２４を有効に設定し、受信バッファ部１７へ供給する。受信バッファ部１７は、受信バッファ上からフレーム（＃Ｋ）を読み出して受信フレームデータ１２３として、上位インタフェース部７に供給する。上位インタフェース部７は、受信フレームデータ１２３を上位ブロック５へ送信する。
【００８２】
誤り検出結果信号１１８、受信フレーム信号１１７およびブロック長ｚ１２９がブロック誤り検出符号計算部１４−１に与えられると、ブロック誤り検出符号計算部１４−１は、受信フレーム信号１１７を廃棄し、誤り検出結果信号１２０のみをＡＣＫ／ＮＡＫフレーム生成部１６へ供給する。受信フレーム信号１１７が再送フレームであり、かつ、ヘッダ誤りなし、フレーム誤りありが誤り検出結果信号１１８に設定されている場合、ブロック誤り検出符号計算部１４−１は、ブロック毎の誤り検出符号を計算する。計算されたブロックごとの誤り検出符号は、再送フレームのブロック毎に付与される誤り訂正符号と比較され、そのブロック毎の結果は、ブロック誤り検出結果信号１２１として受信バッファ部へ供給される（図１０ステップＳ３３）。
【００８３】
誤り検出結果信号１２０が与えられると、ＡＣＫ／ＮＡＫフレーム生成部１６は、ＡＣＫヘッダ情報とＡＣＫフレーム生成指示とを示すＡＣＫ／ＮＡＫデータ信号１２２を生成し、フレーム生成部８へ供給する（図１０ステップＳ２８）。
【００８４】
フレーム生成部８は、図８（ｄ）に示されるように、ＡＣＫ／ＮＡＫデータ信号１２２にＡＣＫヘッダ部２１０、フッタ部２１１を付与し、ＡＣＫ（＃Ｋ）３３を生成する。ＡＣＫ（＃Ｋ）３３は、フレームデータ信号として、データ有効信号１０５と合わせ、送信部１０へ供給される（図１０ステップＳ２１、Ｓ２２）。このとき図８（ｄ）に示されるヘッダ部２１０には、再送信に必要なシリアル番号を含むその他情報、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタが当然含まれる（図８（ｅ））。また、ヘッダ部に対する誤り検出符号が付加される。本実施の形態では、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタには、それぞれ図８（ａ）に示される再送フレーム（＃Ｋ）３２のヘッダ２０８に設定されたブロック長ｚ、再送フレーム先頭ポインタｐ５２、フレーム先頭ポインタｐ５１が設定される。フッタ部２１１には、ヘッダ部２１０からデータ部２１２の最後尾までの範囲に対する誤り検出符号が付与される。
【００８５】
フレームデータ信号およびデータ有効信号１０５が送信部１０に与えられると、送信部１０は、フレームデータを符号化、スクランブル、シリアライズし、通信回線１０１を介して端末Ａ１へ送信する（図１０ステップＳ２３）。
【００８６】
次に、端末Ｂ２からＡＣＫ（＃Ｋ）３３を受信した端末Ａ１に搭載されるＮＩＣ６の処理４７（図３参照）を以下に説明する。
【００８７】
ＡＣＫ（＃Ｋ）３３が端末Ａ１に実装されるＮＩＣ６に与えられると、受信部１１は、受信したフレームデータをデシリアライズ、デスクランブル、復号化し、受信フレーム信号１０７としてフレーム終端・識別部１２へ供給する。
【００８８】
フレーム終端・識別部１２は、図８（ｄ）、（ｅ）に示されるように、ＡＣＫ（＃Ｋ）３３のヘッダ部２１０の誤り検出と、フレーム全体の誤り検出とを行う。また、フレーム終端・識別部１２は、受信フレームがＮＡＫフレーム、ＡＣＫフレームのどちらであるか識別を行う。図３に示されるシーケンスでは、この時点でＡＣＫ（＃Ｋ）３３には誤りが検出されないことから、フレーム終端・識別部１２は、誤り検出なしを示す誤り検出結果信号１０９を生成し、受信ＡＣＫ／ＮＡＫ信号１０８とあわせて、誤り検出符号比較部１３へ供給する（図９ステップＳ０７、Ｓ０９）。
【００８９】
誤り検出なしを示す誤り検出結果信号１０９と受信ＡＣＫ／ＮＡＫ信号１０８とが与えられると、誤り検出符号比較部１３は、フレーム（＃Ｋ）３０の送信が完了したと判断する。誤り検出符号比較部１３は、送信バッファ上の再送フレーム（＃Ｋ）３２のデータを削除するため、ＡＣＫ（＃Ｋ）３３のヘッダ部２１０の再送フレーム先頭ポインタを参照し、送信バッファの読み出しポインタを更新する（図８（ｄ）、（ｅ）参照）。なお、初回のフレーム転送に誤りが無い場合、送信バッファ上のフレーム（＃Ｋ）３０のデータを削除するため、図８（ｄ）、（ｅ）に示されるＡＣＫ（＃Ｋ）３３のヘッダ部２１０のフレーム先頭ポインタを参照し、送信バッファの読み出しポインタが更新される。
【００９０】
以上で、端末Ａ１から端末Ｂ２へのフレーム（＃Ｋ）の送信が完了する。このように、フレームを複数ブロックに分ける処理が受信側で行われているため、初回送信フレームに余分なブロック毎のヘッダおよび誤り検出符号を付与することなく送信できる。そのため、回線帯域の利用効率を向上させることができる。
【００９１】
次に、図１７を参照してブロック長決定部１８の動作を更に詳しく説明する。ブロック長決定部１８は、初期設定時、ブロック長ｚとして所定の初期値を設定する（図１７ステップＳ４０）。その後、フレームの受信を待つ（図１７ステップＳ４１）。
【００９２】
受信フレーム信号１１７によって受信フレーム（＃Ｋ）３０が与えられると、送信側ブロック長検出部２４は、受信フレーム（＃Ｋ）３０のヘッダ部２００からブロック長とフレーム種別（初回フレーム、または再送フレーム）とを抽出し、送信側ブロック長ｚｔとして保持する（図１７ステップＳ４２）。また、累積フレームバイトカウンタ部２１は、受信フレーム（＃Ｋ）３０のフレーム長をカウントし、カウント値を更新する（図１７ステップＳ４３）。
【００９３】
誤り検出結果信号１１８が与えられると、カウンタ制御部２２は、受信フレーム（＃Ｋ）３０に誤りが検出されたか確認する（図１７ステップＳ４４）。本実施の形態では、受信フレーム（＃Ｋ）３０に誤りがあるため（図１７ステップＳ４４−ＹＥＳ）、カウンタ制御部２２は、ラッチ＆クリア指示１３１を累積フレームバイトカウンタ部２１およびラッチ部２３に出力する。また、カウンタ制御部２２は、フレーム誤りによるラッチ＆クリア指示１３１であることを示す識別フラグ１３５をラッチ部２３へ出力する。
【００９４】
ラッチ部２３は、ラッチ＆クリア指示１３１および識別フラグ１３５が与えられると、累積フレームバイトカウンタ値ｘ１３０を取り込んでラッチ（保持）し、ラッチ累積フレームバイト値ｘ’１３２として出力する。また、ラッチ部２３は、識別フラグ１３５を取り込んでラッチ（保持）し、ラッチ識別フラグ１３６として出力する。累積フレームバイトカウンタ部２１は、ラッチ＆クリア指示１３１が与えられると、累積フレームバイトカウンタ値ｘ１３０をクリア（ゼロに設定）する（図１７ステップＳ４６）。
【００９５】
受信フレームに誤りが検出されない場合（図１７ステップＳ４４−ＮＯ）、カウンタ制御部２２は、累積フレームバイトカウンタ値ｘ１３０を閾値ｙと比較する（図１７ステップＳ４５）。閾値ｙは、上位ブロック５によってレジスタ２７に予め設定されている。比較の結果、閾値ｙ未満であれば（ステップＳ４５−ＮＯ）、ブロック長決定部１８はフレームの受信を待つ（図１７ステップＳ４１）。閾値ｙ以上であれば（ステップＳ４５−ＹＥＳ）、誤りが検出されたときと同じように、カウンタ制御部２２は、ラッチ＆クリア指示１３１と、累積フレームバイトカウンタ値ｘ１３０が閾値ｙ以上であることを示す識別フラグ１３５とを出力する。ラッチ部２３は、累積フレームバイトカウンタ値ｘ１３０を取り込んでラッチ（保持）してラッチ累積フレームバイト値ｘ’１３２として出力し、また、識別フラグ１３５を取り込んでラッチ（保持）してラッチ識別フラグ１３６として出力する。累積フレームバイトカウンタ部２１は、累積フレームバイトカウンタ値ｘ１３０をクリア（ゼロに設定）する（図１７ステップＳ４６）。
【００９６】
ラッチ累積フレームバイト値ｘ’１３２およびラッチ識別フラグ１３６が与えられると、受信ブロック長計算部２５は、受信ブロック長ｚｒを算出する（図１７ステップＳ６０）。受信ブロック長ｚｒの算出については後述する。
【００９７】
ブロック長選択部２６は、送信側ブロック長ｚｔ１３４に設定されているフレーム種別に従い、受信側ブロック長ｚｒ１３３、または送信側ブロック長ｚｔ１３４のいずれかを、ブロック長ｚ１２９として、ブロック誤り検出符号計算部１４−１へ出力する（図１７ステップＳ４９、Ｓ５０、Ｓ５１）。本実施の形態では、フレーム（＃Ｋ）３０を受信した場合、受信側ブロック長ｚｒ１３３を出力し、再送フレーム（＃Ｋ）３２を受信した場合、送信側ブロック長ｚｔ１３４を出力する。
【００９８】
図１８を参照して、受信ブロック長ｚｒの算出について説明する。ラッチ累積フレームバイト値ｘ’１３２およびラッチ識別フラグ１３６が与えられると、受信ブロック長計算部２５は、ラッチ識別フラグ１３６を保持し、前回のラッチフラグの状態を確認する（図１７ステップＳ６２）。前回のラッチ識別フラグがフレーム誤り検出を示す場合（図１７ステップＳ６２−ＹＥＳ）、受信ブロック長計算部２５は、予めＣＰＵ等によってレジスタ２７に設定されている値Ａ１、Ａ２、・・・Ａ（ｊ）（ｊは正の整数）と、ラッチ累積フレームバイト値ｘ’との比較を行う（図１８ステップ６４−１〜（ｊ））。比較の結果、条件に合致した値ａ１、ａ２、・・・ａ（ｊ＋１）が、受信側ブロック長ｚｒ１３３としてブロック長選択部２６へ出力される（図１７ステップＳ６６−１〜（ｊ＋１））。なお、値ａ１、ａ２、・・・ａ（ｊ＋１）は、上位ブロック５によって予めレジスタ２７に設定されている。
【００９９】
前回のラッチ識別フラグが、閾値ｙ以上のフレーム長であることを示す場合、受信ブロック長計算部２５は、最も長いブロック長ａ（ｊ＋１）を受信ブロック長ｚｒ１３３としてブロック長選択部２６へ出力する（図１８ステップＳ６６−（ｊ＋１））。これにより、フレーム誤り検出以外（図１７ステップＳ４５−Ｙｅｓ）により累積フレームバイトカウンタ値ｘ１３０がクリアされた直後に、フレーム誤りが発生した場合においても、適切なブロック長を決定することができる。
【０１００】
ここで、回線の品質を３段階に分け、ブロック長ｚの決定方法について以下に説明する。回線の品質は、ＢＥＲ（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）などによって示される。ＢＥＲは、受信したデータの中での誤りデータの比率を示し、ＢＥＲ＝１０−１２の場合、１０１２ビットのデータを送ると１ビット誤りが発生することを意味する。ここでは、ＢＥＲ＝１０−８、１０−１０、１０−１２をＢＥＲ範囲の区切りとして回線の品質を分ける。
第１範囲は、ＢＥＲ≧１０−８の場合とし、ブロック長を８バイトとする。
第２範囲は、１０−１０≦ＢＥＲ＜１０−８の場合とし、ブロック長を１６バイトとする。
第３範囲は、１０−１２≦ＢＥＲ＜１０−１０の場合とし、ブロック長を３２バイトとする。
第４範囲は、ＢＥＲ＜１０−１２の場合とし、ブロック長を４８バイトとする。
このように分けると、ｊ、閾値ｙ、Ａ１〜Ａ（ｊ）、ａ１〜ａ（ｊ＋１）は、次のようになる。
ｊ＝３
Ａ１＝１０８ビット／８＝１２，５００，０００バイト
Ａ２＝１０１０ビット／８＝１，２５０，０００，０００バイト
Ａ３＝１０１２ビット／８＝１２５，０００，０００，０００バイト
ａ１＝８バイト、ａ２＝１６バイト、ａ３＝３２バイト、ａ４＝４８バイト
ｙ＝１０１２ビット／８＝１２５，０００，０００，０００バイト
誤りが検出された時点で、前回誤りが検出されたフレーム累積フレームバイト数が１２，５００，０００バイトより小さい場合、受信ブロック長ｚｒは、８バイトに設定される。フレーム累積フレームバイト数が１２，５００，０００バイト以上で、且つ１，２５０，０００，０００バイトより小さい場合、受信ブロック長ｚｒは、１６バイトに設定される。フレーム累積フレームバイト数が１，２５０，０００，０００バイト以上で、且つ１２５，０００，０００，０００バイトより小さい場合、受信ブロック長ｚｒは、３２バイトに設定される。フレーム累積フレームバイト数が１２５，０００，０００，０００バイト以上の場合、受信ブロック長ｚｒは、４８バイトに設定される。なお、閾値ｙとＡ３の値が同じであるため、１２５，０００，０００，０００バイト以上誤りがない場合、受信ブロック長ｚｒは、４８バイトに設定される。
【０１０１】
このように、ブロック長決定部１８では、フレーム誤りの多い回線では、再送時のブロック長を小さくし、フレーム誤りが多い回線では、ブロックフレーム長を大きく設定することができる。なお、本実施の形態では、受信側ブロック長計算部２５は、ラッチ累積フレームバイト値ｘ’を使用し、条件式により、ブロックサイズを決定しているが、ラッチ累積フレームバイト値ｘ’を使用し、演算によって求めても良い。
【０１０２】
さらに、誤り検出符号比較部は、受信側から通知されるブロック長に従って送信側で再送すべきブロックを決定するため、回線の品質に合わせ柔軟にブロック長を変えることができる。そのため、ブロックの誤り率を減少させることができる。
【０１０３】
しかも、受信側でフレームに誤りが検出された時にのみ、ブロック毎に計算されたブロック誤り検出符号を含むＮＡＫフレームを送信するため、双方向でデータの転送を行った場合でも、回線帯域の利用効率を向上させることができる。また、再送時のフレームを送信する際、送信バッファへ保存し、再送フレーム先頭ポインタとフレーム先頭ポインタとをフレームヘッダに備えることにより、フレームロスなどが発生した場合でも、初回フレームをすべて送信する必要が無い。そのため、回線帯域の利用効率を向上させることができる。
【０１０４】
なお、上記では、端末Ａ１から端末Ｂ２へのデータ送信であったが、その逆においても同様の手順で送信を行うことができる。また、本発明は、データの再送信が行われるデータ転送にすべて適用することができる。また、上記では、ＡＣＫ（＃Ｋ）３３のデータ部２１２に特に値が設定されていない。ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）で適用されているＳＡＣＫ（Ｓｅｌｅｃｔｉｖｅ  ＡＣＫ：ＲＦＣ２０１８）のように、受信側で受信しているフレームのシーケンス番号等をデータ部２１２に設定して送信側に送信することにより、送信側の再送タイマのタイムアウトを待たずにフレームの再送を行ってもよい。さらに、ヘッダ部の誤り制御として、誤り検出符号を使用しているが、誤り訂正符号を適用し、訂正不能の場合、フレームを廃棄するようにしてもよい。
【０１０５】
（第２の実施の形態）
本発明の第２の実施の形態を説明する。その基本的構成は、第１の実施の形態と変わらないが、第２の実施の形態では、更に２つの機能ブロックが追加され、再送フレームの生成についてさらに工夫している。
【０１０６】
図１１に、第２の実施の形態に係る端末の構成が示される。端末Ａ３、端末Ｂ４は、第１の実施の形態に係る端末Ａ１、端末Ｂ２に対応し、ＮＩＣ１８を有する。ＮＩＣ１８は、第１の実施の形態において説明されたＮＩＣ６に、更にブロック誤り訂正符号計算部１９とブロック誤り訂正部２０とが追加されて、構成される。
【０１０７】
ブロック誤り訂正符号計算部１９は、再送される毎ブロックに対する誤り訂正符号を計算する。ブロック誤り訂正部２０は、受信された再送フレームに含まれるブロックの誤りを、ブロック毎に付与されているブロック誤り訂正符号を使用して訂正する。その他のブロックについては、第１の実施の形態で既に説明している通りである。
【０１０８】
図１４は、ＮＩＣ１８の送信制御動作の流れを示すフローチャートである。図１５は、ＮＩＣ１８の受信制御動作の流れを示すフローチャートである。図１２は、図３に示されるシーケンスにおける再送フレーム（＃Ｋ）３２のフレームフォーマットを示す図である。図１３は、図３に示される再送フレーム（＃Ｋ）３２の受信側のフレーム処理を示す図である。第２の実施の形態における送信制御の処理ステップＳ００〜Ｓ１６（図１４）は、第１の実施の形態における処理ステップＳ００〜Ｓ１６（図９）と同様の処理であり、第２の実施の形態では更に処理ステップＳ１７が追加される。また、受信制御の処理ステップＳ２０〜Ｓ３６（図１５）は、第１の実施の形態における処理ステップＳ２０〜Ｓ３６（図１０）と同様の処理であり、第２の実施の形態では更に処理ステップＳ３７が追加される。これら図１１、図１２、図１３、図１４、図１５を参照して、本発明の第２の実施の形態に係る通信システムの動作を説明する。
【０１０９】
端末Ａ３に搭載されるＮＩＣ１８が、上位ブロック５から送信データを受け取り、フレーム（＃Ｋ）３０を端末Ｂ４へ送信するまでの処理４０（図３）、端末Ｂ４のＮＩＣ１８が、端末Ａ３からデータ部に誤りがあるフレーム（＃Ｋ）３０を受信する処理４１（図３）、さらに、ＮＡＫ（＃Ｋ）３１を送信するまでの処理４２（図３）は、第１の実施の形態と同様の処理動作となる。
【０１１０】
次に、端末Ｂ４からＮＡＫ（＃Ｋ）３１を受信した端末Ａ３のＮＩＣ１８の処理４３（図３）、および再送フレーム（＃Ｋ）３２の送信処理４４（図３）を説明する。
【０１１１】
ＮＡＫ（＃Ｋ）３１が端末Ａ３に搭載されるＮＩＣ１８に与えられると、受信部１１は、受信されたフレームデータをデシリアライズ、デスクランブル、復号化し、受信フレーム信号１０７を生成してフレーム終端・識別部１２へ供給する（図１４ステップＳ０６）。
【０１１２】
フレーム終端・識別部１２は、図１２（ａ）に示されるように、ＮＡＫ（＃Ｋ）３１信号のヘッダ部２０５の誤り検出と、フレーム全体の誤り検出とを行う。また、フレーム終端・識別部１２は、受信フレーム信号１０７がＮＡＫフレーム、ＡＣＫフレームのどちらであるか識別を行う。図３に示されるシーケンスでは、この時点でＮＡＫ（＃Ｋ）３１には誤りがないことから、フレーム終端・識別部１２は、誤り検出なしを示す誤り検出結果信号１０９を生成し、受信ＡＣＫ／ＮＡＫ信号１０８とあわせて、誤り検出符号比較部１３へ供給する（図１４ステップＳ０７、Ｓ０９）。
【０１１３】
誤り検出符号比較部１３は、受信ＡＣＫ／ＮＡＫ信号１０８に含まれるＮＡＫ（＃Ｋ）３１のヘッダ部２０５（図１２（ａ）参照）からフレーム先頭ポインタ値ｐ５１を取り出す。また、誤り検出符号比較部１３は、各ブロックの先頭に付与されるブロックポインタｐ６０−０〜ｐ６０−ｎに基づいて再送信フレームデータ読み出し信号１１０を生成し、送信バッファ部９へ供給する。さらに、誤り検出符号比較部１３は、ＮＡＫ（＃Ｋ）３１のヘッダ部２０５内ブロック長（図１２（ａ）参照）に設定されているブロック長ｚを取り出し、ブロック長信号１１１としてブロック誤り検出符号計算部１４−０に供給する。なお、図１２（ａ）に示されるＮＡＫ（＃Ｋ）３１のヘッダ部２０５の詳細は、図６（ｆ）に示される。
【０１１４】
再送信フレームデータ読み出し信号１１０が与えられると、送信バッファ部９は、図１２（ｂ）に示されるように、送信バッファ上に保存されているフレーム（＃Ｋ）３０を、１フレー分読み出し、再送信フレームデータ信号１１２として、ブロック誤り検出符号計算部１４−０へ供給する。ブロック誤り検出符号計算部１４−０は、すでに誤り検出符号比較部１３から与えられているブロック長ｚに基づいて、ブロック毎の誤り検出符号であるブロック誤り検出符号２０７（−０〜ｎ）を計算する。計算されたブロック誤り検出符号２０７は、各ブロックの先頭を示すポインタｐ６０を付加され、ブロックデータ２０２と合わせて、ブロックデータ誤り検出符号信号１１３として、誤り検出符号比較部１３に供給される（図１４ステップＳ１１）。
【０１１５】
誤り検出符号比較部１３は、各ブロックの先頭を示すポインタｐ６０に基づいて、ＮＡＫ（＃Ｋ）３１のデータ部に含まれる受信側で計算されたブロック毎のブロック誤り検出符号２０４（図１２（ａ）参照）と、ブロックデータ誤り検出符号信号１１３に含まれる送信バッファ内フレーム（＃Ｋ）のブロック誤り検出符号２０７との比較を行う。一致する場合、誤り検出符号比較部１３は、当該ブロックが受信側へ正しく送信されたと判断し、再送対象のブロックから除く。不一致の場合、誤り検出符号比較部１３は、当該ブロックが受信側へ正しく送信されていないと判断する。そして、誤り検出符号比較部１３は、当該ブロックと当該ブロックの誤り検出符号を含む再送ブロックデータ信号１１４と、ブロック位置を示すポインタｐ６０、再送フレームのヘッダ情報を含む再送制御情報１１５とをブロック誤り訂正符号計算部１９へ供給する。ここでは、ＮＡＫ（＃Ｋ）３１のブロック誤り検出符号２０４−２、２０４−ｍにおいて不一致が発生したものとしており、これに対応する再送ブロックデータが、ブロック誤り訂正符号計算部１９に供給されることになる（図１４ステップＳ１２、Ｓ１３）。
【０１１６】
ブロック誤り訂正符号計算部１９は、図１２（ｄ）に示されるように、再送ブロックデータ信号毎にブロック誤り訂正符号を計算する。ブロック誤り訂正符号計算部１９は、計算したブロック誤り訂正符号を誤り訂正符号付き再送ブロックデータ信号１２５として、再送制御情報１２６と合わせ、再送フレーム生成部１５に供給する（図１４ステップＳ１７）。誤り訂正符号は、一般的なＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）に使用されるＲＳ（リード・ソロモン）符号を用いるが、特に限定することは無く、誤りが訂正できる符号で何れの符号を用いても良い。また、図１２（ｄ）に示されるブロック誤り訂正符号２１３は、誤り検出符号比較部１３から与えられる再送ブロックデータ信号１１４によって示される誤り検出符号２０７に追加しても良いが、本実施の形態では、置き換えを行って再送フレーム生成部１５に供給される。
【０１１７】
誤り訂正符号付き再送ブロックデータ信号１２５と再送制御情報１２６とが再送フレーム生成部１５に与えられると、再送フレーム生成部１５は、１フレーム分の再送ブロックデータ信号（誤り訂正符号付き）とブロック位置を示すポインタとをまとめ、再送ヘッダ情報、再送指示と合わせて再送信データ信号１１６として、フレーム生成部８に供給する（図１４ステップＳ１４、Ｓ１５、Ｓ１６）。
【０１１８】
フレーム生成部８は、再送信データ信号１１６に示される再送信データに再送フレームヘッダ部２０８、フッタ部２０９を付与して再送フレーム（＃Ｋ）３２を生成し（図１２（ｅ）参照）、フレームデータ信号およびデータ有効信号１０５として、送信バッファ部９と送信部１０とに供給する（図１４ステップＳ０１、Ｓ０４）。
【０１１９】
このとき、ヘッダ部２０８には、図１２（ｆ）に示されるように、再送信に必要なシリアル番号を含むその他情報、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタが当然含まれる。また、ヘッダ部２０８に対する誤り検出符号が付加される。本実施の形態では、ブロック長とフレーム先頭ポインタとには、ＮＡＫ（＃Ｋ）のヘッダ２０５に設定されるブロック長ｚとフレーム先頭ポインタｐ５１とが設定される。また、再送フレーム先頭ポインタには、送信バッファ上に再送フレーム（＃Ｋ）３２が保存される際のフレーム先頭ポインタｐ５２が設定される。フッタ部２０９には、ヘッダ部２０８から、データ部の最後尾までの範囲に対する誤り検出符号が付与される。
【０１２０】
フレームデータ信号およびデータ有効信号１０５が送信バッファ部９に与えられると、送信バッファ部９は、再送フレームデータ（＃Ｋ）のヘッダ部２０８に含まれるフレーム先頭ポインタｐ５２に基づいて、図１２（ｇ）に示されるように、フレームデータを送信バッファ部９内に保存する（図１４ステップＳ０５）。
【０１２１】
フレームデータ信号およびデータ有効信号１０５が与えられると、送信部１０は、フレームデータを符号化、スクランブル、シリアライズし、通信回線１００を介して端末Ｂ４へ送信する（図１４ステップＳ０５）。
【０１２２】
次に、端末Ａ３から再送フレーム（＃Ｋ）３２を受信した際の端末Ｂ４に搭載されるＮＩＣ１８の処理４５（図３参照）、および、ＡＣＫ（＃Ｋ）３３の送信処理４６（図３参照）を説明する。
【０１２３】
再送フレーム（＃Ｋ）３２が端末Ｂ４に搭載されるＮＩＣ１８に与えられると、受信部１１は、受信されたフレームデータをデシリアライズ、デスクランブル、復号化して受信フレーム信号１０７を生成し、フレーム終端・識別部１２へ供給する（図１５ステップＳ２４）。
【０１２４】
フレーム終端・識別部１２は、受信した再送フレーム（＃Ｋ）３２のヘッダ部２０８の誤り検出と、ヘッダ部２０８からフッタ部２０９までを含むフレーム全体の誤り検出とを行う（図１３（ａ）参照）。誤りが検出されない場合、フレーム終端・識別部１２は、誤りが無いことを示す誤り検出結果信号１１８を生成し、受信フレーム信号１１７とあわせて、ブロック誤り訂正部２０へ供給する（図１５ステップＳ２５、Ｓ２７）。
【０１２５】
ブロック誤り訂正部２０は、誤り検出結果信号１１８にフレーム誤り有が設定された場合、受信フレーム信号１１７の再送フレーム（＃Ｋ）３２のヘッダ２０８に設定されているブロック長毎に誤り訂正処理を行い（図１３（ｂ）参照）、訂正結果を反映した誤り訂正結果信号１２８と誤り訂正済み受信フレーム信号１２７とを受信バッファ部１７およびブロック誤り検出符号計算部１４−１へ供給する。誤りが検出されない場合は、誤り検出結果信号１１８と受信フレーム信号１１７とを、誤り訂正結果信号１２８、誤り訂正済み受信フレーム信号１２７として、受信バッファ部１７およびブロック誤り検出符号計算部１４−１へ供給する。ブロック誤り訂正部２０においてブロック誤りが訂正しきれない場合、ブロック誤り訂正部２０は、当該ブロックが誤り訂正できていないブロックであることを示す誤り訂正結果信号１２８を生成し、誤り訂正済み受信フレーム信号１２７と合わせ、受信バッファ部１７およびブロック誤り検出符号計算部１４−１へ供給する（図１５ステップＳ３７）。なお、誤り検出結果信号１１８と、再送フレームでない初回のフレーム（本実施の形態の場合フレーム（＃Ｋ）３０）を含む受信フレーム信号１１７がブロック誤り訂正部２０に与えられると、ブロック誤り訂正部２０は、訂正処理を行わずに誤り検出結果信号１１８と受信フレーム信号１１７とを、誤り訂正結果信号１２８、誤り訂正済み受信フレーム信号１２７として、ブロック誤り検出符号計算部１４−１へ供給する（図１５ステップＳ３０）。
【０１２６】
誤り訂正結果信号１２８と誤り訂正済み受信フレーム信号１２７とが受信バッファ部１７に与えられると、受信バッファ部は、図１３（ｃ）に示されるように、受信バッファ上に保存されているフレーム（＃Ｋ）に修正されたブロックデータ２１４を保存する（図１５ステップＳ３１）。保存は、再送フレーム（＃Ｋ）３２のヘッダに含まれるフレーム先頭ポインタｐ５１と各ブロックの先頭に付与されたブロックポインタｐ６０に基づいて行われる（図１３（ａ）参照、ヘッダの詳細は図６（ｆ）参照）。ＮＩＣ１８が、受信制御回路として動作する場合、修正されたブロック２１４−２とブロック２１４−ｍ（図１３（ｂ））とのデータが、受信バッファ上のフレーム（＃Ｋ）のブロック２０２−２とブロック２０２−ｍの位置（図１３（ｃ））に保存されることになる。また、受信バッファ部１７は、受信バッファの書き込みポインタを更新して、受信バッファ上のフレーム（＃Ｋ）が読み出し可能となったことを上位インタフェース部７に伝える。なお、誤り訂正結果信号１２８から誤りが訂正できないブロックであることが判明した場合、当該ブロックのバッファリングは行われない（図１５ステップＳ３４）。
【０１２７】
受信バッファ上のフレーム（＃Ｋ）の読み出し可能であることが上位インタフェース部７に伝えられると、インタフェース部７は、有効を示す受信フレーム読み出し信号１２４を生成し、受信バッファ部１７へ供給する。受信バッファ部１７は、受信バッファからフレーム（＃Ｋ）を読み出して、受信フレームデータ１２３として上位インタフェース部７に供給する。上位インタフェース部７は、受信フレームデータ１２３を上位ブロック５へ送信する。
【０１２８】
誤り訂正結果信号１２８と誤り訂正済み受信フレーム信号１２７とがブロック誤り検出符号計算部１４−１に与えられると、ブロック誤り検出符号計算部１４−１は、誤り訂正結果信号１２８が誤りなしを示す場合、誤り訂正済み受信フレーム信号１２７によって示されるデータを廃棄する。ブロック誤り検出符号計算部１４−１は、誤り訂正結果信号１２８を誤り検出結果信号１２０として、ＡＣＫ／ＮＡＫフレーム生成部１６へ供給する。また、誤り訂正結果信号１２８が誤りありを示す場合、ブロック誤り検出符号計算部１４−１は、誤りがあるブロックの誤り検出符号を計算し、ブロック誤り検出符号を示す受信ブロック誤り検出符号信号１１９を生成する。ブロック誤り検出符号計算部１４−１は、そのブロックポインタを示す誤り検出結果信号１２０を生成し、ＡＣＫ／ＮＡＫフレーム生成部１６へ供給する。
【０１２９】
誤りなしを示す誤り検出結果信号１２０が与えられると、ＡＣＫ／ＮＡＫフレーム生成部１６は、ＡＣＫヘッダ情報とＡＣＫフレーム生成指示とを示すＡＣＫ／ＮＡＫデータ信号１２２を生成し、フレーム生成部８へ供給する（図１５ステップＳ２８）。
【０１３０】
フレーム生成部８は、ＡＣＫ／ＮＡＫデータ信号１２２に、ＡＣＫヘッダ部２１０、フッタ部２１１を付与してＡＣＫ（＃Ｋ）３３を生成し（図１３（ｅ））、フレームデータ信号としてデータ有効信号１０５と合わせて、送信部１０へ供給する（図１５ステップＳ２１、Ｓ２２）。このときヘッダ部２１０（図１３（ｅ））には、再送信に必要なシリアル番号を含むその他情報、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタが当然含まれる（図１３（ｆ）参照）。また、ヘッダ部２１０に対する誤り検出符号が付加される。本実施の形態では、ブロック長、再送フレーム先頭ポインタ、フレーム先頭ポインタには、それぞれ再送フレーム（＃Ｋ）３２のヘッダ２０８に設定されたブロック長ｚ、再送フレーム先頭ポインタｐ５２、フレーム先頭ポインタｐ５１が設定される。フッタ部２１１には、ヘッダ部２１０からデータ部２１２の最後尾までの範囲に対する誤り検出符号が付与される。
【０１３１】
フレームデータ信号およびデータ有効信号１０５が送信部１０に与えられると、送信部１０は、フレームデータを符号化、スクランブル、シリアライズし、通信回線１０１を介して端末Ａ３へ送信する（図１５ステップＳ２３）。端末Ａ３のＮＩＣ１８では、端末Ｂ４からＡＣＫ（＃Ｋ）３３を受信した際の処理４７（図３）が、第１の実施の形態と同様に行われる。
【０１３２】
このように、本実施の形態では、再送フレームに誤り訂正符号が付与されているため、再送フレームに誤りが発生しても誤りが訂正できる。したがって、再送フレームの再再送を行わなくても良くなり、回線の利用効率を更に向上できるという効果が得られる。
【０１３３】
また、上記実施の形態では、誤りが検出されたデータを分割したブロックデータが再送されているが、ブロック毎の誤り訂正符号のみを再送してもよい。この場合、受信側装置において、ブロック毎の誤り訂正符号に基づいて、受信済みのデータをブロックに分割して各ブロックの誤り訂正の処理が行われる。ブロックのデータをそのまま転送するよりも転送データが少なくなるため、より帯域の利用効率が向上する。なお、上記実施の形態は、各機能を有するソフトウェアとして実装されてもよい。
【０１３４】
第１の発明に係る送信制御回路は、パケット単位でデータ通信を行い、データ通信時に誤りが検出された場合にパケットを再送信する送信制御回路であって、再送信を行うためパケットを保存する送信バッファ手段と、送信パケットに誤りが検出された場合、当該パケットを複数のブロックに分割し、その誤り検出符号を計算するブロック誤り検出符号計算手段と、上記手段により計算されたブロック誤り検出符号と受信側からの再送信要求である否定応答（ＮＡＫ：Ｎｅｇａｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）に含まれる受信側で計算されたブロック誤り検出符号との比較を行い再送信するブロックを決定する誤り検出符号比較手段と、再送するブロックをパケット化し、再送信する再送パケット生成手段を備えている。
【０１３５】
第２の発明に係る受信制御回路は、パケット単位でデータ通信を行い、受信したパケットに誤りを検出した場合にパケットを再送してもらう受信制御回路であって、受信したパケットに含まれる誤りの検出、および識別を行うパケット終端・識別手段と、誤りが検出された場合に当該パケットを複数のブロックに分割し、その誤り検出符号を計算するブロック誤り検出符号計算手段と、上記手段で計算されたブロック誤り検出符号を否定応答（ＮＡＫ）に設定し送信するＡＣＫ／ＮＡＫパケット生成手段と、受信したパケットを保存し、再送パケットの場合パケットに含まれるブロックを、すでに受信しているパケットに反映、保存する受信バッファ手段を備えている。
【０１３６】
本発明の送信制御回路、受信制御回路、および通信方式は、送信制御回路の上位インタフェース部で上位ブロックより、送信データの入力があると送信制御回路のパケット生成部がパケットを生成し、パケットを送信する時、送信制御回路の送信バッファ部が、再送信のためのパケットを保存する。
【０１３７】
受信制御回路でパケットを受信すると、受信制御回路の受信バッファ部が受信したパケットを保存し、受信制御回路のパケット終端・識別部が、受信したパケットの誤り検出を行い、誤りが検出された時に、受信制御回路のブロック誤り検出符号計算部が、当該パケットを複数のブロックに分割、誤り検出符号を計算し、ＡＣＫ／ＮＡＫパケット生成部が計算されたブロック誤り検出符号を否定応答（ＮＡＫ）に設定し送信する。
【０１３８】
送信制御回路でＮＡＫのパケットを受信すると送信制御回路のブロック誤り検出符号計算部が、ＮＡＫに対応する送信パケットを送信バッファより読み出し、ＮＡＫに設定されているブロック長ｚ（ｚは、１以上の正の整数）に従い複数のブロックに分割し、その誤り検出符号を計算し、送信制御回路の誤り検出符号比較部が前述のブロック誤り検出符号計算部より計算されたブロック誤り検出符号と受信側からのＮＡＫに含まれる受信側で計算されたブロック誤り検出符号の比較を行い再送信するブロックを決定し、送信制御回路の再送パケット生成部が再送するブロックをパケット化し再送パケットを送信する。
【０１３９】
受信制御回路で再送パケットを受信すると、受信制御回路の受信バッファ部が再送パケットに含まれるブロックを、すでに受信しているパケットに反映、保存し、受信制御回路のパケット終端・識別部が、受信したパケットの誤り検出を行い、誤りが無い時、上位インタフェース部が、受信バッファより当該パケットを読み出し、上位ブロックへ出力する。
【０１４０】
これにより、受信制御回路でパケットに誤りを検出した時、受信制御回路で計算した受信パケットブロック毎の誤り検出符号と、送信制御回路で計算した、送信パケットのブロック毎の誤り検出符号を比較することで、初回の送信時にブロック毎に分解することなく、再送信時に誤りが発生したブロックのみを再送信することが可能となる。
【０１４１】
本発明では、フレームを複数ブロックに分ける処理を受信側でしているため、初回送信フレームに余分なブロック毎のヘッダおよび誤り検出符号を付与することなく送信することが可能である。したがって、回線帯域の利用効率を向上させることができる。
【０１４２】
また、本発明では、受信側から通知されるブロック長に従い送信側で再送すべきブロックを決定することができる誤り検出符号比較部が設けられている。そのため、回線の品質に合わせ柔軟にブロック長を変えることができ、ブロックの誤り率を減少させることが可能である。したがって、誤り率の高い回線でも、フレームの再再送信を減少させ回線帯域の利用効率を向上させることができる。
【０１４３】
さらに、本発明では、受信側でフレームに誤りが検出された時にのみ、フレームを複数のブロックに分割してブロック毎に計算されたブロック誤り検出符号を含むＮＡＫフレームが送信される。したがって、端末間において双方向でデータ通信を行う場合であっても、回線帯域の利用効率が向上する。
【０１４４】
また、再送フレームに誤り訂正符号を付与し、受信側で再送フレームに誤りが発生した場合、その誤りを訂正することが可能である。したがって、誤り率の高い回線でも、フレームの再再送信を減少させることができ、回線帯域の利用効率を向上させることができる。
【０１４５】
本発明は、受信側で分割するブロック長をフレーム・パケット単位で調整することが可能であり、また、第２の実施の形態に示されるように再送フレームのブロック毎に誤り訂正符号を付与するため、再送フレーム・パケットが誤る確率が格段に低くなる。例えば、回線に品質が悪い場合、品質に合わせ、再送ブロック長を短くすることにより、再送フレームに誤りが生じても、訂正可能な誤り数にコントロールすることができる。そのため、再再送を防止することができる。これにより、従来の再送制御より、低遅延かつ高スループットな再送制御が可能となる。さらに、フレームのヘッダ部には、ブロック長、ヘッダ部誤り検出符号の他に、フレーム先頭ポインタ、再送フレーム先頭ポインタを備え、またブロック毎にポインタを備えることから、柔軟に再送フレームを構築することができる。なお、フレーム内に再送フレームの先頭ポインタを備えるため、送信に失敗したブロックのみを送信側バッファに保存し、送信側のバッファを効率的に使用することが可能であるため、再送発生時のウインドウサイズの減少を抑え、高スループットを実現することができる。
【０１４６】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４７】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１４８】
（付記１）  対向する通信装置から送信されるプロトコル・データ・ユニット（ＰＤＵ）単位のデータを受信して受信データとして出力する受信部と、
前記受信データに誤りがあるか否かを判定する受信データ判定部と、
前記受信データを所定のブロック長の受信データブロックに分割し、前記受信データブロック毎に受信ブロック誤り検出符号を計算する受信ブロック誤り検出符号計算部と、
前記対向する通信装置との間に介在する回線の品質に基づいて前記ブロック長を決定するブロック長決定部と、
前記受信データ判定部が前記受信データに誤りを検出したとき、前記ブロック長と前記受信ブロック誤り検出符号とを前記対向する通信装置に送信して再送を要求する送信部とを具備する通信制御装置。
【０１４９】
（付記２）  前記回線の品質は、ＢＥＲ（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）に基づいて算出し、前記ブロック長決定部は、前記ＢＥＲを複数の範囲に分類してブロック長を算出する、付記１に記載の通信制御装置。
【０１５０】
（付記３）  前記受信データを格納する受信バッファ部をさらに具備し、
再送の要求に応答して前記対向する通信装置が送信した再送データを受信したとき、前記再送データに含まれる制御情報に基づいて、前記再送データに含まれる前記ブロック長の再送ブロックのうちの誤りを検出されない再送ブロックを前記受信バッファ部に格納して前記受信データの修復を行う、付記１または付記２に記載の通信制御装置。
【０１５１】
（付記４）  前記再送ブロックは誤り訂正符号を含み、
前記再送ブロックの誤りを前記誤り訂正符号に基づいて誤り訂正する誤り訂正部をさらに具備し、
前記受信バッファ部は、前記制御情報に基づいて誤り訂正された前記再送ブロックを格納して前記受信データの修復を行う、付記３に記載の通信制御装置。
【０１５２】
（付記５）  前記対向する通信装置に送信する送信データを格納する送信バッファ部と、
前記対向する通信装置において算出された対向ブロック長と、前記対向する通信装置が受信した対向受信データを前記対向ブロック長に分割して計算した対向受信ブロック誤り検出符号とを含む再送要求を受信したとき、前記送信バッファ部に格納された前記送信データを前記対向ブロック長の送信データブロックに分割し、前記送信データブロック毎に送信ブロック誤り検出符号を計算する送信ブロック誤り検出符号計算部と、
前記対向受信ブロック誤り検出符号と、前記送信ブロック誤り検出符号とを比較する誤り検出符号比較部と、
前記送信部は、前記対向受信ブロック誤り検出符号と前記送信ブロック誤り検出符号とが異なるブロックの前記送信バッファ部に格納されたデータと前記送信ブロック誤り検出符号とを前記対向する通信装置に再送する、付記１から付記４のいずれかに記載の通信制御装置。
【０１５３】
（付記６）  前記送信データブロック毎に送信ブロック誤り訂正符号を計算するブロック誤り訂正符号計算部をさらに具備し、
前記送信部は、前記対向受信ブロック誤り検出符号と前記送信ブロック誤り検出符号とが異なるブロックの前記送信バッファ部に格納されたデータと前記送信ブロック誤り訂正符号とを前記対向する通信装置に再送する、付記５に記載の通信制御装置。
【０１５４】
（付記７）  対向する通信装置からプロトコル・データ・ユニット（ＰＤＵ）単位のデータを受信して受信データとして出力するステップと、
前記受信データに誤りがあるか否かを判定するステップと、
前記受信データを所定のブロック長の受信データブロックに分割し、前記受信データブロック毎に受信ブロック誤り検出符号を計算するステップと、
前記対向する通信装置との間に介在する回線の品質に基づいて前記ブロック長を決定するステップと、
前記判定の結果が前記受信データに誤りを検出したことを示すとき、前記ブロック長と前記受信ブロック誤り検出符号とを前記対向する通信装置に送信して再送を要求するステップとを具備する、通信制御方法。
【０１５５】
（付記８）  前記回線の品質をＢＥＲ（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）に基づいて算出するステップをさらに具備し、
前記ブロック長を決定するステップは、前記ＢＥＲを複数の範囲に分類してブロック長を算出するステップを備える、付記７に記載の通信制御方法。
【０１５６】
（付記９）  前記受信データを受信バッファに格納するステップと、
再送の要求に応答して前記対向する通信装置が送信した再送データを受信するステップと、
前記再送データに含まれる制御情報に基づいて、前記再送データに含まれる前記ブロック長の再送ブロックのうちの誤りを検出されない再送ブロックを前記受信バッファ部に格納して前記受信データの修復を行うステップと
をさらに具備する、付記７または付記８に記載の通信制御方法。
【０１５７】
（付記１０）  前記再送ブロックは誤り訂正符号を含み、
前記再送ブロックの誤りを前記誤り訂正符号に基づいて誤り訂正するステップをさらに具備する、付記９に記載の通信制御方法。
【０１５８】
（付記１１）  前記対向する通信装置に送信する送信データを送信バッファに格納するステップと、
前記対向する通信装置において算出された対向ブロック長と、前記対応する通信装置が受信した対向受信データを前記対向ブロック長に分割して計算した対向受信ブロック誤り検出符号とを含む再送要求を受信したとき、前記送信バッファに格納された前記送信データを前記対向ブロック長の送信データブロックに分割するステップと、
前記送信データブロック毎に送信ブロック誤り検出符号を計算するステップと、
前記対向受信ブロック誤り検出符号と、前記送信ブロック誤り検出符号とを比較するステップと、
前記対向受信ブロック誤り検出符号と前記送信ブロック誤り検出符号とが異なるブロックの前記送信バッファに格納されたデータと前記送信ブロック誤り検出符号とを前記対向する通信装置に再送するステップと
をさらに具備する、付記７から付記１０のいずれかに記載の通信制御方法。
【０１５９】
（付記１２）  前記送信データブロック毎に送信ブロック誤り訂正符号を計算するステップをさらに具備し、
前記再送するステップは、前記対向受信ブロック誤り検出符号と前記送信ブロック誤り検出符号とが異なるブロックの前記送信バッファ部に格納されたデータと前記送信ブロック誤り訂正符号とを前記対向する通信装置に再送するステップを備える、付記１１に記載の通信制御方法。
【符号の説明】
【０１６０】
１、３：端末Ａ
２、４：端末Ｂ
５：上位ブロック（ＣＰＵなど）
６、１８：ＮＩＣ
７：上位インタフェース
８：フレーム生成
９：送信バッファ
１０：送信部
１１：受信部
１２：フレーム終端・識別部
１３：誤り検出符号比較部
１４−０〜１：ブロック誤り検出符号計算部
１５：再送フレーム生成部
１６：ＡＣＫ／ＮＡＫフレーム生成部
１７：受信バッファ部
１８：ブロック長決定部
１９：ブロック誤り訂正符号計算部
２０：ブロック誤り訂正部
２１：累積フレームバイトカウンタ部
２２：カウンタ制御部
２３：ラッチ部
２４：送信側ブロック長検出部
２５：受信側ブロック長計算部
２６：ブロック長選択部
２７：レジスタ
３０：フレーム（＃Ｋ）
３１：ＮＡＫ（＃Ｋ）
３２：再送フレーム（＃Ｋ）
３３：ＡＣＫ（＃Ｋ）
４０：初回フレーム（＃Ｋ）送信処理
４１：初回フレーム（＃Ｋ）受信処理
４２：ＮＡＫ（＃Ｋ）送信処理
４３：ＮＡＫ（＃Ｋ）受信処理
４４：再送フレーム（＃Ｋ）送信処理
４５：再送フレーム（＃Ｋ）受信処理
４６：ＡＣＫ（＃Ｋ）送信処理
４７：ＡＣＫ（＃Ｋ）受信処理
ｐ５０：フレーム（＃Ｋ−１）の先頭ポインタ
ｐ５１：フレーム（＃Ｋ）の先頭ポインタ
ｐ５２：再送フレーム（＃Ｋ）の先頭ポインタ
ｐ６０：ブロックポインタ
１００：回線
１０１：回線
１０２：上位インタフェース信号
１０３：バックプレッシャー信号
１０４：送信データ信号
１０５：フレームデータ信号とデータ有効信号
１０６：バッファ空きサイズ信号
１０７：受信フレーム信号
１０８：受信ＡＣＫ／ＮＡＫ信号
１０９：誤り検出結果信号
１１０：再送信フレームデータ読み出し信号
１１１：ブロック長信号
１１２：再送信フレームデータ信号
１１３：ブロックデータ誤り検出符号信号
１１４：再送ブロックデータ信号
１１５：再送制御情報
１１６：再送信データ信号
１１７：受信フレーム信号
１１８：誤り検出結果信号
１１９：受信ブロック誤り検出符号信号
１２０：誤り検出結果信号
１２１：ブロック誤り検出結果信号
１２２：ＡＣＫ／ＮＡＫデータ信号
１２３：受信データ信号
１２４：受信フレーム読み出し信号
１２５：誤り訂正符号付き再送ブロックデータ信号
１２６：再送制御情報
１２７：誤り訂正済み受信フレーム信号
１２８：誤り訂正結果信号
１２９：ブロック長ｚ
１３０：累積フレームバイトカウンタ値ｘ
１３１：ラッチ＆クリア指示
１３２：ラッチ累積フレームバイト値ｘ’
１３３：受信側ブロック長ｚｒ
１３４：送信側ブロック長ｚｔ
１３５：識別フラグ
１３６：ラッチ識別フラグ
２００：初回フレーム（＃Ｋ）のヘッダ
２０１：初回フレーム（＃Ｋ）のデータ
２０２：フレーム（＃Ｋ）のブロックデータ
２０３：初回フレーム（＃Ｋ）のフッタ
２０４：ブロック誤り検出符号
２０５：ＮＡＫ（＃Ｋ）のヘッダ
２０６：ＮＡＫ（＃Ｋ）のフッタ
２０７：送信バッファ内フレーム（＃Ｋ）のブロック誤り検出符号
２０８：再送フレーム（＃Ｋ）のヘッダ
２０９：再送フレーム（＃Ｋ）のフッタ
２１０：ＡＣＫ（＃Ｋ）のヘッダ
２１１：ＡＣＫ（＃Ｋ）のフッタ
２１２：ＡＣＫ（＃Ｋ）のデータ
２１３：送信バッファ内フレーム（＃Ｋ）のブロック誤り訂正符号
２１４：ブロック誤り訂正後のブロックデータ
３００：データ端末
３０１：通信制御装置
３０２：端末インタフェース
３０３：ＣＰＵ
３０４：メモリ
３０５：ブロック化部
３０６：ブロック組立部
３０７：無線インタフェース
３０８：無線機
３０９：ブロック番号
３１０：ＣＲＣ
３１１：ブロックデータ
【図１】
2011234268.tif 000003
【図２】
2011234268.tif 000004
【図３】
2011234268.tif 000005
【図４】
2011234268.tif 000006
【図５】
2011234268.tif 000007
【図６】
2011234268.tif 000008
【図７】
2011234268.tif 000009
【図８】
2011234268.tif 000010
【図９】
2011234268.tif 000011
【図１０】
2011234268.tif 000012
【図１１】
2011234268.tif 000013
【図１２】
2011234268.tif 000014
【図１３】
2011234268.tif 000015
【図１４】
2011234268.tif 000016
【図１５】
2011234268.tif 000017
【図１６】
2011234268.tif 000018
【図１７】
2011234268.tif 000019
【図１８】
2011234268.tif 000020