KR101737787B1 - 교차계층 기반 스트리밍 장치 및 방법 - Google Patents

교차계층 기반 스트리밍 장치 및 방법 Download PDF

Info

Publication number
KR101737787B1
KR101737787B1 KR1020160039462A KR20160039462A KR101737787B1 KR 101737787 B1 KR101737787 B1 KR 101737787B1 KR 1020160039462 A KR1020160039462 A KR 1020160039462A KR 20160039462 A KR20160039462 A KR 20160039462A KR 101737787 B1 KR101737787 B1 KR 101737787B1
Authority
KR
South Korea
Prior art keywords
packet
debt
ack
streaming
received
Prior art date
Application number
KR1020160039462A
Other languages
English (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 KR1020160039462A priority Critical patent/KR101737787B1/ko
Priority to PCT/KR2016/003856 priority patent/WO2017171129A1/ko
Application granted granted Critical
Publication of KR101737787B1 publication Critical patent/KR101737787B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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]
    • H04L65/608
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets

Landscapes

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

Abstract

본 발명은 스트리밍 장치 및 방법에 관한 것이다. 본 발명의 제 1 측면에 따르면, 본 발명의 실시예에 따른 스트리밍 장치는, 수신되는 영상 세그먼트에서 패킷 손실의 발생 여부를 판단하는 패킷 감시부 및 영상 세그먼트에서 패킷 손실이 발생되었다고 판단되는 경우, 소정의 기준에 기초하여 손실된 패킷의 수신에 대한 모조 ACK를 발생시키는 빚 부담 수행부를 포함하여, 효율적인 스트리밍 서비스를 제공할 수 있게한다.

Description

