(57)【要約】【課題】ラウンドトリップ遅延時間ＲＴＴの変化および可変長フレームに起因するスループット低下を回避できる通信装置および通信制御方法を提供する。【解決手段】送信データに当該シーケンス番号を有するヘッダを付加したフレームを送信バッファ部に格納し、送信フレームのヘッダに送信側トランザクション識別子を付加して受信側端末へ送信し、送信フレームに対して受信側端末からＮＡＫを受信したとき、当該ＮＡＫに送信時のシーケンス番号と送信側トランザクション識別子とが含まれているならば、送信側トランザクション識別子を更新したフレームを受信側端末へ再送信し、送信側トランザクション識別子を更新した後で受信側端末から受信したＮＡＫにシーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する。【選択図】図５
2012195836.tif 000002
【特許請求の範囲】
【請求項１】
受信側の通信装置から再送要求されたシーケンス番号のデータユニットを再送信する機能を有する通信装置であって、
送信すべきデータユニットに当該データユニットのシーケンス番号を有するヘッダを付加したプロトコルデータユニット（以下、ＰＤＵという。）を格納する送信バッファ手段と、
前記ＰＤＵのヘッダに送信側トランザクション識別子を付加して前記受信側の通信装置へ送信する送信手段と、
前記送信したＰＤＵに対して前記受信側の通信装置から異常受信応答（ＮＡＫ）を受信したとき、当該ＮＡＫに前記シーケンス番号と前記送信側トランザクション識別子とが含まれているならば、前記送信側トランザクション識別子を更新したＰＤＵを前記受信側の通信装置へ再送信し、前記送信側トランザクション識別子を更新した後で前記受信側の通信装置から受信したＮＡＫに前記シーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する制御手段と、
を有することを特徴とする通信装置。
【請求項２】
前記送信バッファ手段に格納される前記ＰＤＵの格納アドレスを当該ＰＤＵの前記シーケンス番号として用い、当該シーケンス番号に次に送信すべきＰＤＵのＰＤＵ長を加算した値を当該次に送信すべきＰＤＵのシーケンス番号として用いることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記次に送信すべきＰＤＵのシーケンス番号が前記送信バッファ手段の格納容量の先頭アドレスを超えて一巡する場合には前記送信側トランザクション識別子を更新することを特徴とする請求項２に記載の通信装置。
【請求項４】
正常受信応答（ＡＣＫ）あるいはＮＡＫの生成要求と前記送信バッファ手段からのＰＤＵ読出しとが競合する場合、当該ＰＤＵのヘッダに正常受信応答（ＡＣＫ）あるいはＮＡＫ用のシーケンス番号およびトランザクション識別子を付加することを特徴とする請求項１−３のいずれか１項に記載の通信装置。
【請求項５】
受信側の通信装置から再送要求されたシーケンス番号のデータユニットを再送信する機能を有する通信装置における通信制御方法であって、
送信すべきデータユニットに当該データユニットのシーケンス番号を有するヘッダを付加したプロトコルデータユニット（以下、ＰＤＵという。）を送信バッファ手段に格納し、
送信手段が前記ＰＤＵのヘッダに送信側トランザクション識別子を付加して前記受信側の通信装置へ送信し、
前記送信したＰＤＵに対して前記受信側の通信装置から異常受信応答（ＮＡＫ）を受信したとき、当該ＮＡＫに前記シーケンス番号と前記送信側トランザクション識別子とが含まれているならば、前記送信側トランザクション識別子を更新したＰＤＵを前記受信側の通信装置へ再送信し、
前記送信側トランザクション識別子を更新した後で前記受信側の通信装置から受信したＮＡＫに前記シーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する、
ことを特徴とする通信装置における通信制御方法。
【請求項６】
前記送信バッファ手段に格納される前記ＰＤＵの格納アドレスを当該ＰＤＵの前記シーケンス番号として用い、当該シーケンス番号に次に送信すべきＰＤＵのＰＤＵ長を加算した値を当該次に送信すべきＰＤＵのシーケンス番号として用いることを特徴とする請求項５に記載の通信装置における通信制御方法。
【請求項７】
前記次に送信すべきＰＤＵのシーケンス番号が前記送信バッファ手段の格納容量の先頭アドレスを超えて一巡する場合には前記送信側トランザクション識別子を更新することを特徴とする請求項６に記載の通信装置における通信制御方法。
【請求項８】
正常受信応答（ＡＣＫ）あるいはＮＡＫの生成要求と前記送信バッファ手段からのＰＤＵ読出しとが競合する場合、当該ＰＤＵのヘッダに正常受信応答（ＡＣＫ）あるいはＮＡＫ用のシーケンス番号およびトランザクション識別子を付加することを特徴とする請求項５−７のいずれか１項に記載の通信装置における通信制御方法。
【請求項９】
端末間で再送要求されたシーケンス番号のデータユニットを再送信する再送機能を有するデータ通信システムであって、
送信側端末が、送信すべきデータユニットに当該データユニットのシーケンス番号を有するヘッダを付加したプロトコルデータユニット（以下、ＰＤＵという。）を送信バッファ手段に格納し、前記ＰＤＵのヘッダに送信側トランザクション識別子を付加して受信側端末へ送信し、
前記受信側端末が、前記ＰＤＵを正常受信できなかった場合には、前記シーケンス番号および前記送信側トランザクション識別子含む異常受信応答（ＮＡＫ）を前記送信側端末へ返信し、前記ＰＤＵを正常受信した場合には、次に受信すべきＰＤＵのシーケンス番号および前記送信側トランザクション識別子含む正常受信応答（ＡＣＫ）を前記送信側端末へ返信し、
前記送信側端末が、前記ＮＡＫを受信したならば、前記送信側トランザクション識別子を更新したＰＤＵを前記受信側端末へ再送信し、前記送信側トランザクション識別子を更新した後で前記受信側端末からＮＡＫを受信した場合、当該受信したＮＡＫに前記シーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する、
ことを特徴とするデータ通信システム。
【請求項１０】
受信側の通信装置から再送要求されたシーケンス番号のデータユニットを再送信する機能を有する通信装置におけるプログラム制御プロセッサを機能させるプログラムであって、
送信すべきデータユニットに当該データユニットのシーケンス番号を有するヘッダを付加したプロトコルデータユニット（以下、ＰＤＵという。）を送信バッファ手段に格納し、
送信手段が前記ＰＤＵのヘッダに送信側トランザクション識別子を付加して前記受信側の通信装置へ送信し、
前記送信したＰＤＵに対して前記受信側の通信装置から異常受信応答（ＮＡＫ）を受信したとき、当該ＮＡＫに前記シーケンス番号と前記送信側トランザクション識別子とが含まれているならば、前記送信側トランザクション識別子を更新したＰＤＵを前記受信側の通信装置へ再送信し、
前記送信側トランザクション識別子を更新した後で前記受信側の通信装置から受信したＮＡＫに前記シーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する、
ように前記プログラム制御プロセッサを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータの送受信をおこなうデータ通信システムに係り、特に高伝送レートで高品質なデータの送受信を提供する通信装置および通信制御方法に関する。
【背景技術】
【０００２】
パケット通信では、高い信頼性を得るために、パケットに誤りが発生した際、誤りがあったパケットを自動的に再送する技術（Automatic Repeat reQuest：ＡＲＱ）が提供されている。ただし、ＡＲＱはデータの信頼性を確保できるものの、誤り訂正処理などの他の誤り制御技術と比較して、再送区間のラウンドトリップ遅延時間（以下、ＲＴＴ(Round Trip Time)と称す。）を要するためにスループットが低下する場合がある。
【０００３】
パケットの再送信をおこなう代表的なプロトコルとしてＴＣＰ（Transmission Control Protocol）が知られている。ＴＣＰには、パケットロスが発生した際、ＲＴＯ（Retransmission Time Out）を待つことなく再送を要求する高速再転送(Fast Retransmission)がある。以下、図１を参照してＴＣＰにおける高速再転送の例を簡単に説明する。
【０００４】
図１において、送信側の端末１０から受信側の端末２０へパケットが転送されるものとする。ここで、Ｓ（ｋ）（ｋはシーケンス番号：ＳＥＱ）は送信パケット、Ａ（ｋ）はＡＣＫ（Acknowledgement）パケットである。受信側は、受信パケットにロスあるいは誤りが無い場合、ＡＣＫパケットへ、次に受信すべきシーケンス番号（ＳＥＱ）を設定し、送信側へ送信する。これにより送信側へパケットの転送が正常に行われていることが通知される。
【０００５】
ここでパケットＳ（５）ｇ−１に誤りが発生したとする。この場合、受信側の端末２０は送信側の端末１０にパケットの再送を要求するため、同じ内容のＡＣＫパケットＡ（５）ｇ−２を３回送信する。以下、同内容のACKパケットを３回送信することを「重複ＡＣＫ」と称す。送信側の端末１０は、受信側の端末２０からの重複ＡＣＫ（Ａ（５）ｇ−２）を検出するとパケットＳ（５）の再送信を開始する。この重複ＡＣＫ（Ａ（５）ｇ−２）により、ＲＴＯを待つことなく再送を開始することが可能となり、スループットを向上させることができる。
【０００６】
しかしながら、この高速再転送では、重複ＡＣＫ（同一のＡＣＫ３回分）を受信する必要があるため、再送を開始までに遅延ｇ−３が生じる。また、重複ＡＣＫのうち１パケットに誤り／ロスが発生（A（５）ｇ−４−３）すると、送信側端末１０は再送を開始することができない。したがって、送信型端末１０はＲＴＯｇ−５だけ待機した後に再送を開始することとなり、スループットが劣化する問題がある。
【０００７】
この問題を解決する方式として、ＮＡＫ（Negative Acknowledgement）によりパケットの再送を要求する方式が提案されている（特許文献１参照）。次に、図2を参照して、特許文献１の方式について簡単に説明する。なお特許文献１では、再送するプロトコル・データ・ユニット（ＰＤＵ）をフレームとしているが、これはＴＣＰのパケットと同義である。
【０００８】
図２は、特許文献１に開示されたＧＢＮ(Go Back N)-ＡＲＱ方式によるフレーム再送信の動作例である。ＧＢＮ−ＡＲＱ方式は、誤りが発生した場合、誤りが発生した箇所まで遡って再度フレームを送信する方式である。図２において、Ｇi（ｉ＝１〜６）はフレーム番号ｉのフレームをＧＢＮモードで送信したことを示す。Ａi，Ｎiは帰還路の情報を表し、Ａiはフレーム番号ｉに対するＡＣＫを、Ｎiはフレーム番号ｉに対するＮＡＫを表す。図中の○印は伝送路で誤りが生じなかったことを、×印は伝送路で誤りが生じたことを表す。図２では、すでに番号２と４と５のフレームが未確認の状態で、これらのフレームのＧＢＮモードによる回復過程が示されている。
【０００９】
まず、送信側では帰還路からＮ２（ｉ＝２）ｇ−１１を受信すると、ｉ＝２であるフレームＧ２ｇ−１２まで遡ってフレームを再送する。但し、番号ｉのフレームを再送してからのＲＴＴに相当するフレーム数（ＲＴＦ−１）の帰還路では、受信側で未確認な番号ｉに対する再送要求が受信されているので（再送した番号ｉに対するレスポンスがまだ届かないので）、これを無視する。この例ではＲＴＦ＝４であり、Ｎ２（ｉ＝２）ｇ−１１を受信した後、ＲＴＦ−１内に受信したＮ２ｇ−１３が無視させることになる。
【００１０】
受信側では、番号ｉ（ｉ＝２）が未確認のうちはＮ２（ＮＡＫ（ｉ），ｉ＝２）を帰還路に送信し続ける（ｇ−１４）とともに、それ以外の未確認番号が生じたらこの番号を記憶する（例えば、番号ｊの次に２回以上の受信誤りを検出した後、番号ｊ＋３を受信したら番号ｊ＋１とｊ＋２が未確認となる）。
【００１１】
受信側でＮＡＫにより再送されたフレームを正しく受信し、受信側に未確認番号がある場合、その番号を設定したＮＡＫを送信側へ送信する（Ｎ５ｇ−１５）。もっとも新しいｉ番号のフレームまで正しく受信し、再送要求するフレーム番号がない場合はＡＣＫ（ｉ）を帰還路に送信する。こうして受信側で未確認な番号ｉが受信できるまで、ＮＡＫ（ｉ）を帰還路に送信し続ける。
【００１２】
この時、例えば、ｎ回目の送信で帰還路情報が送信側で正しく受信されない確率は、１ブロックの帰還路情報の誤り率のほぼｎ乗になる。従って、番号を帰還路情報に付加することによって誤り率が高々数倍増大しても、帰還路へのＮＡＫ（ｉ）の送信回数が増えるほど誤り率を急激に下げることができる。帰還路情報に誤りが発生した時、送信側がフレームを送信してからレスポンスを受信するまでの時間（ＲＴＴ）が経過するが、帰還路情報が未確認番号を表示しているので同期外れになることはない。また、通信中チャネル切り換えが発生してＲＴＴが変化しても、同様の理由により同期外れにならない。このようにＮＡＫを正常なフレームを受信するまで送信することでＲＴＯを待つことなくスループットを向上させることができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特公平０７‐０７９３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記したＮＡＫによるパケット再送要求方式では、送信側で保持しているＲＴＦ（以降、送信ＲＴＦと称す）の値と現実のＲＴＴ（以降、現実ＲＴＴと称す）との間に差が生じると、次のような問題が発生する。以下、図３を参照して現実ＲＴＴと送信ＲＴＦの差による問題を示す。
【００１５】
図３（Ａ）は、現実ＲＴＴｇ−２１が送信ＲＴＦの時間ｇ−２０より小さい場合（現実ＲＴＴ＜（送信ＲＴＦ−１）×FT）の例であり、図３（Ｂ）は、現実ＲＴＴｇ−２５が送信ＲＴＦの時間ｇ−２０より大きい場合（現実ＲＴＴ＞（送信ＲＴＦ−１）×FT）の例である。なおＦＴ（Frame Time）は１フレーム送信するのにかかる時間である。図３（Ａ）の場合、ｇ−２３およびｇ−２４以外のＮＡＫ２（Ｎ２）が全て無視されるため、ＮＡＫ無視による再送遅延ｇ−２２が発生する。図３（Ｂ）の場合、無視すべきｇ−２７、ｇ−２８のＮＡＫを無視することが出来ず、ＮＡＫ誤認による誤再送ｇ−２６が発生する。このように、現実ＲＴＴと送信ＲＴＦとの間に差が生じると、遅延あるいは無駄な再送が発生しスループットが低下する。
【００１６】
また、可変長フレームの場合にも誤再送または再送遅延によりスループットが低下する。その理由は、送信ＲＴＦが送信側のＲＴＴに相当するフレーム数としているため、フレーム長が一定でない可変フレーム長の場合にはフレーム毎にＦＴが変わり（送信ＲＴＦ−１）×FTが変化する。このために、送信ＲＴＦと現実ＲＴＴとの間に差が発生し、同様にスループット低下の問題が生じてしまう。
【００１７】
そこで本発明の目的は、ラウンドトリップ遅延時間ＲＴＴの変化および可変長フレームに起因するスループット低下を回避でき、ＮＡＫを用いた高速再転送を達成できる通信装置および通信制御方法を提供することにある。
【課題を解決するための手段】
【００１８】
本発明による通信装置は、受信側の通信装置から再送要求されたシーケンス番号のデータユニットを再送信する機能を有する通信装置であって、送信すべきデータユニットに当該データユニットのシーケンス番号を有するヘッダを付加したプロトコルデータユニット（以下、ＰＤＵという。）を格納する送信バッファ手段と、前記ＰＤＵのヘッダに送信側トランザクション識別子を付加して前記受信側の通信装置へ送信する送信手段と、前記送信したＰＤＵに対して前記受信側の通信装置から異常受信応答（ＮＡＫ）を受信したとき、当該ＮＡＫに前記シーケンス番号と前記送信側トランザクション識別子とが含まれているならば、前記送信側トランザクション識別子を更新したＰＤＵを前記受信側の通信装置へ再送信し、前記送信側トランザクション識別子を更新した後で前記受信側の通信装置から受信したＮＡＫに前記シーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する制御手段と、を有することを特徴とする。
【００１９】
本発明による通信制御方法は、受信側の通信装置から再送要求されたシーケンス番号のデータユニットを再送信する機能を有する通信装置における通信制御方法であって、送信すべきデータユニットに当該データユニットのシーケンス番号を有するヘッダを付加したプロトコルデータユニット（以下、ＰＤＵという。）を送信バッファ手段に格納し、送信手段が前記ＰＤＵのヘッダに送信側トランザクション識別子を付加して前記受信側の通信装置へ送信し、前記送信したＰＤＵに対して前記受信側の通信装置から異常受信応答（ＮＡＫ）を受信したとき、当該ＮＡＫに前記シーケンス番号と前記送信側トランザクション識別子とが含まれているならば、前記送信側トランザクション識別子を更新したＰＤＵを前記受信側の通信装置へ再送信し、前記送信側トランザクション識別子を更新した後で前記受信側の通信装置から受信したＮＡＫに前記シーケンス番号と更新する前の送信側トランザクション識別子とが含まれているならば当該ＮＡＫを無視する、ことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ラウンドトリップ遅延時間ＲＴＴの変化および可変長フレームに起因するスループット低下を回避できＮＡＫを用いた高速再転送を達成できる。
【図面の簡単な説明】
【００２１】
【図１】図１はＴＣＰにおける高速再転送のシーケンス図である。
【図２】図２は特許文献１におけるＮＡＫを使用した再送のシーケンス図である。
【図３】図３は背景技術での誤再送および再送遅延を説明するためのシーケンス図である。
【図４】図４は本発明の第１実施形態による通信装置を適用した端末装置のブロック構成図である。
【図５】図５は第１実施形態における通信制御動作を説明するためおシーケンス図である。
【図６】図６は、図５における送信側処理Ａ−１を説明するためのフレーム構成を示すファーマット図である。
【図７】図７は、図５における受信側処理Ｂ−１を説明するためのフレーム構成を示すファーマット図である。
【図８】図８は、図５における送信側処理Ａ−３を説明するためのフレーム構成を示すファーマット図である。
【図９】図９は、図５における受信側処理Ｂ−２を説明するためのフレーム構成およびＮＡＫテーブルの構成を示すファーマット図である。
【図１０】図１０は、図５における受信側処理Ｂ−６を説明するためのフレーム構成およびＮＡＫテーブルの構成を示すファーマット図である。
【図１１】図１１は、図５における送信側処理Ａ−９を説明するためのフレーム構成を示すファーマット図である。
【図１２】図１２は、図４におけるＡＣＫ／ＮＡＫ生成処理部１０３の処理動作を示すフローチャートである。
【図１３】図１３は、図４におけるトランザクション識別子付与部１１４の動作を示したフローチャートである。
【図１４】図１４は、図４におけるフレーム識別部１１１の処理動作を示したフローチャートである。
【図１５】図１５（Ａ）は送信側端末１０におけるフレーム識別部が保持する各変数の値の一例を示した模式図であり、図１５（Ｂ）は受信側端末２０におけるフレーム識別部が保持する各変数の値の一例を示した模式図である。
【図１６】図１６は、図４におけるフレーム識別部１１１のＮＡＫテーブル登録処理の一例を示した模式図である。
【図１７】図１７は、図５においてシーケンス番号が一巡した場合のＸＩＤ更新有無を示したシーケンス図である。
【図１８】図１８は本発明の第２実施形態による通信装置を適用した端末装置のブロック構成図である。
【図１９】図１９は第２実施形態における通信制御動作を説明するためおシーケンス図である。
【図２０】図２０は、図１９に示す処理Ｃ−１およびＣ−２を説明するためのフレームフォーマット図である。
【図２１】図２１は、第２実施形態におけるＡＣＫ／ＮＡＫ生成処理部２０３の処理動作を示すフローチャートである。
【発明を実施するための形態】
【００２２】
本発明によれば、送信側端末が送信フレームおよびＡＣＫ／ＮＡＫフレームのヘッダにシーケンス番号に加えてトランザクション識別子を付加し、受信側の端末がＮＡＫで要求した再送フレーム以外のフレームを受信する度に、同じ内容のＮＡＫを送信側へ送信する。送信側端末は、受信側から受信したＮＡＫフレームのトランザクション識別子から当該ＮＡＫに対して再送機能を適用すべきか否かを判断し、適用済みのＮＡＫであれば当該ＮＡＫを廃棄する。再送機能を適用する場合には、トランザクション識別子の更新を行い、ＮＡＫのシーケンス番号から特定される再送フレームのヘッダに更新されたトランザクション識別子を付与して受信側端末へ送信する。このようにして送信側端末は、ＲＴＴを使用することなくＮＡＫの識別が可能となり、フレーム誤り／ロスから回復することができる。以下図面を参照しながら本発明の実施形態について詳細に説明する。
【００２３】
１．第１実施形態
１．１）構成
図４に示すように、本発明の第１実施形態による通信装置は、端末１０および２０が具備するネットワークインタフェースカードＮＩＣ（Network Interface Card）に適用されている。端末１０と端末２０とはそれぞれのＮＩＣを通して回線１および回線２により相互に接続されているものとする。ここでは、回線１を通して端末１０から端末２０へ信号が送信され、回線２を通して端末２０から端末１０へ信号が送信される。ＮＩＣとしては一般的によく知られているイーサネットＮＩＣ（イーサネット(Ethernet)は登録商標、以下同じ。）を例示するので、以下、パケットはフレームとして説明される。また端末１０と端末２０とは同じ内部構成を有するので、以下、端末１０の構成について説明する。
【００２４】
端末１０に設けられたＮＩＣ１２は他ブロック１１に接続され、ＮＩＣ１２を通して端末２０と回線１および回線２で接続される。他ブロック１１はＣＰＵ(Central Processing Unit)等の上位ブロックであり、外部へデータを送信するためにデータをＮＩＣ１２へ出力し、外部からのデータをＮＩＣ１２経由で入力する。
【００２５】
本実施形態を適用したＮＩＣ１２は、内部インタフェース部１００、ヘッダ付与部１０１、送信バッファ部１０２、ＡＣＫ／ＮＡＫ生成部１０３、トランザクション識別子付与部１１４、ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５、送信部１０６、受信部１０８、ヘッダ誤り訂正部１０９、フレーム誤り検出部１１０、フレーム識別部１１１、送信バッファ制御部１１２、および、受信バッファ部１１３を有する。
【００２６】
内部インタフェース部１００は、他ブロック１１から送信用のデータを入力し、ヘッダ付与部１０１へ出力する。また、読み出し可能なデータが受信バッファ１１３にある場合、受信バッファ１１３からデータを入力し他ブロック１１へ出力する。
【００２７】
ヘッダ付与部１０１は内部インタフェース部１００からデータを入力し、シーケンス番号を含むフレームヘッダを付与したデータをフレームとして送信バッファ１０２へ出力する。また、送信バッファ１０２からのバッファ空き情報を入手し、空きサイズが閾値を超えた場合、内部インタフェース部１００へデータ出力の停止を要求する。なお、ヘッダには、再送に使用するタイプ、フラグ、シーケンス番号以外にあて先アドレス、送信元アドレス等のフレームの送信に必要な情報が付加される。
【００２８】
送信バッファ部１０２は、ヘッダ付与部１０１、ＡＣＫ／ＮＡＫ生成部１０３および送信バッファ制御部１１２に接続する。送信バッファ部１０２は、ヘッダ付与部１０１から入力したフレームをフレームに付与されているシーケンス番号に従い保存する。また、送信バッファ部１０２は、読出し可能なフレームが存在する場合には即読出してＡＣＫ／ＮＡＫ生成部１０３へ出力し、ＡＣＫ／ＮＡＫ生成部１０３から読出し停止の指示がある場合にはフレームの読出しを停止する。さらに、送信バッファ制御部１１２からの再送信指示に従い、当該再送信フレームを再度読出しＡＣＫ／ＮＡＫ生成部１０３へ出力する。また、送信バッファ部１０２は、送信バッファ制御部１１２からの指示により、送信バッファ上にあるフレームの削除を行う。
【００２９】
ＡＣＫ／ＮＡＫ生成部１０３は、送信バッファ部１０２、トランザクション識別子付与部１１４およびフレーム識別部１１１に接続する。ＡＣＫ／ＮＡＫ生成部１０３は、フレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示があると、送信バッファ部１０２へフレームの読出し停止を指示し、フレーム識別部１１１からのＡＣＫ／ＮＡＫ生成指示に従いＡＣＫまたはＮＡＫを生成する。フレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示がない場合、送信バッファ部１０２へフレームの読出し停止を解除し、送信バッファ部１０２から入力したフレームをトランザクション識別子付与部１１４へ出力する。なお、ＡＣＫ／ＮＡＫ生成指示には、次に受信すべきフレームのシーケンス番号およびそのフレームに付与されていたトランザクション識別子の情報が含まれ、生成するＡＣＫ／ＮＡＫに、次に受信すべきフレームのシーケンス番号とトランザクション識別子とを付与する。
【００３０】
トランザクション識別子付与部１１４は、ＡＣＫ／ＮＡＫ生成部１０３、ヘッダ誤り訂正符号付与部１０４およびフレーム識別部１１１に接続する。トランザクション識別子付与部１１４は、フレーム識別部１１１から入力した再送／更新指示により、ＡＣＫ／ＮＡＫ生成部１０３から入力したフレームが再送フレームであるか否かを知る。再送フレームである場合、トランザクション識別子を更新・付与し当該フレームをヘッダ誤り訂正符号付与部１０４へ出力する。再送フレームでない場合、現在保持しているトランザクション識別子を付与し当該入力フレームをヘッダ誤り訂正符号付与部１０４へ出力する。なお、再送／更新指示には、ＮＡＫに設定されている再送を要求するフレームのシーケンス番号およびそのフレームに付与されていたトランザクション識別子の情報が含まれる。
【００３１】
ヘッダ誤り訂正符号付与部１０４は、トランザクション識別子付与部１１４とフレーム誤り検出符号付与部１０５とに接続する。ヘッダ誤り訂正符号付与部１０４は、トランザクション識別子付与部１１４からフレームを入力すると、当該入力フレームのヘッダ部に対する誤り訂正符号を計算し、ヘッダの一部として当該フレームに付与する。また、ヘッダ誤り訂正符号付与部１０４は、ヘッダ誤り訂正符号を付与したフレームをフレーム誤り検出符号付与部１０５へ出力する。ヘッダ誤り訂正符号としては、一般的によく用いられるハミング、ＲＳ、ＢＣＨ符号などを使用する。
【００３２】
フレーム誤り検出符号付与部１０５は、ヘッダ誤り訂正符号付与部１０４と送信部１０６とに接続する。フレーム誤り検出符号付与部１０５は、ヘッダ誤り訂正符号付与部１０４からフレームを入力すると、当該入力フレームに対する誤り検出符号を計算し、当該フレームに付与する。また、フレーム誤り検出符号付与部１０５は、フレーム誤り検出符号を付与したフレームを送信部１０６へ出力する。フレームの誤り検出としては、一般的によく用いられるＣＲＣ符号などを使用する。
【００３３】
送信部１０６はフレーム誤り検出符号付与部１０５に接続し、回線１を通して端末２０に接続する。送信部１０６はフレーム誤り検出符号付与部１０５からフレームを入力し、フレームの符号化、スクランブル、シリアライズを行い、回線１を介して送信する。送信部１０６はイーサネットでいうＰＣＳ、ＰＭＡ、ＰＭＤ相当の送信機能を持つ。
【００３４】
受信部１０８はヘッダ誤り訂正部１０９に接続し、回線２を通して端末２０に接続する。受信部１０８は、回線２を介して受信した信号をデシリアライズ、デスクランブル、復号化し、フレームとしてヘッダ誤り訂正部１０９へ出力する。受信部１０８はイーサネットでいうＰＣＳ、ＰＭＡ、ＰＭＤ相当の受信機能を持つ。
【００３５】
ヘッダ誤り訂正部１０９は受信部１０８とフレーム誤り検出部１１０とに接続する。ヘッダ誤り訂正部１０９は、受信部１０８からフレームを入力すると、当該入力フレームのヘッダ部に対する誤り訂正を行い、訂正結果と当該ヘッダ誤り訂正済みフレームをフレーム誤り検出部１１０へ出力する。
【００３６】
フレーム誤り検出部１１０はヘッダ誤り訂正部１０９とフレーム識別部１１１とに接続する。フレーム誤り検出部１１０は、ヘッダ誤り訂正部１０９からフレームを入力すると、当該フレームの誤り検出を行い、誤り検出結果と、ヘッダ誤り訂正結果と、当該フレームおよび当該フレーム長とをフレーム識別部１１１へ出力する。
【００３７】
フレーム識別部１１１は、フレーム誤り検出部１１０、送信バッファ制御部１１２、ＡＣＫ／ＮＡＫ生成部１０３、トランザクション識別子付与部１１４および受信バッファ部１１３に接続する。フレーム識別部１１１は、フレーム誤り検出部１１０からヘッダ誤り訂正結果、フレーム誤り検出結果、フレームおよびフレーム長を入力すると、ヘッダ誤り訂正結果、フレーム誤り検出結果およびフレームヘッダの内容に応じて処理を行う。
【００３８】
具体的には、受信フレームがＡＣＫ／ＮＡＫの場合、当該フレームヘッダに設定されているトランザクション識別子から適用すべきＡＣＫ／ＮＡＫを判断し、適用する場合、再送／更新指示を送信バッファ制御部１１２およびトランザクション識別子付与部１１４へ出力する。受信フレームがＡＣＫ／ＮＡＫフレーム以外の場合、当該フレームヘッダに設定されているシーケンス番号とトランザクション識別子を抽出し、当該フレームのフレーム誤り検出結果が「誤り有」の場合には、ＮＡＫ生成指示を抽出したシーケンス番号とトランザクション識別子と一緒にＡＣＫ／ＮＡＫ生成部１０３へ出力し、当該フレームを廃棄する。フレーム誤り検出結果が「誤り無し」の場合、抽出したシーケンス番号が次に受信すべきシリアル番号であるか比較し、異なる場合、ＮＡＫ生成指示を次に受信すべきシリアル番号と抽出したトランザクション識別子と一緒に、ＡＣＫ／ＮＡＫ生成部１０３へ出力し、受信バッファ部１１３へ出力する。抽出したシーケンス番号が次に受信すべきシリアル番号と一致する場合、ＡＣＫ生成指示を、抽出したシーケンス番号にフレーム長を加算した番号と抽出したトランザクション識別子とを一緒に、ＡＣＫ／ＮＡＫ生成部１０３へ出力し、また当該フレームを受信バッファ部１１３へ出力する。
【００３９】
送信バッファ制御部１１２は、フレーム識別部１１１と送信バッファ部１０２とに接続する。送信バッファ制御部１１２は、再送／更新指示をフレーム識別部１１１から入力すると、その内容が再送指示である場合には送信バッファ１０２へシーケンス番号と再送指示を出力する。更新指示の場合には、送信バッファ１０２内の当該フレームを削除するため、送信バッファ１０２へシーケンス番号と更新指示を出力する。
【００４０】
受信バッファ部１１３はフレーム識別部１１１と受信バッファ部１１３とに接続する。受信バッファ部１１３は、フレーム識別部１１１からフレームを入力すると、当該フレームをシーケンス番号に従って保存する。また、フレーム識別部１１１からフレームの廃棄指示があると当該フレームを廃棄する。さらに、受信バッファ部１１３は、読出し可能なフレームが存在する場合には内部インタフェース部１００へ通知し、内部インタフェース部１００からのフレーム読出し指示に従いフレームを読出し内部インタフェース部１００へ出力する。なお、フレームの読出しはシーケンス番号順に行われる。
【００４１】
以上、端末１０におけるＮＩＣ１２の構成を述べたが、本発明に関連しない構成要素は省略されている。上記構成以外にも、たとえばコネクションの確立手段、再送信タイマ手段なども当然有している。
【００４２】
なお、ＡＣＫ／ＮＡＫ生成部１０３、フレーム識別部１１１、送信バッファ制御部１１２およびトランザクション識別子付与部１１４の機能は、ＮＩＣ１２の制御手段としてプログラム制御プロセッサ上で図示しないメモリに格納されたプログラムを実行することにより実現することも可能である。
【００４３】
１．２）動作
次に、図４〜図１４を参照しながら、本実施形態による通信装置の動作について説明する。ここでは、端末１０から端末２０へデータの転送を行うものとして説明する。
【００４４】
図５は誤り発生時の端末間伝送シーケンスを示しているが、ここでは説明の便宜上、ＡＣＫを受信せずに送信できる受信ウインドウサイズを４フレーム分とし、フレーム長を１とし、再送回数を２回までとしている。また、図５では、送信フレームＦ（５）０および再送信フレームＦ（５）１でフレーム誤り／ロスが発生し、またＮＡＫフレームＮ（５）１でフレームロスが発生し、これらフレーム誤り／ロスから回復するまでのシーケンスを示している。図中の“Ｆ（＊）＃”は送信／再送信フレームを表し、“Ｎ（＊）＃”および“Ａ（＊）＃”はＮＡＫおよびＡＣＫをそれぞれ表す。これらの記号において“＊”はフレームに付与されるシーケンス番号であり、“＃”は当該フレームのトランザクション識別子を表す。なお、本実施形態ではシーケンス番号の初期値を‘５’、トランザクション識別子の初期値‘０’として説明する。以下、図５に示す送信側端末１０の処理Ａ−１〜Ａ−１０および受信側端末２０の処理Ｂ−１〜Ｂ−６のうち代表的な処理を図６〜図１１を参照しながら順を追って説明する。
【００４５】
１．２．１）送信側処理Ａ−１
まず、端末１０のＮＩＣ１２が他ブロック１１から送信データを入力して送信部１０６から送信フレームＦ（５）０を端末２０へ送信するまでの処理動作Ａ−１を説明する。
【００４６】
図６（Ａ）はＮＩＣ１２が他ブロック１１から入力する送信データを示し、ヘッダ情報ｇ−４０はデータｇ−４１を送信するのに必要な情報であり、ここではイーサネットを例示しているので、宛先アドレス、送信元アドレスおよびＴｙｐｅ／ＬｅｎｇｔｈなどＭＡＣヘッダ情報である。
【００４７】
＜ヘッダ付与＞
端末１０と端末２０との間でコネクションが確立し、他ブロック１１から図６（Ａ）に示す送信データが内部インタフェース部１００に与えられると、内部インタフェース部１００はヘッダ付与部１０１からの送信データ受け取り停止指示が有効でない限り、送信データをヘッダ付与部１０１へ出力する。なお、ヘッダ付与部１０１から送信データ受け取り停止指示が有効である場合、内部インタフェース部１００は送信データの停止要求を他ブロック１１へ出力する。送信データがヘッダ付与部１０１に与えられると、ヘッダ付与部１０１は、送信バッファ部１０２からフレーム出力停止指示が無い限り、送信データに再送ヘッダｇ−４２を付与する（図６（Ｂ）参照）。送信バッファ部１０２のフレーム出力停止指示が有効であれば、ヘッダ付与部１０１は送信データ受け取り停止指示を内部インタフェース部１００へ出力する。
【００４８】
図６（Ｂ）に示すように、再送ヘッダｇ−４２はタイプ、フラグおよびシーケンス番号で構成される。タイプは再送ヘッダを識別するのに使用するため任意の値（イーサネットでは２バイト分）を設定する。フラグは、ＳＮ、ＮＡＫ、ＡＣＫ、ＲＴの４ビットで構成し、フレームの識別に使用する。初回フレーム送信時は、ＳＮフラグに‘１’を設定し、再送時のフレームにはＲＴに‘１’を設定する。また、受信側端末２０でＡＣＫ、ＮＡＫを送信する際に、各々のビットに‘１’を設定する。
【００４９】
なお、図５に示す処理Ａ−１の時点で、ヘッダ付与部１０１は、ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝０を設定する。シーケンス番号は、一般的な再送制御では、送信フレームを特定するために使用されるが、本実施形態では、その他に送信バッファにおけるフレームの先頭アドレスをも示す。すなわち、当該フレームのシーケンス番号と当該フレーム長の和が次フレームのシーケンス番号であると共に、送信バッファ部１０２へフレームを保存する際の先頭アドレスともなる。このシーケンス番号をもとに送信バッファおよび受信バッファの読出しおよび書き込み制御が行われる。
【００５０】
ヘッダ付与部１０１により再送ヘッダｇ−４２が付与されたフレームは送信バッファ部１０２へ出力される。
【００５１】
＜送信バッファ保存＞
図６（Ｃ）は送信バッファ部１０２に保存されたフレームと当該フレームの先頭アドレスおよびシーケンス番号の関係を示した図である。図中のＳＲ、ｓｒｄ、ｓｒｃ、ＳＷ、ｓｗｒは、送信バッファ部１０２においてフレームの保存・読出し制御に使用されるアドレスである。なお、ｓｒｃは通常ｓｒｄと一緒にカウントされ、初回読出しが終了したアドレスを示す。ＳＲはＡＣＫを受信していないフレームの先頭アドレス、ｓｒｄは送信バッファ部１０２からフレームを読出す間のアドレス、ＳＷは次に送信バッファ部１０２に保存されるフレームの先頭アドレス、ｓｗｒは送信バッファ部１０２にフレームを書き込みする間のアドレスである。この時点での各値は、ＳＲ＝３ｄ−３、ｓｒｄ＝ｓｒｃ＝５ｄ−５、ＳＷ＝６ｄ−６、ｓｗｒ＝７ｄ−７である。また図６（Ｂ）のフレームに付与されるシーケンス番号ｇ−４８＝５ｄ−５である。
【００５２】
図６（Ｂ）に示すフレームＦ（５）ｇ−４９が与えられると、送信バッファ部１０２は、図６（Ｂ）に示す再送ヘッダｇ−４２のシーケンス番号ｇ−４８（ここでは値‘５’）に従って、図６（Ｃ）に示すようにフレームＦ（５）ｇ−４９をアドレスｄ−５へ保存する。つまり、シーケンス番号ｇ−４８の値とバッファ内アドレスｄ−５とが等しい値となる。なお、フレームの書き込み中はｓｗｒを使用し、１フレーム分の書き込みが終了する毎にＳＷにｓｗｒを代入することで、バッファの書き込みアドレスを更新していく。フレームＦ（５）の書き込みが終了すると、ＳＷには値‘６’が設定される。送信バッファ部１０２は、読出し可能なフレームが存在する場合、当該フレームの読出しを行い、ＡＣＫ／ＮＡＫ生成部１０３へ出力する。図６（Ｃ）の場合、ｓｒｄ（値５ｄ−５）＜ＳＷ（値６ｄ−６）であるため、読出し可能なフレームと判断され、ｓｒｄ（値５ｄ−５）〜ＳＷ（値６ｄ−６）までのフレームが自動的に読み出されることになる。なお、ｓｒｄ＝ＳＷの条件の場合、読出し可能なフレームはないと判断する。ＡＣＫ／ＮＡＫ生成部１０３から読出し停止指示が与えられると、送信バッファ部１０２は読出し停止指示が解除されるまでフレームの読出しを停止する。
【００５３】
＜ＡＣＫ／ＮＡＫ生成＞
フレームＦ（５）ｇ−４９が与えられると、ＡＣＫ／ＮＡＫ生成部１０３は、フレーム識別部１１１から、ＡＣＫ／ＮＡＫ生成指示がない限り、当該フレームをトランザクション識別子付与部１１４へ出力する（図１２のステップＳ５０、Ｓ５１、Ｓ５６を参照）。ただし、ここでは図５に示すような端末１０から端末２０への片方向通信であるから、端末１０のＡＣＫ／ＮＡＫ生成部１０３がＡＣＫ／ＮＡＫを生成することはない。
【００５４】
＜トランザクション識別子の付与＞
図６（Ｄ）に示すフレームＦ（５）ｇ−４９を送信バッファ部１０２からＡＣＫ／ＮＡＫ生成部１０３を通して入力したトランザクション識別子付与部１１４はトランザクション識別子ＸＩＤの付与を行い、図６（Ｅ）に示すフレームＦ（５）ｇ−５０を出力する。以下、トランザクション識別子付与部１１４の動作を図１３を参照しながら説明する。
【００５５】
図１３において、フレームＦ（５）ｇ−４９がトランザクション識別子付与部１１４に与えられると（ステップＳ７０の「有」）、トランザクション識別子付与部１１４は、フレームＦ（５）ｇ−４９の初回フレーム送信を示すＳＮフラグが‘１’であるか否かをチェックする（ステップＳ７１）。
【００５６】
この時点ではフレームＦ（５）ｇ−４９のＳＮフラグ＝１であるから（ステップＳ７１の「一致」）、トランザクション識別子付与部１１４はフレーム識別部１１１から再送指示があるか否かをチェックする（ステップＳ７２）。
【００５７】
この時点でフレーム識別部１１１から再送指示はないので（ステップ７２の「無」）、トランザクション識別子付与部１１４は当該フレームＦ（５）ｇ−４９のシーケンス番号（ＳＥＱ）と一つ前のフレームに設定されていたシーケンス番号（ＰＲＥ＿ＳＥＱ）とを比較する（ステップＳ７８）。ＰＲＥ＿ＳＥＱ＜ＳＥＱを満たさない場合（ステップＳ７８の「偽」）、図６（Ｃ）においてシーケンス番号が一巡しているため、現在のトランザクション識別子ＸＩＤを更新する（ステップＳ７４）。トランザクション識別子ＸＩＤの更新は、後述する受信側端末２０におけるフレーム識別部１１１の処理ステップＳ０７（図１４参照）で、当該フレームが未受信であるかどうかを判断する際に必要となる。
【００５８】
この時点で図６（Ｃ）で示すようにＰＲＥ＿ＳＥＱ＝４、ＳＥＱ＝５であるから、トランザクション識別子付与部１１４は、図６（Ｅ）のｇ−５１で示すように、トランザクション識別子ＸＩＤ＝０を当該フレームへ付与し（ステップS７５）、またＰＲＥ＿ＳＥＱの値を更新する（ステップＳ７６）。こうしてトランザクション識別子ＸＩＤ＝０を付与したフレームＦ（５）ｇ−５０（すなわち、Ｆ（５）０）をヘッダ誤り訂正符号付与部１０４へ出力する（ステップＳ７７）。
【００５９】
なお、後述するように、図５におけるＡ−４処理においてフレーム識別部１１１から“再送指示、ＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ”を含む再送指示が与えられた場合には（ステップＳ７２の「有」）、トランザクション識別子付与部１１４はフレームＦ（５）に設定されている再送を示すＲＴフラグ＝‘１’であり、且つ当該フレームの“シーケンス番号”とＲＣＶ＿ＳＥＱが一致する場合には（ステップＳ７３の「真」）、トランザクション識別子ＸＩＤをＲＣＶ＿ＸＩＤに１を加算した値に更新して（ステップＳ７４）、当該フレームに付与し（ステップＳ７５）、ヘッダ誤り訂正符号付与部１０４へ出力する（ステップＳ７７）。ステップＳ７３において一致しない場合は（ステップＳ７３の「偽」）、フレーム識別部１１１で保持しているＸＩＤを当該フレームのトランザクション識別子ＸＩＤとして付与する（ステップＳ７５）。以上のステップＳ７３〜Ｓ７５については、Ａ−４処理のところで改めて説明する。
【００６０】
＜誤り訂正、検出＞
図４および図６に戻って、こうして図６（Ｅ）に示すフレームＦ（５）ｇ−５０が与えられると、ヘッダ誤り訂正符号付与部１０４は図６（Ｅ）に示すフレームＦ（５）ｇ−５０の宛先アドレス〜Ｔｙｐｅ／Ｌｅｎｇｔｈ領域前までの領域に対する誤り訂正符号を計算し、Ｔｙｐｅ／Ｌｅｎｇｔｈ領域の前にその計算結果を付与した後（図６（Ｆ）のｇ−５３）、当該フレームをフレーム誤り検出符号付与部１０５へ出力する。
【００６１】
図６（Ｆ）に示すフレームＦ（５）ｇ−５２が与えられると、フレーム誤り検出符号付与部１０５は、図６（Ｆ）に示すフレームＦ（５）ｇ−５２の宛先アドレス〜データまでの領域に対する誤り検出符号を計算し、フレームの末尾に付与した後（図６（Ｇ）のｇ−５５）、当該フレームを送信部１０６へ出力する。
【００６２】
＜送信＞
こうして送信部１０６は、図６（Ｇ）に示すフレームＦ（５）ｇ−５４（すなわち、図５のＦ（５）０）を符号化、スクランブリング、シリアライズし、回線１を介して端末２０へ送信する。
【００６３】
以上、送信側では、上記の動作を図５における処理Ａ−２、Ａ−５、Ａ−６、Ａ−８、Ａ−１０で同様に行う。なお、処理Ａ−６において、ＡＣＫを受信することなく送信できるウインドウサイズ（値４）に達するため、処理受信側のＢ−５のＮＡＫ（Ｎ（５）１）を受信するまでフレーム送信を停止する。
【００６４】
１．２．２）受信側処理Ｂ−１
次に、図５の受信側処理Ｂ−１について説明するが、上述したように端末２０に設けられたＮＩＣは図４に示す送信側端末１０のＮＩＣ１２と同じ内部構成を有するので、以下、図４のＮＩＣ１２を参照しながら、受信側処理Ｂ−１、すなわちデータ部に誤りがあるフレームＦ（５）０を受信してからＮＡＫ（Ｎ（５）０）を送信するまでの処理動作を説明する。
【００６５】
＜受信＞
図７（Ａ）に示すように、受信側端末２０のＮＩＣにおける受信部１０８は受信フレームＦ（５）０を受信すると、受信フレームデータをデシリアライズ、デスクランブリング、復号化し、ヘッダ誤り訂正部１０９へ出力する。
【００６６】
＜誤り訂正、検出＞
受信部１０８からフレームＦ（５）０を入力すると、ヘッダ誤り訂正部１０９は宛先アドレスからヘッダ誤り訂正符号領域前までのヘッダ誤りを当該フレームに付与されているヘッダ誤り訂正符号を使用して訂正する。また、ヘッダ誤り訂正部１０９は訂正済み当該フレームと訂正完了／訂正未完了示す誤り訂正結果をフレーム誤り検出部１１０へ出力する。
【００６７】
フレーム誤り検出部１１０は、ヘッダ誤り訂正済みフレームＦ（５）０と訂正結果を入力すると、宛先アドレスからデータまでのフレーム誤りを当該フレームに付与されているフレーム誤り検出符号を使用して検出する。さらに、フレーム誤り検出部１１０は当該フレーム長をカウントする。ただし、フレーム長のカウントは、送信バッファと受信バッファのアドレスの整合をとるため、当該フレームに含まれるＸＩＤとフレーム誤り検出符号とを除いて行う。そして、フレーム誤り検出部１１０は、図７（Ｂ）のｇ−６０、ｇ−６１およびｇ−６２に示すように、誤り訂正結果、誤り検出結果およびフレーム長ＬＥＮを当該フレームに含めてフレーム識別部１１１へ出力する。
【００６８】
＜フレーム識別＞
図１４において、ステップS３０〜S３４は送信側におけるフレーム識別部１１１の処理フロー、ステップS０３〜Ｓ２３は受信側におけるフレーム識別部１１１の処理フローである。ステップＳ００〜Ｓ０２は送受信両側で行われる処理である。
【００６９】
フレーム識別部１１１は、フレームの識別、管理を行うため、ＮＡＫテーブルと以下の変数を使用する。
【００７０】
・ＮＥＸＴ＿ＳＥＱ：受信側の変数であり、次に受信すべきシーケンス番号である。
【００７１】
・ＮＨＥＤ＿ＳＥＱ：受信側の変数であり、ＮＡＫテーブル上に登録された受信済み先頭フレームのシーケンス番号である。
【００７２】
・ＮＮＡＫ＿ＳＥＱ：受信側の変数であり、ＮＡＫテーブル上に登録されたＮＥＸＴ＿ＳＥＱの次に要求すべきフレームのシーケンス番号である。
【００７３】
・ＲＥＧ＿ＳＸＩＤ：送信側の変数であり、受信したフレームに付与されているトランザクション識別子と比較することで、送信側で適用すべきＡＣＫ／ＮＡＫを判定する際に使用する。
【００７４】
・ＲＥＧ＿ＲＸＩＤ：受信側の変数であり、受信したフレームに付与されているトランザクション識別子と比較することで、受信側で受信済みフレームであるかを判定する際に使用する。
【００７５】
・ＲＣＶ＿ＳＥＱ：当該受信フレームに含まれるシーケンス番号である。
【００７６】
・ＲＣＶ＿ＸＩＤ：当該受信フレームに含まれるトランザクション識別子である。
【００７７】
・ＬＥＮ：受信した当該フレームのフレーム長である。本実施形態は、説明を容易にするためＬＥＮ＝１としているが、実際には、ＭＡＣのフレーム長である６４バイト〜１５１８バイト設定される。
【００７８】
ＮＡＫテーブルは、受信側で、ＮＥＸＴ＿ＳＥＱ以降のシーケンス番号を含むフレームを受信バッファ部１１３上で管理するために使用される。受信側では、このＮＡＫテーブルにより既受信フレーム／未受信フレームを判断し、ＮＥＸＴ＿ＳＥＱの次に受信すべきシーケンス番号を管理する。
【００７９】
図１５は、送信側端末１０および受信側端末２０にそれぞれ設けられたフレーム識別部１１１における図５の送信側処理Ａ−１〜Ａ−１０と受信側処理Ｂ−１〜Ｂ−６における上記各変数の値と受信フレームおよび送信フレームとを示している。図５の処理Ｂ−１時点での各変数は、図１５（Ａ）のＢ−１よりＮＥＸＴ＿ＳＥＱ＝５、ＲＥＧ＿ＲＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０であり、その他の値はＮＵＬＬである。
【００８０】
図１４に戻って、フレーム識別部１１１は、図７（Ｂ）に示すフレームを入力すると、ヘッダ誤り訂正が完了しているか否かをチェックする（ステップＳ００）。ヘッダ誤りが完了していない場合、当該フレームを削除する（ステップＳ０１）。ヘッダ誤り訂正が完了している場合、フレーム識別部１１１は当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。
【００８１】
図７（Ｂ）に示すフレームＦ（５）０のフラグには、ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝０が設定されているため、受信したフレームが初回送信フレームであると識別できる。なお、フラグのＡＣＫまたはＮＡＫに１が設定されている場合、当該フレームがＡＣＫ／ＮＡＫであると判断する。
【００８２】
続いて、当該フレームに設定されているシーケンス番号ＲＣＶ＿ＳＥＱが、ＮＥＸＴ＿ＳＥＱの値と一致するか確認を行う（ステップＳ０３）。図５の処理Ｂ−１において、ＲＣＶ＿ＳＥＱとＮＥＸＴ＿ＳＥＱとは一致するため、次に、フレーム識別部１１１は、ＲＥＧ＿ＲＸＩＤの値を更新し（ステップＳ２１）、当該フレームに誤りが無いか否かをチェックする（ステップＳ０４）。図５の処理Ｂ−１では、フレームＦ（５）０に誤りが含まれているため、フレーム識別部１１１は、（ＮＥＸＴ＿ＳＥＱ）のシーケンス番号を含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力し（ステップＳ０５）、当該フレームを廃棄する（ステップＳ０６）。
【００８３】
＜ＡＣＫ／ＮＡＫ生成＞
ＡＣＫ／ＮＡＫ生成部１０３は、図７（Ｃ）に示すＮＥＸＴ＿ＳＥＱのシーケンス番号を含むＮＡＫ生成指示を入力すると、ＮＡＫ生成指示に従いＮＡＫを生成し、トランザクション識別子付与部１１４へ出力する（図１２におけるステップＳ５０、Ｓ５２、Ｓ５７参照）。このときフレームに付与されるフラグはＳＮ＝０、ＡＣＫ＝０、ＮＡＫ＝１、ＲＴ＝０であり、シーケンス番号には‘５’が、ＸＩＤには‘０’がそれぞれ設定される。なお、送信バッファ部１０２からの読出しフレームが有る場合、ＡＣＫ／ＮＡＫ生成部１０３は読出し停止指示を送信バッファ部１０２へ出力し、フレーム識別部１１１からのＡＣＫ／ＮＡＫ生成指示に従い、ＡＣＫまたはＮＡＫを生成してトランザクション識別子付与部１１４へ出力する（図１２のステップＳ５０、Ｓ５１、Ｓ５３、Ｓ５４、Ｓ５５、Ｓ５６参照）。
【００８４】
＜トランザクション識別子付与＞
図１３に示すように、トランザクション識別子付与部１１４は、図７（Ｄ）に示すＮＡＫ（Ｎ（５）０）を入力すると（ステップＳ７０）、ＮＡＫ（Ｎ（５）０）のＳＮフラグが１であるかをチェックする（ステップＳ７１）。ＮＡＫ（Ｎ（５）０）のＳＮフラグは０であることから、送信／再送信フレームでないと判断し、トランザクション識別子付与部１１４は当該ＮＡＫをヘッダ誤り訂正符号付与部１０４へ出力する（ステップＳ７７）。
【００８５】
＜誤り訂正、検出＞
ヘッダ誤り訂正符号付与部１０４は、トランザクション識別子付与部１１４からＮＡＫ（Ｎ（５）０）を入力すると、図７（Ｄ）に示すＮＡＫ（Ｎ（５）０）の宛先アドレス〜Ｔｙｐｅ／Ｌｅｎｇｔｈ領域前までの領域に対する誤り訂正符号を計算し、Ｔｙｐｅ／Ｌｅｎｇｔｈ領域の前にその計算結果を付与した後（図７（Ｅ）のｇ−５３）、当該フレームをフレーム誤り検出符号付与部１０５へ出力する。
【００８６】
図７（Ｅ）に示すＮＡＫ（Ｎ（５）０）を入力すると、フレーム誤り検出符号付与部１０５は当該ＮＡＫ（Ｎ（５）０）の宛先アドレス〜パディングまでの領域に対する誤り検出符号を計算し、フレームの末尾に付与した後（図７（Ｆ）のｇ−５５）、当該フレームを送信部１０６へ出力する。
【００８７】
＜送信＞
送信部１０６は、図７（Ｆ）に示すＮＡＫ（Ｎ（５）０）を入力すると、フレームデータを符号化、スクランブリングおよびシリアライズし、回線２を介して端末１０へ送信する。
【００８８】
１．２．３）送信側処理Ａ−３
次に、図５の処理Ａ−３、すなわち端末１０がＮＡＫ（Ｎ（５）０）を受信してから再送フレームＦ（５）１を送信するまでの処理動作を説明する。
【００８９】
まず、ＮＡＫ（Ｎ（５）０）を受信部１０８で受信してからフレーム誤り検出部１１０でフレーム誤りを検出するまでの処理＜受信＞および＜誤り訂正、検出＞に関しては、送信側でも前述の処理Ｂ−１と同様であるから省略する。
【００９０】
＜フレーム識別＞
図１４において、フレーム識別部１１１は、フレーム誤り検出部１１０から、ＮＡＫ（Ｎ（５）０）、当該ＮＡＫヘッダの誤り訂正結果、当該ＮＡＫの誤り検出結果および当該ＮＡＫフレーム長を入力すると、ヘッダ誤り訂正が完了しているか否かをチェックする（ステップＳ００）。なお、図５の処理Ａ−３時点での各変数は、図１５（Ａ）のＡ−３欄よりＲＥＧ＿ＳＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。処理Ａ−３でＮＡＫ（Ｎ（５）０）には誤りがないためヘッダ誤り訂正が完了している（ステップＳ００の「完了」）。
【００９１】
次に、フレーム識別部１１１は、当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。ＮＡＫ（Ｎ（５）０）のフラグには、ＳＮ＝０、ＡＣＫ＝０、ＮＡＫ＝１、ＲＴ＝０が設定されているため、受信したフレームがＮＡＫであると識別できる（ステップＳ０２のＡＣＫ／ＮＡＫ）。
【００９２】
続いて、当該フレームに設定されているトランザクション識別子（以降ＲＣＶ＿ＸＩＤ）が次に適用すべきＡＣＫ／ＮＡＫに付与されるトランザクション識別子（以降ＲＥＧ＿ＳＸＩＤ）と、以下の条件４を満たすか否かをチェックする（ステップＳ３０）。
【００９３】
ＲＣＶ＿ＸＩＤ≧ＲＥＧ＿ＳＸＩＤ  ・・・（条件４）
条件４を満たさない場合（ステップＳ３０の「偽」）、当該ＡＣＫ／ＮＡＫは適用済みと判断し無視（廃棄）する。この時点ではＲＥＧ＿ＳＸＩＤ＝０、ＲＣＶ＿ＸＩＤ＝０であるから条件４を満たす（ステップＳ３０の「真」）。
【００９４】
次にフラグからＡＣＫ／ＮＡＫの識別を行う（ステップＳ３１）。Ｎ（５）０にはＮＡＫ＝１のフラグが設定されているため、当該フレームよりＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤを抽出し、図８（Ａ）に示す再送指示を送信バッファ制御部１１２とトランザクション識別子付与部１１４へ出力する（ステップＳ３４）。この時点でＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０である。続いて、ＲＣＶ＿ＸＩＤに１を加算した値をＲＥＧ＿ＳＸＩＤに設定して更新する（ステップＳ３３）。この時点でＲＥＧ＿ＳＸＩＤ＝１となる。
【００９５】
なお、本実施形態では、ＲＥＧ＿ＳＸＩＤの更新にＲＣＶ＿ＸＩＤを使用しているが、トランザクション識別子付与部１１４で保持しているＸＩＤを使用しても良い。
【００９６】
＜送信バッファ制御＞
図８（Ａ）に示す再送指示が送信バッファ制御部１１２に与えられると、送信バッファ制御部１１２は、再送指示と再送フレームの先頭アドレスを示すＲＣＶ＿ＳＥＱ（値５）を送信バッファ部１０２へ出力する。
【００９７】
送信バッファ部１０２は、再送指示および再送フレームの先頭アドレスを示すＲＣＶ＿ＳＥＱ（値５）を入力すると、ＲＣＶ＿ＳＥＱのアドレス（５ｄ−５）に保存されているフレームから読出しを開始する。また、このとき、初回読出しが終了しているフレームに対して、再送フレームであることを示すＲＴ＝１のフラグを付与する。
【００９８】
図５の処理Ａ−３の時点で、送信バッファ部１０２内の各アドレスは、図８（Ｂ）に示すように、ＳＲはＡＣＫ／ＮＡＫを受けていないので、図６と同じ値３ｄ−３であり、ｓｒｄとｓｒｃはフレームＦ（６）０が送信されているため値７ｄ−７であり、ＳＷは値７ｄ−７、ｓｗｒは値８ｄ−８である。ここで、送信バッファ部１０２が再送指示とＲＣＶ＿ＳＥＱ（値５）を受けると、図８（Ｃ）に示すように、ｓｒｄ（値７ｄ−７）およびＳＲ（値３ｄ−３）の値を受信したＲＣＶ＿ＳＥＱ（値５ｄ−５）に設定し、アドレスｓｒｄからフレームの読出しを開始する。また、ｓｒｃ＝ｓｒｄになるまで、読み出されたフレームのＲＴフラグに１を設定する。なお、アドレスＳＲ＝５ｄ−５に更新されることで、それ以前のフレームＦ（３）およびフレームＦ（４）は送信バッファ部１０２上から削除される。
【００９９】
＜ＡＣＫ／ＮＡＫ生成＞
再度読み出されたフレームＦ（５）がＡＣＫ／ＮＡＫ生成部１０３に与えられると、ＡＣＫ／ＮＡＫ生成部１０３は、上述した処理Ａ−１と同様にフレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示がない場合には当該フレームをトランザクション識別子付与部１１４へ出力する。（図１２のステップＳ５０、Ｓ５１、Ｓ５６）。
【０１００】
＜トランザクション識別子付与＞
図１３において、図８（Ｄ）に示すフレームＦ（５）がトランザクション識別子付与部１１４に与えられ（ステップＳ７０、Ｓ７１）、さらにフレーム識別部１１１から“再送指示、ＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ”を含む再送指示が与えられると（ステップＳ７２）、トランザクション識別子付与部１１４はフレームＦ（５）に設定されているＲＴフラグ（再送を示す）が‘１’であり且つ当該フレームの“シーケンス番号”とＲＣＶ＿ＳＥＱが一致するか否かチェックする（ステップＳ７３）。ＲＴ＝１かつＲＣＶ＿ＳＥＱ＝ＳＥＱであれば（ステップＳ７３の「真」）、ＲＣＶ＿ＸＩＤに１を加算した値をトランザクション識別子（ＸＩＤ）ｇ−６５として図８（Ｅ）のｇ−６５のように当該フレームへ付与し（ステップＳ７４、Ｓ７５）、ヘッダ誤り訂正符号付与部１０４へ出力する（ステップＳ７７）。一致しない場合は（ステップＳ７３の「偽」）、フレーム識別部１１１で保持しているＸＩＤを付与する（ステップＳ７５）。図５の処理Ａ−３の時点では、ＲＣＶ＿ＳＥＱ（値５）、ＲＣＶ＿ＸＩＤ（値０）、フレームＦ(５)のシーケンス番号は値５、ＲＴフラグは値１であるから、ＸＩＤ＝１となる。
【０１０１】
＜誤り訂正、検出および送信＞
ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５および送信部１０６は、図５の処理Ａ−１と同様の処理であり再送フレームＦ（５）１が回線１を介して端末２０へ送信される。以上、送信側では上記の動作を図５における処理Ａ−７でも同様に行う。
【０１０２】
１．２．４）受信側処理Ｂ−２
次に、図５の処理Ｂ−２、すなわち端末２０がフレームＦ（６）０を受信してからＮＡＫフレームＮ（５）０を送信するまでの処理動作を説明する。
【０１０３】
図５の受信側処理Ｂ−２において、フレームＦ（６）０を受信部１０８が受信してからフレーム誤り検出部１１０でフレーム誤りを検出するまでの処理＜受信＞および＜誤り訂正、検出＞は前述の処理Ｂ−１と同様であるから説明は省略する。
【０１０４】
＜フレーム識別＞
図１４において、フレーム識別部１１１は、フレームＦ（６）０、ヘッダ誤り訂正結果、フレーム誤り検出結果および当該フレーム長を入力すると、ヘッダ誤り訂正が完了しているか否かをチャックする（ステップＳ００）。フレームＦ（６）０には誤りが無いため、ヘッダ誤り訂正結果は完了（訂正の必要がない）となる。なお、図５の処理Ｂ−２時点での各変数は図１５（Ｂ）のＢ−２欄よりＮＥＸＴ＿ＳＥＱ＝５、ＲＥＧ＿ＲＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝６、ＲＣＶ＿ＸＩＤ＝０、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。
【０１０５】
次にフレーム識別部１１１は、当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。図９（Ａ）に示すフレームＦ（６）０のフラグには、ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝０が設定されているため、受信したフレームが初回送信フレームであると識別できる（ステップＳ０２のＳＮ）。したがって、フレーム識別部１１１は、当該フレームに設定されているシーケンス番号ＲＣＶ＿ＳＥＱがＮＥＸＴ＿ＳＥＱの値と一致するか否かをチェックする（ステップＳ０３）。図５の受信側処理Ｂ−２の時点で、当該フレームのＲＣＶ＿ＳＥＱは値６、ＮＥＸＴ＿ＳＥＱは値５であるから、不一致となる（ステップＳ０３の「不一致」）。
【０１０６】
次にフレーム識別部１１１は、ＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤが以下の条件１を満たすか否かをチェックする（ステップＳ０７）。
【０１０７】
ＲＣＶ＿ＳＥＱ＜ＮＥＸＴ＿ＳＥＱ  且つ
ＲＣＶ＿ＸＩＤ＝＝ＲＥＧ＿ＲＸＩＤ    ・・・（条件１）
条件１を満たす場合（ステップＳ０７の「真」）、受信フレームは既に受信しているフレームとなるため無視（廃棄）し、ＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力する（ステップＳ０５）。図５の処理Ｂ−２の時点で条件１は満たされないため（ステップＳ０７の「偽」）、フレーム識別部１１１は当該フレームＦ（６）０がＮＡＫテーブルに登録済みであるか否かをチェックする（ステップＳ０８）。図５の処理Ｂ−２の時点で、ＮＡＫテーブルには登録がないので、当該フレームＦ（６）０をＮＡＫテーブルに登録する（ステップＳ０９）。ＮＡＫテーブルへの登録は、受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）をＮＨＥＤ＿ＳＥＱへ、シーケンス番号（ＲＣＶ＿ＲＥＱ）＋受信フレーム長（ＬＥＮ）をＮＮＡＫ＿ＳＥＱへ設定することで行う。この時点では、ＲＣＶ＿ＳＥＱ＝６、ＬＥＮ＝１であるため、図９（Ｂ）に示すＮＨＥＤ＿ＳＥＱ（１）には値６ｄ−６、ＮＮＡＫ＿ＳＥＱ（１）には値７ｄ−７が登録される。
【０１０８】
次にフレーム識別部１１１は、ＮＥＸＴ＿ＳＥＱを含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力する（ステップＳ１０）。ここで出力されるＮＡＫ指示は図５の処理Ｂ−１で供給されたＮＡＫ指示と同一の指示となる。
【０１０９】
次にフレーム識別部１１１は、当該フレームに誤りの有無をチェックする（ステップＳ１１）。フレームＦ（６）０には誤りが無いため、当該フレームからＲＣＶ＿ＸＩＤ、ヘッダ誤り訂正結果、フレーム誤り検出結果およびＬＥＮを削除した図９（Ｃ）に示すフレームＦ（６）とＮＥＸＴ＿ＳＥＱとを受信バッファ部１１３へ出力する（ステップＳ１２）。なお、誤りがある場合、当該フレームを廃棄する（ステップＳ０６）。
【０１１０】
次に、ステップＳ０９におけるＮＡＫテーブルへの登録方法について図１６を用いて詳しく説明する。
【０１１１】
＜ＮＡＫテーブルへの登録＞
図１６（Ａ）〜（Ｇ）は、ＮＡＫテーブルへ、受信フレームのＲＣＶ＿ＳＥＱおよびＲＣＶ＿ＳＥＱ＋ＬＥＮをＮＨＥＤ＿ＳＥＱ（ｐ）とＮＮＡＫ＿ＳＥＱ（ｐ）として登録する際の処理を示した図であり、Ｆ（ｗ）は登録すべきフレームであり、Ｆ（ｘ）、Ｆ（ｙ）は既に登録されているフレームである。また左のＮＡＫテーブルは（Ａ）〜（Ｇ）におけるＮＡＫテーブルのＦ（ｗ）登録前後の状態をそれぞれ示す。テーブル内のＨ（ｐ）はＮＨＥＤ＿ＳＥＱ（ｐ）であり、Ｎ（ｐ）はＮＮＡＫ＿ＳＥＱ（ｐ）である。
【０１１２】
図１６における参照記号ｄ−９９は受信側で次に受信すべきシーケンス番号（ＮＥＸＴ＿ＳＥＱ）であり、ｄ−１００〜ｄ−１０７は受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）または受信フレームのシーケンス番号（ＲＣＶ＿ＳＥＱ）に受信フレーム長（ＬＥＮ）を加算した番号である。
【０１１３】
まず、登録無のＮＡＫテーブルにフレームＦ（ｗ）を登録する場合、図１６（Ａ）のように、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱｄ−１０２を、ＮＨＥＤ＿ＳＥＱ（１）に、ＲＣＶ＿ＳＥＱ＋ＬＥＮｄ−１０３を、ＮＮＡＫ＿ＳＥＱ（１）へ登録する。
【０１１４】
次に図１６（Ｂ）のように、登録済みフレームＦ（ｘ）があり、フレームＦ（ｘ）のシーケンス番号ｄ−１０２とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮとが一致する場合、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱｄ−１０１をＮＨＥＤ＿ＳＥＱ（１）に設定してＮＨＥＤ＿ＳＥＱ（１）を更新する。
【０１１５】
次に図１６（Ｃ）のように、登録済みフレームＦ（ｘ）があり、フレームＦ（ｘ）のシーケンス番号＋ＬＥＮｄ−１０３とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱとが一致する場合、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮｄ−１０４をＮＮＡＫ＿ＳＥＱ（１）に設定してＮＮＡＫ＿ＳＥＱ（１）を更新する。
【０１１６】
次に図１６（Ｄ）のように、登録済みフレームＦ（ｘ）があり、フレームＦ（ｘ）のシーケンス番号ｄ−１０２とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮｄ−１０１とが一致しない場合、フレームＦ（ｘ）のシーケンス番号ｄ−１０２をＮＨＥＤ＿ＳＥＱ（２）へ、またフレームＦ（ｘ）のシーケンス番号＋ＬＥＮｄ−１０３をＮＮＡＫ＿ＳＥＱ（２）に設定し、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱｄ−１００をＮＨＥＤ＿ＳＥＱ（１）へ、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮｄ−１０１をＮＮＡＫ＿ＳＥＱ（１）に登録する。
【０１１７】
次に図１６（Ｅ）のように、登録済みフレームＦ（ｘ）があり、フレームＦ（ｘ）のシーケンス番号ｄ−１０２とフレームＦ（ｘ）のシーケンス番号＋ＬＥＮｄ−１０３とが、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱまたＲＣＶ＿ＳＥＱ＋ＬＥＮと一致しない場合、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱｄ−１０６をＮＨＥＤ＿ＳＥＱ（２）に設定し、また、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮｄ−１０７をＮＮＡＫ＿ＳＥＱ（２）に登録する。
【０１１８】
次に図１６（Ｆ）のように、登録済みフレームＦ（ｘ）とフレームＦ（ｙ）があり、フレームＦ（ｘ）のシーケンス番号＋ＬＥＮｄ−１０３とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱとが一致し、またフレームＦ（ｙ）のシーケンス番号ｄ−１０６とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮとが一致する場合、フレームＦ（ｘ）のシーケンス番号ｄ−１０２をＮＨＥＤ＿ＳＥＱ（１）に設定し、また、フレームＦ（ｙ）のシーケンス番号＋ＬＥＮｄ−１０７をＮＮＡＫ＿ＳＥＱ（１）設定し、ＮＨＥＤ＿ＳＥＱ（１）、ＮＮＡＫ＿ＳＥＱ（１）を更新する。また、ＮＨＥＤ＿ＳＥＱ（２）、ＮＮＡＫ＿ＳＥＱ（２）をＮＡＫテーブル上から削除する。
【０１１９】
次に図１６（Ｇ）のように、登録済みフレームＦ（ｘ）とフレームＦ（ｙ）があり、フレームＦ（ｘ）のシーケンス番号＋ＬＥＮｄ−１０３とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱとが一致せず、またフレームＦ（ｙ）のシーケンス番号ｄ−１０６とフレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮとが一致しない場合、フレームＦ（ｙ）のシーケンス番号ｄ−１０６をＮＨＥＤ＿ＳＥＱ（３）へ、またフレームＦ（ｙ）のシーケンス番号＋ＬＥＮｄ−１０７をＮＮＡＫ＿ＳＥＱ（３）に設定し、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱｄ−１０４をＮＨＥＤ＿ＳＥＱ（２）へ、フレームＦ（ｗ）のＲＣＶ＿ＳＥＱ＋ＬＥＮｄ−１０５をＮＮＡＫ＿ＳＥＱ（３）に登録する。
【０１２０】
このように、ＮＡＫテーブルは、当該フレームが未登録である場合、ＳＥＱの若い順に登録し、ＮＨＥＤ＿ＳＥＱとＮＮＡＣ＿ＳＥＱとが同じ値になる行を統合することで、登録数を抑えることが出来る。なお、図１４内で使用されるＮＨＥＤ＿ＳＥＱとＮＮＡＣ＿ＳＥＱとは、図９（Ｂ）に示すｐ＝１の行に登録されたＮＨＥＤ＿ＳＥＱ（１）、ＮＮＡＣ＿ＳＥＱ（１）になる。
【０１２１】
＜受信バッファ＞
図９（Ｃ）に示すフレームＦ（６）とＮＥＸＴ＿ＳＥＱとが受信バッファ部１１３に与えられると、受信バッファ部１１３はフレームＦ（６）内のＲＣＶ＿ＳＥＱに従い当該フレームＦ（６）を保存する。
【０１２２】
図９（Ｄ）におけるＲＲ、ｒｒｄ、ＲＷ、ｒｗｒは、送信バッファ部１０２と同様に受信バッファ部１１３内でのフレームの保存・読出し制御に使用されるアドレスを示している。ＲＲは読出しが完了していないフレームの先頭アドレス、ｒｒｄは受信バッファ部１１３からフレームを読出す間のアドレス、ＲＷは次に受信バッファ部１１３へ保存されるフレームの先頭アドレス、ｒｗｒは受信バッファ部１１３へフレームを書き込みする間のアドレスである。この時点での各値は、ＲＲ＝ｒｒｄ＝ＲＷ＝ｒｗｒ＝５ｄ−５である。与えられたフレームＦ（６）のＲＣＶ＿ＳＥＱは値６であることから、受信バッファ部１１３上のアドレスｒｗｒに値６ｄ−６を設定し、アドレスｄ−６から当該フレームＦ（６）を保存する。受信フレームＦ（６）保存後の、受信バッファ部１１３上の各アドレスは、図９（Ｅ）に示すように、ＲＲ＝ｒｒｄ＝ＲＷ＝５ｄ−５、ｒｗｒ＝７ｄ−７となる。また、保存終了後、アドレスＲＷにＮＥＸＴ＿ＳＥＱを代入し、アドレスＲＷを更新し、更新したアドレスＲＷとアドレスＲＲを内部インタフェース部１００へ出力する。受信バッファ部１１３上のｄ−６はＮＡＫリストのＮＨＥＤ＿ＳＥＱ（１）であり、ｄ−７は、ＮＡＫリストのＮNAK＿ＳＥＱ（１）となる。受信バッファ部１１３からのフレーム読出しは、ＲＲ＜ＲＷの条件が満たされるとき読出しが開始される。ＲＷはＡＣＫ／ＮＡＫを返信する際に更新され、その値はＮＥＸＴ＿ＳＥＱとなる。ｒｒｄとＲＲは受信バッファ部１１３からフレームを読み出す毎に更新される。
【０１２３】
＜読み出し＞
更新されたアドレスＲＷとアドレスＲＲが内部インタフェース部１００に与えられると、内部インタフェース部１００は、受信したアドレスが、以下の条件２を満たすか否かをチェックする。
【０１２４】
ＲＲ＜ＲＷ  ・・・（条件２）
図５の処理Ｂ−２において、ＲＲ＝５、ＷＲ＝５であり、条件２を満たさないため、受信バッファ部１１３内に読出し可能なフレームがないと判断し読出し処理を行わない。なお、条件２が満たされた場合、内部インタフェース部１００は受信バッファ部１１３へ読出し指示を出力し、受信バッファ部１１３から読み出されたフレームを他ブロック１１へと出力する。
【０１２５】
＜送信＞
なお、図４におけるＡＣＫ／ＮＡＫ生成部１０３、トランザクション識別子付与部１１４、ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５および送信部１０６の処理は、図５の処理Ｂ−１と同様の処理であり、ＮＡＫ（Ｎ（５）０）を回線２を介して端末１０へ送信する。
【０１２６】
以上、受信側では上記の動作を図５における処理Ｂ−４および処理Ｂ−５でも同様に行う。
【０１２７】
１．２．５）送信側処理Ａ−４
次に、図５の処理Ａ−４、すなわち端末１０がＮＡＫ（Ｎ（５）０）を受信した際の処理動作を説明する。
【０１２８】
図５の処理Ａ−４において、ＮＡＫ（Ｎ（５）０）を受信部１０８が受信してからフレーム誤り検出部１１０でフレーム誤りを検出するまでの処理は前述の処理Ｂ−１と同様であるから説明は省略する。
【０１２９】
図１４において、フレーム誤り検出部１１０からＮＡＫ（Ｎ（５）０）、当該ＮＡＫヘッダの誤り訂正結果、当該ＮＡＫ誤り検出結果および当該ＮＡＫフレーム長を入力すると、フレーム識別部１１１はヘッダ誤り訂正が完了しているか否かをチェックする（ステップＳ００）。図５の処理Ａ−４ではＮＡＫ（Ｎ（５）０）には誤りが無いため、ヘッダ誤り訂正が完了（訂正の必要がないため）している。図５の処理Ａ−４時点での各変数は、図１５（Ａ）のＡ−４欄よりＲＥＧ＿ＳＸＩＤ＝１、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝０、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。
【０１３０】
次に、フレーム識別部１１１は、当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。ＮＡＫ（Ｎ（５）０）のフラグには、ＳＮ＝０、ＡＣＫ＝０、ＮＡＫ＝１、ＲＴ＝０が設定されているため、受信したフレームがＮＡＫであると識別できる。  次に、フレーム識別部１１１は、当該フレームに設定されているＲＣＶ＿ＸＩＤとＲＥＧ＿ＳＸＩＤとが、上述した条件４を満たすか否かをチェックする（ステップＳ３０）。この時点で、ＲＥＧ＿ＳＸＩＤ＝１、ＲＣＶ＿ＸＩＤ＝０であり、条件４を満たさない。よって、フレーム識別部１１１は当該ＮＡＫ（Ｎ（５）０）が、既に適用済みであると判断し無視（廃棄）する。
【０１３１】
１．２．６）受信側処理Ｂ−３
次に、図５の処理Ｂ−３において、端末２０がフレームＦ（６）１を受信してからＮＡＫフレームＮ（５）１を送信するまでの処理動作を説明する。
【０１３２】
図５の処理Ｂ−３でフレームＦ（６）１を受信部１０８が受信してから、フレーム誤り検出部１１０でフレーム誤りを検出するまでの処理は前述のＢ−１での処理と同様である。
【０１３３】
図１４において、フレームＦ（６）１、ヘッダ誤り訂正結果、フレーム誤り検出結果および当該フレーム長を入力すると、フレーム識別部１１１はヘッダ誤り訂正が完了しているか否かをチェックする（ステップＳ００）。フレームＦ（６）１には誤りが無いため、ヘッダ誤り訂正結果は完了（訂正の必要が無い）となる。図５の処理Ｂ−３時点での各変数は、図１５（Ｂ）のＢ−３欄より、ＮＥＸＴ＿ＳＥＱ＝５、ＮＨＥＤ＿ＳＥＱ＝６、ＮＮＡＫ＿ＳＥＱ＝７、ＲＥＧ＿ＲＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝６、ＲＣＶ＿ＸＩＤ＝１、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。
【０１３４】
次にフレーム識別部１１１は当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。フレームＦ（６）１のフラグには、ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝１が設定されているため、受信したフレームが再送フレームであると識別できる。
【０１３５】
次に、当該フレームに設定されているシーケンス番号ＲＣＶ＿ＳＥＱがＮＥＸＴ＿ＳＥＱの値と一致するか否かをチェックする（ステップＳ０３）。図５の処理Ｂ−３の時点で、当該フレームのＲＣＶ＿ＳＥＱは値６であり、ＮＥＸＴ＿ＳＥＱは値５であるため、不一致となる。
【０１３６】
次にフレーム識別部１１１はＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤが上述した条件１を満たすか否かをチェックする（ステップＳ０７）。条件１を満たす場合、受信フレームは既に受信しているフレームとなるため、無視（廃棄）してＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力する（ステップＳ０５）。図５の処理Ｂ−３の時点で条件１は満たされないため、フレーム識別部１１１は当該フレームＦ（６）０がＮＡＫテーブルに登録済みであるか否かをチェックする（ステップＳ０８）。図５の処理Ｂ−３の時点ではＮＡＫテーブルに登録があるため、フレーム識別部１１１は、次にＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力する（ステップＳ１０）。本ＮＡＫ指示には、ＮＥＸＴ＿ＳＥＱ（値５）とＲＣＶ＿ＸＩＤ（値１）とが設定される。以降の処理ステップＳ１１、Ｓ１２の説明は、図５の処理Ｂ−２で説明したとおりであるからここでは省略する。
【０１３７】
また、ＡＣＫ／ＮＡＫ生成部１０３、トランザクション識別子付与部１１４、ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５および送信部１０６の処理は、図５の処理Ｂ−１と同様であり、ＮＡＫ（Ｎ（５）１）を回線２を介して端末１０へ送信する。
【０１３８】
１．２．７）受信側処理Ｂ−６
次に、図５の処理Ｂ−６において、端末２０がフレームＦ（５）２を受信してから、ＡCＫフレームA（９）２を送信するまでの処理動作をを説明する。
【０１３９】
図５の処理Ｂ−６でフレームＦ（５）２を受信部１０８が受信してからフレーム誤り検出部１１０でフレーム誤りを検出するまでの処理は、前述のＢ−１での処理と同様である。
【０１４０】
＜フレーム識別＞
図１４において、フレームＦ（５）２、ヘッダ誤り訂正結果、フレーム誤り検出結果および当該フレーム長を入力すると、フレーム識別部１１１はヘッダ誤り訂正が完了しているか否かをチェックする（ステップＳ００）。フレームＦ（５）２には誤りが無いため、ヘッダ誤り訂正結果は、完了（訂正の必要が無い）となる。図５の処理Ｂ−６時点での各変数は、図１５（Ｂ）のＢ−６欄より、ＮＥＸＴ＿ＳＥＱ＝５、ＮＨＥＤ＿ＳＥＱ＝６、ＮＮＡＫ＿ＳＥＱ＝９、ＲＥＧ＿ＲＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝５、ＲＣＶ＿ＸＩＤ＝２、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。
【０１４１】
次にフレーム識別部１１１は、当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。図１０（Ａ）に示すフレームＦ（５）２のフラグには、ＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝０、ＲＴ＝１が設定されているため、受信したフレームが再送フレームであると識別できる。
【０１４２】
次に、当該フレームに設定されているシーケンス番号ＲＣＶ＿ＳＥＱがＮＥＸＴ＿ＳＥＱの値と一致するか否かをチェックする（ステップＳ０３）。図５の処理Ｂ−６の時点で、当該フレームのＲＣＶ＿ＳＥＱは値５でありＮＥＸＴ＿ＳＥＱは値５であるから、一致する。
【０１４３】
次にフレーム識別部１１１は現在のトランザクションであるＲＣＶ＿ＸＩＤ（値２）をＲＥＧ＿ＲＸＩＤに保持する（ステップＳ２１）。ステップＳ２１の後、フレーム誤りの有無を確認する（ステップＳ０４）。受信したフレームＦ（５）２には誤りがないため、次の処理ステップＳ１３へ進む。なお、誤りがある場合、ＮＥＸＴ＿ＳＥＱ、ＲＥＧ＿ＲＸＩＤを含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力し（ステップＳ０５）、当該フレームを廃棄する（ステップＳ０６）。
【０１４４】
受信したフレームＦ（５）２には誤りがない場合（ステップＳ０４の「無」）、ＮＡＫテーブル上にＮＮＡＫ＿ＳＥＱの登録があるか否かをチェックする（ステップＳ１３）。図５の処理Ｂ−６の時点で、ＮＡＫテーブル上にＮＮＡＫ＿ＳＥＱの登録があるため（ステップＳ１３の「有」）、次の処理ステップＳ１５へ進む。なお、無い場合（ステップＳ１３の「無」）、当該受信フレーム以降フレーム誤り／ロスが発生していないため、現状のＮＥＸＴ＿ＳＥＱに当該フレーム長（ＬＥＮ）を加算してＮＥＸＴ＿ＳＥＱを更新した後（ステップＳ１４）、ＮＥＸＴ＿ＳＥＱ、ＲＣＶ＿ＸＩＤを含むＡＣＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力し（ステップＳ２４）、当該フレームを受信バッファ部１１３へ出力する（ステップＳ１２）。
【０１４５】
ＮＡＫテーブル上にＮＮＡＫ＿ＳＥＱの登録がある場合（ステップＳ１３の「有」）、フレーム識別部１１１は、既に受信しているフレームと受信したフレームとの間に未受信のフレームがないかどうかを判断するため、以下の条件３を満たすか否かをチェックする（ステップＳ１５）。
【０１４６】
ＮＨＥＤ＿ＳＥＱ＝＝ＮＥＸＴ＿ＳＥＱ＋ＬＥＮ  ・・・（条件３）
図５の処理Ｂ−６の時点で、ＮＨＥＤ＿ＳＥＱ＝６、ＮＥＸＴ＿ＳＥＱ＝５、ＬＥＮ＝１であることから条件３を満たすので、次のステップＳ１８の処理を行う。なお、条件３を満たさない場合には、既に受信しているフレームと受信したフレームとの間に未受信のフレームがあるため、現状のＮＥＸＴ＿ＳＥＱに当該フレーム長（ＬＥＮ）を加算してＮＥＸＴ＿ＳＥＱを更新した後（ステップＳ１６）、更新したＮＥＸＴ＿ＳＥＱ、ＲＣＶ＿ＸＩＤを含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力し（ステップＳ１７）、当該フレームとＮＥＸＴ＿ＳＥＱを受信バッファ部１１３へ出力する（ステップＳ１２）。
【０１４７】
条件３を満たす場合（ステップＳ１５の「一致」）、フレーム識別部１１１は、現状のＮＥＸＴ＿ＳＥＱにＮＡＫテーブル上ＮＮＡＫ＿ＳＥＱ（１）を代入してＮＥＸＴ＿ＳＥＱを更新した後（ステップＳ１８）、図１０（Ｂ）に示すようにＮＡＫテーブルからＮＨＥＤ＿ＳＥＱ（１）とＮＮＡＫ＿ＳＥＱ（１）を削除してＮＡＫテーブルを更新する（ステップＳ１９）。ステップＳ１９のＮＡＫテーブル更新では、ＮＨＥＤ＿ＳＥＱ（ｐ）＝ＮＨＥＤ＿ＳＥＱ（ｐ＋１）およびＮＮＡＣ＿ＳＥＱ（ｐ）＝ＮＮＡＣ＿ＳＥＱ（ｐ＋１）の処理を行う。
【０１４８】
図５の処理Ｂ−６では、ＮＡＫテーブルの更新によりＮＡＫテーブル上にＮＮＡＫ＿ＳＥＱの登録が無くなるため、更新したＮＥＸＴ＿ＳＥＱ、ＲＣＶ＿ＸＩＤを含むＡＣＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力し（ステップＳ２２）、当該フレームとＮＥＸＴ＿ＳＥＱを受信バッファ部１１３へ出力する（ステップＳ１２）。
【０１４９】
なお、ステップ１９実施後、ＮＡＫテーブル上にＮＮＡＫ＿ＳＥＱの登録ある場合、更新したＮＥＸＴ＿ＳＥＱ、ＲＣＶ＿ＸＩＤを含むＮＡＫ生成指示をＡＣＫ／ＮＡＫ生成部１０３へ出力し（ステップＳ２３）、当該フレームを受信バッファ部１１３へ出力する（ステップＳ１２）。
【０１５０】
＜受信バッファ＞
図１０（Ｃ）に示すフレームＦ（５）とＮＥＸＴ＿ＳＥＱとが受信バッファ部１１３に与えられると、受信バッファ部１１３はフレームＦ（５）内のＲＣＶ＿ＳＥＱに従い、当該フレームＦ（５）を保存する。図１０（Ｄ）においてＲＲ、ｒｒｄ、ＲＷ、ｒｗｒは、受信バッファ部１１３内でフレームの保存・読出し制御に使用されるアドレスを示している。ＲＲは読出しが完了していないフレームの先頭アドレス、ｒｒｄは受信バッファ部１１３からフレームを読出す間のアドレス、ＲＷは次に受信バッファ部１１３へ保存されるフレームの先頭アドレス、ｒｗｒは受信バッファ部１１３へフレームを書き込みする間のアドレスである。この時点での各値は、ＲＲ＝ｒｒｄ＝ＲＷ＝５ｄ−５、ｒｗｒ＝９ｄ−９である。与えられたフレームＦ（５）のＲＣＶ＿ＳＥＱは値５であることから、受信バッファ部１１３上のアドレスｒｗｒを５ｄ−５に設定し、値５ｄ−５から当該フレームＦ（５）を保存する。また、保存終了後、アドレスＲＷにＮＥＸＴ＿ＳＥＱを代入し、アドレスＲＷを更新する。
【０１５１】
受信フレームＦ（５）保存後の受信バッファ部１１３上の各アドレスは、図１０（Ｅ）に示すように、ＲＲ＝ｒｒｄ＝５ｄ−５、ＲＷ＝９ｄ−９、ｒｗｒ＝６ｄ−６となる。受信バッファ部１１３からのフレーム読出しは、ＲＲ＜ＲＷの条件が満たされるときに開始される。ＲＷはＡＣＫ／ＮＡＫを返信する際に更新され、その値はＮＥＸＴ＿ＳＥＱとなる。ｒｒｄとＲＲは受信バッファ部１１３からフレームを読み出す毎に更新される。
【０１５２】
＜読み出し＞
更新されたアドレスＲＷとアドレスＲＲが内部インタフェース部１００に与えられると、内部インタフェース部１００は受信したアドレスが上述した条件２を満たすか否かをチェックする。図５の処理Ｂ−６において、ＲＲ＝５、ＲＷ＝９であり、条件２を満たすため、受信バッファ部１１３内に読出し可能なフレームが有ると判断し、受信バッファ部１１３へ読出し指示を出力する。これによって受信バッファ部１１３から読み出されたフレームが他ブロック１１へ出力される。
【０１５３】
＜送信＞
ＡＣＫ／ＮＡＫ生成部１０３、トランザクション識別子付与部１１４、ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５および送信部１０６の処理は、図５の処理Ｂ−１と同様であり、ＡＣＫ（Ａ（９）２）を回線２を介して端末１０へ送信する。
【０１５４】
１．２．８）送信側処理Ａ−９
次に、図５の処理Ａ−９において、端末１０がＡＣＫ（Ａ（９）２）を受信した際の処理動作を説明する。
【０１５５】
図５の処理Ａ−９でＡＣＫ（Ａ（９）２）を受信部１０８が受信してからフレーム誤り検出部１１０でフレーム誤り検出するまでの処理は前述のＢ−１での処理と同様である。
【０１５６】
＜フレーム識別＞
図１４において、フレーム誤り検出部１１０からＡＣＫ（Ａ（９）２）、当該ＡＣＫヘッダの誤り訂正結果、当該ＡＣＫの誤り検出結果および当該ＡＣＫフレーム長を入力すると、フレーム識別部１１１はヘッダ誤り訂正が完了しているか否かをチェックする（ステップＳ００）。処理Ａ−９では、ＡＣＫ（Ａ（９）２）に誤りが無いためヘッダ誤り訂正が完了（訂正の必要がないため）している。図５の処理Ａ−９時点での各変数は、図１５（Ａ）のＡ−９欄より、ＲＥＧ＿ＳＸＩＤ＝２、ＲＣＶ＿ＳＥＱ＝９、ＲＣＶ＿ＸＩＤ＝２、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。
【０１５７】
次に、フレーム識別部１１１は当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。ＡＣＫ（Ａ（９）２）のフラグには、ＳＮ＝０、ＡＣＫ＝１、ＮＡＫ＝０、ＲＴ＝０が設定されているため、受信したフレームがＡＣＫであることが識別できる。したがって、ステップＳ０２の後、フレーム識別部１１１は当該フレームに設定されているＲＣＶ＿ＸＩＤとＲＥＧ＿ＳＸＩＤが上述した条件４を満足するか否かをチェックする（ステップＳ３０）。この時点で、ＲＥＧ＿ＳＸＩＤ＝２、ＲＣＶ＿ＸＩＤ＝２であるから一致する（ステップＳ３０の「真」）。よって、当該ＡＣＫ（Ａ（９）２）は、未適用済みであると判断する。その後、フレーム識別部１１１は、受信したＡＣＫの含まれるＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤが適用された更新指示を送信バッファ制御部１１２とトランザクション識別子付与部１１４へ出力する（ステップＳ３２）。
【０１５８】
＜送信バッファ制御＞
図１１（Ａ）に示す更新指示が送信バッファ制御部１１２に与えられると、送信バッファ制御部１１２は更新指示とＲＣＶ＿ＳＥＱ（値９）とを送信バッファ部１０２へ出力する。更新指示とＲＣＶ＿ＳＥＱ（値９）とが送信バッファ部１０２に与えられると、送信バッファ部１０２はアドレスｓｒｄと受信したＲＣＶ＿ＳＥＱとを比較し、値の大きい方をｓｒｄに設定し、フレームの読出しを開始する。また、このとき、アドレスｓｒｃが受信したＲＣＶ＿ＳＥＱより小さい場合には、同様にｓｒｃの値も更新する。図５の処理Ａ−９の時点で、送信バッファ部１０２内の各アドレスは、図１１（Ｂ）に示すように、ＳＲ＝５ｄ−５、ｓｒｄ＝７ｄ−７、ｓｒｃ＝９ｄ−９、ｓｗｒ＝ＳＷ＝１１ｄ−１１である。ここで、送信バッファ部１０２が更新指示とＲＣＶ＿ＳＥＱ（値９）を受けると、図８（Ｃ）に示すように、ｓｒｄ（値７ｄ−７）およびＳＲ（値５ｄ−５）の値を受信したＲＣＶ＿ＳＥＱ（値９）に設定し、アドレスｓｒｄからフレームの読出しを開始する。なお、アドレスＳＲ＝９ｄ−９に更新されるため、それ以前のフレームＦ（５）、フレームＦ（６）、フレームＦ（７）およびフレームＦ（８）は送信バッファ部１０２上から削除される。
【０１５９】
＜ＡＣＫ／ＮＡＫ生成＞
読み出されたフレームＦ（９）がＡＣＫ／ＮＡＫ生成部１０３に与えられると、ＡＣＫ／ＮＡＫ生成部１０３は、処理Ａ−１と同様に、フレーム識別部１１１からＡＣＫ／ＮＡＫ生成指示がない場合には当該フレームをトランザクション識別子付与部１１４へ出力する（図１２のステップＳ５０、Ｓ５１、Ｓ５６）。
【０１６０】
＜トランザクション識別子付与＞
図１３において、フレームＦ（９）がトランザクション識別子付与部１１４に与えられ、さらに、フレーム識別部１１１から“更新指示、ＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤ”を含む更新指示が与えられると、トランザクション識別子付与部１１４は、再送指示でないので、当該フレームＦ（９）のシーケンス番号（ＳＥＱ）と一つ前のフレームに設定されていたシーケンス番号（ＰＲＥ＿ＳＥＱ）とを比較する（ステップＳ７８）。図５の処理Ａ−９の時点で、ＰＲＥ＿ＳＥＱは６、ＳＥＱは９であるから、トランザクション識別子付与部１１４は現状のトランザクション識別子（ＸＩＤ）である‘２’を当該フレームへ付与する（ステップＳ７５）。また、ＰＲＥ＿ＳＥＱの値を更新し（ステップＳ７６）、ＸＩＤを付与した当該フレームＦ（９）２をヘッダ誤り訂正符号付与部１０４へ出力する（ステップＳ７７）。
【０１６１】
＜送信＞
ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５および送信部１０６は、図５の処理Ａ−１と同様の処理を行い、再送フレームＦ（５）１を回線１を介して端末２０へ送信する。
【０１６２】
以上のように動作することで、図５において発生したフレーム誤りおよびロスから回復することが出来る。
【０１６３】
１．３）効果
上述したように、本発明の第１実施形態によれば、トランザクション識別子を付与し、再送が発生する毎にトランザクション識別子を更新しているので、ＲＴＴの変化および可変長フレームによる誤再送または未再送を防ぐことができ、スループットを向上させることができる。
【０１６４】
さらに、本実施形態では、シーケンス番号をバッファのアドレスとし、ＮＡＫテーブルにより受信済みフレームの範囲をシーケンス番号で管理しているので、シーケンス番号とバッファアドレスの対応テーブルをもつ必要がない。このため、ＲＴＴが大きいネットワークで送受信バッファサイズが増加した場合でも、シーケンス番号とバッファアドレス対応テーブルの規模が大きくなることがなく長距離（高ＲＴＴ）においても規模を抑えた再送制御により高品質なデータ通信が可能となる。
【０１６５】
また、本実施形態では、シーケンス番号をバッファのアドレスとし、ＮＡＫテーブルにより受信済みフレームのシーケンス番号を管理しているので、フレームロス／誤りが発生した後に受信した正常フレームを保存する。したがって、再送信時に他のフレームにロス／誤りが発生しても再々送を防ぐことができ、スループットを向上させる効果もある。
【０１６６】
さらに、本実施形態では、トランザクション識別子を付与し再送が発生する毎にトランザクション識別子を更新する以外に、シーケンス番号が一巡する毎にトランザクション識別子を更新しているので、シーケンス番号が一巡した際も、既に受信済みのフレームであるか否かの識別が可能となり、フレーム識別誤りによるフレーム廃棄を防ぐことが出来るため、スループットを向上させる効果がある。言い換えれば、この更新を行わない場合、シーケンス番号が一回りしてしまうと、上述した条件１が満たされるため、受信バッファ部１１３へ保存すべきフレームを廃棄することになる。
【０１６７】
たとえば、図１７はシーケンス番号が値１０で一巡する例であり、図１７（Ａ）はトランザクション識別子（XID）を更新しない場合、図１７（Ｂ）は更新した場合のシーケンスである。
【０１６８】
図１７（Ａ）において、フレームＦ（１０）０にロスが発生した後、受信側でフレームＦ（０）０を受信すると、受信側の各変数はＮＥＸＴ＿ＳＥＱ＝１０、ＲＥＧ＿ＲＸＩＤ＝０であるため、条件１が満たされ、ＳＥＱ＝０以降のフレームを受信済みフレームと判断し廃棄してしまう。
【０１６９】
これに対して、図１７（Ｂ）では、シーケンス番号が一巡する際にＸＩＤを更新するため、フレームＦ（１０）０にロスが発生した後、受信側でフレームＦ（０）１を受信しても条件１が満たされない。従ってフレームＦ（０）１以降の廃棄を防ぐことができる。このように図１７（Ｂ）では、Ｆ（１０）２を受信した時点で、Ｆ（０）１〜Ｆ（２）１は受信済みであるためＡＣＫ（Ａ（３）２）が返信されるのに対し、図１７（Ａ）ではＦ（０）０〜Ｆ（２）０を廃棄したためＡＣＫ（Ａ（０）１）を返信することになる。
【０１７０】
なお、上記実施形態では、端末１０から端末２０へのフレーム送信であったが、その逆においても同様の手順で送信を行うことができる。また、データリンク層での再送制御としてイーサネットＮＩＣを例としているが、データの再送信を行う方式であればすべてに適用することができる。また、上述の実施形態ではヘッダ誤り訂正符号を使用しヘッダ情報を保護しているが、ヘッダ情報の誤りを確認できれば良いため、ヘッダ誤り訂正符号付与部１０４およびヘッダ誤り訂正部１０９としてフレーム誤り検出符号付与１０４およびフレーム誤り検出部１１０のような誤り検出符号を使用してもよい。
【０１７１】
２．第２実施形態
２．１）構成
本発明の第２実施形態による通信装置は、図４に示す内部構成と基本的に同じであるが、ネットワークインタフェースカード（ＮＩＣ）１２における再送ヘッダ処理とＡＣＫ／ＮＡＫ生成１０３およびフレーム識別部１１１での処理とが異なっている。そこで、図４におけるＡＣＫ／ＮＡＫ生成部１０３をＡＣＫ／ＮＡＫ生成部２０３とし、フレーム識別部１１１をフレーム識別部２１１として、第２実施形態におけるＡＣＫ／ＮＡＫ生成部２０３とフレーム識別部２１１の説明を行う。その他のブロックおよび機能は図４と同じであるから同じ参照番号を付して説明は省略する。
【０１７２】
図１８に示すように、本実施形態を適用したＮＩＣ１２ａにおけるＡＣＫ／ＮＡＫ生成部２０３は、送信バッファ部１０２、トランザクション識別子付与部１１４およびフレーム識別部２１１に接続する。ＡＣＫ／ＮＡＫ生成部２０３は、後述するように、ＡＣＫ／ＮＡＫ用のシーケンス番号（ＡＮ＿ＳＥＱ）領域とＡＣＫ／ＮＡＫ用のトランザクション識別子（ＡＮ＿ＸＩＤ）領域を再送ヘッダに追加する。フレーム識別部２１１からのＡＣＫ／ＮＡＫ生成要求と送信バッファ部１０２からの読出しフレームが競合する場合、ＡＣＫ／ＮＡＫ情報を読み出してフレームに相乗り（piggyback）させる。
【０１７３】
フレーム識別部２１１は、フレーム誤り検出部１１０、送信バッファ制御部１１２、ＡＣＫ／ＮＡＫ生成部２０３および受信バッファ部１１３に接続する。フレーム識別部２１１は、フレーム誤り検出部１１０からヘッダ誤り訂正結果、フレーム誤り検出結果、フレーム長およびフレームを入力すると、ヘッダ誤り訂正結果、フレーム誤り検出結果およびフレームヘッダの内容に応じて処理を行う。ヘッダ誤り訂正結果が「誤り無し」の場合は後述の処理を行い、「誤り有」の場合は当該フレームを廃棄する。受信フレームのＡＣＫ／ＮＡＫフラグが１の場合、当該フレームヘッダに設定されているＡＣＫ／ＮＡＫ用シーケンス番号（ＡＮ＿ＳＥＱ）とＡＣＫ／ＮＡＫ用トランザクション識別子（ＡＮ＿ＸＩＤ）から適用すべきＡＣＫ／ＮＡＫを判断し、適用する場合には再送／更新指示を送信バッファ制御部１１２とトランザクション識別子付与部１０４へ出力する。受信フレームのＳＮフラグが１の場合、当該フレームヘッダに設定されているシーケンス番号（ＲＣＶ＿ＳＥＱ）とトランザクション識別子（ＲＣＶ＿ＸＩＤ）を抽出し、当該フレームのフレーム誤り検出結果が「誤り有」の場合にはＮＡＫ生成指示を抽出したＲＣＶ＿ＳＥＱとＲＣＶ＿ＸＩＤと一緒にＡＣＫ／ＮＡＫ生成部２０３へ出力し当該フレームを廃棄する。「誤り無し」の場合には、抽出したＲＣＶ＿ＳＥＱとＲＣＶ＿ＸＩＤが次に受信すべきシーケンス番号であるか比較し、一致しない場合はＮＡＫ生成指示を次に受信すべきシリアル番号と抽出したトランザクション識別子と一緒にＡＣＫ／ＮＡＫ生成部２０３へ出力し、当該フレームを受信バッファ部１１３へ出力する。抽出したＲＣＶ＿ＳＥＱとＲＣＶ＿ＸＩＤが次に受信すべきシーケンス番号と一致する場合には、ＡＣＫ生成指示を抽出したＲＣＶ＿ＳＥＱとＲＣＶ＿ＸＩＤと一緒にＡＣＫ／ＮＡＫ生成部２０３へ出力し、当該フレームを受信バッファ部１１３へ出力する。受信フレームのＡＣＫ／ＮＡＫのいずれかのフラグとＳＮのフラグが１である場合には上述の処理を同時に行う。
【０１７４】
２．２）動作
次に、第２実施形態におけるＡＣＫ／ＮＡＫ生成部２０３とフレーム識別部２１１の動作について説明する。
【０１７５】
図１９は、実施例２における誤り発生時の双方向端末間伝送シーケンスを示した図であり、説明の便宜上、ＡＣＫを受信せずに送信できるサイズを示す受信ウインドウサイズを４フレーム分としている。また、再送回数も１回まで行うこととする。また、端末１０から端末２０へ送信されるフレームＦ（５）０および端末２０から端末１０へ送信されるフレームｆ（１３）０Ａ（７）０でフレーム誤りまたはフレームロスが発生しており、これらフレーム誤り／ロスから回復するまでのシーケンスも示している。
【０１７６】
図１９において、“Ｆ（＊）＃”は、端末１０から端末２０への送信/再送信フレームを表し、“Ｎ（＊）＃”、および“Ａ（＊）＃”は、端末２０から端末１０へのＡＣＫ／ＮＡＫを表す。“ｆ（＊）＃”は、端末２０から端末１０への送信／再送信フレームを表し、“ｎ（＊）＃”、および“ａ（＊）＃”は、端末１０から端末２０へのＡＣＫ／ＮＡＫを表す。また、‘＊’はフレームに付与されるシーケンス番号であり、‘＃’は当該フレームのトランザクション識別子を表す。Ｆ（＊）＃ａ（＊）＃、Ｆ（＊）＃ｎ（＊）＃、ｆ（＊）＃Ａ（＊）＃、ｆ（＊）＃Ｎ（＊）＃は、ＡＣＫ／ＮＡＫの情報を相乗り（ピギーバック）させたフレームである。
【０１７７】
本実施形態では、図１９のＣ−１、Ｃ−２以外の処理動作は、図５に示した第１実施形態と同様となるため、図１９のＣ−１におけるＡＣＫ／ＮＡＫ生成部２０３と図１９のＣ−２におけるフレーム識別部２１１の動作について説明する。なお、端末１０から端末２０方向のシーケンス番号の初期値を値５、トランザクション識別子の初期値を値０として、端末２０から端末１０方向のシーケンス番号の初期値を値１２、トランザクション識別子の初期値を値０とする。
【０１７８】
＜処理Ｃ−１；ＡＣＫ／ＮＡＫ生成＞
まず、図１９の処理Ｃ−１において、端末２０のＮＩＣ１２ａで送信フレームｆ（１２）０とＮＡＫ指示Ｎ（５）０とが競合した際のＡＣＫ／ＮＡＫ生成処理部２０３の処理動作を図２０および図２１を参照しながら説明する。
【０１７９】
図２１において、端末２０のＮＩＣ１２ａのＡＣＫ／ＮＡＫ生成部２０３が送信バッファ部１０２から読出しフレームｆ（１２）０を入力すると（ステップＳ９０）、ＡＣＫ／ＮＡＫ生成部２０３は図２０（Ａ）に示すようにＡＣＫ／ＮＡＫ用のシーケンス番号（ＡＮ＿ＳＥＱ）領域ｇ−７０とＡＣＫ／ＮＡＫ用のトランザクション識別子（ＡＮ＿ＸＩＤ）領域ｇ−７１を再送ヘッダに追加する（ステップＳ９１）。
【０１８０】
続いて、ＡＣＫ／ＮＡＫ生成部２０３はフレーム識別部２１１からのＡＣＫ／ＮＡＫ生成指示の有無をチェックする（ステップＳ９４）。図１９の処理Ｃ−１の時点では、ＮＡＫ生成指示があるためＮＡＫフラグに１を設定し、ＮＡＫ生成指示に含まれるＮＥＸＴ＿ＳＥＱ（値５）を再送ヘッダのＡＮ＿ＳＥＱ領域へ、ＲＣＶ＿ＸＩＤ（値０）をＡＮ＿ＸＩＤ領域へそれぞれ設定し（ステップＳ９５）、ＮＡＫ情報を付与した当該フレームをトランザクション識別子付与部１１４へ出力する（ステップＳ９６）。なお、ＡＣＫ／ＮＡＫの生成指示がない場合には、ＡＣＫ／ＮＡＫ情報を付与せずに当該フレームをトランザクション識別子付与部１１４へ出力する（ステップＳ９６）。
【０１８１】
送信バッファ部１０２から読出しフレームがなく、ＮＡＫの生成指示がＡＣＫ／ＮＡＫ生成部２０３に与えられると（ステップＳ９０の「無」、ステップＳ９２の「有」）、ＡＣＫ／ＮＡＫ生成部２０３はＡＣＫ／ＮＡＫ用のシーケンス番号（ＡＮ＿ＳＥＱ）領域とＡＣＫ／ＮＡＫ用のトランザクション識別子（ＡＮ＿ＸＩＤ）領域とを再送ヘッダに追加した後、ＮＡＫフラグに１を設定し、ＮＡＫ生成指示に含まれるＮＥＸＴ＿ＳＥＱを再送ヘッダのＡＮ＿ＳＥＱ領域へ、ＲＣＶ＿ＸＩＤ（またはＲＥＧ＿ＲＸＩＤ）をＡＮ＿ＸＩＤ領域へ設定し（ステップＳ９３）、ＮＡＫ情報を付与した当該フレームをトランザクション識別子付与部１１４へ出力する。ＡＣＫ指示の場合には、ＡＣＫフラグに１を設定し、上記と同様の処理を行う。
【０１８２】
トランザクション識別子付与部１１４、ヘッダ誤り訂正符号付与部１０４、フレーム誤り検出符号付与部１０５および送信部１０６は、第１実施形態において説明した処理を実行し、図２０（Ｂ）に示すフレームを対向側の端末１０へ送信する。
【０１８３】
＜処理Ｃ−２；フレーム識別＞
図１９の処理Ｃ−２において、端末１０のＮＩＣ１２ａでＮＡＫ情報を含む送信フレームｆ（１２）０Ｎ（５）０を受信した際のフレーム識別部２１１の処理動作を説明する。フレーム識別部２１１の処理フローは図１４に示す処理フローとほぼ同じであるが、図１４のステップS２０が異なっている。
【０１８４】
図１４において、図２０（Ｃ）に示すＡＣＫ／ＮＡＫ情報を含むフレームｆ（１２）０Ｎ（５）０、ヘッダ誤り訂正結果、フレーム誤り検出結果および当該フレーム長（ＬＥＮ）を入力すると、フレーム識別部２１１はヘッダ誤り訂正が完了しているか否かをチェックする(ステップＳ００）。ｆ（１２）０Ｎ（５）０には誤りがないのでヘッダ誤り訂正結果は完了（訂正の必要が無い）となる。なお、図１９の処理Ｃ−２時点での各変数は、ＮＥＸＴ＿ＳＥＱ＝１２、ＲＥＧ＿ＲＸＩＤ＝０、ＲＣＶ＿ＳＥＱ＝１２、ＲＣＶ＿ＸＩＤ＝０、ＡＮ＿ＳＥＱ＝５、ＡＮ＿ＸＩＤ＝０、ＬＥＮ＝１であり、その他の値はＮＵＬＬである。
【０１８５】
次にフレーム識別部２１１は、当該フレームに付与されているフラグの確認を行う（ステップＳ０２）。図２０（Ｃ）に示すフレームｆ（１２）０Ｎ（５）０のフラグにはＳＮ＝１、ＡＣＫ＝０、ＮＡＫ＝１、ＲＴ＝０が設定されているため、受信したフレームが初回送信フレームでＮＡＫ情報を含んでいることがわかる。ここで、送信側処理と受信側処理が分岐される。すなわち、当該フレームから抽出したＡＮ＿ＳＥＱ＝５、ＡＮ＿ＸＩＤ＝０に従ったステップＳ３０〜Ｓ３３の送信処理と、抽出したＲＣＶ＿ＳＥＱ、ＲＣＶ＿ＸＩＤおよびＬＥＮに従ったステップＳ０３、Ｓ２１、Ｓ０４、Ｓ１３、Ｓ１４、Ｓ２４、Ｓ１２の受信処理と、が並列で実行される。なお、フレーム識別部２１１におけるその他処理の内容は上述した第１実施形態と同様である。フレーム識別部２１１は、上記の処理を行い、再送指示を送信バッファ制御部１１２とトランザクション識別子付与部１１４に出力し、またＡＣＫ生成指示をＡＣＫ／ＮＡＫ生成部２０３へ出力する。
【０１８６】
２．３）効果
このように、第２実施形態によれば、ＡＣＫ／ＮＡＫ生成部２０３がＡＣＫ／ＮＡＫ用のシーケンス番号（ＡＮ＿ＳＥＱ）領域とＡＣＫ／ＮＡＫ用のトランザクション識別子（ＡＮ＿ＸＩＤ）領域とを再送ヘッダに追加しているので、ＡＣＫ／ＮＡＫ生成部２０３でＡＣＫ／ＮＡＫ生成要求と読出しフレームとが競合した場合でも、ＡＣＫ／ＮＡＫ情報を読み出しフレーム相乗りさせることができる。これによって双方向通信においてもＡＣＫ／ＮＡＫフレームのオーバヘッドを抑え、ＲＴＴの変化および可変長フレームによる誤再送または未再送を防ぐことができ、スループットを向上させることができる。
【０１８７】
３．第３実施形態
上述した第１および第２実施形態では、Go Back N−ARQ方式による再送制御を基本動作としているが、図４のＮＩＣ１２あるいは図１８のＮＩＣ１２ａにおける送信バッファ部１０２の読出し処理動作を以下のように変更することで、Selective Repeat−ARQ方式による再送制御として動作させることも可能である。
【０１８８】
本発明の第３実施形態を適用したＮＩＣの送信バッファ部を送信バッファ部２０２とすれば、その読み出し処理は次のように行われる。
【０１８９】
送信バッファ部２０２は、再送指示と再送フレームの先頭アドレスを示すＲＣＶ＿ＳＥＱを入力すると、ＲＣＶ＿ＳＥＱ値をアドレスＳＲとｓｒｄアドレスに設定し、ｓｒｄアドレスのフレームを１フレーム分読み出す。また、このとき読出しフレームに対して再送フレームであることを示すＲＴ＝１のフラグを付与する。１フレーム読出し後、送信バッファ部２０２は、初回読出しが完了しているアドレスを示すｓｒｃを読出しアドレスｓｒｄに設定し、送信バッファ部２０２上に保存されている未送信フレームの読出しを行う。
【０１９０】
このように、送信バッファ部２０２でＲＣＶ＿ＳＥＱで指定される再送指示があるフレームのみを再度送信することで、Selective Repeat−ARQ方式による再送制御として動作させることができる。Selective Repeat−ARQ方式による再送制御は、誤りのあるフレームのみを再送するため、再送効率がGo Back N−ARQ方式に比べて良くスループットを向上させる効果がある。
【０１９１】
４．効果
上述したように、本発明の各実施形態による通信装置は次のような効果を奏する。
【０１９２】
第１に、トランザクション識別子を付与し、再送が発生する毎にトランザクション識別子を更新しているので、ＲＴＴの変化および可変長フレームによる誤再送または未再送を防ぐことができ、スループットを向上させることができる。
【０１９３】
第２に、シーケンス番号をバッファのアドレスとし、ＮＡＫテーブルにより受信済みフレームのシーケンス番号を管理しているので、シーケンス番号とバッファアドレスの対応テーブルをもつ必要が無く、ＲＴＴが大きいネットワークで送受信バッファサイズが増加した場合でもシーケンス番号とバッファアドレス対応テーブルの規模が大きくならない。したがって、長距離（高ＲＴＴ）においても規模を抑えた再送制御により高品質な回線を適用できる。
【０１９４】
さらに、ＮＡＫテーブルにより受信済みフレームのシーケンス番号を管理しているので、フレームロス／誤りが発生した後に受信した正常フレームを保存し、再送信時に他のフレームにロス／誤りが発生しても再々送を防ぐことができる。
【０１９５】
さらに、再送が発生する毎およびシーケンス番号が一巡する毎にトランザクション識別子を更新することで、シーケンス番号が一巡した際においても既に受信済みのフレーム否かの識別が可能となりフレーム識別誤りによるフレーム廃棄を防ぐことが出来る。
【０１９６】
また、送信フレーム用のシーケンス番号およびトランザクション番号の領域とＡＣＫ／ＮＡＫ用のシーケンス番号領域およびトランザクション識別子（ＡＮ＿ＸＩＤ）領域とを同じ再送ヘッダに追加しＡＣＫ／ＮＡＫ情報を送信フレーム相乗りさせることができるために、双方向通信においてＡＣＫ／ＮＡＫフレームのオーバヘッドを抑え、ＲＴＴの変化および可変長フレームによる誤再送または再送遅延を防ぎスループットを向上させる効果がある。
【産業上の利用可能性】
【０１９７】
本発明は、パケット通信システムにおける通信端末、たとえば情報通信端末や携帯通信端末などに適用可能である。
【符号の説明】
【０１９８】
１、２  回線
１０、２０  端末
１１  他ブロック
１２  ＮＩＣ（Network Interface Card）
１００  内部インタフェース部
１０１  ヘッダ付与部
１０２  送信バッファ部
１０３  実施例１のＡＣＫ／ＮＡＫ生成部
１１４  トランザクション識別子付与部
１０４  ヘッダ誤り訂正符号付与部
１０５  フレーム誤り検出符号付与部
１０６  送信部
１０８  受信部
１０９  ヘッダ誤り訂正部
１１０  フレーム誤り検出部
１１１  実施例１のフレーム識別部
１１２  送信バッファ制御部
１１３  受信バッファ部
２０３  ＡＣＫ／ＮＡＫ生成部
２１１  フレーム識別部
ｇ−１  誤りが発生したパケット
ｇ−２、ｇ−４  重複ＡＣＫ
ｇ−３  誤り発生から再送要求が伝わるまでの遅延時間
ｇ−５  再送タイムアウトにより再送が開始されるまでの時間
ｇ−１１、ｇ−１４、ｇ−１５  ＮＡＫフレーム
ｇ−１２  ＮＡＫによって再送される再送フレーム
ｇ−１３  無視されるＮＡＫフレーム
ｇ−２０  送信側で保持するＲＴＴ時間
ｇ−２１、ｇ−２５  現実ＲＴＴ時間
ｇ−２３、ｇ−２４、ｇ−２７、ｇ−２８  適用されたＮＡＫフレーム
ｇ−２２  ＮＡＫフレームが無視されることによって発生する遅延時間
ｇ−２６  ＮＡＫフレーム誤認による誤再送
Ａ−１〜Ａ−１０  送信側イベント
Ｂ−１〜Ｂ−６  受信側イベント
ｇ−４０  ＭＡＣヘッダ
ｇ−４１  ＭＡＣクライアントデータ
ｇ−４２  再送ヘッダ
ｇ−４８  シーケンス番号（ＳＥＱ）
ｇ−４９  送信バッファにて保存、読出されるフレーム
ｇ−５０  トランザクション識別子付与部１１４からの出力フレーム
ｇ−５１  トランザクション識別子（ＸＩＤ）
ｇ−５２  ヘッダ誤り訂正符号付与部１０４の出力フレーム
ｇ−５３  ヘッダ誤り訂正符号付与部１０４で付与されたヘッダ誤り訂正符号
ｇ−５４  フレーム誤り検出符号付与部１０５からの出力フレーム
ｇ−５５  フレーム誤り検出符号付与部１０５で付与されたフレーム誤り検出符号
ｄ−３〜ｄ−１１、ｄ−９９〜ｄ−１０７  送受信バッファ内アドレス
ｇ−６０  ヘッダ誤り訂正部１０９で付与されるヘッダ誤り訂正結果
ｇ−６１  フレーム誤り検出部１１０で付与されるフレーム誤り検出結果
ｇ−６２  フレーム誤り検出部１１０で付与される当該フレーム長
ｇ−６５  更新されたトランザクション識別子（ＸＩＤ）
ｇ−７０  ＡＣＫ／ＮＡＫ用のシーケンス番号（ＡＮ＿ＳＥＱ）領域
ｇ−７１  ＡＣＫ／ＮＡＫ用のトランザクション識別子（ＡＮ＿ＸＩＤ）領域
Ｃ−１  送信イベント
Ｃ−２  受信イベント
【図１】
2012195836.tif 000003
【図２】
2012195836.tif 000004
【図３】
2012195836.tif 000005
【図４】
2012195836.tif 000006
【図５】
2012195836.tif 000007
【図６】
2012195836.tif 000008
【図７】
2012195836.tif 000009
【図８】
2012195836.tif 000010
【図９】
2012195836.tif 000011
【図１０】
2012195836.tif 000012
【図１１】
2012195836.tif 000013
【図１２】
2012195836.tif 000014
【図１３】
2012195836.tif 000015
【図１４】
2012195836.tif 000016
【図１５】
2012195836.tif 000017
【図１６】
2012195836.tif 000018
【図１７】
2012195836.tif 000019
【図１８】
2012195836.tif 000020
【図１９】
2012195836.tif 000021
【図２０】
2012195836.tif 000022
【図２１】
2012195836.tif 000023