JP3614907B2 - データ再送制御方法及びデータ再送制御システム - Google Patents

データ再送制御方法及びデータ再送制御システム Download PDF

Info

Publication number
JP3614907B2
JP3614907B2 JP32691194A JP32691194A JP3614907B2 JP 3614907 B2 JP3614907 B2 JP 3614907B2 JP 32691194 A JP32691194 A JP 32691194A JP 32691194 A JP32691194 A JP 32691194A JP 3614907 B2 JP3614907 B2 JP 3614907B2
Authority
JP
Japan
Prior art keywords
data
fec
interleaver
error
sscs
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
Application number
JP32691194A
Other languages
English (en)
Other versions
JPH08186570A (ja
Inventor
久美子 金井
啓治 角田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP32691194A priority Critical patent/JP3614907B2/ja
Priority to DE1995634833 priority patent/DE69534833T2/de
Priority to US08/580,156 priority patent/US6061820A/en
Priority to EP19950120655 priority patent/EP0721267B1/en
Publication of JPH08186570A publication Critical patent/JPH08186570A/ja
Application granted granted Critical
Publication of JP3614907B2 publication Critical patent/JP3614907B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • H03M13/2915Product codes with an error detection code in one dimension
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5625Operations, administration and maintenance [OAM]
    • H04L2012/5627Fault tolerance and recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/563Signalling, e.g. protocols, reference model

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、FECによる誤り訂正機能及び再送による誤り訂正機能を用いた通信におけるデータ再送制御方法及びデータ再送制御システムに関する。
【0002】
【従来の技術】
多種多様な情報をATMセルを用いた通信形態に適応させるには、ATM網と上位レイヤとのインタワークが必要であり、その機能を備えたAALがATMレイヤと上位レイヤの間に存在する。
【0003】
図31に、ATMアダプテーションレイヤの一例としてAALタイプ5の位置づけを示す。タイプ5の場合、AALは大きく分けてCSレイヤ(Convergence Sublayer)とSARレイヤ(Segmentation and Reassemble)の2つのサブレイヤからなっている。CSレイヤはさらに2つのサブレイヤからなっており、CPCSレイヤ(Common Part CS)はサービスの種類に係わらず必要となる処理を、また、SSCSレイヤ(Service Specific CS)はサービスに依存して行われる処理を受け持っている。従って、SSCSレイヤがヌルの場合も有る。SARレイヤは、主にデータの分解/組立を行っており、送信時にはATMレイヤでATMヘッダを付与することができるサイズ、つまりペイロードサイズである48オクテットにデータを区切って下位レイヤに渡す処理を行う。それとは反対に、受信時には下位レイヤからペイロードサイズのデータを受け取り、CS−PDUに組み立ててCSレイヤに渡す。
【0004】
現在までに、AALは扱う情報の種類に応じて4つのタイプがITU−Tなどにより標準化されている。具体的には、AAL1は固定ビットレートの音声・画像などのリアルタイム通信、AAL2は可変ビットレートのリアルタイム通信、AAL3/4と5は可変データ通信用(但し、AAL3と5はコネクションオリエンテッド(CO)通信用、AAL4はコネクションレス(CL))となっている。
【0005】
この中でも、特に、AAL3/4と5はデータ通信用であることから、わずか1ビットのビット誤りでさえ許容されないようなデータの正確さ、換言すると受信したデータが送信したデータと完全に同一のものであるということを保証できるような信頼性が要求されるアプリケーションの存在が考えられる。また、AAL1、2といったリアルタイムアプリケーションで高いQOSが要求されるような場合にも、データ自体の信頼性が必要となってくることは言うまでもない。
【0006】
しかし、現状ではATM技術についてはプリミティブな部分の標準化に留まっており、AALにて誤り制御機能が十分には提供されていない。このため、正確さが要求されるデータ通信をAAL3/4、あるいはAAL5のユーザが求める場合、例えばAAL5であれば、標準の決まっていないCPCSレイヤよりも上位のレイヤに、信頼性を保証させるプロトコルを実装する必要がある。AAL5のCPCSレイヤ以下では仕様が固まっており、すでに標準化されているため、サービスに依存した新しい機能を付加する場合にはCPCSレイヤよりも上位のレイヤでなければならない。
【0007】
これまで知られている例としては、SSCSレイヤ(Service Specific Convergence Sublayer;サービス依存CSレイヤ)に再送制御を基本としたプロトコルを実装する方法(例えば、ITU−TのQ.SAALプロトコル)や、SSCSレイヤをヌルとし、その上位にトランスポートレイヤプロトコル(例えば、TCPやOSI/TP4など)を実装する方法などがある。
【0008】
上記のような方法は、全て再送によりその信頼性を確保する方法である。
【0009】
しかしながら、(1)大容量トランザクションなど、大容量で実時間性が求められ(すなわち再送制御が基本的に許されない)、かつ信頼性も要求されるアプリケーションが今後ますます増えていくと考えられる。
【0010】
また、(2)LAN、MAN、WANなど、通信網の広域化がなされている。通信網が広域であればあるほど、上記のレイテンシイの確保と、再送による誤り制御とは相いれないものとなってくる(情報の再送には莫大な時間がかかる)。
【0011】
また、(3)一般に、再送による誤り制御を行う方式においては、再送の単位は上位レイヤパケット群(具体的には、例えばTCPパケットや、レイヤ4パケットグループ)であり、セルの廃棄といった比較的小さな単位のデータ消失に対し、大きなデータの再送を求めるものとなっており、網資源の浪費につながる場合がある。
【0012】
このような理由により、上述した再送を基本とする誤り制御方法をATM端末上に実装するのみでは対処が難しいデータ通信領域が、今後ますます増大していくことが考えられる。特に、リアルタイム性が重視される場合には、リアルタイム性の確保が必須であり、再送を基本とする誤り制御方法による対処では極めて難しい。
【0013】
そこで、1994年電子情報通信学会春季大会にて本発明者らは、“B−786 ATM網における誤り制御方式、FEC(Forward Error Correction)on AAL Type 5”と題してFECをAAL5に実装する方法を提案している。この方式は、送信するデータに対して誤り訂正符号を付与して通信を行い、網内にて多少の情報の廃棄や誤りが生じた場合でも受信側において消失情報の再生を行うという、信頼性のある通信を行うための別のアプローチを適用したものである。より具体的には、AAL1のCSレイヤにおけるオプションとして用意されている誤り訂正符号と同様の符号をAAL5のSSCSレイヤ以上の部分に適用するものである。AAL1では、送信側から受信側へ音声・映像などのリアルタイム通信を行うため、再送が現実的にできないことから、該データに誤り制御符号を付与して、伝送中のエラーに対する耐性を強くするといった工夫が行なわれている。この方法と同様のインタリーブ方式を用いて、FEC冗長コードをAAL5のデータに対して付加することによって(再送を必要としない)リアルタイム通信や、信頼性のある通信を保証することができる。
【0014】
ここでAAL3/4でなく、AAL5を用いた理由としては、例えば以下の点があげられる。
【0015】
(1)次世代通信方式としてATM方式が本命視される中、ITU−TやATMフォーラムなどの標準化機関により標準化が進められているデータ通信用AAL(具体的にはAAL5)が、今後の高速端末(マルチメディア端末を含む)に実装されていく可能性が極めて高いこと。
【0016】
(2)AAL5は、高スループット、低レイテンシイを目的としていること。
【0017】
ただし、上記方式をタイプ5以外のAALにも実装可能であることはもちろんのことである。
【0018】
この実装にあたって、AAL1で行われているようなFECを行うためには、送信側において、上位レイヤから渡されたデータを一度マトリクス状のインタリーバに書き込んで、冗長用の符号を付与した後に転送する必要がある。また、受信側では到着すべきであったが廃棄されてしまったり、到着が許容範囲以上に遅くなってしまったデータ(セル)が送信時にインタリーバのどの位置にあったかを特定する必要がある。AAL1では、デフォルトの処理としてSARレイヤでセルにシーケンスナンバ(SN)を付与することになっているので、オプションとしてFECを行う場合にもこれを用いることができ、必然的に誤り位置の特定を行うことができた。一方、AAL5には位置を特定するための処理は行われていない。そこで、FEC冗長符号およびSNの付与を行う機能を、現状ではヌルであるSSCSレイヤに持たせることを提案した。
【0019】
ところで、上記学会発表にて想定しているインタリーバはAAL1で用いられているものと同じであり、データを書き込めるサイズは固定であった。AAL1では、転送するデータが音声等のCBR(Constant Bit Rate;固定ビットレート)であり、一定の割合で連続して上位レイヤから渡されることが予めわかっているので、大きめの固定サイズのインタリーバでも問題はなかった。しかしながら、データ転送においては、どのようなタイミングで、どのような大きさのデータが上位レイヤから渡されるかわからない。よって、大きさの固定されたインタリーバでは、インタリーバのサイズよりもかなり小さいデータを転送する場合には、残りの領域にダミーデータをパディングしてダミーセルを送出しなければならない。データのサイズをインタリーバのサイズで割ったときの剰りが小さい場合、ダミーデータが増えてしまうので、特に問題になる。
【0020】
したがって、このような方法では、帯域を有効に使うことができず、余分なトラヒックを増やしてしまうことになりかねない。加えて、従来のAAL1と異なり、ダミーデータがインタリーバ毎に入るときには、どこからがダミーデータであるかを示すための表示部分がインタリーバ毎に必要であるので、この部分を受信側で的確に取り出せるための機構も必要となる。
【0021】
また、既存のインタリーバは、上位レイヤから渡されたデータを一度メモリに書き込んでから読み出しを行っているので、書き込みと読み出しの方向が垂直になる場合には、レイテンシイが少なくとも1つのインタリーバに書き込むのに必要な時間だけかかった。例えば、ITU−T勧告I.363においてAAL1のオプションとなっているインタリーバ1つあたりのサイズはデータ領域で47×124=5828オクテットあり、この領域に対して最初の列にデータを書き込み始めてから最終列の書き込みに入る所までの間、下位レイヤに対しての送出は全くできないことになる。
【0022】
他のインタリーブ方式としては、最近、ITU−T,SG XIII,Working Document TD/27(Rev.) (13−2)−E,March,1994 at Geneva,“Status Report on AAL1/2 for video signal transport”にあるように、斜めインタリーブ(読み出しと書き込みの方向が斜めに交差する)という手法が提案されている。しかしながら、この方法を用いても、垂直に交差する場合と比べてレイテンシイは半分にしかならないという問題があった。
【0023】
この遅延への対策として、松崎らにより示される文献(1994年春 電子情報通信学会 春季全国大会 B−853;「ATMセルとMPEG−2システム規格との整合性を考慮した誤り訂正手法の検討」)において、データの読み出しと書き込みが同じ方向であるかのごときインタリーバが図示されており、そのように書き込みと読み出しを行えば上記のような遅延自体は改善される。当該図に対しては何ら説明が与えられていないが、一般的に該インタリーバへはデータを書き込み、その後読み出すという操作が必要であり、またその読み書きのためのメモリ領域もインタリーバの大きさが必要である。すなわち、この方法においても、なお、インタリーバの大きなメモリ領域の確保が必要であるとともに、該メモリへの読み書きのための遅延が回避できないという問題があった。
【0024】
また、受信側で受信するデータにFEC冗長符号が付与されている場合、既存の方法(AAL1等)では、従来送信時にFEC冗長符号を付与するのと同程度のあるいはそれ以上の遅延がすべてのデインタリーバ処理で生じてしまうという問題もあった。それは、受信時には到着したデータを、データ領域かFEC冗長領域かにかかわらず、全て順次デインタリーバ内に格納していくという処理が必要であったからである。AAL1では、セル廃棄をSNで検出することは可能であるが、データ内のビット誤りを検出する機能がFEC冗長符号にしかないため、データが正しいことを確認するには、受信側は全てのデータに対してFECによる復号処理を行わなければならない。これらの処理に要する遅延は、ビットエラーがセル廃棄と比較して極めてまれであってほとんどのデータが正しいような場合には、特に無駄が大きくなってしまっていた。
【0025】
【発明が解決しようとする課題】
以上述べたように、従来のFECによる誤り訂正は、本来CBR伝送等に適切な方式であって、転送すべきデータが連続的に上位レイヤから到着することを前提としている。よって、特にAAL3/4、5のようなデータ転送を行うプロトコルに、従来のようなFECによる誤り訂正を実装するのは不向きであった。すなわち、AAL1で採用されている固定サイズのインタリーバでは、送りたいデータがそのサイズと比べて小さい場合には、データでインタリーバのデータ領域を満たすことができないので、残りの領域にはダミーデータを入れてダミーセルを送出するしかなかった。このような方法では、帯域を有効に使うことができず、余分なトラヒックを増やしてしまい、輻輳を招くことになりかねない。加えて、どこからがダミーデータであるかをインタリーバ毎に明確にし、それを受信側にわかるように伝送する機能が必要となるが、従来のAAL1のインタリーバでは全く考えられていなかった。
【0026】
また、既存の方法ではインタリーバに対して書き込みと読み出しの方向が異なるために、メモリに書き込んでいる間、メモリからの読み出しを待つことで遅延が存在する。この遅延はインタリーバの大きさにおよそ比例するものであり、比較的低遅延であると言われている斜めインタリーブの方法を用いても遅延の大きさを半分にすることしかできない。
【0027】
さらに、これへの解決法と考えられるデータの読み書きが同じとなるような既存の方法においても、インタリーバのメモリ領域の確保が必要で、また該メモリへの読み書きのための遅延時間が必要であった。
【0028】
また、AAL1等で行われている既存の方法では、誤り検出や復号のために受信時にも従来送信時と同程度あるいはそれ以上の遅延が生じてしまうという問題もあった。というのは、受信時には、到着したデータをデータ領域のものだけでなくFEC冗長領域のものも含めて全て、順次デインタリーバ内に格納し、FECにより誤り検出、さらには訂正を行なっていたからである。
【0029】
本発明は、FECによる誤り訂正機能及び再送による誤り訂正機能を用いた通信におけるデータ再送制御方法及びデータ再送制御システムを提供することを目的とする。
【0030】
【課題を解決するための手段】
本発明は、FECによる誤り訂正機能および再送による誤り訂正機能を用いた通信におけるデータ再送制御方法であって、送信端末において、受信端末から、該受信端末にてFECによる誤り訂正機能によっては訂正できない誤りを伴って受信された誤りのある通信データに対する再送を要求する再送要求を受信する第1の手順と、前記第1の手順にて受信された前記再送要求およびFECによる前記誤り訂正機能の誤り訂正能力に基づいて、前記誤りのある通信データを、前記FECによる誤り訂正機能および前記再送による誤り訂正機能を用いることによってリカバーするのに必要な再送データの最小量を決定する第2の手順と、前記第2の手順にて決定された前記最小量の再送データを、前記送信端末から前記受信端末へ再送する第3の手順とを有することを特徴とする。
好ましくは、前記通信は、前記送信端末から複数の受信端末へのマルチキャスト通信であり、前記第1の手順では、送信端末において、少なくとも一つの受信端末から前記再送要求を受信し、前記第3の手順では、前記最小量の再送データを、前記送信端末から前記少なくとも一つの受信端末へ再送するようにしてもよい。
また、本発明は、FECによる誤り訂正機能および再送による誤り訂正機能を用いた通信におけるデータ再送制御システムであって、送信端末において、受信端末から、該受信端末にてFECによる誤り訂正機能によっては訂正できない誤りを伴って受信された誤りのある通信データに対する再送を要求する再送要求を受信する第1の手段と、前記第1の手段にて受信された前記再送要求およびFECによる前記誤り訂正機能の誤り訂正能力に基づいて、前記誤りのある通信データを、前記FECによる誤り訂正機能および前記再送による誤り訂正機能を用いることによってリカバーするのに必要な再送データの最小量を決定する第2の手段と、前記第2の手段にて決定された前記最小量の再送データを、前記送信端末から前記受信端末へ再送する第3の手段とを有することを特徴とする。
好ましくは、前記通信は、前記送信端末から複数の受信端末へのマルチキャスト通信であり、前記第1の手段では、送信端末において、少なくとも一つの受信端末から前記再送要求を受信し、前記第3の手段では、前記最小量の再送データを、前記送信端末から前記少なくとも一つの受信端末へ再送するようにしてもよい。
【0034】
【作用】
本発明では、送信端末において、受信端末から、該受信端末にてFECによる誤り訂正機能によっては訂正できない誤りを伴って受信された誤りのある通信データに対する再送を要求する再送要求を受信し、受信された前記再送要求およびFECによる前記誤り訂正機能の誤り訂正能力に基づいて、前記誤りのある通信データを、前記FECによる誤り訂正機能および前記再送による誤り訂正機能を用いることによってリカバーするのに必要な再送データの最小量を決定し、決定された前記最小量の再送データを、前記送信端末から前記受信端末へ再送する。これによって、信頼性の高いデータ通信を効果的に実現することができる。
【0043】
(4)また、本発明によると、インタリーバのデータ部分と冗長部分を独立したものとすることが可能となる。これによって、ネットワーク上での誤り率が比較的小さい場合にはほとんどのインタリーバのデータ部分には誤りが無いと判断されるのでFEC処理が不要となり、よってSSCSレイヤでの処理時間を更に短縮することができる。
【0048】
【実施例】
以下、図面を参照しながら本発明の実施例を説明する。
【0049】
本実施例では、送信側端末と受信側端末との間にてATM網を介してAALタイプ5を用いたデータ通信を行う場合を示すが、本発明は他のタイプの方式にも同様に適用できることは言うまでもない。
【0050】
この送受信端末間では、例えば大容量トランザクション処理が行われており、両端末間におけるデータのやりとりは、低レイテンシ(再送制御が基本的に許されない)、高スループット、かつ信頼性のあるデータ通信が求められている場合を想定している。例えば、端末が公衆網を介してWAN接続されており、物理的に遠い距離にあるような場合も含まれる。
【0051】
ここでは、両端末間にてやりとりするデータにFEC(Forward Error Correction)のための誤り訂正ビットを付与し、送信中の伝送路やATMスイッチ内でセル廃棄が生じた場合に、再送せずに正しいデータを再生できる手法を示す。
【0052】
本実施例では、ATMの特徴であるセル廃棄のみを主に仮定して説明を進めているが、実際のデータ通信ではビット誤りも生じる可能性はある。このビット誤りに対する訂正方法としては、後述するようなSSCSヘッダ/トレイラにCRCフィールドを設け、セルごとにビット誤り検出を行うことによって誤りの検出されたセルは廃棄し、セル廃棄されたものとみなす方法がある。また、誤り訂正を行う符号として、インタリーバ内のどの位置にビット誤りが生じているのかわからなくても訂正可能であるリードソロモン符号(RS符号)を用いる方法もある。ただし、この機能を適用するには、受信側で必ず誤り位置の特定のための復号演算を行う必要がある。
【0053】
本実施例では、送信側端末と受信側端末は、それぞれATM端末でありAAL5を用いている。エラーフリーなデータを高いスループットで、かつ低いレイテンシで送受信できるように、AAL5のCPCSレイヤの上位レイヤであるSSCSレイヤにFEC機能を実装している。
【0054】
(第1の実施例)
まず、第1の実施例を説明する。本実施例は、1対1の端末が通信を行なう場合の例である。
【0055】
図1に、本実施例の送受信端末のプロトコルスタックの構造を示す。これは、Uプレーン通信(アプリケーション間の通信)を行なう場合のプロトコルスタックである。図中、1はATM網、3はATM交換機を表している。
【0056】
送信側端末2tおよび受信側端末2rでは、ともに大容量トランザクション処理のアプリケーションが動作しており、送信側端末2tから受信側端末2rに対して大容量・リアルタイムのデータが転送される。両端末2t,2rは、直接接続されているものとする。このエンドーエンドのATMコネクションは、アプリケーション間に予め確立される。従って、レイヤ2、3、4は通常ヌルとなっている。
【0057】
もし、何らかの理由で送信側端末2tと受信側端末2rのコネクション間に1つでもルータが介されている場合には、そのルータはSSCSレイヤの処理として同様のFEC処理を行えることが必要である。
【0058】
AALレイヤではすでに標準化が決まっているAAL5を実装しており、標準のAAL5の上のSSCSレイヤに、本発明のインタリーバ処理とFEC処理を実装している。これにより、エンド−エンド間で信頼性のある通信を実現している。
【0059】
ただし、より信頼性を増すために、上記でヌルであったトランスポートプロトコルのレイヤ4にもライトウェイトな再送制御プロトコルを実装していてもよい。FECには冗長の程度に応じて訂正能力限界があり、通常はエラーは訂正能力の範囲内におさまるように設計されるべきであるが、万一その範囲を越える場合(すなわち訂正不可能な場合)も考えられる。再送制御プロトコルを実装すれば、FECの能力を越えてしまうほど多量の廃棄が生じるようなことが仮にあった場合、遅延の増大は生じるとしても、データの信頼性だけは保つことができる。
【0060】
図2に、送信側端末2tおよび受信側端末2rの内部構成を示す。
【0061】
送信側端末2tは、アプリケーション処理(例えば広域トランザクション処理)を行い、受信側端末2rに対してアプリケーションデータを送信する。
【0062】
アプリケーション処理モジュール4tは、アプリケーションデータをSSCS処理モジュール6tに渡す処理を行う。
【0063】
SSCS処理モジュール6tでは、渡されたデータに対してインタリーブ操作を行い、FEC冗長コードを付与した後、そのインタリーバの列に対してSSCSヘッダ/トレイラを付与し、これをCPCS処理モジュール14tに渡す。
【0064】
CPCS処理モジュール14tでは、SSCS処理モジュール6tから受けとったデータに対して、AAL5のCPCS処理、すなわち長さ表示とCRCの2つのフィールドを各々演算して付与する処理を含むトレイラ付与作業を行ない、SAR処理モジュール20tに渡す。
【0065】
SAR処理モジュール20tでは、通常のAAL5のSARレイヤ処理としてCPCS処理モジュール14tから渡されたデータに対してセグメンテーションを行なう。
【0066】
セグメンテーションされたデータはATMヘッダ付与モジュール22tに渡され、ATMセルヘッダが付与され、さらに図示しない下位レイヤの処理が行なわれてATM網1にセルとなって投入される。
【0067】
一方、受信側端末2rは、ATM網1から入力されてきたセル流に対して、図示しない物理レイヤおよびATMレイヤの処理を行い、自端末宛のセルを選択して取り出す。そして、ATMヘッダ削除モジュール22rは、ATMヘッダを削除した後にSAR処理モジュール20rに渡す。その際、ATMセルヘッダのPT(ペイロードタイプ)のUUI(ユーザユーザ情報)領域に、CS−PDUの最後部を示すビットが表示されていたら、これをSAR処理モジュール20rに通知する。
【0068】
SAR処理モジュール20rは、受け取ったデータ(セルのペイロード)に対して、CS−PDUの最後部の情報を参照しながらAAL5のリアセンブリ処理を行なう。
【0069】
CPCS処理モジュール14rは、SAR処理モジュール20rから受け取ったCS−PDUに対してAAL5のCPCSレイヤ処理、すなわちCRCと長さ表示のチェック等を行ない、CS−SDUを再生する。
【0070】
SSCSヘッダ/トレイラ確認モジュール12rは、CS−SDUに付与されたSSCSヘッダ/トレイラを確認しながら削除し、デインタリーバモジュール8rに渡していく。その際、CPCSトレイラで誤りが検出されている場合には、その事実をFEC訂正モジュール10rに通知する。
【0071】
デインタリーバ8rで正しく再生されたデータは、SSCS処理モジュール6rからアプリケーションデータとしてアプリケーション処理モジュール4rへ渡されていく。
【0072】
ところで、上記した個々のモジュールは、ハードウェア処理あるいはソフトウェア処理のいずれで行なっても構わない。例えば、アプリケーション処理モジュール4t,4rおよびSSCS処理モジュール6t,6rは、各々の端末2t,2r内部に設けたCPUによるソフトウェア処理で、また、それらより下層のCPCS処理モジュール14t,14r、SAR処理モジュール20t,20rおよびATMヘッダ付与/削除モジュール22t,22rは、各々端末2t,2r内にハードウェアとして実装する方法もある。
【0073】
次に、送信側端末2tにおける処理をレイヤの順に従って説明する。
【0074】
(A)アプリケーション処理モジュール4tによる処理
まず、アプリケーション処理モジュール4で、例えば図3のようなアプリケーションデータが生成される。アプリケーションデータの長さは、アプリケーションに依って異なり、一般的には広いレンジを持つ可変長のデータである。アプリケーションデータの発生間隔もアプリケーションに依存し、連続する場合や断続的、断片的な場合など様々なケースが考えられる。
【0075】
アプリケーション処理モジュール4tは、インタリーバモジュール8tに対してアプリケーションデータ(AAL−IDU)を渡していくが、1アプリケーションデータが終了した時点で、その旨をデリミタとしてインタリーバモジュール8tに通知する。
【0076】
(B)インタリーバモジュール8tによる処理
インタリーバモジュール8tは、アプリケーション処理モジュール4tから渡されたアプリケーションデータであるAAL−IDUを、マトリクス状メモリであるインタリーバのデータ領域の部分に順次書き込んでいく。書き込み方は、例えば図4の様に左上端から垂直方向に1列ずつ行う。
【0077】
インタリーバへの書き込みの方法として、ここでは図4に示した方向、順序に従う例を挙げるが、図5に示すような方法など、様々な書き込み順序、方向が可能である。
【0078】
FEC冗長領域内にはデータは書き込まず、書き込み終了後に各行のシンボルごとに対して予め決まった演算を行った結果を、対応するFEC冗長領域内の各行に書き込む。なお、演算を行った結果をメモリ内のインタリーバ領域に具体的に書き込まずに、論理的に別のメモリに格納し必要に応じて読み出し下位レイヤに渡すという方法も可能である。
【0079】
インタリーバのサイズは様々なものが考えられるが、例えば、AAL1では以下のようなサイズのインタリーバがオプションとしてITU−T勧告I.363によって標準化されている。横(列)のサイズとしては、1シンボルが1オクテットであって、データ領域124シンボル、FEC冗長領域4シンボルである。この場合の縦(行)のサイズは、セル長からSARヘッダ長を差し引いた長さ、47オクテットである。また、AAL1でのオプションの他の値として、同じシンボルサイズで縦のサイズが8シンボル、横のサイズがデータ88シンボル、FEC冗長領域6シンボルであるものも標準化されている。ただし、ここではこれらの値にこだわる必要はない。
【0080】
本実施例において、いくつかのインタリーバサイズの値を提示しているが、これらはいずれも、インタリーバがデータ領域としてとることのできる最大値を示している。すなわち、アプリケーションデータのサイズによって、それよりも小さく変化させることが可能である。アプリケーションデータのサイズがインタリーバの横のサイズを最大値まで用いた場合でも、その領域に入らないときには、2枚目のインタリーバ、3枚目のインタリーバと言うように、AAL1でのCBR転送と同じように複数枚のインタリーバを用いて転送することとなる。また、縦のサイズはセルのペイロードのサイズとの関係でいくつか実装に適当なサイズがある。
【0081】
例えば、インタリーバの1列に対して1つのSSCSヘッダ/トレイラとAAL5のCPCSトレイラを付与する方法をとったものとする。この場合には、縦の長さはセルのペイロード長からSSCSヘッダ/トレイラ分(ヘッダ/トレイラ部分によるオーバーヘッドをなるべく小さくするように、1オクテット等が考えられる)とCPCSトレイラ分(8オクテット)を除いた長さ(48−1−8=)39オクテット等が考えられる。また、1列を複数セル、例えば2セル分とすれば縦のサイズは(39+48=)87オクテット等が適当であると考えられる。
【0082】
縦のサイズが大きい場合と小さい場合を比べてみる。上述したものと同じ、インタリーバ1列をペイロードに持つSSCS−PDUについて比較すると、SSCSヘッダ/トレイラ長が同じならば、縦のサイズの大きい方が上位レイヤデータの転送効率(packing efficency)があがるという利点がある。一方、縦のサイズが長いと転送すべきデータが列の途中で終了してしまう可能性も高く、その場合にはその列の残りの部分をパディングで満たさなければならず、逆に転送効率が下がってしまうという問題点もある。縦のサイズとして適当な値を選ぶには、このようなトレードオフを加味すべきである。さらに、あまりに大き過ぎると、ランダムなビット誤りを含み易い問題あるいはFEC符号のオーバーヘッドが上がる問題などが生じる。
【0083】
横のサイズに関しては、従来と同じ誤り訂正符号として1シンボルがnビットのリード・ソロモン符号(以下RS符号と記す)を用いるとして、通常、最大長が(2^n)−1シンボルに限定される。拡張RS符号を利用すると、それよりも1あるいは2シンボル長いものも可能であるが、拡張RS符号は通常のものと比較して、受信後の復号処理、誤り訂正処理が複雑である。従って本実施例では、あえて拡張RS符号を用いないこととする。nの値としては、ソフトウェアによる処理の容易さも考慮して、8またはその倍数を用いることが一般的である。
【0084】
図6に一例を示すように、上記の値を越えない範囲で、インタリーバのサイズとして、横のサイズを4オクテットの倍数にする方法がある。この方法では、例えばRS符号で1シンボルをnビットとしたときに、nと列シンボル数との積が32の倍数になることを意味している。FEC機能をソフト処理で実現する場合を想定すると、計算機で仮想的にインタリーバへのデータの書き込み、読み出しを行うことになるが、計算機のCPUはメモリへのアクセスが4オクテット単位の方が扱いやすいので、有効なデータが足りない場合には4オクテット単位になるようにパディングをしてでもアライメントをとった方が良い場合もある。
【0085】
後で詳しく述べるが、今度はCPCSトレイラをデータ領域とFEC冗長領域の各々に1つずつ付ける例を考える。この場合、インタリーバの縦の長さはSSCSヘッダ/トレイラ分のみを考慮すれば十分である。よって、SSCSレイヤのオーバヘッドを例えば1オクテットとして、(48−1=)47バイトが良いと考えられる。しかしこの方法では、CPCSトレイラによって増加する8オクテットの増加分もセルのペイロードとして伝送しなければいけないことを考慮していないので、そのための8バイト分をインタリーバのデータ領域内に確保する方法か、あるいはCPCSレイヤのアライメントをとる機能に任せる方法のいずれかをとる必要が生じる。CPCSレイヤのアライメントをとる機能に任せる場合には、CPCSトレイラのみを1セルに格納することになるので40バイトのパディングが必要となり、オーバーヘッドが大きくなってしまう問題点がある。従って、インタリーバのデータ領域にあらかじめCPCSレイヤ用に8オクテットのスペースを確保しておく方がパッキング効率は良い。
【0086】
前述したように、データ転送の場合、AAL−IDUのサイズは一定でなく、SSCSモジュール6tではこのサイズを認識し、さらに受信側SSCSモジュール6rにも知らせる必要がある。多くのプロトコルでは、SSCSモジュール6tでAAL−IDUの終了(デリミタ)を検出することができ、SSCSレイヤでは予めサイズを認識することが可能となっている。従って、送信側のSSCSレイヤにおいてインタリーバのどの位置までデータを書き込んだかを、何らかの手段で明記し受信側SSCSレイヤにわかるようにしなければならない。
【0087】
次に、これまで述べてきた種々の例に基づいて任意のサイズのAAL−IDUをインタリーバに格納していった最終的な様子をいくつかの例について説明する。これらの例では、あらかじめコネクション毎に用いるインタリーバの最大サイズ、FEC領域の大きさ、SSCS−PDUの大きさやフォーマットなどが呼設定時にネゴシエーションされているものとする。
【0088】
図7には、インタリーバの縦のサイズが39オクテットである例を示した。このサイズは、1列ごとに対して1オクテットのSSCSヘッダ/トレイラ(図7(b)のようにヘッダを付与している)とCPCSトレイラが1つずつ付いている例である。インタリーバの最大列数は128オクテットであり、各行に4オクテット分のFEC領域がある。
【0089】
また、この例は比較的大きなサイズのアプリケーションデータが格納された様子を示しており、複数枚(#1から#Nまで)のインタリーバに渡っている。もちろん、小さなサイズのアプリケーションデータであっても、図7に示したインタリーバの状態と同じように格納できる。図7(a)の#1は、データ領域がこの例で許容される最大値まで使用されているインタリーバであり、最後の1オクテットを用いてその列に含まれている有効なデータ量を長さ表示(LI)フィールドに表示する。また、図7(a)の#Nはデータ領域に未使用部分が残っている(アプリケーションデータが途中で終了した)インタリーバであり、最終列はパディングを含む場合もある。このインタリーバでも同様に最終列の最後の1バイトを用いて、その列の有効データ量をLIフィールドに表示する。よって、最終列の有効データ長とLIフィールドの1オクテットの和が39オクテットに満たない場合、その足りない分だけパッドを付加する。
【0090】
次に、図8に、インタリーバの縦のサイズが47バイトである例を示す。図9には、この場合のSSCSレイヤの処理の流れを説明するための図を示す。
【0091】
AAL−IDUが到着すると(ステップS11)、インタリーバへの書き込みを行う(ステップS13)。
【0092】
インタリーバが満たされると(ステップS14)、必要に応じてPADを挿入し、LIを書き込む(ステップS15)。そして、FEC冗長コードの計算を行う(ステップS16)。
【0093】
インタリーバからは、順次、列ごとのデータが読みだされ、SSCSヘッダが付与される(ステップS17)。
【0094】
そして、CPCS処理(ステップS18)、SAR処理(ステップS19)が行われ、ATMヘッダが付与され(ステップS18)、ATMセルとしてATM網を転送される。
【0095】
さて、図8は、インタリーバのデータ領域とFEC領域それぞれに対して1つずつCPCSトレイラが付与されている例である。図7の例と同じように、各列に対しては、1バイトのSSCSヘッダ/トレイラが付与される(図8(b))。また、この例も比較的大きなサイズのアプリケーションデータが格納された様子を示しており、複数枚のインタリーバ(#1〜#N)に渡っている。もちろん、小さなサイズのアプリケーションデータであっても、図8に示したインタリーバの状態と同じように格納できる。
【0096】
図8(a)の#1は、データ領域が最大値まで使用されているインタリーバであり、最後の9バイトを用いてその列に含まれているパディングの量をLIフィールド(1オクテット)に表示し、残り(8オクテット)は未使用とする。この8オクテットCPCSトレイラが付与される際に余分なパディングを行わなくてすむように、予めトレイラのサイズ分を確保しておくための領域である。また、図8(a)の#Nは、データ領域に未使用部分が残っている(アプリケーションデータが途中で終了した)インタリーバであり、最終列はパディングを含む場合もある。このインタリーバでも同様に最終列の最後の1バイトを用いてその列のパディングの量をLIフィールドに表示する。よってパッドは、最終列の有効データ長とLIフィールドの1オクテットの和が47オクテットに満たない場合、その足りない分だけ付加される。
【0097】
次に、図7と図8で用いられているLI表示の方法について詳しく説明する。図10には、その例を示した。(a)は図7に対応する場合で、データ領域内の途中の列の最下行でアプリケーションデータが終了した場合を表している。この場合最終列には有効なデータは含まれていないので、LIフィールドは0となり、38オクテット分のパディングをする。また、(b)は図8に対応する場合で、アプリケーションデータを書き込んでいって終了した行が38〜47オクテット目であった場合の表示方法を示している。この時は、LIフィールドにはパディングの量を示すようにする。この様な方法をとることで、送信側から受信側に正確にアプリケーションデータの量を伝えることが可能となる。
【0098】
同じアプリケーションのデータであれば、複数のAAL−IDUを1つのインタリーバ内に格納することも可能である。よって、1つのAAL−IDUのデリミタ検出後に、タイマを起動させ、ある一定時間次のAAL−IDUが到着するまでそのインタリーバの送出を待つこともできる。
【0099】
タイマーの設定は、アプリケーションがどれくらいのレイテンシを要求するかによっても様々な設定が可能である。例えば、遅延に対する要求条件の厳しくないファイル転送等では数秒待つことも可能であり、またそれとは逆で、動画像などの場合にはタイマーのしきい値を0に設定し帯域を最大限まで使用することもできる。
【0100】
アプリケーションデータをデータ領域に書き込んだ後には、レイテンシイを小さく抑えるためにも、できるだけ速やかにFEC冗長領域を計算することが望ましい。
【0101】
図11に一例を示すように、インタリーバからの読み出しは書き込んだ方向、順序と同じに、1シンボル書き込み終了後引き続いて1シンボル読み出しをすぐに行う。書き込みと読み出しを交代に、または並列に行うことによって、今まで書き込み終わるまで読み出しができなかったというボトルネックが解消され、SSCSレイヤの上位レイヤから下位レイヤに渡すまでにかかる時間が大きく減少する。データ読み出し後は、順次SSCSヘッダ/トレイラ付与モジュール12tへ渡していく。
【0102】
以上のように行うと、インターリーブにより生じていた遅延がほとんど無視でき、SSCSレイヤがヌルの場合とかなり近い速度が得られる。以前のインタリーブでは、書き込みは水平方向に、読み出しは垂直方向にと、1つのデータ領域内全てにデータが書き込まれてから(全てが埋まらない場合にはPADをしてから)読み出しを行っていた。これに対して本実施例の方法では、下位レイヤに渡すデータの読み出し方向を書き込み方向と同一にし、特にデータ領域に関しては書き込みと読み出しがほぼ同時に行われるので、データ領域全てを書き込むまでデータの送出を待たなくてもよくなり、遅延がかなり小さくなる。
【0103】
(C)FEC付与モジュール10tによる処理
FEC付与モジュール10tでは、図12に例を示すように、データ領域の範囲内に書き込まれたデータの各行に対して、それぞれのFEC冗長領域を計算し対応する位置に書き込んでいく。n行目に対するFEC冗長領域は、n行1列、n行2列、・・・、n行m列のm個のシンボルを用いて演算することによって得られた結果である。
【0104】
パディングがなされていないインタリーバの場合は図12(a)のように、また、インタリーバの途中でデータが終了している場合は図12(b)のように未使用部分を除いて各行に対応するFEC冗長領域を計算していく。(b)の場合に、n行目に対するFEC冗長領域を計算するには、n行1列からn行4列までのシンボルを用いて、未使用部分が無い場合と同じ演算方法でFEC冗長領域を計算することが可能である。
【0105】
図13に、1列が1つのCPCS−SDUとなる場合の例を示す。インタリーバは、AAL−IDUであるデータが書き込み終わったら、図13(a)のように、その列の残りの部分をPAD(例えばシンボル中のビットがall“0”またはall“1”)で埋めて、さらにその列の最後の1シンボルの部分に、その列に含まれる有効なデータの長さを書き込む。もし、ある列の最後までデータが埋まっていたら、図13(b)のように、次の列を使って長さ表示を行う。要するに、列の最後に長さ表示が含まれている列の前の列はデータで満たされることになる。
【0106】
データが全く書かれていない残りの列に対しては、PAD等は行なわない。データ領域の最後は次のステップで付与されるSSCSヘッダ/トレイラで受信側が認識できるので、余分なPADをしてインタリーバの最大サイズに合わせる必要はない。また、データを書き込んでいない部分はセルとなって転送されることもない。この様な操作を行うと、CBR転送に適していたインタリーバをデータ転送にも容易に適用することが可能となるのである。
【0107】
FEC冗長領域を計算する際、データが書き込まれていずダミーの入っていないデータ領域の各列はFEC冗長コード演算のために代入するパラメータが存在しないので、演算数が少なくて済むことになる。しかしながら、ダミーとして0または1がパディングされていて、しかもそれをFECの計算のためのデータとして用いる従来の場合には、その値を用いてデータがある列と同様の計算を各シンボルに対して行わなければならないので、データ領域が有効なデータで満たされている場合と同じだけの計算時間が必要になってしまう。したがって、残ったデータ領域にPADを入れず、かつその領域をFECのための演算領域からはずす場合は、演算量が減少するため簡単に短時間でFEC冗長の計算が行えることになり、より高速にプロトコル処理できることになる。
【0108】
図13は、データを書き込むという観点から、仮想的にインタリーブ行列をおいて、そこに左上から書き込む様子を示しているが、FECのための冗長を演算するような立場からは、実際には図14のように書かれていることと等価になる。すなわち、マトリクスの左側(すなわちFECのための情報部分の上位の方)はダミーのPADがつけられていて、データ領域の右端につめられて実データが置かれている構成である。実データ領域の中では、番号の若い(すなわち早く上位レイヤから来た)データほど左側にある。すなわち、FEC演算をする符号語、という点からは、下位の実データ分の情報部分とFEC冗長部分とがあるように見える。この様子を、図15(a)に示す。
【0109】
他には、例えば図16の様にデータが全く入らない列にダミーデータを入れてFEC冗長領域を計算するが、それらを含むダミーセルは送出しない方法もある。網に送出されるデータ量は図13の場合と同様に最低限に抑えることが可能である。
【0110】
それ以外にも、前述した図5(a)のようにシンボル毎にインタリーブのデータ領域中にランダムに配置したり、図5(b)のように行の順序をデータ領域の中で自由に設定することも可能である。これらの場合、同様にデータの全く入らない列にいれたダミーデータ列は送出しないことにより、網の送出されるデータ量はやはり図13や図16と同じく最低限に抑えることが可能である。
【0111】
これらの例では、あらかじめ通信前に送受信双方でインタリーブ行列への挿入方法についてあらかじめネゴシエーションしておくことは言うまでもない。
【0112】
図16および図5は、図13とは異なり、FEC演算の立場から見たインタリーブマトリクス構造はそれぞれの図と同一である。すなわち、各符号語は、図16の場合は、図15(b)にあるように、上位に実データの情報、その下にダミーの(シンボル値0の)情報があるような情報部分とFEC冗長部分とから構成される。また、図5(b)のようにランダムに実データ列を配する場合は、図15(c)のように実データとダミーデータがまだらに入ったような情報部分と、その右側の冗長部分から成る。
【0113】
図13、図16および図5共に、実データ部分はセルとして伝送されるが、ダミー部分は送出されない。受信側では、ダミー部分には0が送信されたものとみなして復号が行われる。
【0114】
図13および図16に関するFEC冗長領域の作成方法については、後でより詳細に説明する。以下のプロトコル処理の流れでは、代表例として図13のインタリーブマトリクスへの書き込み方法であるものとして説明を行う。
【0115】
FEC冗長領域を演算し始めた時には、データ領域に一度書き込まれたデータはSSCSヘッダ/トレイラを付与するためにSSCSヘッダ/トレイラ付与モジュール12tにほとんど渡されている(図11)。図7および図8のように、FEC冗長領域に書き込まれた計算結果も、演算終了次第、データ領域と同様に列方向に1列ずつ読み出され、SSCSヘッダ/トレイラ付与モジュール12tへと順次渡されていく。FEC冗長領域の計算にかかる時間は、一般にデータを水平方向に書き込むのを待つ時間よりもはるかに小さいことがわかっている。
【0116】
(D)SSCSヘッダ/トレイラ付与モジュール12tによる処理
SSCSヘッダ/トレイラ付与モジュール12tでは、インタリーバモジュール8tから列単位で読み出されたデータに対して、SSCSヘッダ/トレイラを付与しCPCS処理モジュール14tに渡していく。SSCSヘッダ/トレイラを付与する単位は、図17(a)のようにインタリーバの1列ごとでもよいし、図17(b)のように、一定の列数ごと、例えば2列ごとをひとまとめにしたものなども考えられる。すなわち、インタリーバの複数列にSSCSヘッダ/トレイラを付与したものがSSCS−PDUとなる。複数のインタリーバ列をSSCS−PDUとする場合には、ひとまとめとする列数が最低限FECの訂正能力を越えないようにする。FEC方式の誤り訂正では、付与している誤り訂正符号のオーバーヘッド(冗長部分)の量によって、訂正できるシンボル数(インタリーバの列数)に限界がある。例えば、前述の図8におけるインタリーバのFEC冗長領域の列サイズが4の場合には、データとFEC領域全体に対して、4列までの消失誤りを訂正することができる。
【0117】
ここで付与するSSCSヘッダ/トレイラには、それが付与されているデータ列がインタリーバのどの位置(何列目)にあったかを確実に特定するための情報が含まれていなければならない。
【0118】
代表的なFECを行う誤り訂正符号としては、Reed−Solomon符号があるが、この誤り訂正符号を用いて容易に訂正するための前提として、「誤り位置が特定されていること」という条件がある。もし、誤り位置が特定されていない場合、その位置特定のための計算量を多く必要とし、また、訂正能力も位置特定時のおよそ半分のシンボルエラーしか訂正できない。誤り位置(ここでは誤りが生じているデータを含むセルのインタリーバ内の位置に相当する)を特定するには、何らかの形で送信時にセル毎の識別子を付けておく必要がある。その識別子として最も有効であろう方法は、例えばセル単位にSNを付与することである。また、SNにもある程度の信頼性を持たせる必要がある。
【0119】
SSCSヘッダ/トレイラとしては、例えば図18のようなフィールドを持たせることができる。ここでは、1バイトの長さのヘッダの例を示している。
【0120】
インタリーバの横のサイズの一例として、CPUを用いてのソフト処理のためには、データ長を該CPUがアクセスする単位として4バイトにアライメントすることが望ましいことを前述したが、ここでも同様のことが言え、ヘッダ/トレイラ長を4バイトとすることも可能である。
【0121】
ここで、図18のSSCSヘッダの一例について説明する。
【0122】
(a)は、同期ビットであり、インタリーバの先頭のSSCSヘッダ/トレイラであることを示す。例えば、先頭の時は“1”、それ以外は“0”と表示する。
【0123】
(b)は、シーケンスナンバであり、インタリーバ中の順序を表示する。例えば、セル廃棄された時の抜けが検出できる。
【0124】
(c)は、SNP(Sequence Number Protection)ビット、すなわちシーケンスナンバに対するプロテクトのためのパリティビットであり、シーケンスナンバの誤りを検出する。
【0125】
(d)は、D/F(Data/Flag)ビットであり、ペイロードの中身がデータであるかそれともFEC冗長コードであるかを示す。
【0126】
(e)は、B/E(Begin/End)ビットであり、データとFEC冗長コード領域各々の最後であることを示す。例えばインタリーバ内で、データ領域およびFEC冗長領域の最後にあたるSSCSヘッダ/トレイラのこのフラグを“1”、それ以外を“0”に設定する。
【0127】
インタリーバからは、データ領域に引き続いてFEC冗長領域が読み出され、SSCSヘッダ/トレイラ付与モジュール12tに渡されてくる。SSCSヘッダ/トレイラの付与は、これらのデータ列に対して、上述したようなヘッダ/トレイラを一定間隔に挿入していくことで実現される。ここでいう一定間隔は、インタリーバにおける1列分の長さであったり、もしくは複数列分の長さである。
【0128】
図19には、インタリーバ1つ分に対するSSCSヘッダ/トレイラの例を示す。ここで示した値は、誤りの無い正しいSSCSヘッダ/トレイラの一例である。
【0129】
同期ビットは、インタリーバの先頭にあるSSCS−PDUを示し、シーケンスナンバはこの場合4ビットで循環している。図19の例では、シーケンスナンバはデータ領域に付与されている最初のSSCSヘッダ/トレイラを0としてスタートし、16を法として増加しており、データ領域の最後のSSCSヘッダ/トレイラとFEC冗長領域の最初のSSCSヘッダ/トレイラは連続している。また、別の方法としてFEC冗長領域の最初のSSCSヘッダ/トレイラでシーケンスナンバをクリアし再度0からスタートさせた場合でも実現は可能である。ただし、シーケンスナンバを途中でクリアせずに図19の例のように連続していた方が、データ領域とFEC冗長領域の境界でセル廃棄が生じた場合もセル廃棄の検出が容易に行えるという利点がある。また、1つのAAL−IDUのサイズがかなり大きく、複数のインタリーブに渡って格納される場合に対しては、連続したインタリーブ間に連続したシーケンスナンバを付与する方法と、データ領域の先頭のSSCSヘッダ/トレイラには必ず0を付与する方法との2通りが考えられる。データ領域の列数は固定長でないが、SSCSヘッダ/トレイラの別のフィールド(D/FビットやB/E)の表示や、FEC冗長領域のサイズが予めエンドエンド間でネゴシエーションされていることから、データ領域とFEC冗長領域が交代して転送されてくる境界を正しく識別することが可能である。
【0130】
シーケンスナンバプロテクトは4ビットのシーケンスナンバに対して偶パリティを計算するものとする。もちろん、その代わりに奇数パリティを用いても構わない。
【0131】
本実施例では、D/Fビットは1であればインタリーバ内のデータ領域であることを示し、0であればFEC冗長領域であることを示している。B/Eビットは、ENDを1として、データ領域のSSCS−PDUの最後のPDUとFEC領域のSSCS−PDUの最後のPDUにマークをしている。
【0132】
図19で示したSSCSヘッダ/トレイラで、B/Eフィールド=1,D/Fフィールド=データ、の値を持つヘッダ/トレイラが、そのインタリーバのデータ領域の最終列に含まれる有効なデータ長を示すLIフィールドを含むSSCS−SDUに付与される。
【0133】
(E)CPCS処理モジュール14tの処理
順次CPCS処理モジュール14tに渡されたデータには通常のAAL5処理が行われ、長さ表示とCPCSトレイラが付けられる。CPCS−SDUとなる単位の例として、図7と図8の2種類を挙げる。図7では、SSCSヘッダ/トレイラとそのペイロードが1組となったものが、CPCS−SDUとなる単位である。図8では、インタリーバのデータ領域とインタリーバのFEC冗長領域のそれぞれ(合計2つ)が、CPCS−SDUとなる単位である。
【0134】
図7の場合は、インタリーバの1列ごとにSSCSヘッダ/トレイラを付与する方法をとり、それぞれに対してAAL5のCPCSトレイラが付与される。この方法ではAAL5のCRCがインタリーバの一列に対して適用されるので、もし受信側でエラーが発見された場合には、該インタリーバの特定の一列にエラーのあることが認識される。また、もしセル廃棄が発生したとしても、SSCSヘッダ/トレイラにおけるシーケンス番号の抜けから、どのインタリーブ列が受信側に到着しなかったかを把握できるようになっている。このようにして、セル廃棄やビット誤りの位置を正確に特定することが可能となる。
【0135】
図7の応用として、インタリーバの1列ではなく、複数列毎にSSCSヘッダ/トレイラを付与する方法もある。図7ではSSCSレイヤのオーバヘッドとインタリーバデータの一列とCPCSトレイラの和が例えば48オクテットになるようにインタリーバを設計して、レイヤ毎に余分なパディングを防ぐような工夫をしている。これを応用した場合においても、インタリーバの縦の長さを工夫して、SSCS−PDUの長さとCPCSトレイラの長さの和が48オクテットの倍数か、あるいはそれが通信を行う端末の操作上不可能な場合でも、なるべくCPCSレイヤでのパディングを少なくするような設計が、データ転送効率をあげる上で望ましい。
【0136】
図8の場合は、AAL5トレイラも1つのインタリーバに対して2つだけ付与する方法をとる。2つとは、データ領域全体に対して1つのCPCSトレイラを付与し、FEC冗長領域全体に対してもう1つのCPCSトレイラを付与することを意味している。前者については、パディングを最小限にするために、予めインタリーバモジュール8tでインタリーバのデータ領域の最後の8バイト分は未使用にしてあるので、SSCSレイヤから渡されたデータにCPCSトレイラを付与すると、ちょうど48バイトの倍数になり、SAR処理を行うときにパディングの必要がなくなる。一方、FEC冗長領域に対してCPCSトレイラを付与する場合には、予めインタリーバモジュール8tで未使用部分を確保しておくことができないので、図8のようにインタリーバの一列を47オクテット長とした場合には、40オクテットのパディングが必要になってしまう。しかし、例えば図7と比較して、AAL5のトレイラ数が少ない分のオーバーヘッドを小さくすることができ、転送効率があがることになる。また、上記パディングを減らしたい場合には、例えば図8において、インタリーバの長さを変更し、FEC冗長領域を含むSSCS−PDUとCPCSトレイラの長さの和を48オクテットで割った余りが0であるかあるいは、48オクテットに十分近い値であるようにすることも可能である。詳しくは、受信側のSSCSヘッダ/トレイラ確認モジュール12rの説明において述べる。
【0137】
(F)SAR処理モジュール20tによる処理
SAR処理モジュール20tでは、CPCS処理モジュール14tから受け取ったデータ(CPCS−PDU)のセグメンテーション処理が行なわれる。ただし、インタリーバの縦のサイズ、SSCSヘッダ/トレイラのサイズ、CPCSトレイラのサイズの合計が48オクテットになっていれば、セグメンテーションは行なわれない。一方、例えば、CPCS−PDUが図8のようになっていて、CPCSトレイラがデータ領域、FEC冗長領域のそれぞれに対して1つずつ付与されているような場合には、セグメンテーションが行われる。
【0138】
48オクテットに区切られたSAR−PDUは、ATMヘッダ付与モジュール22tに渡される。その際、ATMヘッダ付与モジュール22tに渡されるSAR−PDUがCS−PDUの最後部にあたるデータである場合、その旨をATMヘッダ付与モジュール22tに通知する。
【0139】
(G)ATMヘッダ付与モジュール22tによる処理
ATMヘッダ付与モジュール22tでは、呼設定時に定められたATMセルヘッダを付与した後、物理レイヤの処理を介して、ATMセル化されたデータをATM網1に対して送出する。SAR処理モジュール20tからデータ(SAR−PDU)を受け取る際、これはCPCS−PDUの最後部である旨の通知を受けている場合は、ATMセルヘッダのペイロードのUUIフィールドに、これを告げる旨のビットを立てておく。
【0140】
以上が、送信側端末2tにおける処理の流れである。
【0141】
次に、受信側端末2rにおける処理をレイヤの昇順、すなわち各処理モジュールの動作する順に従って説明する。
【0142】
(H)ATMヘッダ削除モジュール22rによる処理
ATMヘッダ削除モジュール22rでは、ATM網1から受け取ったセル流について、物理レイヤ処理を行った後に呼設定時に定められたATMセルヘッダを有したセルを受け取った場合、これをフィルタリングして受け取り、その他のセルは無視し、ATMセルヘッダを削除してSAR処理モジュール20rに渡す。ここで、ATMセルヘッダのペイロードタイプのUUIフィールドに、CPCS−PDUの最後部であることを示すビットが立てられていたらその旨をSAR処理モジュール20rに対して通知する。
【0143】
CPCS−PDUの最後部を構成するセルであることを示すビットを含むセルが廃棄された場合、図20のように、次に到着するCPCS−PDUと同一のCPCS−PDUとして上位レイヤに渡されてしまう。しかしながら、CPCSトレイラのチェックによりこの誤りは検出される。さらに、その誤りを含むCPCS−PDUをSSCS処理モジュール6tまで渡すことで、FECを用いて訂正することが可能なのである。
【0144】
(I)SAR処理モジュール20rによる処理
SAR処理モジュール20rでは、ATMセルヘッダ削除モジュール22rから渡されたデータ(SAR−PDU)に対し、CPCS−PDUの最後部であるという表示を参照してデータのアセンブリを行う。アセンブリ終了後、CPCS処理モジュール14rに該データが渡される。
【0145】
(J)CPCS処理モジュール14rによる処理
CPCS処理モジュール14rでは、SAR処理モジュール20rから受け取ったCPCS−PDUに対し、AAL5の処理であるCRC演算処理、および長さ表示の確認を順次行う。
【0146】
ここで、CRC演算処理、および長さ表示の値のいずれかに誤りが検出されたかどうか、結果をSSCS処理モジュール6rに通知する。この場合、どちらの演算で誤りが生じたかを知らせる必要は必ずしもない。
【0147】
(K)SSCSヘッダ/トレイラ確認モジュール12rによる処理
SSCSヘッダ/トレイラ確認モジュール12rでは、主にSNに抜けがないか、さらに、CPCSトレイラで誤りが検出されている場合にはその通知を受け取る等の確認しながら、ヘッダ/トレイラを取り除いていく。
【0148】
CPCSトレイラで誤りが検出されていることを通知されている場合には、そのCPCS−PDUに含まれるSSCS−PDUのいずれかが廃棄されている可能性が高いので、SNをチェックしセル廃棄の位置を特定しなければならない。
【0149】
SSCSヘッダ/トレイラの誤り(ビット誤りも含む)としては様々な状況が考えられる。ここでは、図18の例に示したフィールドを持ったヘッダ/トレイラの誤りの対処について説明する。
【0150】
(a)の同期ビットはインタリーバの先頭を示すビットである。そのSSCS−PDUがインタリーバの先頭のデータを含んでいる場合にはそのビットをたてて1とし、その他の場合には0とするものである。もし、この同期ビットが反転してしまうような誤りが起きた場合には、そのSSCS−PDUから新規のインタリーバであることがわからないかも知れない。しかし、その前のSSCS−PDUの(d)のFEC冗長コードである表示と(e)B/Eビットが最後であることを示していることによって、同期ビットが反転していても新規のインタリーバの先頭を検出することが可能である。
【0151】
(b)のシーケンスナンバでビット誤りが生じた場合には、その後の(c)のシーケンスナンバプロテクション(例えば、偶数パリティ)を用いて誤り検出することができる。前後のシーケンスナンバが正しいことがわかれば、ヘッダ/トレイラを取り除いた後、SSCSのペイロード部はインタリーバの相当する位置に書き込むことができる。また、その代わりに、疑わしいデータを廃棄してしまってセル廃棄と見なしてFEC冗長コードを用いて正しいデータを再生させることも可能である。
【0152】
(d)のD/Fは、ペイロード部が含むビット列がデータであれば1、FEC冗長コードであれば0というように、ペイロードのタイプを示す。また、(e)のB/Eは、データを含む複数の連続したSSCS−PDUの中でそのSSCS−PDUが最後であることを示す。FEC冗長部についても、同様に、連続したSSCS−PDUの中で最後であることを示す。従って、B/Eビットが1の(要するにそのSSCS−PDUが最後のデータである)場合に、この表示がビット誤りを起こしたとする。しかし、次のSSCSヘッダ/トレイラのD/Fビットが1から0になり、そのペイロードにはFEC冗長コードを含むことが知らされるので、SSCS確認モジュール12rでは正しく認識することが可能である。
【0153】
上記では、伝送路においてビット誤り率が例えば10^(−10)以下といった微小なネットワークであるような場合を想定していることから、該SSCSヘッダ/トレイラおよびその前後のSSCSヘッダ/トレイラには同時に2ビット以上のビット誤りが存在しないことを前提として記述をしている(ただし、^はべき乗を意味する)。しかしながら、実際には、極めて珍しいことではあるが、その範囲に2ビット以上の誤りが含まれることもあり、その場合には、例えば、インタリーバのFEC冗長領域の大きさが固定であることや、シーケンス番号が連続していること等、上記以外の条件を加味して正確なSSCSヘッダ/トレイラを再現することが可能である。さらには、該SSCSヘッダ/トレイラ全体の長さを例えば2オクテット長にし、その一部または全体を誤り訂正符号化することによって、ほぼ完全にビット誤り対策が施されることになる。
【0154】
次に、以上のような対誤り性を考慮した上で、具体例として図7と図8で示した送信データを受信した場合の処理について説明する。また、各々の場合で、CPCS処理モジュール14rからCPCSトレイラに誤りが検出された対処の方法について述べる。
【0155】
まず、図7の場合について説明する。
【0156】
この場合は、インタリーバ内の比較的小さな単位、例えば1列ごとに1つのSSCSデータについて、1つのCPCSトレイラが付与されている。それぞれの列に関してCRCおよび長さ表示を用いたチェックを行うことができるので、それらが正しい場合にはそれぞれのペイロード部の信頼性が保証され、ペイロードに含まれているSSCSヘッダ/トレイラの信頼性も保証されることになる。もちろん、CRCチェックによって漏れがあるような誤りパターンが存在しない訳ではない。しかしながら、そのようなパターンの発生確率は、該データに4ビット以上の誤りが発生し、かつ、その誤りパターンが偶然CRCチェックにより検出できないという、極めて微小なケースであり、これはこのレイヤの誤り検出レベルとしては、十分無視できる程度のものである。
【0157】
また、このCPCSトレイラの付与の方法では、セル単位にCRCが演算されることになり、セル内のビット誤りを検出することも可能となる。そこで、ビット誤りの検出されたセルを廃棄されたと見なすことによって、誤り位置不明のビット誤りを位置のわかった消失誤りの形で誤り訂正することができる。FEC符号では、位置不明のランダム誤りを訂正するよりも、位置のわかった消失誤りに対しての方がおよそ2倍の訂正能力があるため、この手法はより少ないFEC冗長部で同じ訂正能力を有することができるという点で極めて有効である。
【0158】
図7の応用として、インタリーバの数列に対してCPCSトレイラを1つ付加する場合を上述した。そのような場合に、もし1つのCPCS−PDUが1つのセルに入らない場合は、複数セルに対して、CPCSトレイラによるチェックが行われる。そのケースで、CRC等のチェックによってビットエラーが発見されたとすると、そのエラーがインタリーバの数列のどこにあるかがわからないため、該当するCPCS−PDUに属するインタリーバの数列全部を廃棄されたものとみなす方法と、位置の特定できないランダム誤りが発生したとして訂正を行う方法がある。もちろん、これらいずれの場合においても、訂正できるだけの十分なFEC冗長領域を有していることが必要である。
【0159】
図7において、1つのインタリーバに含まれるデータ領域を含む全てのCPCS−PDUに対してCPCSトレイラの誤りが全く通知されていない場合には、上述したように、該インタリーバのデータ領域には誤りがないと判断できる。この場合、SSCSヘッダ/トレイラ確認モジュール12rはそれらのデータに対して以下の手順で処理を行う。
【0160】
先頭SSCS−PDUから順にSSCSヘッダ/トレイラのD/FビットがDであることを確認しながら、デインタリーバモジュール8rに渡していく。CPCSトレイラで誤りが検出されていないので、デインタリーバモジュール8rのデータ領域に格納せずに、直接上位レイヤであるアプリケーションレイヤまで渡すように通知する。
【0161】
そして、データ領域に相当する部分を含む複数のCPCS−SDUより以降に到着する、FEC冗長符号を含むCPCS−SDUは廃棄するように命令を出す。というのは、もはや誤り訂正をする必要がないので、次以降に到着するFEC冗長領域のデータを含むCPCS−SDUは不要だからである。
【0162】
もちろん、SNのチェックを行い、セル廃棄が無いことを確認しながら、SSCSヘッダ/トレイラを取り除くことはいうまでもない。これらの処理は、SSCSヘッダ/トレイラ確認モジュール12rの基本動作である。よって、以下に説明するケースでも必ず行われる。
【0163】
次に、図7において、CPCS−PDUに誤りが検出された場合を考える。
【0164】
先頭のSSCS−PDUから順にSSCSヘッダ/トレイラのD/FビットがDであることを確認しながら、デインタリーバのデータ領域に格納するようにデインタリーバモジュール8rに渡していく。データ領域の最後の列を含むSSCS−PDUに付与されたヘッダ/トレイラはエンドビットがマークされており、更に次のSSCS−PDUはF/DビットがDからFに変わる。このPDUからは、FECを含むデータであることをデインタリーバモジュール8rに通知する。この通知に従って、デインタリーバモジュール8rは、データとFEC冗長符号をデインタリーバの正しい位置に格納していく。途中で生じているセル廃棄は、SSCSヘッダ/トレイラ中のSNにより廃棄されたセルの位置の特定が可能である。
【0165】
上記のようにデインタリーバ上に置かれたデータに関する誤り訂正の詳細については、デインタリーバモジュール8rによる処理の説明のところで行う。
【0166】
次に、図8の場合について説明する。これは、インタリーバ内のデータ領域とFEC冗長領域に対してそれぞれ1つずつのCPCSトレイラが付与されている例である。図21には、この場合の処理の流れを説明するための図を示す。
【0167】
ATM網から転送されてきたATMセルのATMヘッダを削除し(ステップS31)、SAR処理(ステップS32)、CPCSR処理(ステップS33)を行う。CPCS−PDUに対して行われたCRCおよび長さ表示チェックの結果がCPCS処理モジュール14rからSSCSレイヤに対して通知される。
【0168】
図7の場合と同様に、誤りが検出されていなければ、その旨の通知をSSCSヘッダ/トレイラ確認モジュール12rがCPCS処理モジュール14rから受けている。この場合には、次にFEC冗長領域を含むCPCS−PDUがCPCSレイヤから渡されたときには、誤りを含む含まないに係わらずそのCPCS−SDUを廃棄してよい。よって、図21で「FEC冗長コードの廃棄命令を出す」というオペレーションが動作し(ステップS35)、次に到着するCPCS−SDUを廃棄する(ステップS36)。このように処理を行えば、FECを付与していない場合と比較してもSSCSヘッダ/トレイラを削除するだけのオーバーヘッドで実現が可能である。
【0169】
すなわち、FEC冗長領域とデータ領域が別々のCPCS−PDUに属していることにより、上述したように、データ領域のCPCS−PDUにエラーのない場合に、FEC領域のSSCS処理を行う無駄がなくなり、結果として処理の軽減を図ることができるのである。これは、必ずしもデータ領域とFEC冗長領域に1つずつのCPCS−PDUを割り当てる場合にとどまらず、図7の例などにもあるように、1つのCPCS−PDU内に、インタリーバのデータ領域とFEC冗長領域が混ざって存在しなければ、同様にあてはまることである。
【0170】
次に、データ領域を含むCPCS−SDUにエラーが発見された場合について説明する。CPCSトレイラで誤りが検出されたデータ列の先頭に位置するSSCSヘッダ/トレイラの中を見て(ステップS34)、ペイロード内のデータ列がデータ領域を示している場合、すなわちD/FビットがDである場合、誤り訂正を行わなければならない(ステップS38,S40)。ペイロードの中身がFEC冗長領域、すなわちD/FビットがFである場合には、それとペアであるデータ領域を含むCPCS−SDUで誤りが検出されていなければ上述の例にあてはまるので、FEC冗長符号を含むCPCS−SDUはもはや不要であり、訂正の必要はない(ステップS39,S40)。
【0171】
先頭のSSCS−PDUから順にSSCSヘッダ/トレイラのD/FビットがDであることを確認しながら、デインタリーバのデータ領域に格納するようにデインタリーバモジュール8rに渡していく。データ領域の最後の列を含むSSCS−PDUに付与されたヘッダ/トレイラはエンドビットがマークされており、更に次のSSCS−PDUはF/DビットがDからFに変わる。このPDUからは、FECを含むデータであることをデインタリーバモジュール8rに通知する。この通知に従って、デインタリーバモジュール8rは、データとFEC冗長符号をデインタリーバの正しい位置に格納していく。途中で生じているセル廃棄は、SSCSヘッダ/トレイラ中のSNにより廃棄されたセルの位置の特定が可能である。
【0172】
しかしながら、図7の場合と異なり、通常のランダム誤りが含まれている場合、その誤り位置をインタリーブのどの一列あるいは数列であるかを特定することができない。従って、この場合は、位置のわからないランダム誤りが含まれることを前提とした誤り訂正処理を行わなければならない。
【0173】
このランダム誤り訂正は、一般に消失誤り訂正よりも処理量が多くなるため、それを防ぐための工夫を行うことができる。
【0174】
セル内に含まれるランダム誤り(位置のわからないビット誤り)を検出するためには、セル毎にセル全体に対するCRCを設けることが必要である。このようなCRCを設けるには、SSCSヘッダ/トレイラに含めることが適切であると考えられ、その場合には、SSCSヘッダ/トレイラは、図18に示した例よりも大きなサイズになる可能性もある。SSCSヘッダ/トレイラのCRCにより、あるセル内に誤りが生じていることが発見された場合には、そのセルは消失したものとみなし、デインタリーバにはそのセルは廃棄されたと通知する手段をとる。このように、ランダム誤りを消失誤りにみたてて訂正を行うことにより、処理量が多くなるのを避けることができる。
【0175】
ところで、受信側のCPCS処理とSSCS処理を協調動作させたソフトウェアで実現する場合には、さらなる高速化を図ることができる。すなわち、データ領域に対するCPCS処理時に行う通常の長さのカウントとCRC演算を同時に行うのと並行に、SSCS処理としてSSCSヘッダ/トレイラの削除を行うものである。
【0176】
このように行うと、CPCS処理で誤りが検出されなかった場合には、すでにメモリにはSSCSヘッダ/トレイラの取り除かれた状態で書き込まれているので、上位レイヤへの受け渡しがポインタ渡しで瞬時に行えるのである。もちろんこの後に渡されるFEC冗長領域を含むCPCS−SDUは、すでに不必要であるので廃棄して構わない。
【0177】
データ領域を格納したCPCS−PDUについてのチェックで誤りが検出されたならば、その旨をSSCS処理モジュール6rに通知し、続いてCPCS処理モジュール14rで処理されるFEC冗長領域を含むCPCS−PDUをチェックし、両CPCS−PDUをSSCS処理モジュール6rに渡さなければならない。SSCS処理モジュール6rでも誤りの検出された通知を受け、それに従いシーケンスナンバ等ヘッダ/トレイラのを確認し、セルの抜けている位置をデインタリーバに通知し誤り訂正をさせることとなる。
【0178】
(L)デインタリーバモジュール8rによる処理
デインタリーバモジュール8rでは、SSCSヘッダ/トレイラ確認モジュール12rからの情報により、データ領域に誤りがなければデータ列をインタリーバに書き込みしなおすことなく、スルーな状態でアプリケーション処理モジュール4rに渡していく。例えば図5のように、インタリーブ上ではランダムな並びであるようなデータもあるが、これらデータの送受信の順序は上位アプリケーションから見て順序透過性がある。すなわち、CPCSレイヤからのデータについて、SSCSレイヤでのオーバヘッドを除けば、そのままスルーしてアプリケーション処理モジュール4rに渡すことが可能である。
【0179】
SSCSヘッダ/トレイラ確認モジュール12rからの情報により、データ領域に誤りが検出されていれば、誤りを含むデータをインタリーバの所定の位置に戻していき、該データ領域に対応して付随されているFEC冗長領域のビット列をSSCSヘッダ/トレイラ確認モジュール12rから受け取り、同じくインタリーバのFEC冗長領域に戻し、FEC演算を行って誤り訂正を行う。
【0180】
この際、データ領域の最後のSSCS−SDUは全てがデータではなく、一部がダミーデータである可能性が高い。1列のどこまでがデータであるかは、SSCSヘッダ/トレイラによりデータを含む最後のSSCS−SDUであることを認識した結果を、デインタリーバまで通知してもらうことにより検出する。
【0181】
図8の場合、デインタリーバではデータ領域の最後のSSCS−SDUが到着したら、その列の最後から9シンボル目(LIフィールド)を見る。そこに示された値は、LIフィールドから逆方向に何オクテットのパディングが挿入されているかを示している。また、図7の場合には、データ領域の最終列の最後のシンボルがLIフィールドとなっており、そのLIフィールドから逆方向に何オクテットのパディングが挿入されているか、またはその最終列内の最上行から何オクテットの実データが含まれているかのいずれかの情報を表す。
【0182】
その後、データ領域に書き込まれている訂正されたデータをアプリケーション処理モジュール4rに渡していく。渡す順序は送信側端末2tでインタリーバモジュール8tに書き込んだ順序と同様に列方向に読み出しながら渡していく。デインタリーバ処理を行ってデータ長を正確に把握しているので、上位レイヤに渡す場合にもパッドのダミーデータを上位に渡してしまうことはない。データ領域のSSCS−PDUに誤りが検出されていない場合にも、上位にパッド以外のデータのみを渡さなければならないので、データの正確な長さを把握する必要がある。この場合は、FEC冗長コードの廃棄命令を出す際に、先に説明したデインタリーバを行った場合と同じようにデータ領域を含む最後のSSCS−SDUをSSCSヘッダ/トレイラ確認時に通知してもらい、それによって長さを正確に知る。パッドであった部分は上位レイヤに渡す前に取り除く。
【0183】
(M)アプリケーション処理モジュール4rによる処理
最後に、アプリケーション処理モジュール4rが、アプリケーションデータをSSCSヘッダ/トレイラ確認モジュール12rから受け取り、アプリケーション処理を行う。
【0184】
以上が、受信側端末2rにおける処理の流れである。
【0185】
次に、より具体的な例として、FEC付与モジュール10tおよびFEC訂正モジュール10rにおけるFEC手法の動作例をあげる。
【0186】
送信側において、FEC付与モジュール10tでは、インタリーバモジュール8tからのデータを見ながらインタリーバのFEC冗長領域に付加すべきデータを計算し、その結果をすぐにインタリーバモジュール8tに返す役割を担う。インタリーバモジュール8tでは、受け取ったFEC冗長領域用のデータを通常のデータに続けてSSCSヘッダ/トレイラ付与モジュール12tに渡す。SSCSヘッダ/トレイラ付与モジュール12tでは、それぞれの領域に従って、ヘッダ/トレイラを付与する。
【0187】
また、受信側において、FEC訂正モジュール10rは、そのインタリーバについて訂正する必要のある時のみ動作する。すなわち、下位のCPCS処理モジュール14rにおいてセル抜けやビット誤りによるエラーが検出された時、そのデータはSSCS処理モジュール6rに渡されてデインタリーバモジュール8rに蓄えられる。そして、SSCSヘッダ/トレイラ確認モジュール12rにおいて、多くの場合、デインタリーバ内のどの位置にセル抜けあるいはビット誤りがあるのかが検出される。プロトコル仕様によっては、位置の正確に特定できないビット誤りが含まれることがあるが、その場合でも、訂正能力は誤り位置の特定された場合よりも限定されるものの、FEC訂正モジュール10rにおいては訂正可能な構成をとることができる。しかしながら、この実施例では簡単のため、上記SSCSヘッダ/トレイラに付与された種々のビットが有する能力によって、ビット誤りが発生した場合においても、その誤りシンボル位置が特定できるものと仮定する。このようなエラーに対して、FEC訂正モジュール10rでは、デインタリーバモジュール8rのデータを参照しながら、データ抜け部分の復元、あるいはビット誤りの訂正を行う。そして、訂正情報をデインタリーバモジュール8tに戻す。
【0188】
FEC付与モジュール10tおよびFEC訂正モジュール10rの構成は、これまでに述べてきたインタリーバモジュール自身のサイズや、それぞれのインタリーバについて、1つのSSCSヘッダ/トレイラを付与する列数や、またインタリーバへの書き込み位置等によって、少しずつ異なることになる。
【0189】
従って、これらのモジュールの例を挙げる際には、インタリーバモジュール8tおよびデインタリーバモジュール8rと関連させながら説明することとなる。はじめに、送信側におけるFEC冗長シンボル構成法の例をあげ、その後にそれぞれの方法に対する、受信側での誤り訂正方法の例を述べることとする。
【0190】
まず、図7および図8に示されるようなインタリーバの一列がすべて1セルのペイロードに収容され、また該1列のみでSSCSレイヤのペイロードとなる場合について説明する。このような場合は、インタリーバの縦の長さは39オクテットまたは47オクテット、横の最大長はRS符号の1シンボルをkビットとして2^k−1シンボル長以下になる。このようにシンボルの大きさを可変にすると、それに従ってインタリーバの大きさが変わるが、これらインタリーブ処理には、主としてソフトウェア上での操作を考慮する必要があるので、ソフトウェア処理に適したインタリーバ長にするため、1シンボルのビット数は2のn乗(nは整数)、すなわち4ビット、8ビット、16ビット等が望ましい。また、この中で、AAL1では1シンボルを8ビットとした仕様が決められている。従って以下では、1シンボルは全て8ビットの場合のみについて記すこととする。もちろん、他のビット数の場合も同様の操作で行われる。
【0191】
そのようにすると、図7のような例では、インタリーバの縦の長さが39オクテット、横の長さが255オクテット長以下の任意のオクテット長となる。また図8では、横は同じで縦のみが47オクテットとなる。どちらの図でも、データ領域に最大124オクテット、FEC冗長領域に4オクテット分を割り当てている。実際にはこれらの合計が255オクテットを越えないように設計できることになるが、本実施例では、AAL1におけるインタリーバの横の大きさに合わせた例として、図7および図8の場合について詳細に示すこととする。従って、生成多項式等もAAL1と同様のものとして論じることとする。
【0192】
具体的には、αを8次の原始多項式の根とし、生成多項式は、
Figure 0003614907
とする。ただし、(1)式およびそれ以降の式はすべてGF(2^8)上での演算によるものとする。ここで、α^bは、αのb乗を表すものとする。
【0193】
図7および図8における実際のFEC演算の方法としては、図13および図14による方法、図16による方法、図5による方法等がある。
【0194】
以下、それぞれの方法を示す。
【0195】
(1)送信側FEC処理方法1
ここでは、図13や図14の送信側におけるインタリーバへのデータ挿入方法に対するFEC冗長データの生成方法を示す。
【0196】
図14にあるように、この方式の場合、インタリーバのなるべく右側につめてデータが挿入されていることが特徴である。従って、図7のインタリーバで具体的に説明すると、データがインタリーバのデータ領域に全部入っている場合には、39×124シンボル分のデータが入るが、もしデータがm列分しかない場合、インタリーバの左から(124−m)列は空(データがはいっていない)となる。そして、残りm列の先頭からデータが入るが、データ領域の最後の列は実データが全部入っている場合と、パディング用のデータの混じっている場合がある。
【0197】
データの入っていない先頭の(124−m)列に関しては、この部分をセルに合成して送信することはないため、FEC用の符号化をするに際しても、この部分は、符号化のための情報部に含めない。ただし、装置化するにあたって、送受信の少なくとも一方がインタリーバの大きさを可変長にすることが困難であるような場合があるかもしれない。そのときは、あらかじめ送受信間でネゴシエーションし、実際にはデータを送らないとしても、インタリーバの中で空きがでる部分にどのようなダミーデータをいれてFECの符号化および復号化を行うかについて決めておく方法もある。
【0198】
インタリーバについては、各行毎に符号化を行うこととする。この場合、mシンボル(オクテット)の情報部分と4シンボル(オクテット)の冗長部分からなる符号語が39行分できることになる。各行は並列に符号化/復号化が行われ、それぞれの行で同じ動作が行われるため、以下では一行のみについて示すこととする。
【0199】
インタリーバの一行には情報シンボルはm個(1≦m≦124)あるので、それをインタリーバの左側から表して、
Figure 0003614907
と表記することにする。たまに情報シンボルの存在しない行が存在するが、その場合はM[*]はない。
【0200】
また、符号語のシンボルは(m+4)個あるので、それもインタリーバの左側から表すと、
Figure 0003614907
となる。情報Mと符号語Cとは一対一であるので、必ずしも同じシンボル値を共有する必要はないが、今回のようにインタリーブすることによって遅延が増えないようにするためには、なるべくシンボル値を共有することが望ましい。
【0201】
従って、上記(2)式と(3)式において、情報シンボルはそのまま符号シンボルとして使用し、
Figure 0003614907
とする。そして、C[3]、C[2]、C[1]、C[0]を冗長部分とする。
【0202】
このようにすると、送信時に、上位レイヤからのメッセージをそのまま下位に流すことができる。すなわち、一旦インタリーバに書き込むことなく、上位レイヤからのメッセージをスルーして流せるため、遅延が小さくて済むというメリットが生まれる。ただし、上位から下位へ流すデータは、冗長シンボル生成のための計算処理のためには使用される。
【0203】
一方、受信時にはデインタリーバのデータ領域の全体、あるいはその領域をいくつかに分割したそれぞれの部分に対して、下位レイヤにおいてCRCによる誤り検査が行われる。この検査の結果そのデインタリーバのデータ領域に誤りがないと判定された場合には、データ領域のデータは、SSCSレイヤにおいて、デインタリーバに改めて書き込むことなく、SSCSヘッダ/トレイラ処理のみを行ってスルーして上位レイヤに送ることができる。また、冗長部分は不必要なので、これも特に処理を行わず即座に廃棄できる。このようにして、受信側処理全体のスループットを向上させるというメリットがある。ところが、もし同じ値を元の情報と符号語とで共有している式(4)のような構成になっていなければ、符号語全体を受信しないと元のメッセージが復元できないため、上述のメリットが生まれないことになる。
【0204】
以上は、主として図14に関するインタリーバモジュール8t中のデータについて述べた。式(4)のようにして、C[m+3]からC[4]までは簡単に生成することができる。
【0205】
次に、残りの冗長部分の生成方法を述べる。この冗長部分は、上述した構成のインタリーバモジュール8tからのデータ受けて、FEC付与モジュール10tにおいて生成される。
【0206】
ここでは、AAL1と同じようなRS符号を用いることとしているので、演算としては、まず情報Mを多項式表現したM(X)を、
Figure 0003614907
と表して
Figure 0003614907
となるような、a[m]、b[m]、c[m]、d[m]の係数を求めることを行えばよい。
【0207】
ここで、Q(X)は、M(X)・X^4をG(X)で割った商にあたり、式(6)のQ(X)・G(X)以外の右辺部分は、その余りに相当する。よって、M(X)が決まると、式(6)の左辺をG(X)でわり算すればよい。a[m]、b[m]、c[m]、d[m]はそれぞれ、
Figure 0003614907
に相当する。
【0208】
繰り返し述べているように、このインタリーバはある最大サイズまでは可変であり、しかもそれがどれ位の大きさになるかは、上位からのデータ量次第である。従ってデータが多い場合も少ない場合も同じような計算手法を使わないと、計算に無駄が生じることになる。式(6)をそのまま用いることは、M(X)が確定してからならばよいが、通常は上位レイヤからいきなりメッセージMを全部一度に与えられることはない。上位レイヤからは、例えば数バイト長ずつのデータが流れてきている。それを全部受け取った後に、はじめて上位レイヤからのメッセージ長がどれだけの量であった、ということが判明するのである。従って、もしM(X)が確定するまでFEC演算処理の開始を待つとすると、それは従来のAAL1のような垂直方向のデータの読み書きをする場合と同じ程度の遅延を要することになってしまう。そのような訳で、上位レイヤからデータが流れ始めると、すぐにFEC冗長領域の計算が開始でき、しかもいつ上位レイヤからのデータが終わったとしても、常に式(6)の形になっているような計算方法を用いる必要がある。
【0209】
そこで、本実施例においては、ハードウェアにおいて符号化に用いられているシフトレジスタを用いた方式を(ソフトウェアで実現する場合においても)採用するのがよい。すなわち、まずM[m−1]が上位レイヤより来るため、これに対してあたかもこれが最終列のシンボルであるかのように以下の計算を行う。
【0210】
Figure 0003614907
ここで、式(1)のそれぞれの係数を利用すると、式(8)の値は、
Figure 0003614907
により簡単に求められる。これは、実際に計算してもよいし、かけ算のテーブルをひく方法をとってもよい。
【0211】
もし、m=1であって、M[m−1]が最後であったとすると、右辺の4つの係数の値がそれぞれ式(6)のa,b,c,dに相当する。すなわち、M[0]はC[4]にそのまま変わり、
Figure 0003614907
となる。このように1シンボル目では式(8)と式(6)とでは整合がとれている。
【0212】
次に、2シンボル目が到着した場合を考える。式(6)に合わせるように記述すると、
Figure 0003614907
となる。この場合は、X^5の項とX^4の項に分けて、別々にG(X)で割った剰余を計算し、それを後で加える方法がある。しかし、そのような方法では、シンボル数が段々増えていくにつれて、その計算回数がシンボル数に比例して増えていく、という問題が生じる。当然テーブルを引く場合にも、テーブル参照回数が増えていってしまう。
【0213】
そこで、式(8)をうまく利用することを考える。
式(11)は、式(8)を用いて、
Figure 0003614907
と変形できる。
【0214】
式(12)の左辺を展開して、
Figure 0003614907
となる。
【0215】
従って、
Figure 0003614907
により、メッセージが2シンボルの場合のFEC冗長領域のシンボル値が求められる。
【0216】
式(14)は、帰納的に用いることができる。すなわち、2シンボル目以降は毎回その以前のシンボル値から容易に計算できる。よってkシンボル目が到着した時には、
Figure 0003614907
という計算を行えばよい。
【0217】
このようにして最後のシンボルが到着するまで、あるいはインタリーバに収容されるデータ領域の最大列数(本実施例では124)までのシンボルが計算されると、終了し、その次のタイミングで、他の行において計算されたものと一緒に、FEC付与モジュール10tからインタリーバモジュールにFEC冗長領域データとして送られる。送る順序は、a[m]、b[m]、c[m]、d[m]の順である。
【0218】
図10においては、最後の列にはパディングされた部分があるが、この部分については符号化のための情報に加える方法も加えない方法も実現可能である。しかし、少なくともLI表示のシンボルはFEC符号化のためのデータに加えたいので、パディング部分も(たとえall“0”のデータでも)一応、加えた方が装置化が楽になるであろう。もし、パディング部分を含まないようなFEC符号化を行うとすると、全くデータのない(つまり情報Mがヌルである)行が存在し得る。このような場合は、FEC付与モジュールは、a[0]=b[0]=c[0]=d[0]=0のデータをインタリーバモジュールに返す。
【0219】
(2)送信側FEC処理方法2
ここでは、図16にあるように、送信側にてデータをインタリーバの左上から正確に挿入するような場合のFEC冗長データの生成方法を示す。
【0220】
図16にあるように、本方式の場合、今度はインタリーバのなるべく左側につめてデータが挿入されているという特徴を有している。従って、図7のインタリーバで具体的に説明すると、データがインタリーバのデータ領域に全部入っている場合には、前述した例と同様に、39×124シンボル分のデータが入るが、もしデータがm列分しかない場合、インタリーバの右から(124−m)列は空(データがはいっていない)となる。そして、m列目は実データが全部入っている場合と、パディング用のデータの混ざっている場合がある。
【0221】
データ領域の残りの(124−m)列に関しては、この部分をセルに合成して送信することはない。それはすなわちトラヒックの無駄を意味するからである。FEC用の符号化をするに際しては、この部分は、あたかも全て“0”のデータが入っているかのように扱われる。
【0222】
別の手法として、あらかじめ送受信間でネゴシエーションし、実際にはデータを送らないとしても、インタリーバの中で空きがでる部分にどのようなダミーデータをいれてFECの符号化および復号化を行うかについて決めておく手法もある。この場合は必ずしも空き領域を全て“0”にするような必要はなく、お互いの決めたビットパターンを用いて符号化すればよい。しかし、一般にそのようなビットパターンを決めておくと、FECのための符号化にはかえって演算時間を増加させることになってしまので、ここではall“0”を仮定することとする。
【0223】
インタリーバにおいては、前述した例と同様に各行毎に符号化を行うこととする。すると、この場合はmシンボル(オクテット)の情報部分と、(124−m)シンボルの“0”のデータと、4シンボル(オクテット)の冗長部分からなる符号語が39行分できることになる。各行は並列に符号化/復号化が行われ、それぞれの行で同じ動作が行われるため、そのうち一列について見ることとする。
【0224】
インタリーバの一行には情報シンボルはm個(1≦m≦124)あるので、それをインタリーバの左側から表して、
Figure 0003614907
と表記することにする。たまに情報シンボルの存在しない行が存在するが、その場合はM[*]はない。
【0225】
また、符号語のシンボルは128個あるので、それもインタリーバの左側から表すと、
Figure 0003614907
となる。情報Mと符号語Cとは一対一であるので、必ずしも同じシンボル値を共有する必要はないが、インタリーブすることによって遅延が増えないようにするためには、情報シンボル値を共有することが望ましい。
【0226】
従って、上記(16)式と(17)式において、情報シンボルはそのまま符号シンボルとして使用し、
Figure 0003614907
とする。そして、C[3]、C[2]、C[1]、C[0]を冗長部分とする。ただし、式(18)において、C[127−m]からC[4]までは実際にはネットワークには送出しない。
【0227】
このようにすると、送信時には、上位レイヤからのメッセージをそのまま下位に流すことができる。すなわち、一旦インタリーバに書き込むことなく、上位レイヤからのメッセージをスルーして流せるため、遅延が小さくて済むというメリットが生まれる。ただし、上位から下位へ流すデータは、冗長部分生成のための計算処理のためには使用される。
【0228】
受信時には、下位レイヤのCRCによる誤り検査の結果、そのデインタリーバのデータ領域に誤りがない場合、データはSSCSヘッダ/トレイラ処理のみでスルーして上位レイヤに渡せる。冗長部分は即座に廃棄でき、デインタリーバへ改めて誤り訂正のための書き込みを行う必要はない。このようにして、全体の処理遅延を減らすことができるという利点が得られる。もし、式(18)のように同じ値を元情報と符号語とで共有しているような構成になっていなければ、符号語全体を受信しないと元のメッセージが復元できないため、上述の利点は得られない。
【0229】
以上は、主として図16に関するインタリーバモジュール8t中のデータについて述べた。式(18)のようにして、C[127]からC[4]までは簡単に生成することができる。
【0230】
次に、残りの冗長部分の生成方法を述べる。この冗長部分は、上述した構成のインタリーバモジュール8tからのデータ受けて、FEC付与モジュール10tにおいて生成される。
【0231】
ここでは、AAL1と同じようなRS符号を用いることとしているので、演算としては、まず情報Mを多項式表現したM(X)を、
Figure 0003614907
と表して、
Figure 0003614907
となるような、e[m]、f[m]、g[m]、h[m]の係数を求めることを行えばよい。
【0232】
ここで、Q(X)は、M(X)・X^4をG(X)で割った商にあたり、式(20)のQ(X)・G(X)以外の右辺部分は、その余りに相当する。インタリーバのデータ領域中のダミー部分は、値が“0”であり、符号化の計算には関わらないため、式(20)では既に省略されている。よって、M(X)が決まると、式(20)の左辺ををG(X)でわり算すればよい。e[m]、f[m]、g[m]、h[m]はそれぞれ、
Figure 0003614907
に相当する。
【0233】
前述した例とは異なり、M(X)を構成する個々の項において、M(X)におけるmの値によらず項の係数と次数は変化しない。すなわち、インタリーバの1列目のデータM[m−1]に対しては、必ずX^123であり、これは2列目、3列目とデータが増えていっても変化しない。もちろん2列目以降についても同様である。すると、式(20)において、
Figure 0003614907
となるので、mの値にかかわらず、インタリーバの最初のデータから順にXのべき乗をかけたもの、すなわち式(22)における各項をを個別にG(X)で割ることが可能である。従って、このような形での冗長領域の計算方法としては、インタリーバのデータが1シンボル到着する度に、そのデータに対してG(X)によるわり算を実行し、その余りをそれまでに計算された余りに加える方法が考えられる。
【0234】
以下、この方法を具体的に示す。
【0235】
まず、インタリーバの最初のデータが到着すると、
Figure 0003614907
となるe[1]、f[1]、g[1]、h[1]を計算する。次に2番目のデータが到着すると、式(23)と同様に
Figure 0003614907
を計算し、その後、
Figure 0003614907
のように排他的論理和を行って2シンボルのデータに対する冗長を計算する。以下も同様に行い、最終的にe[m]、f[m]、g[m]、h[m]が得られる。このように1つずつ計算することによって、最終のシンボルが到着した時点でそのときの計算値が求められることになる。
【0236】
式(23)および式(24)のようなG(X)でのモジュロ計算は、毎回行うとかなり計算時間をとられることになる。従って、通常は、各Xのべき乗に対するG(X)のモジュロ値のテーブルを持つのがよい。
【0237】
テーブルには、
Figure 0003614907
の計算結果である、E[k]、F[k]、G[k]、H[k]の値とそれに対応するXのべき乗の数が書かれている。すなわち、例えば図22に示す表aのようになる。
【0238】
この表aを用いると、任意の入力データM[m−k+1]に対して、
Figure 0003614907
となることから、
Figure 0003614907
という計算によって、各シンボルに対する剰余の値が簡単に算出できる。ただし、e[1]=e’[1]、f[1]=f’[1]、g[1]=g’[1]、h[1]=h’[1]である。
【0239】
このようにして、最後のシンボルが到着するまで、あるいはインタリーバに収容されるデータ領域の最大列数(本実施例では124)までのシンボルが計算されると終了し、その次のタイミングで、計算結果を他の行において計算されたものと一緒に、FEC付与モジュール10tからインタリーバモジュールにFEC冗長領域データとして送る。送る順序は、e[m]、f[m]、g[m]、h[m]の順である。
【0240】
図16においても、前述した例と同様に、最後の列にはパディングされた部分があるが、この部分については符号化のための情報に加える方法も加えない方法も実現可能である。しかし、少なくともLI表示のシンボルはFEC符号化のためのデータに加えたいので、パディング部分も(たとえall“0”のデータでも)データとして加えた方が、装置化が容易になる。もし、パディング部分を含まないようなFEC符号化を行うとすると、全くデータのない(つまり情報Mがヌルである)行が存在し得る。このような場合は、FEC付与モジュールは、e[0]=f[0]=g[0]=h[0]=0のデータをインタリーバモジュールに返す。
【0241】
(3)送信側FEC処理方法3
ここでは、図5の送信側におけるインタリーバへのデータ挿入方法に対するFEC冗長データの生成方法を示す。
【0242】
図5のようにランダムにインタリーバへの書き込みが行われる場合には、送信側FEC処理方法1のような規則的な手法を用いることはできない。そこで、送信側FEC処理方法2のようなテーブルを用いて、各シンボルに対する剰余を計算し、それを加えることによって、FEC冗長領域の値を計算する手法が用いられる。
【0243】
以下に、図5のそれぞれについて簡単にFEC冗長領域の生成方法を述べる。
【0244】
送信側FEC処理方法においては、インタリーバの左端から規則正しくデータが挿入されていたので、テーブルの内容についても、図22の表aのように規則正しく並んでいた。しかし、図5のそれぞれの実施例については、その規則性がないため、それぞれ送信側と受信側とであらかじめネゴシエーションした後に、はじめて上記のような表が書けることになる。
【0245】
図5(b)の場合には、ランダムであるのは書き込む列の順序だけであり、縦方向の書き込み方は決められているので、前述した例と同様に、図22の表aだけを用いればよいが、図5(a)の方は、書き込む列の順序だけでなく、その一列の中でのシンボルの書き込み順序が異なるため、その順序情報についての表を追加して書かなければならない。
【0246】
まず、図5(b)について説明する。ここでは、図に従いデータ領域が右端7行、FEC冗長領域が4行あることとする。左端の行から、5番目、2番目、7番目(実際はヌルでデータなし)、4番目、1番目、3番目、6番目(実際はヌル)、といったデータとなる。
【0247】
すると、送信側FEC処理方法2と同様にして、情報の多項式表現M(X)は、
Figure 0003614907
となる。
【0248】
以下の処理は、送信側FEC処理方法2における式(20)〜式(28)の経過と比較して、M[*]、e[*]、f[*]、g[*]、h[*]の係数を除くとほとんど同じである。従って、図22の表aを用いて、まずM[4]に対するeの係数を式(28)の方法で、
Figure 0003614907
で求め、それ以下のものは、順に、
Figure 0003614907
の排他的論理和演算を行うことによって最終のe[118]を得ることができる。係数f,g,hについても全く同様の計算により得られる。こうして、e[118]、f[118]、g[118]、h[118]がそれぞれ求める冗長シンボルとなる。
【0249】
次に、図5(a)の場合を示す。この場合も図に従ってシンボル単位に書き込みが行われるとすると、図22の表a1の他に、図23の表bを用いることによって計算することができる。ここでも、図に示されているようなデータ領域が右端6行、FEC冗長領域が4行ある具体例を用いて説明する。なお、行番号は左端および上端から昇べきの順につけるものとする。
【0250】
この図23の表bに従うと、図で例えば上から4行目の情報の多項式表現M(X)は、各シンボルをM[*]で表すと、
Figure 0003614907
と表せる。ここからは、図5(b)の例と同様にして図22の表aを用い、X^3の係数eは、
Figure 0003614907
の排他的論理和演算を順に行うことによって、得られる。他の係数f,g,hも同様である。
【0251】
こうして、e[119]、f[119]、g[119]、h[119]がそれぞれ上から4行目の冗長シンボルとなる。他の行については、式(33)において情報Mのシンボル番号が異なるだけで、それ以外は同様の演算により得られる。
【0252】
以上のように、図5(a),(b)の例でのFEC冗長領域の計算は、送信側FEC処理方法2を多少変形した方法を用いることによって実行することができる。
【0253】
図7および図8のような構成以外の例として、インタリーバの一列が1セルよりも大きい場合、また、インタリーバの複数列に対してSSCSヘッダを付加する場合等が考えられるが、これらの場合においても、図13、図16、図5のそれぞれの例に合わせて、全く同様の演算でFEC冗長シンボルの計算が行える。
【0254】
これまでは3種類の例をあげて、送信側におけるFEC冗長領域の計算方法について説明してきたが、今度はそれぞれに関する受信側での復号方法および誤り訂正方法について説明する。
【0255】
送信側のインタリーバモジュール8tから出力されたデータはセルとして伝送され、受信側に到達し、セル分解の後、受信側のデインタリーバモジュール8rに入る。ある送信側インタリーバからの受信データは、データ領域の何列かをペイロードに含む1つ以上のCPCS−PDUと、FEC冗長領域の何列かをペイロードに含むやはり1つ以上のCPCS−PDUから成っている。このうち、データ領域をペイロードに含む全CPCS−PDUが、CPCSレイヤにおけるCRCチェック等によって、全てエラーなしと判定された場合、SSCSレイヤにおいては、SSCSヘッダ/トレイラを除去するのみで残りのデータをそのまま上位のアプリケーションモジュール4rに渡す。そして、そのデインタリーバに関して、FEC冗長領域をペイロードに含むCPCS−PDUは全て、デインタリーバ用のメモリに書き込むことなく廃棄して構わない。
【0256】
ただし、データ領域側データをペイロードに含む複数のCPCS−PDUにおいて、1つでもCRCチェック等によるエラーがあるときには、そのデインタリーバに関連する全てのデータは、FEC冗長領域のものを含めて、誤り訂正のために必要なものとなる。
【0257】
図7の場合は、デインタリーバの一列から1つのCPCS−PDUを構成しており、しかもそれが1つのセルとなる。このため、受信したCPCS−PDUにおいてCPCSトレイラのCRCチェック等が異常であるという場合には、該CPCS−PDU内にビット誤りが発生していることを意味している。この時、エラーの発見された列はデインタリーバモジュール8r上で、伝送中にセル廃棄された場合と同じ扱いにしてしまう。すなわち、そこの一列にはセルが到着しなかったと同等にみなす。そしてその結果として生じたセル抜けの位置をSSCSヘッダのSNチェックにより確認する。
【0258】
一方、図8のような場合は、デインタイリーバの一列は1セルであるが、CPCS−PDUは複数列にまたがって構成される。従って、CPCSトレイラによるチェックのみでは、ランダム誤りおよびセル抜けの状態が不明確である。仮にあるCPCS−PDUにおいてセル抜けがあったとすると、CPCSトレイラの機能だけでは、そのCPCS−PDUに属する他のデインタリーバ列がエラーフリーである保証がなされない。
【0259】
そこで、まずセル抜けに対しては、SSCSヘッダ/トレイラのSNを用いて確認する。SN自体に誤り検査ビットを加えておくと、抜けた位置を特定する際の確実性が増す。また、ランダムなビット誤りへの対策としては、SSCSヘッダ/トレイラがデインタリーバの1列毎についているので、この部分にSSCS−PDU全体の誤り検出機能を付加する。そして、伝送中のセル廃棄によって、CPCSトレイラの誤り検出機能が有効に働かなかった場合、あるいはビット誤りによってCPCSトレイラのCRCチェックにエラーが発見された場合に限って、SSCSレイヤにおけるデインタリーバ一列単位の該誤り検査を行い、各列のエラーの有無を検査するという方法が考えられる。これによって、CPCS−PDUのサイズによらず、実際にビット誤りおよびセル廃棄の発見されたインタリーバ列に属するシンボルのみを訂正すればよいことになる。
【0260】
また、別の場合として、デインタリーバの一列が複数セルで構成され、その一列をペイロードに含んでSSCS−PDUおよびCPCS−PDUを構成することも考えられる。ここでも、1つのセルが伝送路中に廃棄された場合には、その他の部分のシンボルエラーはCPCSトレイラを用いても検出不可能になる。この場合には、計算を簡単にするために、該当する一列全てが廃棄されたとみなして誤り訂正を試みる方法をとることができる。このような方法を用いることによって、例えば図7の例に比べて誤り訂正能力は若干落ちるが、処理遅延は増加させることなく小さく保持できる。廃棄されたとみなされるデインタリーバ一列の位置は、SSCSヘッダ/トレイラによって特定される。
【0261】
SSCSヘッダを除いたデータは、インタリーバと全く同様の順番でデインタリーバ領域に書き込む。この書き込み順は、あらかじめ送受信間でネゴシエーションされているものとする。その際、抜けのある部分については、そのことを別領域に明示するか、あるいはダミーのペイロードデータを書き込む。そして、そのデータをFEC訂正モジュール10rに渡し、シンボル抜けの部分を再生する。その後に、情報データをデインタリーバモジュール8tから書き込んだ順に読み出して、受信側のアプリケーション処理モジュール4rに送る。
【0262】
以下では、上記FEC演算の送信側FEC処理方法1,2,3に従って、受信側のFEC訂正モジュール10rにて行われる夫々の場合に対応する誤り訂正操作を、受信側FEC処理方法1,2,3として説明する。このモジュールが動作するのは、デインタリーバの任意の一行において、訂正可能な範囲のシンボルエラーがあり、かつその位置が判明している場合であり、以下では、そのような場合を例にとって説明する。なお、図7にあるように、インタリーバの一列がすべて1セルのペイロードに収容され、また該1列のみでSSCSレイヤのペイロードを構成する場合について説明するが、それ以外のデインタリーバの構成にも適用可能である。
【0263】
(4)受信側FEC処理方法1
ここでは、送信側FEC処理方法1として述べたインタリーバに対するデインタリーバを用いた誤り訂正方法を記す。
【0264】
送信側FEC処理方法1ではFEC冗長領域が4シンボル分である場合について記してあるので、この受信側FEC処理方法1でもそれに従って記述する。FEC冗長領域が4シンボルの場合、誤りシンボル位置が明確であれば、4シンボルまでの誤りを訂正することが可能である。
【0265】
いま、s番目、t番目、u番目、v番目のシンボルに誤りまたは抜けがあるとする。ただし、0<s<t<u<v<(m+1)であるとする。
【0266】
図14は、送信側FEC処理方法1において説明したように、デインタリーバのできるだけ右側につめてシンボルを挿入する構成をしている。デインタリーバ上に埋まるデータ量は毎回可変なので、受信が開始された時点では、どの位のデータが到着するかの予測ができない。従って、送信側と同様に、可変シンボル長に柔軟に対応できるような復号処理を行う必要がある。
【0267】
受信シンボル列は、情報シンボルと冗長シンボルとの合計がmシンボルあるとすると、(17)式から、
Figure 0003614907
のように表され、E[*]の部分はエラーがある部分を意味する。それ以外のC[*]で書かれる部分は、送信側のデータがそのまま正しく受信されていることを意味する。式(34)では一般的な書き方をしたが、E[*]は、先頭あるいは最後尾のシンボルにあっても構わないし、また連続していても構わない。
【0268】
さて、FEC訂正モジュール10rでの処理を行うまでに、既にシンボル単位にエラーの有無が明確になっている。もし1シンボルもエラーがない場合には、式(34)は、
Figure 0003614907
と表され、これを用いた多項式C(X)は、生成多項式G(X)で割り切れる。これは、すなわち、
Figure 0003614907
となることを意味する。しかし、エラーシンボルの含まれる受信シンボル列Rを用いた多項式R(X)では、G(X)による余りは0とはならない。そこで、これらをシンドロームS[i](i=1,2,3,4)として次のように表すこととする。
【0269】
Figure 0003614907
ここで、E[*]の部分の係数を訂正を簡単にするために、R(X)においては、
Figure 0003614907
とおいておくこととする。
【0270】
すると、シンドロームS[i](i=1,2,3,4)は、以下のようにして計算される。
【0271】
手順1:S[1] =S[2] =S[3] =S[4] =0とおく。
【0272】
手順2:シンボルが1 つ来る度に(すなわちデインタリーバの1 列が到着する度に)、
Figure 0003614907
のように代入していく。ここで+は排他的論理和を表す。ただし、式(38)によって、E[m−k] =0である。
【0273】
手順3:手順2を最後のシンボルまで計算した時のS[i](i=1,2,3,4)の値が、求めるシンドローム値である。
【0274】
手順2を詳細に説明する。最終的には式(37)の値を求めたいのであるが、受信を終了するまで、シンボル数がどれだけあるのかがわからない。よって、シンボルを受信する度に計算を行い、突然シンボル受信が終了したとしても、シンドロームS[i](i=1,2,3,4)の計算結果が最終的に求める値になっている必要がある。
【0275】
実際に、手順2では、以下の計算と同じことを行っている。まず、最初のシンボルC[m−1]が到着すると、シンドローム値は、
Figure 0003614907
となる。
【0276】
次に、シンボルC[m−2]が到着すると、
Figure 0003614907
となる。
【0277】
同様にしていくと、最終的に
Figure 0003614907
となり、この式は(37)式と同じである。
【0278】
このような方法をとることによって、k個のシンボルが到着した時には、必ずシンドロームS[i](i=1,2,3,4)は、(k−1)次の多項式にα^(119+i) (i=1,2,3,4)を代入した形をとっているので、デインタリーバモジュール8rのシンボル到着がいつ終了しても、常にその時点の本実施例に基づくデインタリーバ構成での正しいシンドローム演算値を示していることになる。なお、式(40)〜(42)において、エラーのあるシンボルを受信した部分については、C[*]からE[*]に表記を書き換えるとよい。
【0279】
次に、このようにして得られるシンドローム値の意味を考える。誤りのあるシンボルがもし正しく受信されていたとすると、これらはそれぞれ、C[m−k](k=s,t,u,v)と表される。すると、これらの記号を用いて式(37)のシンドロームS[1]の値は、
Figure 0003614907
となる。
【0280】
なお、本実施例では、α^bcは、αの(b×c)乗を表すものとする。例えば、上記のα^120(m−s)は、αの(120×(m−s))乗を表す。
【0281】
他のシンドロームも同様に、
Figure 0003614907
となる。ただし、ここでは2進信号(0,1)のみを仮定しているので、+の演算と−の演算はどちらも同じ排他的論理和となる。すなわち式(43)と(44)は合わせて、
Figure 0003614907
と表記できる。
【0282】
このことから、式(39)の手順によってS[i](i=1,2,3,4)の値が求められると、式(45)は、C[m−s]、C[m−t]、C[m−u]、C[m−v]に関する連立方程式となる。そしてこれを解くことによって、それぞれの正しいシンボル値が求められる。本実施例では、エラーシンボルの見落としがない(すなわち、SSCSレイヤ以下によってエラーのあるシンボルが確実に検出され、それ以外には存在しない)ことを想定しているので、これらの連立方程式には、必ず一意な解が存在する。
【0283】
解は、それぞれ、
Figure 0003614907
となる。
【0284】
式(45)において、エラーシンボルがもし1つ(E[m−s])のみであれば、上式は、
Figure 0003614907
であり、これから、
Figure 0003614907
となる。これはiの値によらず同じなので、どれか1つを計算すればよい。とすると、式(37)において、例えばS[1]のみ計算すればよく、他のシンドローム計算を行う必要がないので、その分の演算量を減らすことができる。
【0285】
また、もしエラーシンボルが2つ(E[m−s]とE[m−t])であれば、式(45)は、
Figure 0003614907
となる。これも2つのシンドローム、例えばS[1]とS[2]のみを計算すればよく、他のシンボルに対してかかる演算の分を減らすことができる。
【0286】
そして、解は、
Figure 0003614907
となる。
【0287】
また、エラーシンボルが3つ(E[m−s]とE[m−t]とE[m−u])であるとき、式(45)は、
Figure 0003614907
となり、この場合は3つのシンドローム、例えばS[1]、S[2]、S[3]のみを計算すればよい。すなわち、S[4]に対してかかる演算の分を減らすことができる。
【0288】
解は、
Figure 0003614907
となる。
【0289】
これらの演算には、αのべき乗の計算が多数必要となる。常に出てくる演算(例えばα^120等)に関しては、表を作っておくと高速化を図ることができる。
【0290】
(5)受信側FEC処理方法2
ここでは、送信側FEC処理方法2で述べたインタリーバに対するデインタリーバを用いた誤り訂正方法を説明する。
【0291】
受信側FEC処理方法1と同様に、FEC冗長領域の大きさと同じ4シンボルまで訂正可能である。そこで、0<s<t<u<v<(m+5)であるような、s番目、t番目、u番目、v番目にそれぞれシンボル誤り、またはシンボル抜けがあるとする。
【0292】
図16の場合は、送信側FEC処理方法2で説明したように、データ領域内のシンボルはデインタリーバのできるだけ左側に詰められており、一方FEC冗長領域のシンボルは、デインタリーバの右端4列に入れられているような構成である。受信側FEC処理方法1と同様に、データが終了するまで、デインタリーバのデータ領域のどこまでデータが入るかは毎回に異なり、全くわからない。従って、シンボル受信開始と同時に復号演算を開始し、シンボル受信がいつが終了したとしても、即座に誤り訂正処理に入れるような復号処理を行う必要がある。
【0293】
受信シンボルは、受信側FEC処理方法1の場合とは異なり、データがmシンボル(0<m<125)、冗長部分が4シンボルあるとする。このとき、受信シンボル列Rは(17)式から、
Figure 0003614907
のように表され、E[*]の部分はエラーがあるシンボルを意味する。それ以外のC[*]で書かれる部分は、送信側のデータがそのまま正しく受信されていることを意味する。式(53)は一般的な書き方であり、E[*]はデータ領域の先頭や最後尾、あるいはFEC冗長領域にあっても構わないし、また連続していても構わない。C[128−m]とC[3]の間は、デインタリーバのマトリクス上では、空のデータ領域(0データの部分)があるが、送受信はされないことを意味している。もちろん、m=124の場合は、この空データ領域は存在しない。
【0294】
FEC訂正モジュール10rでの処理を行うまでに、既にシンボル単位にエラーの有無が明確になっている。シンボルの訂正を簡単にするために、式(53)において、E[128−s]、E[128−t]、E[128−u]、E[128−v]は全て値が0であるとおき、訂正後のシンボルをそれぞれC[128−s]、C[128−t]、C[128−u]、C[128−V]とする。
【0295】
受信側FEC処理方法1に従って、式(37)のようにシンドロームS[i](i=1,2,3,4)を定義すると、これらは以下のように計算される。
【0296】
手順1:S[i]=0(i=1,2,3,4)とおく。
【0297】
手順2:シンボルが1つ到着する度に、
Figure 0003614907
のように代入していく。
【0298】
手順3:手順2で最後のシンボルまで計算した時のS[i](i=1,2,3,4)の値が求めるシンドローム値である。
【0299】
上記手順においてC[127]が到着した時点で、仮に正しいデータ領域シンボルの到着が終わったとすると、
Figure 0003614907
となる。これはまさしく、図16にあるC[127]のシンボルがデインタリーバの左端にある場合のシンドローム計算の結果を示している。もし正しいデータがこの1シンボルのみであったとしても、その後にFEC冗長領域部分の値を加えると、本実施例に基づくデインタリーバ構成のシンドローム値となる。すなわち、シンボル到着がいつ終了しても常に正しいシンドローム値が求められるような計算方法となっている。
【0300】
このようにして得られるシンドローム値は、もし受信シンボルに全く誤りがなければ全て0となる。実際は、受信側FEC処理方法1の式(45)にならって、
Figure 0003614907
という値を持つことになる。式(54)の手順で求められたシンボル値S[i](i=1,2,3,4)を使って、式(56)の各シンボルC[128−k](k=s,t,u,v)を求めることが、FEC訂正モジュール10rでの誤り訂正処理となる。
【0301】
これらは4次の連立方程式となり、解は、
Figure 0003614907
となる。
【0302】
式(56)において、エラーシンボルがもし1つ(E[128−s])のみであれば、上式は、
Figure 0003614907
であり、これから、
Figure 0003614907
となる。これは、iの値によらず同じなので、どれか1つを計算すればよい。すると、式(54)において、例えばS[1]のみ計算すればよく、他のシンドローム計算を行う必要がないので、その分の演算量を減らすことができる。
【0303】
また、もしエラーシンボルが2つ(E[128−s]とE[128−t])であれば、式(45)は、
Figure 0003614907
となる。
【0304】
これも2つのシンドローム、例えばS[1]とS[2]のみを計算すればよく、他のシンドロームに対してかかる分の演算を減らすことができる。
【0305】
そして解は、
Figure 0003614907
となる。
【0306】
また、エラーシンボルが3つ(E[128−s]とE[128−t]とE[128−u])であるとき、式(56)は、
Figure 0003614907
となり、この場合は3つのシンドローム、例えばS[1]、S[2]、S[3]のみを計算すればよいので、S[4]に対してかかる演算の分を減らすことができる。
【0307】
解は、
Figure 0003614907
となる。
【0308】
これらの演算を行う場合には、α^(119+i)(128−k) (k=1〜128),(i=1,2,3,4)の演算に多少の時間がかかってしまうので、iおよびkをパラメータとした表をあらかじめ作成しておくと、毎回αのべき乗を計算するよりもより高速に演算ができる。
【0309】
(6)受信側FEC処理方法3
ここでは、送信側FEC処理方法3で述べたインタリーバに対するデインタリーバを用いた誤り訂正方法を示す。
【0310】
受信側FEC処理方法1、2と同様にエラーシンボルは最大4つまで訂正可能である。そこで、それらのエラーシンボル位置をそれぞれs番目、t番目、u番目、s番目(0<s<t<u<v<(m+5))とする。
【0311】
図5の場合は、到着したシンボル毎にデータ領域のシンボルはランダムに、またFEC冗長領域のシンボルは、受信側FEC処理方法1、2と同様にデインタリーバの右端4列に位置する。この場合も、デインタリーバによっていつシンボル受信が終了するかわからない。よって、そのような可変シンボル長に柔軟に対応できるような復号処理を行う必要がある。
【0312】
一般的には、エラーがのった受信シンボルは式(34)で、エラーフリーの場合の受信シンボルは式(35)で夫々表されるが、以下では、図5にある具体例を用いて説明する。
【0313】
まず、図5(b)についてみると、全てのシンボルが正しく受信できたときの受信系列Cは、
Figure 0003614907
であり、そのうちC[3]、C[2]、C[1]、C[0]は冗長シンボルである。これを多項式表現すると、
Figure 0003614907
となる。この例では9つのシンボルを受信するが、実際には最大128シンボルまで受信することがあり得る。これらのシンボルのそれぞれについて、何番目のシンボルがどこの列に属するか(すなわち式(65)を作成するにあたって、各シンボルに対応するXのべき乗の値は何であるか)といった一覧表を、送信側と同様に保持している必要がある。
【0314】
さて、式(65)のシンボルのうち、最大4つのシンボルがエラーを起こしているとする。ただし、冗長シンボルのみのエラーである場合は、誤り訂正処理を行わないので、ここでは、少なくとも1つのエラーシンボルは、データ領域に属するシンボルであるとする。
【0315】
受信側FEC処理方法1、2と同様にエラー数に応じて、シンドロームS[i]の計算を行う。エラーシンボル数と同じだけのシンドロームの計算を行えば、誤り訂正が可能である。シンドロームの計算は、
手順1:S[i]=0 (i=1,2,3,4)とおく。
【0316】
手順2:受信シンボルに応じて、以下の計算を行う。
【0317】
Figure 0003614907
手順3:最後のシンボルが終了すると、その時のS[i](i=1,2,3,4)が求めるシンドロームの値である。
【0318】
手順2において、f(k)はC[k]と対になる、多項式上のべき乗数を示す。例えば図5(b)において、C[8]に相当するべき乗数はf(8)=6である。
【0319】
上記演算により得られるS[i](i=1,2,3,4)の別の表現は、式(45)の変形で与えられる。誤りのあるシンボルの訂正後の値をC[m−k](k=s,t,v,u)とすると、本実施例の具体例では、m=8なので、
Figure 0003614907
となる。
【0320】
式(66)と式(67)から、4次の連立方程式ができ、これからC[8−k](k=s,t,u,v)の値を求めることができる。エラーシンボルが4つあるときの解は、それぞれ
Figure 0003614907
となる。
【0321】
式(67)において、エラーシンボルがもし1つ(s番目)のみであれば、上式は、
Figure 0003614907
であり、これから、
Figure 0003614907
となる。これは、iの値によらず同じなので、どれか1つを計算すればよい。とすると、例えばS[1] のみ計算すればよく、他のシンドロームに対する計算を行わずに済むことになる。
【0322】
また、もしエラーシンボルが2つ(s番目とt番目)であれば、式(67)は、
Figure 0003614907
となる。これも2つのシンドローム、例えばS[1]とS[2]のみを計算すればよく、他のシンドロームに対する演算を行わずに済むことになる。
【0323】
そして、解は、
Figure 0003614907
となる。
【0324】
また、エラーシンボルが3つ(s番目とt番目とu番目)であるとき、式(67)は、
Figure 0003614907
となり、この場合は3つのシンドローム、例えばS[1]、S[2]、S[3]のみを計算すればよい。すなわちS[4]の演算を必要とせずに済む。
【0325】
このときの解は、
Figure 0003614907
となる。
【0326】
これらの演算には、αのべき乗の計算が多数必要となる。常に出てくる演算(例えばα^120等)に関しては、表を作っておくと高速化を図ることができる。
【0327】
次に、図5(a)の場合を説明する。これは基本的に図5(b)と同じであるので、図に示した具体例のみを説明することとする。
【0328】
図5(a)の場合は、受信側でも送信側と同じ表2を持っていて、シンボル到着の度に、そのシンボルがデインタリーバのどの位置にくるのかを把握しておく必要がある。ここでも、送信側と同じく上から4行目を例にとり、この行がもし全くエラーがないとすると、受信シンボルを使った多項式は、式(32)から
Figure 0003614907
と表される。本来は、何番目のシンボルまで受信するかは、あらかじめ送信側から知らされることはなく、CPCS−PDUの終わりを検出することによって、初めて知ることになる。
【0329】
この場合も、最大4シンボルのエラーを想定する。シンドロームの計算方法は、式(66)にある手順と全く同じである。ただし、kの値は式(75)にあるC[k]から取り出されているので、ランダムな値をとる。そして、f(k)は式(75)において、そのkの値に対するC[k]を係数とするXの次数を表す。例えば、k=1に対して、f(1)=7である。
【0330】
エラーがある場合のシンドロームの値は0にはならず、式(67)にならって記述すると、
Figure 0003614907
となる。ただし、0<s<t<u<vであり、{s,t,u,v∈k|kは4行目に属するシンボル番号}であるとする。そして、s,t,u,v番目のシンボルにエラーが発生しているとする。また、C[k](k=s,t,u,v)は、それぞれのシンボルの訂正後の値を意味する。
【0331】
式(66)と式(76)を解くことによって、訂正後のシンボル値が計算できる。まず、4つのエラーがある場合は、
Figure 0003614907
となる。
【0332】
式(67)において、エラーシンボルがもし1つ(s番目)のみであれば、上式は、
Figure 0003614907
であり、これから、
Figure 0003614907
となる。これはiの値によらず同じなので、どれか1つを計算すればよい。とすると、例えばS[1]のみ計算すればよく、他のシンドローム計算を行う必要がないので、その分の演算量を減らすことができる。
【0333】
また、もしエラーシンボルが2つ(s番目とt番目)であれば、式(67)は
Figure 0003614907
となる。これも2つのシンドローム、例えばS[1]とS[2]のみを計算すればよく、他のシンドロームに対する演算を行わなくて済む。
【0334】
そして、解は、
Figure 0003614907
となる。
【0335】
また、エラーシンボルが3つ(s番目とt番目とu番目)であるとき、式(67)は、
Figure 0003614907
となり、この場合は3つのシンドローム、例えばS[1]、S[2]、S[3]のみを計算すればよい。すなわちS[4]の演算を行わなくて済む。
【0336】
このときの解は、
Figure 0003614907
となる。
【0337】
本実施例では、データの信頼性を保証するためのプロトコルとしてはAALタイプ5のSSCSレイヤのFEC処理以外を想定していない。しかしながら、実際にはFECの能力には限界があり、一定数以上セルが廃棄された場合にはもはやFECによる誤り訂正は不可能となってしまう。このような状況では再送による誤り訂正を行なうしかなく、そのためには予めSSCSレイヤのFECによる誤り訂正の他に上位レイヤにライトウェイトな再送制御を実装しなければならない。FECで訂正できない場合、元のデータを得るには再送を行なうしかないので、本実施例では、SSCSの上位にライトウェイトな再送制御のためのプロトコルは実装していると想定している。また、予めATM網の状態をみて誤りの多く発生する状態であれば能力の高いFEC用符号を用いる、またほとんど誤りの発生しない状態であれば軽いFEC符号を用いるなど、パラメータを選択した上で通信を開始できる。
【0338】
なお、前述のように、本実施例ではAALタイプ5に関するものについて説明したが、本発明の誤り訂正方法はデータ転送に限定されるものではなく、同様の方法で他のタイプにも適用可能である。
【0339】
逆に、例えば、AAL5機能のみが実装された端末装置において、該端末装置がマルチメディア/コンティニュアスメディア処理機能(音声、動画等)を持っていれば、この様なアプリケーションを実現する場合にAAL5の処理機能に本実施例の誤り制御方式を併用させることによって柔軟に対処し様々な状況で様々なデータの信頼性を保証することができるのである。
【0340】
(第2の実施例)
次に、第2の実施例を説明する。第1の実施例は、1対1の端末が通信を行なう場合の例であったが、第2の実施例では、1対多通信の場合について説明する。
【0341】
本実施例では、図24に示すように、1台の送信側端末2tが、複数台の受信側端末2r(2r−1〜2r−n)に対して通信を行なっているものとする。なお、図中の受信側端末2rのいずれか複数個が受信側端末かつ送信側端末となり、同じようなコネクションを張り同じように1対多通信を行なうことによって多対多通信を実現することもできるが、このような場合にも、本発明を適用することが可能である。
【0342】
以下、FECを付与しマルチキャストを行なう場合の例について説明する。
【0343】
図25は、本実施例の送受信端末のプロトコルスタックの一例である。基本的な構成は、第1の実施例のプロトコルスタックとほぼ同様である。図1と異なる点は、本実施例では、いずれかのレイヤにマルチキャスト機能を提供する能力のあるプロトコルが必要になることである。
【0344】
一般的に広く知られたマルチキャスト機能を提供できるプロトコルとしては、マルチキャストIPアドレスを使ったIP転送などがある。現状のシステムでは、IPマルチキャストを行なう場合に、その上位レイヤプロトコルとしてUDP(User Datagram Protcol)が用いられるのが通常である。UDPはTCP(Transmission Control Protcol)と異なり、エンド−エンドに信頼性の保証を行なわないプロトコルであるので、転送途中でパケットが廃棄されても、ビット誤り等が生じても、訂正は行なわない。しかしながら、ここで転送しようとしているアプリケーションデータはマルチメディアで放送形態をとるデジタルメディアを想定しているので、IP+UDPのようなデータの信頼性を保証しないプロトコルでは不都合である。そこで、本実施例では、MTP(Multicast Transport Protocol)やRMP(Reliable Multicast Protocol)をレイヤ4のプロトコルとした。しかし、本発明のFECを実装している場合には、信頼性の保証を上位レイヤによる再送で行なう必要性がかなり少なくなる。
【0345】
MTPは、IPでマルチキャストを行なう場合、転送途中に生じた誤りを訂正する機能を持ったプロトコルである。現在はインターネットドラフトのRFC1301に実現の方法に関する詳細が記述されている。該ドラフトの誤り訂正の方法とは、受信者による再送要求により送信者がデータを再送するという方法である。RMPは、カリフォルニア大学バークレイ校のB.Wettenらにより提案されたものであり、MTPとほぼ同様の動作及び機能を持ったプロトコルである。しかし、両者ともCSCWなどをアプリケーションとすることを前提としているので、リアルタイム性の保証は行なっていない。
【0346】
しかしながら、例で挙げたようなアプリケーションを実現するにはリアルタイム性の保持を行なう必要がある。その場合には、受信者が誤りを検出してから送信者に対して再送要求を行なっていたのでは、遅延が許容範囲を越えてしまう可能性が高い。このような場合にも、前述した第1の実施例のように、転送するデータに予め誤り訂正を行なうための冗長な符号を付与しておくことによって、上記のような問題点を解消できるのである。
【0347】
さて、IPのような上位レイヤで提供されるマルチキャストは、ATMレベルでは図25のようにスイッチ3のコピー機能などを用いて実現される。また、コネクションの張り方としては、主に以下の2通りが考えられる。
【0348】
(1)送信側端末から全ての受信側端末に対してポイント−マルチポイントのATMコネクションを張る。
【0349】
(2)送信側端末から一部の受信側端末と一部の中継サーバに対してポイント−マルチポイントのATMコネクションを張る。中継サーバよりも(マルチキャストツリー内で)下流の受信側端末と中継サーバに関しては、該中継サーバが担当する。中継サーバとは、物理的または論理的にネットワークやサブネットを接続しているような装置を指し、AALよりも上位のレイヤでコネクションを一度終端することもある。
【0350】
上記2の例を図26に示す。Hは送信側端末(2t)、H1〜H25は受信側端末(2r)、S1〜S5は中継サーバである。ネットワーク1−1〜1−7は、ATM網である。図26のように、送信側端末Hから受信側端末H1、H2、および中継サーバS1、S2、S3に対して、コネクションを設定し、中継サーバS1、S2、S3は、それぞれの下流に位置するATM網1−2,1−3,1−4内のマルチキャストグループに属する受信側端末やさらに下流にメンバーが存在する中継サーバに対して同じようにコネクションを張る。
【0351】
上記1の方法は,受信側端末の総数が比較的少ない場合には適切な方法である。これに対して、上記2の方法は受信側端末の総数がかなり多い場合でも、階層的に下流の中継サーバにコネクションを一度終端させることで、広域に渡るマルチキャストが実現できる方法である。
【0352】
次に、送信側端末2tおよび受信側端末2rを説明する。図27に、本実施例の送信側端末2tおよび受信側端末2rの内部構成を示す。本実施例の送信側端末2tおよび受信側端末2rの内部構成は、基本的には、第1の実施例とほぼ同様である。したがって、以下では、本実施例の送信側端末2tおよび受信側端末2rについて、第1の実施例との相違点を中心として説明する。なお、ここでも、AALとしてタイプ5を例にあげる。
【0353】
まず、送信側端末2tのアプリケーション処理モジュール104t、MTP/RMP処理を行うMTP/RMP処理モジュール130t、IP処理を行うIP処理モジュール131tでは、マルチキャストしたい送信側端末2rに対して、それぞれのプロトコルに特有な処理が行なわれる。データの種類としては、動画、音声、テキストデータなどATMの特徴を活かして様々なメディアを転送するが、ここまでの処理は、本発明に限られた方法ではない。
【0354】
次に、SSCS処理モジュール106t、CPCS処理モジュール114t、SAR処理モジュール120tでは、第1の実施例で説明したものと同様の処理が施される。
【0355】
ただし、FECを行なうSSCSレイヤで、上位レイヤに対してエラーフリーな通信を提供する場合、そのためには、SSCSレイヤ以下のレイヤでトランスペアレント(透過的)なデータの受渡しが可能であることが必要となる。というのは、送信側のSSCSレイヤのエンティティに対して、受信側のSSCSレイヤのエンティティから再送要求が送られた場合に、セル単位の再送を行なうためには、SSCSレイヤで、個々のセルの識別ができることが必須になるからである。例えば、SSCSレイヤでセル単位の再送を行なう場合、再送要求、あるいは再送に関係あるデータはSSCSレイヤよりも下のレイヤではトランスペアレントに受渡しされなければならない。これらは、受信側端末2rの処理の説明において詳しく述べる。SSCSレイヤ以下に関しても、第1の実施例と同様の処理が行なわれる。
【0356】
次に、受信側端末2rについて説明する。
【0357】
マルチキャストを行なう場合には、多くの宛先に対してメッセージを送信するため、いずれかの受信側端末2rで正しくデータを受信できない可能性が高くなる。言い換えると、送信側にいずれかの送信側端末2tから再送要求が送られる確率が高くなる。しかし、本発明によれば、予めFECを付与するレイヤ(AAL5の場合であればSSCSレイヤ)に、データの信頼性を保証する機能を持たせることで、その確率を激減させることができるのである。
【0358】
受信側端末2rでの誤り検出は、まず、CPCS処理モジュール114rで行なわれる。その際、誤りが検出されなければ、第1の実施例で示したように、SSCS処理モジュール106rを省略して上位レイヤにデータを渡す方法も可能である。その場合には、送信側で付与したFEC冗長符号のオーバーヘッド程度ですみ、スループット、レイテンシイは、AAL5にかなり近い性能を得ることができる。
【0359】
前述したように、マルチキャストの場合、IPレベルでマルチキャストグループに該当する複数のIPアドレスに対してデータグラムを送出するので、一般的なIPマルチキャストでは、送信側端末2tで再送要求を受けとる確率がポイント−ポイントの場合よりも大きい。マルチキャストグループに属する端末数が大きければ大きいほどその確率は大きくなる。例えば、受信側端末数が10^4、データリンクの誤り率が無線程度に大きい場合には、1に近い確率で送信側端末2tは再送要求を受けとる。
【0360】
誤りのレベルとしては、大きく2種類に分けられる。
(1)予め付与した誤り訂正符号(FECコード)により訂正可能な程度である場合
(2)上記1のレベルを上回り、FECコードによる訂正が不可能、よって、再送以外に訂正は無理である場合
もちろん、上記1の場合には、第1の実施例の1対1通信の場合と同様に誤り訂正を行なって、正しいデータを上位レイヤに渡すことができる。
【0361】
しかしながら、上記2のケースが発生した場合には再送により誤りを訂正しなければならず、その方法としては以下のような候補がある。
A)AALよりも上位レイヤで再送制御を行なう(例えば、図25のレイヤ4に相当するMTP/RMP等)。
B)AALのいずれかのレイヤで再送制御を行なう。
【0362】
上記Aのケースでは、それぞれの再送プロトコルの手順にしたがって誤り訂正が行なわれるので、第1の実施例で説明した手順をもちることができるが、上記Bの方法で再送制御を行なうには、第1の実施例で説明した手順に加え、いくつかの処理が必要になる。以下、上記2のようなレベルの誤りが生じ、それを上記Bのような方法で誤り回復をはかろうとした場合の手順について説明する。
【0363】
FECの訂正能力を上回るような誤りが転送中に生じた場合に、SSCSレイヤで信頼性保証のために再送制御を行なう方法について説明する。再送制御を行なうとすると、再送の単位は様々な方法が可能である。
1)ATMレイヤレベルのセル再送
2)CPCS−PDUを単位とする再送
3)SSCS−PDU(インタリーバ)を単位とする再送
4)SSCS−PDU(インタリーバ)内の列(任意の列数)を単位とする再送
5)レイヤ3以上のパケットを単位とする再送
ここでは、一例として、マルチキャストを行う場合で、かつ、上記3)のSSCS−PDU(インタリーバ)内の列(任意の列数)を単位として再送により誤り訂正を行なうケースについて述べる。
【0364】
第1の実施例で述べたように、送信側端末2tのSSCS処理モジュール106tでは、セル単位にSNを含むSSCSヘッダが付与されている。受信側端末2rのSSCS処理モジュール106rでは、このSSCSヘッダに従ってセル廃棄されたセルを特定するのである。これ以前で、何らかの誤りが生じているという事実は、CPCSレイヤのCRCにより検出済みである。検出した誤りが広範囲に及んでおり、送信時に付与されたFECの訂正能力を越えている場合には、送信側のSSCSレイヤに対して、再送要求を出す。再送要求のメッセージは、マルチキャストグループのメンバーである受信側端末のいずれかから送られることが予想され、その台数はわからない。1台だけかも知れないし、または数台から送られることもある。
【0365】
例えば、受信側端末2r−1のみが訂正能力以上の誤りを検出した場合、送信側端末2tのSSCS処理モジュール106tに対して、受信側端末2r−1は少なくとも自分のアドレス、またはマルチキャストアドレス、再送して欲しいセルのSNを送ることによって誤り訂正を実現する(図28参照)。
【0366】
受信側端末2r−1が送信した再送要求は、送信側端末2tのSSCS処理モジュール106tに届けられる。送信側端末2tでは再送要求メッセージの内容に応じて、それに対応するSNを持つセルを再送する。その際、マルチキャストコネクションとは別に設定されたポイント−ポイントコネクションを利用して、再送要求を送信した受信側端末にのみ再送データを送信しても構わないし、再度マルチキャストを行なっても構わない。
【0367】
廃棄されたセルをSSCS−PDU内のどの列に対応するかということをSNから特定できても、この例ではAAL5を前提としているので、通常、その廃棄されたセルのみを転送することはできない。AAL5のトレイラが付与され、1セル分の実データでも2セル分のAAL−PDUとなってしまう。再送データを転送する方法としては、以下のようなものが可能である。
(1)実データを独立したインタリーバに格納し直して、新たにFECを付与し、独立したAAL−PDUとして送出する。この場合は、廃棄された時のSNも新たなSSCSヘッダ/トレイラに記す必要がある。
(2)AALをヌルにして送出する。SSCSヘッダ/トレイラは以前のものを付与する。
(3)再送要求を受けとった時点で、その時、またはその次に転送するインタリーバの最初または最後に含ませてしまう。他のデータと混ざらないように、再送データであることの表示が必要。
【0368】
また、上記の方法での、再送の宛先としては、以下のそれぞれがある。
A)マルチキャストグループに属する全ての受信側端末(マルチキャストによって転送する)
B)再送要求を送ってきた受信側端末のみ(何らかの方法でポイント−ポイントのコネクションを設定する必要がある)
C)再送用のコネクションを個々の受信側端末に対して予め張っておいて、再送要求を送ってきた受信側端末に対してのみ再送する。SSCSヘッダ/トレイラは以前のものを付与する。
D)マルチキャストグループ内の一部
上記1の場合には、廃棄されたセル数が小さいと、FECコードの冗長性が高くなってしまう可能性がある。
【0369】
上記2の場合には、最小限のデータ量を網に送出することになりオーバーヘッドが小さい。
【0370】
上記Aのように、マルチキャストで再送データを送出すると、特定の受信側端末だけにコネクションを張り直すという処理を送信側端末が行なわなくて済むという利点がある。
【0371】
マルチキャストデータに再送セルを含ませる場合、受信したデータが再送データであるという識別は、SSCSヘッダ/トレイラに再送データであることを示すビットを立てるようにすれば良い。すでに正しく受信できている場合には受信側のSSCS処理モジュール106rで廃棄してしまえば良いので実現は比較的簡単である。
【0372】
図18のSSCSヘッダ/トレイラの例にはそのようなフィールドがなく、SSCSレイヤでエラーフリーな通信を提供する場合には、図29のように拡張したSSCSヘッダ/トレイラが通常の転送時から必要になる。
【0373】
(1)は、図18では1バイトであったSSCSヘッダ/トレイラに、再送データであることを表示するフィールドを1ビット付加した。
【0374】
(2)は、バイト単位が望ましいという見地から、SSCSヘッダ/トレイラのSNをより大きな値までとれるようにし、インタリーバ内のデータ領域と冗長コードの領域がより確実に識別できるようフィールドを増やした。
【0375】
(3)は、(2)とは逆に、SNフィールドを小さくすることによって1バイトのSSCSヘッダ/トレイラ内に再送データ表示フィールドを1ビット設けた。
【0376】
再送セル数は、FECの訂正能力に依存して減らすことが可能である。例えば、FECの訂正能力が128セル中4セルだった場合、再送要求で8個のセルを再送するようにリクエストされたとする。このFECコードでは4セル以内の廃棄ならば訂正できるので、再送するセル数は少なくとも4セル送ってやれば済む。このように、最小限のセルを送ることによって、網の輻輳を引き起こさないように防止することができる。このような利点も、FECを用いている場合の特徴の一つである。
【0377】
次に、送信側端末に複数の受信側端末から再送要求が送られてきた場合について説明する。ここでは、FECの訂正能力としては、1インタリーバのサイズが16セル、その内、1セルまでの訂正が可能なコードであるものとして説明する。
【0378】
廃棄されたセルを全て再送する方法の他に、次のようにして再送セルの数を削減できる方法がある。
【0379】
図30のように、受信側端末2r−1,2r−3から各々次のようなセルの再送要求が送信側端末2tのSSCS処理モジュール106tに到着したとする。
受信側端末2r−1→セルのSN…1,2,3
受信側端末2r−3→セルのSN…2,3,4
どの受信側端末で、どのセルが廃棄されたのかが、送信側端末で上記のように特定できた場合、その後の処理として以下のような方法がある。
(1)受信側端末が受信できなかったセルのSNを全て再送する。
(2)FFCの能力に応じて復号に必要な最小限のセルを再送する
ここでもそれぞれ、マルチキャストで送る方法と、ポイント−ポイントで送る方法がある。
【0380】
上記の廃棄されたセルのSNを比較すると、2と3が共通であることがわかる。上記2の方法に従えば、それぞれの受信側端末で3セルずつ廃棄が生じているので、それぞれ、あと2セルずつ正しく受信できれば、残りの1セルはFEC符号により回復することができる。よって、前で説明したように最小限のセルを再送する、というポリシーに基づいて、送信側端末2tは、受信側端末2r−1,2r−3に対して共通の廃棄セルであるSN=2,3を送信するという方法がとれる。もちろん、受信側端末2r−1に対してSN=1,2,3のセル、受信側端末2r−3に対してSN=2,3,4のセルと、個々に最小限のセルを送ることもできる。しかし、マルチキャストグループ内の特定の端末に対して再送を行なう場合には、先にも述べたが対応するポイント−ポイントのコネクションが必要になる。
【0381】
送信先は、前述した例と同様に、受信側端末2r−1,2r−3に限ることもできるし、再度マルチキャストによってこれらの2セルのみ、またはSN=1,2,3,4,の4個のセルを送ることもできる。
【0382】
マルチキャストによる場合、すでに正しく復号されている受信側端末ではデータが再送セルであることをSSCSレイヤで検出することができるのでそのセルは廃棄することができる。よって、重複して別のデータに混入してしまって、影響を及ぼす恐れはない。
【0383】
この時の再送セルもオーバーヘッドを最小限にするために、再送セルのみをCPCS−SDUにせず、SSCSレイヤのレベルで別のインタリーバに挿入してしまうことが可能である。
【0384】
マルチキャストグループ内の特定の受信側端末(ここでは受信側端末2r−1,2r−3)にだけデータを送るようにするには、送信側端末か、もしくは送信側端末と受信側端末の中継点で特定の受信側端末にだけコネクションを設定して必要最小限のセルのみを転送するという方法が考えられる。
【0385】
以上の例では、セル廃棄を検出した受信側が再送要求を出すという、Negative ACK(否定的な応答確認)を用いた方法であったが、Positive ACK(肯定的な応答確認)を用いる方法もとることができる。
【0386】
このような場合には、送信側端末2tがマルチキャストデータを送信後、SSCS処理モジュール106tでタイマを起動して、マルチキャストグループの全ての受信側端末2rからACKが返ってくるのを待つ。ACKには、受信側端末2rのアドレス、受信できたデータの識別子などが記されている。
【0387】
タイマの上限値の設定は、ラウンドトリップタイムに応じて設定される。このタイマの上限値を越えてもACKが返ってこない場合には、その返事のない受信側端末に対してそれに応じたデータを再送する。この再送の方法は、今まで述べてきた方法と同様である。
【0388】
このデータ送出のメカニズムはTCPのウィンドウ制御によく似ている方法であり、同じようにスライディングウィンドウを用いることもできる。ただし、マルチキャストという環境下でPositive ACKを用いているので、全ての受信側端末2rからACKが返ってこないとそれに対応するデータは再送用のメモリから排除できなくなってしまう。よって、ACKが経路の途中の輻輳を起こしているノード等で送れてしまっている時には、送信者は次のデータを送出できないという状況に陥ってしまい、スループットの低下が起こる可能性もある。
【0389】
受信側のAALより上位のレイヤには、SSCSレイヤでのFECと再送による誤り制御の効果で、エラーフリーな正しいデータが渡されることになる。その後は、レイヤ3,4の通常の処理が行なわれ、アプリケーションレイヤにはもちろん正しいデータが届けられる。
【0390】
受信側の説明に含めて、再送時の送信側の説明を述べた。このように行なうことで、マルチキャストを行なっている時に、FECの能力を越えてしまうほどの誤りが転送中に生じても、最小限のオーバーヘッドと遅延でサービスを提供できる。
【0391】
上記したように送受信側端末の処理を行なうことで、AALレベルにエラーフリーな通信を提供することが可能である。マルチキャストを行なう場合は、受信側端末の数が大きければ大きいほど、いずれかの受信側端末から送信側端末に対して再送要求が生じる可能性が高い。しかし、AALレベルにFEC機能を持たせ、さらに、再送による誤り訂正を提供することによって、信頼性が高く、リアルタイム性のより保証されたシステムを構築することができる。
【0392】
以上、各実施例にて説明したように、本発明によれば、ATM通信網で高速通信を行う場合に、AALのいずれかのレイヤにインタリーバとFECを用いた誤り制御方法を実装し、さらに、インタリーバのサイズを柔軟にアプリケーションデータのサイズに合わせることによってデータ転送の高効率化、高速化、省資源化を図ることができる。特に、AALタイプ5で高速データ転送を行う場合には、CPCSよりも上位のレイヤに本発明の誤り制御方法を適用することによって、本来FECが持つオーバーヘッドを最小限に抑えつつ、AALタイプ5の高速性を最大限に発揮することが可能となる。また、AAL1、2、3/4に対しても、より高効率にFECを実装することが可能である。
【0393】
また、本発明は、上述した各実施例に限定されるものではなく、その要旨を逸脱しない範囲で、種々変形して実施することができる。
【0394】
【発明の効果】
本発明によれば、信頼性の高いデータ通信を効果的に実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例の送受信端末のプロトコルスタックの構造を示す図
【図2】送信側端末2tおよび受信側端末2rの内部構成を示す図
【図3】AAL−IDUとして上位から渡されるアプリケーションデータを示す図
【図4】インタリーバへのアプリケーションデータの書き込みの様子を示す図
【図5】インタリーバへの書き込み順序の例を示す図
【図6】4オクテット単位でデータ長のアライメントをとる場合の様子を示す図
【図7】インタリーバにデータを格納した様子を示す図
【図8】他のインタリーバにデータを格納した様子を示す図
【図9】図8の場合の処理の流れを説明するための図
【図10】図7および図8の場合のLIフィールドの例を示す図
【図11】インタリーバからのデータの読み出しの例を示す図
【図12】FEC冗長コードの付与の例を示す図
【図13】データ領域内の最終列の長さ表示の例を示す図
【図14】図13のFEC演算の立場から見たマトリクスの状態を示す図
【図15】マトリクスの1ラインの符号語構成の例を示す図
【図16】データ領域にダミーを入れる場合のインタリーバの状態を示す図
【図17】SSCSヘッダ/トレイラを付与する単位を示す図
【図18】SSCSヘッダ/トレイラの一例の図
【図19】インタリーバ1つに対するSSCSヘッダ/トレイラを示す図
【図20】UUI=1を含むセルが廃棄された場合の受信側でのレイヤ処理を説明するための図
【図21】図8の場合の処理の流れを説明するための図
【図22】モジュロ値のテーブルを示す図
【図23】冗長シンボルのテーブルを示す図
【図24】本発明の第2の実施例における1対多通信の形態を示す図
【図25】同実施例の送受信端末のプロトコルスタックの構造を示す図
【図26】ATMコネクションの張り方を説明するための図
【図27】送信側端末2tおよび受信側端末2rの内部構成を示す図
【図28】受信端末2r−1において再送要求が出された場合について説明するための図
【図29】SSCSヘッダ/トレイラの例を示す図
【図30】複数の端末から再送要求が送られた場合について説明するための図
【図31】ATMアダプテーションレイヤを説明するための図
【符号の説明】
1…ATM網、3…ATM交換機、2t…送信側端末、2r…受信側端末、4t…アプリケーション処理モジュール、4r…アプリケーション処理モジュール、6t…SSCS処理モジュール、6r…SSCS処理モジュール、8t…インタリーバモジュール、8r…デインタリーバモジュール、10t…FEC付与モジュール、10r…FEC訂正モジュール、12t…SSCSヘッダ/トレイラ付与モジュール、12r…SSCSヘッダ/トレイラ確認モジュール、14t…CPCS処理モジュール、14r…CPCS処理モジュール、16t…LI付与モジュール、16r…LI確認モジュール、18t…CRC付与モジュール、18r…CRC確認モジュール、20t…SAR処理モジュール(セグメンテーション)、20r…SAR処理モジュール(リアセンブリ)、22t…ATMヘッダ付与モジュール、22r…ATMヘッダ削除モジュール、1−1〜1−7…ATM網、2r−1〜2r−5…受信側端末、30…マルチキャストサーバ、104t…アプリケーション処理モジュール、104r…アプリケーション処理モジュール、130t…MTP/RMP処理モジュール、130r…MTP/RMP処理モジュール、131t…IP処理モジュール、131r…IP処理モジュール、106t…SSCS処理モジュール、106r…SSCS処理モジュール、114t…CPCS処理モジュール、114r…CPCS処理モジュール、120t…SAR処理モジュール、120r…SAR処理モジュール、122t…ATMヘッダ処理モジュール、122r…ATMヘッダ処理モジュール、H…送信側端末、H1〜H25…受信側端末、S1〜S5…中継サーバ

Claims (4)

  1. FECによる誤り訂正機能および再送による誤り訂正機能を用いた通信におけるデータ再送制御方法であって、
    送信端末において、受信端末から、該受信端末にてFECによる誤り訂正機能によっては訂正できない誤りを伴って受信された誤りのある通信データに対する再送を要求する再送要求を受信する第1の手順と、
    前記第1の手順にて受信された前記再送要求およびFECによる前記誤り訂正機能の誤り訂正能力に基づいて、前記誤りのある通信データを、前記FECによる誤り訂正機能および前記再送による誤り訂正機能を用いることによってリカバーするのに必要な再送データの最小量を決定する第2の手順と、
    前記第2の手順にて決定された前記最小量の再送データを、前記送信端末から前記受信端末へ再送する第3の手順とを有することを特徴とするデータ再送制御方法。
  2. 前記通信は、前記送信端末から複数の受信端末へのマルチキャスト通信であり、
    前記第1の手順では、送信端末において、少なくとも一つの受信端末から前記再送要求を受信し、
    前記第3の手順では、前記最小量の再送データを、前記送信端末から前記少なくとも一つの受信端末へ再送することを特徴とする請求項に記載のデータ再送制御方法。
  3. FECによる誤り訂正機能および再送による誤り訂正機能を用いた通信におけるデータ再送制御システムであって、
    送信端末において、受信端末から、該受信端末にてFECによる誤り訂正機能によっては訂正できない誤りを伴って受信された誤りのある通信データに対する再送を要求する再送要求を受信する第1の手段と、
    前記第1の手段にて受信された前記再送要求およびFECによる前記誤り訂正機能の誤り訂正能力に基づいて、前記誤りのある通信データを、前記FECによる誤り訂正機能および前記再送による誤り訂正機能を用いることによってリカバーするのに必要な再送データの最小量を決定する第2の手段と、
    前記第2の手段にて決定された前記最小量の再送データを、前記送信端末から前記受信端末へ再送する第3の手段とを有することを特徴とするデータ再送制御システム。
  4. 前記通信は、前記送信端末から複数の受信端末へのマルチキャスト通信であり、
    前記第1の手段では、送信端末において、少なくとも一つの受信端末から前記再送要求を受信し、
    前記第3の手段では、前記最小量の再送データを、前記送信端末から前記少なくとも一つの受信端末へ再送することを特徴とする請求項に記載のデータ再送制御システム
