KR102162350B1 - 다중 통신 제어 장치 및 방법 - Google Patents
다중 통신 제어 장치 및 방법 Download PDFInfo
- Publication number
- KR102162350B1 KR102162350B1 KR1020190017121A KR20190017121A KR102162350B1 KR 102162350 B1 KR102162350 B1 KR 102162350B1 KR 1020190017121 A KR1020190017121 A KR 1020190017121A KR 20190017121 A KR20190017121 A KR 20190017121A KR 102162350 B1 KR102162350 B1 KR 102162350B1
- Authority
- KR
- South Korea
- Prior art keywords
- networks
- data
- redundant data
- received
- protocol
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
- H04L43/0841—Round trip packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- 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]
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
일 실시예에 따른 다중 통신 제어 장치는 TCP 프로토콜 및 UDP 프로토콜을 이용한 서버와의 다중 통신을 수행하는 통신부와, 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 네트워크 모니터부와, 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로 상기 복수 개의 네트워크 각각에서 이용될 프로토콜을 상기 TCP 프로토콜 및 상기 UDP 프로토콜 중에서 선택하거나 또는 상기 복수 개의 네트워크 각각에 대한 손실 복구용 중복 데이터 크기를 결정하는 파라미터 제어부를 포함한다.
Description
본 발명은 다중 통신 제어 장치 및 방법에 관한 것이다.
2012 년 4 월 MPEG(MPEG-2)는 MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH)라는 HTTP 적응적 스트리밍 방식을 표준화 하였다. MPEG-DASH에서 서버는 영상 세그먼트와 Media Presentation Description(MPD)이라고 불리는 메타 데이터 파일을 저장한다.
MPEG-DASH에서, 단말은 먼저 서버에게 전술한 MPD를 요청해서 수신받는다. 단말은 이렇게 수신된 MPD를 분석한다. 또한 단말은 네트워크 상태를 분석하며, 이러한 분석 결과를 기초로 영상 세그먼트를 수신받을 때 필요한 대역폭을 결정한다. 이 후 단말은 MPD에 대해 분석된 결과와 네트워크 상태에 대해 분석된 결과 및 상기와 같이 결정된 대역폭 등을 고려하여서, 서버에게 영상 세그먼트를 요청해서 수신받는다. 이 경우 영상 세그먼트는 TCP 프로토콜을 이용하여서, 즉 단일 무선 네트워크를 이용하여서 서버로부터 수신받는다.
여기서, 영상 세그먼트를 수신받을 때 필요한 대역폭은 네트워크 상태에 따라 결정된다. 이 때 대역폭의 결정 가능한 범위에는 한계가 존재한다. 왜냐하면, 영상 세그먼트의 수신에 이용되는 TCP 프로토콜은 단일 무선 네트워크이기 때문이다.
한편, Internet Engineering Task Force (IETF)에서는 multipath TCP (MPTCP)라는 방식이 제안되었다. 그러나 MPTCP에서는 이종 네트워크 간 네트워크 상태의 차이가 클 때, Head of blocking 문제가 발생할 수 있다. 뿐만 아니라 네트워크에서 패킷 손실이 자주 발생한다면, 이러한 네트워크에 MPTCP 방식이 적용된다고 하더라도 고품질의 스트리밍의 제공은 어려울 수 있다. 왜냐하면 TCP 프로토콜에서는, 패킷 손실 시 혼잡 윈도우(Congestion Window)를 감소시킴으로써 처리량 (Throughput) 을 감소시키기 때문이다.
본 발명의 해결하고자 하는 과제는, 복수 개의 무선 네트워크 각각을 동시에 이용하는 다중 통신 방식에서, 에너지 효율적이면서도 안정적으로 통신이 수행될 수 있도록 하는 기술을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 다중 통신 제어 장치는 TCP 프로토콜 및 UDP 프로토콜을 이용한 서버와의 다중 통신을 수행하는 통신부와, 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 네트워크 모니터부와, 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로 상기 복수 개의 네트워크 각각에서 이용될 프로토콜을 상기 TCP 프로토콜 및 상기 UDP 프로토콜 중에서 선택하거나 또는 상기 복수 개의 네트워크 각각에 대한 손실 복구용 중복 데이터 크기를 결정하는 파라미터 제어부를 포함한다.
또한, 상기 수집된 상태 정보는 상기 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나를 포함할 수 있다.
또한, 상기 파라미터 제어부는 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로 상기 TCP 프로토콜이 이용될 때와 상기 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하고, 상기 산출된 결과를 비교한 결과를 기초로 상기 복수 개의 네트워크 각각에서 이용될 프로토콜을 상기 TCP 프로토콜 및 상기 UDP 프로토콜 중에서 선택할 수 있다.
또한, 상기 파라미터 제어부는 상기 네트워크 모니터가 수집한 패킷 손실율을 기초로 상기 중복 데이터 크기를 결정할 수 있다.
또한, 상기 파라미터 제어부는 상기 복수 개의 네트워크 각각에 대해 결정된 상기 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정할 수 있다.
또한, 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양은 상기 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시키는 기 정의된 알고리즘을 이용하여서 결정될 수 있다.
일 실시예에 따른 다중 통신 제어 장치가 수행하는 다중 통신 제어 방법은 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와, 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로, 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계와, 상기 복수 개의 네트워크 각각에 대한 손실 복구용 중복 데이터 크기를 결정하는 단계를 포함하여 수행된다.
또한, 상기 수집된 상태 정보는 상기 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나를 포함할 수 있다.
또한, 상기 선택하는 단계는 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로 상기 TCP 프로토콜이 이용될 때와 상기 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와, 상기 산출된 결과를 비교한 결과를 기초로 상기 복수 개의 네트워크에서 이용될 프로토콜을 상기 TCP 프로토콜 및 상기 UDP 프로토콜 중에서 선택하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는 상기 수집된 패킷 손실율을 기초로 상기 중복 데이터 크기를 결정할 수 있다.
또한, 상기 복수 개의 네트워크 각각에 대해 결정된 상기 데이터 크기를 기초로 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정하는 단계를 더 포함할 수 있다.
또한, 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양은 상기 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시키는 기 정의된 알고리즘을 이용하여서 결정될 수 있다.
일 실시예에 따른 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램은 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와, 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로, 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계와, 상기 복수 개의 네트워크 각각에 대한 손실 복구용 중복 데이터 크기를 결정하는 단계를 포함하여 수행되도록 프로그램된다.
일 실시예에 따른 컴퓨터 판독가능한 기록매체는 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와, 상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보를 기초로, 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계와, 상기 복수 개의 네트워크 각각에 대한 손실 복구용 중복 데이터 크기를 결정하는 단계를 포함하여 수행되도록 프로그램된 컴퓨터 프로그램을 저장한다.
일 실시예에 따르면 복수 개의 무선 네트워크 각각을 동시에 이용하는 다중 통신 방식에서, 에너지 효율적이면서도 안정적으로 통신이 수행될 수 있다.
도 1은 일 실시예에 따른 다중 통신 제어 장치가 탑재된 단말 및 이러한 단말과 통신을 수행하는 서버 각각에 대한 개략적인 구성도이다.
도 2는 랩터 코드(raptor code) 기반의 중복 데이터에 대한 파일 구조를 예시적으로 도시하고 있다.
도 3은 일 실시예에 따른 다중 통신 제어 장치가 탑재된 단말과 서버 사이에서 수행되는 통신 절차에 대한 개략적인 절차도이다.
도 4는 일 실시예에 따라 단말과 서버 사이에서 복수 개의 네트워크를 통해 통신이 수행될 때 각 네트워크를 통해 전달되는 데이터를 예시적으로 도시하고 있다.
도 5는 일 실시예에 따른 다중 통신 제어 장치에서 수행되는, 소정의 파라미터들의 값을 결정하는 순서에 대한 절차도이다.
도 2는 랩터 코드(raptor code) 기반의 중복 데이터에 대한 파일 구조를 예시적으로 도시하고 있다.
도 3은 일 실시예에 따른 다중 통신 제어 장치가 탑재된 단말과 서버 사이에서 수행되는 통신 절차에 대한 개략적인 절차도이다.
도 4는 일 실시예에 따라 단말과 서버 사이에서 복수 개의 네트워크를 통해 통신이 수행될 때 각 네트워크를 통해 전달되는 데이터를 예시적으로 도시하고 있다.
도 5는 일 실시예에 따른 다중 통신 제어 장치에서 수행되는, 소정의 파라미터들의 값을 결정하는 순서에 대한 절차도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시예에 따른 다중 통신 제어 장치(120)가 탑재된 단말(100) 및 이러한 단말(100)과 통신을 수행하는 서버(200) 각각에 대한 개략적인 구성도이다.
도 1을 참조하면, 서버(200)와 단말(100) 사이에서의 통신에는 2개 또는 그 이상의 네트워크가 동시에 이용될 수 있다. 즉, 서버(200)와 단말(100) 사이에서는 다중 통신이 수행될 수 있다. 이 때 복수 개의 네트워크 중 어느 하나의 네트워크에서는 TCP 프로토콜이 이용될 수 있고, 다른 하나의 네트워크에서는 UDP 프로토콜이 이용될 수 있다. 물론, 각 네트워크에서는 전술한 TCP 프로토콜과 UDP 프로토콜 이외의 프로토콜이 이용될 수도 있다.
서버(200)는 영상을 스트리밍 방식으로 제공하는 컴퓨터 등에서 구현 가능하다. 아울러, 단말(100)은 서버(200)로부터 스트리밍 방식으로 영상을 전달받아서 재생 가능한 스마트폰, 스마트 패드 또는 PC 등에서 구현 가능하다.
이 중 서버(200)에 대해 먼저 살펴보기로 한다. 서버(200)는 구성으로서 저장부(210), TCP용 통신부(220), UDP용 통신부(230) 및 네트워크 인터페이스(240)를 포함하며, 다만 서버(200)의 구성이 도 1에 도시된 것에 의해 한정되는 것은 아니다.
저장부(210)는 데이터를 저장하는 메모리 등에 의해 구현 가능하다. 저장부(210)에는 도시된 것과 같이 영상(video) 데이터(이하에서 영상 데이터는 세그먼트(segment)라고 지칭될 수도 있다) 및 영상 데이터 각각에 매칭되는 손실 복구용 중복 데이터가 저장되며, 또한 도 1에는 도시되지 않은 또 다른 데이터가 저장될 수도 있다. 여기서 중복 데이터는 영상 데이터 중 일부가 손실되었을 때 이를 복구하기 위해 사용되는 데이터를 지칭한다. 이러한 중복 데이터는 랩터 코드(raptor code)를 기반으로 생성된 것일 수 있는데, 이에 대해서는 도 2를 참조하여 살펴보기로 한다.
도 2는 영상 데이터 및 랩터 코드(식별자 raptor code) 기반의 중복 데이터에 대한 파일 구조를 예시적으로 도시하고 있다. 도 2를 참조하면, 영상 데이터(S)는 복수 개의 소스 블록으로 분할될 수 있다. 예컨대 영상 데이터(S)는 4개의 소스 블록(SA1 내지 SA4) 또는 2개의 소스 블록(SB1, SB2)으로 분할될 수 있다. 경우에 따라 영상 데이터(S)는 분할되지 않을 수도 있다.
여기서 소스 블록이란 영상 데이터를 구성하는 기본 단위를 지칭한다. 아울러 각각의 소스 블록에는 적어도 1개의 심볼이 포함될 수 있는데, 여기서 심볼이란 전술한 소스 블록을 구성하는 기본 단위를 지칭한다. 따라서, 심볼 1개의 크기(또는 심볼 1개의 데이터의 양)가 s이고 어느 하나의 소스 블록에 k개의 심볼이 포함된다면 해당 소스 블록의 크기(또는 해당 소스 블록에 포함된 데이터의 양)은 s*k가 된다.
한편, 중복 데이터(RA1 내지 RA4, RB1 내지 RB2, RC 등)는 전술한 소스 블록마다 각각 생성된 뒤, 인터리브(interleave) 방식으로 각각의 소스 블록에 합쳐질 수 있다. 이 때 생성되는 중복 데이터의 양은 코드레이트(cr)에 의해 조절된다. 만약 kenc(단, kenc≥k)가 인코딩 블록의 심볼 갯수라면 코드레이트(cr)는 kenc /k로 계산된다.
한편, 중복 데이터의 생성 과정 내지 합쳐지는 방식 그 자체는 공지된 기술이므로 이에 대한 자세한 설명은 생략하기로 한다.
다시 도 1을 참조하기로 한다. TCP용 통신부(220)는 TCP 프로토콜을 기초로 HTTP 스트리밍 서비스를 제공할 수 있는 유/무선 통신 모듈일 수 있다. 이러한 TCP용 통신부(220)는 TCP-based HTTP server라고 지칭될 수 있다.
아울러, UDP용 통신부(230)는 UDP 프로토콜을 기초로 HTTP 스트리밍 서비스를 제공할 수 있는 유/무선 통신 모듈일 수 있다. 이러한 UDP용 통신부(230)는 UDP-based HTTP server라고 지칭될 수 있다.
네트워크 인터페이스(240)란, 서버(200)와 단말(100)이 복수 개의 네트워크를 통해서 통신을 수행한다고 했을 때, 이러한 복수 개의 네트워크 각각과 서버(200) 간을 인터페이싱 해주는 구성이다. 여기서 네트워크 인터페이스(240) 그 자체는 공지된 구성이므로 이에 대한 추가적인 설명은 생략하기로 한다.
다음으로 단말(100)에 대해 살펴보기로 한다. 단말(100)은 제1 네트워크 인터페이스(110), 제2 네트워크 인터페이스(111) 및 다중 통신 제어 장치(120)를 포함하며, 다만 단말(100)의 구성이 도 1에 도시된 것에 의해 한정되는 것은 아니다.
제1 네트워크 인터페이스(110)와 제2 네트워크 인터페이스(111)는 서버(200)에 포함된 구성인 네트워크 인터페이스(240)와 동일한 기능을 수행하는 구성이다. 즉, 제1 네트워크 인터페이스(110)와 제2 네트워크 인터페이스(111)는 복수 개의 네트워크 각각과 단말(100) 간을 인터페이싱 해주는 구성이다.
이 중 제1 네트워크 인터페이스(110)는 TCP 프로토콜을 이용한 통신을 가능하게 해주는 구성일 수 있고, 제2 네트워크 인터페이스(111)는 UDP 프로토콜을 이용한 통신을 가능하게 해주는 구성일 수 있으며, 다만 이에 한정되지는 않는다. 한편, 제1 네트워크 인터페이스(110) 및 제2 네트워크 인터페이스(111) 각각은 공지된 구성이므로 이들에 대한 추가적인 설명은 생략하기로 한다.
다중 통신 제어 장치(120)는 단말(100)과 서버(200) 간의 다중 통신을 제어하는 장치이다. 즉, 단말(100)과 서버(200) 사이에서 복수 개의 네트워크를 통한 통신이 이루어질 수 있을 때, 다중 통신 제어 장치(120)는 이러한 복수 개의 네트워크를 통한 통신을 제어하는 장치이다. 이 때 복수 개의 네트워크 각각에서는 TCP 프로토콜이나 UDP 프로토콜 또는 기타 다양한 프로토콜이 이용될 수 있음은 전술한 바와 같다.
다중 통신 제어 장치(120)는 구성으로서 통신부(121), 패킷 파싱(parsing)부(122), 랩터 디코더(123), 디코더(124), 파라미터 제어부(125) 및 네트워크 모니터부(126)를 포함하며, 다만 다중 통신 제어 장치(120)의 구성이 도 1에 도시된 것으로 한정 해석되는 것은 아니다. 아울러, 다중 통신 제어 장치(120)의 이러한 각 구성은 프로세서에 의해 실행되는 소프트웨어 모듈이나 하드웨어 모듈 형태로 구현되거나 또는 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로 구현될 수 있다.
통신부(121)는 제1 네트워크 인터페이스(110) 또는 제2 네트워크 인터페이스(111)와 연결됨으로서, 단말(100)과 서버(200) 간의 통신을 가능하게 해주는 구성이다.
네트워크 모니터부(126)는 네트워크에 대한 상태 정보를 수집하는 구성이다. 즉, 단말(100)과 서버(200) 사이에서 복수 개의 네트워크를 통한 통신이 이루어질 수 있는 경우, 네트워크 모니터부(126)는 이러한 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 구성이다. 이를 위해 네트워크 모니터부(126)는 제1 네트워크 인터페이스(110) 또는 제2 네트워크 인터페이스(111)와 연결되어서 이들 각각으로부터 복수 개의 네트워크 각각에 대한 상태 정보를 수집할 수 있다.
네트워크 모니터부(126)가 수집 가능한 정보에는, 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나가 포함될 수 있으며, 다만 이에 한정되는 것은 아니다.
패킷 파싱부(122)는 패킷을 파싱(parsing)하는 구성이다. 예컨대 패킷 파싱부(122)는 영상 데이터 또는 중복 데이터를 파싱할 수 있다.
랩터 디코더(123)는 랩터 코드 기반으로 인코딩된 중복 데이터를 디코딩하는 구성이다.
디코더(124)는 소정의 방식으로 인코딩된 영상 데이터 또는 기타 다양한 데이터를 디코딩하는 구성이다.
파라미터 제어부(125)는 다중 연결과 관련된 다양한 파라미터의 값을 선택 또는 결정하는 구성이다.
예컨대 파라미터 제어부(126)는 각 네트워크에 대해 수집된 상태 정보를 기초로 각 네트워크에서 이용될 프로토콜을 TCP 프로토콜과 UDP 프로토콜 중에서 선택할 수 있다. 선택 과정에서, 파라미터 제어부(126)는 각 네트워크에서 TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때의 에너지 효율을 산출한 뒤 이렇게 산출된 결과를 전술한 선택 과정의 근거로 삼을 수 있으며, 다만 이에 한정되는 것은 아니다.
또한 파라미터 제어부(125)는 각 네트워크를 통해 송수신될 데이터의 양을 결정할 수 있다. 여기서 각 네트워크를 통해 송수신될 데이터의 양이란, 각 네트워크를 통해 송수신될 수 있는 전술한 소스 블록의 갯수를 가리키는 것일 수 있으나 이에 한정되는 것은 아니다.
또한 파라미터 제어부(125)는 각 네트워크에 대해 수집된 상태 정보, 예컨대 패킷 손실율을 기초로 각 네트워크에서 이용될 손실 복구용 중복 데이터의 크기를 결정할 수 있다.
또한 파라미터 제어부(125)는 서버(200)로부터 제공받을 영상 데이터에 대한 품질을 결정할 수 있다.
뿐만 아니라 파라미터 제어부(125)는 심볼 1개의 크기 s에 대한 정보를 결정할 수 있다.
이하에서는 이러한 서버(200)와 단말(100)에서 다중 통신이 수행될 수 있도록 하기 위한 과정 내지 절차에 대해 도 3을 참조하여 살펴보기로 한다.
도 3에는 일 실시예에 따른 다중 통신 제어 장치(120)가 탑재된 단말(100)과 서버(200) 사이에서 다중 통신이 수행될 수 있도록 하기 위한 과정 내지 절차에 대한 개략적인 절차도가 도시되어 있다.
도 3을 도 1 내지 2와 함께 참조하면, 단말(100)은 서버(200)에게 확장된 MPD 파일을 요청한다(S100). 여기서 확장된 MPD 파일이란, 기존 기술인 MPEG-DASH에서 사용되는 MPD 파일에 전술한 중복 데이터에 대한 정보가 포함되는 파일을 지칭한다. 예컨대 확장된 MPD 파일은 중복 데이터에 대한 정보로서 해상도에 대한 ID, 각각의 소스 블록에 포함되어 있는 심볼의 갯수 k 또는 이러한 심볼의 갯수가 될 수 있는 숫자의 집합 등을 포함할 수 있다.
이 때 단계 S100의 요청 과정은 단말(100)과 서버(200) 간에 존재하는 복수 개의 네트워크 중 가장 신호 세기가 강한 네트워크를 통해 수행될 수 있다.
단계 S100의 요청에 대응해서 서버(200)는 단말(100)에게 확장된 MPD 파일을 전송한다(S110). 그러면 패킷 파싱부(122)는 단계 S110에서 서버(200)로부터 전송받은 확장된 MPD 파일을 파싱하고, 파라미터 제어부(125)는 파싱된 파일을 분석한다(S120).
한편, 단계 S100 내지 S120과 별개로 또는 병행하여서 네트워크 모니터부(126)는 단말(100)과 서버(200) 간에 존재하는 복수 개의 네트워크 각각에 대한 상태 정보를 수집한다(S130). 수집 가능한 정보에는 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나가 포함될 수 있음은 전술한 바와 같다.
그러면 파라미터 제어부(125)는 단계 S120에서 분석된 결과 및 단계 S130에서 수집된 상태 정보 중 적어도 하나를 기초로 각 네트워크에 대한 중복 데이터의 크기를 결정한다(S200).
또한, 파라미터 제어부(125)는 단계 S120에서 분석된 결과, 단계 S130에서 수집된 상태 정보 및 단계 S200에서 결정된 중복 데이터의 크기 중 적어도 하나를 기초로 각 네트워크에서 이용될 프로토콜을 TCP 프로토콜 또는 UDP 프로토콜 중에서 선택한다(S300). 이 때 각 네트워크에서 TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때의 에너지 효율에 대한 산출 결과가, 프로토콜에 대한 선택 과정의 근거가 될 수 있음은 전술한 바와 같다.
또한, 파라미터 제어부(125)는 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정한다(S400). 이러한 단계 S400에서의 결정 과정에는, 단계 S120에서 분석된 결과, 단계 S130에서 수집된 상태 정보, 단계 S200에서 결정된 중복 데이터의 크기 및 단계 S300에서 선택된 프로토콜에 대한 정보 중 적어도 하나가 인자로서 고려될 수 있다. 또한 이러한 결정 과정에서 전술한 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시킬 수 있는 소정의 알고리즘이 활용될 수 있다.
한편, 도 3에 도시되어 있지는 않지만 단계 S200 내지 S400의 수행 과정에서 영상 데이터의 품질 또는 전술한 심볼의 크기 s가 결정될 수도 있는데, 이들에 대한 결정 과정 및 전술한 단계 S200 내지 S400에 대해서는 도 5에서 보다 자세하게 설명하기로 한다.
이 후 단말(100)은 영상 데이터 및 단계 S200에서 결정된 크기를 갖는 중복 데이터를 요청한다(S500).
단계 S500의 요청에 대응해서 서버(200)는 단말(100)에게 복수 개의 네트워크 중 일부 또는 전부를 통해 영상 데이터 및 이러한 영상 데이터에 대한 중복 데이터를 전송한다(S510).
그러면 도 3에는 도시되어 있지 않지만, 패킷 파싱부(121)는 단계 S510에서 전송받은 영상 데이터 및 중복 데이터를 파싱하고, 디코더(124)는 이 중 파싱된 영상 데이터를 디코딩한다. 디코딩된 영상 데이터는 단말(100)에서 재생된다.
한편, 경우에 따라 단계 S510에서 전송받은 영상 데이터 중 일부에 손실이 있을 수 있다. 만약 손실된 데이터의 양이 일정 기준 미만이라면, 랩터 디코더(123)는 패킷 파싱부(121)가 파싱한 중복 데이터를 기초로 랩터 디코딩을 수행함으로써 손실된 영상 데이터를 복구한다. 여기서 중복 데이터를 기초로 랩터 디코딩이 수행되는 과정 그 자체는 공지된 기술이므로 이에 대한 자세한 설명은 생략하기로 한다.
이와 달리 손실된 데이터의 양이 일정 기준 이상이라면, 일 실시예에서는 NACK 기반 재전송 기법에 따라 이렇게 손실된 영상 데이터가 복구될 수 있다. NACK 기반 그 자체는 공지된 기술이므로 이에 대한 설명은 생략하기로 한다.
도 4에는 단말(100)과 서버(200) 사이에서 2개의 네트워크(제1 네트워크 및 제2 네트워크)를 통해 전달되는 영상 데이터 및 중복 데이터가 개념적으로 도시되어 있다.
먼저, 단말(100)이 서버(200)에게 제1 영상 데이터에 대해 요청한 경우를 살펴보자. 제1 네트워크에서는, RTT(또는 HTTP 요청 기간(HTTP request duration)) 이후에 세그먼트 다운로드 시간(segment download duration) 동안 제1 영상 데이터(a,b)가 다운로드(전송)된다. 이후 stall duration이라고 불리는 기간 동안 대기가 발생하게 된다.
아울러 제2 네트워크에서는, RTT 이후에 제1 영상 데이터(c,d) 및 중복 데이터(c-1,d-1)가 세그먼트 다운로드 시간 동안 다운로드(전송)된다. 이후 stall duration 동안 대기가 발생하게 된다.
이 후 단말(100)이 서버(200)에게 제2 영상 데이터에 대해 요청한 경우를 살펴보자. 제1 네트워크에서는 RTT 이후에 제2 영상 데이터(e,f,g) 및 중복 데이터(e-1,f-1,g-1)가 세그먼트 다운로드 시간 동안 다운로드(전송)된다. 이후 stall duration 동안 대기가 발생하게 된다.
아울러, 제2 네트워크에서는, RTT 이후에 제2 영상 데이터(h,i,j,k) 및 중복 데이터(h-1,i-1,j-1,k-1)가 세그먼트 다운로드 시간 동안 다운로드(전송)된다. 이후 stall duration 동안 대기가 발생하게 된다.
한편, 이하에서는 전술한 단계 S200 내지 S400 및 영상 데이터의 품질 또는 전술한 심볼의 크기 s가 결정되는 과정에 대해 도 5를 참조하여서 살펴보기로 한다.
도 5는 일 실시예에 따른 다중 통신 제어 장치(120)의 파라미터 제어부(125)가 수행하는, 소정의 파라미터들의 값을 결정하는 순서에 대한 절차도이다. 여기서, 도 5에 도시된 결정되는 파라미터에는 다음과 같은 것들이 포함될 수 있다.
- 영상 데이터의 품질 q
- 심볼 크기 s
도 5를 참조하면, ,,,,각각을 초기화하는 과정이 수행되고, 또한 이들에 대한 비용 함수 가 무한대의 값으로 초기화되는 과정이 수행된다(S140). 각각의 파라미터 및 비용 함수 에 대해서는 후술하기로 한다.
다음으로, 영상 데이터의 품질 q와 심볼 크기 s에 대해, 가능한 모든 조합을 생성한다(S150). 이 때 심볼 크기 s가 가질 수 있는 숫자는 서버(200)로부터 수신받은 확장된 MPD 파일로부터 획득 가능하다.
다음으로, 단계 S150에서 생성된 q와 s의 조합 중 어느 하나를 선택한다(S160).
다음으로, 을 임의의 값으로 설정한 뒤, TCP 프로토콜을 이용할 때와 UDP 프로토콜을 이용할 때의 에너지 효율을 비교하여 을 결정한다(S300). 에너지 효율에 대해서는 후술하기로 한다
다음으로 q와 s의 모든 조합에 대해 전술한 단계 S140 내지 S160, S200 내지 S410가 수행되었는지 확인한다(S420). 만약 모든 조합에 대해 확인되었다면 절차는 종료되지만 그렇지 않은 경우라면 단계 S160으로 간다.
이하에서는 단계 S140 내지 S160, S200 내지 S410에서 언급된 세부적인 사항에 대해 살펴보기로 한다.
이러한 수학식 3에서 는 i번째 네트워크를 통해 요청될 소스 블록의 수이다. 만약 품질 q를 갖는 영상 데이터의 j번째 세그먼트의 총 소스 블록 수는 다음과 같이 수학식 4와 같이 정의될 수 있다.
수학식 6에서 는 세그먼트 요청 라운드 동안 번째 네트워크 인터페이스에서 에너지 소비량이다. 는 번째 네트워크에서 UDP를 통해 데이터가 전송 될 때, 소스 블록을 랩터 디코딩하기 위한 에너지 소비량을 의미한다. 는 비디오 품질 레벨 에서 비디오 세그먼트의 비트레이트를 의미한다.
수학식 7과 8은 번째 네트워크에서 UDP가 사용될 때, 손실된 데이터를 복구하기 위해 충분한 양의 중복 데이터를 요청해야 된다는 것을 의미한다. 는 번째 네트워크에서 수신 받는 랩터 인코딩 블록의 랩터 디코딩 실패율을 나타내며, 이는 허용 가능한 최대 랩터 디코딩 실패율 () 보다 작아야 한다. 는 번째 네트워크에서 UDP가 사용될 때 랩터 디코딩 시간이며, 은 번째 네트워크의 RTT, 는 클라이언트에서 버퍼링된 비디오 시간을 의미한다. 는 네트워크 상태 예측의 오류로 인해 발생하는 버퍼 언더 플로우를 피하기 위해 필요한 마진 값이다 .
즉, 수학식 7은 번째 네트워크에서 UDP가 사용될 때, 손실된 데이터를 복구하기 위해 충분한 양의 중복 데이터를 요청해야 된다는 것을 의미한다. 또한 수학식 8은 클라이언트에서 재생 버퍼의 데이터가 고갈되기 전, 요청된 데이터를 수신 및 랩터 디코딩을 완료하기 위해 필요한 제약 조건을 의미한다.
이하에서는 중복 데이터 크기 결정 알고리즘과 블록 스케쥴링 알고리즘에 대해 살펴보기로 한다.
<중복 데이터 크기 결정 알고리즘>
중복 데이터의 크기는 네트워크의 PLR 값에 의해 결정되는데, PLR 값은 선택된 프로토콜에 따라 다르게 측정된다. 먼저, TCP를 통해 세그먼트 데이터가 수신될 때, 수학식 9와 같은 TCP 처리량 모델을 기반으로 번째 네트워크의 PLR 값이 추정될 수 있다.
상기 수학식 9에서 는 최대 세그먼트 크기이며, 는 상수 값, 은 TCP를 통해 데이터 수신 시 측정된 처리량이다. 세그먼트 데이터가 UDP를 사용하여 수신 될 때, 본 발명은 Spike 방식을 사용하고 도달하는 패킷들의 시퀀스를 식별함으로써 PLR 값을 쉽게 추정 할 수 있다. Spike 방식의 경우 one-way trip 를 기반으로 무선 채널 오류로 인해 발생한 패킷 손실과 인터넷 혼잡으로 발생한 패킷 손실을 구분하고 각 경우의 패킷 손실률을 측정한다. 이에 기초하여, 현재 세그먼트 요청 라운드의 끝난 후, 추정 되는 다음 세그먼트 요청 라운드의 처리량은 다음과 같다.
상기 수학식 10 에서 는 의 근의 제곱의 장기 평균 (the long-term average of the square of root) 값이며, 은 UDP가 사용시 측정된 처리량이다. TCP 사용 시, UDP의 처리량은 TFRC 기반 모델을 사용하여 추정된다.
Raptor 인코딩 블록에 대한 Raptor 디코딩 실패율은 다음과 같이 계산된다.
상기 수학식들에서 는 번째 네트워크에서 성공적으로 수신된 패킷 수를 의미하는 확률 변수이고, 은 성공적인 랩터 디코딩에 필요한 최소 패킷 수이다. 그리고 는 소스 심볼 갯수 에 대한 최소 심볼 오버 헤드이다. 는 번째 네트워크에서 성공적으로 수신된 패킷의 수이며 는 한 개의 소스 블록을 전송하기 위한 필요한 패킷 수이다. 이를 통해 번째 네트워크를 통해 전송되어야 되는 중복 패킷 수 은 수학식 15와 같이 계산되면, 서버로 요청된 총 패킷 수 (i.e., ) 는 수학식 16 및 17을 통해 얻어진다.
<블록 스케쥴링 알고리즘>
블록 스케쥴링 알고리즘은 결정된 및 을 기반으로 전체 네트워크 인터페이스의 에너지 소비 (수학식 18) 를 최소화하기 위해 각 무선 네트워크를 통해 수신되는 데이터의 양 을 결정한다. 또한, 수학식 18의 비용 함수를 최대화 하는 를 결정할 때, 수학식 19 및 수학식 20에서 정의되는 조건을 만족시켜야 된다.
상기 수학식 18-19에서 는 이 주어졌을 때, 번째 네트워크 인터페이스의 에너지 소비량이다. 여기서 의 값을 결정하는 과정은 공지된 기술에 해당하므로 이에 대한 설명은 생략하기로 한다.
이상에서 살펴본 바와 같이, 일 실시예에 따르면 단말과 서버 사이의 복수 개의 네트워크 각각에는 TCP 프로토콜과 UDP 프로토콜 중 어느 하나가 선택되어서 이용될 수 있다. 이 때 만약 UDP 프로토콜이 선택될 경우 신뢰성 있는 데이터 전송을 위해 랩터 코드가 적용되므로, 손실된 패킷에 대한 복구가 재전송 없이도 가능하다. 또한 네트워크 인터페이스와 랩터 디코더의 에너지 소비 모델을 통한, 에너지 효율적인 스트리밍 서비스의 제공이 가능해진다.
한편, 전술한 방법에 관한 발명은, 이러한 방법에 포함된 각각의 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체의 형태 또는 컴퓨터 판독가능한 기록매체에 저장된, 해당 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 프로그램의 형태로 실시될 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
120: 다중 통신 제어 장치
Claims (14)
- TCP 프로토콜 및 UDP 프로토콜을 이용한 서버와의 다중 통신을 수행하는 통신부와,
복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 네트워크 모니터부와,
상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 통신부를 통해 상기 서버로부터 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하며, 상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로 상기 TCP 프로토콜이 이용될 때와 상기 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하고, 상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 산출한 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 이용될 프로토콜을 상기 TCP 프로토콜 및 상기 UDP 프로토콜 중에서 선택하는 파라미터 제어부를 포함하고,
상기 에너지 효율은,
상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는
다중 통신 제어 장치. - 제 1 항에 있어서,
상기 수집된 상태 정보는,
상기 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나를 포함하는
다중 통신 제어 장치. - 삭제
- 제 1 항에 있어서,
상기 파라미터 제어부는,
상기 네트워크 모니터가 수집한 패킷 손실율을 기초로 상기 중복 데이터 크기를 결정하는
다중 통신 제어 장치. - 제 1 항에 있어서,
상기 파라미터 제어부는,
상기 복수 개의 네트워크 각각에 대해 결정된 상기 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정하는
다중 통신 제어 장치. - 제 5 항에 있어서,
상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양은,
상기 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시키는 기 정의된 알고리즘을 이용하여서 결정되는
다중 통신 제어 장치. - 다중 통신 제어 장치가 수행하는 다중 통신 제어 방법으로서,
복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와,
서버로부터 손실 복구용 중복 데이터에 대응하는 정보를 수신하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로, 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로, TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계를 포함하고,
상기 에너지 효율은,
상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는
다중 통신 제어 방법. - 제 7 항에 있어서,
상기 수집된 상태 정보는,
상기 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나를 포함하는
다중 통신 제어 방법. - 삭제
- 제 7 항에 있어서,
상기 결정하는 단계는,
상기 수집된 패킷 손실율을 기초로 상기 중복 데이터 크기를 결정하는
다중 통신 제어 방법. - 제 7 항에 있어서,
상기 복수 개의 네트워크 각각에 대해 결정된 상기 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정하는 단계를 더 포함하는
다중 통신 제어 방법. - 제 11 항에 있어서,
상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양은,
상기 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시키는 기 정의된 알고리즘을 이용하여서 결정되는
다중 통신 제어 방법. - 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와,
서버로부터 손실 복구용 중복 데이터에 대응하는 정보를 수신하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로, 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로, TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계를 포함하고,
상기 에너지 효율은,
상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는 다중 통신 제어 방법을 수행하도록 프로그램된
컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체. - 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와,
서버로부터 손실 복구용 중복 데이터에 대응하는 정보를 수신하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로, 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로, TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와,
상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계를 포함하고,
상기 에너지 효율은,
상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는 다중 통신 제어 방법을 수행하도록 프로그램된
컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190017121A KR102162350B1 (ko) | 2019-02-14 | 2019-02-14 | 다중 통신 제어 장치 및 방법 |
US16/792,037 US11196793B2 (en) | 2019-02-14 | 2020-02-14 | Method and apparatus for adaptive streaming based on hybrid TCP and UDP in multiple narrowband wireless communication environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190017121A KR102162350B1 (ko) | 2019-02-14 | 2019-02-14 | 다중 통신 제어 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200099312A KR20200099312A (ko) | 2020-08-24 |
KR102162350B1 true KR102162350B1 (ko) | 2020-10-06 |
Family
ID=72142812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190017121A KR102162350B1 (ko) | 2019-02-14 | 2019-02-14 | 다중 통신 제어 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11196793B2 (ko) |
KR (1) | KR102162350B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2019003955A1 (ja) * | 2017-06-29 | 2020-04-30 | ソニー株式会社 | 通信システムおよび制御装置 |
US11501190B2 (en) * | 2020-07-02 | 2022-11-15 | Juniper Networks, Inc. | Machine learning pipeline for predictions regarding a network |
WO2022048889A1 (en) * | 2020-09-01 | 2022-03-10 | Interdigital Ce Patent Holdings, Sas | A method of controlling energy consumed by a multimedia streaming application |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001298479A (ja) * | 2000-04-12 | 2001-10-26 | Nec Corp | インターネット電話装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100341391B1 (ko) * | 1999-10-22 | 2002-06-21 | 오길록 | 대화형 오디오 서비스를 위한 적응형 부가 전송 방법 및 패킷 손실 복구 방법과 이를 위한 멀티미디어 컴퓨터의 오디오 입출력 제어 장치 |
TW200412101A (en) * | 2002-12-23 | 2004-07-01 | Shaw-Hwa Hwang | Directly peer-to peer transmission protocol between two virtual network |
US7440805B2 (en) * | 2003-07-30 | 2008-10-21 | Cardiac Pacemakers, Inc. | Implantable pulse generator system and method for utilizing communication protocols |
JP4356742B2 (ja) * | 2006-12-25 | 2009-11-04 | ソニー株式会社 | データ通信システム、データ送信装置およびデータ送信方法 |
US8363573B2 (en) * | 2007-01-08 | 2013-01-29 | Avaya Technology Llc | Method for ringcasting with improved reliability |
WO2008124947A1 (en) * | 2007-04-16 | 2008-10-23 | Neuralitic Systems | A method and system for filtering ip traffic in mobile ip networks |
KR20120101942A (ko) | 2011-03-07 | 2012-09-17 | 한국전자통신연구원 | 파운틴 코드 기반 비디오 스트리밍 시스템 및 그 방법 |
US9019815B2 (en) * | 2011-08-01 | 2015-04-28 | Cisco Technology, Inc. | Source alive route injection |
CN104221317B (zh) * | 2012-06-04 | 2018-01-23 | 松下知识产权经营株式会社 | 发送装置、接收装置、发送方法及接收方法 |
CN104322020B (zh) * | 2013-03-26 | 2019-01-01 | 松下电器产业株式会社 | 服务器、路由器、接收终端及处理方法 |
US20140357993A1 (en) * | 2013-05-31 | 2014-12-04 | eagleyemed, Inc. | Dynamic adjustment of image compression for high resolution live medical image sharing |
US9191209B2 (en) * | 2013-06-25 | 2015-11-17 | Google Inc. | Efficient communication for devices of a home network |
GB2512154B (en) * | 2013-09-18 | 2015-07-22 | Imagination Tech Ltd | Sequence number retrieval for voice data with redundancy |
EP2869645B1 (en) * | 2013-10-31 | 2019-08-21 | Alcatel Lucent | A communications system and a method of determining an optimal duty cycle to minimise overall energy consumption |
EP2908491A1 (en) * | 2014-02-12 | 2015-08-19 | HOB GmbH & Co. KG | A communication system for transmitting data under a tunnel protocol |
US20160198021A1 (en) * | 2015-01-02 | 2016-07-07 | Citrix Systems, Inc. | Dynamic protocol switching |
US10373490B2 (en) * | 2017-04-10 | 2019-08-06 | Bitsensing Inc. | Real-time traffic information collection |
US10917445B2 (en) * | 2017-04-20 | 2021-02-09 | Saysearch, Inc. | Communication sessions between computing devices using dynamically customizable interaction environments |
US10778813B2 (en) * | 2018-08-01 | 2020-09-15 | T-Mobile Usa, Inc. | Mobile voice adaptive control protocol with method for retransmission |
US10833972B2 (en) * | 2018-11-30 | 2020-11-10 | Dispersive Networks, Inc. | Automatically selecting an optimized communication channel for communications with a deflect in an overlay network |
-
2019
- 2019-02-14 KR KR1020190017121A patent/KR102162350B1/ko active IP Right Grant
-
2020
- 2020-02-14 US US16/792,037 patent/US11196793B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001298479A (ja) * | 2000-04-12 | 2001-10-26 | Nec Corp | インターネット電話装置 |
Also Published As
Publication number | Publication date |
---|---|
US11196793B2 (en) | 2021-12-07 |
US20200274909A1 (en) | 2020-08-27 |
KR20200099312A (ko) | 2020-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100657314B1 (ko) | 멀티미디어 스트리밍 송신 장치 및 방법 | |
Xu et al. | CMT-QA: Quality-aware adaptive concurrent multipath data transfer in heterogeneous wireless networks | |
KR102162350B1 (ko) | 다중 통신 제어 장치 및 방법 | |
US9455925B2 (en) | Method, device, and system for self-adaptively adjusting data transmission rate | |
JP4971799B2 (ja) | データパケットに関する情報を使用してデータパケットの送信順序を決定する方法およびシステム | |
JP4287429B2 (ja) | 階層型通信シナリオにおける複数の通信層の動作を制御する装置および方法 | |
JP4697525B2 (ja) | 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム | |
US9325628B2 (en) | Packet handling method, forwarding device and system | |
JP5094593B2 (ja) | 送信装置、受信装置、及び方法、プログラム | |
KR102114847B1 (ko) | 이동 통신 시스템에서 멀티미디어 데이터 송수신 방법 및 장치 | |
JP7496022B2 (ja) | クライアント、サーバ、受信方法及び送信方法 | |
Wu et al. | Modeling and optimization of high frame rate video transmission over wireless networks | |
JP4834013B2 (ja) | 送信装置、送信プログラム、受信装置及び受信プログラム | |
JP2010028378A (ja) | 通信装置及び通信方法 | |
US9131251B2 (en) | Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server | |
US8368927B2 (en) | Information processing apparatus, control method thereof, and program | |
US9641445B2 (en) | Communication apparatus, communication method, and program | |
Aqil et al. | Streaming lower quality video over LTE: How much energy can you save? | |
KR100737678B1 (ko) | 멀티미디어 스트리밍 서비스에 대한 지연시간 분석방법 | |
Ahmedin et al. | A survey of multimedia streaming in LTE cellular networks | |
WO2011048740A1 (ja) | データ伝送システム、送信速度制御方法、受信端末、送信端末 | |
JP4343792B2 (ja) | ネットワーク輻輳規模判定方法及びシステム | |
KR101915885B1 (ko) | 실시간 비디오 스트리밍을 위한 우선 순위 대기열을 갖는 효율적인 mac 레이어 패킷 단편화 방법 및 시스템 | |
Ma et al. | Access point centric scheduling for dash streaming in multirate 802.11 wireless network | |
Zhang et al. | An optimized BBR for multipath real time video streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |