JP3571918B2 - 符号伝送方法、送信装置、受信装置および通信システム - Google Patents
符号伝送方法、送信装置、受信装置および通信システム Download PDFInfo
- Publication number
- JP3571918B2 JP3571918B2 JP15313498A JP15313498A JP3571918B2 JP 3571918 B2 JP3571918 B2 JP 3571918B2 JP 15313498 A JP15313498 A JP 15313498A JP 15313498 A JP15313498 A JP 15313498A JP 3571918 B2 JP3571918 B2 JP 3571918B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- information
- transmitting
- redundant
- error correction
- 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 - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、ネットワーク、特にコンピュータ間での通信を行う場合において、エンド・ツー・エンドでの信頼性のある通信を行うための技術に関わる。
【0002】
【従来の技術】
コンピュータ通信は、これまでサブネットと呼ばれる小さなネットワークの間をブリッジ、ルータ等を介して順番に転送していく方法がとられてきている。この転送の単位はIP(Internet Protocol)パケットと呼ばれている。
【0003】
IPパケットの転送については、歴史的にはこれまでベストエフォートであり、ネットワーク内のスイッチやルータといったネットワーク機器において、データの廃棄や消失はあり得るものであるという前提があった。そして、送信側から送ったIPパケットが受信側に届かなかった場合には、エンド・ツー・エンドでの再送を行う(例えばTCP)か、あるいはその通信は失敗であったとして何も行わない(例えばUDP)ことが一般的であった。
【0004】
また、従来、コンピュータを使った通信は、ポイント・ツー・ポイントのものがほとんどであった。しかしながら、昨今、マルチキャストを使った通信のニーズが高まってきている。従来はマルチキャストの場合は上位プロトコルにUDΡ等を使い、高い品質を要求しない方式を採ることが一般的であった。理由としては、マルチキャストを使ってもしエンド・ツー・エンドでの再送制御を行うと、受信側から受信が成功したか失敗したかのACK(Acknowledgement)/NACK(Negative Acknowledgement) の信号が受信端末の数に比例して増えていき、送信端末の処理が増大するためである。
【0005】
このような背景から、マルチキャストのようなシステムと信頼性のある通信を両立するような方法としてエンド・ツー・エンドでの誤り訂正を用いる方法が考えられている。第1の例としては、特開平8−186570号には複数のΑΤMセルに対してリード・ソロモン符号(以下、RS符号と呼ぶ。)を用いた誤り訂正セルを付加してエンド・ツー・エンドでの信頼性を確保する通信方法が開示されている。
【0006】
この方法によると、通常のリード・ソロモン符号の情報部分をデータ用ΑTMセル、冗長部分をコード用ATMセルとして分けておき、データ用をmセル、コード用をlセルとしたとき、m+lセルのうちlセルまでの廃棄に対して誤り訂正により復元できる。このような誤り訂正符号の適用によって、エンド・ツー・エンドでの高品質な通信が行える。
【0007】
しかし、この方法において次の問題点がある。一般に冗長の度合いは通信ネットワークによって個別に設定できることが望ましい。しかし、現在は通常の符号語を用いているため、冗長セルの付与数を変えると、異なる符号化計算処理を行わなくてはならない。
【0008】
これを具体的には述べると、RS符号は情報部分に対して、G(X)という多項式を用いて割り算を行った時の余りを冗長部分とする。例えば冗長が1セルの場合は
G(X)=X−α^b ……(1)
のように記述できる。ここでαはこの符号作成のベースとなる原始多項式の元であり、^はべき乗を表す。またbの値は送受信の双方間であらかじめ決められている整数である。すなわちG(X)は送受信で共有している必要がある。ところが、例えば冗長が2セル、3セルの場合はそれぞれ
G(Χ)=(X−α^b)(X−α^(b+1)) ……(2)
G(X)=(X−α^b)(Χ−α^(b+1))(Χ−α^(b+2)) ……(3)
のようになる。このような場合にそれぞれの多項式の次数は異なるので、それぞれに対して別々の割り算を行わなければならない。このことは、ハードウェア実装においては全く別々の回路を必要とすることから回路規模の増大を招く要因となる。また、ソフトウェアプログラムではそれぞれについて別々のプログラムを作成しなければならず、このこともプログラム量の増大を招いていた。
【0009】
次に、第2の例として、誤り訂正と再送を組み合わせた技術として考えられている方式について説明する。これは特にマルチキャストにおいて有効であるとされている方式である。
【0010】
まず送信者はm個の情報パケットとその情報パケットに付随したl個の冗長パケットを受信者に対して送信する。lは0または正の整数である。受信者はm+l個のうち、l個以下のパケットが届かないことを検出すると、その冗長パケットを用いて訂正を行う。しかしながら、l個を越えるl’個のパケットの廃棄が途中で発生すると、受信者は送信者に対して(l’−l)個のパケットの再送を要求する。これに応じて送信者は新たに(l’−l)個の冗長パケットを作成して送る。受信者はこれによってl’個の冗長パケットを得るので、l’個のパケット廃棄に対して誤り訂正を行って、元の情報パケットを復元することが可能になる。
【0011】
この方式において、送信者は初めは第1の例で示したような方法を用いてl個の冗長パケットを生成することは可能であるが、その後、(l’−l)個の冗長パケットをどのようにして作成するか、が問題となる。例えば、第1の例で示したように最初にl=2として
G(X)=(X−α^b)(Χ−α^(b+1)) ……(4)
によって2パケットの冗長をつけて送信を行うとする。ところが受信側で4パケットが廃棄によって届かなかったとする。すると、残りの2パケットの再送要求が受信側から送信側へ出される。これに対して、送信側では例えば
G’(Χ)=(X−α^(b+2))(X−α^(b+3)) ……(5)
という多項式を使って冗長パケットを作成することになる。このときに(4)式を使っても、同じ冗長パケットを送信するだけなので意味はなく、αの異なるべき乗を使った(5)式のような多項式を使わなければならない。このことから、受信側から要求される再送パケットの数に応じてG’(Χ)を新たに作成しなくてはならないことになり、第1の例と同様に回路規模の増大やソフトウェアプログラムの分量を増大させることになっていた。
【0012】
【発明が解決しようとする課題】
上記のように、従来は信頼性を要求するデータはTCΡのようなプロトコルを用いて再送制御を行っていたが、マルチキャストに対応するために誤り訂正を用いる方式が出てきた。しかしながら、従来のような通常の誤り訂正符号の冗長部分をそのまま送信する方法においては、フレキシブルに冗長パケット数を変えることができないという問題がある。また、再送制御と組み合わせた場合でも、やはり再送時の冗長パケットのフレキシブルな提供において問題があった。
【0013】
本発明は、この点を鑑みてなされたものであり、その目的とするところは、誤り訂正の能力を変更せずに回路規模/ソフトウェアコード量を削減することのできる符号伝送方法、送信装置、受信装置および通信システムの提供を目的としている。
【0014】
そして特に本発明の目的とするところは、第1には、通信ネットワークの状況に応じたフレキシブルな誤り訂正方式を提供すること、第2には第1の方法を拡張して再送と組み合わせた場合にも簡易に冗長パケットを生成できるようにすること、第3には第1の方法を用いたマルチキャストを含む信頼性のある通信システムを実現すること、また第4には、同じく第2の方法を用いたマルチキャストを含む信頼性のある通信システムを実現することにある。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明の符号伝送方法は、請求項1に記載されるように、送信すべき情報に対し誤り訂正符号化処理を施して伝送する方法において、送信側で、前記送信すべき情報に対して、所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成するステップと、送信側から受信側へ、前記送信すべき情報を含む少なくともーつの情報パケットと、生成された前記送信側シンドローム値を誤り訂正符号の冗長部分として含む少なくとも一つの冗長パケットとを送信するステップとを備えたことを特徴とする。
【0017】
従来は所望の誤り訂正能力に対応する「次数の多項式」を用いて「一つの」冗長部分を生成していたが、本発明は所望の誤り訂正能力に対応する「個数の一次式」を用いて「該個数分の」冗長部分を生成するようにしたため、例えば誤り訂正能力を増加させたい場合に、次数を増やした多項式で冗長部分を計算する(次数が変わると符号計算のための回路構成も異なることになり回路が大規模化・複雑化する)のではなく、それぞれ異なる一次式の数を単純に増やして、共通の計算方法/回路構成を用いてその数の分だけ符号計算を繰り返せばよくなる。
【0018】
また、本発明は、請求項2に記載されるように、請求項1記載の符号伝送方法において、前記生成するステップが、複数の送信側シンドローム値を、前記情報に対する符号語の定義の際に用いられる原始多項式の根の、それぞれ異なるべき乗に基づいて生成する、というものである。
【0019】
さらに、本発明は、請求項3に記載されるように、請求項1記載の符号伝送方法において、前記送信するステップが、前記送信すべき情報を分割して得られる複数の情報シンボルを、複数の情報パケットに分散させて含ませる、というものである。
【0020】
さらに、本発明は、請求項4に記載されるように、請求項1記載の符号伝送方法において、前記送信するステップが、前記送信すべき情報に対して生成された複数の送信側シンドローム値を、複数の冗長パケットに分散させて含ませる、というものである。
【0021】
さらに、本発明は、請求項5に記載されるように、請求項1記載の符号伝送方法において、前記生成するステップが、リード・ソロモン符号の復号に用いられる計算方法に従って、前記送信側シンドローム値を生成する、というものである。 さらに、本発明は、請求項6に記載されるように、請求項1記載の符号伝送方法において、受信側で、送信された前記情報パケット及び冗長パケットのうち少なくとも一部を受信するステップと、受信された前記情報パケットに含まれる情報に対する少なくとも一つの受信側シンドローム値を生成するステップと、生成された前記受信側シンドローム値と受信された前記冗長パケットに含まれる送信側シンドローム値とに基づいて、必要であれば誤り訂正を行うステップとを更に備えたことを特徴とするものである。
【0022】
また、本発明は、請求項7に記載されるように、請求項1記載の符号伝送方法において、受信側で、受信されたパケットから前記送信すべき情報を復元できなかった場合に、送信側で、前記送信すべき情報に対する別の送信側シンドローム値を生成し、送信側から受信側へ、生成された前記別の送信側シンドローム値を含む少なくとも一つの冗長パケットを送信するステップを更に備えたことを特徴とするものである。
【0023】
この発明では、再送時も、情報の復元のために必要な分(もしくはそれ以上)に対応する「個数の一次式(最初の送信時とは異なるもの)」を用いて「該個数分の」冗長部分を生成・送信すればよく、最初の送信時も再送時も、共通の計算方法/回路構成を用いて符号計算が行える。なお、再送時に送る冗長部分の個数は、受信側から要求された個数としてもよいし、送信側では所定の個数分送り受信側で必要なもしくは自分で処理できる個数分を選択受信するようにしてもよい。また、マルチキャストの場合、ある受信側での情報の復元に必要な分に対応する個数と、別の受信側での情報の復元に必要な個数とが異なっていても、従来のようにそれぞれに対して全く異なる(多項式の次数が異なる)計算をする必要が無く、必要な最大の個数分の冗長部分を作成・送信さえすれば、ある受信側はその全部を使用し、別の受信側はその一部を使用して情報を復元できる。なお、作成した複数の冗長部分のうち、全部をある受信側に送り、一部を別の受信側に送るようにすることも可能であろう。
【0024】
また、本発明は、請求項8に記載されるように、請求項1記載の符号伝送方法において、送信するステップが、一つの送信側から複数の受信側へ、前記情報パケット及び冗長パケットをマルチキャスト送信する、というものである。
【0025】
この発明では、マルチキャストの場合も、たとえある受信側が所望する誤り訂正能力と、別の受信側が所望する誤り訂正能力とが異なっていたとしても、従来のようにそれぞれに対して全く異なる(多項式の次数が異なる)計算をする必要が無く、誤り訂正符号の冗長部分を共通の計算方法/回路構成を利用してある個数分作成して複数の受信側へ送信すれば、各受信側でそれぞれ必要なもしくは自分で処理できる個数分を受信・使用することができる。
【0026】
さらに、本発明は、請求項9に記載されるように、請求項1記載の符号伝送方法において、前記送信すべき情報はIPパケットであり、このIPパケットをm個(mは複数)のデータに分割するステップを更に備え、前記生成するステップは、前記各データをさらにn個(nは複数)の情報シンボルに分割し、前記各データから一つずつ選択した情報シンボルm個の集合に対して少なくとも一つの送信側シンドローム値を生成する処理をn個の情報シンボルの集合それぞれに対して行うものであり、前記送信するステップは、前記各データをm個の情報パケットのぺイロード部分にそれぞれ含ませ、生成された前記n個の送信側シンドローム値を冗長パケットに含ませるものであることを特徴とする。
【0027】
また、本発明の符号伝送方法は、請求項10に記載されるように、送信すべき情報に対し送信側が誤り訂正符号化処理を施して生成したパケットを、受信側ヘ送信するステップと、受信側で受信されたパケットから前記送信すべき情報を復元できず再送が要求された場合に、送信側で、前記送信すべき情報に対して、所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成し、送信側から受信側へ、生成された前記送信側シンドロ−ム値を誤り訂正符号の冗長部分として含む少なくとも一つの冗長パケットを送信するステップとを備えたことを特徴とするものである。
【0028】
本発明によれば、最初に情報を送信する際には、任意(従来方式でも可)の誤り訂正符号化を行って送信しておき、再送が要求された際に、本発明の特徴である新たな方式の誤り訂正符号化を適用するだけでも、多大な効果を奏する。例えば、マルチキャスト通信の場合、ある受信側での情報の復元に必要な情報量と、別の受信側での情報の復元に必要な情報量とが異なっていても、従来のようにそれぞれに対して全く異なる計算をする必要が無く、ある個数分の冗長部分を共通の計算方法/回路構成にて作成して複数の受信側へ再送し、ある受信側はその全部を使い、別の受信側はその一部を使って情報を復元することが可能となるからである。
【0029】
さらに、本発明は、請求項11に記載されるように、請求項10記載の符号伝送方法において、前記送信するステップが、一つの送信側から複数の受信側へ、前記冗長パケットをマルチキャスト送信するものであることを特徴とするものである。
【0030】
さらに、本発明の送信装置は、請求項12に記載されるように、送信すべき情報に対して所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成する手段と、受信側へ、前記送信すべき情報を含む少なくとも一つの情報パケットと、生成された前記送信側シンドローム値を誤り訂正符号の冗長部分として含む少なくともーつの冗長パケットとを送信する手段とを備えたことを特徴とする。
【0031】
また、本発明の受信装置は、請求項13は記載されるように、少なくとも一つの情報パケットと、この情報パケットのぺイロード部分に対して、所望の誤り訂正能力に対応する個数のそれぞれ異なる一次式を用いて作成された前記個数分の送信側シンドローム値を含む少なくとも一つの冗長パケットとを受信する手段と、受信した前記情報パケットに含まれる情報に対する少なくとも一つの受信側シンドローム値を生成する手段と、生成された前記受信側シンドローム値と受信した前記冗長パケットに含まれる送信側シンドローム値とに基づいて、誤り訂正を行う手段とを備えたことを特徴とする。さらに、本発明の通信システムは、請求頂14に記載されるように、送信すべき情報に対して所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成する手段と、受信側へ、前記送信すべき情報を含む少なくとも一つの情報パケットと、生成された前記送信側シンドローム値を誤り訂正符号の冗長部分として含む少なくとも一つの冗長パケットとを送信する手段と、送信された前記情報パケット及び冗長パケットの少なくとも一部を受信する手段と、受信された情報パケットに含まれる情報に対する少なくとも一つの受信側シンドローム値を生成する手段と、生成された前記受信側シンドローム値と受信された冗長パケットに含まれる送信側シンドローム値とに基づいて、誤り訂正を行う手段とを備えたことを特徴とするものである。
【0032】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
【0033】
(第1の実施形態)
第1の実施形態では、本発明のベースとなる基本的な誤り訂正符号の通信方法について説明する。
【0034】
初めに、従来の一般的な符号化方式を用いた誤り訂正について説明する。
【0035】
例として、組織的である巡回符号の場合を示す。組織的であるとは誤り訂正符号化を行ったときに、元の情報がそのまま情報部分として残り、冗長部分が情報部分とは別個にできて情報部分とはっきりと分割できる状態のことをいう。
【0036】
巡回符号においては、mシンボルの情報列であるI
I=(i[m−1],i[m−2],…,i[0]) ……(6)
はI(Χ)として記述される。そして次数kの生成多項式G(Χ)に対して以下のような次数k未満の多項式R(X)を求める(Kは所定の定数)。
【0037】
I(X)・Χ^k =Q(X)G(Χ)−R(Χ) ……(7)
(Q(X)は商多項式)
符号語Cは多項式C(X)の形として、以下のように表される。
【0038】
C(X)=I(X)・Χ^k +R(X) ……(8)
これはベクトルとしては、
C=(i[m−1],i[m−2],…,i[0],r[k−1],r[k−2],…,r[0]) ……(9)
とC=(I|R)の形で記述される。
【0039】
この符号語Cを送信者が受信者に向けて送信したとする。通信はパケット単位で行われ、途中の通信路ではビット誤りはないがシンボル単位の抜けが発生するものとする。
【0040】
ここでシンボル単位の抜けが発生し得るような通信の形態について記述する。
図1にパケット通信と符号語との関係を示す。図のように符号語は1つのシンボルが1つのパケットに入るように分割されている。そして、第1のパケットから第mのパケットには情報シンボルが、第(m+1)のパケットから第(m+k)のパケットには冗長シンボルが含まれる。
【0041】
第1のパケットを見ると、そのぺイロードは複数の符号語の第1の情報シンボルが集まってできているように見える。同様に第(m+1)のパケットは複数の符号語の第(m+1)のシンボルである冗長シンボルが集まってできているように見える。このように、パケットは全てが情報シンボルからなる情報パケットと全てが冗長シンボルからなる冗長パケットに完全に分割されている。
【0042】
パケットはルータ等で廃棄されることがあり、1つのパケットが廃棄された時、図1の各符号語から見ると、1つのシンボルが廃棄されたように見える。
【0043】
ただし、図1は全てのパケットの長さが同じである場合について記述したが、図2のように長さの異なるパケットが存在する場合は、冗長パケットは、情報パケットのうち最長のもの(図では第2のパケット)に合わせて作成される。このとき、実質上情報パケット部分のシンボルにデータのない符号語もあるので、情報パケットが廃棄されてもその符号語にとっては情報損失が起こらない場合もある。
【0044】
以上のように、まず送信すべき情報をシンボルを単位として複数の情報パケットに分散させて入れる。また、送信すべき冗長部分をやはりシンボル単位に複数の冗長パケットに分散させて入れておく。このようないわゆる符号語を複数のパケットに対してインターリーブさせるような形で挿入しておくことによって、lつのパケットの廃棄は、そこに含まれる複数(例えばn個)の符号語のそれぞれにとって、1つのシンボルの抜け、を意味することとなる。
【0045】
なお、図1および図2では、符号語の各シンボルの位置がきれいに一列に並んでいるが、並び方さえ決めておけば、一列に並んでいる必要はない。
【0046】
また、通常は簡単のために1つのパケットのペイロードに複数の符号語のシンボルを1つずつ入れるが、挿入するシンボル数を2つ以上にすることも可能である。
【0047】
受信側では、このようにしていくつかのシンボルが抜けた符号語C’を受け取る。シンボル抜けは、値が0のシンボルを受信したことと考えると、以下のように記述できる。
【0048】
C’=(i[m−1],…,0,…,i[0],r[k−1],…,0,…,r[0]) ……(10)
また、C’はCに抜けという誤りEが加わったと考えることもできる。Eは
Ε=(0,…,i[* ],…,0,0,…,r[**],…,0) ……(11)のように記述することができる。
【0049】
受信者はC’(Χ)に対し、G(X)による割り算を行い、その割り算の余りを求める。この余りのことをシンドロームと言う。シンドロームの値が0であるということは誤りがないことを意味する。パケットに抜けがあるにも関わらずシンドロームが0となったとき、該当するパケットの部分に相当するシンボルの値は先に仮定した値である0を持つことになる。もちろん0以外の値を仮定してもよいが0を仮定するのが簡単な方法である。
【0050】
シンドロームの値が0以外の値になった時は、抜けのあるシンボル位置とシンドロームの値から抜けのあるシンボルの値を求める。2シンボル以上の複数の抜けを訂正できる場合には、一般にはシンドロームはべクトル形式で書かれることが多い。
【0051】
以下では、代表例として、GF(2^h )上のRS符号を用いた場合について記述することにする。RS符号は多くの符号の中でkシンボルの冗長があった場合にkシンボルまでの抜けを訂正できる非常に効率のよい符号である。ただし、RS符号以外のブロック符号においても同様の方法があてはまり、一般性は失われない。
【0052】
RS符号においてシンドロームの計算および抜けたシンボルの訂正は以下のように計算される。まず生成多項式G(Χ)はGF(2^h )上の既約多項式の根をαとして、
G(Χ)=(X+α^b)(X+α^(b+1))…(X+α^(b+k−1)) ……(12)
(bは所定の定数(整数))
のようにk次の多項式として記述される。一方受信した符号語C’は多項式の形で
と書け、これを用いてk個のシンドロームS[i](i=0〜k−1)が以下のようにして計算される。
【0053】
S[i]=C’(α^(b+i)) ……(14)
いま、パケット廃棄がl個(0<l≦k)あることによってlシンボルの抜けがあったとする。これら抜けのあるシンボル位置を値の順にa[l−1],a[l−2],…,a[0]、またそれぞれの値をe[l−1],e[l−2],…,e[0]とする。シンボル位置の値は、先頭がm+k−1、最後尾が0であるとする。もし抜けがなければS[i]は全て0となるので、抜けた部分の値が残って
となる。a[l−1]からa[0]の値はわかっているので、S[0]からS [k−1]のk個のシンドロームのうち任意のl個を用いて、e[l−1]からe[0]までのl個の値に関する連立方程式を解く、あるいは同等の機能を持つ解法を用いることによって、各シンボル値を求めることができる。
【0054】
さて、従来技術の項でもふれたように、この方式では、送信側でI(X)をG(Χ)で割るという作業があって、この作業において冗長パケット数をいくつ付加するか、によってG(X)の次数が異なり、よって、計算方法が異なることになるという問題点がある。冗長パケット数が常に固定であればそれでも問題はないのだが、通常はネットワークの特性に応じて可変にすることが求められるため、それに対応してG(X)を複数用意しなければならない。
【0055】
ハードウェアで実現する場合は特にG(Χ)の次数にほぼ比例して回路規模も大きくなるので、冗長パケット数を例えば1からkまで可変にしようとすると、冗長パケット数が1の場合の回路規模を1単位として
1+2+…+k=k(k+1)/2 ……(16)
の規模が必要となる。ソフトウェアにて実現する場合も、この分量に比例した計算プログラムが必要となってしまう。
【0056】
このことをふまえて、以下に本実施形態の誤り訂正方式について説明する。
【0057】
誤り訂正を行うには、式(15)に示したように誤りの位置とシンドローム値が分かればよい。従ってもし送信側や受信側で、次数の異なるG(X)を用いた割り算を行わない方法によってシンドローム値が計算できれば、結果的にはそれでも構わないことになる。そこで、本実施形態では、次数の異なるG(X)による除算を用いない方法を示す。
【0058】
以下ではGF(2^h )上の組織的なRS符号を例として説明するが、他のブロック符号に適用しても一般性を失わない。実際、ここではRS符号そのものを伝送せず、情報部分と冗長部分とは別物になる。
【0059】
送信側では、式(12)と同じ生成多項式を考える。そして、情報列I(Χ)に対して、G(X)の根をそれぞれ代入して、シンドロームΤ[i](i=0〜k−1)を計算する。これを「送信側のシンドローム値」と呼ぶことにする。
【0060】
言い換えると、T[i]は、Ι(X)に対してX−α^(b+i)
(i=0〜k−1)という、k個の異なる一次式によって割り算を行った余りとして定義できる。
【0061】
あるいは、T[i]はI(X)にα^(b+i)というαの異なるべき乗のものをk個、順に代入したものとしても記述することが可能である。この代入の方法は、従来のRS符号の復号手順において、シンドローム計算をするのに似ている。ただし、従来のRS符号は符号語Cを多項式表現したC(X)に対してαのべき乗を代入するが、この方式では、符号語ではなく、情報部分の多項式I(X)に対して代入を行う点が異なっている。
【0062】
そして、送信側は情報列IにこのΤを付けて、符号語Cとは形式の異なるD=(Ι|Τ)を受信側へ送る。T[i]の送出順は式(18)に示したものと逆でも全く構わない。
【0063】
Dの伝送方法は従来と同じである。すなわち図1および図2のようにして情報パケットと冗長パケットの形で伝送が行われ、廃棄はパケット単位に発生する。従って途中でDにはシンボル抜けが発生し、受信側ではシンボルが抜けた後のD’を受信することになる。
【0064】
また、D’はDに抜けという誤りE’が加わったと考えることもできる。
【0065】
Ε’は
E’=(0,…,i[* ],…,0,0,…,T[**],…,0) …… (20)
のように記述することができる。
【0066】
いまE’の最初のm個の要素が全て0、すなわち、情報シンボルに抜けがなかったとき、全ての情報が正常に受信されているので、それ以上の処理は必要ではない。よって、冗長シンボルを廃棄して情報部分を取り出す。
【0067】
また、E’の0でない要素の数がkよりも多いときには、−般にはこの符号語によって誤り訂正を行うことができないので、それ以上の処理は行わない。
【0068】
ただし、後述するように再送処理を行う場合には、これらの情報を用いるので、残しておくことになる。
【0069】
E’が上述した以外の場合、すなわち情報シンボル抜けがあって、なおかつ誤り訂正符号の訂正能力の範囲である場合は、受信者は以下のような手順で誤り訂正処理を行う。
【0070】
受信者はD’の最初のmのシンボルについてのシンドロームを計算する。すなわちD’=(I’|T’)と記述されるとすると、
T’[i]=I’(α^(b+i)) ……(21)
を計算し、T’におけるT[i]との差をとる。送信されてきたT[i]に抜けがある場合には差分はとらない。こうして各々について
ができあがり、これがこの符号における受信側のシンドロームとなる。T[i](i=0〜k−1)のうちj個(0≦j<k)に抜けがあるとk−j個のシンドローム値(S’[i])が作成でき(残りのS’[i]は値を持たない)、それを越えない範囲の情報パケットでのl個(0<l≦k−j)の廃棄があるとする。これら抜けのある情報部分のシンボル位置を値の順にa[l−1],a[l−2],…,a[0]、またそれぞれの値をe[l−1],e[l−2],…,e[0]とする。シンボル位置の値は、先頭がm−1、最後尾が0であるとする。もし抜けがなければ、S’[i]は全て0となるので、抜けた部分の値が残って
となる。a[l−1]からa[0]の値はわかっているので、k−j個のS’ [i]のうち任意のl個を用いて、e[l−1]からe[0]までのl個の値に関する連立方程式を解く、あるいは同等の機能を持つ解法を用いることによって、各シンボル値を求めることができる。
【0071】
ここで従来技術と本実施形態の技術との比較を行う。伝送情報量は、どちらもmシンボルの情報に対し、kシンボルの冗長であって同じである。また、誤り訂正能力も、情報シンボルと冗長シンボルの合計でkシンボルまでの抜けを訂正できる点で全く同じである。この状況で、回路規模は従来が式(16)で与えられた値であるのに対し、本方式は1つのシンドロームを計算する回路規模を式(16)と同じ1単位としたときにkで済む。すなわち、本実施形態の技術では、回路規模を小さくすることが可能である。またソフトウェアで作成する場合もプログラムコードを少なくすることが可能である。
【0072】
図3と図4に回路規模上の比較の概念図を示す。図3は従来技術の場合の送信側回路であり、冗長パケット数に応じて全く別の回路を経由するため、総計の回路規模は大きくなる。一方、図4に示す本実施形態の技術では冗長パケット数が可変しても同じ回路を共有できるので、回路規模がずっと少なくなる。
【0073】
このように、送信側と受信側で同じ情報シンボル部分のみに対してのシンドローム値を計算し、これを用いることによって、回路規模、あるいはプログラムコード量の少ない通信システムを構築することが可能となる。
【0074】
特に、シンドロームの計算方法として、リード・ソロモン符号の復号法において用いられる方法を利用することによって、訂正能力が最大となる。
【0075】
ここで、このような方式を有する通信システムの一例を説明する。
【0076】
本例の通信システムは、誤り訂正機能を有するIPパケット(IP−FECパケット)を使ってエンド・ツー・エンドでの誤り訂正を行うシステムである。
【0077】
図5はこのシステムのレイヤイメージを示している。IPレイヤのあたりにIP/FECというレイヤを設け、ここで、種々のトランスポートレイヤ(TCP、UDPなど)に対して独立に誤り訂正を行うことができる。
【0078】
図6は本例の通信システムにおける実際の運用形態を示している。インターネット等の世界では、この図にあるように、コンピュータ(送信端末1201、受信端末1202)間がルータ1203を介して地球規模でエンド・ツー・エンドで接続される。また特にマルチキャストを使った通信が今後増えるものと予想される。
【0079】
しかしながら、ネットワーク内で生じたパケット廃棄などの誤りに対しては、LAN内の端末間で行われているのと同様に再送による方法で誤り訂正を行っているのが現状である。
【0080】
そもそも、再送による誤り訂正は、リアルタイム性を要求されないメディアで端末間の距離が小さい場合には有効であった。しかし、ネットワークが巨大化しデータトラヒックの変化予測が困難な場合には、FECによる誤り訂正がよリ適切であると考えられる。
【0081】
FECによる方法では、実データに対して予め誤り訂正コードを付加して送信し、転送中に誤りが生じた場合には受信側が訂正コードを用いて自発的に訂正する。よって、再送によるネットワークトラヒックの増加を防止することができ、送信側も再送要求に備えてデータを一定時間保存しておく必要がなくメモリの節約にもつながる。再送方式は、遅延の増大、トラヒックの増加、コネクション管理の複雑化等から特に巨大ネットワークのマルチキャストには不向きである。
【0082】
はじめに送信側における処理を説明する。この流れは図7に示される。
【0083】
まずFECレイヤはIPパケットをIPのレイヤ(ネットワークレイヤ)から受け取る。この渡されたIPパケットをここではオリジナルIPパケット1301と呼ぶことにする。このオリジナルIPパケット1301をインタリーブマトリクス1302と呼ばれるメモリバッファ領域にパケットのヘッダも含めて書き込む。この書き込みは、インタリーブマトリクス1302の縦方向にデータを書き込んで行くことによって行われる。1つの縦の列は例えば128バイト、512バイト、1024バイトといった固定サイズからなる場合が多いが、本例では可変サイズとしている。オリジナルIPパケット1301は可変長なので、最後の列の途中でデータが終る場合がある。その場合、最終列にはパディング(PAD)をつける。
【0084】
次に、横の一行毎に誤り訂正符号化の計算を行い、その計算結果である符号化データを、図7においてインタリーブマトリクスの右側に位置しているコード領域の同じ行に相当する部分に書き込んで行く。横のサイズは、誤り訂正に用いられるシンボルの大きさによって最大長が決まり、具体的には1シンボルのビット数をBとすると、2B −1となる。このサイズはデータの縦列とコードの縦列の合計の最大数に相当する。
【0085】
誤り訂正符号の方法は前述した通りであり、シンボル単位で横方向に計算する。このとき、マトリクスの左側の何も入っていない部分は無視される。マトリクス毎に符号化の程度を変更することも可能である。例えば、オリジナルIPパケット1301の長さや、コネクションの種類によって符号化のパラメータを変更することができる。
【0086】
上記インタリーブマトリクスは、実は図1および図2と対応させることができる。ここでは図1との対応を記述する。
【0087】
図1におけるぺイロード部分がマトリクスの縦の列に対応している。従って、元のIPパケットは図1において、先頭から同じシンボル数(ここではnシンボル数であるとする)ずつm個に区切られて、第1のパケットから第mのパケットのペイロードにそれぞれ分割されて入れられることになる。そして、第1のパケットから第mのパケットまでのj番目のシンボル(j=1〜n)を使って、kシンボル分の冗長シンボルを作成する。作成方法は既に述べた通りである。
【0088】
そしてそれらk個の冗長シンボルを図1の第(m+1)のパケットから第(m+k)のパケットまでのj番目のシンボル位置にそれぞれ書き込む。n個のシンボルについて同様の操作を行うと、第(m+1)のパケットから第(m+k)のパケットのぺイロ−ドに冗長シンボルが詰まることになる。
【0089】
図1はj番目のm個のシンボルからj番目のk個のシンボルを作成しているが、対応づけが明確であれば、シンボル順序を変更して計算してもよい。すなわち、第i番目の(i=1〜m)パケットのj[i]番目(j[i]=1〜n)のシンボルを取り出してm個の情報シンボルとし、そのm個の情報シンボルから得られるk個の冗長シンボルを第(m+1)のパケットから第(m+k)のパケットまでの任意のシンボル位置に1つずつ書き込む。このとき、選択するm個の情報シンボルは重複なく選択することとし、また冗長シンボルを書き込む位置も重複のないようにすれば、同様の訂正能力を持った冗長パケットが出来上がることになる。
【0090】
次に、情報の入っている縦の列のそれぞれに対してFECヘッダを付与する。1つの縦の列はこのFECへッダおよびIP−FECへッダを付与された状態で1つのIPパケットとなる。この固定長の短いIPパケットをIP−FECパケット1303と呼ぶ。
【0091】
FECヘッダに含まれる情報の例を図8に示す。同図に示すように、FECヘッダ1401は4バイトからなり、以下のフィールドを持つ。
【0092】
・#parity
マトリクスの横の1行に対して何シンボルの訂正シンボルを付与しているかを示す。よって、各マトリクス毎に付与する訂正シンボル数が異なっていることもある。
【0093】
・data/code
そのFECヘッダが付与されているペイロードがデータを含むのか、それとも訂正コードを含むのかを示す。
【0094】
・#data pkt
そのマトリクスが含まれるデータの縦の列数をしめす。
【0095】
・Frame ID
マトリクス単位に送信側で順次インクリメントしていくID番号。IPレイヤはコネクションレス通信なので受信側でのパケットの到着順序が入れ替わることがある。このために送信側でそれを識別するための情報を入れておき、到着したパケットがどのインタリーブマトリクスに属するかの判定を行えるようにする。
・SN
マトリクス毎に初期化され付与されるシーケンスナンバ。すなわちこれは、あるインタリーブマトリクスの中でのパケットの識別のために使われる。同一のマトリクスに同じSNを持ったパケットは存在しない。
【0096】
次に、IP−FECヘッダ1402を付与する。これは、基本的には上位レイヤから渡された時に付与されていたオリジナルのIPパケット1301のヘッダのコピーである。変更点は、プロトコルフィールドをFECに設定しておくことと、パケットのトータル長をIP−FECヘッダ長(20バイト+オプション)、FECヘッダ長(図8の例では4バイト)、インタリーブマトリクスの縦の長さ(128バイト、512バイトなど)の合計に設定すること、そして、チェックサムは計算し直すことである。
【0097】
IP−FECヘッダ1402を付与したら、完成したIP−FECパケット1303をデータリンクレイヤに順次渡して行く。
【0098】
次に、受信側の動作について説明する。この様子を図9に示す。IP−FECパケット1503がデータリンクレイヤから上げられると、まずIPレイヤがこれを受信する。IPレイヤにおいて、IP−FECパケット1503は一般のIPパケットと同じようにハンドリングされ、ヘッダのプロトコルフィールドの内容(FEC)に従ってFECレイヤヘ渡される。IP−FECヘッダはIPレイヤで解釈可能である。
【0099】
FECレイヤでは、IP−FECパケット1503からIP−FECヘッダを取り出してFECヘッダのチェックを行い、図8に示したフレームIDとSNの情報から、ペイロードの部分を適切なインタリーブマトリクス1502の適切な列に縦に書き込む。IPプロトコルの転送では正しい到着順序が保証されていないため、図9で示されているように、複数のフレームを同時に保持できるようにしている。
【0100】
図9の一番左のインタリーブマトリクスのようにデータ領域に相当する部分が全て揃えば、オリジナルIPパケット1501の組み立てが完了するので、コード領域のIP−FECパケットは不必要なものとして廃棄される。
【0101】
また、図9の真ん中に示されるマトリクスの場合は、コード領域の部分が到着してもデータ部分が到着していないのでパケットロスが発生した可能性があると見なされる。そこで誤り(消失)訂正を行う機会の待機状態に入る。
【0102】
パケットロスなしでオリジナルIPパケットが出来上がった、もしくは、パケットロスはあったが訂正によりオリジナルIPパケットが再生できたら、再度、そのオリジナルIPパケットをIPレイヤヘ渡す。
【0103】
インタリーブマトリクスはー度に保持できる最大数が決っており、それ以上になった場合には最も保持時間の長い(古い)マトリクスを探し、このマトリクスに書き込まれたデータの訂正処理を開始する。また、タイマを設けておき、ある時間が経過したにも関わらずマトリクスにデータが揃わない場合にも訂正処理を開始するようにしてもよい。
【0104】
訂正方法はすでに述べた通りである。訂正処理を行おうとしたインタリーブマトリクスにおいて、パケットロスが多すぎて訂正能力を越えてしまっている場合は、訂正をあきらめ、そのマトリクスごとデータを廃棄する。もし訂正が成功し、完了したらオリジナルIPパケットを取り出してIPレイヤヘ渡す。
【0105】
このように本方式の誤り訂正を行えるようにしておくと、ルータ等を介したエンド・ツー・エンドでのデータ配送が可能である。受信側では送信側からの情報に基づいて必要に応じて誤り訂正を行うことによって、信頼性のある通信が可能となる。特にこの方法は、受信者数によらないので、大規模のマルチキャスト伝送方式にも適している.また、トランスポートプロトコルに依存しないので、TCP、UDP、ICMPといった複数のトランスポートプロトコルに対して適用することが可能である。
【0106】
続いて、上記のような通信システムにおいての通信を実現する送信装置および受信装置の構成について説明する。
【0107】
図10は送信装置の構成を示している。この送信装置1601は、アプリケーション送信モジュール1602、オリジナルIPパケット受信モジュール1603、オリジナルIPパケット分割モジュール1604、FECコード生成モジュール1605、IP−FEC/FECヘッダ付与モジュール1606及び下位レイヤ送信処理モジュール1607を有している。
【0108】
アプリケーション送信モジュール1602は、送信したいアプリケーションデータをIPパケット単位に分割して、オリジナルIPパケット受信モジュール1603に渡す。したがってオリジナルIPパケット受信モジュール1603は、既に完全にIPパケットの形になっているものを受信することになる。すなわち、アプリケーション送信モジュール1602の機能としては、IPレイヤ以上の全ての処理、例えばIPパケットサイズへの分割処理、IPヘッダ付与処理、トランスポートレイヤ処理、等を含む。
【0109】
オリジナルIPパケット受信モジュール1603に到着したオリジナルIPパケットは、オリジナルIPパケット分割モジュール1604にて適切な長さに分割される。ここでの分割サイズは前述したように最大値が決まっている場合に、その範囲内で任意の長さをとることが可能であるが、後述するIP−FEC/FECヘッダ付与モジュール1606における処理を容易化するために固定長とした方がよい。すなわち、オリジナルIPパケットをIPヘッダを含めて例えば128バイト、512バイトといった単位で区切り、最後に半端となった部分についてはパディングを付与して同じサイズにする。こうして区切られた固定長のデータはIP−FEC/FECデータ付与モジュール1606に渡される。
【0110】
これと同時に、オリジナルIPパケットの分割されたデータの情報は、FECコード生成モジュール1605に渡される。FECコード生成モジュール1605は、分割されたデータを先頭からシンボル単位に分割し、そのシンボルの順序とシンボルの値を使って誤り訂正符号を作成する。この情報を使う点はRS符号の場合も本符号化方式においても同一である。具体的な符号の生成方法については前述した通りである。
【0111】
FECコード生成モジュール1605において作成された冗長シンボルは、やはり分割されたシンボルの中で、一定の規則に従って並べられる。例えば、図1に示したように分割されたデータの第j番目のシンボルをそれぞれ情報シンボルとし、それについて各冗長シンボルを作成し、その冗長シンボルをやはり分割されたデータの形で第j番目のシンボルに挿入する。このようにして冗長データも情報データと同じサイズのものが出来上がる。この出来上がった冗長データをIP−FEC/FECヘッダ付与モジュール1606に渡す。
【0112】
ただし、1つのオリジナルIPパケットを分割して符号化処理を行っても構わない。例えば、オリジナルIPパケットがオリジナルIPパケット分割モジュール1604によりm個のデータ部分に分割されたとする。このとき、m個をma、mb、mc個のように分割したり、あるいはmd個ずつに分割して、各々についてFECを作成する。すなわちこの場合であると、1つのオリジナルIPパケットで2つ以上の符号化処理を行うことになる。
【0113】
実際にオリジナルIPパケットは64kバイト程度が最大長となるとされており、mの値は分割の単位が例えば128バイト毎であるとかなり大きくなる。このような場合は、前記のように分割して符号化処理を行う方法が有効である。また、ネットワークの特性に応じて符号化の単位を変えることは必要であり、その場合に上記のような方法を適用できる。その場合には、図8に示したFECヘッダにおいて、該当するIP−FECパケットがオリジナルIPパケットの中の何番目のコードに相当するか、という情報を追加しておく。
【0114】
FECコード生成モジュール1605において、どれだけの量の冗長を生成するか、という問題については、例えば、その量がIPパケットヘッダ単位に決まるのであれば、オリジナルIPパケットのヘッダ情報を入手してそれによって判断を下せばよい。また、データ用のパケット数で決まる場合は、オリジナルIPパケットのヘッダにある長さ表示と、オリジナルIPパケット分割モジュール1604における分割の長さ等から全体のパケットの長さを判断し、それを使って冗長パケット数を決定する。このように、FECコード生成モジュール1605では、オリジナルIPパケット受信モジュール1603との間でこのような情報のやりとりが行われる。
【0115】
さて、IP−FEC/FECヘッダ付与モジュール1606は、渡された情報データおよび冗長データについて、図8に示されるようなFECヘッダを付与し、さらに、IP−FECへッダを付与して下位レイヤ送信処理モジュール1607に渡す。下位レイヤ送信処理モジュール1607は、渡されたIP−FECパケットを送信できる伝送路フォーマットにしてインターネット網や公衆網、LAN等に送り出す。
【0116】
ところで、この送信装置では、データのIP−FECパケットについては、バイブライン処理を行うことが可能である。
【0117】
オリジナルIPパケット分割モジュール1604は、オリジナルIPパケット受信モジュール1603から固定長(512バイトなど)のデータを受けとると、その情報をFECコード生成モジュール1605に送るとともに、IP−FEC/FECヘッダ付与モジュール1606に渡し、そこで各種ヘッダを付与して下位レイヤから送り出す、ということを一連の動作として行うことができる。
【0118】
これによって、オリジナルのIPパケットの送信処理において、全体を逐次ストアする手順を省くことができ、必要なバッファ/メモリ量の削減につながる。すなわち、オリジナルIPパケット分割モジュール1604から先のデータ処理では、最大でIP−FECパケット1つ分の蓄積量で済むことになる。さらに、逐次ストアする手間がない分、処理の高速化がはかられる。
【0119】
また、FECコード生成モジュール1605においても、コード生成する場合には、作成する冗長用のIP−FECパケット数分のメモリ領域を用意して、そこで途中の計算結果を逐次入れていかなければならないが、その計算が終了すると、IP−FEC/FECへッダ付与モジュール1606へは1つの冗長パケットのペイロード単位でデータが渡されるので、やはりそれ以降の処理においてIP−FECパケット1つ分の蓄積量を確保すれば済むことになる。さらにはIP−FEC/FECヘッダ付与モジュール以降の処理においてデータ用と冗長用のメモリを共用すれば、さらにメモリを節約することができる。
【0120】
また、IP−FEC/FECヘッダ付与モジュール1606においては、オリジナルIPパケット分割モジュール1604から送信すべき数のデータパケットのペイロードを渡した直後に、FECコード生成モジュール1605から前記データパケットに対する冗長パケットのペイロードを渡すようにするのがよい。というのは、図8に示したように、FECヘッダにはシーケンス番号が付与されるので、このシーケンス番号をコネクション単位や複数のオリジナルIPパケット単位で複数個分管理することは煩雑である。そこでパケットペイロードの受渡しの順序を最適化しておくことにより、少なくとも1つの符号化単位では、継続して処理できるようになる。これにより、シーケンス番号の管理は1種類で簡単になる。
【0121】
続いて、受信装置について説明する。
【0122】
図11は受信装置の構成を示している。この受信装置1701は、アプリケーション受信モジュール1702、オリジナルIPパケット作成モジュール1703、誤り訂正モジュール1704、IP−FECパケット処理モジュール1705、IPパケット受信モジュール1706及び下位レイヤ受信処理モジュール1707を有する。
【0123】
送信装置からインターネット網、公衆網、LAN等を経由して到着した情報は、まず下位レイヤ受信処理モジュール1707において処理を施され、そこからIPパケットが抽出されてIPパケット受信モジュール1706に渡される。下位レイヤにおける処理には、下位レイヤにおける誤り訂正/再送およびデータ廃棄等が含まれる。廃棄された場合、それに該当するIPパケットが正しく受信されないことになる。
【0124】
IPパケット受信モジュール1706は、従来の通信処理におけるIPレイヤ処理とほとんど同じ処理を行う。すなわちIPアドレスのチェック(自分宛かどうか)、長さのチェック等を行って、受信できないIPパケットは廃棄する。その後、IPへッダに自分が渡す先のアドレスが書いてあるのでそれをチェックする。そこにもし例えばTCPのようなIPレイヤよりも上位レイヤの名前が書いてあると、それはアプリケーション受信モジュール1702を指しているので、IPパケットはアプリケーション受信モジュール1702に直接渡される。IPへッダにIP−FEC処理を示すコードが書かれていた場合、そのIPパケットは実はIP−FECパケットであることを意昧している。この場合、IPパケット受信モジュール1706はIPパケットからIP−FECヘッダを取り除いたものをIP−FECパケット処理モジュール1705に渡す。
【0125】
IP−FECパケット処理モジュール1705には、到着したIP−FECパケットのペイロードに対する複数のインタリーブマトリクスが用意されている。IP−FECパケット処理モジュール1705は、IPパケット受信モジュール1706からのIP−FECヘッダの情報と、渡されたFECヘッダの情報を使って、IP−FECパケットのペイロードを該当するインタリーブマトリクスの所定の位置に書き込む。インタリーブマトリクスは送信装置1601において符号化された1つの単位毎に構成される。受信装置1701における具体的な手順においては、FECヘッダにおいて同じフレームIDを有するものは原則として同じインタリーブマトリクスに入れられる。ただし、同じフレームIDを持っていても、その中にさらに順序を示す識別子があれば、その識別子別にインタリーブマトリクスを作成する。この識別子は、送信装置1601においては、1つのオリジナルIPパケットに対して複数の符号化処理を行った場合の識別子を意昧する。
【0126】
このような複数のインタリーブマトリクスにおいては、例えばタイマやマトリクスの数等を使って状態の管理をしておく。例えばタイマ切れになる前にデータ部分が全て揃うと、そのインタリーブマトリクスにおいて誤り訂正を行わなくてもよいので、そのデータ部分のみをシーケンス番号の順につなげて、オリジナルIPパケット作成モジュール1703に送る。そして、残りの冗長部分は廃棄する。この場合は誤り訂正モジュール1704は使用しないでその処理をスキップする。
【0127】
しかし、もしタイマ切れが発生していてもインタリーブマトリクスのデータ部分が揃っていない場合には、まずそのマトリクスにおいて不足しているIP−FECパケットペイロードの個数を数え、その数が、誤り訂正可能な個数の最大値以下であれば、誤り訂正を行うために誤り訂正モジュール1704に渡される。万一不足している個数が誤り訂正可能な最大数を越えている場合には、訂正が不可能なので、この時点でマトリクス全体を廃棄してしまう。
【0128】
ここで、あるペイロードについて入れるべきインタリーブマトリクスが存在しない場合が2通り考えられる。第1は、そのペイロードはある符号化されたパケットの中で最初に到着したものである場合である。この場合には、新しいインタリーブマトリクスを生成し、そこの適切な場所にそのペイロードを格納する。必要なインタリーブマトリクスのサイズはFECヘッダの情報から得ることができる。第2は、そのIP−FECパケットがあまりにも遅く到着してしまって、該当するインタリーブマトリクスに対する処理が既に終了してしまった場合であり、この場合には、最近使用したフレームIDを記憶しておくことによって、そのパケットペイロードを単純に廃棄するか、あるいは、一旦新規の場合と同様にインタリーブマトリクスを作成し、そのマトリクスの中身が時間切れ等で揃わないことから、タイマ切れで廃棄されるようにする。
【0129】
次に、誤り訂正モジュール1704の処理を図1に示すようにパケットが固定長である場合において説明する。
【0130】
誤り訂正は複数のパケットペイロードにまたがって行われ、各ペイロードの先頭からシンボルを数えて行った場合の同じ位置(例えば3番目、10番目など)のシンボルをパケットのシーケンス番号順に並べ行ったものを符号語としている。ある場所のデータシンボルを図1のようにシンボル1からシンボルmとし、それらに対するシンドロームを計算する。シンドロームの計算方法は前述の通りであり、データの抜けがある部分は例えばシンボル値をゼロとして計算する。本発明では、この計算で求められるシンドロ−ムを受信側のシンドロームあるいは第2のシンドロームと呼び、一方、冗長部分のシンボルを送信側のシンドロームあるいば第1のシンドロームと呼んでいる。この2つのシンドロームを比較して、その差からデータ部分に対する消失シンボルを復元することができる。
【0131】
各シンボルを復元した結果として、データ用パケットのペイロードが復元される。よって、そのデータ用の部分のみをシーケンス番号順につないでオリジナルIPパケット作成モジュール1703に渡す。冗長部分はここで用済みとなるので廃棄される。
【0132】
オリジナルIPパケット作成モジュール1703は、IP−FECパケット処理モジュール1705からの誤りのないデータ列、および誤り訂正モジュール1704からの誤り訂正を済ませたデータ列を使って、オリジナルのIPパケットを復元する。ここでは同じフレームIDの中にさらに順序を示す識別子があるかどうかで処理に違いが生じるので、以下にそれぞれの処理を説明する。
【0133】
前述の識別子がない場合には、データ列は先頭がIPヘッダとなっているはずなので、そのIPヘッダのなかの長さ表示から、データ列の最後にあるパディングの長さを知って、それを切り離す。こうしてオリジナルのIPパケットが復元できる。このオリジナルのIPパケットはより上位の処理のためにアプリケーション受信モジュール1702に渡される。
【0134】
識別子がある場合、IP−FECパケット処理モジュール1705から、それぞれの識別子とフレームIDを教えてもらっておき、そのフレームIDに対する全ての識別子のデータ列が到着するまで待機する。全ての識別子のデータ列が揃うと、それを識別子の順につなげる。このつなげたデータ列に対する以降の処理は、前述した識別子のない場合の処理と同一である。
【0135】
タイマ等を設けておき、もし所定の時間までに全てのデータ列が揃わない場合は、該当するフレームIDに所属する全てのデータ列を廃棄してしまう。また、より積極的な方法として、IP−FECパケット処理モジュール1705においてデータが揃わなかったために廃棄されたものがあれば、そのフレームIDと識別子をオリジナルIPパケット作成モジュール1703に通知することによって、廃棄処理が早急に行われ、待機のために必要なメモリバッファ量が削減できる。実際には同じ送信装置から同じ受信装置に対して送られるIPパケットがそのルーチング経路を頻繁に変えることはそれほど多くないので、途中で廃棄されない限りにおいては、IPパケットは順序よく到着する。したがって、後者のような積極的な方法を用いた方がメモリの削減の点ではよリ効果的である場合が多い。 最後にアプリケーション受信モジュール1702は、IPレイヤより上の全てのレイヤの受信処理を行う。トランスポートレイヤを含む通信処理等もここに含まれる。
【0136】
(第2の実施形態)
続いて、第2の実施形態について述べる。
【0137】
通信システムにおいては、信頼性のある通信を行う必要のあるアプリケーションが多くあるが、そのための方法として誤り訂正を行う方法と再送制御を行う方法の2つがある。また、これらを組み合わせて効率よく信頼性を確保する方法もある。
【0138】
ここでは、第1の実施形態と異なり、単に誤り訂正機能を付加するだけでなく、誤り訂正機能を付加したにも関わらず訂正できなかったパケットに対して、再送制御によって復元を行う方法について示す。
【0139】
基本的な手順は以下の通りである。
【0140】
(1)送信側から受信側に対して、m個の情報パケットに対してk個の冗長パケットを付加して送る。kは0以上の整数である。
【0141】
(2)受信側でm+k個のパケットのうち、kを越える数のパケットが到着しない場合、送信側に対して再送要求を送る。
【0142】
(3)送信側は、受信側からの再送要求に応えて、必要な情報を再送する。
【0143】
ここで、再送に対しては、m+k個のパケットを全部送る方法、m個のパケットを全部送る方法、到着しなかったパケット番号を受信側から通知してもらって、その該当番号のパケットのみを再送する方法等がこれまで考えられてきている。しかし、それらの方法よりも伝送量を少なくできる方法として、以下のような方法が可能である。
【0144】
(1)は上述と同じ
(2)受信側でm+k個のパケットのうち、kを越えるy個のパケットが到着しない場合、y−kの値をつけて、送信側に再送要求を送る。
【0145】
(3)送信側はy−k個分の再送用パケットを作成して受信側に送る。
【0146】
この方法をとることによって、再送するパケット数をy−k個にすることができる。
【0147】
上記手順において、(1)では従来の符号化手法を用いることもでき、あるいは本発明による第1の実施形態の方法を用いることも可能である。どちらの場合においても、最初に送付するパケットに含まれる符号語の訂正能力は同じである。 また従来の符号化手法によって送信を行った後に、(2)および(3)の再送処理が入ったことにより本発明によって生成される冗長パケットを送信した場合、受信側は、計算は多少複雑になるが、従来の符号語によるパケットと追加で受信した冗長パケットを用いて訂正処理を行うことが可能である。
【0148】
ただし、(1)において冗長パケット数kが変動するようなシステムの場合は、最初に送信するパケットについても第1の実施形態の方法を用いた方が良い。というのは、前述したように、従来方式ではkが変動する時には送信側において多くの生成多項式用の回路、あるいはプログラムコードが必要となってしまうからである。
【0149】
さらに問題となるのは(3)である。従来の符号化方法を用いた場合、まず送信側の立場からは、以前に出したk次のG(X)とは全く無関係なy−k次の多項式による割り算を行わなければならない。y−kの値は最大でm−kまたは2^h −1−m−kの小さい方の値まで取り得るので、m−k種類、あるいは2^h −1−m−k種類の計算回路、あるいはプログラムが必要となってしまう。通常はm−kの方が小さくなるように設計される。こうして従来の方法では第1の実施形態と同様に非常に大きな規模となってしまう。これに対して本実施形態の符号を用いると、全く同じ手法でy−k種類の再送用パケットを容易に作成することが可能である。以下では、これを具体的に説明する。
【0150】
まずは第1の実施形態と同様に、式(18)で表されるDを送信側から受信側に伝送する。式(18)には情報シンボルIがmシンボルと、冗長シンボルとして式(17)で表されるkシンボルのT[i](i=0〜k−1)が含まれている。
【0151】
受信側ではこれに対してシンボル抜けのあるD’を受信する。D’の抜けシンボル数がk以下ならば、このまま第1の実施形態の方法によって誤り訂正を行って復元が可能であるが、抜けたシンボルの数がy個であったとき(m+k≧y>k)、受信側はy−kシンボル分の再送を送信側に要求する。
【0152】
送信側ではこれを受けて、再送のためのパケットを作成する。これまでT[0]からT[k−1]までを送ったので、その続きのT[k]からT[y−1]までの送信側のシンドローム値を計算し、今度はそのシンドローム値のみを受信側へ送信する。シンドローム値は式(17)においてiの所にkからy−1までの値を順に入れていくことで計算される。
【0153】
上記送信/再送するΤ[i]のiの値については、簡単のために0から順に記述した。が、実際には送出する冗長パケットに含まれるシンボルT[i]について、特に順序にこだわらなくともよい。すなわち、最初のk個はiの値がGF(2^h)上で異なる限りにおいて任意である。また再送時に送るy−k個のT
[i]についても同様である。ただし、再送の時のiは最初に送ったk個のiの値とも異なっていなければならない。その理由は以下の通りである。
【0154】
受信側では、受信した情報シンボルの数と、重複しない冗長シンボルの数の合計がmに達すると、誤り訂正処理によって、元の情報を復元することができる。y−k個の冗長シンボルが要求されたときに、明らかに以前に送っていない冗長シンボルを送れば、それらが全て受信側に届いた時には、情報の復元が可能である。
【0155】
しかし以前に送付した冗長シンボルと同じものを含めてy−k個送った場合、もし受信側で同じ冗長シンボルを複数回数受信することがあったとすると、折角y−k個全てが受信側に正しく届いたとしても、訂正に必要なシンボル数が揃わず、訂正ができないことになってしまう。
【0156】
このような状態を防止するために、再送として冗長パケットを送信する場合には、以前送ったものと違う冗長シンボルからなるパケットを送るようにする。
【0157】
このようにして、yシンボル分の冗長シンボルが受信側に到着すれば、そこで受信側は第1の実施形態と同様に誤り訂正を行って元の情報シンボルを復元することができる。
【0158】
上述のバリエーションとして、受信側からの再送要求の際、必要な再送シンボル数y−kの他に抜けたシンドロームの識別番号も表示する方法もある。この場合、送信側は抜けなく受信側に到着したシンドロームと新たに作成するシンドロームの合計数がy−kになるようにして再送することができる。この場合には、一度送信したシンドローム値を記憶しておき、再送の際にその情報を積極的に利用することによって、新しく作成しなければならない再送シンボルの計算数を減らすことができ、効率的である。
【0159】
また、別のバリエーションとして、受信側から個数を通知しない方法もある。例えば、
(1)は上述と同じ
(2)受信側でm+k個のパケットのうち、kを越えるy個のパケットが到着しない場合、NACK信号のみを返す。
【0160】
(3)送信側はあらかじめ決められた数(z個)の再送用パケットを作成して受信側に渡す。
【0161】
といった方法がある。この場合、z≧y−kであれば、受信側はこれを使って訂正処理を行うことが可能である。この時に不要なz−(y−k)個の冗長パケットは、受信側で使用することなく廃棄して構わない。
【0162】
一方、もしz<y−kであれば、受信側は再びNACK信号を送信側に返し、送信側はさらにz個の再送用パケットを送ることになる。
【0163】
当然のことながら、再送のz個のパケットが廃棄される場合もあり、そのような場合も含めて受信側で訂正可能なパケットが揃うまで、この作業は繰り返される。
【0164】
ここで、従来の場合と本実施形態方式の場合の規模を第1の実施形態と同様に比較してみることにする。従来方式の符号を用いた場合、図12に示すように、最初に次数kの割り算回路を必要とし、その後の再送用に次数1から次数m−kまでの割り算回路が必要となるので、割り算回路の規模は1つの次数の計算のための回路を1単位として、
k+1+2+…+(m−k)=k+(m−k)(m−k−1)/2 ……(24)
となる。一方、図13に示すように、本実施形態の方式においては、最初にk個の次数1の割算回路、その後に最大m−k個の次数1の割算回路があればよいので、合計の回路規模はmで済むことになる。これはソフトウェアのコード量で比べても同様のこととなる。
【0165】
このように誤り訂正と再送を組み合わせた方式においても、送信側における情報シンボル部分のみに対してのシンドローム値を計算する方法による符号化を適用することにより、処理のための規模を小さくすることが可能となる。
【0166】
(第3の実施形態)
続いて、第3の実施形態として、第1の実施形態の方式を応用したマルチキャスト通信について説明する。
【0167】
マルチキャスト通信は一般に1つの送信端末と複数の受信端末からなり、送信端末がマルチキャストアドレス等を使ってデータを送信すると、ネットワークにおいてそのマルチキャストアドレスに従ってそれぞれの受信端末に届けられるようになっている。
【0168】
信頼性確保のためのトランスポートレイヤにおける再送制御方式として、TCP(Transmission Control Protocol)があるが、これはポイント・ツー・ポイントのプロトコルであってマルチポイントには対応していない。従って、マルチキャスト通信を行う場合は、通常はTCPの代わりにUDP(User Datagram Protocol)を用いる。
【0169】
このような状況で信頼性のある通信を行うために、図1または図2に示したように情報パケットと冗長パケットを送って、受信側で誤り訂正を行う方法が考えられる。上位にUDPを使うことで、本来ならばべストエフォートである通信システムに信頼性を持たせることができる。
【0170】
図14に本実施形態のシステムの概略を示す。送信端末はm個の情報パケットにk個の冗長パケットを付加して複数の受信端末へ向けて送信する。受信端末では、m+k個のパケットのうち、k個までの廃棄に対して、誤り訂正符号を用いて復元できる。信頼性の確保の点からはkをなるべく大きく設定したいが、一方受信端末の能力としては、kの設定数に限界があり、またその限界は端末の処理能力に依存するためにまちまちである。マルチキャストの場合、マルチキャスト数の増大に対応するためには、なるべく個々の端末の都合を聞きながら通信しないような方式が望ましいので、通信セッションの開始にあたってkの値の上限についてのネゴシエーションを行わないようにしたい。
【0171】
このようなマルチキャスト方式において、第1の実施形態における符号方式を適用することによって、このネゴシエーションなしに通信を行うことができることを示す。
【0172】
最初に送信端末は、これまでの例と同様に式(18)によって示されるmシンボルの情報を1シンボルずつ含むm個の情報パケットと、k個の冗長シンボルを1つずつ含むk個の冗長パケットとを複数の受信端末に向けて送出する。各受信端末では冗長パケットを処理できる最大数wが決まっており、w≧kであるときは問題なく取り込んで処理ができるが、w<kのときはw個の冗長パケットのみを取り込んで残りは捨ててしまう。
【0173】
従来の符号化方式を用いた場合、受信側で誤り訂正のために用いられるシンドロームの計算のためには、必ず全ての受信可能なパケットを一度受信してからでないとシンドロームの計算は行えなかった。しかし本実施形態の方式を用いれば、データパケットの他に受信端末にとって処理できる範囲までの冗長パケットを取り込むことによって、送信された冗長パケット数によらず、取り込んだ冗長パケット数までの抜けを訂正することが可能である。
【0174】
図14にはm=3、k=2の場合について簡単に記している。受信者#1は全ての情報パケットが誤りなく受信されているので正常受信である。受信者#2は情報パケットが2個消失しているが、冗長パケットが2個到着しており、しかも端末が2シンボルの訂正能力を持っているので、元の情報パケットを復元することができる。受信者#3は情報パケットが1個失われており、冗長パケットは2個到着している。この受信者は最大で1シンボルの訂正しか行えないので、冗長パケットのうち1つは無視されて廃棄される。しかし情報パケットの抜けが1個だけなので、元の情報パケットを復元することができる。
【0175】
ところが、受信者#4では情報パケットが2個消失していて、冗長パケットは2個正常に届いたのであるが、端末の能力として最大1シンボルしか訂正できないため、冗長パケットのうちの1つは無視されて廃棄される。従ってこの場合は復元することができない、ということになる。このように本通信システムでは、誤り訂正機能を組み込んだ冗長パケットの配送により、本来ならば受信者#1のみしか正常に受信できなかったマルチキャスト情報を受信者#2および#3でも受信できるようにして通信のスループットを高くすることができる。しかし受信者#4のように受信できない場合もある。すなわち本システムは不完全ではあるが、マルチキャスト通信の信頼性を上げる効果のあるシステムとなっている。
【0176】
このように誤り訂正機能を用いて信頼性のあるマルチキャスト通信を行う場合、本実施形態の送信側のシンドローム値を計算する方式を用いることによって、処理能力の高くない受信端末があるような環境でも、そのための冗長パケット数に関する複雑なネゴシエーション処理を必要とすることなく通信を行うことが可能となる。
【0177】
なお受信端末は、以下の様な動作が可能でさえあれば良い。
【0178】
・自分の訂正能力を越えた廃棄があった場合には訂正をあきらめる。
【0179】
・また、必要数以上の冗長パケットが到着した場合には余分な冗長パケットは無視して取り込まない。
【0180】
・それ以外の場合に訂正が必要ならば実行する。
【0181】
(第4の実施形態)
最後に第4の実施形態について述べる。ここでは第3の実施形態と違い受信端末が比較的能力が高くて、かつ非常に高い信頼性を必要とするマルチキャスト通信を行う場合を想定する。
【0182】
エンド・ツー・エンドでの通信において高い信頼性を確保するためには、誤り訂正機能を持った冗長パケットを情報パケットに続けて送信するばかりでなく、その結果としてうまく到達できたかどうかのフィードバックを受信端末から送信端末に対して返してやる必要がある。具体的にACK、NACKと呼ばれる機能がそれである。
【0183】
ポイント・ツー・ポイントの通信の場合は、そのようなACΚ/ΝΑCΚによって単純にパケットの再送を行えばよいが、ポイント・ツー・マルチポイント通信によって、複数の受信端末がある場合、複数端末からのACΚ/NACΚに対して送信端末が詳細に対応することは処理能力上困難である。
【0184】
そこで、第2の実施形態において用いた手法をここに適用することで、問題の解決を図ることにする。
【0185】
(1)送信端末は複数の受信端末に対して、式(18)に示されているmシンボルの情報シンボルを1つずつ含むm個の情報パケットと、送信側のシンドローム値であるk個の冗長シンボルを1個ずつ含むk個の冗長パケットとを送信する。
(2)各受信端末では、m+k個のパケットのうち、消失したパケットの数がk以下であれば消失訂正を行って元の情報を復元する。また、消失したパケット数yがkより大きいとき、NACK信号とともに、y−k個の再送パケットを送信側に対して要求する。
【0186】
(3)送信側では、複数の端末からのNACK信号を見て、その中で最も大きな値の再送要求の数にあわせて再送パケットを作成し、それを再送する。
【0187】
マルチキャストの場合においても、前述のユニキャストの場合と同様、(1)の段階において、従来の符号化手法を用いることも可能である。
【0188】
ただし前述したように、最初に従来の符号化手法によるパケットを送る場合、冗長パケット数kは一定であることが望ましい。
【0189】
ここの特徴としては、(2)においてNACKベースとしたことである。ACKの場合は、送信端末は受信端末の数や個々の端末の状況を把握していないといけない、という問題点があり、マルチキャスト数の増加に対応できない。NACKベースにすることによって各端末の状況を細かく把握しなくてもマルチキャスト通信が行える。
【0190】
またΝΑCΚベースの中でも再送する情報パケットを指定するような方法であると、NACΚ信号毎に再送すべきパケットをチェックして記憶しておく必要があり、送信端末の処理が大きい。本実施形態の方式によると、単にNACK信号の再送パケット要求数の最大を見つけるだけであるので簡単であり、特に最初のΝACK信号が到着すれば、もうその時点から再送パケットの作成を開始できるので、効率の良い再送制御が行える。
【0191】
この様子を図15に示す。ここでは簡単のためにm=3、k=2の場合について記述している。送信者は最初にm+k個のパケットをマルチキャストする。受信者#1は全ての情報パケットを受信できているので、正常受信である。また、受信者#2は情報パケットが2個消失しているが、冗長パケットが2個受信されているので、これから情報パケットを正常に復元することができる。これらの受信者は正しい情報を取得できているので、送信側に対して何のアクションも起さない。
【0192】
一方受信者#3は3パケットの情報に対してパケットが2個しか届いておらず、復元のためにはあと1パケット必要なので、NACK信号(1) を送信者に返し、その時に1パケットの再送要求を付ける。また、受信者#4は3パケットの情報に対して僅か1パケットしか受信されておらず、復元にはあと2パケット必要なので、NACΚ信号(2) を送信者に返し、その時に2パケットの再送要求を付ける。送信者はこれらのΝΑCK信号を受け取り、再送要求パケット数の最大のものに合わせて(この場合には2パケットの)冗長パケットを新たに作成し、再送用パケットとして伝送する。
【0193】
また、受信者#5は情報パケットが2パケット到着し、その後に冗長パケットが1つ到着すると、もうその時点で復元処理を開始することができる。そしてその後に到着する2個目の冗長パケットを無視して廃棄して構わない。このように本実施形態の方式を用いると、受信側で復元に必要なパケットが揃った時点で処理を開始でき、処理の高効率化が図られる。
【0194】
これが従来の方式であると、情報パケットに消失があったとき、訂正のためのシンドローム計算のためには、一度全ての冗長パケットを受信してからでないと開始しないのが一般的である。このため、全ての冗長パケットが到着するまで処理の開始を待たなくてはならず、効率が良くなかった。また、最後の冗長パケットの遅延が大きかった場合には、その影響はさらに大きくなる。
【0195】
また送信側においても処理効率の違いがある。前述したように、このようなシステムの場合に従来の符号形式を用いると、回路規模の増大はもちろんのこと、作成パケット数に応じて利用する回路が異なるため、送信側では複数の到着が予想されるNACK信号が全て到着するのを待たなければならない。そして最大の再送パケット数が決定するまで作成処理を開始することができない。この様子を図16に示す。
【0196】
送信者は例えばタイマ管理によって、受信側からのNACΚ信号の到着を待つ。いまNACK#1から#4が到着し、それぞれ1から3パケットの再送要求が書かれているとする。送信側のプロセスでは、NACK信号が到着する度に、それらの中で最も大きい再送要求のパケット数を記憶しておく。そして、タイムアウトになると、初めて3個の冗長パケットを作成して再送することになる。
【0197】
一方、本実施形態による方式では、1個ずつ冗長パケットの生成回路が異なるので、NACK信号が到着するとすぐにそれに合わせて再送用の冗長パケットの作成プロセスを開始することができる。例えば図17において、まずNACK#1信号が到着し、1パケットの再送要求が書いてあると、1つの再送パケットの作成を開始する。次にNACK#2に2パケットの再送要求が書いてあると、1つは作成を開始しているので1つ増やして#2のパケットの作成を開始する。さらにΝΑCΚ#3に3パケットの再送要求が書いてあると、これまで2個の再送パケットの作成を開始しているので、新たにまた1個(#3)のパケットの作成を開始する。その後にNACK#4が到着して2パケットの再送要求が書いてあるが、既に3個のパケットを作成しているのでこれは無視される。
【0198】
これらのNACK信号の到着の合間に作成が完了したパケットから随時送信を行う。タイムアウト時には、実質的に処理が全て終わっているようなイメージとなり、従来の場合と比較して処理時間の短縮化と高効率化が図れる。
【0199】
このように、信頼性のあるマルチキャスト通信を行うにあたって、本実施形態の送信側のシンドローム値を用いた符号化方式を利用することによって、マルチキャストの大規模化への対応がより可能となり、また処理の高能率化、回路規模/プログラムコードの縮小化といった効果を得ることができる。
【0200】
特に数百、数千もの受信者を有する大規模のマルチキャストを行う場合には、図18に示すように、中継のルータ等において、NACK信号をマージすることがあり得る。このとき、本発明の方式を使えば、複数の下流からのNACK信号の中で再送要求の最大値をとるだけでマージが済むので、個々に再送したいパケット番号を要求する場合に比較して、はるかに効率の良い伝送が可能となる。
【0201】
例えば図18では1つの送信端末に対して10の受信端末があって、そのうち8端末からNACK信号が出されている。この信号がそのまま送信者に届くと、送信者は8つのNACK信号を処理しなければならない。しかしながら、途中のルータ1801はNACK信号(2)とNACK信号 (1)をマージして、NACK信号(2)を送信者に送り、ルータ1802は3つのNACK信号(1)をマージして、1つのNACK信号(1)を送信者に送る。
【0202】
また、ルータ1804は2つのNACK信号(2)をマージして1つのNACK信号(2)をルータ1803に送り、ルータ1803は、ルータ1804からの信号とNACK信号(1)をマージして、1つのNACK信号(2)を作成し、送信者に送る。
【0203】
NACK信号のマージ方法は、複数のNACK信号の中で最大の再送要求パケット数のかかれたものを選択する、という単純なものである。このような途中のルータにNACK信号処理の分担を任せる方法を用いることにより、図18において送信者には僅か3つのNACK信号が届くことになり、送信者の処理負担の軽減が可能となる。
【0204】
ここで、1つのバリエーションとして、マルチキャストグループの中で特定の受信者群が異なる特性を有するようなモデルを考える。例えば、ある場所だけ非常にリンクが細くてパケットの通りが悪い、または非常に輻輳の発生しやすい中継ルータがあって、そこだけパケット廃棄率の特性が悪い、または、あるリンクは無線リンクになっていて、ビット誤りによる中継ノ一ドでのパケット廃棄が発生してしまう、等のことが考えられる。また逆に、ある受信端末行きのパケットは専用線にのっていくので、ほとんど落ちることなく良好な特性を示す場合もあり得る。
【0205】
このようにマルチキャストにおいて明らかにパケット廃棄特性の異なる受信者群が含まれる場合には、同じマルチキャストグルーブであっても、受信端末あるいは端末群単位に再送処理を別にすることがある。すなわち、最初にm個の情報パケットとk個の冗長パケットをマルチキャストグループに対して送信するのは同じであるが、その後での再送処理については、パケット廃秦特性の似ているもの同士で小さなマルチキャストの単位を作って、その単位毎に再送処理を行う。マルチキャストは本来受信側の数によらずにできることが重要ではあるが、ある特定の受信者群のみに多くの再送を行う必要がある場合、その再送パケットを全ての受信者に送信するのは、ネットワークの使用効率上、あまり好ましいことではない。従って、再送パケット数については、受信者群単位に別々の個数を割り当てることとする。
【0206】
図19に簡単な例を示す。送信者は5人の受信者に対してマルチキャストを行う。受信者#1および受信者#2は無線端末であって、パケットの廃棄率が高い。一方受信者#3、#4、#5は有線端末であって、パケット廃棄はあまり発生しないものとする。送信者はあらかじめ受信者#1、#2を第1群、受信者#3、#4、#5を第2群として分けておく。そしてこれらの受信者からのNACK信号について、各々の群のどちらからのNACK信号であるかわかるようにしておく。
【0207】
いま、m=5、k=2として7個のパケットを送信したとする。最初の送信は、5人の受信者全員に同様に送付する。ここで、受哲者#1からはNACK信号(3)、受信者#2からNACK信号(4)、受信者#3、#4からはNACK信号なし、受信者#5からはNACK信号(1)が送信者に届いたものとする。
【0208】
送信者は、まず第1群の受信者からのNACK信号を見て、その要求パケット数の最大値である4パケットを新たに生成して、第1群のみを宛先として送信する。一方、第2群の受信者からのNACK信号を見て、要求パケット数が1なので、先ほど第1群に送信した4つの冗長パケットの中から任意の1パケットを選択して、第2群のみに送る。
【0209】
このように群を分けたとき、作成しなけばならない冗長パケット数は、群を分けない場合と同様の4である。マージするNACK信号の数も同じ3である。ただしNACK信号のマージ処理が2つに分かれることと、再送する時の送信対象群を複数にする、という部分のみの処理が異なることになる。従って、このような複数の群への再送パケット処理を行った場合においても、本発明の方式を適用すると、送信者の負担が大きくならないことがわかる。
【0210】
もし従来の符号化方式によって再送時に冗長パケットを送信するならば、4次の生成多項式によって作成される4つの冗長パケットと、1次の生成多項式によって作成される1つの冗長パケット、というように個別にパケットを作成しなければならず、送信者の処理量が増大することとなる。
【0211】
以上述べたように、信頼性のあるマルチキャスト通信を行う場合には、本発明による符号化方式を用いることによって、複数の群に対する個別の再送処理を行なう場合にも、群を分けない場合と同等の処理を行うのみで良く、送信者の負担を増やすことなく実現可能である。
【0212】
【発明の効果】
以上述べてきたように、本発明によれば、送信側でのシンドローム値を冗長シンボルとして用いる方式を適用したパケット通信を行うことによって、従来の場合よりも回路規模の削減やより大きなフレキシビリティが得られることになる。具体的には、第1に、誤り訂正技術を適用した通信方式において、送信側と受信側で同じ情報部分のみに対してのシンドローム値を計算し、これを用いた消失誤り訂正を行うことによって、符号化に対して従来よりも回路規模、あるいはコード量を少なくすることができる。
【0213】
特に、シンドロームの計算方法として、リード・ソロモン符号の復号法において用いられる方法を利用することによって、訂正能力が最大となる。
【0214】
第2に、消失誤り訂正機能と再送制御を組み合わせた通信方式においても、送信側における情報部分のみに対してのシンドローム値を計算する方法による符号化を適用することにより、従来の通常の符号化を行う場合と比べて処理のための規模を小さくすることが可能となる。
【0215】
第3に、誤り訂正機能を用いて信頼性のあるマルチキャスト通信を行う場合に、送信側のシンドローム値を計算する方式を用いることによって、処理能力の高くない受信端末があるような環境でも、そのための冗長パケット数に関する複雑なネゴシエーション処理を必要とすることなく通信を行うことが可能となる。
【0216】
第4に、消失誤り訂正機能と再送制御とを組み合わせて信頼性のあるマルチキャスト通信を行うにあたって、送信側のシンドローム値を計算する符号化方式を利用することによって、マルチキャストの大規模化への対応を可能とし、また再送処理の高能率化、回路規模/プログラムコードの縮小化といった効果を得ることができる。
【図面の簡単な説明】
【図1】情報パケットに対する冗長パケット作成方法を示す図
【図2】パケットが可変長であることを考慮した場合の情報パケットに対する冗長パケットの作成方法を示す図
【図3】従来の誤り訂正方式における送信側の回路構成の概略図
【図4】本発明に係る実施形態の誤り訂正方式における送信側の回路構成の概略図
【図5】本発明に係るIPパケット通信システムのレイヤイメージを示す図
【図6】本発明に係るIPパケット通信システムの運用形態を示す図
【図7】図6のIPパケット通信システムにおける送信側の動作を示す図
【図8】IPパケット内のFECヘッダの構成を示す図
【図9】図6のIPパケット通信システムにおける受信側の動作を示す図
【図10】本発明に係る送信装置の構成を示す図
【図11】本発明に係る受信装置の構成を示す図
【図12】従来の誤り制御および再送方式における送信側の回路構成の概略図
【図13】本発明に係る第2の実施形態の誤り制御および再送方式における送信側の回路構成の概略図
【図14】本発明に係る第3の実施形態の消失誤り訂正を適用したマルチキャスト通信システムを示す図
【図15】本発明に係る第4の実施形態の消失誤り訂正と再送制御を適用したマルチキャスト通信システムを示す図
【図16】従来方式における再送処理を示す図
【図17】本発明に係る第4の実施形態における再送処理を示す図
【図18】本発明に係る第4の実施形態において、ルータが複数のNACK信号をマージする機能を有する場合を示す図
【図19】本発明に係る第4の実施形態において、再送パケット送信処理を群単位に行なう場合を示す図
【符号の説明】
1201……送信端末
1202……受信端末
1203……ルータ
1204……コードパケット
1205……データパケット
1301……オリジナルIPパケット
1302……インタリーブマトリクス
1303……IP−FECパケット
1401……IPパケットヘッダ
1402……FECヘッダ
1501……オリジナルIPパケット
1502……インタリーブマトリクス
1503……IP−FECパケット
1601……送信装置
1602……アプリケーシヨン送信モジュール
1603……オリジナルIPパケット受信モジュール
1604……オリジナルIPパケット分割モジュール
1605……FECコード生成モジュール
1606……IP−FEC/FECヘッダ付与モジュール
1607……下位レイヤ送信処理モジュール
1701……受信装置
1702……アプリケーション受信モジュール
1703……オリジナルIPパケット作成モジュール
1704……誤り訂正モジュール
1705……IP−FECパケット処理モジュール
1706……IPパケット受信モジュール
1707……下位レイヤ受信処理モジュール
1801〜1804……ルータ
Claims (14)
- 送信すべき情報に対し誤り訂正符号化処理を施して伝送する方法において、
送信側で、前記送信すべき情報に対して、所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成するステップと、
送信側から受信側へ、前記送信すべき情報を含む少なくともーつの情報パケットと、生成された前記送信側シンドローム値を誤り訂正符号の冗長部分として含む少なくとも一つの冗長パケットとを送信するステップとを備えたことを特徴とする符号伝送方法。 - 前記生成するステップは、複数の送信側シンドローム値を、前記情報に対する符号語の定義の際に用いられる原始多項式の根の、それぞれ異なるべき乗に基づいて、生成するものであることを特徴とする請求項1記載の符号伝送方法。
- 前記送信するステップは、前記送信すべき情報を分割して得られる複数の情報シンボルを、複数の情報パケットに分散させて含ませるものであることを特徴とする請求項1記載の符号伝送方法。
- 前記送信するステップは、前記送信すべき情報に対して生成された複数の送信側シンドローム値を、複数の冗長パケットに分散させて含ませるものであることを特徴とする請求項1記載の符号伝送方法。
- 前記生成するステップは、リード・ソロモン符号の復号に用いられる計算方法に従って、前記送信側シンドローム値を生成するものであることを特徴とする請求項1記載の符号伝送方法。
- 受信側で、送信された前記情報パケット及び冗長パケットのうち少なくとも一部を受信するステップと、
受信された前記情報パケットに含まれる情報に対する少なくとも1つの受信側シンドローム値を生成するステップとと、
生成された前記受信側シンドローム値と受信された前記冗長パケットに含まれる送信側シンドローム値とに基づいて、必要であれば誤り訂正を行うステップとを更に備えたことを特徴とする請求項1記載の符号伝送方法。 - 受信側で、受信されたパケットから前記送信すべき情報を復元できなかった場合に、送信側で、前記送信すべき情報に対する別の送信側シンドローム値を生成し、送信側から受信側へ、生成された前記別の送信側シンドローム値を含む少なくとも一つの冗長パケットを送信するステップを更に備えたことを特徴とする請求項1記載の符号伝送方法。
- 前記送信するステップは、一つの送信側から複数の受信側へ、前記情報パケット及び冗長パケットをマルチキャスト送信するものであることを特徴とする請求項1記載の符号伝送方法。
- 前記送信すべき情報はIPパケットであり、このIPパケットをm個(mは複数)のデータに分割するステップを更に備え、前記生成するステップは、前記各データをさらにn個(nは複数)の情報シンボルに分割し、前記各データから一つずつ選択した情報シンボルm個の集合に対して少なくとも一つの送信側シンドローム値を生成する処理をn個の情報シンボルの集合それぞれに対して行うものであり、
前記送信するステップは、前記各データをm個の情報パケットのぺイロード部分にそれぞれ含ませ、生成された前記n個の送信側シンドローム値を冗長パケットに含ませるものであることを特徴とする請求項1記載の符号伝送方法。 - 送信すべき情報に対し送信側が誤り訂正符号化処理を施して生成したパケットを、受信側ヘ送信するステップと、
受信側で受信されたパケットから前記送信すべき情報を復元できず再送が要求された場合に、送信側で、前記送信すべき情報に対して、所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成し、送信側から受信側へ、生成された前記送信側シンドロ−ム値を誤り訂正符号の冗長部分として含む少なくとも一つの冗長パケットを送信するステップとを備えたことを特徴とする符号伝送方法。 - 前記送信するステップは、一つの送信側から複数の受信側へ、前記冗長パケットをマルチキャスト送信するものであることを特徴とする請求項10記載の符号伝送方法。
- 送信すべき情報に対して所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成する手段と、
受信側へ、前記送信すべき情報を含む少なくとも一つの情報パケットと、生成された前記送信側シンドローム値を誤り訂正符号の冗長部分として含む少なくともーつの冗長パケットとを送信する手段とを備えたことを特徴とする送信装置。 - 少なくとも一つの情報パケットと、この情報パケットのぺイロード部分に対して、所望の誤り訂正能力に対応する個数のそれぞれ異なる一次式を用いて作成された前記個数分の送信側シンドローム値を含む少なくとも一つの冗長パケットとを受信する手段と、
受信した前記情報パケットに含まれる情報に対する少なくとも1つの受信側シンドローム値を生成する手段と、
生成された前記受信側シンドローム値と受信した前記冗長パケットに含まれる送信側シンドローム値とに基づいて、誤り訂正を行う手段とを備えたことを特徴とする受信装置。 - 送信すべき情報に対して所望の誤り訂正能力に対応する個数の送信側シンドローム値を該個数分のそれぞれ異なる一次式を用いて生成する手段と、
受信側へ、前記送信すべき情報を含む少なくとも一つの情報パケットと、生成された前記送信側シンドローム値を誤り訂正符号の冗長部分として含む少なくとも一つの冗長パケットとを送信する手段と、
送信された前記情報パケット及び冗長パケットの少なくとも一部を受信する手段と、
受信された情報パケットに含まれる情報に対する少なくとも1つの受信側シンドローム値を生成する手段と、
生成された前記受信側シンドローム値と受信された冗長パケットに含まれる送信側シンドローム値とに基づいて、誤り訂正を行う手段とを備えたことを特徴とする通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15313498A JP3571918B2 (ja) | 1997-06-04 | 1998-06-02 | 符号伝送方法、送信装置、受信装置および通信システム |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-146934 | 1997-06-04 | ||
JP14693497 | 1997-06-04 | ||
JP9-233170 | 1997-08-29 | ||
JP23317097 | 1997-08-29 | ||
JP15313498A JP3571918B2 (ja) | 1997-06-04 | 1998-06-02 | 符号伝送方法、送信装置、受信装置および通信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11136220A JPH11136220A (ja) | 1999-05-21 |
JP3571918B2 true JP3571918B2 (ja) | 2004-09-29 |
Family
ID=27319260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15313498A Expired - Fee Related JP3571918B2 (ja) | 1997-06-04 | 1998-06-02 | 符号伝送方法、送信装置、受信装置および通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3571918B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10014980B2 (en) | 2016-03-02 | 2018-07-03 | Toshiba Memory Corporation | Communication device and communication system |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1313318A1 (en) * | 2000-08-25 | 2003-05-21 | Matsushita Electric Industrial Co., Ltd. | Data transmission method and data relay method |
US8046667B2 (en) | 2002-04-19 | 2011-10-25 | Thomson Licensing | Synchronization loss resilient digital communication system using forward erasure correction |
KR100458878B1 (ko) | 2002-05-03 | 2004-12-03 | 학교법인 경희대학교 | Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법 |
US7177658B2 (en) * | 2002-05-06 | 2007-02-13 | Qualcomm, Incorporated | Multi-media broadcast and multicast service (MBMS) in a wireless communications system |
US20050013274A1 (en) * | 2003-03-05 | 2005-01-20 | Harri Pekonen | System and method for data transmission and reception |
BRPI0408066A (pt) | 2003-03-05 | 2006-02-14 | Nokia Corp | método de transmissão e recepção de dados, nó transmissor de dados, nó receptor de dados, e, aparelho de transmissão de dados |
JP4664413B2 (ja) * | 2003-03-05 | 2011-04-06 | ノキア コーポレイション | 順方向エラー修正方法及びシステム |
JP2004304268A (ja) * | 2003-03-28 | 2004-10-28 | Matsushita Electric Ind Co Ltd | 無線送信装置、無線受信装置及び方法 |
JP2004320087A (ja) * | 2003-04-10 | 2004-11-11 | Nec Corp | 伝送システム |
US7085282B2 (en) * | 2003-07-01 | 2006-08-01 | Thomson Licensing | Method and apparatus for providing forward error correction |
US8804761B2 (en) * | 2003-08-21 | 2014-08-12 | Qualcomm Incorporated | Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus |
JP4328602B2 (ja) | 2003-11-20 | 2009-09-09 | 富士通株式会社 | パケットエラー訂正装置及び方法 |
JP4506185B2 (ja) * | 2004-02-06 | 2010-07-21 | ソニー株式会社 | 受信装置および方法、並びにプログラム |
US7590922B2 (en) * | 2004-07-30 | 2009-09-15 | Nokia Corporation | Point-to-point repair request mechanism for point-to-multipoint transmission systems |
US7889654B2 (en) | 2005-03-30 | 2011-02-15 | At&T Intellectual Property Ii, L.P. | Loss tolerant transmission control protocol |
US8867336B2 (en) * | 2005-09-28 | 2014-10-21 | Qualcomm Incorporated | System for early detection of decoding errors |
EP1962450A4 (en) * | 2005-12-15 | 2011-08-10 | Mitsubishi Electric Corp | COMMUNICATION SYSTEM, TRANSMITTER COMMUNICATION DEVICE AND RECEIVER COMMUNICATION DEVICE |
JP4722693B2 (ja) * | 2005-12-16 | 2011-07-13 | Kddi株式会社 | 通信システム |
EP1969857B1 (en) * | 2006-01-05 | 2012-03-28 | Telefonaktiebolaget LM Ericsson (publ) | Media container file management |
JP4651026B2 (ja) * | 2006-03-07 | 2011-03-16 | 財団法人エヌエイチケイエンジニアリングサービス | 再送パケット選択装置、中継装置及びパケット伝送システム |
JP4666309B2 (ja) * | 2006-03-07 | 2011-04-06 | 財団法人エヌエイチケイエンジニアリングサービス | 送信装置、受信装置、中継装置及びパケット伝送システム |
US8990663B2 (en) | 2006-12-21 | 2015-03-24 | Thomson Licensing | Method to support forward error correction for real-time audio and video data over internet protocol networks |
BRPI0822523A2 (pt) | 2008-04-29 | 2018-06-05 | Thomson Licensing | método e sistema para adaptar correção antecipada de erro multicast através de redes sem fio |
EP2173054A1 (en) * | 2008-10-06 | 2010-04-07 | Thomson Licensing | Method for receiving and transmitting data blocks |
JP4808758B2 (ja) * | 2008-11-10 | 2011-11-02 | 株式会社エヌ・ティ・ティ・ドコモ | データ受信装置、及び、データ受信方法 |
JP4752898B2 (ja) * | 2008-11-14 | 2011-08-17 | オンキヨー株式会社 | コンテンツ配信システム、受信装置及び再生プログラム |
JP5709529B2 (ja) * | 2009-01-30 | 2015-04-30 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 無線受信装置 |
US8543893B2 (en) * | 2009-09-02 | 2013-09-24 | Agere Systems Llc | Receiver for error-protected packet-based frame |
EP2479916A4 (en) | 2009-09-17 | 2014-12-17 | Fujitsu Ltd | COMMUNICATION METHOD, COMMUNICATION SYSTEM, TRANSCEIVER APPARATUS, AND RECEIVER APPARATUS |
JP5535231B2 (ja) * | 2009-09-30 | 2014-07-02 | 株式会社東芝 | 受信処理装置およびプログラム |
AU2010318464B2 (en) * | 2009-11-13 | 2015-07-09 | Panasonic Intellectual Property Corporation Of America | Encoding method, decoding method, coder and decoder |
KR20110055410A (ko) * | 2009-11-18 | 2011-05-25 | 삼성전자주식회사 | 통신 시스템에서 데이터 송수신 방법 및 장치 |
WO2011062424A2 (en) | 2009-11-18 | 2011-05-26 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving data in a communication system |
JP5492618B2 (ja) * | 2010-03-19 | 2014-05-14 | 日本電信電話株式会社 | 誤り訂正符号化装置及び方法及びプログラム及び誤り訂正復号化装置及び方法及びプログラム |
JP2013085293A (ja) * | 2013-01-11 | 2013-05-09 | Thomson Licensing | インターネットプロトコルネットワークでのリアルタイムのオーディオ及びビデオデータの前方誤り訂正をサポートする方法 |
KR102235671B1 (ko) * | 2013-11-19 | 2021-04-02 | 삼성전자주식회사 | 통신 방법 및 장치 |
JP2016001773A (ja) * | 2014-06-11 | 2016-01-07 | 日本電信電話株式会社 | データ転送システム、送信機、受信機、プログラム及びデータ転送方法 |
-
1998
- 1998-06-02 JP JP15313498A patent/JP3571918B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10014980B2 (en) | 2016-03-02 | 2018-07-03 | Toshiba Memory Corporation | Communication device and communication system |
Also Published As
Publication number | Publication date |
---|---|
JPH11136220A (ja) | 1999-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3571918B2 (ja) | 符号伝送方法、送信装置、受信装置および通信システム | |
US6675346B2 (en) | Code transmission scheme for communication system using error correcting codes | |
US8386901B2 (en) | Method, device and software application for transmitting data packets in a communication system | |
KR101143282B1 (ko) | 연쇄 반응 코드의 체계적 인코딩 및 디코딩 | |
US6320520B1 (en) | Information additive group code generator and decoder for communications systems | |
US6445717B1 (en) | System for recovering lost information in a data stream | |
JP3614907B2 (ja) | データ再送制御方法及びデータ再送制御システム | |
EP1116335B1 (en) | Lost packet recovery method for packet transmission protocols | |
US6487690B1 (en) | Forward error correction system for packet based real time media | |
US10419329B2 (en) | Switch-based reliable multicast service | |
US7742501B2 (en) | System and method for higher throughput through a transportation network | |
PT2098005E (pt) | Multidifusão fiável com codificação de pacotes de dados linearmente independentes | |
CN102239658B (zh) | 按需差错控制 | |
Macker | Reliable multicast transport and integrated erasure-based forward error correction | |
US7100078B1 (en) | Method and apparatus for restoration of lost blocks in a multicast data transmission | |
Al-Shaikhi et al. | An adaptive FEC-based packet loss recovery scheme using RZ turbo codes | |
Linder et al. | Scalable multicast data distribution for different transport service classes | |
Du et al. | Adaptive low-complexity erasure-correcting code-based protocols for QoS-driven mobile multicast services | |
Hanle | Feasibility study of erasure correction for multicast file distribution using the network simulator ns-2 | |
Jolfaei | Stutter XOR strategies: a new class of multicopy ARQ strategies | |
Brockners | Bulk multicast data transfer-towards the integration of FEC and ARQ using a lightweight feedback control tree | |
Zhang | A Simulation Study of P Mul Multicasting Protocol Enhanced by Ideal FEC Code Julija Tovirac Institute for Telecommunications Research Cooperative Research Centre for Satellite System | |
Jolfaei et al. | Multicopy ARQ strategies for heterogeneous networks | |
Kok | An adaptive block encoding technique for hybrid ARQ schemes | |
Hanle | Feasibility Study of Erasure the |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
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: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040625 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |