JP2008028767A - Network card and information processing apparatus - Google Patents
Network card and information processing apparatus 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サイズ以下となるデータフレームを生成し、ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。
【選択図】図4PROBLEM TO BE SOLVED: To provide a technique for efficiently transmitting streaming data.
A network card including a host connector and a network connector, wherein data to be transmitted via the network connector is a unit of block data having a second size larger than the first size via the host connector. Receiving means, a buffer memory for temporarily storing the received block data, and generating a data frame of the first size or less, and transmitting the data frame on a network connected to the network connector Transmitting means.
[Selection] Figure 4
Description
本発明は、データ送出技術、特に、広帯域なストリーミングデータを効率的に送出する技術に関するものである。 The present invention relates to a data transmission technique, and more particularly to a technique for efficiently transmitting broadband streaming data.
近年、ビデオオンデマンド(VOD)などストリーミングサービスが実現されている。また、近年のアクセス網の広帯域化により、配信サーバから送出されるビデオストリーミングデータ1つあたりの帯域も増大している。さらに、今後いわゆるHD(高精細)映像の配信などにより、さらなる広帯域化が見込まれる。配信サーバからデータ送出レートが増大するにしたがい、当該配信サーバの内部バス(たとえばPCIなど)の利用率も増大する傾向にある。 In recent years, streaming services such as video on demand (VOD) have been realized. In addition, the bandwidth per video streaming data transmitted from the distribution server is increasing due to the recent widening of the access network. Furthermore, further broadbandization is expected in the future through the distribution of so-called HD (high definition) video. As the data transmission rate from the distribution server increases, the utilization factor of the internal bus (for example, PCI) of the distribution server tends to increase.
一般的にネットワークインタフェースにはそれぞれの規格に応じて転送可能な最大のデータ長(MTU)が規定されている。たとえばIEEE802.3シリーズ規格としても知られるイーサネット(登録商標)においては最大約1.5kバイトである。そのため、一般的にはデバイスドライバは、内部バスで伝送可能なデータ長が十分大きい場合であっても、ネットワーク上に送信するデータを上述のMTUを超えないような大きさのデータに分割した後、内部バスを経由してインタフェースボードに転送する。なお、この分割のことをフラグメント処理と呼ぶ。その後、ボード上のMAC/PHYにより処理が行われネットワーク上に送出される。 In general, the maximum data length (MTU) that can be transferred is defined for each network interface according to each standard. For example, in Ethernet (registered trademark), which is also known as the IEEE 802.3 series standard, the maximum is about 1.5 kbytes. Therefore, the device driver generally divides the data to be transmitted on the network into data that does not exceed the above MTU even if the data length that can be transmitted by the internal bus is sufficiently large. Transfer to the interface board via the internal bus. This division is called fragment processing. Thereafter, the processing is performed by the MAC / PHY on the board and sent out on the network.
一方、ストリーミングサービスでは、データ量が多いことからネットワーク上でのパケット破棄などが発生し得る。その場合に受信側から再送要求を出さなくともよいよう、配信サーバにおいて前方誤り訂正(FEC)符号化が利用される。たとえば、特許文献1に開示されるような符号化が利用されている。
内部バスにおいては、一般的には、ストリーミングデータの送信単位に合わせて十分大きなデータ単位(データ長)で転送することが可能である。しかしながら、上述したようにMTUによる制限から結果として内部バス上を流れるデータ長は小さいものとなってしまう。そのため、ストリーミングデータの送信においては、バスの混雑が発生しやすく、フラグメント処理によるCPUパワーも必要とされるという問題点がある。 In general, the internal bus can transfer data in a sufficiently large data unit (data length) in accordance with the transmission unit of streaming data. However, as described above, the data length flowing on the internal bus becomes small as a result of the limitation by the MTU. Therefore, in transmitting streaming data, there is a problem that bus congestion tends to occur, and CPU power by fragment processing is also required.
また、大量のデータに対して特許文献1に開示されているような符号化処理を実行するためには更なるCPUパワーを必要とする。
Further, in order to execute an encoding process as disclosed in
本発明は上述した問題点に鑑みなされたものであり、これらの問題点の少なくとも1つを解決することを目的とする。 The present invention has been made in view of the above-described problems, and an object thereof is to solve at least one of these problems.
上述した問題点の少なくとも1つを解決するため本発明のネットワークカードは以下の構成を備える。 In order to solve at least one of the problems described above, the network card of the present invention has the following configuration.
即ち、ホスト装置に設けられたバスコネクタに接続するためのホストコネクタと、ネットワークに接続するためのネットワークコネクタとを備えるネットワークカードであって、前記ネットワークコネクタを介して送信可能なデータフレームの最大サイズを第1サイズとしたとき、前記ネットワークコネクタを介して送信することになるデータを、前記ホストコネクタを介して前記第1サイズよりも大きな第2サイズのブロックデータを単位として受信する受信手段と、前記受信手段において受信したブロックデータを一時的に記憶するためのバッファメモリと、前記バッファメモリから、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。 That is, a network card having a host connector for connecting to a bus connector provided in the host device and a network connector for connecting to a network, the maximum size of a data frame that can be transmitted through the network connector Receiving means for receiving data to be transmitted via the network connector as a unit of block data of a second size larger than the first size via the host connector, A buffer memory for temporarily storing the block data received by the receiving means, and reading data to be included in the data frame to be transmitted from the buffer memory, and generating a data frame having the first size or less Connected to the network connector It was on the network and transmitting means for transmitting the data frame.
上述した問題点の少なくとも1つを解決するため本発明の情報処理装置は以下の構成を備える。 In order to solve at least one of the problems described above, an information processing apparatus of the present invention has the following configuration.
即ち、バスにより接続されたホスト処理部とネットワーク処理部を備え、ネットワークにストリーミングデータを送出する情報処理装置であって、前記ホスト処理部は、ストリームデータを入力するデータ入力手段と、少なくとも前記ストリームデータを、前記ネットワークにおいて転送可能なデータフレームの最大サイズを第1サイズとしたとき、該第1サイズよりも大きな第2サイズのブロックデータを単位として、前記バスを介して前記ネットワーク処理部に転送するバス転送手段と備え、前記ネットワーク処理部は、前記バス転送手段から前記バスを介して送信されたブロックデータを受信する受信手段と、前記受信手段において受信したブロックデータを一時的に記憶するための記憶手段と、前記記憶手段から、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段とを備える。 That is, an information processing apparatus that includes a host processing unit and a network processing unit connected by a bus and sends streaming data to a network, the host processing unit including data input means for inputting stream data, and at least the stream When the maximum size of a data frame that can be transferred in the network is the first size, the data is transferred to the network processing unit via the bus in units of block data having a second size larger than the first size. The network processing unit for receiving the block data transmitted from the bus transfer unit via the bus, and for temporarily storing the block data received by the receiving unit. Storage means and a data flow to be transmitted from the storage means. Reading data for inclusion in over beam, and generates a data frame to be less than the first size, and transmitting means for transmitting the data frame over a network connected to the network connector.
本発明によれば、ストリーミングデータを効率的に送出する技術を提供することができる。 According to the present invention, a technique for efficiently sending streaming data can be provided.
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、これらの実施の形態はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. Note that these embodiments are merely examples, and are not intended to limit the scope of the present invention.
(第1実施形態)
本発明に係るデータ送出装置の第1実施形態として、汎用のPCおよびネットワークボードにより構成されたストリーミング配信装置を例に挙げて以下に説明する。
(First embodiment)
As a first embodiment of the data transmission apparatus according to the present invention, a streaming distribution apparatus constituted by a general-purpose PC and a network board will be described below as an example.
<概要>
第1実施形態のストリーミング配信装置においては、従来PC本体のCPUがデバイスドライバプログラムを実行することにより行っていたフラグメント処理をネットワークボード上のハードウェアにより処理を行う。その結果、PC本体のCPUにおける負荷低減を実現するとともに、バスを介したネットワークボードへのデータ転送をより大きなデータ長により行うことが出来、バス使用効率の向上を実現する。
<Overview>
In the streaming distribution apparatus according to the first embodiment, the fragment processing that has been performed by the CPU of the PC main body by executing the device driver program is processed by hardware on the network board. As a result, the load on the CPU of the PC main body can be reduced, and the data transfer to the network board via the bus can be performed with a larger data length, thereby improving the bus use efficiency.
<システム構成および装置構成>
図1は、ストリーミング配信システムの全体構成の概念図を示す。
<System configuration and device configuration>
FIG. 1 is a conceptual diagram of the overall configuration of a streaming distribution system.
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)サービスのように各受信端末からの配信要求に基づいて配信を開始しても良い。
The
図2は、第1実施形態に係る配信サーバの内部構成を示す図である。図に示されるように、配信サーバ100は、CPU201、RAM202、ROM203、HDD204、ユーザI/F205およびネットワーク(NW)ボード200から構成されており、各部は内部システムバス210により相互に接続されている。
FIG. 2 is a diagram illustrating an internal configuration of the distribution server according to the first embodiment. As shown in the figure, the
CPU201は、ROM203やHDD204に記憶される各種プログラムを実行することにより、各部を制御、または図4で後述する各機能部を実現する。ROM203は、配信サーバ100の起動時等に実行されるプログラム等を記憶している。RAM202は、CPU201により実行される各種プログラムや各種データの一時記憶を行う。HDD204は、大容量の記憶装置であり、各種プログラムや各種データファイルの記憶を行う。プログラムには、オペレーティングシステム(OS)プログラムやストリーミング配信プログラムが含まれる。ユーザI/F205は不図示のキーボードやマウスなどのユーザ入力装置、および、不図示のディスプレイなどの表示出力装置である。
The
内部システムバス210としては一般的なPCIバスを含む汎用バスを想定するが、もちろん専用のバスであっても良い。ただし、バス210における転送速度はネットワーク101における転送速度よりも大きく、転送可能なデータ長はネットワーク101におけるデータ長よりも長いものとする。
The
なお、以降では説明を簡単にするため、配信サーバ100において、ネットワーク(NW)ボード200を”NWボード側”、それ以外の部分を”サーバ本体側”と呼ぶ場合がある。
In the following, in order to simplify the description, in the
図3は、第1実施形態に係る配信サーバ内のネットワークボードの内部構成を示す図である。図に示されるように、ネットワークボード200は、パケットハンドラ301、メモリ302、メモリコントローラ303およびバスI/F310から構成されている。
FIG. 3 is a diagram illustrating an internal configuration of the network board in the distribution server according to the first embodiment. As shown in the figure, the
メモリ302は、バス210およびバスI/F310を介してサーバ本体側から受信したデータを、一時的に格納する部分であり、内部にパケットバッファ302aを備えている。なお、詳細は後述するがパケットバッファ302aはストリーム毎に領域が確保される。
The
パケットハンドラ301は、メモリ302に一時記憶されたデータをネットワーク110に適したデータ形式で送信する回路部である。具体的には、メモリ302に一時記憶されたデータに対し、後述するフラグメント処理やスムージング処理を行った後、ネットワーク110に出力する。
The
<機能構成および動作>
図4は、第1実施形態に係る配信サーバの機能構成を示す図である。
<Functional configuration and operation>
FIG. 4 is a diagram illustrating a functional configuration of the distribution server according to the first embodiment.
配信サーバ100は、データ送信に関連する機能部として、入力部401、バス転送部402、フラグメント処理部403およびスムージング処理部404を備えている。なお、入力部401およびバス転送部402の各機能部は、サーバ本体側のCPU201が各種プログラムを実行することにより実現される。一方、フラグメント処理部403およびスムージング処理部404の各機能部は、NWボード側のハードウェアにより実現される。以下、各機能部について説明を行う。
The
なお、以下では説明を簡単にするために各処理部のRTP/UDP/IPの形式のストリーミングデータに対しての処理についてのみ説明を行う。その他のデータについては、従来通りの処理がなされる。なお、パケットの区別はIPヘッダに記載されるポート番号に基づいて行っても良いし、ただ単にパケットのデータ長に基づいて行っても良い。 In the following, for the sake of simplicity, only the processing for the streaming data in the RTP / UDP / IP format of each processing unit will be described. Other data is processed as usual. Packets may be distinguished based on the port number described in the IP header, or simply based on the packet data length.
入力部401は、ネットワークボード200を介して送信することになるストリーミングファイルを入力する機能部である。具体的には、CPU201がストリーミング配信ソフトウェアを実行することにより、HDD204などに格納されるストリーミングデータをRAM202に読み込むことにより実現される。なお、入力部401は、請求項における入力手段に相当する。
The input unit 401 is a functional unit that inputs a streaming file to be transmitted via the
バス転送部402は、入力部401によりRAM202上に入力されたストリーミングデータを予め指定された固定長データに分割した後、RTP/UDP/IPの形式として格納し、バス210を介してNWボード側に転送する機能部である。具体的には、CPU201が、IPスタックプログラムおよびNWボード200のデバイスドライバプログラムを実行することにより実現される。なお、バス転送部402は、請求項におけるバス転送手段に相当する。
The
ただし、背景技術で説明した場合と異なり、転送されるストリーミングデータパケットはネットワーク101に送出可能なデータ長に比較し大きいものとなっている。例えば、ネットワーク101がイーサネット(登録商標)である場合、つまり、最大のデータ長(MTU)(請求項における第1サイズ)が約1.5kバイトであっても、例えば32kバイトなどの大きなデータブロック(請求項における第2サイズ)として転送する。
However, unlike the case described in the background art, the streaming data packet to be transferred is larger than the data length that can be transmitted to the
なお、一般にアプリケーションとIPスタックプログラムとの間、および、IPスタックプログラムとデバイスドライバとの間のデータ形式については仕様が定められているため変更を行うには大きな設計変更を伴うことになる。しかし、上述のような、デバイスドライバとハードウェアとの間のデータ形式は比較的自由に設計が可能であることに注意されたい。 In general, specifications are determined for the data format between the application and the IP stack program and between the IP stack program and the device driver, so that a change requires a large design change. However, it should be noted that the data format between the device driver and the hardware as described above can be designed relatively freely.
詳細は後述するが、データ(データブロック)において、IP、UDP、RTPの各ヘッダを除いたペイロード部を、ストリームデータの最小処理単位の整数倍(あるいは2の累乗倍)に相当するデータ長とすることが好適である。 Although details will be described later, in the data (data block), the payload part excluding the headers of IP, UDP, and RTP is represented by a data length corresponding to an integral multiple (or a power of 2) of the minimum processing unit of stream data. It is preferable to do.
フラグメント処理部403は、バス210(バスコネクタ)を介してバス転送部402から転送されたデータ(データブロック)をネットワーク101に送出可能なデータ長に分割する機能部である。具体的には、不図示のホストコネクタを介してメモリ302に格納されたデータブロックを、ネットワーク101のMTU以下となるデータ長に分割し、分割されたデータに対応するIP、UDP、RTPの各ヘッダを再生成する。そして、ネットワーク101に直接送信可能なデータ長のIPパケットをパケットバッファ302aに格納する。なお、バスI/F310は、請求項における受信手段、メモリ302は、請求項におけるバッファメモリまたは記憶手段に相当する。また、フラグメント処理部402は、請求項における送信手段の一部を構成し、パケットハンドラ301が送信手段に相当する。
The
なお、IP、UDP、RTPの各ヘッダを再生成とは具体的には以下の処理を言う。IPヘッダには当該IPパケットに含まれるデータのデータ長(ペイロード長)が記載されている。また、UDPヘッダには当該UDPパケットに含まれるデータのデータ長および当該データのチェックサムが記載されている。さらに、RTPヘッダには当該RTPパケットに含まれるデータのシーケンス番号およびタイムスタンプが記載されている。そのため、フラグメント処理部403によるフラグメント処理の結果、RTPパケットは分割されることから、これらの各ヘッダ内に記載された情報を、分割されたパケットに合わせて算出し、ヘッダ情報を更新するのである。なお、バス転送部402から転送されたデータ(データブロック)において、IP、UDP、RTPの各ヘッダを除いたペイロード部を等分割とすることによりヘッダ情報の算出が簡単になる。そのため、前述のように、データブロックのペイロード部をストリームデータの最小処理単位の整数倍(あるいは2の累乗倍)に相当するデータ長にすることが望ましいのである。
Note that the regeneration of IP, UDP, and RTP headers specifically refers to the following processing. The IP header describes the data length (payload length) of the data included in the IP packet. The UDP header describes the data length of the data included in the UDP packet and the checksum of the data. Further, the RTP header describes the sequence number and time stamp of the data included in the RTP packet. Therefore, since the RTP packet is divided as a result of fragment processing by the
スムージング処理部404は、フラグメント処理部403によりパケットバッファ302aに格納された固定長のIPパケットを等間隔にネットワーク101に送出する機能部である。具体的には、パケットバッファ302aに格納された固定長のIPパケット内のヘッダ情報に基づいて送出間隔を算出し、格納された順番にIPパケットを送出する。送出間隔は、例えば、IPヘッダあるいはUDPヘッダのデータ長の情報とRTPヘッダのタイムスタンプの情報により算出可能である。なお、バースト的なトラフック特性にならないと想定される予め設定された送出間隔となるよう順番にIPデータを送出しても良い。なお、スムージング処理部404は、請求項における送信間隔制御手段に相当する。
The smoothing
なお、上述の説明においては、フラグメント後のIP(RTP)パケットが時間方向に均等間隔となるよう送出制御を行った。しかし、一般的には、NWボード200からはRTPパケットだけでなく、当該RTPパケットストリームの制御に利用されるRTCPパケット、あるいはその他のパケットが送出され得る。そのため、予めRTPパケット以外に使用可能な時間スロットを確保しておき、当該時間スロットを除く期間において均等間隔となるよう送出制御を行うよう構成するのも好適である。
In the above description, transmission control is performed so that IP (RTP) packets after fragmentation are equally spaced in the time direction. However, in general, not only RTP packets but also RTCP packets used for controlling the RTP packet stream or other packets can be transmitted from the
<動作フロー>
図5は、第1実施形態に係る配信サーバにおけるデータの処理フローチャートである。なお以下のステップは、例えば受信装置110a(あるいは110b)からのストリーミングデータの送信要求の受付により開始される。なおここでは、ストリームデータの最小処理単位は64バイトであると仮定する。
<Operation flow>
FIG. 5 is a data processing flowchart in the distribution server according to the first embodiment. The following steps are started by receiving a streaming data transmission request from the receiving
ステップS501では、入力部401は、受信装置110aから要求のあったストリーミングデータをHDD204などから読み込みRAM202に格納する。
In step S501, the input unit 401 reads the streaming data requested from the receiving
ステップS502では、バス転送部402は、ステップS501においてRAM202に格納されたデータを、例えば、16kバイト(=64バイト×28)のデータ長のデータブロックに分割する。そして、当該データブロックに対するIP、UDP、RTPの各ヘッダを生成し、RTP/UDP/IPの形式として格納し、バス210を介してNWボード側に転送する。
In step S502, the
ステップS503では、フラグメント処理部403は、ステップS502においてバス210を介してバス転送部402から転送されたデータブロック内のペイロードデータを、例えば、512バイト(=64バイト×23)のデータ長のデータに分割する。つまり、ネットワーク101におけるMTU以下のデータ長となるようデータブロックを分割する。そして、分割され生成された512バイト長の各データに対してIP、UDP、RTPの各ヘッダを再生成し、RTP/UDP/IPの形式として格納する。そして、再生成されたIPパケットをパケットバッファ302aに格納する。
In step S503, the
ステップS504では、スムージング処理部404は、ステップS503においてパケットバッファ302aに格納されたIPパケットを、等間隔にネットワーク101に送出する。
In step S504, the smoothing
なお、上述のフローチャートにおいては、説明を簡単にするために配信サーバ100からは単一のストリーミングデータが送信されるように説明を行った。しかし、もちろん、上述の処理をストリーミングデータ毎に実行することも可能である。特に、ストリーミングデータ毎に上述のスムージング処理部404の処理を実行することにより、各受信装置110a、110bの属するネットワークセグメント111a、111bに到達するストリーミングデータは、それぞれがバースト性の抑えられたトラフィックとなるため、データのロスが発生しにくくなるという利点がある。
In the above flowchart, for the sake of simplicity, the description has been made so that single streaming data is transmitted from the
以上説明をしたように、第1実施形態の配信サーバによれば、フラグメント処理によるバス210の負荷(輻輳)、および、フラグメント処理実行によるCPU201の負荷を大幅に低減することが出来る。そのため、バス210の転送能力またはCPU201の処理能力に起因するボトルネックを大幅に緩和することが可能となる。その結果、ストリーミングデータをより効率的に送出することが可能となる。
As described above, according to the distribution server of the first embodiment, the load on the
(第2実施形態)
<概要>
第2実施形態では、第1実施形態の構成に加え、NWボード上に前方誤り訂正符号(FEC)の符号器を配置する。なお、ここで言う前方誤り訂正符号は欠損補償符号を含む。このような構成とすることにより、FEC符号化処理に消費されるCPUパワーを大幅に低減可能となる。また、バス使用率(トラフィック)を低減することが可能となる。
(Second Embodiment)
<Overview>
In the second embodiment, in addition to the configuration of the first embodiment, a forward error correction code (FEC) encoder is arranged on the NW board. The forward error correction code referred to here includes a loss compensation code. With such a configuration, the CPU power consumed for the FEC encoding process can be greatly reduced. In addition, the bus usage rate (traffic) can be reduced.
なお、ストリーミング配信システムの全体構成(図1)、および、配信サーバの内部構成(図2)については第1実施形態と同様であるため説明は省略する。 Note that the overall configuration of the streaming distribution system (FIG. 1) and the internal configuration of the distribution server (FIG. 2) are the same as those in the first embodiment, and a description thereof will be omitted.
<FEC符号>
本発明においてはFEC符号として特に欠損補償符号を用いるのが効果的である。そのため、第2実施形態において、FEC符号としては、米国デジタルファウンテン社により開発されたFEC符号であるRaptor符号を用いると仮定する。ただし、もちろん一般的なリードソロモン(RS)ベースの符号を用いることも可能である。以下に、Raptor符号について簡単に説明するが、詳細については背景技術において述べた特許文献1を参照されたい。
<FEC code>
In the present invention, it is particularly effective to use a loss compensation code as the FEC code. Therefore, in the second embodiment, it is assumed that a Raptor code, which is an FEC code developed by the US Digital Fountain Company, is used as the FEC code. Of course, it is also possible to use a general Reed-Solomon (RS) -based code. Hereinafter, the Raptor code will be briefly described. For details, refer to
Raptor符号では、ストリームファイルを特定のデータ長(s×kバイト)の区間ごとに分け、各区間のデータを”入力シンボル”と呼ばれる同一データ長(sバイト)のk個のデータに分割する。そして、キーと呼ばれるインデックス値に基づいて、分割されたk個の入力シンボルから1以上の入力シンボル選択し、選択された入力シンボル同士をビット毎にXOR演算を行い、”出力シンボル”と呼ばれるsバイトのデータ長のデータを生成する。このような出力シンボルを異なるキーに対して連続して生成する。 In the Raptor code, a stream file is divided into sections having a specific data length (s × k bytes), and data in each section is divided into k pieces of data having the same data length (s bytes) called “input symbols”. Then, based on an index value called a key, one or more input symbols are selected from the divided k input symbols, the selected input symbols are subjected to XOR operation for each bit, and s called “output symbols” Generate data with a data length of bytes. Such output symbols are generated sequentially for different keys.
一方、受信側では、確率的にk+α個(αはkに比較し小さい)の出力シンボルを受信し、出力シンボル同士をXOR演算することにより入力シンボルを復元する。このとき、k+α個の出力シンボルは任意に選択可能であるため、転送中にどのパケットがロスした場合でも復元可能であるという優れた特性をもっている。 On the other hand, on the receiving side, k + α (α is smaller than k) output symbols are received stochastically, and the input symbols are restored by XORing the output symbols. At this time, since k + α output symbols can be arbitrarily selected, it has an excellent characteristic that it can be restored regardless of which packet is lost during transfer.
<装置構成>
図6は、第2実施形態に係る配信サーバ内のネットワークボードの内部構成を示す図である。図に示されるように、ネットワークボード600は、パケットハンドラ601、メモリ602、メモリコントローラ603、バスI/F610に加え、符号化エンジン604および符号化制御部605を備えている。以下では、第1実施形態と異なる部分であるFEC符号化エンジン604および符号化制御部605について説明する。
<Device configuration>
FIG. 6 is a diagram illustrating an internal configuration of the network board in the distribution server according to the second embodiment. As shown in the figure, the network board 600 includes an
FEC符号化エンジン604は、XOR演算をハードウェアで実行する回路である。XOR演算を含む論理演算がハードウェアにより容易に構成可能であることは、当業者には良く知られている。
The
符号化制御部605は、前述のRaptor符号の符号化動作をFEC符号化エンジン604を制御することにより実現する機能部である。なお、符号化制御部605を、不図示のCPUおよび制御プログラムを格納するフラッシュメモリとして構成することにより、他のFEC符号アルゴリズムに容易に変更することが可能となり好適である。なお、符号化制御部605およびFEC符号化エンジン604が、請求項における符号化手段に相当する。
The
具体的には、符号化制御部605はメモリ602に一時記憶されたデータ(入力シンボル)から、1以上の入力シンボルを選択しFEC符号化エンジン604に入力することにより順次出力シンボルを生成する。そして、生成された出力シンボルをメモリ602に一時記憶する。
Specifically, the
ただし、前述のRaptor符号について説明でも述べたように、出力シンボルと入力シンボルとのデータ長は同一であるが、数は少なくともα個以上増加していることに注意する。 However, as described in the description of the above-described Raptor code, it should be noted that although the output symbol and the input symbol have the same data length, the number increases by at least α.
パケットハンドラ601は、メモリ602に一時記憶された出力シンボルにより構成されたデータをネットワーク110に適したデータ形式で送信する回路部である。具体的には、メモリ602に一時記憶されたデータに対し、フラグメント処理やスムージング処理を行った後、ネットワーク110に出力する。
The
<機能構成および動作>
図7は、第2実施形態に係る配信サーバの機能構成を示す図である。
<Functional configuration and operation>
FIG. 7 is a diagram illustrating a functional configuration of the distribution server according to the second embodiment.
配信サーバ100は、データ送信に関連する機能部として、入力部701、バス転送部702、フラグメント処理部703、スムージング処理部704に加え、符号化処理部705を備えている。以下では、第1実施形態と異なる部分である符号化処理部705に関連する部分について説明する。
The
符号化処理部705は、バス210を介してバス転送部702から転送されたデータ(データブロック)に対しFEC符号化処理を実行する機能部である。具体的には、符号化エンジン604および符号化制御部605により実現され、メモリ302に格納されたデータブロックを、前述の入力シンボルと見立てて、出力シンボルを生成する。
The
フラグメント処理部703は、符号化処理部705により符号化された出力シンボル(データブロック)をネットワーク101に送出可能なデータ長に分割する機能部である。具体的には、メモリ602に格納されたデータブロックを、ネットワーク101のMTU以下となるデータ長に分割し、分割されたデータに対応するIP、UDP、RTPの各ヘッダを再生成する。そして、ネットワーク101に直接送信可能なデータ長のIPパケットをパケットバッファ602aに格納する。
The
ただし、前述のように、符号化処理部705による符号化処理により、冗長データが追加されるため、結果として符号化処理部705の入力レートに比較し出力レートの方が大きい。具体的には、k個の入力シンボルからk+α個の出力シンボルを生成する場合、同じデータ長であることから、出力レートは入力レートの(k+α)/k倍になる。このとき、符号化率はk/(k+α)と表され、例えばRTPヘッダのタイムスタンプは符号化率に基づいて再設定される。つまり、非符号化時に比較し時間間隔を約k/(k+α)倍だけ短く設定する。ここで、入力シンボルおよび出力シンボル1個のデータ量が請求項における第1データ量に相当する。また、入力シンボルk個に相当するデータ量が請求項における第2データ量に相当する。
However, as described above, redundant data is added by the encoding processing by the
スムージング処理部704は、フラグメント処理部703によりパケットバッファ602aに格納された固定長のIPパケットを等間隔にネットワーク101に送出する機能部である。具体的には、パケットバッファ602aに格納された固定長のIPパケット内のヘッダ情報に基づいて送出間隔を算出し、格納された順番にIPパケットを送出する。前述のようにRTPヘッダのタイムスタンプが短く設定されるため、結果的に送出間隔も約k/(k+α)倍だけ短く設定されることになる。
The smoothing
以上説明をしたように、第2実施形態の配信サーバによれば、第1実施形態で説明したフラグメント処理に加えFEC符号化処理をNWボード600上で実行することによりCPU201の負荷を大幅に低減することが出来る。また、バス210にはFEC符号化による冗長データが流れることがないため、バス使用率(トラフィック)を低減することが可能となる。その結果、ストリーミングデータをより効率的に送出することが可能となる。
As described above, according to the distribution server of the second embodiment, the load on the
(変形例)
なお、上述の説明においては、ネットワークボードが直接接続するネットワーク(ここではイーサネット(登録商標))の最大転送サイズ(約1.5kバイト)より小さい固定長パケット(512バイト)を転送サイズとして設定した。しかし、もちろんMTUとほぼ等しく設定しても良い。なお、一般的には配信サーバから受信端末までは複数の種々のネットワークが混在し得、それぞれのMTUが異なる可能性がある。また、受信端末ごと経路が異なるため、受信端末ごとに”パスMTU”が異なる可能性がある。そのため、パスMTU探索(Path MTU Discovery)などを用い事前にパスMTUを検出し、それぞれの端末に対応するパスMTU以下となるようパケットサイズを、ストリーム配信開始時に動的に設定しても良い。
(Modification)
In the above description, a fixed-length packet (512 bytes) smaller than the maximum transfer size (about 1.5 kbytes) of the network directly connected to the network board (here, Ethernet (registered trademark)) is set as the transfer size. . However, of course, it may be set almost equal to the MTU. In general, a plurality of various networks can coexist from the distribution server to the receiving terminal, and there is a possibility that each MTU is different. Further, since the route is different for each receiving terminal, there is a possibility that the “path MTU” is different for each receiving terminal. For this reason, path MTU discovery may be used in advance to detect a path MTU, and the packet size may be dynamically set at the start of stream distribution so as to be equal to or less than the path MTU corresponding to each terminal.
Claims (8)
前記ネットワークコネクタを介して送信可能なデータフレームの最大サイズを第1サイズとしたとき、
前記ネットワークコネクタを介して送信することになるデータを、前記ホストコネクタを介して前記第1サイズよりも大きな第2サイズのブロックデータを単位として受信する受信手段と、
前記受信手段において受信したブロックデータを一時的に記憶するためのバッファメモリと、
前記バッファメモリから、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段と、
を備えることを特徴とするネットワークカード。 A network card comprising a host connector for connecting to a bus connector provided in a host device, and a network connector for connecting to a network,
When the maximum size of the data frame that can be transmitted via the network connector is the first size,
Receiving means for receiving data to be transmitted via the network connector in units of block data having a second size larger than the first size via the host connector;
A buffer memory for temporarily storing block data received by the receiving means;
Transmitting means for reading data to be included in a data frame to be transmitted from the buffer memory, generating a data frame having the first size or less, and transmitting the data frame on a network connected to the network connector; ,
A network card comprising:
前記送信間隔制御手段は、前記符号化手段が用いる符号化率に基づいて、前記データフレームを送出する前記間隔を決定することを特徴とする請求項3に記載のネットワークカード。 The transmitting unit generates a data frame having a size equal to or smaller than the second size based on the data encoded by the encoding unit;
4. The network card according to claim 3, wherein the transmission interval control means determines the interval for sending the data frame based on a coding rate used by the coding means.
前記送信手段は、前記第1データ量の整数倍のサイズのデータを前記データフレームに含めることを特徴とする請求項4に記載のネットワークカード。 The encoding means performs the encoding process by repeatedly executing a logical operation in units of a predetermined first data amount,
5. The network card according to claim 4, wherein the transmission unit includes data having a size that is an integral multiple of the first data amount in the data frame.
前記受信手段は、前記第2データ量の整数倍のサイズに設定された前記ブロックデータを受信することを特徴とする請求項4または請求項5に記載のネットワークカード。 The encoding means performs the encoding process in units of a predetermined second data amount,
6. The network card according to claim 4, wherein the receiving unit receives the block data set to a size that is an integral multiple of the second data amount.
前記ホスト処理部は、
ストリームデータを入力するデータ入力手段と、
少なくとも前記ストリームデータを、前記ネットワークにおいて転送可能なデータフレームの最大サイズを第1サイズとしたとき、該第1サイズよりも大きな第2サイズのブロックデータを単位として、前記バスを介して前記ネットワーク処理部に転送するバス転送手段と、
を備え、
前記ネットワーク処理部は、
前記バス転送手段から前記バスを介して送信されたブロックデータを受信する受信手段と、
前記受信手段において受信したブロックデータを一時的に記憶するための記憶手段と、
前記記憶手段から、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信手段と、
を備えることを特徴とする情報処理装置。 An information processing apparatus including a host processing unit and a network processing unit connected by a bus, and sending streaming data to a network,
The host processing unit
Data input means for inputting stream data;
When at least the stream data has a maximum size of a data frame that can be transferred in the network as the first size, the network processing is performed via the bus in units of block data having a second size larger than the first size. Bus transfer means for transferring to the
With
The network processing unit
Receiving means for receiving block data transmitted via the bus from the bus transfer means;
Storage means for temporarily storing block data received by the receiving means;
Transmitting means for reading data to be included in a data frame to be transmitted from the storage means, generating a data frame having the first size or less, and transmitting the data frame on a network connected to the network connector; ,
An information processing apparatus comprising:
前記ホスト処理部は、
ストリームデータを入力するデータ入力部と、
少なくとも前記ストリームデータを、前記ネットワークにおいて転送可能なデータフレームの最大サイズを第1サイズとしたとき、該第1サイズよりも大きな第2サイズのブロックデータを単位として、前記バスを介して前記ネットワーク処理部に転送するバス転送部と、
を備え、
前記ネットワーク処理部は、
前記バス転送部から送信されたブロックデータを受信する受信部と、
前記受信部において受信したブロックデータを一時的に記憶するためのバッファメモリと、
前記バッファメモリから、送信するデータフレームに含めるためのデータを読み込み、前記第1サイズ以下となるデータフレームを生成して、前記ネットワークコネクタに接続されたネットワーク上に該データフレームを送信する送信部と、
を備えることを特徴とする情報処理装置。 An information processing apparatus including a host processing unit and a network processing unit connected by a bus, and sending streaming data to a network,
The host processing unit
A data input unit for inputting stream data;
When at least the stream data has a maximum size of a data frame that can be transferred in the network as the first size, the network processing is performed via the bus in units of block data having a second size larger than the first size. A bus transfer unit for transferring to the unit,
With
The network processing unit
A receiving unit for receiving block data transmitted from the bus transfer unit;
A buffer memory for temporarily storing block data received by the receiving unit;
A transmission unit that reads data to be included in a data frame to be transmitted from the buffer memory, generates a data frame that is equal to or smaller than the first size, and transmits the data frame on a network connected to the network connector; ,
An information processing apparatus comprising:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006199959A JP2008028767A (en) | 2006-07-21 | 2006-07-21 | Network card and information processing apparatus |
| 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 (en) | 2006-07-21 | 2006-07-21 | Network card and information processing apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008028767A true JP2008028767A (en) | 2008-02-07 |
Family
ID=39118953
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006199959A Pending JP2008028767A (en) | 2006-07-21 | 2006-07-21 | Network card and information processing apparatus |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2008028767A (en) |
| TW (1) | TW200934180A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009087774A1 (en) * | 2008-01-10 | 2009-07-16 | Sumitomo Electric Networks, Inc. | Network card and information processor |
| JP2022546102A (en) * | 2019-09-10 | 2022-11-02 | 華為技術有限公司 | Packet processing method and apparatus, and chip |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS612439A (en) * | 1984-06-15 | 1986-01-08 | Kokusai Denshin Denwa Co Ltd <Kdd> | Digital signal transmission method |
| JPH03274937A (en) * | 1990-03-26 | 1991-12-05 | Nec Corp | Transmission error controller |
| JPH05153131A (en) * | 1991-12-02 | 1993-06-18 | Mitsubishi Electric Corp | Lan terminal equipment |
| JPH11317762A (en) * | 1998-05-07 | 1999-11-16 | Nec Corp | Interface device |
| JP2001313675A (en) * | 2000-04-28 | 2001-11-09 | Nec Corp | Fragmentation processing device and fragmentation processing apparatus using the same |
| JP2002084289A (en) * | 2000-09-07 | 2002-03-22 | Kddi Corp | TCP communication method |
| JP2002314594A (en) * | 2001-04-19 | 2002-10-25 | Nippon Telegr & Teleph Corp <Ntt> | Communication processing method and its execution system, and its processing program and recording medium |
| JP2003273920A (en) * | 2002-03-19 | 2003-09-26 | Matsushita Electric Ind Co Ltd | Transmitter and receiver for general data and priority data |
| JP2005204001A (en) * | 2004-01-15 | 2005-07-28 | Hitachi Ltd | Data distribution server, software, and system |
| JP2005252773A (en) * | 2004-03-05 | 2005-09-15 | Matsushita Electric Ind Co Ltd | Packet transmission equipment |
-
2006
- 2006-07-21 JP JP2006199959A patent/JP2008028767A/en active Pending
-
2008
- 2008-01-17 TW TW97101754A patent/TW200934180A/en unknown
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS612439A (en) * | 1984-06-15 | 1986-01-08 | Kokusai Denshin Denwa Co Ltd <Kdd> | Digital signal transmission method |
| JPH03274937A (en) * | 1990-03-26 | 1991-12-05 | Nec Corp | Transmission error controller |
| JPH05153131A (en) * | 1991-12-02 | 1993-06-18 | Mitsubishi Electric Corp | Lan terminal equipment |
| JPH11317762A (en) * | 1998-05-07 | 1999-11-16 | Nec Corp | Interface device |
| JP2001313675A (en) * | 2000-04-28 | 2001-11-09 | Nec Corp | Fragmentation processing device and fragmentation processing apparatus using the same |
| JP2002084289A (en) * | 2000-09-07 | 2002-03-22 | Kddi Corp | TCP communication method |
| JP2002314594A (en) * | 2001-04-19 | 2002-10-25 | Nippon Telegr & Teleph Corp <Ntt> | Communication processing method and its execution system, and its processing program and recording medium |
| JP2003273920A (en) * | 2002-03-19 | 2003-09-26 | Matsushita Electric Ind Co Ltd | Transmitter and receiver for general data and priority data |
| JP2005204001A (en) * | 2004-01-15 | 2005-07-28 | Hitachi Ltd | Data distribution server, software, and system |
| JP2005252773A (en) * | 2004-03-05 | 2005-09-15 | Matsushita Electric Ind Co Ltd | Packet transmission equipment |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009087774A1 (en) * | 2008-01-10 | 2009-07-16 | Sumitomo Electric Networks, Inc. | Network card and information processor |
| JP2022546102A (en) * | 2019-09-10 | 2022-11-02 | 華為技術有限公司 | Packet processing method and apparatus, and chip |
| 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 (en) | Packet transmission / reception apparatus and method in communication system | |
| CN105830377B (en) | Method and apparatus for providing dynamic encoding of network traffic | |
| JP6553119B2 (en) | Packet transmitting / receiving apparatus and method in broadcasting and communication system | |
| JP5164123B2 (en) | System and method for improving throughput | |
| US7620870B2 (en) | Data compression method and system | |
| US7975071B2 (en) | Content compression in networks | |
| CN102143078B (en) | Forwarding equipment as well as method and system for processing message | |
| CN110943800B (en) | Data packet sending method, device and system, storage medium and electronic device | |
| CN111800218B (en) | Data stream transmission method and equipment | |
| EP3688913A1 (en) | Systems and methods to optimize the load of multipath data transportation | |
| CN107222427A (en) | The method and relevant device of a kind of Message processing | |
| CN101426010A (en) | Information processing apparatus and information processing system | |
| JP5060572B2 (en) | Data communication apparatus and method | |
| CN110505123B (en) | Calculation method, server and computer-readable storage medium for packet loss rate | |
| CN114050994B (en) | A Network Telemetry Method Based on SRv6 | |
| JP2004179876A (en) | Information processing apparatus and method, and computer program | |
| WO2009087774A1 (en) | Network card and information processor | |
| WO2021047606A1 (en) | Message processing method and apparatus, and chip | |
| CN101626503A (en) | Integrated circuit device and data communication system | |
| CN112564855B (en) | Message processing method, device and chip | |
| JP2008028767A (en) | Network card and information processing apparatus | |
| CN101931492A (en) | Method and device for determining data block forward error correction algorithm | |
| CN109982083A (en) | To rearrange the picture coding device and its operation method of data packet transmission sequence | |
| WO2024099020A1 (en) | Multi-channel data sending method and receiving method, sending end, and receiving end | |
| Molnár et al. | Living with congestion: digital fountain based communication protocol |
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 |