KR20150057347A - 통신 방법 및 장치 - Google Patents

통신 방법 및 장치 Download PDF

Info

Publication number
KR20150057347A
KR20150057347A KR1020130140580A KR20130140580A KR20150057347A KR 20150057347 A KR20150057347 A KR 20150057347A KR 1020130140580 A KR1020130140580 A KR 1020130140580A KR 20130140580 A KR20130140580 A KR 20130140580A KR 20150057347 A KR20150057347 A KR 20150057347A
Authority
KR
South Korea
Prior art keywords
node
packets
message
receiving
requested
Prior art date
Application number
KR1020130140580A
Other languages
English (en)
Other versions
KR102235671B1 (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 삼성전자주식회사
Priority to KR1020130140580A priority Critical patent/KR102235671B1/ko
Priority to US14/494,344 priority patent/US20150139227A1/en
Priority to JP2014231900A priority patent/JP6448320B2/ja
Priority to EP14193411.7A priority patent/EP2876832B1/en
Priority to CN201410652796.9A priority patent/CN104660381B/zh
Publication of KR20150057347A publication Critical patent/KR20150057347A/ko
Application granted granted Critical
Publication of KR102235671B1 publication Critical patent/KR102235671B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • H04L12/1872Measures taken after transmission, e.g. acknowledgments avoiding ACK or NACK implosion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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/0076Distributed coding, e.g. network coding, involving channel coding
    • 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/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • 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/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • 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/1607Details of the supervisory signal
    • H04L1/1621Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
    • 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/1607Details of the supervisory signal
    • H04L1/1635Cumulative acknowledgement, i.e. the acknowledgement message applying to all previous messages
    • 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/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
    • 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/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

통신 방법 및 장치가 제공된다. 전송 단말은 하나 이상의 수신 단말들에게 패킷들을 전송할 수 있다. 수신 단말은 손실된 패킷에 대한 추가적인 요청을 전송할 지 여부를 다른 수신 단말들의 요청을 감청한 후 결정할 수 있다. 전송 단말은 수신 단말에 대한 추가적인 요청에 대해 모두 응답하지 않고, 멀티캐스트를 통해 수신 단말들에게 전송된 추가적인 패킷들을 고려하여 응답 여부를 결정할 수 있다.

Description

통신 방법 및 장치{METHOD AND APPARATUS FOR COMMUNICATION}
아래의 실시예들은 통신 방법 및 통신 장치에 관한 것으로, 보다 상세히는 통신에서 발생한 손실(loss)을 복구(recover)하기 위한 손실 복구의 방법 및 상기의 손실 복구를 사용하는 장치가 개시된다.
무선 네트워킹 환경에서, 멀티캐스트(multicast)는 기본적으로 재전송을 포함하지 않는다. 따라서, 멀티캐스트로 패킷이 전송될 경우 패킷의 손실이 발생할 수 있다.
컨텐츠를 소유하는 전송 노드는 컨텐츠를 다수의 패킷들로서 전송할 수 있다. 전송 노드가 멀티캐스트로 다수의 패킷들을 전송할 경우, 전송 중 컨텐츠를 구성하는 패킷들이 손실될 수 있다.
패킷의 손실을 극복하기 위해서, 몇몇 방법들이 사용될 수 있다.
첫 번째의 방법으로서, 멀티캐스트로 패킷을 전송하는 전송 노드가 수신 노드가 패킷을 수신하였는지 여부를 확인하는 방식이 있다.
패킷을 수신한 수신 노드는 패킷을 수신하였음을 나타내는 ACK(acknowledgement) 메시지를 전송 노드에게 전달할 수 있다. 전송 노드는 ACK 메시지가 전달되지 않을 경우 수신 노드로의 패킷의 전송이 실패하였고, 패킷이 손실되었다고 판단할 수 있다. 전송 노드는 손실된 패킷을 재전송함으로써 수신 노드가 손실된 패킷을 수신하게 할 수 있다.
두 번째의 방법으로서, 수신 노드가 패킷을 수신하지 못하였음을 전송 노드에게 알리는 방식이 있다.
수신 노드는 ACK 메시지의 대신으로 NACK(Negative ACK) 메시지를 보낼 수 있다. NACK 메시지는 수신 노드가 패킷을 수신하지 못하였음을 나타내는 메시지일 수 있다.
일 측면에 있어서, 네트워크 내의 노드에 의해 수행되는, 상기 네트워크 내의 다른 노드로부터 패킷 수신에 대한 상기 다른 노드의 메시지를 수신하는 단계 - 상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함함 -, 상기 다른 노드가 요구하는 패킷들의 개수 및 상기 노드가 요구하는 패킷들의 개수를 비교하는 단계 및 상기 노드가 요구하는 패킷들이 개수가 상기 다른 노드가 요구하는 패킷들의 개수에 비해 더 크면 상기 노드의 메시지를 전송하는 단계 - 상기 노드의 메시지는 상기 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함함 -를 포함하는, 통신 방법이 제공된다.
상기 통신 방법은, 소정의 기간 동안 상기 다른 노드의 메시지가 수신되지 않으면 상기 노드의 메시지를 전송하는 단계를 더 포함할 수 있다.
상기 노드는 상기 소정의 기간 동안 상기 다른 노드의 메시지를 대기할 수 있다.
상기 통신 방법은, 전송 노드로부터 전송된 하나 이상의 패킷들을 수신하는 단계를 더 포함할 수 있다.
상기 노드가 요구하는 패킷들의 개수는 상기 수신된 하나 이상의 패킷들에 대한 디코딩을 수행하기 위해 추가적으로 요구되는 최소의 패킷들의 개수일 수 있다.
상기 하나 이상의 패킷들은 멀티캐스트로 상기 전송 노드로부터 상기 노드로 전송될 수 있다.
상기 하나 이상의 패킷들은 동일한 식별자들을 포함할 수 있다.
상기 디코딩은 상기 수신된 하나 이상의 패킷들에 적용된 네트워크 코딩에 대한 디코딩일 수 있다.
상기 노드가 요구하는 패킷들의 개수는 네트워크 코딩에 의해 인코딩된 상기 수신된 하나 이상의 패킷들을 디코드하기 위해 추가적으로 요구되는 상기 네트워크 코딩에 의해 인코딩된 다른 하나 이상의 패킷들의 개수일 수 있다.
상기 수신된 하나 이상들의 패킷들의 각각은 상기 수신된 하나 이상들의 패킷들에 대한 디코딩을 수행하기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함할 수 있다.
다른 일 측에 따르면, 네트워크 내의 다른 노드로부터 패킷 수신에 대한 상기 다른 노드의 메시지를 수신하는 통신부 및 다른 노드가 요구하는 패킷들의 개수 및 상기 노드가 요구하는 패킷들의 개수를 비교하는 처리부를 포함하고, 상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하고, 상기 노드의 메시지는 상기 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하고, 상기 통신부는 노드가 요구하는 패킷들이 개수가 상기 다른 노드가 요구하는 패킷들의 개수에 비해 더 크면 상기 노드의 메시지를 전송하는, 노드가 제공된다.
또 다른 일 측에 따르면, 노드에 의해 수행되는, 네트워크 내의 다른 노드로부터 상기 다른 노드의 메시지를 수신하는 단계 - 상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함함 -, 상기 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수를 비교하는 단계 및 상기 다른 노드가 요구하는 패킷들의 개수가 상기 최대 패킷 개수에 비해 더 크면 하나 이상의 제1 패킷들을 전송하는 단계를 포함하는, 통신 방법.
상기 통신 방법은, 소정의 기간 동안 상기 다른 노드의 메시지가 수신되지 않으면 하나 이상의 제2 패킷들을 전송하는 단계를 더 포함할 수 있다.
상기 노드는 상기 소정의 기간 동안 상기 다른 노드의 메시지를 대기할 수 있다.
상기 통신 방법은, 상기 최대 패킷 개수의 값을 상기 다른 노드가 요구하는 패킷들의 개수의 값으로 갱신하는 단계를 더 포함할 수 있다.
상기 하나 이상의 제1 패킷들의 개수는 상기 다른 노드가 요구하는 패킷들의 개수 및 상기 최대 패킷 개수 간의 차일 수 있다.
상기 통신 방법은, 하나 이상의 수신 노드들로 하나 이상의 제2 패킷들을 전송하는 단계를 더 포함할 수 있다.
상기 다른 노드는 상기 하나 이상의 수신 노드들 중 하나의 노드일 수 있다.
상기 다른 노드가 요구하는 패킷들의 개수는 상기 하나 이상의 제2 패킷들 중 상기 다른 노드가 수신한 하나 이상의 제3 패킷들에 대한 디코딩을 수행하기 위해 추가적으로 요구되는 패킷들의 개수일 수 있다.
상기 하나 이상의 제2 패킷들은 멀티캐스트를 통해 상기 노드로부터 상기 하나 이상의 수신 노드들로 전송될 수 있다.
상기 하나 이상의 제1 패킷들 및 상기 하나 이상의 제2 패킷들은 동일한 식별자들을 포함할 수 있다.
상기 하나 이상의 제1 패킷들 및 상기 하나 이상의 제2 패킷들은 네트워크 코딩에 의해 인코딩될 수 있다.
상기 하나 이상의 제1 패킷들의 각각은 상기 하나 이상의 제1 패킷들이 디코딩되기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함할 수 있다.
또 다른 일 측에 따르면, 네트워크 내의 다른 노드로부터 상기 다른 노드의 메시지를 수신하는 통신부, 상기 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수를 비교하는 처리부를 포함하고, 상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하고, 상기 통신부는 상기 다른 노드가 요구하는 패킷들의 개수가 상기 최대 패킷 개수에 비해 더 크면 하나 이상의 제1 패킷들을 전송하는, 노드가 제공된다.
도 1은 일 실시예에 따른 패킷의 인코딩 및 디코딩을 설명한다.
도 2는 일 예에 따른 패킷 손실에 대한 복구를 설명한다.
도 3은 일 예에 따른 프레임 손실에 대한 복구를 설명한다.
도 4는 일 예에 따른 수신 노드의 컨텐츠 캐싱을 설명한다.
도 5는 일 예에 따른 컨텐츠의 캐시를 사용하는 패킷의 디코딩을 설명한다.
도 6은 일 예에 따른 집합된 손실 정보 메시지를 도시한다.
도 7은 일 실시예에 따른 노드의 블록도이다.
도 8은 일 실시예에 따른 수신 노드의 통신 방법의 흐름도이다.
도 9는 일 실시예에 따른 전송 노드의 통신 방법의 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
하기의 실시예들에서, "프레임"은 "패킷"으로서 전송될 수 있다. 따라서, "프레임"에 대한 설명 중 일부는 "패킷"에도 적용될 수 있다. 예컨대, "프레임의 전송" 및 "패킷의 전송"은 서로 대체될 수 있고, "프레임의 손실" 및 "패킷의 손실"은 서로 대체될 수 있다. "코드된 패킷"은 "코드된 프레임" 또는 "코드된 프레임의 데이터를 포함하는 패킷"을 의미할 수 있다.
도 1은 일 실시예에 따른 패킷의 인코딩 및 디코딩을 설명한다.
원본의(original) 컨텐츠(110)를 소유하는 전송 노드는 컨텐츠(110)를 요청하는 수신 노드에게 상기의 컨텐츠를 전송할 수 있다. 전송 노드는 컨텐츠 소스 노드일 수 있다.
도 1에서, 컨텐츠(110)는 하나 이상의 원본의 프레임들로 구성될 수 있다. 원본의 프레임은 사각형으로 도시되었다. 컨텐츠(110)는 하나 이상의 원본의 프레임들을 포함할 수 있다.
전송 노드는 컨텐츠(110)에 인코딩을 적용함으로써 코드된 컨텐츠(120)를 생성할 수 있다. 코드된 컨텐츠(120)는 하나 이상의 코드된 프레임들을 포함할 수 있다. 상기의 인코딩은 네트워크 코딩일 수 있다. 네트워크 코딩은 행렬 네트워크 코딩(Matrix Networking Coding; MNC)일 수 있다.
MNC는 원본의 입력 정보 및 행렬 정보 간의 선형 결합을 수행함으로써 새로운 출력 정보를 생성하는 네트워크 코딩 기법일 수 있다. 입력 정보는 원본의 프레임들일 수 있고, 출력 정보는 코드된 프레임들일 수 있다. 또한, 프레임이 패킷으로서 전송될 경우, 입력 정보는 원본의 패킷들일 수 있고, 출력 정보는 코드된 패킷들일 수 있다.
생성된 코드된 프레임들의 개수는 원본의 프레임들의 개수의 이상일 수 있다. 말하자면, 네트워킹 코딩에 의해 원본의 프레임들에 비해 더 많은 개수의 코드된 프레임들이 생성될 수 있다.
전송 노드는 선형 결합의 수행을 통해 원본의 프레임들보다 더 많은 코드된 프레임들을 생성할 수 있다.
전송 노드는 코드된 프레임들을 수신 노드로 전송할 수 있다.
수신 노드는 수신된 코드된 프레임들을 사용하여 컨텐츠를 생성할 수 있다. 예컨대, 도 1에서, 수신 노드는 수신된 코드된 프레임들을 사용하여 원본의 컨텐츠(130)를 복원(reconstruct)할 수 있다. 수신 노드는 코드된 프레임들에 대한 디코딩을 수행함으로써 원본의 컨텐츠(130)를 복원할 수 있다.
상기의 전송 및 생성은 블록 단위로 이루어질 수 있다. 컨텐츠는 하나 이상의 블록들로 구성될 수 있다. 말하자면, 컨텐츠는 하나 이상의 블록들을 포함할 수 있다. 상술된 원본의 프레임들은 컨텐츠의 하나의 블록의 프레임들일 수 있다. 또는, 도 1에서 도시된 원본의 컨텐츠(110) 및 원본의 컨텐츠(130)는 컨텐츠의 하나의 블록을 나타낼 수 있다. 말하자면, 컨텐츠의 전체의 원본의 프레임들은 블록 별로 하나 이상의 원본의 프레임들로 구분될 수 있다.
또한, 하나 이상의 코드된 프레임들도 컨텐츠의 하나의 블록에 대응할 수 있다. 말하자면, 하나 이상의 코드된 프레임들은 컨텐츠의 하나의 블록의 프레임들이 인코드됨으로써 생성된 프레임들일 수 있다.
코드된 프레임들은 블록 단위의 식별자를 가질 수 있다. 식별자는 블록 단위로 부여되는 블록 식별자일 수 있다. 식별자는 코드된 프레임이 속하는 블록을 식별하기 위해 사용되는 데이터일 수 있다. 예컨대, 네트워크 코딩에 의해 코드된 프레임이 생성되면, 생성된 프레임은 상기의 생성된 프레임이 속하는 블록을 식별할 수 있는 식별자를 포함할 수 있다.
말하자면, 동일한 블록의 코드된 프레임들의 식별자들은 동일할 수 있다. 하나의 블록의 코드된 프레임들의 공통된 식별자는 상기의 대응하는 블록을 나타내는 데이터를 포함할 수 있다. 대응하는 블록을 나타내는 데이터는 블록의 순번일 수 있다.
일반적으로, 상기의 블록을 나타내는 데이터들은 순차적으로 증가할 수 있다. 또는, 상기의 블록을 나타내는 데이터들은 순차적으로 감소할 수도 있다. 예컨대, 특정한 블록의 식별자는 상기의 특정한 블록의 컨텐츠 내에서의 순서를 나타낼 수 있다.
수신 노드는 수신된 프레임들 중 동일한 식별자를 갖는 프레임들을 식별자가 나타내는 블록에 대응하는 코드된 프레임들로서 식별할 수 있다.
수신 노드는 블록 단위로 코드된 프레임들 중 최소로 요구되는 개수의 코드된 프레임들을 수신할 수 있고, 수신된 코드된 프레임들을 사용하여 블록을 구성하는 원본의 프레임들을 복원할 수 있다. 상기의 최소로 요구되는 개수는 원본의 프레임들의 개수의 이상일 수 있다.
무선 네트워크 내의 노드들 간에서의 데이터의 전송을 위해 패킷이 송신 및 수신될 수 있다. 패킷은 컨텐츠의 프레임을 포함할 수 있다. 또는, 컨텐츠의 프레임은 패킷으로서 노드들 간에서 전송될 수 있다.
패킷이 유니캐스트(unicast) 또는 멀티캐스트를 통해 전송될 때, 패킷은 전송 중에 손실될 수 있다. 말하자면, 컨텐츠의 프레임이 전송 중 손실될 수 있다. 하기의 실시예들에서, 패킷의 손실에 대한 빠른 복구를 제공하는 방법들이 설명될 수 있다.
예컨대, 상기의 복구는 새로운 식별자에 기반한 블록 별 재전송의 요청에 의해 이루어질 수 있다. 프레임이 손실되었다고 판단한 수신 노드는 전송 노드에게 다른 대응하는 프레임의 전송을 요청할 수 있다. 여기서, 요청되는 대응하는 프레임은 손실된 패킷의 프레임과 동일한 식별자를 갖는 프레임일 수 있다. 말하자면, 패킷 또는 프레임의 재전송의 요청은 프레임의 식별자에 기반할 수 있다.
식별자는 네트워크 코딩에서 사용되는 식별자 또는 MNC에서 사용되는 식별자일 수 있다.
재전송의 요청이 식별자에 기반하기 때문에, 원래 프레임을 전송하였던 전송 노드 외에도, 컨텐츠 또는 대응하는 프레임을 가지고 있는 무선 네트워크 내의 다른 수신 노드 또한 대응하는 프레임을 전송할 수 있다.
패킷을 손실한 수신 노드가 다수이거나, 무선 네트워크가 멀티 홉(multi-Hop) 무선 네트워크인 경우, 수신 노드들의 손실된 패킷들은 서로 상이할 수 있다. 예컨대, 수신 노드들의 손실된 패킷들의 종류(type)은 서로 상이할 수 있으며, 수신 노드들의 패킷의 손실률들은 서로 상이할 수 있다. 이러한 경우에서, 수신 노드들의 각각이 식별자에 기반한 재전송을 요청하면, 소스 노드 뿐만 아니라, 주변의 수신 노드로부터도 프레임이 제공될 수 있다. 말하자면, 수신 노드들 간의 상호 보완의 작용이 이루어질 수 있다.
하기의 실시예들에서, 다양한 식별자들이 활용될 수 있다.
예컨대, 식별자는 무선 네트워크의 서비스에 대한 데이터를 포함할 수 있다. 무선 네트워크의 서비스에 대한 데이터는 티씨피(Transmission Control Protocol; TCP) 포트 또는 유디피(User Datagram Protocol; UDP) 포트를 나타내는 데이터를 포함할 수 있다.
무선 네트워크에서 인터넷 프로토콜(Inter Protocol; IP)에 기반한 통신이 이루어지는 경우, 식별자는 소스 노드의 주소 및/또는 포트 번호를 포함할 수 있고, 맥(Media Access Control; MAC) 주소 및 포트 번호를 포함할 수 있다.
또한, 무선 네트워크에서 컨텐츠 이름 기반의 네트워크 프로토콜이 사용되는 경우, 식별자는 컨텐츠의 이름을 포함할 수 있다.
말하자면, 하기의 실시예들은 다양한 식별자 기반 네트워킹 프로토콜에 적용될 수 있다.
도 2는 일 예에 따른 패킷 손실에 대한 복구를 설명한다.
컨텐츠의 블록은 하나 이상의 원본의 프레임들을 포함할 수 있다. 도 2에서, 원본의 블록(210)은 10 개의 원본의 프레임들(220)을 포함하는 것으로 도시되었다. 원본의 프레임들(220)은 f1 내지 f10으로 표시되었다.
전송 노드는 원본의 프레임들에 네트워크 코딩을 적용함으로써 원본의 프레임들보다 더 많은 코드된 프레임들을 생성할 수 있다. 도 1에서, 전송 노드는 10 개의 원본의 프레임들(220)에 네트워크 코딩을 적용함으로써 20 개의 코드된 프레임들(230)을 생성하는 것으로 도시되었다. 도 2에서, 코드된 프레임들은 #f1 내지 #f20으로 도시되었다.
코드된 프레임들은 전송용 코드된 프레임들 및 저장용 코드된 프레임들로 분류될 수 있다. 또는, 코드된 프레임들은 전송용 코드된 프레임들 및 저장용 코드된 프레임들을 포함할 수 있다. 도 2에서, 전송용 코드된 프레임들은 #f1 내지 f15인 것으로 도시되었고, 저장용 코드된 프레임들은 #f16 내지 f20인 것으로 도시되었다. 도시된 것과 같이, 전송용 코드된 프레임들 및 저장용 코드된 프레임들은 서로 상이할 수 있다.
전송 노드는 코드된 프레임들을 수신 노드로 전송할 수 있다. 코드된 프레임들의 각각은 패킷으로서 전송될 수 있다. 코드된 프레임들의 생성 및 전송은 블록 단위로 이루어질 수 있다. 수신 노드로 전송된 프레임들은 코드된 프레임들 중 전송용 코드된 프레임들로 제한될 수 있다.
무선 네트워크를 통해 코드된 프레임들이 전송되면서, 코드된 프레임들의 일부 또는 전부는 수신 노드로 전달되지 않고, 손실될 수 있다. 도 2에서는, 20 개의 코드된 프레임들(230) 중, 첫 번째의 코드된 프레임 #f1, 두 번째의 코드된 프레임 #f2, 네 번째의 코드된 프레임 #f4, 다섯 번째의 코드된 프레임 f5 및 열 다섯 번째의 코드된 프레임 #f15 만이 수신 노드로 전달되었고, "X"로 표시된 나머지 프레임들은 손실된 것으로 도시되었다.
네트워크 코딩의 특성에 따라, 수신 노드는 코드된 프레임들의 모두를 수신하지 않더라도, 코드된 프레임들 중 소정의 일부만을 사용하여 원본의 프레임들의 모두를 또는 원본의 프레임들(220)의 블록을 복원할 수 있다. 예컨대, 도 2에서, 수신 노드는 코드된 프레임들(230) 중 10 개의 프레임들만을 사용하여 10 개의 원본의 프레임들(220)을 복원할 수 있다. 말하자면, 도 2에서, 수신 노드가 원본의 프레임들(220)을 복원하기 위해서는 코드된 프레임들(230) 중 적어도 10 개의 프레임들이 요구된다. 원본의 프레임들(220)의 복원을 위해 요구되는 최소한의 코드된 프레임들(230)의 개수는 10이다. 수신 노드는 각 블록 당 10 개의 코드된 프레임들(230)을 수신하면, 수신된 코드된 프레임들(240)을 사용함으로써 복원된 블록(250)을 생성할 수 있다.
멀티캐스트로 패킷이 전송될 때, 패킷의 손실에 대한 복구가 이루어지지 않으면 전송의 신뢰성(reliability)이 보장될 수 없다. 전술된 것과 같이, 네트워크 코딩을 사용함으로써 패킷의 전송의 성공률이 향상될 수 있다.
무선 네트워크 내에서는 패킷의 손실이 심하게 발생할 수 있다. 따라서, 수신 노드가 원본의 프레임들의 복원을 위해 요구되는 최소한의 개수의 코드된 프레임들을 수신하지 못할 수도 있다. 도 2에서, 수신 노드는 20 개의 코드된 프레임들(230) 중 5 개만을 수신한 것으로 도시되었다. 말하자면, 수신된 프레임들(240)은 #f1, #f2, #f4, #f5 및 #f20을 포함할 수 있다.
수신 노드가 원본의 프레임들의 복원을 위해 요구되는 최소한의 개수의 코드된 프레임들을 수신하지 못한 경우, 수신 노드는 블록 또는 원본의 프레임들을 복원할 수 없다.
블록 또는 원본의 프레임들의 복원을 위해, 수신 노드는 추가적인 코드된 프레임들을 획득하여야 할 수 있다. 추가적인 코드된 프레임들의 획득을 위해 수신 노드는 전송 노드에게 코드된 프레임들의 재전송을 요청할 수 있다.
재전송의 요청을 위해, 수신 노드는 손실 정보를 나타내는 손실 정보 메시지를 전송 노드로 전송할 수 있다. 말하자면, "재전송의 요청"은 "재전송의 요청을 위한 손실 정보 메시지의 전송"으로 대체될 수 있다. 손실 정보 메시지는 코드된 프레임들의 전송에 대한 수신 노드의 피드백(feedback)일 수 있다.
손실 정보 메시지는 수신 노드가 실제로 수신한 코드된 프레임들의 개수를 포함할 수 있다. 손실 정보 메시지는 수신 노드가 블록 또는 원본의 프레임들을 복원하기 위해 추가적으로 요구되는 코드된 프레임들의 개수를 포함할 수 있다. 또는, 손실 정보 메시지는 수신 노드가 손실한 프레임들의 개수를 포함할 수 있다.
손실 정보 메시지는 코드된 프레임들의 블록의 식별자를 포함할 수 있다. 상기의 식별자를 통해, 전송 노드는 손실 정보 메시지의 손실 정보가 어떤 블록의 코드된 프레임들에 대한 정보인지를 식별할 수 있다. 도 2에서, 손실 정보 메시지(260)는 블록의 식별자 및 수신된 코드된 프레임들의 개수를 포함하는 것으로 도시되었다.
일반적인 IP 또는 MAC에 있어서, 프레임의 손실의 복구를 위해서는, 손실된 프레임이 다시 전송되어야 할 수 있다. 반면, 네트워크 코딩에 의해 생성된 코드된 프레임들의 손실의 복구를 위해서는, 손실된 코드된 프레임들 자체가 아닌 다른 코드된 프레임들이 사용될 수 있다. 수신 노드는 이미 전송된 코드된 프레임들 및 추가로 전송된 코드된 프레임들을 사용함으로써 블록 또는 원본의 프레임들을 복원할 수 있다. 말하자면, 다른 코드된 프레임들이 손실된 코드된 프레임들을 대체할 수 있다. 상기의 대체를 통해, 재전송의 매커니즘이 훨씬 간단해질 수 있고, 코드된 프레임의 재전송의 중복이 감소될 수 있다.
전송 노드는 재전송의 요청에 대해 응답할 수 있다. 상기의 응답은 추가적인 코드된 프레임들의 전송일 수 있다. 도 2에서, 응답(270)은 n + α 개의 추가적인 코드된 프레임들을 포함하는 것으로 도시되었다. 전술된 것처럼, 손실 정보 메시지는 수신 노드가 블록 또는 원본의 프레임들을 복원하기 위해 추가적으로 요구되는 코드된 프레임들의 개수를 포함할 수 있다. 추가적인 코드된 프레임들의 전송에 있어서도 손실이 발생할 수 있다. 전송 노드는 추가적으로 요구되는 코드된 프레임들의 개수보다 더 많은 개수의 코드된 프레임들을 수신 노드로 전송할 수 있다. 또는, 전송 노드는 손실된 프레임들의 개수보다 더 많은 개수의 추가적인 코드된 프레임들을 수신 노드로 전송할 수 있다. 응답(260)에서, n는 블록 또는 원본의 프레임들의 복원을 위해 추가적으로 요구되는 코드된 프레임들의 개수를 나타낼 수 있다. α는 손실을 고려하여 전송 노드가 추가한 코드된 프레임들의 개수를 나타낼 수 있다.
재전송의 요청에 대한 응답을 위해, 전송 노드는 코드된 프레임들을 전송의 이후에도 저장할 수 있다. 상기의 저장은 일시적인 저장일 수 있다. 전송 노드는 코드된 프레임들의 모두를 일시적으로 저장할 수 있고, 저장된 코드된 프레임들을 시간의 흐름에 따라 감소시킬 수 있다. 예컨대, 전송 노드는 수신 노드로부터 손실 정보 메시지를 수신한 후에는 최소의 코드된 프레임들만을 저장할 수 있다. 또는, 전송 노드는 수신 노드로부터 손실 정보 메시지를 수신할 것이라고 예측되는 시점에서는 최소의 코드된 프레임들만을 저장할 수 있다.
재전송에 대한 응답에 있어서, 수신 노드가 이미 획득한 코드된 프레임은 재전송의 대상에서 제외될 수 있다. 수신 노드가 이미 획득한 코드된 프레임이 재전송되더라도 블록의 복원에는 영향을 줄 수 없기 때문이다. 말하자면, 성공적으로 전송된 코드된 프레임이 재전송되는 것은 방지되어야 한다.
전송 노드는, 도 2에서 도시된 것과 같이, 코드된 프레임들을 전송용 코드된 프레임들 및 저장용 코드된 프레임들로 분류함으로써 이미 전송된 코드된 프레임이 재전송되는 것을 방지할 수 있다. 전송 노드는 처음으로 코드된 프레임들을 전송할 때에는 전송용 코드된 프레임들만을 수신 노드로 전송할 수 있고, 재전송의 요청에 응답할 때에는 저장용 코드된 프레임들을 수신 노드로 전송할 수 있다. 따라서, 재전송의 요청 시 추가적으로 전송되는 코드된 프레임들이 수신 노드가 이미 수신한 코드된 프레임들과 상이하다는 것이 보장될 수 있다.
다수의 코드된 프레임들이 손실된 경우와 같이, 저장용 코드된 프레임들 만으로는 추가적으로 요구되는 코드된 프레임들을 모두 제공하기에 불충분할 수 있다. 전송 노드는 원본의 프레임들에 네트워크 코딩을 적용함으로써 새 코드된 프레임들을 생성할 수 있다. 새 코드된 프레임들은 기존의 코드된 프레임들과 상이할 수 있다. 도 2에서, 새 코드된 프레임들(235)로서, 코드된 프레임 *f1 내지 *f15가 도시되었다.
새 코드된 프레임들은 캐시용의 임시의 프레임들일 수 있다. 전송 노드는 새 코드된 프레임들을 재전송의 요청의 응답을 위해 전송되는 추가적인 코드된 프레임들로 사용할 수 있다.
전술된 것처럼, 코드된 프레임들의 생성 및 전송은 블록 단위로 이루어질 수 있다. 컨텐츠가 포함하는 하나 이상의 블록들에 대하여, 전송 노드는 하나 이상의 블록들의 각각의 코드된 프레임들을 저장할 수 있다.
전송 노드는 하나 이상의 블록들의 각 블록에 대해, 서로 상이한 개수의 코드된 프레임들을 저장할 수 있다. 예컨대, 전송 노드는 더 나중에 전송된 블록에 대해, 더 많은 개수의 코드된 프레임들을 저장할 수 있다.
전송 노드는 하나 이상의 블록들의 각 블록에 대해 최소한의 코드된 프레임들만을 저장할 수 있다. 최소한의 프레임들만을 저장함으로써 전송 노드는 최대한으로 많은 블록들의 코드된 프레임들을 저장할 수 있고, 최대한으로 많은 블록들에 대한 손실의 복구를 제공할 수 있다.
전송 노드는 패킷의 손실률을 고려하여 코드된 프레임들 중 일부만을 수신 노드로 전송할 수 있다. 예컨대, 평균적으로 12 개의 패킷들 중 2 개의 패킷이 전송 중 손실된다면, 전송 노드는 20 개의 코드된 프레임들 중 12 개만을 수신 노드로 전송할 수 있고, 나머지의 8 개의 코드된 프레임들을 재전송의 요청에 대한 응답을 위해 저장할 수 있다. 말하자면, 저장된 코드된 프레임들은 손실의 복구를 위해 사용될 수 있다. 또는, 전송 노드는 20 개의 코드된 프레임들 중 15 개만을 수신 노드로 전송할 수 있고, 나머지의 5 개의 코드된 프레임들은 저장할 수 있다. 손실률이 60%인 경우, 수신 노드는 6 개의 코드된 프레임들만을 수신할 수 있다. 전송 노드는 재전송의 요청에 대한 응답으로서 저장된 나머지의 5 개의 코드된 프레임들을 수신 노드로 전송할 수 있다.
전송 노드는 패킷의 손실률에 비해 더 많은 개수의 코드된 프레임들을 저장할 수 있다.
재전송의 요청에 대한 응답은 지연(delay)될 수 있다. 전송 노드는 재전송의 요청에 대해, 바로 응답하지 않을 수 있다. 전송 노드는 재전송의 요청에 대한 응답을 소정의 조건에 따라 지연시킬 수 있다. 수신 노드가 하나 이상일 경우, 하나 이상의 수신 노드들로부터 재전송의 요청들이 전송될 수 있다. 응답을 지연함으로써 다수의 재전송의 요청들에 대한 집합(aggregation)이 이루어질 수 있다.
또한, 전송 노드는 하나 이상의 수신 노드들로부터 재전송의 요청들이 전송될 때, 재전송 후 일정 시간 동안에는 중복되는 재전송을 하지 않을 수 있다.
전술된 실시예에서, 패킷의 손실에 대한 복구를 위해 호프-바이-호프(hop-by-hop) 또는 말단에서 말단으로의(end-to-end)의 재전송이 사용되지 않을 수 있다. 전송 노드 또는 수신 노드는 코드된 프레임의 식별자를 활용함으로써 패킷의 손실의 복구에 요구되는 작업들을 수행할 수 있다.
도 3은 일 예에 따른 프레임 손실에 대한 복구를 설명한다.
네크워크는 하나 이상의 노드들을 포함할 수 있다. 패킷을 수신하는 수신 노드는 하나 이상일 수 있다. 말하자면, 전송 노드는 컨텐츠의 블록의 코드된 프레임들을 하나 이상의 수신 노드들에게 전송할 수 있다. 예컨대, 멀티캐스트의 대상인 수신 노드는 복수일 수 있다.
도 1에서, 컨텐츠 소스(310)는 도 1 및 도 2를 참조하여 전술된 전송 노드에 대응할 수 있다. 제1 컨텐츠 요청자(320) 및 제2 컨텐츠 요청자(330)는 하나 이상의 수신 노드들에 대응할 수 있다. 하나 이상의 수신 노드들의 각각은 도 1 및 도 2를 참조하여 전술된 수신 노드에 대응할 수 있다.
수신 노드가 복수인 경우, 전송 노드는 하나의 블록에 대해 복수의 수신 노드들로부터 중복된 손실 정보 메시지들을 수신할 수 있다. 전송 노드는 복수의 수신 노드들로부터 손실 정보 메시지들을 수신할 수 있다.
도 3에서, 컨텐츠 소스(310)는 제1 컨텐츠 요청자(320) 및 제2 컨텐츠 요청자(330)의 각각으로부터 손실 정보 메시지를 수신할 수 있다.
수신 노드는 코드된 프레임들 또는 패킷의 손실을 감지하면, 전송 노드에게 패킷 또는 프레임의 재전송을 요청할 수 있다. 수신 노드는 재전송의 요청, 예컨대 손실 정보 메시지를 전송 노드로 전송할 수 있다. 상기의 전송은 멀티캐스트 또는 유니캐스트를 통해 이루어질 수 있다. 재전송의 요청이 멀티캐스트를 통해 전송되는 경우, 전송 노드 뿐만 아니라 다른 수신 노드, 수신 노드의 이웃 노드 등과 같은 네트워크 내의 다른 노드도 재전송의 요청을 수신할 수 있다. 재전송의 요청이 유니캐스트를 통해 전송되는 경우, 다른 노드도 감청(overhearing)을 통해 재전송의 요청을 수신할 수 있다. 말하자면, 다른 노드는 재전송의 요청의 지정된 수신자가 아니더라도, 네트워크 내에서의 송수신에 대한 감청을 수행함으로써 재전송의 요청을 수신할 수 있다.
재전송의 요청을 수신한 다른 노드 또한 재전송의 요청에 대한 응답을 수행할 수 있다. 말하자면, 상기의 다른 노드 또한 추가적인 코드된 프레임들을 수신 노드로 전송할 수 있다. 전송 노드 및 다른 노드가 각각 서로 상이한 행렬을 사용하는 네트워크 코딩에 의해 생성된 코드된 프레임들을 전송하면, 수신 노드의 원본의 프레임들의 복원의 성공률이 향상될 수 있다.
도 3에서, 수신 노드인 제1 컨텐츠 요청자(320)의 캐시(cache) 내에는 원본의 프레임들을 복원하기 위해 요구되는 코드된 프레임들의 개수에 비해, 단지 절반만을 저장하고 있을 수 있다. 도 3에서, 원본의 프레임들을 복원하기 위해 요구되는 코드된 프레임들의 개수는 2이고, 제1 컨텐츠 요청자(320)가 저장하는 코드된 프레임들의 개수는 1일 수 있다. 수신 노드인 제1 컨텐츠 요청자(320)는 전송 노드인 컨텐츠 소스(310)에게 재전송의 요청을 전송할 수 있다. 멀티캐스트 또는 감청을 통해 재전송의 요청을 수신한 제2 컨텐츠 요청자(330)는 손실의 복구를 위해 요구되는 코드된 프레임들을 제1 컨텐츠 요청자(320)로 전송할 수 있다. 도 3에서, 손실 복구 프레임들은 다른 수신 노드인 제2 컨텐츠 요청자(330)로부터 재전송의 요청을 전송한 제1 컨텐츠 요청자(320)로 전송되는 코드된 프레임들을 나타낼 수 있다.
전송 노드는 재전송의 요청에 대한 응답을 바로 수행하지 않음으로써, 네트워크 내에서 전송되는 패킷 또는 코드된 프레임들의 개수를 감소시킬 수 있다. 예컨대, 전송 노드는 재전송의 요청이 소정의 시간 내에 전송된 경우, 중복된 재전송을 방지하기 위해 재전송의 요청에 대하여 바로 응답하지 않고, 응답을 소정의 구성에 따라 지연시킬 수 있다.
수신된 제1 손실 정보 메시지가 나타내는 손실된 코드된 프레임들의 개수가 이전에 수신된 제2 손실 정보 메시지가 나타내는 손실된 코드된 프레임들의 개수보다 더 적으면, 전송 노드는 제1 손실 정보 메시지의 재전송의 요청을 무시할 수 있다. 수신된 제1 손실 정보 메시지가 나타내는 손실된 코드된 프레임들의 개수가 이전에 수신된 제2 손실 정보 메시지가 나타내는 손실된 코드된 프레임들의 개수보다 더 크면, 전송 노드는 추가적인 코드된 프레임을 전송할 수 있다. 여기서, 전송되는 추가적인 코드된 프레임의 개수는, 제1 손실 정보 메시지가 나타내는 추가적으로 요구되는 코드된 프레임들의 개수에서, 제2 손실 정보 메시지가 나타내는 추가적으로 요구되는 코드된 프레임들의 개수를 뺀 값일 수 있다. 말하자면, 전송 노드는 제1 손실 메시지에 대응하여 전송될 코드된 프레임들의 개수를 결정함에 있어서, 이전에 수신된 제2 손실 메시지에 대응하여 이미 전송된 코드된 프레임들의 개수를 고려할 수 있다. 전송 노드는 이번의 손실 정보 메시지에서 요청된 코드된 프레임들의 개수에서 이전의 손실 정보 메시지들에 대응하여 전송된 코드된 프레임들의 개수를 뺀 값을 전송될 코드된 프레임들의 개수로서 결정할 수 있다.
상술된 응답의 지연을 통한 코드된 프레임들의 중복 전송의 방지는, 소정의 시간 내에서 발생하는 재전송의 요청에 대해서 수행될 수 있다. 소정의 시간은 라우팅(routing) 트립(trip) 시간에 기반한 중복 전송을 방지하기 위한 시간일 수 있다.
전송 노드는 상기의 소정의 시간 이후에 수신된 재전송의 요청에 대해서도 응답할 수 있다. 예컨대, 수신 노드가 멀티캐스트 트래픽을 지속하여 수신하지 못하는 경우에 대해서도, 전송 노드는 손실된 코드된 프레임들의 복구를 제공할 수 있다.
응답의 지연은 어플리케이션, 컨텐츠, 원래의 프레임들 및 코드된 프레임들의 종류(type) 또는 속성(attribute)에 따라 상이하게 이루어질 수 있다.
예컨대, 컨텐츠가 파일인 경우, 네트워크 내에서는 파일의 전송을 위한 멀티캐스트가 이루어질 수 있다. 네트워크 내에서 파일의 전송을 위한 멀티캐스트가 이루어지는 경우, 전송 노드는 파일의 전체 또는 파일의 모든 블록들의 전송이 완료된 후 재전송의 요청에 대한 응답을 수행할 수 있다. 전송 노드는 파일의 전체 또는 파일의 모든 블록들의 전송이 완료된 이후까지 응답이 지연되도록 설정될 수 있다.
전송 노드는 소정의 조건이 충족될 때까지 응답이 지연되도록 설정될 수 있다. 예컨대, 전송 노드는 재전송이 간헐적으로 이루어지도록 설정될 수 있다.
간헐적인 재전송을 위해, 전송 노드는 소정의 양 또는 소정의 개수의 블록들의 전송이 완료된 이후까지 응답을 지연시킬 수 있다. 전송 노드는 소정의 주기에 따라 응답을 지연시킬 수 있다. 말하자면, 전송 노드는 소정의 주기에 따라 재전송의 요청에 대한 응답을 수행할 수 있다. 또한, 전송 노드는 네트워크 내의 트래픽이 소정의 임계치 이하가 될 때까지 응답을 지연시킬 수 있다.
상술된 응답의 지연을 통해, 전송 노드는 패킷의 손실의 복구를 위한 재전송을 일괄적으로 수행할 수 있다. 일괄적인 수행을 통해 멀티캐스트의 효과가 향상될 수 있다.
도 4는 일 예에 따른 수신 노드의 컨텐츠 캐싱을 설명한다.
도 3을 참조하여 전술된 것처럼, 전송 노드 외에도 하나 이상의 수신 노드들의 각각도 전송된 코드된 프레임들의 일부를 저장할 수 있다.
네트워크 내의 노드는 전송된 코드된 프레임들의 전부 또는 일부를 다른 노드에게 제공하기 위해 저장할 수 있다. 상기의 저장은 일시적인 캐싱일 수 있다.
도 4에서, 네트워크 내의 노드들로서, 컨텐츠 소스(410) 및 하나 이상의 컨텐츠 요청자들이 도시되었다. 하나 이상의 컨텐츠 요청자들로서, 제1 컨텐츠 요청자(420), 제2 컨텐츠 요청자(430) 및 제3 컨텐츠 요청자(440)가 도시되었다. 또한, 도 4에서, 나중에 네트워크에 추가된 지연 도착자(latecomer)(450)가 도시되었다. 컨텐츠 소스(410)는 도 1 내지 도 4를 참조하여 전술된 전송 노드에 대응할 수 있다. 제1 컨텐츠 요청자(420), 제2 컨텐츠 요청자(430), 제3 컨텐츠 요청자(440) 및 지연 도착자(450)의 각각은 도 1 내지 도 4를 참조하여 전술된 수신 노드에 대응할 수 있다.
네트워크 내의 하나 이상의 수신 노드들 중, 컨텐츠, 블록 또는 코드된 프레임들을 수신한 수신 노드는 원래의 프레임들, 블록 또는 컨텐츠를 복원한 후에도 코드된 프레임들을 저장할 수 있다. 상기의 저장은 캐싱일 수 있다. 예컨대, 수신 노드는 시간이 흐름에 따라 저장된 지 오래된 저장된 코드된 프레임들 또는 요청된 지 오래된 저장된 코드된 프레임들을 제거할 수 있고, 새로운 코드된 프레임들을 저장할 수 있다.
상기의 저장은 블록 별로 이루어질 수 있다. 수신 노드는 특정한 블록의 코드된 프레임들의 전부 또는 일부를 저장할 수 있다.
코드된 프레임들의 일부를 저장함에 있어서, 수신 노드는 블록의 코드된 프레임들 중 랜덤(ramdom)으로 일부의 코드된 프레임들을 선택할 수 있고, 선택된 일부의 코드된 프레임들을 저장할 수 있다. 또는, 하나 이상의 수신 노드들은 소정의 조건에 따라 일부의 코드된 프레임들을 선택할 수 있다. 소정의 조건은 하나 이상의 수신 노드들 간의 코드된 프레임들의 저장에 있어서의 중복을 방지하거나, 상기의 중복을 감소시키기 위한 조건일 수 있다. 예컨대, 수신 노드는 수신 노드의 식별자에 따라 코드된 프레임들 중 일부의 코드된 프레임들을 선택할 수 있다. 또는, 하나 이상의 수신 노드들은 프로토콜을 통해 하나 이상의 수신 노드들의 각각이 저장할 일부의 코드된 프레임들을 선택할 수 있다.
말하자면, 코드된 프레임들은 전송 노드 및 하나 이상의 수신 노드들을 포함하는 네트워크 내의 노드들 간에 분산하여 저장될 수 있다. 재전송의 요청이 전송되는 경우, 하나의 수신 노드가 재전송을 요청할 때, 전송 노드뿐만 아니라 재전송의 요청을 수신한 이웃의 다른 수신 노드들 또한 저장된 코드된 프레임들을 재전송을 요청한 수신 노드로 전송할 수 있다. 재전송의 요청은 멀티캐스트를 통해 다른 수신 노드로 전송될 수 있다. 또는, 다른 수신 노드는 유니캐스트를 통해 이루어지는 재전송의 요청을 감청할 수 있다. 코드된 프레임의 분산된 저장 및 분산된 전송으로 인해 전송 성능이 향상될 수 있다.
도 4에서, 지연 도착자(450)는 컨텐츠 소스(410)와 함께, 하나 이상의 컨텐츠 요청자들로부터도 코드된 프레임들을 수신할 수 있다. 또한, 지연 도착자(450)는 컨텐츠 소스(410)와 함께, 하나 이상의 컨텐츠 요청자들로부터도 재전송의 요청에 대한 추가적인 코드된 프레임들을 수신할 수 있다.
도 5는 일 예에 따른 컨텐츠의 캐시를 사용하는 패킷의 디코딩을 설명한다.
도 5에서, 원본의 컨텐츠(510)는 하나 이상의 원본의 프레임들로 구성될 수 있다. 컨텐츠(510)는 하나 이상의 원본의 프레임들을 포함할 수 있다.
도 1을 참조해서 전술된 것과 같이, 전송 노드는 컨텐츠(510)에 인코딩을 적용함으로써 코드된 컨텐츠(520)를 생성할 수 있다. 코드된 컨텐츠(120)는 하나 이상의 코드된 프레임들을 포함할 수 있다.
수신 노드는 다중의 소스들로부터의 코드된 프레임들을 사용하여 컨텐츠를 생성할 수 있다. 말하자면, 도 5에서, 수신 노드는 다중의 소스들로부터의 코드된 프레임들(530)을 사용하여 원본의 컨텐츠(540)를 복원할 수 있다.
다중의 소스들은 전송 노드를 포함할 수 있다. 도 4를 참조하여 전술된 것과 같이, 전송 노드가 재전송의 요청을 멀티캐스트로 전송하거나 또는 다른 노드들이 재전송의 요청을 감청하는 경우, 전송 노드 뿐만 아니라 네트워크 내의 하나 이상의 다른 수신 노드들 또는 코드된 프레임들을 갖는 다른 노드들 또한 추가적인 코드된 프레임들을 전송 노드로 전송할 수 있다. 따라서, 다중의 소스들은 네트워크 내의 하나 이상의 다른 수신 노드들을 포함할 수 있다. 또한, 다중의 소스들은 네트워크 내의 코드된 프레임들을 갖는 하나 이상의 다른 노드들을 포함할 수 있다.
다중의 소스들로부터의 코드된 프레임들은 전송 노드, 하나 이상의 다른 수신 노드들, 또는 코드된 프레임들을 갖는 하나 이상의 다른 노드들로부터 전송된 코드된 컨텐츠의 코드된 프레임들일 수 있다.
전송 노드는 수신된 코드된 프레임들 및 추가적인 코드된 프레임들을 사용하여 컨텐츠를 생성할 수 있다. 예컨대, 도 5에서, 다중의 소스들로부터의 코드된 프레임들을 사용하여 원본의 컨텐츠(540)를 복원(reconstruct)할 수 있다. 수신 노드는 다중의 소스들로부터의 코드된 프레임들을 대한 디코딩을 수행함으로써 원본의 컨텐츠(540)를 복원할 수 있다.
도 6은 일 예에 따른 집합된 손실 정보 메시지를 도시한다.
도 1 내지 도 5를 참조하여 전술된 것과 같이, 재전송의 요청은 손실 정보 메시지를 통해 전송될 수 있다. 또한, 손실 정보 메시지는 하나의 블록에 대응할 수 있고, 대응하는 블록의 식별자를 포함할 수 있다.
또한, 도 6에서 도시된 것과 같이 손실 정보 메시지는 복수의 블록들에 대응하는 집합된 손실 정보 메시지일 수 있다. 도 6에서, 집합된 손실 정보 메시지(600)는 S_MAC 필드(610), D_MAC 필드(620), 하나 이상의 블록 식별자(identifier; ID) 필드들(630) 및 하나 이상의 카운트(count) 필드(640)들을 포함할 수 있다. S_MAC 필드(field)(610)는 소스의 MAC 주소를 나타낼 수 있다. 소스는 도 1 내지 도 5를 참조하여 전술된 전송 노드일 수 있다. D_MAC 필드(620)는 목적지(destination)의 MAC 주소를 나타낼 수 있다. 목적지는 도 1 내지 도 5를 참조하여 전술된 수신 노드일 수 있다. Block ID 필드는 블록의 식별자를 나타낼 수 있다. 카운트 필드는 추가적으로 요구되는 코드된 프레임들의 개수를 나타낼 수 있다.
수신 노드는 하나의 블록에 대하여 즉시 재전송의 요청을 전송하지 않고, 재전송의 요청의 집합(aggregation)을 수행할 수 있다. 상기의 집합에 의해 네트워크 내에서 발생하는 트래픽이 감소될 수 있다.
도 6에서 전송된 것과 같이, 집합된 손실 정보 메시지는 하나 이상의 블록들의 손실 정보를 나타낼 수 있다. 말하자면, 집합된 손실 정보 메시지는 수신 노드에 의해 취합된 하나 이상의 블록들에 대한 손실 정보를 포함하는 손실 맵(map)일 수 있다.
집합된 손실 정보 메시지는 하나 이상의 블록들의 각 블록들에 대해, 수신 노드가 실제로 수신한 코드된 프레임들의 개수를 포함할 수 있다. 또한, 집합된 손실 정보 메시지는 하나 이상의 블록들의 각 블록들에 대해 수신 노드가 블록 또는 원본의 프레임들을 복원하기 위해 추가적으로 요구되는 코드된 프레임들의 개수를 포함할 수 있다. 또는, 집합된 손실 정보 메시지는 하나 이상의 블록들의 각 블록들에 대해 수신 노드가 손실한 프레임들의 개수를 포함할 수 있다.
집합된 손실 정보 메시지는 코드된 프레임들의 하나 이상의 블록의 식별자들을 포함할 수 있다. 상기의 식별자들을 통해, 전송 노드는 손실 정보 메시지의 손실 정보가 어떤 블록들의 코드된 프레임들에 대한 정보인지를 식별할 수 있다.
집합된 손실 정보 메시지는 하나 이상의 블록들의 각 블록의 코드된 프레임들의 카운터(counter)를 포함할 수 있다. 코드된 프레임들의 카운터는 1) 수신 노드가 실제로 수신한 각 블록의 코드된 프레임들의 개수, 2) 수신 노드가 각 블록을 복원하기 위해 추가적으로 요구되는 각 블록의 코드된 프레임들의 개수, 또는 3) 각 블록의 코드된 프레임들 중 수신 노드가 손실한 프레임들의 개수일 수 있다.
집합의 범위는 컨텐츠, 원래의 프레임들 및 코드된 프레임들의 종류 또는 속성에 따라 상이할 수 있다.
예컨대, 컨텐츠가 파일인 경우 컨텐츠의 전체의 블록들에 대해 손실 정보가 집합될 수 있다. 수신 노드는 파일의 전부가 전송된 후 집합된 손실 정보 메시지를 생성 및 전송할 수 있다. 코드된 프레임들의 전송 및 집합된 손실 정보 메시지의 전송을 시간적으로 분리함으로써, 수신 노드는 코드된 프레임들의 멀티캐스트를 통한 전송이, 재전송의 요청의 전송 및 상기의 재전송의 요청에 의한 추가적인 코드된 프레임들의 전송에 의한 방해를 받지 않게 할 수 있다. 여기서, 방해는 경합, 충돌 및 간섭 중 하나 이상일 수 있다.
예컨대, 컨텐츠가 스트리밍으로 전송될 수 있는 비디오일 경우 손실 정보의 집합의 범위는 비디오의 인코딩률(encoding rate) 및 네트워크의 전송 속도에 기반하여 결정될 수 있다.
집합의 범위는 집합된 손실 정보 메시지의 블록들의 전송 시점들에 기반하여 결정될 수 있다. 예컨대, 집합된 손실 정보 메시지들이 순차적인 복수의 블록들에 대한 손실 정보를 포함할 때, 집합의 범위는 소정의 시간대 내에서 전송되는 복수의 블록들을 포함하도록 결정될 수 있다.
도 7은 일 실시예에 따른 노드의 블록도이다.
노드(700)는 도 1 내지 도 6을 참조하여 전술된 네트워크 내의 노드, 전송 노드 및 수신 노드에 각각 대응할 수 있다. 말하자면, 도 1 내지 도 6을 참조하여 전술된 노드, 전송 노드 및 수신 노드에 대한 설명은 노드(700)에도 적용될 수 있다.
노드(700)는 통신부(710), 처리부(720) 및 저장부(730)를 포함할 수 있다. 도 1 내지 도 6을 참조하여 전술된 네트워크 내의 노드들은 각각 통신부, 처리부 및 저장부를 포함할 수 있다.
통신부(710)는 데이터의 송수신을 처리할 수 있다. 예컨대, 통신부(710)는 다른 노드로 코드된 프레임들 및 재전송의 요청을 전송할 수 있다. 또한, 통신부(710)는 다른 노드로부터 코드된 프레임들 및 재전송의 요청을 수신할 수 있다.
처리부(720)는 데이터의 생성 및 판단에 관련된 작업을 처리할 수 있다. 예컨대, 처리부(720)는 코드된 프레임들 및 손실 정보 메시지를 생성할 수 있고, 코드된 프레임들에 대한 디코딩을 수행함으로써 원본의 컨텐츠를 복원할 수 있다.
저장부(730)는 데이터를 저장할 수 있다. 예컨대, 저장부(730)는 컨텐츠, 원본의 프레임들, 생성된 코드된 프레임들, 수신된 코드된 프레임들, 추가적인 코드된 프레임들, 손실 정보 메시지 등을 저장할 수 있다.
도 8은 일 실시예에 따른 수신 노드의 통신 방법의 흐름도이다.
하기의 실시예는 수신 노드의 통신 방법을 설명한다. 하기에서 설명될 수신 노드 및 다른 노드는 각각 도 7을 참조하여 전술된 노드(700)에 대응할 수 있다. 말하자면, 노드(700)의 통신부(710), 처리부(720) 및 저장부(730)는 수신 노드의 통신부, 처리부 및 저장부에 각각 대응할 수 있고, 노드(700)의 통신부(710), 처리부(720) 및 저장부(730)는 다른 노드의 통신부, 처리부 및 저장부에 각각 대응할 수 있다.
다른 노드는 전송 노드와 같은 네트워크 내에 있는 이웃 노드일 수 있다. 또한, 다른 노드 및 수신 노드는 전송 노드로부터 코드된 프레임들을 수신할 수 있다.
단계(805)에서, 수신 노드의 통신부는 전송 노드로부터 하나 이상의 패킷들을 수신할 수 있다. 패킷은 도 1 내지 도 7을 참조하여 전술된 코드된 프레임에 대응할 수 있다.
하나 이상의 패킷들은 멀티캐스트로 전송 노드로부터 수신 노드로 전송될 수 있다.
후술될 단계들(810 내지 855)는 패킷을 손실한 수신 노드가 패킷의 손실에 대한 재전송을 요청하는 과정일 수 있다. 멀티캐스트를 통해 추가적인 패킷이 전송될 경우, 또는 추가적인 패킷의 전송이 감청되는 경우, 수신 노드 자신이 패킷을 요청하지 않고 네트워크 내의 다른 노드가 패킷을 요청한 경우에도 수신 노드는 추가적인 패킷을 함께 수신할 수 있다. 따라서, 경우에 따라 수신 노드는 재전송의 요청을 연기할 수 있다.
단계(810)에서, 수신 노드의 처리부는 연기 시간(defer time)이 0 보다 더 큰 지 여부를 판단할 수 있다. 연기 시간은 수신 노드가 피드백 메시지를 전송하기 전에 대기하는 시간일 수 있다.
피드백 메시지는 도 1 내지 도 6을 참조하여 전술된 재전송의 요청, 손실 정보 메시지 또는 집합된 손실 정보 메시지일 수 있다. 말하자면 피드백 메시지는 수신 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하는 메시지일 수 있다. . 요구하는 패킷들의 개수를 나타내는 정보는 손실 정보에 대응할 수 있다.
수신 노드가 요구하는 패킷들의 개수는 수신된 하나 이상의 패킷들에 대한 디코딩을 수행하기 위해 추가적으로 요구되는 최소의 패킷들의 개수를 나타낼 수 있다.
피드백 메시지는 패킷 에러률(Packet Error Rate; PER)을 포함할 수 있다. PER은 전송 노드에게 패킷 전송에 있어서의 에러률을 제공할 수 있다. 전송 노드는 상기의 에러률을 참조하여 수신 노드로부터 요구된 개수의 패킷들 외의 추가적인 패킷들을 전송할 수 있다.
도 1 내지 도 6을 참조하여 전술된 것처럼, 패킷 또는 코드된 프레임들은 전송 노드가 원본의 프레임들에 네트워크 코딩을 적용함으로써 생성될 수 있다. 따라서, 상기의 디코딩은 수신된 하나 이상의 패킷들에 적용된 네트워크 코딩에 대한 디코딩일 수 있다.
수신 노드가 요구하는 패킷들의 개수는 네트워크 코딩에 의해 인코딩된 수신된 하나 이상의 패킷들을 디코드하기 위해 추가적으로 요구되는, 상기의 네트워크 코딩에 의해 인코딩된 다른 하나 이상의 패킷들의 개수일 수 있다.
연기 시간은 도 1 내지 도 7을 참조하여 재전송의 요청을 바로 전송하지 않고 대기하는 것에 대한 남은 시간일 수 있다. 말하자면, 수신 노드의 처리부는 연기 시간이 만료할 때까지 수신 노드의 피드백을 전송하는 것을 지연시킬 수 있다. 단계(810)의 수행의 이전에, 연기 시간은 소정의 값으로 세트될 수 있다.
연기 시간이 0 보다 더 큰 경우, 단계(820)가 수행될 수 있다. 연기 시간이 0 이하인 경우, 단계(855)가 수행될 수 있다.
단계(820)에서, 수신 노드의 처리부 및 통신부는 다른 노드의 피드백 메시지의 감청을 시도할 수 있다. 피드백의 감청은 네트워크 내에서 전송되는 다른 노드의 피드백을 수신하는 것일 수 있다. 예컨대, 다른 노드의 피드백이 멀티캐스트를 통해 다른 노드로부터 전송 노드로 전송되는 경우, 또는 수신 노드가 다른 노드의 피드백을 감청하는 경우, 수신 노드 또한 피드백을 획득할 수 있다.
다른 노드의 피드백 메시지는 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함할 수 있다. 요구하는 패킷들의 개수를 나타내는 정보는 손실 정보에 대응할 수 있다.
단계(825)에서, 수신 노드의 통신부는 다른 노드로부터 패킷 수신에 대한 다른 노드의 피드백 메시지를 수신할 수 있다.
다른 노드로부터 전송된 피드백 메시지가 없는 경우, 단계(825)는 수행되지 않을 수 있다. 이러한 경우, 단계(820)는 소정의 시간 동안 수행될 수 있다. 말하자면, 수신 노드의 처리부 및 통신부는 소정의 시간 동안 다른 노드로부터의 피드백 메시지를 대기할 수 있다.
단계(830)에서, 수신 노드의 처리부는 피드백 메시지의 감청의 성공 여부를 판단할 수 있다. 말하자면, 처리부는 단계(825)의 피드백 메시지 수신이 성공하였는지 여부를 판단할 수 있다.
상기의 판단에 의해, 피드백 메시지가 수신된 경우, 단계(840)가 수행될 수 있다. 피드백 메시지가 수신되지 않은 경우, 다시 단계(810)가 반복될 수 있다.
단계(840)에서, 수신 노드의 처리부는 수신 노드 자신의 디코딩을 위한 개수(Number For Decoding; NFD)가 감청된 NFD 보다 더 큰가를 검사할 수 있다.
수신 노드의 NFD는 수신 노드가 요구하는 패킷들의 개수를 나타낼 수 있다. 감청된 NFD는 감청된 피드백 메시지를 전송한 수신 노드가 요구하는 패킷들의 개수를 나타낼 수 있다. 말하자면, 수신 노드의 처리부는 다른 노드가 요구하는 패킷들의 개수 및 수신 노드가 요구하는 패킷들의 개수를 비교할 수 있다.
수신 노드는 수신 노드 자신의 NFD 만큼의 패킷들을 추가적으로 수신하면, 추가적으로 수신된 패킷들 및 이전에 수신한 하나 이상의 패킷들에 대한 디코딩을 수행함으로써 컨텐츠, 블록 또는 원래의 프레임들을 복원할 수 있다. 또한, 다른 노드는 감청된 NFD 만큼의 패킷들을 추가적으로 수신하면, 추가적으로 수신된 패킷들에 대한 디코딩을 수행함으로써 컨텐츠, 블록 또는 원래의 프레임들을 복원할 수 있다.
수신 노드의 NFD가 감청된 NFD 보다 더 큰 경우, 단계(845)가 수행될 수 있다.
수신 노드의 NFD가 감청된 NFD의 이하인 경우, 절차가 종료할 수 있다. 말하자면, 수신 노드의 NFD가 감청된 NFD의 이하인 경우 수신 노드는 자신의 피드백 메시지를 전송하지 않을 수 있다. 수신 노드가 다른 노드의 피드백 메시지를 감청했다는 것은 다른 노드가 전송 노드에게 피드백 메시지를 전송하였다는 것을 의미할 수 있다. 다른 노드로부터 전송된 피드백 메시지는 상기의 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함할 수 있다. 따라서, 전송 노드는 적어도 상기의 다른 노드가 요구하는 개수만큼의 패킷들을 상기의 다른 노드 및 수신 노드 등에게 전송할 수 있다. 상기의 전송은 멀티캐스트를 통해 이루어질 수 있다. 따라서, 수신 노드는 중복하여 피드백 메시지를 전송할 필요가 없다.
수신 노드가 요구하는 패킷들의 개수가 다른 노드가 요구하는 패킷들의 개수에 비해 더 크면, 단계(845)에서, 수신 노드의 통신부는 수신 노드의 피드백 메시지를 전송 노드로 전송할 수 있다. 피드백 메시지는 멀티캐스팅 또는 감청을 통해 네트워크 내의 다른 노드들로도 전송될 수 있다. 전술된 것처럼, 피드백 메시지는 수신 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함할 수 있다.
도시된 것과는 달리, 단계(840)에서 수신 노드의 NFD가 감청된 NFD 보다 더 큰 경우, 단계(810)가 반복될 수도 있다. 따라서, 단계(820)에서의 피드백 메시지의 감청은 NFD에 기반한 감청일 수 있다.
소정의 기간 동안 다른 노드의 피드백 메시지가 수신되지 않으면, 단계(855)에서, 수신 노드의 통신부는 수신 노드의 피드백 메시지를 전송 노드로 전송할 수 있다. 피드백 메시지는 멀티캐스팅 또는 감청을 통해 네트워크 내의 다른 노드들로도 전송될 수 있다.
소정의 시간은 단계(810)에서 설명된 연기 시간의 초기값일 수 있다.
말하자면, 수신 노드의 처리부는 소정의 기간 동안 다른 노드의 피드백 메시지를 대기할 수 있다. 처리부는, 수신된 다른 노드의 피드백 메시지를 분석한 결과, 자신이 가장 많은 패킷들을 요구하기 때문에 자신의 피드백 메시지를 전송할 필요가 있는 경우에만 자신의 피드백 메시지를 전송할 수 있다. 말하자면, 수신 노드의 피드백은 NFD에 기반하여 억제(suppression)될 수 있다. 상기의 억제는 블록 단위로 이루어질 수 있다. 말하자면, 상기의 억제는 동일한 식별자를 갖는 패킷 또는 동일한 블록 식별자를 갖는 코드된 프레임들에 대해 이루어질 수 있다.
도 1 내지 도 7을 참조하여 전술된 것처럼, 하나 이상의 블록들 각각에 대해 코드된 프레임들이 전송될 수 있다. 코드된 프레임은 자신이 어느 블록에 대한 프레임인가를 나타내기 위해 블록 식별자를 가질 수 있다. 또한, 수신 노드가 수신한 하나 이상의 패킷들은 동일한 식별자들을 포함할 수 있다. 동일한 식별자는 패킷을 블록 별로 구분하는 블록 식별자일 수 있다. 식별자들을 통해, 수신된 패킷은 블록 단위로 구분될 수 있다. 상기의 구분을 통해, 수신 노드의 처리부는 블록 별로 전술된 피드백 억제를 수행할 수 있다.
또한, NFD를 결정하기 위해, 수신된 하나 이상의 패킷들의 각각은 수신된 하나 이상들의 패킷들에 대한 디코딩을 수행하기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함할 수 있다. 처리부는 요구되는 최소의 패킷들의 개수에서 실제로 수신된 하나 이상의 패킷들의 개수를 뺌으로써 수신 노드가 요구하는 패킷들의 개수를 계산할 수 있다.
단계들(810 내지 855)의 실행 중 또는 단계(855)의 실행 후, 수신 노드는 추가적인 패킷들을 수신할 수 있고, 네트워크를 통해 전송되는 추가적인 패킷들의 개수는 수신 노드가 요구하는 패킷들의 개수의 이상일 수 있다.
도 9는 일 실시예에 따른 전송 노드의 통신 방법의 흐름도이다.
하기의 실시예는 전송 노드의 통신 방법을 설명한다. 하기에서 설명될 전송 노드 및 다른 노드는 각각 도 7을 참조하여 전술된 노드(700)에 대응할 수 있다. 말하자면, 노드(700)의 통신부(710), 처리부(720) 및 저장부(730)는 수신 노드의 통신부, 처리부 및 저장부에 각각 대응할 수 있고, 노드(700)의 통신부(710), 처리부(720) 및 저장부(730)는 다른 노드의 통신부, 처리부 및 저장부에 각각 대응할 수 있다.
다른 노드는 수신 노드와 같은 네트워크 내에 있는 이웃 노드일 수 있다. 또한, 다른 노드는 전송 노드로부터 코드된 프레임들을 수신할 수 있다. 다른 노드는 도 1 내지 도 8을 참조하여 전술된 수신 노드일 수 있다.
패킷은 도 1 내지 도 8을 참조하여 전술된 코드된 프레임에 대응할 수 있다.
전송 노드는 수신 노드로부터 재전송의 요청을 수신하면, 수신 노드가 요구하는 개수 이상의 추가적인 패킷들을 수신 노드로 전송할 수 있다. 추가적인 패킷들이 멀티캐스트로 전송될 경우, 또는 추가적인 패킷들이 감청될 경우, 재전송의 요청을 전송한 수신 노드 외의 다른 노드들 또한 추가적인 패킷들을 수신할 수 있다. 따라서, 전송 노드는 특정한 시간 동안 재전송의 요청에 대한 응답을 바로 전송하지 않고, 복수의 수신 노드들로부터의 재전송의 요청들을 수신할 수 있다. 재전송의 요청들의 수신 후, 전송 노드는 가장 많은 개수의 추가적인 패킷들을 요구하는 요청에 따라서 결정된 개수만큼의 추가적인 패킷들을 수신 노드들에게 전송할 수 있다. 상기의 전송은 멀티캐스트를 통해 이루어질 수 있다.
단계(905)에서, 전송 노드의 통신부는 하나 이상의 수신 노드들로 하나 이상의 패킷들을 전송할 수 있다. 단계(905)에서 전송된 하나 이상의 패킷들을 제1 패킷들로 명명할 수 있다.
하나 이상의 패킷들은 멀티캐스트를 통해 전송 노드로부터 하나 이상의 수신 노드들로 전송될 수 있다.
후술될 단계들(910 내지 970)은 전송 노드가 수신 노드들로부터 피드백 메시지들을 수신하고, 피드백 메시지들이 나타내는 전송 노드들이 요구하는 패킷들의 개수의 이상의 추가적인 패킷들을 전송하는 과정일 수 있다.
단계(910)에서, 전송 노드의 처리부는 지연된 응답 시간이 0 이상인지 여부를 검사할 수 있다.
지연된 응답 시간은 전송 노드가 추가적인 패킷을 최종적으로 전송하기 전의 남은 대기 시간일 수 있다. 단계(910)의 수행의 이전에, 지연된 응답 시간은 소정의 값으로 세트될 수 있다.
지연된 응답 시간이 0 보다 더 큰 경우, 단계(920)이 수행될 수 있다. 지연된 응답 시간이 0 보다 더 크다는 것은 전송 노드가 최종적인 추가적인 패킷 전송의 이전에 더 대기해야 한다는 것을 의미할 수 있다.
지연된 응답 시간이 0 이하인 경우, 단계(970)이 수행될 수 있다.
단계(920)에서, 전송 노드의 처리부 및 통신부는 네트워크 내의 다른 노드로부터의 피드백 메시지의 수신을 대기할 수 있다. 다른 노드는 단계(905)의 하나 이상의 수신 노드들 중 하나의 노드일 수 있다.
피드백 메시지는 유니캐스트 또는 멀티캐스트를 통해 전송 노드로 전송될 수 있다.
단계(930)에서, 전송 노드의 통신부는 다른 노드로부터 피드백 메시지를 수신할 수 있다. 다른 노드의 피드백 메시지는 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함할 수 있다.
다른 노드로부터 전송된 피드백 메시지가 없는 경우, 단계(930)은 수행되지 않을 수 있다. 이러한 경우, 단계(920)은 소정의 시간 동안 수행될 수 있다. 말하자면, 전송 노드의 처리부 및 통신부는 소정의 시간 동안 다른 노드로부터 피드백 메시지를 대기할 수 있다.
단계(940)에서, 전송 노드의 처리부는 현재 NFD가 최대 NFD 보다 더 큰가를 검사할 수 있다.
현재 NFD는 단계(930)에서 수신된 피드백 메시지가 나타내는 다른 노드가 요구하는 패킷들의 개수일 수 있다. 최대 NFD는 전송 노드가 관리하는 요구하는 패킷들의 개수의 최대 값일 수 있다. 말하자면, 처리부는 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수를 비교할 수 있다.
단계(905)의 하나 이상의 패킷들 중 다른 노드는 하나 이상의 제2 패킷들 만을 수신할 수 있다. 다른 노드가 요구하는 패킷들의 개수는 다른 노드가 수신한 하나 이상의 제3 패킷들에 대한 디코딩을 수행하기 위해 추가적으로 요구되는 패킷들의 개수일 수 있다.
단계(920) 및 단계(930)는 반복해서 수행될 수 있다. 말하자면, 단계(930)의 반복적인 수행들에서, 하나 이상의 피드백 메시지들이 하나 이상의 다른 노드들로부터 각각 전송될 수 있다. 하나 이상의 피드백 메시지들은 피드백 메시지를 전송한 하나 이상의 다른 노드들이 요구하는 패킷들의 개수들을 각각 나타낼 수 있다. 최대 NFD는 상기의 하나 이상의 다른 노드들이 요구하는 패킷들의 개수들 중 최대 값일 수 있다.
단계(910)의 수행의 이전에, 최대 NFD는 소정의 값으로 세트될 수 있다. 소정의 값은 0일 수 있다. 최대 NFD는 상기의 하나 이상의 다른 노드들이 요구하는 패킷들의 개수들 및 상기의 소정의 값 중 최대 값일 수 있다.
최대 패킷 개수는 전송 노드에 이미 전송된 추가적인 패킷들의 개수일 수 있다. 또는, 최대 패킷 개수는 전송 노드가 추가적인 패킷들을 전송하기 위한 임계 값일 수 있다.
다른 노드가 요구하는 패킷들의 개수가 최대 패킷 개수보다 더 큰 경우, 단계(950)가 수행될 수 있다.
다른 노드가 요구하는 패킷들의 개수가 최대 패킷 개수의 이하인 경우, 단계(910)가 반복될 수 있다. 다른 노드가 요구하는 패킷들의 개수가 최대 패킷 개수의 이하라는 것은 다른 노드가 요구하는 패킷들 보다 더 많은 추가적인 패킷들이 이미 (멀티캐스트를 통해) 하나 이상의 수신 노드들로 전송되었다는 것을 의미할 수 있다. 따라서, 더 이상 추가적인 패킷들이 전송될 필요가 없을 수 있다.
다른 노드가 요구하는 패킷들의 개수가 최대 패킷 개수에 비해 더 크면, 단계(950)에서, 전송 노드의 통신부는 하나 이상의 추가적인 패킷들을 전송할 수 있다. 단계(950)에서 전송되는 하나 이상의 추가적인 패킷들을 하나 이상의 제3 패킷들로 명명할 수 있다.
전송되는 추가되는 패킷들의 개수는 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수 간의 차일 수 있다. 또는, 전송되는 추가되는 패킷들의 개수는 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수 간의 차의 이상일 수 있다. 처리부는 1) 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수 간의 차, 2) 네트워크의 패킷 손실률 및 3) 소정의 값 등을 고려하여 추가적인 패킷들의 개수를 결정할 수 있다.
단계(960)에서, 전송 노드의 처리부는 최대 NFD의 값을 갱신될 수 있다. 갱신된 최대 NFD의 값은 전송 노드에 의해 전송된 추가적인 패킷들의 총 개수일 수 있다.
처리부는 최대 패킷 개수의 값을 단계(950)에서 전송된 하나 이상의 추가적인 패킷들의 개수만큼 증가시킬 수 있다. 또는, 처리부는 최대 패킷 개수의 값을 다른 노드가 요구하는 패킷들의 개수의 값으로 갱신할 수 있다.
단계(960)의 수행 후 단계(910)가 반복해서 수행될 수 있다.
전술된 단계들(910 내지 960)를 통해, 전송 노드는 소정의 기간 동안 다른 노드의 메시지를 대기할 수 있다.
지연된 응답 시간이 0 이하가 되면, 단계(970)에서, 전송 노드의 통신부는 하나 이상의 추가적인 패킷들을 전송할 수 있다.
단계(970)에서 전송된 하나 이상의 추가적인 패킷들을 제4 패킷들로 명명할 수 있다.
소정의 기간 동안 다른 노드의 메시지가 수신되지 않으면, 통신부는 하나 이상의 추가적인 패킷들을 전송할 수 있다. 하나 이상의 추가적인 패킷들의 개수는 최대 패킷 개수와 동일할 수 있다.
예컨대, 단계(910)의 수행 전에 이미 전송 노드의 통신부가 수신 노드로부터 피드백 메시지를 수신하였고, 수신 노드가 요구하는 패킷들의 개수가 최대 패킷 개수의 초기 값으로서 설정될 수 있다.
또는, 도시된 것과는 달리, 예컨대 최대 패킷 개수의 초기 값이 0인 경우, 단계(970)는 수행되지 않은 채 절차가 종료할 수도 있다.
전술된 것과 같이, 전송 노드는 하나 이상의 수신 노드들의 모두의 피드백 메시지에 대하여 응답하지 않을 수 있다. 전송 노드는 이전에 전송된 추가적인 패킷 또는 지연된 응답 시간의 경과 후에 전송될 추가적인 패킷들의 개수를 고려하여, 수신 노드의 요청에 따라 다른 추가적인 패킷들을 더 전송할 필요가 있는가를 판단할 수 있다. 말하자면, 전송 노드의 응답은 NFD에 기반하여 제거될 수 있다. 상기의 제거는 블록 단위로 이루어질 수 있다. 말하자면, 상기의 제거는 동일한 식별자를 갖는 패킷 또는 동일한 블록 식별자를 갖는 코드된 프레임들에 대해 이루어질 수 있다.
도 1 내지 도 8을 참조하여 전술된 것처럼, 하나 이상의 블록들 각각에 대해 코드된 프레임들이 전송될 수 있다. 코드된 프레임은 자신이 어느 블록에 대한 프레임인가를 나타내기 위해 블록 식별자를 가질 수 있다. 또한, 수신 노드가 단계(905)에서 수신하는 하나 이상의 제1 패킷들, 단계(950)에서 수신하는 하나 이상의 제3 패킷들 및 단계(970)에서 수신하는 하나 이상의 제4 패킷들은 동일한 식별자들을 포함할 수 있다. 동일한 식별자는 블록 식별자일 수 있다. 식별자들을 통해, 수신된 패킷은 블록 단위로 구분될 수 있다. 상기의 구분을 통해, 수신 노드의 처리부는 블록 별로 원본의 패킷들 또는 원본의 프레임들을 복원할 수 있다.
도 1 내지 도 8을 참조하여 전술된 것처럼, 하나 이상의 제1 패킷들, 하나 이상의 제2 패킷들, 하나 이상의 제3 패킷들 및 하나 이상의 제4 패킷들은 모두 네트워크 코딩에 의해 인코딩될 수 있다. 또한, 하나 이상의 제1 패킷들은 하나 이상의 제1 패킷들이 디코딩되기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함할 수 있다. 상기의 검토는 하나 이상의 제2 패킷들, 하나 이상의 제3 패킷들 및 하나 이상의 제4 패킷들에게도 공통될 수 있다. 예컨대, 하나 이상의 제2 패킷들은 하나 이상의 제2 패킷들이 디코딩되기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함할 수 있다.
상술된 실시예들은 네트워크 기능이 탑재된 단말, 액세스 포인트(Access Point; AP), 라우터, 셋탑 박스(set top box) 등에 적용될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 네트워크 내의 노드에 의해 수행되는,
    상기 네트워크 내의 다른 노드로부터 패킷 수신에 대한 상기 다른 노드의 메시지를 수신하는 단계 - 상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함함 -;
    상기 다른 노드가 요구하는 패킷들의 개수 및 상기 노드가 요구하는 패킷들의 개수를 비교하는 단계; 및
    상기 노드가 요구하는 패킷들이 개수가 상기 다른 노드가 요구하는 패킷들의 개수에 비해 더 크면 상기 노드의 메시지를 전송하는 단계 - 상기 노드의 메시지는 상기 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함함 -
    를 포함하는, 통신 방법.
  2. 제1항에 있어서,
    소정의 기간 동안 상기 다른 노드의 메시지가 수신되지 않으면 상기 노드의 메시지를 전송하는 단계
    를 더 포함하고,
    상기 노드는 상기 소정의 기간 동안 상기 다른 노드의 메시지를 대기하는, 통신 방법.
  3. 제1항에 있어서,
    전송 노드로부터 전송된 하나 이상의 패킷들을 수신하는 단계
    를 더 포함하고,
    상기 노드가 요구하는 패킷들의 개수는 상기 수신된 하나 이상의 패킷들에 대한 디코딩을 수행하기 위해 추가적으로 요구되는 최소의 패킷들의 개수인, 통신 방법.
  4. 제3항에 있어서,
    상기 하나 이상의 패킷들은 멀티캐스트로 상기 전송 노드로부터 상기 노드로 전송되는, 통신 방법.
  5. 제3항에 있어서,
    상기 하나 이상의 패킷들은 동일한 식별자들을 포함하는, 통신 방법.
  6. 제3항에 있어서,
    상기 디코딩은 상기 수신된 하나 이상의 패킷들에 적용된 네트워크 코딩에 대한 디코딩인, 통신 방법.
  7. 제3항에 있어서,
    상기 노드가 요구하는 패킷들의 개수는 네트워크 코딩에 의해 인코딩된 상기 수신된 하나 이상의 패킷들을 디코드하기 위해 추가적으로 요구되는 상기 네트워크 코딩에 의해 인코딩된 다른 하나 이상의 패킷들의 개수인, 통신 방법.
  8. 제3항에 있어서,
    상기 수신된 하나 이상들의 패킷들의 각각은 상기 수신된 하나 이상들의 패킷들에 대한 디코딩을 수행하기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함하는, 통신 방법.
  9. 제1항 내지 제8항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
  10. 네트워크 내의 다른 노드로부터 패킷 수신에 대한 상기 다른 노드의 메시지를 수신하는 통신부; 및
    상기 다른 노드가 요구하는 패킷들의 개수 및 상기 노드가 요구하는 패킷들의 개수를 비교하는 처리부
    를 포함하고,
    상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하고, 상기 노드의 메시지는 상기 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하고,
    상기 통신부는 노드가 요구하는 패킷들이 개수가 상기 다른 노드가 요구하는 패킷들의 개수에 비해 더 크면 상기 노드의 메시지를 전송하는, 노드.
  11. 노드에 의해 수행되는,
    네트워크 내의 다른 노드로부터 상기 다른 노드의 메시지를 수신하는 단계 - 상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함함 -;
    상기 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수를 비교하는 단계; 및
    상기 다른 노드가 요구하는 패킷들의 개수가 상기 최대 패킷 개수에 비해 더 크면 하나 이상의 제1 패킷들을 전송하는 단계
    를 포함하는, 통신 방법.
  12. 제11항에 있어서,
    소정의 기간 동안 상기 다른 노드의 메시지가 수신되지 않으면 하나 이상의 제2 패킷들을 전송하는 단계
    를 더 포함하고,
    상기 노드는 상기 소정의 기간 동안 상기 다른 노드의 메시지를 대기하는, 통신 방법.
  13. 제11항에 있어서,
    상기 최대 패킷 개수의 값을 상기 다른 노드가 요구하는 패킷들의 개수의 값으로 갱신하는 단계
    를 더 포함하고,
    상기 하나 이상의 제1 패킷들의 개수는 상기 다른 노드가 요구하는 패킷들의 개수 및 상기 최대 패킷 개수 간의 차인, 통신 방법.
  14. 제11항에 있어서,
    하나 이상의 수신 노드들로 하나 이상의 제2 패킷들을 전송하는 단계 - 상기 다른 노드는 상기 하나 이상의 수신 노드들 중 하나의 노드임 -
    를 더 포함하고,
    상기 다른 노드가 요구하는 패킷들의 개수는 상기 하나 이상의 제2 패킷들 중 상기 다른 노드가 수신한 하나 이상의 제3 패킷들에 대한 디코딩을 수행하기 위해 추가적으로 요구되는 패킷들의 개수인, 통신 방법.
  15. 제14항에 있어서,
    상기 하나 이상의 제2 패킷들은 멀티캐스트를 통해 상기 노드로부터 상기 하나 이상의 수신 노드들로 전송되는, 통신 방법.
  16. 제14항에 있어서,
    상기 하나 이상의 제1 패킷들 및 상기 하나 이상의 제2 패킷들은 동일한 식별자들을 포함하는, 통신 방법.
  17. 제14항에 있어서,
    상기 하나 이상의 제1 패킷들 및 상기 하나 이상의 제2 패킷들은 네트워크 코딩에 의해 인코딩된, 통신 방법.
  18. 상기 하나 이상의 제1 패킷들의 각각은 상기 하나 이상의 제1 패킷들이 디코딩되기 위해 요구되는 최소의 패킷들의 개수를 나타내는 정보를 포함하는, 통신 방법.
  19. 제11항 내지 제18항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
  20. 네트워크 내의 다른 노드로부터 상기 다른 노드의 메시지를 수신하는 통신부;
    상기 다른 노드가 요구하는 패킷들의 개수 및 최대 패킷 개수를 비교하는 처리부
    를 포함하고,
    상기 다른 노드의 메시지는 상기 다른 노드가 요구하는 패킷들의 개수를 나타내는 정보를 포함하고,
    상기 통신부는 상기 다른 노드가 요구하는 패킷들의 개수가 상기 최대 패킷 개수에 비해 더 크면 하나 이상의 제1 패킷들을 전송하는, 노드.