JP32691194A 1994-12-28 1994-12-28 データ再送制御方法及びデータ再送制御システム Expired - Fee Related JP3614907B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP32691194A JP3614907B2 (ja) 1994-12-28 1994-12-28 データ再送制御方法及びデータ再送制御システム
DE1995634833 DE69534833T2 (de) 1994-12-28 1995-12-28 Schema für Fehlerkontrolle an der ATM-Adaptierungsschicht in ATM Netzwerken
US08/580,156 US6061820A (en) 1994-12-28 1995-12-28 Scheme for error control on ATM adaptation layer in ATM networks
EP19950120655 EP0721267B1 (en) 1994-12-28 1995-12-28 Scheme for error control on ATM adaption layer in ATM networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32691194A JP3614907B2 (ja) 1994-12-28 1994-12-28 データ再送制御方法及びデータ再送制御システム

Publications (2)

Publication Number Publication Date
JPH08186570A JPH08186570A (ja) 1996-07-16
JP3614907B2 true JP3614907B2 (ja) 2005-01-26

Family

ID=18193135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32691194A Expired - Fee Related JP3614907B2 (ja) 1994-12-28 1994-12-28 データ再送制御方法及びデータ再送制御システム

Country Status (4)

Country Link
US (1) US6061820A (ja)
EP (1) EP0721267B1 (ja)
JP (1) JP3614907B2 (ja)
DE (1) DE69534833T2 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6172972B1 (en) * 1996-05-28 2001-01-09 Microsoft Corporation Multi-packet transport structure and method for sending network data over satellite network
JP3510634B2 (ja) * 1996-12-26 2004-03-29 株式会社エヌ・ティ・ティ・ドコモ データ伝送方法
DE19702141C2 (de) * 1997-01-22 1998-10-29 Siemens Ag Verfahren zum Übertragen von Sprachinformationen in ATM-Zellen
WO1998034380A2 (en) * 1997-02-04 1998-08-06 Gte Government Systems Corporation Method and apparatus for transmitting atm over deployable line-of-sight channels
GB2322515A (en) * 1997-02-21 1998-08-26 Northern Telecom Ltd Adaptation layer switching
KR100302263B1 (ko) * 1997-03-25 2001-09-22 모리시타 요이찌 스트림 데이터 전송방법 및 시스템
EP1416678A3 (en) * 1997-05-13 2004-05-26 Matsushita Electric Industrial Co., Ltd. Packet transmitter
US7284187B1 (en) * 1997-05-30 2007-10-16 Aol Llc, A Delaware Limited Liability Company Encapsulated document and format system
GB2327578A (en) * 1997-07-18 1999-01-27 Nokia Mobile Phones Ltd Convolutional interleaver for preventing the transmission of unwanted data
US6170075B1 (en) 1997-12-18 2001-01-02 3Com Corporation Data and real-time media communication over a lossy network
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
ATE218778T1 (de) 1997-12-12 2002-06-15 3Com Corp Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedien
US6145109A (en) * 1997-12-12 2000-11-07 3Com Corporation Forward error correction system for packet based real time media
US6804246B1 (en) * 1997-12-19 2004-10-12 Telefonaktiebolaget Lm Ericsson (Publ) Asynchronous transfer mode system handling differing AAL protocols
US7872969B2 (en) * 1997-12-23 2011-01-18 Ciena Corporation Method and apparatus for auto detection of AAL5 type frames for VCC and VPC switches
KR100258355B1 (ko) * 1997-12-26 2000-06-01 김영환 8 비트 병렬 셀 단위 인터리버
JP3338369B2 (ja) * 1998-04-17 2002-10-28 沖電気工業株式会社 Atm試験方法およびatm試験方式
US6438131B1 (en) * 1998-07-28 2002-08-20 Lucent Technologies Inc. Low-overhead service specific convergence layer for voice and telephony over packet-based systems
JP2000078197A (ja) * 1998-09-03 2000-03-14 Toshiba Corp 通信ノード及びパケット転送方法
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
FI106504B (fi) * 1998-10-06 2001-02-15 Nokia Networks Oy Datan segmentointimenetelmä tietoliikennejärjestelmässä
JP3567092B2 (ja) * 1998-12-25 2004-09-15 シャープ株式会社 パケットデータ通信装置
US7593380B1 (en) * 1999-03-05 2009-09-22 Ipr Licensing, Inc. Variable rate forward error correction for enabling high performance communication
FI107425B (fi) * 1999-03-16 2001-07-31 Nokia Mobile Phones Ltd Menetelmä ja järjestelmä multimediaan liittyvän informaation välittämiseksi pakettikytkentäisessä solukkoradioverkossa
US20030195983A1 (en) * 1999-05-24 2003-10-16 Krause Michael R. Network congestion management using aggressive timers
US6574795B1 (en) * 1999-05-28 2003-06-03 Intel Corporation Reliable communication of data by supplementing a unidirectional communications protocol
KR100608042B1 (ko) * 1999-06-12 2006-08-02 삼성전자주식회사 멀티 미디어 데이터의 무선 송수신을 위한 인코딩 방법 및그 장치
US6519261B1 (en) * 1999-07-02 2003-02-11 Nortel Networks Limited Asynchronous transfer mode adaptation arrangements
CN1553602B (zh) * 1999-07-08 2013-03-13 三星电子株式会社 移动通信系统中插入填充比特的设备和方法
US6807648B1 (en) 1999-09-13 2004-10-19 Verizon Laboratories Inc. Variable-strength error correction in ad-hoc networks
JP2001230785A (ja) * 2000-02-18 2001-08-24 Fujitsu Ltd Aal1セル帯域制御方式
KR100657253B1 (ko) * 2000-03-29 2006-12-14 삼성전자주식회사 무선 패킷 송수신 장치 및 그 방법
US6598200B1 (en) * 2000-06-02 2003-07-22 Nortel Networks Limited Method and apparatus for frequency domain data frame transmission
JP2002027537A (ja) * 2000-07-10 2002-01-25 Sharp Corp 携帯電話機を利用したデータ通信システム
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US6594793B1 (en) * 2000-09-08 2003-07-15 Ericsson Inc. Methods and systems for multiplexing and decoding variable length messages in digital communications systems
KR100351829B1 (ko) 2000-09-26 2002-09-11 엘지전자 주식회사 디지털 통신 시스템
US20020124224A1 (en) * 2000-12-29 2002-09-05 Blankenship Thomas Keith Method and system for matching information rates in turbo coded channels
GB0101705D0 (en) * 2001-01-23 2005-04-06 Bae Sys Defence Sys Ltd Improved ATM cell handling
US7594249B2 (en) * 2001-05-04 2009-09-22 Entropic Communications, Inc. Network interface device and broadband local area network using coaxial cable
US7031342B2 (en) * 2001-05-15 2006-04-18 Webex Communications, Inc. Aligning data packets/frames for transmission over a network channel
WO2003001712A1 (en) * 2001-06-21 2003-01-03 Flarion Technologies, Inc. Methods and apparatus for indicating packet boundaries in frames
US7631242B2 (en) * 2001-06-22 2009-12-08 Broadcom Corporation System, method and computer program product for mitigating burst noise in a communications system
US7233576B1 (en) 2001-08-16 2007-06-19 Network General Technology Method and apparatus for transferring data from an ATM connection table to memory for use by an application program
KR100434384B1 (ko) * 2002-03-21 2004-06-04 엘지전자 주식회사 선택적 흐름제어를 통한 데이터 신뢰성 보장장치 및 방법
KR20040093499A (ko) * 2002-04-05 2004-11-05 코닌클리케 필립스 일렉트로닉스 엔.브이. 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치
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
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US7882081B2 (en) * 2002-08-30 2011-02-01 Netapp, Inc. Optimized disk repository for the storage and retrieval of mostly sequential data
KR101143282B1 (ko) 2002-10-05 2012-05-08 디지털 파운튼, 인크. 연쇄 반응 코드의 체계적 인코딩 및 디코딩
US7336667B2 (en) * 2002-11-21 2008-02-26 International Business Machines Corporation Apparatus, method and program product to generate and use CRC in communications network
US20050013274A1 (en) * 2003-03-05 2005-01-20 Harri Pekonen System and method for data transmission and reception
US20040267968A1 (en) * 2003-06-25 2004-12-30 Agilent Technologies Belgium S.A./N.V Implementation of a column interleaving function with a limited amount of columns
US7376198B2 (en) * 2003-09-10 2008-05-20 Cisco Technology, Inc. Methods and apparatus for multicasting content
KR101170629B1 (ko) 2003-10-06 2012-08-02 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러 정정 다중-스테이지 코드 생성기 및 디코더
US7353448B1 (en) * 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
EP1526701A1 (en) * 2003-10-22 2005-04-27 Mitsubishi Denki Kabushiki Kaisha Methods and devices for transferring and for recovering data packets
KR100571824B1 (ko) * 2003-11-26 2006-04-17 삼성전자주식회사 부가정보 삽입된 mpeg-4 오디오 bsac부호화/복호화 방법 및 장치
DE60322550D1 (de) * 2003-12-09 2008-09-11 St Microelectronics Nv Methode und Apparat zur Entschachtelung aufeinanderfolgender Sequenzen von verschachtelten Abtastdaten
JP4349114B2 (ja) * 2003-12-10 2009-10-21 ソニー株式会社 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
US7451381B2 (en) * 2004-02-03 2008-11-11 Phonex Broadband Corporation Reliable method and system for efficiently transporting dynamic data across a network
US7599294B2 (en) * 2004-02-13 2009-10-06 Nokia Corporation Identification and re-transmission of missing parts
US7434150B1 (en) 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
EP1743431A4 (en) 2004-05-07 2007-05-02 Digital Fountain Inc SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES
WO2006038095A1 (en) * 2004-10-07 2006-04-13 Nokia Corporation Efficient source blocking algorithm for fec for mbms streaming
US20090022079A1 (en) * 2005-05-04 2009-01-22 Fei Frank Zhou Method and apparatus for providing enhanced channel interleaving
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
US7698290B2 (en) * 2005-09-01 2010-04-13 Nippon Telegraph And Telephone Corporation Error correction method and apparatus
US20070104225A1 (en) * 2005-11-10 2007-05-10 Mitsubishi Denki Kabushiki Kaisha Communication apparatus, transmitter, receiver, and error correction optical communication system
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
JP5354985B2 (ja) 2007-07-30 2013-11-27 パナソニック株式会社 符号化装置及び復号化装置
CA2697764A1 (en) 2007-09-12 2009-03-19 Steve Chen Generating and communicating source identification information to enable reliable communications
JPWO2009069262A1 (ja) * 2007-11-29 2011-04-07 パナソニック株式会社 無線送信装置および無線送信方法
US7900119B2 (en) * 2007-11-30 2011-03-01 Lantiq Deutschland Gmbh Interleaving redundancy apparatus and method
EP2963828B1 (en) 2008-07-02 2022-09-07 Panasonic Intellectual Property Corporation of America Erasure correction coding for different packet sizes using packet division
JP5312484B2 (ja) 2008-12-26 2013-10-09 パナソニック株式会社 符号化方法、符号化器及び復号器
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
EP2485420A4 (en) * 2009-09-30 2014-10-08 Fujitsu Ltd DATA TRANSFER DEVICE, DATA GENERATION PROGRAM, AND DATA TRANSMISSION / RECEIVING METHOD
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
JP5744554B2 (ja) * 2011-02-07 2015-07-08 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9496982B2 (en) 2011-03-04 2016-11-15 Alcatel Lucent System and method providing resilient data transmission via spectral fragments
US9030953B2 (en) 2011-03-04 2015-05-12 Alcatel Lucent System and method providing resilient data transmission via spectral fragments
US9686062B2 (en) 2011-03-04 2017-06-20 Alcatel Lucent Virtual aggregation of fragmented wireless spectrum
US8601334B2 (en) 2011-05-10 2013-12-03 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9021330B2 (en) * 2012-05-15 2015-04-28 Alcatel Lucent System and method for multi-channel FEC encoding and transmission of data
US9543981B2 (en) * 2014-03-25 2017-01-10 Texas Instruments Incorporated CRC-based forward error correction circuitry and method
US10372528B1 (en) * 2014-12-15 2019-08-06 Seagate Technology Llc Random values from data errors
GB2539693B (en) * 2015-06-24 2019-06-19 Canon Kk Emission of a signal in unused resource units to increase energy detection of an 802.11 channel
US10367605B2 (en) * 2015-07-02 2019-07-30 Intel Corporation High speed interconnect symbol stream forward error-correction
KR102739832B1 (ko) * 2016-11-24 2024-12-09 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그의 동작 방법
US10320694B2 (en) * 2017-05-04 2019-06-11 Nokia Of America Corporation Methods, apparatuses and computer-readable storage mediums for communication via user services platform
JP7474078B2 (ja) * 2020-03-10 2024-04-24 日本放送協会 配信サーバ及びプログラム
JP7639906B2 (ja) * 2021-05-25 2025-03-05 日本電信電話株式会社 再送制御装置および再送制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115436A (en) * 1990-05-04 1992-05-19 Bell Communications Research Forward error correction code system
JP3159999B2 (ja) * 1991-03-20 2001-04-23 富士通株式会社 伝送システム
JPH06121001A (ja) * 1992-10-01 1994-04-28 Matsushita Electric Ind Co Ltd セル通信誤り時の再送制御方式
US5572532A (en) * 1993-12-29 1996-11-05 Zenith Electronics Corp. Convolutional interleaver and deinterleaver

