JP4612821B2 - 通信制御装置及び方法 - Google Patents
通信制御装置及び方法 Download PDFInfo
- Publication number
- JP4612821B2 JP4612821B2 JP2004264645A JP2004264645A JP4612821B2 JP 4612821 B2 JP4612821 B2 JP 4612821B2 JP 2004264645 A JP2004264645 A JP 2004264645A JP 2004264645 A JP2004264645 A JP 2004264645A JP 4612821 B2 JP4612821 B2 JP 4612821B2
- Authority
- JP
- Japan
- Prior art keywords
- header
- frame
- payload
- header generation
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
図1は、本発明の第1の実施形態による通信制御装置の構成例を示すブロック図である。以下、図1を用いてその構成を説明する。
アプリケーションデバイス(101)は、送信要求(106)と送信データ長(107)をフレーム個数フレーム長算出部(102)に出力し、送信データ(110)をペイロード分割部(103)に出力する。アプリケーションデバイス(101)には、2つの種類が想定される。1つ目はコンスタントビットレート(単位時間あたりの情報量が一定)のデバイスである。2つ目はバリアブルビットレート(単位時間あたりの情報量が一定ではないが、単位時間辺りの情報量は明示される)のデバイスである。その他にバリアブルビットレートのデバイスからの情報を一時的にバッファリングし定期的に一定量の情報を出力する様シェーピングするデバイスである場合も想定されるがこれは1つ目の種類のデバイスと同じと見なせる。また、サンプリング周波数で予め規定された量子化ビットレートでRAW情報を出力してくるデバイスも想定できるが、これは1つ目の種類のデバイスと同様に見なすことが出来る。これら全てのアプリケーションデバイス(101)に接続される本実施形態による通信制御装置は、アプリケーションデバイス(101)とのインタフェースにおいて、送信要求(106)、送信データ長(107)、送信データ(110)を受ける事とする。
フレーム個数フレーム長算出部(102)は、アプリケーションデバイス(101)から入力された送信要求(106)をトリガに、同じく入力された送信データ長(107)を基に送信データを幾つのフレームに分割して出力すべきかを算出する。
本通信制御装置ではアプリケーションデバイス(101)からの送信要求(106)と送信データ長(107)を基に、まずフレーム個数とフレーム長の算出を行い、その後、ペイロード分割とヘッダ生成を開始する。これはペイロード分割とヘッダ生成を同時に開始する事を狙ったものである。
ペイロード分割部(103)ではフレーム個数フレーム長算出部(102)から与えられたフレーム個数とフレーム長に関する入力(109)を基にアプリケーションデバイス(101)から与えられた送信データ(110)を分割しながらフレームペイロードとしてペイロードTXメモリ(104)に書き込み保存を行う(111)。ペイロード分割部(103)は、フレームペイロード書き込みが完了したらヘッダ/ペイロード合成部(120)に対しフレームペイロードの送信準備が出来た事を通知する(136)。
ペイロード分割部(103)ではフレーム個数フレーム長算出部(102)から与えられたフレーム個数とフレーム長に関する入力(109)を基にアプリケーションデバイス(101)から与えられた送信データ(110)を分割しながらフレームペイロードとしてペイロードTXメモリ(104)に書き込み保存を行う(111)際、フレームペイロードのチェックサムをフレーム毎に求め、UDPヘッダ生成部(117)及び、TCPヘッダ生成部(116)にチェックサム値を伝える(135)。
TXメモリ(104)では1つの送信要求に伴う一連の送信データを、送信要求毎、フレームペイロードFIFOにフレームペイロードの列として保存している。図5に示す様にTXメモリ(104)内部には1つの送信要求に伴い1つのFIFOが割り当てられ(340)、例えばここでは1つの送信要求による送信データが5つのフレームペイロードから成ることを示している。本図ではフレームペイロード1(先頭フレーム)からフレームペイロード5(最後尾フレーム)がFIFOに蓄えられているがフレーム単位での送信が行われる場合はこの様に5つのフレームが溜まることはない。各々のフレームペイロードはFIFOに挿入された直後にペイロード読み出し部(105)により抜き出され送信される事も考えられる。
ペイロード読み出し部(105)ではヘッダ/ペイロード合成部(120)からの、1つのペイロード読み出し指示(114)に対し、送信すべきフレームペイロードをTXメモリ(104)から1つ取り出し、ヘッダ/ペイロード合成部(120)へ出力する(113)。
プロトコル制御部(115)ではフレーム個数フレーム長算出部(102)からフレーム個数、先頭フレームのペイロード長、中間フレームのペイロード長、最終フレームのペイロード長の4つの値(108)を受信すると、送信フレームがTCPなのかUDPなのかを判断し、フレーム送信に必要なプロトコルヘッダを生成するための情報を収集し、ヘッダ生成指示とヘッダ生成情報を各プロトコルヘッダ生成部(116〜119)に同時配信する。収集する各種情報は静的に設定されている場合と動的にテーブル検索を行う場合がある。動的なテーブルとしては、コネクションに付随する宛先IPアドレス、送信元IPアドレス、宛先ポート、送信元ポートを割り出すアドレステーブルや、IPのルーティングテーブルなどがあげられる。
TCPヘッダ生成部(116)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にTCPヘッダ生成完了通知(126)を行う。ヘッダ生成のフローチャートを図8に示す。ステップS801においてTCPヘッダ生成指示をプロトコル制御部(115)から受信したかを確認する。もしTCPヘッダ生成指示を受信したら、プロトコル制御部(115)からTCPヘッダ情報を取得する(ステップS802)。TCPヘッダ情報はヘッダ生成数とヘッダ生成数分の送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、ヘッダ長、フラグビット、ウィンドウサイズ、緊急ポインタ及び擬似ヘッダ用の宛先IPアドレス、送信元IPアドレス、セグメント長(TCPヘッダ長+ペイロード長)である。取得したヘッダ生成情報から擬似ヘッダとチェックサム以外のTCPヘッダを作成する(ステップS803)。次にフレームごとのペイロードサムをペイロード分割部(103)より受信したかの判断を行い、もし受信していれば(ステップS804:Yes)、擬似ヘッダとチェックサム以外のTCPヘッダとペイロードサムからTCPのチェックサムを算出する(ステップS805)。ステップS805で算出したチェックサムをステップS806にてTCPヘッダのチェックサムフィールドに設定し、1フレーム分のTCPヘッダの生成を完了する。1フレーム分のTCPヘッダの生成が完了すると、ステップS807においてヘッダ/ペイロード合成部(120)にTCPヘッダ生成完了通知(126)を行い、ヘッダ生成数分のヘッダを生成したかの判断を行う(ステップS808)。もし、ヘッダ生成数分のヘッダを生成していない場合(ステップS808:No)は、ステップS803に戻り次のヘッダの生成を開始する。ヘッダ生成数分のヘッダを生成した場合(ステップS808:Yes)は、送信データグラムに付加しなければならないTCPヘッダを全て生成したとしてTCPヘッダ生成を終了する。TCPヘッダ生成部(116)で作成するヘッダのフォーマットを図14に、擬似ヘッダフォーマットを図15に示す。
UDPヘッダ生成部(117)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にUDPヘッダ生成完了通知(127)を行う。ヘッダ生成のフローチャートを図9に示す。ステップS901においてUDPヘッダ生成指示をプロトコル制御部(115)から受信したかを確認する。もしUDPヘッダ生成指示を受信したら、プロトコル制御部(115)からUDPヘッダ生成情報を取得する(ステップS902)。UDPヘッダ生成情報は、フレーム個数、送信元ポート番号、宛先ポート番号、UDPデータ長である。取得したヘッダ生成情報から擬似ヘッダとチェックサム以外のUDPヘッダを作成する(ステップS903)。次にフレームごとのペイロードサムをペイロード分割部(103)より受信したかの判断を行い、もし受信していれば(ステップS904:Yes)、ステップS905にてフレームごとのペイロードサムを加算する。次にステップS906にてフレーム個数分のペイロードサムをペイロード分割部(103)より受信したかの判断を行い、もし全てのペイロードサムを受信していなければ(ステップS906:No)、ステップS904に戻り次のフレームペイロード受信待ち状態になる。もし全てのペイロードサムを受信していれば(ステップS906:Yes)、ステップS907にて擬似ヘッダとチェックサム以外のUDPヘッダとペイロードサムの合計からUDPチェックサムを算出する。ステップS907で算出したチェックサムをステップS908にてUDPヘッダのチェックサムフィールドに設定し、UDPヘッダの生成を完了する。UDPヘッダの生成が完了すると、ステップS909においてヘッダ/ペイロード合成部(120)にUDPヘッダ生成完了通知(127)を行い、UDPヘッダ生成を終了する。UDPヘッダ生成部(117)で作成するヘッダのフォーマットを図16に、擬似ヘッダフォーマットを図17に示す。
IPヘッダ生成部(118)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知(128)を行う。ヘッダ生成のフローチャートを図10に示す。ステップS1001においてIPヘッダ生成指示をプロトコル制御部(115)から受信したかを確認する。もしIPヘッダ生成指示を受信したら、プロトコル制御部(115)からIPヘッダ情報を取得する(ステップS1002)。次にステップS1003にてヘッダ生成数が2個以上であるかの判断を行う。ヘッダ生成数が2個以上であるということは、TCPの場合はデータグラムがセグメント化されていることを意味し、UDPの場合はデータグラムがフラグメントされていることを意味する。もし、ヘッダ生成数が2個以上でない場合は(ステップS1003:No)、ヘッダ生成情報からIPヘッダを生成し(ステップS1004)、ヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知を行い(ステップS1005)、IPヘッダ生成を終了する。ヘッダ生成数が2個以上である場合(ステップS1003:Yes)は、まずフレームごとに変化しないIPヘッダフィールドを設定する(ステップS1006)。フレームごとに変化しないIPヘッダフィールドとは上位レイヤがTCPの場合は、バージョン、ヘッダ長、TOS、フラグ、フラグメントオフセット、TTL、プロトコル、送信元IPアドレス、宛先IPアドレスを示し、上位レイヤがUDPの場合はバージョン、ヘッダ長、TOS、識別子、TTL、プロトコル、送信元IPアドレス、宛先IPアドレスを示す(図18及び図19参照)。次にステップS1007において先頭フレームのフレームごとに変化するIPヘッダフィールドを設定する。フレームごとに変化するIPヘッダフィールドとは上位レイヤがTCPの場合は、全長、識別子、ヘッダチェックサムを示し、上位レイヤがUDPの場合は、全長、フラグ、フラグメントオフセット、ヘッダチェックサムを示す(図18及び図19参照)。フレームごとに変化するIPヘッダフィールドの設定が終了するとステップS1008においてヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知を行う。次にステップS1009において次に生成するIPヘッダでセグメント化もしくはフラグメントされた最終のフレームかの判断を行う。もし、次に生成するIPヘッダで最終でない場合は(ステップS1009:No)、ステップS1010にて中間フレームのフレームごとに変化するIPヘッダフィールドを設定し、ステップS1011にてヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知を行い、再び次にIPヘッダで最終でないかの判断(ステップS1009)を行う。ステップS1009において、もし次に生成するIPヘッダで最終である場合はステップS1012にて最終フレームのフレームごとに変化するIPヘッダフィールドを設定し、ステップS1013にてヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知(128)を行い、送信データグラムに付加しなければならないIPヘッダを全て生成したとしてIPヘッダ生成を終了する。
MACヘッダ生成部(119)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にMACヘッダ生成完了通知(129)を行う。MACヘッダ生成部(119)はプロトコル制御部(115)からMACヘッダ生成指示を受信したら、MACヘッダ情報を取得する。MACヘッダ生成情報は、ヘッダ生成数、送信元MACアドレス、宛先MACアドレス、タイプレングスである。1つの送信データグラムがフラグメントやセグメント化によって複数のMACヘッダを生成する必要がある場合においても、そのヘッダの内容は同一であるため1つのMACヘッダ生成が完了するとMACヘッダ生成完了通知(129)をヘッダ/ペイロード合成部(120)にヘッダ生成数回出力する。MACヘッダ生成部(119)で作成するMACヘッダのフォーマットを図21に示す。
ヘッダ/ペイロード合成部(120)はフレーム個数フレーム長算出部(102)からのフレーム個数から生成すべきヘッダの個数を割り出す。次に、各プロトコルヘッダ生成部からのヘッダ完了通知とペイロード分割部(103)からのペイロード送信準備完了通知により、送信フレームに必要なヘッダとペイロードの準備が完了していることを認識し、TCP/IPの場合はMACヘッダ生成部(119)、IPヘッダ生成部(118)、TCPヘッダ生成部(116)、ペイロード読み出し部(105)の順に出力要求を行い、ヘッダ及びペイロードを読み出してフレームとして合成し、フレーム送出部(121)に出力する。UDP/IPの場合は先頭フレームはMACヘッダ生成部(119)、IPヘッダ生成部(118)、UDPヘッダ生成部(117)、ペイロード読み出し部(105)の順に出力要求を行い、中間、最終フレームはMACヘッダ生成部(119)、IPヘッダ生成部(118)、ペイロード読み出し部(105)の順に出力要求を行い、ヘッダ及びペイロードを読み出してフレームとして合成しフレーム送出部(121)に出力する。ペイロードを持たないフレームを送信する場合はヘッダのみ読み出して、フレームとして合成し、フレーム送出部(121)に出力する。
フレーム送出部(121)では、ヘッダ/ペイロード合成部(120)から出力されるフレームを通信制御装置外に送信する機能を有する。IEEE802.3に準拠し、プリアンブルの付加、フレームパディング、CRCの生成等を行う。
図11は、本発明の第2の実施形態による通信制御装置の構成例を示すブロック図である。図11を用いてその構成を説明する。
アプリケーションデバイス(101)は、送信要求(106)と送信データ長(107)をフレーム個数フレーム長算出部(102)に出力し、送信データ(110)をペイロード分割部(103)に出力する。アプリケーションデバイス(101)には、2つの種類が想定される。1つ目はコンスタントビットレート(単位時間あたりの情報量が一定)のデバイスである。2つ目はバリアブルビットレート(単位時間あたりの情報量が一定ではないが、単位時間辺りの情報量は明示される)のデバイスである。その他にバリアブルビットレートのデバイスからの情報を一時的にバッファリングし定期的に一定量の情報を出力する様シェーピングするデバイスである場合も想定されるがこれは1つ目の種類のデバイスと同じと見なせる。また、サンプリング周波数で予め規定された量子化ビットレートでRAW情報を出力してくるデバイスも想定できるが、これは1つ目の種類のデバイスと同様に見なすことが出来る。これら全てのアプリケーションデバイス(101)に接続される本実施形態による通信制御装置は、アプリケーションデバイス(101)とのインタフェースにおいて、送信要求(106)、送信データ長(107)、送信データ(110)を受ける事とする。
フレーム個数フレーム長算出部(102)は、アプリケーションデバイス(101)から入力された送信要求(106)をトリガに、同じく入力された送信データ長(107)を基に送信データを幾つのフレームに分割して出力すべきかを算出する。ペイロード長とヘッダ数算出の流れは、図22の上記の説明と同じである。上述の様にフレーム数、先頭フレームペイロード長、中間フレームペイロード長、最終フレームペイロード長をフレーム個数とフレーム長に関する値とし、ペイロード分離部(103)とプロトコル制御部(115)及びヘッダ/ペイロード合成部(120)に出力する。
ペイロード分割部(103)ではフレーム個数フレーム長算出部(102)から与えられたフレーム個数とフレーム長に関する入力(109)を基にアプリケーションデバイス(101)から与えられた送信データ(110)を分割しながらフレームペイロードとしてペイロードTXメモリ(104)に書き込み保存を行う(111)。ペイロード分割部(103)は、フレームペイロード書き込みが完了したらプロトコル制御部(115)に対しフレームペイロードの送信準備が出来た事を通知する(136)。
ペイロード分割部(103)ではフレーム個数フレーム長算出部(102)から与えられたフレーム個数とフレーム長に関する入力(109)を基にアプリケーションデバイス(101)から与えられた送信データ(110)を分割しながらフレームペイロードとしてペイロードTXメモリ(104)に書き込み保存を行う(111)際、フレームペイロードのチェックサムをフレーム毎に求め、UDPヘッダ生成部(117)及び、TCPヘッダ生成部(116)にチェックサム値を伝える(135)。
TXメモリ(104)では1つの送信要求に伴う一連の送信データを、送信要求毎、フレームペイロードFIFOにフレームペイロードの列として保存している。図5に示す様にTXメモリ(104)内部には1つの送信要求に伴い1つのFIFOが割り当てられ(340)、例えばここでは1つの送信要求による送信データが5つのフレームペイロードから成ることを示している。本図ではフレームペイロード1(先頭フレーム)からフレームペイロード5(最後尾フレーム)がFIFOに蓄えられているがフレーム単位での送信が行われる場合はこの様に5つのフレームが溜まることはない。各々のフレームペイロードはFIFOに挿入された直後にペイロード読み出し部(105)により抜き出され送信される事も考えられる。
ペイロード読み出し部(105)ではヘッダ/ペイロード合成部(120)からの、1つのペイロード読み出し指示(114)に対し、送信すべきフレームペイロードをTXメモリ(104)から1つ取り出し、ヘッダ/ペイロード合成部(120)へ出力する(113)。
プロトコル制御部(115)ではフレーム個数フレーム長算出部(102)からの指示により、フレームごとに必要なヘッダを特定してヘッダに必要な情報を収集し、各プロトコルヘッダ生成部(116〜119)にヘッダ生成指示及びヘッダ生成情報を通知する(122〜125)。図12にプロトコル制御部(115)のフローチャートを示す。ステップS1201においてフレーム個数フレーム長算出部(102)よりフレーム個数、先頭フレームのペイロード長、中間フレームのペイロード長、最終フレームのペイロード長の4つの値(108)を受信したかの判断を行う。もし受信すれば(ステップS1201:Yes)、ステップS1202において送信フレームがTCPなのかUDPなのかを判断し、フレーム送信に必要なプロトコルヘッダを生成するための情報を収集する(ステップS1203)。この時、収集する情報は1つのフレームに付加されるヘッダについてのみ行われる。つまり最初は先頭フレームに付加されるヘッダのみの情報収集を行う。また、収集する各種情報は静的に設定されている場合と動的にテーブル検索を行う場合がある。動的なテーブルとしては、コネクションに付随する宛先IPアドレス、送信元IPアドレス、宛先ポート、送信元ポートを割り出すアドレステーブルや、IPのルーティングテーブルなどがあげられる。次にペイロード分割部(103)からフレームペイロード送信準備完了通知を受信したかの判断を行う(ステップS1204)。もし、フレームペイロード送信準備完了通知を受信したら(ステップS1204:Yes)、ステップS1205にてヘッダ情報の収集が終了しているかの判断を行う。ヘッダ情報の収集が終了した場合(ステップS1205:Yes)は、ステップS1206にて送信フレームに必要なヘッダを生成するヘッダ生成部にヘッダ生成指示及びヘッダ生成情報を出力する。ヘッダ生成指示を出力後はステップS1207においてフレーム個数分のヘッダ生成指示を行ったかの判断を行う。もし、フレーム個数分のヘッダ生成指示を行った(ステップS1207:Yes)のなら、ステップS1208においてステップS1206で作成を指示したヘッダのヘッダ送信完了通知をヘッダ/ペイロード合成部(120)から受信するのを待ち、ヘッダ送信完了通知を受信したら1つのデータグラムに対する全てのフレームのヘッダが送信されたとしてプロトコル制御を終了する。ステップS1207においてもしフレーム個数分のヘッダ生成指示を行っていないのならば(S1207:No)、まだ送信すべきフレームを生成しなければならないとして、ステップS1209においてステップS1206で作成を指示したヘッダのヘッダ送信完了通知をヘッダ/ペイロード合成部(120)から受信するのを待ち、ヘッダ送信完了通知を受信したら次のフレームのヘッダ作成を開始する(ステップS1210)。そしてステップS1203に戻る。
TCPヘッダ生成部(116)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にTCPヘッダ生成完了通知(126)を行う。TCPヘッダ生成指示をプロトコル制御部(115)から受信したら、プロトコル制御部(115)からTCPヘッダ情報を取得する。TCPヘッダ情報は送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、ヘッダ長、フラグビット、ウィンドウサイズ、緊急ポインタ及び擬似ヘッダ用の宛先IPアドレス、送信元IPアドレス、セグメント長(TCPヘッダ長+ペイロード長)である。取得したヘッダ生成情報から擬似ヘッダとチェックサム以外のTCPヘッダを作成する。次にフレームごとのペイロードサムをペイロード分割部(103)より受信し、擬似ヘッダとチェックサム以外のTCPヘッダとペイロードサムからTCPのチェックサムを算出し、チェックサムをTCPヘッダのチェックサムフィールドに設定し、TCPヘッダの生成を完了する。TCPヘッダの生成が完了すると、ヘッダ/ペイロード合成部(120)にTCPヘッダ生成完了通知を行い、TCPヘッダ生成を終了し、プロトコル制御部(115)より次のヘッダ生成指示があるまで待機する。TCPヘッダ生成部(116)で作成するヘッダのフォーマットを図14に、擬似ヘッダフォーマットを図15に示す。
UDPヘッダ生成部(117)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にUDPヘッダ生成完了通知(127)を行う。UDPヘッダ生成指示をプロトコル制御部(115)から受信したら、プロトコル制御部(115)からUDPヘッダ情報を取得する。UDPヘッダ情報は、送信元ポート番号、宛先ポート番号、UDPデータ長である。取得したヘッダ生成情報から擬似ヘッダとチェックサム以外のUDPヘッダを作成する。次にペイロードサムをペイロード分割部(103)より受信したかの判断を行い、もし受信していれば擬似ヘッダとチェックサム以外のUDPヘッダとペイロードサムの合計からUDPチェックサムを算出し、チェックサムをUDPヘッダのチェックサムフィールドに設定し、UDPヘッダの生成を完了する。UDPヘッダの生成が完了すると、ヘッダ/ペイロード合成部(120)にUDPヘッダ生成完了通知を行い、UDPヘッダ生成を終了する。
IPヘッダ生成部(118)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知(128)を行う。IPヘッダ生成指示をプロトコル制御部(115)から受信したら、プロトコル制御部(115)からIPヘッダ情報を取得する。IPヘッダ情報はバージョン、ヘッダ長、TOS、全長、識別子、フラグ、フラグメントオフセット、TTL、プロトコル、送信元IPアドレス、宛先IPアドレスである。これらの情報からIPヘッダのヘッダチェックサムを算出してIPヘッダを完成させ、ヘッダ/ペイロード合成部(120)にIPヘッダ生成完了通知を行う。IPヘッダ生成部(118)で作成するヘッダのフォーマットを図20に示す。
MACヘッダ生成部(119)ではプロトコル制御部(115)からのヘッダ生成指示及びヘッダ生成情報に基づきヘッダ生成を開始し、ヘッダ生成完了後にヘッダ/ペイロード合成部(120)にMACヘッダ生成完了通知(129)を行う。MACヘッダ生成部(119)はプロトコル制御部(115)からMACヘッダ生成指示を受信したら、MACヘッダ情報を取得する。MACヘッダ生成情報は、ヘッダ生成数、送信元MACアドレス、宛先MACアドレス、タイプレングスである。これらの情報からMACヘッダを完成させ、ヘッダ/ペイロード合成部(120)にMACヘッダ生成完了通知を行う。MACヘッダ生成部(119)で作成するMACヘッダのフォーマットを図21に示す。
ヘッダ/ペイロード合成部(120)はフレーム個数フレーム長算出部(102)からのフレーム個数から生成すべきヘッダの個数を割り出す。次に、各プロトコルヘッダ生成部からのヘッダ完了通知により、送信フレームに必要なヘッダが完了していることを認識し、TCP/IPの場合はMACヘッダ生成部(119)、IPヘッダ生成部(118)、TCPヘッダ生成部(116)、ペイロード読み出し部(105)の順に出力要求を行い、ヘッダ及びペイロードを読み出してフレームとして合成し、フレーム送出部(121)に出力する。UDP/IPの場合は先頭フレームはMACヘッダ生成部(119)、IPヘッダ生成部(118)、UDPヘッダ生成部(117)、ペイロード読み出し部(105)の順に出力要求を行い、中間、最終フレームはMACヘッダ生成部(119)、IPヘッダ生成部(118)、ペイロード読み出し部(105)の順に出力要求を行い、ヘッダ及びペイロードを読み出してフレームとして合成しフレーム送出部(121)に出力する。ペイロードを持たないフレームを送信する場合はヘッダのみ読み出して、フレームとして合成し、フレーム送出部(121)に出力する。ヘッダ/ペイロード合成部(120)は、ヘッダをフレーム送出部(121)に出力した時点で、プロトコル制御部(115)にヘッダ送信完了(137)を出力する。
フレーム送出部(121)では、ヘッダ/ペイロード合成部(120)から出力されるフレームを通信制御装置外に送信する機能を有する。IEEE802.3に準拠し、プリアンブルの付加、フレームパディング、CRCの生成等を行う。
TCP/IPのフレーム送信時に送信データグラムが3つのセグメントに分割された場合の例を図13に示す。アプリケーションデバイス(101)からの送信指示及び送信データ長(1301)を受けてフレーム個数フレーム長算出部(102)は、フレーム個数(3個)、先頭フレームのペイロード長(PL0の長さ)、中間フレームのペイロード長(PL1の長さ)、最終フレームのペイロード長(PL2の長さ)をプロトコル制御部(115)及びヘッダ/ペイロード合成部(120)に出力(1302)する。プロトコル制御部(115)ではプロトコルタイプをTCPであると判断し、TCP、IP、MACのヘッダ情報の収集を行う。またペイロード分割部(103)においてペイロードをTxメモリ(104)に書き込んでいき、1フレーム分(1TCPセグメント分)書き込みが完了すると、プロトコル制御部(115)に対してフレームペイロード送信準備完了(1303)を出力する。プロトコル制御部(115)はフレームペイロード送信準備完了(1303)を受信するとデータグラムをセグメント化した先頭フレームのTCP、IP、MACのヘッダを生成するためのヘッダ情報収集が終了しているかを判断し、終了していればTCPヘッダ生成部(116)にヘッダ生成指示及びヘッダ情報(1304)を、IPヘッダ生成部(118)にヘッダ生成指示及びヘッダ情報(1305)を、MACヘッダ生成部(119)にヘッダ生成指示及びヘッダ情報(1306)を同時に出力する。ヘッダ生成指示を受信したTCPヘッダ生成部(116)はプロトコル制御部(115)からのヘッダ情報とペイロード分割部(103)からのペイロードサム(1307)よりTCPヘッダを生成し、ヘッダ/ペイロード合成部(120)にTCPヘッダ生成完了(1308)を出力する。ヘッダ生成指示を受信したIPヘッダ生成部(118)はプロトコル制御部(115)からのヘッダ情報からIPヘッダを生成し、ヘッダ/ペイロード合成部(120)にIPヘッダ生成完了(1309)を出力する。ヘッダ生成指示を受信したMACヘッダ生成部(119)はプロトコル制御部(115)からのヘッダ情報からMACヘッダを生成し、ヘッダ/ペイロード合成部(120)にMACヘッダ生成完了(1310)をフレーム個数分出力する。ヘッダ/ペイロード合成部(120)はフレーム個数フレーム長算出部(102)から受信したフレーム個数(1302)から3つにセグメント化されたフレームの先頭フレームにはTCPヘッダ、IPヘッダ、MACヘッダが必要であることを認識しており、TCPヘッダ生成完了(1308)、IPヘッダ生成完了(1309)、MACヘッダ生成完了(1310)の全てを受信するとフレームを送信可能な状態であると判断する。ヘッダ/ペイロード合成部(120)はMACヘッダ、IPヘッダ、TCPヘッダ、ペイロードと読み出していきフレーム送出部(121)に先頭フレームを出力する。また、MAC、IP、TCPヘッダをフレーム送出部(121)に出力した時点でプロトコル制御部(115)にヘッダ送信完了(1311)を出力する。
(1)アプリケーションデバイスからの送信指示を基に、送信データをフレームとしてどう分割すべきかを初めに算出する。即ち1つの送信指示に伴う送信データを幾つのフレームとして出力すべきか、先頭フレームのペイロード長、中間フレームのペイロード長、最終フレームのペイロード長を算出する。
102 フレーム個数フレーム長算出部
103 ペイロード分割部
104 TXメモリ
105 ペイロード読み出し部
115 プロトコル制御部
116 TCPヘッダ生成部
117 UDPヘッダ生成部
118 IPヘッダ生成部
119 MACヘッダ生成部
120 ヘッダ/ペイロード合成部
121 フレーム送出部
Claims (11)
- 送信データを送信するためのフレーム個数及びフレーム長を算出する算出手段と、
前記算出手段による算出の結果を基に送信データをフレーム単位に分割するペイロード分割手段と、
前記ペイロード分割手段による送信データの分割と並列して、前記算出手段による算出の結果を基に前記フレーム単位の送信データに付加すべきヘッダを生成するヘッダ生成手段と、を有し、
前記ヘッダ生成手段は、複数レイヤのプロトコルのヘッダを並列して生成することを特徴とする通信制御装置。 - 前記算出手段は、データの送信要求に基づき前記フレーム個数及び前記フレーム長を算出し、
前記ヘッダ生成手段は、前記ペイロード分割手段が送信データを入力している間に送信データに付加すべきヘッダを生成することを特徴とする請求項1記載の通信制御装置。 - 前記ペイロード分割手段は、フレーム単位の送信データを加算してフレーム毎のチェックサムを算出し、
前記ヘッダ生成手段は、前記ヘッダ内に前記チェックサムを付加することを特徴とする請求項1又は2記載の通信制御装置。 - 前記ペイロード分割手段は、複数フレームの送信データを入力している間でも1フレーム分の送信データを入力して分割する毎にフレーム単位の分割完了通知を出力し、
前記ヘッダ生成手段は、前記フレーム単位の分割完了通知を基に前記フレーム単位のヘッダを生成することを特徴とする請求項1〜3のいずれか1項に記載の通信制御装置。 - 前記ヘッダ生成手段は、前記ペイロード分割手段が複数フレームの送信データを入力している間でも各フレームのヘッダを生成する毎にフレーム単位のヘッダ生成完了通知を出力し、
さらに、前記フレーム単位のヘッダ生成完了通知を基に前記フレーム単位の送信データ及びヘッダを合成するヘッダ/ペイロード合成手段を有することを特徴とする請求項1〜4のいずれか1項に記載の通信制御装置。 - さらに、フレームの生成に必要なヘッダ生成情報を収集し、ヘッダ生成指示及びヘッダ生成情報をフレーム毎に出力するプロトコル制御手段を有し、
前記ヘッダ生成手段は、前記プロトコル制御手段から前記ヘッダ生成指示及び前記ヘッダ生成情報を入力すると、ヘッダを生成し、ヘッダ生成完了通知を出力することを特徴とする請求項5記載の通信制御装置。 - さらに、前記ヘッダ/ペイロード合成手段により合成されたフレームを送信するフレーム送信手段を有することを特徴とする請求項5又は6記載の通信制御装置。
- さらに、前記ペイロード分割手段により分割されたフレーム単位の送信データを格納するためのメモリを有することを特徴とする請求項7記載の通信制御装置。
- さらに、前記メモリからフレーム単位の送信データを読み出して前記ヘッダ/ペイロード合成手段に出力するペイロード読み出し手段を有することを特徴とする請求項8記載の通信制御装置。
- 前記ヘッダ生成手段は、
TCPヘッダを生成するTCPヘッダ生成手段と、
UDPヘッダを生成するUDPヘッダ生成手段と、
IPヘッダを生成するIPヘッダ生成手段と、
MACヘッダを生成するMACヘッダ生成手段とを有し、
前記プロトコル制御手段は、前記TCPヘッダ生成手段、前記UDPヘッダ生成手段、前記IPヘッダ生成手段及び前記MACヘッダ生成手段にヘッダの生成指示を出力することができることを特徴とする請求項6〜9のいずれか1項に記載の通信制御装置。 - 通信制御装置が行う通信制御方法であって、
送信データを送信するためのフレーム個数及びフレーム長を算出する算出ステップと、
前記算出ステップにおける算出の結果に基づいて、送信データをフレーム単位に分割する分割ステップと、
前記分割ステップにおける送信データの分割と並列して開始されるステップであり、前記算出ステップにおける算出の結果に基づいて、前記フレーム単位の送信データに付加すべきヘッダを生成するヘッダ生成ステップと、を有し、
前記ヘッダ生成ステップでは、複数レイヤのプロトコルのヘッダを並列的に生成することを特徴とする通信制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004264645A JP4612821B2 (ja) | 2004-09-10 | 2004-09-10 | 通信制御装置及び方法 |
US11/222,988 US7620050B2 (en) | 2004-09-10 | 2005-09-09 | Communication control device and communication control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004264645A JP4612821B2 (ja) | 2004-09-10 | 2004-09-10 | 通信制御装置及び方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006081033A JP2006081033A (ja) | 2006-03-23 |
JP2006081033A5 JP2006081033A5 (ja) | 2010-04-08 |
JP4612821B2 true JP4612821B2 (ja) | 2011-01-12 |
Family
ID=36160096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004264645A Expired - Fee Related JP4612821B2 (ja) | 2004-09-10 | 2004-09-10 | 通信制御装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4612821B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4649315B2 (ja) * | 2005-11-02 | 2011-03-09 | キヤノン株式会社 | 通信装置及び通信方法 |
JP4942375B2 (ja) * | 2006-03-27 | 2012-05-30 | 株式会社ソニー・コンピュータエンタテインメント | ネットワーク処理装置 |
JP4724634B2 (ja) * | 2006-09-29 | 2011-07-13 | キヤノン株式会社 | データ受信装置及びデータ受信方法 |
JP4845674B2 (ja) | 2006-10-26 | 2011-12-28 | キヤノン株式会社 | データ処理装置及び方法、通信装置、並びにプログラム |
JP2008301210A (ja) * | 2007-05-31 | 2008-12-11 | Nec Electronics Corp | パケット送信装置およびパケット送信方法 |
KR20110017518A (ko) * | 2009-08-14 | 2011-02-22 | 한국전자통신연구원 | Udp 기반의 통신 방법 및 장치 |
JP6614948B2 (ja) * | 2015-12-02 | 2019-12-04 | キヤノン株式会社 | 演算装置、演算方法、通信装置、及びプログラム |
JP6963411B2 (ja) * | 2017-05-19 | 2021-11-10 | キヤノン株式会社 | 通信装置、通信方法、およびプログラム |
JP7005303B2 (ja) * | 2017-11-14 | 2022-02-10 | キヤノン株式会社 | 通信装置、パケット生成装置およびそれらの制御方法 |
JP7027145B2 (ja) * | 2017-12-08 | 2022-03-01 | キヤノン株式会社 | 通信装置、通信装置の制御方法およびプログラム |
JP6938399B2 (ja) * | 2018-02-14 | 2021-09-22 | キヤノン株式会社 | 通信装置、通信方法およびプログラム |
JP7049140B2 (ja) * | 2018-03-06 | 2022-04-06 | キヤノン株式会社 | 通信装置およびその制御方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000253054A (ja) * | 1999-02-25 | 2000-09-14 | Toshiba Corp | データ配送システム及びデータ配送方法 |
JP2001016226A (ja) * | 1999-07-01 | 2001-01-19 | Nec Corp | Atmセルの送信制御方式及び送信制御装置 |
JP2001339462A (ja) * | 2000-05-29 | 2001-12-07 | Toshiba Corp | 通信プロトコル処理方法および通信プロトコル処理装置 |
JP2003046566A (ja) * | 2001-07-27 | 2003-02-14 | Matsushita Electric Ind Co Ltd | パケット処理装置及び方法 |
JP2004215203A (ja) * | 2002-11-14 | 2004-07-29 | Matsushita Electric Ind Co Ltd | 伝送データ構造及びそれを伝送するための方法並びに装置 |
JP2004241872A (ja) * | 2003-02-04 | 2004-08-26 | Hitachi Ltd | 情報通信方法および中継装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6399651A (ja) * | 1986-10-15 | 1988-04-30 | Nec Corp | デ−タ通信方式 |
JPH0669957A (ja) * | 1992-08-18 | 1994-03-11 | Matsushita Electric Ind Co Ltd | データ送信方法及びデータ送信装置 |
JPH11317762A (ja) * | 1998-05-07 | 1999-11-16 | Nec Corp | インタフェース装置 |
-
2004
- 2004-09-10 JP JP2004264645A patent/JP4612821B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000253054A (ja) * | 1999-02-25 | 2000-09-14 | Toshiba Corp | データ配送システム及びデータ配送方法 |
JP2001016226A (ja) * | 1999-07-01 | 2001-01-19 | Nec Corp | Atmセルの送信制御方式及び送信制御装置 |
JP2001339462A (ja) * | 2000-05-29 | 2001-12-07 | Toshiba Corp | 通信プロトコル処理方法および通信プロトコル処理装置 |
JP2003046566A (ja) * | 2001-07-27 | 2003-02-14 | Matsushita Electric Ind Co Ltd | パケット処理装置及び方法 |
JP2004215203A (ja) * | 2002-11-14 | 2004-07-29 | Matsushita Electric Ind Co Ltd | 伝送データ構造及びそれを伝送するための方法並びに装置 |
JP2004241872A (ja) * | 2003-02-04 | 2004-08-26 | Hitachi Ltd | 情報通信方法および中継装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2006081033A (ja) | 2006-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4612821B2 (ja) | 通信制御装置及び方法 | |
US7239635B2 (en) | Method and apparatus for implementing alterations on multiple concurrent frames | |
US8121148B2 (en) | Protocol stack using shared memory | |
US20050243834A1 (en) | Packet transfer method and device | |
JP4890613B2 (ja) | パケットスイッチ装置 | |
US20040037322A1 (en) | Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines | |
JP2001251351A (ja) | パケット交換機における入力パケット処理方式 | |
US8495241B2 (en) | Communication apparatus and method therefor | |
US12010019B2 (en) | Concept for segmenting an application buffer into data packets | |
US8824468B2 (en) | System and method for parsing frames | |
CN115733832A (zh) | 计算设备、报文接收方法、可编程网卡及存储介质 | |
US7035250B2 (en) | System for organizing voice channel data for network transmission and/or reception | |
JP2009111653A (ja) | 多重化データ通信方法、そのシステムおよびそのシステムを構成する多重化データ通信装置 | |
US7620050B2 (en) | Communication control device and communication control method | |
JP2007228227A (ja) | 通信装置 | |
EP1530854B1 (en) | Packet processing engine | |
JP4612820B2 (ja) | 通信制御装置及び方法 | |
JP7553838B2 (ja) | 通信システム、サーバ、クライアント、サーバ制御方法、及びクライアント制御方法 | |
EP1447997A2 (en) | Packet forwarding system having a packet management unit and an operating method thereof | |
JP6873953B2 (ja) | 通信装置、通信装置の制御方法およびプログラム | |
US20050044261A1 (en) | Method of operating a network switch | |
WO2014183525A1 (zh) | 报文的处理方法和级联芯片 | |
JP4135549B2 (ja) | パケット処理装置及びそれに用いるパケットデータ管理方法並びにそのプログラム | |
WO2021214945A1 (ja) | 通信制御装置、通信制御方法、および、通信制御プログラム | |
JP6976786B2 (ja) | 通信装置および通信装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070910 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070910 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100309 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101005 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101016 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4612821 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |