従来、IPパケットを送受信する伝送システムにおいて、IPパケットを送信する際にIPパケットのヘッダを圧縮し、CID及びヘッダの一部のみを含む圧縮ヘッダを付加した圧縮ヘッダパケットを送信する方式が知られている(非特許文献1を参照)。この方式は、全てのパケットが全てのヘッダを備えて送信する代わりに圧縮ヘッダパケットを送信し、伝送システムにおける伝送効率の向上を図るものである。ここで、CIDは、ヘッダ圧縮を行うパケットのIPデータフローを特定するための情報である。
図13は、フルヘッダパケット、圧縮ヘッダパケット及びCIDテーブルによるヘッダ圧縮方式を説明する図である。このヘッダ圧縮方式では、送信端末は、送信したいIPパケットを入力し、IPパケットに付加されたIPヘッダ及びUDPヘッダに基づいてCIDを特定し、CID及びヘッダ情報からなるCIDテーブルを生成する。そして、送信端末は、CID、IPヘッダ及びUDPヘッダを含むヘッダを付加したフルヘッダパケットを間欠的に送信し、それ以外のときに、CIDを含む圧縮ヘッダを付加した圧縮ヘッダパケットを送信する。
受信端末は、フルヘッダパケットを受信すると、フルヘッダパケットのヘッダに含まれるCIDとIPヘッダ及びUDPヘッダとの間の対応付けを行い、これらのデータをCIDテーブルに保存する。そして、受信端末は、圧縮ヘッダパケットを引き続き受信し、圧縮ヘッダパケットのヘッダに含まれるCIDに基づいてCIDテーブルを検索し、CIDに対応付いているヘッダ情報を取得し、CIDを元のIPヘッダ及びUDPヘッダに復元する。そして、受信端末は、IPパケットを生成し出力する。
図14は、CIDテーブルの構成を示す図である。(1)は、IPヘッダがIPv4の場合のCIDテーブルであり、(2)は、IPヘッダがIPv6の場合のCIDテーブルである。(1)において、IPv4のCIDテーブルは、CID、IPv4ヘッダ及びUDPヘッダから構成される。IPv4ヘッダは、IPヘッダのバージョンを示すVersion(バージョン)、IHL(Internet Header Length:IPヘッダ長)、TOS(Type Of Service:サービスタイプ)、IP−ID(IP−Identification:IP識別番号)、Flag(フラグ)、Fragment Offset(フラグメントオフセット)、TTL(Time To Live)、Protocol(プロトコル)、SrcAddr(送信元IPアドレス)及びDstAddr(あて先IPアドレス)から構成される。また、UDPヘッダは、SrcPort(送信元ポート番号)及びDstPort(あて先ポート番号)から構成される。IPv4ヘッダには、上記の他、Total Length(パケット長)、Header Checksum(ヘッダチェックサム)があり、UDPヘッダには、上記の他、Length(ペイロード長)、Checksum(チェックサム)があるが、これらは、パケット毎に値が異なることが想定されることから、CIDテーブルには保持しない。
また、(2)において、IPv6のCIDテーブルは、CID、IPv6ヘッダ及びUDPヘッダから構成される。IPv6ヘッダは、IPヘッダのバージョンを示すVersion(バージョン)、Traffic Class(トラフィッククラス)、Flow Label(フローラベル)、Next Header(ネクストヘッダ)、Hop Limit(ホップリミット)、SrcAddr(送信元IPアドレス)及びDstAddr(あて先IPアドレス)から構成される。また、UDPヘッダは、SrcPort(送信元ポート番号)及びDstPort(あて先ポート番号)から構成される。IPv6ヘッダには、上記の他、Payload Length(ペイロード長)があり、UDPヘッダには、上記の他、Length(ペイロード長)、Checksum(チェックサム)があるが、これらは、パケット毎に値が異なることが想定されることから、CIDテーブルには保持しない。
図15は、フルヘッダパケット及び圧縮ヘッダパケットの構成を示す図である。(1)は、IPv4のフルヘッダパケットの構成を示し、(2)は、IPv4の圧縮ヘッダパケットの構成を示し、(3)は、IPv6のフルヘッダパケットの構成を示し、(4)は、IPv6の圧縮ヘッダパケットの構成を示している。尚、数字は、それぞれのデータ項目のバイト長を示している(図16〜18においても同じ)。
(1)において、IPv4のフルヘッダパケットは、CID、同一のCIDを持つパケットの順序を示すSN(シーケンス番号)、ヘッダ情報のタイプを示すCID_header_type(CIDヘッダタイプ:0x20)、IPv4_header_wo_length、UDP_header_wo_length及びデータバイトにより構成される。
また、(2)において、IPv4の圧縮ヘッダパケットは、CID、同一のCIDを持つパケットの順序を示すSN(シーケンス番号)、CID_header_type(CIDヘッダタイプ:0x21)、IPv4ヘッダの識別番号を示すidentification(識別番号)及びデータバイトにより構成される。
また、(3)において、IPv6のフルヘッダパケットは、CID、同一のCIDを持つパケットの順序を示すSN(シーケンス番号)、CID_header_type(CIDヘッダタイプ:0x60)、IPv6_header_wo_length、UDP_header_wo_length及びデータバイトにより構成される。
また、(4)において、IPv6の圧縮ヘッダパケットは、CID、同一のCIDを持つパケットの順序を示すSN(シーケンス番号)、CID_header_type(CIDヘッダタイプ:0x61)及びデータバイトにより構成される。
これらのフルヘッダパケット及び圧縮ヘッダパケットにおけるCID_header_type(CIDヘッダタイプ)により、(1)〜(4)が区別される。また、(1)によるIPv4のフルヘッダパケットにおけるIPv4_header_wo_length及びUDP_header_wo_lengthが、図14(1)に示したIPv4のCIDテーブルにおけるIPv4ヘッダ及びUDPヘッダにそれぞれ相当する。また、(3)によるIPv6のフルヘッダパケットにおけるIPv6_header_wo_length及びUDP_header_wo_lengthが、図14(2)に示したIPv6のCIDテーブルにおけるIPv6ヘッダ及びUDPヘッダにそれぞれ相当する。
図16は、図15(1)に示したIPv4のフルヘッダパケットにおけるIPv4_header_wo_lengthの構成を示す図である。このIPv4_header_wo_lengthは、IPパケットのバージョンを示すVersion(バージョン)、IHL、TOS(Type Of Service:サービスタイプ)、IP−ID(IP−Identification:IP識別番号)、Flag(フラグ)、Fragment Offset(フラグメントオフセット)、TTL(Time To Live)、Protocol(プロトコル)、SrcAddr(送信元IPアドレス)及びDstAddr(あて先IPアドレス)により構成される。
図17は、図15(3)に示したIPv6のフルヘッダパケットにおけるIPv6_header_wo_lengthの構成を示す図である。このIPv6_header_wo_lengthは、IPパケットのバージョンを示すVersion(バージョン)、Traffic Class(トラフィッククラス)、Flow Label(フローラベル)、Next Header(ネクストヘッダ)、Hop Limit(ホップリミット)、SrcAddr(送信元IPアドレス)及びDstAddr(あて先IPアドレス)により構成される。
図18は、図15(1)(3)に示したIPv4,6のフルヘッダパケットにおけるUDP_header_wo_lengthの構成を示す図である。このUDP_header_wo_lengthは、SrcPort(送信元ポート番号)及びDstPort(あて先ポート番号)により構成される。尚、図15〜図18に示した構成の詳細については、非特許文献1を参照されたい。
このように、図13に示したヘッダ圧縮方式では、フルヘッダパケット及び圧縮ヘッダパケットを受信する受信端末は、CIDを正しいヘッダ情報に復元するために、圧縮ヘッダパケットを受信するに先立ってフルヘッダパケットを受信し、CIDとヘッダ情報との対応付けを行って新たなCIDレコードをCIDテーブルに保存しておく必要がある。このため、受信端末は、CIDとヘッダ情報との対応付けを行う前に受信した圧縮ヘッダパケットに対し、CIDテーブルを参照しても正しいCIDレコードが存在しておらずそのCIDが不明だから、受信した圧縮ヘッダパケットを廃棄する必要がある。
また、送信端末から受信端末へファイルを伝送する場合、送信端末は、ファイルの属性情報を生成し、属性情報のパケットを送信する。そして、送信端末は、その後に、ファイル本体のパケットを送信する。受信端末は、送信端末により送信された属性情報のパケット及びファイル本体のパケットを受信し、属性情報に基づいてファイル本体をファイルに復元する。
したがって、受信端末は、圧縮ヘッダパケットを受信するに先立ってCIDとヘッダ情報との対応付けを行って新たなCIDレコードをCIDテーブルに保存しておく必要がある。そして、圧縮ヘッダをヘッダ情報に復元できるようになった上で、さらに、属性情報のパケットを受信することにより、その後に受信するファイル本体のパケットをファイルに復元することができる。
ところで、一方向伝送路を用いたファイル伝送システムとして、FLUTEを用いたものが知られている(非特許文献2及び特許文献1を参照)。FLUTEは、ファイルをパケット化して伝送する際に、ファイルの属性情報及びファイル本体を、それぞれ一つのオブジェクトとして伝送するものである。ファイルの属性情報は、FDT(File Delivery Table)として記述され、ファイル本体と同様に一つのオブジェクトとして扱われる。つまり、送信端末は、ファイルの属性情報を1つのオブジェクトとしてFLUTEパケットを用いて送信し、その後に引き続いて、ファイル本体を1つのオブジェクトとしてFLUTEパケットを用いて送信する。
図19は、FLUTEパケットの構成を示す図である。このFLUTEパケットは、IPヘッダ、UDPヘッダ、FLUTEヘッダ及びFLUTEペイロードにより構成される。FLUTEヘッダは、CCIのフィールドの長さ等の各種情報、輻輳制御の方式を識別するためのCCI(Congestion Control Information)、オブジェクトが伝送されるセッションを識別するためのTSI(Transport Session Identifier)、オブジェクトを識別するためのTOI(Transport Object Identifier)、送信端末の現在時刻を示すSCT(Sender Current Time)、当該FLUTEパケットにより送信されているオブジェクトの時間において、そのオブジェクトが送信される残りの時間を示すERT(Expected Residual Time)、コンテンツの信頼性のある伝送を実現するために用いるLayered Coding Transportにおける拡張ヘッダであるLCT header extention(パケットのペイロードに含まれるFDTインスタンスの識別情報を伝送するEXT_FDT,FECを用いたオブジェクトを復元するために必要な情報を伝送するEXT_FTI,パケットのペイロードの符号化方式を示すEXT_CENC)、及び、コンテンツファイルやFDTオブジェクトをFLUTEパケット単位に分割した場合の当該パケットの識別情報、具体的には、そのブロックを識別する番号及びブロック内におけるパケットの順番を示す情報を含むFEC Payload IDから構成される。ここで、ファイルの属性情報が送信される場合、FLUTEヘッダのTOIが0であり、FLUTEペイロードにはFDT(File Delivery Table)が格納される。
このような一方向伝送路を用いたファイル伝送システムにおいて、送信端末から受信端末へファイルを伝送するためには、送信端末は、ファイルの属性情報であるFDTを生成し、図19に示したFLUTEヘッダに各種データを設定し、FLUTEペイロードにFDTを設定し、属性情報のパケットを送信する。また、送信端末は、その後に、FLUTEヘッダに各種データを設定し、FLUTEペイロードにファイル本体を設定し、ファイル本体のパケットを送信する。受信端末は、送信端末により送信された属性情報のパケット及びファイル本体のパケットを受信し、属性情報に基づいてファイル本体をファイルに復元する。
"情報通信審議会情報通信技術分科会(第60回) 資料60−1−2放送システム委員会報告"、[online]、平成20年7月29日、情報通信審議会、[平成20年11月12日検索]、インターネット<URL:http://www.soumu.go.jp/joho_tsusin/policyreports/joho_tsusin/bunkakai/080729_1.html>
「FLUTE-File Delivery over Unidirectional Transport」、RFC3926
米国特許出願公開第2004/0153468号明細書
以下、本発明を実施するための最良の形態について図面を用いて詳細に説明する。
〔伝送システム〕
図1は、本発明の実施形態による送信端末及び受信端末が用いられる伝送システムの概略構成を示す図である。この伝送システムは、例えば、高度BSデジタル放送によりコンテンツファイルのダウンロードサービスを実現するシステムであり、送信端末1及び受信端末2により構成される。送信端末1及び受信端末2は、送信端末1から受信端末2へパケットが伝送される一方向伝送路3により接続される。
送信端末1は、ファイルの属性情報及びファイル本体をIPパケットに格納し、IPパケットのヘッダ情報を圧縮して圧縮ヘッダを生成し、一方向伝送路3を介して受信端末2へ送信する装置である。受信端末2は、送信端末1により送信されたパケットを、一方向伝送路3を介して受信し、ヘッダ情報が圧縮されたパケットの圧縮ヘッダを元のヘッダ情報に戻し、ファイルの属性情報及びファイル本体を取得して元のファイルに復元する装置である。一方向伝送路3は、例えば放送伝送路である。
〔送信端末〕
次に、図1に示した送信端末1について説明する。図2は、送信端末1の構成を示すブロック図である。この送信端末1は、記憶部11、属性情報生成部12、ユニット生成部13、ダウンロードヘッダ付加部14、IPパケット生成部15、フルヘッダパケット・圧縮ヘッダパケット生成部16、制御パケット生成部17、送信制御部18及びCIDテーブル10を備えている。CIDテーブル10は、RAM等のメモリに記憶されており、図14に示したCIDテーブルと同一の構成をしている。
記憶部11には、一方向伝送路3を用いて受信端末2へ送信されるコンテンツ及びメタデータを構成するファイルが記憶されている。
(属性情報の生成)
属性情報生成部12は、記憶部11からファイルを読み出し、ファイル本体の名前及びファイルの長さ等からなる属性情報を生成する。生成した属性情報のサイズが後述するデータユニットのサイズ(予め設定されている)よりも大きい場合は、その生成した属性情報を、データユニットのサイズに分割する。
図3は、属性情報の構成を示す図である。図3に示すように、属性情報は、「ダウンロードヘッダにおけるBlock Number(ブロック番号BN)フィールドのビット数」「ブロック内のパケット数」「属性情報パケットの最終シーケンス番号」「FEC方式を特定するための識別子」「URI(ファイル本体の名前)」「File Length(ファイルの長さ)」「Content Type(コンテンツタイプ)」「ファイルを伝送する最終ブロック番号及び最終ブロックの最終シーケンス番号」「格納先のディレクトリ構成」「Content Encoding(コンテンツエンコーディング)」「Transfer Length(伝送長)」「Content MD5(コンテンツMD5)」から構成される。
属性情報生成部12は、読み出したファイルに基づいて、図5に示す各構成要素を設定し、属性情報を生成する。具体的には、属性情報生成部12は、一方向伝送路3の種類及び特性に応じて予め設定されたビット長を、「ダウンロードヘッダにおけるブロック番号BNフィールドのビット数」に設定する。ダウンロードヘッダ及びブロック番号BNの詳細については後述する。
属性情報生成部12は、予め設定されたブロック内のパケット数を、「ブロック内のパケット数」に設定する。「ブロック内のパケット数」とは、ファイル本体から分割されたデータユニットとデータユニットから生成されたパリティユニットとの集合体であるブロックにおいて、そのブロック内で送信されるパケットの数である。
属性情報生成部12は、生成した属性情報を分割した場合、分割した属性情報の数を「属性情報パケットの最終シーケンス番号」に設定する。尚、属性情報のサイズがデータユニットのサイズ以下の場合は、「属性情報パケットの最終シーケンス番号」は0となる。
属性情報生成部12は、ファイルのサイズを「File Length(ファイルの長さ)」に設定し、コンテンツのタイプを「Content Type(コンテンツタイプ)」に設定する。そして、属性情報生成部12は、後述するユニット生成部13により生成されるデータユニット及びパリティユニットの数、予め設定されたデータユニットのサイズ等に基づいて、ブロックの数及びシーケンスの数を算出し、これらを「ファイルを伝送する最終ブロック番号及び最終ブロックの最終シーケンス番号」に設定する。
属性情報生成部12は、ファイルを符号化して伝送する場合、その方式を「Content Encoding(コンテンツエンコーディング)」に設定し、伝送時のファイルの長さを「Transfer Length(伝送長)」に設定する。「Transfer Length(伝送長)」を設定するのは、ファイルを符号化して伝送する場合に元のファイルの長さと伝送時のファイルの長さが異なるからである。また、受信側がファイルを正しく受信できたか否かをチェックするためのチェックサムを「Content MD5(コンテンツMD5)」に設定する。さらに、後述するパリティユニットを生成する場合、その生成方式の種類を「FEC方式を特定するための識別子」に設定し、「URI(ファイル本体の名前)」「格納先のディレクトリ構成」も設定する。
(ユニットの生成)
図2に戻って、ユニット生成部13は、記憶部11からファイルを読み出し(属性情報生成部12が読み出したファイルと同一のファイルを読み出し)、予め設定された一定サイズのデータユニットにファイル本体を分割する。ここで、データユニットのサイズは自由に設定することができ、例えば、1344バイト、4032バイトとする。
ユニット生成部13は、複数に分割したデータユニットを、L×D個毎に区分し、L列D行の2次元に整列させる。この2次元のデータユニットの集合体が、ブロックの元になる。そして、ユニット生成部13は、整列させた2次元のデータユニットにおいて、列方向及び行方向毎にそれぞれのデータユニットからパリティユニットを生成する。例えば、列方向毎に全てのデータユニットについてmod2の加算を行い列方向毎のパリティユニットを生成する。同様に、行方向毎の全てのデータユニットについてmod2の加算を行い行方向毎のパリティユニットを生成する。
また、ユニット生成部13は、整列させた2次元のデータユニットの集合体、及び、生成した列方向及び行方向のパリティユニットを用いて、ブロックを生成する。
(ダウンロードヘッダの付加)
ダウンロードヘッダ付加部14は、属性情報生成部12により生成された属性情報に対し、ダウンロードヘッダを付加すると共に、ユニット生成部13により生成されたデータユニット及びパリティユニットに対しても、ダウンロードヘッダを付加する。
図4は、ダウンロードヘッダの構成を示す図である。図4に示すように、ダウンロードヘッダは、3つのフィールドからなる64ビットのヘッダであり、「Transport File ID(トランスポートファイルID:TFID)」「Block Number(ブロック番号BN)」「Sequence Number(シーケンス番号SN)」から構成される。「TFID」フィールドのビット数(フィールド幅)は32である。「ブロック番号BN」及び「シーケンス番号SN」フィールドのビット数は合計32であるが、それぞれ可変長であり、一方向伝送路3の種類及び特性に応じて、または、伝送されるファイルに応じて予め設定される。また、一つのファイルを伝送中は、これらのフィールド幅は変更されず、固定値が用いられる。
「TFID」は、伝送するファイルを一意に識別するためのラベルの役割を果たし、同一のファイル伝送に対して同じ数値が付番される。したがって、ダウンロードヘッダ付加部14は、同一のファイルの属性情報、データユニット及びパリティユニットに対して、同一の「TFID」を設定する。一方、異なるファイルの属性情報等に対しては、異なる「TFID」を設定する。受信端末2は、「TFID」によりファイルを識別することができる。尚、図19に示したFLUTEパケットのFLUTEヘッダでは、この「TFID」が「TOI(Transport Object Identifier)」に相当する。
「ブロック番号BN」は、伝送するファイルにおけるブロックの番号を示す。また、「シーケンス番号SN」は、属性情報(分割した場合はそれぞれの属性情報)の番号、及びブロック内のユニット(以下、データユニット及びパリティユニットを総称してユニットという。)の番号を示す。例えば、最初の属性情報に対してはBN=0,SN=0が設定され、属性情報に続くユニットには、最終の属性情報に対して設定されたSNに引き続くSNが設定される。
具体的に説明すると、属性情報生成部12により1つの属性情報が生成された場合、ダウンロードヘッダ付加部14は、最初のブロック(BN=0)において、属性情報に対しBN=0,SN=0を設定する。そして、ダウンロードヘッダ付加部14は、最初のブロックの先頭のユニットに対しBN=0,SN=1を設定し、その次のユニットに対しBN=0,SN=2を設定する。シーケンス番号SNは、ユニットの数に応じて1ずつ増加する。そして、ダウンロードヘッダ付加部14は、次のブロック(BN=1)においても、最初のブロックにおける属性情報と同一の属性情報に対しBN=0,SN=0を設定する。そして、ダウンロードヘッダ付加部14は、そのブロック(BN=1)の先頭のユニットに対しBN=1,SN=1を設定し、その次のユニットに対しBN=1,SN=2を設定する。
一方、属性情報生成部12により生成された属性情報が複数に分割された場合、ダウンロードヘッダ付加部14は、最初のブロック(BN=0)において、分割された最初の属性情報に対しBN=0,SN=0を設定し、次の属性情報に対しBN=0,SN=1を設定する。シーケンス番号SNは、属性情報の分割に応じて1ずつ増加する。そして、ダウンロードヘッダ付加部14は、最初のブロック(BN=0)の先頭のユニットに対しBN=0,SN=2を設定し、その次のユニットに対しBN=0,SN=3を設定する。シーケンス番号SNは、ユニットの数に応じて1ずつ増加する。ここで、属性情報生成部12により生成され分割された属性情報の数がn個の場合、それぞれの属性情報のシーケンス番号SNはSN=0,1,・・・,n−1になるから、最初のユニットのシーケンス番号SNはSN=nとなる。そして、ダウンロードヘッダ付加部14は、次のブロック(BN=1)においても、最初のブロックにおける属性情報と同一の属性情報のBN=0,SN=0,1,・・・を設定する。そして、ダウンロードヘッダ付加部14は、そのブロック(BN=1)の先頭のユニットに対しBN=1,SN=2(分割された属性情報の数が2個の場合)を設定し、その次のユニットに対しBN=1,SN=3を設定する。前述のとおり、シーケンス番号SNは、ユニットの数に応じて1ずつ増加し、最終の属性情報がSN=n−1の場合、最初のユニットはSN=nとなる。
このように、ダウンロードヘッダ付加部14は、属性情報及びユニットに対し、TFID、ブロック番号BN及びシーケンス番号SNからなるダウンロードヘッダを付加する。この場合、ダウンロードヘッダ付加部14は、ユニット生成部13により生成された複数のブロックに対して同一の属性情報を割り付け、一つのブロックに対応する属性情報のうちの最初の属性情報に対し、BN=0,SN=0を統一して設定するようにした。これにより、受信端末2は、受信したパケットについて、ダウンロードヘッダにおけるブロック番号BN及びシーケンス番号SNの両フィールドを連結した32ビットのデータが0x00000000であるか否かを判定する。そして、0x00000000であると判定した場合、ブロック番号BNフィールドのビット数及びシーケンス番号SNフィールドのビット数の設定に関わらず、このようなダウンロードヘッダを持つパケットが、ファイルの属性情報を含むパケット(最初の属性情報を含むパケット)であることを認識することができる。
(IPパケットの生成)
図2に戻って、IPパケット生成部15は、ダウンロードヘッダ付加部14によりダウンロードヘッダが付加された属性情報及びユニットに対しIPヘッダ及びUDPヘッダを付加し、IPパケットを生成して出力する。
図5は、IPパケット生成部15から出力されるIPパケットの構成を示す図である。図5に示すように、IPパケット生成部15から出力されるIPパケットは、IPヘッダ、UDPヘッダ、ダウンロードヘッダ、及びユニットまたは属性情報により構成される。ここで、IPヘッダにはプロトコル種別、送信元IPアドレス及びあて先IPアドレスが含まれており、UDPヘッダには送信元ポート番号及びあて先ポート番号が含まれており、これらのデータによりIPデータフローが特定される。IPデータフローとは、IPヘッダ及びUDPヘッダに含まれる、プロトコル種別、送信元IPアドレス、あて先IPアドレス、送信元ポート番号及びあて先ポート番号の5つのフィールドの値がユニークな組み合わせを持つIPパケットの集合をいう。つまり、IPヘッダ及びUDPヘッダに含まれるデータにより特定されるIPデータフローは、記憶部11により読み出されて伝送される同一ファイルにおけるIPパケットの集合である。
(フルヘッダパケット・圧縮ヘッダパケット・制御パケットの生成)
図2に戻って、フルヘッダパケット・圧縮ヘッダパケット生成部16は、IPパケット生成部15からIPパケットを入力し、入力した複数のIPパケットを、IPパケットのヘッダに記述されているIPヘッダ及びUDPヘッダに基づいて区別し、IPデータフローを特定する。
フルヘッダパケット・圧縮ヘッダパケット生成部16は、特定したIPデータフロー毎に割り当て可能なCIDを決定し、CID、IPヘッダ及びUDPヘッダの各種データからなるCIDレコードを生成し、図14に示したCIDテーブル10に保存する。そして、フルヘッダパケット・圧縮ヘッダパケット生成部16は、CIDテーブル10から各種データを読み出し、図15〜図18に示したフルヘッダパケット及び圧縮ヘッダパケットを生成し、送信制御部18に出力する。具体的には、フルヘッダパケット・圧縮ヘッダパケット生成部16は、特定したIPデータフロー毎のCIDを設定し、同じCIDを持つパケットの順番をSNに設定し、CIDテーブル10から読み出したIPv4,6のVersion(バージョン)が4のときは0x20を、6のときは0x60をそれぞれCID_header_typeに設定し、CIDテーブル10から読み出したIPv4,6ヘッダ及びUDPヘッダをIPv4,6_header_wo_length及びUDP_header_wo_lengthにそれぞれ設定し、属性情報またはユニットをデータバイトに設定することにより、フルヘッダパケットを生成する。また、同様にCID、SN及びCID_header_typeを設定し、IPv4の場合はidentification(識別番号)を設定し、属性情報またはユニットをデータバイトに設定することにより、圧縮ヘッダパケットを生成する。尚、後述する実施例3では、フルヘッダパケットを生成しないで、圧縮ヘッダパケットのみを生成する。
制御パケット生成部17は、CIDテーブル10からCIDレコードを読み出し、新たなCIDレコードが存在する場合はCIDレコード更新パケットを生成し、CIDレコードが削除された場合はCIDレコード削除パケットを生成し、これらの制御パケットを送信制御部18に出力する。尚、後述する実施例1では制御パケットを生成せず、実施例2ではCIDレコード削除パケットのみを生成し、実施例3では、CIDレコード更新パケット及びCIDレコード削除パケットを生成する。
図6は、CIDレコード更新パケットの構成を示す図である。(1)に示すように、IPv4のCIDレコード更新パケットは、CID、SN、CID_header_type(CIDヘッダタイプ:0x2F)、IPv4_header_wo_length及びUDP_header_wo_lengthにより構成される。また、(2)に示すように、IPv6のCIDレコード更新パケットは、CID、SN、CID_header_type(CIDヘッダタイプ:0x6F)、IPv6_header_wo_length及びUDP_header_wo_lengthにより構成される。受信端末2は、CIDレコード更新パケットを受信すると、CIDレコード更新パケットのうちのCID、IPv4,6_header_wo_length及びUDP_header_wo_lengthがCID、IPヘッダ及びUDPヘッダからなるCIDレコードとして、CIDテーブルに保存する。このCIDレコード更新パケットは、図15(1)に示したIPv4のフルヘッダパケットのうちのフルヘッダ、及び図15(3)に示したIPv6のフルヘッダパケットのうちのフルヘッダと同様の構成をしている。すなわち、CIDレコード更新パケットは、これらのフルヘッダパケットからデータバイト領域を取り除いた構成と同等である。
図7は、CIDレコード削除パケットの構成を示す図である。図7に示すように、CIDレコード削除パケットは、CID、SN及びCID_header_type(CIDヘッダタイプ:0x80)により構成される。受信端末2は、CIDレコード削除パケットを受信すると、CIDレコード削除パケットのCIDが示すCIDレコードをCIDテーブルから削除する。
図8は、複数のCIDレコードを削除するCIDレコード削除パケットの構成を示す図である。図8に示すように、CIDレコード削除パケットは、CID、SN、CID_header_type(CIDヘッダタイプ:0x80)及びCIDにより構成される。受信端末2は、このCIDレコード削除パケットを受信すると、CIDレコード削除パケットの複数のCIDが示すCIDレコードをCIDテーブルから削除する。
具体的には、制御パケット生成部17は、CIDレコード更新パケットの生成に際し、CIDテーブル10から読み出した新たなCIDレコードのCID、IPヘッダ及びUDPヘッダを、CIDレコード更新パケットのCID、IPv4,6_header_wo_length及びUDP_header_wo_lengthにそれぞれ設定し、同一のCIDを持つパケットの順序を示すSN(シーケンス番号)を設定し、さらに、IPデータフローのプロトコル種別に応じてCID_header_type(CIDヘッダタイプ:0x2Fまたは0x6F)を設定する。また、制御パケット生成部17は、CIDレコード削除パケットの生成に際し、CIDテーブル10からCIDレコードを読み出したときに記憶しておいたCIDレコードのうち、削除されたCIDレコードのCIDを、CIDレコード削除パケットのCIDに設定し、同一のCIDを持つパケットの順序を示すSN(シーケンス番号)を設定し、さらに、CID_header_type(CIDヘッダタイプ:0x80)を設定する。
表1は、フルヘッダパケット、圧縮ヘッダパケット、CIDレコード更新パケット及びCIDレコード削除パケットにおけるCID_header_type(CIDヘッダタイプ)の割り当てを示す。CIDヘッダタイプは、CIDレコード削除パケットを除き、IPv4、IPv6に応じて異なる値になっている。
図2に戻って、送信制御部18は、フルヘッダパケット・圧縮ヘッダパケット生成部16により生成されたフルヘッダパケット及び圧縮ヘッダパケットを入力すると共に、制御パケット生成部17により生成された制御パケット(CIDレコード更新パケット及びCIDレコード削除パケット)を入力する。そして、送信制御部18は、予め設定された送信順序に従って、それぞれのパケットを一方向伝送路3へ送信する。ここで、パケットは、TLVに格納されて送信される。TLVは、将来予約、TLVパケットタイプ、データの長さ及びデータの各フィールドから構成され、データのフィールドに、パケット、AMT等の実際の情報が格納される。TLVの詳細については、非特許文献1を参照されたい。
〔受信端末〕
次に、図1に示した受信端末2について説明する。図9は、受信端末2の構成を示すブロック図である。この受信端末2は、受信制御部21、制御パケット処理部22、フルヘッダパケット処理部23、圧縮ヘッダパケット処理部24、CIDテーブル20、ダウンロードヘッダ解析部25、ファイル復元部26及び記憶部27を備えている。CIDテーブル20は、RAM等のメモリに記憶されており、図14に示したCIDテーブルと同一の構成をしている。
受信制御部21は、一方向伝送路3からパケットを受信し、CID_header_type(CIDヘッダタイプ)に基づいて、フルヘッダパケット、圧縮ヘッダパケット及び制御パケットに区別する。そして、受信制御部21は、フルヘッダパケットをフルヘッダパケット処理部23に、圧縮ヘッダパケットを圧縮ヘッダパケット処理部24に、制御パケットを制御パケット処理部22にそれぞれ出力する。ここで、受信制御部21は、パケットを格納したTLVを受信するから、TLVからパケットを認識して取り出す処理を行う。
(フルヘッダパケット及び圧縮ヘッダパケットの処理)
フルヘッダパケット処理部23は、受信制御部21からフルヘッダパケットを入力し、フルヘッダパケットからCID、IPv4,6_header_wo_length及びUDP_header_wo_lengthを取り出し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを生成し、CIDテーブル20に保存する。そして、フルヘッダパケット処理部23は、フルヘッダパケットからCID、SN、CID_header_type(CIDヘッダタイプ)を取り除き、TLVの‘データの長さ’フィールドから算出したlengthを付加し、さらに、チェックサムを計算して付加し、IPパケットを生成して出力する。
圧縮ヘッダパケット処理部24は、受信制御部21から圧縮ヘッダパケットを入力し、圧縮ヘッダパケットから圧縮ヘッダであるCIDを取り出し、CIDをキーとしてCIDテーブル20を検索し、同じCIDを有するCIDレコードのIPヘッダ及びUDPヘッダを読み出す。そして、圧縮ヘッダパケット処理部24は、圧縮ヘッダパケットからCID、SN、CID_header_type(CIDヘッダタイプ)を取り除き、読み出したIPヘッダ及びUDPヘッダを付加し、TLVの‘データの長さ’フィールドから算出したlengthを付加し、さらに、チェックサムを計算して付加し、IPパケットを生成して出力する。尚、フルヘッダパケット処理部23及び圧縮ヘッダパケット処理部24は、フルヘッダパケット及び圧縮ヘッダパケットのSNに従って、その順番にIPパケットを出力する。ここで出力されるIPパケットの構成は、図5に示したものと同様である。
(制御パケットの処理)
制御パケット処理部22は、受信制御部21から制御パケットを入力し、表1に示したCID_header_type(CIDヘッダタイプ)に基づいて、CIDレコード更新パケット及びCIDレコード削除パケットに区別する。
制御パケット処理部22は、入力したパケットがCIDレコード更新パケットの場合、CIDレコード更新パケットからCID、IPv4,6_header_wo_length及びUDP_header_wo_lengthを取り出し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを生成し、CIDテーブル20に保存する。また、制御パケット処理部22は、入力したパケットがCIDレコード削除パケットの場合、CIDレコード削除パケットからCIDを取り出し、そのCIDが示すCIDレコードをCIDテーブル20から削除する。CIDが複数存在する場合は、複数のCIDレコードをCIDテーブル20から削除する。
(ダウンロードヘッダ解析)
ダウンロードヘッダ解析部25は、フルヘッダパケット処理部23及び圧縮ヘッダパケット処理部24からIPパケットを入力し、IPパケットに含まれるダウンロードヘッダに基づいて、ファイルの属性情報及びユニットを取得する。具体的には、ダウンロードヘッダ解析部25は、IPパケットに含まれる64ビットのダウンロードヘッダを参照し、ダウンロードヘッダを構成する32ビットの「TFID」に基づいて、ファイルを識別する。前述したとおり、「TFID」には、同一のファイル伝送に対しては同じ数値が付番されるから、ファイルを識別することができる。
ダウンロードヘッダ解析部25は、識別したファイルの属性情報を取得済みであるか否かを判定し、取得済みでないと判定した場合、フルヘッダパケット処理部23及び圧縮ヘッダパケット処理部24から入力するIPパケットについて、ダウンロードヘッダのブロック番号BN及びシーケンス番号SNがBN=0,SN=0であるか否かを判定し、BN=0,SN=0のデータを入力するまで待つ。そして、ダウンロードヘッダがBN=0,SN=0であることを判定した場合、そのIPパケットには最初の属性情報が含まれると認識し、最初の属性情報の「ダウンロードヘッダにおけるブロック番号BNフィールドのビット数」を参照し、ダウンロードヘッダの「TFID」の次の32ビットであるブロック番号BN及びシーケンス番号SNフィールドがどのような割合になっているかを認識する。そして、その後に入力するIPパケットについて、ダウンロードヘッダの「TFID」が同じ場合のブロック番号BN及びシーケンス番号SNを特定する。そして、ダウンロードヘッダ解析部25は、最初の属性情報の「属性情報パケットの最終シーケンス番号」を参照し、その後に入力するIPパケットのシーケンス番号SNが「属性情報パケットの最終シーケンス番号」と同一になるまでの間のIPパケットを、同一ファイルにおける属性情報として取得する。
ダウンロードヘッダ解析部25は、属性情報の「ブロック内のパケット数」を参照し、ブロックにおける最後のユニットを特定できるようにし、属性情報の「ファイルを伝送する最終ブロック番号及び最終ブロックの最終シーケンス番号」を参照し、最終ブロックを特定できるようにし、また、最終ブロックのユニット及び最終ブロックにおける最終シーケンスのユニットを特定できるようにする。そして、ダウンロードヘッダ解析部25は、全ての属性情報を取得した後に入力するIPパケットについて、同一ファイルにおける全てのブロックの全てのユニットを取得する。そして、取得した属性情報及び全てのユニットをファイル復元部26に出力する。
(ファイル復元)
ファイル復元部26は、ダウンロードヘッダ解析部25から同一ファイルにおける属性情報及び全てのユニットを入力し、ダウンロードヘッダのブロック番号BN及びシーケンス番号SNによって、データユニット及びパリティユニットを、ブロック番号順及びブロック内のシーケンス番号順に整列させる。そして、ファイル復元部26は、属性情報の「FEC方式を特定するための識別子」を参照し、パリティユニットを用いたFECのデコード処理を行い、欠損したデータユニットの復元を行い、データユニットを結合する。そして、ファイル復元部26は、元のファイルに復元して記憶部27に書き込む。
次に、図2に示した送信端末1及び図9に示した受信端末2による具体的な実施例について説明する。
〔実施例1〕
まず、実施例1について説明する。この実施例1は、同一ファイルの伝送に際し、受信端末2においてファイルを復元するために必要な属性情報を、送信端末1がフルヘッダパケットとして送信するものである。
図10は、実施例1による各パケットの送信順序を説明する図である。図10に示すように、同一ファイルを伝送する場合、属性情報のフルヘッダパケット及びユニットの圧縮ヘッダパケットがブロック毎に送信され、最終ブロックにおけるユニットの圧縮ヘッダパケットが送信された後に、CIDレコード削除パケットが送信される。
以下、具体的に説明する。まず、送信端末1の処理について説明する。送信端末1の属性情報生成部12及びユニット生成部13は、記憶部11からファイル1を読み出し、属性情報及びユニットをそれぞれ生成する。ダウンロードヘッダ付加部14は、属性情報生成部12及びユニット生成部13により生成された属性情報及びユニットにダウンロードヘッダを付加する。属性情報生成部12、ユニット生成部13及びダウンロードヘッダ付加部14の詳細な処理については前述したので省略する。
IPパケット生成部15は、ダウンロードヘッダが付加された属性情報及びユニットを入力し、IPヘッダ及びUDPヘッダを付加してIPパケットを生成し、図10に示した順番のとおりにIPパケットを出力する。すなわち、IPパケット生成部15は、属性情報のIPパケット(BN=0,SN=0)、ブロック0における複数のユニットのIPパケット(BN=0,SN=1,2,・・・)、属性情報のIPパケット(BN=0,SN=0)、ブロック1における複数のユニットのIPパケット(BN=1,SN=1,2,・・・)、・・・、属性情報のIPパケット(BN=0,SN=0)、最終ブロックnにおける複数のユニットのIPパケット(BN=n,SN=1,2,・・・)の順で各IPパケットを出力する。
フルヘッダパケット・圧縮ヘッダパケット生成部16は、IPパケット生成部15からファイル1のIPパケットを入力すると、IPデータフローを特定してCIDを決定し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを新たに生成してCIDテーブル10に保存する。また、フルヘッダパケット・圧縮ヘッダパケット生成部16は、属性情報のIPパケットを入力した場合、図15(1)(3)に示したフルヘッダパケットを生成する。一方、ユニットのIPパケットを入力した場合、図15(2)(4)に示した圧縮ヘッダパケットを生成する。尚、属性情報生成部12により属性情報が複数に分割された場合は、先頭の属性情報についてのみフルヘッダパケットを生成し、他の属性情報については圧縮ヘッダパケットを生成する。これは、ブロック毎の属性情報について同様である。また、フルヘッダパケット・圧縮ヘッダパケット生成部16は、全てのフルヘッダパケット及び圧縮ヘッダパケットの生成が完了すると、生成したCIDレコードをCIDテーブル10から削除する。尚、フルヘッダパケット・圧縮ヘッダパケット生成部16がフルヘッダパケット及び圧縮ヘッダパケットを生成する具体的な手法については既に説明したので、ここでは省略する。
制御パケット生成部17は、フルヘッダパケット・圧縮ヘッダパケット生成部16により新たに保存されたCIDレコードをCIDテーブル10から読み出して記憶し、CIDテーブル10からそのCIDレコードが削除されたことを認識したときに、図7及び図8に示したように、記憶していたCIDレコードのCIDを含むCIDレコード削除パケットを生成する。
送信制御部18は、フルヘッダパケット・圧縮ヘッダパケット生成部16により生成された属性情報のフルヘッダパケット及びユニットの圧縮ヘッダパケットを入力すると共に、制御パケット生成部17により生成されたCIDレコード削除パケットを入力する。そして、送信制御部18は、図10に示したように、属性情報のフルヘッダパケット及び複数のユニットの圧縮ヘッダパケットをこの順番にブロック毎に送信し、最終ブロックにおける複数のユニットの圧縮ヘッダパケットを送信した後に、CIDレコード削除パケットを送信する。尚、前述したとおり、属性情報生成部12により属性情報が複数に分割された場合、先頭の属性情報についてのみフルヘッダパケットを送信し、他の属性情報については圧縮ヘッダパケットを送信する。これは、全てのブロックについて同様である。
引き続いてファイル2を伝送する場合も、前述のファイル1を伝送する場合と同様の処理が行われる。
次に、受信端末2の処理について説明する。受信端末2の受信制御部21は、送信端末1により送信されたファイル1のパケットを受信すると、そのCID_header_type(CIDヘッダタイプ)に基づいてフルヘッダパケット(属性情報のフルヘッダパケット)、圧縮ヘッダパケット(ユニットの圧縮ヘッダパケット、属性情報が分割された場合は先頭以外の属性情報の圧縮ヘッダパケット)及びCIDレコード削除パケットに区別する。
フルヘッダパケット処理部23は、受信制御部21から属性情報のフルヘッダパケットを入力し、そのフルヘッダパケットからCID、IPv4,6_header_wo_length及びUDP_header_wo_lengthを取り出し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを生成し、CIDテーブル20に保存する。そして、フルヘッダパケット処理部23は、その属性情報のフルヘッダパケットからCID、SN、CID_header_type(CIDヘッダタイプ)を取り除き、TLVの‘データの長さ’フィールドから算出したlengthを付加し、さらに、チェックサムを計算して付加し、属性情報のIPパケットを生成して出力する。これにより、フルヘッダパケット処理部23は、属性情報のフルヘッダパケットを入力し、新たなCIDレコードを生成してCIDテーブル20に保存し、後続の圧縮ヘッダパケットに対して圧縮ヘッダを元のヘッダ情報に正しく復元させることができる。また、属性情報のフルヘッダパケットから属性情報のIPパケットを生成することができるから、入力した属性情報を廃棄する必要がない。
圧縮ヘッダパケット処理部24は、受信制御部21からユニットの圧縮ヘッダパケット及び先頭以外の属性情報の圧縮ヘッダパケットを入力し、その圧縮ヘッダパケットから圧縮ヘッダであるCIDを取り出し、CIDをキーとしてCIDテーブル20を検索し、同じCIDを有するCIDレコードのIPヘッダ及びUDPヘッダを読み出す。そして、圧縮ヘッダパケット処理部24は、圧縮ヘッダパケットからCID、SN、CID_header_type(CIDヘッダタイプ)を取り除き、読み出したIPヘッダ及びUDPヘッダを付加し、TLVの‘データの長さ’フィールドから算出したlengthを付加し、さらに、チェックサムを計算して付加し、IPパケットを生成して出力する。尚、フルヘッダパケット処理部23及び圧縮ヘッダパケット処理部24は、フルヘッダパケット及び圧縮ヘッダパケットのSNに従って、その順番にIPパケットを出力する。
制御パケット処理部22は、受信制御部21により区別されたCIDレコード削除パケットを入力し、CIDが示すCIDレコードをCIDテーブル20から削除する。
ダウンロードヘッダ解析部25は、フルヘッダパケット処理部23及び圧縮ヘッダパケット処理部24からIPパケットを入力し、ダウンロードヘッダの「TFID」に基づいてファイルを識別し、前述したとおり、ファイル1の属性情報及びファイル本体を取得する。
ファイル復元部26は、ダウンロードヘッダ解析部25からファイル1における属性情報及び全てのユニットを入力し、ダウンロードヘッダのブロック番号BN及びシーケンス番号SNに基づいて、データユニット及びパリティユニットを、ブロック番号順及びブロック内のシーケンス番号順に整列させる。そして、パリティユニットを用いたFECのデコード処理を行い、欠損したデータユニットの復元を行い、データユニットを結合する。そして、ファイル復元部26は、元のファイル1に復元して記憶部27に書き込む。
以上のように、実施例1によれば、送信端末1は、同一ファイルの伝送に際し、受信端末2においてファイルを復元するために必要な属性情報を、フルヘッダパケットとして送信するようにした。すなわち、送信端末1は、属性情報のフルヘッダパケット及び複数のユニットの圧縮ヘッダパケットをこの順番にブロック毎に送信し、最終ブロックにおける複数のユニットの圧縮ヘッダパケットを送信した後に、CIDレコード削除パケットを送信する。受信端末2は、属性情報のフルヘッダパケットを受信し、新たなCIDレコードを生成してCIDテーブル20に保存すると共に、この属性情報のフルヘッダパケットからIPパケットを生成して属性情報を取得する。そして、これ以降に受信するユニットの圧縮ヘッダパケットからファイル本体を取得する。これにより、受信端末2において、ファイルを復元するために必要な属性情報のパケットを受信した場合、その属性情報のパケットを廃棄する必要がなく、ファイルの属性情報を確実に取得することが可能となる。
〔実施例2〕
次に、実施例2について説明する。この実施例2は、同一ファイルの伝送に際し、受信端末2においてファイルを復元するために必要な属性情報を、送信端末1がフルヘッダパケットとして送信し、その後は、同一の属性情報を圧縮ヘッダパケットとして送信するものである。例えば、送信端末1は、ファイル伝送における先頭のパケットとして、属性情報のフルヘッダパケットを送信し、その後に、属性情報の圧縮ヘッダパケットと属性情報のフルヘッダパケットとをブロック毎に交互に送信する。
図11は、実施例2による各パケットの送信順序を説明する図である。図11に示すように、同一ファイルを伝送する場合、属性情報のフルヘッダパケット及びユニットの圧縮ヘッダパケットと、属性情報の圧縮ヘッダパケット及びユニットの圧縮ヘッダパケットとが交互にブロック毎に送信され、最終ブロックにおけるユニットの圧縮ヘッダパケットが送信された後に、CIDレコード削除パケットが送信される。
以下、具体的に説明する。まず、送信端末1の処理について説明する。送信端末1の属性情報生成部12、ユニット生成部13、ダウンロードヘッダ付加部14及びIPパケット生成部15の処理は実施例1と同様であるから、ここでは説明を省略する。
フルヘッダパケット・圧縮ヘッダパケット生成部16は、IPパケット生成部15からファイル1のIPパケットを入力すると、IPデータフローを特定してCIDを決定し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを新たに生成してCIDテーブル10に保存する。また、フルヘッダパケット・圧縮ヘッダパケット生成部16は、ファイル1のIPパケットのうち、ブロック番号BN=0,2,4,・・・(0を含む偶数のブロック番号BN)のユニットを入力する手前の属性情報のIPパケットを入力した場合、図15(1)(3)に示したフルヘッダパケットを生成する。また、ブロック番号BN=1,3,5・・・(奇数のブロック番号BN)のユニットを入力する手前の属性情報のIPパケットを入力した場合、図15(2)(4)に示した圧縮ヘッダパケットを生成する。一方、ユニットのIPパケットを入力した場合、図15(2)(4)に示した圧縮ヘッダパケットを生成する。尚、属性情報生成部12により属性情報が複数に分割された場合であって、ブロック番号BN=0,2,4のユニットを入力する手前の属性情報のIPパケットを入力した場合は、複数に分割された属性情報のうちの先頭の属性情報についてのみフルヘッダパケットを生成し、他の属性情報については圧縮ヘッダパケットを生成する。また、フルヘッダパケット・圧縮ヘッダパケット生成部16は、全てのフルヘッダパケット及び圧縮ヘッダパケットの生成が完了すると、生成したCIDレコードをCIDテーブル10から削除する。尚、フルヘッダパケット・圧縮ヘッダパケット生成部16がフルヘッダパケット及び圧縮ヘッダパケットを生成する具体的な手法については既に説明したので、ここでは省略する。
制御パケット生成部17は、フルヘッダパケット・圧縮ヘッダパケット生成部16により新たに保存されたCIDレコードをCIDテーブル10から読み出して記憶し、CIDテーブル10からそのCIDレコードが削除されたことを認識したときに、図7及び図8に示したように、記憶していたCIDレコードのCIDを含むCIDレコード削除パケットを生成する。
送信制御部18は、フルヘッダパケット・圧縮ヘッダパケット生成部16により生成された属性情報のフルヘッダパケット及びユニットの圧縮ヘッダパケットを入力すると共に、制御パケット生成部17により生成されたCIDレコード削除パケットを入力する。そして、送信制御部18は、図11に示したように、属性情報のフルヘッダパケット及びユニットの圧縮ヘッダパケットと、属性情報の圧縮ヘッダパケット及びユニットの圧縮ヘッダパケットとを交互にブロック毎に送信し、最終ブロックにおけるユニットの圧縮ヘッダパケットを送信した後に、CIDレコード削除パケットを送信する。尚、前述したとおり、属性情報生成部12により属性情報が複数に分割された場合であって、ブロック番号BN=0,2,4のユニットを送信する手前の属性情報を送信する場合は、複数に分割された属性情報のうちの先頭の属性情報についてのみフルヘッダパケットを送信し、他の属性情報については圧縮ヘッダパケットを送信する。
引き続いてファイル2を伝送する場合も、前述のファイル1を伝送する場合と同様の処理が行われる。
次に、受信端末2の処理について説明する。受信端末2の受信制御部21は、送信端末1により送信されたファイル1のパケットを受信すると、そのCID_header_type(CIDヘッダタイプ)に基づいてフルヘッダパケット(ブロック番号BN=0,2,4・・・手前の属性情報のフルヘッダパケット)、圧縮ヘッダパケット(ブロック番号BN=1,3,5,・・・手前の属性情報の圧縮ヘッダパケット、ユニットの圧縮ヘッダパケット、属性情報が分割された場合は先頭以外の属性情報)及びCIDレコード削除パケットに区別する。
制御パケット処理部22、フルヘッダパケット処理部23、圧縮ヘッダパケット処理部24、ダウンロードヘッダ解析部25及びファイル復元部26の処理は実施例1と同様であるから、ここでは説明を省略する。
以上のように、実施例2によれば、送信端末1は、同一ファイルの伝送に際し、受信端末2においてファイルを復元するために必要な属性情報を、フルヘッダパケットとして送信するようにした。すなわち、送信端末1は、属性情報のフルヘッダパケット及び複数のユニットの圧縮ヘッダパケットと、属性情報の圧縮ヘッダパケット及び複数のユニットの圧縮ヘッダパケットとを交互にブロック毎に送信し、最終ブロックにおける複数のユニットの圧縮ヘッダパケットを送信した後に、CIDレコード削除パケットを送信する。受信端末2は、属性情報のフルヘッダパケットを受信し、新たなCIDレコードを生成してCIDテーブル20に保存すると共に、この属性情報のフルヘッダパケットからIPパケットを生成して属性情報を取得する。そして、これ以降に受信するユニットの圧縮ヘッダパケットからファイル本体を取得する。これにより、受信端末2において、ファイルを復元するために必要な属性情報のパケットを受信した場合、その属性情報のパケットを廃棄する必要がなく、ファイルの属性情報を確実に取得することが可能となる。
〔実施例3〕
次に、実施例3について説明する。この実施例3は、同一ファイルの伝送に際し、受信端末2においてファイルを復元するために必要な属性情報を、送信端末1がCIDレコード更新パケットを送信した後に、圧縮ヘッダパケットとして送信するものである。
図12は、実施例3による各パケットの送信順序を説明する図である。図12に示すように、同一ファイルを伝送する場合、CIDレコード更新パケット、属性情報の圧縮ヘッダパケット及びユニットの圧縮ヘッダパケットがこの順番にブロック毎に送信され、最終ブロックにおけるユニットの圧縮ヘッダパケットが送信された後に、CIDレコード削除パケットが送信される。
以下、具体的に説明する。まず、送信端末1の処理について説明する。送信端末1の属性情報生成部12、ユニット生成部13、ダウンロードヘッダ付加部14及びIPパケット生成部15の処理は実施例1と同様であるから、ここでは説明を省略する。
フルヘッダパケット・圧縮ヘッダパケット生成部16は、IPパケット生成部15からファイル1のIPパケットを入力すると、IPデータフローを特定してCIDを決定し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを新たに生成してCIDテーブル10に保存する。また、フルヘッダパケット・圧縮ヘッダパケット生成部16は、属性情報のIPパケット及びユニットのIPパケットを入力した場合、いずれの場合も図15(2)(4)に示した圧縮ヘッダパケットを生成する。ここではフルヘッダパケットを生成しない。尚、属性情報生成部12により属性情報が複数に分割された場合も、全ての属性情報について圧縮ヘッダパケットを生成する。また、フルヘッダパケット・圧縮ヘッダパケット生成部16は、全ての圧縮ヘッダパケットの生成が完了すると、生成したCIDレコードをCIDテーブル10から削除する。尚、フルヘッダパケット・圧縮ヘッダパケット生成部16が圧縮ヘッダパケットを生成する具体的な手法については既に説明したので、ここでは省略する。
制御パケット生成部17は、フルヘッダパケット・圧縮ヘッダパケット生成部16により新たに保存されたCIDレコードをCIDテーブル10から読み出して、図6に示したCIDレコード更新パケットを生成する。
また、制御パケット生成部17は、フルヘッダパケット・圧縮ヘッダパケット生成部16により新たに保存されたCIDレコードをCIDテーブル10から読み出して記憶し、CIDテーブル10からそのCIDレコードが削除されたことを認識したときに、図7及び図8に示したように、記憶していたCIDレコードのCIDを含むCIDレコード削除パケットを生成する。
送信制御部18は、フルヘッダパケット・圧縮ヘッダパケット生成部16により生成された属性情報の圧縮ヘッダパケット及びユニットの圧縮ヘッダパケットを入力すると共に、制御パケット生成部17により生成されたCIDレコード更新パケット及びCIDレコード削除パケットを入力する。そして、送信制御部18は、図12に示したように、CIDレコード更新パケット、属性情報の圧縮ヘッダパケット及び複数のユニットの圧縮ヘッダパケットをこの順番にブロック毎に送信し、最終ブロックにおける複数のユニットの圧縮ヘッダパケットを送信した後に、CIDレコード削除パケットを送信する。尚、前述したとおり、属性情報生成部12により属性情報が複数に分割された場合も、全ての属性情報について圧縮ヘッダパケットを送信する。これは、全てのブロックについて同様である。
引き続いてファイル2を伝送する場合も、前述のファイル1を伝送する場合と同様の処理が行われる。
次に、受信端末2の処理について説明する。受信端末2の受信制御部21は、送信端末1により送信されたファイル1のパケットを受信すると、そのCID_header_type(CIDヘッダタイプ)に基づいて圧縮ヘッダパケット(属性情報の圧縮ヘッダパケット、ユニットの圧縮ヘッダパケット)、CIDレコード更新パケット及びCIDレコード削除パケットに区別する。
制御パケット処理部22は、受信制御部21により区別されたCIDレコード更新パケットを入力し、そのCIDレコード更新パケットからCID、IPv4,6_header_wo_length及びUDP_header_wo_lengthを取り出し、CID、IPヘッダ及びUDPヘッダからなるCIDレコードを生成し、CIDテーブル20に保存する。
圧縮ヘッダパケット処理部24は、受信制御部21から属性情報の圧縮ヘッダパケット及びユニットの圧縮ヘッダパケットを入力し、その圧縮ヘッダパケットから圧縮ヘッダであるCIDを取り出し、CIDをキーとしてCIDテーブル20を検索し、同じCIDを有するCIDレコードのIPヘッダ及びUDPヘッダを読み出す。そして、圧縮ヘッダパケット処理部24は、圧縮ヘッダパケットからCID、SN、CID_header_type(CIDヘッダタイプ)を取り除き、TLVの‘データの長さ’フィールドから算出したlengthを付加し、さらに、チェックサムを計算して付加し、IPパケットを生成して出力する。CIDテーブル20には、制御パケット処理部22によって既にCIDレコードが保存されているので、圧縮ヘッダパケットのCIDを正しいヘッダ情報に復元し、IPパケットを生成することができる。尚、圧縮ヘッダパケット処理部24は、圧縮ヘッダパケットのSNに従って、その順番にIPパケットを出力する。これにより、圧縮ヘッダパケット処理部24は、属性情報の圧縮ヘッダパケットを入力し、CIDレコード更新パケットによって既に新たなCIDレコードが保存されているCIDテーブル20を用いて、属性情報のIPパケットを生成することができるから、入力した属性情報を廃棄する必要がない。
制御パケット処理部22は、受信制御部21により区別されたCIDレコード削除パケットを入力し、CIDが示すCIDレコードをCIDテーブル20から削除する。
ダウンロードヘッダ解析部25及びファイル復元部26の処理は実施例1と同様であるから、ここでは説明を省略する。
以上のように、実施例3によれば、送信端末1は、同一のファイル伝送に際し、受信端末2においてファイルを復元するために必要な属性情報を、CIDレコード更新パケットを送信した後に、圧縮ヘッダパケットとして送信するようにした。すなわち、送信端末1は、CIDレコード更新パケット、属性情報の圧縮ヘッダパケット及び複数のユニットの圧縮ヘッダパケットをこの順番にブロック毎に送信し、最終ブロックにおける複数のユニットの圧縮ヘッダパケットを送信した後に、CIDレコード削除パケットを送信する。受信端末2は、CIDレコード更新パケットを受信し、新たなCIDレコードを生成してCIDテーブル20に保存し、その後に属性情報の圧縮ヘッダパケットを受信する。そして、受信端末2は、この属性情報の圧縮ヘッダパケットからCIDテーブル20に保存された新たなCIDレコードを用いてIPパケットを生成し、属性情報を取得する。これにより、受信端末2において、ファイルを復元するために必要な属性情報のパケットを受信した場合、その属性情報のパケットを廃棄する必要がなく、ファイルの属性情報を確実に取得することが可能となる。
以上、実施例を挙げて本発明を説明したが、本発明は前記実施例に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施例では、送信端末1は属性情報をブロック毎に送信するようにしたが、ファイルを構成するブロックの数によっては、ブロック番号BN=0以外のブロックにおいて必ずしも属性情報を送信する必要はない。具体的には、ブロックの数が少ない場合(ブロックのサイズが大きい場合)は、属性情報を送信する頻度を高くする。一方、ブロックの数が多い場合(ブロックのサイズが大きい場合)は、属性情報を送信する頻度を低くし複数ブロック毎に属性情報を送信するようにする。また、属性情報を、最初のブロックにおいて1回のみ送信するようにし、2番目のブロック以降では送信しないようにしてもよい。同様に、CIDレコード更新パケットについても、属性情報を送信する場合と同様の頻度で送信するようにしてもよい。
また、前記実施例では、送信端末1のユニット生成部13が、列方向及び行方向毎にそれぞれのデータユニットからパリティユニットを生成するようにしたが、一方向伝送路3の伝送品質によっては必ずしもパリティユニットを生成する必要はない。また、FECの方式は、データユニットを二次元に整列させてパリティユニットを生成するものである必要はなく、リードソロモン符号やRaptor符号により冗長データすなわちパリティユニットを生成する方式を用いてもよい。本発明は、FECの方式に限定されるものではない。
また、前記実施例は、前述したFLUTEを用いた伝送システムについても適用がある。この場合、送信端末1は、図2に示したダウンロードヘッダ付加部14を備えておらず、IPパケット生成部15が、図4に示したダウンロードヘッダを構成する「TFID」「ブロック番号BN」「シーケンス番号SN」に相当するデータを、図19に示したFLUTEパケットのFLUTEヘッダに設定する。具体的には、IPパケット生成部15は、伝送するファイルを一意に識別するためのラベルの役割を果たす「TFID」に相当するデータを、FLUTEヘッダのTOIに設定する。また、パケットの順番を示す「ブロック番号BN」「シーケンス番号SN」に相当するデータを、FEC Payload IDとしてFLUTEヘッダに設定する。また、IPパケット生成部15は、属性情報のFLUTEパケットを生成する場合、TOI=0をFLUTEヘッダに設定し、属性情報であるFDTをFLUTEペイロードに設定する。そして、前記実施例と同様に、フルヘッダパケット・圧縮ヘッダパケット生成部16がフルヘッダパケット及び圧縮ヘッダパケットを生成し、送信制御部18は、図10〜図12に示した順番で各パケットを送信する。受信端末2は、図9に示したダウンロードヘッダ解析部25を備えておらず、ファイル復元部26は、FLUTEヘッダのTOI及びFEC Payload IDによって属性情報及びユニットを特定し取得することができ、結果として元のファイルに復元することができる。
また、前記実施例では、図2に示したように、送信端末1は、記憶部11、属性情報生成部12、ユニット生成部13、ダウンロードヘッダ付加部14、IPパケット生成部15、フルヘッダパケット・圧縮ヘッダパケット生成部16、制御パケット生成部17、送信制御部18及びCIDテーブル10を備えるようにしたが、送信端末1が、フルヘッダパケット・圧縮ヘッダパケット生成部16、制御パケット生成部17、送信制御部18及びCIDテーブル10のみを備え、別途の装置が、記憶部11、属性情報生成部12、ユニット生成部13、ダウンロードヘッダ付加部14及びIPパケット生成部15を備えるようにしてもよい。この場合、別途の装置は、生成したIPパケットを送信端末1へ送信する。そして、送信端末1は、別途の装置により送信されたIPパケットを受信し、フルヘッダパケット等を生成して一方向伝送路3へ送信する。
また、前記実施例では、図9に示したように、受信端末2は、受信制御部21、制御パケット処理部22、フルヘッダパケット処理部23、圧縮ヘッダパケット処理部24、ダウンロードヘッダ解析部25、ファイル復元部26、記憶部27及びCIDテーブル20を備えるようにしたが、受信端末2が、受信制御部21、制御パケット処理部22、フルヘッダパケット処理部23、圧縮ヘッダパケット処理部24及びCIDテーブル20のみを備え、別途の装置が、ダウンロードヘッダ解析部25、ファイル復元部26及び記憶部27を備えるようにしてもよい。この場合、受信端末2は、一方向伝送路3からフルヘッダパケット等を受信してIPパケットを生成し、IPパケットを別途の装置へ送信する。そして、別途の装置は、受信端末2により送信されたIPパケットを受信し、属性情報を用いて元のファイルに復元する。
また、前記実施例では、図2に示したように、送信端末1は、IPパケット生成部15において図5に示したIPパケットを生成し、フルヘッダパケット・圧縮ヘッダパケット生成部16において、IPパケット生成部15により生成されたIPパケットからIPヘッダ及びUDPヘッダを取り除き、フルヘッダパケットまたは圧縮ヘッダパケットを生成する例を示した。しかしながら、送信端末1は、IPパケット生成部15を備えない構成とすることもできる。この場合、CIDレコード生成部(図示せず)は、IPデータフロー毎に、IPパケットを生成する際に必要となるIPヘッダ及びUDPヘッダの各種データからなるCIDレコードを予め生成し、図14に示した構成でCIDテーブル10に保存する。すなわち、IPヘッダ及びUDPヘッダを付加したIPパケットを生成する代わりに、これらのヘッダ情報を予めCIDテーブル10に保存しておく。そして、フルヘッダパケット・圧縮ヘッダパケット生成部16は、CIDテーブル10からこれらのヘッダ情報を読み出し、図15〜図18に示したフルヘッダパケットまたは圧縮ヘッダパケットを生成し、送信制御部18に出力する。尚、フルヘッダパケット及び圧縮ヘッダパケットの具体的な生成手法については、前述したとおりである。また、受信端末2のフルヘッダパケット処理部23及び圧縮ヘッダパケット処理部24は、IPパケットを生成して出力するのではなく、IPヘッダ及びUDPヘッダを含まないパケット、すなわち、ダウンロードヘッダ及びユニット(または属性情報)からなるパケットを生成して出力する。