KR102390522B1 - Blockchain based reliable quality of experience accelerator for adaptive video streaming service - Google Patents

Blockchain based reliable quality of experience accelerator for adaptive video streaming service Download PDF

Info

Publication number
KR102390522B1
KR102390522B1 KR1020210154045A KR20210154045A KR102390522B1 KR 102390522 B1 KR102390522 B1 KR 102390522B1 KR 1020210154045 A KR1020210154045 A KR 1020210154045A KR 20210154045 A KR20210154045 A KR 20210154045A KR 102390522 B1 KR102390522 B1 KR 102390522B1
Authority
KR
South Korea
Prior art keywords
chunk
video
cloud server
user terminal
media
Prior art date
Application number
KR1020210154045A
Other languages
Korean (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 KR1020210154045A priority Critical patent/KR102390522B1/en
Application granted granted Critical
Publication of KR102390522B1 publication Critical patent/KR102390522B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • H04L65/605
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2223Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates to a blockchain-based stable quality-of-experience accelerator for an adaptive video streaming service. According to the present invention, a video request message of a server for providing an edge network service based on a blockchain can be transmitted to a media cloud server from a user terminal. The server can transmit information required for video reproduction based on the video request message from the media cloud server to the user terminal. The server can transmit a request message for a first video chunk from the user terminal to the media cloud server. Also, the server can transmit the first video chunk from the media cloud server to the user terminal. In addition, the server can determine a prefetch chunk, which is a part of a chunk subsequent to the most recent chunk requested to the media cloud server, as a chunk to be prefetched based on the first video chunk. Therefore, a network resource is efficiently used.

Description

적응형 비디오 스트리밍 서비스를 위한 블록체인 기반의 안정적인 체감품질 가속기{BLOCKCHAIN BASED RELIABLE QUALITY OF EXPERIENCE ACCELERATOR FOR ADAPTIVE VIDEO STREAMING SERVICE}Blockchain-based stable quality of experience accelerator for adaptive video streaming service

본 발명의 실시예들은 적응형 비디오 스트리밍 서비스를 위한 블록체인 기반의 안정적인 체감품질 가속기 및 그 동작 방법에 대한 것이다.Embodiments of the present invention relate to a blockchain-based stable quality of experience accelerator for an adaptive video streaming service and an operating method thereof.

미디어 기술의 발달로 4K, 8K, 360° 등 다양한 형태의 몰입형 영상 콘텐츠가 등장했으며, 이 콘텐츠는 코로나19 팬데믹(세계적 대유행) 시대에 모바일 사용자들 사이에서 점차 대중화되고 있다. OTT(Over-Top) 서비스 제공업체는 CDN(콘텐츠 전송 네트워크)을 통해 이러한 동영상을 스트리밍하고 있다. 최근 시장 보고서에 따르면 8K 기술 시장은 고화질 대형 TV에 대한 수요 증가에 따라 CAGR 55.5%로 2024년까지 268억 달러로 성장할 것으로 예상된다.With the development of media technology, various types of immersive video contents such as 4K, 8K, and 360° have appeared, and these contents are gradually becoming popular among mobile users in the era of the COVID-19 pandemic (global pandemic). Over-Top (OTT) service providers are streaming these videos over content delivery networks (CDNs). According to a recent market report, the 8K technology market is expected to grow to $26.8 billion by 2024 at a CAGR of 55.5%, driven by increasing demand for high-definition large-format TVs.

OTT 제공업체는 일반적으로 동영상 소스와 사용자 간의 다양한 네트워크 조건에 대처하기 위해 MPEG(동영상 전문가 그룹) 및 DASH(Dynamic Adaptive Streaming over HTTP)와 같은 적응형 동영상 스트리밍 프레임워크를 채택한다. 적응형 비디오 스트리밍에서 사용자 장치는 재생 중인 비디오의 후속 청크를 미리 가져온다. 따라서 모바일 장치는 비디오 소스와 사용자 장치 간의 종단 간 처리량(throughput)이 갑자기 비디오 재생 속도 아래로 떨어지는 경우에도 정지 이벤트 없이 프리패치된 청크로 계속 재생할 수 있다. 그러나 일부 연구에서는 사용자가 비디오 시청을 중단하기 때문에 청크가 삭제된다는 점을 지적했다. 이렇게 버려진 청크는 모바일 장치 측에서 프리페칭에 사용되는 에너지를 낭비할 뿐만 아니라 셀룰러 네트워크 사용의 금전적 비용 손실을 초래한다. 제한된 가용 대역폭으로 고품질 몰입 경험을 제공하는 고해상도 비디오를 원활하게 스트리밍하는 것은 여전히 어려운 일이다. 실제로 H.264/AVC 코덱은 일반적으로 4K 비디오의 경우 최소 15-18Mbps, 360° 비디오의 경우 30Mbps의 재생 속도로 원시 비디오 스트림을 인코딩한다. 현재로서는 4K, 8K, 360°와 같은 고해상도 비디오와 곧 시장에 출시될 3D 홀로그램 비디오의 재생 속도 이상으로 end-to-end 처리량(throughput)을 항상 유지하기가 어렵다.OTT providers typically adopt adaptive video streaming frameworks such as Video Experts Group (MPEG) and Dynamic Adaptive Streaming over HTTP (DASH) to cope with different network conditions between video sources and users. In adaptive video streaming, the user device prefetches subsequent chunks of the video being played. Thus, the mobile device can continue to play in prefetched chunks without a pause event even if the end-to-end throughput between the video source and the user device suddenly drops below the video playback rate. However, some studies have pointed out that chunks are deleted because users stop watching the video. These discarded chunks not only waste energy used for prefetching on the mobile device side, but also result in monetary cost loss of cellular network usage. Seamlessly streaming high-resolution video that delivers a high-quality, immersive experience with limited available bandwidth remains a challenge. In practice, H.264/AVC codecs typically encode raw video streams at playback rates of at least 15-18 Mbps for 4K video and 30 Mbps for 360° video. Currently, it is difficult to always maintain end-to-end throughput beyond the playback speed of high-resolution video such as 4K, 8K, 360°, and the upcoming 3D holographic video on the market.

지금까지 다양한 무선 네트워크 조건에서 만족스러운 QoE(경험 품질)를 제공할 수 있는 적응형 스트리밍 프레임워크를 고안하는 데 많은 노력을 기울였다. 그러나 오류가 발생하기 쉬운 무선 네트워크 조건에서는 TCP 혼잡 제어로 인해 TCP 전송 계층 위에서 작동하는 HTTP 기반 스트리밍 접근 방식으로 높은 종단 간 처리량(throughput)을 달성하기가 훨씬 더 어렵다.So far, a lot of effort has been put into devising an adaptive streaming framework that can provide satisfactory quality of experience (QoE) under various wireless network conditions. However, in error-prone wireless network conditions, it is much more difficult to achieve high end-to-end throughput with HTTP-based streaming approaches operating above the TCP transport layer due to TCP congestion control.

따라서, 비디오 스트리밍 서비스에서 높은 QoE(quality of experience)를 제공하기 위한 방법이 요구되고 있다.Accordingly, there is a demand for a method for providing a high quality of experience (QoE) in a video streaming service.

본 발명의 실시예들은, 적응형 비디오 스트리밍 서비스를 위한 블록체인 기반의 안정적인 체감품질 가속기 및 그 동작 방법을 제공할 수 있다. Embodiments of the present invention may provide a blockchain-based stable quality of experience accelerator for an adaptive video streaming service and an operating method thereof.

실시예들에서 이루고자 하는 기술적 과제들은 이상에서 언급한 사항들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 이하 설명할 다양한 실시예들로부터 당해 기술분야에서 통상의 지식을 가진 자에 의해 고려될 수 있다.Technical problems to be achieved in the embodiments are not limited to those mentioned above, and other technical problems not mentioned may be considered by those of ordinary skill in the art from various embodiments to be described below. can

실시예들에 따르면, 적어도 하나의 에지(edge) 클라우드(cloud) 서버에 의해 수행되는 블록체인(blockchain) 기반 에지 네트워크 서비스를 제공하는 방법에 있어서, 비디오 요청 메시지를 사용자 단말로부터 미디어(media) 클라우드 서버에게 상기 비디오 요청 메시지를 전달하는 단계; 상기 비디오 요청 메시지에 기초한 비디오 재생에 필요한 정보를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하는 단계; 제1 비디오 청크(chunk)에 대한 요청 메시지를 상기 사용자 단말로부터 상기 미디어 클라우드 서버에 전달하는 단계; 상기 제1 비디오 청크를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하는 단계; 상기 제1 비디오 청크를 기초로 상기 미디어 클라우드 서버에 요청한 가장 최근 청크의 후속 청크의 일부인 프리페치(prefetch) 청크를 프리페치할 청크로 결정하는 단계; 상기 제1 청크를 상기 미디어 클라우드 서버에게 요청하는 단계; 상기 제1 청크를 상기 미디어 클라우드 서버로부터 수신 및 저장하는 단계; 상기 사용자 단말로부터 후속 청크 프리페치를 위한 제2 비디오 청크에 대한 요청 메시지를 수신하는 단계; 및 상기 프리페치 청크가 상기 제2 비디오 청크를 포함함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제2 비디오 청크를 상기 사용자 단말에 전송하는 단계를 할 수 있다.According to embodiments, in a method of providing a blockchain-based edge network service performed by at least one edge cloud server, a video request message is transmitted from a user terminal to a media cloud transmitting the video request message to a server; transmitting information necessary for video reproduction based on the video request message from the media cloud server to the user terminal; transmitting a request message for a first video chunk from the user terminal to the media cloud server; transferring the first video chunk from the media cloud server to the user terminal; determining, as a prefetch chunk, a prefetch chunk that is a part of a subsequent chunk of the most recent chunk requested to the media cloud server based on the first video chunk; requesting the first chunk from the media cloud server; receiving and storing the first chunk from the media cloud server; receiving a request message for a second video chunk for a subsequent chunk prefetch from the user terminal; and transmitting the second video chunk stored in the edge cloud server to the user terminal on the basis that the prefetch chunk includes the second video chunk.

여기서, 상기 에지 클라우드 서버는, 상기 비디오 요청 메시지를 스니핑(sniffing)을 통해 획득할 수 있다.Here, the edge cloud server may acquire the video request message through sniffing.

여기서, 상기 에지 클라우드 서버와 상기 미디어 클라우드 서버는 복수의 TCP(transmission control protocol) 연결이 설정될 수 있다.Here, a plurality of transmission control protocol (TCP) connections may be established between the edge cloud server and the media cloud server.

여기서, 상기 에지 클라우드 서버가, 상기 사용자 단말로부터, 후속 청크 프리페치를 위한 제3 비디오 청크에 대한 요청 메시지를 수신하는 단계; 상기 프리페치 청크가 상기 제3 비디오 청크를 모두 포함하지 못함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제3 비디오 청크의 일부를 상기 사용자 단말에 전송하고, 상기 에지 클라우드 서버에 저장되지 않은 상기 제3 비디오 청크의 나머지 일부를 상기 미디어 클라우드 서버에 요청하는 단계; 및 상기 제3 비디오 청크의 나머지 일부를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하는 단계를 더 포함할 수 있다.Here, the edge cloud server receiving, from the user terminal, a request message for a third video chunk for a subsequent chunk prefetch; On the basis that the prefetch chunk does not include all the third video chunks, a part of the third video chunk stored in the edge cloud server is transmitted to the user terminal, and the third video chunk not stored in the edge cloud server is transmitted to the user terminal. 3 requesting the remaining part of the video chunk to the media cloud server; and transmitting the remaining part of the third video chunk from the media cloud server to the user terminal.

여기서, 상기 프리페치 청크는 미리 설정된 알고리즘에 의해 결정되고, 상기 프리페치 청크는 소비되지 않고 폐기되는 프리페치된 데이터의 총량, 상기 에지 클라우드 서버와 상기 미디어 클라우드 서버 간의 예상 처리 속도를 기초로 결정되고, 상기 소비되지 않고 폐기되는 프리페치된 데이터의 총량은 다음 수식을 기초로 결정되고,Here, the prefetch chunk is determined by a preset algorithm, the prefetch chunk is determined based on the total amount of prefetched data that is not consumed and discarded, and an expected processing speed between the edge cloud server and the media cloud server, and , the total amount of prefetched data that is not consumed and discarded is determined based on the following equation,

Figure 112021129700174-pat00001
,
Figure 112021129700174-pat00001
,

ci(ni)은 소비되지 않고 폐기되는 프리페치된 데이터의 총량이고, Ti,m은 i번째 모바일 사용자가 보고 있는 비디오#m의 청크 지속 시간이고, Bi,m은 i번째 모바일 사용자가 본 비디오#m의 비트 전송률이고, ni는 T 동안 i번째 모바일 사용자를 위해 에지 클라우드가 프리페치하는 청크의 수이고,c i (n i ) is the total amount of prefetched data that is not consumed and discarded, T i,m is the chunk duration of video#m being watched by the i-th mobile user, B i,m is the i-th mobile user is the bitrate of video#m seen, n i is the number of chunks the edge cloud prefetches for the i-th mobile user during T,

pi(ni)는 i번째 모바일 사용자에 대한 프리페치된 청크 중 사용되지 않은 데이터의 평균 양이고, pi(ni)는 다음 수식을 기초로 결정되고,p i (n i ) is the average amount of unused data among the prefetched chunks for the i-th mobile user, p i (n i ) is determined based on the following equation,

Figure 112021129700174-pat00002
Figure 112021129700174-pat00002

Figure 112021129700174-pat00003
는 Pareto 모양(shape) 매개변수이고,
Figure 112021129700174-pat00004
은 상기 에지 클라우드 서버가 i번째 사용자 단말을 위해 상기 미디어 클라우드 서버에 요청한 비디오#m의 가장 최근 청크 번호일 수 있다.
Figure 112021129700174-pat00003
is the Pareto shape parameter,
Figure 112021129700174-pat00004
may be the most recent chunk number of video #m requested by the edge cloud server to the media cloud server for the i-th user terminal.

여기서, 상기 에지 클라우드 서버와 상기 미디어 클라우드 서버 간의 예상 처리 속도는, 확률 밀도 함수(probability density function, PDF) 및 커널 밀도 추정기(kernel density estimator, KDE)를 기초로 추정되고,Here, the expected processing speed between the edge cloud server and the media cloud server is estimated based on a probability density function (PDF) and a kernel density estimator (KDE),

상기 커널 밀도 추정기는 다음 수식과 같이 정의되고,The kernel density estimator is defined as follows,

Figure 112021129700174-pat00005
Figure 112021129700174-pat00005

Figure 112021129700174-pat00006
Figure 112021129700174-pat00006

Figure 112021129700174-pat00007
Figure 112021129700174-pat00007

Figure 112021129700174-pat00008
Figure 112021129700174-pat00008

h는 평활(smoothing) 매개변수이고, k(x)는 커널 함수이고, p(x)는 확률 밀도 함수이고, Nobs는 관측값의 총 수일 수 있다.h may be a smoothing parameter, k(x) may be a kernel function, p(x) may be a probability density function, and No obs may be the total number of observations.

여기서, 상기 h는 1.06σNobs -1/5일 수 있다.Here, h may be 1.06σN obs -1/5 .

본 발명의 일 실시예는 블록체인 기반 에지 네트워크 서비스를 제공하는 서버에 있어서, 프로세서(processor); 송수신기(transceiver); 및 메모리(memory); 를 포함하고, 상기 프로세서는: 비디오 요청 메시지를 사용자 단말로부터 미디어(media) 클라우드 서버에게 상기 비디오 요청 메시지를 전달하고; 상기 비디오 요청 메시지에 기초한 비디오 재생에 필요한 정보를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하고; 제1 비디오 청크(chunk)에 대한 요청 메시지를 상기 사용자 단말로부터 상기 미디어 클라우드 서버에 전달하고; 상기 제1 비디오 청크를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하고; 상기 제1 비디오 청크를 기초로 상기 미디어 클라우드 서버에 요청한 가장 최근 청크의 후속 청크의 일부인 프리페치(prefetch) 청크를 프리페치할 청크로 결정하고; 상기 제1 청크를 상기 미디어 클라우드 서버에게 요청하고; 상기 제1 청크를 상기 미디어 클라우드 서버로부터 수신 및 저장하고; 상기 사용자 단말로부터 후속 청크 프리페치를 위한 제2 비디오 청크에 대한 요청 메시지를 수신하고; 그리고 상기 프리페치 청크가 상기 제2 비디오 청크를 포함함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제2 비디오 청크를 상기 사용자 단말에 전송하도록 설정될 수 있다.An embodiment of the present invention provides a server for providing a blockchain-based edge network service, comprising: a processor; transceiver; and memory; , wherein the processor is configured to: transmit a video request message from a user terminal to a media cloud server; transmitting information necessary for video reproduction based on the video request message from the media cloud server to the user terminal; transmit a request message for a first video chunk from the user terminal to the media cloud server; deliver the first video chunk from the media cloud server to the user terminal; determining, as a prefetch chunk, a prefetch chunk that is a part of a subsequent chunk of the most recent chunk requested to the media cloud server based on the first video chunk; request the first chunk from the media cloud server; receive and store the first chunk from the media cloud server; receive a request message for a second video chunk for a subsequent chunk prefetch from the user terminal; And on the basis that the prefetch chunk includes the second video chunk, it may be configured to transmit the second video chunk stored in the edge cloud server to the user terminal.

본 명세서에서는 적응형 스트리밍 서비스를 위한 블록체인 기반의 안정적인 QoE 가속기를 제안하였다. 제안된 QoE 가속기는 기존 스트리밍 서비스와 호환되도록 모바일 사용자와 미디어 클라우드 간의 네트워크 에지에서 투명하게 설계되었다. 사용자의 서비스 컨텍스트를 인식하기 위해 중간에 있는 패킷을 도청할 뿐만 아니라 병렬 TCP 스트림을 사용하여 네트워크 리소스를 효율적으로 사용한다. 또한, 커널 밀도 추정기를 기반으로 가용 네트워크 대역폭을 예측하고, 네트워크 중간에서 획득한 인텔리전스를 기반으로 사용자가 보고 있는 비디오 청크를 적절하게 프리페치할 수 있다. 또한 제안된 스트리밍 시스템은 블록체인 네트워크와 결합하여 모바일 사용자에게 높은 시스템 신뢰성을 제공할 수 있다. 블록체인 네트워크에서는 세션 중에 발생하는 다양한 이벤트가 자동으로 불변의 분산원장에 등록되고 투명하게 관리될 수 있도록 스트리밍 서비스를 위한 맞춤형 스마트 계약을 개발했다. 제안된 전체 시스템 아키텍처는 완벽하게 구현되었으며 802.11 및 5G 네트워크에서 기존 스트리밍 시스템과 성능을 비교했다. 실험 결과 블록체인 기반 QoE 가속기가 네트워크 에지에서 기존 스트리밍 서비스를 보다 안정적이고 신뢰적으로 만드는 것으로 확인되었다.In this specification, a blockchain-based stable QoE accelerator for adaptive streaming service is proposed. The proposed QoE accelerator is designed transparently at the network edge between mobile users and media cloud to be compatible with existing streaming services. It not only eavesdrops on packets in the middle to recognize the user's service context, but also uses parallel TCP streams to efficiently use network resources. In addition, it is possible to predict the available network bandwidth based on the kernel density estimator, and to appropriately prefetch the video chunks that the user is watching based on the intelligence obtained from the middle of the network. In addition, the proposed streaming system can be combined with a blockchain network to provide high system reliability to mobile users. In the blockchain network, a customized smart contract for streaming service has been developed so that various events occurring during a session can be automatically registered on an immutable distributed ledger and managed transparently. The proposed overall system architecture was fully implemented and the performance compared with the existing streaming systems in 802.11 and 5G networks. As a result of the experiment, it was confirmed that the blockchain-based QoE accelerator makes the existing streaming service more stable and reliable at the network edge.

실시예들로부터 얻을 수 있는 효과들은 이상에서 언급된 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 이하의 상세한 설명을 기반으로 당해 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다.Effects obtainable from the embodiments are not limited to the effects mentioned above, and other effects not mentioned are clearly derived and understood by those of ordinary skill in the art based on the detailed description below. can be

실시예들에 대한 이해를 돕기 위해 상세한 설명의 일부로 포함된, 첨부 도면은 다양한 실시예들을 제공하고, 상세한 설명과 함께 다양한 실시예들의 기술적 특징을 설명한다.
도 1은 전체 비디오 스트리밍 시스템의 아키텍처의 일 실시예를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반 에지 네트워크 서비스를 제공하는 서버의 구성을 나타내는 블록도이다.
도 3은 제안하는 스트리밍 시스템의 엔터티(entity) 간의 전반적인 작업 절차의 일 실시예를 도시한 도면이다.
도 4는 에지 클라우드에서의 연동 절차의 세부 사항에 대한 일 실시예를 도시한 도면이다.
도 5는 동영상 스트리밍 서비스를 위한 블록체인 네트워크의 구성의 일 실시예를 도시한 도면이다.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as part of the detailed description to aid understanding of the embodiments, provide various embodiments and, together with the detailed description, explain technical features of the various embodiments.
1 is a diagram showing an embodiment of an architecture of an overall video streaming system.
2 is a block diagram showing the configuration of a server that provides a blockchain-based edge network service according to an embodiment of the present invention.
3 is a diagram illustrating an embodiment of an overall operation procedure between entities of the proposed streaming system.
4 is a diagram illustrating an embodiment of details of an interworking procedure in an edge cloud.
5 is a diagram showing an embodiment of the configuration of a block chain network for a video streaming service.

이하의 실시예들은 실시예들의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 다양한 실시예들을 구성할 수도 있다. 다양한 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.The following embodiments combine elements and features of the embodiments in a predetermined form. Each component or feature may be considered optional unless explicitly stated otherwise. Each component or feature may be implemented in a form that is not combined with other components or features. In addition, various embodiments may be configured by combining some components and/or features. The order of operations described in various embodiments may be changed. Some features or features of one embodiment may be included in another embodiment, or may be replaced with corresponding features or features of another embodiment.

도면에 대한 설명에서, 다양한 실시예들의 요지를 흐릴 수 있는 절차 또는 단계 등은 기술하지 않았으며, 당해 기술분야에서 통상의 지식을 가진 자의 수준에서 이해할 수 있을 정도의 절차 또는 단계는 또한 기술하지 아니하였다.In the description of the drawings, procedures or steps that may obscure the gist of various embodiments are not described, and procedures or steps that can be understood at the level of those of ordinary skill in the art are also not described. did

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 다양한 실시예들을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Throughout the specification, when a part is said to "comprising or including" a certain component, it does not exclude other components unless otherwise stated, meaning that other components may be further included. do. In addition, terms such as "...unit", "...group", and "module" described in the specification mean a unit that processes at least one function or operation, which is hardware or software or a combination of hardware and software. can be implemented as Also, "a or an," "one," "the," and like related terms are used herein in the context of describing various embodiments (especially in the context of the claims that follow). Unless indicated otherwise or clearly contradicted by context, it may be used in a sense including both the singular and the plural.

이하, 다양한 실시예들에 따른 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 다양한 실시예들의 예시적인 실시형태를 설명하고자 하는 것이며, 유일한 실시형태를 나타내고자 하는 것이 아니다.Hereinafter, embodiments according to various embodiments will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION The detailed description set forth below in conjunction with the appended drawings is intended to describe exemplary embodiments of various embodiments, and is not intended to represent the only embodiments.

또한, 다양한 실시예들에서 사용되는 특정(特定) 용어들은 다양한 실시예들의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 다양한 실시예들의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.In addition, specific terms used in various embodiments are provided to help the understanding of various embodiments, and the use of these specific terms may be changed to other forms without departing from the technical spirit of various embodiments. .

도 1은 전체 비디오 스트리밍 시스템의 아키텍처의 일 실시예를 도시한 도면이다.1 is a diagram showing an embodiment of an architecture of an overall video streaming system.

도 1을 참조하면, 비디오 스트리밍 시스템은 모바일 디바이스(mobile device), AP(access point) 또는 기지국을 포함하는 무선 채널(wireless channel) 영역과 라우터(router), 에지 클라우드 서버(edge cloud server), 미디어 클라우드 서버(media cloud server)를 포함하는 유선 채널(wired channel) 영역으로 구성될 수 있다.Referring to FIG. 1 , a video streaming system includes a mobile device, an access point (AP) or a wireless channel area including a base station and a router, an edge cloud server, and media. It may be configured as a wired channel area including a cloud server (media cloud server).

상기 에지 클라우드 서버는 도 2에 예시된 블록체인 기반 에지 네트워크 서비스 제공 장치와 동일한 구성을 가질 수 있으며, 상기 블록체인 기반 에지 네트워크 서비스 제공 장치는 도 1에 도시된 블록체인 기반 에지 네트워크 서비스 제공 장치에 국한되지 않을 수 있다.The  edge cloud server may have the same configuration as the  blockchain-based edge network service providing device illustrated in FIG. 2, and the  blockchain-based edge network service providing device is connected to the  blockchain-based edge network service providing device shown in FIG. may not be limited.

모바일 디바이스, 에지 클라우드 서버, 미디어 클라우드 서버는 네트워크를 이용하여 통신을 수행할 수 있다. 예를 들어, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 또한, 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.The mobile device, the edge cloud server, and the media cloud server may perform communication using a network. For example, a network includes a local area network (LAN), a wide area network (WAN), a value added network (VAN), a mobile radio communication network, a satellite communication network, and their It is a data communication network in a comprehensive sense that includes a mutual combination and enables each network constituent entity shown in FIG. 1 to communicate with each other smoothly, and may include a wired Internet, a wireless Internet, and a mobile wireless communication network. In addition, wireless communication is, for example, wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy, Zigbee, WFD (Wi-Fi Direct), UWB (ultra wideband), infrared communication (IrDA, infrared Data Association), NFC (Near Field Communication), etc. may be there, but is not limited thereto.

도 2는 본 발명의 일 실시예에 따른 블록체인 기반 에지 네트워크 서비스를 제공하는 서버의 구성을 나타내는 블록도이다.2 is a block diagram showing the configuration of a server that provides a blockchain-based edge network service according to an embodiment of the present invention.

도 2를 참조하면, 블록체인 기반 에지 네트워크 서비스를 제공하는 서버(200)(이하, 서버(200))는 통신부(210), 프로세서(220) 및 DB(230)를 포함할 수 있다. 도 2의 서버(200)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.Referring to FIG. 2 , a server 200 (hereinafter, referred to as server 200 ) that provides a blockchain-based edge network service may include a communication unit 210 , a processor 220 , and a DB 230 . In the server 200 of FIG. 2, only the components related to the embodiment are shown. Accordingly, it can be understood by those skilled in the art that other general-purpose components may be further included in addition to the components shown in FIG. 2 .

통신부(210)는 단말들 간 유선/무선 통신을 하게 하는 하나 이상의 구성 요소를 포함할 수 있다. 예를 들어, 통신부(210)는, 근거리 통신부(미도시), 이동 통신부(미도시) 및 방송 수신부(미도시) 중 적어도 하나를 포함할 수 있다.The communication unit 210 may include one or more components that enable wired/wireless communication between terminals. For example, the communication unit 210 may include at least one of a short-distance communication unit (not shown), a mobile communication unit (not shown), and a broadcast receiving unit (not shown).

일례로, DB(230)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신부(210)의 제어에 따라 네트워크를 통해 단말로 전달될 수 있다. 역으로, 단말의 프로세서의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 네트워크를 거쳐 통신부(210)을 통해 서버(200)로 수신될 수 있다. 예를 들어, 통신부(210)를 통해 수신된 서버(200)의 제어 신호나 명령, 컨텐츠 및 파일 등은 프로세서(220)로 전달되거나 DB(230)로 전달되어 저장될 수 있다.For example, a request generated according to a program code stored in a recording device such as the DB 230 may be transmitted to the terminal through a network under the control of the communication unit 210 . Conversely, a control signal, command, content, file, etc. provided under the control of the processor of the terminal may be received by the server 200 through the communication unit 210 through the network. For example, a control signal, command, content, file, etc. of the server 200 received through the communication unit 210 may be transmitted to the processor 220 or transmitted to the DB 230 and stored.

DB(230)는 서버(200) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 프로세서(220)의 처리 및 제어를 위한 프로그램을 저장할 수 있다.The DB 230 is hardware for storing various data processed in the server 200 , and may store a program for processing and controlling the processor 220 .

DB(230)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다. DB(230)는 메모리라고 나타낼 수도 있다.DB 230 is a random access memory (RAM), such as dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD- It may include ROM, Blu-ray or other optical disk storage, a hard disk drive (HDD), a solid state drive (SSD), or flash memory. The DB 230 may also be referred to as a memory.

프로세서(220)는 서버(200)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(220)는 DB(230)에 저장된 프로그램들을 실행함으로써, 입력부(미도시), 디스플레이(미도시), 통신부(210), DB(230) 등을 전반적으로 제어할 수 있다. 프로세서(220)는, DB(230)에 저장된 프로그램들을 실행함으로써, 외부 서버(200)의 동작을 제어할 수 있다.The processor 220 controls the overall operation of the server 200 . For example, the processor 220 may generally control the input unit (not shown), the display (not shown), the communication unit 210 , the DB 230 , and the like by executing programs stored in the DB 230 . The processor 220 may control the operation of the external server 200 by executing programs stored in the DB 230 .

통신부(210)는, 서버(200)가 다른 장치(미도시) 및 서버(미도시)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치(미도시)는 서버(200)와 같은 컴퓨팅 장치이거나, 센싱 장치일 수 있으나, 이에 제한되지 않는다. 통신부(210)는 네트워크를 통해, 다른 전자 장치로부터의 사용자 입력을 수신하거나, 외부 장치로부터 외부 장치에 저장된 데이터를 수신할 수 있다. The communication unit 210 may include one or more components that allow the server 200 to communicate with another device (not shown) and a server (not shown). The other device (not shown) may be a computing device such as the server 200 or a sensing device, but is not limited thereto. The communication unit 210 may receive a user input from another electronic device or data stored in the external device from an external device through a network.

DB(230)는, 프로세서(220)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 예를 들어, DB(230)는 서비스 제공을 위한 인스트럭션(instruction)을 저장할 수 있다. 또한 DB(230)는 프로세서(220)에서 생성된 데이터를 저장할 수 있다. 예를 들어, DB(230)는 프로세서(220)가 제공하는 블록체인 기반 에지 네트워크 서비스와 관련된 정보를 저장할 수 있다. DB(230)는 서버(200)로 입력되거나 서버(200)로부터 출력되는 정보를 저장할 수도 있다. The DB 230 may store a program for processing and controlling the processor 220 . For example, the DB 230 may store an instruction for providing a service. Also, the DB 230 may store data generated by the processor 220 . For example, the DB 230 may store information related to a blockchain-based edge network service provided by the processor 220 . The DB 230 may store information input to or output from the server 200 .

프로세서(220)는 ASICs (application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적 유닛 중 적어도 하나를 이용하여 구현될 수 있다.The processor 220 is ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays), controllers (controllers), microcontroller It may be implemented using at least one of (micro-controllers), microprocessors, and other electrical units for performing functions.

DB(230)는 프로세서(220)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 비디오 요청 메시지를 사용자 단말로부터 미디어(media) 클라우드 서버에게 상기 비디오 요청 메시지를 전달하고; 상기 비디오 요청 메시지에 기초한 비디오 재생에 필요한 정보를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하고; 제1 비디오 청크(chunk)에 대한 요청 메시지를 상기 사용자 단말로부터 상기 미디어 클라우드 서버에 전달하고; 상기 제1 비디오 청크를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하고; 상기 제1 비디오 청크를 기초로 상기 미디어 클라우드 서버에 요청한 가장 최근 청크의 후속 청크의 일부인 프리페치(prefetch) 청크를 프리페치할 청크로 결정하고; 상기 제1 청크를 상기 미디어 클라우드 서버에게 요청하고; 상기 제1 청크를 상기 미디어 클라우드 서버로부터 수신 및 저장하고; 상기 사용자 단말로부터 후속 청크 프리페치를 위한 제2 비디오 청크에 대한 요청 메시지를 수신하고; 그리고 상기 프리페치 청크가 상기 제2 비디오 청크를 포함함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제2 비디오 청크를 상기 사용자 단말에 전송하도록 설정될 수 있다.The DB 230 may store at least one instruction executed through the processor 220 . The at least one command transmits the video request message from the user terminal to the media cloud server; transmitting information necessary for video reproduction based on the video request message from the media cloud server to the user terminal; transmit a request message for a first video chunk from the user terminal to the media cloud server; deliver the first video chunk from the media cloud server to the user terminal; determining, as a prefetch chunk, a prefetch chunk that is a part of a subsequent chunk of the most recent chunk requested to the media cloud server based on the first video chunk; request the first chunk from the media cloud server; receive and store the first chunk from the media cloud server; receive a request message for a second video chunk for a subsequent chunk prefetch from the user terminal; And on the basis that the prefetch chunk includes the second video chunk, it may be configured to transmit the second video chunk stored in the edge cloud server to the user terminal.

여기서, 상기 적어도 하나의 명령은, 상기 비디오 요청 메시지를 스니핑(sniffing)을 통해 획득하도록 더 설정될 수 있다.Here, the at least one command may be further configured to obtain the video request message through sniffing.

여기서, 에지 클라우드 서버와 상기 미디어 클라우드 서버는 복수의 TCP(transmission control protocol) 연결이 설정될 수 있다.Here, a plurality of transmission control protocol (TCP) connections may be established between the edge cloud server and the media cloud server.

여기서, 상기 적어도 하나의 명령은, 상기 사용자 단말로부터, 후속 청크 프리페치를 위한 제3 비디오 청크에 대한 요청 메시지를 수신하고; 상기 프리페치 청크가 상기 제3 비디오 청크를 모두 포함하지 못함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제3 비디오 청크의 일부를 상기 사용자 단말에 전송하고, 상기 에지 클라우드 서버에 저장되지 않은 상기 제3 비디오 청크의 나머지 일부를 상기 미디어 클라우드 서버에 요청하고; 그리고 상기 제3 비디오 청크의 나머지 일부를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하도록 더 설정될 수 있다.Here, the at least one command includes: receiving, from the user terminal, a request message for a third video chunk for a subsequent chunk prefetch; On the basis that the prefetch chunk does not include all the third video chunks, a part of the third video chunk stored in the edge cloud server is transmitted to the user terminal, and the third video chunk not stored in the edge cloud server is transmitted to the user terminal. 3 request the remaining part of the video chunk to the media cloud server; And it may be further configured to transmit the remaining part of the third video chunk from the media cloud server to the user terminal.

여기서, 상기 프리페치 청크는 미리 설정된 알고리즘에 의해 결정되고, 상기 프리페치 청크는 소비되지 않고 폐기되는 프리페치된 데이터의 총량, 상기 에지 클라우드 서버와 상기 미디어 클라우드 서버 간의 예상 처리 속도를 기초로 결정되고, 상기 소비되지 않고 폐기되는 프리페치된 데이터의 총량은 다음 수식을 기초로 결정되고,Here, the prefetch chunk is determined by a preset algorithm, the prefetch chunk is determined based on the total amount of prefetched data that is not consumed and discarded, and an expected processing speed between the edge cloud server and the media cloud server, and , the total amount of prefetched data that is not consumed and discarded is determined based on the following equation,

Figure 112021129700174-pat00009
,
Figure 112021129700174-pat00009
,

ci(ni)은 소비되지 않고 폐기되는 프리페치된 데이터의 총량이고, Ti,m은 i번째 모바일 사용자가 보고 있는 비디오#m의 청크 지속 시간이고, Bi,m은 i번째 모바일 사용자가 본 비디오#m의 비트 전송률이고, ni는 T 동안 i번째 모바일 사용자를 위해 에지 클라우드가 프리페치하는 청크의 수이고, pi(ni)는 i번째 모바일 사용자에 대한 프리페치된 청크 중 사용되지 않은 데이터의 평균 양이고, pi(ni)는 다음 수식을 기초로 결정되고,c i (n i ) is the total amount of prefetched data that is not consumed and discarded, T i,m is the chunk duration of video#m being watched by the i-th mobile user, B i,m is the i-th mobile user is the bitrate of video#m seen, n i is the number of chunks that the edge cloud prefetches for the i-th mobile user during T, and p i ( n i ) is the number of prefetched chunks for the i-th mobile user. is the average amount of unused data, p i (n i ) is determined based on the formula:

Figure 112021129700174-pat00010
Figure 112021129700174-pat00010

Figure 112021129700174-pat00011
는 Pareto 모양(shape) 매개변수이고,
Figure 112021129700174-pat00012
은 상기 에지 클라우드 서버가 i번째 사용자 단말을 위해 상기 미디어 클라우드 서버에 요청한 비디오#m의 가장 최근 청크 번호일 수 있다.
Figure 112021129700174-pat00011
is the Pareto shape parameter,
Figure 112021129700174-pat00012
may be the most recent chunk number of video #m requested by the edge cloud server to the media cloud server for the i-th user terminal.

여기서, 상기 에지 클라우드 서버와 상기 미디어 클라우드 서버 간의 예상 처리 속도는, 확률 밀도 함수(probability density function, PDF) 및 커널 밀도 추정기(kernel density estimator, KDE)를 기초로 추정되고,Here, the expected processing speed between the edge cloud server and the media cloud server is estimated based on a probability density function (PDF) and a kernel density estimator (KDE),

상기 커널 밀도 추정기는 다음 수식과 같이 정의되고,The kernel density estimator is defined as follows,

Figure 112021129700174-pat00013
Figure 112021129700174-pat00013

Figure 112021129700174-pat00014
Figure 112021129700174-pat00014

Figure 112021129700174-pat00015
Figure 112021129700174-pat00015

Figure 112021129700174-pat00016
Figure 112021129700174-pat00016

h는 평활(smoothing) 매개변수이고, k(x)는 커널 함수이고, p(x)는 확률 밀도 함수이고, Nobs는 관측값의 총 수일 수 있다.h may be a smoothing parameter, k(x) may be a kernel function, p(x) may be a probability density function, and No obs may be the total number of observations.

여기서, 상기 h는 1.06σNobs -1/5일 수 있다.Here, h may be 1.06σN obs -1/5 .

최근 5G NR(New Radio)의 출현으로 에지 클라우드 기술은 자율 주행, 클라우드 게임, 원격 수술과 같은 지연에 민감한 애플리케이션을 가능하게 하는 잠재적 솔루션으로 많은 주목을 받았다. 기본 아이디어는 기존 원격 시스템을 사용자 장치에 근접한 풍부한 컴퓨팅 및 스토리지 리소스가 있는 에지 클라우드로 마이그레이션하는 것이다. 또한 최근 많은 연구에서 에지 클라우드를 활용하여 보다 안정적인 스트리밍 서비스를 제공하고 있다. 예를 들어, 에지 서버는 인기 있는 비디오 콘텐츠를 적극적으로 캐시하거나 실시간 인코딩을 수행하여 여러 해상도의 비디오를 생성할 수 있다. 결과적으로 에지 서버를 활용하는 것은 무선 네트워크를 통해 대용량 및 고품질 스트림을 원활하게 전달하기 위한 좋은 솔루션이 될 수 있다.With the recent advent of 5G New Radio (NR), edge cloud technology has drawn a lot of attention as a potential solution to enable latency-sensitive applications such as autonomous driving, cloud gaming, and remote surgery. The basic idea is to migrate existing remote systems to an edge cloud with abundant computing and storage resources close to user devices. In addition, many recent studies have provided a more stable streaming service by using the edge cloud. For example, edge servers can actively cache popular video content or perform real-time encoding to produce video in multiple resolutions. As a result, leveraging edge servers can be a good solution for seamless delivery of large and high-quality streams over wireless networks.

본 명세서에서는 HTTP 적응형 비디오 스트리밍에 내재된 도전적인 문제를 해결하기 위해 에지 클라우드의 잠재력을 활용하려고 시도한다. 본 명세서에서는 무선 네트워크를 통한 비디오 스트리밍 서비스를 위한 블록체인 기반의 공정하고 안정적인 QoE(quality of experience) 가속기를 제안한다. 본 명세서에서 제안하는 발명은 다음과 같이 요약될 수 있다.Herein we attempt to exploit the potential of the edge cloud to solve the challenging problems inherent in HTTP adaptive video streaming. In this specification, a blockchain-based fair and stable quality of experience (QoE) accelerator for a video streaming service over a wireless network is proposed. The invention proposed in this specification can be summarized as follows.

- 기존 미디어 서버와 호환되는 에지 지원 스트리밍 시스템 설계: 제안하는 시스템은 모바일 에지 서버에 위치하며 미디어 클라우드 및 사용자 장치에 투명하게 작동할 수 있다. 기존 미디어 서버 측 아키텍처를 수정할 필요가 없으며 클라이언트 측에서 경량 모듈을 설치하기만 하면 된다.- Edge-enabled streaming system design compatible with existing media servers: The proposed system is located on a mobile edge server and can operate transparently to media clouds and user devices. There is no need to modify the existing media server-side architecture, just install the lightweight module on the client side.

- 네트워크 세그먼트를 분리하여 종단 간 처리량(throughput) 향상: 미디어 클라우드 서버와 사용자 장치 간의 종단 간 TCP(transmission control protocol) 연결은 에지 서버 측에서 두 개의 TCP 연결로 분할될 수 있다. 사용자 장치와 에지 서버 간에 하나의 TCP 연결이 무선 네트워크를 통해 설정될 수 있다. 에지 서버와 미디어 서버 간의 다른 TCP 연결은 유선 네트워크를 통해 설정될 수 있다. 따라서 무선 네트워크의 오류가 발생하기 쉬운 채널 상태는 더 이상 에지 클라우드와 미디어 서버 간에 연결된 TCP 처리량(throughput)에 영향을 미치지 않을 수 있다. 에지 서버는 클라이언트와 미디어 서버 간에 교환되는 패킷을 구문 분석하여 클라이언트의 컨텍스트를 학습할 수 있다.- Improve end-to-end throughput by separating network segments: An end-to-end TCP (transmission control protocol) connection between the Media Cloud server and the user device can be split into two TCP connections on the edge server side. One TCP connection between the user device and the edge server can be established over the wireless network. Another TCP connection between the edge server and the media server can be established over a wired network. Therefore, the error-prone channel condition of the wireless network may no longer affect the TCP throughput connected between the edge cloud and the media server. The edge server can learn the context of the client by parsing the packets exchanged between the client and the media server.

- 여러 사용자 간의 경험 품질 보장: 에지 서버는 미디어 서버와 여러 TCP 연결을 설정하고 각 TCP 연결에 대한 모바일 장치에 대한 비디오 청크(chunk) 요청을 적절하게 예약할 수 있다. 이렇게 하면 단일 모바일 장치에 대한 하나의 큰 스트림으로 인해 다른 모바일 장치에 대한 서비스 지연이 발생하는 시나리오가 방지될 수 있다.- Guaranteed quality of experience across multiple users: Edge servers can establish multiple TCP connections with the media server and schedule video chunk requests to mobile devices for each TCP connection appropriately. This avoids scenarios where one large stream to a single mobile device causes service delays to other mobile devices.

- QoE 저하와 프리패치(prefetch) 비용의 효과적인 절충 추구: Edge 서버는 동영상 정지로 인해 저하되는 사용자 경험과 동영상 시청 중단 시 낭비되는 프리패치 비용 간의 균형을 고려하여 각 모바일 장치에 대해 프리페치 청크의 양을 동적으로 제어할 수 있다.- Pursuing an effective trade-off between QoE degradation and prefetch cost: Edge servers consider the trade-off between the degraded user experience caused by video freezes and the wasted prefetch cost when video stops watching. The amount can be dynamically controlled.

- 비디오 스트리밍 서비스와 블록체인 네트워크 결합: 블록체인 네트워크는 에지 클라우드 서버에 통합되어 세션 중에 생성되는 민감한 데이터, 즉 각 모바일 장치에서 요청하고 미리 가져오는 청크를 투명하게 관리할 수 있다. 신뢰 및 불변성과 같은 주요 블록체인 기능은 클라이언트에게 신뢰할 수 있는 서비스를 제공할 뿐만 아니라 서비스 제공자에게 성공적인 비즈니스 모델을 제안할 수 있다.- Combining video streaming services and blockchain networks: Blockchain networks can be integrated into edge cloud servers to transparently manage sensitive data generated during sessions, i.e. chunks requested and prefetched by each mobile device. Key blockchain features such as trust and immutability can not only provide trusted services to clients, but also suggest successful business models to service providers.

- 무선 네트워크를 통한 실제 테스트베드 구축: MPEG-DASH 오픈소스 플레이어와 HLF(Hyperledger Fabric) 오픈소스 블록체인이 타당성(feasibility) 테스트를 위해 채택되었다. 실제 802.11 및 5G 네트워크에서는 시스템 성능을 기존의 비디오 스트리밍 서비스와 비교하여 광범위하게 검사할 수 있다.- Implementation of real testbed through wireless network: MPEG-DASH open source player and HLF (Hyperledger Fabric) open source blockchain were adopted for feasibility test. In actual 802.11 and 5G networks, system performance can be extensively examined by comparing it to traditional video streaming services.

본 명세서에서는 무선 네트워크를 통한 적응형 비디오 스트리밍 서비스를 위한 블록체인 기반의 안정적인 QoE(quality of experience) 가속기(accelerator)를 제안한다. 제안된 블록체인 기반 QoE 가속기는 모든 모바일 사용자에게 안정적인 비디오 스트리밍 서비스를 제공하는 동시에 비디오 서비스 제공자, MNO(mobile network operator) 또는 제3자의 악의적인 데이터 액세스로부터 데이터 신뢰성을 보호하는 것을 목표로 한다. 이를 위해 중간 에지 클라우드에서 사용자와 미디어 클라우드 간의 종단 간 TCP 연결이 차단될 수 있다. 에지 클라우드는 미디어 클라우드와 다중 TCP 연결을 설정하여 네트워크 중간에 있는 네트워크 리소스를 효율적으로 사용하고 미디어 클라우드에 연결된 다중 스트림을 통해 비디오 청크 요청을 적절하게 예약할 수 있다. 블록체인 네트워크는 에지 클라우드에 구축되어 세션 중에 생성된 민감한 데이터, 즉 프리페치된 청크 및 요청된 청크를 안정적으로 저장할 수 있다. 실제 배포 가능성을 보여주기 위해 블록체인 기반 QoE 가속기는 MPEG DASH 오픈 소스 플레이어와 Hyperledger Fabric 오픈 소스 블록체인을 사용하여 802.11 및 5G 네트워크에서 완전히 구현되었다. 마지막으로 실험 결과를 통해 제안한 스트리밍 시스템의 성능을 검증하였다. 블록체인 기반 QoE 가속기는 정지 이벤트(freezing event) 및 사용자가 경험하는 비디오 품질 측면에서 기존 프리페칭 방식을 능가한다.In the present specification, a blockchain-based stable quality of experience (QoE) accelerator for an adaptive video streaming service over a wireless network is proposed. The proposed blockchain-based QoE accelerator aims to provide reliable video streaming service to all mobile users while protecting data reliability from malicious data access by video service providers, mobile network operators (MNOs) or third parties. To this end, the end-to-end TCP connection between the user and the media cloud may be blocked in the intermediate edge cloud. The edge cloud can establish multiple TCP connections with the media cloud to efficiently use the network resources in the middle of the network and schedule video chunk requests appropriately through multiple streams connected to the media cloud. Blockchain networks are built on the edge cloud to reliably store sensitive data generated during sessions, namely prefetched and requested chunks. To demonstrate real-world deployment possibilities, the blockchain-based QoE accelerator has been fully implemented in 802.11 and 5G networks using the MPEG DASH open source player and Hyperledger Fabric open source blockchain. Finally, the performance of the proposed streaming system was verified through the experimental results. Blockchain-based QoE accelerators outperform existing prefetching methods in terms of freezing events and the video quality experienced by users.

제안된 블록체인 기반 QoE 가속기의 주요 목적은 모바일 사용자가 원하는 품질로 원활한 비디오 스트리밍 서비스를 즐길 수 있도록 하는 것이다. 그러나 미디어 클라우드에서 모바일 장치까지의 장거리 네트워크 조건의 높은 역동성은 이 목표를 달성하기 어렵게 만드는 주요 요인 중 하나이다. 미디어 클라우드 측의 전송 모듈은 비트 오류로 인한 지연을 네트워크 혼잡으로 인한 지연으로 간주하기 때문에 오류가 발생하기 쉬운 무선 채널 조건은 그들 사이의 종단 간 TCP 처리량(throughput)을 심각하게 저하시킬 수 있다. 따라서 종단 간 연결을 무선 및 유선 섹션의 두 섹션으로 분리하는 것이 좋다. 여기서 무선 채널 조건은 유선 섹션을 통해 설정된 TCP 처리량(throughput)에 영향을 미치지 않는다. 또한 다수의 모바일 사용자에게 동시에 동영상 스트리밍 서비스를 제공하는 상황을 고려할 필요가 있다. 일반적으로 서버가 단일 스트림에서 여러 사용자 요청으로 응답할 때 많은 양의 데이터를 전달하는 응답이 서버 측의 다운링크를 독점적으로 사용할 수 있으므로 다른 모든 요청에 대한 응답이 제한될 수 있다. 따라서 어떤 사용자는 만족스러운 서비스를 경험할 수 있고 다른 사용자는 낮은 서비스 품질을 경험할 수 있다. 병렬 TCP 연결과 정교한 스케줄링을 사용하면 여러 사용자 간의 불공정을 방지하는 효과적인 솔루션이 될 수 있다. 실제로 병렬 TCP의 스트림은 네트워크 혼잡이 없는 경우 네트워크 리소스를 공정하게 사용하는 경향이 있다. 블록체인 기반 QoE 가속기의 또 다른 목적은 에지 클라우드 데이터베이스를 투명하게 관리하여 모바일 사용자에게 안정적인 스트리밍 서비스를 제공하는 것이다. 비즈니스 관점에서 실제 세계에 성공적으로 배포하려면 신뢰할 수 있는 시스템을 구축하는 것이 중요하다. 블록체인 기술이 높은 시스템 신뢰성을 달성할 수 있다는 것은 잘 알려져 있다. 사실, 블록체인의 탈중앙화 및 불변의 원장(ledger)은 특정 기록에 접근하고 수정하는 것을 불가능하게 만들 수 있다.The main purpose of the proposed blockchain-based QoE accelerator is to enable mobile users to enjoy seamless video streaming services with desired quality. However, the high dynamics of long-distance network conditions from media clouds to mobile devices is one of the main factors making this goal difficult to achieve. Because the transmission module on the media cloud side considers delay due to bit errors as delay due to network congestion, error-prone radio channel conditions can seriously degrade the end-to-end TCP throughput between them. Therefore, it is recommended to separate the end-to-end connection into two sections: wireless and wired sections. Here, the wireless channel condition does not affect the TCP throughput set through the wired section. In addition, it is necessary to consider the situation of providing a video streaming service to multiple mobile users at the same time. In general, when a server responds to multiple user requests on a single stream, responses carrying large amounts of data may use the downlink on the server side exclusively, thus limiting responses to all other requests. Therefore, some users may experience satisfactory service and other users may experience low service quality. The use of parallel TCP connections and sophisticated scheduling can be an effective solution to avoid unfairness among multiple users. In practice, streams in parallel TCP tend to use network resources fairly in the absence of network congestion. Another purpose of the blockchain-based QoE accelerator is to provide stable streaming services to mobile users by transparently managing the edge cloud database. From a business point of view, building a reliable system is critical for successful deployment in the real world. It is well known that blockchain technology can achieve high system reliability. In fact, blockchain’s decentralization and immutable ledger can make it impossible to access and modify certain records.

A. 전체 시스템 아키텍처(overall system architecture)A. overall system architecture

도 1을 참조하면, 미디어 클라우드, 모바일 장치 및 에지 클라우드가 전체 비디오 스트리밍 시스템을 구성할 수 있다. 기존 DASH(dynamic adaptive streaming over HTTP)와 유사하게 미디어 클라우드는 모든 비디오 파일뿐만 아니라 DASH 플레이어의 동작과 각 비디오 파일의 속성(예를 들어, 지속 시간, 프레임 속도(frame rate), 비트 전송률 버전(bitrate version), 각 비트 전송률 버전에 필요한 처리량(throughput)(throughput required for each bitrate version) 등)을 정의하는 HTML, JavaScript 및 MPD 파일도 저장할 수 있다. 따라서 제안된 시스템은 미디어 클라우드 측의 수정 없이 기존 HTTP 적응 스트리밍 프레임워크와 호환될 수 있다. 모바일 장치 측의 아키텍처는 또한 기존 DASH 환경에서 클라이언트 측의 구현을 크게 변경하지 않도록 설계될 수 있다. NIC(network interface card) 모니터 및 버퍼 컨트롤러와 같은 사용자 친화적인 기능이 추가될 수 있다. 스트리밍하는 동안 NIC 모니터를 통해 네트워킹이 소비하는 전력량을 확인할 수 있고 버퍼 컨트롤러를 통해 클라이언트 측에서 미리 가져올 청크 수를 수동으로 선택할 수 있다. 에지 클라우드는 모바일 장치와 미디어 클라우드 사이에 투명하게 위치하며, 종단 간 TCP 연결이 끊어지고 무선 및 유선 섹션으로 분리될 수 있다. 에지 클라우드는 병렬 사용을 위해 미디어 서버와 여러 TCP 연결을 설정할 수 있다. 에지 클라우드에서는 QoE 가속기와 블록체인 네트워크가 컨테이너 형태로 설계될 수 있다. QoE 가속기 컨테이너는 모바일 장치에 안정적인 스트리밍 서비스를 제공할 수 있다. 이하에서 QoE 가속기 컨테이너의 모듈에 대한 세부 정보를 설명한다.Referring to FIG. 1 , a media cloud, a mobile device, and an edge cloud may constitute an entire video streaming system. Similar to traditional dynamic adaptive streaming over HTTP (DASH), Media Cloud supports not only all video files, but also the behavior of the DASH player and the properties of each video file (e.g. duration, frame rate, bitrate). version), as well as HTML, JavaScript and MPD files that define the throughput required for each bitrate version, etc. Therefore, the proposed system can be compatible with the existing HTTP adaptive streaming framework without modification on the media cloud side. The architecture on the mobile device side can also be designed to not significantly change the implementation on the client side in an existing DASH environment. User-friendly features such as network interface card (NIC) monitors and buffer controllers can be added. While streaming, you can see how much power the networking is consuming via the NIC monitor and manually select the number of chunks to prefetch on the client side via the buffer controller. The edge cloud sits transparently between the mobile device and the media cloud, and the end-to-end TCP connection can be broken and split into wireless and wired sections. The edge cloud can establish multiple TCP connections with the media server for parallel use. In the edge cloud, QoE accelerators and blockchain networks can be designed in the form of containers. QoE accelerator containers can provide reliable streaming services to mobile devices. Hereinafter, detailed information about the modules of the QoE accelerator container will be described.