KR1020130140580A 2013-11-19 2013-11-19 통신 방법 및 장치 KR102235671B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130140580A KR102235671B1 (ko) 2013-11-19 2013-11-19 통신 방법 및 장치
US14/494,344 US20150139227A1 (en) 2013-11-19 2014-09-23 Communication method and apparatus
JP2014231900A JP6448320B2 (ja) 2013-11-19 2014-11-14 ノード及びその通信方法並びにコンピュータ読出可能記録媒体
EP14193411.7A EP2876832B1 (en) 2013-11-19 2014-11-17 Communication method and apparatus
CN201410652796.9A CN104660381B (zh) 2013-11-19 2014-11-17 通信方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130140580A KR102235671B1 (ko) 2013-11-19 2013-11-19 통신 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150057347A true KR20150057347A (ko) 2015-05-28
KR102235671B1 KR102235671B1 (ko) 2021-04-02

Family

ID=51982394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130140580A KR102235671B1 (ko) 2013-11-19 2013-11-19 통신 방법 및 장치

Country Status (5)

Country Link
US (1) US20150139227A1 (ko)
EP (1) EP2876832B1 (ko)
JP (1) JP6448320B2 (ko)
KR (1) KR102235671B1 (ko)
CN (1) CN104660381B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102248911B1 (ko) * 2014-10-13 2021-05-06 삼성전자주식회사 전자 장치 및 전자 장치에서 데이터를 처리하는 방법
CN108667559B (zh) * 2017-03-31 2020-12-15 华为技术有限公司 一种通信方法及设备
CN109636427B (zh) * 2019-01-29 2024-03-01 深圳市智税链科技有限公司 基于区块链系统的业务处理方法、装置、介质及电子设备
US11777647B2 (en) 2021-06-30 2023-10-03 Electronics And Telecommunications Research Institute Method and apparatus for traffic transmission in communication system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069145A (ko) * 2008-10-06 2011-06-22 톰슨 라이센싱 데이터 블록들을 송수신하기 위한 방법
US20130051388A1 (en) * 2011-08-24 2013-02-28 Renesas Mobile Corporation Methods and Apparatus for Multicast Transmission

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3571918B2 (ja) * 1997-06-04 2004-09-29 株式会社東芝 符号伝送方法、送信装置、受信装置および通信システム
UA86949C2 (ru) * 2003-10-08 2009-06-10 Квелкомм Инкорпорейтед Метод и устройство для предоставления отчетов обратной связи в системе радиосвязи
US7924761B1 (en) * 2006-09-28 2011-04-12 Rockwell Collins, Inc. Method and apparatus for multihop network FEC encoding
WO2010117646A1 (en) * 2009-04-09 2010-10-14 Motorola, Inc. Retransmission technique for a communication network
GB2502619A (en) * 2012-06-01 2013-12-04 Renesas Mobile Corp Optimising feedback in a multicast system
US9369255B2 (en) * 2012-10-18 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069145A (ko) * 2008-10-06 2011-06-22 톰슨 라이센싱 데이터 블록들을 송수신하기 위한 방법
US20130051388A1 (en) * 2011-08-24 2013-02-28 Renesas Mobile Corporation Methods and Apparatus for Multicast Transmission

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jean-Marie Vella,"A Survey of Multicasting over Wireless Access Networks",IEEE, DOI: 10.1109/SURV.2012.050412.00095 1부.* *
Martin S. Lacher,"Performance comparison of centralized versusdistributed error recovery for reliable multicast", DOI: 10.1109/90.842144 1부.* *

