KR20180090467A - Method and system for real-time multimedia transmission using parallel TCP acceleration - Google Patents

Method and system for real-time multimedia transmission using parallel TCP acceleration Download PDF

Info

Publication number
KR20180090467A
KR20180090467A KR1020170015358A KR20170015358A KR20180090467A KR 20180090467 A KR20180090467 A KR 20180090467A KR 1020170015358 A KR1020170015358 A KR 1020170015358A KR 20170015358 A KR20170015358 A KR 20170015358A KR 20180090467 A KR20180090467 A KR 20180090467A
Authority
KR
South Korea
Prior art keywords
channel
tcp
bandwidth
tcp channel
application
Prior art date
Application number
KR1020170015358A
Other languages
Korean (ko)
Other versions
KR102622268B1 (en
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 KR1020170015358A priority Critical patent/KR102622268B1/en
Publication of KR20180090467A publication Critical patent/KR20180090467A/en
Application granted granted Critical
Publication of KR102622268B1 publication Critical patent/KR102622268B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • H04L65/602
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2863Arrangements for combining access network resources elements, e.g. channel bonding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/14Multichannel or multilink protocols
    • 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

Abstract

According to an embodiment of the present invention, a data transmission method comprises the following steps: allowing a transmitter to receive a band width necessary for transmitting data from an application; allowing the transmitter to predict an available band width when a TCP channel for the application is added by using a network environmental value of the existing TCP channel assigned for the application; allowing the transmitter to compare the necessary band width with the available band width, and determining whether the TCP channel is added; allowing the transmitter to dynamically add the TCP channel for the application when the TCP channel is added; and allowing the transmitter to transmit the data with a parallel TCP method through the added TCP channel.

Description

병렬 TCP 가속을 이용한 실시간 멀티미디어의 전송 방법 및 시스템 {Method and system for real-time multimedia transmission using parallel TCP acceleration}TECHNICAL FIELD The present invention relates to a method and system for real-time multimedia transmission using parallel TCP acceleration,

본 발명은 병렬 TCP 가속을 이용하여 실시간 멀티미디어를 전송하는 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, 복수개의 TCP 채널을 생성하고, 복수개의 TCP 채널을 이용하여 실시간 멀티미디어를 전송하는 방법 및 그 방법을 수행하는 시스템에 관한 것이다.The present invention relates to a method and system for transmitting real-time multimedia using parallel TCP acceleration. More particularly, the present invention relates to a method for generating a plurality of TCP channels and transmitting real-time multimedia using a plurality of TCP channels, and a system for performing the method.

TCP(Transmission Control Protocol)란 연결형 서비스를 지원하는 전송 계층 프로토콜이다. TCP는 신뢰성 있는 데이터 전달과 흐름 제어 및 혼잡 제어 기능을 제공한다. 그래서 일반적으로 파일 전송 등의 신뢰성 있는 전송을 위한 용도로 TCP가 많이 사용된다.Transmission Control Protocol (TCP) is a transport layer protocol that supports connection-oriented services. TCP provides reliable data transfer and flow control and congestion control. Therefore, TCP is often used for reliable transmission such as file transfer.

반면에 UDP(User Datagram Protocol)란 비연결형 서비스를 지원하는 전송 계층 프로토콜이다. UDP는 서버와 클라이언트가 데이터를 주고 받을 때, 정보를 보낸다는 신호나 받는다는 신호를 교환하는 절차를 거치지 않는다. 즉 UDP에서는 TCP와 같은 핸드 셰이크(Handshake) 과정이 없다.On the other hand, User Datagram Protocol (UDP) is a transport layer protocol supporting connectionless services. UDP does not go through the process of exchanging signals that the server and the client send or receive data when exchanging data. In UDP, there is no handshake process like TCP.

실시간 멀티미디어 전송을 위해 개발된 RTP(Real-time Transport Protocol)는 실시간성을 지원하기 위해, 주로 TCP 보다는 UDP 기반에서 동작한다. UDP의 특성인 저지연성(Low Latency), 필요한 데이터 트래픽을 자유롭게 조절할 수 있는 확장성, 또한 중간에 유실이 일어나더라도 빠르게 회복할 수 있는 적응성 때문이다.RTP (Real-time Transport Protocol), developed for real-time multimedia transmission, operates mainly on UDP rather than TCP to support real-time performance. It is because of low latency which is a characteristic of UDP, scalability that freely adjusts necessary data traffic, and adaptability that can recover quickly even if a loss occurs in the middle.

그렇지만, UDP는 기본적으로 세션의 개념이 없어 보안상의 이슈가 발생할 수 있고 네트워크 관리의 어려움이 발생할 수 있다. 그렇기 때문에 회사의 네트워크 관리자들이 정책상 UDP 사용을 제한하는 경우가 많다. 그래서 UDP를 기반으로 하는 PC 영상회의나 라이브 스트리밍 서비스는 회사 네트워크 방화벽(Firewall)에 막혀 사용할 수 없는 경우가 많다.However, UDP does not have a concept of a session basically, which may cause security issues and cause difficulty in network management. As a result, corporate network administrators often restrict the use of UDP in policy. Therefore, UDP-based PC video conferencing and live streaming services are often blocked by corporate network firewalls.

그렇기 때문에 영상회의 솔루션으로 유명한 WebEx 등의 회사에서는 비효율적이더라도 어쩔 수 없이 UDP가 아닌 TCP 기반으로 솔루션이 동작하도록 기술을 제공하는 경우가 많다. 하지만 애초에 신뢰성 있는 전송을 보장하기 위해 설계된 TCP를 기반으로 실시간 멀티미디어 데이터를 전송하는 경우 많은 문제가 발생할 수 있다.For this reason, companies such as WebEx, which is famous for video conferencing solutions, often provide ineffective technology to operate the solution based on TCP rather than UDP. However, when real-time multimedia data is transmitted based on TCP designed to guarantee reliable transmission in the first place, many problems may arise.

예를 들면, 송신자(Sender)와 수신자(Receiver)사이의 TCP 버퍼에 대한 제약으로 RTT(Round-Trip Time)가 큰 구간에서는 전송속도 한계가 존재할 수 있다. 또한, 합 증가 곱 감소(AIMD; Additive Increase, Multiplicative Decrease)나 느린 시작(Slow Start)과 TCP 특유의 혼잡 제어 알고리즘으로 인해, TCP에서는 천천히 전송대역폭이 증가한다.For example, there may be a transmission speed limit in a section where a round-trip time (RTT) is large due to a restriction on a TCP buffer between a sender and a receiver. In addition, the transmission bandwidth is slowly increased in TCP due to the Additive Increase (AIMD) or the Slow Start and the TCP specific congestion control algorithm.

이러한 TCP의 특징때문에, 실시간 멀티미디어를 전송하는 도중에 손실(Loss)이 발생하면, 급격하게 전송속도가 떨어져서 손실이 발생하기 이전의 전송속도를 회복하기까지 시간 지연이 발생할 수 있다. 이는 실시간 멀티미디어의 오디오와 비디오의 품질이 순식간에 나빠지는 현상을 초래하게 된다. 즉 화면이 깨지거나 음성이 끊기는 상황이 발생할 수 있다.Due to the characteristics of the TCP, if a loss occurs during the transmission of real-time multimedia, the transmission rate may drop rapidly, and a time delay may occur until the transmission rate before the loss is recovered. This results in a sudden deterioration in the quality of audio and video in real-time multimedia. That is, the screen may be broken or the audio may be interrupted.

이에 신뢰성 있는 데이터 전송을 위해 설계된 TCP를 이용하여 실시간 멀티미디어를 전송하면서, 다른 한편으로 안정적인 대역폭의 확보와 손실(Loss) 발생시 급격한 전송속도 감소를 방지할 수 있는 전송 방법이 필요하다.Therefore, it is necessary to transmit real-time multimedia using TCP, which is designed for reliable data transmission. On the other hand, there is a need for a transmission method capable of securing a stable bandwidth and preventing a sudden decrease in transmission speed when a loss occurs.

본 발명이 해결하고자 하는 기술적 과제는 병렬 TCP 가속을 이용하여 실시간 멀티미디어를 전송하는 방법 및 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a method and system for transmitting real-time multimedia using parallel TCP acceleration.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the above-mentioned technical problems, and other technical problems which are not mentioned can be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 해결하기 위한 본 발명의 일태양에 따른 데이터 전송 방법은, 송신 장치가, 어플리케이션으로부터 데이터를 전송하기 위해 필요한 대역폭을 요청 받는 단계; 상기 송신 장치가, 상기 어플리케이션을 위해 기존에 할당된 TCP 채널의 네트워크 환경값을 이용하여, 상기 어플리케이션을 위한 TCP 채널을 추가하는 경우의 가용 대역폭을 예측하는 단계; 상기 송신 장치가, 상기 필요한 대역폭과 상기 가용 대역폭을 비교하고, TCP 채널을 추가할지 여부를 판단하는 단계; 상기 송신 장치가, TCP 채널을 추가하기로 판단한 경우, 상기 어플리케이션을 위한 TCP 채널을 동적으로 추가하는 단계; 및 상기 송신 장치가, 상기 추가된 TCP 채널을 통해, 상기 데이터를 병렬 TCP 방식으로 전송하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a data transmission method including: receiving a bandwidth required for transmitting data from an application; Predicting an available bandwidth when the transmitting apparatus adds a TCP channel for the application using a network environment value of a TCP channel that has been previously allocated for the application; Comparing the available bandwidth with the available bandwidth and determining whether to add a TCP channel; Dynamically adding a TCP channel for the application when the transmitting device determines to add a TCP channel; And the transmitting apparatus transmitting the data through the added TCP channel in a parallel TCP manner.

일 실시예에서, 상기 어플리케이션을 위한 TCP 채널을 추가하는 경우의 가용 대역폭을 예측하는 단계는, 상기 어플리케이션을 위해 기존에 할당된 TCP 채널의 네트워크 환경값을 실시간으로 측정하는 단계; 상기 측정된 네트워크 환경값을 이용하여 TCP 채널을 추가하는 경우 변화될 네트워크 환경값을 예측하는 단계; 및 상기 예측한 네트워크 환경값을 이용하여 상기 가용 대역폭을 추정하는 단계를 포함할 수 있다.In one embodiment, the step of predicting the available bandwidth when adding a TCP channel for the application comprises: measuring in real time a network environment value of a TCP channel allocated for the application; Estimating a network environment value to be changed when a TCP channel is added using the measured network environment value; And estimating the available bandwidth using the predicted network environment value.

다른 실시예에서, 상기 네트워크 환경값은, RTT, Loss, Jitter 중에서 하나 이상을 포함하는 것이다.In another embodiment, the network environment value includes at least one of RTT, Loss, and Jitter.

또 다른 실시예에서, 상기 측정된 네트워크 환경값을 이용하여 TCP 채널을 추가하는 경우 변화될 네트워크 환경값을 예측하는 단계는, 네트워크 환경값, 송신 장치의 운영체제 및 수신 장치의 운영체제 별로 구현된 TCP 특성을 기준으로 사전에 학습한 예측 모델을 이용하는 단계를 포함할 수 있다.In another embodiment, the step of predicting a network environment value to be changed when adding the TCP channel using the measured network environment value may include calculating a network environment value, an operating system of the transmitting apparatus, and a TCP characteristic And using the prediction model learned in advance based on the prediction model.

또 다른 실시예에서, 상기 필요한 대역폭과 상기 가용 대역폭을 비교하고, TCP 채널을 추가할지 여부를 판단하는 단계는, 상기 어플리케이션을 위해 기존에 할당된 TCP 채널의 수가 임계치 이상인 경우, TCP 채널을 추가하지 않기로 판단하는 단계를 포함할 수 있다.In yet another embodiment, the step of comparing the available bandwidth with the available bandwidth and determining whether to add a TCP channel may include adding a TCP channel if the number of TCP channels previously allocated for the application is greater than or equal to a threshold It may include a step of not judging.

또 다른 실시예에서, 상기 어플리케이션을 위한 TCP 채널을 동적으로 추가하는 단계는, 상기 추가할 TCP 채널을 상기 요청 받은 단계 이전에 미리 생성하여 풀(Pool) 방식으로 관리하는 단계; 상기 미리 생성된 TCP 채널에 데이터를 전송하고, 상기 미리 생성된 TCP 채널의 대역폭을 확보하여, 상기 미리 생성된 TCP 채널을 에이징(Aging) 시키는 단계를 포함할 수 있다.In another embodiment, the step of dynamically adding a TCP channel for the application includes: generating the TCP channel to be added in advance before the requested step and managing the TCP channel in a pool manner; Transmitting data to the pre-generated TCP channel, securing a bandwidth of the pre-generated TCP channel, and aging the pre-generated TCP channel.

또 다른 실시예에서, 상기 송신 장치가, 상기 어플리케이션을 위해 할당된 TCP 채널 중에서 사용하지 않는 TCP 채널을 TCP 채널의 풀(Pool)에 반납하는 단계를 더 포함할 수 있다.In another embodiment, the transmitting apparatus may further include a step of returning unused TCP channels among TCP channels allocated for the application to a pool of TCP channels.

본 발명의 실시예에 따른 효과는 다음과 같다.The effects according to the embodiment of the present invention are as follows.

본 발명에 의하면 신뢰성 있는 파일 전송 등에 많이 사용되는 병렬 TCP를 통한 가속 기술을 이용할 수 있다. 이를 통해 높은 품질 수준으로 실시간 전송을 원하는 멀티미디어를 위한 대역폭을 충분히 확보할 수 있다. 특히 인터넷 전송 속도의 발달로 인해 최근에는 FHD, UHD 등의 대용량 멀티미디어에 대한 수요가 점차 커지고 있는데 이러한 대용량 멀티미디어를 전송하기 위한 대역폭을 충분히 확보할 수 있다. 또한 손실(Loss)이 발생하는 경우 급격한 전송속도 감소를 방지할 수 있다. 이를 통해 원활한 고품질의 영상회의 및 라이브 스트리밍 서비스를 제공할 수 있다.According to the present invention, it is possible to use an acceleration technique through parallel TCP, which is widely used for reliable file transfer. This ensures sufficient bandwidth for multimedia that wants real-time transmission at a high quality level. Recently, due to the development of internet transmission speed, demand for large multimedia such as FHD and UHD is gradually increasing, and sufficient bandwidth for transmitting such large multimedia can be secured. In addition, when a loss occurs, it is possible to prevent a rapid decrease in transmission rate. Thus, it is possible to provide smooth and high quality video conferencing and live streaming service.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood to those of ordinary skill in the art from the following description.

도 1은 종래의 TCP 특성에 따른 대역폭의 한계를 설명하기 위한 예시도이다.
도 2는 종래의 TCP 특성에 따른 혼잡 제어 알고리즘을 설명하기 위한 예시도이다.
도 3은 종래의 TCP 전송을 이용하여 실시간 멀티미디어를 전송하는 경우를 설명하기 위한 예시도이다.
도 4 내지 도 5는 본 발명의 일 실시예에 따른 실시간 멀티미디어 전송 방법을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 PTCP 채널 매니저를 설명하기 위한 구성도이다.
도 7a 내지 도 7b는 본 발명의 일 실시예에 따라 PTCP 채널을 풀(Pool) 방식으로 관리하는 과정을 설명하기 위한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 병렬 TCP 가속을 이용한 실시간 멀티미디어의 전송 방법의 순서도이다.
도 9 내지 도 12는 본 발명의 일 실시예에 따른 Channel BW Estimator와 PTCP Channel Manager를 설명하기 위한 도면이다.
도 13 내지 도 14는 본 발명의 일 실시예에서 활용될 수 있는 채널 풀(Pool)을 설명하기 위한 예시도이다.
FIG. 1 is an exemplary diagram for explaining bandwidth limitations according to conventional TCP characteristics.
2 is an exemplary diagram illustrating a congestion control algorithm according to conventional TCP characteristics.
3 is a diagram for explaining a case of transmitting real-time multimedia using a conventional TCP transmission.
4 to 5 are diagrams for explaining a real-time multimedia transmission method according to an embodiment of the present invention.
FIG. 6 is a block diagram illustrating a PTCP channel manager according to an embodiment of the present invention. Referring to FIG.
7A and 7B illustrate a process of managing a PTCP channel in a pool manner according to an embodiment of the present invention.
8 is a flowchart of a method of transmitting real-time multimedia using parallel TCP acceleration according to an embodiment of the present invention.
9 to 12 are views illustrating a Channel BW Estimator and a PTCP Channel Manager according to an embodiment of the present invention.
13 to 14 are exemplary diagrams illustrating a channel pool that can be utilized in an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense that is commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise. The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification.

명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.It is noted that the terms "comprises" and / or "comprising" used in the specification are intended to be inclusive in a manner similar to the components, steps, operations, and / Or additions.

이하, 본 발명에 대하여 첨부된 도면에 따라 더욱 상세히 설명한다.Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings.

도 1은 종래의 TCP 특성에 따른 대역폭의 한계를 설명하기 위한 예시도이다.FIG. 1 is an exemplary diagram for explaining bandwidth limitations according to conventional TCP characteristics.

도 1을 참고하면 상단에는 TCP의 대역폭에 관한 수식이 도시되어 있다. 도 1의 수식에 사용된 용어를 설명하면, MSS는 최대 세그먼트 크기(MSS; Max Segment Size)로 TCP가 채널을 통해 한 개의 TCP 세그먼트(Segment)로 보낼 수 있는 최대 데이터 크기를 말한다. 최대 세그먼트 크기가 클수록 한번의 전송으로 많은 데이터를 보낼 수 있으므로 TCP 대역폭은 MSS에 비례한다.Referring to FIG. 1, the upper part of FIG. Referring to the terminology used in the equation of FIG. 1, the MSS refers to a maximum data size that can be sent by one TCP segment to a TCP through a channel in a maximum segment size (MSS). The larger the maximum segment size, the more data can be sent in one transmission, so the TCP bandwidth is proportional to the MSS.

그리고, RTT는 왕복 지연 시간(RTT; Round Trip Time)으로 패킷이 망을 통해서 End-to-End로 왕복하는데 걸리는 시간을 말한다. RTT는 망의 혼잡, End-to-End 사이의 거리, 전송속도 등에 영향을 받는다. RTT가 클수록 데이터를 보내는데 시간이 많이 필요하므로 TCP 대역폭은 RTT에 반비례한다.The RTT is a round trip time (RTT), which is the time taken for the packet to travel from the network to the end-to-end. RTT is affected by network congestion, distance between end-to-end, and transmission rate. The larger the RTT, the more time it takes to send the data, so the TCP bandwidth is inversely proportional to the RTT.

그리고, Packet Loss는 패킷 손실을 의미한다. TCP는 신뢰성 있는 데이터 전송을 보장하기 때문에 패킷이 손실되는 경우 재전송을 시도한다. 패킷 손실이 많이 일어날수록 보냈던 데이터를 다시 또 보내야하므로 대역폭에 손해가 발생한다. 그래서 TCP 대역폭은 Packet Loss의 제곱근에 반비례한다.And, Packet loss means packet loss. Since TCP guarantees reliable data transmission, it attempts retransmission if a packet is lost. The more packets are lost, the more bandwidth is lost because the data is sent again. So the TCP bandwidth is inversely proportional to the square root of the packet loss.

정리하면 도 1의 수식에서 볼 수 있듯이, TCP의 대역폭은 MSS에 비례하고, RTT에 반비례하며, Packet Loss의 제곱근에 반비례한다. 이중에서 RTT와 Packet Loss와 대역폭의 관계를 3차원 그래프로 도시하면 도 1 하단의 그래프와 같다. 하단의 그래프를 참고하면 x축은 RTT, y축은 Packet Loss, z축은 Throughput이 도시되어 있다. 도 1의 하단의 그래프에서 볼 수 있듯이 TCP의 대역폭은 RTT나 Packet Loss가 클수록 급격하게 낮아지는 특성을 가진다.In summary, as shown in the equation of FIG. 1, the bandwidth of TCP is proportional to MSS, inversely proportional to RTT, and inversely proportional to the square root of Packet Loss. The relationship between the RTT, the packet loss and the bandwidth is shown in a three-dimensional graph as shown in the lower graph of FIG. Referring to the lower graph, the x-axis shows RTT, the y-axis shows Packet Loss, and the z-axis shows Throughput. As can be seen from the graph at the bottom of FIG. 1, the TCP bandwidth has a characteristic that the RTT and the packet loss are drastically lowered.

도 1을 참고하면 RTT가 200ms이고, 1% 정도의 손실이 있는 상황에서는 1개의 TCP 채널로는 대략 0.58 Mbit/sec 정도의 전송속도만을 확보할 수 있다. 이정도의 전송속도로는 영상회의 서버를 통해 실시간으로 상대편과 영상을 주고 받기에는 턱없이 부족하기 때문에 원활한 영상회의가 불가능하다.Referring to FIG. 1, in a situation where the RTT is 200ms and there is a loss of about 1%, a transmission rate of about 0.58 Mbit / sec can be secured for one TCP channel. In this transmission speed, it is not possible to make a smooth video conference because it is not enough to send video to the other party in real time through the video conference server.

도 2는 종래의 TCP 특성에 따른 혼잡 제어 알고리즘을 설명하기 위한 예시도이다.2 is an exemplary diagram illustrating a congestion control algorithm according to conventional TCP characteristics.

TCP에서는 운영체제의 커널 레벨에서 구현된 합 증가 곱 감소(AIMD; Additive Increase, Multiplicative Decrease)나 느린 시작(Slow Start) 등의 혼잡 제어(Congestion Control) 알고리즘을 이용한다.TCP uses a congestion control algorithm such as AIMD (Multiplicative Decrease) or Slow Start (AIMD) implemented at the kernel level of the operating system.

TCP의 혼잡 제어는 1980년대 반 제이콥슨에 의해 도입되었다. 그 당시의 인터넷 환경은 혼잡 붕괴 현상이 큰 문제거리였다. 각 호스트(Host)는 정보를 빨리 보내기 위하여 정해진 시간 내에 보낼 수 있는 최대의 패킷을 보냈다. 그러나, 일부 라우터에서는 혼잡 현상이 발생하여 정해진 시간 내에 받은 패킷들을 모두 처리하지 못하였다. 정해진 시간 내에 패킷이 처리되지 않으면 호스트는 패킷을 재전송하였고, 라우터는 더 많은 패킷을 받게 되어서 혼잡 현상이 기하급수적으로 더 심해졌다.TCP congestion control was introduced by Van Jacobson in the 1980s. At that time, congestion collapse was a big problem in Internet environment. Each host sent a maximum number of packets that it could send within a fixed time to send information quickly. However, in some routers, congestion has occurred and packets received within a certain time have not been processed. If the packet was not processed within a fixed time, the host retransmitted the packet, and the router received more packets, causing congestion to become exponentially more severe.

재전송으로 인해 혼잡이 가중되는 문제를 해결하기 위해 처음에 패킷을 하나씩 보내고 이것이 문제없이 도착하면 창 크기, 즉 단위 시간 내에 보내는 패킷의 수를 1씩 증가시켜가면서 전송하는 방법이 합 증가 곱 감소 혼잡 제어 알고리즘이다. 합 증가 곱 감소 혼잡 제어 알고리즘에서는 만일 패킷 전송을 실패하거나 일정한 시간을 넘으면 패킷을 보내는 속도를 절반으로 줄인다.In order to solve the problem of congestion due to retransmission, a packet is sent one by one. When the packet arrives without problems, the window size, ie, the number of packets sent in unit time is increased by 1, Algorithm. Decreasing the Sum Increment Product The congestion control algorithm reduces the sending rate of packets by half if the packet transmission fails or exceeds a certain time.

이 방식은 공평한 방식이다. 이 방식을 사용하는 여러 호스트가 한 네트워크를 공유하고 있으면 나중에 진입하는 쪽이 처음에는 불리하지만 시간이 흐르면 평형 상태로 수렴하게 되는 특징이 있다. 합 증가 곱 감소 방식이 네트워크의 수용량 주변에서는 효율적으로 작동하지만 처음에 전송속도를 올리는 데 걸리는 시간이 너무 길다는 단점이 있다.This is a fair way. If several hosts using this method share a network, the later entry is disadvantageous at first but converges to equilibrium over time. Although the sum-multiply-decreasing scheme works efficiently around the capacity of the network, it has the disadvantage that it takes too long to initially increase the transmission rate.

느린 시작(Slow Start) 방식은 합 증가/곱 감소 방식과 마찬가지로 패킷을 하나씩 보내는 것부터 시작한다. 그러나 이 방식은 패킷이 문제없이 도착하면 각각의 ACK 패킷마다 창 크기를 1씩 늘린다. 즉, 한 주기가 지나면 창 크기가 2배로 된다.The Slow Start method starts by sending packets one at a time, just like the sum / multiply decrement method. However, this method increases the window size by 1 for each ACK packet when the packet arrives without problems. That is, after one cycle, the window size is doubled.

따라서 전송속도는 합 증가 곱 감소와는 다르게 지수함수 꼴로 증가한다. 대신에 혼잡 현상이 발생하면 창 크기를 절반이 아닌 1로 떨어뜨린다. 처음에는 네트워크의 수용량을 예상할 수 있는 정보가 없지만 한번 혼잡 현상이 발생하고 나면 네트워크의 수용량을 어느 정도 예상할 수 있으므로 혼잡 현상이 발생하였던 창 크기의 절반까지는 이전처럼 지수 함수 꼴로 창 크기를 증가시키고 그 이후부터는 완만하게 1씩 증가시킨다.Therefore, the transmission rate increases exponentially, unlike decreasing the sum-multiply product. Instead, when congestion occurs, the window size is dropped to 1 instead of half. At first, there is no information to predict the capacity of the network. However, once the congestion occurs, the capacity of the network can be predicted to some extent. Therefore, until half of the congestion window size is increased, After that, it is gradually increased by 1.

이전의 TCP 동작은 처음에 최대한 보낼 수 있는 만큼의 패킷을 보내는 것으로 시작하고, 느린 시작은 이것과 달리 창 크기를 1에서부터 시작하여 지수함수 꼴로 증가시켜가면서 네트워크의 수용량을 감지한다. 이 방식은 합 증가 곱 감소 방식보다 더 효율적인 방법이지만 마찬가지로 혼잡한 상황이 된 경우에는 타임아웃이 될 때까지 기다리는 동안 큰 시간의 공백이 있다.The previous TCP behavior begins by sending as many packets as possible at the beginning, and the slow start, unlike this, detects the capacity of the network by increasing the window size from 1 to an exponential function. This method is more efficient than the sum-multiply-decreasing method, but if there is a congested situation, there is a large amount of time blanking while waiting for a timeout.

TCP 특유의 혼잡 제어 알고리즘의 문제점은 초기에 네트워크의 높은 대역폭을 사용하지 못하여 오랜 시간이 걸리게 되고, 네트워크가 혼잡해지는 상황을 미리 감지하지는 못한다는 점이다. 즉, 합 증가 곱 감소나 느린 시작과 같은 혼잡 제어 알고리즘은 네트워크가 혼잡해지고 나서야 대역폭을 줄이는 방식이다.The problem of the TCP-specific congestion control algorithm is that it takes a long time because it can not use the high bandwidth of the network in the early stage and it does not detect the congestion of the network in advance. In other words, congestion control algorithms such as decreasing sum-multiplying and slow-start are methods in which bandwidth is reduced only after the network becomes congested.

도 2를 참고하면 이러한 TCP 특유의 혼잡 제어 알고리즘의 특성이 잘 도시되어 있다. 도 2는 내부 네트워크인 10.0.0.2 호스트의 48476 포트에서 10.0.1.1 호스트의 8080 포트로 파일을 전송하는 경우의 TCP 대역폭이 도시되어 있다. TCP의 경우 중간에 최초 연결이나 도중 Loss가 발생하면 TCP 자체에서 혼잡 제어 알고리즘에 의해 급격하게 보낼 수 있는 버퍼 크기(Congestion Window Size)를 줄이기 때문에 전송속도가 어느 수준까지 올라가기 위해서는 시간이 필요하다.Referring to FIG. 2, the characteristics of such a TCP-specific congestion control algorithm are well illustrated. 2 shows a TCP bandwidth when a file is transferred from port 48476 of the internal network 10.0.0.2 to port 8080 of the host 10.0.1.1. In the case of TCP, if the initial connection or loss occurs in the middle, the congestion control algorithm will reduce the buffer size (Congestion Window Size) in the TCP itself. Therefore, it takes time to increase the transmission speed to a certain level.

도 2를 참고하면, 전송 대역폭이 매우 불안하게 떨어졌다가 다시 올라가는 과정을 반복한다. 이러한 과정을 통해 파일을 전송하기 시작한지 14분 정도가 지나서야 안정적으로 사용할 수 있는 대역폭에 이르게 된다. 다만, 이런 식으로 전송 대역폭이 급격하게 변하게 되면 실시간 전송 어플리케이션에서 품질의 저하가 심각하게 발생할 수 있다.Referring to FIG. 2, the process of repeating the process of dropping the transmission bandwidth very slowly and then repeating the process is repeated. This process leads to a bandwidth that can be reliably used only about 14 minutes after the file is transferred. However, if the transmission bandwidth is changed suddenly in this way, the quality degradation may occur seriously in a real time transmission application.

도 3은 종래의 TCP 전송을 이용하여 실시간 멀티미디어를 전송하는 경우를 설명하기 위한 예시도이다.3 is a diagram for explaining a case of transmitting real-time multimedia using a conventional TCP transmission.

도 3을 참고하면 상단에 수신자의 화면에 디스플레이 되고 있는 영상을 볼 수 있고, 하단에 해당 어플리케이션에서 사용할 수 있는 대역폭의 변화를 볼 수 있다. TCP 특성상 혼잡이 발생하면 대역폭을 급격하게 줄이는 방식으로 혼잡을 해결하려고 한다.Referring to FIG. 3, the user can see the video displayed on the receiver's screen at the top and the bandwidth available in the application at the bottom. When TCP congestion occurs, we try to resolve congestion in a way that sharply reduces the bandwidth.

도 3의 하단을 참고하면 처음 200 second 까지는 안정적으로 50kbps의 대역폭으로 영상을 전송하다가 혼잡이 발생해서 대역폭이 갑자기 절반 가까이 떨어지는 것을 볼 수 있다. 그러다가 다시 400 second 가 되어서야 원래의 대역폭인 50kbps를 회복한 것을 볼 수 있다.Referring to the lower part of FIG. 3, it can be seen that bandwidth is suddenly reduced to about half due to congestion while transmitting images at a bandwidth of 50 kbps stably until the first 200 seconds. Then, it is not until 400 seconds again that the original bandwidth of 50kbps is recovered.

이렇게 네트워크 대역폭이 급격하게 변하게 되면 수신자 입장에서는 비디오의 품질이 갑자기 나빠질 수 있다. 도 3의 상단을 참고하면 200 second 와 400 second 사이에서는 영상이 깨지는 것을 볼 수 있다. 이렇게 비디오의 품질이 갑자기 나빠진 후에, 이를 다시 회복하기까지는 일정 시간이 필요하다.If the network bandwidth changes suddenly, the quality of the video may suddenly deteriorate for the receiver. Referring to the upper part of FIG. 3, the image is broken between 200 seconds and 400 seconds. After the quality of the video suddenly deteriorates, it takes some time to recover.

도 1 내지 도 3을 통해서 살펴본 것처럼 처음부터 TCP는 신뢰성 있는 전송을 위해 설계된 프로토콜이기 때문에 실시간으로 멀티미디어를 전송하기에는 몇 가지 문제점을 가진다. 그 중에 하나는 TCP의 대역폭은 RTT나 Loss에 민감하게 반응하기 때문에 하나의 채널로는 확보할 수 있는 대역폭의 한계가 있다는 점이다. 그리고 다른 하나는 TCP 특유의 혼잡 제어 알고리즘으로 인해 대역폭이 급격하게 감소할 수 있으며, 감소된 대역폭을 회복하기까지 많은 시간이 필요하기 때문에, 실시간 멀티미디어 전송을 하는 경우 서비스의 품질에 많은 영향을 미칠 수 있다는 점이다.1 through 3, since TCP is a protocol designed for reliable transmission from the beginning, there are some problems in transmitting multimedia in real time. One of them is that the bandwidth of TCP is sensitive to RTT or loss, so there is a bandwidth limitation that can be secured by one channel. The other is the TCP congestion control algorithm that can reduce the bandwidth drastically and it takes much time to recover the reduced bandwidth. Therefore, when real-time multimedia transmission is performed, .

도 4 내지 도 5는 본 발명의 일 실시예에 따른 실시간 멀티미디어 전송 방법을 설명하기 위한 예시도이다.4 to 5 are diagrams for explaining a real-time multimedia transmission method according to an embodiment of the present invention.

도 4를 참고하면 본 발명에서 제안하는 실시간 멀티미디어 전송 방법은 병렬 TCP 전송을 이용하는 것이다. 즉 하나의 채널을 통해 실시간 멀티미디어를 전송하는 것이 아니라 복수개의 채널을 통해 실시간 멀티미디어를 전송하는 것이다. 이러한 병렬 TCP는 RTT가 매우 긴 위성 통신과 같은 곳에서 고속으로 신뢰성 있는 파일 전송을 위해 사용되는 기술이다.Referring to FIG. 4, the real-time multimedia transmission method proposed in the present invention uses parallel TCP transmission. That is, instead of transmitting real-time multimedia through one channel, real-time multimedia is transmitted through a plurality of channels. Such parallel TCP is a technology used for high-speed reliable file transfer in a place such as satellite communication where RTT is very long.

전송이 필요한 데이터를 여러 개의 TCP 채널을 통해 동시에 전송하기 때문에 1개의 채널을 사용한 TCP 전송보다 높은 대역폭을 확보할 수 있다. 도 4의 상단을 참고하면 클라이언트(100)에서 서버(200)로 데이터를 전송하는 채널이 3개가 생성된 것을 볼 수 있다. 일반적으로 병렬 TCP를 사용하면 1개의 채널을 사용할 때에 비해서 통합된(Aggregated) 전송 대역폭의 확보가 가능하다.Since data that needs to be transmitted is simultaneously transmitted through multiple TCP channels, a higher bandwidth can be secured than TCP transmission using one channel. 4, three channels for transmitting data from the client 100 to the server 200 are generated. Generally, the use of parallel TCP makes it possible to secure the aggregated transmission bandwidth compared to using one channel.

도 4의 하단을 참고하면 하단에 통합된 대역폭 BWagg의 수식이 도시되어 있다. 단일 채널을 이용하는 도 1의 수식에서 채널별 Packet Loss와 관련된 부분이 더해진 형태로 수식이 변형되었다. 즉 1부터 n개의 채널을 사용한다고 가정하면, 각각의 채널별 패킷 손실 p1부터 pn까지의 제곱근의 역수의 합만큼의 대역폭을 최대로 확보할 수 있다.Referring to the bottom of FIG. 4, the formula of the bandwidth BWagg integrated at the bottom is shown. In the formula of FIG. 1 using a single channel, the equation is modified in such a manner that a portion related to a channel-specific packet loss is added. That is, assuming that 1 to n channels are used, a bandwidth of the sum of reciprocals of the square root of packet loss p1 to pn for each channel can be maximized.

복수개의 채널을 생성하는 경우 클라이언트(100)와 서버(200) 사이의 RTT나 MSS는 채널과 상관없이 동일한 값을 가지므로 이를 공통으로 묶을 수 있다. 그러면 도 4의 하단의 수식처럼 각 채널별 Packet Loss만 남게 된다. 물론 동일한 네트워크에 복수개의 채널이 생성된 경우이므로 다른 특별한 사정이 없다면 각 채널별 손실율도 동일하게 된다. 그러면 수식상으로는 각 채널별 대역폭을 최대 n개 합한 만큼의 대역폭을 확보할 수 있다. 여기서 도 4의 수식에서 BWagg의 수식에 "≤” 가 있음을 유의할 필요가 있다.In the case of generating a plurality of channels, the RTT or MSS between the client 100 and the server 200 have the same value irrespective of the channel, so they can be grouped together. Then, as shown in the lower part of FIG. 4, only the packet loss for each channel is left. Of course, since a plurality of channels are created in the same network, the loss rate for each channel is the same unless otherwise specified. Then, it is possible to secure a bandwidth equal to a maximum of n bandwidths for each channel. Here, it is necessary to note that in the equation of FIG. 4 there is "? &Quot; in the formula of BWagg.

즉, 전체 네트워크의 대역폭이 무한대는 아니므로, 채널을 늘린다고 사용할 수 있는 대역폭도 계속해서 늘어나는 것은 아니며 일정한 제한이 있게 된다. 도 5를 참고하면 내부 네트워크에서 테스트를 수행한 결과이기는 하지만, 채널의 수가 10개 정도까지는 비례해서 대역폭이 증가하는 것을 볼 수 있다.That is, since the bandwidth of the entire network is not infinite, the bandwidth that can be used to increase the channel does not increase continuously, and there is a certain limitation. Referring to FIG. 5, it can be seen that the bandwidth increases proportionally to the number of channels up to 10, although it is the result of testing in the internal network.

그러나 도 5를 참고하면 채널의 수가 10개를 초과한 이후부터는 채널의 수를 늘리더라도 대역폭이 비례해서 늘어나지 않고 약 200Mbps에 수렴하는 것을 볼 수 있다. 이처럼 채널을 계속해서 늘리더라도 확보할 수 있는 대역폭은 특정 값에 수렴한다.However, referring to FIG. 5, since the number of channels exceeds 10, even if the number of channels is increased, the bandwidth does not increase proportionally and converges to about 200 Mbps. Even if the channel is continuously increased, the bandwidth that can be secured converges to a specific value.

이는 전체 네트워크의 대역폭의 한계, 각 채널에 데이터를 분할해서 보내기 위해 송신 장치에서 발생하는 부하, 각 채널별로 분할된 데이터를 수신해서 병합하기 위해 수신 장치에서 발생하는 부하 등으로 인한 것이다. 또한 가용 대역폭이나 지연, 손실율과 같은 네트워크의 환경값들도 채널의 수가 많아지면서 영향을 받는다. 그러므로 채널을 추가할 때 이러한 변화를 고려하여야 한다.This is due to the limitation of the bandwidth of the entire network, the load occurring in the transmitting apparatus for dividing the data into each channel, the load occurring in the receiving apparatus for receiving and merging the divided data for each channel, and the like. Also, network environment values such as available bandwidth, delay, and loss rate are affected as the number of channels increases. Therefore, these changes must be considered when adding channels.

도 4 내지 도 5를 통해서 볼 수 있는 것처럼 복수개의 채널을 이용하여 실시간 멀티미디어를 전송하는 경우 한 개의 채널을 이용하여 데이터를 전송하는 경우에 비해 큰 대역폭을 확보할 수 있으므로 TCP 특성으로 인해 발생하는 첫번째 문제를 해결할 수 있다.As shown in FIGS. 4 to 5, when real-time multimedia is transmitted using a plurality of channels, a large bandwidth can be secured compared with the case of transmitting data using one channel. Therefore, I can solve the problem.

또한 본 발명에서 제안하는 병렬 TCP 가속을 이용한 실시간 멀티미디어를 전송하는 방법은 복수개의 채널을 풀(pool) 형태로 관리하기 때문에 빠르게 높은 대역폭을 확보할 수 있으며, 급격한 대역폭의 감소에도 상대적으로 영향을 적게 받을 수 있다. 이에 대해서는 도 7a 내지 도 7b에서 보다 자세히 살펴보기로 한다.In addition, since the method of transmitting real-time multimedia using parallel TCP acceleration according to the present invention manages a plurality of channels in a pool form, it can secure a high bandwidth quickly, Can receive. This will be described in more detail with reference to FIGS. 7A to 7B.

도 6은 본 발명의 일 실시예에 따른 PTCP 채널 매니저를 설명하기 위한 구성도이다.FIG. 6 is a block diagram illustrating a PTCP channel manager according to an embodiment of the present invention. Referring to FIG.

PTCP란 병렬 TCP(Parallel TCP)의 약자이다. 복수개의 채널을 통해서 실시간 멀티미디어 데이터를 전송하기 위해서는 송신 장치(100)에서 데이터를 여러 개의 패킷으로 나누어 각 채널을 통해 전송해야 한다. 또한 수신 장치(200)에서는 각 채널별로 수신한 패킷을 병합(Merge)하여 실시간 멀티미디어 데이터를 복원하여야 한다.PTCP stands for parallel TCP (parallel TCP). In order to transmit real-time multimedia data through a plurality of channels, the transmitting apparatus 100 divides the data into a plurality of packets and transmits the data through each channel. In addition, the receiver 200 must merge the received packets for each channel to restore real-time multimedia data.

이를 위해 송신 장치인 클라이언트(100)는 BW Broker(110)와 PTCP Channel Manager(120), Channel BW Estimator(130) 모듈을 포함할 수 있다. 마찬가지로 수신 장치인 서버(200)도 BW Broker(210)와 PTCP Channel Manager(220), Channel BW Estimator(230) 모듈을 포함할 수 있다.To this end, the client 100 as a transmitting apparatus may include a BW broker 110, a PTCP channel manager 120, and a channel BW estimator 130 module. Similarly, the server 200, which is a receiving apparatus, may also include a BW Broker 210, a PTCP Channel Manager 220, and a Channel BW Estimator 230 module.

클라이언트(100)의 BW Broker(110)나 서버(200)의 BW Broker(210)는 어플리케이션과의 관계에서 대역폭을 중계해주는 역할을 담당한다. 예를 들면 실시간 화상회의 어플리케이션에서 필요한 대역폭(BW; Bandwidth)을 클라이언트(100)의 BW Broker(110)로 요청하면, 클라이언트(100)의 BW Broker(110)는 이를 다시 클라이언트(100)의 PTCP Channel Manager(120)로 전달하는 역할을 한다.The BW Broker 110 of the client 100 or the BW Broker 210 of the server 200 plays a role of relaying the bandwidth in relation to the application. For example, when the BW Broker 110 of the client 100 requests the bandwidth (BW) required by the real-time video conferencing application to the BW Broker 110 of the client 100, the BW Broker 110 of the client 100 transmits the PTCP Channel To the manager (120).

어플리케이션으로부터 필요한 대역폭을 전달 받은 PTCP Channel Manager(120)는 Channel BW Estimator(130)로부터 채널별 대역폭에 관한 정보를 수신하고 이를 비교한다. 즉, 현재 어플리케이션에 요청한 대역폭이 추가 채널의 생성을 필요로 하는지 비교한다.The PTCP Channel Manager 120 receiving the required bandwidth from the application receives the information on the bandwidth per channel from the Channel BW Estimator 130 and compares the information. That is, it compares whether the bandwidth requested to the current application requires generation of an additional channel.

Channel BW Estimator(130)는 채널별 대역폭에 관한 정보를 제공하기 위해 실시간으로 PTCP 채널에 대한 RTT, Loss, Jitter 등을 측정한다. 이를 바탕으로 PTCP 채널별 최소 대역폭과 평균 대역폭을 예측한다. 여기서 최소 대역폭이란 손실(Loss) 발생시 느린 시작(Slow Start)에 의해 최소로 전송되는 TCP 대역폭을 의미한다.The channel BW estimator 130 measures RTT, loss, and jitter of the PTCP channel in real time in order to provide information on the bandwidth per channel. Based on this, we estimate the minimum bandwidth and average bandwidth per PTCP channel. Herein, the minimum bandwidth means a TCP bandwidth which is minimally transmitted by a slow start when a loss occurs.

다만, 운영체제의 커널 레벨에서 TCP를 어떻게 구현하는지에 따라서 동작이 다소 상이할 수 있으므로, Channel BW Estimator(130)는 클라이언트(100)와 서버(200)의 End-to-End 조합에 따라 RTT와 Loss에 따른 대역폭을 측정하고, 사전 실험에 의해 모델을 생성하여 예측의 정확도를 높일 수 있다.Since the operation may be slightly different depending on how the TCP is implemented at the kernel level of the operating system, the Channel BW Estimator 130 determines RTT and Loss according to the end-to-end combination of the client 100 and the server 200. [ And the prediction accuracy can be improved by generating a model by a preliminary experiment.

다시 PTCP Channel Manager(120)로 돌아가서, 실시간 멀티미디어 어플리케이션에서 화면의 크기(=해상도)와 참석자 수 등을 고려하여 실시간 전송에 필요한 대역폭(Bandwidth)를 요청하면 BW Broker(110)를 통해서 이를 전달 받는다.Returning to the PTCP Channel Manager 120, when a bandwidth required for real-time transmission is requested in consideration of the size of the screen (= resolution) and the number of participants in the real-time multimedia application, the bandwidth is received through the BW Broker 110.

그리고 Channel BW Estimator(130)를 통해 실시간으로 계산된 채널별 대역폭을 비교한다. 필요한 대역폭(B)를 확보하기 위해 추가 채널이 필요한 상황이라면 PTCP Channel Manager(120)는 신규 PTCP 채널 생성을 위한 제어 메시지를 상대방 PTCP Channel Manager(220)로 전송한다.And compares the channel-by-channel bandwidth calculated in real time with the Channel BW Estimator 130. The PTCP Channel Manager 120 transmits a control message for creating a new PTCP channel to the PTCP Channel Manager 220 if the additional channel is required to secure the required bandwidth B. [

해당 제어 메시지는 PTCP 전용 헤더를 통해 전송된다. 즉, 실시간 멀티미디어 데이터가 아닌 제어 메시지 코드를 통해 전송되고, 이를 수신한 상대방 PTCP Channel Manager(220)에서 수신한 제어 메시지를 기반으로 세션 도중에 필요한 PTCP 채널을 생성한다.The corresponding control message is transmitted through the PTCP dedicated header. That is, the PTCP channel is transmitted through the control message code, not the real-time multimedia data, and the PTCP channel manager 220 generates a necessary PTCP channel based on the control message received during the session.

또한, PTCP Channel Manager(120)는 채널의 추가, 삭제를 관리하는 역할 뿐만 아니라, 데이터를 나누고 병합하는 역할도 담당한다. PTCP Channel Manager(120)는 기본적으로 여러 개의 TCP Socket을 통해 전송되는 실시간 멀티미디어 데이터를 MSS에 맞게 분할한 다음 PTCP 전용 헤더를 추가한다.In addition, the PTCP Channel Manager 120 not only manages the addition and deletion of channels, but also plays a role of dividing and merging data. The PTCP Channel Manager 120 basically divides real-time multimedia data transmitted through a plurality of TCP sockets according to the MSS and adds a PTCP dedicated header.

클라이언트(100)의 PTCP Channel Manager(120)로부터 분할된 멀티미디어 데이터를 전송 받은 서버(200)의 PTCP Channel Manager(220)는 전용 헤더에 추가된 정보를 참고하고, 패킷을 다시 재조합(Merge)하여 원본 멀티미디어 데이터를 생성하여 서버(200)의 어플리케이션에 전송하는 역할을 수행한다.The PTCP Channel Manager 220 of the server 200 receiving the divided multimedia data from the PTCP Channel Manager 120 of the client 100 refers to the information added to the dedicated header and reassembles the packet again, And transmits the generated multimedia data to the application of the server 200.

도 6에는 도시되지 않았지만, 서버(200)의 실시간 어플리케이션은 클라이언트(100)가 전송한 실시간 멀티미디어 데이터를 다른 클라이언트로 재전송하는 역할을 담당한다. 이를 통해 복수의 클라이언트에게 실시간 화상회의 서비스를 제공할 수 있다.Although not shown in FIG. 6, the real-time application of the server 200 is responsible for retransmitting the real-time multimedia data transmitted by the client 100 to another client. Thus, it is possible to provide real-time video conferencing services to a plurality of clients.

뿐만 아니라, PTCP Channel Manager(120)는 실시간으로 요청한 대역폭에 빠르게 수렴하기 위해서 사전에 생성한 여분의 PTCP 채널을 관리하는 역할을 담당한다. 즉 PTCP Channel을 풀(Pool) 방식으로 관리할 수 있다. TCP의 특성상 추가적으로 채널을 만들더라도 데이터를 전송하기 위해서는 TCP 특유의 연결 설정 시간(Connection Setup Time)을 필요로 한다.In addition, the PTCP Channel Manager 120 manages an extra PTCP channel generated in advance in order to quickly converge to the requested bandwidth in real time. That is, the PTCP channel can be managed in a pool manner. Due to the nature of TCP, additional connection setup time is required to transmit data even if the channel is additionally created.

3-Way Handshake란 신뢰성 있는 연결을 체결하기 위해 패킷을 3번 교환하여 확인하는 과정을 말한다. 클라이언트에서 서버로 연결을 최초 시도하기 위해서 먼저 SYN 패킷을 전송한다. 그러면 서버에서 이를 수신하고 다시 클라이언트로 SYN ACK 패킷을 전송한다. 그러면 클라이언트에서 최종적으로 ACK 패킷을 서버로 다시 전송한다.A 3-Way Handshake is the process of exchanging a packet three times in order to establish a reliable connection. In order to make a connection from the client to the server for the first time, a SYN packet is transmitted first. The server then receives it and sends the SYN ACK packet back to the client. The client finally sends an ACK packet back to the server.

이렇게 3-Way Handshake 과정을 통해서 클라이언트와 서버 모두 데이터를 전송할 준비가 되었다는 것을 보장할 수 있다. 물론 3-Way Handshake 외에도 4-Way Handshake 등도 있다. 이처럼 TCP 채널을 맨 처음 생성하게 되면 데이터를 전송하기 위해 최소한 3RTT 만큼의 시간을 필요로 하게 된다.This 3-way handshake process ensures that both the client and the server are ready to transmit data. Of course, there are 3-Way Handshakes as well as 4-Way Handshakes. The first time a TCP channel is created, it takes at least 3 RTTs to transmit data.

또한 채널을 생성하였더라도 바로 높은 대역폭으로 데이터를 전송할 수 있는 것도 아니다. 앞서 살펴본 것처럼 TCP 특유의 혼잡 제어 알고리즘으로 인해 생성된 채널이 사용할 수 있는 대역폭이 서서히 증가한다. 그러므로 채널을 생성하는데 소모되는 시간, 필요한 대역폭까지 확보하는데 걸리는 시간까지 포함해서 긴 시간이 소요된다.Also, even if a channel is created, it is not possible to transmit data at a high bandwidth. As we have seen, the TCP-specific congestion control algorithm results in a gradual increase in the available bandwidth of the generated channel. Therefore, it takes a long time, including the time taken to create the channel, and the time taken to secure the necessary bandwidth.

예를 들어 1개 채널당 필요한 Full Window Size 가 100 단위 용량이라고 가정하면 1 RTT + (1 + 2 + 4 + 8 + 16 + 32 + 64) 등으로 해당 채널에서 사용할 수 있는 대역폭이 증가한다고 하면 최소 8RTT 가 지나야만 최대 대역폭인 100 단위 용량을 넘게 되므로 RTT가 200ms인 구간에서는 최소 1.6초가 지나야만 해당 채널에서 필요한 대역폭을 확보할 수 있다.For example, assuming that the required full window size per channel is 100 units, if the bandwidth available on the corresponding channel increases by 1 RTT + (1 + 2 + 4 + 8 + 16 + 32 + 64) The maximum bandwidth of 100 units is exceeded. Therefore, in the interval of RTT of 200 ms, at least 1.6 seconds is required before the required bandwidth can be secured in the corresponding channel.

이러한 문제를 해결하기 위해서 본 발명에서는 단순히 병렬 TCP를 이용하여 실시간 멀티미디어 데이터를 전송하는데 그치는 것이 아니라, 추가로 PTCP 채널을 풀 형태로 관리하고 사전에 생성된 채널을 에이징 시키는 방법을 통해 대역폭을 미리 확보한다.To solve this problem, in the present invention, not only the real time multimedia data is transmitted using the parallel TCP, but also the PTCP channel is managed in a full form and the bandwidth is pre-secured do.

도 7a 내지 도 7b는 본 발명의 일 실시예에 따라 PTCP 채널을 풀(Pool) 방식으로 관리하는 과정을 설명하기 위한 예시도이다.7A and 7B illustrate a process of managing a PTCP channel in a pool manner according to an embodiment of the present invention.

도 7a는 PTCP Channel Manager(120)가 BW Broker(110)로부터 필요한 BW 요청을 받고 채널을 생성하는 경우에 Window Size의 변화를 설명하기 위한 도면이다. 우선 t1 시점까지는 한 개의 채널을 통해서 데이터를 전송하다가, BW Broker(110)로부터 대역폭 확장 요청을 받고 채널을 하나 더 생성하는 경우, 두 번째 채널의 대역폭을 최대로 사용하기 위해서는 t2 시점까지 시간이 필요하게 된다. 이는 TCP 특유의 혼잡 제어 알고리즘 때문이다.7A is a diagram for explaining a change in Window Size when the PTCP Channel Manager 120 receives a necessary BW request from the BW Broker 110 and generates a channel. First, when data is transmitted through one channel until time t1, and another bandwidth is requested from the BW broker 110 and a channel is further generated, time is required until time t2 in order to maximize the bandwidth of the second channel . This is due to the TCP-specific congestion control algorithm.

즉 BW Broker(110)에서 대역폭 확장 요청을 하더라도 PTCP Channel Manager(120)에서 원활한 대역폭을 서비스로 제공하기 위해서는 a = t2 - t1 크기만큼의 시간을 필요로 하게 된다. 이러한 문제를 해결하기 위해서 본 발명에서는 사전에 복수개의 채널을 생성하고 대역폭을 확보하는 방법을 제안한다.That is, even if the BW broker 110 requests a bandwidth extension, it takes a time of a = t2 - t1 to provide a smooth bandwidth in the PTCP Channel Manager 120 as a service. In order to solve such a problem, the present invention proposes a method of generating a plurality of channels in advance and reserving a bandwidth.

즉 PTCP Channel Manager(120)가 사전에 복수개의 채널을 미리 생성하고 해당 채널을 통해 PTCP 채널 메시지나 더미 데이터(Dummy Data)를 전송하는 방식으로 해당 채널의 Congestion Window 크기를 높게 확보하여, BW Broker(110)가 대역폭 확장을 요청하면 즉시 해당 대역폭을 사용할 수 있도록 서비스를 제공할 수 있다.That is, the PTCP Channel Manager 120 previously generates a plurality of channels in advance and transmits a PTCP channel message or dummy data through the corresponding channel, thereby securing the Congestion Window size of the corresponding channel to a high level, 110) requests bandwidth extension, the service can be provided so that the bandwidth can be used immediately.

도 7b를 참고하면 t1 시점에 미리 채널을 2개 생성하고, 그 때부터 더미 데이터 등을 전송하는 방법으로 해당 채널의 대역폭을 확보한다. 다음에 BW Broker(110)에서 t2 시점에 대역폭 확장을 요청하면 사전에 미리 생성하여 대역폭을 확장한 채널을 통해 바로 t3 시점부터 요청한 Window Size로 2개의 채널을 통해서 실시간 멀티미디어 데이터를 전송할 수 있다.Referring to FIG. 7B, two channels are generated in advance at time t1, and the bandwidth of the corresponding channel is secured by transmitting dummy data or the like from that time. Next, when the BW Broker 110 requests bandwidth extension at time t2, it can transmit real-time multimedia data through two channels from a time t3 to a requested window size through a channel that is generated in advance and has an extended bandwidth.

도 7b의 경우에는 a' = t3 - t2 크기만큼의 시간만으로도 요청한 대역폭의 서비스를 바로 제공할 수 있다는 장점이 있다. 즉 사전에 미리 생성한 채널을 미리 에이징(Aging) 시켜서 빠르게 요청한 대역폭을 소화할 수 있도록 할 수 있다. 이를 통해 기존의 TCP 특유의 혼잡 제어 알고리즘으로 인한 두번째 문제도 해결할 수 있다.In the case of FIG. 7B, it is possible to provide the service of the requested bandwidth immediately only by the time of a '= t3 - t2. In other words, the previously generated channel can be aged in advance to quickly digest the requested bandwidth. This also solves the second problem due to the existing TCP-specific congestion control algorithm.

물론 종래에도 병렬 TCP를 이용한 대용량 데이터의 고속 전송 방법이 있었다. 하지만 기존의 병렬 TCP는 데이터를 전송하기 이전에 몇 개의 병렬 TCP를 사용할지 설정에 의해 결정되는 반면에 본 발명에서 제안하는 병렬 TCP는 실시간으로 End-to-End 간의 네트워크 환경을 고려하여 채널의 수를 동적으로 관리한다는 차이점이 있다.Of course, there has been a conventional high speed transmission method of large capacity data using parallel TCP. However, the conventional parallel TCP is determined by how many parallel TCPs are used before the data is transmitted. On the other hand, the parallel TCP proposed in the present invention considers the end-to-end network environment in real time, To manage them dynamically.

이는 실시간 멀티미디어 데이터의 경우 실시간성이 중요한 점, 화면의 해상도나 화질에 따라 필요로 하는 대역폭이 얼마든지 변할 수 있다는 점에서 정해진 크기의 파일을 전송하는 기존의 PTCP와는 차이가 있다. 예를 들면 사용자가 화상회의의 해상도를 360p에서 720p에서 변경하는 경우 필요한 시간당 대역폭의 크기가 달라지게 된다.This is different from the existing PTCP which transmits a fixed size file in that the real-time property is important for real-time multimedia data and the required bandwidth can be changed depending on the resolution or image quality of the screen. For example, if a user changes the resolution of a video conference from 360p to 720p, the amount of bandwidth needed per hour will vary.

이러한 경우 720p의 해상도로 화상회의를 진행하기 위해서 필요한 대역폭을 계산하고, 해당 대역폭으로 서비스를 제공하기 위해서 필요한 병렬 채널의 수를 다시 계산해야 한다. 이는 정해진 개수의 채널을 통해 파일을 최대한 빨리 전송하는 것이 목적인 기존의 PTCP와 실시간 멀티미디어를 전송하기 위한 본 발명의 PTCP가 차이점을 가지는 부분이다.In this case, it is necessary to calculate the bandwidth required for video conferencing at 720p resolution, and to recalculate the number of parallel channels required to provide service at that bandwidth. This is a difference between the conventional PTCP for transmitting a file as soon as possible over a predetermined number of channels and the PTCP of the present invention for transmitting real-time multimedia.

이렇게 동적으로 필요한 병렬 채널의 수를 계산하기 위해서 본 발명의 Channel BW Estimator(130)는 네트워크의 환경 값인 RTT, 송/수신 버퍼 크기, Loss 등을 실시간으로 측정하고, End-to-End 간의 운영체제에서 구현된 혼잡 제어 알고리즘 등을 고려하여, 멀티미디어 어플리케이션에서 원하는 대역폭에 맞는 TCP의 세션 개수를 연산할 수 있다.In order to calculate the number of parallel channels dynamically required, the channel BW estimator 130 of the present invention measures RTT, transmission / reception buffer size, and loss, which are environment values of the network, in real time, The congestion control algorithm, and the like, it is possible to calculate the number of sessions of the TCP corresponding to the desired bandwidth in the multimedia application.

클라이언트(100)와 서버(200)에서 사용하는 운영체제의 TCP 커널의 구현 방식, 예를 들면 혼잡 제어 방식이나 버퍼 크기, 에러 처리 방식 등이 상이하기 때문에 운영체제별로 사전 모델링을 통해 TCP의 대역폭을 예측하는 모델을 Channel BW Estimator(130)에 탑재한다. 사전 모델링은 송/수신 운영체제 및 네트워크 환경(RTT, Loss, Jitter)에 따라 변화하는 정도를 시뮬레이션을 통해 검증한 값이다.Since the implementation method of the TCP kernel of the operating system used by the client 100 and the server 200, for example, the congestion control method, the buffer size, and the error processing method are different, the bandwidth of the TCP is predicted by the pre- The model is mounted on the Channel BW Estimator (130). Pre-modeling is a simulation of the extent to which the transmission / reception operating system and network environment (RTT, loss, and jitter) change.

이상으로 도 6 및 도 7a 내지 도 7b를 통해서 본 발명에서 제안하는 병렬 TCP를 이용한 실시간 멀티미디어 전송 방법에 대해서 살펴보았다. 이를 정리해보면, 도 6으로 돌아가서 본 발명의 BW Broker(110), 210)는 실시간 어플리케이션으로부터 안정적으로 필요한 대역폭 확보 요청을 받고 이를 PTCP Channel Manager(120, 220)로 전달하는 역할을 한다. 도 6에는 어플리케이션이 하나만 도시되어 있으나, 실시간 멀티미디어 전송을 필요로 하는 다양한 어플리케이션이 BW Broker(110), 210)와 연결될 수 있다.6 and 7A to 7B, a real-time multimedia transmission method using the parallel TCP according to the present invention has been described. Referring back to FIG. 6, the BW broker (110) 210 of the present invention receives a bandwidth reservation request stably from a real-time application and transmits it to the PTCP channel managers 120 and 220. Although only one application is shown in FIG. 6, various applications requiring real-time multimedia transmission may be connected to the BW brokers 110 and 210. FIG.

다음으로 PTCP Channel Manager(120, 220)는 병렬로 동시에 전송되는 멀티미디어 데이터 스트림(RTP)를 스트립(Strip)하고 다시 재조합(Merge)하여 원본 멀티미디어 스트림을 생성하는 기본적인 역할을 수행한다. 그 외에도 BW Broker(110, 210)와 Channel BW Estimator(130, 230)와 연동되어 실시간으로 필요한 채널 제어 메시지를 주고 받아 신규로 채널을 생성하는 역할을 담당한다. 또한, 요청한 대역폭보다 훨씬 많은 채널이 장기간 열린 경우, 생성된 채널을 동적으로 반납하는 역할 수행할 수 있다. 이를 통해서 채널을 풀(pool) 방식으로 관리하는 역할을 담당한다.Next, the PTCP Channel Managers 120 and 220 play a fundamental role of stripping and re-merging a multimedia data stream (RTP) simultaneously transmitted in parallel to generate a source multimedia stream. In addition, it plays a role of interworking with the BW brokers (110, 210) and the channel BW estimators (130, 230) to exchange necessary channel control messages in real time and create a new channel. In addition, when a channel having a much larger bandwidth than the requested bandwidth is opened for a long time, the generated channel can be returned dynamically. It is responsible for managing the channel in a pool manner.

마지막으로 Channel BW Estimator(130, 230)는 RTT, Jitter, Loss 등의 네트워크 환경에 따른 제어 메시지(RTCP)를 통해 End-to-End 간의 통신 채널의 특성을 실시간으로 관리하는 역할을 담당한다. 또한 RTT, Jitter, Loss를 입력으로 운영체제 별로 특화된 TCP 특성에 맞게 채널별 대역폭을 추정하는 역할을 담당한다. 또한 필요한 대역폭의 서비스를 제공하기 위해 채널을 새로 생성해야 하는지 여부를 판단하는 정보를 제공한다.Finally, the channel BW estimators 130 and 230 are responsible for managing the characteristics of communication channels between end-to-end in real time through control messages (RTCP) according to the network environment such as RTT, jitter, and loss. In addition, RTT, Jitter, and Loss are input, and it is responsible for estimating the bandwidth per channel according to operating system-specific TCP characteristics. It also provides information to determine whether to create a new channel to provide the required bandwidth service.

도 8은 본 발명의 일 실시예에 따른 병렬 TCP 가속을 이용한 실시간 멀티미디어의 전송 방법의 순서도이다.8 is a flowchart of a method of transmitting real-time multimedia using parallel TCP acceleration according to an embodiment of the present invention.

도 8을 참고하면, 실시간 멀티미디어 어플리케이션은 특정 이벤트로 인해 필요로 하는 대역폭이 변하게 된다(S1100). 예를 들면 화상회의에 참석자가 추가되거나, 화면 해상도를 480p에서 720p로 변경하는 등의 이벤트가 발생하면 지금보다 더 많은 대역폭을 확보해야 실시간 멀티미디어 서비스를 제공할 수 있다. 이러한 경우 기존에는 현재 채널을 통해서 해당 대역폭을 감당할 수 있는지 비교하고, 감당할 수 있는 경우에는 요청한 대역폭으로 서비스를 제공하고, 감당할 수 없는 경우에는 제공할 수 있는 최대 대역폭으로 서비스를 제공했다.Referring to FIG. 8, in the real-time multimedia application, a required bandwidth due to a specific event is changed (S1100). For example, if an attendee is added to a video conference, or a screen resolution is changed from 480p to 720p, the bandwidth can be more than that to provide a real-time multimedia service. In this case, it is compared whether the current bandwidth can be accommodated through the current channel. If the bandwidth can be afforded, the service is provided with the requested bandwidth. If the bandwidth can not be provided, the maximum bandwidth is provided.

이에 비해 본 발명에서는 우선 BW Broker(110)를 통해 필요로 하는 대역폭(B)을 요청 받고(S1200), BW Broker(110)에서 PTCP Channel Manager(120)로 대역폭 확장 요청을 전송한다(S1300). 그러면 PTCP Channel Manager(120)에서는 현재 사용하고 있는 채널을 통해 제공할 수 있는 최대 대역폭(C)을 확인한다(S1400).In contrast, according to the present invention, the bandwidth B requested by the BW Broker 110 is requested (S1200), and the bandwidth extension request is transmitted from the BW Broker 110 to the PTCP Channel Manager 120 (S1300). The PTCP Channel Manager 120 then checks the maximum bandwidth C that can be provided through the currently used channel (S1400).

다음으로 PTCP Channel Manager(120)는 BW Broker(110)에서 요청한 대역폭(B)과 현재 채널을 통해서 제공할 수 있는 최대 대역폭(C)를 비교하고(S1500), 현재 채널을 통해서 제공할 수 있는 최대 대역폭(C)이 요청한 대역폭(B)보다 더 큰 경우, 즉 추가로 채널을 더 생성하지 않아도 요청한 대역폭(B)을 감당할 수 있는 경우에는 요청한 대역폭(B)을 리턴(Return) 한다(S1550).Next, the PTCP channel manager 120 compares the bandwidth B requested by the BW broker 110 with the maximum bandwidth C that can be provided through the current channel (S1500) If the bandwidth C is larger than the requested bandwidth B, that is, if the requested bandwidth B can be accommodated without further generating a channel, the requested bandwidth B is returned (S1550).

만약 현재 채널을 통해서 제공할 수 있는 최대 대역폭(C)이 요청한 대역폭(B)보다 더 작은 경우, 즉 추가로 채널을 더 생성하지 않고서는 요청한 대역폭(B)를 감당할 수 없는 경우에는 추가로 채널을 더 생성하고, 추가로 생성된 채널까지 이용할 경우 제공할 수 있는 최대 대역폭(C)를 Channel BW Estimator(130)로부터 수신한다.If the maximum bandwidth (C) that can be provided through the current channel is smaller than the requested bandwidth (B), that is, if the requested bandwidth (B) can not be met without further generating additional channels, And receives from Channel BW Estimator 130 the maximum bandwidth (C) that can be provided when using up to a further generated channel.

다음으로 PTCP Channel Manager(120)는 BW Broker(110)에서 요청한 대역폭(B)과 추가된 채널을 통해서 제공할 수 있는 최대 대역폭(C')를 비교하고(S1700), 추가된 채널을 통해서 제공할 수 있는 최대 대역폭(C')이 요청한 대역폭(B)보다 더 큰 경우, 즉 추가로 생성된 채널을 통해 요청한 대역폭(B)을 감당할 수 있는 경우에는 요청한 대역폭(B)을 리턴(Return) 한다(S1750).Next, the PTCP channel manager 120 compares the bandwidth B requested by the BW broker 110 with the maximum bandwidth C 'that can be provided through the added channel (S1700) (B) if the maximum bandwidth (C ') that can be received is greater than the requested bandwidth (B), that is, the requested bandwidth (B) over the further generated channel S1750).

