JP2009088962A - 通信アダプタ、通信装置および通信方法 - Google Patents
通信アダプタ、通信装置および通信方法 Download PDFInfo
- Publication number
- JP2009088962A JP2009088962A JP2007255572A JP2007255572A JP2009088962A JP 2009088962 A JP2009088962 A JP 2009088962A JP 2007255572 A JP2007255572 A JP 2007255572A JP 2007255572 A JP2007255572 A JP 2007255572A JP 2009088962 A JP2009088962 A JP 2009088962A
- Authority
- JP
- Japan
- Prior art keywords
- tcp
- communication
- unit
- reception
- processing 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims description 22
- 238000012545 processing Methods 0.000 claims abstract description 170
- 230000005540 biological transmission Effects 0.000 claims abstract description 33
- 230000004044 response Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 20
- 238000012790 confirmation Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 2
- 238000012795 verification Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 19
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 6
- 238000000275 quality assurance Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
Abstract
【課題】低コストで通信プロトコル処理を高速に実行し、TCPコネクション管理のアルゴリズム更新や品質保証のための検証を容易にし得る通信装置等を提供する。
【解決手段】TCPの通常の処理を行なうソフトウェアで実装されるTCP処理部707と、TCPパケットに対する高速受信処理を行なう高速通信アダプタに実装されるTOE部402が同一のTCPコネクションを扱い、その間でTCPコネクション情報の同期処理を行なうためのTCP情報同期部を具備する。TCP情報同期部は、TOE部からソフトウェア実装のTCP処理部707に対するTCPコネクション情報の更新を行なう条件として、TCP送信の送信データ長から算出した値を用い、更新処理においてはソフトウェア実装のTCP処理部707の受信処理を利用することでTCP処理を動作させる。
【選択図】図7
【解決手段】TCPの通常の処理を行なうソフトウェアで実装されるTCP処理部707と、TCPパケットに対する高速受信処理を行なう高速通信アダプタに実装されるTOE部402が同一のTCPコネクションを扱い、その間でTCPコネクション情報の同期処理を行なうためのTCP情報同期部を具備する。TCP情報同期部は、TOE部からソフトウェア実装のTCP処理部707に対するTCPコネクション情報の更新を行なう条件として、TCP送信の送信データ長から算出した値を用い、更新処理においてはソフトウェア実装のTCP処理部707の受信処理を利用することでTCP処理を動作させる。
【選択図】図7
Description
本発明は、ネットワークを介して映像データを受信する際の通信技術に関し、特に通信プロトコルであるTCPを利用した通信アダプタ、通信装置および通信方法に関する。
従来のTCPパケット通信装置として、ネットワーク伝送路の制御に関する下位レイヤの通信プロトコル処理だけを実行する低速処理用の通信アダプタと、上位レイヤも含めた通信プロトコル処理を高速に実行する高速処理用の通信アダプタとを実装する技術が開示されている(例えば、特許文献1参照)。ここで、低速処理用の通信アダプタは、TCP/IP処理をホストCPUでソフトウェアにより実現し、高速処理用の通信アダプタは、その通信アダプタ内に別途TCP/IP処理を担当するハードウェアを実装する形態をとっている。
特開平6−309251号公報(第1頁、第5図等)
しかしながら、上記従来のTCPパケット通信装置は、主に以下3点の特徴を有している。
(a)高速処理用の通信アダプタを実現する上で、TCPコネクション接続・切断用のパケット処理は、アルゴリズムが複雑な上に、そのアルゴリズム自体も新方式が提案されていく可能性が高いため、ハード化による実装は、レガシー問題を含めた相互接続性の観点でリスクが高い。これは、図13において、高速通信アダプタ1301のみをハード化し、外付けメモリ1302がない場合に相当する(この場合の通信シーケンス図は、図15を参照)。
(b)TCP/IP処理を高速化させる手段として、上記(a)で説明したようにハード化することによるリスクが高いため、高速処理用の通信アダプタ内部の構成として、専用のCPUを具備させ、ソフトウェア処理で行なう形態が現実的である。これは、図13に示すように、高速通信アダプタ1301と外付けメモリ1302を備える場合に相当する(この場合の通信シーケンス図は、図14を参照)。
(c)従来活用されてきたネットワーク技術としては、PCアーキテクチャにおける強力なCPUの元での実装が行なわれてきたため、上記(a)や(b)のようなアプローチの必要性が少なかった。これに対して、近年のDLNAを中心とした家庭内における伝送規格への対応が求められ、家電機器のネットワーク化の必要性が増大し、従来の家電機器における限られたCPUリソースおよびコスト制約の中で、高精細大容量の映像データを扱うための性能とのトレードオフを解決する必要性が高まってきている。
そして、上記従来のTCPパケット通信装置において高速処理用の通信アダプタを実装する上では、以下2点の課題がある。
(1)高速処理用の通信アダプタに、専用のCPUが必要となり、その処理のため、および、入力パケット最大速度と(ホストCPUに対する)出力パケット最大速度の差を吸収するために、少なくとも数MBの外付けメモリが必要となり、その結果コストがかかる。
(2)TCPコネクション接続・切断用などのコネクション管理のパケット処理を行なう処理部が、ホストCPUと高速処理用の通信アダプタとに複数存在するため、アルゴリズムの更新や、品質保証のための検証が困難である。
本発明は、前記課題に鑑みてなされたものであり、低コストで通信プロトコル処理を高速に実行しながら、TCPコネクション管理のアルゴリズム更新や品質保証のための検証を容易にし得る通信装置等を提供することを目的とする。
上記の課題を解決するために、本発明に係る通信装置は、特に、TVなどの受像機への適用を目的とし、大容量の映像データを高速受信することに特化し、アルゴリズムが複雑なTCPコネクション接続・切断用のコネクション管理処理およびデータ送信処理のみを低速処理用の通信アダプタ(即ち、TCP処理をホストCPUで動作するソフトウェア)で実施し、映像データなどを含んだペイロード伝送用のパケット受信処理のみを高速処理用の通信アダプタで実施する。
本構成によって、高速処理用の通信アダプタを外付けメモリなしで(即ち、低コストで)実現できる。
また、本発明に係る通信装置は、ホストCPUと高速処理用の通信アダプタの両方でTCPパケットを扱うTCP処理部を具備するが、これら2つのTCP処理部の間でTCPコネクション情報を共有するため、それぞれが管理するTCPコネクション情報を所定のタイミングで互いに通知しながら更新する。
さらに、本発明に係る通信アダプタは、TCPパケットの受信の度ではなく、予め動的に指定された条件のTCPパケットを受信したときのみ、管理するTCPコネクション情報をホストCPUのTCP処理部に通知することができる機能を備える。
さらに、本発明に係る通信装置が備えるホストCPUで動作するTCP処理部は、高速処理用の通信アダプタの通知条件として、TCPの確認応答を要求する送信データ番号(Ack)を含む機能を備え、また、TCP送信時において、高速処理用の通信アダプタで受信した受信順序情報(Seq)を事前処理として更新する機能を備える。
本構成によって、TCPコネクション情報の更新のために必要なホストCPU処理資源を抑制することが可能となる。
また、高速処理用の通信アダプタからホストCPUで動作するTCP処理部にTCPコネクション情報を更新する方法として、高速処理用の通信アダプタのドライバは、TCPパケットを生成して受信処理を行ない、その際にSeqは更新値を設定しない機能を備える。
本構成によって、TCPコネクション情報をホストCPUで動作するTCP処理部に更新するにあたり、関連する必要な処理、例えば輻輳制御処理、再送制御処理、コネクション切断処理を行なうことを可能とする。
さらに、本発明に係るTCPパケット処理装置の高速処理用の通信アダプタは、受信したTCPパケットのペイロードデータに対し、2つ以上の出力経路を持ち、例えばCPUアクセスによる出力と、専用バスによる出力を可能とする。さらに、それらの連続出力量を指定可能とすることで、TCPペイロードデータの中の、HTTPなどのより上位層のプロトコル解析と映像データ切り出し、そして専用バスによる出力を可能とする。
また、本発明は、通信相手とTCP通信をする通信装置による通信方法であって、前記通信装置が備えるCPUが、TCP通信におけるコネクション管理と前記通信相手への送信処理とを行ない、前記通信装置に取り付けられる通信アダプタが、前記通信相手から送られてくるTCPパケットの受信処理を行なうことを特徴とする。
さらに、本発明は、上記通信アダプタにおける特徴的な構成手段を備える集積回路として実現することもできる。
本発明によれば、以下のような効果が期待できる。
(1)専用のCPU、外付けメモリが不要な低コストの高速受信処理用のTCP通信アダプタが実現できる。
(2)TCPコネクション接続・切断用などのコネクション管理のパケット処理を行なう処理部をホストCPUで動作するソフトウェアに集約し、アルゴリズムの更新や、品質保証のための検証が容易となる。
(3)上記高速受信処理用のTCP通信アダプタから、ホストCPUで動作するソフトウェアのTCP処理部へのTCPコネクション情報の更新を、TCP送信処理を行なう直線、および、その確認応答が完了するまでの限定期間のみとすることができ、CPU処理資源への負荷を抑制することができる。
(4)受信したTCPパケットに対し、その上位層であるHTTPにおいて、HTTPヘッダと映像データを分離し、映像データを直接デジタルTVチューナに出力することができる。
以下、本発明に係る実施の形態について、図面を参照しながら説明する。なお、本発明について、以下の実施の形態および添付の図面を用いて説明を行なうが、これは例示を目的としており、本発明がこれらに限定されることを意図しない。
図1は、本実施の形態に係るネットワークシステムの構成の一例を示すブロック図である。図1に示すように、ネットワークシステム100は、映像サーバ101およびDTV(Digital TV)103を備えており、それらはIPネットワーク102を介して互いに接続されている。なお、IPネットワーク102には、上記以外の装置が接続されていてもよい。
上記のDTV103は、放送波によるデジタル放送を受信すると共に、IPネットワーク102を介して映像サーバ101から映像データを含むTCPパケットを取得する。これに対し、映像サーバ101は、DTV103からの要求により、映像データを含むTCPパケットをDTV103に送信する。より具体的に説明すると、ネットワークシステム100において使用するプロトコルはHTTPであり、DTV103は、GETコマンドによって映像データの取得を要求し、映像サーバ101からHTTP応答として複数のTCPパケットを受信する。
図2は、一般的なDTVのハードウェア構成の一例を示すブロック図である。図2に示すように、DTV200は、メインメモリ201、CPU202、デジタルRF203、デジタルTVチューナ204およびAVデコーダ205を備え、バス206によって相互に接続されている。
DTV200では、デジタルRF203が受信したデジタル放送波がデジタルTVチューナ204に出力されて映像信号等に復調され、さらに、AVデコーダ205において復調された映像信号等の復号化が行なわれている。さらに、DTV200では、CPU202上で動作するソフトウェア(制御プログラム)によって、デジタルRF203、デジタルTVチューナ204およびAVデコーダ205の各動作が制御されている。なお、図2に示すDTV200には、必要な機能の全てを記載しているものではなく、本発明に関係するハードウェア構成のみを記載している。
上記のようなDTV200は、TCP/IPによる広帯域映像受信の処理を通常の通信アダプタ(LANコントローラ)を用いて行なうだけの十分な処理資源を持ち合わせていない。この課題を解決する手段として、高速通信アダプタを用いることができる。
図3は、上記図2に示すDTV200に高速通信アダプタを付加したDTVのハードウェア構成を示すブロック図である。
図3に示す高速通信アダプタ301は、バス206に接続されると共に、映像データを送信するための専用バス207を介して直接デジタルTVチューナ204に接続される。つまり、DTV103では、高速通信アダプタ301がIPネットワーク102経由で受信した映像データを、CPU202上で動作するプロトコル処理ソフトウェアで処理することなく、直接デジタルTVチューナ204に入力している。
上記のようなDTV103においては、CPU202上で動作するソフトウェアで実装するTCP処理部と、ハードウェアで実装した高速通信アダプタ301のTCP処理部とを、同一のTCPコネクションに対して連動して動作させることとなる。
図4は、上記図3における高速通信アダプタ301の機能構成を示すブロック図である。高速通信アダプタ301は、従来の通信アダプタ機能を有する汎用LAN制御部401、TCPオフロード機能を有するTOE部402、およびIPネットワーク102を介して映像サーバ101から受信したEtherフレームを振り分けて上記汎用LAN制御部401とTOE部402に入力する振り分け部403とを備える。なお、説明の便宜上、Etherフレームを例示したが、物理層・MAC層をEtherに限定するものではない。また、本発明に係る汎用LAN制御部401における送受信については、以後、TOE部402で受信するTCPコネクションと同一のTCPコネクションのコネクション制御および送信処理についてのみ言及する。
上記の高速通信アダプタ301では、CPU202上で動作するソフトウェアで実現する(後述の)TCP処理部によるコネクションに関する制御、およびTCPパケットの送信制御は、汎用LAN制御部401で担当し、広帯域映像データを含むTCPパケットの受信処理はTOE部402で担当させることとする。
つまり、TCPコネクション管理であるTCPコネクション確立・切断、およびTCP送信処理となる映像取得要求の送信などは汎用LAN制御部401で行ない、TCP処理はCPU202上で動作するソフトウェアによって制御する。一方、広帯域映像データを含むTCPパケットの受信処理はTOE部402で行ない、TCPパケットの受信処理に伴うTCP確認応答の送信もTOE部402で行なう。
図5は、上記図4におけるTOE部402の機能構成を示すブロック図である。図5に示すように、TOE部402は、割り込み制御部601、TCP情報入出力部602、TCPパケット出力制御部603、CPUアクセス出力制御部604、TCPパケット受信処理部605および映像データ出力制御部606を備える。
割り込み制御部601は、CPU202上で動作するソフトウェアから(CPUアクセスの後)、割り込み信号動作の条件が設定される。この条件には、TOE部402にTCPパケットが入力された事象、そのTCPパケットに含まれるTCPの確認応答番号(「Ack」とも記す。)の値が設定値以下である事象などにおける条件が含まれる。なお、これらの事象全体、又は個別にその条件の有効又は無効を切り替えることが可能である。
TCP情報入出力部602は、CPU202上で動作するソフトウェアから(CPUアクセスの後)、TOE動作のための初期値としてのTCP情報の設定、およびTCP送信によって変化したTCP情報の更新が行なわれ、また、TCPパケット受信処理部605でTCPパケットを受信したことによって変化したTCP情報の取得が行なわれる。
TCPパケット出力制御部603は、CPU202上で動作するソフトウェアから(CPUアクセスの後)、TCPパケット受信処理部605から渡されたTCPパケットを、CPUアクセス出力制御部604又は映像データ出力制御部606の何れに渡すかについて通知(又は設定)を受け、この通知(設定)に従ってTCPパケットを処理する。
CPUアクセス出力制御部604は、TCPパケット出力制御部603から渡されたTCPパケットに対して、CPU202上で動作するソフトウェアから、CPUアクセスによる読み出し又は書き込みを可能とする機能を提供する。
TCPパケット受信処理部605は、振り分け部403で振り分けられたTCPパケットの受信処理を行なうと共に、必要に応じてTCPの確認応答処理を行なう。また、受信したTCPパケットから、TCPコネクション情報を取得してTCP情報入出力部602に対して更新するように指示する。
映像データ出力制御部606は、TCPパケット出力制御部603から渡されたTCPパケットに対して、デジタルTVチューナ204に入力させるため、映像データを専用バス207に出力する。
図6は、CPU202上で動作するソフトウェアの機能構成の一例を示す図である。なお、図6においては、本発明の説明に必要な部分のみを記載しているが、実際には他の様々なソフトウェア機能部が実装されている。
図6において、アプリケーション701は、DTV103におけるIPネットワーク102を介した映像サーバ101から映像データを取得する処理と、画面表示に関する動作を制御するソフトウェアである。
プロトコル処理部702は、基本ソフトウェアであるOS(オペレーティングシステム)の一部であり、TCP処理部707、IF処理部708を少なくとも備える。また、TCP処理部707は、更新条件通知部709、Seq更新部710を備える。
汎用LAN制御部用ドライバ703は、TCP処理部707が制御するTCPパケットの送受信を行なうため、IF処理部708によりプロトコル処理部702と接続され、汎用LAN制御部401を制御するソフトウェアである。
TOE部用ドライバ704は、TOE部402を制御するソフトウェアであり、TCP処理部707、IF処理部708、アプリケーション701と接続している。この接続の詳細については後述する。なお、TOE部用ドライバ704は、TCP情報更新部711、TCP情報管理部712、TCP受信制御部713を備える。
デジタルTVチューナ用ドライバ705は、デジタルTVチューナ204の制御を行なうソフトウェアであり、AVデコーダ用ドライバ706はAVデコーダ205の制御を行なうソフトウェアである。
なお、汎用LAN制御部用ドライバ703と、TOE部用ドライバ704は、実装上1つのドライバとして実装してもよい。特に、高速通信アダプタ301の汎用LAN制御部401とTOE部402の割り込み信号が共有されてCPU202に入力される場合は、このような構成が有用である。
なお、更新条件通知部709、Seq更新部710およびTOE部用ドライバ704の3つをまとめたTCP情報同期部を構成することとしてもよい。この場合、TCP処理部707においては、更新条件通知部709、Seq更新部710を実行するための呼び出しのみが行なわれ、TOE部用ドライバ704内において、その実体が実装されて呼び出される形態とすることができる。
次に、上記のように構成されるDTV103における、映像サーバ101間との通信動作について、図面を参照しながら説明する。
図9は、本実施の形態に係る映像サーバ101−DTV103間の通信における処理分担の様子を示す図である。図5では、上から下に向かう方向が時間の経過を示している。映像サーバ101の具体例としては、DVR(Digital Video Recorder)がある。
図9の「ハード」に位置する処理は、上記のTOE部402で行なわれるTCP処理であり、図9の「ソフト」に位置する処理は、上記のCPU202上で動作するソフトウェアで行なわれるTCP処理である。図9に示す例では、主にHTTPによるコネクション管理、映像取得要求および映像データの送受信が行なわれている。図9における「HTTP GET」はHTTPのコマンドの一種であり、DTV103のソフトによってTCP送信される。なお、この「HTTP GET」は、1つ又は複数のTCPパケットで構成される。
図9において、映像取得要求である「HTTP GET」を受信した映像サーバ101は、HTTP応答として映像データをDTV103に送信する。このHTTP応答としての映像データは、1つ又は複数のTCPパケットで構成され、一度に千個以上のTCPパケットから構成されることもある。HTTP応答を構成するTCPパケットの受信は、DTV103においてハードで処理され、このTCPパケット受信に対応する確認応答送信(Ack送信)も、ハードによって行なわれる。
なお、映像データの取得が完了したのち、DTV103は、TCPコネクションを切断する。DTV103においてこのTCPコネクションの切断に必要なTCPパケットの送受信は、ソフトによって処理される。ただし、映像サーバ101からTCPコネクション切断のためのTCPパケット(FINやRST)が送られた場合、その受信はDTV103にとって予期できないため、少なくとも一度ハードによって受信される。この場合、そのTCPパケットをソフトで処理させることでTCPコネクション切断が可能となる。
以下では、上記のDTV103のさらに詳細な動作について説明する。
(1)コネクション確立
最初に、アプリケーション701は、映像サーバ101からの映像データ取得のためのHTTP通信を可能とするため、映像サーバ101との間にTCPコネクションを確立するよう、プロトコル処理部702に指示する。プロトコル処理部702は、通常のプロトコル処理の動作に準じ、TCP処理部707によるTCPコネクション確立を行なう。具体的には、TCPの「3Way−Handshake」と呼ばれるTCPパケットの送受信を、汎用LAN制御部用ドライバ703を介して高速通信アダプタ301の汎用LAN制御部401により実施する。
最初に、アプリケーション701は、映像サーバ101からの映像データ取得のためのHTTP通信を可能とするため、映像サーバ101との間にTCPコネクションを確立するよう、プロトコル処理部702に指示する。プロトコル処理部702は、通常のプロトコル処理の動作に準じ、TCP処理部707によるTCPコネクション確立を行なう。具体的には、TCPの「3Way−Handshake」と呼ばれるTCPパケットの送受信を、汎用LAN制御部用ドライバ703を介して高速通信アダプタ301の汎用LAN制御部401により実施する。
(2)TOE初期設定
上記のTCPコネクションが確立されると、アプリケーション701は、TOE部用ドライバ704のTCP受信制御部713に対し、確立したTCPコネクションがTOE部402で処理されるべきTCPコネクションであることを通知する。これにより、TCP受信制御部713は、TCP情報管理部712に、該当するTCPコネクションのTCPコネクション情報の取得と、TOE部402への初期設定を行なうよう指示する。また、TCP受信制御部713は、TOE部402のTCPパケット出力制御部603にCPUアクセス出力制御部604への出力モード(CPUアクセスモード)とするよう指示する。TCP情報管理部712は、指定されたTCPコネクション情報をTCP処理部707から取得し、高速通信アダプタ301の振り分け部403に該当するTCPパケットをTOE部402に振り分けるように指示し、さらに、指定されたTCPコネクションのTCPコネクション情報の初期値をTOE部402のTCP情報入出力部602に設定する。
上記のTCPコネクションが確立されると、アプリケーション701は、TOE部用ドライバ704のTCP受信制御部713に対し、確立したTCPコネクションがTOE部402で処理されるべきTCPコネクションであることを通知する。これにより、TCP受信制御部713は、TCP情報管理部712に、該当するTCPコネクションのTCPコネクション情報の取得と、TOE部402への初期設定を行なうよう指示する。また、TCP受信制御部713は、TOE部402のTCPパケット出力制御部603にCPUアクセス出力制御部604への出力モード(CPUアクセスモード)とするよう指示する。TCP情報管理部712は、指定されたTCPコネクション情報をTCP処理部707から取得し、高速通信アダプタ301の振り分け部403に該当するTCPパケットをTOE部402に振り分けるように指示し、さらに、指定されたTCPコネクションのTCPコネクション情報の初期値をTOE部402のTCP情報入出力部602に設定する。
(3)映像データ取得要求送信とTCPコネクション情報更新条件設定
次に、アプリケーション701は、映像データ取得要求となる「HTTP GET」コマンドを送信するよう、プロトコル処理部702に指示する。これにより、プロトコル処理部702内のTCP処理部707は、「HTTP GET」コマンドのTCPパケットの順序番号とTCPペイロード長から、更新条件に用いる確認応答番号を算出し、TOE部用ドライバ704のTCP情報更新部711に通知する。
次に、アプリケーション701は、映像データ取得要求となる「HTTP GET」コマンドを送信するよう、プロトコル処理部702に指示する。これにより、プロトコル処理部702内のTCP処理部707は、「HTTP GET」コマンドのTCPパケットの順序番号とTCPペイロード長から、更新条件に用いる確認応答番号を算出し、TOE部用ドライバ704のTCP情報更新部711に通知する。
また、TCP処理部707は、通常のプロトコル処理の動作に準じ、汎用LAN制御部用ドライバ703を介して高速通信アダプタ301の汎用LAN制御部401によりTCP送信処理を実施するように制御する。
TCP情報更新部711は、通知された更新条件に従い、TOE部402の割り込み制御部601に割り込み許可設定を行なう。この「割り込み許可設定」は、通知された更新条件としての確認応答番号を意味しており、割り込み制御部601がTCPパケット受信処理部605で処理されるTCPパケットの確認応答番号と比較して大きい場合に割り込み信号を出力する条件とする構成や、単にTCPパケット受信処理部605がTCPパケットの受信処理を行なった時という条件として、TCP情報更新部711がCPUアクセス出力制御部604からのTCPパケットの読み出しによって判定する構成が実装可能である。
(4)映像データ受信準備処理と確認応答によるTCPコネクション情報更新
以上により、映像サーバ101から、複数のTCPパケットから構成される映像データを含むHTTP応答が送信されると、これらのTCPパケットは、振り分け部403によってTOE部402に振り分けられる。TOE部402のTCPパケット受信処理部605は、所定の条件、例えば、「正常な受信時において2つのTCPパケットの受信に対して1つのTCP確認応答の送信を行なう」などの条件に基づいてTCP確認応答の送信を行なう。一方、順序入れ替えやパケット落ちを検出した場合、TCPパケット受信処理部605は、この条件を満たさない場合でもTCP確認応答の送信を行なう。
以上により、映像サーバ101から、複数のTCPパケットから構成される映像データを含むHTTP応答が送信されると、これらのTCPパケットは、振り分け部403によってTOE部402に振り分けられる。TOE部402のTCPパケット受信処理部605は、所定の条件、例えば、「正常な受信時において2つのTCPパケットの受信に対して1つのTCP確認応答の送信を行なう」などの条件に基づいてTCP確認応答の送信を行なう。一方、順序入れ替えやパケット落ちを検出した場合、TCPパケット受信処理部605は、この条件を満たさない場合でもTCP確認応答の送信を行なう。
また、TCPパケット受信処理部605は、TCP情報入出力部602に対して、受信したTCPパケットの情報からTCPコネクション情報を抽出して設定する。
割り込み制御部601は、上記の割り込み許可設定に従って割り込み信号を発行する。TCP情報入出力部602は、TCPパケット受信処理部605が受信したTCPパケットに従って、自身で管理するTCPコネクション情報を更新する。TCPパケット受信処理部605で処理されたTCPパケットは、TCPパケット出力制御部603がCPUアクセスモードであることから、CPUアクセス出力制御部604に送られる。
TCP情報更新部711は、割り込み信号を受けてTCPコネクション情報をTCP処理部807に更新する。この際、TCP処理部707がTCP受信機能を持つ場合、TCPパケットを生成して更新するTCPコネクション情報を格納し、IF処理部708を経由して受信処理を行なうことでTCPコネクション情報を格納し、かつ、その更新と同時に必要な輻輳制御や再送制御、コネクション管理処理を実行させることが可能となる。
上記のTOE部用ドライバ704において生成されるTCPパケットのフォーマットの一例を図7に示す。図7に示すように、TCPパケット800は、MACヘッダ801、IPヘッダ802およびTCPヘッダ803から構成されるが、このTCPパケット800は、ペイロードデータ804を持っていない。また、TCPヘッダ803は、予め初期設定で管理される値以外としては、順序番号80301、確認応答番号80302、受信ウィンドウサイズ80303があり、これらはTCP情報管理部712がTCP情報入出力部602から取得して格納する。
なお、TCPヘッダ803における「送信元ポート番号」および「宛先ポート番号」は、TCPコネクション毎に一意に決定される値であり、「Offset」は“5”(データ長:20バイト)固定、「緊急ポインタ」は“0”固定であってもよい。また、TCPヘッダ803における「Flag」は「Ack」が「1」であればよく、その他は受信パケットに応じて設定してもよい。さらに、TCPヘッダ803における「Checksum」は、以上のTCPヘッダ803と、TCPコネクション毎に一意に決定される送信元IPアドレスと宛先IPアドレスから計算して格納する。この格納方法は、TCPの一般的なChecksumの算出方法に基づく。
なお、上記の更新のためのTCPパケットには、受信順序番号(Seq)の更新値を格納せず、更新前の値を格納する。これは、上記のTCPパケット800の場合は、ペイロードデータ804を持たず、「Seq」の更新値を格納してTCP処理部707で受信処理をさせようとしても、正常に処理されないからである。この更新されない「Seq」に対する更新については後述する。
(5)映像データ受信処理
アプリケーション701は、「GETコマンド」の送信の後、TCP受信制御部713に対し、CPUアクセスによる読み出し要求を、その読み出し量(受信量)を指定して行なう。これにより、TCP受信制御部713は、割り込み信号の発行を受けて、CPUアクセス出力制御部604から指定量を読み出し、アプリケーション701に応答する。
アプリケーション701は、「GETコマンド」の送信の後、TCP受信制御部713に対し、CPUアクセスによる読み出し要求を、その読み出し量(受信量)を指定して行なう。これにより、TCP受信制御部713は、割り込み信号の発行を受けて、CPUアクセス出力制御部604から指定量を読み出し、アプリケーション701に応答する。
なお、アプリケーション701は、この読み出し量を映像データの開始位置を超えないように制御する。
なお、映像データの開始位置がHTTP応答における最初のTCPパケットに収まらず、分割された後のTCPパケットから始まる場合、該当するTCPパケットが未着の場合は、TCP受信制御部713が待ち状態となり、アプリケーション701はその処理を待たされることになるため、その待ち処理を中断することも可能である。これは、TCP受信制御部713に対する指示によって行なわれる。
なお、割り込み許可設定をTCP情報更新部711において判定して制御する場合、CPUアクセス出力制御部604からのTCPヘッダの読み出しによってこの判定を行なう。
アプリケーション701は、受信したHTTPヘッダを解析することによって映像データの開始位置とその連続量とを取得し、TCP受信制御部713に対して、専用バス207への出力とその開始位置、および連続出力量の指示を行なう。これにより、TCP受信制御部713は、TCPパケット出力制御部603に、映像データ出力制御部606への出力を行なうモード(映像データ出力モード)に切り替えるよう指示する。なお、TCP受信制御部713は、連続して出力するデータ量である連続出力量のデータ受信を完了するか、中断が発生した場合に、TCPパケット出力制御部603に対し、上記映像データ出力モードからCPUアクセスモードに切り替えるように指示する。
また、TCP受信制御部713は、映像データ出力制御部606に対し、映像データの開始位置と連続出力量とを指定する。これにより、映像データ出力制御部606にTCPパケットが渡され、専用バス207に映像データが出力され、デジタルTVチューナ204に映像データが渡される。
なお、この映像データ出力モードにおいて指定された連続出力量の出力が完了するまでに、アプリケーション701がその出力を中断することもできる。これは、TCP受信制御部713に対してその中断を指示し、TCP受信制御部713が映像データ出力制御部606に対してその指示を行なうことによって実現される(図8参照)。
(6)継続要求送信
アプリケーション701は、最初に指定した映像データの取得が完了すると、続いて映像データの取得要求を送信する場合がある。この場合、アプリケーション701は、上記と同様に、プロトコル処理部702に対して「HTTP GET」コマンドを送信するよう指示する。ここで、最初の動作と異なる点としては、TCP処理部707は、その送信処理の事前処理として、Seq更新部710により、TCP情報管理部712からTCPコネクション情報の一つである受信順序番号(Seq)の取得を行ない、自身が管理するテーブルを更新する。これにより、上記のTCPパケットを生成して受信させることで更新されないSeqを更新することが可能となる。
アプリケーション701は、最初に指定した映像データの取得が完了すると、続いて映像データの取得要求を送信する場合がある。この場合、アプリケーション701は、上記と同様に、プロトコル処理部702に対して「HTTP GET」コマンドを送信するよう指示する。ここで、最初の動作と異なる点としては、TCP処理部707は、その送信処理の事前処理として、Seq更新部710により、TCP情報管理部712からTCPコネクション情報の一つである受信順序番号(Seq)の取得を行ない、自身が管理するテーブルを更新する。これにより、上記のTCPパケットを生成して受信させることで更新されないSeqを更新することが可能となる。
図10は、上記で説明したソフトウェアの処理を、TOE部用ドライバ704とTCP処理部807に絞った動作のイメージを表した図である。更新条件通知部809およびSeq更新部810は、送信処理の中でその事前処理として実行される。また、TOE部用ドライバ704からTCPコネクション情報を更新するために生成されたTCPパケットをTCP処理部807の受信I/Fで受け付け、通常の受信処理を行なうのと同様に動作させ、関連する輻輳制御や再送制御などの処理を行ない、TCPコネクション情報の更新を行なう。
この更新の様子を時系列に表わした図が図11である。多くの時間を占める映像受信の区間のほとんどは、無更新区間となり、更新頻度が低いことが理解できる。
なお、本実施の形態において、TOE部402が扱うTCPコネクションの本数をわかりやすく1本として説明したが、上記説明動作を、複数のTCPコネクションに対して適用可能であることは云うまでもない。
以上のように、本発明により、専用のCPU、外付けメモリが不要な低コストの高速受信処理用のTCP通信アダプタを用いることで、IPネットワークを経由してTCPによる広帯域映像データを受信して映像データを取得することが可能な低コストのDTVを実現することが可能となる(図12参照)。
本発明に係る通信アダプタおよび通信装置は、広帯域映像データを受信して映像出力するDTV端末として有用である。また、TCPを用いた高速受信装置等の用途にも応用が可能である。
101 映像サーバ
102 IPネットワーク
103 DTV
201 メインメモリ
202 ホストCPU
203 デジタルRF
204 デジタルTVチューナ
205 AVデコーダ
206 バス
207 専用バス
301 高速通信アダプタ
401 汎用LAN制御部
402 TOE部
403 振り分け部
601 割り込み制御部
602 TCP情報入出力部
603 TCPパケット出力制御部
604 CPUアクセス出力制御部
605 TCPパケット受信処理部
606 映像データ出力制御部
701 アプリケーション
702 プロトコル処理部
703 汎用LAN制御部用ドライバ
704 TOE部用ドライバ
705 デジタルTVチューナ用ドライバ
706 AVデコーダ用ドライバ
707 TCP処理部
708 IF処理部
709 更新条件通知部
710 Seq更新部
711 TCP情報更新部
712 TCP情報管理部
713 TCP受信制御部
800 TCPパケット
801 MACヘッダ
802 IPヘッダ
803 TCPヘッダ
804 ペイロードデータ(実際は含まず)
80301 順序番号(Seq)
80302 確認応答番号(Ack)
80303 受信ウィンドウサイズ(RWin)
102 IPネットワーク
103 DTV
201 メインメモリ
202 ホストCPU
203 デジタルRF
204 デジタルTVチューナ
205 AVデコーダ
206 バス
207 専用バス
301 高速通信アダプタ
401 汎用LAN制御部
402 TOE部
403 振り分け部
601 割り込み制御部
602 TCP情報入出力部
603 TCPパケット出力制御部
604 CPUアクセス出力制御部
605 TCPパケット受信処理部
606 映像データ出力制御部
701 アプリケーション
702 プロトコル処理部
703 汎用LAN制御部用ドライバ
704 TOE部用ドライバ
705 デジタルTVチューナ用ドライバ
706 AVデコーダ用ドライバ
707 TCP処理部
708 IF処理部
709 更新条件通知部
710 Seq更新部
711 TCP情報更新部
712 TCP情報管理部
713 TCP受信制御部
800 TCPパケット
801 MACヘッダ
802 IPヘッダ
803 TCPヘッダ
804 ペイロードデータ(実際は含まず)
80301 順序番号(Seq)
80302 確認応答番号(Ack)
80303 受信ウィンドウサイズ(RWin)
Claims (16)
- 通信装置に取り付けられる、通信インタフェースとして機能する通信アダプタであって、
通信相手から送られてくるTCPパケットを受信するTCP受信処理部と、
前記通信装置と前記TCP受信処理部との間における、TCPコネクションに関する情報であるTCPコネクション情報のやりとりを中継するTCP情報入出力部とを備え、
前記TCP情報入出力部は、前記通信装置から渡されるTCPコネクション情報を受け取って、前記TCP受信処理部に渡し、
前記TCP受信処理部は、前記TCP情報入出力部から渡されたTCPコネクション情報を用いて、通信相手から送られてくるTCPパケットの受信と受信したTCPパケットに対応するTCP確認応答処理とを行なうと共に、前記TCPパケットの受信に伴って変化したTCPコネクション情報を前記TCP情報入出力部に通知し、
前記TCP情報入出力部は、前記TCP受信処理部から通知されたTCPコネクション情報を前記通信装置に出力する
ことを特徴とした通信アダプタ。 - 前記通信アダプタはさらに、前記通信装置から通知される値と前記TCP受信処理部が受信したTCPパケットに含まれる受信確認応答番号とを比較し、その比較結果に基づいて、前記通信装置に対して割り込み信号を発生する割り込み制御部を備える
ことを特徴とする請求項1に記載の通信アダプタ。 - 通信相手とTCP通信をする通信装置であって、
TCP通信におけるコネクション管理と前記通信相手への送信処理とを行なうTCP処理部と、
前記通信相手から送られてくるTCPパケットを受信する請求項1に記載の通信アダプタと、
前記TCP処理部と前記通信アダプタにおけるTCPコネクション情報を同期させる処理を行なうTCP情報同期部と
を備えることを特徴とする通信装置。 - 前記TCP情報同期部は、前記通信アダプタが管理するTCPコネクション情報が変更された場合に、変更後のコネクション情報が予め決められた条件を満たしたときに、当該コネクション情報を前記TCP処理部に反映させる同期処理を行なう
ことを特徴とする請求項3に記載の通信装置。 - 前記TCP処理部は、前記通信相手から送られてくるTCPパケットを受信する受信機能をもつインタフェース処理部を有する
ことを特徴とする請求項4に記載の通信装置。 - 前記TCP情報同期部は、前記インタフェース処理部の前記受信機能を用いて、前記コネクション情報を前記TCP処理部に反映させる
ことを特徴とする請求項5に記載の通信装置。 - 前記TCP情報同期部は、前記受信機能を用いる場合における前記通信アダプタが管理する受信順序番号を除き、前記コネクション情報を前記TCP処理部に反映させる
ことを特徴とする請求項6に記載の通信装置。 - 前記TCP処理部は、TCP送信処理の事前処理として、前記通信アダプタが管理する受信順序番号を取得したい旨の要求を前記TCP情報同期部に送り、
前記TCP情報同期部は、前記TCP処理部からの前記要求に対して、前記通信アダプタが管理する受信順序番号を取得し、取得した受信順序番号を前記TCP処理部に応答し、
前記TCP処理部は、前記TCP情報同期部からの応答を受けて、受信順序番号の値を更新する
ことを特徴とする請求項7に記載の通信装置。 - 前記TCP情報同期部は、予め与えられた第1の値と前記通信アダプタが受信したTCPパケットに含まれる受信確認応答番号から算出される第2の値とを比較することで、変更後のコネクション情報が予め決められた条件を満たしたか否かを判断する
ことを特徴とする請求項4に記載の通信装置。 - 前記TCP処理部は、TCP送信処理を行なう場合に、当該TCP送信処理における送信データの最後の順序番号を、前記TCP情報同期部に通知し、
前記TCP情報同期部は、前記TCP処理部から通知された順序番号から算出される値を前記第1の値として前記比較をする
ことを特徴とする請求項9に記載の通信装置。 - 前記通信アダプタはさらに、受信したTCPパケットを、当該TCPパケットの受信状況に応じて、異なる2つの出力先に出力する振り分け部を備える
ことを特徴とする請求項3に記載の通信装置。 - 前記通信装置はさらに、CPUと映像データを処理する映像処理部とを備え、
前記振り分け部は、異なる2つの出力先として、当該通信アダプタと前記CPUとを接続する第1のバス、および当該通信アダプタと前記映像処理部とを接続する第2のバスに、前記TCPパケットを出力する
ことを特徴とする請求項11に記載の通信装置。 - 前記通信アダプタはさらに、前記通信装置から、受信したTCPパケットの出力先とその出力先に連続して出力するデータ量である連続出力量の指定を受け付け、受け付けた指定に従って、前記TCPパケットを出力するTCPパケット出力制御部を備える
ことを特徴とする請求項12に記載の通信装置。 - 前記TCPパケット出力制御部は、前記通信装置から指定された連続出力量の出力が完了する前に、当該出力を中断する機能を備える
ことを特徴とする請求項13に記載の通信装置。 - 通信相手とTCP通信をする通信装置による通信方法であって、
前記通信装置が備えるCPUが、TCP通信におけるコネクション管理と前記通信相手への送信処理とを行ない、
前記通信装置に取り付けられる通信アダプタが、前記通信相手から送られてくるTCPパケットの受信処理を行なう
ことを特徴とする通信方法。 - 通信装置に取り付けられる、通信インタフェースとして機能する集積回路であって、
通信相手から送られてくるTCPパケットを受信するTCP受信処理部と、
前記通信装置と前記TCP受信処理部との間における、TCPコネクションに関する情報であるTCPコネクション情報のやりとりを中継するTCP情報入出力部とを備え、
前記TCP情報入出力部は、前記通信装置から渡されるTCPコネクション情報を受け取って、前記TCP受信処理部に渡し、
前記TCP受信処理部は、前記TCP情報入出力部から渡されたTCPコネクション情報を用いて、通信相手から送られてくるTCPパケットの受信と受信したTCPパケットに対応するTCP確認応答処理とを行なうと共に、TCPパケットの受信に伴って変化したTCPコネクション情報を前記TCP情報入出力部に通知し、
前記TCP情報入出力部は、前記TCP受信処理部から通知されたTCPコネクション情報を前記通信装置に出力する
ことを特徴とした集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007255572A JP2009088962A (ja) | 2007-09-28 | 2007-09-28 | 通信アダプタ、通信装置および通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007255572A JP2009088962A (ja) | 2007-09-28 | 2007-09-28 | 通信アダプタ、通信装置および通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009088962A true JP2009088962A (ja) | 2009-04-23 |
Family
ID=40661791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007255572A Pending JP2009088962A (ja) | 2007-09-28 | 2007-09-28 | 通信アダプタ、通信装置および通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009088962A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013176106A (ja) * | 2013-04-09 | 2013-09-05 | Toshiba Corp | データ通信装置および通信プログラム |
JP2013179615A (ja) * | 2013-04-09 | 2013-09-09 | Toshiba Corp | データ通信装置および通信プログラム |
KR101455011B1 (ko) | 2010-06-23 | 2014-10-27 | 인터내셔널 비지네스 머신즈 코포레이션 | 메시지 시그널 인터럽션을 i/o 어댑터 이벤트 통지로 변환 |
CN104657555A (zh) * | 2015-02-11 | 2015-05-27 | 北京麓柏科技有限公司 | 一种基于uvm验证方法学的toe的验证方法及平台 |
US9100332B2 (en) | 2011-02-28 | 2015-08-04 | Kabushiki Kaisha Toshiba | Data transmitting device, data communicating device, and computer readable medium |
-
2007
- 2007-09-28 JP JP2007255572A patent/JP2009088962A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101455011B1 (ko) | 2010-06-23 | 2014-10-27 | 인터내셔널 비지네스 머신즈 코포레이션 | 메시지 시그널 인터럽션을 i/o 어댑터 이벤트 통지로 변환 |
US9100332B2 (en) | 2011-02-28 | 2015-08-04 | Kabushiki Kaisha Toshiba | Data transmitting device, data communicating device, and computer readable medium |
JP2013176106A (ja) * | 2013-04-09 | 2013-09-05 | Toshiba Corp | データ通信装置および通信プログラム |
JP2013179615A (ja) * | 2013-04-09 | 2013-09-09 | Toshiba Corp | データ通信装置および通信プログラム |
CN104657555A (zh) * | 2015-02-11 | 2015-05-27 | 北京麓柏科技有限公司 | 一种基于uvm验证方法学的toe的验证方法及平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4870819B2 (ja) | ネットワーク・トラフィック・コントローラ | |
TW200821857A (en) | Dynamic power cycling | |
TW200820677A (en) | Device and method for configuring a target device | |
US9660836B2 (en) | Network topology discovery | |
US9276772B2 (en) | Method and apparatus for transmitting and receiving data based on secured path bandwidth in network established by using audio/video interface | |
JP6291834B2 (ja) | 通信装置、通信方法および通信システム | |
JP2009088962A (ja) | 通信アダプタ、通信装置および通信方法 | |
JP2010252205A (ja) | 無線送信機、無線送信方法、無線受信機および無線受信方法 | |
JP4988487B2 (ja) | データの転送方法、装置、プログラム | |
US20180213278A1 (en) | Video processing device, method for driving video processing device, video relaying device, method for driving video relaying device, and computer-readable recording medium | |
CN115209192A (zh) | 一种显示设备、智能设备和摄像头共享方法 | |
US20160295567A1 (en) | Communication device and setting device | |
JP3652233B2 (ja) | 無線ネットワークシステム | |
JP2006217242A (ja) | 無線通信方法および無線通信装置 | |
EP2280512A1 (en) | Electronic apparatus and control method for remotely processing files | |
JP2012015778A (ja) | 通信処理装置、及び通信処理方法 | |
US11271711B2 (en) | Communication control device, communication control method, network switch, route control method, and communication system | |
TWI698148B (zh) | 通信系統及通信方法 | |
JP6758858B2 (ja) | 通信装置、通信方法及びプログラム | |
CN105895130A (zh) | 调节播放设备音量的方法、装置及控制终端 | |
CN118368371A (zh) | 视频处理设备、方法及计算机可读存储介质 | |
JP2009077024A (ja) | Tcpパケット通信装置およびその関連技術 | |
JP2006109016A (ja) | 送受信装置、送受信制御方法、プログラム、およびメモリ | |
US8898716B2 (en) | Method and apparatus for designing a communication mechanism between embedded cable modem and embedded set-top box | |
KR20170097900A (ko) | Id/loc 분리 구조 기반 멀티―스크린 지원을 위한 방법 및 시스템 |