KR101588549B1 - Tcp based network routers supporting network coding and tcp based data streaming system using network coding - Google Patents

Tcp based network routers supporting network coding and tcp based data streaming system using network coding Download PDF

Info

Publication number
KR101588549B1
KR101588549B1 KR1020150003653A KR20150003653A KR101588549B1 KR 101588549 B1 KR101588549 B1 KR 101588549B1 KR 1020150003653 A KR1020150003653 A KR 1020150003653A KR 20150003653 A KR20150003653 A KR 20150003653A KR 101588549 B1 KR101588549 B1 KR 101588549B1
Authority
KR
South Korea
Prior art keywords
network
router
data
decoding
encoding
Prior art date
Application number
KR1020150003653A
Other languages
Korean (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 KR1020150003653A priority Critical patent/KR101588549B1/en
Application granted granted Critical
Publication of KR101588549B1 publication Critical patent/KR101588549B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Landscapes

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

Abstract

According to embodiments of the present invention, a data streaming system performing network coding comprises: at least one transmission node to generate source data; an encoding router; and a decoding router. The encoding router drives an encoding application which performs network encoding in an application class to create a TCP session between the at least one transmission node and the encoding router, receives the source data from the transmission node through the TCP session, creates a TCP session between the decoding router and the encoding router, generates network-coded data according to a network coding coefficient matrix and the source data, and transmits the network-coded data and elements of the network coding coefficient matrix to the decoding router through the TCP session. The decoding router drives a decoding application which performs network encoding in an application class to reconstruct the source data by decoding or approximate decoding based on the network-coded data and the elements of the network coding coefficient matrix received from the encoding router through the TCP session.

Description

네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우팅 노드 및 네트워크 코딩을 구현하는 TCP 기반 데이터 스트리밍 시스템{TCP BASED NETWORK ROUTERS SUPPORTING NETWORK CODING AND TCP BASED DATA STREAMING SYSTEM USING NETWORK CODING}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a TCP-based network routing node capable of implementing network coding, and a TCP-based data streaming system implementing network coding.

본 발명은 네트워크 코딩에 관한 것으로서, 더욱 상세하게는 라우팅 기반 네트워크 상에서 구현되는 네트워크 코딩에 관한 것이다.The present invention relates to network coding, and more particularly, to network coding implemented on a routing based network.

종래의 TCP(Transmission Control Protocol) 기반의 네트워크 스킴(scheme)은 개별 노드의 입장에서 보면 단순히 점대점(point-to-point)으로 수신 노드가 송신 노드로부터 받은 데이터를 저장하였다가(storing) 그대로 또다른 수신 노드에 전송(forwarding)하는 것이어서 중간에 네트워크 구성이 바뀌면 기존의 라우팅 경로가 끊기거나 새로운 라우팅 경로를 구성하여야 하고 재전송이 필요하게 되며 그에 따라 속도가 저하되거나 서비스 품질이 영향을 받고 라우팅 경로를 유지하기 위한 오버헤드가 적지 않다. Conventional TCP (Transmission Control Protocol) -based network schemes are designed to allow a receiving node to simply store data received from a transmitting node in a point-to-point manner, If the network configuration changes in the middle of the network, the existing routing path must be disconnected or a new routing path must be configured and retransmission is required. As a result, the speed is degraded or service quality is affected, There is little overhead to maintain.

이에 비하여, 네트워크 코딩(Network coding)은 네트워크 내의 인접한 노드들이 패킷들을 수신하고 결합하며, 하나의 결합된 패킷으로 출력하는 동작을 반복함으로써 정해진 라우팅 경로 없이도 데이터들이 목적지까지 흘러 갈 수 있고, 목적지에서 데이터들을 복원하는 것이므로, 네트워크 코딩은 대역폭이나 전력 자원, 연산 자원을 좀 더 효율적으로 사용할 수 있고, 네트워크의 변동에 강인함을 보인다. 소스와 경로가 다양할수록, 즉 동일한 정보를 가지고 있는 노드도 많고 요청하는 노드도 많을 경우에, 이러한 네트워크 코딩의 성능이 최대화될 수 있다. On the other hand, network coding repeats the operation of neighboring nodes in the network receiving and combining packets and outputting them as one combined packet so that data can flow to a destination without a predetermined routing path, Network coding can use bandwidth, power resources, and computation resources more efficiently, and is robust against network fluctuations. As the source and path vary, that is, the number of nodes having the same information and the number of nodes requesting, the performance of such network coding can be maximized.

이에 따라 네트워크 코딩은 경로와 소스(source)가 다양한 동적 네트워크에서 효율적인 분산 전송 알고리즘을 구축할 수 있는 방법론으로서 점차 활용도를 넓혀 가고 있다. 네트워크 코딩의 장점 중 하나인 근사 복호화 기법은 특히 멀티미디어 컨텐츠나 센서 네트워크에서 발생하는 측정 데이터 컨텐츠와 같이 데이터 간에 상관 관계가 높은 소스 데이터의 경우에 특히 유용하다는 점이 알려져 있다.As a result, network coding has become increasingly used as a methodology for constructing an efficient distributed transmission algorithm in a dynamic network with a variety of paths and sources. It is known that the approximate decoding technique, which is one of the advantages of network coding, is particularly useful in case of source data having a high correlation between data, such as multimedia content or measurement data contents occurring in a sensor network.

하지만 네트워크 코딩을 통해 전달되는 정보들은 데이터를 구성하는 패킷들이 원본 그대로 전달되는 것이 아니라 네트워크 노드가 수신되는 복수의 패킷들을 적절한 연산을 통해 변조하여 하나의 새로운 패킷으로 만드는 네트워크 코딩 동작을 해주어야 한다. 이를 실현하기 위해, 기존 연구에서는, 네트워크 코딩에 참여하는 네트워크 노드들이 각각 이러한 동작을 수행할 수 있도록 통신 하드웨어를 새로 설계하거나, 수신된 TCP 세그먼트들을 전송 계층에서 네트워크 코딩하도록 전송 계층을 개조하는 방법이 제안되어 있다.However, the information transmitted through the network coding should not be transmitted as it is in the original form, but should be network-coded to modulate a plurality of received packets by a proper operation to form a new packet. In order to realize this, in the existing research, there is a method of newly designing the communication hardware so that the network nodes participating in the network coding can perform these operations, or a method of modifying the transport layer to network-code the received TCP segments at the transport layer Has been proposed.

그런데 현재 구축되어 있는 대규모 네트워크의 거의 대부분은 라우팅 기반의 네트워크이기 때문에, 이러한 인프라스트럭처의 하위 계층들(layers)을 네트워크 코딩에 적합하도록 개조하지 않는 한 네트워크 코딩을 대규모로 구현하는 것은 현실적으로 불가능하다고 생각되었다. 비록 실험실 규모에서 네트워크 코딩의 효율성은 기술적으로 입증되어 있지만, 네트워크 코딩이 지원되도록 전체 인프라스트럭처의 통신 하드웨어들을 교체하거나 또는 노드들의 운영체제와 드라이버를 동시적으로 변경하는 투자를 서비스 제공자가 현실적으로 선행하기 어렵다는 점이 문제이다.However, since most of the existing large-scale networks are routing-based networks, it is impossible to implement network coding on a large scale unless modifying the lower layers of the infrastructure to be suitable for network coding. . Although the efficiency of network coding on the laboratory scale has been technically proven, it is difficult for service providers to prioritize investment in replacing the communications hardware of the entire infrastructure or simultaneously changing the operating system and drivers of the nodes to support network coding The point is the problem.

또한, 네트워크 코딩 기법은 현실적으로 단 하나의 패킷이라도 손실되거나 또는 전송 지연되면, 소스 데이터들 사이에 높은 상관 관계가 있어서 근사 복호(Approximate Decoding)가 가능한 경우를 제외하면, 원래의 파일을 복원할 수 없거나 또는 제한 시간 내에 디코딩하지 못하여 서비스 품질이 저하되는 단점이 있다. In addition, the network coding scheme can not restore the original file unless a single packet is lost or delayed, except that approximate decoding is possible because there is a high correlation between the source data Or the service quality can not be decoded within a time limit.

한국공개특허공보 10-2013-0016593 (2013.02.18)Korean Patent Publication No. 10-2013-0016593 (Feb.

[2] "Network coding meets TCP" Jay Kumar Sundararajan, et al. IEEE INFOCOM 2009 pp.280-288[2] "Network coding meets TCP" Jay Kumar Sundararajan, et al. IEEE INFOCOM 2009 pp.280-288

본 발명이 해결하고자 하는 과제는 네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우터 및 네트워크 코딩을 구현하는 TCP 기반 데이터 스트리밍 시스템을 제공하는 데에 있다.A problem to be solved by the present invention is to provide a TCP-based network router capable of implementing network coding and a TCP-based data streaming system implementing network coding.

본 발명이 해결하고자 하는 과제는 기존의 라우팅 기반의 인프라스트럭처의 하드웨어를 변경하지 않고 네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우터 및 네트워크 코딩을 구현하는 TCP 기반 데이터 스트리밍 시스템을 제공하는 데에 있다.The present invention provides a TCP-based network router capable of implementing network coding without changing the hardware of an existing routing-based infrastructure, and a TCP-based data streaming system implementing network coding.

본 발명이 해결하고자 하는 과제는 기존의 라우팅 기반의 하위 계층들을 개조하지 않고 네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우터 및 네트워크 코딩을 구현하는 TCP 기반 데이터 스트리밍 시스템을 제공하는 데에 있다.The present invention provides a TCP-based network router capable of implementing network coding without modifying existing routing-based lower layers and a TCP-based data streaming system implementing network coding.

본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.The solution to the problem of the present invention is not limited to those mentioned above, and other solutions not mentioned can be clearly understood by those skilled in the art from the following description.

본 발명의 일 측면에 따른 네트워크 코딩을 구현하는 데이터 스트리밍 시스템은,A data streaming system for implementing network coding according to an aspect of the present invention includes:

소스 데이터를 생성하는 적어도 하나의 송신 노드;At least one transmitting node for generating source data;

네트워크 코딩을 수행하는 인코딩 어플리케이션이 어플리케이션 계층에서 구동되어, 적어도 하나의 송신 노드와 사이에 TCP 세션을 생성하고, 적어도 하나의 송신 노드로부터 TCP 세션을 통해 소스 데이터들을 수신하며, 디코딩 라우터와 사이에 TCP 세션을 생성하고, 네트워크 코딩 계수 행렬과 소스 데이터들에 따라 네트워크 코딩된 데이터들을 생성하며 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 TCP 세션을 통해 디코딩 라우터로 전송하는 인코딩 라우터; 및An encoding application that performs network coding is run at an application layer to create a TCP session with at least one sending node, receive source data via a TCP session from at least one sending node, An encoding router for generating a session, generating network coded data according to a network coding coefficient matrix and source data, and transmitting elements of the network coded data and a network coding coefficient matrix to a decoding router through a TCP session; And

네트워크 코딩을 수행하는 디코딩 어플리케이션이 어플리케이션 계층에서 구동되어, 인코딩 라우터로부터 TCP 세션을 통해 수신된 네트워크 코딩된 데이터들 및 네트워크 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 소스 데이터들을 복원하는 디코딩 라우터를 포함할 수 있다.A decoding application that performs network coding is driven at the application layer and decodes or approximates decodes based on the elements of the network coefficient data and the network coded data received via the TCP session from the encoding router to recover the source data .

일 실시예에 따라, 네트워크 코딩된 데이터들과 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트의 페이로드에 탑재될 수 있다.According to one embodiment, the elements of the network coded data and the network coding coefficient matrix may be loaded into the payload of the TCP segment.

일 실시예에 따라, 네트워크 코딩된 데이터들은 TCP 세그먼트의 페이로드에 탑재되고, 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트의 TCP 헤더에 탑재될 수 있다.According to one embodiment, the network coded data is loaded into the payload of the TCP segment, and the elements of the network coding coefficient matrix may be loaded into the TCP header of the TCP segment.

일 실시예에 따라, 디코딩 라우터는 복원된 소스 데이터들을 적어도 하나의 수신 노드에 전송하도록 동작할 수 있다.According to one embodiment, the decoding router may be operable to transmit the recovered source data to at least one receiving node.

일 실시예에 따라, 수신 노드가 송신 노드에 소스 데이터의 전송을 요청함에 따라 인코딩 라우터와 송신 노드 사이에 TCP 세션이 생성될 수 있다.According to one embodiment, a TCP session may be created between the encoding router and the transmitting node as the receiving node requests transmission of the source data to the transmitting node.

일 실시예에 따라, 인코딩 라우터는 송신 노드로부터 소스 데이터의 메타 정보를 수신하도록 동작할 수 있다.According to one embodiment, the encoding router may be operable to receive meta information of source data from a transmitting node.

본 발명의 다른 측면에 따른 네트워크 코딩을 구현하는 데이터 스트리밍 시스템의 라우터는A router of a data streaming system implementing network coding according to another aspect of the present invention comprises:

네트워크 코딩을 수행하는 인코딩 어플리케이션이 어플리케이션 계층에서 구동되어, 인코딩 어플리케이션이, 소스 데이터를 생성하는 적어도 하나의 송신 노드와 사이에 TCP 세션을 생성하고, 적어도 하나의 송신 노드로부터 TCP 세션을 통해 소스 데이터들을 수신하며, 네트워크 코딩 계수 행렬과 소스 데이터들에 따라 네트워크 코딩된 데이터들을 생성하며 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 TCP 세그먼트에 탑재하여 출력하도록 동작할 수 있다.An encoding application that performs network coding is run at the application layer such that the encoding application generates a TCP session with at least one transmitting node that generates source data and sends the source data through a TCP session from at least one transmitting node Generates network coded data according to the network coding coefficient matrix and the source data, and operates to load and output elements of the network coded data and the network coding coefficient matrix to the TCP segment.

본 발명의 또 다른 측면에 따른 네트워크 코딩을 구현하는 데이터 스트리밍 시스템의 라우터는A router of a data streaming system implementing network coding according to another aspect of the present invention comprises:

네트워크 코딩을 수행하는 디코딩 어플리케이션이 어플리케이션 계층에서 구동되어, 디코딩 어플리케이션이, TCP 세그먼트에 탑재되어 수신되는 네트워크 코딩된 데이터들 및 네트워크 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 소스 데이터들을 복원하도록 동작할 수 있다.A decoding application that performs network coding is driven at the application layer so that the decoding application decodes or approximates decoding based on the elements of the network coded data and the network coefficient matrix received and received in the TCP segment can do.

본 발명의 또 다른 측면에 따른 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법은A network coded streaming data transmission method using a data streaming system according to another aspect of the present invention includes:

네트워크 코딩을 수행하는 인코딩 어플리케이션이 어플리케이션 계층에서 구동되는 인코딩 라우터가, 소스 데이터를 생성하는 적어도 하나의 송신 노드와 사이에 TCP 세션을 생성하는 단계;Encoding an application that performs network coding is driven at an application layer; generating a TCP session with at least one sending node generating source data;

인코딩 라우터가, 적어도 하나의 송신 노드로부터 소스 데이터들을 TCP 세션을 통해 수신하는 단계;The encoding router receiving source data from at least one sending node via a TCP session;

인코딩 라우터가, 네트워크 코딩 계수 행렬과 소스 데이터들에 따라 네트워크 코딩된 데이터들을 생성하는 단계;The encoding router comprising the steps of: generating network coded data according to a network coding coefficient matrix and source data;

인코딩 라우터가, 네트워크 코딩을 수행하는 디코딩 어플리케이션이 어플리케이션 계층에서 구동되는 디코딩 라우터와 사이에, TCP 세션을 생성하는 단계;The encoding router creating a TCP session between a decoding application that performs network coding and a decoding router that is running in an application layer;

인코딩 라우터가, 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 TCP 세션을 통해 디코딩 라우터로 전송하는 단계; 및Transmitting, by the encoding router, the elements of the network coded data and the network coding coefficient matrix to the decoding router via a TCP session; And

디코딩 라우터가, TCP 세션을 통해 수신된 네트워크 코딩된 데이터들 및 네트워크 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 소스 데이터들을 복원하는 단계를 포함할 수 있다.And decoding or approximate decoding based on elements of the network coded data and the network coefficient matrix received via the TCP session by the decoding router to recover the source data.

일 실시예에 따라, 네트워크 코딩된 데이터들과 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트의 페이로드에 탑재될 수 있다.According to one embodiment, the elements of the network coded data and the network coding coefficient matrix may be loaded into the payload of the TCP segment.

일 실시예에 따라, 네트워크 코딩된 데이터들은 TCP 세그먼트의 페이로드에 탑재되고, 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트의 TCP 헤더에 탑재될 수 있다.According to one embodiment, the network coded data is loaded into the payload of the TCP segment, and the elements of the network coding coefficient matrix may be loaded into the TCP header of the TCP segment.

일 실시예에 따라, 상기 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법은,According to one embodiment, a network coded streaming data transmission method through the data streaming system comprises:

디코딩 라우터가, 복원된 소스 데이터들을 적어도 하나의 수신 노드에 전송하는 단계를 더 포함할 수 있다.The decoding router may further comprise transmitting the restored source data to at least one receiving node.

일 실시예에 따라, 수신 노드가 송신 노드에 소스 데이터의 전송을 요청함에 따라 인코딩 라우터와 송신 노드 사이에 TCP 세션이 생성될 수 있다.According to one embodiment, a TCP session may be created between the encoding router and the transmitting node as the receiving node requests transmission of the source data to the transmitting node.

일 실시예에 따라, 상기 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법은,According to one embodiment, a network coded streaming data transmission method through the data streaming system comprises:

인코딩 라우터가, 송신 노드로부터 소스 데이터의 메타 정보를 수신하는 단계를 더 포함할 수 있다.The encoding router may further comprise receiving meta information of the source data from the transmitting node.

본 발명의 네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우터 및 네트워크 코딩을 구현하는 TCP 기반 데이터 스트리밍 시스템에 따르면, 기존의 라우팅 기반의 인프라스트럭처의 하드웨어를 변경하지 않고 네트워크 코딩을 구현할 수 있다.According to the TCP-based network router capable of implementing the network coding of the present invention and the TCP-based data streaming system implementing the network coding, the network coding can be implemented without changing the hardware of the existing routing-based infrastructure.

본 발명의 네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우터 및 네트워크 코딩을 구현하는 TCP 기반 데이터 스트리밍 시스템에 따르면, 기존의 라우팅 기반의 하위 계층들을 개조하지 않고 네트워크 코딩을 구현할 수 있다.According to the TCP-based network router capable of implementing the network coding of the present invention and the TCP-based data streaming system implementing the network coding, the network coding can be implemented without modifying the existing lower layers based on the routing.

본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명이 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템에서 일어나는 네트워크 코딩된 데이터의 전송을 개념적으로 표현한 도면이다.
도 2는 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템을 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 인코딩 라우터의 계층 구조를 예시한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템에서 인코딩 라우터가 생성하는 TCP 세그먼트의 구조를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 디코딩 라우터의 계층 구조를 예시한 개념도이다.
도 6 내 도 8은 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템에서 스트리밍 서버가 스트리밍 데이터를 네트워크 코딩 기법으로 스트리밍 클라이언트들에 전송하는 절차들을 예시한 개념도들이다.
도 9는 본 발명의 일 실시예에 따른 TCP 기반 데이터 스트리밍 시스템을 통해 네트워크 코딩된 스트리밍 데이터를 전송하는 방법을 예시한 순서도이다.
1 is a conceptual representation of transmission of network coded data occurring in a TCP based data streaming system in which the present invention can implement network coding.
2 is a conceptual diagram illustrating a TCP-based data streaming system capable of implementing network coding according to an embodiment of the present invention.
3 is a conceptual diagram illustrating a hierarchical structure of an encoding router capable of implementing network coding according to an embodiment of the present invention.
4 is a diagram illustrating a structure of a TCP segment generated by an encoding router in a TCP-based data streaming system capable of implementing network coding according to an embodiment of the present invention.
5 is a conceptual diagram illustrating a hierarchical structure of a decoding router capable of implementing network coding according to an embodiment of the present invention.
FIG. 8 is a conceptual diagram illustrating procedures in which a streaming server transmits streaming data to a streaming client in a network coding scheme in a TCP-based data streaming system capable of implementing network coding according to an embodiment of the present invention.
9 is a flowchart illustrating a method of transmitting network coded streaming data through a TCP-based data streaming system according to an embodiment of the present invention.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

아래의 설명은 크게 세 개의 섹션으로 나누어지는데, 섹션 1 및 2는 본 발명이 적용될 수 있는 네트워크 코딩된 데이터의 전송에 관한 소개와 함께 근사 복호화법의 기본적 원리를 설명한다. 섹션 3은 본 발명의 실시예들에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템을 설명한다. 섹션 3에서 나타나는 벡터나 변수에 관한 표기 중 일부는 섹션 1 및 섹션 2에서 나타나는 것과 다를 수 있다는 점에 유의한다.The following description is largely divided into three sections, Sections 1 and 2, which illustrate the basic principles of approximate decoding along with an introduction to the transmission of network coded data to which the present invention may be applied. Section 3 describes a TCP based data streaming system capable of implementing network coding according to embodiments of the present invention. Note that some of the notations for vector or variable appearing in Section 3 may differ from those shown in Section 1 and Section 2.

아래에서 "인코딩" 용어는 맥락에 따라 명확하게, 예를 들어 동영상 인코딩과 같이 표현되지 않는 한, 네트워크 코딩을 의미한다. "디코딩" 또는 "복호" 용어도 마찬가지로, 맥락에 따라 명확하게, 예를 들어 동영상 디코딩과 같이 표현되지 않는 한, 네트워크 코딩된 정보의 복원을 의미한다.
The term "encoding" below refers to network coding unless explicitly described in context, for example, as a video encoding. The term "decoding" or "decoding " likewise implies the restoration of network coded information unless explicitly expressed in context, for example, as motion picture decoding.

1. 랜덤 선형 네트워크 코딩1. Random linear network coding

도 1은 본 발명이 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템에서 일어나는 네트워크 코딩된 데이터의 전송을 개념적으로 표현한 도면이다. 소스 데이터가 네트워크 코딩 노드를 통하여 디코더(복호기)로 전달되는 과정이 나타나 있다. 이 시스템에서 전송되는 데이터는 서로 상관 관계를 갖는다. 상관 관계를 가지는 데이터는 센서 네트워크를 통해 측정된 데이터와 같은 외부 상관 관계를 갖거나, 비디오 시퀀스 내의 이미지들과 같이 근접한 데이터 사이의 상관 관계가 높은 데이터일 수 있다.1 is a conceptual representation of transmission of network coded data occurring in a TCP based data streaming system in which the present invention can implement network coding. And the source data is transmitted to the decoder (decoder) through the network coding node. The data transmitted in this system has a correlation with each other. The correlated data may have external correlation, such as data measured over the sensor network, or may be highly correlated data, such as images within a video sequence.

이러한 상관 관계 데이터의 전송에 대한 연구는 분산 시스템에서 널리 수행되어 왔다. 네트워크 코딩 기법은 네트워크를 통해 상관 관계 데이터를 전송하는 기법으로 연구되었다.Research on the transmission of such correlation data has been widely performed in distributed systems. Network coding techniques have been studied as a technique for transmitting correlation data over a network.

도 1에서 오버레이 애드 혹 네트워크(overlay ad hoc network)는 소스 노드들, 중간 노드들 및 수신 노드들로 구성되어 있고, 소스 데이터는 소스 노드에서 네트워크 코딩 연산을 담당하는 중간 노드들을 거쳐 수신 노드까지 전달된다. 중간 노드는 수신한 데이터를 그대로 전달할 수도 있지만, 다른 소스 노드들에서 수신한 데이터들을 결합(combining)하여 출력한다.In FIG. 1, an overlay ad hoc network is composed of source nodes, intermediate nodes, and receiving nodes, and the source data is transmitted from the source node to the receiving node through intermediate nodes responsible for network coding operations do. The intermediate node may transmit the received data as it is, but may combine and output the data received from the other source nodes.

다양한 네트워크 코딩 기법 중에서 본 발명에서 사용하는 랜덤 선형 네트워크 코딩(RLNC: Random Linear Network Coding) 기법은 Ho, T., M´edard, M., Shi, J., Effros, M. 및 Karger, D.R., "On randomized network coding," in Proc. Allerton Annual Conf. Commun., Control, and Comput., Oct. 2003을 참조한다.Random Linear Network Coding (RLNC) techniques used in the present invention among various network coding schemes are described in Ho, T., M'edard, M., Shi, J., Effros, M. and Karger, DR, "On randomized network coding," in Proc. Allerton Annual Conf. Commun., Control, and Comput., Oct. 2003.

소스 집합

Figure 112015002552790-pat00001
내의 L 개의 소스 심볼들은
Figure 112015002552790-pat00002
라고 표시되며, 각각 이산(discrete)이면서 상관되어(correlated) 있고, 1≤i≤L일 때에
Figure 112015002552790-pat00003
이다.
Figure 112015002552790-pat00004
Figure 112015002552790-pat00005
의 알파벳 집합(alphabet set)이고 |
Figure 112015002552790-pat00006
|는
Figure 112015002552790-pat00007
의 크기를 의미한다. 네트워크 코딩 연산은 갈로와 필드(GF: Galois Field) 내에서 수행되기 때문에, 각각의
Figure 112015002552790-pat00008
은 GF 내의 원소로 고려되어야 한다.
Figure 112015002552790-pat00009
가 실수 필드(
Figure 112015002552790-pat00010
, field of real numbers)에 있는 수인지 아니면 GF에 있는 수인지 여부를 명확하게 특정하기 위해서, 수학식 1과 같은 식별 함수(identity function)을 정의할 수 있다.Source set
Figure 112015002552790-pat00001
Lt; RTI ID = 0.0 > L &
Figure 112015002552790-pat00002
And are respectively discrete and correlated, and when 1? I? L
Figure 112015002552790-pat00003
to be.
Figure 112015002552790-pat00004
The
Figure 112015002552790-pat00005
Of the alphabet set (alphabet set) and |
Figure 112015002552790-pat00006
| Is
Figure 112015002552790-pat00007
. Since the network coding operation is performed in a Galois Field (GF), each
Figure 112015002552790-pat00008
Should be considered as elements in the GF.
Figure 112015002552790-pat00009
Is a real field (
Figure 112015002552790-pat00010
, field of real numbers, or the number in GF, it is possible to define an identity function as shown in equation (1).

Figure 112015002552790-pat00011
Figure 112015002552790-pat00011

이는

Figure 112015002552790-pat00012
Figure 112015002552790-pat00013
을 의미하는 GF 내의 원소임을 의미한다.
Figure 112015002552790-pat00014
인 경우에,
Figure 112015002552790-pat00015
는 L 개의 요소를 가지는 N 번째 소스 데이터 집합이다.
Figure 112015002552790-pat00016
Figure 112015002552790-pat00017
의 알파벳 세트를 의미한다. 또한 본 명세서에서 행렬 또는 벡터의 위 첨자로 쓰이는 T는 행렬 또는 벡터의 전치(transpose)를 의미하며, 실수값 T 또는 아래 첨자로 쓰이는 T와 구별됨을 유의한다.this is
Figure 112015002552790-pat00012
end
Figure 112015002552790-pat00013
Which means that it is an element in GF.
Figure 112015002552790-pat00014
in case of,
Figure 112015002552790-pat00015
Is the Nth source dataset with L elements.
Figure 112015002552790-pat00016
The
Figure 112015002552790-pat00017
≪ / RTI > Also note that T, used as a superscript of a matrix or vector herein, is a transpose of a matrix or vector, and is distinguished from a real value T or a T used as a subscript.

GF 내의 연산 기호를 가지고 서술하는 수식에서는 모든 연산은 GF 내에서 일어나는 것을 암시하므로,

Figure 112015002552790-pat00018
기호는 생략된다.
Figure 112015002552790-pat00019
Figure 112015002552790-pat00020
연산자들은 각각 GF 내에서 정의되는 합산 연산과 승산 연산을 의미한다.In the formula describing with the operation symbols in the GF, it implies that all operations occur in the GF,
Figure 112015002552790-pat00018
The symbol is omitted.
Figure 112015002552790-pat00019
Wow
Figure 112015002552790-pat00020
The operators refer to summation and multiplication operations defined in GF, respectively.

RLNC를 이용하는 중간 노드 k는 다음 수학식 2와 같이 데이터그램을 생성하여 전송한다.The intermediate node k using the RLNC generates and transmits a datagram according to the following equation (2).

Figure 112015002552790-pat00021
Figure 112015002552790-pat00021

수학식 2는

Figure 112015002552790-pat00022
와 코딩 계수
Figure 112015002552790-pat00023
의 GF에서의 선형 결합(linear combination in GF)을 의미한다. i는 1≤i≤L인 임의의 정수이고, T는 하나의 데이터그램 내에 결합된 데이터의 개수이다.
Figure 112015002552790-pat00024
Figure 112015002552790-pat00025
는 항상 GF 내의 원소로 간주될 수 있다. 코딩 계수들은 크기 2M을 가지고 GF로부터 균일하고 랜덤하게 선정되는데, 이를
Figure 112015002552790-pat00026
라고 한다. 이는 GF 크기가 M에 의해 결정되며,
Figure 112015002552790-pat00027
임을 의미한다.Equation (2)
Figure 112015002552790-pat00022
And a coding coefficient
Figure 112015002552790-pat00023
Means a linear combination in the GF. i is any integer with 1? i? L, and T is the number of data combined in one datagram.
Figure 112015002552790-pat00024
Wow
Figure 112015002552790-pat00025
Can always be regarded as an element in the GF. The coding coefficients are chosen uniformly and randomly from GF with size 2 M ,
Figure 112015002552790-pat00026
. This is because the GF size is determined by M,
Figure 112015002552790-pat00027
.

본 발명에서는 특히, 특성값 2를 가지는 GF, 즉

Figure 112015002552790-pat00028
에서 합산 연산은 XOR 연산으로 수행될 수 있다. GF의 크기는 소스 심볼에 관하여 수행될 수 있는 코딩 연산들의 집합을 결정한다. 따라서 입력 알파벳의 크기가
Figure 112015002552790-pat00029
라고 가정할 수 있다. 만약
Figure 112015002552790-pat00030
인 경우에는 입력 집합은 예를 들어 소스 결합(source binding) 또는 양자화 등을 이용하여 축소되고 그럼으로써 입력 집합은 GF 크기, 즉 2M을 초과하지 않게 된다.In the present invention, in particular, a GF having a characteristic value of 2
Figure 112015002552790-pat00028
The summation operation can be performed by an XOR operation. The size of GF determines the set of coding operations that can be performed with respect to the source symbol. Therefore, the size of the input alphabet is
Figure 112015002552790-pat00029
. if
Figure 112015002552790-pat00030
The input set is reduced using, for example, source binding or quantization, so that the input set does not exceed the GF size, i.e. 2 M.

각각의 노드에서 생성되는 데이터그램들은 이웃하는 노드들로 전송되며 최종적으로 수신 노드들로 향한다. 만약 수신 노드의 디코더에서 K 개의 이노배티브(innovative) 즉, 선형 비종속적(linear independent)인 심볼 또는 데이터그램들,

Figure 112015002552790-pat00031
이 수신되어 연산에 쓰일 수 있다면, 선형 시스템
Figure 112015002552790-pat00032
는 다음 수학식 3과 같이 표현될 수 있다.The datagrams generated at each node are forwarded to neighboring nodes and finally to the receiving nodes. If at the decoder of the receiving node, there are K inversely linear or linearly independent symbols or datagrams,
Figure 112015002552790-pat00031
Lt; / RTI > can be received and used in an operation,
Figure 112015002552790-pat00032
Can be expressed by the following equation (3).

Figure 112015002552790-pat00033
Figure 112015002552790-pat00033

여기서

Figure 112015002552790-pat00034
연산자는 유한 필드(finite field)에서 행렬들 사이의 승산 연산을 의미한다. here
Figure 112015002552790-pat00034
The operator denotes a multiplication operation between matrices in a finite field.

K×T 행렬

Figure 112015002552790-pat00035
는 코딩 계수 행렬(coding coefficient matrix)이라고 하는데, 컬럼 벡터들
Figure 112015002552790-pat00036
로 구성되며, 수신된 심볼들의 유사도 모델에 기초하여 생성된다. 코딩 계수 행렬
Figure 112015002552790-pat00037
를 유사도 모델에 기초하여 생성하는 방법은 네트워크 코딩의 복호화 기법에 숙련된 자들에게 주지된 방법이므로 설명을 생략한다.K × T matrix
Figure 112015002552790-pat00035
Is called a coding coefficient matrix, and column vectors < RTI ID = 0.0 >
Figure 112015002552790-pat00036
And is generated based on the similarity model of the received symbols. Coding coefficient matrix
Figure 112015002552790-pat00037
Based on the degree-of-similarity model is a method well known to those skilled in the network coding decoding technique, and thus a description thereof will be omitted.

만약 이러한 코딩 계수 행렬

Figure 112015002552790-pat00038
가 풀-랭크(full-rank), 즉 K=T인 경우에, 수학식 3의 선형 시스템의 해(solution)인
Figure 112015002552790-pat00039
는, 코딩 계수 행렬
Figure 112015002552790-pat00040
의 역행렬
Figure 112015002552790-pat00041
가 고유하게 결정되고 또한 이에 상응하여
Figure 112015002552790-pat00042
이기 때문에, 다음 수학식 4와 같이 고유하게 결정될 수 있다.If such a coding coefficient matrix
Figure 112015002552790-pat00038
Is a full-rank, that is, K = T, the solution of the linear system of equation (3)
Figure 112015002552790-pat00039
, A coding coefficient matrix
Figure 112015002552790-pat00040
Inverse of
Figure 112015002552790-pat00041
Is uniquely determined and correspondingly
Figure 112015002552790-pat00042
, It can be uniquely determined as shown in the following equation (4).

Figure 112015002552790-pat00043
Figure 112015002552790-pat00043

코딩 계수 행렬의 역행렬은 GF 상에서 가우시안 소거법(Gaussian elimination)을 수행하는 것과 같은 주지의 방법을 통해 쉽게 얻을 수 있다.The inverse matrix of the coding coefficient matrix can be easily obtained by a known method such as performing a Gaussian elimination on GF.

문제는, 만약 고유한 역행렬

Figure 112015002552790-pat00044
을 결정하기에 충분하지 않은 수의 심볼들만 수신된 경우에, 다시 말해, K<T인 경우에, 코딩 계수 행렬
Figure 112015002552790-pat00045
가 풀-랭크가 아니기 때문에 수학식 3의 선형 시스템의 해
Figure 112015002552790-pat00046
는 유일하게 결정되지 못할 뿐 아니라, 무한한 개수로 얻어질 수 있다. The problem is, if a unique inverse matrix
Figure 112015002552790-pat00044
In the case of K < T, the coding coefficient matrix &lt; RTI ID = 0.0 &gt;
Figure 112015002552790-pat00045
Is not a full-rank, the solution of the linear system of equation (3)
Figure 112015002552790-pat00046
Not only can not be determined uniquely, but can be obtained in an infinite number.

근사 복호화법은 이러한 문제를 해결하기 위해 도입된 것으로, 근사적으로 결정된 소스 심볼들이 불충분하게 수신된 데이터를 가지고 재구축된다.
The approximate decoding method is introduced to solve this problem, and the approximately determined source symbols are reconstructed with insufficiently received data.

2. 일반적인 근사 복호화법2. General Approximate Decoding

복호기(decoder)는 심볼 집합 y를 수신하면 소스 데이터를 복원할 수 있다. 만약 전송 절차 중에 패킷 지연이나 손실과 같은 외부적 요인이 있거나, 또는 무작위로 선정되는 코딩 계수 행렬

Figure 112015002552790-pat00047
이 특이 행렬(singular matrix)인 경우에는, 코딩 계수 행렬
Figure 112015002552790-pat00048
의 역행렬
Figure 112015002552790-pat00049
은 얻어질 수 없고 수학식 3의 선형 시스템에서 해가 유일하지 않을 수 있다.The decoder can recover the source data upon receipt of the symbol set y. If there are external factors such as packet delay or loss during the transmission procedure, or a randomly selected coding coefficient matrix
Figure 112015002552790-pat00047
In the case of this singular matrix, the coding coefficient matrix
Figure 112015002552790-pat00048
Inverse of
Figure 112015002552790-pat00049
Can not be obtained and the solution may not be unique in the linear system of equation (3).

이러한 문제를 해결하기 위해 근사 복호화법은 추가적인 제한 조건들(additional constraints)을 이용하여 코딩 계수 행렬을 풀-랭크로 만들 수 있다. To solve this problem, the approximate decoding method can make the coding coefficient matrix full-rank using additional constraints.

입력된 데이터의 상관 관계가 복호화 절차에서 추가되는 추가 제한 조건들

Figure 112015002552790-pat00050
Figure 112015002552790-pat00051
를 구축하는 데에 이용될 수 있다. 추가 제한 조건들
Figure 112015002552790-pat00052
Figure 112015002552790-pat00053
의 모든 요소들(elements) 역시 GF 내의 값이다.The additional constraints that the correlation of the input data adds in the decryption procedure
Figure 112015002552790-pat00050
Wow
Figure 112015002552790-pat00051
Can be used for constructing. Additional Restrictions
Figure 112015002552790-pat00052
And
Figure 112015002552790-pat00053
All the elements of GF are also values in GF.

추가 제한 조건들

Figure 112015002552790-pat00054
Figure 112015002552790-pat00055
을 추가함으로써 선형 시스템은 유일한 해를 가질 수 있게 되고 유일한 해
Figure 112015002552790-pat00056
는 다음 수학식 5와 같이 표현될 수 있다.Additional Restrictions
Figure 112015002552790-pat00054
And
Figure 112015002552790-pat00055
By adding the linear system can be the only solution and the only solution
Figure 112015002552790-pat00056
Can be expressed by the following equation (5).

Figure 112015002552790-pat00057
Figure 112015002552790-pat00057

추가 제한 조건들

Figure 112015002552790-pat00058
Figure 112015002552790-pat00059
내의 계수들은 소스의 모델들에 기초하여 결정될 수 있다.
Figure 112015002552790-pat00060
가 결정되면, 원본 데이터의 근사 심볼
Figure 112015002552790-pat00061
은 수학식 1의 식별 함수들에 의해
Figure 112015002552790-pat00062
과 같이 얻어질 수 있다. Additional Restrictions
Figure 112015002552790-pat00058
And
Figure 112015002552790-pat00059
The coefficients in the matrix can be determined based on the models of the source.
Figure 112015002552790-pat00060
Is determined, an approximate symbol of the original data
Figure 112015002552790-pat00061
Is determined by the identification functions of Equation (1)
Figure 112015002552790-pat00062
Can be obtained.

추가 제한 조건

Figure 112015002552790-pat00063
의 생성에 관하여, 좀더 상세한 내용은 H. Park, N. Thomos, and P. Frossard, Approximate decoding approaches for network coded correlated data, Signal Processing (Elsevier), vol. 93, no. 1, pp. 109~213, Jan. 2013 논문을 참조할 수 있다.Additional constraints
Figure 112015002552790-pat00063
H. Park, N. Thomos, and P. Frossard, Approximate decoding approaches for network coded correlated data, Signal Processing (Elsevier), vol. 93, no. 1, pp. 109 to 213, Jan. 2013 thesis can be referred to.

(T-K)×T 행렬

Figure 112015002552790-pat00064
는 유사도 모델에 기초하여 생성될 수 있는데, 예를 들어 가장 유사한 데이터
Figure 112015002552790-pat00065
Figure 112015002552790-pat00066
의 위치에 상응하는 자리에 값 "1" 및 "1"을 가지는 두 개의 요소들을 제외하고 각 행이 0으로 구성되도록 생성된다. 또한
Figure 112015002552790-pat00067
은 T-K 길이를 가지는 벡터로서 결정되는데, 예를 들어 벡터
Figure 112015002552790-pat00068
내의 모든 요소들이 0일 수 있다(
Figure 112015002552790-pat00069
).(TK) x T matrix
Figure 112015002552790-pat00064
May be generated based on the similarity model, for example, the most similar data
Figure 112015002552790-pat00065
And
Figure 112015002552790-pat00066
Quot; 1 "and" 1 "in the place corresponding to the position of " 1 &quot; Also
Figure 112015002552790-pat00067
Is determined as a vector having a TK length, for example, vector
Figure 112015002552790-pat00068
All elements in the array can be zero (
Figure 112015002552790-pat00069
).

이렇게 하여 원본 데이터의 근사 심볼

Figure 112015002552790-pat00070
은 다음의 수학식 6과 같이 얻어질 수 있다.Thus, an approximate symbol of the original data
Figure 112015002552790-pat00070
Can be obtained by the following Equation (6).

Figure 112015002552790-pat00071
Figure 112015002552790-pat00071

이를 통해 복호화기는 일부 심볼들이 완전한 복호화에 불충분하더라도 원래의 심볼들을 근사적으로 복원할 수 있다.This allows the decoder to approximate the original symbols even though some symbols are insufficient for complete decoding.

이러한 근사 복호화 알고리즘의 핵심 아이디어는 소스의 상관 관계에 기초하여 잉여 방정식을 추가하여 수학식 6에서

Figure 112015002552790-pat00072
를 가역적으로(invertible) 만든다는 점이다.
The key idea of this approximate decryption algorithm is to add a remainder equation based on the source correlation,
Figure 112015002552790-pat00072
To make it invertible.

3. 본 발명의 실시예들에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템
3. A TCP-based data streaming system capable of implementing network coding according to embodiments of the present invention

3.1 제1 실시예3.1 First embodiment

도 2를 참조하여 본 발명의 실시예들에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템을 아래와 같이 예시한다. Referring to FIG. 2, a TCP-based data streaming system capable of implementing network coding according to embodiments of the present invention is exemplified as follows.

도 2에서, 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템(20)은 적어도 하나의 송신 노드들(21a, 21b, 21c), 인코딩 라우터(22), 디코딩 라우터(23) 및 하나 이상의 수신 노드들(24a, 24b, 24c)을 포함할 수 있다. 2, a TCP-based data streaming system 20 capable of implementing network coding comprises at least one transmitting node 21a, 21b, 21c, an encoding router 22, a decoding router 23 and one or more receiving nodes (24a, 24b, 24c).

기본적으로 TCP 기반 데이터 스트리밍 시스템(20)은 TCP 기반 네트워크 상에서 구현되므로, 송신 노드들(21a, 21b, 21c)과 인코딩 라우터(22) 사이, 디코딩 라우터(23)와 수신 노드들(24a, 24b, 24c) 사이에는 각각 TCP 세션들이 생성되어 있다. 인코딩 라우터(22)와 디코딩 라우터(23) 사이에도 소정의 TCP 기반 라우팅 경로가 형성되어 있는데, 상황에 따라서는 반영구적으로 TCP 세션이 유지될 수 있다.Basically, since the TCP-based data streaming system 20 is implemented on the TCP-based network, the decoding routers 23 and the receiving nodes 24a, 24b, and 24c, between the transmitting nodes 21a, 21b, and 21c and the encoding router 22, And TCP sessions are generated between the terminals 24a and 24c. A predetermined TCP-based routing path is also formed between the encoding router 22 and the decoding router 23, and a TCP session can be semi-persistently maintained depending on the situation.

인코딩 라우터(22)와 디코딩 라우터(23)는 예를 들어 인터넷 서비스 제공자(ISP, Internet Service Provider)의 라우터일 수도 있고, 송신 노드들(21a, 21b, 21c)로 구성된 로컬 네트워크의 게이트웨이, 또는 수신 노드들(24a, 24b, 24c)로 구선된 또 다른 로컬 네트워크의 게이트웨이일 수도 있다.The encoding router 22 and the decoding router 23 may be, for example, a router of an Internet service provider (ISP), a gateway of a local network composed of the transmitting nodes 21a, 21b and 21c, Or may be the gateway of another local network that is wired to nodes 24a, 24b, and 24c.

송신 노드들(21a, 21b, 21c)과 인코딩 라우터(22) 사이의 TCP 세션들은 항시적으로 생성되어 있을 수도 있지만, 송신 노드들(21a, 21b, 21c) 각각이 데이터를 전송하고자 할 때마다 일시적으로 생성될 수 있다. 마찬가지로, 디코딩 라우터(23)와 수신 노드들(24a, 24b, 24c) 사이의 TCP 세션들도 항시적으로 생성되어 있을 수도 있지만, 디코딩 라우터(23)가 수신 노드들(21a, 21b, 21c) 각각에 데이터를 전송하고자 할 때에 일시적으로 생성될 수 있다.Although the TCP sessions between the transmitting nodes 21a, 21b and 21c and the encoding router 22 may be constantly generated, each time the transmitting nodes 21a, 21b and 21c transmit data, Lt; / RTI &gt; Likewise, although the TCP sessions between the decoding router 23 and the receiving nodes 24a, 24b and 24c may also be constantly generated, the decoding routers 23 may be connected to the receiving nodes 21a, 21b and 21c When the data is to be transmitted to the mobile station.

송신 노드들(21a, 21b, 21c)은 TCP 세그먼트를 전송하는 통상적인 방식대로 각자의 소스 데이터(x1, x2, x3)를 TCP 세그먼트의 형태로 각각 인코딩 라우터(22)에 전송한다. 경우에 따라서는 하나의 송신 노드(21a)가 긴 시간에 걸쳐 복수의 소스 데이터들(x1, x2, x3)을 순차적으로 인코딩 라우터(22)에 전송할 수도 있다.And it transmits to the transmitting nodes (21a, 21b, 21c) are each encoded router 22, the conventional respective source data (x 1, x 2, x 3) in the manner in the form of TCP segments sending TCP segments. In some cases, may be transmitted on one transmission node (21a) has a plurality of data sources over a long period of time (x 1, x 2, x 3) encoding a router in sequence (22).

수신 노드들(24a, 24b, 24c)은 TCP 세그먼트를 수신하는 통상적인 방식대로, 복원된 소스 데이터들(x1, x2, x3)을 TCP 세그먼트의 형태로 각각 디코딩 라우터(23)로부터 수신할 수 있다.Received from the receiving nodes (24a, 24b, 24c) is in a conventional manner for receiving TCP segments, the restored source data (x 1, x 2, x 3), each decoding a router 23 in the form of TCP segments can do.

즉 송신 노드들(21a, 21b, 21c)나 수신 노드들(24a, 24b, 24c)에 관하여, 네트워크 코딩을 구현하기 위해 하드웨어적으로 개조되거나 또는 네트워크 계층 구조가 변경되어야 할 부분은 실질적으로 없다. 다만 송신 노드(21a, 21b, 21c)가 송신하는 데이터가 네트워크 코딩될 데이터라는 점을 인코딩 라우터(22)가 미리 알 수 있도록, 또는 네트워크 코딩된 데이터로부터 디코딩된 소스 데이터를 수신 노드(24a, 24b, 24c)가 수신받아야 하는 점을 디코딩 라우터(23)가 미리 알 수 있도록, TCP 세션의 생성 시에 TCP 헤더에 기입될 적절한 정보, 예를 들어 미리 약속된 포트 번호를 설정하는 등의 통상적이지만 구체적인 처리가 필요할 수 있다.That is, with respect to the transmitting nodes 21a, 21b, and 21c and the receiving nodes 24a, 24b, and 24c, there is substantially no hardware portion that needs to be modified or the network hierarchy to be changed to implement network coding. However, it is also possible that the encoding router 22 knows in advance that the data transmitted by the transmitting nodes 21a, 21b, 21c is data to be network coded, or that the source nodes decoded from the network coded data are received by the receiving nodes 24a, 24b Such as setting the appropriate information to be written in the TCP header, for example, a predetermined port number in advance, at the time of creation of the TCP session, so that the decoding router 23 can know in advance Processing may be required.

앞서 설명하였듯이, 네트워크 코딩은 소스 데이터들의 상관 관계가 높은 경우에 특히 적합하므로, 송신 노드들(21a, 21b, 21c)은 상관 관계가 높은 공통된 속성의 데이터들을 전송하는 것이 바람직하다. 예를 들어, 송신 노드들(21a, 21b, 21c)은 어느 한 동영상 파일의 서로 다른 파트들에 해당하는 데이터들을 각자 인코딩 라우터(22)에 전송할 수 있다. 이 경우에, 송신 노드들(21a, 21b, 21c)은 분산 전송하는 파일에 대한 메타 정보(meta information), 즉 파일의 이름, 사이즈, 분할된 데이터 개수 등)을 인코딩 라우터(22)에 미리 전송할 수 있다. 메타 정보는 디코딩 라우터(23)에도 전송된다.As described above, since the network coding is particularly suitable when the correlation of the source data is high, it is preferable that the transmitting nodes 21a, 21b, and 21c transmit data having a common attribute with high correlation. For example, the transmitting nodes 21a, 21b, and 21c may transmit data corresponding to different parts of a moving picture file to the encoding router 22, respectively. In this case, the transmitting nodes 21a, 21b, and 21c transmit the meta information about the file to be distributed and transmitted, that is, the file name, the size, the number of divided data, . The meta information is also transmitted to the decoding router 23.

한편, 송신 노드들(21a, 21b, 21c)의 각각이 데이터를 전송하기 위한 세그먼트 길이는 동일한 것이 바람직하지만, 경우에 따라 다를 수도 있다. 다만, 네트워크 코딩하려는 소스 데이터들의 길이가 서로 다를 경우에 수학식 3과 같은 네트워크 코딩이 적절하게 수행되기 어려우므로, 인코딩 라우터(22)는 인코딩될 소스 데이터들의 길이를 모두 동일하게 만들 수 있도록 원래의 데이터들에 소정의 패딩 스트링(padding string)을 부가하여 동일한 길이의 소스 데이터들로 만들 수 있다.On the other hand, it is preferable that the segment lengths for transmitting data by each of the transmission nodes 21a, 21b, and 21c are the same, but they may be different depending on cases. However, when the length of the source data to be network-encoded is different from each other, it is difficult for the network coding such as Equation (3) to be properly performed. Therefore, A predetermined padding string may be added to the data to make the source data of the same length.

인코딩 라우터(22)는 수신된 소스 데이터들(x1, x2, x3)을 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00073
로써 네트워크 코딩하여 인코딩된 데이터들(y1, y2, y3)을 생성한다.The encoding router 22 converts the received source data (x 1 , x 2 , x 3 ) into a network coding coefficient matrix
Figure 112015002552790-pat00073
To generate encoded data (y 1 , y 2 , y 3 ).

이때, 인코딩 라우터(22)의 계층 구조는 도 3과 같이 설명될 수 있다. 도 3은 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 인코딩 라우터의 계층 구조를 예시한 개념도이다.At this time, the hierarchical structure of the encoding router 22 can be described as shown in FIG. 3 is a conceptual diagram illustrating a hierarchical structure of an encoding router capable of implementing network coding according to an embodiment of the present invention.

도 3에서, 인코딩 라우터(22)의 네트워크 계층 구조는 간략하게 PHY 계층(221), MAC 계층(222), 네트워크 계층(223), 전송 계층(224)과 인코딩 어플리케이션(225)으로 예시될 수 있다.3, the network hierarchy of the encoding router 22 may be illustrated as a simplified PHY layer 221, a MAC layer 222, a network layer 223, a transport layer 224 and an encoding application 225 .

예를 들어, 인코딩 라우터(22)의 PHY 계층(221)과 MAC 계층(222)은 이더넷 기반이고, 네트워크 계층(223)은 IP 기반, 전송 계층(224)은 TCP 기반으로 예시될 수 있다.For example, the PHY layer 221 and MAC layer 222 of the encoding router 22 may be Ethernet-based, the network layer 223 may be IP-based, and the transport layer 224 may be TCP-based.

응용 계층에서 구동 중인 인코딩 어플리케이션(225)은 송신 노드(21a, 21b, 21c)의 어플리케이션(미도시)와 함께 동작하여 전송 계층(224)을 통해 사전에 TCP 세션을 생성하고 소정의 포트 번호를 설정한다.The encoding application 225 running in the application layer operates together with the application (not shown) of the transmitting nodes 21a, 21b and 21c to generate a TCP session in advance via the transport layer 224 and set a predetermined port number do.

이어서, 송신 노드(21a, 21b, 21c)는, TCP 세션의 생성 시에 설정되는 소정의 포트 번호에 따라 적절하게 TCP 헤더를 설정하고 TCP 세그먼트의 페이로드에 소스 데이터(x1, x2, x3)를 탑재하여 IP 패킷을 생성하며, 생성된 IP 패킷을 이더넷 망을 통해 인코딩 라우터(22)로 송신한다.Then, the transmitting nodes 21a, 21b, and 21c set TCP headers appropriately according to a predetermined port number set at the time of creation of the TCP session, and add the source data (x 1 , x 2 , x 3 ) to generate an IP packet, and transmits the generated IP packet to the encoding router 22 through the Ethernet network.

인코딩 라우터(22)의 PHY 계층(221)과 MAC 계층(222)은 이더넷 프레임을 수신한다. MAC 계층(222)은 수신된 이더넷 프레임이 예를 들어 IP 패킷을 포함하면 IP 패킷을 네트워크 계층(223)에 제공한다. 네트워크 계층(223)은 IP 패킷 내의 데이터그램이 TCP 세그먼트이면 전송 계층(224)에 TCP 세그먼트를 제공한다.The PHY layer 221 and the MAC layer 222 of the encoding router 22 receive the Ethernet frame. The MAC layer 222 provides the IP packet to the network layer 223 if the received Ethernet frame includes, for example, an IP packet. The network layer 223 provides a TCP segment to the transport layer 224 if the datagram in the IP packet is a TCP segment.

여기까지의 동작은 통상적으로 라우터에서 일어나는 동작들이다. 선행문헌 [2]와 같은 종래의 TCP 기반의 네트워크 코딩 구현 기법은 네트워크 계층(223)과 전송 계층(224) 사이에 TCP 세그먼트들을 네트워크 코딩하는 네트워크 코딩 계층을 추가하였다. 선행문헌 [2]의 네트워크 코딩 계층은 수신되는 TCP 세그먼트들을 네트워크 코딩하고, 네트워크 코딩된 새로운 TCP 세그먼트를 네트워크 계층으로 전달하였다.The operations up to this point are those operations usually occurring in a router. A conventional TCP-based network coding implementation technique such as the prior art document [2] has added a network coding layer for network coding TCP segments between the network layer 223 and the transport layer 224. [ The network coding layer of the preceding document [2] network-encodes the received TCP segments and delivers the network-coded new TCP segments to the network layer.

이러한 종래의 TCP 기반의 네트워크 코딩 구현 기법은 수신되는 TCP 세그먼트들을 네트워크 코딩하고 곧바로 IP 계층으로 전달하기 때문에, 속도가 빠르고 기존의 TCP/IP 체계와 어울릴 수 있다. 하지만, 거의 대부분의 TCP 세그먼트들을 네트워크 코딩하기 때문에, 서로 상관성이 없는 TCP 세그먼트들도 네트워크 코딩하며, 패킷 손실이나 전송 지연이 일어나는 경우에는 수신 측에서 제때 데이터를 복구할 수 없기 때문에 장기적으로는 전송 효율이 좋지 않을 수 있다. 또한, 네트워크 코딩 계층을 네트워크 계층과 전송 계층 사이에 추가하므로 네트워크 계층과 전송 계층이 각각 네트워크 코딩 계층을 인식하고 메시지들을 주고받을 수 있도록 개조해야 한다.Such a conventional TCP-based network coding implementation scheme speeds up the network segmentation of the received TCP segments and immediately transfers them to the IP layer, which can be matched with the existing TCP / IP scheme. However, since most of the TCP segments are network-coded, TCP segments that are not correlated with each other are network-coded. If packet loss or transmission delay occurs, the receiving side can not recover data on time. This may not be good. In addition, since the network coding layer is added between the network layer and the transport layer, the network layer and the transport layer must be reconfigured to recognize the network coding layer and exchange messages.

반면에 본 발명의 네트워크 코딩을 구현할 수 있는 TCP 기반 네트워크 라우터들(22, 23)은 전송 계층(224) 상위의 응용 계층에서 네트워크 코딩을 수행한다.On the other hand, the TCP-based network routers 22 and 23 capable of implementing the network coding of the present invention perform network coding at an application layer higher than the transport layer 224. [

이에 따라, 전송 계층(224)은 TCP 세그먼트 내의 TCP 헤더에서 예를 들어 특정 포트 번호를 식별하고 해당 TCP 세그먼트를 인코딩 어플리케이션(225)에 제공한다.Accordingly, the transport layer 224 identifies, for example, a particular port number in the TCP header in the TCP segment and provides the corresponding TCP segment to the encoding application 225.

인코딩 어플리케이션(225)은 TCP 세션이 각각 생성되어 있는 송신 노드들(21a, 21b, 21c)로부터 네트워크 코딩을 위해 전송된 소스 데이터들(x1, x2, x3)과 메타 정보를 취합하고, 메타 정보에 기초하여 적절한 크기의 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00074
를 설정하며, 소스 데이터들(x1, x2, x3)을 네트워크 코딩 계수 행렬
Figure 112015002552790-pat00075
로써 네트워크 코딩하고, 네트워크 코딩된 데이터들(y1, y2, y3)을 생성한다.The encoding application 225 collects the meta information and the source data (x 1 , x 2 , x 3 ) transmitted for network coding from the transmission nodes 21a, 21b, and 21c where TCP sessions are respectively generated, Based on the meta information, an appropriate size network coding coefficient matrix
Figure 112015002552790-pat00074
And sets the source data (x 1 , x 2 , x 3 ) as a network coding coefficient matrix
Figure 112015002552790-pat00075
And generates network coded data (y 1 , y 2 , y 3 ).

한편, 네트워크 코딩된 데이터들은 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00076
의 역행렬
Figure 112015002552790-pat00077
을 이용하여 수학식 4과 같이 이상적으로 복호되거나 또는 수학식 5 및 수학식 6와 같이 근사 복호될 수 있다. 이를 위해, 인코딩 어플리케이션(225)은 네트워크 코딩된 데이터(y1, y2, y3)와 네트워크 코딩 행렬
Figure 112015002552790-pat00078
의 계수들, 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00079
가 TCP 세그먼트에 포함되도록 할 필요가 있다.On the other hand, the network coded data includes a network coding coefficient matrix
Figure 112015002552790-pat00076
Inverse of
Figure 112015002552790-pat00077
(4) or may be approximated as shown in Equations (5) and (6). To this end, the encoding application 225 may generate the network coded data (y 1 , y 2 , y 3 )
Figure 112015002552790-pat00078
The additional constraints for approximate decoding,
Figure 112015002552790-pat00079
Needs to be included in the TCP segment.

실시예에 따라, 인코딩 어플리케이션(225)은 네트워크 코딩된 데이터(y1, y2, y3)와 네트워크 코딩 행렬

Figure 112015002552790-pat00080
의 계수들, 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00081
을 TCP 페이로드에 탑재하도록 설정한 메시지를 전송 계층(224)에 전달할 수 있다. In accordance with an embodiment, the encoding application 225 may generate the network coded data (y 1 , y 2 , y 3 )
Figure 112015002552790-pat00080
The additional constraints for approximate decoding,
Figure 112015002552790-pat00081
To the transport layer 224. The transport layer 224 may transmit the message to the transport layer 224. [

이 경우에, 전송 계층(224)은 네트워크 코딩된 데이터(y1, y2, y3)와 네트워크 코딩 행렬

Figure 112015002552790-pat00082
의 계수들 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00083
을 TCP 페이로드에 탑재한 TCP 세그먼트를 생성하고, 생성된 TCP 세그먼트를 네트워크 계층(223)으로 전달할 수 있다.In this case, the transport layer 224 includes network coded data (y 1 , y 2 , y 3 ) and a network coding matrix
Figure 112015002552790-pat00082
Additional constraints for the coefficients to approximate decoding
Figure 112015002552790-pat00083
To the network layer 223, and transmits the generated TCP segment to the network layer 223. The TCP segment is transmitted to the network layer 223 via the TCP segment.

다른 실시예에서는, 인코딩 어플리케이션(225)은 네트워크 코딩된 데이터(y1, y2, y3)를 TCP 페이로드에 탑재하고 네트워크 코딩 행렬

Figure 112015002552790-pat00084
의 계수들 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00085
을 TCP 헤더에 탑재하도록 설정한 메시지를 전송 계층(224)에 전달할 수 있다. In another embodiment, the encoding application 225 loads the network coded data (y 1 , y 2 , y 3 ) into a TCP payload,
Figure 112015002552790-pat00084
Additional constraints for the coefficients to approximate decoding
Figure 112015002552790-pat00085
To the transport layer 224. In this case,

이 경우에, 전송 계층(224)은 네트워크 코딩된 데이터(y1, y2, y3)를 TCP 페이로드에 탑재하고 네트워크 코딩 행렬

Figure 112015002552790-pat00086
의 계수들 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00087
을 TCP 헤더, 예를 들어 TCP 옵션 필드에 기록하여 TCP 세그먼트를 생성하고, 생성된 TCP 세그먼트를 네트워크 계층(223)으로 전달할 수 있다.In this case, the transport layer 224 mounts the network coded data (y 1 , y 2 , y 3 ) in the TCP payload,
Figure 112015002552790-pat00086
Additional constraints for the coefficients to approximate decoding
Figure 112015002552790-pat00087
For example, in the TCP option field to generate a TCP segment, and transmit the generated TCP segment to the network layer 223. [

이러한 전송 계층(224)의 동작은 전송 계층의 기본적인 동작을 그대로 이용하는 것이고 본 발명의 구현을 위해 개조(modify)되어야 하는 부분은 전혀 없다.The operation of this transport layer 224 is to use the basic operation of the transport layer as it is and there is absolutely no part that has to be modified for the implementation of the present invention.

TCP 세그먼트의 구조를 예시하기 위해 도 4를 참조할 수 있다. 도 4는 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템에서 네트워크 인코딩 라우터가 생성하는 TCP 세그먼트의 구조를 예시한 도면이다.To illustrate the structure of a TCP segment, refer to FIG. 4 is a diagram illustrating a structure of a TCP segment generated by a network encoding router in a TCP-based data streaming system capable of implementing network coding according to an embodiment of the present invention.

도 4에서, TCP 세그먼트들은 네트워크 코딩된 데이터(y1, y2, y3)를 각각 TCP 페이로드에 탑재하고, 각각 동수의, 예를 들어 세 개씩의 네트워크 코딩 행렬 계수들(c1 내지 c9)을 TCP 헤더에 기록하는 식으로 생성된다.In Fig. 4, the TCP segments carry network coded data (y 1 , y 2 , y 3 ), respectively, in a TCP payload, and each of the three equal number of network coding matrix coefficients c 1 to c 9 ) in the TCP header.

도 2로 돌아가서, 인코딩 라우터(22)는 네트워크 코딩된 데이터들(y1, y2, y3)과 네트워크 코딩 행렬 계수들을 탑재한 TCP 세그먼트들을 미리 생성된 TCP 세션을 통해 디코딩 라우터(23)에 전송한다. 인코딩 라우터(22)가 송신하는 TCP 세그먼트들은 IP 패킷에 실려, 통상적인 IP 패킷과 다를 바 없이 디코딩 라우터(23)에 전송될 수 있다. 2, the encoding router 22 transmits TCP segments carrying the network coded data (y 1 , y 2 , y 3 ) and the network coding matrix coefficients to the decoding router 23 through a pre-generated TCP session send. The TCP segments sent by the encoding router 22 are carried in IP packets and can be transmitted to the decoding router 23 without being different from ordinary IP packets.

실시예에 따라, 인코딩 라우터(22)가 출력하는 네트워크 코딩된 데이터는 곧바로 디코딩 라우터(23)로 전송되는 대신에, 또다른 인코딩 라우터를 거칠 수도 있다. 이 경우에, 또 다른 인코딩 라우터는 수신된 네트워크 코딩된 데이터를 다시 네트워크 코딩할 수 있다.Depending on the embodiment, the network coded data output by the encoding router 22 may be routed through another encoding router, instead of being forwarded directly to the decoding router 23. In this case, another encoding router may again network encode the received network coded data.

지금까지 TCP 위주로 설명하였지만, 송신 노드들(21a, 21b, 21c)이 UDP(User Datagram Protocol) 세그먼트에 소스 데이터들을 탑재하여 인코딩 라우터(22)에 송신하는 것도 가능하며, 인코딩 라우터(22)가 소스 데이터들과 네트워크 코딩 계수 행렬의 원소들을 UDP 세그먼트에 탑재하여 디코딩 라우터(23)에 전송하는 것도 가능하다.It is also possible that the transmitting nodes 22a, 21b and 21c transmit the source data to the encoding router 22 by loading the source datagram in a User Datagram Protocol (UDP) segment, It is also possible to load the elements of the data and the network coding coefficient matrix into the UDP segment and transmit them to the decoding router 23.

디코딩 라우터(23)는 인코딩 라우터(22)와 마찬가지로 도 5에 예시된 네트워크 계층 구조를 가진다. 도 5는 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 디코딩 라우터의 계층 구조를 예시한 개념도이다.Decoding router 23 has a network hierarchy as illustrated in FIG. 5, as well as encoding router 22. 5 is a conceptual diagram illustrating a hierarchical structure of a decoding router capable of implementing network coding according to an embodiment of the present invention.

도 5에서, 디코딩 라우터(23)의 네트워크 계층 구조도 간략하게 PHY 계층(231), MAC 계층(232), 네트워크 계층(233), 전송 계층(234)과 디코딩 어플리케이션(235)으로 예시될 수 있다.5, the network hierarchy of the decoding router 23 may also be briefly illustrated by the PHY layer 231, the MAC layer 232, the network layer 233, the transport layer 234 and the decoding application 235 .

예를 들어, 디코딩 라우터(23)의 PHY 계층(231)과 MAC 계층(232)은 이더넷 기반이고, 네트워크 계층(233)은 IP 기반, 전송 계층(234)은 TCP 기반으로 예시될 수 있다.For example, the PHY layer 231 and the MAC layer 232 of the decoding router 23 may be Ethernet-based, the network layer 233 may be IP-based, and the transport layer 234 may be TCP-based.

응용 계층에서 구동 중인 디코딩 어플리케이션(235)은 수신 노드(24a, 24b, 24c)의 어플리케이션(미도시)와 함께 동작하여 전송 계층(234)을 통해 사전에 TCP 세션을 생성하고 소정의 포트 번호를 설정한다.The decoding application 235 running in the application layer operates together with the application (not shown) of the receiving nodes 24a, 24b and 24c to generate a TCP session in advance via the transport layer 234 and set a predetermined port number do.

디코딩 라우터(23)의 PHY 계층(231)과 MAC 계층(232)은 이더넷 프레임을 수신한다. MAC 계층(232)은 수신된 이더넷 프레임이 예를 들어 IP 패킷을 포함하면 IP 패킷을 네트워크 계층(233)에 제공한다. 네트워크 계층(233)은 IP 패킷 내의 데이터그램이 TCP 세그먼트이면 전송 계층(234)에 TCP 세그먼트를 제공한다.The PHY layer 231 and the MAC layer 232 of the decoding router 23 receive an Ethernet frame. The MAC layer 232 provides the IP packet to the network layer 233 if the received Ethernet frame includes, for example, an IP packet. The network layer 233 provides a TCP segment to the transport layer 234 if the datagram in the IP packet is a TCP segment.

전송 계층(234)은 TCP 세그먼트 내의 TCP 헤더에서 예를 들어 특정 포트 번호를 식별하고 해당 TCP 세그먼트를 디코딩 어플리케이션(235)에 제공한다.The transport layer 234 identifies, for example, a particular port number in the TCP header in the TCP segment and provides the corresponding TCP segment to the decoding application 235.

디코딩 어플리케이션(235)은 TCP 세그먼트로부터 네트워크 코딩된 데이터들(y1, y2, y3)과 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00088
의 계수들 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00089
을 추출하고, 별도로 네트워크 코딩되지 않은 메타 정보를 획득할 수 있다.The decoding application 235 receives the network coded data (y 1 , y 2 , y 3 ) and the network coding coefficient matrix
Figure 112015002552790-pat00088
Additional constraints for the coefficients to approximate decoding
Figure 112015002552790-pat00089
And obtain meta information that is not separately network coded.

실시예에 따라, 디코딩 어플리케이션(235)는 TCP 페이로드로부터 네트워크 코딩된 데이터들(y1, y2, y3)과 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00090
의 계수들 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00091
을 추출할 수 있다.According to an embodiment, the decoding application 235 receives network coded data (y 1 , y 2 , y 3 ) from the TCP payload and a network coding coefficient matrix
Figure 112015002552790-pat00090
Additional constraints for the coefficients to approximate decoding
Figure 112015002552790-pat00091
Can be extracted.

실시예에 따라, 디코딩 어플리케이션(235)는 TCP 페이로드로부터 네트워크 코딩된 데이터들(y1, y2, y3)을 추출하고, TCP 헤더로부터 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00092
의 계수들 내지 근사 복호를 위한 추가 제한 조건
Figure 112015002552790-pat00093
을 추출할 수 있다.According to an embodiment, the decoding application 235 extracts the network coded data (y 1 , y 2 , y 3 ) from the TCP payload and extracts the network coding coefficient matrix
Figure 112015002552790-pat00092
Additional constraints for the coefficients to approximate decoding
Figure 112015002552790-pat00093
Can be extracted.

이어서, 디코딩 어플리케이션(235)는 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00094
의 역행렬
Figure 112015002552790-pat00095
과 네트워크 코딩된 데이터들(y1, y2, y3)로부터 수학식 4과 같이 이상적으로 복호하거나 또는 수학식 5 및 수학식 6와 같이 근사 복호함으로써 소스 데이터들(x1, x2, x3)을 복원할 수 있다.The decoding application 235 then uses the network coding coefficient matrix &lt; RTI ID = 0.0 &gt;
Figure 112015002552790-pat00094
Inverse of
Figure 112015002552790-pat00095
With the network coded data (y 1, y 2, y 3) ideal decoding or the source data by approximating the decoding as shown in Equation 5 and Equation 6 (x 1, x 2, x a as shown in Equation 4, from 3 ) can be restored.

디코딩 어플리케이션(235)은 복원된 소스 데이터들(x1, x2, x3)을 TCP 세션을 통해, 즉 통상적인 TCP 프로토콜을 통해, 각각 적어도 하나의 수신 노드(24a, 24b, 24c)에 전송한다.The decoding application 235 sends the restored source data (x 1 , x 2 , x 3 ) to at least one receiving node 24a, 24b, 24c via a TCP session, do.

이렇듯, 기존의 TCP 기반 인프라스트럭처에 대해 아무런 개조나 변형을 가하지 않고 단지 라우터 역할을 하는 두 노드에 각각 네트워크 코딩을 어플리케이션 계층에서 수행할 인코딩 어플리케이션과 디코딩 어플리케이션을 설치하는 것만으로, 네트워크 코딩을 구현할 수 있다.In this way, it is possible to implement network coding by simply installing an encoding application and a decoding application for performing network coding at the application layer on each of two nodes serving as routers, without modifying or modifying the existing TCP-based infrastructure have.

한편, 도 6 내 도 8은 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 TCP 기반 데이터 스트리밍 시스템에서 스트리밍 서버가 스트리밍 데이터를 네트워크 코딩 기법으로 스트리밍 클라이언트에 전송하는 절차들을 예시한 개념도들이다.FIG. 8 is a conceptual diagram illustrating procedures for a streaming server to transmit streaming data to a streaming client using a network coding scheme in a TCP-based data streaming system capable of implementing network coding according to an embodiment of the present invention.

도 6을 참조하면, 비디오 스트리밍 서비스를 원하는 사용자가 소정의 스트리밍 클라이언트(64)를 통해 비디오 스트리밍 웹 사이트에 접속하여 특정 비디오 링크를 클릭한 경우에, 스트리밍 클라이언트(64)와 디코딩 라우터(63), 인코딩 라우터(62) 및 스트리밍 서버(61) 사이에 각각 TCP 세션이 생성된다.6, when a user who wants a video streaming service accesses a video streaming website through a predetermined streaming client 64 and clicks a specific video link, the streaming client 64 and the decoding router 63, A TCP session is created between the encoding router 62 and the streaming server 61, respectively.

스트리밍 서버(61)는 내부적으로 복수의 동영상 인코딩 노드들(61a, 61b, 61c)을 가질 수 있다. 복수의 동영상 인코딩 노드들(61a, 61b, 61c)은 도 2에서 예시되는 송신 노드들(21a, 21b, 21c)에 상응할 수 있다.The streaming server 61 may internally have a plurality of video encoding nodes 61a, 61b, and 61c. The plurality of video encoding nodes 61a, 61b, and 61c may correspond to the transmission nodes 21a, 21b, and 21c illustrated in FIG.

도 7을 참조하면, 스트리밍 서버(61)가 요청된 비디오 데이터를, 예를 들어 TCP 세그먼트의 페이로드에 탑재한 형태로 인코딩 라우터(62)에 전송한다.Referring to FIG. 7, the streaming server 61 transmits the requested video data to the encoding router 62 in the form of, for example, a payload of a TCP segment.

인코딩 라우터(62)에서, 인코딩 어플리케이션(621)이 수신된 TCP 세그먼트들로부터 추출된 소스 데이터들을 소정의 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00096
로 네트워크 코딩하고, 인코딩 라우터(62)는 네트워크 코딩된 데이터들을 TCP 세그먼트에 탑재하여 디코딩 라우터(63)로 전송한다.In the encoding router 62, the encoding application 621 converts the source data extracted from the received TCP segments into a predetermined network coding coefficient matrix &lt; RTI ID = 0.0 &gt;
Figure 112015002552790-pat00096
And the encoding router 62 loads the network coded data into the TCP segment and transmits it to the decoding router 63. [

디코딩 라우터(63)에서, 디코딩 어플리케이션(631)이 수신된 TCP 세그먼트들로부터 추출된 네트워크 코딩된 데이터들을 소정의 네트워크 코딩 계수 행렬

Figure 112015002552790-pat00097
의 역행렬
Figure 112015002552790-pat00098
로 디코딩하여 소스 데이터들을 복원하고, 디코딩 라우터(63)는 복원된 소스 데이터들을 TCP 세그먼트에 탑재하여 스트리밍 클라이언트(64)로 전송한다.In the decoding router 63, the decoding application 631 transmits the network coded data extracted from the received TCP segments to a predetermined network coding coefficient matrix
Figure 112015002552790-pat00097
Inverse of
Figure 112015002552790-pat00098
And restores the source data, and the decoding router 63 loads the restored source data into the TCP segment and transmits the restored source data to the streaming client 64.

도 8을 참조하면, 비디오 스트리밍 데이터의 전송이 완료되면, 스트리밍 클라이언트(64)가 디코딩 라우터(63)와 사이의 TCP 세션을 종료한다. 그에 따라 인코딩 라우터(62)와 스트리밍 서버(61) 사이의 세션도 종료될 수 있다. 디코딩 라우터(63)와 인코딩 라우터(62) 사이의 세션은 종료될 수도 있고, 상황에 따라 다른 비디오 스트리밍 데이터의 전송에 이용될 수 있도록 유지될 수도 있다.Referring to FIG. 8, when the transmission of the video streaming data is completed, the streaming client 64 ends the TCP session with the decoding router 63. So that the session between the encoding router 62 and the streaming server 61 can also be terminated. The session between the decoding router 63 and the encoding router 62 may be terminated and may be maintained so as to be used for transmission of other video streaming data depending on the situation.

도 9는 본 발명의 일 실시예에 따른 TCP 기반 데이터 스트리밍 시스템을 통해 네트워크 코딩된 스트리밍 데이터를 전송하는 방법을 예시한 순서도이다.9 is a flowchart illustrating a method of transmitting network coded streaming data through a TCP-based data streaming system according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 실시예들에 따른 TCP 기반 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법은 단계(S91)에서 네트워크 코딩을 수행하는 인코딩 어플리케이션이 어플리케이션 계층에서 구동되는 인코딩 라우터(22)가 적어도 하나의 송신 노드(21a)와 사이에, TCP 세션을 생성하는 단계로부터 시작할 수 있다.Referring to FIG. 9, in the network-coded streaming data transmission method using the TCP-based data streaming system according to the embodiments of the present invention, in step S91, an encoding application for performing network coding is connected to an encoding router 22 may start with a TCP session between at least one sending node 21a.

실시예에 따라, TCP 대신 UDP를 이용하는 경우에는 세션을 따로 생성하지 않을 수 있다.According to the embodiment, when UDP is used instead of TCP, a session may not be separately generated.

TCP 세션이 생성되면, 단계(S92)에서, 인코딩 라우터(22)가 적어도 하나의 송신 노드(21a)로부터 네트워크 코딩될 파일의 메타 정보와 소스 데이터들을 TCP 세션을 통해 수신할 수 있다.When a TCP session is created, in step S92, the encoding router 22 can receive meta information and source data of a file to be network coded from at least one transmitting node 21a via a TCP session.

단계(S93)에서, 인코딩 라우터(22)가 네트워크 코딩 계수 행렬과 소스 데이터들에 따라 네트워크 코딩된 데이터들을 생성한다.In step S93, the encoding router 22 generates network coded data according to the network coding coefficient matrix and the source data.

단계(S94)에서, 인코딩 라우터(22)가, 네트워크 코딩을 수행하는 디코딩 어플리케이션이 어플리케이션 계층에서 구동되는 디코딩 라우터(23)와 사이에, TCP 세션을 생성한다.In step S94, the encoding router 22 creates a TCP session between the decoding application that performs network coding and the decoding router 23 that is driven in the application layer.

단계(S95)에서, 인코딩 라우터(22)가 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 TCP 세션을 통해 디코딩 라우터(23)로 전송한다.In step S95, the encoding router 22 transmits the elements of the network coded data and the network coding coefficient matrix to the decoding router 23 via the TCP session.

실시예에 따라, 네트워크 코딩된 데이터들과 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트의 페이로드에 탑재될 수 있다.According to an embodiment, the elements of the network coded data and the network coding coefficient matrix may be loaded into the payload of the TCP segment.

실시예에 따라, 네트워크 코딩된 데이터들은 TCP 세그먼트의 페이로드에 탑재되고, 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트의 TCP 헤더에 탑재될 수 있다.According to an embodiment, network coded data may be loaded into a payload of a TCP segment, and elements of a network coding coefficient matrix may be loaded into a TCP header of a TCP segment.

단계(S96)에서, 디코딩 라우터(23)가, 수신된 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 소스 데이터들을 복원한다.In step S96, the decoding router 23 decodes or approximates and decodes the received data based on the elements of the received network coded data and the network coding coefficient matrix to recover the source data.

선택적 단계(S97)에서, 디코딩 라우터(23)가, 복원된 소스 데이터들을 적어도 하나의 수신 노드들(24a)에 전송한다.
In the optional step S97, the decoding router 23 transmits the restored source data to at least one receiving nodes 24a.

3.2 적용 예시3.2 Application examples

먼저, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 엔드 유저 지향 서비스에 적용될 수 있다. 이러한 사례에서, 인코딩 라우터(22)는 예를 들어 Youtube.com™과 같은 비디오 서비스 업체의 전송 노드에 설치될 수 있고, 디코딩 라우터(23)는 웹 클라이언트와 일체화되어 개인용 컴퓨터나 모바일 단말기에 설치될 수 있다.First, the network coding data streaming system of the present invention can be applied to an end user oriented service. In such a case, the encoding router 22 may be installed in a transmission node of a video service provider such as, for example, Youtube.com, and the decoding router 23 may be integrated with a web client to be installed in a personal computer or a mobile terminal .

다음으로, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 백본 네트워크(Backbone Network)의 트래픽을 줄이는 데에 이용될 수 있다. 인코딩 라우터(22)는 예를 들어 백본 네트워크 제공 업체가 대규모 비디오 서비스 업체로부터 스트리밍 데이터를 수신하는 위치에 설치될 수 있고, 디코딩 라우터(23)는 백본 네트워크 제공 업체가 로컬 네트워크들과 연결되는 위치에 설치될 수 있다.Next, the network coding data streaming system of the present invention can be used to reduce traffic of a backbone network. The encoding router 22 may be installed, for example, at a location where the backbone network provider receives streaming data from a large video service provider, and the decoding router 23 is located at a location where the backbone network provider is connected to the local networks Can be installed.

한편, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 클라우드 시스템 내부 또는 데이터 센터 내부의 트래픽을 줄이는 데에 이용될 수 있다. 클라우드 시스템 또는 데이터 센터에서 발생하는 트래픽 중 약 3/4이 클라우드 시스템 또는 데이터 센터 내부에서 데이터의 저장, 분류, 생성, 검색, 인증, 백업 등의 작업에 의해 발생하는 것으로 알려져 있다. 따라서, 클라우드 시스템 또는 데이터 센터에서 데이터가 저장되고 검색되는 위치에 인코딩 라우터(22)를 설치하고 데이터를 외부로 출력하는 위치에 디코딩 라우터(23)를 설치한다면, 클라우드 시스템 또는 데이터 센터에서 발생하는 트래픽과 전력 소비를 크게 줄일 수 있다.Meanwhile, the network coding data streaming system of the present invention can be used to reduce traffic inside the cloud system or inside the data center. About three-quarters of the traffic coming from the cloud system or data center is known to be generated by operations such as storing, sorting, creating, searching, authenticating, and backing up data in the cloud system or data center. Therefore, if the encoding router 22 is installed in a location where data is stored and retrieved in a cloud system or a data center, and the decoding router 23 is installed in a location where data is output to the outside, the traffic generated in the cloud system or the data center And power consumption can be greatly reduced.

나아가, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 디지털 방송 네트워크에서 이용될 수 있다. 디지털 방송은 소수의 영상 정보를 동시적으로 브로드캐스트하므로 본질적으로 네트워크 코딩에 적합한 속성을 가진다.Furthermore, the network coding data streaming system of the present invention can be used in a digital broadcasting network. Since digital broadcasting simultaneously broadcasts a small number of image information, it is inherently suitable for network coding.

본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. It will be understood that variations and specific embodiments which may occur to those skilled in the art are included within the scope of the present invention.

또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Further, the apparatus according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the recording medium include ROM, RAM, optical disk, magnetic tape, floppy disk, hard disk, nonvolatile memory and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

20 TCP 기반 데이터 스트리밍 시스템
21a, 21b, 21c 송신 노드
22 인코딩 라우터
23 디코딩 라우터
24a, 24b, 24c 수신 노드
61 스트리밍 서버
62 인코딩 라우터
63 디코딩 라우터
64 스트리밍 클라이언트
20 TCP based data streaming system
21a, 21b, 21c transmitting node
22 encoding routers
23 decoding router
24a, 24b, 24c receiving node
61 streaming server
62 encoding routers
63 decoding router
64 streaming clients

Claims (14)

네트워크 코딩을 수행하는 인코딩 어플리케이션을 어플리케이션 계층에서 구동하고, 디코딩 라우터를 통해 수신 노드로부터 소스 데이터들에 관한 전송 요청이 있는 경우에 상기 소스 데이터들을 보유하는 적어도 하나의 송신 노드와 인코딩 라우터 사이에 라우팅 경로를 생성하며, 상기 적어도 하나의 송신 노드로부터 상기 라우팅 경로를 통해 소스 데이터들을 수신하고, 수신된 데이터가 상기 송신 노드에서 송신된 소스 데이터들인 경우에 수신된 상기 소스 데이터들을 상기 인코딩 어플리케이션에 제공하며, 상기 인코딩 어플리케이션에 의해 네트워크 코딩 계수 행렬과 상기 소스 데이터들을 기초로 네트워크 코딩된 데이터들을 생성하고, 상기 네트워크 코딩된 데이터들 및 상기 네트워크 코딩 계수 행렬의 원소들을 상기 디코딩 라우터로 전송하는 인코딩 라우터; 및
네트워크 코딩을 수행하는 디코딩 어플리케이션을 어플리케이션 계층에서 구동하고, 상기 수신 노드로부터 수신된 상기 전송 요청을 상기 인코딩 라우터로 전송하며, 수신된 데이터가 상기 인코딩 라우터에서 송신된 네트워크 코딩된 데이터들 및 네트워크 계수 행렬의 원소들인 경우에 상기 수신된 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들을 상기 디코딩 어플리케이션에 제공하며, 상기 디코딩 어플리케이션에 의해 상기 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 소스 데이터들을 복원하고, 복원된 상기 소스 데이터들을 적어도 하나의 수신 노드에 전송하는 디코딩 라우터를 포함하는 것을 특징으로 하는 데이터 스트리밍 시스템.
A routing path between the encoding router and at least one transmitting node that holds the source data when there is a transmission request for source data from the receiving node via the decoding router, Receiving source data from the at least one transmitting node via the routing path and providing the source data to the encoding application when the received data is source data transmitted at the transmitting node, Wherein the encoding application generates network coded data based on the network coding coefficient matrix and the source data, and transmits the network coded data and elements of the network coding coefficient matrix to the decoding router Encodes router; And
The method comprising: driving a decoding application that performs network coding at an application layer; transmitting the transmission request received from the receiving node to the encoding router; and wherein the received data includes network coded data and a network coefficient matrix Providing elements of the received network coded data and the network coefficient matrix to the decoding application if the elements of the network coded data and the network coefficient matrix are decoded by the decoding application based on the elements of the network coded data and the network coefficient matrix Or a decoding router for approximate decoding to recover source data and transmit the restored source data to at least one receiving node.
청구항 1에 있어서, 상기 인코딩 라우터가 상기 디코딩 라우터로 전송하는 네트워크 코딩된 데이터들과 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트 또는 UDP 세그먼트의 페이로드에 탑재되는 것을 특징으로 하는 데이터 스트리밍 시스템.The data streaming system of claim 1, wherein elements of the network coded data and the network coding coefficient matrix that the encoding router transmits to the decoding router are loaded in a payload of a TCP segment or a UDP segment. 청구항 1에 있어서, 상기 인코딩 라우터가 상기 디코딩 라우터로 전송하는 상기 네트워크 코딩된 데이터들은 TCP 세그먼트 또는 UDP 세그먼트의 페이로드에 탑재되고, 상기 인코딩 라우터가 상기 디코딩 라우터로 전송하는 상기 네트워크 코딩 계수 행렬의 원소들은 상기 TCP 세그먼트 또는 상기 UDP 세그먼트의 헤더에 탑재되는 것을 특징으로 하는 데이터 스트리밍 시스템.The network coding method according to claim 1, wherein the network coded data transmitted by the encoding router to the decoding router is loaded in a payload of a TCP segment or a UDP segment, Are mounted on the header of the TCP segment or the UDP segment. 삭제delete 삭제delete 청구항 1에 있어서, 상기 인코딩 라우터는 상기 송신 노드로부터 상기 소스 데이터의 메타 정보를 수신하도록 동작하는 것을 특징으로 하는 데이터 스트리밍 시스템.The data streaming system of claim 1, wherein the encoding router is operative to receive meta information of the source data from the transmitting node. 데이터 스트리밍 시스템의 라우터로서,
상기 라우터는
네트워크 코딩을 수행하는 인코딩 어플리케이션을 어플리케이션 계층에서 구동하고, 상기 라우터에 수신된 데이터가 적어도 하나의 송신 노드로부터 수신된 소스 데이터들인 경우에 상기 수신된 소스 데이터들을 상기 인코딩 어플리케이션에 제공하며, 상기 인코딩 어플리케이션에서 생성된 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 포함하는 세그먼트를 다른 라우터로 전송하도록 동작하고,
상기 인코딩 어플리케이션은
상기 다른 라우터를 통해 수신 노드로부터 상기 소스 데이터들에 관한 전송 요청이 있는 경우에 상기 소스 데이터들을 보유하는 상기 적어도 하나의 송신 노드와 상기 라우터 사이에 라우팅 경로를 생성하며, 상기 적어도 하나의 송신 노드로부터 상기 라우팅 경로를 통해 상기 소스 데이터들이 제공되면 네트워크 코딩 계수 행렬과 상기 소스 데이터들에 기초하여 상기 네트워크 코딩된 데이터들을 생성하고, 상기 네트워크 코딩된 데이터들 및 상기 네트워크 코딩 계수 행렬의 원소들을 포함하여 상기 세그먼트를 생성하도록 동작하는 것을 특징으로 하는 라우터.
As a router in a data streaming system,
The router
The method comprising: driving an encoding application that performs network coding at an application layer; providing the received source data to the encoding application if the data received at the router is source data received from at least one transmitting node; And to transmit to the other router a segment comprising elements of the network coding coefficients and the network coded data generated in the network coding coefficient matrix,
The encoding application
Generating a routing path between the at least one transmitting node holding the source data and the router when there is a transmission request for the source data from the receiving node via the another router, And generating the network coded data based on the network coding coefficient matrix and the source data when the source data is provided through the routing path, and generating the network coded data based on the network coded coefficient matrix and the elements of the network coding coefficient matrix, And to generate a segment.
데이터 스트리밍 시스템의 라우터로서,
상기 라우터는
네트워크 코딩을 수행하는 디코딩 어플리케이션을 어플리케이션 계층에서 구동하고, 상기 라우터에 수신된 데이터가 다른 라우터에서 송신된 네트워크 코딩된 데이터들 및 네트워크 계수 행렬의 원소들인 경우에 상기 수신된 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들을 상기 디코딩 어플리케이션에 제공하며, 상기 디코딩 어플리케이션에서 복원된 소스 데이터들을 적어도 하나의 수신 노드에 전송하도록 동작하고,
상기 디코딩 어플리케이션은
상기 적어도 하나의 수신 노드로부터 상기 소스 데이터들에 관한 전송 요청이 있는 경우에 상기 전송 요청을 상기 소스 데이터들을 보유한 송신 노드에 연결된 상기 다른 라우터를 통해 상기 송신 노드에 전달하고, 상기 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들이 제공되면 상기 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 상기 소스 데이터들을 복원하도록 동작하는 것을 특징으로 하는 라우터.
As a router in a data streaming system,
The router
The method comprising: driving a decoding application that performs network coding at an application layer, and when the data received at the router is elements of network-coded data and a network coefficient matrix transmitted from another router, the received network- To provide elements of the network coefficient matrix to the decoding application and to transmit the recovered source data to the at least one receiving node in the decoding application,
The decoding application
If the transmission request for the source data is received from the at least one receiving node, transferring the transmission request to the transmitting node via the other router connected to the transmitting node holding the source data, And if the elements of the network coefficient matrix are provided, recovering the source data by decoding or approximating decoding based on the elements of the network coded data and the network coefficient matrix.
네트워크 코딩을 수행하는 인코딩 어플리케이션을 어플리케이션 계층에서 구동하는 인코딩 라우터가, 디코딩 라우터를 통해 수신 노드로부터 소스 데이터들에 관한 전송 요청이 있는 경우에 상기 인코딩 어플리케이션에 의해 상기 소스 데이터들을 보유하는 적어도 하나의 송신 노드와 상기 인코딩 라우터 사이에 라우팅 경로를 생성하는 단계;
상기 인코딩 라우터가, 상기 적어도 하나의 송신 노드로부터 상기 라우팅 경로를 통해 상기 소스 데이터들을 수신하는 단계;
상기 인코딩 라우터가, 수신된 데이터가 상기 송신 노드에서 송신된 소스 데이터들인 경우에 상기 소스 데이터들을 상기 인코딩 어플리케이션에 제공함으로써 상기 인코딩 어플리케이션에 의해 네트워크 코딩 계수 행렬과 상기 소스 데이터들을 기초로 네트워크 코딩된 데이터들을 생성하는 단계;
상기 인코딩 라우터가, 네트워크 코딩을 수행하는 디코딩 어플리케이션을 어플리케이션 계층에서 구동하는 디코딩 라우터로 상기 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 전송하는 단계;
상기 디코딩 라우터가, 수신된 데이터가 상기 인코딩 라우터에서 송신된 네트워크 코딩된 데이터들 및 네트워크 계수 행렬의 원소들인 경우에 상기 수신된 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들을 상기 디코딩 어플리케이션에 제공하고, 상기 디코딩 어플리케이션에 의해 상기 네트워크 코딩된 데이터들 및 상기 네트워크 계수 행렬의 원소들을 기초로 디코딩 또는 근사 디코딩하여 소스 데이터들을 복원하는 단계; 및
상기 디코딩 라우터가, 복원된 소스 데이터들을 상기 적어도 하나의 수신 노드에 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법.
An encoding router for driving an encoding application that performs network coding at an application layer includes at least one transmission for holding the source data by the encoding application when there is a transmission request for source data from a receiving node via a decoding router, Creating a routing path between the node and the encoding router;
The encoding router receiving the source data over the routing path from the at least one transmitting node;
Wherein the encoding router provides the source data to the encoding application when the received data is source data transmitted from the transmitting node, thereby causing the encoding application to generate the network coding coefficient matrix and the network coded data based on the source data Gt;
The encoding router transmitting elements of the network coded data and a network coding coefficient matrix to a decoding router that drives a decoding application that performs network coding at an application layer;
Wherein the decoding router provides the received network coded data and elements of the network coefficient matrix to the decoding application when the received data is elements of network coded data and a network coefficient matrix transmitted from the encoding router And decoding or approximate decoding based on the network coded data and the elements of the network coefficient matrix by the decoding application to recover source data; And
Wherein the decoding router is configured to transmit the recovered source data to the at least one receiving node. &Lt; Desc / Clms Page number 19 &gt;
청구항 9에 있어서, 상기 인코딩 라우터가 상기 디코딩 라우터로 전송하는 상기 네트워크 코딩된 데이터들과 상기 네트워크 코딩 계수 행렬의 원소들은 TCP 세그먼트 또는 UDP 세그먼트의 페이로드에 탑재되는 것을 특징으로 하는 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법.The system of claim 9, wherein the network coded data and elements of the network coding coefficient matrix transmitted by the encoding router to the decoding router are loaded into a payload of a TCP segment or a UDP segment. A network coded streaming data transmission method. 청구항 9에 있어서, 상기 인코딩 라우터가 상기 디코딩 라우터로 전송하는 상기 네트워크 코딩된 데이터들은 TCP 세그먼트 또는 UDP 세그먼트의 페이로드에 탑재되고, 상기 인코딩 라우터가 상기 디코딩 라우터로 전송하는 상기 네트워크 코딩 계수 행렬의 원소들은 상기 TCP 세그먼트 또는 UDP 세그먼트의 헤더에 탑재되는 것을 특징으로 하는 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법.The network coding method according to claim 9, wherein the network coded data transmitted by the encoding router to the decoding router is loaded in a payload of a TCP segment or a UDP segment, Are loaded into the header of the TCP segment or the UDP segment. 삭제delete 삭제delete 청구항 9에 있어서,
상기 인코딩 라우터가, 상기 송신 노드로부터 상기 소스 데이터의 메타 정보를 수신하는 단계를 더 포함하는 것을 특징으로 하는 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법.
The method of claim 9,
Wherein the encoding router further comprises receiving meta information of the source data from the transmitting node. &Lt; RTI ID = 0.0 &gt; 31. &lt; / RTI &gt;
KR1020150003653A 2015-01-09 2015-01-09 Tcp based network routers supporting network coding and tcp based data streaming system using network coding KR101588549B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150003653A KR101588549B1 (en) 2015-01-09 2015-01-09 Tcp based network routers supporting network coding and tcp based data streaming system using network coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150003653A KR101588549B1 (en) 2015-01-09 2015-01-09 Tcp based network routers supporting network coding and tcp based data streaming system using network coding

Publications (1)

Publication Number Publication Date
KR101588549B1 true KR101588549B1 (en) 2016-01-26

Family

ID=55307513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150003653A KR101588549B1 (en) 2015-01-09 2015-01-09 Tcp based network routers supporting network coding and tcp based data streaming system using network coding

Country Status (1)

Country Link
KR (1) KR101588549B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101876131B1 (en) * 2017-06-22 2018-07-06 이화여자대학교 산학협력단 Apparatus and method for network encoding based on low complexity algorithms for network coding using unitary hessenberg matrix
CN114679256A (en) * 2020-12-24 2022-06-28 科大国盾量子技术股份有限公司 Multipath key relay method, device and related equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100042511A (en) * 2008-10-16 2010-04-26 숭실대학교산학협력단 Method for transmitting network data
KR20130016593A (en) 2011-08-08 2013-02-18 삼성전자주식회사 A method of performing network coding and a relay performing network coding
KR20130060976A (en) * 2011-11-30 2013-06-10 성균관대학교산학협력단 Scalable video coding layered video data transmission method and apparatus, and reception method and apparatus using network coding
KR20130101602A (en) * 2012-02-03 2013-09-16 이화여자대학교 산학협력단 Approximate decoding method for network coded linearly correlated sources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100042511A (en) * 2008-10-16 2010-04-26 숭실대학교산학협력단 Method for transmitting network data
KR20130016593A (en) 2011-08-08 2013-02-18 삼성전자주식회사 A method of performing network coding and a relay performing network coding
KR20130060976A (en) * 2011-11-30 2013-06-10 성균관대학교산학협력단 Scalable video coding layered video data transmission method and apparatus, and reception method and apparatus using network coding
KR20130101602A (en) * 2012-02-03 2013-09-16 이화여자대학교 산학협력단 Approximate decoding method for network coded linearly correlated sources

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
[2] "Network coding meets TCP" Jay Kumar Sundararajan, et al. IEEE INFOCOM 2009 pp.280-288
다중경로 환경의 네트워크 코딩에서의 TCP 성능 개선 방안, 한국 인터넷 방송통신학회 논문지 제11권 제6호(2011.12.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101876131B1 (en) * 2017-06-22 2018-07-06 이화여자대학교 산학협력단 Apparatus and method for network encoding based on low complexity algorithms for network coding using unitary hessenberg matrix
CN114679256A (en) * 2020-12-24 2022-06-28 科大国盾量子技术股份有限公司 Multipath key relay method, device and related equipment

Similar Documents

Publication Publication Date Title
US10547655B2 (en) Deltacasting
CA2985217C (en) Media data live broadcast method, device, and system
Setton et al. Peer-to-peer live multicast: A video perspective
Thomos et al. Prioritized distributed video delivery with randomized network coding
JP5392102B2 (en) Apparatus and method for reducing overhead in a wireless network
US10148721B2 (en) Video stream network coding in information centric networks
WO2006007345A2 (en) Scalable streaming media authentication
JP4211282B2 (en) Data storage method, data storage system, data recording control device, data recording command device, data receiving device, and information processing terminal
Wang et al. NCVCS: Network-coding-based video conference system for mobile devices in multicast networks
WO2014063457A1 (en) Systems and methods for data representation and transportation
JP4172259B2 (en) Information processing apparatus and method, and computer program
Martinez-Julia et al. Evaluating video streaming in network architectures for the internet of things
WO2011017982A1 (en) System, method and terminal for processing media services
WO2017196674A1 (en) System for a secure encryption proxy in a content centric network
Pereira et al. Video streaming considerations for internet of things
EP2039155A1 (en) Method for transforming terrestrial dmb contents and gateway employing the same
KR101588549B1 (en) Tcp based network routers supporting network coding and tcp based data streaming system using network coding
JP2009296164A (en) Data transmitting device, control method therefor, and program
Chieochan et al. Downlink media streaming with wireless fountain coding in wireline‐cum‐WiFi networks
CN110719247B (en) Terminal network access method and device
Romano et al. SHINE: secure hybrid in network caching environment
KR101643848B1 (en) System for high resolution live broadcasting based on network coding
Shamieh et al. Dynamic cross-layer signaling exchange for real-time and on-demand multimedia streams
KR20120101942A (en) Video streaming system and method based on fountain codes
Lamy-Bergot et al. Optimisation of multimedia over wireless IP links via X-layer design: an end-to-end transmission chain simulator

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5