만약 추가된 채널을 통해서 제공할 수 있는 최대 대역폭(C')이 요청한 대역폭(B)보다 더 작은 경우, 즉 추가로 채널을 더 생성하더라도 요청한 대역폭(B)를 감당할 수 없는 경우에는 추가된 채널을 통해서 제공할 수 있는 최대 대역폭(C')을 리턴(Return) 한다.If the maximum bandwidth (C ') that can be provided through the added channel is smaller than the requested bandwidth (B), that is, if the user can not afford the requested bandwidth (B) even if an additional channel is generated, (C ') that can be provided through the RNC.

본 발명에서 제안하는 실시간 멀티미디어 전송 방법은 종래의 단일 채널을 이용한 멀티미디어 전송 방법에 비해 채널 추가를 통해 추가 대역폭 확보라는 차이가 있다. 앞서 도 5에서도 살펴보았듯이 전체 네트워크 대역폭이 최대 한계로 존재하기는 하지만, 어느 정도까지는 채널이 추가되면 사용가능한 대역폭도 비례해서 증가하는 특성을 가지므로 병렬 TCP 전송을 통해 실시간 멀티미디어를 전송하는데 필요로 하는 대역폭을 추가로 더 확보할 수 있다.The real-time multimedia transmission method proposed in the present invention differs from the conventional single-channel multimedia transmission method in that additional bandwidth is secured through channel addition. As shown in FIG. 5, although the total network bandwidth exists as a maximum limit, since the available bandwidth increases proportionally with the addition of the channel to some extent, it is necessary to transmit the real time multimedia through the parallel TCP transmission Gt; of the < / RTI >

도 9 내지 도 12는 본 발명의 일 실시예에 따른 Channel BW Estimator와 PTCP Channel Manager를 설명하기 위한 도면이다.9 to 12 are views illustrating a Channel BW Estimator and a PTCP Channel Manager according to an embodiment of the present invention.

도 9를 참고하면, Channel BW Estimator(130)는 RTCP(Real-time Control Protocol)를 통해서 주기적으로 전달되는 RTP 채널에 대한 RTT, Loss, Jitter를 측정한다(S2100). 여기서 RTP는 앞서 설명한 것처럼 영상과 음성(Video & Audio)를 전송하기 위한 프로토콜이며, RTCP는 RTP 데이터의 전송 상태를 감시하기 위한 프로토콜이다.Referring to FIG. 9, the channel BW estimator 130 measures RTT, loss, and jitter of an RTP channel periodically transmitted through an RTCP (Real-time Control Protocol) (S2100). Here, RTP is a protocol for transmitting video and audio as described above, and RTCP is a protocol for monitoring the transmission state of RTP data.

RTCP는 세션 관련 정보를 전송하기 위한 프로토콜로 RTCP를 이용하여 RTP 채널에 관한 네트워크 환경값을 측정할 수 있다. 그리고 측정값을 통해 현재 RTCP 통계값을 산출한다(S2150). 이렇게 산출된 RTCP 통계값은 추후 PTCP 대역폭 모델(PTCP Throughput Model)을 선택할 때 이용된다.RTCP is a protocol for transmitting session related information and can measure the network environment value of the RTP channel using RTCP. The current RTCP statistic value is calculated through the measured value (S2150). The calculated RTCP statistic value is used to select a PTCP throughput model in the future.

또한, PTCP Channel 특성을 통해 현재 초당 실제로 전송이 이루어지는 I/O Bytes 수에 따른 Throughput 통계값을 입력값으로 하고(S2200, S2300), 송신 장치와 수신 장치의 운영체제별로 사전에 측정해 놓은 이들 조합에 따른 PTCP Throughput Model에 기반하여 현재 채널별로 사용 가능한 대역폭의 값을 계속해서 업데이트한다(S2300).In addition, the throughput statistic value according to the number of I / O bytes actually transmitted per second is set as the input value (S2200, S2300) through the PTCP Channel characteristic, and the combination of the transmission apparatuses and the receiving apparatuses Based on the PTCP throughput model according to the current channel (S2300).

앞서 이야기한 것처럼 운영체제의 커널 레벨에서 TCP를 어떻게 구현하는지에 따라서 동작이 다소 상이할 수 있으므로, 송신 장치와 수신 장치의 운영체제의 조합에 따라 PTCP 대역폭을 다양하게 모델링 한다. 그리고, RTCP 통계값과 I/O 전송률(Bitrate)을 이용하여 PTCP 대역폭 모델에서 필요한 모델을 선택하여 채널 추가할 경우의 네트워크 환경값의 변화를 예측하고, 대역폭을 어느 정도로 확보할 수 있는지 예측할 수 있다.As mentioned above, since the operation may be slightly different depending on how the TCP is implemented at the kernel level of the operating system, the PTCP bandwidth is variously modeled according to the combination of the operating system of the transmitting apparatus and the receiving apparatus. Then, by using the RTCP statistics and the I / O rate (bit rate), it is possible to predict the change in the network environment value when the channel is added by selecting a necessary model in the PTCP bandwidth model, and to predict how much bandwidth can be secured .

이러한, 현재 채널별로 사용 가능한 대역폭으로 계산된 값은 PTCP Channel Manager(120)에 제공되고, 사용자가 요청한 대역폭을 감당하기 위해 채널을 추가로 더 생성할지 여부를 판단하는데 활용된다. 도 10을 통해 PTCP 대역폭 모델에 대해서 보다 자세하게 살펴보자.The calculated value of the available bandwidth for each current channel is provided to the PTCP Channel Manager 120 and used to determine whether to further generate a channel to cover the bandwidth requested by the user. The PTCP bandwidth model will be described in more detail with reference to FIG.

도 10을 참고하면, Channel BW Estimator(130)에서 현재 RTCP, PTCP Throughput (Bitrate)등을 고려하여 주기적으로 측정하는 RTT의 변화량 ( RTT), 손실의 변화량 ( Loss), 지터의 변화량 ( Jitter), 실제로 흐른 데이터의 양( Traffic)에 따라 현재 정도의 트래픽에 대해서 "증가(Increase)"를 시켜도 될 정도로 안정인지, "감소(Decrease)"를 시켜야 할 정도로 불안한지를 실험/통계적인 결과값에 의해 판단하는 문턱값(Threshold)을 사전에 모델링 하여 계산한다.10, in the channel BW estimator 130, a RTT, a loss, a jitter, and a jitter of a RTT periodically measured in consideration of a current RTCP and a PTCP throughput (Bitrate) It is judged by experimental / statistical results whether the current traffic is stable enough to allow "Increase" or "Decrease" according to the amount of data actually flowing. (Threshold) is calculated and pre-modeled.

예를 들면 RTCP 프로토콜을 통해 RTP 채널의 현재 RTT, Loss, Jitter의 값을 측정하고 모니터링 한다. PTCP 대역폭 모델에는 송신 장치와 수신 장치의 운영체제의 조합에 따른, 채널 개수에 따른 RTT, Loss, Jitter 등이 사전에 모델로 구축되어 있다.For example, the current RTT, Loss, and Jitter values of the RTP channel are measured and monitored through the RTCP protocol. In the PTCP bandwidth model, RTT, loss, and jitter according to the channel number according to the combination of the operating system of the transmitting apparatus and the receiving apparatus are built in advance as models.

즉 현재 상태에서 채널을 하나 더 추가하는 경우 RTT, Loss, Jitter의 값이 어떻게 변할지 PTCP 대역폭 모델을 통해서 예측이 가능하고 RTT, Loss, Jitter의 변화량을 검토한 결과 채널을 추가할 경우 상태가 안정적(Stable)일지, 보통(Medium)일지, 불안(Unstable)할지 예측할 수 있다.In other words, if another channel is added in the current state, the RTT, loss and jitter values can be predicted through the PTCP bandwidth model and the change of RTT, loss, and jitter is examined. As a result, Stable, Medium, or Unstable.

만약 채널을 추가하더라도 네트워크 환경값(RTT, Loss, Jitter)의 변화가 안정적인 경우 이 때에는 채널을 증가시킬 수 있다(Increase). 반면에 네트워크 환경값의 변화가 보통인 경우 이때에는 채널의 수를 그대로 두는 것이 바람직하다(Stay). 반면에 네트워크 환경값의 변화가 불안한 경우에는 채널을 줄이는 것이 바람직하다(Decrease).If the change of the network environment value (RTT, Loss, Jitter) is stable even if a channel is added, the channel can be increased (Increase). On the other hand, when the change of the network environment value is normal, it is preferable to leave the number of channels as it is. On the other hand, when the change of the network environment value is unstable, it is desirable to reduce the channel (Decrease).

이와 같은 판단을 PTCP 전송률 통계를 이용해서도 수행하여 채널을 추가할지 줄일지를 최종적으로 판단할 수 있다. RTCP 통계값과 PTCP 전송률 통계값을 이용하여 채널의 추가 여부를 판단하는 것은 PTCP Channel Manger에서 최종적으로 수행한다.This decision can also be done using PTCP rate statistics to finally determine whether to add or reduce the channel. The PTCP channel manager finally determines whether to add a channel using the RTCP statistic value and the PTCP rate statistic value.

도 11을 참고하면, Channel BW Estimator(130)는 채널이 증가했을 경우에 대해, 현재 이용 가능한 BW값에 대해 변화 예측을 수행하는데, PTCP Throughput Model 에 따라 1개의 채널이 추가되었을 경우 현재 Network 환경값 (RTT, Loss, Jitter)의 변화 추이를 고려하여 운영체제별로 1개 채널추가시 증가가 예상되는 Throughput, RTT, Jitter, Loss 값을 예측하여 전달한다.Referring to FIG. 11, the channel BW estimator 130 performs a change prediction on a currently available BW value when a channel is increased. When one channel is added according to the PTCP throughput model, (RTT, Loss, and Jitter), it predicts throughput, RTT, jitter, and loss, which are expected to increase when one channel is added per operating system.

즉 병렬 TCP를 이용하는 경우 채널이 추가되면 추가된 채널로 인해 RTT, Loss, Jitter와 같은 네트워크 환경에 변화가 있게 된다. 이러한 네트워크 환경값의 변화는 새로 추가된 채널뿐만 아니라 기존의 채널에도 영향을 미치게 된다. 특히 이러한 네트워크 환경값은 송신 장치와 수신 장치가 사용하는 운영체제에 따라 다양한 변화를 보인다. 이를 사전에 다양한 실험을 통해 모델링을 한다. 이를 통해 채널 추가로 인한 영향을 예측하고, 추가된 채널까지 포함해서 병렬 TCP로 인해 전송할 수 있는 대역폭을 예측한다.That is, when a parallel TCP is used, a channel is added, thereby changing the network environment such as RTT, loss, and jitter due to the added channel. The change of the network environment value affects the existing channel as well as the newly added channel. In particular, the value of the network environment varies depending on the operating system used by the transmitting apparatus and the receiving apparatus. We model it through various experiments beforehand. It predicts the effect of channel addition and predicts the bandwidth that can be transmitted due to parallel TCP including the added channel.

도 12를 참고하면 PTCP Channel Manager(120)는 BW Broker(110)의 요청을 직접 처리한다(S3100). BW Broker(110)로부터 대역폭 (B)로 확장요청이 오면 Channel BW Estimator(130)와 함께 채널을 추가할 경우의 예상 대역폭 고려하여 채널 확장을 시도한다(S3200).Referring to FIG. 12, the PTCP Channel Manager 120 directly processes the request of the BW Broker 110 (S3100). When an extension request is received from the BW Broker 110 to the bandwidth B, the channel BW estimator 130 attempts to expand the channel considering the expected bandwidth when the channel is added (S3200).

이때, 도 5에서 살펴본 것처럼 채널을 더 추가하더라도 예측되는 대역폭(Estimated BW)이 더 증가하지 않을 수 있다. 즉 현재의 대역폭을 기 설정된 임계값과 비교하고(S3300), 채널을 추가하는 효과가 없는 경우 현재의 대역폭(Cur-BW)을 리턴(Return) 한다(S3350).At this time, as shown in FIG. 5, even if a channel is further added, the estimated bandwidth may not be further increased. That is, the current bandwidth is compared with a preset threshold value (S3300). If there is no effect of adding a channel, the current bandwidth (Cur-BW) is returned (S3350).

현재 대여폭이 임계값보다 작은 경우에는 채널을 추가하여 추가 대역폭을 확보할 수 있다. 이 경우 채널을 추가하여 추가로 확보할 수 있는 대역폭(Estimated BW)을 확장 요청 받은 대역폭(B)과 비교한다(S3400). 이때 확장 요청 받은 대역폭(B)이 추가로 확보할 수 있는 대역폭(Estimated BW)보다 작은 경우에는 채널을 추가해서 요청 받은 대역폭(B)을 감당할 수 있는 경우이므로 요청 받은 대역폭(B)을 리턴(Return) 한다(S3450).If the current bandwidth is less than the threshold, additional bandwidth can be obtained by adding channels. In this case, a channel is added to compute an additional available bandwidth (Estimated BW) with the bandwidth B requested to be extended (S3400). In this case, when the bandwidth B requested for extension is smaller than the estimated bandwidth BW, it is possible to add the channel to the requested bandwidth B, (S3450).

만약 확장 요청 받은 대역폭(B)이 추가로 확보할 수 있는 대역폭(Estimated BW)보다 큰 경우에는 채널을 하나 추가하더라도 확장 요청 받은 대역폭(B)을 감당할 수 없는 경우에 해당한다. 이 때에는 채널을 하나보다 더 추가할 필요가 있다. 그러므로 채널을 하나 추가하고 추가된 채널로 인한 네트워크 환경 값을 업데이트 한다(S3500).If the bandwidth B requested for extension is larger than the estimated bandwidth BW, the bandwidth B can not be accommodated even if one channel is added. In this case, you need to add more than one channel. Therefore, one channel is added and the network environment value due to the added channel is updated (S3500).

다음에 채널을 하나 더 추가하는 경우 예상 대역폭을 요청하는 단계(S3200)로 돌아간다. 이와 같은 과정을 통해서, 확장 요청한 대역폭(B)을 감당하기 위해서 총 몇 개의 채널을 더 추가해야 하는지 추정할 수 있다. 즉 요청한 대역폭(B)을 감당하기 위해서 하나의 채널을 추가하는 것으로도 부족한 경우 반복해서 채널을 추가하면서 확장 요청한 대역폭(B)을 감당할 수 있는지 판단할 수 있다.If another channel is added next, the flow returns to step S3200 to request the expected bandwidth. Through this process, it is possible to estimate the total number of channels to be added in order to cover the bandwidth (B) requested to be extended. That is, if it is not sufficient to add one channel in order to cover the requested bandwidth B, it is possible to determine whether the bandwidth B requested for expansion can be accommodated by repeatedly adding a channel.

도 13 내지 도 14는 본 발명의 일 실시예에서 활용될 수 있는 채널 풀(Pool)을 설명하기 위한 예시도이다.13 to 14 are exemplary diagrams illustrating a channel pool that can be utilized in an embodiment of the present invention.

도 13을 참고하면, PTCP Channel Manager(120)는 BW Broker(110)의 요청시점에 채널을 TCP 채널을 추가하는 것이 아니라, 설정에 의해 미리 여분의 PTCP 채널을 생성하여 데이터만 최소로 흐르게 한다. 이때, 미리 만들어 놓은 채널을 Pre-populated PTCP Channel 이라 부르고 해당 채널에는 실제 실시간 어플리케이션이 사용하는 미디어 데이터를 본격적으로 보내지는 않고 미리 준비해 둔다.Referring to FIG. 13, the PTCP Channel Manager 120 does not add a TCP channel to a channel at the request time of the BW Broker 110, but creates an extra PTCP channel in advance to minimize data flow. At this time, the pre-populated channel is called a pre-populated PTCP channel and the media data used by the real-time application is not sent to the corresponding channel in advance.

이를 통해서, Channel Control Message가 전달된 이후에 연결이 맺어질 때까지의 시간(Connection Setup Time)과 어느 정도의 대역폭을 확보할 수 있도록 Windows Size가 커지기까지 대기해야 하는 시간을 미리 줄일 수 있다. UDP의 경우에는 이 연결이 매우 짧아 실시간 전송에 유리하다. 이에 비해 TCP 채널을 사전에 생성하고 에이징 시킴으로써 UDP를 기반으로 하는 경우와 유사한 효과를 얻을 수 있다.This allows you to reduce the time required for the connection to be established after the channel control message is delivered (Connection Setup Time) and the amount of time it takes to wait for the Windows Size to grow so that a certain amount of bandwidth can be obtained. In the case of UDP, this connection is very short, which is advantageous for real-time transmission. By contrast, TCP channels are generated and aged in advance to obtain similar effects to those based on UDP.

도 14를 참고하면, PTCP Channel Manager(120)는 사전에 미리 복수개의 PTCP 채널을 생성한다(S4100). 그리고 사전에 미리 생성한 PTCP 채널을 에이징 시킨다(S4200). 이때 사용되는 Aging Packets는 PTCP 채널의 Control Channel Message 일수도 있고, RTCP 피드백 일수도 있고, 의미 없는 Dummy 패킷일 수 있다. 즉 Sender Queue에 아무것도 보낼 것이 없으면 PTCP Control Message로써 Dummy 패킷을 만들어서 보낼 수 있다.Referring to FIG. 14, the PTCP Channel Manager 120 generates a plurality of PTCP channels in advance (S4100). Then, the pre-generated PTCP channel is aged (S4200). The Aging Packets used here may be the Control Channel Message of the PTCP channel, the RTCP feedback, or a meaningless dummy packet. In other words, if there is nothing to send to the Sender Queue, a dummy packet can be created and sent as a PTCP Control Message.

미리 생성한 PTCP 채널의 에이징(Aging)이 완료될 때까지(S4300), 계속해서 송신 장치의 큐에 저장된 패킷의 일부를 전송한다(S4500). 다만, 이 Aging Packets 들은 운영체제에 정의된 Window Size까지 충분히 Aging이 된 이후에는 Aging을 멈추고 해당 채널에 대한 추가 요청이 올 때까지 풀(Pool)에 대기시킬 수 있다(S4400).(S4500) until the aging of the PTCP channel that has been generated is completed (S4300), and then a part of the packets stored in the queue of the transmitting apparatus is transmitted. However, after the Aging Packets are sufficiently aged up to the window size defined in the operating system, Aging may be stopped and the Aging Packets may wait in a pool until a request for the corresponding channel is received (S4400).

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.

Claims (7)

송신 장치가, 어플리케이션으로부터 데이터를 전송하기 위해 필요한 대역폭을 요청 받는 단계;
상기 송신 장치가, 상기 어플리케이션을 위해 기존에 할당된 TCP 채널의 네트워크 환경값을 이용하여, 상기 어플리케이션을 위한 TCP 채널을 추가하는 경우의 가용 대역폭을 예측하는 단계;
상기 송신 장치가, 상기 필요한 대역폭과 상기 가용 대역폭을 비교하고, TCP 채널을 추가할지 여부를 판단하는 단계;
상기 송신 장치가, TCP 채널을 추가하기로 판단한 경우, 상기 어플리케이션을 위한 TCP 채널을 동적으로 추가하는 단계; 및
상기 송신 장치가, 상기 추가된 TCP 채널을 통해, 상기 데이터를 병렬 TCP 방식으로 전송하는 단계를 포함하는,
데이터 전송 방법.
Receiving a bandwidth required for a transmitting apparatus to transmit data from an application;
Predicting an available bandwidth when the transmitting apparatus adds a TCP channel for the application using a network environment value of a TCP channel that has been previously allocated for the application;
Comparing the available bandwidth with the available bandwidth and determining whether to add a TCP channel;
Dynamically adding a TCP channel for the application when the transmitting device determines to add a TCP channel; And
Wherein the transmitting apparatus transmits the data through the added TCP channel in a parallel TCP manner.
Data transmission method.
제1항에 있어서,
상기 어플리케이션을 위한 TCP 채널을 추가하는 경우의 가용 대역폭을 예측하는 단계는,
상기 어플리케이션을 위해 기존에 할당된 TCP 채널의 네트워크 환경값을 실시간으로 측정하는 단계;
상기 측정된 네트워크 환경값을 이용하여 TCP 채널을 추가하는 경우 변화될 네트워크 환경값을 예측하는 단계; 및
상기 예측한 네트워크 환경값을 이용하여 상기 가용 대역폭을 추정하는 단계를 포함하는,
데이터 전송 방법.
The method according to claim 1,
The step of predicting an available bandwidth when adding a TCP channel for the application comprises:
Measuring a network environment value of an existing TCP channel for the application in real time;
Estimating a network environment value to be changed when a TCP channel is added using the measured network environment value; And
And estimating the available bandwidth using the predicted network environment value.
Data transmission method.
제2항에 있어서,
상기 네트워크 환경값은,
RTT, Loss, Jitter 중에서 하나 이상을 포함하는 것인,
데이터 전송 방법.
3. The method of claim 2,
Wherein the network environment value includes
RTT, Loss, and Jitter.
Data transmission method.
제2항에 있어서,
상기 측정된 네트워크 환경값을 이용하여 TCP 채널을 추가하는 경우 변화될 네트워크 환경값을 예측하는 단계는,
네트워크 환경값, 송신 장치의 운영체제 및 수신 장치의 운영체제 별로 구현된 TCP 특성을 기준으로 사전에 학습한 예측 모델을 이용하는 단계를 포함하는,
데이터 전송 방법.
3. The method of claim 2,
The step of estimating a network environment value to be changed when the TCP channel is added using the measured network environment value,
Using the predictive model learned in advance based on the network environment value, the operating system of the transmitting apparatus, and the TCP characteristic implemented by the operating system of the receiving apparatus,
Data transmission method.
제1항에 있어서,
상기 필요한 대역폭과 상기 가용 대역폭을 비교하고, TCP 채널을 추가할지 여부를 판단하는 단계는,
상기 어플리케이션을 위해 기존에 할당된 TCP 채널의 수가 임계치 이상인 경우, TCP 채널을 추가하지 않기로 판단하는 단계를 포함하는,
데이터 전송 방법.
The method according to claim 1,
Comparing the available bandwidth with the available bandwidth, and determining whether to add a TCP channel,
Determining that the TCP channel should not be added if the number of TCP channels allocated for the application is greater than or equal to a threshold;
Data transmission method.
제1항에 있어서,
상기 어플리케이션을 위한 TCP 채널을 동적으로 추가하는 단계는,
상기 추가할 TCP 채널을 상기 요청 받은 단계 이전에 미리 생성하여 풀(Pool) 방식으로 관리하는 단계;
상기 미리 생성된 TCP 채널에 데이터를 전송하고, 상기 미리 생성된 TCP 채널의 대역폭을 확보하여, 상기 미리 생성된 TCP 채널을 에이징(Aging) 시키는 단계를 포함하는,
데이터 전송 방법.
The method according to claim 1,
Dynamically adding a TCP channel for the application comprises:
Generating the TCP channel to be added in advance in the requested step and managing it in a pool manner;
And transmitting data to the pre-generated TCP channel, securing a bandwidth of the pre-generated TCP channel, and aging the pre-generated TCP channel.
Data transmission method.
제1항에 있어서,
상기 송신 장치가, 상기 어플리케이션을 위해 할당된 TCP 채널 중에서 사용하지 않는 TCP 채널을 TCP 채널의 풀(Pool)에 반납하는 단계를 더 포함하는,
데이터 전송 방법.
The method according to claim 1,
Wherein the transmitting apparatus further comprises returning unused TCP channels among TCP channels allocated for the application to a pool of TCP channels.
Data transmission method.
KR1020170015358A 2017-02-03 2017-02-03 Method and system for real-time multimedia transmission using parallel TCP acceleration KR102622268B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170015358A KR102622268B1 (en) 2017-02-03 2017-02-03 Method and system for real-time multimedia transmission using parallel TCP acceleration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170015358A KR102622268B1 (en) 2017-02-03 2017-02-03 Method and system for real-time multimedia transmission using parallel TCP acceleration

Publications (2)

Publication Number Publication Date
KR20180090467A true KR20180090467A (en) 2018-08-13
KR102622268B1 KR102622268B1 (en) 2024-01-05

Family

ID=63250875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170015358A KR102622268B1 (en) 2017-02-03 2017-02-03 Method and system for real-time multimedia transmission using parallel TCP acceleration

Country Status (1)

Country Link
KR (1) KR102622268B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080089250A1 (en) * 2005-03-10 2008-04-17 Young-Ha Jung Transmission Control Method for Tcp Bi-Directional Transmission In Asymmetric Bandwidth Pre-Allocated Subscriber Network And Apparatus Therefor
KR20120133658A (en) * 2011-05-31 2012-12-11 삼성에스디에스 주식회사 Stream Controlling Method and Apparatus for Parallel Receiving of Data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080089250A1 (en) * 2005-03-10 2008-04-17 Young-Ha Jung Transmission Control Method for Tcp Bi-Directional Transmission In Asymmetric Bandwidth Pre-Allocated Subscriber Network And Apparatus Therefor
KR20120133658A (en) * 2011-05-31 2012-12-11 삼성에스디에스 주식회사 Stream Controlling Method and Apparatus for Parallel Receiving of Data

Also Published As

Publication number Publication date
KR102622268B1 (en) 2024-01-05

Similar Documents

Publication Publication Date Title
KR101046105B1 (en) Computer program manufacturing, resource demand adjustment methods, and end systems
US7088678B1 (en) System and method for traffic shaping based on generalized congestion and flow control
Brosh et al. The delay-friendliness of TCP for real-time traffic
Feng et al. Understanding and improving TCP performance over networks with minimum rate guarantees
US20100005178A1 (en) Method and system for firewall friendly real-time communication
US20070008884A1 (en) Immediate ready implementation of virtually congestion free guarantedd service capable network
JP2004538719A (en) Method for providing a non-linear, highly scalable increase-decrease congestion control mechanism
WO2002033896A2 (en) Method and apparatus for characterizing the quality of a network path
EP2396943B1 (en) Controlling bandwidth share
US20020075895A1 (en) Transmission rate controller and transmission rate control method
Bouras et al. Multimedia transmission with adaptive QoS based on real‐time protocols
Papadimitriou et al. SSVP: A congestion control scheme for real-time video streaming
Papadimitriou et al. A rate control scheme for adaptive video streaming over the internet
KR102622268B1 (en) Method and system for real-time multimedia transmission using parallel TCP acceleration
Ahlgren et al. ICN congestion control for wireless links
Kadhum et al. Congestion-aware TCP-friendly system for multimedia transmission based on UDP
Wei et al. Assessing and improving TCP rate shaping over edge gateways
Lu et al. EQF: An explicit queue-length feedback for TCP congestion control in datacenter networks
Wakamiya et al. TCP-friendly video transfer
WO2019124290A1 (en) Transmit data volume control device, method, and recording medium
Wang et al. Multipath live streaming via tcp: Performance and benefits
Chung et al. Mtp a streaming friendly transport protocol
Shih et al. A transparent QoS mechanism to support IntServ/DiffServ networks
Oida Propagation of low variability in video traffic
WO2014087765A1 (en) Terminal and communication system

Legal Events

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