Also Published As

Publication number Publication date
EP0721267B1 (en) 2006-03-08
US6061820A (en) 2000-05-09
EP0721267A3 (en) 1998-02-04
DE69534833T2 (de) 2006-11-30
DE69534833D1 (de) 2006-05-04
EP0721267A2 (en) 1996-07-10
JPH08186570A (ja) 1996-07-16

Similar Documents

Publication Publication Date Title
JP3614907B2 (ja) データ再送制御方法及びデータ再送制御システム
JP3571918B2 (ja) 符号伝送方法、送信装置、受信装置および通信システム
US6675346B2 (en) Code transmission scheme for communication system using error correcting codes
US6633564B1 (en) Method and apparatus for inserting packets into a data stream
JPH08214010A (ja) ユーザパケットの多重化方法
JPWO1997033227A1 (ja) 高速一括ファイル転送方法及び装置並びに転送方法を実行するためのプログラムを記憶した記憶媒体
EP4557690A1 (en) Data transmission method, network device, computer device, and storage medium
JP2986079B2 (ja) データ構造のビット速度を動的に変更する方法
US6925096B2 (en) Method and apparatus for managing traffic flows
JPH08214009A (ja) 広帯域セルのペイロード生成方法
WO1997038549A1 (en) Method and apparatus for forward error correction of transmitted digital signals in networks
US7020821B2 (en) Redundant packet telecommunication network system using minimum hamming distances to construct a final estimate of a original codeword
US6731640B1 (en) Frame synchronization over multiple networks
JP2001230785A (ja) Aal1セル帯域制御方式
JPH0787099A (ja) Atm網における誤り制御方法
Feldmeier A data labelling technique for high-performance protocol processing and its consequences
Akyildiz et al. An adaptive FEC scheme for data traffic in wireless ATM networks
Esaki et al. Reliable IP multicast communication over ATM networks using forward error correction policy
KANAI et al. Forward error correction control on AAL 5: FEC-SSCS
Esaki et al. Draft Proposal for Specification of FEC-SSCS for AAL Type 5
CN121262015B (zh) 一种基于单向传输设备的关键数据传输方法
CN117354241B (zh) 数据传输方法、设备及系统
CN1175144A (zh) 基于其序列号检测丢失或误插入的包的方法
US6694472B1 (en) Error correction for frames carried over multiple networks
Schatzmayr et al. Providing support for data transfer in a new networking environment

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040830

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: 20041026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041028

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071112

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees