(57)【要約】【課題】本発明は、リングバッファ形式の送信バッファを用いて送信制御を行うことで、データ通信の高速性及びコストを両立させたデータ通信装置を実現することにある。【解決手段】データ通信装置は、送信データを送信リングバッファ領域に格納するＲＡＭ１４と、ＲＡＭ１４から送信データを読み出すＤＭＡコントローラ１５と、読み出された送信データを外部のネットワークに送信して受信確認通知を受信するプロトコル処理回路１０とを備え、プロトコル処理回路１０は、送信リングバッファ領域に格納された送信データの最後の格納位置に対応する送信ヘッドポインタ及び受信確認通知により取得した受信済みの送信データの最後の格納位置に対応する送信テイルポインタに基づいて送信処理する前記送信データを読み出すようにＤＭＡコントローラ１５を制御する。【選択図】図１
2014158241.tif 000002
【特許請求の範囲】
【請求項１】
送信データを送信リングバッファ領域に格納する記憶部と、前記記憶部から前記送信データを読み出す読出し処理部と、読み出された前記送信データを外部のネットワークに送信するとともに送信された前記送信データに関する受信確認通知を受信する送受信処理部とを備え、前記送受信処理部は、前記送信リングバッファ領域に格納された前記送信データの最後のデータの格納位置及び前記受信確認通知により取得した受信済みの前記送信データの最後のデータの格納位置に基づいて送信処理する前記送信データを読み出すように前記読出し処理部を制御するデータ通信装置。
【請求項２】
前記送受信処理部は、前記送信リングバッファ領域において前記送信リングバッファ領域に格納された前記送信データの最後のデータの格納位置に対応する送信ヘッドポインタと前記受信確認通知により取得した受信済みの前記送信データの最後のデータの格納位置に対応する送信テイルポインタとの間の領域に格納された前記送信データから送信処理するデータを読み出すように前記読出し処理部を制御する請求項１に記載のデータ通信装置。
【請求項３】
前記送受信処理部は、前記受信確認通知を受信しない場合に、前記送信リングバッファ領域において前記送信ヘッドポインタと前記送信テイルポインタとの間の領域に格納された前記送信データから再送処理するデータを読み出すように前記読出し処理部を制御する請求項２に記載のデータ通信装置。
【請求項４】
前記送受信処理部は、前記送信データのシーケンスナンバを前記送信リングバッファ領域の前記送信データの格納位置に対応させて前記送信テイルポインタを設定する請求項２又は３に記載のデータ通信装置。
【請求項５】
送信リングバッファ領域に格納した送信データを読み出して送信処理し、送信された前記送信データに関する受信確認通知を受信するデータ通信方法において、送信リングバッファ領域に格納された前記送信データの最後のデータの格納位置及び前記受信確認通知により取得した受信済みの前記送信データの最後のデータの格納位置に基づいて送信処理する前記送信データを読み出すデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信分野に関し、特にＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）等のバイトストリームによりデータ送受信を行うプロトコルを用いて通信を行うデータ通信装置及びデータ通信方法に関する。
【背景技術】
【０００２】
現在、ネットワーク通信では、ＴＣＰ／ＩＰプロトコルによるデータ通信が広く普及している。ＴＣＰ／ＩＰプロトコルでは、データ通信を行う場合に、受信側は送信側に対してどこまでデータを受信したかを示す受信確認通知（Acknowledge）を送信する。データ送信側では、受信確認通知を受け取ることによりデータ送信を制御し、所定期間内に受信確認通知を受け取らなかった場合に送信したデータの再送信を行うことで、データ通信が正確に行われるようになっている。そのため、送信側では、送信済みのデータであっても受信側からの受信確認通知を受け取るまで、そのデータを保持する必要がある。
従来技術では、こうした送信データの保持は、送信フレームの形式によりデータ送信回路において処理することが一般的であった。その場合、受信側からの受信確認通知を受け取る前のすべての送信データをデータ送信回路において保持する必要がある。このため、データ送信回路に、送信データを保持するために必要な容量のバッファを確保することが求められており、特に高速データ通信処理では、大容量の送信バッファが必要になってきている。
【０００３】
こうしたデータ通信に関連したデータ処理では、様々な提案がなされている。例えば、特許文献１には、複数のチャネルにまたがってフレーム送信を行う際に、振り分けられたフレームにシーケンス番号を付与して他の無線端末に送信する点が記載されている。また、特許文献２には、リングバッファのサイズで決まるアドレスビット数に１ビット付加したビット数でポインタを管理し、リングバッファの最終アドレスからカウントアップして先頭アドレスに戻る際に付加したビットを反転させ、書込みポインタと読出しポインタとを比較してリングバッファのフル及びエンプティを検出するリングバッファの制御方法が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したＴＣＰ／ＩＰプロトコルに対応する機能をハードウェアにより実現する場合、そのメリットの一つである通信の高速性を実現することが求められるが、送信処理に極めて大容量のバッファが必要となり、コストが高くなる問題があった。
本発明は、こうした従来技術の課題に鑑みてなされたものであり、その目的は、リングバッファ形式の送信バッファを用いて送信制御を行うことで、データ通信の高速性及びコストを両立させたデータ通信装置を実現することにある。
【課題を解決するための手段】
【０００５】
本発明に係るデータ通信装置は、送信データを送信リングバッファ領域に格納する記憶部と、前記記憶部から前記送信データを読み出す読出し処理部と、読み出された前記送信データを外部のネットワークに送信するとともに送信された前記送信データに関する受信確認通知を受信する送受信処理部とを備え、前記送受信処理部は、前記送信リングバッファ領域に格納された前記送信データの最後のデータの格納位置及び前記受信確認通知により取得した受信済みの前記送信データの最後のデータの格納位置に基づいて送信処理する前記送信データを読み出すように前記読出し処理部を制御する。
【発明の効果】
【０００６】
本発明は、上記の構成を備えることで、送信リングバッファ領域に送信データを格納して送信制御を行うことで、データ通信の高速性及びコストを両立させたデータ通信装置を実現することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明に係るデータ通信装置の実施形態に関するブロック構成図である。
【図２】送信データの読出し処理及び送信処理の手順に関する説明図である。
【図３】送信リングバッファ領域に関する送信データの格納処理に関する説明図である。
【図４】プロトコル処理回路の構成例に関するブロック構成図である。
【発明を実施するための形態】
【０００８】
図１は、本発明に係るデータ通信装置の実施形態に関するブロック構成図である。プロトコル処理回路１０は、ＴＣＰ／ＩＰプロトコルに基づいてデータの送受信を行う機能を備えている。プロトコル処理回路１０で生成されたＩＰパケットは、パケット送信回路１１に転送されてパケット送信回路１１から外部のネットワーク（図示せず）を経由して送信先のデータ通信装置に送信される。また、パケット受信回路１２は、ネットワークを経由して受信したＩＰパケットをプロトコル処理回路１０に転送し、プロトコル処理回路１０においてデータ処理されるようになっている。この例では、プロトコル処理回路１０、パケット送信回路１１及びパケット受信回路１２が送受信処理部に相当する。
制御部１３は、装置全体の動作に関する制御を行うとともにデータ送信の際にＲＡＭ（Random Access Memory）１４に送信データの書込み処理を行う。記憶部であるＲＡＭ１４は、データ処理の際に必要なデータを保存するとともに送信データをリングバッファ形式で保持する機能を備えている。ＤＭＡ（Direct Memory Access）コントローラ１５は、ＲＡＭ１４から直接データを読出し処理する機能を備えており、ＲＡＭ１４に保持された送信データを読み出して後述する送信データ処理回路１９を介してプロトコル処理回路１０に送信する。制御部１３、記憶部であるＲＡＭ１４及び読出し処理部であるＤＭＡコントローラ１５は、システムバス１６により接続されて互いにデータの送受信を行うようになっている。
ＤＭＡ要求処理回路１７は、プロトコル処理回路１０とＤＭＡコントローラ１５との間に接続されており、プロトコル処理回路１０からのＤＭＡ要求設定信号に基づいてＤＭＡ要求信号をＤＭＡコントローラ１５に出力する。また、ＤＭＡ完了処理回路１８は、プロトコル処理回路１０とＤＭＡコントローラ１５との間に接続されており、ＤＭＡコントローラ１５からのＤＭＡ完了設定信号に基づいてＤＭＡ完了信号をプロトコル処理回路１０に出力する。送信データ処理回路１９は、ＤＭＡコントローラ１５において読み出された送信データを受信してＦＩＦＯ（First-In First-Out）形式により送信バイトストリームとしてプロトコル処理回路１０に出力する。
【０００９】
制御部１３は、ＲＡＭ１４内に設定された送信リングバッファ領域に送信データのバイト列を格納する書込み処理を行う。そして、格納したバイト列の最後のデータの格納位置の次の位置、すなわち、次の書込み処理で新たなデータのバイト列を書き込む場合の書込み開始位置のアドレスに送信ヘッドポインタを移す処理を行う。そして、送信ヘッドポインタは、送信リングバッファ領域の先頭アドレスを初期値として書込み処理に応じて増加していき、送信リングバッファ領域の最終アドレスを超える場合には初期値に戻るように処理される。このように、送信ヘッドポインタは、格納された送信データの最後のデータの格納位置に対応して設定されるように随時更新処理される。
【００１０】
プロトコル処理回路１０は、送信処理したＩＰパケットに含まれる最後のデータに対応するシーケンスナンバに「１」を加算した値、すなわち、次のＩＰパケットを送信する際にそのＩＰパケットに含まれる先頭のデータに対応するシーケンスナンバを内部変数（以下「次送信ナンバ」という）として記憶する。さらに、プロトコル処理回路１０は、ＴＣＰセッションが確立された時点における最初の送信データに対応するシーケンスナンバを内部変数（以下「初期送信ナンバ」という）として記憶する。
この場合、初期送信ナンバに対応する送信データは送信リングバッファ領域の先頭アドレスに格納されるようになる。そして、シーケンスナンバと格納位置とは対応関係にあるため、送信データの格納位置は、送信データの各バイトに対応するシーケンスナンバと初期送信ナンバとの間の差分を、送信リングバッファ領域における格納位置の数で割った場合の剰余の値に一致する。そこで、送信データのシーケンスナンバに対応する格納位置をナンバ対応格納位置と称する。本実施形態では、送信リングバッファ領域の格納位置の数は２のべき乗に設定されているため、ナンバ対応格納位置は、送信データのシーケンスナンバと初期送信ナンバとの間の差分のうち、送信リングバッファ領域の大きさに基づく送信ヘッドポインタの有効ビット範囲内の値を抽出することで簡単に求めることができる。
【００１１】
プロトコル処理回路１０は、制御部１３から送信ヘッドポインタに関するデータを受信して、次送信ナンバに関するナンバ対応格納位置と送信ヘッドポインタとを比較する。プロトコル処理回路１０は、両者の値が一致していない場合に、新たに送信すべきデータが存在することを認識するとともに、両者の間の差分の値から送信すべきデータ量を認識する。
そして、プロトコル処理回路１０は、実行中のＴＣＰセッションにおけるプロトコルの処理状況において新たなデータを含むＩＰパケットが送信可能か判断する。送信可能と判断した場合、新たな送信データの先頭が格納されている送信リングバッファ領域のアドレス（次送信ナンバのナンバ対応格納位置）をＤＭＡ開始アドレス信号とする。また、送信するデータ長をＤＭＡ長信号とし、ＤＭＡ開始アドレス信号とともにＤＭＡ要求設定信号をＤＭＡ要求処理回路１７に出力する。ＤＭＡ要求処理回路１７は、ＤＭＡ要求設定信号が入力されると、ＤＭＡ開始アドレス信号及びＤＭＡ長信号をＤＭＡ要求キュー（Queue）にキュー入力（Enqueue）する。ＤＭＡコントローラ１５は、ＤＭＡ要求キューに有効な要求がキュー入力されていることを示すＤＭＡ要求信号を検知すると、ＤＭＡ要求キューにキュー入力されているＤＭＡ開始アドレス及びＤＭＡ長に基づいて読出し処理を行う。
読出し処理では、ＤＭＡコントローラ１５は、送信リングバッファ領域内のＤＭＡ開始アドレスに対応する格納位置を先頭にＤＭＡ長に対応するバイト数のデータを読み出して送信データ処理回路１９に転送する。ＤＭＡコントローラ１５は、読出し処理したデータの転送が完了すると、ＤＭＡ開始アドレスをＤＭＡ完了アドレス信号としてＤＭＡ完了処理回路１８に出力する。そして、ＤＭＡ完了処理回路１８は、ＤＭＡ完了設定信号が入力されると、ＤＭＡ完了アドレス信号をＤＭＡ完了キュー（Queue）にキュー入力（Enqueue）する。
【００１２】
プロトコル処理回路１０は、ＤＭＡ完了キューに有効な完了応答がキュー入力されていることを示すＤＭＡ完了信号を検知すると、ＤＭＡ完了キューにキュー入力されているＤＭＡ完了アドレスにより完了した読出し処理がどのＤＭＡ要求に対応するか判断する。そして、送信データ処理回路１９に格納された送信データをＦＩＦＯ（First-In First-Out）形式で送信バイトストリームとして読み出し、読み出された送信データに基づいてＴＣＰセグメントを生成する。生成されたＴＣＰセグメントに基づいてＩＰパケットを生成して、ＩＰパケットをパケット送信回路１１を介してネットワークに送信する。
図２は、以上説明した送信データの読出し処理及び送信処理の手順に関する説明図である。この例では、１つのＩＰパケットを送信する場合の手順を説明している。
【００１３】
こうして送信されたデータに対して、受信側から受信確認通知が返信される。受信確認通知では、受信側のデータ通信装置におけるデータ処理において、連続して受信処理した受信済みの送信データの最後のデータに対応するシーケンスナンバに「１」を加えた値（以下「受信ナンバ」という）を送信側のデータ通信装置に通知する処理が行われる。プロトコル処理回路１０は、パケット受信回路１２において受信した最新の受信ナンバを内部変数として記憶し、受信ナンバに関するナンバ対応格納位置を送信テイルポインタとして制御部１３に送信する。そのため、送信リングバッファ領域において、送信テイルポインタと次送信ナンバに関するナンバ対応格納位置で挟まれた範囲のデータは、送信処理を行ったデータのうち受信側から受信確認通知が返信されていないデータとなる。プロトコル処理回路１０は、ＴＣＰプロトコルの処理状況に応じて受信確認通知が返信されないデータの再送処理を必要に応じて実行する。データの再送処理は、上述した送信データの送信処理と同様に行われる。制御部１３は、送信リングバッファ領域の送信ヘッドポインタから順方向に進めて送信テイルポインタまでの範囲を新たな送信データの格納可能な領域であるとして送信データの書込み処理を行う。
【００１４】
図３は、送信リングバッファ領域に関する送信データの格納処理に関する説明図である。送信リングバッファ領域では、先頭アドレスから順次送信データを格納していき、最終アドレスまで送信データを格納した場合には先頭アドレスに戻って送信データを格納していく。この例では、送信テイルポインタから次送信ナンバに関するナンバ対応格納位置までの範囲（データ領域１）は、送信処理したものの受信確認通知が返信されていない送信データである。次送信ナンバに関するナンバ対応格納位置から送信ヘッドポインタまでの範囲（データ領域２）は、送信処理されていない送信データが格納されている。また、送信ヘッドポインタから順方向に進んで送信テイルポインタまでの範囲（データ領域３）は、送信データが格納されていない格納可能な領域となっている。
【００１５】
図４は、プロトコル処理回路１０の構成例に関するブロック構成図である。プロトコル処理回路１０は、ＴＣＰ受信処理回路１０１、ＴＣＰ送信処理回路１０２及びＴＣＰ処理情報記憶回路１０３を備えている。ＴＣＰ受信処理回路１０１は、受信ＩＰパケットに含まれる受信側ＴＣＰからの受信確認通知を抽出し、受信確認通知更新信号としてＴＣＰ処理情報記憶回路１０３に出力する。ＴＣＰ処理情報記憶回路１０３は、受信確認通知更新信号を保持するとともに、ＴＣＰ送信処理回路１０２に対して受信確認通知信号として出力する。ＴＣＰ処理情報記憶回路１０３は、ＴＣＰ送信処理回路１０２がＴＣＰセッションの処理開始時に出力する初期送信ナンバ設定信号を保持し、ＴＣＰ送信処理回路１０２に対して初期送信ナンバとして出力する。また、ＴＣＰ処理情報記憶回路１０３は、ＴＣＰ送信処理回路１０２が新たな送信データの送信処理を行う際に更新する次送信ナンバ更新信号を保持し、ＴＣＰ送信処理回路１０２に対して次送信ナンバ信号として出力する。
【００１６】
ＴＣＰ送信処理回路１０２は、初期送信ナンバと受信確認通知信号（受信ナンバ）との間の差分により受信確認通知信号（受信ナンバ）に関するナンバ対応格納位置を算出し、算出したナンバ対応格納位置を送信テイルポインタとして出力する。
ＴＣＰ送信処理回路１０２は、初期送信ナンバと次送信ナンバ信号との間の差分により次送信ナンバ信号に関するナンバ対応格納位置を算出する。そして、算出したナンバ対応格納位置が、制御部１３から送信された送信ヘッドポインタと差異がある場合には新たな送信データが格納されていると判断する。新たな送信データが格納されている場合には、ＴＣＰ送信処理回路１０２は、次送信ナンバ信号に関するナンバ対応格納位置をＤＭＡ開始アドレス信号とし、送信パケットのペイロード部に格納する送信データのデータ長をＤＭＡ長信号としてそれぞれ出力する。そして、ＴＣＰ送信処理回路１０２は、ＤＭＡ要求設定信号を出力してＤＭＡコントローラ１５に対して送信データの読出し処理を行うように指示する。ＤＭＡコントローラ１５は、ＤＭＡ開始アドレス信号を先頭としてＤＭＡ長信号に対応する長さの送信データを送信リングバッファ領域から読み出し、送信データ処理回路に書き込む。ＤＭＡコントローラ１５は、読出し処理の完了時にＤＭＡ完了信号を出力する。ＴＣＰ送信処理回路１０２は、ＤＭＡ完了信号を検知すると、送信データ処理回路からＦＩＦＯ形式で送信バイトストリームを読み出し、送信バイトストリームをペイロードとするＴＣＰセグメント及びＩＰパケットを順次作成し、送信パケットとしてネットワークに送信処理する。
【００１７】
ＴＣＰ送信処理回路１０２は、受信確認通知信号と次送信ナンバ信号とを比較して所定以上の差分が発生しているか判断する。所定以上の差分が発生している場合には、受信確認通知信号に関するナンバ対応格納位置をＤＭＡ開始アドレス信号に、送信パケットのペイロード部に格納するデータ長をＤＭＡ長信号としてそれぞれ出力する。そして、ＤＭＡ要求設定信号を出力してＤＭＡコントローラ１５に対して読出し処理を行うよう指示する。ＤＭＡコントローラ１５は、ＤＭＡ開始アドレス信号を先頭としてＤＭＡ長信号に対応する長さの送信データを送信リングバッファ領域から読み出し、送信データ処理回路に書き込む。ＤＭＡコントローラ１５は、読出し処理の完了時にＤＭＡ完了信号を出力する。ＴＣＰ送信処理回路１０２は、ＤＭＡ完了信号を検知すると、送信データ処理回路からＦＩＦＯ形式で送信バイトストリームを読み出し、送信バイトストリームをペイロードとするＴＣＰセグメント及びＩＰパケットを順次作成し、送信パケットとしてネットワークに送信処理する。
【００１８】
以上説明したように、本発明では、上位層機能が使用する大容量・低コストのメモリを送信バッファとして使用し、送信バッファに送信データをリングバッファ形式で格納するようにして、データ通信処理において最適な送信制御を行うことができる。そのため、データ通信の高速性及びコストを両立させたデータ通信装置を実現することができる。
【符号の説明】
【００１９】
１０・・・プロトコル処理回路、１１・・・パケット送信回路、１２・・・パケット受信回路、１３・・・制御部、１４・・・ＲＡＭ、１５・・・ＤＭＡコントローラ、１６・・・システムバス、１７・・・ＤＭＡ要求処理回路、１８・・・ＤＭＡ完了処理回路、１９・・・送信データ処理回路、１０１・・・ＴＣＰ受信処理回路、１０２・・・ＴＣＰ送信処理回路、１０３・・・ＴＣＰ処理情報記憶回路。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２０１０−１６６４０１号公報
【特許文献２】特開２００５−１４８９０４号公報
【図１】
2014158241.tif 000003
【図２】
2014158241.tif 000004
【図３】
2014158241.tif 000005
【図４】
2014158241.tif 000006