(57)【要約】【課題】フレームの受信が完了する受信完了時刻を推定し、その受信完了時刻に応じて、データフレームと制御フレームとの送信タイミングを制御することが可能な通信装置を提供する。【解決手段】本実施形態の通信装置は、データフレーム（１０１）と、制御フレーム（１０３）と、を同一経路に送信する通信装置であり、フレーム（１０２）を受信する受信手段（１５）と、受信手段（１５）へのフレーム（１０２）の受信が完了する受信完了時刻を推定する推定手段（１４、１７、１９）と、受信完了時刻に応じて、データフレーム（１０１）と制御フレーム（１０３）との送信タイミングを制御する制御手段（１３）と、を有することを特徴とする。【選択図】図１
2008219269.tif 000002
【特許請求の範囲】
【請求項１】
データフレームと、制御フレームと、を同一経路に送信する通信装置であって、
フレームを受信する受信手段と、
前記受信手段へのフレームの受信が完了する受信完了時刻を推定する推定手段と、
前記受信完了時刻に応じて、前記データフレームと前記制御フレームとの送信タイミングを制御する制御手段と、を有することを特徴とする通信装置。
【請求項２】
前記受信手段へのフレームの受信バイト数を計数する計数手段を有し、
前記推定手段は、
予め設定されたフレーム長の値と、前記受信バイト数の値と、の差分である差分バイト数を算出し、該算出した差分バイト数を、予め設定された回線速度で除算した値を、前記受信完了時刻として推定することを特徴とする請求項１記載の通信装置。
【請求項３】
前記推定手段は、
前記受信完了時刻時に前記受信手段に蓄積されているフレームの蓄積バイト数と、前記差分バイト数と、を基に、前記受信手段における輻輳状態が発生するか否かを推測し、前記輻輳状態が発生すると推測した場合は、前記差分バイト数を、前記回線速度で除算した値を、前記受信完了時刻として推定することを特徴とする請求項２記載の通信装置。
【請求項４】
前記推定手段は、前記蓄積バイト数と前記差分バイト数とを加算した値が、予め設定された閾値以上である場合に、前記輻輳状態が発生すると推測することを特徴とする請求項３記載の通信装置。
【請求項５】
前記受信手段が受信するフレームのフレーム長ごとの受信頻度を管理する管理手段を有し、
前記フレーム長の値は、
前記管理手段にて管理されているフレーム長ごとの受信頻度を基に、予め設定することを特徴とする請求項２記載の通信装置。
【請求項６】
前記受信手段が受信するフレームのフレーム長を基に、前記管理手段にて管理しているフレーム長ごとの受信頻度を更新する更新手段を有することを特徴とする請求項５記載の通信装置。
【請求項７】
前記制御手段は、
前記推定手段により推定した受信完了時刻が予め定められた時間以内であれば、データフレームよりも制御フレームを優先的に送信するように制御することを特徴とする請求項１記載の通信装置。
【請求項８】
フレームを受信する受信手段と、制御手段と、を有し、データフレームと、制御フレームと、を同一経路に送信する通信装置で行うフレーム送信制御方法であって、
前記受信手段へのフレームの受信が完了する受信完了時刻を推定する推定工程と、
前記受信完了時刻に応じて、前記データフレームと前記制御フレームとの送信タイミングを制御する制御工程と、を、前記制御手段が行うことを特徴とするフレーム送信制御方法。
【請求項９】
フレームを受信する受信手段と、制御手段と、を有し、データフレームと、制御フレームと、を同一経路に送信する通信装置に実行させるフレーム送信制御プログラムであって、
前記受信手段へのフレームの受信が完了する受信完了時刻を推定する推定処理と、
前記受信完了時刻に応じて、前記データフレームと前記制御フレームとの送信タイミングを制御する制御処理と、を、前記制御手段に実行させることを特徴とするフレーム送信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットデータをフレームにカプセル化し、該カプセル化したフレームの送受信を行う通信装置に関し、特に、フレーム長が長いロングフレームを送受信する通信装置、フレーム送信制御方法及びフレーム送信制御プログラムに関するものである。
【背景技術】
【０００２】
近年、光伝送技術や波長多重技術の発達により、通信装置やサーバ装置の伝送速度が向上している。
【０００３】
また、大容量の画像転送やストレージ装置等の伝送速度を必要とするアプリケーションの出現により、アプリケーション側からの伝送速度向上の要求も高まっている。
【０００４】
例えば、ＩＥＥＥ８０２．３で規定されているＭＡＣ（Media Access Control）層技術（以下、イーサネット（登録商標）ＭＡＣと称す）がある。なお、イーサネット（登録商標）ＭＡＣは、ＯＳＩ（Open Systems Interconnection）参照モデルのデータリンク層の可変長フレーム送受信技術である。
【０００５】
現在、イーサネット（登録商標）ＭＡＣでは、１０Ｇｂｐｓ伝送技術が確立されている。今後は、更に高速なデータリンク層のフレーム送受信技術への要求が高まることが想定される。
【０００６】
しかしながら、イーサネット（登録商標）ＭＡＣでは、フレーム長は６４バイト〜２，０００バイトであり、例えば、１００Ｇｂｐｓではそのフレーム時間は０．２５μ秒と短く、フレームに対する処理が困難、もしくは、制約を受ける可能性がある。
【０００７】
これは、サーバ装置のＯＳＩ上位層とのインタフェースである、ホストインタフェース処理において、フレームに対する処理が困難、もしくは、性能制約が生じる可能性があるためである。
【０００８】
なお、上記の問題を解決する対策としては、フレーム長を延長した新たなフレームを定義する方法が考えられる。
【０００９】
例えば、フレーム長を１メガバイトまで拡張すれば、１００Ｇｂｐｓでは、そのフレーム時間は８０μ秒、２０Ｇｂｐｓでは、フレーム時間は４００μ秒となり、ホストインタフェース処理の問題を解決することが可能となる。
【００１０】
なお、本明細書では、フレーム長が長いフレームをロングフレームと呼ぶことにする。なお、図９（ａ）に、ロングフレームの一例を示す。図９（ａ）では、最大フレーム長をメガバイト級としているが、フレーム長は回線速度にも依存するためこれは一例であり、具体的なフレーム長は、数十バイト〜数千キロバイト級でも良く、あるいはそれ以上のメガバイト級以上のフレーム長でも良い。
【００１１】
＜ロングフレーム＞
図９（ａ）に示すように、ロングフレームは、『ヘッダ部』と、『ペイロード部』と、『トレイラ部』と、で構成される。
【００１２】
なお、本明細書では、ロングフレームを構成する『ヘッダ部』にはフレーム長情報（Length情報）は含まないものとする。
【００１３】
米国Ｔ１Ｘ１委員会にて定義された可変長フレームにＧＦＰ（Generic Framing Procedure）があるが、ＧＦＰではヘッダ部分にフレーム長情報が定義されている。
【００１４】
しかしながら、送信側において、ＧＦＰフレームをメモリに蓄積し、フレーム長情報を算出した後、その算出したフレーム長情報をヘッダ部に書き込み、受信側においても、ＧＦＰフレームをメモリに蓄積し、フレーム長の正常性のチェックを行うなど、フレームに対する処理が複雑、かつ、重くなり、ロングフレームのような長いフレーム長では処理が困難になることが想定される。
【００１５】
このため、イーサネット（登録商標）と同様に、ヘッダ部にはフレーム長情報は定義せず、図９（ｂ）に示すように、ロングフレームの前後に、ＳＯＦ（Start of Frame）と、ＥＯＦ（End of Frame）と、を付加し、そのＳＯＦと、ＥＯＦと、を基にフレーム開始とフレーム終了とを識別する。なお、ＳＯＦ、ＥＯＦは、ＳＯＰ（Start of Packet）、ＥＯＰ（End of Packet）とも呼ばれるが、本明細書ではＳＯＦ、ＥＯＦと称す。なお、ＳＯＦ、ＥＯＦは物理層において付加されるものである。図９（ｂ）は物理層におけるロングフレームフォーマットであり、図９（ａ）はデータリンク層でのフレームフォーマットを示している。したがって、物理層からデータリンク層への入力信号では、ＳＯＦ、ＥＯＦはフレーム図９（ｂ）のようにフレームの前後に付加されているのではなく、フレーム信号とは別線にて並走入力される。同様に、送信側では、データリンク層内部ではＳＯＦ、ＥＯＦはフレーム信号と並走する内部信号であり、物理層への出力信号では、図９（ａ）で記されるロングフレームとは別線にて並走出力され、物理層にて図９（ｂ）のフォーマットに変換する。
【００１６】
＜制御フレーム＞
次に、制御フレームについて説明する。
【００１７】
制御フレームは、制御情報等を、主信号データと同一経路で伝送するためのフレームである。制御フレームの一例を図９（ｃ）に示す。なお、図９（ｃ）に示す制御フレームは、一例であり、制御フレームのフレーム長は、６４バイト〜数百バイトに限定するものではなく、任意長でも良い。一般的には、制御フレームは、ロングフレーム以下である。また、これはデータリンク層での制御フレームフォーマットであり、ロングフレームと同様に、物理層では前後にＳＯＦ、ＥＯＦが付加されたフォーマットとなる。
【００１８】
図９（ｃ）に示すように、制御フレームは、『ヘッダ部』と、『ペイロード部』と、『トレイラ部』と、『パディング部』と、で構成される。
【００１９】
制御フレームは、図９（ｃ）に示すように、主信号データと同様に、『ヘッダ部』と、『ペイロード部』と、『トレイラ部』と、を有し、その他に、『パディング部』を有して構成される場合がある。
【００２０】
なお、制御フレームには、自装置内での要求をトリガに発出するものや、対向装置からのフレーム受信をトリガに発出するものなど、様々な種類がある。例えば、イーサネット（登録商標）では、制御フレームに分類可能なものにポーズフレームがある。これは、フレーム受信中に発生した自装置の輻輳を、対向装置に通知し、対向装置のデータ送信を停止させるフレームである。これにより、例えば、自装置においてバッファオーバーフローが発生した場合に、ポーズフレームを対向装置に送信し、ポーズフレームを受信した対向装置は、そのポーズフレームで指定される時間だけデータの送信を停止し、バッファオーバーフローを解消させる。なお、ポーズフレームは、６４バイト長である。
【００２１】
一方、ＧＦＰでは、１２バイト長のＧＦＰコントロールフレームが定義されている。これは、ＯＡＭ（Operations, Administration and Maintenance）用である。なお、その他に、ＡＣＫ／ＮＡＣＫ（Acknowledgement/Non-Acknowledgement）や再送情報通知など、フレーム送受信技術別に定義された種々の制御フレームが想定される。
【００２２】
また、フレーム間を埋めるアイドルフレームも制御フレームの一種であるが、本明細書では、アイドルフレーム以外の、目的を持ったものを制御フレームと呼ぶことにする。
【００２３】
＜制御フレームの送信制御＞
次に、図８を参照しながら、制御フレームの送信制御について説明する。なお、図８は、フレーム送受信回路における制御フレームの送信制御の一例を示す図であり、図８では、フレーム送受信回路（８０）の左側が上位層（ネットワーク層）を示し、フレーム送受信回路（８０）の右側が下位層（物理層）を示している。
【００２４】
なお、図８では、上位層から下位層への方向を『送信側』とし、下位層から上位層への方向を『受信側』とする。
【００２５】
フレーム送受信回路（８０）は、送信バッファ（８１）と、フレーム生成回路（８２）と、送信選択回路（８３）と、フレーム終端回路（８４）と、受信バッファ（８５）と、制御フレーム生成回路（８６）と、を有して構成している。なお、（８０１）は、送信ロングフレームを示し、（８０２）は、受信ロングフレームを示し、（８０３）は、制御フレームを示す。送信ロングフレーム長、受信ロングフレーム長とも、可変長を想定するが、固定長でも良い。また、送信ロングフレーム長と受信ロングフレーム長との間には相関はなく、受信ロングフレーム（８０２）は、送信ロングフレーム（８０１）よりも長くても短くても良い。
【００２６】
また、制御フレーム（８０３）の種別は特に限定しないが、受信ロングフレーム（８０２）の受信、特にその受信完了後に生成する制御フレームとする。
【００２７】
まず、受信側では、フレーム終端回路（８４）は、受信ロングフレーム（８０２）が入力されると、その受信ロングフレーム（８０２）からヘッダ部とトレイラ部とを取り除く。
【００２８】
なお、フレーム終端回路（８４）は、トレイラ部からＣＲＣチェックを行い、そのチェック結果を、ＡＣＫ／ＮＡＣＫとして、制御フレーム（８０３）により、送信側から下位層側の対向装置に返送するように構築することも可能である。なお、本機能は、イーサネット（登録商標）では定義されていない。
【００２９】
また、受信バッファ（８５）の輻輳情報を、ポーズフレームとして、制御フレーム（８０３）により、送信側から下位層側の対向装置に返送するように構築することも可能である。
【００３０】
なお、下位層側の対向装置への制御フレーム（８０３）の返送は、送信選択回路（８３）を経由して行うことになる。
【００３１】
また、送信側では、送信バッファ（８１）は、パケットデータが入力されると、そのパケットデータを蓄積し、その蓄積したパケットデータをフレーム生成回路（８２）に出力する。
【００３２】
フレーム生成回路（８２）は、送信バッファ（８１）から入力されたパケットデータに対し、ヘッダ部とトレイラ部とを付加し、送信ロングフレーム（８０１）を生成する。そして、フレーム生成回路（８２）は、その生成した送信ロングフレーム（８０１）を送信選択回路（８３）を経由して下位層側に送信する。
【００３３】
なお、送信ロングフレーム（８０１）を下位層側に送信する際に、送信選択回路（８３）において、送信ロングフレーム（８０１）と、制御フレーム（８０３）と、の出力競合が発生する場合がある。このため、送信選択回路（８３）は、一方のフレーム（例えば、送信ロングフレーム）の送信が完了した後に、他方のフレーム（制御フレーム）の送信を開始することになる。
【００３４】
なお、上述した図８に示すフレーム送受信回路（８０）では、送信ロングフレーム（８０１）と制御フレーム（８０３）との出力競合が発生した場合に、制御フレーム（８０３）による各種制御の効果が劣化する可能性があり、また、それを避けるために回路規模が増大することになる。
【００３５】
その理由は、送信選択回路（８３）において、送信ロングフレーム（８０１）と制御フレーム（８０３）とが出力競合し、既に、送信ロングフレーム（８０１）が送信されている場合には、制御フレーム（８０３）は、送信ロングフレーム（８０１）の送信完了を待つ必要があり、制御フレーム（８０３）の待ち時間が長くなるためである。
【００３６】
例えば、送信ロングフレーム（８０１）が１メガバイト長で、帯域が１００Ｇｂｐｓの場合は、制御フレーム（８０３）の出力待ち時間は、最大８０μ秒となる。また、帯域が２０Ｇｂｐｓの場合は、制御フレーム（８０３）の出力待ち時間は、４００μ秒となる。
【００３７】
このため、送信ロングフレーム（８０１）のフレーム長が長くなるに伴い、制御フレーム（８０３）の待ち時間が顕著となる。
【００３８】
従って、制御フレーム（８０３）を用いた再送制御は、対向装置への再送通知がその分遅延することになり、再送バッファ量を増加する必要が生じることになる。また、ポーズフレームの場合も、対向装置への転送が遅れることになり、バッファ溢れや、送信バッファや受信バッファ量を増加する必要が生じることになる。
【００３９】
このようなことから、送信ロングフレーム（８０１）と、制御フレーム（８０３）と、の送信を制御し、制御フレーム（８０３）の待ち時間を低減し、制御フレーム（８０３）の遅延による各種制御効果の劣化を改善することが可能なフレーム送信制御方法の開発が必要視されることになる。
【００４０】
なお、本発明より先に出願された技術文献として、第１パケットである長電文が送信されている間に、第２パケットである短電文あるいは緊急パケットの送信要求が発生した場合、第１パケットをどこまで受信したかその残りのデータ数を計数し、この計数値が予め設定した値より大きい場合には第１パケットの送信を優先させるようにする技術について開示された文献がある（例えば、特許文献１参照）。
【００４１】
また、緊急フレームを送信遅延を少なくして送信可能とし、緊急フレーム送信による影響度を少なくすることが可能な技術について開示された文献がある（例えば、特許文献２参照）。
【特許文献１】特開平１−１３７７４４号公報
【特許文献２】特開２００６−６７０３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００４２】
しかしながら、上記特許文献１、２には、フレームの受信が完了する受信完了時刻を推定し、その受信完了時刻に応じて、データフレームと制御フレームとの送信タイミングを制御することについては何ら記載もその必要性についても示唆されていない。
【００４３】
本発明は、上記事情に鑑みてなされたものであり、フレームの受信が完了する受信完了時刻を推定し、その受信完了時刻に応じて、データフレームと制御フレームとの送信タイミングを制御することが可能な通信装置、フレーム送信制御方法及びフレーム送信制御プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００４４】
かかる目的を達成するために、本発明は、以下の特徴を有することとする。
【００４５】
本発明にかかる通信装置は、
データフレームと、制御フレームと、を同一経路に送信する通信装置であって、
フレームを受信する受信手段と、
前記受信手段へのフレームの受信が完了する受信完了時刻を推定する推定手段と、
前記受信完了時刻に応じて、前記データフレームと前記制御フレームとの送信タイミングを制御する制御手段と、を有することを特徴とする。
【００４６】
また、本発明にかかる通信装置は、
前記受信手段へのフレームの受信バイト数を計数する計数手段を有し、
前記推定手段は、
予め設定されたフレーム長の値『Ｆ＿ＴＨ』と、前記受信バイト数の値『ＢＹＴ』と、の差分である差分バイト数『ΔＦ』を算出し、該算出した差分バイト数『ΔＦ』を、予め設定された回線速度で除算した値『ｔ』を、前記受信完了時刻『ｔ』として推定することを特徴とする。
【００４７】
また、本発明にかかる通信装置において、
前記推定手段は、
前記受信完了時刻時『ｔ』に前記受信手段に蓄積されているフレームの蓄積バイト数『ＲＢＬ』と、前記差分バイト数『ΔＦ』と、を基に、前記受信手段における輻輳状態が発生するか否かを推測し、前記輻輳状態が発生すると推測した場合は、前記差分バイト数『ΔＦ』を、前記回線速度で除算した値『ｔ』を、前記受信完了時刻『ｔ』として推定することを特徴とする。
【００４８】
また、本発明にかかる通信装置において、
前記推定手段は、前記蓄積バイト数『ＲＢＬ』と前記差分バイト数『ΔＦ』とを加算した値『ＲＢＬ＋ΔＦ』が、予め設定された閾値『ＲＢＬ＿ＭＡＸ』以上である場合に、前記輻輳状態が発生すると推測することを特徴とする。
【００４９】
また、本発明にかかる通信装置において、
前記受信手段が受信するフレームのフレーム長ごとの受信頻度を管理する管理手段を有し、
前記フレーム長の値『Ｆ＿ＴＨ』は、
前記管理手段にて管理されているフレーム長ごとの受信頻度を基に、予め設定することを特徴とする。
【００５０】
また、本発明にかかる通信装置において、
前記受信手段が受信するフレームのフレーム長を基に、前記管理手段にて管理しているフレーム長ごとの受信頻度を更新する更新手段を有することを特徴とする。
【００５１】
また、本発明にかかる通信装置において、
前記制御手段は、
前記推定手段により推定した受信完了時刻『ｔ』が予め定められた時間『Ｔ＿ＭＡＸ』以内であれば、データフレームよりも制御フレームを優先的に送信するように制御することを特徴とする。
【００５２】
また、本発明にかかるフレーム送信制御方法は、
フレームを受信する受信手段と、制御手段と、を有し、データフレームと、制御フレームと、を同一経路に送信する通信装置で行うフレーム送信制御方法であって、
前記受信手段へのフレームの受信が完了する受信完了時刻を推定する推定工程と、
前記受信完了時刻に応じて、前記データフレームと前記制御フレームとの送信タイミングを制御する制御工程と、を、前記制御手段が行うことを特徴とする。
【００５３】
また、本発明にかかるフレーム送信制御プログラムは、
フレームを受信する受信手段と、制御手段と、を有し、データフレームと、制御フレームと、を同一経路に送信する通信装置に実行させるフレーム送信制御プログラムであって、
前記受信手段へのフレームの受信が完了する受信完了時刻を推定する推定処理と、
前記受信完了時刻に応じて、前記データフレームと前記制御フレームとの送信タイミングを制御する制御処理と、を、前記制御手段に実行させることを特徴とする。
【発明の効果】
【００５４】
本発明によれば、フレームの受信が完了する受信完了時刻を推定し、その受信完了時刻に応じて、データフレームと制御フレームとの送信タイミングを制御し、制御フレームの待ち時間を低減し、制御フレームの遅延による各種制御効果の劣化を改善することが可能となる。
【発明を実施するための最良の形態】
【００５５】
まず、図１を参照しながら、本実施形態の通信装置の特徴について説明する。
【００５６】
本実施形態の通信装置は、データフレーム（１０１）と、制御フレーム（１０３）と、を同一経路に送信する通信装置であり、フレーム（１０２）を受信する受信手段（受信バッファ：１５に該当）と、受信手段（１５）へのフレーム（１０２）の受信が完了する受信完了時刻を推定する推定手段（フレーム終端回路：１４、制御フレーム生成推定回路：１７、フレーム長分布推定回路：１９に該当）と、受信完了時刻に応じて、データフレーム（１０１）と制御フレーム（１０３）との送信タイミングを制御する制御手段（送信選択回路：１３に該当）と、を有することを特徴とする。
【００５７】
これにより、フレーム（１０２）の受信が完了する受信完了時刻を推定し、その受信完了時刻に応じて、データフレーム（１０１）と制御フレーム（１０３）との送信タイミングを制御し、制御フレーム（１０３）の待ち時間を低減し、制御フレーム（１０３）の遅延による各種制御効果の劣化を改善することが可能となる。以下、添付図面を参照しながら、本実施形態の通信装置について詳細に説明する。
【００５８】
＜通信装置の構成＞
まず、図１を参照しながら、本実施形態の通信装置の構成について説明する。なお、図１は、本実施形態の通信装置に搭載されるフレーム送受信回路（１０）の構成を示すブロック図である。
【００５９】
なお、図１において、フレーム送受信回路（１０）の左側が上位層（ネットワーク層）を示し、フレーム送受信回路（１０）の右側が下位層（物理層）を示している。なお、本実施形態では、上位層から下位層への方向を『送信側』とし、下位層から上位層への方向を『受信側』とする。
【００６０】
本実施形態におけるフレーム送受信回路（１０）は、送信バッファ（１１）と、フレーム生成回路（１２）と、送信選択回路（１３）と、フレーム終端回路（１４）と、受信バッファ（１５）と、制御フレーム生成回路（１６）と、制御フレーム生成推定回路（１７）と、タイマ回路（１８）と、フレーム長分布推定回路（１９）と、を有して構成している。
【００６１】
なお、図１において、（１０１）は、送信ロングフレームを示し、（１０２）は、受信ロングフレームを示し、（１０３）は、制御フレームを示す。送信ロングフレーム長、受信ロングフレーム長とも、可変長を想定するが、固定長でも良い。また、送信ロングフレーム長と受信ロングフレーム長との間には相関はなく、受信ロングフレーム（１０２）は、送信ロングフレーム（１０１）よりも長くても短くても良い。また、（１０２）は、受信ロングフレームではなく、受信側の制御フレームであっても良いが、以下ではあわせて受信ロングフレーム（１０２）と称す。また、図１では省略しているが、下位層（物理層）からのフレーム入力には、ＳＯＦ、ＥＯＦが並走入力され、また、下位層（物理層）へのフレーム出力には、ＳＯＦ、ＥＯＦが並走出力されている。
【００６２】
なお、本実施形態において制御フレーム（１０３）の種別は特に限定しないが、再送制御やＡＣＫ／ＮＡＣＫ、あるいは、一部のＯＡＭのように、受信ロングフレーム（１０２）の受信、特にその受信完了後に生成する制御フレームとする。
【００６３】
フレーム終端回路（１４）は、ＳＯＦ（Start of Frame）、ＥＯＦ（End of Frame）、受信バイト数を、制御フレーム生成推定回路（１７）に出力する。
【００６４】
制御フレーム生成推定回路（１７）は、ＳＯＦ、ＥＯＦ、受信バイト数を基に、フレーム受信バイト数『ＢＹＴ』をフレーム長分布推定回路（１９）に出力する。また、制御フレーム生成推定回路（１７）は、制御フレーム（１０３）の発出可能性を示す選択信号『ＳＥＬ』を送信選択回路（１３）に出力する。
【００６５】
フレーム長分布推定回路（１９）は、フレーム受信バイト数『ＢＹＴ』を基に、フレーム長分布が閾値『Ｄ＿ＴＨ』を上回る直近のフレーム長『Ｆ＿ＴＨ』と、フレーム受信バイト数『ＢＹＴ』と、の差分バイト数『ΔＦ』を算出し、該算出した差分バイト数『ΔＦ』を制御フレーム生成推定回路（１７）に出力する。但し、『ΔＦ』＝『Ｆ＿ＴＨ』−『ＢＹＴ』である。
【００６６】
送信選択回路（１３）は、送信イネーブル信号『ＴＥ』をフレーム生成回路（１２）に出力する。
【００６７】
フレーム生成回路（１２）は、送信イネーブル信号『ＴＥ』を基に、送信ロングフレーム（１０１）を送信選択回路（１３）に出力する。
【００６８】
タイマ回路（１８）は、タイマカウント値を送信選択回路（１３）に出力する。
【００６９】
＜フレーム送受信回路：１０における制御動作＞
次に、図１に示すフレーム送受信回路（１０）における制御動作について詳細に説明する。
【００７０】
『ＳＯＦ』、『ＥＯＦ』は、双方ともイーサネット（登録商標）と同じく、物理層においては受信ロングフレーム（１０２）の『ヘッダ部』および『トレイラ部』の前後に付加されたものであり、データリンク層へ入力される際は、フレームとは別線にて並走入力され、フレーム終端回路（１４）がそれらを検出して出力する。
【００７１】
『ＢＹＴ』は、フレーム受信バイト数であり、受信ロングフレーム（１０２）毎に０からカウントし直す。
【００７２】
『ΔＦ』は、フレーム長分布推定回路（１９）内で算出する差分バイト数であり、差分バイト数『ΔＦ』は、フレーム長分布が閾値『Ｄ＿ＴＨ』を上回る直近のフレーム長『Ｆ＿ＴＨ』と、フレーム受信バイト数『ＢＹＴ』と、を基に、『ΔＦ』＝『Ｆ＿ＴＨ』−『ＢＹＴ』により算出する。
【００７３】
『ＳＥＬ』は、制御フレーム（１０３）の発出可能性を示す選択信号である。
【００７４】
『ＴＥ』は、送信選択回路（１３）からフレーム生成回路（１２）に出力する送信イネーブル信号である。
【００７５】
送信側では、送信バッファ（１１）は、上位層からデータが入力されると、そのデータを保持し、その保持したデータをフレーム生成回路（１２）に出力する。なお、上位層から入力されるデータは、数十バイト長〜メガバイト長までの任意のデータ長を有する。
【００７６】
フレーム生成回路（１２）は、送信バッファ（１１）から入力されたデータに対し、ヘッダ部、トレイラ部を付加し、送信ロングフレーム（１０１）を生成する。
【００７７】
そして、フレーム生成回路（１２）は、送信選択回路（１３）から入力される送信イネーブル信号『ＴＥ』が『ＴＥ＝‘１’』の場合には、送信ロングフレーム（１０１）を送信選択回路（１３）に出力する。
【００７８】
また、フレーム生成回路（１２）は、送信選択回路（１３）から入力される送信イネーブル信号『ＴＥ』が『ＴＥ＝‘０’』の場合には、送信ロングフレーム（１０１）を送信選択回路（１３）に出力しない。
【００７９】
送信選択回路（１３）は、選択信号『ＳＥＬ』、および、制御フレーム生成回路（１６）からの制御フレーム（１０３）の有無に応じ、下位層側にフレームを出力する。
【００８０】
受信側では、フレーム終端回路（１４）は、受信ロングフレーム（１０２）が入力されると、その受信ロングフレーム（１０２）からヘッダ部とトレイラ部とを取り除く。そして、フレーム終端回路（１４）は、ペイロード部を受信データとして受信バッファ（１５）に転送し、受信バッファ（１５）から上位層側にデータが転送される。
【００８１】
その際に、フレーム終端回路（１４）は、受信ロングフレーム（１０２）とともに並走入力され、その先頭と最後尾を示す『ＳＯＦ』、『ＥＯＦ』を、制御フレーム生成推定回路（１７）に出力する。また、フレーム終端回路（１４）は、受信ロングフレーム（１０２）毎に『受信バイト数』を、制御フレーム生成推定回路（１７）に出力する。
【００８２】
なお、フレーム終端回路（１４）は、トレイラ部からＣＲＣチェックを行い、そのチェック結果を、ＡＣＫ／ＮＡＣＫとして、制御フレーム生成回路（１６）より制御フレーム（１０３）で下位層側の対向装置に返送するように構築することも可能である。
【００８３】
これは、受信ロングフレーム（１０２）の受信完了直後に行うことが可能である。なお、本機能は、イーサネット（登録商標）では定義されていない。また、下位層側の対向装置への制御フレーム（１０３）の返送は、送信選択回路（１３）を経由して行うことになる。
【００８４】
＜制御フレーム生成推定回路：１７における処理動作＞
次に、図２を参照しながら、本実施形態の制御フレーム生成推定回路（１７）における処理動作について詳細に説明する。
【００８５】
まず、スタート後（ステップＳ１）、制御フレーム生成推定回路（１７）は、フレーム受信バイト数『ＢＹＴ』を、『ＢＹＴ＝‘０’』にする（ステップＳ２）。また、制御フレーム生成推定回路（１７）は、選択信号『ＳＥＬ』を『ＳＥＬ信号＝‘０’』とする（ステップＳ３）。
【００８６】
次に、制御フレーム生成推定回路（１７）は、受信ロングフレーム（１０２）が到着したか否かを判断し（ステップＳ４）、受信ロングフレーム（１０２）が到着していないと判断した場合は（ステップＳ４／Ｎｏ）、ステップＳ２に移行する。
【００８７】
また、制御フレーム生成推定回路（１７）は、受信ロングフレーム（１０２）が到着していると判断した場合は（ステップＳ４／Ｙｅｓ）、図１に示すフレーム終端回路（１４）から入力される受信バイト数を基に、フレーム受信バイト数『ＢＹＴ』のカウントを開始する（ステップＳ５）。
【００８８】
そして、制御フレーム生成推定回路（１７）は、図１に示すフレーム長分布推定回路（１９）に対し、ステップＳ５においてカウントしたフレーム受信バイト数『ＢＹＴ』を出力し、フレーム長分布推定回路（１９）から差分バイト数『ΔＦ』を取得する（ステップＳ６）。
【００８９】
そして、 制御フレーム生成推定回路（１７）は、ステップＳ６にて取得した差分バイト数『ΔＦ』を基に、受信ロングフレーム（１０２）の受信が完了すると推測される直近の時刻ｔを、以下の（式１）にて算出する（ステップＳ７）。
【００９０】
ｔ＝ΔＦ÷回線速度・・・・（式１）
【００９１】
なお、回線速度は、図１に示す下位層側に接続されている伝送路の回線速度であり、本実施形態の制御を行う際に、フレーム送受信回路（１０）に予め設定されている速度である。なお、回線速度は、任意に設定変更するように構築することも可能である。
【００９２】
次に、制御フレーム生成推定回路（１７）は、ステップＳ７にて算出した時刻ｔが、ｔ≦Ｔ＿ＭＡＸであるか否かを判断し（ステップＳ８）、ｔ≦Ｔ＿ＭＡＸであると判断した場合（ステップＳ８／Ｙｅｓ）、即ち、閾値Ｔ＿ＭＡＸ以内に受信ロングフレーム（１０２）の受信が完了し、制御フレーム（１０３）を発出すると推測される場合は、選択信号『ＳＥＬ』を『ＳＥＬ＝‘１’』とし、『ＳＥＬ＝‘１’』を送信選択回路（１３）に出力する（ステップＳ９）。
【００９３】
また、ｔ＞Ｔ＿ＭＡＸであると判断した場合は（ステップＳ８／Ｎｏ）、制御フレーム（１０３）を発出すると推測されないため、選択信号『ＳＥＬ』を『ＳＥＬ＝‘０’』とし、『ＳＥＬ＝‘０’』を送信選択回路（１３）に出力する（ステップＳ１０）。
【００９４】
次に、制御フレーム生成推定回路（１７）は、『ＥＯＦ』が入力されて実際に受信ロングフレーム（１０２）の受信が完了したか否かを判断し（ステップＳ１１）、受信ロングフレーム（１０２）の受信が完了したと判断した場合は（ステップＳ１１／Ｙｅｓ）、ステップＳ２に移行する。
【００９５】
また、受信ロングフレーム（１０２）の受信が完了していないと判断した場合は（ステップＳ１１／Ｎｏ）、受信ロングフレーム（１０２）の受信途中と判断し、ステップＳ６に移行する。
【００９６】
＜フレーム長分布推定回路：１９の処理動作＞
次に、図３を参照しながら、本実施形態のフレーム長分布推定回路（１９）における処理動作について説明する。なお、図３は、フレーム送受信回路（１０）が受信する受信ロングフレーム（１０２）のフレーム長分布（フレーム長分布情報）を示す図であり、横軸が、受信ロングフレーム（１０２）のフレーム長を示し、縦軸が、受信ロングフレーム（１０２）の受信回数（受信頻度）を示しており、受信回数（受信頻度）が高い程、そのフレーム長の受信ロングフレーム（１０２）を、フレーム送受信回路（１０）が受信していることを示している。
【００９７】
図３において、『ＢＹＴ』値は、フレーム受信バイト数であり、制御フレーム生成推定回路（１７）から入力される値である。
【００９８】
また、『Ｄ＿ＴＨ』は、フレーム長分布が一定確率以上となるように設定する閾値である。
【００９９】
また、『Ｆ＿ＴＨ』は、フレーム長分布が閾値『Ｄ＿ＴＨ』を上回る、フレーム受信バイト数『ＢＹＴ』以上の直近のフレーム長である。
【０１００】
また、『ΔＦ』は、『ＢＹＴ』と『Ｆ＿ＴＨ』との差分バイト数である。但し、『ΔＦ』＝『Ｆ＿ＴＨ』−『ＢＹＴ』となる。
【０１０１】
なお、フレーム長分布推定回路（１９）は、受信ロングフレーム（１０２）毎に、その受信ロングフレーム（１０２）のフレーム長を順次蓄積し、図３に示すフレーム長分布情報を順次更新してゆく。これにより、最新のフレーム長分布情報を管理することが可能となる。
【０１０２】
そして、フレーム長分布推定回路（１９）は、制御フレーム生成推定回路（１７）からフレーム受信バイト数『ＢＹＴ』が入力される度に、差分バイト数『ΔＦ』を算出し、該算出した差分バイト数『ΔＦ』を、制御フレーム生成推定回路（１７）に出力する。
【０１０３】
なお、図３に示すフレーム長分布情報は、横軸を、受信ロングフレーム（１０２）のフレーム長とし、縦軸を、受信ロングフレーム（１０２）の受信回数（受信頻度）としたが、フレーム送受信回路（１０）が頻繁に受信する受信ロングフレーム（１０２）のフレーム長を把握することが可能であれば、縦軸の情報は、特に限定せず、あらゆる情報を適用することは可能である。
【０１０４】
＜送信選択回路：１３の処理動作＞
次に、図４を参照しながら、本実施形態の送信選択回路（１３）における処理動作について説明する。
【０１０５】
図４において、『ＴＥ』は、フレーム生成回路（１２）に出力する送信イネーブル信号である。
【０１０６】
また、『ＳＥＬ』は、制御フレーム生成推定回路（１７）から入力される制御フレーム（１０３）の発出可能性を示す選択信号である。
【０１０７】
『Ｔ＿ＭＡＸ』は、予め設定した時刻値であり、送信ロングフレーム（１０１）の送出を一時停止しても可能な値である。
【０１０８】
まず、スタート後（ステップＳ２０）、送信選択回路（１３）は、送信イネーブル信号『ＴＥ』を『ＴＥ＝‘０’』に設定する（ステップＳ２１）。また、タイマ回路（１８）を０にクリアすると共に、タイマ回路（１８）のタイマカウントを停止のままの状態にする（ステップＳ２２）。
【０１０９】
次に、送信選択回路（１３）は、制御フレーム生成回路（１６）に送出すべき制御フレーム（１０３）があるか否かを調べ（ステップＳ２３）、送出すべき制御フレーム（１０３）がある場合は（ステップＳ２３／Ｙｅｓ）、その制御フレーム（１０３）を優先的に下位層側に出力する（ステップＳ２４）。
【０１１０】
そして、送信選択回路（１３）は、制御フレーム（１０３）の送信終了後（ステップＳ２５）、ステップＳ２１に移行する。
【０１１１】
また、送信選択回路（１３）は、送出すべき制御フレーム（１０３）がない場合は（ステップＳ２３／Ｎｏ）、選択信号『ＳＥＬ』が『ＳＥＬ＝‘１’』か否かを調べ、制御フレーム（１０３）の発出可能性があるか否かを調べる（ステップＳ２６）。
【０１１２】
送信選択回路（１３）は、選択信号『ＳＥＬ』が『ＳＥＬ＝‘１’』の場合には（ステップＳ２６／Ｙｅｓ）、制御フレーム（１０３）の発出可能性があると判断し、制御フレーム生成回路（１６）に送出すべき制御フレーム（１０３）があるか否か調べ（ステップＳ２７）、送出すべき制御フレーム（１０３）がある場合には（ステップＳ２７／Ｙｅｓ）、ステップＳ２４に移行する。
【０１１３】
また、送出すべき制御フレーム（１０３）が無い場合には（ステップＳ２７／Ｎｏ）、フレーム生成回路（１２）に送信ロングフレーム（１０１）があるか否かを調べる（ステップＳ２８）。
【０１１４】
送信選択回路（１３）は、送信ロングフレーム（１０１）が無い場合には（ステップＳ２８／Ｎｏ）、ステップＳ２６に移行する。
【０１１５】
また、送信ロングフレーム（１０１）がある場合には（ステップＳ２８／Ｙｅｓ）、タイマ回路（１８）のタイマカウントを開始させる（ステップＳ２９）。
【０１１６】
次に、送信選択回路（１３）は、タイマ回路（１８）のタイマカウント値が閾値Ｔ＿ＭＡＸに達したか否かを判断し（ステップＳ３０）、タイマ回路（１８）のタイマカウント値が閾値Ｔ＿ＭＡＸに達していないと判断した場合は（ステップＳ３０／Ｎｏ）、ステップＳ２６に移行する。
【０１１７】
また、タイマ回路（１８）のタイマカウント値が閾値Ｔ＿ＭＡＸに達していると判断した場合は（ステップＳ３０／Ｙｅｓ）、ステップＳ３２に移行する。
【０１１８】
なお、ステップＳ２６において、選択信号『ＳＥＬ』が『ＳＥＬ＝‘０’』の場合には（ステップＳ２６／Ｎｏ）、制御フレーム（１０３）の発出可能性がないと判断し、フレーム生成回路（１２）に送信ロングフレーム（１０１）があるか否かを調べる（ステップＳ３１）。
【０１１９】
送信選択回路（１３）は、送信ロングフレーム（１０１）が無い場合には（ステップＳ３１／Ｎｏ）、ステップＳ２１に移行する。
【０１２０】
また、送信ロングフレーム（１０１）がある場合には（ステップＳ３１／Ｙｅｓ）、ステップＳ３２に移行する。そして、送信選択回路（１３）は、送信イネーブル信号『ＴＥ』を『ＴＥ＝‘１’』に設定し（ステップＳ３２）、フレーム生成回路（１２）から送信ロングフレーム（１０１）を読み出し、該読み出した送信ロングフレーム（１０１）を送信側に送出する（ステップＳ３３）。そして、送信ロングフレーム（１０１）の送信が終了した場合に（ステップＳ３４）、ステップＳ２１に移行する。
【０１２１】
このように、本実施形態における通信装置は、フレーム長分布推定回路（１９）において、受信バッファ（１５）に入力されると推定される受信ロングフレーム（１０２）のフレーム受信バイト数『ＢＹＴ』をカウントする。
【０１２２】
また、フレーム長分布推定回路（１９）は、受信ロングフレーム（１０２）のフレーム長分布情報（図３参照）を保持し、そのフレーム長分布情報を基に、フレーム長分布が閾値『Ｄ＿ＴＨ』を上回る直近のフレーム長『Ｆ＿ＴＨ』と、フレーム受信バイト数『ＢＹＴ』と、の差分バイト数『ΔＦ』を算出し、該算出した差分バイト数『ΔＦ』を、制御フレーム推定回路（１７）に出力する（但し、ΔＦ＝Ｆ＿ＴＨ−ＢＹＴ）。
【０１２３】
制御フレーム生成推定回路（１７）は、フレーム長分布推定回路（１９）から入力された差分バイト数『ΔＦ』を基に、受信ロングフレーム（１０２）の受信完了時刻『ｔ』を推定する（但し、ｔ＝ΔＦ÷回線速度）。
【０１２４】
なお、再送制御など、受信ロングフレーム（１０２）の受信完了と共に発出する制御フレーム（１０３）では、受信ロングフレーム（１０２）の受信完了時刻『ｔ』を推定すれば、その受信完了時刻『ｔ』が、制御フレーム（１０３）の発出推定時刻とほぼ等価になる。
【０１２５】
その結果、予め設定された時間『Ｔ＿ＭＡＸ』以内に受信ロングフレーム（１０２）の受信完了があると推定した場合、つまり、予め設定された時間『Ｔ＿ＭＡＸ』以内に制御フレーム（１０３）の送出の可能性があると推定した場合は、その旨を選択信号『ＳＥＬ』により、送信選択回路（１３）に通知し、送信選択回路（１３）は、選択信号『ＳＥＬ』が入力された場合に、送信ロングフレーム（１０１）の送信を最大で『Ｔ＿ＭＡＸ』時間だけ停止し、その間に、制御フレーム（１０３）の送信を行うように制御する。
【０１２６】
これにより、受信ロングフレーム（１０２）の受信完了時刻『ｔ』、即ち、制御フレーム（１０３）の発出推定時刻『ｔ』を事前に推定し、その推定した発出推定時刻『ｔ』が予め設定された時間『Ｔ＿ＭＡＸ』以内であれば、送信ロングフレーム（１０１）の送出を一時的に停止し、制御フレーム（１０３）を優先的に出力するように制御することで、制御フレーム（１０３）の送出の平均待ち時間を短縮することが可能となる。その結果、制御フレーム（１０３）の遅延による各種制御効果の劣化を改善することが可能となる。
【０１２７】
なお、上述した実施形態では、ＯＳＩ参照モデルのデータリンク層への適用例として説明したが、トランスポート層のＡＣＫ返送などにも適用することが可能である。また、図２、図３、図４の処理は、ディジタル論理回路によるハードウェア処理、または、ＣＰＵやＤＳＰによるソフトウェア処理のどちらを適用することも可能である。
【０１２８】
（第２の実施形態）
次に、第２の実施形態について説明する。
【０１２９】
第１の実施形態では、図１、図２に示すように、制御フレーム生成推定回路（１７）は、ステップＳ７にて算出した時刻ｔが、ｔ≦Ｔ＿ＭＡＸであるか否かを判断し（ステップＳ８）、ｔ≦Ｔ＿ＭＡＸであると判断した場合（ステップＳ８／Ｙｅｓ）、即ち、閾値Ｔ＿ＭＡＸ以内に受信ロングフレーム（１０２）の受信が完了し、制御フレーム（１０３）を発出すると推測される場合は、選択信号『ＳＥＬ』を『ＳＥＬ＝‘１’』とし、『ＳＥＬ＝‘１’』を送信選択回路（１３）に出力し（ステップＳ９）、また、ｔ＞Ｔ＿ＭＡＸであると判断した場合は（ステップＳ８／Ｎｏ）、選択信号『ＳＥＬ』を『ＳＥＬ＝‘０’』とし、『ＳＥＬ＝‘０’』を送信選択回路（１３）に出力する（ステップＳ１０）ことにした。
【０１３０】
第２の実施形態では、図５、図６に示すように、制御フレーム生成推定回路（５７）は、ステップＳ４７にて算出した時刻ｔが、ｔ≦Ｔ＿ＭＡＸであるか否かを判断し（ステップＳ４８）、ｔ≦Ｔ＿ＭＡＸであると判断した場合（ステップＳ４８／Ｙｅｓ）、即ち、閾値Ｔ＿ＭＡＸ以内に受信ロングフレーム（５０２）の受信が完了し、制御フレーム（５０３）を発出すると推測される場合は、更に、ＲＢＬ＋ΔＦと、ＲＢＬ＿ＭＡＸと、の大小比較を行い（ステップＳ５２）、受信バッファ（５５）のバッファオーバーフローが発生するか否かを推測し、受信バッファ（５５）のバッファオーバーフローが発生するか否かに応じて、『ＳＥＬ＝‘０’』、または、『ＳＥＬ＝‘１’』の選択信号『ＳＥＬ』を送信選択回路（５３）に出力することを特徴とする（ステップＳ５２、４９，５０）。なお、『ＲＢＬ』は、受信完了時刻時の受信バッファ（５５）の蓄積バイト数を示し、『ＲＢＬ＿ＭＡＸ』は、受信バッファ（５５）の最大バッファ長を示す。
【０１３１】
このように、第２の実施形態は、受信バッファ（５５）のバッファオーバーフローが発生するか否かを推測し、その推測結果に応じた選択信号『ＳＥＬ』を送信選択回路（５３）に出力し、送信選択回路（５３）から出力する送信ロングフレーム（５０１）と、制御フレーム（５０３）と、の送信タイミングを制御することを特徴とする。これにより、第１の実施形態と同様に、制御フレーム（５０３）の遅延による各種制御効果の劣化を改善することが可能となる。以下、図５〜図７を参照しながら、第２の実施形態の通信装置について詳細に説明する。なお、第２の実施形態は、図５に示す受信バッファ（５５）の蓄積バイト数から、ポーズフレームを送信する例を示している。
【０１３２】
＜通信装置の構成＞
まず、図５を参照しながら、本実施形態の通信装置の構成について説明する。なお、図５は、本実施形態の通信装置に搭載されるフレーム送受信回路（５０）の構成を示すブロック図である。
【０１３３】
なお、図５において、フレーム送受信回路（５０）の左側が上位層（ネットワーク層）を示し、フレーム送受信回路（５０）の右側が下位層（物理層）を示している。なお、本実施形態では、上位層から下位層への方向を『送信側』とし、下位層から上位層への方向を『受信側』とする。
【０１３４】
本実施形態におけるフレーム送受信回路（５０）は、送信バッファ（５１）と、フレーム生成回路（５２）と、送信選択回路（５３）と、フレーム終端回路（５４）と、受信バッファ（５５）と、制御フレーム生成回路（５６）と、制御フレーム生成推定回路（５７）と、タイマ回路（５８）と、フレーム長分布推定回路（５９）と、を有して構成している。
【０１３５】
また、（５０１）は送信ロングフレームを示し、（５０２）は、受信ロングフレームを示し、（５０３）は、制御フレームを示す。送信ロングフレーム長、受信ロングフレーム長とも、可変長を想定するが、固定長でも良い。また、送信ロングフレーム長と受信ロングフレーム長との間には相関はなく、受信ロングフレーム（５０２）は、送信ロングフレーム（５０１）よりも長くても短くても良い。また、（５０２）は、受信ロングフレームでなく、受信側の制御フレームであっても良いが、以下ではあわせて受信ロングフレーム（５０２）と称す。また、図５では省略しているが、下位層（物理層）からのフレーム入力には、ＳＯＦ、ＥＯＦが並走入力され、また、下位層（物理層）へのフレーム出力には、ＳＯＦ、ＥＯＦが並走出力されている。
【０１３６】
なお、本実施形態において、制御フレーム（５０３）の種別は特に限定しないが、受信バッファ（５５）の状態に応じたポーズフレームとする。
【０１３７】
フレーム終端回路（５４）は、ＳＯＦ（Start of Frame）、ＥＯＦ（End of Frame）、受信バイト数を、制御フレーム生成推定回路（５７）に出力する。
【０１３８】
制御フレーム生成推定回路（５７）は、ＳＯＦ、ＥＯＦ、受信バイト数を基に、フレーム受信バイト数『ＢＹＴ』をフレーム長分布推定回路（５９）に出力する。また、制御フレーム生成推定回路（５７）は、制御フレーム（５０３）の発出可能性を示す選択信号『ＳＥＬ』を送信選択回路（５３）に出力する。
【０１３９】
フレーム長分布推定回路（５９）は、フレーム受信バイト数『ＢＹＴ』を基に、フレーム長分布が閾値『Ｄ＿ＴＨ』を上回る直近のフレーム長『Ｆ＿ＴＨ』と、フレーム受信バイト数『ＢＹＴ』と、の差分バイト数『ΔＦ』を算出し、該算出した差分バイト数『ΔＦ』を制御フレーム生成推定回路（５７）に出力する。但し、『ΔＦ』＝『Ｆ＿ＴＨ』−『ＢＹＴ』である。
【０１４０】
送信選択回路（５３）は、送信イネーブル信号『ＴＥ』をフレーム生成回路（５２）に出力する。
【０１４１】
フレーム生成回路（５２）は、送信イネーブル信号『ＴＥ』を基に、送信ロングフレーム（５０１）を送信選択回路（５３）に出力する。
【０１４２】
タイマ回路（５８）は、タイマカウント値を送信選択回路（５３）に出力する。
【０１４３】
＜フレーム送受信回路：５０における制御動作＞
次に、図５に示すフレーム送受信回路（５０）における制御動作について詳細に説明する。
【０１４４】
『ＳＯＦ』、『ＥＯＦ』は、双方ともイーサネット（登録商標）と同じく、物理層においては受信ロングフレーム（５０２）の『ヘッダ部』および『トレイラ部』の前後に付加されたものであり、データリンク層へ入力される際は、フレームとは別線にて並走入力され、フレーム終端回路（５４）がそれらを検出して出力する。  
【０１４５】
『ＢＹＴ』は、フレーム受信バイト数であり、受信ロングフレーム（５０２）毎に０からカウントし直す。
【０１４６】
『ΔＦ』は、フレーム長分布推定回路（５９）内で算出する差分バイト数であり、差分バイト数『ΔＦ』は、フレーム長分布が閾値『Ｄ＿ＴＨ』を上回る直近のフレーム長『Ｆ＿ＴＨ』と、フレーム受信バイト数『ＢＹＴ』と、を基に、『ΔＦ』＝『Ｆ＿ＴＨ』−『ＢＹＴ』により算出する。
【０１４７】
『ＳＥＬ』は、制御フレーム（５０３）の発出可能性を示す選択信号である。
【０１４８】
『ＴＥ』は、送信選択回路（５３）からフレーム生成回路（５２）に出力する送信イネーブル信号である。
【０１４９】
送信側では、送信バッファ（５１）は、上位層からデータが入力されると、そのデータを保持し、その保持したデータをフレーム生成回路（５２）に出力する。なお、上位層から入力されるデータは、数十バイト長〜メガバイト長までの任意のデータ長を有する。
【０１５０】
フレーム生成回路（５２）は、送信バッファ（５１）から入力されたデータに対し、ヘッダ部、トレイラ部を付加し、送信ロングフレーム（５０１）を生成する。
【０１５１】
そして、フレーム生成回路（５２）は、送信選択回路（５３）から入力される送信イネーブル信号『ＴＥ』が『ＴＥ＝‘１’』の場合には、送信ロングフレーム（５０１）を送信選択回路（５３）に出力する。
【０１５２】
また、フレーム生成回路（５２）は、送信選択回路（５３）から入力される送信イネーブル信号『ＴＥ』が『ＴＥ＝‘０’』の場合には、送信ロングフレーム（５０１）を送信選択回路（５３）に出力しない。
【０１５３】
送信選択回路（５３）は、選択信号『ＳＥＬ』、および、制御フレーム生成回路（５６）からの制御フレーム（５０３）の有無に応じ、下位層側にフレームを出力する。
【０１５４】
受信側では、フレーム終端回路（５４）は、受信ロングフレーム（５０２）が入力されると、その受信ロングフレーム（５０２）からヘッダ部とトレイラ部とを取り除く。そして、フレーム終端回路（５４）は、ペイロード部を受信データとして受信バッファ（５５）に転送し、受信バッファ（５５）から上位層側にデータが転送される。
【０１５５】
その際に、フレーム終端回路（５４）は、受信ロングフレーム（５０２）とともに並走入力され、その先頭と最後尾を示す『ＳＯＦ』、『ＥＯＦ』を、制御フレーム生成推定回路（５７）に出力する。また、フレーム終端回路（５４）は、受信ロングフレーム（５０２）毎に『受信バイト数』を、制御フレーム生成推定回路（５７）に出力する。
【０１５６】
なお、受信バッファ（５５）の輻輳情報は、ポーズフレームとして、制御フレーム生成回路（５６）より制御フレーム（５０３）で下位層側の対向装置に返送するように構築する。なお、下位層側の対向装置への制御フレーム（５０３）の返送は、送信選択回路（５３）を経由して行うことになる。
【０１５７】
＜制御フレーム生成推定回路：５７における処理動作＞
次に、図６を参照しながら、本実施形態の制御フレーム生成推定回路（５７）における処理動作について詳細に説明する。
【０１５８】
なお、図６において、『ＲＢＬ』は、受信完了時刻時の受信バッファ（５５）の蓄積バイト数である。
【０１５９】
また、『ＲＢＬ＿ＭＡＸ』は、受信バッファ（５５）の最大バッファ長である。なお、『ＲＢＬ＿ＭＡＸ』は、受信バッファ（５５）に応じて任意に設定変更するように構築することも可能である。
【０１６０】
まず、スタート後（ステップＳ４１）、制御フレーム生成推定回路（５７）は、フレーム受信バイト数『ＢＹＴ』を、『ＢＹＴ＝‘０’』にする（ステップＳ４２）。また、制御フレーム生成推定回路（５７）は、選択信号『ＳＥＬ』を『ＳＥＬ信号＝‘０’』とする（ステップＳ４３）。
【０１６１】
次に、制御フレーム生成推定回路（５７）は、受信ロングフレーム（５０２）が到着したか否かを判断し（ステップＳ４４）、受信ロングフレーム（５０２）が到着していないと判断した場合は（ステップＳ４４／Ｎｏ）、ステップＳ４２に移行する。
【０１６２】
また、制御フレーム生成推定回路（５７）は、受信ロングフレーム（５０２）が到着していると判断した場合は（ステップＳ４４／Ｙｅｓ）、図５に示すフレーム終端回路（５４）から入力される受信バイト数を基に、フレーム受信バイト数『ＢＹＴ』のカウントを開始する（ステップＳ４５）。
【０１６３】
そして、制御フレーム生成推定回路（５７）は、図５に示すフレーム長分布推定回路（５９）に対し、ステップＳ４５においてカウントしたフレーム受信バイト数『ＢＹＴ』を出力し、フレーム長分布推定回路（５９）から差分バイト数『ΔＦ』を取得する（ステップＳ４６）。
【０１６４】
そして、 制御フレーム生成推定回路（５７）は、ステップＳ４６にて取得した差分バイト数『ΔＦ』を基に、受信ロングフレーム（５０２）の受信が完了すると推測される直近の時刻ｔを、以下の（式１）にて算出する（ステップＳ４７）。
【０１６５】
ｔ＝ΔＦ÷回線速度・・・・（式１）
【０１６６】
次に、制御フレーム生成推定回路（５７）は、ステップＳ４７にて算出した時刻ｔが、ｔ≦Ｔ＿ＭＡＸであるか否かを判断し（ステップＳ４８）、ｔ≦Ｔ＿ＭＡＸであると判断した場合（ステップＳ４８／Ｙｅｓ）、即ち、閾値Ｔ＿ＭＡＸ以内に受信ロングフレーム（５０２）の受信が完了し、制御フレーム（５０３）を発出すると推測される場合は、更に、ＲＢＬ＋ΔＦと、ＲＢＬ＿ＭＡＸと、の大小比較を行う（ステップＳ５２）。
【０１６７】
これは、受信バッファ（５５）の蓄積バイト数がＲＢＬ＋ΔＦまで伸びると推測されるためである。
【０１６８】
制御フレーム生成推定回路（５７）は、ＲＢＬ＋ΔＦ≧ＲＢＬ＿ＭＡＸであると判断した場合は（ステップＳ５２／Ｙｅｓ）、受信バッファ（５５）のバッファオーバーフローの発生が推測されるため，選択信号『ＳＥＬ』を『ＳＥＬ＝‘１’』とし、『ＳＥＬ＝‘１’』を送信選択回路（５３）に出力する（ステップＳ４９）。
【０１６９】
一方、制御フレーム生成推定回路（５７）は、ＲＢＬ＋ΔＦ＜ＲＢＬ＿ＭＡＸであると判断した場合は（ステップＳ５２／Ｎｏ）、受信バッファ（５５）のバッファオーバーフローが発生しないと推測されるため、選択信号『ＳＥＬ』を『ＳＥＬ＝‘０’』とし、『ＳＥＬ＝‘０’』を送信選択回路（５３）に出力する（ステップＳ５０）。
【０１７０】
また、制御フレーム生成推定回路（５７）は、ステップＳ４８でｔ＞Ｔ＿ＭＡＸであると判断した場合は（ステップＳ４８／Ｎｏ）、選択信号『ＳＥＬ』を『ＳＥＬ＝‘０’』とし、『ＳＥＬ＝‘０’』を送信選択回路（５３）に出力する（ステップＳ５０）。
【０１７１】
次に、制御フレーム生成推定回路（５７）は、ＥＯＦが入力されて実際に受信ロングフレーム（５０２）の受信が完了したか否かを判断し（ステップＳ５１）、受信ロングフレーム（５０２）の受信が完了したと判断した場合は（ステップＳ５１／Ｙｅｓ）、ステップＳ４２に移行する。
【０１７２】
また、受信ロングフレーム（５０２）の受信が完了していないと判断した場合は（ステップＳ５１／Ｎｏ）、受信ロングフレーム（５０２）の受信途中と判断し、ステップＳ４６に移行する。
【０１７３】
＜フレーム長分布推定回路：５９の処理動作＞
次に、図３を参照しながら、本実施形態のフレーム長分布推定回路（５９）における処理動作について説明する。
【０１７４】
本実施形態のフレーム長分布推定回路（５９）における処理動作は、第１の実施形態と同様である。即ち、フレーム長分布推定回路（５９）は、制御フレーム生成推定回路（５７）からフレーム受信バイト数『ＢＹＴ』が入力される度に、差分バイト数『ΔＦ』を算出し、該算出した差分バイト数『ΔＦ』を制御フレーム生成推定回路（５７）に出力することになる。また、フレーム長分布推定回路（５９）は、受信ロングフレーム（５０２）毎に、その受信ロングフレーム（５０２）のフレーム長を順次蓄積し、フレーム長分布情報を順次更新してゆくことになる。
【０１７５】
＜送信選択回路：５３の処理動作＞
次に、図７を参照しながら、本実施形態の送信選択回路（５３）における処理動作について説明する。なお、本実施形態の送信選択回路（５３）における処理動作は、第１の実施形態と同様である。
【０１７６】
なお、図７において、『ＴＥ』は、フレーム生成回路（５２）に出力する送信イネーブル信号である。
【０１７７】
また、『ＳＥＬ』は、制御フレーム生成推定回路（５７）から入力される制御フレーム（５０３）の発出可能性を示す選択信号である。
【０１７８】
『Ｔ＿ＭＡＸ』は、予め設定した時刻値であり、送信ロングフレーム（５０１）の送出を一時停止しても可能な値である。
【０１７９】
まず、スタート後（ステップＳ６０）、送信選択回路（５３）は、送信イネーブル信号『ＴＥ』を『ＴＥ＝‘０’』に設定する（ステップＳ６１）。また、タイマ回路（５８）を０にクリアすると共に、タイマ回路（５８）のタイマカウントを停止のままの状態にする（ステップＳ６２）。
【０１８０】
次に、送信選択回路（５３）は、制御フレーム生成回路（５６）に送出すべき制御フレーム（５０３）があるか否かを調べ（ステップＳ６３）、送出すべき制御フレーム（５０３）がある場合は（ステップＳ６３／Ｙｅｓ）、その制御フレーム（５０３）を優先的に下位層側に出力する（ステップＳ６４）。
【０１８１】
そして、送信選択回路（５３）は、制御フレーム（５０３）の送信終了後（ステップＳ６５）、ステップＳ６１に移行する。
【０１８２】
また、送信選択回路（５３）は、送出すべき制御フレーム（５０３）がない場合は（ステップＳ６３／Ｎｏ）、選択信号『ＳＥＬ』が『ＳＥＬ＝‘１’』か否かを調べ、制御フレーム（５０３）の発出可能性があるか否かを調べる（ステップＳ６６）。
【０１８３】
送信選択回路（５３）は、選択信号『ＳＥＬ』が『ＳＥＬ＝‘１’』の場合には（ステップＳ６６／Ｙｅｓ）、制御フレーム（５０３）の発出可能性があると判断し、制御フレーム生成回路（５６）に送出すべき制御フレーム（５０３）があるか否か調べ（ステップＳ６７）、送出すべき制御フレーム（５０３）がある場合には（ステップＳ６７／Ｙｅｓ）、ステップＳ６４に移行する。
【０１８４】
また、送出すべき制御フレーム（５０３）が無い場合には（ステップＳ６７／Ｎｏ）、フレーム生成回路（５２）に送信ロングフレーム（５０１）があるか否かを調べる（ステップＳ６８）。
【０１８５】
送信選択回路（５３）は、送信ロングフレーム（５０１）が無い場合には（ステップＳ６８／Ｎｏ）、ステップＳ６６に移行する。
【０１８６】
また、送信ロングフレーム（５０１）がある場合には（ステップＳ６８／Ｙｅｓ）、タイマ回路（５８）のタイマカウントを開始させる（ステップＳ６９）。
【０１８７】
次に、送信選択回路（５３）は、タイマ回路（５８）のタイマカウント値が閾値Ｔ＿ＭＡＸに達したか否かを判断し（ステップＳ７０）、タイマ回路（５８）のタイマカウント値が閾値Ｔ＿ＭＡＸに達していないと判断した場合は（ステップＳ７０／Ｎｏ）、ステップＳ６６に移行する。
【０１８８】
また、タイマ回路（５８）のタイマカウント値が閾値Ｔ＿ＭＡＸに達していると判断した場合は（ステップＳ７０／Ｙｅｓ）、ステップ６２に移行する。
【０１８９】
なお、ステップＳ６６において、選択信号『ＳＥＬ』が『ＳＥＬ＝‘０’』の場合には（ステップＳ６６／Ｎｏ）、制御フレーム（５０３）の発出可能性がないと判断し、フレーム生成回路（５２）に送信ロングフレーム（５０１）があるか否かを調べる（ステップＳ７１）。
【０１９０】
送信選択回路（５３）は、送信ロングフレーム（５０１）が無い場合には（ステップＳ７１／Ｎｏ）、ステップＳ６１に移行する。
【０１９１】
また、送信ロングフレーム（５０１）がある場合には（ステップＳ７１／Ｙｅｓ）、ステップＳ７２に移行する。そして、送信選択回路（５３）は、送信イネーブル信号『ＴＥ』を『ＴＥ＝‘１’』に設定し（ステップＳ７２）、フレーム生成回路（５２）から送信ロングフレーム（５０１）を読み出し、該読み出した送信ロングフレーム（５０１）を送信側に送出する（ステップＳ７３）。そして、送信ロングフレーム（５０１）の送信が終了した場合に（ステップＳ７４）、ステップＳ６１に移行する。
【０１９２】
このように、本実施形態における通信装置は、受信バッファ（５５）のバッファオーバーフローが発生するか否かを推測し、その推測結果に応じた選択信号『ＳＥＬ』を送信選択回路（５３）に出力し、送信選択回路（５３）から出力する送信ロングフレーム（５０１）と、制御フレーム（５０３）と、の送信タイミングを制御することで、第１の実施形態と同様に、制御フレーム（５０３）の送出の平均待ち時間を短縮することが可能となる。その結果、制御フレーム（５０３）の遅延による各種制御効果の劣化を改善することが可能となる。
【０１９３】
なお、上述した実施形態では、ＯＳＩ参照モデルのデータリンク層への適用例として説明したが、トランスポート層のＡＣＫ返送などにも適用することが可能である。また、図６、図７の処理は、ディジタル論理回路によるハードウェア処理、または、ＣＰＵやＤＳＰによるソフトウェア処理のどちらを適用することも可能である。
【０１９４】
このように、本実施形態における通信装置は、数十バイト長〜１メガバイト長のようなロングフレームの送受信回路（１０、５０）において、制御フレーム（１０３、５０３）の送出の平均待ち時間を短縮することが可能となる。
【０１９５】
その理由は、制御フレーム（１０３、５０３）の送信待ち時間は、最長で、受信ロングフレーム（１０２、５０２）のフレーム長であったものが、最大で、予め設定されたＴ＿ＭＡＸ時間分だけ短縮することが可能となるためである。
【０１９６】
具体的には、送信選択回路（１３、５３）および制御フレーム生成推定回路（１７、５７）において、送信ロングフレーム（１０１、５０１）の読み出しを一時停止する際の最大の停止時間Ｔ＿ＭＡＸを事前に設定しておき、また、制御フレーム生成推定回路（１７、５７）は、フレーム長分布推定回路（１９、５９）において算出した差分バイト数『ΔＦ』を基に、受信ロングフレーム（１０２、５０２）の受信完了時刻『ｔ』を推定し、即ち、制御フレーム（１０３、５０３）の発出推定時刻『ｔ』を推測する。
【０１９７】
そして、その発出推定時刻『ｔ』が予め設定した時刻『Ｔ＿ＭＡＸ』以内であれば、選択信号『ＳＥＬ』により、その旨を送信選択回路（１３、５３）に通知し、送信選択回路（１３、５３）は、選択信号『ＳＥＬ』が入力された場合に、送信ロングフレーム（１０１、５０１）の送信を、最大で、予め設定した『Ｔ＿ＭＡＸ』時間だけ停止し、その間に、制御フレーム（１０３、５０３）の送信を可能とするように制御することになる。これにより、最大で、予め設定されたＴ＿ＭＡＸ時間分だけ短縮することが可能となる。
【０１９８】
特に、制御フレーム（１０３、５０３）は、再送制御、ＡＣＫ／ＮＡＣＫ等のフィードバック制御や一部のＯＡＭで用いられることが想定され、これらは、ラウンドトリップ時間が重要である。
【０１９９】
従って、本実施形態によるフレーム送信制御により、制御フレーム（１０３、５０３）のラウンドトリップ時間が短縮される状況が生まれ、制御フレーム（１０３、５０３）による制御効果の向上、その制御フレーム（１０３、５０３）を用いた通信システムの性能向上、信頼性向上を図ることが可能となる。
【０２００】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０２０１】
例えば、上述する実施形態では、発出推定時刻『ｔ』が予め設定した時刻『Ｔ＿ＭＡＸ』以内であれば、送信ロングフレーム（１０１、５０１）よりも制御フレーム（１０３、５０３）を優先的に送信し、その間は、送信ロングフレーム（１０１、５０１）の送信を待たせるように制御することにしたが、送信ロングフレーム（１０１、５０１）を破棄するように制御することも可能である。
【０２０２】
また、上述した実施形態における通信装置における制御動作は、ハード構成ではなく、コンピュータプログラム等のソフトウェアにより実行することも可能であり、また、上記のプログラムは、光記録媒体、磁気記録媒体、光磁気記録媒体、または半導体等の記録媒体に記録し、その記録媒体から上記プログラムを、上述した通信装置に読み込ませることで、上述した制御動作を、通信装置において実行させることも可能である。また、所定のネットワークを介して接続されている外部機器から上記プログラムを上述した通信装置に読み込ませることで、上述した制御動作を、通信装置において実行させることも可能である。
【産業上の利用可能性】
【０２０３】
本発明にかかる通信装置、フレーム送信制御方法及びフレーム送信制御プログラムは、フレーム長が長いロングフレームを送受信するネットワーク環境下に設置される機器に適用可能である。
【図面の簡単な説明】
【０２０４】
【図１】第１の実施形態の制御フレーム生成推定機能を有するフレーム送受信回路（１０）の構成を示すブロック図である。
【図２】第１の実施形態の制御フレーム生成推定回路（１７）における処理動作を説明するための処理フロー図である。
【図３】第１の実施形態のフレーム長分布推定回路（１９）における処理動作の説明するための図である。
【図４】第１の実施形態の送信選択回路（１３）における処理動作を説明するための処理フロー図である。
【図５】第２の実施形態の制御フレーム生成推定機能を有するフレーム送受信回路（５０）の構成を示すブロック図である。
【図６】第２の実施形態の制御フレーム生成推定回路（５７）における処理動作を説明するための処理フロー図である。
【図７】第２の実施形態の送信選択回路（５３）における処理動作を説明するための処理フロー図である。
【図８】従来のフレーム送受信回路（８０）の構成を示すブロック図である。
【図９】ロングフレーム、および、制御フレームのフォーマットを説明するための図である。
【符号の説明】
【０２０５】
１０、５０、８０    フレーム送受信回路
１１、５１、８１    送信バッファ
１２、５２、８２    フレーム生成回路
１３、５３    送信選択回路
８３    送信選択回路
１４、５４、８４    フレーム終端回路
１５、５４、８５    受信バッファ
１６、５６、８６    制御フレーム生成回路
１７、５７    制御フレーム生成推定回路
１８、５８    タイマ回路
１９、５９    フレーム長分布推定回路
１０１、５０１、８０１    送信ロングフレーム
１０２、５０２、８０２    受信ロングフレーム
１０３、５０３、８０３    制御フレーム
【図１】
2008219269.tif 000003
【図２】
2008219269.tif 000004
【図３】
2008219269.tif 000005
【図４】
2008219269.tif 000006
【図５】
2008219269.tif 000007
【図６】
2008219269.tif 000008
【図７】
2008219269.tif 000009
【図８】
2008219269.tif 000010
【図９】
2008219269.tif 000011