교차계층 기반 스트리밍 장치 및 방법{APPARATUS AND METHOD FOR STREAMING BASED ON CROSSLAYER}
본 발명은 스트리밍 장치 및 방법에 관한 것이다. 보다 상세하게는, HTTP 적응형 스크리밍 프로토콜(DASH, Dynamic Adaptive Streaming over Http) 및 전송 제어 프로토콜(TCP, Transmission Control Protocol)의 교차계층 기반의 스트리밍 장치 및 방법에 관한 것이다.
DASH(Dynamic Adaptive Streaming over Http)는 MPEG(Moving Picture Experts Group)에서 표준화 한 HTTP 기반의 스트리밍 프로토콜로서, 네트워크 상태에 따라 적절한 화질로 스트리밍을 해주는 기술이다. 이 기술은 MPEG-4 또는 MPEG-2 Transport Stream 패킷으로 구성된 다양한 품질의 비디오 데이터를 일정한 조각으로 잘라 세그먼트 파일로 구성하고 상기 세그먼트 파일에 접근하기 위한 주소 정보가 포함되어 있는 MPD(Media Presentation Description) 파일을 사용자의 플레이어에 전달한다.
한편, 전송 제어 프로토콜은 네트워크 상의 두 종단 간 통신 (End-to-End Communication)에 있어 패킷 순서 변경 (Reordering) 및 손실 상황에 대한 신뢰성 확보, 혼잡 제어, 흐름 제어기능을 수행하기 위한 목적으로 설계되었으며, 네트워크의 전송 계층(Transport Layer)에 위치하고 있다. 전송 제어 프로토콜(이하 TCP라고 함)은 패킷을 단위로 하여 손실 상황에 대해 재전송 (Retransmission)을 수행하고, 혼잡 상황을 예측하여 전송하는 패킷의 양을 조절하는 방식으로 위의 기능을 수행한다. 현재 대다수의 응용 계층 프로토콜(application layer protocol)이 전송 제어 프로토콜을 이용하고 있으며, DASH 또한 TCP을 이용하는 HTTP 상에서 동작한다.
이러한 DASH관련 종래기술로는 한국공개특허 제 10-2012-0139514호가 있다.
DASH 알고리즘이 수행될 때, TCP에서는 다음과 같이 동작이 수행된다. TCP에서는 네트워크상의 부하로 인해 패킷 손실이 발생하는 것을 줄이기 위하여 네트워크 혼잡 제어가 사용된다. 또한 혼잡을 조절하기 위해 TCP에서 패킷의 송신측은 각 연결에 대해 혼잡 윈도우를 관리하며, 혼잡 윈도우를 통하여 패킷을 안전하게 보낼 수 있는 패킷의 수를 알고 있고, 패킷이 수신측 즉 클라이언트 단에 잘 도착하면 ACK 패킷을 받는다.
즉 패킷의 송신측은 이전에 보낸 패킷이 잘 도착되었다는 것을 ACK 패킷을 받은 것으로 알 수 있고, ACK 패킷을 받으면 안전하게 새로운 패킷을 추가로 보낼 수 있기 때문에 이러한 TCP 혼잡 제어 방식을 셀프 클록 방식이라고 한다.
그런데 이러한 TCP 혼잡 제어 방식은 데이터를 전송하는 과정에서 혼잡이나 간섭으로 인해 TCP 패킷이 손실되거나 에러가 발견되거나 전송 채널 상황이 좋지 않아 TCP 계층에서 잦은 재전송이 일어나는 경우에 종단 대 종단 간의 전송 지연이 크다.
또한 네트워크의 상황이 좋지 않고 HTTP 계층에서 전송하고자 하는 데이터의 크기가 클 경우, 종단 대 종단간의 전송 지연은 더욱더 커진다. 따라서 멀티미디어와 같이 전송 지연에 민감한 서비스에서는 서비스 품질을 보장할 수 없다.
따라서 근래에는 이러한 문제점을 해결하기 위한 장치 및 방법이 요구되고 있는 실정이다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일실시예는 스트리밍 장치 및 방법을 제시하는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따르면, 본 발명의 실시예에 따른 스트리밍 장치는, 수신되는 영상 세그먼트에서 패킷 손실의 발생 여부를 판단하는 패킷 감시부 및 영상 세그먼트에서 패킷 손실이 발생되었다고 판단되는 경우, 소정의 기준에 기초하여 손실된 패킷의 수신에 대한 모조 ACK를 발생시키는 빚 부담 수행부를 포함한다.
본 발명의 제2 측면에 따르면, 본 발명의 실시예에 따른 스트리밍 장치가 스트리밍 하는 방법은 수신되는 영상 세그먼트에서 패킷 손실의 발생 여부를 판단하는 단계 및 상기 영상 세그먼트에서 패킷 손실이 발생되었다고 판단되는 경우, 소정의 기준에 기초하여 손실된 패킷의 수신에 대한 모조 ACK를 발생시키는 단계를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, DASH 기반 스트리밍 서비스에서 종단 대 종단 간 전송 지연 문제로 인해 서비스 품질이 떨어지는 것을 방지하여 서비스 품질을 보장할 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 손실된 패킷이 중요한 패킷이 아닌 경우, 패킷을 재전송 받지 않아, 혼잡 윈도우의 크기를 유지시켜 서비스 품질을 유지 시킬 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하며, 패킷 손실이 발생하지 않았음에도, 고의로 ACK를 누락시켜 해당 패킷을 재전송 받음으로 혼잡 윈도우의 크기를 줄여 차후 발생할지 모를 패킷 손실에 미리 대비할 수도 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 손실된 패킷이 중요 패킷인 경우 종래의 혼잡 제어 방식을 이용하므로, 서비스 제공에 신뢰성을 높일 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 영상에 관계없는 어플리케이션은 종래의 혼잡 제어 방식을 이용하므로, 시스템의 전체적인 성능을 더 효율적으로 높일 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 교차계층에 기초하여 계층간 정보 교환을 통해, 네트워크 계층 간 프로토콜의 구조적인 비효율성을 해결할 수 있어 높은 품질의 영상을 제공할 수 있으며, 기존의 네트워크 인프라를 추가적인 수정이 없이 사용할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일실시예에 따른 네트워크 시스템을 개략적으로 도시한 구성도이다.
도 2는 본 발명의 실시예에 따른 패킷 처리 장치의 각 구성을 개략적으로 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 스트리밍 방법을 설명하기 위한 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 네트워크 시스템을 개략적으로 도시한 구성도이다.
도 1에서 도시된 바와 같이, 본 발명의 일실시예에 따른 네트워크 시스템은, 클라이언트(100) 및 서버(200)를 포함할 수 있다. 서버(200)는 비디오에 관한 데이터 즉 영상 패킷을 클라이언트로 송신하며, 클라이언트(100)는 수신된 데이터에 기초하여 영상을 출력할 수 있다. 클라이언트(100) 및 서버(200)는 DASH 및 TCP에 기초하여 영상 스트리밍 서비스를 사용자에게 제공할 수 있다.
클라이언트(100)는 DASH 시스템(110), 패킷 처리 장치(Packet Handler, 120), 연결부(Inter Process Linker, 130) 및 필터부(Net filter, 140)를 포함한다. 그러나 도 1에 도시된 구성요소들이 필수적인 것은 아니어서, 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들을 갖는 클라이언트(100)가 구현될 수도 있다. 한편 본 발명의 실시예에 따른 클라이언트(100)는 서버(200)로부터 수신된 영상 데이터를 출력하는 단말일 수도 있다. 또한 본 명세서에서는 클라이언트(100)가 스트리밍 장치인 것으로 하여 설명하도록 하겠다.
DASH 시스템(110)은 응용 계층(Application Layer)에 기초하여 동작한다. 한편 DASH 시스템(110)은 HAS(HTTP Adaptive Streaming) 알고리즘(111) 및 버퍼 감시부(Buffer Monitor, 113)에 기초하여 동작할 수 있다. HAS 알고리즘에 대해서는 기 공지된 사항이기 때문에 본 명세서에서 설명을 생략하도록 하겠다.
또한DASH 시스템(110)에 포함된 버퍼 감시부(Buffer Monitor)는 서버(200)로부터 수신된 데이터를 감시한다. 또한 버퍼 감시부(110)는 애플리케이션에서 수행되는 영상 이미지에 대한 버퍼 상태를 감시할 수도 있다. 또한 이를 통해 버퍼 감시부(110)는 영상이 해당 애플리케이션에서 끊기지 않고 재생되는지를 감시할 수도 있다. 또한 버퍼 감시부(110)는 클라이언트(100)의 상태 예를 들어 최대로 받을 수 있는 버퍼의 수를 감시할 수도 있다.
한편 패킷 처리 장치(120)는 전송 계층(Transport Layer)에 기초하여 동작하며, 클라이언트(100)로 수신되는 패킷을 분석할 수 있다. 또한 분석 결과에 기초하여 패킷을 처리할 수 있다.
한편 패킷 처리 장치(120)는 서버(200)로부터 수신되는 데이터에 대한 전송 대역폭을 조절하기 위하여, 혼잡 윈도우의 크기를 제어할 수 있다. 본 발명의 실시예에 따른 패킷 처리 장치(120)는 애플리케이션의 버퍼 정보에 기초하여 혼잡 윈도우의 크기를 제어할 수도 있다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 ACK에 기초하여 혼잡 윈도우의 크기를 제어할 수 있다. 구체적으로, 서버(200)는 ACK에 기초하여 혼잡 위도우의 크기를 조절할 수 있다. 서버(200)는 ACK가 수신되는 경우, 혼잡 윈도우의 크기를 유지시키고, ACK가 수신되지 않은 경우 기 송신한 패킷을 다시 전송하여야 하므로 혼잡 윈도우의 크기를 줄일 수 있다. 다시 말해, 패킷 처리 장치(120)가 서버(200)가 전송한 패킷에 대한 확인 신호 즉 ACK를 서버(200)에 전송하게 될 경우, 혼잡 윈도우의 크기는 유지되고, 패킷 처리 장치(120)가 특정 사유로 인해 서버(200)로 ACK를 전송하지 않을 경우, 혼잡 윈도우의 크기 줄어든다.
TCP 혼잡 제어의 경우, 클라이언트(100)는 패킷의 수신 여부에 따라 ACK를 서버(200)로 전송하여 혼잡 윈도우의 크기를 조절할 수 있다.
한편 본 발명의 실시예에 따른 패킷 처리 장치(120)는 패킷 손실이 발생되는 경우, TCP 혼잡 제어를 수행하여 서버(200)에 다시 패킷을 요청하거나, 모조 ACK(fake ACK)를 서버(200)에 전송시켜 패킷의 재전송을 방지할 수 있다. 또한 소정의 기준에 따라 수신된 패킷을 고의로 손실(정상적으로 수신된 패킷에 대해 ACK를 발생시키지 않음) 시킬 수 도 있다. 또한 패킷 처리 장치(100)는 TCP 혼잡 제어에 기초하여 패킷의 수신 여부에 따라 ACK를 전송여부를 결정할 수도 있다. 본 발명은 TCP 혼잡 제어 외에 추가로 모조 ACK를 발생시키거나, ACK를 누락시켜 혼잡 윈도우의 크기를 제어할 수 있다.
패킷 처리 장치(120)가 혼잡 위도우의 크기를 제어하는 방식에 대해서 설명하면, 패킷 처리 장치(120)가 수신받지 못한 데이터 예를 들어 수신 받지 못한 패킷에 대한 모조 ACK를 서버(200)에 전송하게 되면, 서버(200)는 혼잡 윈도우의 크기를 유지시킨다. 패킷 처리 장치(120)가 수신된 패킷에 대한ACK를 누락시켜, 서버(200)에 해당 패킷에 대한 ACK를 전송하지 않게 되면, 서버(200)는 혼잡 윈도우의 크기를 줄어들게 한다. 또한 패킷 처리 장치(120)가 TCP 혼잡 제어에 기초하여 패킷의 수신 여부에 따라 ACK를 전송하거나 전송하지 않게 되면, 서버(200)는 ACK 수신 여부에 기초하여 혼잡 윈도우의 크기를 조절할 수 있다.
패킷 처리 장치(120)에 대한 구성 및 구체적 동작에 대해서는 아래에서 도 2를 참조하여 상세히 설명하도록 하겠다.
본 발명의 실시예에 따른 연결부(130)는 프로세스간 통신(interprocess communication)을 위한 구성으로, DASH 시스템(110)과 패킷 처리 장치(120)가 상호간 정보를 교환할 수 있도록 할 수 있다. 본 발명의 일실시예에 따르면 연결부(130)는 웹 소켓(Web Socket)에 기초하여 동작할 수 있다.
이에 대해서 구체적으로 설명하면, 연결부(130)는 클라이언트(100)의 버퍼 상황 및 서비스 중인 영상에 관한 정보(예를 들어 영상의 품질)를 특정 프로그램 또는 모듈간 통신을 통해 자신 즉 클라이언트(100)에 전송하여, 전송 계층에서 이를 확인할 수 있게 할 수 있다. 한편 연결부(130)는 버퍼 레벨이 변할 때 버퍼 정보 또는 영상 정보를 웹 소켓을 통해 패킷 처리 장치(120)에 공지할 수 있다. 본 발명은 이를 통해 응용 계층의 정보를 별도의 커널 수정 없이 전송 계층에서 확인 가능하게 할 수 있다.
일반적으로 복수의 구성이 각각 서로 다른 네트워크 계층에 기초하여 동작하는 경우, 복수의 구성간에는 직접적인 정보 교환이 불가능하다. 따라서 응용 계층에 기초하여 동작하는 DASH 시스템(110)과 전송 계층에 기초하여 동작하는 패킷 처리 장치(120)는 상호간 직접적인 정보교환이 어렵다. 본 발명은 연결부(130)가 DASH 시스템(110) 및 패킷 처리 장치(120)가 상호간 정보를 교환할 수 있도록하여 이러한 문제를 해결하고 있다.
한편 본 발명의 실시예에 따른 필터부(140)는 커널 공간(kernel space)에서만 가능한 패킷의 헤더 내 정보를 유저 공간(User space)에서도 확인할 수 있게 할 수 있다. 본 발명의 실시예에 따른 필터부(140)는 libNetfilter를 포함할 수 있다.
한편 서버(200)는 DASH 콘텐츠 인코더 & 업로더(DASH Content Encorder & Uploader, 210) 및 MPD 발생기(MPD generator, 220)을 포함한다. 도 1에 도시된 구성요소들이 필수적인 것은 아니어서, 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들을 갖는 서버(200)가 구현될 수도 있다.
DASH 콘텐츠 인코더 & 업로더(DASH Content Encorder & Uploader, 210)는 클라이언트로 전송된 영상을 인코딩하고, 업로드 하는 구성으로 기 공지된 구성이기 때문에 본 명세서에서 설명을 생략하도록 하겠다.
본 발명의 실시예에 따른 MPD 생성기(220)는 클라이언트(100)로 전송되는 영상의 세그먼트에 대하여, 해당 세그먼트에 대한 정보를 포함하는 MPD(Media Presentation Description)를 생성할 수 있다. 본 발명의 일실시예에 따르면MPD 생성기(220)는 영상 콘텐츠의 인코딩 과정에서 MPD를 생성할 수도 있다. 본 발명의 MPD 생성기(220)는 추가적으로 MPD에 세그먼트에 포함된 각각의 패킷에 대한 정보인 NAL(Network Abstract Layer, 네트워크 추상 계층) 유닛을 기록할 수도 있다. MPD 생성기(220)는 각각의 패킷에 대응하는 각각의 NAL 유닛을 MPD에 기록할 수도 있다. 클라이언트(100)는 패킷 수신시, MPD의 NAL 유닛에 기초하여 패킷에 대한 내용을 쉽게 인지할 수도 있다.
구체적으로 서버(200)는 영상 세그먼트를 송신하기 전 MPD를 먼저 송신하며, 클라이언트(100)는 수신되는MPD를 참조하여 수신되는 영상 세그먼트에 대한 정보를 인식할 수 있다.
본 발명의 실시예에 따른 NAL 유닛은 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)를 포함할 수 있다.
다음은 도 2를 참조하여, 본 발명의 실시예에 따른 패킷 처리 장치(120)의 각 구성에 대해서 설명한다.
도 2는 본 발명의 실시예에 따른 패킷 처리 장치(120)의 각 구성을 개략적으로 도시한 블록도이다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 패킷 감시부(Packet Monitor, 121)를 포함한다. 패킷 감시부(121)는 클라이언트(100) 수신된 패킷을 감시한다. 한 영상 세그먼트를 구성하는 다수의 패킷이 서버(200)로부터 수신되는데, 패킷 감시부(121)는 패킷이 도착할 때마다 그 누락 여부를 감시한다.
패킷 감시부(121)는 MTU(Maximum Transmission Unit)의 크기에 기초하여 패킷의 누락 여부를 판단할 수도 있다. 구체적으로 패킷 감시부(121)는 순차적으로 수신되는 각각의 패킷의 각각의 시퀀스 번호를 감시할 수 있다. 각각의 패킷에 대한 시퀀스 번호는 서버(200)에서 설정될 수 있다. 또한 패킷 감시부(121)는 순차적으로 수신되는 두 패킷간의 시퀀스 번호 간격이 MTU의 크기에서 소정의 수치를 뺀 수치보다 큰 경우, 세그먼트에서 패킷의 누락 즉 패킷의 손실이 발생했다고 판단할 수 있다. 여기서 소정의 수치는 TCP 헤더 및 IP 헤더의 크기일 수 있다. TCP 헤더 및 IP 헤더의 크기는 서버(200)에서 기 설정될 수도 있다.
클라이언트(100)로 수신되는 각각의 패킷의 시퀀스 번호는 MTU에서 소정의 수치를 뺀 크기만큼 순차적으로 증가하게 된다. 이러한 원리에 기초하여 패킷 감시부(121)는 다음 수신될 패킷의 시퀀스 번호를 예측할 수 있다. 패킷 감시부(121)는 다음번 수신되는 패킷의 시퀀스 번호가 예측되는 범위보다 큰 경우, 일부의 패킷이 누락이 발생 되었다고 판단할 수 있다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 영상 분석부(Video NAL Analyzer, 123)를 더 포함할 수 있다. 영상 분석부(123)는 수신되는 패킷이 디코딩을 위한 정보를 포함하는 경우, 해당 패킷을 중요 패킷으로 구분할 수 있다. 이를 위해 영상 분석부(123)는 수신된 MPD를 참조하여 수신되는 패킷의 중요 여부를 판단할 수 있다.
구체적으로 영상 분석부(123)는 세그먼트 수신 전 서버(200)로부터 수신되는 MPD에 포함된 NAL 유닛을 참조하여, 세그먼트에 포함된 패킷 중 중요 패킷을 선별할 수 있다. 특히 영상 분석부(123)는 패킷에 대응하는 NAL 유닛이 SPS 및 PPS중 적어도 하나를 포함하는 경우 해당 패킷을 중요 패킷으로 판단할 수 있다.
영상 분석부(123)는 패킷 손실이 발생되었다고 판단되는 경우, 손실된 패킷이 세크먼트에서 몇번재의 패킷인지 판단하고, MPD에 기초하여 손실된 패킷이 중요 패킷인지 여부를 판단할 수 있다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 빚 모니터(Debt Monitor, 125)를 더 포함할 수 있다. 빚 모니터(125)는 빚의 존부 및 빚의 크기를 판단할 수 있다. 빚 모니터(125)는 TCP 혼잡 제어를 수행했을 때를 기준으로 추가 또는 감소되는 ACK 발생 횟수에 기초하여 빚의 크기를 판단될 수 있다. 구체적으로 본 발명은 패킷 수신에 대한ACK가 송신되지 않을 상황에서, ACK를 송신시키는 경우 빚을 1 증가시킬 수 있다. 또한 ACK가 송신될 상황에서 ACK를 누락시키는 경우, 빚을 1 차감시킬 수 있다.
즉 본 발명은 TCP 혼잡 제어 동작 기준과 상이하게 ACK를 발생 시키거나 ACK의 송신을 누락시키는 경우, 빚을 추가 또는 감소시킨다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 혼잡 제어 수행부(미도시)를 더 포함할 수 있다. 혼잡 제어 수행부는 혼잡 제어를 수행할 수 있다. 혼잡 제어 수행부가 수행하는 혼잡 제어는 TCP 혼잡 제어일 수 있다. 한편 혼잡 제어 수행부는 손실된 패킷이 중요 패킷인 경우 해당 패킷에 대한 ACK를 발송하지 않아 서버(200)로부터 손실 패킷을 다시 전송받도록 할 수 있다.
또한 혼잡 제어 수행부는 패킷 손실 발생하지 않고, 빚이 존재하지 않은 경우 ACK 를 서버(200)에 송신하여, 해당 패킷이 정상적으로 수신되었음을 통지할 수 있다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 빚 부담을 수행하는 빚 부담 수행부(Bear Debt, 127)를 더 포함할 수 있다. 빚 부담 수행부(127)는 TCP 혼잡 제어를 수행했을 때를 기준으로 추가되는 ACK 발생 횟수에 기초하여 빚을 증가시킨다.
구체적으로 빚 부담 수행부(127)는 손실된 패킷이 중요한 패킷이 아니라고 판단되어, 패킷을 재전송 받는 것 보다 패킷의 손실을 무시하는 것이 영상 플레이 동작에 있어서 더 유리하다고 판단되는 경우, 모조 ACK를 발생시키고, 서버(200)로 모조 ACK를 송신하여 패킷을 더 이상 받지 않게 할 수 있다. 이때 모조 ACK를 송신하게 되면, 서버(200)는 혼잡 윈도우의 크기를 유지시킨다. 혼잡 윈도우의 크기가 유지되면, 높은 대역폭이 확보되어 클라이언트(100) 및 서버(200)간 공격적으로 통신이 수행될 수 있다.
이때 빚 부담 수행부(127)는 소정의 확률에 따라 모조 ACK를 송신할 수도 있다. 빚 부담 수행부(127)가 모조 ACK를 송신할 확률(PrbearDebt)은 아래 수식 1에 기초할 수 있다.
-수식1-
Figure 112016031275773-pat00001
이때 curBf(t)는 시간 t에서 클라이언트(100)의 버퍼 상황 및 targetBf는 클라이언트(100)가 최대로 받을 수 있는 버퍼의 수, CurDebt(t)는 t에서 클라이언트(100)의 빚의 수 이다. 또한 maxDebt는 클라이언트(100)가 가질 수 있는 최대의 빚으로 보통 영상 처리 시 에러 은폐(Error concealment)를 할 수 있는 최대 손실률보다 작게 설정해야 영상 재생이 가능하다. 또한 s는 확률조절변수이다. 여기서 버퍼에 대한 정보는 앞서 언급한 버퍼 감시부(113)에서 획득한 정보에 기초할 수 있다. 버퍼 감시부(113)에서 획득된 정보는 소켓에 의해 빚 부담 수행부(127)에 통지되고, 빚 부담 수행부(127)는 통지된 버퍼 정보에 기초하여 빚 부담을 수행할 수 있다.
본 발명의 실시예에 따르면 s의 범위가 1≤ s <е인 경우, s 의 범위가 0≤ s <1인 경우와 같은 버퍼 상황에서 모조 ACK을 보낼 확률이 작을 수 있다. 한편 여기서 е는 자연로그이다.
또한 이때 a는 버퍼상황과 빚 상황에 대한 우선순위를 주는 변수로 우선순위 변수로 a가 높을수록 버퍼상황에 더 가중치를 주며 낮을수록 빚 상황에 더 많은 가중치를 준다.
한편 본 발명의 일실시예에 따르면 빚 부담 수행부(127)는 수식 1에 기초하여, 모조 ACK가 발생되어야 하는 경우에 있어서, 모조 ACK의 발생전 3 복사 ACKs(3 Duplicate ACKs)가 발생되는 경우, libnetfilter queue에서 손실 패킷에 대한 3 복사 ACKs 삭제하여, 혼잡 윈도우의 크기 조절에 영향이 없도록 할 수도 있다.
본 발명의 실시예에 따른 패킷 처리 장치(120)는 빚 지불을 수행하는 빚 지불 수행부(Pay Debt, 129)를 더 포함할 수 있다. 빚 지불 수행부(129)는 TCP 혼잡 제어를 수행했을 때를 기준으로 추가 수행된 ACK 횟수에 기초하여 빚을 차감시킨다.
구체적으로 빚 지불 수행부(129)는 패킷이 손실되지 않고, 종래에 발생된 빚이 존재하는 경우, 종래의 빚을 차감시켜, 차후 발생될지 모를 패킷 손실에 대비할 수 있다. 이때 빚 지불 수행부(129)는 패킷 손실이 발생되지 않았음에도 불구하고, 해당 패킷의 ACK를 송신하지 않아, 빚을 지불할 수 있다. 빚이 지불되는 경우, 서버(200)는 해당 패킷을 다시 송신하게 되므로 서버(200)는 혼잡 윈도우의 크기는 줄일 수 있다.
이때 빚 지불 수행부(129)는 소정의 확률에 따라 ACK송신을 누락시킬 수도 있다. 빚 지불 수행부(129)가 ACK 송신을 누락시킬 확률(PrpayDebt)은 아래 수식 2에 기초할 수 있다.
-수식2-
Figure 112016031275773-pat00002
이때 curBf(t)는 시간 t에서 클라이언트(100)의 버퍼 상황 및 targetBf는 클라이언트(100)가 최대로 받을 수 있는 버퍼의 수, CurDebt(t)는 t에서 클라이언트(100)의 빚의 수 이다. 또한 maxDebt는 클라이언트(100)가 가질 수 있는 최대의 빚이고, s는 확률조절변수이다.
여기서 버퍼에 대한 정보는 앞서 언급한 버퍼 감시부(113)에서 획득한 정보에 기초할 수 있다. 버퍼 감시부(113)에서 획득된 정보는 소켓에 의해 빚 지불 수행부(129)에 통지되고, 빚 지불 수행부(129)는 통지된 버퍼 정보에 기초하여 빚 부담을 수행할 수 있다.
본 발명의 실시예에 따르면 이때, s의 범위가 1≤ s <е인 경우, s 의 범위가 0≤ s <1인 경우와 버퍼가 적은 상황에서 ACK송신을 누락시킬 확률이 클 수 있다. 한편 여기서 е는 자연로그이다.
이때 a는 버퍼상황과 빚 상황에 대한 우선순위를 주는 변수로 우선순위 변수로 a가 높을수록 버퍼상황에 더 가중치를 주며 낮을수록 빚 상황에 더 많은 가중치를 준다.
다음은 도 3을 참조하여 본 발명의 실시예에 따른 스트리밍 방법에 대해서 설명한다.
도 3은 본 발명의 일실시예에 따른 스트리밍 방법을 설명하기 위한 흐름도이다. 도 3에 도시된 실시예에 따른 스트리밍 방법은 도 2에 도시된 패킷 처리 장치(120)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 2에 도시된 패킷 처리 장치(120)에 관하여 이상에서 기술한 내용은 도 3에 도시된 실시예에 따른 스트리밍 방법에도 적용될 수 있다. 또한 이하에서는 클라이언트(100)가 스트리밍 장치인 것으로 한정하여 설명하도록 하겠다.
본 발명의 실시예에 따른 스트리밍 장치(100)는 수신되는 영상 시퀀스에서 패킷의 누락 여부를 감지한다(S301). 스트리밍 장치(100)는 수신되는 패킷간의 간격과 MTU(Maximum Transmission Unit)의 크기에 기초하여 패킷의 누락 여부를 판단할 수도 있다. 이때 영상 시퀀스는 서버(200)로부터 수신될 수 있다.
스트리밍 장치(100)는 패킷이 누락되었다고 판단되는 경우, 해당 패킷이 중요 패킷인지를 판단할 수 있다(S303). 패킷이 중요 패킷인지 여부는 해당 패킷에 디코딩을 위한 정보가 포함되어 있었는지 여부로 판단할 수 있다.
스트리밍 장치(100)는 패킷이 누락되지 않은 경우, 스트리밍 장치(100)에 기 존재하는 빚이 존재하는지 판단할 수 있다(S305). TCP 혼잡 제어를 수행했을 때를 기준으로 추가 또는 감소되는 ACK 발생 횟수에 기초하여 빚의 크기를 판단될 수 있다. 즉 스트리밍 장치(100)는 TCP 혼잡 제어 동작 기준과 상이하게 ACK를 발생시키거나 ACK의 송신을 누락시키는 경우, 빚을 추가 또는 감소시킨다. 또한 스트리밍 장치(100)는 이러한 과정을 통해 생성 차감된 빚을 감지하여, 빚의 존부를 판단할 수도 있다.
누락된 패킷이 중요 패킷인 경우, 스트리밍 장치(100)는 빚 부담을 수행할 수 있다(S307).
스트리밍 장치(100)는 TCP 혼잡 제어를 수행했을 때를 기준으로 추가되는 ACK 발생 횟수에 기초하여 빚을 증가시킨다.
구체적으로 스트리밍 장치(100)는 손실된 패킷이 중요한 패킷이 아니라고 판단되어, 패킷을 재전송 받는 것 보다 패킷의 손실을 무시하는 것이 영상 플레이 동작에 있어서 더 유리하다고 판단되는 경우, 서버(200)로 모조 ACK를 송신하여 패킷을 더 이상 받지 않게 할 수 있다. 이때 모조 ACK를 송신하게 되면, 서버(200)는 혼잡 윈도우의 크기를 유지시킨다. 혼잡 윈도우의 크기가 유지되면, 높은 대역폭이 확보되어 스트리밍 장치(100) 및 서버(200)간 공격적으로 통신이 수행될 수 있다.
이때 스트리밍 장치(100)는 소정의 확률에 따라 모조 ACK를 송신할 수도 있다. 스트리밍 장치(100)가 모조 ACK를 송신할 확률(PrbearDebt)은 위에서 설명한 수식 1에 기초할 수 있다.
한편 누락된 패킷이 중요하지 않은 패킷이거나, 패킷이 누락되지 않고 빚이 존재하지 않은 경우, 스트리밍 장치(100)는 TCP 혼잡 제어를 수행할 수 있다(S309).
스트리밍 장치(100)는 손실된 패킷이 중요 패킷인 경우 해당 패킷에 대한 ACK를 발송하지 않아 서버(200)로부터 손실 패킷을 다시 전송받도록 할 수 있다.
또한 스트리밍 장치(100)는 패킷 손실 발생하지 않고, 빚이 존재하지 않은 경우 ACK 를 서버(200)에 송신하여, 해당 패킷이 정상적으로 수신되었음을 통지할 수 있다.
한편, 패킷이 누락되지 않고, 빚이 존재하는 경우, 스트리밍 장치(100)는 빚 지불을 수행할 수 있다(S311).
본 발명의 실시예에 따른 스트리밍 장치(100)는 TCP 혼잡 제어를 수행했을 때를 기준으로 추가 수행된 ACK 횟수에 기초하여 빚을 차감시킨다.
구체적으로 스트리밍 장치(100)는 패킷의 손실되지 않고, 종래에 발생된 빚이 존재하는 경우, 종래의 빚을 차감시켜, 차후 발생될지 모를 패킷 손실에 대비할 수 있다. 이때 스트리밍 장치(100)는 패킷 손실이 발생되지 않았음에도 불구하고, 해당 패킷의 ACK를 송신하지 않아, 빚을 지불할 수 있다. 빚이 지불되는 경우, 서버(200)는 해당 패킷을 다시 송신하게 되므로 서버(200)는 혼잡 윈도우의 크기는 줄일 수 있다.
이때 스트리밍 장치(100)는 소정의 확률에 따라 ACK송신을 누락시킬 수도 있다. 스트리밍 장치(100)가 ACK 송신을 누락시킬 확률(PrpayDebt)은 위에서 설명한 수식 2에 기초할 수 있다.
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다
또한 본 발명의 일실시예에 따르는 스트리밍 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서 본 발명의 일실시예에 따르는 프록시 기반 무선 자원 상태 예측 및 트래픽 제어 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 클라이언트 110: DASH 시스템
120: 패킷 처리 장치 130: 연결부
140: 필터부 200: 서버

Claims (17)

  1. 수신되는 영상 세그먼트에서 패킷 손실의 발생 여부를 판단하는 패킷 감시부;
    상기 영상 세그먼트에서 패킷 손실이 발생되었다고 판단되는 경우, 소정의 기준에 기초하여 손실된 패킷의 수신에 대한 모조 ACK를 발생시키고, 상기 모조 ACK가 발생된 경우 빚을 증가시키는 빚 부담 수행부; 및
    상기 영상 세그먼트에서 패킷 손실이 발생되지 않았다고 판단되는 경우, 현재 빚이 존재하는지 여부를 확인하고, 빚이 존재한다면 패킷 수신에 대한 ACK를 누락시켜 빚을 차감하는 빚 차감 수행부를 포함하는, 스트리밍 장치.
  2. 제1항에 있어서,
    상기 빚 부담 수행부는,
    상기 손실된 패킷이 중요 패킷이 아닌 경우, 상기 손실된 패킷의 수신에 대하여 모조 ACK를 발생시키는, 스트리밍 장치.
  3. 제1항에 있어서,
    상기 빚 부담 수행부는,
    상기 손실된 패킷이 중요 패킷이 아닌 경우, 상기 스트리밍 장치의 버퍼 상황에 기초하여 ACK를 발생시키는, 스트리밍 장치.
  4. 제3항에 있어서,
    상기 스트리밍 장치는,
    응용 계층에 기초하는 동작하는 애플리케이션의 버퍼 상황을 웹 소켓을 통해 상기 스트리밍 장치에 전송하여, 상기 빚 부담 수행부의 통신 계층에 통지하는 연결부를 더 포함하는, 스트리밍 장치.
  5. 제1항에 있어서,
    상기 빚 부담 수행부는,
    상기 손실된 패킷이 중요 패킷이 아닌 경우, 수식 1에 기초하여 모조 ACK를 발생시키는, 스트리밍 장치.
    -수식1-
    Figure 112016031275773-pat00003

    {상기 PrbearDebt 는 모조 ACK를 송신할 확률, 상기 curBf(t)는 시간 t에서 상기 스트리밍 장치의 버퍼 상황 및 상기 targetBf는 상기 스트리밍 장치가 최대로 받을 수 있는 버퍼의 수, 상기 CurDebt(t)는 시간 t에서 상기 스트리밍 장치의 빚의 수, 상기 maxDebt는 상기 스트리밍 장치가 가질 수 있는 최대의 빚, 상기 s는 확률조절변수 및 상기 a는 버퍼상황과 빚 상황에 대한 우선순위를 주는 변수로 우선순위 변수}
  6. 제1항에 있어서,
    상기 패킷 감시부는,
    순차적으로 수신되는 두 패킷간의 시퀀스 번호의 차가 기 설정된 수치 이상인 경우, 패킷의 손실 발생이라고 판단하는, 스트리밍 장치.
  7. 제1항에 있어서,
    상기 패킷 감시부는,
    순차적으로 수신되는 두 패킷간의 시퀀스 번호의 차가 MTU(Maximum Transmission Unit)의 크기에서 기 설정된 TCP 헤더 및 IP 헤더의 크기를 뺀 수치 이상인 경우, 패킷의 손실 발생이라고 판단하는, 스트리밍 장치.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 제1항에 있어서,
    상기 빚 차감 수행부는,
    상기 현재 빚이 존재하는 경우, 수식 2에 기초하여 패킷 수신에 대한 ACK를 누락시켜 빚을 차감하는, 스트리밍 장치.
    -수식2-
    Figure 112017026695482-pat00004

    {상기 PrpayDebt 는 패킷 수신에 대한 ACK를 누락시킬 확률, 상기 curBf(t)는 시간 t에서 상기 스트리밍 장치의 버퍼 상황 및 상기 targetBf는 상기 스트리밍 장치가 최대로 받을 수 있는 버퍼의 수, 상기 CurDebt(t)는 시간 t에서 상기 스트리밍 장치의 빚의 수, 상기 maxDebt는 상기 스트리밍 장치가 가질 수 있는 최대의 빚, 상기 s는 확률조절변수 및 상기 a는 버퍼상황과 빚 상황에 대한 우선순위를 주는 변수로 우선순위 변수}
  12. 제2항에 있어서,
    상기 스트리밍 장치는,
    상기 손실된 패킷에 디코딩을 위한 정보의 포함 여부에 기초하여 손실된 패킷의 중요 여부를 판단하는, 영상 분석부를 더 포함하는, 스트리밍 장치.
  13. 제2항에 있어서,
    상기 스트리밍 장치는,
    상기 영상 세그먼트 수신전 기 수신된 상기 영상 세그먼트에 대한 정보를 포함하는 MPD(Media Presentation Description)에 기 기록된 상기 영상 세그먼트의 각각의 패킷에 대한 NAL(Network Abstract Layer) 유닛에 기초하여, 손실된 패킷의 중요 여부를 판단하는, 영상 분석부를 더 포함하는, 스트리밍 장치.
  14. 제13항에 있어서,
    상기 영상 분석부는,
    상기 손실된 패킷에 대응하는 NAL 유닛이 SPS(Sequence Parameter Set) 및 PPS(Picture Parameter Set) 중 적어도 하나를 포함하는 경우, 상기 손실된 패킷을 중요 패킷으로 판단하는, 스트리밍 장치.
  15. 스트리밍 장치가 스트리밍 하는 방법에 있어서,
    수신되는 영상 세그먼트에서 패킷 손실의 발생 여부를 판단하는 단계; 및
    상기 영상 세그먼트에서 패킷 손실이 발생되었다고 판단되는 경우, 소정의 기준에 기초하여 손실된 패킷의 수신에 대한 모조 ACK를 발생시키고 빚을 증가시키며, 상기 영상 세그먼트에서 패킷 손실이 발생되지 않았다고 판단되는 경우, 현재 빚이 존재하는지 여부를 확인하고, 빚이 존재한다면 패킷 수신에 대한 ACK를 누락시켜 빚을 차감하는 단계를 포함하는, 스트리밍 방법.
  16. 삭제
  17. 제15항에 있어서,
    상기 스트리밍 방법은,
    상기 손실된 패킷에 디코딩을 위한 정보의 포함 여부에 기초하여 손실된 패킷의 중요 여부를 판단하는 단계를 더 포함하고,
    상기 모조 ACK를 발생시키는 단계는,
    상기 손실된 패킷이 중요 패킷이라고 판단되는 경우 상기 모조 ACK를 발생시키는, 스트리밍 방법.
KR1020160039462A 2016-03-31 2016-03-31 교차계층 기반 스트리밍 장치 및 방법 KR101737787B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160039462A KR101737787B1 (ko) 2016-03-31 2016-03-31 교차계층 기반 스트리밍 장치 및 방법
PCT/KR2016/003856 WO2017171129A1 (ko) 2016-03-31 2016-04-12 교차계층 기반 스트리밍 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160039462A KR101737787B1 (ko) 2016-03-31 2016-03-31 교차계층 기반 스트리밍 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101737787B1 true KR101737787B1 (ko) 2017-05-19

Family

ID=59049373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160039462A KR101737787B1 (ko) 2016-03-31 2016-03-31 교차계층 기반 스트리밍 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101737787B1 (ko)
WO (1) WO2017171129A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078164A1 (en) * 2000-12-13 2002-06-20 Marnetics Ltd. System and method for data transfer acceleration in a TCP network environment
US20140032987A1 (en) * 2012-07-29 2014-01-30 Thadi M. Nagaraj Replacing lost media data for network streaming

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI100158B (fi) * 1995-11-09 1997-09-30 Nokia Telecommunications Oy Liikenteen ohjaus tietoliikennejärjestelmässä
CN103095517B (zh) * 2011-11-04 2016-12-07 华为技术有限公司 流媒体传输质量评估和信息获取方法及相关设备和系统
KR101563779B1 (ko) * 2013-04-24 2015-10-28 한국과학기술원 네트워크상에서 손실된 실시간 멀티미디어 데이터를 재생 한계 시간 이전에 재전송하는 종단 간 프로토콜

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078164A1 (en) * 2000-12-13 2002-06-20 Marnetics Ltd. System and method for data transfer acceleration in a TCP network environment
US20140032987A1 (en) * 2012-07-29 2014-01-30 Thadi M. Nagaraj Replacing lost media data for network streaming

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
무선 네트워크 상에서 최적화된 비디오 스트리밍을 위한 계층간 교차 방법,융복합지식학회논문지,2014.07

