JP2006109016A - 送受信装置、送受信制御方法、プログラム、およびメモリ - Google Patents

送受信装置、送受信制御方法、プログラム、およびメモリ Download PDF

Info

Publication number
JP2006109016A
JP2006109016A JP2004291781A JP2004291781A JP2006109016A JP 2006109016 A JP2006109016 A JP 2006109016A JP 2004291781 A JP2004291781 A JP 2004291781A JP 2004291781 A JP2004291781 A JP 2004291781A JP 2006109016 A JP2006109016 A JP 2006109016A
Authority
JP
Japan
Prior art keywords
data
transmission
reception
buffer
header
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.)
Pending
Application number
JP2004291781A
Other languages
English (en)
Inventor
Yoshiki Watanabe
佳樹 渡邉
Tsukasa Yoshiura
司 吉浦
Koji Arii
浩二 有井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004291781A priority Critical patent/JP2006109016A/ja
Publication of JP2006109016A publication Critical patent/JP2006109016A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

【課題】低コストでかつホストCPUのソフトの通信プロトコル処理が低負荷であるか、又は、ホストCPUの通信プロトコル処理の介在なしで高速データ伝送可能で、かつ通信制御等で柔軟に処理することができ、さらに従来のホストCPUがソフト処理するデータ伝送も使用可能な送受信装置を実現する。
【解決手段】ネットワーク3から受信したAVデータ及び制御データの一部が格納される第1受信バッファ31と、それ以外の受信データが格納される第2受信バッファ35と、所定の条件に従って第1受信バッファ31と第2受信バッファ35に受信データを格納するセレクタ手段33と、第1受信バッファ31のデータに所定のハード的処理を行うIP処理手段12と、IP処理手段12で処理された結果と第1受信バッファ31のデータに基づいて、所定のプロトコルで送信データを生成し、第1送信バッファ36へ転送するローカルCPU14とを備えた。
【選択図】図1

Description

本発明は、所定の通信プロトコルに従ってデータを送受信する、送受信装置および送受信制御方法に関するものである。
近年、Ethernet(登録商標)、IEEE802.11規格に準拠した無線通信伝送路を用いて、インターネットプロトコルでデータ通信を行うAV機器の開発が盛んに行われている。
例えば、映像コンテンツを、離れた場所にあるテレビや携帯端末にインターネットプロトコルで伝送して視聴するアプリケーションが多く提案されている。このアプリケーションでは、視聴される映像コンテンツの品質が高いほど、それを実現する機器の付加価値が高くなるため、インターネットプロトコルを安価に高速処理できる技術開発が望まれている。
しかし、インターネットプロトコル技術は、ワークステーションやパーソナルコンピュータで進化した経緯から、高速CPUによるソフトウェアでの実現が一般的であり、インターネットプロトコルで伝送された映像データをソフトウェアで処理すると、映像データの情報量が膨大になるため、高性能なCPUを搭載する必要があり、製品価格が高くなってしまうという問題点があった。
この問題を解決するため、特許文献1では、高速処理が必要な映像データだけについてハード処理を行い、そのほかの処理については従来どおりソフト処理を行う方法で、コスト問題を解決する提案がなされている。
以下、図面を参照して説明する。
図9は、特許文献1で提案されているデータ送受信装置の一例の構成図をしめしている。図9において、1は映像データを送信するサーバ装置である。
サーバ装置1は、AVエンコーダ21、第1プロトコル処理部122、第1制御部125、第1ルータ23、第1送受信部124で構成される。
また、クライアント装置2はAVデコーダ26、第2プロトコル処理部127、第2制御部129、第2ルータ28、第2送受信部119で構成される。
この様に構成された、サーバ装置1とクライアント装置2は、ネットワーク回線3で接続されている。ネットワーク回線3は、IEEE802.3規格のEthernetや、IEEE802.11規格に準拠した無線LAN等の、インターネットプロトコルが伝送可能な伝送路が使用されることが多い。
サーバ装置1では、送信AV信号を、AVエンコーダ21でデジタル処理を施し、第1プロトコル処理部122でIP伝送のために所定のパケット構造に変換する。そして、第1ルータ23を介して第1送受信部124へ信号伝達し、ネットワーク回線3へAVパケットを出力する。
ネットワーク回線3に出力されたAVパケットは、クライアント装置2の第2送受信部119で受信され、第2ルータ28へ伝送される。第2ルータ28は、受信されたパケットがAVパケットである場合には、ハードウェアで構成された第2プロトコル処理部127に転送する。そして、第2プロトコル処理部127が、パケット内に格納されたAVデータを抜き出してAVデコーダ26に出力し、AVデコーダ26がAV信号を生成する。
この様にして、サーバ装置1から転送されたAV信号がネットワーク回線3を介してクライアント装置2で再生されることになるので、離れた場所でのAVコンテンツの視聴が可能になる。
この従来例のように、リアルタイムのAV信号を伝送するには、UDPを用いた伝送方式が採用されることが多い。UDPによる伝送方式は、フロー制御を行う必要がないために簡単な回路で構成できるという特徴がある。この従来例では、第1プロトコル処理部122と第2プロトコル処理部127は、それぞれ異なる回路となるが簡単に構成できるので高品位の映像信号が安価に実現できる。
また、クライアント装置2を利用しているユーザが、視聴を開始・中断、またはコンテンツ選択するために、クライアント装置2からサーバ装置1に対して制御データを送信する場合や、サーバ装置1に選択されているコンテンツの種別・選択されているチャンネルなどのサーバ装置1の機器状況などをクライアント装置2が取得する場合などには、相互に通信する必要がある。この様な場合の制御データの通信は、TCPによる伝送が一般的である。
TCPは、高い信頼性で伝送できる特徴があるが、処理が複雑なためソフトウェアにより実現されるのが一般的であり、図9に示す従来例の場合には、この処理は第1制御部125および第2制御部129で実施される。処理は複雑であるが、ネットワーク回線3に伝送されるこのときの制御情報の情報量は、AVパケットと比較してきわめて少ないため、処理負荷が小さく、AV機器内蔵のCPUを他の処理と共用で第1制御部125および第2制御部129に使用できるので、安価に製造することができる。
この様なアプリケーションを実施する場合には、ネットワーク回線3にAVパケットと制御パケットが混在して伝送される事になる。したがって、受信パケットを、ソフト処理される第1制御部125または第2制御部129に伝送するのか、ハード処理される第1プロトコル処理部22または第2プロトコル処理部27へ伝送するのかを選択する、第1ルータ23および第2ルータ28の処理が重要になる。
図10に、第1ルータ23(第2ルータ28も同様)の構成図を示した。
図10に示した従来の第1ルータ23では、受信データは、判別回路132に転送され、AVデータと認識された場合には、セレクタ33へその認識情報が伝達されて、ハードウェア用受信バッファ34へ転送される。AVデータ以外のデータの場合には、受信データはソフトウェア用受信バッファ35へ転送される。
ハードウェア用受信バッファ34に受信データが格納されると、その受信データは、ハードウェアで構成された第1プロトコル処理部22へ転送され処理される。また、第1プロトコル処理部22がデータを送信する場合は、ハードウェア用送信バッファ38にデータを転送する。ソフトウェア用受信バッファ35に受信データが格納された場合には、その受信データは、第1制御部125によりソフトウェアで処理される。第1制御部125からデータ送出する場合には、ソフトウェア用送信バッファ39へデータが送信される。
第2ルータ28においても、受信データおよび送信データは、上記と同様に処理される。
この様に設計された第1ルータ23および第2ルータ28は、サーバ装置1およびクライアント装置2で共用に使用することができるので開発工数の削減が可能となる。
この様に構成された送受信装置は、AVパケットを高速にかつ安価にインターネットプロトコルで伝送可能であるという特徴を有する。
また、近年、ハードディスクを用いた記録装置が普及してきているが、ハードディスクには、映像データばかりでなく、写真、音楽など、さまざまなデータがファイル形式で記録されている。ハードディスクを搭載したサーバからクライアントへ伝送する方式として、データ信頼性が高く伝送できるTCPを用いた汎用性の高いHTTP伝送を採用したAV伝送方式を採用した製品開発が行われている。
また、サーバ機器のハードディスクに記録されたファイル形式の映像データも、クライアント機器から高速に読み出し、離れた場所でも再生することをユーザから望まれているのは言うまでもない。
特許第3491626号公報
しかしながら、特許文献1に示されるような従来の構成の送受信装置では、ハードウェアでプロトコル処理を行うため、汎用性を実現することが難しく、以下の問題点があった。
(1)処理が複雑なTCPでデータを送信する場合、ハードウェアの設計が困難である。
(2)複数の伝送方式に対応すると、ハードウェアの規模が大きくなる。
(3)AVの伝送方式が確定しないとハード設計が行えない。
(4)プロトコル処理部は、送信側と受信側とで共通設計が難しい。
したがって、従来の構成の送受信装置では、複数種のコンテンツを扱う場合や、異なる伝送方式の対応などを実現する汎用性のある設計が困難であり、また、TCPやHTTPのような複雑な転送方式に対応することが困難であった。
本発明は、上述した従来の課題を解決するもので、AVコンテンツ等の高速な伝送を安価に実現する、送受信装置、および送受信制御方法を提供することを目的とする。
上述した課題を解決するために、第1の本発明は、
ネットワーク回線からのデータを受信し、また、前記ネットワークへデータを送信する送受信手段と、
前記ネットワーク回線から受信したAVデータおよび前記AVデータに関連する受信制御データの一部が格納される第1の受信バッファと、
前記第1の受信バッファに格納された以外の受信データが格納される第2の受信バッファと、
前記ネットワーク回線に送信するAVデータおよび前記AVデータに関連する送信制御データの一部が格納される第1の送信バッファと、
前記第1の送信バッファに格納された以外の送信データが格納される第2の送信バッファと、
前記第2の受信バッファに格納された受信データをソフトウェア的に処理すると共に、所定のプロトコルで生成した送信データを前記第2の送信バッファに転送する制御部と、
前記ネットワーク回線から受信したデータのうち、予め設定された所定の条件により、前記第1の受信バッファまたは前記第2の受信バッファのいずれに格納させるかを判定する判別手段と、
前記判別手段の判定結果に基づいて、前記AVデータおよび前記AVデータに関連する受信制御データの前記一部を前記第1の受信バッファに格納し、それ以外の受信データを前記第2の受信バッファに格納するセレクタ手段と、
前記第1の受信バッファに格納された受信制御データの前記一部を読み込んで、そのデータに対して所定のハード的な処理を行うIP処理手段と、
前記第1の受信バッファからAVデータを抽出して出力し、および/または、入力されてくるAVデータを前記第1の送信バッファへ転送する、ストリーム処理手段と、
前記IP処理手段で処理された結果と前記第1の受信バッファに格納されたデータを読み込み、これらの情報に基づいて、ソフトウェアで前記ストリーム処理手段を制御し、また所定のプロトコルで生成した送信データを前記第1の送信バッファへ転送して前記ネットワーク回線に出力させるローカルCPUと、
前記ローカルCPUを動作させるためのプログラムが格納されたメモリとを備えた、送受信装置である。
第2の本発明は、
前記ストリーム処理手段から出力されたAVデータを受信して処理し、および/または、前記第1の送信バッファに格納するためのAVデータを前記ストリーム処理手段に送信するAV処理手段をさらに備えた、第1の本発明の送受信装置である。
第3の本発明は、
前記ネットワーク回線は、IEEE802.3規格に準拠している、第1の本発明の送受信装置である。
第4の本発明は、
前記ネットワーク回線は、IEEE802.11規格に準拠している、第1の本発明の送受信装置である。
第5の本発明は、
前記所定のプロトコルは、TCP/IPであり、
前記判別手段は、TCP/IP通信プロトコルに基づいたTCP制御フラグの一部またはすべてを走査する走査手段を有し、その走査した情報を前記所定の条件と比較することにより、前記ネットワーク回線から受信したデータを、前記第1の受信バッファへ格納させるか、前記第2の受信バッファへ格納させるかを判定する、第1の本発明の送受信装置である。
第6の本発明は、
前記IP処理手段は、(1)IPヘッダのチェックサムの確認、(2)TCPヘッダのチェックサムの確認、(3)TCPヘッダのシーケンス番号の確認、(4)TCPヘッダのACK番号の確認、(5)TCPヘッダのWINDOWの検出および前記ローカルCPUへの通知、(6)TCPの制御フラグ(FIN、SYN、RST、URG)の検出および前記ローカルCPUへの通知、の各処理の一部またはすべてをハードで行う受信IP・TCP処理手段を有している、第5の本発明の送受信装置である。
第7の本発明は、
前記第1の受信バッファは、前記受信データであるTCP/IPセグメントを格納するために、それぞれが1536バイト以上の容量を持つ複数のセグメントバッファに分割されている、第5の本発明の送受信装置である。
第8の本発明は、
前記第1の受信バッファは、8つのセグメントバッファに分割されている、第7の本発明の送受信装置である。
第9の本発明は、
前記ローカルCPUは、セグメント化された前記第1の受信バッファをリングバッファ方式で制御し、その起動開始バッファを設定する、第7の本発明の送受信装置である。
第10の本発明は、
前記第1の受信バッファには、前記IP処理手段で処理された結果も格納される、第7の本発明の送受信装置である。
第11の本発明は、
前記IP処理手段は、IPヘッダおよびTCPヘッダを解析し、TCPペイロードデータの開始位置および前記受信データの最後尾の位置をハード的に検出する、第7の本発明の送受信装置である。
第12の本発明は、
前記IP処理手段は、検出した前記TCPペイロードデータの開始位置および前記受信データの最後尾の位置情報を、受信管理データとして前記第1の受信バッファに格納する、第11の本発明の送受信装置である。
第13の本発明は、
前記第1の受信バッファに格納された前記TCPペイロードデータの開始位置および前記受信データの最後尾位置情報に基づいて、前記受信データのIPヘッダおよびTCPヘッダを削除して前記ストリーム処理手段にハード的に転送する手段を備えた、第12の本発明の送受信装置である。
第14の本発明は、
前記所定のプロトコルは、HTTPであり、
前記ローカルCPUは、前記第1の受信バッファに格納されている前記受信データを走査してHTTPヘッダの検出を行う、第1の本発明の送受信装置である。
第15の本発明は、
前記ローカルCPUは、前記HTTPヘッダを検出した場合には、HTTPペイロードデータの開始位置を検出して、前記受信データを前記HTTPペイロードデータの先頭から前記ストリーム処理手段にハード的に転送させる、第14の本発明の送受信装置である。
第16の本発明は、
前記HTTPペイロードデータは、動画像データを含んでいる、第15の本発明の送受信装置である。
第17の本発明は、
さらに、HTTPヘッダ情報をソフトウェア的に処理するホストCPUを備え、
前記ローカルCPUは、前記HTTPヘッダを検出した場合には、前記HTTPヘッダに含まれるHTTP_GETコマンドを検出し、そのHTTPヘッダ情報を前記ホストCPUに伝達する、第14の本発明の送受信装置である。
第18の本発明は、
前記ホストCPUは、HTTP_GETコマンドに対する応答情報を生成して前記ローカルCPUに伝達し、
前記ローカルCPUは、前記応答情報を受け取ると、前記応答情報を含むHTTPヘッダを生成して前記第1の受信バッファに格納し、前記ネットワーク回線に送信させる、第17の本発明の送受信装置である。
第19の本発明は、
前記ローカルCPUは、前記ホストCPUから受け取るHTTPヘッダ情報に基づいて、前記第1の送信バッファに所定のフォーマットでHTTPヘッダを書き込む、第17の本発明の送受信装置である。
第20の本発明は、
前記第1の送信バッファは、セグメント分割されており、
前記ストリーム処理手段は、入力されてくるAVデータを所定の長さに分割すると共に、少なくともIPヘッダを含むヘッダ情報を生成して前記第1の送信バッファに格納する送信IP・TCP処理手段を有している、第1の本発明の送受信装置である。
第21の本発明は、
前記送信IP・TCP処理手段は、
MACアドレスを含むMACヘッダと、
IPのバージョン情報、サービス型(TOS)、IPヘッダ長(IHL)、IPヘッダID情報,フラグメント制御情報、フラグメントオフセット情報、生存時間(TTL)、プロトコル大部、ソースIPアドレス、ディストネーションIPアドレス情報の一部またはすべてを含むIPヘッダと、
ソース・ポート、ディストネーション・ポート、アクノーリッジ番号、TCP制御フラグ、データ・オフセット、シーケンス番号の一部またはすべて含むTCPヘッダとを所定のフォーマットでハード的に生成する、第20の本発明の送受信装置である。
第22の本発明は、
前記ローカルCPUは、HTTPヘッダを付加してデータを送信する場合には、前記送信IP・TCP処理手段で生成された前記ヘッダ情報を前記第1の送信バッファに書き込ませた後、HTTPヘッダ長だけオフセットを設けて、前記ストリーム処理手段から転送されてくるAVデータを、そのオフセットの位置から前記第1の送信バッファに格納させる、第20の本発明の送受信装置である。
第23の本発明は、
前記第1の受信バッファは前記第1の送信バッファを兼ねており、データを送信する際には送信用のバッファとして使用し、データを受信する際には受信用のバッファとして使用する、第1の本発明の送受信装置である。
第24の本発明は、
ネットワーク回線からAVデータを受信する際には、
前記ネットワーク回線から受信したデータのうち、予め設定された所定の条件により、第1の受信バッファまたは第2の受信バッファのいずれに格納させるかを判定し、AVデータおよび前記AVデータに関連する受信制御データの一部を前記第1の受信バッファに格納し、それ以外の受信データを前記第2の受信バッファに格納する受信データ判別格納ステップと、
前記第1の受信バッファに格納された受信制御データの前記一部を読み込んで、そのデータに対して所定のハード的な処理を行うIP処理ステップと、
前記IP処理ステップで処理された結果および前記第1の受信バッファに格納されたデータに基づいて、前記第1の受信バッファからAVデータを抽出して出力させるAV受信データ転送ステップと、
前記IP処理ステップで処理された結果および前記第1の受信バッファに格納されたデータに基づいて、所定のプロトコルで送信データを生成して前記ネットワーク回線に出力する応答送信ステップとを備え、
前記ネットワーク回線にAVデータを送信する際には、
前記受信データ判別格納ステップと、
前記IP処理ステップと、
前記IP処理ステップで処理された結果および前記第1の受信バッファに格納されたデータに基づいて、送信するAVデータを第1の送信バッファに転送するAV送信データ転送ステップと、
前記応答送信ステップとを備えた、送受信制御方法である。
第25の本発明は、
第1の本発明の送受信装置の、ローカルCPUを動作させるためのプログラムである。
第26の本発明は、
第1の本発明の送受信装置の、ローカルCPUを動作させるためのプログラムが格納されたメモリである。
第27の本発明は、
前記第1の送信バッファに格納される送信データに含まれるIPヘッダのID情報には、前記第2の送信バッファに格納される送信データに含まれるIPヘッダのID情報とは常に異なるID情報を使用する、第1の本発明の送受信装置である。
本発明により、AVコンテンツ等の高速な伝送を安価に実現する、送受信装置、および送受信制御方法を提供することができる。
以下に、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1の送受信装置の構成図である。
以下、図1を使用して、本実施の形態1の送受信装置の構成とともに、AVデータ受信時の動作について説明する。なお、図9、図10と同じ機能を有する構成部分については、同じ符号を用いている。
図1において、ネットワーク回線3に送受信手段24が接続されており、データの送信及び受信ができる構成となっている。
送受信手段24にデータが受信されると、判別処理手段32に受信データが転送される。判別処理手段32では、受信データに含まれる送信先IPアドレス、送信元IPアドレス、TCP送信ポート番号、TCP受信ポート、TCP制御フラグ等の走査を行い、所定の条件に基づいて、高速処理が必要なAVデータおよびAVデータに関わる制御データであると識別した場合には、セレクタ33に、高速処理用受信バッファ31へ受信データを転送する指示を与える。またセレクタ33は、受信データが高速処理が必要なAVデータおよびAVデータに関わる制御データでない場合には、受信データをソフトウェア用受信バッファ35へ転送する。
ソフトウェア用受信バッファ35に受信データが格納されると、制御部25は、その受信データに対して必要な処理をソフトウェアにより実施する。そして、受信応答や、ネットワーク回線3に接続された別の機器に対してデータを送信する場合には、制御部25が、ソフトウェア用送信バッファ39にデータを送信し、送信制御部37および送受信手段24を介してネットワーク回線3にデータを出力できる構成となっている。
なお、判別処理手段32が、本発明の判別手段の一例であり、セレクタ33が、本発明のセレクタ手段の一例である。また、高速処理用受信バッファ31、ソフトウェア用受信バッファ35、ソフトウェア用送信バッファ39が、それぞれ、本発明の、第1の受信バッファ、第2の受信バッファ、第2の送信バッファの一例である。
12は、IP処理回路でありハードウェアで構成されている。IP処理回路12は、インターネットプロトコルの規格が既に確定されている処理を行い、ローカルCPU14にその処理結果を伝達する事により、ローカルCPU14の処理負荷の低減を行う。具体的には、IPレイヤのチェックサムやTCP/UDPレイヤのチェックサムの演算結果や、受信されたパケット長の抽出、受信データが正しい順番で受信されているかを確認するためにシーケンス番号をチェックしたり、受信データの種別などの情報を抜き出しローカルCPU14に伝達する処理などを行う。また、IP処理回路12は、受信データの格納情報等を、図5に示される受信バッファ管理情報として、高速処理用受信バッファ31に受信データとともに格納する。なお、IP処理回路12が、本発明のIP処理手段の一例である。
ローカルCPU14は、受信データが高速処理用受信バッファ31に格納されると、IP処理回路12が取得した情報を基に、受信データがTCP伝送の場合には、IP処理回路12で処理された結果より、正しく受信されているかを確認すると共に、高速処理用受信バッファ31の空き容量を確認して、以後の受信可能なデータサイズを算定するなどして、応答データ(ACKパケット)を高速処理用送信バッファ36を介してネットワーク回線3に出力する。なお、高速処理用送信バッファ36が、本発明の第1の送信バッファの一例である。
また、ローカルCPU14は、IP処理回路12で検出された情報から、正しく受信されていないことが分かると、再送要求パケットを、高速処理用送信バッファ36を介してネットワーク回線3に出力することにより送信側に送信し、間違ったパケットを破棄して正しいデータが来るのを待つ事によりデータの信頼性を向上させることができる。
さらにローカルCPU14は、受信データが高速処理用受信バッファ31に格納されると、ストリーム処理手段13に指示を出し、高速処理用受信バッファ31に格納されたAVデータの格納情報をストリーム処理手段13に伝達する。ストリーム処理手段13は、受け取ったAVデータの格納情報を基に、高速処理用受信バッファ31に格納された受信データをリードし、AV処理手段16に受信データを渡す。そして、AV処理手段16は、受け取ったAVデータを外部に出力する。
ストリーム処理手段13は、ローカルCPU14から得られた受信データ内にあるAVデータの格納情報を基にAV処理手段16にAVデータの転送を行うと共に、AVデータの転送完了情報をローカルCPU14に伝達する。ローカルCPU14は、ストリーム処理手段13からAVデータの転送完了情報を取得すると、高速処理用受信バッファ31の当該データのバッファ領域を開放して次の受信データが格納されるのを待つが、必要に応じてバッファが空いたことをサーバ機器に伝達するACKパケットを高速処理用送信バッファ36を介してネットワーク回線3に出力する。
受信データがHTTPによるプロトコル処理であった場合には、ローカルCPU14で処理することも可能である。また、HTTP処理が、制御部25で処理されるアプリケーションと密接に関係がある場合には、ローカルCPU14で高速処理用受信バッファ31内に格納されているHTTPデータ(HTTPヘッダ情報)を読み出して制御部25に伝達し、制御部25で処理し、HTTP情報の送信が必要な場合は、逆に制御部25からローカルCPU14にHTTP情報を伝達してネットワーク回線3に出力させることも可能である。
以上のように構成された本実施の形態1の送受信装置のローカルCPU14の処理は、以下の理由によりパフォーマンスの低い安価のものであっても高速かつ汎用性のある伝送処理が可能となる。
(1)判別処理手段32により、処理すべき受信データがAVデータに限定される。
(2)受信データの受信状況に対する処理を、IP処理回路12内でハードウェアにより高速処理する。
(3)受信状況に応じて、ローカルCPU14が判断してACKパケットを送出する。
(4)高速処理用受信バッファ31に格納されているAVデータの格納情報をストリーム処理手段13に伝達して、ハード的にAV処理手段16にAVデータの転送が行われるため、ローカルCPU14の処理負荷を低減できる。
(5)受信データの状況、バッファ状態、ストリーム処理手段13の情報を基にソフトウェア制御により動作することが可能であるため、伝送方式が異なる場合でもソフトウェアの変更を行えば良いので汎用設計が可能となる。
次に、AVデータ送信時の動作について説明する。
図1において、AV処理手段16からストリーム処理手段13へのAVデータの転送が開始すると、ローカルCPU14は、ストリーム処理手段13に対して、所定のフォーマットで高速処理用送信バッファ36ヘデータを転送するように指示する。
送信するプロトコルがTCPプロトコル場合には、送信先(クライアント機器)から送られてくる受信データが高速処理用受信バッファ31へ転送されるように、ローカルCPU14が判別処理手段32を設定することにより、クライアント機器が受信可能なバッファサイズ(windowサイズ)をローカルCPU14で知ることが可能となる。
そして、ローカルCPU14は、高速処理用送信バッファ36に格納された送信データの状況と、高速処理用受信バッファ31に格納された受信データから分かるクライアント機器の受信可能なバッファサイズ(windowサイズ)に基づいて、送信制御部37に対して送信指示を与えてネットワーク回線3にデータを出力させる。
また、クライアント機器がデータを受信できた場合には、応答パケット(ACK)が高速処理用受信バッファ31に格納されることになるので、ローカルCPU14は、その応答パケットを確認して高速処理用送信バッファ36に格納されているデータを開放する。もし、仮にクライアント機器が受信できていない場合は、ローカルCPU14は高速処理用送信バッファ36に格納されているデータを再送する。
この様に、本実施の形態1の送受信装置では、TCPによるフロー制御が簡単に実施可能であるため、データ信頼性の高い高速通信が可能となる。
また、ローカルCPU14が、高速処理用送信バッファ36の空き状況を確認してストリーム処理手段13の停止、再開の指示を与えることにより、確実にAVデータの伝送が可能となる。
この様に、AVデータの送信であっても受信機と同じ構成の回路で実現できるため、送信回路と受信回路を共通設計とすることができる。
また、ローカルCPU14を動作させるためのプログラムを格納するメモリ15を、RAMまたは書き換え可能なROMで実現すれば、製品の仕様追加や規格の変更があった場合にもソフトウェアの変更をすればよくハードウェアの修正を行う必要がない。
なお、本実施の形態1の送受信装置は、図1に示すようにAV処理手段16を含む構成としたが、AV処理手段16を含まない構成とし、その代わりに外部のAV処理手段と入出力を行う手段を設ける構成としてもよい。
図9に示す従来の送受信装置において、例えばサーバ装置1については、ハード処理を行なう第1プロトコル処理部122において、送信処理と受信処理とでの連携処理、例えば、第1プロトコル処理部122内部で受信処理したデータに対する送達確認、フロー制御用ACK送信処理等は、個別の処理として動作していた。また、ソフトで処理を行なう第1制御部125においても同様であり、送信処理と受信処理との連携した処理を行なうには、図9には示されない、さらに上流の制御装置等で行う必要があった。
これに対して、本実施の形態1の送受信装置では、送信処理と受信処理との連携した処理を、ローカルCPU14と一部ハードウェアで専用処理するプロトコル手段内で行なうようにしている。
(実施の形態2)
図6は、本発明の実施の形態2のAVデータ送受信システムの構成を示した図であり、図7は、本発明の実施の形態2におけるネットワーク送受信装置の構成図である。
実施の形態1では、図10に示す従来例と比較する形で説明を行ってきたが、以下に、具体的な実施形態を用いて説明する。
なお、図7において、ソフトウェア用送受信バッファ400は、図1の、ソフトウェア用送信バッファ39とソフトウェア用受信バッファ35の部分を合せた機能を有する部分である。また、送受信データ選択処理手段401は、図1の、判別処理手段32、セレクタ33、送信制御部37の部分を合せた機能を有する部分である。また、プロトコル処理手段41は、図1のIP処理回路12と高速処理用受信バッファ31と高速処理用送信バッファ36の部分を合せた機能を有する部分である。
図7において、AVストリームデータ処理手段30は、ネットワーク送受信装置が図6で示されるファイル・サーバ101として動作する場合は、HDD等の記録媒体よりストリーム・データ・ファイルを読み出す制御デバイス、あるいは、制御装置(以下、ファイル読み出し処理部)となる。
また、ネットワーク送受信装置が図6で示されるクライアント1(102)あるいは、クライアントn(103)として動作する場合は、AVストリームデータ処理手段30は、ストリームデータの再生処理デバイス、あるいは、処理装置(以下、データ再生処理部)となる。
図6に示すネットワーク環境を例にとり、図6〜図8を用いてHTTPプロトコルの動作を以下に説明する。
図8にHTTPプロトコルの動作シーケンスの一例を示す。なお、図8におけるサーバ104とは、図6のファイル・サーバ101のことであり、図8におけるクライアント105とは、図6のクライアント1(102)あるいは、クライアントn(103)のことである。
図8において、ストリームデータをプロトコル処理手段41、ストリーム処理手段13、AV処理手段16を通して取得するクライアント105は、サーバ104にTCPコネクション確立を要求するため、SYN190を送信する。
この動作を図7を用いて説明すると、クライアント105の制御部(ホストCPU)25が経路91を通じてローカルCPU14に対して、クライアント105が保持しているサーバ104のコネクション管理情報とサーバ104とのコネクション確立を指示する。ローカルCPU14は、コネクション確立のため、予め設定されたサーバ104の受信TCPポートを指示した送信SYNパケット190を生成し、経路93を通して、プロトコル処理手段41に書き込む。さらに、ローカルCPU14がプロトコル処理手段41に送信を指示することにより、前記送信SYNパケット190は、経路61、送受信データ選択処理手段401を通してIEEE802.3規定のMAC処理装置およびIEEE802.3規定のPHY処理装置である送受信手段24に伝達され、ケーブル等伝送媒体70により接続されているネットワーク回線3に送信する。
次に、図8において、ストリームデータをプロトコル処理手段41を通してクライアント105に送信するサーバ104は、クライアント105からのコネクション要求SYN190を受信した場合、もし、サーバ104がコネクション確立が不可であると判断した場合には、RSTパケットをクライアント105に返信し、コネクション確立に失敗したことを通知する。もし、サーバ104がコネクション確立可能と判断した場合には、SYN、ACK191をクライアント105に返信し、コネクション確立に成功したことを通知する。
この動作を図7を用いて説明すると、サーバ104では、制御部(ホストCPU)25は、予めの設定により経路91を通してローカルCPU14に、TCPコネクション確立要求の受付を指示する。ローカルCPU14は、コネクション確立要求のSYNパケットをクライアント105の受信TCPポートで待受け、ネットワーク回線3よりSYNパケットを送受信手段24、送受信データ選択処理手段401、プロトコル処理手段41、経路93を通して受信し、コネクションを確立するか拒否するかの判定を行い、コネクション確立と判定した場合は、SYN、ACKパケット101を生成し、経路93、プロトコル処理手段41、経路61、送受信データ選択処理手段401を通して送受信手段24に伝達し、ケーブル等伝送媒体70により接続されているネットワーク回線3に送信する。
次に、図8において、クライアント105は、SYN、ACKパケット191を受信し、その応答としてACK192をサーバ104に送信する。
この動作を図7を用いて説明すると、クライアント105のローカルCPU14は、ネットワーク回線3より、送受信手段24、送受信データ選択処理手段401、プロトコル処理手段41、経路93を通してSYN、ACK191を受信することにより、コネクションが確立したことを認識し、経路91を通して、サーバ104とコネクションが確立したことを制御部(ホストCPU)25に通知するとともに、ACKパケット192を生成し、経路93、プロトコル処理手段41、経路61、送受信データ選択処理手段401を通して送受信手段24に伝達し、ケーブル等伝送媒体70により接続されているネットワーク回線3に送信する。
次に、サーバ104では、図7においてネットワーク回線3より、送受信手段24、送受信データ選択処理手段401、プロトコル処理手段41、経路93を通してACK192を受けとることにより、ローカルCPU14は、経路91を通してコネクションが確立したことを制御部(ホストCPU)25に、コネクション確立したクライアント105のコネクション管理情報とともに通知する。
このように、コネクションの確立は、TCP通信プロトコルで規定されたコネクション確立シーケンスの仕様、手順に沿って行なわれる。この一連のシーケンス動作を制御部(ホストCPU)25が管理、制御する手法、処理手段もあるが、その場合、制御部(ホストCPU)25に負荷がかかる。またこの場合、ローカルCPU14とプロトコル処理手段41でコネクション管理情報を共有しなければならないが、管理元が制御部(ホストCPU)25となるため、情報更新での応答性が悪く、また、常に共有する情報の同期をとる必要があることから、制御部(ホストCPU)25、ローカルCPU14での管理更新処理が複雑になる。
したがって、上記したように、プロトコル処理手段41で送受信するためのTCPコネクションの確立、維持、管理をローカルCPU14で行なうと、制御部(ホストCPU)25の負荷を抑えると共に、ローカルCPU14で一元管理できることから、応答性の向上、管理の容易化ができる。
次に、TCPコネクションを確立した後のストリームデータ伝送におけるデータ取得要求処理について、以下説明する。
図8おけるHTTP_GET200は、図7を用いて説明すると、クライアント105の制御部(ホストCPU)25は、ローカルCPU14に対して経路91を通して、サーバ104に対する読み出すファイル名等の指定情報、データサイズ、範囲情報と、サーバ104からのストリームデータの取得(Get)を指示する。
ローカルCPU14は、制御部(ホストCPU)25から与えられた情報をHTTP_GET200に加工するため、プロトコル処理手段41に送信TCPパケット生成を指示し、経路93を通してHTTP_GETデータを書き込む。その後に、ローカルCPU14がプロトコル処理手段41に送信指示することにより、生成されたHTTP_GET200は、経路61を通して送受信手段24に伝達され、ケーブル等伝送媒体70により接続されているネットワーク回線3に送信される。
次に、サーバ104での動作を説明する。図7において、経路61を通りプロトコル処理手段41で受信処理された後、経路93を通り受信したHTTP_GET200から、ローカルCPU14は、HTTPヘッダデータ(サーバ104に対する読み出すファイル名等の指定情報、データサイズ、範囲情報の部分)を抽出する。そして、ローカルCPU14は、抽出したデータを経路91を通して、制御部(ホストCPU)25に通知する。
制御部(ホストCPU)25は、通知された情報を元に、クライアント105からのデータ取得に対する応答を判定するとともに、判定結果を経路91を通してローカルCPU14に通知する。ローカルCPU14は、通知された判定結果をHTTP_OK201等の応答フレームに加工するため、プロトコル処理手段41に送信TCPパケット生成を指示し、経路93を通して判定結果をプロトコル処理手段41に書き込む。その後に、ローカルCPU14がプロトコル処理手段41に送信を指示することにより、HTTP_OK201等の応答フレームがネットワーク回線3に送信される。
次に、クライアント105でのHTTP_OK201等の応答フレーム受信処理について説明する。図7において、経路61を通りプロトコル処理手段41で受信処理された後、経路93を通り受信したHTTP_OK201から、ローカルCPU14は、HTTPヘッダデータ(送信したHTTP_GETの応答)を抽出する。ローカルCPU14は、抽出したHTTP_GETの応答を経路91を通して制御部(ホストCPU)25に通知する。
このように処理されることにより、制御部(ホストCPU)25に負荷をかけず、かつ、高速な処理を行なうことができるので、図8でのHTTP_GET200からHTTPヘッダ+最初のストリームデータ202までの時間を、制御部(ホストCPU)25等でソフトで処理する場合より大幅に短縮できる。
次に、TCPコネクションを確立した後のストリームデータの伝送処理、特に送信処理について、以下に説明する。
図8において、サーバ104は、HTTP_GET200より得た情報により、クライアント105に送信するストリームデータを準備し、HTTPフレームにカプセル化し、HTTP_header+ストリームデータ202や、ストリームデータ203や、ストリームデータ204や、ストリームデータ205のように、TCPセグメントに分割して送信を行なう。
図7を用いて説明すると、制御部(ホストCPU)25の制御下にあるAVストリームデータ処理手段30から、送信ストリームデータは、経路60を通してAV処理手段16に入力され、ストリーム処理手段13、プロトコル処理手段41を通して送信される。
図2は、図7に示すLANコントローラ40の内部構成を示した図である。
なお、図2において、受信データ選択処理手段307が、図1の、判別処理手段32とセレクタ33の部分を合わせた機能を有する部分である。また、ストリームデータ入出力処理手段316とバンク・メモリ318と暗号演算処理手段320と経路321を合わせたものが、図1のAV処理手段16の機能を有する部分である。また、送信IP・TCP処理手段322と経路323と送信データライト処理手段324と経路339と受信データリード処理手段338を合せたものが、図1のストリーム処理手段13の機能を有する部分である。また、ローカルバッファ325と送信制御処理手段326と受信制御処理手段336を合せたものが、図1の、高速処理用受信バッファ31と高速処理用送信バッファ36を合わせた機能を有する部分である。
このように、本実施の形態2の構成では、本発明の第1の受信バッファおよび第2の受信バッファの2つのバッファを、1つのローカルバッファ325で共用させて用いている。
図2を用いて、AV処理手段16、ストリーム処理手段13、プロトコル処理手段41を通しての送信処理を説明する。AVストリームデータ処理手段30から経路60を通して入力されたストリームデータは、ストリームデータ入出力処理手段316に入力され、経路317を通って、ストリームデータの入力単位でバンク・メモリ318に一時的に蓄積される。バンク・メモリ318に蓄積されたストリームデータは、ローカルCPU14が送信データライト処理手段324に指示することにより、経路319を通して暗号演算処理手段320に入力される。暗号演算処理手段320において、入力されるストリームデータを暗号化あるいは復号化するか、そのまま処理しないかは、制御部(ホストCPU)25、あるいは、ローカルCPU14からの予めの設定により決められている。
暗号演算処理手段320を通過したストリームデータは、経路321を通して送信IP・TCP処理手段322に入力される。送信IP・TCP処理手段322は、ローカルCPU14からの予めの設定に従い、先頭に2バイトのオフセットとIEEE802.3で規定されたMACヘッダとIPヘッダとTCPヘッダを付加し、ローカルCPU14からの指示により、HTTPフレームの先頭であれば、HTTPヘッダ分のデータオフセット長を勘案し、入力されたストリームデータを指定されたTCPセグメント長で分割して、送信TCPセグメントを生成し、経路323を通して、送信データライト処理手段324に入力する。
図4に、送信IP・TCP処理手段322において付加されるIPヘッダおよびTCPヘッダのフォーマット例を示す。
IPヘッダ内のIDに関して、IPプロトコルの規定でIPプロトコル層においてフラグメント(分割)されないIPパケットは、各々ユニークIDを持つ必要がある。本実施の形態2のLANコントローラ40では、制御部(ホストCPU)25がソフト処理するTCP/IPプロトコル処理の送信データとAV処理手段16、ストリーム処理手段13を通してプロトコル処理手段41が処理する送信データは、それぞれ独立して処理されるため、IPヘッダのIDが同時期に重複する場合が想定される。
このことを回避するため、制御部(ホストCPU)25から、使用しているIPヘッダのIDがメッセージバッファ309を経由してローカルCPU14に通知され、ローカルCPU14は、このIDをもとに、異なるID情報を生成し、送信IP・TCP処理手段322に指示することにより、IDの重複が回避可能となる。ただし、これは一例であり、他に、LANコントローラ40内において、制御部(ホストCPU)25が送信処理する送信データに対して、ハードウェアが、その送信データのIPヘッダのIDを監視し、そのIDをローカルCPU14に通知し、ローカルCPU14が、その情報をもとに異なるID情報を生成し、送信IP・TCP処理手段322に指示するという手段もある。
次に、送信データライト処理手段324が、送信TCPセグメントをローカルバッファ325に格納する。送信TCPセグメントを送信のため保持するローカルバッファ325は、最大送信TCPセグメント長を格納できる領域1536バイト単位にセグメントされ、その1536バイト単位の領域を8面有している。
送信データライト処理手段324は、8面あるローカルバッファ325の内、ローカルCPU14により指示されているローカルバッファ325に、TCPセグメントデータを、図3に示すフォーマット形式のように、2バイトの送信バッファ管理情報と送信データの形で格納する。
ここで、TCP/IPプロトコルを使用したデータ伝送では、一般的に、2つあるいは3つの送信TCPセグメントに対して、1つの送達確認用の応答制御データであるACKセグメントが受信先より返信される。このTCPセグメントを送信し、返信されたACKセグメントを受信し、送信したTCPセグメントが送信先に正しく届いたことを確認できるまでの間、送信バッファとなるローカルバッファ325を開放できない。また、TCPセグメントを送信し、返信のACKセグメントが返るまでは、ネットワーク上での往復時間となること、さらに、ネットワークの混み具合等により変動するため、それなりの待ち時間を必要とする。
このため、ローカルバッファ325のバッファ数が、例えば、2面というように少なく、かつ、ACKセグメント確認までの待ち時間が、送信伝達時間の2倍程度と見た場合、伝送の性能は1/2に低下してしまう。このため、伝送の性能を低下させないためには、バッファ数を2倍にする必要がある。さらに、ネットワークの混み具合等による変動でさらに待ち時間が大きくなることを考慮すると、2倍以上のバッファ数が必要となる。ここで、ハードウェアが複数バッファを管理制御する場合、2のn乗の数が扱い易いため、これらの条件を基に最少のバッファ数を算出すると、2面×2=8面のバッファ数があれば、ネットワークによる伝送の性能の低下を抑えることが出来る。
図3は、本実施の形態2で、ローカルバッファ325に格納されるTCPセグメントデータのフォーマット形式を示している。図3において、送信バッファ管理情報である先頭2バイトは、TCPセグメントデータの最終データのアドレスを示している。
本実施の形態2では、送信バッファ管理情報を、TCPセグメントデータの最終データのアドレスとしているが、他の例として、送信データ長でもかまわない。送信バッファ管理情報の要件は、ローカルバッファ325に格納された送信データの終端を検出できる2バイトの情報であることが重要である。
以降、送信データであるMACヘッダ、IPヘッダ、TCPヘッダ、HTTPフレームにカプセル化され、TCPセグメント化された送信ストリームデータ(以下、TCPペイロードデータという)の形式で格納され、データの書き込み順番に関しては、本実施の形態2では、MACヘッダ、IPヘッダ、TCPヘッダ、TCPペイロードデータ、TCPヘッダのチェックサム、TCPセグメントデータの最終データのアドレスの順に書き込まれるが、これは、ほんの一例であり、データの書き込み順番は問わない。
次に、ストリームデータのHTTPフレームカプセル化処理について、図2、図3、図7を用いて説明する。
本実施の形態2では、HTTPフレームカプセル化処理は、HTTPプロトコルに規定されるデータフォーマットに従い、送信ストリームデータの先頭にHTTPヘッダを付加することで実現する。
図7において、HTTPヘッダの情報は、制御部(ホストCPU)25から、経路91を通してローカルCPU14に通知され、ローカルCPU14は、HTTPヘッダの情報に基づいてHTTPヘッダデータを生成し、あるいは、HTTPヘッダデータに加工して、経路93を通してプロトコル処理手段41に入力する。そして、プロトコル処理手段41において、経路93を通して入力されたHTTPヘッダを先頭の送信ストリームデータに付加することによりHTTPカプセル化処理は行なわれる。
図2において、HTTPヘッダを付加する処理を説明すると、ローカルCPU14は、HTTPフレームの先頭データを格納するローカルバッファ325を選択し、選択したローカルバッファ325に対して、経路323を通して、HTTPヘッダデータを書き込む。HTTPヘッダを書き込むローカルバッファ325内の位置は、図3において、ペイロードデータ(Payload)の先頭領域に格納する。
次に、ローカルCPU14は、送信IP・TCP処理手段322に、HTTPヘッダデータのチェックサム演算途中結果を付与し、送信データライト処理手段324に選択したローカルバッファ325およびHTTPヘッダ分のオフセットを指示するとともに、バンク・メモリ318からの送信ストリームデータの読み出しと、ローカルバッファ325への書込みを指示する。
送信IP・TCP処理手段322、送信データライト処理手段324は、ローカルCPU14からの設定、指示に従い、MACヘッダの書込み、IPヘッダの書込み、TCPヘッダの書込み、HTTPヘッダのオフセット分書き込む領域を飛ばして送信ストリームデータの書き込み、TCPチェックサムの書込み、送信バッファ管理情報の書き込みを行なう。これにより、HTTPヘッダと送信ストリームヘッダの結合処理は、完了する。
ここで、本実施の形態2では、先にローカルバッファにHTTPヘッダデータを書き込む処理を行なうこととしたが、先にバンク・メモリ318からローカルバッファ325にストリームデータをTCPセグメント化して転送させた後に、HTTPヘッダを書き込んでもかまわない。あとは、HTTPフレーム長の送信ストリームデータをTCPセグメントに分割しながらローカルバッファに格納していくことで、HTTPフレーム化処理は行なわれていく。そして、HTTPフレーム長の最後のTCPセグメントを生成し、ローカルバッファに格納したところで、HTTPフレーム化処理を終了し、ローカルCPU14に、完了を通知する。
ローカルCPU14は、送信制御のローカルバッファ325を管理するため、ローカルバッファ325に格納されたTCPセグメントのSEQ番号を算出し、あるいは、TCPセグメントより抽出し、ローカルCPU14の管理する8面のローカルバッファ325に格納されたTCPセグメントに対応したSEQ番号情報テーブルに登録する。ここで、SEQ番号情報テーブルは、送信IP・TCP処理手段322または送信データライト処理手段324に専用のハードウェアとして実装されても良いし、ローカルCPU14が使用するメモリ15またはローカルバッファ325にソフトウェアにて実装されても良い。
次に、送信ストリームデータがHTTPフレーム化され、TCPセグメントに分割されたローカルバッファ325に格納された送信データの送信制御について、図2、図3を用いて説明する。
図2において、ローカルCPU14は、送信制御処理手段326に対して、送信TCPセグメント数と開始ローカルバッファと送信開始と送信要求優先度とを指示する。ローカルCPU14からの指示を受けた送信制御処理手段326は、送信要求調停・選択処理手段(送信制御部)37に送信要求優先度と送信要求を渡すとともに、指定されたローカルバッファ325から送信バッファ管理情報を読み出し、当該ローカルバッファ325の送信TCPセグメントの最終ポインタとして保持する。そして、送信制御処理手段326は、順次、当該ローカルバッファ325を読み出し、読み出したデータを、送信要求の応答として送信要求調停・選択処理手段37より選択された許可通知を受けると、経路327を通して、送信要求調停・選択処理手段37に出力し、さらに、送信要求調停・選択処理手段37は経路329を通して送受信手段24に伝達し、ネットワーク上に送信させる。
上記の当該ローカルバッファ325から読み出す処理において、読み出しアドレスが保持していた送信TCPセグメントの最終ポインタと一致した場合には、送信制御処理手段326は、送信TCPセグメントの終端と判定し、読み出し処理を終了するとともに送信要求調停・選択処理手段37に通知する。送信要求調停・選択処理手段37は、通知された送信TCPセグメントの終端を送受信手段24に通知する。送受信手段24は、その通知をうけて、送信TCPセグメントの送信終端処理を行なう。
その後、送受信手段24は、正常にネットワークに送信TCPセグメントを送信し終わったことを確認し、送信完了を送信要求調停・選択処理手段37を経由し、送信制御元である送信制御処理手段326に通知する。送信制御処理手段326は、送信完了を受け、指定された送信TCPセグメント数に達したかを判定し、送信TCPセグメント数に達していなければ、次のローカルバッファ325について上記の一連の送信制御処理を行う。そして、送信TCPセグメント数に達していたならば、送信制御処理を終了し、終了したことをローカルCPU14に通知する。
このようにして、ストリームデータ伝送処理における送信処理は、送信IP・TCP処理手段322、送信データライト処理手段324、ローカルバッファ325というハードウェア主体で処理されるため、高速な処理が可能となり高速伝送を行なうことができる。
次に、TCPコネクションを確立した後のストリームデータの伝送処理、特に受信処理について、以下に説明する。
図8において、クライアント105では、ストリームデータがHTTPフレームにカプセル化され、HTTP_header+ストリームデータ202やストリームデータ203やストリームデータ204やストリームデータ205のように分割されて、サーバ104から送信されてきたTCPセグメントをHTTPフレームに組み立て直し、さらにHTTPフレームのデカプセル化処理を行い、ストリームデータに戻す。
図7を用いて説明すると、ネットワーク回線3よりケーブル等伝送媒体70を通り、送受信手段24で受信処理されたTCPセグメントは、送受信データ選択処理手段401、経路61を通りプロトコル処理手段41に入力される。
図2を用いてプロトコル処理手段41、ストリーム処理手段13、AV処理手段16を通しての受信処理を説明すると、プロトコル処理手段41において、経路333を通してIP処理回路12に入力される。IP処理回路12は、受信TCPセグメントについて、IPヘッダのチェックサムを演算し、チェックサムが正しいかどうかを判定する。また、IPヘッダから擬似TCPヘッダ情報を取得し、擬似TCPヘッダを生成し、擬似TCPヘッダを含めてTCPデータのチェックサムを演算し、チェックサムが正しいかどうかを判定するとともに、IPヘッダのIPヘッダ長(IHL)およびTCPヘッダのデータオフセットから、TCPペイロードデータの先頭を検出し、受信制御処理手段336に通知する。さらに、TCPヘッダのSEQ番号を抽出して、そのSEQ番号が期待するSEQ番号であるかの合否を判定し、その合否判定結果をローカルCPU14に通知するとともに、受信データをカウントし、次に期待するSEQ番号を生成し、さらにTCPヘッダのアクノーリッジ番号(以下、ACK番号)を予め設定された期待するACK番号と比較し、合否判定し、その合否判定結果をローカルCPU14に通知する。さらに、TCPヘッダのウィンドウサイズがゼロ(0)かどうかを検出し、その検出結果をローカルCPU14に通知する。また、TCPヘッダのウィンドウサイズと、予め設定された閾値を比較し、その閾値より小さいことを検出し、その検出結果をローカルCPU14に通知することと、TCPヘッダURG、SYN、RST、FIN等のTCP制御フラグを抽出する処理をおこなう。
次に、IP処理回路12を通過したTCPセグメントは、経路335を通して、受信制御処理手段336に渡され、受信制御処理手段336では、ローカルCPU14より指示された8面あるローカルバッファ325のいずれかに格納される。
図5に、受信TCPセグメントの格納フォーマットを示す。図5において、ローカルバッファ325には、左端から右端方向で格納される。先頭から10バイトは、受信バッファ管理情報であり、その受信バッファ管理情報のあとに受信TCPセグメントが格納される。さらに、受信バッファ管理情報は、受信処理における上記の諸処理のチェック結果等が格納される3バイトのStatusと、IP処理回路12において抽出されたTCP制御フラグ情報を格納する1バイトのTCP Flagsと、MACヘッダ長、IPヘッダ長、TCPヘッダ長の全ヘッダの総和情報を格納する2バイトのHeader_lengthと、受信したデータのデータ長情報を格納する2バイトのTotal_Lengthと、2バイトのオフセットとから構成される。
本実施の形態2では、受信バッファ管理情報におけるHeader_lengthは、MACヘッダとIPヘッダとTCPヘッダの総和としているが、他の例としては、受信データのTCPペイロードデータの開始アドレス等でもかまわない。Header_length情報を設けている理由は、TCPペイロードデータの開始アドレス、および位置を検出するのに利用するためであるし、また、本実施の形態2では、受信バッファ管理情報におけるTotal_Lengthは、受信したデータのデータ長であるが、他の例として、受信したデータの最終端データのライト・アドレスでもかまわない。Total_Length情報を設けている理由は、受信データの終端アドレス、および位置を検出するのに利用するためである。
受信制御処理手段336において、受信TCPデータは、MACヘッダ、IPヘッダ、TCPヘッダ、TCPセグメント、受信バッファ管理情報の順に格納されるが、これは一例であり、格納の順番に関しては、順番は問わない。
受信制御処理手段336は、図5のフォーマットに従い、受信TCPセグメントをローカルバッファ325に格納すると、ローカルCPU14に受信TCPペイロード開始アドレスと受信データ長と受信エラー情報等、ならびに、受信完了の通知を行なう。ローカルCPU14は、この通知を受け、受信TCPセグメントにHTTPヘッダが含まれているかどうかを判定し、HTTPヘッダが含まれると判断した場合には、HTTPヘッダの終端を検出するために当該ローカルバッファ325が通知された受信TCPペイロード開始アドレスを参照し、HTTPヘッダをリードし、解析を行なう。
また、ローカルCPU14は、リードしたHTTPヘッダ情報を図7においては経路91、図2においてはメッセージバッファ309経由で、制御部(ホストCPU)25に通知するとともに、解析した結果より受信するHTTPフレームの総データ長を取得し、受信データリード処理手段338に指示する。さらに、ローカルCPU14は、受信データリード処理手段338に対して、ローカルバッファ325内の受信TCPセグメントを読み切った時点でローカルCPU14に報告するか、読み出しデータの転送先であるバンク・メモリ318をフルの状態にした時点でローカルCPU14に報告するかのどちらか一方を選択指示し、受信データの読み出しを開始するローカルバッファ325と、読み出しの開始位置を指示し、さらにHTTPヘッダを含む場合はHTTPヘッダのデータ長も指示する。ここで、指示するHTTPヘッダのデータ長は、一例であって、HTTPの終端の後に続くHTTPペイロードの開始位置を検出できる情報であればよく、HTTPペイロード開始のローカルバッファの直接、間接アドレス等でもかまわない。
次に、受信データリード処理手段338は、指示されたローカルバッファ325から、受信バッファ管理情報の内、3バイトのStatus情報と2バイトのHeader_length情報と2バイトのTotal_Lengthを読み出し、Statusよりローカルバッファ325内の当該データが正規のデータであるかを判定する。この判定結果より、不正規なデータであると判定した場合は、読み出し制御をその時点で終了し、ローカルCPU14に、読み出しをエラー検出により終了したことを通知する。正規なデータであると判定した場合で、さらにHTTPヘッダのデータ長の指示が有効である場合には、HTTPヘッダのデータ長とHeader_lengthより読み出し開始バッファアドレスを算出し、データの読み出しを開始する。ここで、読み出し開始アドレスは、HTTPペイロードの先頭を示しており、かつ、このアドレス位置は、組み立て直すストリームデータの先頭を示している。
このようにして、HTTPフレームのデカプセル化処理が行なわれる。また、上記に続き、上記判定結果で正規なデータであると判定した場合で、かつHTTPヘッダのデータ長が指示が無効である場合は、Header_lengthより読み出し開始バッファアドレスを算出し、データの読み出しを開始する。次に、Total_Lengthよりローカルバッファ325内の当該受信TCPセグメントの終端位置を算出し、読み出し制御は、終端になるまで読み出しを行い、この時点で、HTTPフレームの総データ長に達していれば、ローカルCPU14にHTTPフレーム読み出し完了を通知する。
さらに、「ローカルバッファ325内の受信TCPセグメントを読み切った時点で報告する」が指示されている場合は、ローカルCPU14にMSS毎での読み出し完了を通知する。もし、「読み出しデータの転送先であるバンク・メモリ318をフルの状態にした時点で報告する」が指示されていた場合、ローカルバッファ325からの読み出しは、バンク・メモリ318分のデータを読み出したところで、ローカルCPU14にバンクメモリ転送分読み出し完了を通知し、かつ、読み出し制御を終了する。
また、ローカルバッファ325からの読み出しで、終端データまで達したなら、受信データリード処理手段338は、次のローカルバッファ325に格納されたデータが有るかどうかを判定する。そして、格納されたデータが有ると判定した場合は、次のローカルバッファ325にチェインし、受信バッファ管理情報の読み出しから、一連の読み出し制御処理を行なう。また、格納データが無いと判断した場合は、有ると判定できるまで、一旦読み出し制御を停止する。そして、受信データリード処理手段338により読み出されたストリームデータは、経路339を通して暗号演算処理手段320に入力される。
暗号演算処理手段320において、入力されるストリームデータを暗号化あるいは復号化するか、そのまま処理しないかは、制御部(ホストCPU)25、あるいはローカルCPU14からの予めの設定による。暗号演算処理手段320を通過したストリームデータは、経路340を通してバンク・メモリ318に一旦保持され、バンク・メモリ318が満杯の状態になると、経路341を通して、ストリームデータ入出力処理手段316に渡される。さらに、図7で示す経路60を通してAVストリームデータ処理手段30に入力され、処理される。
これにより、プロトコル処理手段41、ストリーム処理手段13、AV処理手段16を通してのストリームデータ伝送処理における受信処理は、ハードウェア主体で処理されるため、高速な処理が可能となり、ローカルバッファ325およびバンク・メモリ318に受信データが滞留してる時間を短縮できるので、メモリ容量を最小化できる。
次に、上記に説明したストリームデータ受信処理等におけるフロー制御、送達確認および再送制御処理であるACKセグメントの送信処理に関して説明する。
図8において、クライアント105は、サーバ104からの送信データに対して、ACKセグメント210、ACKセグメント211、ACKセグメント212、ACKセグメント213のように、TCPプロトコルに則ったACKセグメントをサーバ104に返す。但し、図8は一例に過ぎず、ACKセグメント210、ACKセグメント211、ACKセグメント212、ACKセグメント213が必ずクライアント105から返されるとは、限らない。
図2において、クライアント動作では、LANコントローラのローカルCPU14に対して、受信制御処理手段336からの受信エラー情報等、ならびに、受信完了の通知と受信データリード処理手段338からの読み出しをエラー検出したことにより終了したことの通知とMSS毎での読み出し完了の通知か、あるいはバンク・メモリ318転送分読み出し完了の通知とローカルバッファ325の空き領域情報とACKセグメントの送信間隔の監視タイマで、タイマが予めの設定された閾値以上達することを示す通知等が行なわれることより、TCPプロトコルに準拠したACKセグメントの送信処理を行なうため、ローカルCPU14は、送信IP・TCP処理手段322に対してTCPヘッダのSEQ番号、ACK番号、ウィンドウサイズを指示するとともに、ACKセグメントの生成を指示する。
ここで、ACKセグメントにおいて、送信するACKセグメントに送信すべきペイロードデータが存在しない場合、SEQ番号は、固定値として扱え、ACK番号は、初回の受信TCPセグメントのSEQ番号と受信データリード処理手段338が読み出したデータ長の和(+)より算出できるし、また、ウィンドウサイズの算出は、ローカルバッファ325に書き込んだデータ量と読み出したデータ量等のローカルバッファ325の空き領域情報から算出できる。
ACK番号の算出は、ハードウェアで算出しても、ローカルCPU14が算出しても、どちらでもかまわない。また、ウィンドウサイズの算出は、ローカルCPU14が受信したデータ量と読み出したデータ量から算出する手段でも、ハードウェアでローカルバッファ325に書き込んだデータ量と読み出したデータ量から残格納データ量を監視して、自動的に算出する手段でも、ハードウェアでローカルバッファ325に書き込んだデータ量と読み出したデータ量等の情報をローカルCPU14に通知あるいは表示し、その情報をもとにローカルCPU14が算出する手段でも、いずれの手段でもかまわない。
また、ACKセグメントを生成指示するタイミングは、予め決められたローカルバッファ数分読み出したか、あるいは、ACKセグメントの送信間隔の監視タイマが予めの設定された閾値以上に達したことをローカルCPU14が検知した時となる。
次に、送信IP・TCP処理手段322は、指示されたSEQ番号、ACK番号、ウィンドウサイズと予めの設定に従い、上記のストリームデータの送信処理でのTCPセグメント生成と同様の一連の処理で、MACヘッダとIPヘッダとTCPヘッダとからなるACKセグメントを生成し、ローカルバッファ325のACKセグメント格納領域に格納する。その後、送信制御処理手段326は、送信指示に従い、ローカルバッファ325のACKセグメントを読み出し、経路327、送信要求調停・選択処理手段37、経路329、送受信手段24を通して、ネットワークに送信される。
ここで、送信制御処理手段326に対する送信指示は、送信IP・TCP処理手段322がローカルバッファ325にACKセグメントを格納した後に、直接指示する手段もあるだろうし、送信IP・TCP処理手段322がローカルバッファ325にACKセグメントを格納した後にローカルCPU14にACKセグメントの生成完了を通知し、ローカルCPU14が指示する手段もあるであろうし、送信制御処理手段326がローカルバッファ325にACKセグメントを格納されたことを検出することで指示する手段もあるが、いずれの手段をとるかは、問わない。
上記に説明したように、ローカルCPU14がローカルバッファ325の開放管理とACKセグメントの送信制御をおこなうことで、ローカルバッファ325をオーバーフローさせることなく、TCPセグメントのフロー制御を行なうことができる。また、ローカルCPU14がACK番号、ウィンドウサイズを自由に設定、制御することにより、柔軟にACKセグメントによりフロー制御と送達確認および再送制御を行なうことができる。
次に、上記で説明したストリームデータ送信処理等におけるフロー制御、送達確認および再送制御処理であるACKセグメント受信処理に関して説明する。
図8において、サーバ104は、自身が送信した送信データに対してクライアント105がTCPプロトコルに則って送信制御した、ACKセグメント210、ACKセグメント211、ACKセグメント212、ACKセグメント213を受信する。但し、図8は一例に過ぎず、ACKセグメント210、ACKセグメント211、ACKセグメント212、ACKセグメント213が必ずクライアント105から送信されるとは、限らない。
図2において、ACKセグメントは、ネットワーク上より送受信手段24、経路330、受信データ選択処理手段307、経路333を通って、IP処理回路12に入力される。IP処理回路12は、入力された受信ACKセグメントについて、IPヘッダのチェックサムを演算し、チェックサムが正しいかどうかを判定する。また、IPヘッダより擬似TCPヘッダ情報を取得し、擬似TCPヘッダを生成し、その擬似TCPヘッダのチェックサムを演算し、チェックサムが正しいかどうかを判定する。さらに、TCPヘッダのSEQ番号を抽出して、そのSEQ番号が期待するSEQ番号か合否判定し、その合否判定結果をローカルCPU14に通知するとともに受信データをカウントし、次に期待するSEQ番号を生成する。さらに、TCPヘッダのACK番号を予め設定された期待するACK番号と比較し、合否判定し、その合否判定結果をローカルCPU14に通知する。さらに、TCPヘッダのウィンドウサイズがゼロ(0)かどうかを検出し、その検出結果をローカルCPU14に通知する。また、前記ウィンドウサイズと予め設定された閾値を比較し、その閾値より小さいことを検出し、その検出結果をローカルCPU14に通知することと、TCPヘッダURG、SYN、RST、FIN等のTCP制御フラグを抽出する処理をおこなう。
次に、IP処理回路12通過したTCPセグメントは、経路335を通して、受信制御処理手段336に渡される。受信制御処理手段336は、予めの設定に従い、ローカルバッファ325のローカルCPU14用に設けられた受信バッファにそのTCPセグメントを格納するとともに、ローカルCPU14にACKセグメントの受信完了を通知する。ローカルCPU14は、ACKセグメントの受信完了通知を受けると、ローカルバッファ325のACKセグメント格納領域より、ACKセグメントのACK番号を抽出する。
次に、ローカルCPU14は、抽出したACK番号を、前述した8面のSEQ番号情報テーブルに登録されたSEQ番号と比較する。比較した結果、一致するSEQ番号情報があったなら、送達確認の出来たローカルバッファを開放し、ローカルバッファ325に新たな送信TCPセグメントの格納を許可する。また、ローカルCPU14は、ウィンドウサイズをチェックし、受信側の受信データの許容量から、送信可能なTCPセグメントの数を算出し、新たに送信可能な個数分のTCPセグメントを送信制御する。
本実施の形態2では、ローカルCPU14が送信制御している、あるいは、送信制御していたTCPセグメントのSEQ番号を管理し、受信ACKセグメントのACK番号と比較する処理手段をとっているが、これは一例であって、他の手段として、ハードウェアでSEQ番号の管理、比較一致を行い、ローカルCPU14に結果を通知する処理手段等もあるだろう。上記に説明したように、ローカルCPU14がローカルバッファ325の開放管理とACKセグメントの受信制御をおこなうことで、受信ローカルバッファ325の状況に応じたTCPセグメントのフロー制御行なうことができ、受信側のローカルバッファ325をオーバーフローさせることがない。
なお、本実施の形態2で説明したコネクション確立用のSYNセグメント、SYN・ACKセグメント、ACKセグメント、HTTP_GET、HTTP_OK、HTTP_Header情報が、本発明の、AVデータに関連する受信制御データおよび送信制御データの一例である。
以上に説明した各実施の形態は、例示であって本発明の範囲を限定するものでは無い。
なお、各実施の形態の送受信装置に接続されるネットワークは、IEEE802.3規格に準拠しているネットワークや、IEEE802.11規格に準拠しているネットワークなど、HTTPプロトコルを用いることができるネットワークであればよい。
以上に説明したように、本発明の送受信装置は、ホストCPUには処理負荷の重く高速伝送を必要とするHTTPプロトコルに従った処理を、ホストCPUとは別手段で、プロトコル処理に柔軟で複雑な対処が必要な送受信制御等を処理するローカルCPUと、プロトコル処理で単純であるがソフト処理では負荷が重過ぎる処理を処理するハードウェアと、ストリームデータを専用に制御ならびに管理を可能とするローカルバッファとで処理するHTTPプロトコル処理手段と、ホストCPUがソフトで伝送データのTCP/IP処理し直接制御可能な通信処理手段とを備えた。
本発明の送受信装置によれば、ネットワーク回線にインターネットプロトコルで伝送されたAVパケットだけが判別手段で第1の受信バッファへ転送されるので、ローカルCPUはAV伝送のための処理に最適化することができる。また、規格が既に確定して単純な処理をIP処理手段で行えるので、性能の低い安価なCPUで実現できる。また、処理が複雑なTCP・HTTP処理であっても、第1の受信バッファの情報とローカルCPUによってネットワーク回線へ送信する手段を設ける事により、ソフトウェアで実現できることから汎用性を持った設計が可能である。複数の伝送方式に対応する場合には、ソフトウェアを追加すれば対応できるので、プログラムメモリサイズの増加程度のコストアップで済み、回路規模の増大を抑えることができる。また、伝送方式がすべて確定してない状況でもソフトウェアで対応可能であるため、早期に製品の市場投入が可能である。また、本発明によれば、受信装置、送信装置の共用設計が可能であり開発費用の削減が可能である。
本発明の送受信装置を用いることにより、ホストCPUに超高速処理可能なCPUと高速なメモリを必要とせず、難易度の高い実装技術も不要となる。
このため、本発明の送受信装置を利用したネットワーク送受信装置は、低コストで、消費電力が低く、ホストCPUがソフト処理する通信プロトコル処理負荷を少なくでき、その上で、データ伝送を高速に行なうこととネットワークを効率良く使用することができる。
さらに、ローカルCPUのプログラムの変更等により、新規機能の追加にも、柔軟に対応できる。
また、従来の高速伝送を必要としないホストCPUがソフト処理するデータ伝送も、そのままか、一部の変更で使用でき、従来のソフトの移植が容易に行なえる。
なお、本発明のプログラムは、上述した本発明の送受信装置の、ローカルCPUを動作させるためのプログラムであって、コンピュータと協働して動作するプログラムである。
また、本発明のメモリは、上述した本発明の送受信装置の、ローカルCPUを動作させるためのプログラムを担持したメモリであり、コンピュータにより読み取り可能かつ、読み取られた前記プログラムが前記コンピュータと協働して利用されるメモリである。
また、本発明のプログラムの一利用形態は、コンピュータにより読み取り可能な記録媒体に記録され、コンピュータと協働して動作する態様であっても良い。
また、記録媒体としては、ROM等が含まれる。
また、上述した本発明のコンピュータは、CPU等の純然たるハードウェアに限らず、ファームウェアや、OS、更に周辺機器を含むものであっても良い。
なお、以上説明した様に、本発明の構成は、ソフトウェア的に実現しても良いし、ハードウェア的に実現しても良い。
本発明にかかる送受信装置は、AVデータを複雑なTCPやHTTPなどのインターネットプロトコルで伝送する機能を安価に提供できるばかりでなく、複数種のコンテンツ対応や規格の変更などに柔軟対応できる汎用性をもっている。そのため、ネットワークに接続される家電製品やモバイル端末等の用途に有用である。
本発明の実施の形態1の送受信装置の構成図 本発明の実施の形態2のLANコントローラ40の内部構成図 本発明の実施の形態2のローカルバッファ325に格納される送信TCPセグメントデータのフォーマット形式を示した図 本発明の実施の形態2の送信データに付加されるIPヘッダおよびTCPヘッダのフォーマットを示した図 本発明の実施の形態2のローカルバッファ325に格納される受信TCPセグメントデータのフォーマット形式を示した図 本発明の実施の形態2のAVデータ送受信システムの構成図 本発明の実施の形態2のネットワーク送受信装置の構成図 本発明の実施の形態2のHTTPプロトコルの動作シーケンスの一例を示す図 従来の送受信装置の構成図 従来の送受信装置に用いられる送受信装置の構成図
符号の説明
1 サーバ装置
2 クライアント装置
3 ネットワーク回線
12 IP処理回路
13 ストリーム処理手段
14 ローカルCPU
15 メモリ
16 AV処理手段
119 第2送受信部
21 AVエンコーダ
122 第1プロトコル処理部
23 第1ルータ
124 第1送受信部
26 AVデコーダ
127 第2プロトコル処理部
28 第2ルータ
129 第2制御部
31 高速処理用受信バッファ
32 判別処理手段
33 セレクタ
34 ハードウェア用受信バッファ
35 ソフトウェア用受信バッファ
36 高速処理用送信バッファ
37 送信制御部
38 ハードウェア用送信バッファ
39 ソフトウェア用送信バッファ
101 ファイル・サーバ
102 クライアント1
103 クライアントn
04 クライアントからファイル・サーバに対するファイル・データの読み出し要求
05 ファイル・サーバからクライアントに対するファイル・データの伝送
10 ネットワーク送受信装置
30 AVストリームデータ処理手段
40 LANコントローラ
41 プロトコル処理手段
50 ホストCPUとソフトウェア用送受信バッファとのデータ経路
60 ストリームデータ処理手段とプロトコル処理手段とのインタフェース
61 プロトコル処理手段とIEEE802.3MAC+PHYとのデータ経路
70 ケーブル等伝送媒体
91 ローカルCPU14と制御部(ホストCPU)25の双方向通知経路
92 ローカルCPU14とIEEE802.3MAC+PHYとのデータ経路
93 ローカルCPU14とプロトコル処理手段41とのデータ経路
190 コネクション確立要求用SYNセグメント
191 SYNセグメントに対する応答であるSYN、ACKセグメント
192 SYN、ACKセグメントに対する応答であるACKセグメント
200 HTTP_GETであるTCPセグメント
201 HTTP_GETの応答の一例であるHTTP_OKのTCPセグメント
202 HTTPフレームにカプセル化された先頭ストリームデータであるTCPセグメント
203 HTTPフレームにカプセル化されたストリームデータ2であるTCPセグメント
204 HTTPフレームにカプセル化されたストリームデータ3であるTCPセグメント
205 HTTPフレームにカプセル化された最終ストリームデータであるTCPセグメント
210 HTTP_OKのTCPセグメントに対する応答であるACKセグメント
211 TCPセグメントに対する応答であるACKセグメント
212 TCPセグメントに対する応答であるACKセグメント
213 TCPセグメントに対する応答であるACKセグメント
300 ホストCPUインタフェース
301 受信バッファ304からホストCPUインタフェース処理手段300への経路
302 ホストCPUインタフェースから送信バッファ39への経路
305 受信データ選択処理手段307から受信バッファ304への経路
306 送信バッファ39から送信要求調停・選択処理手段37への経路
307 受信データ選択処理手段
308 メッセージバッファ309とホストCPUインターフェース処理手段300の経路
309 メッセージバッファ
310 ローカルCPU14から制御部(ホストCPU)25に対する通知処理手段の経路
311 メッセージバッファ309とローカルCPU14の経路
315 ローカルCPU14とメモリ15の経路
316 ストリームデータ入出力処理手段
317 ストリームデータ入出力処理手段316からバンク・メモリ318へのデータ経路
318 バンク・メモリ
319 バンク・メモリ318から暗号演算処理手段320へのデータ経路
320 暗号演算処理手段
321 暗号演算処理手段320から送信IP・TCP処理手段322へのデータ経路
322 送信IP・TCP処理手段
323 送信IP・TCP処理手段322から送信データライト処理手段324へのデータ経路
324 送信データライト処理手段
325 ローカルバッファ
326 送信制御処理手段
327 送信制御処理手段326から送信要求調停・選択処理手段37へのデータ経路
329 送信要求調停・選択処理手段37からIEEE802.3MAC+PHY処理手段へのデータ経路
330 IEEE802.3MAC+PHYから受信データ選択処理手段307へのデータ経路
331 ローカルCPU14の直接処理の送信データの送信要求調停・選択処理手段37に対する経路
332 受信データ選択処理手段307からのローカルCPU14の直接処理の受信データ経路
333 受信データ選択処理手段307からIP処理回路12へのデータ経路
335 IP処理回路12から受信制御処理手段336への経路
336 受信制御処理手段
338 受信データリード処理手段
339 受信データリード処理手段338から暗号演算処理手段320へのデータ経路
340 暗号演算処理手段320からバンク・メモリ318へのデータ経路
341 バンク・メモリ318からストリームデータ入出力処理手段316へのデータ経路
400 ソフトウェア用送受信バッファ
401 送受信データ選択処理手段
104 サーバ
105 クライアント

Claims (27)

  1. ネットワーク回線からのデータを受信し、また、前記ネットワークへデータを送信する送受信手段と、
    前記ネットワーク回線から受信したAVデータおよび前記AVデータに関連する受信制御データの一部が格納される第1の受信バッファと、
    前記第1の受信バッファに格納された以外の受信データが格納される第2の受信バッファと、
    前記ネットワーク回線に送信するAVデータおよび前記AVデータに関連する送信制御データの一部が格納される第1の送信バッファと、
    前記第1の送信バッファに格納された以外の送信データが格納される第2の送信バッファと、
    前記第2の受信バッファに格納された受信データをソフトウェア的に処理すると共に、所定のプロトコルで生成した送信データを前記第2の送信バッファに転送する制御部と、
    前記ネットワーク回線から受信したデータのうち、予め設定された所定の条件により、前記第1の受信バッファまたは前記第2の受信バッファのいずれに格納させるかを判定する判別手段と、
    前記判別手段の判定結果に基づいて、前記AVデータおよび前記AVデータに関連する受信制御データの前記一部を前記第1の受信バッファに格納し、それ以外の受信データを前記第2の受信バッファに格納するセレクタ手段と、
    前記第1の受信バッファに格納された受信制御データの前記一部を読み込んで、そのデータに対して所定のハード的な処理を行うIP処理手段と、
    前記第1の受信バッファからAVデータを抽出して出力し、および/または、入力されてくるAVデータを前記第1の送信バッファへ転送する、ストリーム処理手段と、
    前記IP処理手段で処理された結果と前記第1の受信バッファに格納されたデータを読み込み、これらの情報に基づいて、ソフトウェアで前記ストリーム処理手段を制御し、また所定のプロトコルで生成した送信データを前記第1の送信バッファへ転送して前記ネットワーク回線に出力させるローカルCPUと、
    前記ローカルCPUを動作させるためのプログラムが格納されたメモリとを備えた、送受信装置。
  2. 前記ストリーム処理手段から出力されたAVデータを受信して処理し、および/または、前記第1の送信バッファに格納するためのAVデータを前記ストリーム処理手段に送信するAV処理手段をさらに備えた、請求項1に記載の送受信装置。
  3. 前記ネットワーク回線は、IEEE802.3規格に準拠している、請求項1に記載の送受信装置。
  4. 前記ネットワーク回線は、IEEE802.11規格に準拠している、請求項1に記載の送受信装置。
  5. 前記所定のプロトコルは、TCP/IPであり、
    前記判別手段は、TCP/IP通信プロトコルに基づいたTCP制御フラグの一部またはすべてを走査する走査手段を有し、その走査した情報を前記所定の条件と比較することにより、前記ネットワーク回線から受信したデータを、前記第1の受信バッファへ格納させるか、前記第2の受信バッファへ格納させるかを判定する、請求項1に記載の送受信装置。
  6. 前記IP処理手段は、(1)IPヘッダのチェックサムの確認、(2)TCPヘッダのチェックサムの確認、(3)TCPヘッダのシーケンス番号の確認、(4)TCPヘッダのACK番号の確認、(5)TCPヘッダのWINDOWの検出および前記ローカルCPUへの通知、(6)TCPの制御フラグ(FIN、SYN、RST、URG)の検出および前記ローカルCPUへの通知、の各処理の一部またはすべてをハードで行う受信IP・TCP処理手段を有している、請求項5に記載の送受信装置。
  7. 前記第1の受信バッファは、前記受信データであるTCP/IPセグメントを格納するために、それぞれが1536バイト以上の容量を持つ複数のセグメントバッファに分割されている、請求項5に記載の送受信装置。
  8. 前記第1の受信バッファは、8つのセグメントバッファに分割されている、請求項7に記載の送受信装置。
  9. 前記ローカルCPUは、セグメント化された前記第1の受信バッファをリングバッファ方式で制御し、その起動開始バッファを設定する、請求項7に記載の送受信装置。
  10. 前記第1の受信バッファには、前記IP処理手段で処理された結果も格納される、請求項7に記載の送受信装置。
  11. 前記IP処理手段は、IPヘッダおよびTCPヘッダを解析し、TCPペイロードデータの開始位置および前記受信データの最後尾の位置をハード的に検出する、請求項7に記載の送受信装置。
  12. 前記IP処理手段は、検出した前記TCPペイロードデータの開始位置および前記受信データの最後尾の位置情報を、受信管理データとして前記第1の受信バッファに格納する、請求項11に記載の送受信装置。
  13. 前記第1の受信バッファに格納された前記TCPペイロードデータの開始位置および前記受信データの最後尾位置情報に基づいて、前記受信データのIPヘッダおよびTCPヘッダを削除して前記ストリーム処理手段にハード的に転送する手段を備えた、請求項12に記載の送受信装置。
  14. 前記所定のプロトコルは、HTTPであり、
    前記ローカルCPUは、前記第1の受信バッファに格納されている前記受信データを走査してHTTPヘッダの検出を行う、請求項1に記載の送受信装置。
  15. 前記ローカルCPUは、前記HTTPヘッダを検出した場合には、HTTPペイロードデータの開始位置を検出して、前記受信データを前記HTTPペイロードデータの先頭から前記ストリーム処理手段にハード的に転送させる、請求項14に記載の送受信装置。
  16. 前記HTTPペイロードデータは、動画像データを含んでいる、請求項15に記載の送受信装置。
  17. さらに、HTTPヘッダ情報をソフトウェア的に処理するホストCPUを備え、
    前記ローカルCPUは、前記HTTPヘッダを検出した場合には、前記HTTPヘッダに含まれるHTTP_GETコマンドを検出し、そのHTTPヘッダ情報を前記ホストCPUに伝達する、請求項14に記載の送受信装置。
  18. 前記ホストCPUは、HTTP_GETコマンドに対する応答情報を生成して前記ローカルCPUに伝達し、
    前記ローカルCPUは、前記応答情報を受け取ると、前記応答情報を含むHTTPヘッダを生成して前記第1の受信バッファに格納し、前記ネットワーク回線に送信させる、請求項17に記載の送受信装置。
  19. 前記ローカルCPUは、前記ホストCPUから受け取るHTTPヘッダ情報に基づいて、前記第1の送信バッファに所定のフォーマットでHTTPヘッダを書き込む、請求項17に記載の送受信装置。
  20. 前記第1の送信バッファは、セグメント分割されており、
    前記ストリーム処理手段は、入力されてくるAVデータを所定の長さに分割すると共に、少なくともIPヘッダを含むヘッダ情報を生成して前記第1の送信バッファに格納する送信IP・TCP処理手段を有している、請求項1に記載の送受信装置。
  21. 前記送信IP・TCP処理手段は、
    MACアドレスを含むMACヘッダと、
    IPのバージョン情報、サービス型(TOS)、IPヘッダ長(IHL)、IPヘッダID情報,フラグメント制御情報、フラグメントオフセット情報、生存時間(TTL)、プロトコル大部、ソースIPアドレス、ディストネーションIPアドレス情報の一部またはすべてを含むIPヘッダと、
    ソース・ポート、ディストネーション・ポート、アクノーリッジ番号、TCP制御フラグ、データ・オフセット、シーケンス番号の一部またはすべて含むTCPヘッダとを所定のフォーマットでハード的に生成する、請求項20に記載の送受信装置。
  22. 前記ローカルCPUは、HTTPヘッダを付加してデータを送信する場合には、前記送信IP・TCP処理手段で生成された前記ヘッダ情報を前記第1の送信バッファに書き込ませた後、HTTPヘッダ長だけオフセットを設けて、前記ストリーム処理手段から転送されてくるAVデータを、そのオフセットの位置から前記第1の送信バッファに格納させる、請求項20に記載の送受信装置。
  23. 前記第1の受信バッファは前記第1の送信バッファを兼ねており、データを送信する際には送信用のバッファとして使用し、データを受信する際には受信用のバッファとして使用する、請求項1に記載の送受信装置。
  24. ネットワーク回線からAVデータを受信する際には、
    前記ネットワーク回線から受信したデータのうち、予め設定された所定の条件により、第1の受信バッファまたは第2の受信バッファのいずれに格納させるかを判定し、AVデータおよび前記AVデータに関連する受信制御データの一部を前記第1の受信バッファに格納し、それ以外の受信データを前記第2の受信バッファに格納する受信データ判別格納ステップと、
    前記第1の受信バッファに格納された受信制御データの前記一部を読み込んで、そのデータに対して所定のハード的な処理を行うIP処理ステップと、
    前記IP処理ステップで処理された結果および前記第1の受信バッファに格納されたデータに基づいて、前記第1の受信バッファからAVデータを抽出して出力させるAV受信データ転送ステップと、
    前記IP処理ステップで処理された結果および前記第1の受信バッファに格納されたデータに基づいて、所定のプロトコルで送信データを生成して前記ネットワーク回線に出力する応答送信ステップとを備え、
    前記ネットワーク回線にAVデータを送信する際には、
    前記受信データ判別格納ステップと、
    前記IP処理ステップと、
    前記IP処理ステップで処理された結果および前記第1の受信バッファに格納されたデータに基づいて、送信するAVデータを第1の送信バッファに転送するAV送信データ転送ステップと、
    前記応答送信ステップとを備えた、送受信制御方法。
  25. 請求項1に記載の送受信装置の、ローカルCPUを動作させるためのプログラム。
  26. 請求項1に記載の送受信装置の、ローカルCPUを動作させるためのプログラムが格納されたメモリ。
  27. 前記第1の送信バッファに格納される送信データに含まれるIPヘッダのID情報には、前記第2の送信バッファに格納される送信データに含まれるIPヘッダのID情報とは常に異なるID情報を使用する、請求項1に記載の送受信装置。
JP2004291781A 2004-10-04 2004-10-04 送受信装置、送受信制御方法、プログラム、およびメモリ Pending JP2006109016A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004291781A JP2006109016A (ja) 2004-10-04 2004-10-04 送受信装置、送受信制御方法、プログラム、およびメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004291781A JP2006109016A (ja) 2004-10-04 2004-10-04 送受信装置、送受信制御方法、プログラム、およびメモリ

Publications (1)

Publication Number Publication Date
JP2006109016A true JP2006109016A (ja) 2006-04-20

Family

ID=36378229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004291781A Pending JP2006109016A (ja) 2004-10-04 2004-10-04 送受信装置、送受信制御方法、プログラム、およびメモリ

Country Status (1)

Country Link
JP (1) JP2006109016A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077024A (ja) * 2007-09-19 2009-04-09 Panasonic Corp Tcpパケット通信装置およびその関連技術
JP2015177263A (ja) * 2014-03-13 2015-10-05 株式会社東芝 通信装置、情報処理装置、通信方法および通信プログラム
JP2016522593A (ja) * 2013-03-14 2016-07-28 ローズマウント インコーポレイテッド 産業プロセスネットワーク用通信システム
EP3300275A4 (en) * 2015-07-10 2018-05-30 Huawei Technologies Co., Ltd. Protocol frame transmission method, device, node equipment and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002354064A (ja) * 2001-05-29 2002-12-06 Sony Corp 送信装置、受信装置、及び送受信装置
WO2003105011A1 (en) * 2002-06-06 2003-12-18 Iready Corporation Gigabit ethernet adapter supporting the iscsi and ipsec protocols

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002354064A (ja) * 2001-05-29 2002-12-06 Sony Corp 送信装置、受信装置、及び送受信装置
WO2003105011A1 (en) * 2002-06-06 2003-12-18 Iready Corporation Gigabit ethernet adapter supporting the iscsi and ipsec protocols

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077024A (ja) * 2007-09-19 2009-04-09 Panasonic Corp Tcpパケット通信装置およびその関連技術
JP2016522593A (ja) * 2013-03-14 2016-07-28 ローズマウント インコーポレイテッド 産業プロセスネットワーク用通信システム
JP2015177263A (ja) * 2014-03-13 2015-10-05 株式会社東芝 通信装置、情報処理装置、通信方法および通信プログラム
US9866639B2 (en) 2014-03-13 2018-01-09 Kabushiki Kaisha Toshiba Communication apparatus, information processor, communication method, and computer-readable storage medium
EP3300275A4 (en) * 2015-07-10 2018-05-30 Huawei Technologies Co., Ltd. Protocol frame transmission method, device, node equipment and system

Similar Documents

Publication Publication Date Title
US8170023B2 (en) System and method for a software-based TCP/IP offload engine for implementing efficient digital media streaming over internet protocol networks
US7773546B2 (en) System and method for a software-based TCP/IP offload engine for digital media renderers
JP4557028B2 (ja) 情報処理装置、情報処理方法、クライアント機器、情報処理システム
US7461164B2 (en) Medium access control with software -and hardware- based components in a wireless network
JP2009147786A (ja) 通信装置、データフレームの送信制御方法及びプログラム
JP2014509483A (ja) ワイヤレスネットワークにおけるトランスミッション・コントロール・プロトコルの性能を改善する機構
JP2014524092A (ja) 単一ソケットポイントツーマルチポイント性能による高信頼性仮想双方向データストリーム通信のためのシステムおよび方法
JP2006217242A (ja) 無線通信方法および無線通信装置
US10601962B2 (en) Transmitting data over a plurality of different networks
EP1395014A1 (en) A method of transmitting data streams with data segments of variable length
JP5143207B2 (ja) 接続装置、パケットを送信する方法及びパケットの送信を接続装置に実行させるためのコンピュータプログラム
WO2014008793A1 (zh) 一种tcp数据传输方法、tcp卸载引擎及***
CN115002023B (zh) 一种链路聚合方法、链路聚合装置、电子设备及存储介质
EP2119148A1 (en) Network offloading with reduced packet loss
JP2000049834A (ja) デ―タ通信システム、装置及び方法並びに記憶媒体
JP3493660B2 (ja) プロトコル変換装置とそのプロトコル変換方法、及びプロトコル変換プログラム
US11271711B2 (en) Communication control device, communication control method, network switch, route control method, and communication system
JP2006109016A (ja) 送受信装置、送受信制御方法、プログラム、およびメモリ
JP2009088962A (ja) 通信アダプタ、通信装置および通信方法
US7213074B2 (en) Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
KR20050013411A (ko) 모바일 애드 혹 네트워크에서 전송층을 이용한 효율적인데이터 송수신 방법 및 상기 방법을 이용한 네트워크 장치
US20050068951A1 (en) Protocol for video communications and camera control
JP2012049883A (ja) 通信装置およびパケット処理方法
JP2013247632A (ja) Tcp通信高速化装置
JP4042443B2 (ja) 移動ルータ装置および同装置のリンク確立方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100315

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100727