JP3579335B2 - ストリーム配信装置 - Google Patents
ストリーム配信装置 Download PDFInfo
- Publication number
- JP3579335B2 JP3579335B2 JP2000252288A JP2000252288A JP3579335B2 JP 3579335 B2 JP3579335 B2 JP 3579335B2 JP 2000252288 A JP2000252288 A JP 2000252288A JP 2000252288 A JP2000252288 A JP 2000252288A JP 3579335 B2 JP3579335 B2 JP 3579335B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- stream
- distribution
- address
- copy
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、ストリームサーバの送信する1または複数のストリーム放送のパケットを受信し、該パケットをコピー後、1または複数のクライアントへ放送配信するストリーム配信装置に関する。
【0002】
【従来の技術】
従来、インターネット上に設置されたストリーム配信装置としては、Real Networks社などのスプリッタ製品が代表的である。これは、汎用パソコンや汎用ワークステーションなどの汎用プロセッサ上で動作し、ストリームサーバから受信した1本のストリームデータを1または複数のクライアントに対してコピー配信するものである。
【0003】
従来のストリーム放送の制御を行うストリーミングプロトコルでは、放送コンテンツ毎に、UDPポート番号に対応させてストリーム配信が行われていた。UDPポート番号は、クライアント、スプリッタ、サーバなどの配信機器の接続構成により、下流の機器が受信ポート番号を決定する方式となっているため、サーバ→スプリッタ→クライアントという構成でストリーム配信を行う場合は、スプリッタ側でUDPポート番号を変換する機能を持っていた。
【0004】
【発明が解決しようとする課題】
上述した従来のスプリッタは、汎用プロセッサの通信機能をベースとした技術であった。一般的に、ストリームデータはIPパケット上にUDPパケットのペイロードにストリーム転送プロトコル(例えばIETF RFC1889で規定されたRTPプロトコル)を載せ、その上に音声や映像データをエンコードした符号データを載せて転送していた。したがって、汎用プロセッサのOSが提供する、IPパケットプロトコル解析機能、UDPパケットプロトコル解析機能を利用して処理されていた。
各プロトコル解析機能は、レイヤ毎に処理内容が規定されている。よって、レイヤ毎にヘッダ上のプロトコル情報を読み出し、プロトコルデータ正常性チェック処理、状態変数の遷移処理、加算/減算処理など、全ての規定処理を実行後、次のレイヤに係る処理を順次進める形で行われていた。このため、レイヤ毎にプロトコル解析処理をするためのメモリオペレーションがオーバヘッドとなり高速化処理に向いていなかった。
【0005】
一方、ストリームパケットの転送に特化した処理を想定すると、主な処理はサーバからの受信UDPポート番号、受信IPアドレスをクライアント宛の送信UDPポート番号、送信IPアドレスに書き換え後、UDPパケットとIPヘッダのチェックサム再計算を行っていた。この場合、IPアドレスやUDPポート番号の読み出し、書き込み以外に他プロトコルパラメタ分析処理も併せて実行させてしまう分だけオーバヘッドが大きくなった。さらに、チェックサム計算処理は、UDPペイロードデータ全体に対して16ビットづつメモリ読出し/演算処理を繰り返すために、長いパケットほど計算時間が長くなってしまった。しかしながら、チェックサムの再計算は、受信時点でのパケットのチェックサム計算値から、IPアドレス、UDPポート番号を書き換えた部分の差分だけを計算すればよい。
【0006】
以上述べたように、従来のストリーム配信装置は、汎用プロセッサが提供する通信機能がレイヤ毎に動作するためのオーバヘッド、処理機能が汎用化されているために必要以上の処理を実行しなければならない。このため、ストリーム配信を高速・大容量化するためには、最適な機能構成とはなっていない。
【0007】
本発明の目的は、プロトコルレイヤ毎の処理オーバヘッド削減、チェックサムのフル計算の排除により処理を最小限とし、高速・大容量なストリーム配信装置を提供することである。
【0008】
【課題を解決するための手段】
本発明においては、まずストリームパケットを受信すると、1つのパケットの先頭部に位置するヘッダ情報から、ストリーム配信に必要最低限なヘッダ情報をプロトコルレイヤを区別せずに抽出する。その情報からコンテンツを識別する。また、コンテンツ毎に配付先の宛先情報(配信情報)をテーブル(コピー配布表)に登録しておき、受信したパケットのヘッダ情報から、送信すべきパケットのヘッダ情報へ変換する手段を持つ。
【0009】
すなわち、コピー配布表を参照して、送信宛先のクライアント毎に定められた配信情報を求め、該配信情報を元に受信パケットの複製とヘッダ書き換えを行い、一時退避したチェックサム値と書き換え後のヘッダ情報部分の差分を元に再計算した結果を新たなチェックサム値として送信パケットに設定し、当該クライアントへ送信する処理をコピー配布表に登録された全クライアント分の処理が終了するまで繰り返す。
【0010】
この場合、抽出するプロトコル情報は受信パケットのIPアドレスおよびUDP
ポート番号、コピー配布表のデータ内容はコンテンツに対するコピー数、送信IPアドレス、送信ポート番号、チェックサム差分値でもよい。
【0011】
本発明におけるチェックサム値の計算は、受信パケットと送信パケットのヘッダ情報が既知であるため、パケット受信の都度再計算するのではなく、受信ヘッダ情報と配布すべき送信ヘッダ情報からあらかじめ計算しておく。
【0012】
本発明によれば、まず、ストリームデータを転送するパケットのプロトコルレイヤ毎に処理を分けるのではなく、パケットの受信処理、送信処理を実行する。また、全プロトコルデータを処理するのではなく、特定のプロトコルデータに限定した処理(ヘッダ書き換え)を実行するため、1パケット当たりの処理量を削減することができる。
【0013】
さらに、送信パケットのチェックサム値の再計算は、コピー配布表により変換すべき送り先のアドレス、ポート番号が既知であるため、事前に差分情報を計算しておき、パケット受信および送信の際に、その差分情報により残りの演算のみを実行することにより、さらに1パケット当たりの処理量を削減することができる。
【0014】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0015】
図1に示すように、本発明のストリーム配信装置1はストリームサーバ2から受信回線3を介してストリームコンテンツを受信し、またコピー後のストリームコンテンツを送信回線41、42、・・・、4nを介してクライアント51、52、・・・、5nに配信する。
【0016】
この場合、受信したパケットのIPソースアドレスはストリームサーバ2、IPデスティネーションアドレスはストリーム配信装置1、送信するパケットのIPソースアドレスはストリーム配信装置1、IPデスティネーションアドレスはクライアント(51〜5nのうちの一つ)をそれぞれ指して転送する。また、ポート番号は、デスティネーションポート番号のみをストリーム配信装置1にて付け替え、ソースポート番号はそのまま転送することとする。以上により、ストリーム配信装置1がパケットを受け渡す際には、チェックサム以外にIPソースアドレス、IPデスティネーションアドレス、デスティネーションポート番号の付け替え処理が発生する。
【0017】
ストリーム配信装置1は、図2に示すように、受信回路11と書込処理部12とパケットバッファ13とコピー制御部14とコンテンツ識別子検索テーブル15と要求バッファ16とデータ設定部17とコピー配信制御テーブル18(コピー配布表)とコピー処理部19とコピー処理バッファ20と読出処理部21と送信回路22を有している。
【0018】
受信回路11は、パケットのMACレイヤ以下を終端し、パケット受信を後段の書込処理部12へ通知する。
【0019】
書込処理部12は、パケット受信通知後、受信回路11で受信したパケットをパケットバッファ13へ転送するとともに、書き込んだバッファの先頭番地とバッファ長をコピー制御部14へ通知する。
【0020】
パケットバッファ13は、受信パケットを格納しておくバッファである。
【0021】
コピー制御部14は、書込処理部12から通知されたバッファ番地、バッファ長を元にパケットバッファ13へアクセスし、当該パケットのIPアドレスとUDPポート番号を取り出すとともに、該情報をキーとしてコンテンツ識別子検索テーブル15にアクセスし、受信パケットの運ぶストリームのコンテンツ識別子を求める。このコンテンツ識別子とバッファ番地、バッファ長を要求バッファ16に入力することにより、後段のコピー処理を依頼する。
【0022】
コンテンツ識別子検索テーブル15は、表1に示すように、受信UDPデスティネーションポート番号、受信IPソースアドレス、コンテンツ識別子を構成要素に持ち、受信情報からコンテンツ識別子を割り出すために使用される。
【0023】
【表1】
【0024】
要求バッファ16は、コピー処理要求をコンテンツ識別子、バッファ番地、バッファ長としてエントリーし、コピー処理部19により読み出されるバッファである。
【0025】
データ設定部17は、配信に先立ち、表1および表2のテーブルを事前に作成、維持、管理する。コピー配信制御テーブル18(表2)には、コンテンツ識別子、コピー数、送信デスティネーションポート番号、送信IPデスティネーションアドレス、チェックサム差分計算値がそれぞれ設定される。
【0026】
【表2】
【0027】
なお、ここでコピー数とは、コンテンツ毎に配信するクライアントの数を示す。
【0028】
また、チェックサム差分計算値とは、受信パケットのIPアドレス、UDPポート番号、配信するパケットのIPアドレス、UDPポート番号から、チェックサム再計算時の一部の計算値であり、IPヘッダチェックサムとUDPチェックサムを計算するための差分計算値を持つ。
【0029】
本実施形態においては、チェックサム差分計算値は、以下のように求める。計算に用いる変数を以下のように定義する。
【0030】
受信パケットのIPソースアドレスSA1
受信パケットのIPデスティネーションアドレスをDA1
受信パケットのソースポート番号をSP1
受信パケットのデスティネーションポート番号をDP1
受信パケットのプロトコル識別子をPROT1
受信パケットのUDPデータグラム長をLEN1
送信パケットのIPソースアドレスSA2
送信パケットのIPデスティネーションアドレスをDA2
送信パケットのソースポート番号をSP2
送信パケットのデスティネーションポート番号をDP2
送信パケットのプロトコル識別子をPROT2
送信パケットのUDPデータグラム長をLEN2
よって、チェックサム差分情報は、受信パケットの変数の和を引いて、送信パケットの変数の和を加えればよい。よって、式(1)のようになる。
【0031】
SA2+DA2+SP2+DP2+PROT2+LEN2 −(SA1+DA1+SP1+DP1+PROT1+LEN1)・・・・・・(1)
ここで、IPヘッダのプロトコル識別子、UDPデータグラムのLength、UDPソースポート番号は変化がないものとすると、式(1)は式(2)のように簡略化できる。
【0032】
SA2+DA2+DP2−(SA1+DA1+DP1)・・・・・(2)
さらに、本実施形態では、DA1とSA2が同じIPアドレスを指すため、両変数は相殺される。したがって、
DA2+DP2−(SA1+ DP1)・・・・・(3)
をチェックサム差分計算値として用いる。この計算結果は、表2に示した。
【0033】
本実施形態においては、式(3)を使った例により説明したが、ストリームサーバやクライアントの条件により、UDPソースポート番号や、IPアドレスをストリーム配信装置1で書き換える場合もある。その場合には、式(1)により計算することができる。
【0034】
コピー処理部19は、要求バッファ16を検索し、要求が存在する場合に、当該要求を取り出す。まず、コンテンツ識別子をキーとしてコピー配信制御テーブル18から送信デスティネーションポート番号、送信デスティネーションIPアドレス、コピー数、チェックサム差分計算値を引く。また、バッファ番地とバッファ長により、受信済みのパケットをパケットバッファ13からコピー処理バッファ20に読み出す。
【0035】
次に、コピー処理部19は、IPヘッダチェックサム値を、IPヘッダのIPアドレス受信値、IPアドレス送信値とIPヘッダのチェックサム差分計算値から演算する。また、UDPチェックサム値は、IPアドレスの受信値、送信値、UDPポート番号の送信値、受信値とUDPチェックサム差分計算値から演算する。
【0036】
さらに、コピー処理部19は、IPアドレス、UDPポート番号に関し、送信値を設定するとともに、計算済みのIPヘッダチェックサム値、UDPパケットチェックサム値を設定する。これにより、送信すべき1パケット分のIPヘッダおよびUDPヘッダがクライアント用に設定され、当該パケットは、読出処理部21により受信回路22へ送られ、最終的にクライアントへ到着する。
【0037】
コピー処理部19は、これらの一連の処理をクライアント毎に実行し、全クライアント分の処理が完了した時点で、要求バッファ16を確認することを繰り返す。
【0038】
【発明の効果】
以上説明したように本発明によれば、受信パケットから送信パケットへの変換処理において、特定の処理(ヘッダ書き換え)に限定すること、さらには計算負荷が大きなチェックサム値の再計算においても、通信前に差分計算値を持っており、これと正味の変更点により演算するため、計算量を大幅に削減でき、したがって、汎用プロセッサベースの従来技術に比べ、高速化・大容量化が図れる。これにより、従来よりも多くのクライアントに対して同時にストリーム放送を提供し、さらには従来よりもより広帯域のストリーム放送をクライアントに対して提供することができる。両方の場合は、通信プロセッサはハード価格は同じで処理容量を増加し、映像品質を向上させることが可能なため、経済的でかつ高品質な映像ストリーム放送サービスを大規模に提供することが可能となる。
【図面の簡単な説明】
【図1】本発明のストリーム配信装置の接続図である。
【図2】ストリーム配信装置の構成図である。
【符号の説明】
1 ストリーム配信装置
2 ストリームサーバ
3 受信回線
41〜4n 送信回線
51〜5n クライアント
11 受信回路
12 書込処理部
13 パケットバッファ
14 コピー制御部
15 コンテンツ識別子検索テーブル
16 要求バッファ
17 データ設定部
18 コピー配信制御テーブル
19 コピー処理部
20 コピー処理バッファ
21 読出処理部
22 送信回路
Claims (3)
- ストリームサーバの送信する1または複数のストリーム放送のパケットを受信し、該パケットをコピー後、1または複数のクライアントへ放送配信するストリーム配信装置において、
ストリーム放送の配信に先立って作成され、ストリームサーバから受信するパケットのデスティネーションポート番号とソースIPアドレスとコンテンツ識別子から構成されるコンテンツ識別子検索テーブルと、
受信したパケットのヘッダ情報のデスティネーションポート番号とソースIPアドレスから前記コンテンツ識別子検索テーブルを参照して当該パケットが運ぶコンテンツを識別する手段と、
受信したパケットヘッダのチェックサム値およびチェックサム値の計算に必要な当該ヘッダ内のプロトコルデータを一時退避させる手段と、
コンテンツ毎に配信すべきクライアント宛の配信情報を登録したコピー配布表と、
前記コピー配布表を参照して、送信宛先のクライアント毎に定められた配信情報を求め、該配信情報を元に前記受信パケットの複製と、IPアドレスとポート番号の付け替えに特定したヘッダ書き換えを行い、一時退避した前記チェックサム値と書き換え後のヘッダ情報部分の差分を元に再計算した結果を新たなチェックサム値として送信パケットに設定し、当該クライアントへ送信する処理を前記コピー配布表に登録された全クライアント分の処理が終了するまで繰り返す制御手段を有することを特徴とするストリーム配信装置。 - 受信パケットのヘッダ情報と前記コピー配布表に記載された配信情報からチェックサム値の差分値を事前に計算しておき、前記制御手段は受信パケットのチェックサム値と前記差分値の演算により、送信パケットのチェックサム値を計算する、請求項1記載のストリーム配信装置。
- コンテンツ毎に配信すべきクライアントの配信情報が、コピー数、ポート番号、IPアドレス、チェックサム差分値により構成される、請求項1または2記載のストリーム配信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000252288A JP3579335B2 (ja) | 2000-08-23 | 2000-08-23 | ストリーム配信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000252288A JP3579335B2 (ja) | 2000-08-23 | 2000-08-23 | ストリーム配信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002064487A JP2002064487A (ja) | 2002-02-28 |
JP3579335B2 true JP3579335B2 (ja) | 2004-10-20 |
Family
ID=18741552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000252288A Expired - Lifetime JP3579335B2 (ja) | 2000-08-23 | 2000-08-23 | ストリーム配信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3579335B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2009145294A1 (ja) * | 2008-05-30 | 2011-10-13 | 日本電気株式会社 | サーバ装置と通信方法ならびにプログラム |
CN102047676A (zh) * | 2008-05-30 | 2011-05-04 | 日本电气株式会社 | 服务器装置和通信方法以及程序 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04288745A (ja) * | 1991-02-22 | 1992-10-13 | Mitsubishi Electric Corp | 通信装置 |
JPH10242962A (ja) * | 1997-02-25 | 1998-09-11 | Nippon Telegr & Teleph Corp <Ntt> | インターネット上のマルチキャストゲートウェイ通信方法及びシステム |
JPH11150566A (ja) * | 1997-11-14 | 1999-06-02 | Hitachi Ltd | インタネットワーク装置 |
JP3656418B2 (ja) * | 1998-07-15 | 2005-06-08 | 富士ゼロックス株式会社 | ゲートウェイ装置及びマルチキャストパケット中継プログラムを記録したコンピュータ読み取り可能な記録媒体 |
-
2000
- 2000-08-23 JP JP2000252288A patent/JP3579335B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002064487A (ja) | 2002-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6449656B1 (en) | Storing a frame header | |
US7447775B1 (en) | Methods and apparatus for supporting transmission of streaming data | |
USRE45070E1 (en) | Receive processing with network protocol bypass | |
US7433958B2 (en) | Packet relay processing apparatus | |
US7197035B2 (en) | Packet transfer apparatus having network address translation circuit which enables high-speed address translation during packet reception processing | |
KR100782945B1 (ko) | 네트워크에서 데이터 스트림 전송을 관리하는 방법 | |
US20030208600A1 (en) | System and method for managing persistent connections in HTTP | |
US7079501B2 (en) | Method and system for efficiently delivering content to multiple requesters | |
JP2004350188A (ja) | データ転送装置及びプログラム | |
US20220385598A1 (en) | Direct data placement | |
JP2003124977A (ja) | チェックサムの書換装置 | |
US7899924B2 (en) | Flexible streaming hardware | |
CN102857547B (zh) | 分布式缓存的方法及设备 | |
US7660906B1 (en) | Data delivery system and method | |
JP3579335B2 (ja) | ストリーム配信装置 | |
US8539111B2 (en) | Port switch | |
JP3558978B2 (ja) | ストリーム配信装置および方法および記録媒体 | |
CN101064671A (zh) | 一种基于p2p技术的网络视频信号的处理方法 | |
EP1497741A1 (en) | Optimized digital media delivery engine | |
US7532644B1 (en) | Method and system for associating multiple payload buffers with multidata message | |
JP2003348126A (ja) | 通信パケット処理装置とシステムおよび方法 | |
JP2002199015A (ja) | ネットワークデータサーバ | |
TWI313988B (en) | Routing apparatus with offloading agent | |
JP4063120B2 (ja) | パケット伝送装置 | |
JP2003298648A (ja) | パケットログ記録装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040426 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040430 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040715 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3579335 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080723 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080723 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100723 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100723 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110723 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120723 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130723 Year of fee payment: 9 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |