JP2008028767A - ネットワークカードおよび情報処理装置 - Google Patents
ネットワークカードおよび情報処理装置 Download PDFInfo
- Publication number
- JP2008028767A JP2008028767A JP2006199959A JP2006199959A JP2008028767A JP 2008028767 A JP2008028767 A JP 2008028767A JP 2006199959 A JP2006199959 A JP 2006199959A JP 2006199959 A JP2006199959 A JP 2006199959A JP 2008028767 A JP2008028767 A JP 2008028767A
- Authority
- JP
- Japan
- Prior art keywords
- data
- network
- size
- unit
- bus
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 ストリーミングデータを効率的に送出する技術を提供する。
【解決手段】 ホストコネクタとネットワークコネクタとを備えるネットワークカードであって、ネットワークコネクタを介して送信することになるデータを、ホストコネクタを介して第1サイズよりも大きな第2サイズのブロックデータを単位として受信する受信手段と、受信したブロックデータを一時的に記憶するためのバッファメモリと、第1サイズ以下となるデータフレームを生成し、ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。
【選択図】図4
【解決手段】 ホストコネクタとネットワークコネクタとを備えるネットワークカードであって、ネットワークコネクタを介して送信することになるデータを、ホストコネクタを介して第1サイズよりも大きな第2サイズのブロックデータを単位として受信する受信手段と、受信したブロックデータを一時的に記憶するためのバッファメモリと、第1サイズ以下となるデータフレームを生成し、ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。
【選択図】図4
Description
本発明は、データ送出技術、特に、広帯域なストリーミングデータを効率的に送出する技術に関するものである。
近年、ビデオオンデマンド(VOD)などストリーミングサービスが実現されている。また、近年のアクセス網の広帯域化により、配信サーバから送出されるビデオストリーミングデータ1つあたりの帯域も増大している。さらに、今後いわゆるHD(高精細)映像の配信などにより、さらなる広帯域化が見込まれる。配信サーバからデータ送出レートが増大するにしたがい、当該配信サーバの内部バス(たとえばPCIなど)の利用率も増大する傾向にある。
一般的にネットワークインタフェースにはそれぞれの規格に応じて転送可能な最大のデータ長(MTU)が規定されている。たとえばIEEE802.3シリーズ規格としても知られるイーサネット(登録商標)においては最大約1.5kバイトである。そのため、一般的にはデバイスドライバは、内部バスで伝送可能なデータ長が十分大きい場合であっても、ネットワーク上に送信するデータを上述のMTUを超えないような大きさのデータに分割した後、内部バスを経由してインタフェースボードに転送する。なお、この分割のことをフラグメント処理と呼ぶ。その後、ボード上のMAC/PHYにより処理が行われネットワーク上に送出される。
一方、ストリーミングサービスでは、データ量が多いことからネットワーク上でのパケット破棄などが発生し得る。その場合に受信側から再送要求を出さなくともよいよう、配信サーバにおいて前方誤り訂正(FEC)符号化が利用される。たとえば、特許文献1に開示されるような符号化が利用されている。
国際公開番号第WO2005/112250号
内部バスにおいては、一般的には、ストリーミングデータの送信単位に合わせて十分大きなデータ単位(データ長)で転送することが可能である。しかしながら、上述したようにMTUによる制限から結果として内部バス上を流れるデータ長は小さいものとなってしまう。そのため、ストリーミングデータの送信においては、バスの混雑が発生しやすく、フラグメント処理によるCPUパワーも必要とされるという問題点がある。
また、大量のデータに対して特許文献1に開示されているような符号化処理を実行するためには更なるCPUパワーを必要とする。
本発明は上述した問題点に鑑みなされたものであり、これらの問題点の少なくとも1つを解決することを目的とする。
上述した問題点の少なくとも1つを解決するため本発明のネットワークカードは以下の構成を備える。
即ち、ホスト装置に設けられたバスコネクタに接続するためのホストコネクタと、ネットワークに接続するためのネットワークコネクタとを備えるネットワークカードであって、前記ネットワークコネクタを介して送信可能なデータフレームの最大サイズを第1サイズとしたとき、前記ネットワークコネクタを介して送信することになるデータを、前記ホストコネクタを介して前記第1サイズよりも大きな第2サイズのブロックデータを単位として受信する受信手段と、前記受信手段において受信したブロックデータを一時的に記憶するためのバッファメモリと、前記バッファメモリから、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。
上述した問題点の少なくとも1つを解決するため本発明の情報処理装置は以下の構成を備える。
即ち、バスにより接続されたホスト処理部とネットワーク処理部を備え、ネットワークにストリーミングデータを送出する情報処理装置であって、前記ホスト処理部は、ストリームデータを入力するデータ入力手段と、少なくとも前記ストリームデータを、前記ネットワークにおいて転送可能なデータフレームの最大サイズを第1サイズとしたとき、該第1サイズよりも大きな第2サイズのブロックデータを単位として、前記バスを介して前記ネットワーク処理部に転送するバス転送手段と備え、前記ネットワーク処理部は、前記バス転送手段から前記バスを介して送信されたブロックデータを受信する受信手段と、前記受信手段において受信したブロックデータを一時的に記憶するための記憶手段と、前記記憶手段から、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。
本発明によれば、ストリーミングデータを効率的に送出する技術を提供することができる。
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、これらの実施の形態はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
(第1実施形態)
本発明に係るデータ送出装置の第1実施形態として、汎用のPCおよびネットワークボードにより構成されたストリーミング配信装置を例に挙げて以下に説明する。
本発明に係るデータ送出装置の第1実施形態として、汎用のPCおよびネットワークボードにより構成されたストリーミング配信装置を例に挙げて以下に説明する。
<概要>
第1実施形態のストリーミング配信装置においては、従来PC本体のCPUがデバイスドライバプログラムを実行することにより行っていたフラグメント処理をネットワークボード上のハードウェアにより処理を行う。その結果、PC本体のCPUにおける負荷低減を実現するとともに、バスを介したネットワークボードへのデータ転送をより大きなデータ長により行うことが出来、バス使用効率の向上を実現する。
第1実施形態のストリーミング配信装置においては、従来PC本体のCPUがデバイスドライバプログラムを実行することにより行っていたフラグメント処理をネットワークボード上のハードウェアにより処理を行う。その結果、PC本体のCPUにおける負荷低減を実現するとともに、バスを介したネットワークボードへのデータ転送をより大きなデータ長により行うことが出来、バス使用効率の向上を実現する。
<システム構成および装置構成>
図1は、ストリーミング配信システムの全体構成の概念図を示す。
図1は、ストリーミング配信システムの全体構成の概念図を示す。
100はストリーミング配信サーバ、110a、110bはストリーミング受信装置である。また、101、111aおよび111bは、それぞれ、配信サーバ100、受信装置110a、110bが属するネットワークセグメントである。各々のネットワークセグメント101、111a、111bは、ルータ102、112a、112bおよびコアネットワーク120を介して接続されている。なお、以降では、各ネットワークセグメント間のデータ転送には、インターネットプロトコル(IP)が使用されるものとして説明を行う。
配信サーバ100は、受信端末110a、110bに対してストリームデータをRTP/UDP/IPの形式でパケット化し送信する。ここ、RTPはリアルタイムトランスポートプロトコルを意味し、UDPはユーザデータグラムプロトコルを意味する。なお、配信サーバ100は、ユニキャストで各受信端末にストリーミング配信しても良いし、マルチキャストで配信しても良い。また、いわゆるビデオオンデマンド(VOD)サービスのように各受信端末からの配信要求に基づいて配信を開始しても良い。
図2は、第1実施形態に係る配信サーバの内部構成を示す図である。図に示されるように、配信サーバ100は、CPU201、RAM202、ROM203、HDD204、ユーザI/F205およびネットワーク(NW)ボード200から構成されており、各部は内部システムバス210により相互に接続されている。
CPU201は、ROM203やHDD204に記憶される各種プログラムを実行することにより、各部を制御、または図4で後述する各機能部を実現する。ROM203は、配信サーバ100の起動時等に実行されるプログラム等を記憶している。RAM202は、CPU201により実行される各種プログラムや各種データの一時記憶を行う。HDD204は、大容量の記憶装置であり、各種プログラムや各種データファイルの記憶を行う。プログラムには、オペレーティングシステム(OS)プログラムやストリーミング配信プログラムが含まれる。ユーザI/F205は不図示のキーボードやマウスなどのユーザ入力装置、および、不図示のディスプレイなどの表示出力装置である。
内部システムバス210としては一般的なPCIバスを含む汎用バスを想定するが、もちろん専用のバスであっても良い。ただし、バス210における転送速度はネットワーク101における転送速度よりも大きく、転送可能なデータ長はネットワーク101におけるデータ長よりも長いものとする。
なお、以降では説明を簡単にするため、配信サーバ100において、ネットワーク(NW)ボード200を”NWボード側”、それ以外の部分を”サーバ本体側”と呼ぶ場合がある。
図3は、第1実施形態に係る配信サーバ内のネットワークボードの内部構成を示す図である。図に示されるように、ネットワークボード200は、パケットハンドラ301、メモリ302、メモリコントローラ303およびバスI/F310から構成されている。
メモリ302は、バス210およびバスI/F310を介してサーバ本体側から受信したデータを、一時的に格納する部分であり、内部にパケットバッファ302aを備えている。なお、詳細は後述するがパケットバッファ302aはストリーム毎に領域が確保される。
パケットハンドラ301は、メモリ302に一時記憶されたデータをネットワーク110に適したデータ形式で送信する回路部である。具体的には、メモリ302に一時記憶されたデータに対し、後述するフラグメント処理やスムージング処理を行った後、ネットワーク110に出力する。
<機能構成および動作>
図4は、第1実施形態に係る配信サーバの機能構成を示す図である。
図4は、第1実施形態に係る配信サーバの機能構成を示す図である。
配信サーバ100は、データ送信に関連する機能部として、入力部401、バス転送部402、フラグメント処理部403およびスムージング処理部404を備えている。なお、入力部401およびバス転送部402の各機能部は、サーバ本体側のCPU201が各種プログラムを実行することにより実現される。一方、フラグメント処理部403およびスムージング処理部404の各機能部は、NWボード側のハードウェアにより実現される。以下、各機能部について説明を行う。
なお、以下では説明を簡単にするために各処理部のRTP/UDP/IPの形式のストリーミングデータに対しての処理についてのみ説明を行う。その他のデータについては、従来通りの処理がなされる。なお、パケットの区別はIPヘッダに記載されるポート番号に基づいて行っても良いし、ただ単にパケットのデータ長に基づいて行っても良い。
入力部401は、ネットワークボード200を介して送信することになるストリーミングファイルを入力する機能部である。具体的には、CPU201がストリーミング配信ソフトウェアを実行することにより、HDD204などに格納されるストリーミングデータをRAM202に読み込むことにより実現される。なお、入力部401は、請求項における入力手段に相当する。
バス転送部402は、入力部401によりRAM202上に入力されたストリーミングデータを予め指定された固定長データに分割した後、RTP/UDP/IPの形式として格納し、バス210を介してNWボード側に転送する機能部である。具体的には、CPU201が、IPスタックプログラムおよびNWボード200のデバイスドライバプログラムを実行することにより実現される。なお、バス転送部402は、請求項におけるバス転送手段に相当する。
ただし、背景技術で説明した場合と異なり、転送されるストリーミングデータパケットはネットワーク101に送出可能なデータ長に比較し大きいものとなっている。例えば、ネットワーク101がイーサネット(登録商標)である場合、つまり、最大のデータ長(MTU)(請求項における第1サイズ)が約1.5kバイトであっても、例えば32kバイトなどの大きなデータブロック(請求項における第2サイズ)として転送する。
なお、一般にアプリケーションとIPスタックプログラムとの間、および、IPスタックプログラムとデバイスドライバとの間のデータ形式については仕様が定められているため変更を行うには大きな設計変更を伴うことになる。しかし、上述のような、デバイスドライバとハードウェアとの間のデータ形式は比較的自由に設計が可能であることに注意されたい。
詳細は後述するが、データ(データブロック)において、IP、UDP、RTPの各ヘッダを除いたペイロード部を、ストリームデータの最小処理単位の整数倍(あるいは2の累乗倍)に相当するデータ長とすることが好適である。
フラグメント処理部403は、バス210(バスコネクタ)を介してバス転送部402から転送されたデータ(データブロック)をネットワーク101に送出可能なデータ長に分割する機能部である。具体的には、不図示のホストコネクタを介してメモリ302に格納されたデータブロックを、ネットワーク101のMTU以下となるデータ長に分割し、分割されたデータに対応するIP、UDP、RTPの各ヘッダを再生成する。そして、ネットワーク101に直接送信可能なデータ長のIPパケットをパケットバッファ302aに格納する。なお、バスI/F310は、請求項における受信手段、メモリ302は、請求項におけるバッファメモリまたは記憶手段に相当する。また、フラグメント処理部402は、請求項における送信手段の一部を構成し、パケットハンドラ301が送信手段に相当する。
なお、IP、UDP、RTPの各ヘッダを再生成とは具体的には以下の処理を言う。IPヘッダには当該IPパケットに含まれるデータのデータ長(ペイロード長)が記載されている。また、UDPヘッダには当該UDPパケットに含まれるデータのデータ長および当該データのチェックサムが記載されている。さらに、RTPヘッダには当該RTPパケットに含まれるデータのシーケンス番号およびタイムスタンプが記載されている。そのため、フラグメント処理部403によるフラグメント処理の結果、RTPパケットは分割されることから、これらの各ヘッダ内に記載された情報を、分割されたパケットに合わせて算出し、ヘッダ情報を更新するのである。なお、バス転送部402から転送されたデータ(データブロック)において、IP、UDP、RTPの各ヘッダを除いたペイロード部を等分割とすることによりヘッダ情報の算出が簡単になる。そのため、前述のように、データブロックのペイロード部をストリームデータの最小処理単位の整数倍(あるいは2の累乗倍)に相当するデータ長にすることが望ましいのである。
スムージング処理部404は、フラグメント処理部403によりパケットバッファ302aに格納された固定長のIPパケットを等間隔にネットワーク101に送出する機能部である。具体的には、パケットバッファ302aに格納された固定長のIPパケット内のヘッダ情報に基づいて送出間隔を算出し、格納された順番にIPパケットを送出する。送出間隔は、例えば、IPヘッダあるいはUDPヘッダのデータ長の情報とRTPヘッダのタイムスタンプの情報により算出可能である。なお、バースト的なトラフック特性にならないと想定される予め設定された送出間隔となるよう順番にIPデータを送出しても良い。なお、スムージング処理部404は、請求項における送信間隔制御手段に相当する。
なお、上述の説明においては、フラグメント後のIP(RTP)パケットが時間方向に均等間隔となるよう送出制御を行った。しかし、一般的には、NWボード200からはRTPパケットだけでなく、当該RTPパケットストリームの制御に利用されるRTCPパケット、あるいはその他のパケットが送出され得る。そのため、予めRTPパケット以外に使用可能な時間スロットを確保しておき、当該時間スロットを除く期間において均等間隔となるよう送出制御を行うよう構成するのも好適である。
<動作フロー>
図5は、第1実施形態に係る配信サーバにおけるデータの処理フローチャートである。なお以下のステップは、例えば受信装置110a(あるいは110b)からのストリーミングデータの送信要求の受付により開始される。なおここでは、ストリームデータの最小処理単位は64バイトであると仮定する。
図5は、第1実施形態に係る配信サーバにおけるデータの処理フローチャートである。なお以下のステップは、例えば受信装置110a(あるいは110b)からのストリーミングデータの送信要求の受付により開始される。なおここでは、ストリームデータの最小処理単位は64バイトであると仮定する。
ステップS501では、入力部401は、受信装置110aから要求のあったストリーミングデータをHDD204などから読み込みRAM202に格納する。
ステップS502では、バス転送部402は、ステップS501においてRAM202に格納されたデータを、例えば、16kバイト(=64バイト×28)のデータ長のデータブロックに分割する。そして、当該データブロックに対するIP、UDP、RTPの各ヘッダを生成し、RTP/UDP/IPの形式として格納し、バス210を介してNWボード側に転送する。
ステップS503では、フラグメント処理部403は、ステップS502においてバス210を介してバス転送部402から転送されたデータブロック内のペイロードデータを、例えば、512バイト(=64バイト×23)のデータ長のデータに分割する。つまり、ネットワーク101におけるMTU以下のデータ長となるようデータブロックを分割する。そして、分割され生成された512バイト長の各データに対してIP、UDP、RTPの各ヘッダを再生成し、RTP/UDP/IPの形式として格納する。そして、再生成されたIPパケットをパケットバッファ302aに格納する。
ステップS504では、スムージング処理部404は、ステップS503においてパケットバッファ302aに格納されたIPパケットを、等間隔にネットワーク101に送出する。
なお、上述のフローチャートにおいては、説明を簡単にするために配信サーバ100からは単一のストリーミングデータが送信されるように説明を行った。しかし、もちろん、上述の処理をストリーミングデータ毎に実行することも可能である。特に、ストリーミングデータ毎に上述のスムージング処理部404の処理を実行することにより、各受信装置110a、110bの属するネットワークセグメント111a、111bに到達するストリーミングデータは、それぞれがバースト性の抑えられたトラフィックとなるため、データのロスが発生しにくくなるという利点がある。
以上説明をしたように、第1実施形態の配信サーバによれば、フラグメント処理によるバス210の負荷(輻輳)、および、フラグメント処理実行によるCPU201の負荷を大幅に低減することが出来る。そのため、バス210の転送能力またはCPU201の処理能力に起因するボトルネックを大幅に緩和することが可能となる。その結果、ストリーミングデータをより効率的に送出することが可能となる。
(第2実施形態)
<概要>
第2実施形態では、第1実施形態の構成に加え、NWボード上に前方誤り訂正符号(FEC)の符号器を配置する。なお、ここで言う前方誤り訂正符号は欠損補償符号を含む。このような構成とすることにより、FEC符号化処理に消費されるCPUパワーを大幅に低減可能となる。また、バス使用率(トラフィック)を低減することが可能となる。
<概要>
第2実施形態では、第1実施形態の構成に加え、NWボード上に前方誤り訂正符号(FEC)の符号器を配置する。なお、ここで言う前方誤り訂正符号は欠損補償符号を含む。このような構成とすることにより、FEC符号化処理に消費されるCPUパワーを大幅に低減可能となる。また、バス使用率(トラフィック)を低減することが可能となる。
なお、ストリーミング配信システムの全体構成(図1)、および、配信サーバの内部構成(図2)については第1実施形態と同様であるため説明は省略する。
<FEC符号>
本発明においてはFEC符号として特に欠損補償符号を用いるのが効果的である。そのため、第2実施形態において、FEC符号としては、米国デジタルファウンテン社により開発されたFEC符号であるRaptor符号を用いると仮定する。ただし、もちろん一般的なリードソロモン(RS)ベースの符号を用いることも可能である。以下に、Raptor符号について簡単に説明するが、詳細については背景技術において述べた特許文献1を参照されたい。
本発明においてはFEC符号として特に欠損補償符号を用いるのが効果的である。そのため、第2実施形態において、FEC符号としては、米国デジタルファウンテン社により開発されたFEC符号であるRaptor符号を用いると仮定する。ただし、もちろん一般的なリードソロモン(RS)ベースの符号を用いることも可能である。以下に、Raptor符号について簡単に説明するが、詳細については背景技術において述べた特許文献1を参照されたい。
Raptor符号では、ストリームファイルを特定のデータ長(s×kバイト)の区間ごとに分け、各区間のデータを”入力シンボル”と呼ばれる同一データ長(sバイト)のk個のデータに分割する。そして、キーと呼ばれるインデックス値に基づいて、分割されたk個の入力シンボルから1以上の入力シンボル選択し、選択された入力シンボル同士をビット毎にXOR演算を行い、”出力シンボル”と呼ばれるsバイトのデータ長のデータを生成する。このような出力シンボルを異なるキーに対して連続して生成する。
一方、受信側では、確率的にk+α個(αはkに比較し小さい)の出力シンボルを受信し、出力シンボル同士をXOR演算することにより入力シンボルを復元する。このとき、k+α個の出力シンボルは任意に選択可能であるため、転送中にどのパケットがロスした場合でも復元可能であるという優れた特性をもっている。
<装置構成>
図6は、第2実施形態に係る配信サーバ内のネットワークボードの内部構成を示す図である。図に示されるように、ネットワークボード600は、パケットハンドラ601、メモリ602、メモリコントローラ603、バスI/F610に加え、符号化エンジン604および符号化制御部605を備えている。以下では、第1実施形態と異なる部分であるFEC符号化エンジン604および符号化制御部605について説明する。
図6は、第2実施形態に係る配信サーバ内のネットワークボードの内部構成を示す図である。図に示されるように、ネットワークボード600は、パケットハンドラ601、メモリ602、メモリコントローラ603、バスI/F610に加え、符号化エンジン604および符号化制御部605を備えている。以下では、第1実施形態と異なる部分であるFEC符号化エンジン604および符号化制御部605について説明する。
FEC符号化エンジン604は、XOR演算をハードウェアで実行する回路である。XOR演算を含む論理演算がハードウェアにより容易に構成可能であることは、当業者には良く知られている。
符号化制御部605は、前述のRaptor符号の符号化動作をFEC符号化エンジン604を制御することにより実現する機能部である。なお、符号化制御部605を、不図示のCPUおよび制御プログラムを格納するフラッシュメモリとして構成することにより、他のFEC符号アルゴリズムに容易に変更することが可能となり好適である。なお、符号化制御部605およびFEC符号化エンジン604が、請求項における符号化手段に相当する。
具体的には、符号化制御部605はメモリ602に一時記憶されたデータ(入力シンボル)から、1以上の入力シンボルを選択しFEC符号化エンジン604に入力することにより順次出力シンボルを生成する。そして、生成された出力シンボルをメモリ602に一時記憶する。
ただし、前述のRaptor符号について説明でも述べたように、出力シンボルと入力シンボルとのデータ長は同一であるが、数は少なくともα個以上増加していることに注意する。
パケットハンドラ601は、メモリ602に一時記憶された出力シンボルにより構成されたデータをネットワーク110に適したデータ形式で送信する回路部である。具体的には、メモリ602に一時記憶されたデータに対し、フラグメント処理やスムージング処理を行った後、ネットワーク110に出力する。
<機能構成および動作>
図7は、第2実施形態に係る配信サーバの機能構成を示す図である。
図7は、第2実施形態に係る配信サーバの機能構成を示す図である。
配信サーバ100は、データ送信に関連する機能部として、入力部701、バス転送部702、フラグメント処理部703、スムージング処理部704に加え、符号化処理部705を備えている。以下では、第1実施形態と異なる部分である符号化処理部705に関連する部分について説明する。
符号化処理部705は、バス210を介してバス転送部702から転送されたデータ(データブロック)に対しFEC符号化処理を実行する機能部である。具体的には、符号化エンジン604および符号化制御部605により実現され、メモリ302に格納されたデータブロックを、前述の入力シンボルと見立てて、出力シンボルを生成する。
フラグメント処理部703は、符号化処理部705により符号化された出力シンボル(データブロック)をネットワーク101に送出可能なデータ長に分割する機能部である。具体的には、メモリ602に格納されたデータブロックを、ネットワーク101のMTU以下となるデータ長に分割し、分割されたデータに対応するIP、UDP、RTPの各ヘッダを再生成する。そして、ネットワーク101に直接送信可能なデータ長のIPパケットをパケットバッファ602aに格納する。
ただし、前述のように、符号化処理部705による符号化処理により、冗長データが追加されるため、結果として符号化処理部705の入力レートに比較し出力レートの方が大きい。具体的には、k個の入力シンボルからk+α個の出力シンボルを生成する場合、同じデータ長であることから、出力レートは入力レートの(k+α)/k倍になる。このとき、符号化率はk/(k+α)と表され、例えばRTPヘッダのタイムスタンプは符号化率に基づいて再設定される。つまり、非符号化時に比較し時間間隔を約k/(k+α)倍だけ短く設定する。ここで、入力シンボルおよび出力シンボル1個のデータ量が請求項における第1データ量に相当する。また、入力シンボルk個に相当するデータ量が請求項における第2データ量に相当する。
スムージング処理部704は、フラグメント処理部703によりパケットバッファ602aに格納された固定長のIPパケットを等間隔にネットワーク101に送出する機能部である。具体的には、パケットバッファ602aに格納された固定長のIPパケット内のヘッダ情報に基づいて送出間隔を算出し、格納された順番にIPパケットを送出する。前述のようにRTPヘッダのタイムスタンプが短く設定されるため、結果的に送出間隔も約k/(k+α)倍だけ短く設定されることになる。
以上説明をしたように、第2実施形態の配信サーバによれば、第1実施形態で説明したフラグメント処理に加えFEC符号化処理をNWボード600上で実行することによりCPU201の負荷を大幅に低減することが出来る。また、バス210にはFEC符号化による冗長データが流れることがないため、バス使用率(トラフィック)を低減することが可能となる。その結果、ストリーミングデータをより効率的に送出することが可能となる。
(変形例)
なお、上述の説明においては、ネットワークボードが直接接続するネットワーク(ここではイーサネット(登録商標))の最大転送サイズ(約1.5kバイト)より小さい固定長パケット(512バイト)を転送サイズとして設定した。しかし、もちろんMTUとほぼ等しく設定しても良い。なお、一般的には配信サーバから受信端末までは複数の種々のネットワークが混在し得、それぞれのMTUが異なる可能性がある。また、受信端末ごと経路が異なるため、受信端末ごとに”パスMTU”が異なる可能性がある。そのため、パスMTU探索(Path MTU Discovery)などを用い事前にパスMTUを検出し、それぞれの端末に対応するパスMTU以下となるようパケットサイズを、ストリーム配信開始時に動的に設定しても良い。
なお、上述の説明においては、ネットワークボードが直接接続するネットワーク(ここではイーサネット(登録商標))の最大転送サイズ(約1.5kバイト)より小さい固定長パケット(512バイト)を転送サイズとして設定した。しかし、もちろんMTUとほぼ等しく設定しても良い。なお、一般的には配信サーバから受信端末までは複数の種々のネットワークが混在し得、それぞれのMTUが異なる可能性がある。また、受信端末ごと経路が異なるため、受信端末ごとに”パスMTU”が異なる可能性がある。そのため、パスMTU探索(Path MTU Discovery)などを用い事前にパスMTUを検出し、それぞれの端末に対応するパスMTU以下となるようパケットサイズを、ストリーム配信開始時に動的に設定しても良い。
Claims (8)
- ホスト装置に設けられたバスコネクタに接続するためのホストコネクタと、ネットワークに接続するためのネットワークコネクタとを備えるネットワークカードであって、
前記ネットワークコネクタを介して送信可能なデータフレームの最大サイズを第1サイズとしたとき、
前記ネットワークコネクタを介して送信することになるデータを、前記ホストコネクタを介して前記第1サイズよりも大きな第2サイズのブロックデータを単位として受信する受信手段と、
前記受信手段において受信したブロックデータを一時的に記憶するためのバッファメモリと、
前記バッファメモリから、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段と、
を備えることを特徴とするネットワークカード。 - 前記送信手段は、1以上の前記データフレームを時間軸方向に略均等な間隔で前記ネットワークに送出する送信間隔制御手段をさらに備えることを特徴とする請求項1に記載のネットワークカード。
- 前記ブロックデータに含まれるデータに対して前方誤り訂正符号(FEC)の符号化処理を行う符号化手段をさらに備えることを特徴とする請求項2に記載のネットワークカード。
- 前記送信手段は、前記符号化手段により符号化されたデータに基づいて、前記第2サイズ以下となるデータフレームを生成し、
前記送信間隔制御手段は、前記符号化手段が用いる符号化率に基づいて、前記データフレームを送出する前記間隔を決定することを特徴とする請求項3に記載のネットワークカード。 - 前記符号化手段は、前記符号化処理を所定の第1データ量を単位とした論理演算を繰り返し実行することにより行っており、
前記送信手段は、前記第1データ量の整数倍のサイズのデータを前記データフレームに含めることを特徴とする請求項4に記載のネットワークカード。 - 前記符号化手段は、所定の第2データ量を単位として前記符号化処理を行い、
前記受信手段は、前記第2データ量の整数倍のサイズに設定された前記ブロックデータを受信することを特徴とする請求項4または請求項5に記載のネットワークカード。 - バスにより接続されたホスト処理部とネットワーク処理部を備え、ネットワークにストリーミングデータを送出する情報処理装置であって、
前記ホスト処理部は、
ストリームデータを入力するデータ入力手段と、
少なくとも前記ストリームデータを、前記ネットワークにおいて転送可能なデータフレームの最大サイズを第1サイズとしたとき、該第1サイズよりも大きな第2サイズのブロックデータを単位として、前記バスを介して前記ネットワーク処理部に転送するバス転送手段と、
を備え、
前記ネットワーク処理部は、
前記バス転送手段から前記バスを介して送信されたブロックデータを受信する受信手段と、
前記受信手段において受信したブロックデータを一時的に記憶するための記憶手段と、
前記記憶手段から、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段と、
を備えることを特徴とする情報処理装置。 - バスにより接続されたホスト処理部とネットワーク処理部を備え、ネットワークにストリーミングデータを送出する情報処理装置であって、
前記ホスト処理部は、
ストリームデータを入力するデータ入力部と、
少なくとも前記ストリームデータを、前記ネットワークにおいて転送可能なデータフレームの最大サイズを第1サイズとしたとき、該第1サイズよりも大きな第2サイズのブロックデータを単位として、前記バスを介して前記ネットワーク処理部に転送するバス転送部と、
を備え、
前記ネットワーク処理部は、
前記バス転送部から送信されたブロックデータを受信する受信部と、
前記受信部において受信したブロックデータを一時的に記憶するためのバッファメモリと、
前記バッファメモリから、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信部と、
を備えることを特徴とする情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006199959A JP2008028767A (ja) | 2006-07-21 | 2006-07-21 | ネットワークカードおよび情報処理装置 |
TW97101754A TW200934180A (en) | 2006-07-21 | 2008-01-17 | Network card and information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006199959A JP2008028767A (ja) | 2006-07-21 | 2006-07-21 | ネットワークカードおよび情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008028767A true JP2008028767A (ja) | 2008-02-07 |
Family
ID=39118953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006199959A Pending JP2008028767A (ja) | 2006-07-21 | 2006-07-21 | ネットワークカードおよび情報処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2008028767A (ja) |
TW (1) | TW200934180A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009087774A1 (ja) * | 2008-01-10 | 2009-07-16 | Sumitomo Electric Networks, Inc. | ネットワークカードおよび情報処理装置 |
JP2022546102A (ja) * | 2019-09-10 | 2022-11-02 | 華為技術有限公司 | パケット処理方法および装置、ならびにチップ |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS612439A (ja) * | 1984-06-15 | 1986-01-08 | Kokusai Denshin Denwa Co Ltd <Kdd> | デイジタル信号伝送方式 |
JPH03274937A (ja) * | 1990-03-26 | 1991-12-05 | Nec Corp | 伝送誤り制御装置 |
JPH05153131A (ja) * | 1991-12-02 | 1993-06-18 | Mitsubishi Electric Corp | Lan端末装置 |
JPH11317762A (ja) * | 1998-05-07 | 1999-11-16 | Nec Corp | インタフェース装置 |
JP2001313675A (ja) * | 2000-04-28 | 2001-11-09 | Nec Corp | フラグメンテーション処理デバイスおよびこれを用いたフラグメンテーション処理装置 |
JP2002084289A (ja) * | 2000-09-07 | 2002-03-22 | Kddi Corp | Tcp通信方法 |
JP2002314594A (ja) * | 2001-04-19 | 2002-10-25 | Nippon Telegr & Teleph Corp <Ntt> | 通信処理方法及びその実施システム並びにその処理プログラムと記録媒体 |
JP2003273920A (ja) * | 2002-03-19 | 2003-09-26 | Matsushita Electric Ind Co Ltd | 一般データと優先データの送信装置および受信装置 |
JP2005204001A (ja) * | 2004-01-15 | 2005-07-28 | Hitachi Ltd | データ配信サーバ、ソフトウェア、及びシステム |
JP2005252773A (ja) * | 2004-03-05 | 2005-09-15 | Matsushita Electric Ind Co Ltd | パケット送信機器 |
-
2006
- 2006-07-21 JP JP2006199959A patent/JP2008028767A/ja active Pending
-
2008
- 2008-01-17 TW TW97101754A patent/TW200934180A/zh unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS612439A (ja) * | 1984-06-15 | 1986-01-08 | Kokusai Denshin Denwa Co Ltd <Kdd> | デイジタル信号伝送方式 |
JPH03274937A (ja) * | 1990-03-26 | 1991-12-05 | Nec Corp | 伝送誤り制御装置 |
JPH05153131A (ja) * | 1991-12-02 | 1993-06-18 | Mitsubishi Electric Corp | Lan端末装置 |
JPH11317762A (ja) * | 1998-05-07 | 1999-11-16 | Nec Corp | インタフェース装置 |
JP2001313675A (ja) * | 2000-04-28 | 2001-11-09 | Nec Corp | フラグメンテーション処理デバイスおよびこれを用いたフラグメンテーション処理装置 |
JP2002084289A (ja) * | 2000-09-07 | 2002-03-22 | Kddi Corp | Tcp通信方法 |
JP2002314594A (ja) * | 2001-04-19 | 2002-10-25 | Nippon Telegr & Teleph Corp <Ntt> | 通信処理方法及びその実施システム並びにその処理プログラムと記録媒体 |
JP2003273920A (ja) * | 2002-03-19 | 2003-09-26 | Matsushita Electric Ind Co Ltd | 一般データと優先データの送信装置および受信装置 |
JP2005204001A (ja) * | 2004-01-15 | 2005-07-28 | Hitachi Ltd | データ配信サーバ、ソフトウェア、及びシステム |
JP2005252773A (ja) * | 2004-03-05 | 2005-09-15 | Matsushita Electric Ind Co Ltd | パケット送信機器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009087774A1 (ja) * | 2008-01-10 | 2009-07-16 | Sumitomo Electric Networks, Inc. | ネットワークカードおよび情報処理装置 |
JP2022546102A (ja) * | 2019-09-10 | 2022-11-02 | 華為技術有限公司 | パケット処理方法および装置、ならびにチップ |
US11695502B2 (en) | 2019-09-10 | 2023-07-04 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus, and chip |
Also Published As
Publication number | Publication date |
---|---|
TW200934180A (en) | 2009-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6334028B2 (ja) | 通信システムにおけるパケット送受信装置及び方法 | |
JP6553119B2 (ja) | 放送及び通信システムにおけるパケット送受信装置及び方法 | |
EP3084994B1 (en) | Dynamic coding for network traffic by fog computing node | |
US20220255660A1 (en) | Systems and methods to optimize the load of multipath data transportation | |
CN110943800B (zh) | 数据包的发送方法、装置及***、存储介质、电子装置 | |
US7451381B2 (en) | Reliable method and system for efficiently transporting dynamic data across a network | |
JP5550834B2 (ja) | 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング | |
JP6284549B2 (ja) | マルチパスストリーミングのためのfecベースの信頼性のある転送制御プロトコル | |
KR102657709B1 (ko) | 데이터 스트림에 대한 전송 방법 및 디바이스 | |
JP5060572B2 (ja) | データ通信装置及び方法 | |
WO2009087774A1 (ja) | ネットワークカードおよび情報処理装置 | |
KR20120084237A (ko) | 엠엠티(mmt)에서 엠엠티 인캡슐레이터를 전송하는 방법 | |
JP2004179876A (ja) | 情報処理装置および方法、並びにコンピュータ・プログラム | |
JP4252596B2 (ja) | パケット転送装置 | |
JP2014528682A (ja) | 移動通信システムにおける順方向誤り訂正パケットを送受信する装置及び方法 | |
CN101854224B (zh) | 纠错编码方法、装置和***以及转发控制方法和装置 | |
CN111385055B (zh) | 一种数据传输方法和装置 | |
JP2008028767A (ja) | ネットワークカードおよび情報処理装置 | |
US20230057487A1 (en) | Data packet format to communicate across different networks | |
CN112564855A (zh) | 报文处理方法、装置以及芯片 | |
WO2024099020A1 (zh) | 多通道数据发送方法、接收方法、发送端及接收端 | |
JP5711507B2 (ja) | データ伝送システム及び方法及び受信装置及びデータ受信方法 | |
WO2021047606A1 (zh) | 报文处理方法、装置以及芯片 | |
JP2004221756A (ja) | 情報処理装置および情報処理方法、並びにコンピュータ・プログラム | |
CN115086285A (zh) | 一种数据处理方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20090127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101022 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110304 |