KR102162350B1 - 다중 통신 제어 장치 및 방법 - Google Patents

다중 통신 제어 장치 및 방법 Download PDF

Info

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
Application number
KR1020190017121A
Other languages
English (en)
Other versions
KR20200099312A (ko
Inventor
고종환
김동현
박노혁
최증원
송황준
박기석
김재우
박현
이종만
Original Assignee
국방과학연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국방과학연구소 filed Critical 국방과학연구소
Priority to KR1020190017121A priority Critical patent/KR102162350B1/ko
Priority to US16/792,037 priority patent/US11196793B2/en
Publication of KR20200099312A publication Critical patent/KR20200099312A/ko
Application granted granted Critical
Publication of KR102162350B1 publication Critical patent/KR102162350B1/ko

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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0841Round trip packet 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/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • 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/70Media network packetisation
    • 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/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing 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

다중 통신 제어 장치 및 방법 {APPARATUS AND METHOD FOR CONTROLLING MULTI COMMUNICATION}
본 발명은 다중 통신 제어 장치 및 방법에 관한 것이다.
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) 을 감소시키기 때문이다.
한국공개특허공보 10-2012-0101942호 (2012.09.17.공개)
본 발명의 해결하고자 하는 과제는, 복수 개의 무선 네트워크 각각을 동시에 이용하는 다중 통신 방식에서, 에너지 효율적이면서도 안정적으로 통신이 수행될 수 있도록 하는 기술을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 다중 통신 제어 장치는 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는 일 실시예에 따른 다중 통신 제어 장치에서 수행되는, 소정의 파라미터들의 값을 결정하는 순서에 대한 절차도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 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에 도시된 결정되는 파라미터에는 다음과 같은 것들이 포함될 수 있다.
- 각 네트워크에서 이용될 프로토콜
Figure 112019015589967-pat00001
- 영상 데이터의 품질 q
- 각 네트워크를 통해 송수신될 데이터의 양
Figure 112019015589967-pat00002
- 심볼 크기 s
- 네트워크에 대한 중복 데이터의 크기
Figure 112019015589967-pat00003
도 5를 참조하면,
Figure 112019015589967-pat00004
,
Figure 112019015589967-pat00005
,
Figure 112019015589967-pat00006
,
Figure 112019015589967-pat00007
,
Figure 112019015589967-pat00008
각각을 초기화하는 과정이 수행되고, 또한 이들에 대한 비용 함수
Figure 112019015589967-pat00009
가 무한대의 값으로 초기화되는 과정이 수행된다(S140). 각각의 파라미터 및 비용 함수
Figure 112019015589967-pat00010
에 대해서는 후술하기로 한다.
다음으로, 영상 데이터의 품질 q와 심볼 크기 s에 대해, 가능한 모든 조합을 생성한다(S150). 이 때 심볼 크기 s가 가질 수 있는 숫자는 서버(200)로부터 수신받은 확장된 MPD 파일로부터 획득 가능하다.
다음으로, 단계 S150에서 생성된 q와 s의 조합 중 어느 하나를 선택한다(S160).
다음으로, 중복 데이터 크기 결정 알고리즘을 기초로
Figure 112019015589967-pat00011
를 결정한다(S200). 중복 데이터 크기 결정 알고리즘에 대해서는 후술하기로 한다.
다음으로,
Figure 112019015589967-pat00012
을 임의의 값으로 설정한 뒤, TCP 프로토콜을 이용할 때와 UDP 프로토콜을 이용할 때의 에너지 효율을 비교하여
Figure 112019015589967-pat00013
을 결정한다(S300). 에너지 효율에 대해서는 후술하기로 한다
다음으로, 블록 스케쥴링 알고리즘을 통해
Figure 112019015589967-pat00014
를 결정한다(S400). 블록 스케쥴링 알고리즘에 대해서는 후술하기로 한다.
다음으로,
Figure 112019015589967-pat00015
를 계산해서 업데이트한다(S400). 만약,
Figure 112019015589967-pat00016
Figure 112019015589967-pat00017
보다 크고, 제한조건을 만족한다면,
Figure 112019015589967-pat00018
Figure 112019015589967-pat00019
으로 업데이트 된다.
다음으로 q와 s의 모든 조합에 대해 전술한 단계 S140 내지 S160, S200 내지 S410가 수행되었는지 확인한다(S420). 만약 모든 조합에 대해 확인되었다면 절차는 종료되지만 그렇지 않은 경우라면 단계 S160으로 간다.
이하에서는 단계 S140 내지 S160, S200 내지 S410에서 언급된 세부적인 사항에 대해 살펴보기로 한다.
먼저, 비용 함수
Figure 112019015589967-pat00020
는 다음의 수학식 1과 같이 정의될 수 있다.
Figure 112019015589967-pat00021
여기서,
Figure 112019015589967-pat00022
은 다음의 수학식 2와 같이 표현될 수 있다.
Figure 112019015589967-pat00023
Figure 112019015589967-pat00024
또한,
Figure 112019015589967-pat00025
는 다음의 수학식 3과 같이 표현될 수 있다.
Figure 112019015589967-pat00026
이러한 수학식 3에서
Figure 112019015589967-pat00027
는 i번째 네트워크를 통해 요청될 소스 블록의 수이다. 만약 품질 q를 갖는 영상 데이터의 j번째 세그먼트의 총 소스 블록 수는 다음과 같이 수학식 4와 같이 정의될 수 있다.
Figure 112019015589967-pat00028
한편, 중복 데이터 벡터
Figure 112019015589967-pat00029
는 수학식 5와 같이 나타낼 수 있다.
Figure 112019015589967-pat00030
수학식 5에서
Figure 112019015589967-pat00031
Figure 112019015589967-pat00032
번째 네트워크를 통해 요청 되는 소스 블록에 필요한 중복 데이터의 크기이다.
한편, 수학식 1에서
Figure 112019015589967-pat00033
번째 네트워크의 에너지 효율
Figure 112019015589967-pat00034
은 수학식 6과 같이 계산된다.
Figure 112019015589967-pat00035
수학식 6에서
Figure 112019015589967-pat00036
는 세그먼트 요청 라운드 동안
Figure 112019015589967-pat00037
번째 네트워크 인터페이스에서 에너지 소비량이다.
Figure 112019015589967-pat00038
Figure 112019015589967-pat00039
번째 네트워크에서 UDP를 통해 데이터가 전송 될 때, 소스 블록을 랩터 디코딩하기 위한 에너지 소비량을 의미한다.
Figure 112019015589967-pat00040
는 비디오 품질 레벨
Figure 112019015589967-pat00041
에서 비디오 세그먼트의 비트레이트를 의미한다.
한편,
Figure 112019015589967-pat00042
를 결정하는 과정에서는, 아래의 수학식 7과 8이 만족되어야 한다.
Figure 112019015589967-pat00043
Figure 112019015589967-pat00044
수학식 7과 8은
Figure 112019015589967-pat00045
번째 네트워크에서 UDP가 사용될 때, 손실된 데이터를 복구하기 위해 충분한 양의 중복 데이터를 요청해야 된다는 것을 의미한다.
Figure 112019015589967-pat00046
Figure 112019015589967-pat00047
번째 네트워크에서 수신 받는 랩터 인코딩 블록의 랩터 디코딩 실패율을 나타내며, 이는 허용 가능한 최대 랩터 디코딩 실패율 (
Figure 112019015589967-pat00048
) 보다 작아야 한다.
Figure 112019015589967-pat00049
Figure 112019015589967-pat00050
번째 네트워크에서 UDP가 사용될 때 랩터 디코딩 시간이며,
Figure 112019015589967-pat00051
Figure 112019015589967-pat00052
번째 네트워크의 RTT,
Figure 112019015589967-pat00053
는 클라이언트에서 버퍼링된 비디오 시간을 의미한다.
Figure 112019015589967-pat00054
는 네트워크 상태 예측의 오류로 인해 발생하는 버퍼 언더 플로우를 피하기 위해 필요한 마진 값이다
Figure 112019015589967-pat00055
.
즉, 수학식 7은
Figure 112019015589967-pat00056
번째 네트워크에서 UDP가 사용될 때, 손실된 데이터를 복구하기 위해 충분한 양의 중복 데이터를 요청해야 된다는 것을 의미한다. 또한 수학식 8은 클라이언트에서 재생 버퍼의 데이터가 고갈되기 전, 요청된 데이터를 수신 및 랩터 디코딩을 완료하기 위해 필요한 제약 조건을 의미한다.
이하에서는 중복 데이터 크기 결정 알고리즘과 블록 스케쥴링 알고리즘에 대해 살펴보기로 한다.
<중복 데이터 크기 결정 알고리즘>
중복 데이터의 크기는 네트워크의 PLR 값에 의해 결정되는데, PLR 값은 선택된 프로토콜에 따라 다르게 측정된다. 먼저, TCP를 통해 세그먼트 데이터가 수신될 때, 수학식 9와 같은 TCP 처리량 모델을 기반으로
Figure 112019015589967-pat00057
번째 네트워크의 PLR 값이 추정될 수 있다.
Figure 112019015589967-pat00058
상기 수학식 9에서
Figure 112019015589967-pat00059
는 최대 세그먼트 크기이며,
Figure 112019015589967-pat00060
는 상수 값,
Figure 112019015589967-pat00061
은 TCP를 통해 데이터 수신 시 측정된 처리량이다. 세그먼트 데이터가 UDP를 사용하여 수신 될 때, 본 발명은 Spike 방식을 사용하고 도달하는 패킷들의 시퀀스를 식별함으로써 PLR 값을 쉽게 추정 할 수 있다. Spike 방식의 경우 one-way trip 를 기반으로 무선 채널 오류로 인해 발생한 패킷 손실과 인터넷 혼잡으로 발생한 패킷 손실을 구분하고 각 경우의 패킷 손실률을 측정한다. 이에 기초하여, 현재 세그먼트 요청 라운드의 끝난 후, 추정 되는 다음 세그먼트 요청 라운드의 처리량은 다음과 같다.
Figure 112019015589967-pat00062
상기 수학식 10 에서
Figure 112019015589967-pat00063
Figure 112019015589967-pat00064
의 근의 제곱의 장기 평균 (the long-term average of the square of root) 값이며,
Figure 112019015589967-pat00065
은 UDP가 사용시 측정된 처리량이다. TCP 사용 시, UDP의 처리량은 TFRC 기반 모델을 사용하여 추정된다.
Raptor 인코딩 블록에 대한 Raptor 디코딩 실패율은 다음과 같이 계산된다.
Figure 112019015589967-pat00066
Figure 112019015589967-pat00067
Figure 112019015589967-pat00068
Figure 112019015589967-pat00069
상기 수학식들에서
Figure 112019015589967-pat00070
Figure 112019015589967-pat00071
번째 네트워크에서 성공적으로 수신된 패킷 수를 의미하는 확률 변수이고,
Figure 112019015589967-pat00072
은 성공적인 랩터 디코딩에 필요한 최소 패킷 수이다. 그리고
Figure 112019015589967-pat00073
는 소스 심볼 갯수
Figure 112019015589967-pat00074
에 대한 최소 심볼 오버 헤드이다.
Figure 112019015589967-pat00075
Figure 112019015589967-pat00076
번째 네트워크에서 성공적으로 수신된 패킷의 수이며
Figure 112019015589967-pat00077
는 한 개의 소스 블록을 전송하기 위한 필요한 패킷 수이다. 이를 통해
Figure 112019015589967-pat00078
번째 네트워크를 통해 전송되어야 되는 중복 패킷 수
Figure 112019015589967-pat00079
은 수학식 15와 같이 계산되면, 서버로 요청된 총 패킷 수
Figure 112019015589967-pat00080
(i.e.,
Figure 112019015589967-pat00081
) 는 수학식 16 및 17을 통해 얻어진다.
Figure 112019015589967-pat00082
Figure 112019015589967-pat00083
Figure 112019015589967-pat00084
<블록 스케쥴링 알고리즘>
블록 스케쥴링 알고리즘은 결정된
Figure 112019015589967-pat00085
Figure 112019015589967-pat00086
을 기반으로 전체 네트워크 인터페이스의 에너지 소비 (수학식 18) 를 최소화하기 위해 각 무선 네트워크를 통해 수신되는 데이터의 양
Figure 112019015589967-pat00087
을 결정한다. 또한, 수학식 18의 비용 함수를 최대화 하는
Figure 112019015589967-pat00088
를 결정할 때, 수학식 19 및 수학식 20에서 정의되는 조건을 만족시켜야 된다.
Figure 112019015589967-pat00089
Figure 112019015589967-pat00090
Figure 112019015589967-pat00091
상기 수학식 18-19에서
Figure 112019015589967-pat00092
Figure 112019015589967-pat00093
이 주어졌을 때,
Figure 112019015589967-pat00094
번째 네트워크 인터페이스의 에너지 소비량이다. 여기서
Figure 112019015589967-pat00095
의 값을 결정하는 과정은 공지된 기술에 해당하므로 이에 대한 설명은 생략하기로 한다.
이상에서 살펴본 바와 같이, 일 실시예에 따르면 단말과 서버 사이의 복수 개의 네트워크 각각에는 TCP 프로토콜과 UDP 프로토콜 중 어느 하나가 선택되어서 이용될 수 있다. 이 때 만약 UDP 프로토콜이 선택될 경우 신뢰성 있는 데이터 전송을 위해 랩터 코드가 적용되므로, 손실된 패킷에 대한 복구가 재전송 없이도 가능하다. 또한 네트워크 인터페이스와 랩터 디코더의 에너지 소비 모델을 통한, 에너지 효율적인 스트리밍 서비스의 제공이 가능해진다.
한편, 전술한 방법에 관한 발명은, 이러한 방법에 포함된 각각의 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체의 형태 또는 컴퓨터 판독가능한 기록매체에 저장된, 해당 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 프로그램의 형태로 실시될 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
120: 다중 통신 제어 장치