- 패킷 파서(packet parser) 모듈은 모바일 장치와 미디어 클라우드 간의 애플리케이션 수준 패킷 스니핑(sniffing)을 통해 컨텍스트를 인식할 수 있다. 기본적으로 HTTP 요청 패킷을 미디어 클라우드로, HTTP 응답 패킷을 모바일 장치로 전달할 수 있다. 포워딩 외에도, 패킷 파서 모듈은 요청된 청크가 에지 클라우드의 스토리지에 있는 경우 모바일 장치에 직접 응답할 수 있다.- The packet parser module may be context aware through application-level packet sniffing between the mobile device and the media cloud. Basically, the HTTP request packet can be delivered to the media cloud and the HTTP response packet can be delivered to the mobile device. In addition to forwarding, the packet parser module can respond directly to the mobile device if the requested chunk is in storage at the edge cloud.

- 네트워크 추정기(estimator) 모듈은 HTTP 요청 및 응답 패킷으로 미디어 클라우드에서 에지 클라우드까지의 네트워크 상태를 주기적으로 측정할 수 있다. 또한, 네트워크 상태의 관찰을 기반으로 그들 사이의 네트워크 상태를 추정할 수 있다.- The network estimator module can periodically measure the network status from the media cloud to the edge cloud with HTTP request and response packets. Also, it is possible to estimate the network state between them based on the observation of the network state.

