KR101501168B1 - 네트워크 코딩의 피드백 장치 및 데이터 전송 방법 - Google Patents

네트워크 코딩의 피드백 장치 및 데이터 전송 방법 Download PDF

Info

Publication number
KR101501168B1
KR101501168B1 KR1020130095480A KR20130095480A KR101501168B1 KR 101501168 B1 KR101501168 B1 KR 101501168B1 KR 1020130095480 A KR1020130095480 A KR 1020130095480A KR 20130095480 A KR20130095480 A KR 20130095480A KR 101501168 B1 KR101501168 B1 KR 101501168B1
Authority
KR
South Korea
Prior art keywords
matrix
encoding
encoded
feedback data
node
Prior art date
Application number
KR1020130095480A
Other languages
English (en)
Other versions
KR20150019088A (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 KR1020130095480A priority Critical patent/KR101501168B1/ko
Publication of KR20150019088A publication Critical patent/KR20150019088A/ko
Application granted granted Critical
Publication of KR101501168B1 publication Critical patent/KR101501168B1/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 네트워크 코딩의 피드백 장치 및 네트워크 코딩의 데이터 전송 방법에 관한 것으로, 네트워크 코딩된 부호화 패킷을 수신함에 따른 응답으로써 송신 노드로 피드백 데이터를 전송하는 네트워크 코딩(network coding)의 피드백 장치에 있어서, 송신 노드로부터 수신된 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 피드백 데이터 생성부를 포함하는 네트워크 코딩의 피드백 장치를 제공한다.

Description

네트워크 코딩의 피드백 장치 및 데이터 전송 방법{FEEDBACK APPARATUS FOR NETWORK CODING AND METHOD FOR DATA TRANSMISSION OF NETWORK CODING}
본 발명은 네트워크 코딩(network coding)에 관한 것으로, 보다 상세하게는 네트워크 코딩의 피드백(feedback)을 수행하는 네트워크 코딩의 피드백 장치 및 데이터 전송 방법에 관한 것이다.
네트워크 코딩(network coding)은 네트워크상에서의 중간 경유 노드 또는 라우터에서 서로 다른 데이터 패킷을 혼합하여 다음 노드로 전송하는 기법이다. 일반적인 통신망은 서버 노드에서 생성된 패킷이 중간 경유 노드 또는 라우터에서 변경되지 않고 클라이언트 노드까지 전달되지만, 네트워크 코딩 기법을 사용하는 통신망은 중간 경유 노드 또는 라우터에서 서로 다른 패킷의 혼합과 변경을 허용한다.
네트워크 코딩은 예를 들어, 멀티캐스트(multicast) 전송, P2P(Peer-to-Peer) 파일 전송 등의 다양한 분야에 활용될 수 있으며, 주어진 통신망에서 전송량을 증가시키고, 전체 파일의 전송시간을 단축하는 등 통신망의 여러 성능 지표를 향상시키는데 도움을 줄 수 있다. 손실이 있는 네트워크 환경에서 네트워크 코딩을 이용하여 데이터를 전송하는 경우, 손실 복구를 위하여 피드백(feedback)을 필요로 한다.
네트워크 코딩에서 피드백은 수신자 또는 중간 노드가 송신자 또는 상향 노드에게 보내는 데이터 흐름 제어 요청, 즉, 데이터의 전송 요청, 재전송 요청, 전송 중지 요청 등을 의미한다. 네트워크 코딩 시스템에서, 부호화 패킷은 원본 데이터를 인코딩 벡터를 이용하여 네트워크 코딩하여 생성되므로, TCP(Transmission Control Protocol) 등에서와 같이 특정 일련번호(sequence number)를 이용하여 구별하는 것이 불가능하고, 부호화 패킷에 수반된 인코딩 벡터를 이용하여야만 구분될 수 있다.
다수의 패킷에 대하여 네트워크 코딩의 피드백을 수행하기 위해서는, 인코딩 벡터의 집합인 벡터공간(vector space)을 사용해야 하나, 벡터공간을 표현하기 위해서는 매우 많은 비트(bit)를 필요로 하는 문제가 있다. 예를 들어, 네트워크 코딩의 단위인 제너레이션의 크기가 n일 때, 벡터공간을 표현하기 위해서는 O(n2) 바이트를 필요로 한다.
한편, 기존의 네트워크 코딩의 피드백 방식 중, 데이터 전송 양을 줄이기 위해 수신자가 추가로 수신해야 할 부호화 패킷의 개수 정보만을 송신자 또는 상향 노드에게 알려주는 방법이 있으나, 벡터공간을 이용하여 추가로 수신해야 할 데이터가 명시되지 않아, 불필요한 데이터 패킷이 중복 전송될 수 있는 문제점을 갖는다. 새로 수신되는 부호화 패킷의 인코딩 벡터와 기 수신된 패킷들의 인코딩 벡터들 간에 선형 독립의 관계가 성립하지 않는 경우, 새로 수신된 부호화 패킷은 중복 데이터로서 그 효용성이 없기 때문이다.
본 발명은 적은 데이터 전송량에 의하여 네트워크 코딩의 피드백을 수행하도록 하는 네트워크 코딩의 피드백 장치 및 데이터 전송 방법을 제공하는 것을 목적으로 한다.
본 발명이 해결하고자 하는 다른 과제는 네트워크 코딩의 피드백을 효율적으로 수행하면서도 불필요한 부호화 패킷이 중복 전송되는 것을 방지하도록 하는 네트워크 코딩의 피드백 장치 및 데이터 전송 방법을 제공하는 것에 있다.
본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기한 과제를 해결하기 위하여, 본 발명의 일 측면에 따른 네트워크 코딩의 피드백 장치는, 네트워크 코딩된 부호화 패킷을 수신함에 따른 응답으로써 송신 노드로 피드백 데이터를 전송하는 네트워크 코딩(network coding)의 피드백 장치에 있어서, 상기 송신 노드로부터 수신된 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 피드백 데이터 생성부를 포함한다.
본 발명의 일 실시 예로, 상기 네트워크 코딩의 피드백 장치는, 상기 피드백 데이터를 상기 송신 노드로 전송하는 전송부를 더 포함할 수 있다.
본 발명의 일 실시 예로, 상기 피드백 데이터 생성부는, 상기 송신 노드로부터 수신된 복수 개의 부호화 패킷으로부터 복수 개의 인코딩 벡터를 추출하고, 상기 복수 개의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 행렬 생성부; 그리고 상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하는 행렬 변환부를 포함할 수 있다.
본 발명의 일 실시 예로, 상기 피드백 데이터 생성부는, 상기 기약 행 사다리꼴 행렬의 원소들 중에서 0을 제외한 원소만 나열되도록 압축하여 상기 피드백 데이터를 생성하는 압축부를 더 포함할 수 있다.
본 발명의 일 실시 예로, 상기 압축부는, 상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성할 수 있다.
본 발명의 일 실시 예로, 상기 피드백 데이터 생성부는, 상기 기약 행 사다리꼴 행렬의 마지막 행 첫 번째 열의 원소와 첫 번째 행 마지막 열의 원소 간에서 지그재그(zigzag) 패턴으로 원소들을 나열하여 압축함으로써, 상기 피드백 데이터를 생성하는 압축부를 더 포함할 수 있다.
본 발명의 일 실시 예로, 상기 압축부는, 상기 기약 행 사다리꼴 행렬에서 0이 연속으로 나열되어 있는 개수를 기록하여 압축함으로써, 상기 피드백 데이터를 생성할 수 있다.
본 발명의 일 실시 예로, 상기 행렬 변환부는, 상기 인코딩 행렬로부터 생성된(spaned) 부분공간(subspace)의 행렬을 상기 기약 행 사다리꼴 행렬로 변환할 수 있다.
본 발명의 일 실시 예로, 상기 행렬 변환부는, 가우시안 소거법을 이용하여 상기 부분공간의 행렬을 상기 기약 행 사다리꼴 행렬로 변환할 수 있다.
본 발명의 일 실시 예로, 상기 복수 개의 부호화 패킷은, 같은 제너레이션에 속하는 복수 개의 원본 데이터로부터 상기 복수 개의 인코딩 벡터를 이용하여 네트워크 코딩되어 상기 송신 노드로부터 수신된 것일 수 있다.
상기한 과제를 해결하기 위하여, 본 발명의 다른 일 측면에 따른 네트워크 코딩 시스템은, 같은 제너레이션에 속하는 복수 개의 원본 데이터를 서로 다른 인코딩 벡터를 이용하여 네트워크 코딩하여 복수 개의 부호화 패킷을 생성하는 송신 노드; 그리고 상기 송신 노드로부터 상기 복수 개의 부호화 패킷 중의 적어도 하나의 부호화 패킷을 수신하는 수신 노드를 포함하며, 상기 수신 노드는, 상기 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 피드백 데이터 생성부; 그리고 상기 피드백 데이터를 상기 송신 노드로 전송하는 전송부를 포함한다.
본 발명의 일 실시 예로, 상기 피드백 데이터 생성부는, 상기 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 행렬 생성부; 상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하는 행렬 변환부; 그리고 상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성하는 압축부를 포함할 수 있다.
본 발명의 일 실시 예로, 상기 송신 노드는, 상기 수신 노드로부터 수신된 상기 피드백 데이터로부터 상기 기약 행 사다리꼴 행렬을 복원하고, 상기 복수 개의 부호화 패킷 중에서 상기 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷만을 상기 수신 노드로 재전송할 수 있다.
상기한 과제를 해결하기 위한 본 발명의 다른 일 측면에 따르면, 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 제1 단말을 포함하는 네트워크 코딩의 단말이 제공된다.
본 발명의 일 실시 예로, 상기 제1 단말은, 상기 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하며, 상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성할 수 있다.
본 발명의 일 실시 예로, 상기 제1 단말은 상기 피드백 데이터를 제2 단말로 전송하며, 상기 제2 단말은, 상기 제1 단말로부터 수신된 상기 피드백 데이터로부터 상기 기약 행 사다리꼴 행렬을 복원하고, 복수 개의 부호화 패킷들 중에서 상기 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷만을 상기 제1 단말로 전송할 수 있다.
상기한 과제를 해결하기 위한 본 발명의 다른 일 측면에 따르면, 네트워크 코딩된 부호화 패킷을 송신하는 송신 노드와, 상기 부호화 패킷을 수신하는 복수 개의 수신 노드를 포함하는 네트워크 코딩(network coding)의 데이터 전송 시스템에 있어서, 각 수신 노드는, 상기 송신 노드로부터 부호화 패킷을 수신함에 따른 응답으로써 수신된 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하여 상기 송신 노드로 전송하는 피드백 데이터 생성부를 포함하며, 상기 송신 노드는, 상기 복수 개의 수신 노드로부터 전송받은 피드백 데이터들의 상기 기약 행 사다리꼴 행렬을 병합하여 병합된 행렬을 생성하고, 상기 병합된 행렬에 대한 기약 행 사다리꼴 행렬을 생성하며, 생성한 기약 행 사다리꼴 행렬을 이용하여 병합된 행렬의 영공간과 직교하지 않는 벡터를 인코딩 벡터로 갖는 부호화 패킷을 상기 복수 개의 수신 노드로 전송하는 네트워크 코딩의 데이터 전송 시스템이 제공된다.
상기한 과제를 해결하기 위하여, 본 발명의 또 다른 일 측면에 따른 네트워크 코딩의 데이터 전송 방법은, 제1 노드가 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 단계; 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하는 단계; 그리고 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 단계를 포함한다.
본 발명의 일 실시 예로, 상기 네트워크 코딩의 데이터 전송 방법은, 상기 제1 노드가, 상기 피드백 데이터를 제2 노드로 전송하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예로, 상기 피드백 데이터를 생성하는 단계는, 상기 적어도 하나의 부호화 패킷으로부터 적어도 하나의 인코딩 벡터를 추출하고, 상기 적어도 하나의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 단계; 상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하는 단계; 그리고 상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시 예로, 상기 피드백 데이터를 생성하는 단계는, 상기 제2 노드가, 상기 제1 노드로부터 수신된 상기 피드백 데이터로부터 상기 기약 행 사다리꼴 행렬을 복원하는 단계; 그리고 상기 제2 노드가, 상기 복수 개의 부호화 패킷 중에서 상기 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷을 상기 제1 노드로 전송하는 단계를 더 포함할 수 있다.
상기한 과제를 해결하기 위하여, 본 발명의 또 다른 일 측면에 따른 네트워크 코딩의 데이터 전송 방법은, 복수 개의 수신 노드가, 송신 노드로부터 부호화 패킷을 수신함에 따른 응답으로써 수신된 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 단계; 각 수신 노드가, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하고, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하여 상기 송신 노드로 전송하는 단계; 상기 송신 노드가, 상기 복수 개의 수신 노드로부터 전송받은 피드백 데이터들의 상기 기약 행 사다리꼴 행렬을 병합하여 병합된 행렬을 생성하는 단계; 및 상기 송신 노드가, 상기 병합된 행렬에 대한 기약 행 사다리꼴 행렬을 생성하고, 생성한 기약 행 사다리꼴 행렬을 이용하여 상기 병합된 행렬의 영공간과 직교하지 않는 벡터를 인코딩 벡터로 갖는 부호화 패킷을 상기 복수 개의 수신 노드로 전송하는 단계를 포함한다.
본 발명의 실시 예에 의하면, 적은 데이터 비트에 의하여 네트워크 코딩의 피드백을 수행할 수 있다.
또한, 본 발명의 실시 예에 의하면, 불필요한 데이터 패킷이 중복 전송되는 것을 방지하면서 네트워크 코딩의 피드백을 효율적으로 수행할 수 있다.
본 발명의 효과는 상술한 효과들로 제한되지 않는다. 언급되지 않은 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 네트워크 코딩을 이용하여 데이터를 전송하는 방법을 예시적으로 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시 예에 따른 네트워크 코딩 시스템의 구성도이다.
도 3은 원본 데이터들을 제너레이션 단위로 네트워크 코딩하는 것을 설명하기 위한 도면이다.
도 4는 네트워크 코딩의 부호화 패킷을 예시한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 네트워크 코딩의 피드백 장치를 구성하는 피드백 데이터 생성부의 예시적인 구성도이다.
도 6은 본 발명의 일 실시 예에 따른 네트워크 코딩 시스템을 구성하는 부호화 장치의 예시적인 구성도이다.
도 7은 도 6에 도시된 피드백 데이터 분석부의 예시적인 구성도이다.
도 8 내지 도 9는 본 발명의 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법의 예시적인 흐름도이다.
도 10은 본 발명의 다른 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법을 예시적으로 설명하기 위한 개략도이다.
도 11은 본 발명의 또 다른 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법을 예시적으로 설명하기 위한 개략도이다.
도 11은 본 발명의 또 다른 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법을 예시적으로 설명하기 위한 개략도이다.
도 12 내지 도 15는 본 발명의 실시 예에 따른 네트워크 코딩의 데이터 전송 장치를 구성하는 압축부에서 행렬을 압축하여 전송하는 방식을 설명하기 위한 도면이다.
본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 갖는다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.
본 발명의 실시 예에서 설명의 편의를 위하여 구성요소가 예시적으로 단수로 나타나 있다 하더라도, 이에 의하여 구성요소가 복수 개로 제공되는 것이 배제되지 않을 것이다. 본 발명의 도면에서 동일하거나 상응하는 구성요소에 대하여는 가급적 동일한 도면부호가 사용된다. 본 발명의 실시 예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있는 경우, 그 상세한 설명은 생략될 수 있다.
한편, 본 명세서에서 사용되는 '~부'의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 일 예로, '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
일 예로, '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. '~부'에서 제공되는 기능은 다수의 '~부'들에 의하여 분리되어 수행되거나, 다른 '~부'와 통합되는 형태로 수행될 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩의 피드백 장치는 송신 노드로부터 수신된 적어도 하나의 부호화 패킷(coded packet)의 인코딩 벡터(encoding vector)를 누적하여 인코딩 행렬(encoding matrix)을 생성하고, 인코딩 행렬을 기약 행 사다리꼴 행렬(reduced row echelon form matrix)로 변환하며, 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터(feedback data)를 생성하는 피드백 데이터 생성부와, 생성된 피드백 데이터를 송신 노드로 전송하는 전송부를 포함한다. 본 발명의 실시 예에 의하면, 적은 데이터 양의 피드백 데이터를 전송하여 네트워크 코딩의 피드백을 수행하면서도, 불필요한 부호화 패킷이 중복 전송되는 것을 방지할 수 있다.
네트워크 코딩(network coding)은 발신지 노드와 목적지 노드 사이의 중간 경유 노드 또는 라우터 등에서 서로 다른 데이터 패킷을 혼합하여 전송하는 기법이다. 도 1은 네트워크 코딩을 이용하여 데이터를 전송하는 방법을 예시적으로 설명하기 위한 개략도이다. 도 1을 참조하면, 서로 다른 발신지 노드(1a,1b,1c)로부터 전송된 원본 데이터들(p1,p2,pn)은 중간 경유 노드(2)에서 네트워크 코딩되고, 네트워크 코딩된 부호화 패킷들(c1,c2,cn)은 중간 경유 노드(2)로부터 목적지 노드(3)로 전송된다. 목적지 노드(3)는 중간 경유 노드(2)로부터 전송된 부호화 패킷들(c1,c2,cn)의 부호화 데이터들과 인코딩 벡터(encoding vector)들을 이용하여, 원본 데이터들(p1,p2,pn)을 복원할 수 있다.
이러한 네트워크 코딩 기법은 예를 들어, 멀티캐스트(multicast) 전송, P2P(Peer-to-Peer) 파일 전송 등의 다양한 데이터 통신 분야에 활용될 수 있다. 네트워크 코딩을 이용한 P2P 방식의 파일 전송 시스템을 예로 들면, 클라이언트에 해당하는 목적지 노드(3)에서는 서버에 해당하는 여러 발신지 노드(1a,1b,1c)로부터 여러 경로를 통해 수집되어 전송된 부호화 패킷들로부터, 원본 데이터에 해당하는 조각 파일들을 복구함으로써 하나의 완성된 원본 파일을 얻을 수 있다. 네트워크 코딩 기법은 주어진 통신망에서 전송량을 증가시키고, 전체 파일의 전송시간을 단축하는데 기여할 수 있다.
손실이 있는 네트워크 환경에서 네트워크 코딩을 이용하여 데이터를 전송하는 경우, 손실 복구를 위하여 피드백(feedback)을 필요로 한다. 네트워크 코딩에서의 피드백은 수신자 또는 중간 노드가 송신자 또는 상향 노드에게 보내는 데이터 흐름 제어 요청, 즉, 데이터의 전송 요청, 전송 중지 요청, 재전송 요청 등을 의미한다. 네트워크 코딩으로 부호화된 데이터 패킷은 인코딩 벡터를 이용하기 때문에 TCP 등에서와 같이 특정 일련번호(sequence number)를 이용하여 구분이 불가능하고, 데이터 패킷에 수반된 인코딩 벡터를 이용하여 구분될 수 있다.
도 1의 경우, 수신 노드에 해당하는 목적지 노드(3)는 송신 노드에 해당하는 중간 경유 노드(2)로 피드백 데이터(PD)를 송신하여 피드백을 수행한다. 중간 경유 노드(2)는 피드백 데이터(PD)를 분석하고, 손실된 부호화 패킷이 있으면 목적지 노드(3)로 재전송한다. 다수의 부호화 패킷에 대해 피드백을 수행하기 위하여 벡터의 집합인 벡터공간(vector space)을 사용해야 하는데, 기존의 네트워크 코딩의 피드백 방식은 다수의 인코딩 벡터를 반영하여 벡터공간을 표현하기 위하여 높은 비트(bit)를 갖는 피드백 데이터를 송신한다. 예를 들어, 제너레이션(generation)의 크기가 k일 때, 벡터공간을 표현하기 위해서는 O(k2) 바이트를 필요로 한다.
기존의 네트워크 코딩의 피드백 방식 중 수신자가 추가로 수신해야 할 부호화 패킷의 개수 정보만을 송신자 또는 상향 노드에게 알려주는 방법은 피드백 데이터의 바이트 수를 낮추는데 기여할 수 있지만, 벡터공간을 이용하여 추가로 수신해야 할 부호화 데이터를 찾을 수 없으므로, 불필요한 부호화 데이터를 반복하여 전송해야 하는 중복 전송의 단점을 갖는다. 이러한 기존의 네트워크 코딩의 피드백 방식의 문제점은 전체 네트워크 코딩의 성능을 저하시키는 요인이 될 수 있다. 이에 따라, 이하에서 설명되는 본 발명의 실시 예는 불필요한 데이터 패킷이 중복 전송되는 것을 방지하는 것과 동시에, 적은 데이터 비트에 의하여 네트워크 코딩의 피드백을 수행할 수 있는 네트워크 코딩의 피드백 장치를 제시한다.
도 2는 본 발명의 일 실시 예에 따른 네트워크 코딩 시스템의 구성도이다. 도 2를 참조하면, 본 발명의 일 실시 예에 따른 네트워크 코딩 시스템(10)은 부호화 장치(20)와, 복호화 장치(30)를 포함한다. 부호화 장치(20)는 예를 들어, 도 1에 도시된 중간 경유 노드(2) 측의 단말에 구비될 수 있다. 복호화 장치(30)는 예를 들어, 도 1에 도시된 목적지 노드(3) 측의 단말에 구비될 수 있다. 단말은 예시적으로, 컴퓨터, 노트북, 스마트폰, 스마트패드 또는 라우터 등을 포함할 수 있으나, 이에 제한되는 것은 아니다. 단말은 고정식 단말일 수도 있고, 이동식 단말일 수도 있다.
부호화 장치(20)는 파일을 구성하는 서로 다른 경로를 통하여 수집된 원본 데이터들(p1,p2,p3,pn)을 도 3에 도시한 바와 같은 제너레이션(generation) 단위로 네트워크 코딩할 수 있다. 이때, 제너레이션은 하나의 단위로서 함께 부호화되거나 복호화되는 원본 데이터들의 하나의 집합을 의미할 수 있다. 예를 들어, 중간 경유 노드(2)와 같은 송신 노드는 아래의 수식 1과 같이, n개의 원본 데이터 p1, p2,…, pn 를 각 원본 데이터마다 그에 대응하는 인코딩 벡터 e1, e2,…, en 를 이용하여 부호화함으로써, n개의 부호화 데이터 c1, c2, …, cn 을 만들 수 있다.
[수식 1]
Figure 112013072960451-pat00001
각 원본 데이터가 B 바이트(byte)의 크기를 갖는 경우, 모든 부호화 데이터 ci(i=1,2,...,n)는 바이트 단위의 원소들을 갖는 B 크기의 벡터(vector)로 나타낼 수 있다. 이때, 각 인코딩 벡터의 성분들 em k (1≤k≤n, 1≤m≤n)은 예를 들어, 랜덤 선형 네트워크 코딩(Random Linear Network Coding) 방식에 따라, 중간 경유 노드(2) 등의 생성지에서 유한 필드에 속하는 임의의 값으로 설정될 수 있다.
도 4는 네트워크 코딩의 부호화 패킷을 예시한 도면이다. 부호화 패킷의 헤더에는 인코딩 벡터가 포함된다. 제너레이션 크기가 n일 경우, 도 4에 도시된 바와 같이, 전체 n개의 부호화 패킷들 중 k번째(k=1,2,...,n) 부호화 패킷은 n 크기를 갖는 인코딩 벡터 ek 와, k번째 부호화 데이터 ck 를 포함할 수 있다. 같은 제너레이션에 속하는 원본 데이터들 p1, p2, …, pn 중 k번째 원본 데이터 pk 의 인코딩 벡터는 ek 행 벡터의 1 내지 n열의 성분이 임의의 값으로 설정될 수 있다.
다시 도 2를 참조하면, 중간 경유 노드(2)의 부호화 장치(20)에서 원본 데이터들로부터 네트워크 코딩된 부호화 데이터(coded data)와, 인코딩 벡터(encoding vector)를 포함하는 부호화 패킷(coded packet)은 유선 또는 무선 통신망을 통해 목적지 노드(3)의 복호화 장치(30)로 전송될 수 있다. 이때, 인코딩 벡터는 원본 데이터들의 네트워크 코딩에 사용된 선형 조합을 나타내는 계수들의 벡터를 의미할 수 있다.
복호화 장치(30)는 피드백 데이터 생성부(31), 전송부(32), 메모리(33), 그리고 데이터 복원부(34)를 포함한다. 피드백 데이터 생성부(31)와 전송부(32)는 네트워크 코딩의 피드백 장치를 구성한다. 피드백 데이터 생성부(31)는 부호화 장치(20)로부터 네트워크 코딩된 부호화 패킷들을 수신함에 따라, 피드백 데이터(feedback data)를 생성한다. 피드백 데이터의 비트 수를 줄이면서 부호화 패킷의 중복 전송을 방지할 수 있도록, 피드백 데이터 생성부(31)는 부호화 패킷들의 인코딩 벡터들을 누적하여 인코딩 행렬(encoding matrix)을 생성하고, 생성한 인코딩 행렬을 기약 행 사다리꼴 행렬(reduced row echelon form matrix)로 변환하며, 변환한 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성한다.
전송부(32)는 피드백 데이터 생성부(31)에서 생성한 피드백 데이터를 부호화 장치(20)로 피드백 전송한다. 부호화 장치(20)는 피드백 데이터를 분석하여 손실된 부호화 패킷을 복호화 장치(30)로 재전송한다. 메모리(33)는 부호화 장치(20)로부터 기전송된 부호화 패킷들과, 피드백 데이터에 따라 재전송된 부호화 패킷을 저장한다. 데이터 복원부(34)는 부호화 장치(20)로부터 네트워크 코딩되어 전송된 부호화 패킷들의 부호화 데이터들 및 인코딩 벡터들을 이용하여, 부호화 패킷들로부터 원본 데이터들을 복원한다.
원본 데이터(원본 프레임)의 집합을 P = [p1,p2,p3,...,pn]T, 인코딩 벡터의 집합을 E = [e1,e2,e3,...,en]T, 그리고 부호화 패킷의 집합을 C = [c1,c2,c3,...,cn]T라 하면, 이들 간에는 C = E·P의 관계가 성립한다. 이때, 데이터 복원부(34)는 C와 함께 E를 수신하고, 예를 들어, 가우스-조던 소거법(Gauss-Jordan Elimination)을 이용하여 P = E -1·C를 계산함으로써, 원본 데이터 P를 복원할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 네트워크 코딩의 피드백 장치를 구성하는 피드백 데이터 생성부의 예시적인 구성도이다. 도 4 내지 도 5를 참조하면, 피드백 데이터 생성부(31)는 행렬 생성부(311), 행렬 변환부(312), 그리고 압축부(313)를 포함한다.
행렬 생성부(311)는 부호화 장치(20)로부터 수신된 부호화 패킷들로부터 인코딩 벡터들을 추출하고, 인코딩 벡터들을 누적하여 인코딩 행렬을 생성한다. 행렬 변환부(312)는 행렬 생성부(311)에 의해 생성된 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축한다. 일 실시 예로, 행렬 변환부(312)는 인코딩 행렬로부터 생성된(spaned) 부분공간(subspace)의 행렬을 가우시안 소거법(Gaussian Elimination)을 이용하여 기약 행 사다리꼴 행렬로 변환할 수 있다.
기약 행 사다리꼴 행렬은 아래의 조건들 (i) 내지 (iv)를 만족하는 행렬이다.
(i) 성분이 모두 0인 행이 존재하면, 그 행은 행렬의 맨 아래에 위치한다.
(ii) 각 행에서 처음으로 나타나는 0이 아닌 성분은 1이다. 이때, 이 1을 그 행의 선행 성분(leading entry)이라고 한다.
(iii) 행과 행 모두에 선행 성분이 존재하면 행의 선행 성분은 행의 선행 성분보다 오른쪽에 위치한다.
(iv) 어떤 행의 선행 성분을 포함하는 열(column)의 다른 성분은 모두 0이다.
압축부(313)는 행렬 변환부(312)에 의해 변환된 기약 행 사다리꼴 행렬의 원소들 중에서 0을 제외한 원소만 나열되도록 압축하여 피드백 데이터를 생성한다. 일 실시 예로, 압축부(313)는 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 0이 아닌 원소들을 나열하여 피드백 데이터를 생성할 수 있다. 피드백 데이터 생성부(31)에 의해 생성된 피드백 데이터는 전송부(32)에 의하여 부호화 장치(20)로 피드백 전송된다. 부호화 장치(20)는 피드백 데이터를 분석하여 복호화 장치(30)로 전송되는 과정에서 손실된 부호화 패킷을 재전송한다.
도 6은 본 발명의 일 실시 예에 따른 네트워크 코딩 시스템을 구성하는 부호화 장치의 예시적인 구성도이다. 도 6을 참조하면, 부호화 장치(20)는 데이터 코딩부(21), 송수신부(22), 저장부(24), 그리고 피드백 데이터 분석부(23)를 포함한다. 데이터 코딩부(21)는 원본 데이터들을 인코딩 벡터들을 이용하여 네트워크 코딩한다. 송수신부(22)는 네트워크 코딩된 부호화 패킷들을 복호화 장치(30)로 전송하고, 복호화 장치(30)로부터 피드백 데이터를 수신한다. 피드백 데이터 분석부(23)는 복호화 장치(30)로부터 전송받은 피드백 데이터를 분석하여, 손실된 부호화 패킷을 재전송한다. 저장부(24)는 네트워크 코딩된 부호화 패킷과 인코딩 벡터를 저장한다.
도 7은 도 6에 도시된 피드백 데이터 분석부의 예시적인 구성도이다. 도 6 내지 도 7을 참조하면, 피드백 데이터 분석부(23)는 행렬 복원부(231)와, 재전송 패킷 판단부(232)를 포함한다. 행렬 복원부(231)는 복호화 장치(30)로부터 수신된 피드백 데이터로부터 기약 행 사다리꼴 행렬을 복원한다. 재전송 패킷 판단부(232)는 저장부(24)에 저장된 부호화 패킷들 중에서 행렬 복원부(231)에 의해 복원된 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교(orthogonal)하지 않는 인코딩 벡터를 이용하여 네트워크 코딩된 부호화 패킷을 검출한다. 이러한 부호화 패킷은 송수신부(22)를 통해 복호화 장치(30)로 재전송된다.
피드백 데이터에 인코딩 행렬의 전체 벡터공간을 포함하여 전송하는 경우 큰 오버헤드(overhead)가 발생하지만, 본 발명의 실시 예는 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축 표현함으로써, 적은 량의 정보로 필요한 데이터를 정확히 표현할 수 있다. 예를 들어, 수신 노드 u가 수신하여 저장하고 있는 인코딩 벡터들을 누적하여 만들어진 인코딩 행렬을 A라 하고, 인코딩 행렬 A로부터 생성된(spaned) 부분공간(subspace)을 S(A)라 하고, S(A)의 영공간(nullspace)을 N(A)라 할 때, 수신 노드 u에게 혁신적인(innovative) 부호화 패킷, 다시 말하면, 수신 노드 u가 이미 가지고 있는 부호화 패킷과 중복되지 않은 새로운 부호화 패킷을 재전송(또는 전송)하기 위하여, 송신 노드 v는 인코딩 벡터가 N(A)와 직교하지 않는 부호화 패킷을 수신 노드 u로 보내야 한다.
이를 위하여, 수신 노드 u는 인코딩 행렬 A의 부분공간 S(A)으로부터 기약 행 사다리꼴 행렬 RREF (A)을 생성하고, RREF (A)를 이용하여 피드백 데이터를 생성하여 송신 노드 v에게 전송하여, 손실된 부호화 패킷이 있는 경우, 재전송을 요구한다. 만일, 본 발명의 실시 예와 달리, 수신 노드 u가 송신 노드 v에게 기약 ㅎ해행 사다리꼴 행렬 RREF (A)를 알려주지 않고, 단지 추가적인 패킷의 전송만 요구할 경우, 송신 노드 v가 S(A)에 속한 인코딩 벡터를 갖는 부호화 패킷을 전송할 수 있다. 이러한 경우 수신 노드 u로 송신된 부호화 패킷들의 인코딩 벡터들의 선형 독립성이 보장되지 않아 원본 데이터의 복원 또는 복호화가 불가능할 수 있다. 즉, 수신 노드 u가 새로운 부호화 패킷을 추가적으로 수신하여도 도움되지 않는 부호화 패킷을 전송하는 경우, 불필요하고 낭비적인 전송을 초래할 수 있다.
본 발명의 실시 예에 의하면, 기약 행 사다리꼴 행렬 RREF (A)는 이의 원소들의 많은 부분이 0의 값을 가질 뿐 아니라, RREF (A)의 전송시에 0이 아닌 원소들만 나열하여 전송하면, 네트워크 코딩의 피드백 과정에서 실제 전송되는 정보의 양이 크게 줄어, 인코딩 행렬 A 자체를 전송하는 방법보다 효율적인 통신이 가능하다. 또한, 기약 행 사다리꼴 행렬 RREF (A)의 영공간 N( RREF (A))과 인코딩 행렬 A의 영공간 N(A)이 일치하므로, RREF (A)를 포함하는 피드백 데이터를 전송하여, 인코딩 행렬 A를 전송한 것과 동일한 효과를 얻을 수 있다.
송신 노드 v는 수신 노드 u에게 혁신적인(innovative) 부호화 패킷을 전송하기 위해 수신 노드 u로부터 받은 RREF (A)를 이용하여, 인코딩 행렬 A의 영공간(nullspace)인 N(A)를 계산하고, N(A)와 직교하지 않는 인코딩 벡터 갖는 부호화 패킷을 재전송한다. RREF (A)의 상향 노드로의 피드백 필요성이 있을 때, 하위 노드에게 전송하는 데이터 패킷에 실어 보냄으로써(piggyback), 무비용의 피드백을 달성할 수 있다.
도 8 내지 도 9는 본 발명의 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법의 예시적인 흐름도이다. 도 2, 도 5, 도 8 내지 도 9를 참조하면, 부호화 장치(20)는 파일을 구성하는 서로 다른 경로를 통하여 수집된 원본 데이터들(p1,p2,p3,pn)을 제너레이션(generation) 단위로 네트워크 코딩하여 부호화 패킷들을 생성하고, 생성한 부호화 패킷들을 유선 또는 무선 통신망을 통해 제2 노드, 즉 목적지 노드(3)의 복호화 장치(30)로 전송한다.
단계 S81에서, 행렬 생성부(311)는 부호화 패킷들의 인코딩 벡터들을 누적하여 인코딩 행렬(encoding matrix)을 생성한다. 단계 S82에서, 행렬 변환부(312)는 인코딩 행렬을 기약 행 사다리꼴 행렬(reduced row echelon form matrix)로 변환한다. 일 실시 예로, 행렬 변환부(312)는 인코딩 행렬로부터 생성된(spaned) 부분공간(subspace)의 행렬을 가우시안 소거법을 이용하여 기약 행 사다리꼴 행렬로 변환할 수 있다.
단계 S83에서, 압축부(313)는 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성한다. 일 실시 예로, 압축부(313)는 행렬 변환부(312)에 의해 변환된 기약 행 사다리꼴 행렬의 원소들 중에서 0을 제외한 원소만 나열되도록 압축하여 피드백 데이터를 생성한다. 일 실시 예로, 압축부(313)는 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 0이 아닌 원소들을 나열하여 피드백 데이터를 생성할 수 있다. 단계 S84에서, 전송부(32)는 피드백 데이터를 제2 노드, 즉 중간 경유 노드(2)의 부호화 장치(20)로 피드백 전송한다.
단계 S91에서, 피드백 데이터 분석부(23)의 행렬 복원부(231)는 복호화 장치(30)로부터 수신된 피드백 데이터로부터 기약 행 사다리꼴 행렬을 복원한다. 단계 S92에서, 재전송 패킷 판단부(232)는 저장부(24)에 저장된 부호화 패킷들 중에서 행렬 복원부(231)에 의해 복원된 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷을 검출한다. 단계 S93에서, 부호화 장치(20)는 손실된 부호화 패킷을 송수신부(22)를 통해 복호화 장치(30)로 재전송한다. 단계 S94에서, 복호화 장치(30)의 데이터 복원부(34)는 부호화 장치(20)로부터 수신한 부호화 패킷들로부터 원본 데이터를 복원한다.
도 8에 도시된 단계 S81 내지 단계 S83, 도 9에 도시된 단계 S91 내지 단계 S92, 단계 S94는 예를 들어, 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등과 같은 불휘발성 메모리, 플로피 디스크, 하드 디스크 또는 광학적 판독 매체(예를 들어, 시디롬, 디브이디 등)과 같은 형태의 저장매체일 수 있으나, 반드시 이에 제한되는 것은 아니다.
예를 들어, 수신 노드 u가 수신하여 저장하고 있는 인코딩 벡터들을 누적하여 만들어진 인코딩 행렬을 A라 하고, 인코딩 행렬 A로부터 생성된(spaned) 부분공간(subspace)을 S(A)라 하고, S(A)의 영공간(nullspace)을 N(A)라 할 때, 수신 노드 u는 S(A)의 기약 행 사다리꼴 행렬 RREF (A)에 상응하는 피드백 데이터를 생성하며, 피드백 데이터를 송신 노드 v에게 전송하여 손실된 부호화 패킷이 있는 경우 이의 재전송을 요구한다. 여기서, 인코딩 행렬 A의 벡터공간의 부분집합 역시 벡터공간일 때, 이러한 벡터공간을 부분공간 S(A)라고 할 수 있다.
송신 노드 v가 수신 노드 u에게 4개의 부호화 패킷을 네트워크 코딩, 예를 들어, 랜덤 선형 네트워크 코딩(RLNC; Random Linear Network Coding) 기법을 이용하여 전송할 때, 전송 중의 오류 등의 이유로 수신 노드 u가 송신 노드 v로부터 3개의 부호화 패킷을 받은 경우, 수신 노드 u는 3개의 부호화 패킷의 인코딩 벡터 (1, 2, 1, 1), (1, 2, 2, -1), (2, 4, 0, 5)를 누적하여, 아래의 수식 2와 같은 인코딩 행렬 A를 생성한다. 이때, 각 부호화 패킷의 인코딩 벡터는 하나의 행(row)을 이루게 된다.
[수식 2]
Figure 112013072960451-pat00002
수신 노드 u는 인코딩 행렬 A를 아래의 수식 3과 같은 기약 행 사다리꼴 행렬로 변환한다.
[수식 3]
Figure 112013072960451-pat00003
수신 노드 u는 송신 노드 v에게 추가적인 하나의 부호화 패킷의 전송을 요구하며, 기약 행 사다리꼴 행렬 RREF (A)에 대응하는 피드백 데이터를 전송한다. RREF(A)를 전송할 때, 0인 원소를 제외하고 전송하여, 네트워크 코딩의 피드백 과정에서 실제 전송되는 데이터 양을 최소화할 수 있다.
송신 노드 v는 수신 노드 u에게 혁신적인(innovative) 부호화 패킷, 즉 수신 노드 u가 이미 가지고 있는 부호화 패킷과 중복되지 않는 새로운 부호화 패킷을 전송하기 위해, 수신 노드 u로부터 받은 기약 행 사다리꼴 행렬 RREF (A)를 이용하여 RREF(A)의 영공간(nullspace) N( RREF (A))를 계산하고 N( RREF (A))와 직교하지 않는 벡터, 예를 들어, (-2, 1, 0, 0)를 인코딩 벡터로 갖는 부호화 패킷을 수신 노드 u에게 전송한다. 여기서, 영공간 N( RREF (A))RREF (A)·X = O 를 만족하는 행렬 X를 의미할 수 있다.
위의 예에서, N(A)는 {(-2, 1, 0, 0)T}를 기저(basis)로 갖는 공간이다. N(RREF(A))N(A)는 일치하므로, 피드백 데이터로써 RREF (A)를 전송하는 것은 인코딩 벡터 A를 전송하는 것과 동일한 효과를 갖는 것과 동시에, 실제 전송되는 정보의 량이 적기 때문에 효율적인 피드백이 가능하다. 만일, 수신 노드 u가 송신 노드 v에게, RREF (A)를 알려주지 않고 단지 추가적인 패킷의 전송만 요구할 경우, 송신 노드 v가 (2, 4, 3, 0)과 같이, S(A)에 속한 인코딩 벡터를 갖는 부호화 패킷을 전송할 가능성이 있다. 이러한 부호화 패킷은 수신 노드 u가 추가적으로 수신하여도 도움이 되지 않는 패킷이므로, 불필요한 그리고 낭비적인 전송 결과를 초래한다. 즉, 수신한 총 4개의 인코딩 벡터들이 선형 독립이지 않기 때문에, 원본 데이터의 복원 또는 복호화가 불가능하다.
송신 노드 v는 수신 노드 u에게 N(A)에 포함되는 부호화 패킷을 송신하며, 수신 노드 u는 송신 노드 v로부터 도움이 되는 추가적인 패킷, 즉 혁신적인 부호화 패킷을 수신할 수 있다. 피드백 데이터에 전체 벡터공간을 포함하여 전송하는 경우 큰 오버헤드가 발생하지만, 본 발명의 실시 예는 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축 표현함으로써, 적은 량의 정보로 필요한 데이터를 정확히 표현할 수 있다.
만일, 본 발명의 실시 예와 달리, 수신 노드 u가 송신 노드 v에게 RREF (A)를 알려주지 않고, 단지 추가적인 패킷의 전송만 요구할 경우, 송신 노드 v가 S(A)에 속한 인코딩 벡터를 갖는 부호화 패킷을 전송할 수 있고, 부호화 패킷들의 인코딩 벡터들의 선형 독립이 보장되지 않아 원본 데이터의 복원 또는 복호화가 불가능할 수 있으며, 수신 노드 u가 새로운 부호화 패킷을 추가적으로 수신하여도 도움되지 않는 패킷에 해당할 수 있어, 불필요한 그리고 낭비적인 전송이 될 수 있다.
RREF (A)의 영공간 N( RREF (A))과 인코딩 행렬 A의 영공간 N(A)는 일치하므로 RREF(A)를 포함하는 피드백 데이터를 전송하는 것은, 인코딩 행렬 A를 전송한 것과 동일한 효과를 가질 뿐 아니라, 실제 전송되는 정보의 량을 줄여 보다 효율적인 방식으로 피드백이 수행될 수 있다. RREF (A)는 이의 원소들의 많은 부분이 0의 값을 가지므로, RREF (A)의 전송시 0인 원소를 제외하고 전송하면, 실제 전송되는 정보의 양이 크게 줄어, 인코딩 행렬 A 자체를 전송하는 방법보다 효율적인 데이터 전송이 가능하다. RREF (A)의 상향 노드로의 피드백 필요성이 있을 때, 하위 노드에게 전송하는 데이터 패킷에 실어 보냄으로써(piggyback), 무비용의 피드백을 달성할 수 있다.
도 10은 본 발명의 다른 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법을 예시적으로 설명하기 위한 개략도이다. 도 10을 참조하면, 단계 S11과 단계 S12에서, 송신 노드(2)는 제1 노드(3a)와 제2 노드(3b)로 부호화 패킷들을 전송한다. 제1 노드(3a)는 송신 노드(2)로부터 전송받은 부호화 패킷들의 인코딩 벡터들을 이용하여 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하고, 이로부터 피드백 데이터를 생성하여 제2 노드(3b)로 전송한다.
제2 노드(3b)는 피드백 데이터에 대응하여 제1 노드(3a)로부터 전송받은 피드백 데이터로부터 기약 행 사다리꼴 행렬을 복원하고, 송신 노드(2)로부터 전송받은 부호화 패킷들 중에서 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩된 부호화 패킷을 검출한다. 단계 S14에서, 제2 노드(3b)는 부호화 패킷을 제1 노드(3a)로 전송한다. 도 10에 도시된 실시 예에 의하면, 송신 노드(2)로부터 손실된 부호화 패킷을 다른 수신 노드(3b)로부터 전송받을 수 있다. 제1 노드(3a)는 송신 노드(2)로부터 전송받은 부호화 패킷들과, 제2 노드(3b)로부터 전송받은 부호화 패킷으로부터 원본 데이터를 복원한다.
도 11은 본 발명의 또 다른 일 실시 예에 따른 네트워크 코딩의 데이터 전송 방법을 예시적으로 설명하기 위한 개략도이다. 도 11에 도시된 바와 같이, 본 발명의 실시 예에 따른 네트워크 코딩의 데이터 전송 방법은 일-대-일 통신으로 한정되지 않으며, 둘 이상의 수신자에 데이터를 전송하는 일-대-다 통신에도 적용될 수 있다. 예를 들면, 송신 노드 x가 수신 노드 y, z에게 4개의 패킷을 랜덤 선형 네트워크 코딩(RLNC) 기법을 이용하여 전송하고자 할 때, 전송 중의 오류 등의 이유로 수신 노드 y 또는 수신 노드 z는 4개의 패킷들 중 일부 패킷을 전송받지 못할 수 있다. 예를 들어, 수신 노드 y가 송신 노드 x로부터 3개의 부호화된 패킷만을 전송받았으며, 이들의 인코딩 벡터는 (1, 2, 1, 1), (1, 2, 2, -1), (2, 4, 0, 5)이고, 수신 노드 z는 2개의 부호화된 패킷만을 전송받았으며, 이들의 인코딩 벡터는 (1, 2, 1, 1), (1, 2, 2, -1)일 때, 수신 노드 y가 수신한 각각의 패킷의 인코딩 벡터가 하나의 행(row)을 이루는 인코딩 행렬 Ay, 및 수신 노드 z가 수신한 각각의 패킷의 인코딩 벡터가 하나의 행을 이루는 인코딩 행렬 Az는 아래의 수식 4 내지 수식 5와 같이 나타낼 수 있다.
[수식 4]
Figure 112013072960451-pat00004
[수식 5]
Figure 112013072960451-pat00005
수신 노드 y의 인코딩 행렬 Ay의 기약 행 사다리꼴 행렬(reduced row echelon form) RREF(Ay)과, 수신 노드 z의 인코딩 행렬 Az의 기약 행 사디리꼴 행렬 RREF(Az)은 아래의 수식 6 내지 7과 같다.
[수식 6]
Figure 112013072960451-pat00006
[수식 7]
Figure 112013072960451-pat00007
수신 노드 y와 z는 송신 노드 x에게 각각 추가적인 부호화된 패킷의 전송을 요구하며, 각각 기약 행 사다리꼴 행렬 RREF(Ay), RREF(Az)에 상응하는 피드백 데이터를 생성하여 송신 노드 x에게 전송한다.
송신 노드 x가 피드백 데이터의 RREF(Ay)와 RREF(Az)를 수신하면, 송신 노드 x는 두 기약 행 사다리꼴 행렬을 수직적으로 병합(vertically concatenate)하여 아래의 수식 8에 나타낸 바와 같은 행렬 CA를 생성한다.
[수식 8]
Figure 112013072960451-pat00008
즉, RREF(Ay)의 1,2,3행이 행렬 CA의 1,2,3행이 되고, RREF(Az)의 1,2행이 행렬 CA의 4,5행이 되도록 하여, 수식 8에 나타낸 바와 같은 행렬 CA를 생성한 후, 아래의 수식 9에 나타낸 바와 같이, 행렬 CA의 기약 행 사디리꼴 행렬(reduced row echelon form)인 RREF(CA)를 구한다. 이때, RREF(CA)에서 원소가 모두 0인 행은 삭제할 수 있다.
[수식 9]
Figure 112013072960451-pat00009
송신 노드 x는 수신 노드 y, z 모두에게 혁신적인(innovative) 부호화 패킷, 즉 수신 노드 y, z가 이미 가지고 있는 부호화 패킷과 중복되지 않는 새로운 부호화 패킷을 전송하기 위해, 기약 행 사다리꼴 행렬 RREF ( CA )를 이용하여 CA의 영공간(nullspace)인 N( CA )를 계산하고 N( CA )와 직교하지 않는 벡터, 예를 들어 (-2, 1, 0, 0)를 인코딩 벡터로 갖는 패킷을 발생시켜 전송한다. 위의 예에서, N(CA)는 {(-2, 1, 0, 0)T}를 기저(basis)로 갖는 공간이다.
행렬 A 또는 RREF(A)의 전송시, 압축부(313)는 다음과 같은 방법으로 압축 전송할 수도 있다. 먼저, 행렬의 원소를 일렬로 나열함에 있어, 도 12에 도시된 바와 같이, 행렬의 좌측 하단(마지막 행 첫 번째 열)의 원소부터 시작해서 우측 상단(첫 번째 행 마지막 열)의 원소를 끝으로 지그재그(zigzag) 패턴으로 나열할 수 있다. 예를 들면, 도 13에 도시된 바와 같은 행렬의 원소는 0 0 0 0 0 0 0 0 0 0 1 5 2 3 1 0 0 0 0 0 0 0 0 0 0 과 같이 나열될 수 있다. 대안적으로, 압축부(313)는 도 13에 도시된 바와 달리, 행렬의 우측 상단(첫 번째 행 마지막 열)의 원소부터 시작해서 좌측 하단(마지막 행 첫 번째 열)의 원소를 끝으로 지그재그(zigzag) 패턴으로 원소들을 나열할 수도 있다.
이때, 각 원소를 나열함에 있어 0인 원소를 표시할 때에는 0이 연속으로 나열됨을 가정하고 0과 함께 연속으로 나열되어 있는 0의 개수를 기록하여 압축할 수 있다. 도 13에 도시된 행렬의 예에서는 0이 10개 연속으로 나열되어 있으므로 0 10 1 5 2 3 1 0 10 과 같이 나열될 수 있다. 최종적으로 이의 전송 시에는 5 5 0 10 1 5 2 3 1 0 10 과 같이 행렬의 크기, 즉, 행의 개수와 열의 개수를 함께 나열하여 전송할 수 있다. 앞의 두 숫자 5 5 는 행의 갯수가 5이고 열의 개수가 5임을 나타낸다. 추가적으로, 위와 같이 나열된 숫자들에 엔트로피 부호화(entropy encoding)를 적용하여 압축한 후 전송하는 방법의 사용도 가능하다.
도 12 내지 도 13에서는 5×5 정방행렬의 예를 들었으나, 이 기법은 모든 nxm(n>1, m>1, m≥n) 행렬에 적용될 수 있다. 예를 들면, 도 14에 도시된 3×4 비정방행렬의 경우, 화살표로 나타낸 순서로 원소를 나열할 수 있다. 도 15에 도시된 행렬을 전송할 경우, 3 4 0 5 1 2 1 1 0 3 과 같이 나열된 정보를 전송할 수 있다. 따라서, 네트워크 코딩의 피드백 과정에서 실제 전송되는 정보의 양을 줄여, 보다 효율적인 통신이 가능하다.
이상의 실시 예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시 예들도 본 발명의 범위에 속하는 것임을 이해하여야 한다. 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명에 대하여까지 미치는 것임을 이해하여야 한다.
10: 네트워크 코딩 시스템 20: 부호화 장치
21: 데이터 코딩부 22: 송수신부
23: 피드백 데이터 분석부 231: 행렬 복원부
232: 재전송 패킷 판단부 24: 저장부
30: 복호화 장치 31: 피드백 데이터 생성부
32: 전송부 33: 메모리
34: 데이터 복원부 311: 행렬 생성부
312: 행렬 변환부 313: 압축부

Claims (22)

  1. 네트워크 코딩된 부호화 패킷을 수신함에 따른 응답으로써 송신 노드로 피드백 데이터를 전송하는 네트워크 코딩(network coding)의 피드백 장치에 있어서,
    상기 송신 노드로부터 수신된 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 피드백 데이터 생성부를 포함하는 네트워크 코딩의 피드백 장치.
  2. 제1 항에 있어서,
    상기 피드백 데이터를 상기 송신 노드로 전송하는 전송부를 더 포함하는 네트워크 코딩의 피드백 장치.
  3. 제2 항에 있어서,
    상기 피드백 데이터 생성부는,
    상기 송신 노드로부터 수신된 복수 개의 부호화 패킷으로부터 복수 개의 인코딩 벡터를 추출하고, 상기 복수 개의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 행렬 생성부; 그리고
    상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하는 행렬 변환부를 포함하는 네트워크 코딩의 피드백 장치.
  4. 제3 항에 있어서,
    상기 피드백 데이터 생성부는,
    상기 기약 행 사다리꼴 행렬의 원소들 중에서 0을 제외한 원소만 나열되도록 압축하여 상기 피드백 데이터를 생성하는 압축부를 더 포함하는 네트워크 코딩의 피드백 장치.
  5. 제4 항에 있어서,
    상기 압축부는,
    상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성하는 네트워크 코딩의 피드백 장치.
  6. 제3 항에 있어서,
    상기 피드백 데이터 생성부는,
    상기 기약 행 사다리꼴 행렬의 마지막 행 첫 번째 열의 원소와 첫 번째 행 마지막 열의 원소 간에서 지그재그(zigzag) 패턴으로 원소들을 나열하여 압축함으로써, 상기 피드백 데이터를 생성하는 압축부를 더 포함하는 네트워크 코딩의 피드백 장치.
  7. 제6 항에 있어서,
    상기 압축부는,
    상기 기약 행 사다리꼴 행렬에서 0이 연속으로 나열되어 있는 개수를 기록하여 압축함으로써, 상기 피드백 데이터를 생성하는 네트워크 코딩의 피드백 장치.
  8. 제3 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 행렬 변환부는, 상기 인코딩 행렬로부터 생성된(spaned) 부분공간(subspace)의 행렬을 상기 기약 행 사다리꼴 행렬로 변환하는 네트워크 코딩의 피드백 장치.
  9. 제8 항에 있어서,
    상기 행렬 변환부는, 가우시안 소거법을 이용하여 상기 부분공간의 행렬을 상기 기약 행 사다리꼴 행렬로 변환하는 네트워크 코딩의 피드백 장치.
  10. 제3 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 복수 개의 부호화 패킷은, 같은 제너레이션에 속하는 복수 개의 원본 데이터로부터 상기 복수 개의 인코딩 벡터를 이용하여 네트워크 코딩되어 상기 송신 노드로부터 수신된 것인 네트워크 코딩의 피드백 장치.
  11. 네트워크 코딩(network coding) 시스템에 있어서,
    같은 제너레이션에 속하는 복수 개의 원본 데이터를 서로 다른 인코딩 벡터를 이용하여 네트워크 코딩하여 복수 개의 부호화 패킷을 생성하는 송신 노드; 그리고
    상기 송신 노드로부터 상기 복수 개의 부호화 패킷 중의 적어도 하나의 부호화 패킷을 수신하는 수신 노드를 포함하며,
    상기 수신 노드는,
    상기 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 피드백 데이터 생성부; 그리고
    상기 피드백 데이터를 상기 송신 노드로 전송하는 전송부를 포함하는 네트워크 코딩 시스템.
  12. 제11 항에 있어서,
    상기 피드백 데이터 생성부는,
    상기 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 행렬 생성부;
    상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하는 행렬 변환부; 그리고
    상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성하는 압축부를 포함하는 네트워크 코딩 시스템.
  13. 제11 항 또는 제12 항에 있어서,
    상기 송신 노드는,
    상기 수신 노드로부터 수신된 상기 피드백 데이터로부터 상기 기약 행 사다리꼴 행렬을 복원하고, 상기 복수 개의 부호화 패킷 중에서 상기 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷만을 상기 수신 노드로 재전송하는 네트워크 코딩 시스템.
  14. 네트워크 코딩(network coding)의 단말에 있어서,
    적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 제1 단말을 포함하는 네트워크 코딩의 단말.
  15. 제14 항에 있어서,
    상기 제1 단말은,
    상기 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하며, 상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성하는 네트워크 코딩의 단말.
  16. 제14 항 또는 제15 항에 있어서,
    상기 제1 단말은 상기 피드백 데이터를 제2 단말로 전송하며,
    상기 제2 단말은,
    상기 제1 단말로부터 수신된 상기 피드백 데이터로부터 상기 기약 행 사다리꼴 행렬을 복원하고, 복수 개의 부호화 패킷들 중에서 상기 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷만을 상기 제1 단말로 전송하는 네트워크 코딩의 단말.
  17. 네트워크 코딩된 부호화 패킷을 송신하는 송신 노드와, 상기 부호화 패킷을 수신하는 복수 개의 수신 노드를 포함하는 네트워크 코딩(network coding)의 데이터 전송 시스템에 있어서,
    각 수신 노드는,
    상기 송신 노드로부터 부호화 패킷을 수신함에 따른 응답으로써 수신된 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하고, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하며, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하여 상기 송신 노드로 전송하는 피드백 데이터 생성부를 포함하며,
    상기 송신 노드는,
    상기 복수 개의 수신 노드로부터 전송받은 피드백 데이터들의 상기 기약 행 사다리꼴 행렬을 병합하여 병합된 행렬을 생성하고, 상기 병합된 행렬에 대한 기약 행 사다리꼴 행렬을 생성하며, 생성한 기약 행 사다리꼴 행렬을 이용하여 병합된 행렬의 영공간과 직교하지 않는 벡터를 인코딩 벡터로 갖는 부호화 패킷을 상기 복수 개의 수신 노드로 전송하는 네트워크 코딩의 데이터 전송 시스템.
  18. 네트워크 코딩(network coding)의 데이터 전송 방법에 있어서,
    제1 노드가 적어도 하나의 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 단계;
    상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하는 단계; 그리고
    상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하는 단계를 포함하는 네트워크 코딩의 데이터 전송 방법.
  19. 제18 항에 있어서,
    상기 제1 노드가, 상기 피드백 데이터를 제2 노드로 전송하는 단계를 더 포함하는 네트워크 코딩의 데이터 전송 방법.
  20. 제19 항에 있어서,
    상기 피드백 데이터를 생성하는 단계는,
    상기 적어도 하나의 부호화 패킷으로부터 적어도 하나의 인코딩 벡터를 추출하고, 상기 적어도 하나의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 단계;
    상기 인코딩 행렬을 기약 행 사다리꼴 행렬로 변환하여 압축하는 단계; 그리고
    상기 기약 행 사다리꼴 행렬의 원소들 중에서 0이 아닌 원소들의 위치를 비트 맵(bit map)으로 나타내고, 상기 0이 아닌 원소들을 나열하여 상기 피드백 데이터를 생성하는 단계를 포함하는 네트워크 코딩의 데이터 전송 방법.
  21. 제19 항 또는 제20 항에 있어서,
    상기 제2 노드가, 상기 제1 노드로부터 수신된 상기 피드백 데이터로부터 상기 기약 행 사다리꼴 행렬을 복원하는 단계; 그리고
    상기 제2 노드가, 상기 복수 개의 부호화 패킷 중에서 상기 기약 행 사다리꼴 행렬의 영공간(nullspace)과 직교하지 않는 인코딩 벡터를 이용하여 네트워크 코딩한 부호화 패킷을 상기 제1 노드로 전송하는 단계를 더 포함하는 네트워크 코딩의 데이터 전송 방법.
  22. 복수 개의 수신 노드가, 송신 노드로부터 부호화 패킷을 수신함에 따른 응답으로써 수신된 부호화 패킷의 인코딩 벡터를 누적하여 인코딩 행렬을 생성하는 단계;
    각 수신 노드가, 상기 인코딩 행렬을 기약 행 사다리꼴(reduced row echelon form) 행렬로 변환하고, 상기 기약 행 사다리꼴 행렬을 이용하여 피드백 데이터를 생성하여 상기 송신 노드로 전송하는 단계;
    상기 송신 노드가, 상기 복수 개의 수신 노드로부터 전송받은 피드백 데이터들의 상기 기약 행 사다리꼴 행렬을 병합하여 병합된 행렬을 생성하는 단계; 및
    상기 송신 노드가, 상기 병합된 행렬에 대한 기약 행 사다리꼴 행렬을 생성하고, 생성한 기약 행 사다리꼴 행렬을 이용하여 상기 병합된 행렬의 영공간과 직교하지 않는 벡터를 인코딩 벡터로 갖는 부호화 패킷을 상기 복수 개의 수신 노드로 전송하는 단계를 포함하는 네트워크 코딩의 데이터 전송 방법.
KR1020130095480A 2013-08-12 2013-08-12 네트워크 코딩의 피드백 장치 및 데이터 전송 방법 KR101501168B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130095480A KR101501168B1 (ko) 2013-08-12 2013-08-12 네트워크 코딩의 피드백 장치 및 데이터 전송 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130095480A KR101501168B1 (ko) 2013-08-12 2013-08-12 네트워크 코딩의 피드백 장치 및 데이터 전송 방법

Publications (2)

Publication Number Publication Date
KR20150019088A KR20150019088A (ko) 2015-02-25
KR101501168B1 true KR101501168B1 (ko) 2015-03-12

Family

ID=52578301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130095480A KR101501168B1 (ko) 2013-08-12 2013-08-12 네트워크 코딩의 피드백 장치 및 데이터 전송 방법

Country Status (1)

Country Link
KR (1) KR101501168B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101603556B1 (ko) * 2015-10-22 2016-03-15 홍익대학교 산학협력단 데이터 전송 시스템, 부호화 장치 및 부호화 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069695A (ko) * 2009-12-17 2011-06-23 한국과학기술원 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법
KR101109658B1 (ko) * 2010-06-10 2012-01-31 홍익대학교 산학협력단 무선 이동 멀티홉 네트워크 시스템에서의 네트워크 코딩 기법을 이용한 멀티캐스트 라우팅 방법
US20120284581A1 (en) * 2006-11-29 2012-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Reliable multicast with linearly independent data packet coding
US20130058276A1 (en) * 2011-09-07 2013-03-07 Qualcomm Incorporated Method and apparatus for signaling side information for network coding in a wireless communication network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284581A1 (en) * 2006-11-29 2012-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Reliable multicast with linearly independent data packet coding
KR20110069695A (ko) * 2009-12-17 2011-06-23 한국과학기술원 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법
KR101109658B1 (ko) * 2010-06-10 2012-01-31 홍익대학교 산학협력단 무선 이동 멀티홉 네트워크 시스템에서의 네트워크 코딩 기법을 이용한 멀티캐스트 라우팅 방법
US20130058276A1 (en) * 2011-09-07 2013-03-07 Qualcomm Incorporated Method and apparatus for signaling side information for network coding in a wireless communication network

Also Published As

Publication number Publication date
KR20150019088A (ko) 2015-02-25

Similar Documents

Publication Publication Date Title
US9735805B2 (en) Encoder, decoder and method
Schonberg et al. On blind compression of encrypted data approaching the source entropy rate
US7594154B2 (en) Encoding and decoding modules with forward error correction
KR20130040087A (ko) 데이터 통신 시스템에서 부호화 장치 및 방법
CN103873877A (zh) 远程桌面的图像传输方法及装置
US10015285B2 (en) System and method for multi-stream compression and decompression
US8640009B2 (en) Methods and apparatus for providing linear erasure codes
CN104486434A (zh) 一种移动终端文件上传、下载的方法及移动终端
WO2018149411A1 (zh) 数据处理方法及装置
JP2015520990A (ja) 放送及び通信システムにおけるパケット送受信装置及び方法
EP2200182A1 (en) Method and device for coding the low density generator matrix code
CN102237966B (zh) 基于度2和高度编码包的喷泉码解码方法
KR101501168B1 (ko) 네트워크 코딩의 피드백 장치 및 데이터 전송 방법
US20150381993A1 (en) Managing transforms for compressing and decompressing visual data
CN109245863B (zh) 用于传输和接收前向纠错分组的装置和方法
JP2008501278A (ja) 拡張コンボルーションコード
KR101967884B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
Al-Hashemi et al. A new lossless image compression technique based on Bose, Chandhuri and Hocquengham (BCH) codes
Qin et al. Reversible data embedding for vector quantization compressed images using search‐order coding and index parity matching
CN107257244A (zh) 一种基于广播环境下的喷泉码编码方法
US10511331B2 (en) Channel decoding method and channel decoding device
CN104540147B (zh) 一种协作压缩感知量化转发方法
KR101331095B1 (ko) 개방형 모바일 기기관리 기반의 xml 메시지 압축 전송방법 및 그 시스템
KR101477664B1 (ko) 압축 센싱 기법을 이용한 네트워크 부호화 방법 및 장치, 네트워크 복호화 방법 및 장치
CN111866520A (zh) 编解码方法、编解码设备以及通信系统

Legal Events

Date Code Title Description
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee