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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow 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
Description
본 발명은 네트워크 코딩에 관한 것으로서, 더욱 상세하게는 라우팅 기반 네트워크 상에서 구현되는 네트워크 코딩에 관한 것이다.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.
본 발명이 해결하고자 하는 과제는 네트워크 코딩을 구현할 수 있는 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,
아래에서 "인코딩" 용어는 맥락에 따라 명확하게, 예를 들어 동영상 인코딩과 같이 표현되지 않는 한, 네트워크 코딩을 의미한다. "디코딩" 또는 "복호" 용어도 마찬가지로, 맥락에 따라 명확하게, 예를 들어 동영상 디코딩과 같이 표현되지 않는 한, 네트워크 코딩된 정보의 복원을 의미한다.
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.
소스 집합 내의 L 개의 소스 심볼들은 라고 표시되며, 각각 이산(discrete)이면서 상관되어(correlated) 있고, 1≤i≤L일 때에 이다. 는 의 알파벳 집합(alphabet set)이고 ||는 의 크기를 의미한다. 네트워크 코딩 연산은 갈로와 필드(GF: Galois Field) 내에서 수행되기 때문에, 각각의 은 GF 내의 원소로 고려되어야 한다. 가 실수 필드(, field of real numbers)에 있는 수인지 아니면 GF에 있는 수인지 여부를 명확하게 특정하기 위해서, 수학식 1과 같은 식별 함수(identity function)을 정의할 수 있다.Source set Lt; RTI ID = 0.0 > L & And are respectively discrete and correlated, and when 1? I? L to be. The Of the alphabet set (alphabet set) and | | Is . Since the network coding operation is performed in a Galois Field (GF), each Should be considered as elements in the GF. Is a real field ( , field of real numbers, or the number in GF, it is possible to define an identity function as shown in equation (1).
이는 가 을 의미하는 GF 내의 원소임을 의미한다. 인 경우에, 는 L 개의 요소를 가지는 N 번째 소스 데이터 집합이다. 는 의 알파벳 세트를 의미한다. 또한 본 명세서에서 행렬 또는 벡터의 위 첨자로 쓰이는 T는 행렬 또는 벡터의 전치(transpose)를 의미하며, 실수값 T 또는 아래 첨자로 쓰이는 T와 구별됨을 유의한다.this is end Which means that it is an element in GF. in case of, Is the Nth source dataset with L elements. The ≪ / 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 내에서 일어나는 것을 암시하므로, 기호는 생략된다. 와 연산자들은 각각 GF 내에서 정의되는 합산 연산과 승산 연산을 의미한다.In the formula describing with the operation symbols in the GF, it implies that all operations occur in the GF, The symbol is omitted. Wow 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).
수학식 2는 와 코딩 계수 의 GF에서의 선형 결합(linear combination in GF)을 의미한다. i는 1≤i≤L인 임의의 정수이고, T는 하나의 데이터그램 내에 결합된 데이터의 개수이다. 와 는 항상 GF 내의 원소로 간주될 수 있다. 코딩 계수들은 크기 2M을 가지고 GF로부터 균일하고 랜덤하게 선정되는데, 이를 라고 한다. 이는 GF 크기가 M에 의해 결정되며, 임을 의미한다.Equation (2) And a coding coefficient 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. Wow Can always be regarded as an element in the GF. The coding coefficients are chosen uniformly and randomly from GF with
본 발명에서는 특히, 특성값 2를 가지는 GF, 즉 에서 합산 연산은 XOR 연산으로 수행될 수 있다. GF의 크기는 소스 심볼에 관하여 수행될 수 있는 코딩 연산들의 집합을 결정한다. 따라서 입력 알파벳의 크기가 라고 가정할 수 있다. 만약 인 경우에는 입력 집합은 예를 들어 소스 결합(source binding) 또는 양자화 등을 이용하여 축소되고 그럼으로써 입력 집합은 GF 크기, 즉 2M을 초과하지 않게 된다.In the present invention, in particular, a GF having a characteristic value of 2 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 . if 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)인 심볼 또는 데이터그램들, 이 수신되어 연산에 쓰일 수 있다면, 선형 시스템 는 다음 수학식 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, Lt; / RTI > can be received and used in an operation, Can be expressed by the following equation (3).
여기서 연산자는 유한 필드(finite field)에서 행렬들 사이의 승산 연산을 의미한다. here The operator denotes a multiplication operation between matrices in a finite field.
K×T 행렬 는 코딩 계수 행렬(coding coefficient matrix)이라고 하는데, 컬럼 벡터들 로 구성되며, 수신된 심볼들의 유사도 모델에 기초하여 생성된다. 코딩 계수 행렬 를 유사도 모델에 기초하여 생성하는 방법은 네트워크 코딩의 복호화 기법에 숙련된 자들에게 주지된 방법이므로 설명을 생략한다.K × T matrix Is called a coding coefficient matrix, and column vectors < RTI ID = 0.0 > And is generated based on the similarity model of the received symbols. Coding coefficient matrix 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.
만약 이러한 코딩 계수 행렬 가 풀-랭크(full-rank), 즉 K=T인 경우에, 수학식 3의 선형 시스템의 해(solution)인 는, 코딩 계수 행렬 의 역행렬 가 고유하게 결정되고 또한 이에 상응하여 이기 때문에, 다음 수학식 4와 같이 고유하게 결정될 수 있다.If such a coding coefficient matrix Is a full-rank, that is, K = T, the solution of the linear system of equation (3) , A coding coefficient matrix Inverse of Is uniquely determined and correspondingly , It can be uniquely determined as shown in the following equation (4).
코딩 계수 행렬의 역행렬은 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.
문제는, 만약 고유한 역행렬 을 결정하기에 충분하지 않은 수의 심볼들만 수신된 경우에, 다시 말해, K<T인 경우에, 코딩 계수 행렬 가 풀-랭크가 아니기 때문에 수학식 3의 선형 시스템의 해 는 유일하게 결정되지 못할 뿐 아니라, 무한한 개수로 얻어질 수 있다. The problem is, if a unique inverse matrix In the case of K < T, the coding coefficient matrix < RTI ID = 0.0 > Is not a full-rank, the solution of the linear system of equation (3) 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를 수신하면 소스 데이터를 복원할 수 있다. 만약 전송 절차 중에 패킷 지연이나 손실과 같은 외부적 요인이 있거나, 또는 무작위로 선정되는 코딩 계수 행렬 이 특이 행렬(singular matrix)인 경우에는, 코딩 계수 행렬 의 역행렬 은 얻어질 수 없고 수학식 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 In the case of this singular matrix, the coding coefficient matrix Inverse of 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.
입력된 데이터의 상관 관계가 복호화 절차에서 추가되는 추가 제한 조건들 와 를 구축하는 데에 이용될 수 있다. 추가 제한 조건들 및 의 모든 요소들(elements) 역시 GF 내의 값이다.The additional constraints that the correlation of the input data adds in the decryption procedure Wow Can be used for constructing. Additional Restrictions And All the elements of GF are also values in GF.
추가 제한 조건들 및 을 추가함으로써 선형 시스템은 유일한 해를 가질 수 있게 되고 유일한 해 는 다음 수학식 5와 같이 표현될 수 있다.Additional Restrictions And By adding the linear system can be the only solution and the only solution Can be expressed by the following equation (5).
추가 제한 조건들 및 내의 계수들은 소스의 모델들에 기초하여 결정될 수 있다. 가 결정되면, 원본 데이터의 근사 심볼 은 수학식 1의 식별 함수들에 의해 과 같이 얻어질 수 있다. Additional Restrictions And The coefficients in the matrix can be determined based on the models of the source. Is determined, an approximate symbol of the original data Is determined by the identification functions of Equation (1) Can be obtained.
추가 제한 조건 의 생성에 관하여, 좀더 상세한 내용은 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 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 행렬 는 유사도 모델에 기초하여 생성될 수 있는데, 예를 들어 가장 유사한 데이터 및 의 위치에 상응하는 자리에 값 "1" 및 "1"을 가지는 두 개의 요소들을 제외하고 각 행이 0으로 구성되도록 생성된다. 또한 은 T-K 길이를 가지는 벡터로서 결정되는데, 예를 들어 벡터 내의 모든 요소들이 0일 수 있다().(TK) x T matrix May be generated based on the similarity model, for example, the most similar data And Quot; 1 "and" 1 "in the place corresponding to the position of " 1 " Also Is determined as a vector having a TK length, for example, vector All elements in the array can be zero ( ).
이렇게 하여 원본 데이터의 근사 심볼 은 다음의 수학식 6과 같이 얻어질 수 있다.Thus, an approximate symbol of the original data Can be obtained by the following Equation (6).
이를 통해 복호화기는 일부 심볼들이 완전한 복호화에 불충분하더라도 원래의 심볼들을 근사적으로 복원할 수 있다.This allows the decoder to approximate the original symbols even though some symbols are insufficient for complete decoding.
이러한 근사 복호화 알고리즘의 핵심 아이디어는 소스의 상관 관계에 기초하여 잉여 방정식을 추가하여 수학식 6에서 를 가역적으로(invertible) 만든다는 점이다.
The key idea of this approximate decryption algorithm is to add a remainder equation based on the source correlation, 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
기본적으로 TCP 기반 데이터 스트리밍 시스템(20)은 TCP 기반 네트워크 상에서 구현되므로, 송신 노드들(21a, 21b, 21c)과 인코딩 라우터(22) 사이, 디코딩 라우터(23)와 수신 노드들(24a, 24b, 24c) 사이에는 각각 TCP 세션들이 생성되어 있다. 인코딩 라우터(22)와 디코딩 라우터(23) 사이에도 소정의 TCP 기반 라우팅 경로가 형성되어 있는데, 상황에 따라서는 반영구적으로 TCP 세션이 유지될 수 있다.Basically, since the TCP-based
인코딩 라우터(22)와 디코딩 라우터(23)는 예를 들어 인터넷 서비스 제공자(ISP, Internet Service Provider)의 라우터일 수도 있고, 송신 노드들(21a, 21b, 21c)로 구성된 로컬 네트워크의 게이트웨이, 또는 수신 노드들(24a, 24b, 24c)로 구선된 또 다른 로컬 네트워크의 게이트웨이일 수도 있다.The
송신 노드들(21a, 21b, 21c)과 인코딩 라우터(22) 사이의 TCP 세션들은 항시적으로 생성되어 있을 수도 있지만, 송신 노드들(21a, 21b, 21c) 각각이 데이터를 전송하고자 할 때마다 일시적으로 생성될 수 있다. 마찬가지로, 디코딩 라우터(23)와 수신 노드들(24a, 24b, 24c) 사이의 TCP 세션들도 항시적으로 생성되어 있을 수도 있지만, 디코딩 라우터(23)가 수신 노드들(21a, 21b, 21c) 각각에 데이터를 전송하고자 할 때에 일시적으로 생성될 수 있다.Although the TCP sessions between the transmitting
송신 노드들(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
수신 노드들(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
즉 송신 노드들(21a, 21b, 21c)나 수신 노드들(24a, 24b, 24c)에 관하여, 네트워크 코딩을 구현하기 위해 하드웨어적으로 개조되거나 또는 네트워크 계층 구조가 변경되어야 할 부분은 실질적으로 없다. 다만 송신 노드(21a, 21b, 21c)가 송신하는 데이터가 네트워크 코딩될 데이터라는 점을 인코딩 라우터(22)가 미리 알 수 있도록, 또는 네트워크 코딩된 데이터로부터 디코딩된 소스 데이터를 수신 노드(24a, 24b, 24c)가 수신받아야 하는 점을 디코딩 라우터(23)가 미리 알 수 있도록, TCP 세션의 생성 시에 TCP 헤더에 기입될 적절한 정보, 예를 들어 미리 약속된 포트 번호를 설정하는 등의 통상적이지만 구체적인 처리가 필요할 수 있다.That is, with respect to the transmitting
앞서 설명하였듯이, 네트워크 코딩은 소스 데이터들의 상관 관계가 높은 경우에 특히 적합하므로, 송신 노드들(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
한편, 송신 노드들(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
인코딩 라우터(22)는 수신된 소스 데이터들(x1, x2, x3)을 네트워크 코딩 계수 행렬 로써 네트워크 코딩하여 인코딩된 데이터들(y1, y2, y3)을 생성한다.The
이때, 인코딩 라우터(22)의 계층 구조는 도 3과 같이 설명될 수 있다. 도 3은 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 인코딩 라우터의 계층 구조를 예시한 개념도이다.At this time, the hierarchical structure of the
도 3에서, 인코딩 라우터(22)의 네트워크 계층 구조는 간략하게 PHY 계층(221), MAC 계층(222), 네트워크 계층(223), 전송 계층(224)과 인코딩 어플리케이션(225)으로 예시될 수 있다.3, the network hierarchy of the
예를 들어, 인코딩 라우터(22)의 PHY 계층(221)과 MAC 계층(222)은 이더넷 기반이고, 네트워크 계층(223)은 IP 기반, 전송 계층(224)은 TCP 기반으로 예시될 수 있다.For example, the
응용 계층에서 구동 중인 인코딩 어플리케이션(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
이어서, 송신 노드(21a, 21b, 21c)는, TCP 세션의 생성 시에 설정되는 소정의 포트 번호에 따라 적절하게 TCP 헤더를 설정하고 TCP 세그먼트의 페이로드에 소스 데이터(x1, x2, x3)를 탑재하여 IP 패킷을 생성하며, 생성된 IP 패킷을 이더넷 망을 통해 인코딩 라우터(22)로 송신한다.Then, the transmitting
인코딩 라우터(22)의 PHY 계층(221)과 MAC 계층(222)은 이더넷 프레임을 수신한다. MAC 계층(222)은 수신된 이더넷 프레임이 예를 들어 IP 패킷을 포함하면 IP 패킷을 네트워크 계층(223)에 제공한다. 네트워크 계층(223)은 IP 패킷 내의 데이터그램이 TCP 세그먼트이면 전송 계층(224)에 TCP 세그먼트를 제공한다.The
여기까지의 동작은 통상적으로 라우터에서 일어나는 동작들이다. 선행문헌 [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
이에 따라, 전송 계층(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)과 메타 정보를 취합하고, 메타 정보에 기초하여 적절한 크기의 네트워크 코딩 계수 행렬 를 설정하며, 소스 데이터들(x1, x2, x3)을 네트워크 코딩 계수 행렬 로써 네트워크 코딩하고, 네트워크 코딩된 데이터들(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
한편, 네트워크 코딩된 데이터들은 네트워크 코딩 계수 행렬 의 역행렬 을 이용하여 수학식 4과 같이 이상적으로 복호되거나 또는 수학식 5 및 수학식 6와 같이 근사 복호될 수 있다. 이를 위해, 인코딩 어플리케이션(225)은 네트워크 코딩된 데이터(y1, y2, y3)와 네트워크 코딩 행렬 의 계수들, 내지 근사 복호를 위한 추가 제한 조건 가 TCP 세그먼트에 포함되도록 할 필요가 있다.On the other hand, the network coded data includes a network coding coefficient matrix Inverse of (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 ) The additional constraints for approximate decoding, Needs to be included in the TCP segment.
실시예에 따라, 인코딩 어플리케이션(225)은 네트워크 코딩된 데이터(y1, y2, y3)와 네트워크 코딩 행렬 의 계수들, 내지 근사 복호를 위한 추가 제한 조건 을 TCP 페이로드에 탑재하도록 설정한 메시지를 전송 계층(224)에 전달할 수 있다. In accordance with an embodiment, the encoding application 225 may generate the network coded data (y 1 , y 2 , y 3 ) The additional constraints for approximate decoding, To the transport layer 224. The transport layer 224 may transmit the message to the transport layer 224. [
이 경우에, 전송 계층(224)은 네트워크 코딩된 데이터(y1, y2, y3)와 네트워크 코딩 행렬 의 계수들 내지 근사 복호를 위한 추가 제한 조건 을 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 Additional constraints for the coefficients to approximate decoding 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 페이로드에 탑재하고 네트워크 코딩 행렬 의 계수들 내지 근사 복호를 위한 추가 제한 조건 을 TCP 헤더에 탑재하도록 설정한 메시지를 전송 계층(224)에 전달할 수 있다. In another embodiment, the encoding application 225 loads the network coded data (y 1 , y 2 , y 3 ) into a TCP payload, Additional constraints for the coefficients to approximate decoding To the transport layer 224. In this case,
이 경우에, 전송 계층(224)은 네트워크 코딩된 데이터(y1, y2, y3)를 TCP 페이로드에 탑재하고 네트워크 코딩 행렬 의 계수들 내지 근사 복호를 위한 추가 제한 조건 을 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, Additional constraints for the coefficients to approximate decoding 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
실시예에 따라, 인코딩 라우터(22)가 출력하는 네트워크 코딩된 데이터는 곧바로 디코딩 라우터(23)로 전송되는 대신에, 또다른 인코딩 라우터를 거칠 수도 있다. 이 경우에, 또 다른 인코딩 라우터는 수신된 네트워크 코딩된 데이터를 다시 네트워크 코딩할 수 있다.Depending on the embodiment, the network coded data output by the
지금까지 TCP 위주로 설명하였지만, 송신 노드들(21a, 21b, 21c)이 UDP(User Datagram Protocol) 세그먼트에 소스 데이터들을 탑재하여 인코딩 라우터(22)에 송신하는 것도 가능하며, 인코딩 라우터(22)가 소스 데이터들과 네트워크 코딩 계수 행렬의 원소들을 UDP 세그먼트에 탑재하여 디코딩 라우터(23)에 전송하는 것도 가능하다.It is also possible that the transmitting
디코딩 라우터(23)는 인코딩 라우터(22)와 마찬가지로 도 5에 예시된 네트워크 계층 구조를 가진다. 도 5는 본 발명의 일 실시예에 따른 네트워크 코딩을 구현할 수 있는 디코딩 라우터의 계층 구조를 예시한 개념도이다.Decoding
도 5에서, 디코딩 라우터(23)의 네트워크 계층 구조도 간략하게 PHY 계층(231), MAC 계층(232), 네트워크 계층(233), 전송 계층(234)과 디코딩 어플리케이션(235)으로 예시될 수 있다.5, the network hierarchy of the
예를 들어, 디코딩 라우터(23)의 PHY 계층(231)과 MAC 계층(232)은 이더넷 기반이고, 네트워크 계층(233)은 IP 기반, 전송 계층(234)은 TCP 기반으로 예시될 수 있다.For example, the
응용 계층에서 구동 중인 디코딩 어플리케이션(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
디코딩 라우터(23)의 PHY 계층(231)과 MAC 계층(232)은 이더넷 프레임을 수신한다. MAC 계층(232)은 수신된 이더넷 프레임이 예를 들어 IP 패킷을 포함하면 IP 패킷을 네트워크 계층(233)에 제공한다. 네트워크 계층(233)은 IP 패킷 내의 데이터그램이 TCP 세그먼트이면 전송 계층(234)에 TCP 세그먼트를 제공한다.The
전송 계층(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)과 네트워크 코딩 계수 행렬 의 계수들 내지 근사 복호를 위한 추가 제한 조건 을 추출하고, 별도로 네트워크 코딩되지 않은 메타 정보를 획득할 수 있다.The decoding application 235 receives the network coded data (y 1 , y 2 , y 3 ) and the network coding coefficient matrix Additional constraints for the coefficients to approximate decoding And obtain meta information that is not separately network coded.
실시예에 따라, 디코딩 어플리케이션(235)는 TCP 페이로드로부터 네트워크 코딩된 데이터들(y1, y2, y3)과 네트워크 코딩 계수 행렬 의 계수들 내지 근사 복호를 위한 추가 제한 조건 을 추출할 수 있다.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 Additional constraints for the coefficients to approximate decoding Can be extracted.
실시예에 따라, 디코딩 어플리케이션(235)는 TCP 페이로드로부터 네트워크 코딩된 데이터들(y1, y2, y3)을 추출하고, TCP 헤더로부터 네트워크 코딩 계수 행렬 의 계수들 내지 근사 복호를 위한 추가 제한 조건 을 추출할 수 있다.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 Additional constraints for the coefficients to approximate decoding Can be extracted.
이어서, 디코딩 어플리케이션(235)는 네트워크 코딩 계수 행렬 의 역행렬 과 네트워크 코딩된 데이터들(y1, y2, y3)로부터 수학식 4과 같이 이상적으로 복호하거나 또는 수학식 5 및 수학식 6와 같이 근사 복호함으로써 소스 데이터들(x1, x2, x3)을 복원할 수 있다.The decoding application 235 then uses the network coding coefficient matrix < RTI ID = 0.0 > Inverse of 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
디코딩 어플리케이션(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
이렇듯, 기존의 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
스트리밍 서버(61)는 내부적으로 복수의 동영상 인코딩 노드들(61a, 61b, 61c)을 가질 수 있다. 복수의 동영상 인코딩 노드들(61a, 61b, 61c)은 도 2에서 예시되는 송신 노드들(21a, 21b, 21c)에 상응할 수 있다.The streaming
도 7을 참조하면, 스트리밍 서버(61)가 요청된 비디오 데이터를, 예를 들어 TCP 세그먼트의 페이로드에 탑재한 형태로 인코딩 라우터(62)에 전송한다.Referring to FIG. 7, the streaming
인코딩 라우터(62)에서, 인코딩 어플리케이션(621)이 수신된 TCP 세그먼트들로부터 추출된 소스 데이터들을 소정의 네트워크 코딩 계수 행렬 로 네트워크 코딩하고, 인코딩 라우터(62)는 네트워크 코딩된 데이터들을 TCP 세그먼트에 탑재하여 디코딩 라우터(63)로 전송한다.In the encoding router 62, the
디코딩 라우터(63)에서, 디코딩 어플리케이션(631)이 수신된 TCP 세그먼트들로부터 추출된 네트워크 코딩된 데이터들을 소정의 네트워크 코딩 계수 행렬 의 역행렬 로 디코딩하여 소스 데이터들을 복원하고, 디코딩 라우터(63)는 복원된 소스 데이터들을 TCP 세그먼트에 탑재하여 스트리밍 클라이언트(64)로 전송한다.In the decoding router 63, the
도 8을 참조하면, 비디오 스트리밍 데이터의 전송이 완료되면, 스트리밍 클라이언트(64)가 디코딩 라우터(63)와 사이의 TCP 세션을 종료한다. 그에 따라 인코딩 라우터(62)와 스트리밍 서버(61) 사이의 세션도 종료될 수 있다. 디코딩 라우터(63)와 인코딩 라우터(62) 사이의 세션은 종료될 수도 있고, 상황에 따라 다른 비디오 스트리밍 데이터의 전송에 이용될 수 있도록 유지될 수도 있다.Referring to FIG. 8, when the transmission of the video streaming data is completed, the streaming
도 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
실시예에 따라, 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
단계(S93)에서, 인코딩 라우터(22)가 네트워크 코딩 계수 행렬과 소스 데이터들에 따라 네트워크 코딩된 데이터들을 생성한다.In step S93, the
단계(S94)에서, 인코딩 라우터(22)가, 네트워크 코딩을 수행하는 디코딩 어플리케이션이 어플리케이션 계층에서 구동되는 디코딩 라우터(23)와 사이에, TCP 세션을 생성한다.In step S94, the
단계(S95)에서, 인코딩 라우터(22)가 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 TCP 세션을 통해 디코딩 라우터(23)로 전송한다.In step S95, the
실시예에 따라, 네트워크 코딩된 데이터들과 네트워크 코딩 계수 행렬의 원소들은 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
선택적 단계(S97)에서, 디코딩 라우터(23)가, 복원된 소스 데이터들을 적어도 하나의 수신 노드들(24a)에 전송한다.
In the optional step S97, the
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
다음으로, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 백본 네트워크(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
한편, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 클라우드 시스템 내부 또는 데이터 센터 내부의 트래픽을 줄이는 데에 이용될 수 있다. 클라우드 시스템 또는 데이터 센터에서 발생하는 트래픽 중 약 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
나아가, 본 발명의 네트워크 코딩 데이터 스트리밍 시스템은 디지털 방송 네트워크에서 이용될 수 있다. 디지털 방송은 소수의 영상 정보를 동시적으로 브로드캐스트하므로 본질적으로 네트워크 코딩에 적합한 속성을 가진다.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.
상기 라우터는
네트워크 코딩을 수행하는 인코딩 어플리케이션을 어플리케이션 계층에서 구동하고, 상기 라우터에 수신된 데이터가 적어도 하나의 송신 노드로부터 수신된 소스 데이터들인 경우에 상기 수신된 소스 데이터들을 상기 인코딩 어플리케이션에 제공하며, 상기 인코딩 어플리케이션에서 생성된 네트워크 코딩된 데이터들 및 네트워크 코딩 계수 행렬의 원소들을 포함하는 세그먼트를 다른 라우터로 전송하도록 동작하고,
상기 인코딩 어플리케이션은
상기 다른 라우터를 통해 수신 노드로부터 상기 소스 데이터들에 관한 전송 요청이 있는 경우에 상기 소스 데이터들을 보유하는 상기 적어도 하나의 송신 노드와 상기 라우터 사이에 라우팅 경로를 생성하며, 상기 적어도 하나의 송신 노드로부터 상기 라우팅 경로를 통해 상기 소스 데이터들이 제공되면 네트워크 코딩 계수 행렬과 상기 소스 데이터들에 기초하여 상기 네트워크 코딩된 데이터들을 생성하고, 상기 네트워크 코딩된 데이터들 및 상기 네트워크 코딩 계수 행렬의 원소들을 포함하여 상기 세그먼트를 생성하도록 동작하는 것을 특징으로 하는 라우터.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. ≪ Desc / Clms Page number 19 >
상기 인코딩 라우터가, 상기 송신 노드로부터 상기 소스 데이터의 메타 정보를 수신하는 단계를 더 포함하는 것을 특징으로 하는 데이터 스트리밍 시스템을 통한 네트워크 코딩된 스트리밍 데이터 전송 방법.The method of claim 9,
Wherein the encoding router further comprises receiving meta information of the source data from the transmitting node. ≪ RTI ID = 0.0 > 31. < / RTI >
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)
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)
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 |
-
2015
- 2015-01-09 KR KR1020150003653A patent/KR101588549B1/en active IP Right Grant
Patent Citations (4)
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)
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)
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 |