- 버퍼 컨트롤러(buffer controller) 모듈은 패킷 파서 모듈에서 얻은 사용자의 서비스 컨텍스트와 네트워크 추정기 모듈에서 추정한 네트워크 상태를 기반으로 각 모바일 사용자에 대해 프리페치(prefetch)할 청크 수를 결정할 수 있다.- The buffer controller module can determine the number of chunks to prefetch for each mobile user based on the user's service context obtained from the packet parser module and the network state estimated from the network estimator module.

- 청크 트랜시버(transceiver) 모듈은 모바일 장치에 대한 HTTP 요청 패킷을 스케줄링하고, 병렬 TCP 연결의 효과적인 사용을 위해 HTTP 요청 패킷을 각 TCP 스트림에 할당할 수 있다.- Chunk transceiver module can schedule HTTP request packets for mobile devices, and assign HTTP request packets to each TCP stream for effective use of parallel TCP connections.

상용 DBMS(database management system)가 아닌 블록체인 네트워크를 구축하는 이유는 사용자에게 보다 안정적인 스트리밍 서비스를 제공하기 위함이다. 이하에서는 블록체인 네트워크의 컨테이너가 설명된다.The reason for building a blockchain network rather than a commercial DBMS (database management system) is to provide a more stable streaming service to users. Hereinafter, a container in a blockchain network is described.

- 주문자(orderer) 컨테이너는 모든 트랜잭션(transaction)의 순서를 설정하는 책임이 있을 수 있다. 주문자 컨테이너는 트랜잭션 일괄 처리(batch)가 포함된 블록을 생성한 다음, 트랜잭션 일괄 처리가 포함된 블록을 확인을 위해 피어 컨테이너로 보낼 수 있다.- The orderer container may be responsible for setting the order of all transactions. The orderer container can create a block containing a transaction batch, and then send the block containing the transaction batch to a peer container for confirmation.

- 피어 컨테이너는 블록을 검증하고 원장(ledger)에 커밋합니다. 검증 및 커밋(commit) 외에도, 피어 컨테이너는 트랜잭션 제안에 대한 스마트 계약을 호스트하고 실행 결과를 보증(endorse)할 수 있다.- Peer containers validate blocks and commit them to the ledger. In addition to validation and commit, peer containers can host smart contracts for transaction proposals and endorse execution results.

B. 시스템 작업 절차(system working procedure)B. system working procedure

도 3은 제안하는 스트리밍 시스템의 엔터티(entity) 간의 전반적인 작업 절차의 일 실시예를 도시한 도면이다.3 is a diagram illustrating an embodiment of an overall operation procedure between entities of the proposed streaming system.

도 3을 참조하면, 동영상을 보고자 하는 모바일 사용자는 초기 HTTP 요청을 미디어 클라우드가 아닌 에지 클라우드에 보내는 것으로 시작할 수 있다(1단계). 예를 들어, 에지 클라우드는 모바일 사용자로부터 HTTP 요청을 스니핑(sniffing)을 통해 획득할 수 있다. 에지 클라우드는 초기 HTTP 요청을 구문 분석하여 미디어 서버로 전달할 수 있다(2단계). 미디어 서버는 에지 클라우드에 상기 요청에 해당하는 파일로 응답할 수 있다(3단계). 그런 다음 HTTP 응답 패킷이 에지 클라우드에서 모바일 사용자에게 전송될 수 있다. 실제로 요청 전달은 프록시의 기본 작업 중 하나이다. 이 시점에서 모바일 사용자는 비디오 재생에 필요한 모든 관련 지식을 얻을 수 있다. JavaScript 파일에 지정된 플레이어의 동작에 따라, 모바일 사용자는 HTTP 요청 패킷을 통해 비디오 청크를 요청할 수 있다(4단계). 모든 HTTP 요청 및 응답은 에지 클라우드를 통과한다. 따라서 에지 서버는 서비스 컨텍스트를 인식할 수 있다. 에지 클라우드는 HTTP 요청을 미디어 서버로 전달하고 프리페칭 이벤트를 트리거할 수 있다. 프리페칭 이벤트는 미디어 서버에서 요청한 가장 최근 청크의 일부 후속 청크를 요청하는 HTTP 요청 패킷을 생성할 수 있다(5단계). 프리페치할 청크의 결정 프로세스는 후술한다. 미디어 클라우드는 요청을 시작한 소스에 관계없이 요청에 해당하는 청크를 포함하는 HTTP 응답 패킷으로 응답할 수 있다. 요청한 청크가 에지 클라우드에 도착하면 모바일 사용자에게 요청한 청크를 되돌려 보내고(6단계), 에지 클라우드에서 직접 요청한 청크를 에지 클라우드의 저장소에 저장한다(7단계). 시간이 지남에 따라 청크는 모바일 장치에서 점차적으로 소모됩니다. 모바일 사용자는 prefetch 없이 재생할 수 있는 시간이 일정 수준 이하로 떨어지면 후속 청크를 prefetch하기 위해 HTTP 요청 패킷을 생성할 수 있다(8단계). 에지 클라우드가 요청에 대한 해당 청크를 저장하고 있으면, 상기 요청을 미디어 서버로 전달하는 대신 직접 상기 요청에 응답할 수 있다(9단계). 모바일 사용자는 에지 클라우드 덕분에 부드러운 비디오 재생을 즐길 수 있지만 에지 클라우드와 미디어 클라우드 간의 처리량(throughput)은 비디오 비트레이트 이하로 떨어질 수 있다. 프리페치 시간 간격 T가 만료되면 프리페칭 이벤트가 트리거되고(단계 10), 후속 청크가 에지 클라우드 스토리지에서 프리페치 될 수 있다(단계 11). 시간이 지남에 따라 모바일 장치는 후속 청크를 미리 가져오도록 요청할 수 있다(단계 12). 요청된 청크 중 일부만 에지 클라우드에 저장된다고 가정할 때, 에지 클라우드는 저장하고 있는 청크에 대한 요청에는 직접 응답하고(13단계), 나머지 요청은 미디어 클라우드에 전달할 수 있다(14단계). 모바일 장치의 요청은 미디어 클라우드 또는 에지 클라우드로 전송되지만 모바일 장치는 청크를 수신할 때 어디서 전송되었는지 알지 못할 수 있다(단계 15). 에지 클라우드는 프리페치 시간 간격으로 주기적으로 청크를 요청하고 프리페치할 수 있다(16, 17단계).Referring to FIG. 3 , a mobile user who wants to view a video may start by sending an initial HTTP request to the edge cloud instead of the media cloud (step 1). For example, an edge cloud may obtain an HTTP request from a mobile user through sniffing. The edge cloud can parse the initial HTTP request and forward it to the media server (step 2). The media server may respond to the edge cloud with a file corresponding to the request (step 3). An HTTP response packet can then be sent from the edge cloud to the mobile user. In fact, request forwarding is one of the primary tasks of a proxy. At this point, mobile users can get all the relevant knowledge they need to play the video. Depending on the action of the player specified in the JavaScript file, the mobile user can request video chunks via HTTP request packets (step 4). All HTTP requests and responses go through the edge cloud. Thus, the edge server can be aware of the service context. Edge clouds can forward HTTP requests to media servers and trigger prefetching events. The prefetching event may generate an HTTP request packet requesting some subsequent chunks of the most recent chunk requested by the media server (step 5). A process of determining a chunk to be prefetched will be described later. Media Cloud can respond with an HTTP response packet containing chunks corresponding to the request, regardless of the source that initiated the request. When the requested chunk arrives at the edge cloud, it sends back the requested chunk to the mobile user (step 6), and stores the requested chunk directly from the edge cloud in the storage of the edge cloud (step 7). Over time, chunks are gradually depleted on mobile devices. Mobile users can generate HTTP request packets to prefetch subsequent chunks when the replayable time without prefetch drops below a certain level (step 8). If the edge cloud stores the corresponding chunk for the request, it can respond to the request directly (step 9) instead of forwarding the request to the media server. Mobile users can enjoy smooth video playback thanks to the edge cloud, but the throughput between the edge cloud and the media cloud may drop below the video bitrate. When the prefetch time interval T expires, a prefetching event is triggered (step 10), and subsequent chunks can be prefetched from edge cloud storage (step 11). Over time, the mobile device may request to prefetch subsequent chunks (step 12). Assuming that only some of the requested chunks are stored in the edge cloud, the edge cloud directly responds to the request for the stored chunk (step 13), and can deliver the remaining requests to the media cloud (step 14). The mobile device's request is sent to the media cloud or edge cloud, but when the mobile device receives the chunk it may not know where it was sent (step 15). The edge cloud may request and prefetch chunks periodically at the prefetch time interval (steps 16 and 17).

도 4는 에지 클라우드에서의 연동 절차의 세부 사항에 대한 일 실시예를 도시한 도면이다.4 is a diagram illustrating an embodiment of details of an interworking procedure in an edge cloud.

도 4를 참조하면, 모바일 사용자의 HTTP 요청이 에지 클라우드에 도착하면 패킷 파서 모듈이 각 모바일 사용자의 컨텍스트(즉, 원하는 청크 인덱스(index) 및 비트 전송률(bitrate))를 버퍼 컨트롤러에 제공면서 블록체인 네트워크에 청크의 존재 여부를 확인할 수 있다. 프리페치를 위해 버퍼 컨트롤러 모듈은 각 TCP 스트림에 보낼 HTTP 요청 패킷을 생성할 수 있다. 청크 트랜시버 모듈은 미디어 클라우드와 연결된 각 TCP 소켓에 HTTP 요청 패킷을 예약할 수 있다. 네트워크 추정기는 패킷이 소켓에 기록되는 시간을 기록할 수 있다. 미디어 클라우드의 HTTP 응답이 청크 트랜시버 모듈에 도착하면 패킷(즉, 미디어 클라우드의 HTTP 응답)은 패킷 파서 모듈로 전달되고 패킷 수신 시간은 네트워크 추정기 모듈에 기록될 수 있다. 미디어 클라우드와 에지 클라우드 간의 처리량(throughput)은 패킷 송수신 시간의 차이로 측정될 수 있다. 이 정보를 사용하여 네트워크 추정기 모듈은 다음 프리페칭 시간 간격 동안 미디어 클라우드의 처리량(throughput)을 예측할 수 있다. 패킷 파서 모듈은 HTTP 응답 패킷을 구별하고 해당 응답을 각 모바일 사용자의 HTTP 요청에 전달할 수 있다. 에지 클라우드가 프리페칭을 위해 요청한 청크는 저장될 수 있고, 프리페칭 정보는 블록체인 네트워크에 기록될 수 있다.Referring to Figure 4, when a mobile user's HTTP request arrives at the edge cloud, the packet parser module provides each mobile user's context (that is, the desired chunk index and bitrate) to the buffer controller while providing the block chain You can check whether a chunk exists in the network. For prefetching, the buffer controller module can generate HTTP request packets to send to each TCP stream. The chunk transceiver module can reserve HTTP request packets on each TCP socket connected to the media cloud. The network estimator may record the time a packet is written to the socket. When the HTTP response of the media cloud arrives at the chunk transceiver module, the packet (ie, the HTTP response of the media cloud) is forwarded to the packet parser module, and the packet reception time may be recorded in the network estimator module. A throughput between the media cloud and the edge cloud may be measured as a difference in packet transmission/reception time. Using this information, the network estimator module can predict the throughput of the media cloud for the next prefetching time interval. The packet parser module can distinguish HTTP response packets and forward the response to each mobile user's HTTP request. The chunk requested by the edge cloud for prefetching can be stored, and the prefetching information can be recorded on the blockchain network.

C. 스마트 계약 개발(smart contract development)C. Smart contract development

에지 클라우드 상의 블록체인 네트워크는 스트리밍 서비스 동안 생성된 데이터(예를 들어, 에지 클라우드에 의해 프리페치된 청크의 정보 및 각 모바일 디바이스에서 요청된 청크 정보)를 기록하도록 구성될 수 있다. 블록체인 네트워크는 분산 원장(distributed ledger)을 관리하는 둘 이상의 피어 노드로 구성될 수 있다. 즉, 세션 중에 생성된 데이터는 여러 피어 노드에서 투명하게 관리되므로 누구도 변조할 수 없다. 제안하는 스트리밍 시스템에서는 높은 신뢰성을 위해 각 모바일 장치의 계정으로 각 피어 노드를 생성한다고 가정한다.The blockchain network on the edge cloud may be configured to record data generated during streaming services (eg, information in chunks prefetched by the edge cloud and chunk information requested from each mobile device). A blockchain network can consist of two or more peer nodes that manage a distributed ledger. In other words, data generated during a session is transparently managed by multiple peer nodes, so no one can tamper with it. In the proposed streaming system, it is assumed that each peer node is created with the account of each mobile device for high reliability.

도 5는 동영상 스트리밍 서비스를 위한 블록체인 네트워크의 구성의 일 실시예를 도시한 도면이다.5 is a diagram showing an embodiment of the configuration of a block chain network for a video streaming service.

도 5를 참조하면, 블록체인 네트워크는 클라이언트 애플리케이션(client application)과 스마트 계약(예를 들어, HLF에서 체인코드(chaincode))의 두 부분으로 분류될 수 있다.Referring to FIG. 5 , the blockchain network may be divided into two parts: a client application and a smart contract (eg, chaincode in HLF).

- 클라이언트 애플리케이션은 QoE 가속기 또는 모바일 장치와 같은 블록체인 사용자가 블록체인 네트워크 내부의 스마트 계약에 액세스할 수 있는 일종의 게이트웨이이다. 즉, QoE 가속기에 의해 호출된 트랜잭션 제안은 클라이언트 애플리케이션을 통해 스마트 계약으로 피어 컨테이너에 제출될 수 있다.- A client application is a kind of gateway through which blockchain users, such as QoE accelerators or mobile devices, can access smart contracts inside the blockchain network. That is, the transaction proposal invoked by the QoE accelerator can be submitted to the peer container as a smart contract through the client application.

- 스마트 계약은 비디오 스트리밍 서비스를 위한 비즈니스 로직을 가진 간단한 프로그램이다. 스마트 계약은 각 피어 컨테이너에 배포되고 클라이언트 애플리케이션에서 보낸 트랜잭션 제안을 기반으로 원장(ledger)을 초기화(initialize)하거나 업데이트할 수 있다. 특히, 원장의 상태는 제출된 트랜잭션과 일치하는 스마트 계약의 미리 정의된 각 기능에 의해 초기화, 쿼리(query), 및 업데이트될 수 있다.- A smart contract is a simple program with business logic for a video streaming service. Smart contracts are deployed in each peer container and can initialize or update the ledger based on transaction proposals sent by client applications. In particular, the state of the ledger can be initialized, queried, and updated by each predefined function of the smart contract that matches the submitted transaction.

D. 문제 설명(problem description)D. Problem description

이 섹션에서는 청크 프리페칭 문제를 자세히 정의한다. 자세한 설명을 하기 전에 몇 가지 기호를 정의한다. 첫째, I는 스트리밍 서비스를 사용하는 모바일 사용자의 집합을 나타내고, M은 모바일 사용자가 사용할 수 있는 비디오 콘텐츠 집합을 나타내며, ni는 T 동안 i번째 모바일 사용자를 위해 에지 클라우드가 미리 가져오는(즉, 프리페치하는) 청크의 수를 나타낼 수 있다.This section defines the chunk prefetching problem in detail. Before going into detail, let's define some symbols. First, I denotes the set of mobile users using the streaming service, M denotes the set of video content available to mobile users, and n i is the set of video content that the edge cloud prefetches for the i-th mobile user during T (i.e., may indicate the number of chunks to prefetch).

때때로 모바일 사용자는 동영상 콘텐츠가 흥미롭지 않거나 기기의 배터리가 전체 동영상을 재생하기에 충분하지 않거나 기타 이유로 동영상 시청을 중단할 수 있다. 이 경우, 상당한 수의 청크가 이미 에지 클라우드에서 미리 전송된 경우(즉, prefetch된 경우) 상당한 리소스 낭비가 될 수 있다. 즉, 프리페치된 청크의 수 측면에서 비디오 정지 가능성과 리소스 낭비 가능성 사이에는 분명한 트레이드오프가 있다. 사용자의 서비스 컨텍스트 정보를 사용하여 프리패치된 청크 수에 따라 청크 낭비 확률(chunk wasting probability)을 정의할 수 있다.Occasionally, mobile users may stop watching a video if the video content is not interesting, the device's battery is not sufficient to play the full video, or for other reasons. In this case, it can be a significant waste of resources if a significant number of chunks have already been pre-sent from the edge cloud (ie, prefetched). In other words, there is a clear tradeoff between the potential for video freezes and the potential for wasting resources in terms of the number of prefetched chunks. A chunk wasting probability can be defined according to the number of prefetched chunks using the user's service context information.

청크 낭비 확률(chunk wasting probability): 지금까지 비디오 스트리밍 서비스에서 사용자의 세션 시간을 측정하는 데 많은 연구가 이루어졌다. 연구들에서 대부분의 사용자는 비디오 스트리밍 서비스에 매우 짧은 기간 동안만 머무르는 반면 일부 사용자는 매우 오래 머무르는 것으로 관찰되었다. 이것은 비디오 세션 지속 시간의 분포가 일반적으로 두꺼운 꼬리(heavy-tailed) 분포를 가진다는 것을 의미하므로, 사용자의 남은 시간(즉, 사용자가 비디오를 시청할 시간)은 사용자가 비디오를 시청한 시간에 따라 달라질 수 있다. 이를 바탕으로 i번째 모바일 사용자에 대한 청크 낭비 확률은 두꺼운 꼬리 분포인 Pareto 분포(Bustamante FE and Qiao Y, “Friendships that last: peer lifespan and its role in P2P protocols,” Int Work Web Content Caching Distrib pp. 233-246, 2004, Stutzbach D and Rejaie R, “Understanding churn in peer-to-peer network,” in proc. ACM SIGCOMM Conference on Internet Measurement, pp. 189-202, 2006., Steiner M, En-Najjary T, Biersack E, “Long term study of peer behavior in the KAD DHT,” IEEE/ACM Trans Netw 17(6):1371- 1384. doi:10.1109/TNET.2008.2009053. Accessed 18 Oct 2013, Leonard D, Yao Z, Rai V, and Loguinov D, “On lifetime-based node failure and stochastic resilience of decentralized peer-to-peer networks,” IEEE/ACM Transactions on Networking, vol. 15, pp.644- 656. 2007.)로 정의할 수 있다.Chunk wasting probability: So far, a lot of research has been done on measuring the session time of users in video streaming services. In studies, it has been observed that most users stay on video streaming services only for a very short period, while some users stay very long. This means that the distribution of video session duration generally has a heavy-tailed distribution, so the user's remaining time (i.e., the amount of time the user will watch the video) will vary depending on the amount of time the user has watched the video. can Based on this, the chunk wasting probability for the i-th mobile user is a thick-tailed Pareto distribution (Bustamante FE and Qiao Y, “Friendships that last: peer lifespan and its role in P2P protocols,” Int Work Web Content Caching Distrib pp. 233 -246, 2004, Stutzbach D and Rejaie R, “Understanding churn in peer-to-peer network,” in proc. ACM SIGCOMM Conference on Internet Measurement, pp. 189-202, 2006., Steiner M, En-Najjary T, Biersack E, “Long term study of peer behavior in the KAD DHT,” IEEE/ACM Trans Network 17(6):1371-1384. doi:10.1109/TNET.2008.2009053. Accessed 18 Oct 2013, Leonard D, Yao Z, Rai V, and Loguinov D, “On lifetime-based node failure and stochastic resilience of decentralized peer-to-peer networks,” IEEE/ACM Transactions on Networking, vol. 15, pp.644-656. 2007.) there is.

Figure 112021129700174-pat00017
Figure 112021129700174-pat00017

여기서

Figure 112021129700174-pat00018
는 Pareto 모양(shape) 매개변수이고, Ti,m은 i번째 모바일 사용자가 보고 있는 비디오#m(즉, m번째 비디오)의 청크 지속 시간이다. Pr은 X에 대한 분포함수(distribution function)일 수 있다.
Figure 112021129700174-pat00019
을 i번째 모바일 사용자를 위해 미디어 클라우드에 요청한 비디오#m의 가장 최근 청크 번호라고 하자. i번째 모바일 사용자에 대한 프리페치된(prefetched) 청크(즉, ni) 중 사용되지 않은 데이터의 평균 양(즉, pi(ni))은 수학식 1을 사용하여 계산할 수 있다.here
Figure 112021129700174-pat00018
is the Pareto shape parameter, and T i,m is the chunk duration of video#m (ie, the mth video) being viewed by the i-th mobile user. Pr may be a distribution function for X.
Figure 112021129700174-pat00019
Let be the most recent chunk number of video#m requested to the media cloud for the i-th mobile user. The average amount of unused data (ie, p i ( n i )) among prefetched chunks (ie, n i ) for the i-th mobile user may be calculated using Equation (1).

Figure 112021129700174-pat00020
Figure 112021129700174-pat00020

여기서 Bi,m은 i번째 모바일 사용자가 본 비디오#m의 비트 전송률을 나타낸다. 따라서

Figure 112021129700174-pat00021
은 비디오#m의 청크 크기를 의미한다. 수학식 2를 기반으로 소비되지 않고 폐기되는 프리페치된 데이터의 총량(즉, ci(ni))을 계산할 수 있다.Here, B i,m represents the bit rate of video #m viewed by the i-th mobile user. thus
Figure 112021129700174-pat00021
denotes the chunk size of video #m. Based on Equation 2, the total amount of prefetched data that is not consumed and discarded (ie, c i ( n i )) may be calculated.

청크 프리페칭 문제 공식화(chunk prefetching problem formulation): 청크 낭비 확률의 가중치 합을 최소화하기 위해 모든 모바일 사용자에 대해 프리페치할 청크 수(즉,

Figure 112021129700174-pat00022
)를 결정할 수 있다.Chunk prefetching problem formulation: the number of chunks to prefetch (i.e., for all mobile users) to minimize the weighted sum of the chunk wasted probabilities
Figure 112021129700174-pat00022
) can be determined.

Figure 112021129700174-pat00023
Figure 112021129700174-pat00023

Figure 112021129700174-pat00024
Figure 112021129700174-pat00024

Figure 112021129700174-pat00025
Figure 112021129700174-pat00025

여기서

Figure 112021129700174-pat00026
은 i번째 모바일 사용자에 대한 개별 가중치이며 총합은 1이다.
Figure 112021129700174-pat00027
의 값은 사용자의 시청 행위 이력을 기반으로 미리 결정될 수 있다. 수학식 3에서 모든 모바일 사용자가 동일한 비디오 지속 시간을 갖는다면
Figure 112021129700174-pat00028
값이 큰 모바일 사용자에 대해 더 많은 청크를 미리 가져올 수 있음을 암시한다. 결과적으로, 프리페칭에 사용되는 리소스를 희생하여 비디오 정지(video freezing)의 발생을 완화할 수 있다.
Figure 112021129700174-pat00029
은 i번째 모바일 사용자가 본 비디오#m을 구성하는 총 청크 수를 나타낸다. 따라서, 수학식 5의 우변(right-hand term)은 i번째 모바일 사용자가 보고 있는 비디오#m에 대해 프리페치된 적이 없는 청크의 수를 나타낸다. 수학식 4에서
Figure 112021129700174-pat00030
는 시간 간격 T 동안 미디어 클라우드와 에지 클라우드 간의 예상 처리량(즉, 처리 속도)이며, 그 값은 종단 간 대기 시간과 대역폭을 고려하여 지속적으로 추정된다. 따라서, 수학식 4의 우변은 T 동안 병렬 TCP 스트림을 사용하여 미디어 클라우드에서 전송할 수 있는 데이터의 양을 나타낸다.here
Figure 112021129700174-pat00026
is the individual weight for the i-th mobile user, and the sum is 1.
Figure 112021129700174-pat00027
The value of may be predetermined based on the user's viewing behavior history. In Equation 3, if all mobile users have the same video duration
Figure 112021129700174-pat00028
This implies that more chunks can be fetched ahead of time for mobile users with higher values. As a result, the occurrence of video freezing can be mitigated by sacrificing resources used for prefetching.
Figure 112021129700174-pat00029
denotes the total number of chunks constituting the video #m viewed by the i-th mobile user. Accordingly, the right-hand term of Equation 5 represents the number of chunks that have not been prefetched for video #m viewed by the i-th mobile user. in Equation 4
Figure 112021129700174-pat00030
is the expected throughput (i.e., throughput) between the media cloud and the edge cloud during the time interval T, the value of which is continuously estimated considering the end-to-end latency and bandwidth. Therefore, the right side of Equation 4 represents the amount of data that can be transmitted in the media cloud using the parallel TCP stream during T.

E. 문제 해결 프로세스(problem solving process)E. The problem solving process

이 섹션에서는 예상 처리량(throughput)

Figure 112021129700174-pat00031
Figure 112021129700174-pat00032
에 대한 제어 변수 ni를 결정하는 방법을 자세히 설명한다.In this section, the estimated throughput
Figure 112021129700174-pat00031
and
Figure 112021129700174-pat00032
We describe in detail how to determine the control variable n i for .

가용 처리량(throughput) 예측 과정(predicting process of available throughput): 가까운 장래에

Figure 112021129700174-pat00033
의 변화를 알면 안정적인 영상 스트리밍 서비스를 제공할 수 있다는 장점이 있다. 실제 처리량(throughput)이 예측값
Figure 112021129700174-pat00034
미만으로 측정되면 이미 많은 요청이 미디어 클라우드로 전달되어 심각한 네트워크 혼잡이 발생할 수 있다. 반대로
Figure 112021129700174-pat00035
값이 작게 추정되면 에지 클라우드 측의 네트워크 리소스가 충분히 활용되지 않을 수 있다. 실제로
Figure 112021129700174-pat00036
는 확률 변수로 간주될 수 있다. 그러나 확률 밀도 함수(probability density function, PDF)가 알려져 있지 않기 때문에
Figure 112021129700174-pat00037
의 변화를 추정하기가 어렵다. 따라서, 본 명세서에서는 커널 밀도 추정기(kernel density estimator, KDE)(C. M. Bishop, "Pattern Recognition and Machine Learning," Springer. 2008.)를 채택한다. 여기서 Nobs 관측값의 총 수(예:
Figure 112021129700174-pat00038
)가 밀도 함수를 예측하는 데 사용될 수 있다. 가장 중요한 것은 네트워크 상태가 변하는 분포에 대해 가정하지 않는다는 것이다. 이 속성 때문에 KDE 기반 추정은 관찰된 데이터 세트로만 작업하는 매우 실용적인 방법이다. 실제로, KDE 기반 접근 방식은 네트워크 조건의 변화를 추정하기 위해 일부 연구에서 도입되었다. KDE는 다음과 같이 정의된다.Predicting process of available throughput: in the near future
Figure 112021129700174-pat00033
It has the advantage of being able to provide a stable video streaming service if you know the change of Actual throughput is the predicted value
Figure 112021129700174-pat00034
Measured below, many requests are already directed to the media cloud, which can lead to severe network congestion. on the other way
Figure 112021129700174-pat00035
If the value is estimated to be small, network resources on the edge cloud side may not be fully utilized. actually
Figure 112021129700174-pat00036
can be considered as a random variable. However, since the probability density function (PDF) is not known,
Figure 112021129700174-pat00037
It is difficult to estimate the change in Accordingly, in the present specification, a kernel density estimator (KDE) (CM Bishop, "Pattern Recognition and Machine Learning," Springer. 2008.) is employed. where the total number of No obs observations, e.g.
Figure 112021129700174-pat00038
) can be used to predict the density function. Most importantly, it does not make assumptions about distributions where the network state varies. Because of this property, KDE-based estimation is a very practical way to work only with observed data sets. Indeed, a KDE-based approach has been introduced in some studies to estimate changes in network conditions. KDE is defined as

Figure 112021129700174-pat00039
Figure 112021129700174-pat00039

여기서 h는 평활(smoothing) 매개변수이고 k(x)는 커널 함수이다. k(x)는 다음 속성을 사용하여 정의해야 한다.where h is the smoothing parameter and k(x) is the kernel function. k(x) must be defined using the following properties:

Figure 112021129700174-pat00040
Figure 112021129700174-pat00040

Figure 112021129700174-pat00041
Figure 112021129700174-pat00041

일반적으로 uniform, triangular, biweight, triweight, Epanechnikov, 및 normal function은 수학식 7과 수학식 8을 만족하는 것으로 잘 알려져 있다. 실험 중에 채택된 부드러운 커널 함수(smoother kernel function)라고도 하는 가우스 커널(Gaussian kernel)은 다음과 같다.In general, uniform, triangular, biweight, triweight, Epanechnikov, and normal functions are well known to satisfy Equations 7 and 8. The Gaussian kernel, also called the smoother kernel function, adopted during the experiment is as follows.

Figure 112021129700174-pat00042
Figure 112021129700174-pat00042

수학식 9는 대칭인 우함수(even function)이다. 수학식 6과 수학식 9를 결합하여 다음과 같은 식을 얻을 수 있다.Equation 9 is a symmetric even function. By combining Equation 6 and Equation 9, the following expression can be obtained.

Figure 112021129700174-pat00043
Figure 112021129700174-pat00043

여기서 h의 최적 값은 1.06σNobs -1/5으로 가우시안(Gaussian)에서 알려져 있다. 사용 가능한 처리량(throughput) 예측 프로세스는 알고리즘(algorithm) 1에 설명되어 있으며, 여기서 각 스트림의 실제 처리량(throughput)은 두 개의 연속 패킷의 도착 시간 간격과 두 번째 패킷의 크기를 사용하여 계산할 수 있다.Here, the optimal value of h is 1.06σN obs -1/5 , which is known from Gaussian. The available throughput prediction process is described in algorithm 1, where the actual throughput of each stream can be calculated using the arrival time interval of two consecutive packets and the size of the second packet.

Figure 112021129700174-pat00044
Figure 112021129700174-pat00044

청크 프리페칭 알고리즘(Chunk Prefetching Algorithm):

Figure 112021129700174-pat00045
에 대한 제어 변수 ni의 결정 프로세스를 소개한다. 수학식 2(즉, 소비되지 않고 폐기되는 프리페치된 데이터의 총량)는 프리페치된 청크의 수가 증가함에 따라 기하급수적으로 증가한다. 볼록 최적화 이론(S. Boyd and L. Vandenberghe, "Convex optimization," Cambridge, U.K.: Cambridge Univ. Press, 2004.)에서는 목적 함수가 단조 감소하지 않고 제약 조건 집합이 볼록할 때 최적의 솔루션을 비교적 쉽게 얻을 수 있다는 것이 잘 알려져 있다. 따라서 주어진 청크 프리페칭 문제는 greedy 접근법을 사용하여 해결되었다. 탐욕 기준(greedy criterion)은 소비되지 않고 폐기되는 프리페치된 데이터의 총량이 가장 적게 증가한 모바일 사용자에 대한 청크를 프리페치 할 수 있다. greedy 접근 방식을 사용하는 청크 프리페칭 알고리즘에 대한 자세한 내용은 알고리즘 2에 설명되어 있다.Chunk Prefetching Algorithm:
Figure 112021129700174-pat00045
We introduce the process of determining the control variable n i for . Equation 2 (ie, the total amount of prefetched data that is not consumed and discarded) increases exponentially as the number of prefetched chunks increases. In the theory of convex optimization (S. Boyd and L. Vandenberghe, "Convex optimization," Cambridge, UK: Cambridge Univ. Press, 2004.), it is relatively easy to find the optimal solution when the objective function does not decrease monotonically and the constraint set is convex. It is well known that it can be obtained. Therefore, the given chunk prefetching problem was solved using a greedy approach. The greedy criterion may prefetch chunks for mobile users that have the least increased total amount of prefetched data that is not consumed and discarded. Details of the chunk prefetching algorithm using the greedy approach are described in Algorithm 2.

Figure 112021129700174-pat00046
Figure 112021129700174-pat00046

HTTP 요청 패킷 스케줄링(scheduling HTTP request packet): 청크 트랜시버 모듈은 요청된 청크가 모든 TCP 스트림에 동시에 도착하도록 청크 프리페치를 위한 HTTP 요청 패킷을 각 TCP 소켓에 할당할 수 있다. 일반적으로 미디어 서버와 에지 서버 간의 모든 TCP 스트림은 경로의 사용 가능한 총 대역폭을 공유할 수 있다. 따라서 병렬 TCP의 모든 스트림은 장기적으로 보면 평균적으로 거의 유사한 처리량(throughput)을 가질 수 있다. 이러한 이유로 라운드 로빈(round robin, RR) 스케줄링을 채택할 수 있다. RR 스케줄링에서 미리 가져올 청크에 대한 HTTP 요청은 청크 크기의 내림차순으로 정렬될 수 있다. 그런 다음 프리페치 요청이 TCP 소켓에 순서대로 할당될 수 있다.Scheduling HTTP request packet: Chunk transceiver module can allocate HTTP request packet for chunk prefetch to each TCP socket so that the requested chunk arrives in all TCP streams at the same time. In general, all TCP streams between a media server and an edge server can share the total available bandwidth of the path. Therefore, all streams of parallel TCP can have almost similar throughput on average in the long term. For this reason, round robin (RR) scheduling may be adopted. In RR scheduling, HTTP requests for prefetched chunks can be sorted in descending order of chunk size. Then prefetch requests can be assigned to TCP sockets in order.

본 명세서에서는 적응형 스트리밍 서비스를 위한 블록체인 기반의 안정적인 QoE 가속기를 제안하였다. 제안된 QoE 가속기는 기존 스트리밍 서비스와 호환되도록 모바일 사용자와 미디어 클라우드 간의 네트워크 에지에서 투명하게 설계되었다. 사용자의 서비스 컨텍스트를 인식하기 위해 중간에 있는 패킷을 도청할 뿐만 아니라 병렬 TCP 스트림을 사용하여 네트워크 리소스를 효율적으로 사용한다. 또한, 커널 밀도 추정기를 기반으로 가용 네트워크 대역폭을 예측하고, 네트워크 중간에서 획득한 인텔리전스를 기반으로 사용자가 보고 있는 비디오 청크를 적절하게 프리페치할 수 있다. 또한 제안된 스트리밍 시스템은 블록체인 네트워크와 결합하여 모바일 사용자에게 높은 시스템 신뢰성을 제공할 수 있다. 블록체인 네트워크에서는 세션 중에 발생하는 다양한 이벤트가 자동으로 불변의 분산원장에 등록되고 투명하게 관리될 수 있도록 스트리밍 서비스를 위한 맞춤형 스마트 계약을 개발했다. 제안된 전체 시스템 아키텍처는 완벽하게 구현되었으며 802.11 및 5G 네트워크에서 기존 스트리밍 시스템과 성능을 비교했다. 실험 결과 블록체인 기반 QoE 가속기가 네트워크 에지에서 기존 스트리밍 서비스를 보다 안정적이고 신뢰적으로 만드는 것으로 확인되었다.In this specification, a blockchain-based stable QoE accelerator for adaptive streaming service is proposed. The proposed QoE accelerator is designed transparently at the network edge between mobile users and media cloud to be compatible with existing streaming services. It not only eavesdrops on packets in the middle to recognize the user's service context, but also uses parallel TCP streams to efficiently use network resources. In addition, it is possible to predict the available network bandwidth based on the kernel density estimator, and to appropriately prefetch the video chunks that the user is watching based on the intelligence obtained from the middle of the network. In addition, the proposed streaming system can be combined with a blockchain network to provide high system reliability to mobile users. In the blockchain network, a customized smart contract for streaming service has been developed so that various events occurring during a session can be automatically registered on an immutable distributed ledger and managed transparently. The proposed overall system architecture was fully implemented and the performance compared with the existing streaming systems in 802.11 and 5G networks. As a result of the experiment, it was confirmed that the blockchain-based QoE accelerator makes the existing streaming service more stable and reliable at the network edge.

도 3의 일례에 표시된 세부 단계 중 일부는 필수 단계가 아닐 수 있고, 생략될 수 있다. 도 3에 도시된 단계 외에 다른 단계가 추가될 수 있고, 상기 단계들의 순서는 달라질 수 있다. 상기 단계들 중 일부 단계가 독자적 기술적 의미를 가질 수 있다.Some of the detailed steps shown in the example of FIG. 3 may not be essential steps and may be omitted. In addition to the steps shown in FIG. 3 , other steps may be added, and the order of the steps may vary. Some of the above steps may have their own technical meaning.

본 명세서의 실시예에 따른 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.The operation according to the embodiment of the present specification can be implemented as a computer-readable program or code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data readable by a computer system is stored. In addition, the computer-readable recording medium may be distributed in a network-connected computer system to store and execute computer-readable programs or codes in a distributed manner.

실시예가 소프트웨어로 구현될 때, 상술한 기법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 메모리는 프로세서 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다.When the embodiment is implemented in software, the above-described technique may be implemented as a module (process, function, etc.) that performs the above-described function. A module may be stored in a memory and executed by a processor. The memory may be internal or external to the processor, and may be coupled to the processor by various well-known means.

또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.In addition, the computer-readable recording medium may include a hardware device specially configured to store and execute program instructions, such as ROM, RAM, and flash memory. The program instructions may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다. Although some aspects of the invention have been described in the context of an apparatus, it may also represent a description according to a corresponding method, wherein a block or apparatus corresponds to a method step or feature of a method step. Similarly, aspects described in the context of a method may also represent a corresponding block or item or a corresponding device feature. Some or all of the method steps may be performed by (or using) a hardware device such as, for example, a microprocessor, programmable computer or electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such an apparatus.

실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그래머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In embodiments, a programmable logic device (eg, a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In embodiments, the field programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware device.

상술한 다양한 실시예들은 그 기술적 아이디어 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 다양한 실시예들의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 다양한 실시예들의 등가적 범위 내에서의 모든 변경은 다양한 실시예들의 범위에 포함된다. 또한, 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함할 수 있다.The various embodiments described above may be embodied in other specific forms without departing from the technical idea and essential characteristics thereof. Accordingly, the above detailed description should not be construed as restrictive in all respects but as exemplary. The scope of the various embodiments should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the various embodiments are included in the scope of the various embodiments. In addition, claims that are not explicitly cited in the claims can be combined to form an embodiment or included as a new claim by amendment after filing.

Claims (7)

적어도 하나의 에지(edge) 클라우드(cloud) 서버에 의해 수행되는 블록체인(blockchain) 기반 에지 네트워크 서비스를 제공하는 방법에 있어서,
사용자 단말로부터 비디오 요청 메시지를 스니핑(sniffing)을 통해 획득하는 단계;
미디어(media) 클라우드 서버에게 상기 비디오 요청 메시지를 전달하는 단계;
상기 비디오 요청 메시지에 기초한 비디오 재생에 필요한 정보를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하는 단계;
제1 비디오 청크(chunk)에 대한 요청 메시지를 상기 사용자 단말로부터 상기 미디어 클라우드 서버에 전달하는 단계;
상기 제1 비디오 청크를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하는 단계;
상기 제1 비디오 청크를 기초로 상기 미디어 클라우드 서버에 요청한 가장 최근 청크의 후속 청크의 일부인 프리페치(prefetch) 청크를 프리페치할 청크로 결정하는 단계;
상기 제1 비디오 청크를 상기 미디어 클라우드 서버에게 요청하는 단계;
상기 제1 비디오 청크를 상기 미디어 클라우드 서버로부터 수신 및 저장하는 단계;
상기 사용자 단말로부터 후속 청크 프리페치를 위한 제2 비디오 청크에 대한 요청 메시지를 수신하는 단계;
상기 프리페치 청크가 상기 제2 비디오 청크를 포함함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제2 비디오 청크를 상기 사용자 단말에 전송하는 단계;
상기 사용자 단말로부터, 후속 청크 프리페치를 위한 제3 비디오 청크에 대한 요청 메시지를 수신하는 단계;
상기 프리페치 청크가 상기 제3 비디오 청크를 모두 포함하지 못함을 기초로, 상기 에지 클라우드 서버에 저장된 상기 제3 비디오 청크의 일부를 상기 사용자 단말에 전송하고, 상기 에지 클라우드 서버에 저장되지 않은 상기 제3 비디오 청크의 나머지 일부를 상기 미디어 클라우드 서버에 요청하는 단계; 및
상기 제3 비디오 청크의 나머지 일부를 상기 미디어 클라우드 서버로부터 상기 사용자 단말에 전달하는 단계를 포함하고,
상기 프리페치 청크는 미리 설정된 알고리즘에 의해 결정되고,
상기 프리페치 청크는 소비되지 않고 폐기되는 프리페치된 데이터의 총량, 상기 에지 클라우드 서버와 상기 미디어 클라우드 서버 간의 예상 처리 속도를 기초로 결정되고,
상기 소비되지 않고 폐기되는 프리페치된 데이터의 총량은 다음 수식을 기초로 결정되고,
Figure 112022500895735-pat00060
,
ci(ni)은 소비되지 않고 폐기되는 프리페치된 데이터의 총량이고, Ti,m은 i번째 모바일 사용자가 보고 있는 비디오#m의 청크 지속 시간이고, Bi,m은 i번째 모바일 사용자가 본 비디오#m의 비트 전송률이고, ni는 T 동안 i번째 모바일 사용자를 위해 에지 클라우드가 프리페치하는 청크의 수이고,
pi(ni)는 i번째 모바일 사용자에 대한 프리페치된 청크 중 사용되지 않은 데이터의 평균 양이고, pi(ni)는 다음 수식을 기초로 결정되고,
Figure 112022500895735-pat00061

δ 는 Pareto 모양(shape) 매개변수이고,
Figure 112022500895735-pat00063
은 상기 에지 클라우드 서버가 i번째 사용자 단말을 위해 상기 미디어 클라우드 서버에 요청한 비디오#m의 가장 최근 청크 번호이고,
상기 에지 클라우드 서버와 상기 미디어 클라우드 서버는 복수의 TCP(transmission control protocol) 연결이 설정된,
블록체인 기반 에지 네트워크 서비스 제공 방법.
A method of providing a blockchain-based edge network service performed by at least one edge cloud server, the method comprising:
obtaining a video request message from a user terminal through sniffing;
transmitting the video request message to a media cloud server;
transmitting information necessary for video reproduction based on the video request message from the media cloud server to the user terminal;
transmitting a request message for a first video chunk from the user terminal to the media cloud server;
transferring the first video chunk from the media cloud server to the user terminal;
determining a prefetch chunk that is a part of a subsequent chunk of the most recent chunk requested to the media cloud server as a prefetch chunk based on the first video chunk;
requesting the first video chunk from the media cloud server;
receiving and storing the first video chunk from the media cloud server;
receiving a request message for a second video chunk for a subsequent chunk prefetch from the user terminal;
transmitting the second video chunk stored in the edge cloud server to the user terminal on the basis that the prefetch chunk includes the second video chunk;
receiving, from the user terminal, a request message for a third video chunk for a subsequent chunk prefetch;
On the basis that the prefetch chunk does not include all the third video chunks, a part of the third video chunk stored in the edge cloud server is transmitted to the user terminal, and the third video chunk not stored in the edge cloud server is transmitted to the user terminal. 3 requesting the remaining part of the video chunk to the media cloud server; and
transmitting the remaining part of the third video chunk from the media cloud server to the user terminal,
The prefetch chunk is determined by a preset algorithm,
the prefetch chunk is determined based on a total amount of prefetched data that is not consumed and discarded, an expected processing speed between the edge cloud server and the media cloud server,
The total amount of prefetched data that is not consumed and discarded is determined based on the following equation,
Figure 112022500895735-pat00060
,
c i (n i ) is the total amount of prefetched data that is not consumed and discarded, T i,m is the chunk duration of video#m being watched by the i-th mobile user, B i,m is the i-th mobile user is the bitrate of video#m seen, n i is the number of chunks the edge cloud prefetches for the i-th mobile user during T,
p i (n i ) is the average amount of unused data among the prefetched chunks for the i-th mobile user, p i (n i ) is determined based on the following equation,
Figure 112022500895735-pat00061

δ is the Pareto shape parameter,
Figure 112022500895735-pat00063
is the most recent chunk number of video #m requested by the edge cloud server to the media cloud server for the i-th user terminal,
The edge cloud server and the media cloud server are configured with a plurality of transmission control protocol (TCP) connections,
A method of providing a blockchain-based edge network service.
삭제delete 삭제delete 삭제delete 삭제delete 청구항 1에 있어서,
상기 에지 클라우드 서버와 상기 미디어 클라우드 서버 간의 예상 처리 속도는, 확률 밀도 함수(probability density function, PDF) 및 커널 밀도 추정기(kernel density estimator, KDE)를 기초로 추정되고,
상기 커널 밀도 추정기는 다음 수식과 같이 정의되고,
Figure 112022012871928-pat00051

Figure 112022012871928-pat00052

Figure 112022012871928-pat00053

Figure 112022012871928-pat00054

h는 평활(smoothing) 매개변수이고, k(x)는 커널 함수이고, p(x)는 확률 밀도 함수이고, Nobs는 관측값의 총 수인,
블록체인 기반 에지 네트워크 서비스 제공 방법.
The method according to claim 1,
The expected processing speed between the edge cloud server and the media cloud server is estimated based on a probability density function (PDF) and a kernel density estimator (KDE),
The kernel density estimator is defined as follows,
Figure 112022012871928-pat00051

Figure 112022012871928-pat00052

Figure 112022012871928-pat00053

Figure 112022012871928-pat00054

h is the smoothing parameter, k(x) is the kernel function, p(x) is the probability density function, No obs is the total number of observations,
A method of providing a blockchain-based edge network service.
청구항 6에 있어서,
상기 h는 1.06σNobs -1/5인,
블록체인 기반 에지 네트워크 서비스 제공 방법.
7. The method of claim 6,
wherein h is 1.06σN obs -1/5 ,
A method of providing a blockchain-based edge network service.
KR1020210154045A 2021-11-10 2021-11-10 Blockchain based reliable quality of experience accelerator for adaptive video streaming service KR102390522B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210154045A KR102390522B1 (en) 2021-11-10 2021-11-10 Blockchain based reliable quality of experience accelerator for adaptive video streaming service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210154045A KR102390522B1 (en) 2021-11-10 2021-11-10 Blockchain based reliable quality of experience accelerator for adaptive video streaming service

Publications (1)

Publication Number Publication Date
KR102390522B1 true KR102390522B1 (en) 2022-04-26

Family

ID=81390062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210154045A KR102390522B1 (en) 2021-11-10 2021-11-10 Blockchain based reliable quality of experience accelerator for adaptive video streaming service

Country Status (1)

Country Link
KR (1) KR102390522B1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mehmet Fatih Tuysuz et al., QoE-Based Mobility-Aware Collaborative Video Streaming on the Edge of 5G, IEEE(2020.2.10.) *
Mehmet Fatih Tuysuz 등, QoE-Based Mobility-Aware Collaborative Video Streaming on the Edge of 5G, IEEE(2020.2.10.)*

Similar Documents

Publication Publication Date Title
US10944698B2 (en) Apparatus and method of managing resources for video services
Sani et al. Adaptive bitrate selection: A survey
CN104956631B (en) For performing the device and method of link-aware self adaptation stream transmission
US9826016B2 (en) Fair adaptive streaming
US9712408B2 (en) Bandwidth management in a content distribution network
US9838459B2 (en) Enhancing dash-like content streaming for content-centric networks
US20110314130A1 (en) Managing streaming bandwidth for multiple clients
US10887363B1 (en) Streaming decision in the cloud
KR102486847B1 (en) Link-aware streaming adaptation
US20170142450A1 (en) Media Distribution Network for Live Streaming
EP3391652B1 (en) Controlling retrieval in adaptive streaming
US20110082943A1 (en) P2p network system and data transmitting and receiving method thereof
US11463505B2 (en) Server-side prediction of media client steady state
Bouten et al. A multicast-enabled delivery framework for QoE assurance of over-the-top services in multimedia access networks
Viola et al. Predictive CDN selection for video delivery based on LSTM network performance forecasts and cost-effective trade-offs
Khan et al. Server-based and network-assisted solutions for adaptive video streaming
KR102390522B1 (en) Blockchain based reliable quality of experience accelerator for adaptive video streaming service
Dubin et al. A fair server adaptation algorithm for HTTP adaptive streaming using video complexity
Hayes et al. Adaptive bitrate video delivery using HTTP/2 over MPTCP architecture
CN112106335B (en) Method and system for streaming media data over a content distribution network
Hwang et al. Joint-family: Adaptive bitrate video-on-demand streaming over peer-to-peer networks with realistic abandonment patterns
KR102283903B1 (en) Method for media service based on moble edge cloud and apparatus supporting the same
van der Hooft et al. Clustering‐based quality selection heuristics for HTTP adaptive streaming over cache networks
Park et al. Control-theoretic Scalable Device-to-Device Offloading System for Video Streaming Services
Médard et al. Quality of experience for multimedia communications: Network coding strategies

Legal Events

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