KR20110097917A - 온 디멘드 에러 제어 - Google Patents

온 디멘드 에러 제어 Download PDF

Info

Publication number
KR20110097917A
KR20110097917A KR1020117015250A KR20117015250A KR20110097917A KR 20110097917 A KR20110097917 A KR 20110097917A KR 1020117015250 A KR1020117015250 A KR 1020117015250A KR 20117015250 A KR20117015250 A KR 20117015250A KR 20110097917 A KR20110097917 A KR 20110097917A
Authority
KR
South Korea
Prior art keywords
data packet
tsv
vector
receiving unit
unit
Prior art date
Application number
KR1020117015250A
Other languages
English (en)
Other versions
KR101709928B1 (ko
Inventor
코엔라드 래븐스
블리샤우버 데니 드
나탈리 드그랑드
Original Assignee
알까뗄 루슨트
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 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20110097917A publication Critical patent/KR20110097917A/ko
Application granted granted Critical
Publication of KR101709928B1 publication Critical patent/KR101709928B1/ko

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/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

Abstract

본 발명은, 멀티캐스트 전송에 특히 유리한 패킷 스위칭된 네트워크에서의 새로운 에러 제어 패러다임에 관한 것이다. 전송 상태 벡터 TSV(T)는 새로운 아웃고잉 데이터 패킷(Dj-1)이 전송을 위해 스케줄링될 때마다 송신기측에서 업데이트된다. 대응하는 수신 상태 벡터 RSV(R)는 새로운 인커밍 및 정확하게 인덱스된 데이터 패킷(Dj-1)이 유효하게 수신될 때마다 수신기측에서 유사하게 업데이트된다. 분실되거나 오류가 생긴 데이터 패킷(Dj)이 검출되는 즉시, RSV의 업데이트가 보류된다. 그 후에 현재 TSV의 값 또는 그 일부를 획득하기 위한 요청이 송신기에 전송된다. 그 후에 현재 TSV의 값(Sk, m)으로부터, 최종 업데이트된 RSV의 값(Sj-1)으로부터, 및 그렇지 않으면 유효하게 수신된 데이터 패킷들(Dj+1,..., Dk)로부터 오류가 있는 데이터 패킷이 복구된다. 본 발명은 특히, 그 패러다임을 구현하는 전송 유닛(100) 및 수신 유닛(200)과, 대응적으로 데이터 손실 또는 데이터 오류에 대해 인덱스된 데이터 패킷들의 흐름을 보호하기 위한 방법 및 인덱스된 데이터 패킷들의 흐름 내에서 분실되거나 오류가 생긴 데이터 패킷을 복구하기 위한 방법에 관한 것이다.

Description

온 디멘드 에러 제어{ERROR CONTROL ON-DEMAND}
본 발명은 패킷 스위칭된 네트워크에서의 새로운 에러 제어 패러다임에 관한 것이다.
패킷 스위칭된 네트워크들은 본질적으로 신뢰할 수 없으며, 패킷들을 지연시키거나, 손실시키거나, 분실하거나, 또는 이들을 비순차적으로 전달하지 않을 것을 보장하지 않는 것을 의미한다.
순방향 에러 정정(FEC) 및 재전송은 패킷 스위칭된 네트워크를 통해 신뢰할 수 있는 통신을 제공하기 위한 기본 에러 제어 패러다임들이다.
재전송은 오류가 생기거나 분실된 데이터 패킷들의 재송신이며,
- 수신된 정보의 무결성을 체크하기 위한 체크섬들(또는 유사한 것),
- 확인응답들, 즉 수신자로부터 어떤 리턴 채널을 통한 송신자쪽으로의 명시적 수신들,
- 분실되거나 손실된 패킷들의 재전송(송신자 또는 수신자에 의해 개시됨)에 의존한다.
재전송은, 각각의 미결(즉, 아직까지 확인응답되지 않은) 패킷의 카피가, 존재한다면, 추가의 재전송을 위해 송신자측에서 유지되는 것을 내포한다.
재전송 전략들의 여러 형태들이 존재하며, 가장 두드러지게는:
- 선택적 확인응답(SACK): 수신자는 패킷들, 메시지들 또는 세그먼트들이 정확하게 수신되었음과, 덧붙여 패킷들이 정확하게 수신되지 않았음을 송신자에게 명시적으로 통지한다.
- 누적 확인응답: 수신자가 패킷들, 메시지들 또는 세그먼트들을 정확하게 수신된 것으로서 확인응답하며, 확인응답은 모든 이전 패킷들이 역시 정확하게 수신되었음을 내포한다. 전송 제어 프로토콜(TCP)은 누적 확인응답을 이용한다.
- 부정적 확인응답(NACK): 수신자는 패킷들, 메시지들 또는 세그먼트들이 부정확하게 수신되었고 따라서 재전송되어야 하는 것을 송신자에게 명시적으로 통지한다.
재전송은 멀티캐스트 전송, 즉 하나의 송신자가 하나의 공용 데이터 스트림으로 많은 수신자들을 서빙하는 경우에 불리하다. 통상적으로, 멀티캐스트 전송에 대한 신뢰성은 부정적 확인응답들 및 유니캐스트와 동시적 통신 채널을 통한 재전송에 의해 달성된다. 상당량의 데이터 패킷들은 최종-사용자에 대한 수용 가능한 경험 품질(QoE: Quality of Experience)을 달성하도록 멀티캐스트 복제 노드에서 또는 서버측에서 유지되야 한다. 재전송 캐시의 크기는 수신자로부터 재전송 유닛으로의 왕복 시간(RTT: Round Trip Time)에 의존하고, 요구된 패킷이 최종적으로 수신자에게 도달하도록 하기 위해 필요할 수 있는 재-전송의 수에 의존한다(즉, 잡음 및/또는 네트워크 환경에 따라, 가입자가 경험할 수 있다). 통상적으로, 최종 100-200ms의 비디오 정보(즉, 약 50 내지 100 데이터 패킷들)는 각각 및 모든 브로드캐스팅된 채널들에 대해 캐싱되어야 한다. 유사하게, 상당량의 전용 유니캐스트 통신 리소스들은 많은 가입자들을 서빙하도록 패킷 재전송을 위해 제공되어야 한다. 분명하게, 이러한 솔루션은 가입자들 및 채널들의 수가 증가할 때 스케일링 가능하지 않다.
FEC는 정보 데이터에 대한 리던던트 데이터의 추가이다. 이것은 수신기가 자체적으로 (일부 경계 내에서) 에러들을 검출 및 정정하도록 허용하지만, 일부 데이터 오버헤드를 훼손시킨다. 따라서, FEC는 재전송들이 비교적 비싸거나 불가능한 경우들에 적용된다.
FEC의 2개의 주요 카테고리들은, 리드 솔로몬(RS), 골레이(Golay), 보즈 앤 레이-차우드허리(BCH: Bose and Ray-chaudhuri) 및 해밍 코드들과 같은 블록 코딩과 콘볼루션 코딩이다. 에러 정정에서 가장 최근의 개발은 터보 코딩으로서, 2개 이상의 비교적 간단한 콘볼루션 코드들과 인터리버를 조합하여 샤논 한도(shannon limit)의 소수 내로 수행할 수 있는 블록 코드를 생성하는 방식이다.
FEC는 수용 가능한 QoE를 달성하기 위해 상당량의 데이터 오버헤드가 요구되고, 그에 의해 다른 서비스들에 의해 이용될 대응하는 채널 대역폭을 방해한다는 점에서 역시 불리하다.
수신 유닛쪽으로 인덱스된 데이터 패킷들의 흐름을 전송하고:
- 새로운 아웃고잉 데이터 패킷이 전송을 위해 스케줄링될 때마다 전송 상태 벡터 TSV를 업데이트하도록 구성된 전송 상태 계산 수단으로서, TSV는 새로운 인커밍 데이터 패킷이 유효하게 수신될 때마다 상기 수신 유닛에서 유사하게 업데이트된 대응하는 수신 상태 벡터 RSV와 매칭하고, 상기 새로운 인커밍 데이터 패킷의 인덱스는 다음 예상된 데이터 패킷 인덱스인, 상기 전송 상태 계산 수단,
- 상기 수신 유닛으로부터의 요청시, 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 적어도 하나의 현재 성분값을 전송하도록 구성된 통신 수단으로서, 상기 적어도 하나의 현재 성분값은 상기 RSV의 최종 업데이트된 벡터값과 조합될 때, 그렇지 않으면 유효하게 수신된 데이터 패킷들과 조합될 때, 적어도 하나의 분실되거나 오류가 생긴 데이터 패킷의 복구를 허용하는, 상기 통신 수단을 포함하는 전송 유닛에 의해,
대응적으로, 전송 유닛으로부터 인덱스된 데이터 패킷들의 흐름을 수신하고:
- 새로운 인커밍 데이터 패킷이 유효하게 수신될 때마다 수신 상태 벡터 RSV를 업데이트하도록 구성된 수신 상태 계산 수단으로서, 상기 새로운 인커밍 데이터 패킷의 인덱스는 다음 예상된 데이터 패킷 인덱스이고, RSV는 새로운 아웃고잉 데이터 패킷이 전송을 위해 스케줄링될 때마다 상기 전송 유닛에서 유사하게 업데이트된 대응하는 전송 상태 벡터 TSV와 매칭하는, 상기 수신 상태 계산 수단,
- 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 상기 전송 유닛으로부터 적어도 하나의 현재 성분값을 획득하도록 구성된 통신 수단,
- 상기 적어도 하나의 현재 성분값으로부터, 상기 RSV의 최종 업데이트된 벡터값으로부터, 그렇지 않으면 유효하게 수신된 데이터 패킷들로부터 분실되거나 오류가 생긴 데이터 패킷을 복구하도록 구성된 복구 수단을 포함하는 수신 유닛에 의해, 본 발명의 목적들이 달성되고 상술된 종래 기술의 단점들이 극복된다.
전송 상태 벡터(TSV) 및 수신 상태 벡터(RSV)는 전송측 및 수신측에서 각각 최신 데이터가 유지된다. TSV 및 RSV는 새로운 아웃고잉 데이터 패킷이 전송을 위해 스케줄링될 때마다, 그리고 새로운 인커밍 및 인접하여 인덱스된 데이터 패킷(즉, 그 인덱스가 다음 예상된 데이터 패킷 인덱스임)이 유효하게 수신될 때마다 공용 알고리즘에 따라 업데이트된다. 어떻게든, TSV 및 RSV는, 소형 형태이긴 하지만 전송 및 수신 이력(즉, 어떤 정보 바이트들이 전송되고 수신되었는지)의 추적을 유지한다. 통상적으로, TSV 및 RSV는 하나 이상의 벡터 성분들(즉, 벡터 방향에 의존한 로우들 또는 컬럼들)을 포함하고, 각각의 벡터 성분의 길이는 데이터 패킷 길이와 매칭한다. TSV 및 RSV는 전송 및 수신의 일반적으로 동의된 인덱스에서 어떤 초기 상태로 리셋되며, 이 인덱스는 데이터 패킷 자체에 인코딩된 대응하는 데이터 패킷 인덱스와 매칭한다. 이들 인덱스들은 반드시 일치할 필요는 없지만, 그들 사이의 매칭 상응이 요구된다.
수신된 데이터 패킷들의 흐름 내에서 분실되거나 오류가 생긴 데이터 패킷이 검출되는 즉시, 수신기는 전송기와 동기를 벗어나게 되고 RSV를 더 이상 업데이트할 수 없다. 그 후에 현재 TSV의 값, 즉 최종 업데이트된 TSV의 값 또는 그 일부 뿐만 아니라 그 값이 대응하는 전송 인덱스를 획득하기 위한 요청이 전송기에 전송된다. 이들 전송 상태 정보를 최종 업데이트된 RSV의 값과 조합하거나, 그렇지 않고 정확하게 수신된 데이터 패킷들과 조합함으로써, 분실되거나 오류가 생긴 데이터 패킷을 알려지지 않은 파라미터들로서 구성하는 데이터 심볼들(예를 들면, 비트들, 바이트들)로 수학식들의 세트를 도출한다. 전송 및 수신 상태 벡터의 계산이 이들 수학식들이 반전 가능하게 되는 경우, 분실되거나 오류가 생긴 데이터 심볼들이 복구될 수 있고, RSV의 업데이트가 재개될 수 있으며, 이것은 본원에 더 기재될 것이다.
본 발명은, 에러 제어 정보가 요구시에만 전송되고 분실되거나 오류가 생긴 데이터가 정확한 범위까지 복구되어야 한다는 점에서 유리하다. 본 발명은 또한, 전체 전송 이력이 어떻게든 단일 상태 벡터로 컴파일되고, 단일 상태 벡터는 데이터 패킷들이 재전송을 위해 유지되는 대응하는 전송 캐시보다 소수의 성분들을 갖고, 그에 의해 메모리 요건을 중요도의 정도까지 해제한다는 점에서 유리하다. 마지막으로, 그러나 역시 중요한 것이지만, 수신기는 그 사용자에 대한 요구된 QoE를 달성하기 위해 그 수신 캐시 및 복구 전략을 치수화할 수 있다. 전송기는 최악의 경우의 시나리오를 수용하기 위한 수백개의 패킷들의 트랙을 추적할 필요가 없다. 다만 상태 벡터의 치수가 중요하다; 벡터 요소들이 많을수록 복구될 수 있는 데이터 패킷들이 많아지고 데이터 통신 시스템이 더욱 탄력적이다.
수신측에서의 더 적은 계산 복잡도 또는 더 낮은 복구 능력으로 인해 RSV가 실제 TSV의 서브세트일 수 있고, 그 경우 TSV는 그 특정 수신기의 RSV와 매칭하는 TSV의 서브세트로 구성되어야 함을 유념한다.
또한, 전송 및 수신 상태 정보의 계산이 통신 프로토콜 스위트(communication protocol suite)의 임의의 층에서 실행될 수 있음을 유념한다. 예를 들면, 층 2(L2)에서, 전송 및 수신 상태 정보는 예를 들면, 이더넷 페이로드로부터 계산되고(그리고 이더넷 프레임들이 하나의 방식 또는 다른 방식으로 인덱스된다고 가정하고), 단방향 유니캐스트 또는 멀티캐스트 통신들이 존재하는 만큼의 많은 상태 벡터들이 존재한다. 대안적으로, 전송 및 수신 상태 정보의 계산은 특정 타입의 트래픽 또는 페이로드로 제한될 수 있다.
본 발명에 따른 전송 유닛의 예는 비디오 헤드 엔드와 같은 인코딩 디바이스, 또는 멀티미디어 서버, 또는 디지털 가입자 회선 액세스 멀티미디어(DSLAM) 또는 무선/모바일 기지국과 같은 중간 복제 노드이고, 본 발명에 따른 수신 유닛의 예는 셋톱 박스(STB) 또는 모뎀 또는 라우터와 같은 가입자 게이트웨이, 또는 텔레비전 세트 또는 개인용 컴퓨터 또는 무선/모바일 단말기와 같은 가입자 단말기, 또는 디코딩 디바이스이다.
본 발명에 따른 전송 유닛의 다른 실시예는, 상기 통신 수단은 또한 상기 TSV의 현재 벡터값을 상기 수신 유닛쪽으로 주기적으로 광고하도록 구성된다는 것을 특징으로 한다.
현재 TSV의 값을 정규적으로 광고(또는 브로드캐스팅)함으로써, 전송 유닛은 수신 유닛이 때때로 그 RSV를 재동기시키게 하고, 그에 의해 검출되지 않은 데이터 오류로 인한 계산 착오들을 회피시킨다. 너무 많은 오류가 있는 패킷들의 경우에도 도움이 되며, 이 경우, 수신기는 정규 동작을 재개하도록 전송기와 상태 벡터를 재동기시켜야 한다.
본 발명에 따른 전송 유닛의 대안적인 실시예는, 상기 통신 수단은 또한 상기 수신 유닛의 제어 하에서 상기 적어도 하나의 벡터 성분을 선택하도록 구성되는 것을 특징으로 하고, 대응적으로 본 발명에 따른 수신 유닛의 대안적인 실시예는, 상기 수신 유닛은 상기 TSV 내에서 상기 적어도 하나의 벡터 성분을 선택하도록 구성된 선택기를 더 포함하는 것을 특징으로 한다.
수신기는 복구 처리에 필요한 전송 상태 정보의 양을 면밀히 제어하며, 즉 예를 들면 임펄스 잡음으로 인해 대량의 연속하는 데이터 패킷이 분실되는 경우보다 단일 데이터 패킷이 여기 저기서 분실되는 경우에 더 적은 TSV의 성분들이 요구된다. 에러 제어 정보량은 가입자가 경험하는 특정 채널 손실과 매칭하고, 그에 의해 FEC 패러다임(에러 제어 정보는 각각 및 모든 전송된 페이로드에 디폴트로 첨부되는)에 대한 대역폭 사용을 완화시키고 그 대역폭을 다른 동시적인 서비스들에 이용 가능하게 한다.
제 1 실시예에서, 상기 적어도 하나의 벡터 성분은 정보의 현재량에 따라 선택되고 그 복구는 계류중이다.
제 2 실시예에서, 상기 적어도 하나의 벡터 성분은 정보의 추정량에 따라 선택되고, 그 복구는 상기 적어도 하나의 현재 성분값의 수신시 계류중인 것으로 예상된다.
여전히 들어오고 있는 오류가 있는 패킷들을 예측함으로써, 처음 요청된 TSV의 성분들이 오류가 있는 패킷들의 증가하는 수에 더 이상 충분하지 않는 경우, 및 부가의 TSV의 성분들이 더 요청되어야 하는 경우 새로운 통신 라운드를 회피한다. 분실되거나 오류가 생긴 정보의 예상량은 통상적으로 관찰된 에러 패턴 및 RTT 측정들에 기초한다. 이 실시예는 더욱 고속의 데이터 복구를 달성하지만, 예상이 너무 비관적인 경우에 어떤 부가의 오버헤드를 희생한다.
본 발명에 따른 전송 유닛 및 수신 유닛의 또 다른 실시예는 상기 통신 수단은 무상태 데이터 통신 프로토콜(stateless data communication protocol)에 의해 서로 통신하도록 구성되는 것을 특징으로 한다.
요청되고 전송되는 전송 상태 정보는 현재의 정보들이며, 따라서, 요청 클라이언트에 상관없이 동일하다. 현재 상태 벡터의 제 1 전송이 실패하면, 후속 상태 벡터의 제 2 전송이 발생할 것이다. 사용자 데이터그램 프로토콜(UDP)과 같은 무상태 통신 프로토콜이 특히 적합하다. 결과적으로, 전송측에서 통신 컨텍스트가 유지될 필요가 없어서, 이 솔루션을 매우 스케일링 가능하게 한다. 이 실시예는 멀티캐스트 전송에 특히 유리하다.
본 발명은 또한, 수신 유닛쪽으로 전송되는 인덱스된 데이터 패킷들의 흐름을 데이터 손실 또는 데이터 오류로부터 보호하기 위한 방법으로서:
- 새로운 아웃고잉 데이터 패킷이 전송을 위해 스케줄링될 때마다 전송 상태 벡터 TSV를 업데이트하는 단계로서, TSV는 새로운 인커밍 데이터 패킷이 유효하게 수신될 때마다 상기 수신 유닛에서 유사하게 업데이트된 대응하는 수신 상태 벡터 RSV와 매칭하고, 상기 새로운 인커밍 데이터 패킷의 인덱스는 다음 예상된 데이터 패킷 인덱스인, 상기 업데이트 단계,
- 상기 수신 유닛으로부터의 요청시, 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 적어도 하나의 현재 성분값을 전송하는 단계로서, 상기 적어도 하나의 현재 성분값은 상기 RSV의 최종 업데이트된 벡터값과 조합될 때, 그렇지 않으면 유효하게 수신된 데이터 패킷들과 조합될 때, 적어도 하나의 분실되거나 오류가 생긴 데이터 패킷의 복구를 허용하는, 상기 전송 단계를 포함하는 것을 특징으로 하는, 상기 수신 유닛쪽으로 전송되는 인덱스된 데이터 패킷들의 흐름을 보호하기 위한 방법과,
전송 유닛으로부터 수신되는 인덱스된 데이터 패킷들의 흐름 내에서 분실되거나 오류가 생긴 데이터 패킷을 복구하기 위한 방법으로서:
- 새로운 인커밍 데이터 패킷이 유효하게 수신될 때마다 수신 상태 벡터 RSV를 업데이트하는 단계로서, 상기 새로운 인커밍 데이터 패킷의 인덱스는 다음 예상된 데이터 패킷 인덱스이고, RSV는 새로운 아웃고잉 데이터 패킷이 전송을 위해 스케줄링될 때마다 상기 전송 유닛에서 유사하게 업데이트된 대응하는 전송 상태 벡터 TSV와 매칭하는, 상기 업데이트 단계,
- 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 상기 전송 유닛으로부터 적어도 하나의 현재 성분값을 획득하는 단계,
- 상기 적어도 하나의 현재 성분값으로부터, 상기 RSV의 최종 업데이트된 벡터값으로부터, 그렇지 않으면 유효하게 수신된 데이터 패킷들로부터 상기 분실되거나 오류가 생긴 데이터 패킷을 복구하는 단계를 포함하는 것을 특징으로 하는, 상기 분실되거나 오류가 생긴 데이터 패킷을 복구하기 위한 방법에 관한 것이다.
본 발명에 따른 전송 유닛의 실시예들은 수신 유닛쪽으로 전송되는 인덱스된 데이터 패킷들의 흐름을 데이터 손실 또는 데이터 오류로부터 보호하기 위한 본 발명에 따른 방법의 실시예들과 상응하고, 본 발명에 따른 수신 유닛의 실시예들은 전송 유닛으로부터 수신되는 인덱스된 데이터 패킷들의 흐름 내에서 분실되거나 오류가 생긴 데이터 패킷을 복구하기 위한 본 발명에 따른 방법의 실시예들과 상응한다.
본 발명의 상기 및 다른 목적들 및 특징들은 더욱 명백해질 것이며, 본 발명 자체는 첨부 도면들과 함께 취해진 실시예의 다음의 기술을 참조하면 최상으로 이해될 것이다.
도 1은 본 발명에 따른 전송 유닛 및 수신 유닛을 도시한 도면.
도 2는 전송 유닛과 수신 유닛 사이의 정보 흐름의 예를 도시한 도면.
도 1에서는 통신 시스템(1)을 보게 되며, 통신 시스템(1)은:
- 전송 유닛(100) 및
- 수신 유닛(200)을 포함한다.
전송 유닛(100) 및 수신 유닛(200)은 패킷 스위칭된 통신 네트워크를 통해 서로 결합되며, 패킷 스위칭된 통신 네트워크는 다른 중간 네트워크 노드들(도시되지 않음)을 포함할 수 있고, 전송 유닛(100)으로부터 수신 유닛(200)쪽으로 데이터 패킷들이 운반되는 데이터 경로(310)와, 전송 유닛(100)과 수신 유닛(200) 사이에 에러 제어 메시지들이 교환되는 에러 제어 경로(320)를 지원한다.
전송 유닛(100) 및 수신 유닛(200)은 인덱스된 데이터 패킷들 Dj-5, Dj-4, Dj-3, Dj-2, Dj-1, Dj ..., Dk-1, Dk, Dk+1, Dk+2, ..., 의 흐름을 각각 전송 및 수신하며, j는 분실된 특정 데이터 패킷의 인덱스를 표시하고, k는 전송 유닛(100)에 의한 전송을 위해 스케줄링되는 데이터 패킷의 인덱스를 표시하고, j < k이다.
본 발명의 예시적인 실시예에서, 데이터 패킷들 D는 복수의 수신기들(예를 들면 수신 유닛(200))이 청취하는 멀티캐스트 어드레스로 제한된 RTP 패킷들이다. RTP 패킷들은 RTP 헤더에 인코딩된 16-비트 RTP 시퀀스 번호로 인덱스된다. TSV 및 RSV 값들은 RTP 페이로드로부터 계산된다. RTP 페이로드는 가변 길이일 수 있고, 어떤 경우에 그것은 알려진 비트 패턴으로 패딩된다. 전송중인 멀티캐스트 스트림들이 존재하는 만큼의 TSV들의 많은 예들이 존재하고, 청취중인 멀티캐스트 스트림들이 존재하는 만큼의 RSV들의 많은 예들이 존재한다.
전송 유닛(100)은 다음의 기능 블록들을 포함한다:
- 전송을 위해 스케줄링되기 전의 데이터 패킷들 D이 유지되는 전송 캐시(110),
- TSV T를 계산하기 위한 전송 상태 계산 유닛(120), 및
- 통신 유닛(130).
전송 캐시(110)는 전송 상태 계산 유닛(120)에 결합된다. 전송 상태 계산 유닛(120)은 통신 유닛(130)에도 또한 결합된다.
전송 상태 계산 유닛(120)은 새로운 아웃고잉 데이터 패킷, 현재 Dk가 전송을 위해 스케줄링될 때마다 TSV T의 값을 업데이트하도록 구성된다.
예시적인 실시예로서, 전송 상태 계산 유닛(120)은:
- TSV T의 최종 업데이트된 값, 현재 Sk가 유지되는 데이터 저장소(123),
- TSV T의 이전 값, 현재 Sk-1이 업데이트되기 전에 그 값을 래치하기 위한 래치(122)(또는 시프트 레지스터 또는 유사물), 및
- 래치(122)에 의해 래치될 때 제 1 인수로서 TSV T의 이전 값, 현재 Sk-1을 수용하고 제 2 인수로서 전송을 위해 스케줄링된 새로운 데이터 패킷의 RTP 페이로드, 현재 Dk를 수용하고, 출력으로서 TSV T의 새로운 값, 현재 Sk를 산출하고, 새로운 값은 데이터 저장소(123)로 푸싱되는 동안 이전 값은 래치(122)에 의해 래치되는 함수 f(121)를 포함한다.
전송 상태 계산 알고리즘은 실시예의 동작을 참조하면 명확해질 것이다.
통신 유닛(130)은 수신 유닛(200)에 의해 선택되는 TSV의 성분들의 현재(즉, 최종 업데이트된) 값을, 그 값이 대응하는 데이터 패킷 인덱스와 함께 수신 유닛(200)에 공급하도록 구성된다.
통신 유닛(130)은 통신 프로토콜로서 UDP를 이용한다.
수신 유닛(200)은 다음의 기능 블록들을 포함한다:
- 다른 처리 전의 유효하게 수신된 데이터 패킷들 D가 유지되는 수신 캐시(210),
- RSV R을 계산하기 위한 수신 상태 계산 유닛(220),
- 통신 유닛(230),
- 복구 유닛(240),
- 선택기(250).
수신 캐시(210)는 수신 상태 계산 유닛(220)에 결합된다. 복구 수단(240)은 수신 캐시(210)에, 수신 상태 계산 유닛(220)에, 및 선택기(250)에 결합된다. 선택기(250)는 또한 통신 유닛(230)에 결합된다.
수신 상태 계산 유닛(220)은 새로운 인커밍 데이터 패킷이 유효하게 수신될 때마다 RSV R의 값, 현재 최대 데이터 패킷 Dj-1을 업데이트하도록 구성되며, 그 인덱스는 다음 예상된 데이터 패킷 인덱스이다.
수신 상태 계산 유닛(220)은:
- RSV R의 최종 업데이트된 값, 현재 Sj-1이 유지된 데이터 저장소(223),
- RSV R의 이전 값, 현재 Sj-2가 업데이트되기 전에 이를 래치하기 위한 래치(222), 및
- 전송 유닛(100)의 함수(121)와 같고, 래치(222)에 의해 래치된 바와 같이 RSV R의 이전 값, 현재 Sj-2를 제 1 인수로서 수용하고, 유효하게 수신된 데이터 패킷의 RTP 페이로드, 현재 Dj-1을 제 2 인수로서 수용하고, RSV R의 새로운 값, 현재 Sj-1을 출력으로서 산출하고, 새로운 값이 데이터 저장소(223)에 푸싱되는 동안 이전 값이 래치(222)에 의해 래치되는 함수 f(221)를 포함한다.
수신 상태 계산 알고리즘은 실시예의 동작을 참조하면 명확해질 것이다.
통신 유닛(230)은 전송 유닛(200)으로부터 TSV T의 고의로 선택된 벡터 성분들이 현재값뿐만 아니라 그 값이 대응하는 데이터 패킷 인덱스를 획득하도록 구성된다. 현재, 통신 유닛(230)은 TSV T의 m번째 성분의 현재값을 요청하고, 응답으로서 값 Sk, m을 획득하며, k는 그 값이 대응하는 RTP 시퀀스 번호를 표시한다.
통신 유닛(230)은 통신 프로토콜로서 UDP를 이용한다.
복구 유닛(240)은 분실되거나 오류가 생긴 데이터 패킷, 현재 Dj를 검출하고, 그 결과, 스위치(241)(도 1을 참조)를 통해 RSV R의 업데이트를 보류하도록 구성된다. 현재, RSV의 값은 새로운 데이터 패킷들 Dj+1, ..., Dk이 들어오는 동안 Sj-1로 고정되며, 그것은 이들 인덱스들 중 어느 것도 다음 예상된 데이터 패킷 인덱스, 현재 인덱스 j가 아니기 때문이다.
복구 유닛(240)은 또한, RSV R의 최종 업데이트된 값, 현재 Sj-1로부터, 요청된 TSV 성분(들)으로부터의 현재값, 현재 Sk, m으로부터, 및 그렇지 않으면 정확하게 수신된 데이터 패킷들, 현재 Dj+1, ..., Dk로부터 분실되거나 오류가 생긴 데이터 패킷, 현재 Dj를 복구하도록 구성된다. 복구된 패킷은 다른 처리를 위해 수신 캐시(210)로 푸싱되고, RSV R의 업데이트는 스위치(241)(도 1 참조)를 통해 재개된다.
복구 유닛(240)은 또한, 분실되거나 오류가 생긴 데이터 패킷이 검출될 때마다(도 1의 err_ind 참조), 또한 분실되거나 오류가 생긴 데이터 패킷이 복구될 때마다(도 1의 rec_ind 참조) 선택기(250)에 통지하도록 구성된다.
복구 알고리즘은 실시예의 동작을 참조하면 명확해질 것이다.
선택기(250)는 하나 이상의 분실되거나 오류가 생긴 데이터 패킷들을 복구할 수 있도록 정확한 TSV의 성분들을 선택하도록 구성된다. 현재, 선택기(250)는 TSV T의 m번째 성분을 선택하고, 통신 유닛(230)이 이를 획득하도록 요청한다(도 1의 get_TSV_cmpt(m) 참조).
TSV의 성분들의 선택은 하기에 기초한다:
- 존재한다면, 이미 이용 가능한 전송 상태 정보,
- RSV R의 최종 업데이트된 값 이후의 분실되거나 오류가 생긴 데이터 패킷들의 현재 수, 또는 대안적으로, 분실되거나 오류가 생긴 데이터 패킷들의 추정된 수, 이것은 선택될 TSV의 성분들로부터 복구되어야 할 것이다.
분실되거나 오류가 생긴 데이터 패킷들의 수의 추정은 다음의 요인들에 기초한다:
- 복구 유닛(240)에 의해 통지된 바와 같은 에러 및 복구 정보(도 1의 err_ind 및 rec_ind 참조)로서, 선택기(250)가 어떤 RSV의 값이 이용 가능하고 대응하는 TSV의 값, 현재 인덱스 j-1을 따르는 것으로 예상되는지에 대해 최종 데이터 패킷 인덱스를 결정하도록 허용하는, 상기 에러 및 복구 정보,
- 예를 들면, 통신 유닛(230)에 의해 실행되는 수신기 유닛(200)과 전송 유닛(100) 사이의 RTT의 측정들(도 1의 RTT_meas 참조)로서, 선택기(250)가 어떤 선택될 TSV의 성분들이 이용 가능할지에 대해 데이터 패킷 인덱스, 현재 인덱스 k를 추정하도록 허용하는, 상기 RTT의 측정들,
- 복구 유닛(240)으로부터 또는 하부층으로부터의 에러 정보에 기초하여 예를 들면 선택기(250)에 의해 실행되는 에러 비율 측정들(예를 들면, 오류가 있는 패킷들의 예상된 비율).
추정은 또한 부가의 에러 타이밍 정보(예를 들면, 지속기간, 주파수, 하루 중 언제 및/또는 주 중 언제 발생)로 향상될 수 있다.
데이터 통신 시스템(1)의 동작이 지금부터 이어진다.
Dk를 전송 유닛(100)에서 수신 유닛(200)으로 전송되어야 하는 k번째 패킷으로 둔다(여기서 k는 RTP 시퀀스 번호와 같은 패킷 인덱스를 표시한다). 이 패킷은 계산들(덧셈, 곱셈 등)이 수행될 수 있는 L개의 심볼들(예를 들면, 비트들 또는 바이트들)로 나누어진다. 임의 타입의 심볼들이 이용될 수 있지만, 덧셈 및 곱셈이 이러한 필드에 잘 규정되어 있으므로, 실시예들에서 우리는 심볼들로서 갈르와 필드(GF: Galois Field)의 요소들을 이용할 것임을 유념한다. 이하에서 여전히 용어 "패킷(packet)"을 이용하지만, 패킷은 L개의 심볼들로 세그먼트되고 이들 심볼들(l = 1, ..., L)의 각각은 동일한 방식으로 정확하게 병렬로 다루어짐을 언급하지 않지만 그렇게 가정한다. 특히, 우리가 구성할 에러 정정 정보는 병렬로 계산된 다수 M의 정정 심볼들로 구성된다. 즉, 패킷의 각각의 데이터 심볼(l = 1, ..., L)에 대해, M개의 정정 심볼들의 벡터가 연관된다. 이들 L개의 벡터들, M개의 정정 패킷들이 구성될 수 있다: m번째 정정 패킷은 각각의 m번째 정정 심볼(M개의 심볼들의 벡터 중에서)과 모든 데이터 심볼 l을 조합하여 구성된다. 이것은 정정 패킷들이 데이터 패킷들과 동일한 크기가 되게 한다. 데이터 패킷들이 동일한 크기가 아닌 경우, 최대 패킷 크기가 취해져야 하고, 더 짧은 패킷들은 더미 정보로 스터퍼링(stuffed)되어야 한다.
패킷 손실 또는 패킷 오류로부터 패킷들의 전송을 보호하기 위하여, 다음의 방식이 제안된다. 전송 유닛(100)은 인덱스된 TSV를 유지하고, 그 값은 Sk = [Sk, 1; Sk, 2; ...;Sk, M]로 표시된다. 이러한 M-차원 TSV는 다음의 수학식에 따라 각각 전송된 패킷 Dk에 대해 업데이트된다:
Figure pct00001
함수 fk는 패킷 Dk의 페이로드의 값과 이전 패킷 Sk-1와 연관된 상태 벡터 값을 입력들로서 취하고 새로운 상태 벡터 값 Sk를 출력으로 생성하는 벡터 함수이다. 함수 fk 자체는 k에 의존할 수 있음을 유념한다. 즉, 일반적으로 각각의 패킷에 대해, 상태 벡터를 계산하기 위한 새로운 규칙이 이용될 수 있다. 그러나, 우리는 함수 fk가 k에 의존하지 않는 경우들로 실시예들을 제한할 것이고, 우리는 그 함수를 f로 표시할 것이다.
수신 유닛(200)은 유사하게 RSV를 업데이트하며, 그 값은 전송측에서 계산된 TSV의 대응하는 값과 매칭한다. 전송 유닛(100) 및 수신 유닛(200) 둘다는 동일한 초기 상태 S0에서 시작하고 정확하게 동일한 함수 f를 이용한다. 이와 같이 전송 및 수신측에서의 상태 벡터들은 서로의 사본들이 정확하다. 패킷, 즉 패킷 Dj가 분실되면, 수신 유닛(200)은 동기를 벗어나고 전송기의 현재 상태 벡터의 잘 선택된 서브세트를 전송 유닛(100)에 요구한다. 이 요청이 전송 유닛(100)에 도달하기 전에 다소 시간이 걸리므로, 현재 벡터는 지금 Sk이고, k = j + r이고, r은 RTT 및 패킷 간 시간에 의존하는 어떤 양수이다. 전송 유닛(100)은 현재 시퀀스 번호 k와 함께 Sk의 요청된 엔트리들을 수신 유닛(200)에 전송한다. 이 정보가 도달할 때, 수신 유닛(200)은 대부분의 경우에 분실된 패킷을 재구성할 수 있다. 분실된 패킷이 재구성되는 경우, 수신 유닛(200)은 그 상태 벡터를 전송 유닛(100)의 상태 벡터와 동기하도록 유지할 수 있다. 어떤 이유로, 분실된 패킷이 재구성될 수 없는 경우, 수신 유닛(200)은 그 상태 벡터가 전송 유닛(100)의 상태 벡터와 동기하는 상태로 유지되는 것을 여전히 확인해야 한다(충분한 정정 정보를 요청하거나, 상태 벡터를 특정 패킷 인덱스에서 어떤 동의된 값으로 재초기화하거나, 또는 송신기에서 수신기로 상태 벡터 T의 주기적인 광고에 의존함으로써).
정정 정보가 대응하는 시퀀스 번호, 즉 k가 어떤 헤더 필드에서의 에러 정정 정보와 함께 피기백할 수 있다고 가정한다면, 상태 벡터의 하나의 엔트리의 전송은 하나의 패킷의 재전송이 행해지는 것과 정확히 동일한 용량을 요구한다는 것을 유념한다.
수신기측에서의 재구성은, 분실된 데이터 패킷 Dj가 어떻게 상태 벡터 Sj + r = Sk에 영향을 미치는지를 수신기가 알고 있다는 사실에 기초한다. j와 j+r(포함하여) 사이에 다른 패킷 손실들이 존재하지 않는 경우, 수신기는 이것이 수신한 Sj+r의 엔트리(또는 엔트리들)를 산출하는 패킷 Dj를 선택해야 한다. 함수 f가 잘 선택되면, 이 솔루션 Dj는 고유하며, 이것은 본원에 더 기재될 것이다. j와 j+r(포함하여) 사이에, 즉 j+s(s<r)에서 부가의 패킷 손실들이 존재하는 경우, 수신기는 그 현재 상태 벡터의 다른 잘 선택된 엔트리들을 전송기에 요구한다. 따라서 우리는 다음과 같은 손실 기간을 규정한다: 하나의 데이터 패킷의 손실로 시작하고(수신기의 상태 벡터가 전송기의 상태 벡터와 동기를 벗어나는 결과를 가지고), 그 상태 벡터를 전송기의 상태 벡터와 재동기화하기 위해 수신기가 다시 충분한 정보를 가질 때까지 지속한다(손실 기간 동안의 모든 패킷 손실들이 재구성될 수 있기 때문에 또는 수신기가 전송기로부터 완전한 상태 벡터를 수신하기 때문에).
이것은 도 2에 도시된다. 패킷들 D1 내지 D15는 전송 유닛(100)(Tx)에서 수신 유닛(200)(Rx)쪽으로 전송된다. 패킷들 D3이 분실된다. 결과적으로, 수신 유닛(200)은 TSV의 제 1 성분을 요청한다(데이터 패킷 D4의 수신시 도 2의 TSV_request(제 1 비교) 참조). 전송 유닛(100)이 데이터 패킷 D10의 전송을 스케줄링하는 동안 요청들이 도달한다. 전송 유닛(100)은 TSV의 제 1 성분의 현재값, 현재 S10, 1뿐만 아니라, 그 값이 대응하는 전송 인덱스, 현재 k = 10을 전송함으로써 요청에 응답한다. 그 후에, 수신 유닛은 RSV의 최종 업데이트된 값, 현재 S2 = [S2, 1; S2, 2]로부터, 그렇지 않으면 정확하게 수신된 데이터 패킷들 D4, D5, D6, D7, D8, D9 및 D10으로부터, 및 전송기의 상태 벡터의 제 1 성분의 현재값, 현재 S10, 1로부터 분실된 데이터 패킷 D3을 재구성할 수 있다. 실제로 우리는 다음과 같이 기재할 수 있다:
Figure pct00002
손실 기간은 현재 데이터 패킷 D3에서 시작하고 정정 정보 S10, 1의 수신시 종료하고(도 2의 loss_period 참조), 따라서, 데이터 패킷들 D3 내지 D10을 포함한다.
데이터 패킷 D3이 복구되었으면, RSV의 업데이트가 재개될 수 있다.
다른 데이터 패킷이 분실된다면, 다른 TSV의 성분들에 대한 새로운 요청이 발생되고, 그에 의해 손실 기간을 적절히 연장한다.
본 발명에서, 함수 f만이 현재 패킷 Dk를 인수로서 취하지만, 다수의 가장 최근의 패킷들, 즉 Dk, Dk-1, ...,을 인수로서 취하는 다른 함수가 역시 예상될 수 있지만, 이것은 당연히 전송 캐시(110)의 크기를 증가시킨다.
손실 기간 동안 분실되거나 오류가 생긴 패킷들을 재구성하기 위한 방법과 어떤 종류의 정정 정보가 어떤 환경에서 요구되는지는 특정 실시예에 의존한다.
제 1 실시예에서, 심볼들은 2개의 요소들의 GF 또는 GF(2), 즉 비트들 {0, 1}의 요소들이다. 상태 벡터 Sk는 단 하나의 엔트리(M = 1)를 가지고, 따라서 스칼라로 감소한다. 함수 f(Dk, Sk-1)(k에 의존하지 않고 선택됨)는 Dk 및 Sk-1의 이진 합(즉, XOR)이다:
Figure pct00003
시간 패킷의 어떤 순간에, Dj-1이 정확하게 수신되었고, 수신 유닛(200)이 전송 유닛(100)과 동기된다(즉, 둘다 동일한 상태 Sj-1을 가진다)고 가정한다. 패킷 Dj가 손실되면, 수신 유닛(200)은 전송기의 현재 상태의 형태하에서 정정 정보를 요청한다. 이 요청의 도달시, 전송 유닛(100)은 상태 Sj+r의 값과 연관된 시퀀스 번호 j+r을 리턴한다. 이 정보가 도달할 때, 수신 유닛(200)은 수학식을 풀어야 한다:
Figure pct00004
Dj+r이 정확하게 수신될 때까지 패킷들 Dj+1이 제공되어 C가 계산될 수 있고, 그 경우 Dj가 직접 뒤따른다:
패킷 Dj는 패킷들의 세트 {Dj+1, ..., Dj+r}에서 임의의 다른 손실이 존재하는 경우에 재구성될 수 없다. 그러므로, 이 시스템은 하나의 손실 기간에 하나의 패킷 손실을 정정할 수 있지만, 2개 이상의 패킷 손실들을 정정하는데 실패한다.
상태 Sj+r의 수신 후에, 수신기 상태는 다시 전송기 상태와 동기한다(그래서 손실 기간은 r 패킷들 후에 종료한다)는 것을 유념한다.
수신 유닛(200)의 요청시 전송 유닛(100)에 의해 전송된 정정 정보가 손실되고(또는 등가적으로 요청 자체가 손실되고), 예를 들면, 타이머가 만료하기 때문에 이것이 검출 가능하다면, 수신 유닛(200)은 새로운 업데이트를 지속적으로 요청하여(k를 변수로 만들지만, 손실 기간 지속구간들을 확률로 만드는 것을 제외하고, 이것은 다른 결과를 가지지 않음), 전송 유닛(100)과 적어도 동기된 상태로 남아 있을 수 있다. 대안적으로, 수신 유닛(200)은 상태 벡터의 현재값을 광고하기 위하여 전송 유닛(100)을 대기할 수 있다.
제 2 실시예에서, 심볼들은 GF(pq)의 요소들이며, p는 소수이고(대부분의 경우들에서 p = 2) q ≥ 1이다. 이 GF에는 Q = pq 요소들이 존재한다. 이러한 필드는 덧셈을 위해 0으로 표시된 고유한 중성 요소(unique neutral element)를 포함하고, 곱셈을 위해 1로 표시된 고유한 중성 요소를 포함한다. 상태 정보는 이 GF의 요소들의 M-차원 어레이이고, 벡터 함수 f(Dk, Sk-1)(k에 의존하지 않고 선택됨)는 다음과 같이 규정된다:
Figure pct00006
여기서, A는 (MxM) 매트릭스이고 a는 GF(pq)에서 (Mx1)-매트릭스(즉, 벡터)이다. 이 규정에 이용된 덧셈 및 곱셈은 GF(pq)로부터의 것들이다.
시간의 어떤 순간에, 패킷 Dj-1은 정확하게 수신되고, 수신 유닛(200)은 전송 유닛(100)과 동기되었다(즉, 둘다 동일한 상태 Sj-1을 가진다)고 가정한다. 패킷 Dj가 손실되면, 수신 유닛(200)은 전송기의 상태 벡터의 제 1 성분의 형태 하에서 정정 정보를 요청한다. 이 요청의 도달시, 전송 유닛(100)은 상태 sj+r, 1의 값 및 연관된 시퀀스 번호 j+r을 리턴한다. 이 정정 정보가 도달하는 순간에, 수신 유닛(200)은 손실된 패킷을 재구성하도록 시도할 수 있다. 패킷들의 세트 {Dj+1, ..., Dj+r}에서 다른 손실이 존재하지 않는 경우, 이를 즉시 행할 수 있다(제 1 실시예와 매우 유사한 절차로). 그 세트에 임의의 다른 손실이 존재하지 않는 경우, 즉 패킷 Dj+s(s<r) 역시 손실된 경우, 수신 유닛(200)은 전송기의 현재 상태 벡터의 제 2 성분의 형태 하에서 정정 정보를 요청한다. 결과적으로, 전송 유닛(100)은 상태 Sj+s+r', 2의 값과 연관된 시퀀스 번호 j+s+r'를 리턴한다. r'은 r과 (약간) 상이함을 유념한다. 제 2 손실 후에 다른 손실 r' 패킷들이 존재하지 않으면, 수신 유닛(200)은 원칙적으로 두 분실된 패킷들을 재구성하기에 충분한 정보를 가진다. 존재한다면, 수신 유닛(200)은 전송기의 현재 상태 벡터의 제 3 성분을 요청한다 등등.
특정 순간에, 수신 유닛(200)은 정정 정보의 n개의 조각들을 수신하였고, 재구성할 n개의 분실된 패킷이 존재한다. GF의 속성들을 이용함으로써, n개의 분실된 패킷들을 재구성하기 위하여, 다음의 형태의 매트릭스 수학식을 풀어야 한다는 것을 쉽게 알 수 있다:
Figure pct00007
여기서, s1, ..., sn-1은 n개의 분실된 패킷들 사이의 인덱스 오프셋들이고, B는 A 및 a에 의존하는 (nxn)-매트릭스이고, b는 A, a, 분실되지 않은 패킷들의 값, 제 1 패킷 손실 전의 상태 벡터 및 수신된 정정 정보에 의존하는 (nx1)-매트릭스(즉, 벡터)이다.
매트릭스 A 및 벡터는 매트릭스 B가 가능한 많은 손실 패턴들에 대해 반전 가능(invertible)하도록 잘 선택되어야 한다. 특히, 벡터는 0과 동일한 엔트리들을 가져서는 안 된다. 실제로, 그리고 보편성을 잃지 않고, 벡터는 모든 엔트리들이 1과 동일하게 선택될 수 있다. 매트릭스 B가 반전을 가지면, n개의 분실된 패킷들이 재구성될 수 있고, 수신 유닛(200)은 전송 유닛(100)과 재동기될 수 있다. 매트릭스 B가 반전 가능하지 않은 (바라건대 드문) 경우, n개의 분실된 패킷들은 재구성될 수 없고, 수신 유닛(200)은 전송 유닛(100)에 대한 완전한 상태 벡터의 "현재(current)"버전을 (지속적으로)요청하거나, 전송 유닛(100)이 그 값을 광고할 때까지 대기한다. 이 정보를 수신한 후에, 수신 유닛(200)은 다시 동기 상태가 된다(그리고 손실 기간이 종료된다). n은 M으로 제한됨을 유념한다. M개보다 많은 손실들이 손실 기간에 존재하는 경우, 수신 유닛(200)은 이들을 정정할 수 없고, 다시 전송기에 대한 완전한 상태 벡터의 "현재" 버전을 (지속적으로)요청해야 하거나, 다음 광고를 대기한다.
제 3 실시예는 제 2 실시예와 유사하다. 이것은 동일한 GF를 이용한다. 덧셈을 위한 중성 요소와 곱셈을 위한 중성 요소 외에도, 이러한 필드는 또한 α로 표시된 적어도 하나의 소위 기본 요소(primitive element)를 포함하는 것이 알려져 있다. 이 기본 요소는 모든 0 < t < Q-1에 대해 αt ≠ 1 및 αQ-1 = 1인 속성을 가진다.
제 2 실시예에서와 같이, 상태 정보는 GF의 요소들의 M-차원 벡터이다. 벡터 함수 f(Dk, Sk-1)(k에 의존하지 않고 선택됨)는 엔트리마다 규정된다. 상태 벡터의 m번째 엔트리는 다음과 같이 규정된다:
Figure pct00008
여기서, m = 1, ..., M 및 M < Q-1이다.
시간의 어떤 순간에 패킷 Dj-1은 정확하게 수신되고 수신 유닛(200)은 전송 유닛(100)과 동기된다(즉, 둘다 동일한 상태 Sj-1을 가진다)는 것을 가정한다. 패킷 Dj이 손실되면, 수신 유닛(200)은 전송기의 상태 벡터의 제 1 성분의 형태 하에서 정정 정보를 요청한다. 이 요청의 도달시, 전송 유닛(100)은 sj+r, 1의 값 및 연관된 시퀀스 번호 j+r을 리턴한다. 이 정정 정보가 도달하는 순간, 수신기는 손실된 패킷을 재구성하도록 시도할 수 있다. 패킷들의 세트 {Dj+1, ..., Dj+r}에서 다른 손실이 존재하지 않는 경우, 이를 즉시 행할 수 있다. 그 세트 내에 임의의 다른 손실이 존재하는 경우, 즉 패킷 Dj+s 역시 손실된 경우, 수신기는 전송기의 현재 상태 벡터의 첫 번째 2개의 성분들의 형태 하에서 정정 정보를 요청한다. 결과적으로, 전송 유닛(100)은 상태 [Sj+s+r', 1; Sj+s+r', 2]의 값과 연관된 시퀀스 번호 j+s+r'를 리턴한다. 이전과 같이 r'는 r과 (약간) 상이할 수 있음을 유념한다. 제 2 손실 후에 r' 패킷들의 다른 손실이 존재하지 않는 경우, 수신기는 두 분실된 패킷들을 재구성하기에 충분한 정보를 가진다. 존재하는 경우에는 수신기가 상태 벡터의 첫 번째 3개의 성분들을 요청한다 등등.
특정 순간에 수신 유닛(200)이 상태 벡터의 첫 번째 n개의 성분들(하나의 특정 패킷과 연관된) 모두를 정확하게 수신하고 (Dj, Dj+s1, ..., Dj+s1+...+sn -1)를 재구성하기 위해 n개의 분실된 패킷이 존재한다면, 수신 유닛(200)은 모든 분실된 패킷들(및 전송 유닛(100)과 재동기할 수 있도록 모든 연관된 상태 벡터들)을 재구성하기에 충분한 정보를 가진다. 이렇게 하기 위해서 수신기가 다음 형태의 수학식들의 선형 세트를 풀어야 하는지를 판단하는 것은 성가시지만 간단하다:
Figure pct00009
여기서, b는 α 및 정확하게 수신된 패킷들의 값, 제 1 패킷 손실 전의 상태 벡터 Sj-1 및 수신된 정정 정보에 의존하는 (nx1)-매트릭스이다.
좌측상의 (nxn)-매트릭스는 반데몬드 매트릭스(Vandermonde)이고 이 매트릭스의 제 2 로우 상의 모든 요소들이 상이한 경우 반전 가능하다(따라서, 수학식들의 세트는 고유해를 가진다). α가 기본 요소이기 때문에, 모두 s1+...+sn -1 < Q-1인 경우에 이것이 보장된다. 결과적으로, 많아야 M개의 패킷들이 하나의 손실 기간에 재구성될 수 있고, 이 손실 기간은 Q-1 패킷들보다 더 작게 남아 있어야 한다.
상태 벡터(및 하나의 특정 패킷과 연관됨)의 제 1 m개의 엔트리들 모두가 정확하게 수신되지 않으면(또는 등가적으로 이 정정 정보에 대한 요청이 손실되면), 수신 유닛(200)은 요청을 재발행해야 한다(또는 그 동안 더 많은 패킷들이 손실된 경우 그 요청을 업데이트해야 한다). M개보다 많은 패킷들이 손실된 경우, 또는 손실 기간이 Q-1을 넘는 즉시, 수신 유닛(200)은 전송 유닛(100)의 완전한 상태 벡터를 지속적으로 요청해야 하거나, 다음 광고를 대기해야 한다.
제 2 실시예와 비교하면, 이러한 제 3 실시예는 더 큰 정정 정보를 생성하지만 손실 패킷들을 더 많이 정정할 수 있다.
제 4 실시예는 제 3 실시예와 동일하지만, 손실 특징들은 거의 상수 길이의 버스트들에서 손실들이 발생한다는 것이 선험적으로 알려져 있다. 이 경우, 상태 벡터의 차원 M은 가장 긴 예상된 버스트 크기와 동일하게 선택된다. 패킷 손실이 검출되면, 완성된 상태 벡터는 즉시 요청된다. 그 외에는 제 3 실시예에서와 동일한 절차가 적용된다.
전송 유닛(100)은, 통상적으로 오류 발생이 쉬운 환경(예를 들면, DSL 회선을 통한 간섭 및 임펄스 잡음)에 속하는 DSLAM 또는 무선/모바일 기지국과 같은 액세스 노드에서 구현되는 것이 유리하다. 이것은 RTT를 감소시키고 따라서 손실 기간의 길이를 감소시켜서, 다른 TSV의 성분들의 전송을 덜 예상하게 하고, 또한 오류가 생기거나 분실된 정보가 존재한다면, 그 양의 예상을 개선시킨다.
수신 유닛(200)은 가입자 게이트웨이 또는 단말기의 일부를 형성할 수 있다. 수신 유닛(200)은 또한, 디코딩 디바이스의 일부를 형성할 수도 있으며, 이 경우, 수신 캐시(210)는, 다른 디코딩 및 플레이 아웃 전에 데이터 패킷이 유지되는 디-지터링 버퍼(de-jittering buffer)를 나타낸다.
특허청구범위에서도 또한 이용되는 용어 '포함(comprising)'은 이후에 나열된 수단들에 제한되는 것으로 해석되어서는 안 됨을 유념한다. 따라서, 수단 'A 및 B를 포함하는 디바이스'의 표현의 범위는 구성요소들 A 및 B로만 구성된 디바이스들로 제한되어서는 안 된다. 그것은 본 발명과 관련하여, 디바이스의 관련 구성요소들은 A 및 B임을 의미한다.
특허청구범위에서도 또한 이용되는 용어 '결합된(coupled)'은 직접 접속들만으로 제한되는 것으로 해석되어서는 안 됨을 또한 유념한다. 따라서, '디바이스 B에 결합된 디바이스 A'의 표현의 범위는 디바이스 A의 출력이 디바이스 B의 입력에 직접 접속되는 및/또는 그 반대로 접속되는 디바이스들 또는 시스템들로 제한되어서는 안 된다. 그것은 A의 출력과 B의 입력 및/또는 그 반대의 사이의 경로가 존재한다는 것을 의미한다.
본 발명의 실시예들은 기능 블록들의 의미로 상술되었다. 상기에 주어진 이들 블록들의 기능적 기술로부터, 전자 디바이스들을 설계하는 분야의 통상의 기술자는 이들 블록들의 실시예들이 잘 알려진 전자 구성요소들로 제조될 수 있는 방법이 명백할 것이다. 따라서, 기능 블록들의 컨텐트들의 상세한 아키텍처는 주어지지 않는다.
본 발명의 원리들이 특정 장치와 함께 상술되었지만, 이 기술은 예의 방식으로만 이루어질 뿐, 첨부된 특허청구범위에 규정된 바와 같이, 본 발명의 범위에 대한 제한으로서 이루어진 것이 아님을 명확히 이해한다.

Claims (17)

  1. 수신 유닛(200)쪽으로 인덱스된 데이터 패킷들의 흐름을 전송하기 위한 전송 유닛(100)에 있어서:
    - 새로운 아웃고잉 데이터 패킷(Dj-1)이 전송을 위해 스케줄링될 때마다 전송 상태 벡터 TSV(T)를 업데이트하도록 구성된 전송 상태 계산 수단(120)으로서, TSV는 새로운 인커밍 데이터 패킷(Dj-1)이 유효하게 수신될 때마다 상기 수신 유닛에서 유사하게 업데이트된 대응하는 수신 상태 벡터 RSV(R)와 매칭하고, 상기 새로운 인커밍 데이터 패킷(Dj-1)의 인덱스는 다음 예상된 데이터 패킷 인덱스인, 상기 전송 상태 계산 수단(120),
    - 상기 수신 유닛으로부터의 요청시, 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 적어도 하나의 현재 성분값(sk, m)을 전송하도록 구성된 통신 수단(130)으로서, 상기 적어도 하나의 현재 성분값(sk, m)은 상기 RSV의 최종 업데이트된 벡터값(Sj-1)과 조합될 때, 그렇지 않으면 유효하게 수신된 데이터 패킷들(Dj+1, ..., Dk)과 조합될 때, 적어도 하나의 분실되거나 오류가 생긴 데이터 패킷(Dj)의 복구를 허용하는, 상기 통신 수단(130)을 포함하는 것을 특징으로 하는, 전송 유닛(100).
  2. 제 1 항에 있어서,
    상기 통신 수단은 또한 상기 TSV의 현재 벡터값을 상기 수신 유닛쪽으로 주기적으로 광고하도록 구성되는 것을 특징으로 하는, 전송 유닛(100).
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 통신 수단은 또한 상기 수신 유닛의 제어 하에서 상기 적어도 하나의 벡터 성분을 선택하도록 구성되는 것을 특징으로 하는, 전송 유닛(100).
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 통신 수단은 또한 무상태 데이터 통신 프로토콜에 의해 상기 수신 유닛과 통신하도록 구성되는 것을 특징으로 하는, 전송 유닛(100).
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 따른 전송 유닛(100)을 수용하는 인코딩 유닛.
  6. 제 1 항 내지 제 4 항 중 어느 한 항에 따른 전송 유닛(100)을 수용하는 멀티캐스트 복제 노드(multicast replication node).
  7. 제 1 항 내지 제 4 항 중 어느 한 항에 따른 전송 유닛(100)을 수용하는 액세스 노드.
  8. 수신 유닛(200)쪽으로 전송되는 인덱스된 데이터 패킷들의 흐름을 데이터 손실 또는 데이터 오류로부터 보호하기 위한 방법에 있어서:
    - 새로운 아웃고잉 데이터 패킷(Dj-1)이 전송을 위해 스케줄링될 때마다 전송 상태 벡터 TSV(T)를 업데이트하는 단계로서, TSV는 새로운 인커밍 데이터 패킷(Dj-1)이 유효하게 수신될 때마다 상기 수신 유닛에서 유사하게 업데이트된 대응하는 수신 상태 벡터 RSV(R)와 매칭하고, 상기 새로운 인커밍 데이터 패킷(Dj-1)의 인덱스는 다음 예상된 데이터 패킷 인덱스인, 상기 업데이트 단계,
    - 상기 수신 유닛으로부터의 요청시, 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 적어도 하나의 현재 성분값(sk, m)을 전송하는 단계로서, 상기 적어도 하나의 현재 성분값(sk, m)은 상기 RSV의 최종 업데이트된 벡터값(Sj-1)과 조합될 때, 그렇지 않으면 유효하게 수신된 데이터 패킷들(Dj+1, ..., Dk)과 조합될 때, 적어도 하나의 분실되거나 오류가 생긴 데이터 패킷(Dj)의 복구를 허용하는, 상기 전송 단계를 포함하는 것을 특징으로 하는, 인덱스된 데이터 패킷들의 흐름을 보호하기 위한 방법.
  9. 전송 유닛(100)으로부터 인덱스된 데이터 패킷들의 흐름을 수신하기 위한 수신 유닛(200)에 있어서:
    - 새로운 인커밍 데이터 패킷(Dj-1)이 유효하게 수신될 때마다 수신 상태 벡터 RSV(R)를 업데이트하도록 구성된 수신 상태 계산 수단(220)으로서, 상기 새로운 인커밍 데이터 패킷(Dj-1)의 인덱스는 다음 예상된 데이터 패킷 인덱스이고, RSV는 새로운 아웃고잉 데이터 패킷(Dj-1)이 전송을 위해 스케줄링될 때마다 상기 전송 유닛에서 유사하게 업데이트된 대응하는 전송 상태 벡터 TSV(T)와 매칭하는, 상기 수신 상태 계산 수단(220),
    - 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 상기 전송 유닛으로부터 적어도 하나의 현재 성분값(sk, m)을 획득하도록 구성된 통신 수단(230),
    - 상기 적어도 하나의 현재 성분값으로부터, 상기 RSV의 최종 업데이트된 벡터값(Sj-1)으로부터, 그렇지 않으면 유효하게 수신된 데이터 패킷들(Dj+1, ..., Dk)로부터 분실되거나 오류가 생긴 데이터 패킷(Dj)을 복구하도록 구성된 복구 수단(240)을 포함하는 것을 특징으로 하는, 인덱스된 데이터 패킷들의 흐름을 수신하기 위한 수신 유닛(200).
  10. 제 9 항에 있어서,
    상기 수신 유닛은 상기 TSV 내에서 상기 적어도 하나의 벡터 성분을 선택하도록 구성된 선택기(250)를 더 포함하는 것을 특징으로 하는, 인덱스된 데이터 패킷들의 흐름을 수신하기 위한 수신 유닛(200).
  11. 제 10 항에 있어서,
    상기 적어도 하나의 벡터 성분은 정보의 현재량에 따라 선택되고, 그 복구는 계류중(pending)인 것을 특징으로 하는, 인덱스된 데이터 패킷들의 흐름을 수신하기 위한 수신 유닛(200).
  12. 제 10 항에 있어서,
    상기 적어도 하나의 벡터 성분은 정보의 추정량에 따라 선택되고, 그 복구는 상기 적어도 하나의 현재 성분값의 수신시 계류중인 것으로 예상되는 것을 특징으로 하는, 인덱스된 데이터 패킷들의 흐름을 수신하기 위한 수신 유닛(200).
  13. 제 9 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 통신 수단은 또한, 무상태 데이터 통신 프로토콜에 의해 상기 전송 유닛과 통신하도록 구성되는 것을 특징으로 하는, 인덱스된 데이터 패킷들의 흐름을 수신하기 위한 수신 유닛(200).
  14. 제 9 항 내지 제 13 항 중 어느 한 항에 따른 수신 유닛(200)을 수용하는 가입자 게이트웨이.
  15. 제 9 항 내지 제 13 항 중 어느 한 항에 따른 수신 유닛(200)을 수용하는 가입자 단말기.
  16. 제 9 항 내지 제 13 항 중 어느 한 항에 따른 수신 유닛(200)을 수용하는 디코딩 디바이스.
  17. 전송 유닛(100)으로부터 수신되는 인덱스된 데이터 패킷들의 흐름 내에서 분실되거나 오류가 생긴 데이터 패킷(Dj)을 복구하기 위한 방법에 있어서:
    - 새로운 인커밍 데이터 패킷(Dj-1)이 유효하게 수신될 때마다 수신 상태 벡터 RSV(R)를 업데이트하는 단계로서, 상기 새로운 인커밍 데이터 패킷(Dj-1)의 인덱스는 다음 예상된 데이터 패킷 인덱스이고, RSV는 새로운 아웃고잉 데이터 패킷(Dj-1)이 전송을 위해 스케줄링될 때마다 상기 전송 유닛에서 유사하게 업데이트된 대응하는 전송 상태 벡터 TSV(T)와 매칭하는, 상기 업데이트 단계,
    - 상기 TSV의 적어도 하나의 벡터 성분의 각각의 것들에 대해, 상기 전송 유닛으로부터 적어도 하나의 현재 성분값(sk, m)을 획득하는 단계,
    - 상기 적어도 하나의 현재 성분값으로부터, 상기 RSV의 최종 업데이트된 벡터값(Sj-1)으로부터, 그렇지 않으면 유효하게 수신된 데이터 패킷들(Dj+1, ..., Dk)로부터 상기 분실되거나 오류가 생긴 데이터 패킷을 복구하는 단계를 포함하는 것을 특징으로 하는, 분실되거나 오류가 생긴 데이터 패킷(Dj)을 복구하기 위한 방법.
KR1020117015250A 2008-12-03 2009-11-24 온 디멘드 에러 제어 KR101709928B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08291139.7 2008-12-03
EP08291139.7A EP2194667B1 (en) 2008-12-03 2008-12-03 Error control on-demand
PCT/EP2009/008429 WO2010063408A1 (en) 2008-12-03 2009-11-24 Error control on-demand

Publications (2)

Publication Number Publication Date
KR20110097917A true KR20110097917A (ko) 2011-08-31
KR101709928B1 KR101709928B1 (ko) 2017-02-24

Family

ID=40792460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117015250A KR101709928B1 (ko) 2008-12-03 2009-11-24 온 디멘드 에러 제어

Country Status (6)

Country Link
US (1) US8677220B2 (ko)
EP (1) EP2194667B1 (ko)
JP (1) JP5647991B2 (ko)
KR (1) KR101709928B1 (ko)
CN (1) CN102239658B (ko)
WO (1) WO2010063408A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9935781B2 (en) * 2012-01-20 2018-04-03 Arris Enterprises Llc Managing a large network using a single point of configuration
CN103475454B (zh) * 2012-09-17 2017-01-11 英特尔公司 在使用选择确认机制的通信系统中接入基站的方法和装置
CN104133732B (zh) * 2014-06-23 2017-11-28 合肥工业大学 针对3D NoC中TSV故障分级的容错方法
US9756146B2 (en) * 2015-05-19 2017-09-05 Intel IP Corporation Secure boot download computations based on host transport conditions
KR102290020B1 (ko) * 2015-06-05 2021-08-19 삼성전자주식회사 스택드 칩 구조에서 소프트 데이터 페일 분석 및 구제 기능을 제공하는 반도체 메모리 장치
CN108260164B (zh) * 2018-01-31 2019-02-01 成都物梦工场信息技术有限公司 管理物联网基站的方法、装置和计算机可读存储介质
US11575469B2 (en) 2020-12-28 2023-02-07 Aira Technologies, Inc. Multi-bit feedback protocol systems and methods
US11368251B1 (en) * 2020-12-28 2022-06-21 Aira Technologies, Inc. Convergent multi-bit feedback system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131153A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 通信装置、通信方法および通信プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05235978A (ja) * 1992-02-17 1993-09-10 Nec Corp 非同期転送モード通信方式
US7296204B2 (en) * 2003-05-30 2007-11-13 Wegener Communications, Inc. Error correction apparatus and method
FR2861517B1 (fr) * 2003-10-23 2006-01-27 Thomson Licensing Sa Methode de reconstruction de paquets perdus et appareils implementant la methode
US7643480B2 (en) * 2004-01-22 2010-01-05 Hain-Ching Liu Method and system for reliably and efficiently transporting data over a network
WO2005086436A1 (ja) * 2004-03-03 2005-09-15 Mitsubishi Denki Kabushiki Kaisha パケット転送装置、パケット転送ネットワークシステム、および、端末装置
US7443785B2 (en) * 2004-03-17 2008-10-28 Sony Ericsson Mobile Communications Ab Selective error correction for ad hoc networks having multiple communication modes
FR2869744A1 (fr) * 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
JP4405875B2 (ja) * 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
CA2539367A1 (en) * 2005-03-30 2006-09-30 At&T Corp. Loss tolerant transmission control protocol
JP4693576B2 (ja) * 2005-09-30 2011-06-01 株式会社東芝 データ転送制御装置、およびデータ転送制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131153A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 通信装置、通信方法および通信プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ITU-T, H.223, "Multiplexing protocol for low bit rate multimedia communication", 2001.07. *

Also Published As

Publication number Publication date
CN102239658A (zh) 2011-11-09
JP2012510767A (ja) 2012-05-10
KR101709928B1 (ko) 2017-02-24
JP5647991B2 (ja) 2015-01-07
CN102239658B (zh) 2014-12-24
US20110258519A1 (en) 2011-10-20
EP2194667B1 (en) 2017-03-15
WO2010063408A1 (en) 2010-06-10
US8677220B2 (en) 2014-03-18
EP2194667A1 (en) 2010-06-09

Similar Documents

Publication Publication Date Title
KR101709928B1 (ko) 온 디멘드 에러 제어
US9258084B2 (en) Method and implementation for network coefficents selection
KR100736796B1 (ko) 대화형 비디오 전송을 위한 순방향 에러 정정에 근거한손실 복구 방법 및 시스템
US8230316B2 (en) Forward error correction for burst and random packet loss for real-time multi-media communication
EP2517361B1 (en) Broadcast system with incremental redundancy transmitted over a unicast system
Michel et al. QUIC-FEC: Bringing the benefits of Forward Erasure Correction to QUIC
Shi et al. Integration of Reed-Solomon codes to licklider transmission protocol (LTP) for space DTN
US8201057B2 (en) System and method for inter-packet channel coding and decoding
Hartanto et al. Hybrid error control mechanism for video transmission in the wireless IP networks
JP2004517534A (ja) パケット・チャネルを介するマルチメディア通信のための方法
GB2520867A (en) Jitter buffer
Nikaein et al. MA-FEC: A QoS-based adaptive FEC for multicast communication in wireless networks
Michel et al. Adding forward erasure correction to quic
Basalamah et al. A comparison of packet-level and byte-level reliable FEC multicast protocols for WLANs
Cheng et al. Efficient partial retransmission ARQ strategy with error detection codes by feedback channel
JP2010109942A (ja) 情報処理装置及びその方法、プログラム、記録媒体
KR100719895B1 (ko) 무선 비동기 전송 모드 망을 위한 패킷 결합 장치 및 방법
Karetsi The impact of coding depth on sliding window RLNC protocols
Bajić et al. A hybride procedure with selective retransmission for aggregated packets of unequal length
Li et al. Reliable satellite multicast with assistance of terrestrial communications
Manousakis et al. INTRODUCING AIR CACHING TECHNIQUES FOR BOOSTING RELIABLE MULTICASTING FOR SATELLITE NETWORKS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 4