Claims (14)

  1. TCP 프로토콜 및 UDP 프로토콜을 이용한 서버와의 다중 통신을 수행하는 통신부와,
    복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 네트워크 모니터부와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 통신부를 통해 상기 서버로부터 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하며, 상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로 상기 TCP 프로토콜이 이용될 때와 상기 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하고, 상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 산출한 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 이용될 프로토콜을 상기 TCP 프로토콜 및 상기 UDP 프로토콜 중에서 선택하는 파라미터 제어부를 포함하고,
    상기 에너지 효율은,
    상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는
    다중 통신 제어 장치.
  2. 제 1 항에 있어서,
    상기 수집된 상태 정보는,
    상기 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나를 포함하는
    다중 통신 제어 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 파라미터 제어부는,
    상기 네트워크 모니터가 수집한 패킷 손실율을 기초로 상기 중복 데이터 크기를 결정하는
    다중 통신 제어 장치.
  5. 제 1 항에 있어서,
    상기 파라미터 제어부는,
    상기 복수 개의 네트워크 각각에 대해 결정된 상기 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정하는
    다중 통신 제어 장치.
  6. 제 5 항에 있어서,
    상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양은,
    상기 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시키는 기 정의된 알고리즘을 이용하여서 결정되는
    다중 통신 제어 장치.
  7. 다중 통신 제어 장치가 수행하는 다중 통신 제어 방법으로서,
    복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와,
    서버로부터 손실 복구용 중복 데이터에 대응하는 정보를 수신하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로, 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로, TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계를 포함하고,
    상기 에너지 효율은,
    상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는
    다중 통신 제어 방법.
  8. 제 7 항에 있어서,
    상기 수집된 상태 정보는,
    상기 복수 개의 네트워크 각각에 대한 스루풋, 왕복 시간(round trip time, RTT) 및 패킷 손실율(packet loss rate, PLR) 중 적어도 하나를 포함하는
    다중 통신 제어 방법.
  9. 삭제
  10. 제 7 항에 있어서,
    상기 결정하는 단계는,
    상기 수집된 패킷 손실율을 기초로 상기 중복 데이터 크기를 결정하는
    다중 통신 제어 방법.
  11. 제 7 항에 있어서,
    상기 복수 개의 네트워크 각각에 대해 결정된 상기 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양을 결정하는 단계를 더 포함하는
    다중 통신 제어 방법.
  12. 제 11 항에 있어서,
    상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 양은,
    상기 복수 개의 네트워크를 통해 데이터가 전달될 때 소비되는 에너지의 총량을 최소화시키는 기 정의된 알고리즘을 이용하여서 결정되는
    다중 통신 제어 방법.
  13. 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와,
    서버로부터 손실 복구용 중복 데이터에 대응하는 정보를 수신하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로, 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로, TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계를 포함하고,
    상기 에너지 효율은,
    상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는 다중 통신 제어 방법을 수행하도록 프로그램된
    컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체.
  14. 복수 개의 네트워크 각각에 대한 상태 정보를 수집하는 단계와,
    서버로부터 손실 복구용 중복 데이터에 대응하는 정보를 수신하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상태 정보 및 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보를 기초로, 상기 복수 개의 네트워크 각각에 대한 상기 손실 복구용 중복 데이터 크기를 결정하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보를 기초로, TCP 프로토콜이 이용될 때와 UDP 프로토콜이 이용될 때 각각의 에너지 효율을 상기 복수 개의 네트워크 각각에 대해 산출하는 단계와,
    상기 복수 개의 네트워크 각각에 대해 수집된 상기 상태 정보, 상기 수신된 손실 복구용 중복 데이터에 대응하는 정보, 상기 에너지 효율을 비교한 결과 및 상기 복수 개의 네트워크 각각에 대해 결정된 상기 손실 복구용 중복 데이터 크기를 기초로 상기 복수 개의 네트워크 각각에서 서버와의 다중 통신에 이용될 프로토콜을 TCP 프로토콜 및 UDP 프로토콜 중에서 선택하는 단계를 포함하고,
    상기 에너지 효율은,
    상기 복수 개의 네트워크 각각을 통해 송수신되는 데이터의 비트레이트 및 상기 데이터가 상기 UDP 프로토콜을 통해 송수신될 때의 상기 데이터를 구성하는 단위인 소스 블록을 랩터(raptor) 디코딩하기 위한 에너지 소비량에 기초하여 산출되는 다중 통신 제어 방법을 수행하도록 프로그램된
    컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020190017121A 2019-02-14 2019-02-14 다중 통신 제어 장치 및 방법 KR102162350B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001298479A (ja) * 2000-04-12 2001-10-26 Nec Corp インターネット電話装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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