Also Published As

Publication number Publication date
WO2017171129A1 (ko) 2017-10-05

Similar Documents

Publication Publication Date Title
CN110121114B (zh) 发送流数据的方法及数据发送设备
US9585062B2 (en) System and method for implementation of dynamic encoding rates for mobile devices
CA2839436C (en) Method and apparatus for session bandwidth estimation and rate control
US11165843B2 (en) Backfill of video stream
US8036125B2 (en) Apparatus and method for transmitting multimedia stream using virtual machines based on a number of transmissions at a data rate
US20120039391A1 (en) System and method for transmission of data signals over a wireless network
CN106416179A (zh) 实现扩展传输控制功能的传输加速器
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
US9130740B2 (en) Variable acknowledge rate to reduce bus contention in presence of communication errors
EP1679895A1 (en) Medium signal transmission method, reception method, transmission/reception method, and device
KR101942270B1 (ko) 재생 지연 방지 시스템을 포함하는 미디어 재생 장치 및 방법
KR20230002784A (ko) 오디오 및/또는 비디오 콘텐츠 전송을 위한 방법 및 서버
CN113068001B (zh) 基于级联摄像机的数据处理方法、装置、设备和介质
US20150207715A1 (en) Receiving apparatus, transmitting apparatus, communication system, control method for receiving apparatus, control method for transmitting apparatus, and recording medium
EP3120475A1 (en) Transport accelerator implementing selective utilization of redundant encoded content data functionality
US11463651B2 (en) Video frame-based media stream bandwidth reduction
JP5170891B2 (ja) インターネットネットワーク装置及びそのデータ伝送方法
KR101737787B1 (ko) 교차계층 기반 스트리밍 장치 및 방법
US20130339482A1 (en) Data transmitting system, and transmitting apparatus and receiving apparatus and program in data transmitting system
US11178205B2 (en) System and method for providing live streaming of video data in a low-bandwidth network
US10116415B2 (en) Transmission device, receiving device, transmission method, and receiving method
CN115333677A (zh) 云业务处理方法、系统、装置、设备及存储介质
US11374839B1 (en) Optimizing media streaming by a bitrate-controlling device
WO2021002135A1 (ja) データ送信装置、データ送信システム、及び、データ送信方法
KR102140267B1 (ko) 적어도 둘 이상의 무선 경로들을 통해 비디오 데이터 프레임의 패킷을 전송하는 적응적 비디오 스트리밍 방법 및 시스템

Legal Events

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