Also Published As

Publication number Publication date
CN104660381A (zh) 2015-05-27
KR102235671B1 (ko) 2021-04-02
EP2876832A2 (en) 2015-05-27
CN104660381B (zh) 2019-08-13
JP6448320B2 (ja) 2019-01-09
EP2876832B1 (en) 2020-10-07
EP2876832A3 (en) 2016-03-30
US20150139227A1 (en) 2015-05-21
JP2015100109A (ja) 2015-05-28

Similar Documents

Publication Publication Date Title
US20220014312A1 (en) Data transmission method and apparatus
CN106301694B (zh) 一种减少可靠组播传输中数据包重传次数的方法及装置
US9866351B2 (en) Communication method and communication apparatus
US20090003207A1 (en) Wireless performance improvement via client-free forward error correction
US20080082891A1 (en) Method and device for efficiently retransmitting packets in wired/wireless network
US10505677B2 (en) Fast detection and retransmission of dropped last packet in a flow
CN113765626B (zh) 一种移动通信系统的数据传输方法和装置
KR102235671B1 (ko) 통신 방법 및 장치
Dong et al. In-packet network coding for effective packet wash and packet enrichment
JP2014534760A (ja) 複数の受信機にメッセージを伝送する装置および方法
KR20120123308A (ko) 다중캐스트 네트워크에서 sctp를 위한 프로토콜 부스터
CN111181698B (zh) 数据处理方法、装置、设备及介质
WO2020163124A1 (en) In-packet network coding
CN109120385B (zh) 一种基于数据传输系统的数据传输方法、装置及系统
CN106130746B (zh) 一种数据传输方法及装置
US20210126900A1 (en) Data Sending Method, Sending Device, Data Receiving Method, and Receiving Device
US10461892B2 (en) Low latency communications
CN109792444B (zh) 实况内容分发系统中的播出缓冲
JP4217534B2 (ja) パケット送信装置、パケット受信装置、方法及びプログラム
KR101476748B1 (ko) 메시지 송수신 장치 및 방법
Phung et al. Enhancing rest http with random linear network coding in dynamic edge computing environments
CN114500672A (zh) 数据传输方法及系统
KR20150048489A (ko) 비연결 지향형 프로토콜을 이용한 데이터 통신
CN110166185B (zh) 音频数据的处理方法、装置、存储介质和处理器
US20210084123A1 (en) Systems and methods for increasing reliability for media data distribution

Legal Events

Date Code Title Description
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