KR20200054926A - Method for contents synchronization, device therefor - Google Patents
Method for contents synchronization, device therefor Download PDFInfo
- Publication number
- KR20200054926A KR20200054926A KR1020200055803A KR20200055803A KR20200054926A KR 20200054926 A KR20200054926 A KR 20200054926A KR 1020200055803 A KR1020200055803 A KR 1020200055803A KR 20200055803 A KR20200055803 A KR 20200055803A KR 20200054926 A KR20200054926 A KR 20200054926A
- Authority
- KR
- South Korea
- Prior art keywords
- content
- multicast
- cache device
- content server
- cache
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2183—Cache memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2543—Billing, e.g. for subscription services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6405—Multicasting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 컨텐츠 전송 네트워크(CDN: Content Delivery/Distribution Network)에서 콘텐츠 동기화를 수행하기 위한 방법에 관한 것으로서, 보다 상세하게 멀티 캐스트(multicast)를 이용하여 콘텐츠 서버와 캐시 장치 간에 콘텐츠 동기화를 수행하기 위한 방법, 이를 위한 장치에 관한 것이다.The present invention relates to a method for performing content synchronization in a content delivery network (CDN: Content Delivery / Distribution Network), and more specifically, for performing content synchronization between a content server and a cache device using multicast The method relates to a device for this.
컨텐츠 전송 네트워크(CDN)은 원거리에 있는 콘텐츠 제공자(CP: Contents Provider)의 서버(혹은 근원 서버(Source Server))에서 제공하는 콘텐츠를 사용자에 근접한 캐시 장치(혹은 CDN 서버)에 미리 저장하고, 사용자로부터 콘텐츠 요청이 발생하면 최적의 캐시 장치에서 해당 사용자에게 요청한 콘텐츠를 전송하는 네트워크를 의미한다. CDN은 콘텐츠 제공자(CP)의 서버로부터 사용자 측 노드(예를 들어, 사용자 단말)에 이르는 구간, 즉 미들마일(Middle Mile)을 경유하지 않고 사용자와 가장 가까운 캐시 장치로부터 콘텐츠를 전송하기 때문에 대용량 콘텐츠를 전송하는 경우나 사용자가 일시적으로 폭증하는 경우에도 빠르고 안정적인 전송을 가능하게 한다.A content delivery network (CDN) pre-stores content provided by a server (or a source server) of a remote content provider (CP), in a cache device (or CDN server) close to the user, and When a request for content occurs from, it means a network that transmits the requested content from the optimal cache device to the user. The CDN transmits content from a content provider (CP) server to a user-side node (for example, a user terminal), that is, a middle mile, without passing through the content from a cache device closest to the user. It enables fast and stable transmission even in the case of transmitting data or when the user temporarily increases.
다만, 기존의 CDN에서는 방송 등과 같은 서비스의 경우 콘텐츠의 개시(open)과 동시에 많은 사용자들이 일시적으로 콘텐츠를 요청하게 되면, 각각의 콘텐츠 요청에 대한 각각의 터널이 생성되어 컨텐츠 개시 초기에 일시적으로 백홀(backhaul) 구간에서의 트래픽이 폭증하고, 콘텐츠 서버에 부하가 발생하는 문제점이 있다.However, in the case of a service such as broadcasting, in the existing CDN, when many users temporarily request content at the same time as the content is opened, each tunnel for each content request is created to temporarily backhaul the content at the beginning. There is a problem in that traffic in the (backhaul) section explodes and a load is generated on the content server.
본 발명의 목적은 멀티캐스트를 이용하여 콘텐츠 개시 초기의 콘텐츠 동기화를 진행하기 위한 방법 및 이를 위한 장치를 제안한다.An object of the present invention is to propose a method and an apparatus therefor for performing content synchronization in the initial stage of content start using multicast.
또한, 본 발명의 목적은 콘텐츠 전송 오류가 발생하는 경우 오류가 발생된 콘텐츠를 재전송하기 위한 방법 및 이를 위한 장치를 제안한다. In addition, an object of the present invention is to propose a method and an apparatus therefor for retransmitting an error-prone content when a content transmission error occurs.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following description. Will be able to.
본 발명의 일 양상은, 컨텐츠 전송 네트워크(Content Delivery Network)에서 멀티캐스트(multicast)를 이용하여 캐시(cache) 장치와 콘텐츠 동기화(Synchronization)를 지원하는 콘텐츠 서버로서, 캐시 장치와 데이터 송수신을 위한 통신부, 하나 이상의 콘텐츠를 저장하기 위한 저장부 및 통신부 및 저장부를 제어하도록 구성된 제어부를 포함하고, 제어부는, 콘텐츠의 전송을 개시할 때, 복수의 캐시 장치에 멀티캐스트 시작 메시지를 전송하고, 복수의 캐시 장치 중에서 멀티캐스트 그룹 참여를 위한 참여 메시지를 전송한 하나 이상의 캐시 장치로 구성되는 멀티캐스트 그룹을 생성하고, 생성된 멀티캐스트 그룹에 속하는 하나 이상의 캐시 장치로 콘텐츠를 멀티캐스트 방식으로 전송한다.An aspect of the present invention is a content server that supports content synchronization (Synchronization) with a cache device using a multicast in a content delivery network (Content Delivery Network), a communication unit for data transmission and reception with a cache device , A storage unit for storing one or more contents, and a control unit configured to control the communication unit and the storage unit, wherein the control unit transmits a multicast start message to a plurality of cache devices when initiating transmission of the content, and the plurality of caches Among the devices, a multicast group consisting of one or more cache devices that have transmitted a message for joining a multicast group is generated, and content is transmitted in a multicast manner to one or more cache devices belonging to the generated multicast group.
본 발명의 다른 일 양상은, 컨텐츠 전송 네트워크(Content Delivery Network)에서 멀티캐스트(multicast)를 이용하여 콘텐츠 서버와 콘텐츠 동기화(Synchronization)를 지원하는 캐시(cache) 장치로서, 콘텐츠 서버와 데이터 송수신을 위한 통신부, 하나 이상의 콘텐츠를 저장하기 위한 저장부 및 통신부 및 저장부를 제어하도록 구성된 제어부를 포함하고, 제어부는, 콘텐츠 서버로부터 멀티캐스트 시작 메시지를 수신하고, 멀티캐스트 그룹 참여를 위한 참여 메시지를 캐시 장치와 연결된 스위칭 장치로 전송하여 멀티캐스트 그룹에 참여하고, 콘텐츠 서버로부터 콘텐츠를 멀티캐스트 방식으로 수신한다.Another aspect of the present invention is a cache device that supports content synchronization with a content server by using multicast in a content delivery network (Content Delivery Network), for transmitting and receiving data with a content server And a communication unit, a storage unit for storing one or more contents, and a control unit configured to control the communication unit and the storage unit, the control unit receiving a multicast start message from the content server, and receiving a multicast group participation message for joining the multicast group with the cache device It transmits to a connected switching device to participate in a multicast group, and receives content from a content server in a multicast manner.
본 발명의 또 다른 일 양상은, 컨텐츠 전송 네트워크(Content Delivery Network)에서 멀티캐스트(multicast)를 이용하여 콘텐츠 서버가 캐시(cache) 장치와 콘텐츠 동기화(Synchronization)를 수행하기 위한 방법으로서, 콘텐츠 서버가 콘텐츠의 전송을 개시할 때, 복수의 캐시 장치에 멀티캐스트 시작 메시지를 전송하는 단계, 콘텐츠 서버가 복수의 캐시 장치 중에서 멀티캐스트 그룹 참여를 위한 참여 메시지를 전송한 하나 이상의 캐시 장치로 구성되는 멀티캐스트 그룹을 생성하는 단계 및 콘텐츠 서버가 생성된 멀티캐스트 그룹에 속하는 하나 이상의 캐시 장치로 콘텐츠를 멀티캐스트 방식으로 전송하는 단계를 포함한다.Another aspect of the present invention, as a method for performing a content synchronization (Synchronization) with the content server using a multicast (multicast) in the content delivery network (Content Delivery Network), the content server, the content server When initiating the transmission of content, the step of transmitting a multicast start message to a plurality of cache devices, the multicast consisting of one or more cache devices that the content server transmitted a participation message for joining a multicast group among a plurality of cache devices Creating a group and transmitting the content in a multicast manner to one or more cache devices belonging to the created multicast group.
본 발명의 실시예에 따르면, 멀티캐스트를 이용하여 콘텐츠 개시 초기에 콘텐츠 서버와 캐시 장치 간의 콘텐츠 동기화를 진행함으로써, 백홀(backhaul) 구간에서의 트래픽과 콘텐츠 서버의 부하를 감소시킬 수 있다. According to an embodiment of the present invention, by performing content synchronization between a content server and a cache device at the beginning of content start using multicast, traffic in a backhaul section and a load of the content server can be reduced.
또한, 본 발명의 실시예에 따르면, 콘텐츠 전송의 오류가 발생하면 별도의 채널을 생성하여 오류가 발생된 콘텐츠의 일부분만을 재전송함으로써 콘텐츠 전송에 대한 신뢰도를 향상시킬 수 있다. In addition, according to an embodiment of the present invention, when an error in content transmission occurs, a separate channel is generated to retransmit only a part of the error-generated content, thereby improving reliability of content transmission.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the following description. .
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른 콘텐츠 전송 네트워크의 개략적인 구조를 나타내는 도면이다.
도 2는 콘텐츠 전송 네트워크에서 기존의 캐시 동기화 방식과 본 발명의 일 실시예에 따른 캐시 동기화 방식을 비교하여 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 멀티캐스트를 이용한 콘텐츠 동기화 방법을 예시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 멀티캐스트를 이용한 콘텐츠 동기화 방법을 예시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 콘텐츠 서버의 구성을 예시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 캐시 장치의 구성을 예시하는 도면이다. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as part of the detailed description to aid understanding of the present invention, provide embodiments of the present invention, and describe the technical features of the present invention together with the detailed description.
1 is a diagram showing a schematic structure of a content delivery network according to an embodiment of the present invention.
2 is a diagram for comparing and explaining an existing cache synchronization method and a cache synchronization method according to an embodiment of the present invention in a content delivery network.
3 is a diagram illustrating a content synchronization method using multicast according to an embodiment of the present invention.
4 is a diagram illustrating a content synchronization method using multicast according to an embodiment of the present invention.
5 is a diagram illustrating a configuration of a content server according to an embodiment of the present invention.
6 is a diagram illustrating a configuration of a cache device according to an embodiment of the present invention.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION The following detailed description, together with the accompanying drawings, is intended to describe exemplary embodiments of the present invention, and is not intended to represent the only embodiments in which the present invention may be practiced. The following detailed description includes specific details to provide a thorough understanding of the present invention. However, one skilled in the art knows that the present invention may be practiced without these specific details.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.In some cases, in order to avoid obscuring the concept of the present invention, well-known structures and devices may be omitted, or block diagrams centered on the core functions of each structure and device may be illustrated.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Throughout the specification, when a part "comprising or including" a certain component, this means that other components may be further included instead of excluding other components, unless otherwise specified. 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 may be implemented by hardware or software or a combination of hardware and software. have. In addition, "a (a or an)", "one (one)," "the (the)" and similar related terms in the context of describing the present invention (especially in the context of the following claims) is different herein. It may be used in a sense including both singular and plural unless indicated or clearly contradicted by context.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.Certain terms used in the following description are provided to help understanding of the present invention, and the use of these specific terms may be changed to other forms without departing from the technical spirit of the present invention.
본 명세서에서 '단말(Terminal)'은 UE(User Equipment), MS(Mobile Station), MSS(Mobile Subscriber Station), SS(Subscriber Station), AMS(Advanced Mobile Station), WT(Wireless terminal), MTC(Machine-Type Communication) 장치, M2M(Machine-to-Machine) 장치, D2D 장치(Device-to-Device), 스테이션(STA: Station) 등의 용어로 대체될 수 있다. In this specification, 'Terminal' refers to User Equipment (UE), Mobile Station (MS), Mobile Subscriber Station (MSS), Subscriber Station (SS), Advanced Mobile Station (AMS), Wireless terminal (WT), MTC It may be replaced with terms such as a machine-type communication (M2M) device, a machine-to-machine (M2M) device, a device-to-device (D2D) device, or a station (STA).
이하, 본 발명에서는 멀티캐스트(multicast)를 이용한 콘텐츠 전송 네트워크(CDN: Content Delivery/Distribution Network) 콘텐츠 동기화(Synchronization)(혹은 캐시(cache) 동기화) 방안을 제안한다. Hereinafter, the present invention proposes a content delivery / distribution network (CDN) content synchronization (or cache synchronization) scheme using multicast.
도 1은 본 발명의 일 실시예에 따른 콘텐츠 전송 네트워크의 개략적인 구조를 나타내는 도면이다.1 is a diagram showing a schematic structure of a content delivery network according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 콘텐츠 전송 네트워크는 콘텐츠 서버(10), 스위칭 장치(20) 및 캐시 장치(30)로 구성될 수 있다. 콘텐츠 서버(10), 스위칭 장치(20) 및 캐시 장치(30)는 네트워크를 통해 상호 간에 연결될 수 있으며, 또한 네트워크를 구성하는 노드의 일부분으로 구성될 수도 있다. 여기서, 네트워크는 콘텐츠 서버(10), 스위칭 장치(20) 및 캐시 장치(30)들이 데이터를 송수신할 수 있는 통신 매체로서, 현재 상용화되어 있거나 추후 상용화 가능성이 있는 모든 종류의 통신망이 적용될 수 있다. 예를 들어, 이동통신망, 와이파이(Wi-Fi), 와이브로(Wibro) 등과 같은 무선 통신망 및 인터넷과 같은 유선망 혹은 이들의 통합망을 포함할 수 있다.Referring to FIG. 1, a content delivery network according to an embodiment of the present invention may include a
콘텐츠 서버(10)는 컨텐츠 제공자(CP: Contents Provider)가 운영하는 서버를 의미하며, 컨텐츠 제공자가 사용자에게 제공하기 위한 컨텐츠를 저장하고, 사용자의 요청에 따라 사용자 장치에게 다양한 컨텐츠(예를 들어, 사진, 비디오, 오디오, 어플리케이션 등)를 제공한다. 이러한 콘텐츠 서버(10)의 일례로, 웹 서버(Web Server) 혹은 웹 어플리케이션 서버(WAS, Web Application Server) 등이 해당될 수 있다. The
하나 이상의 스위칭 장치(20)는 콘텐츠 서버(10)와 캐시 장치(30) 사이에 위치하여 콘텐츠 서버(10)와 캐시 장치(30) 간에 송수신되는 패킷은 스위칭 장치(20)를 경유하여 송수신된다. 하나 이상의 스위칭 장치(20)는 콘텐츠 서버(10)로부터 캐시 장치(30)에 이르기 까지 계층적(hierarchical) 구조를 가질 수 있다. 즉, 콘텐츠 서버(10)와 연결되는 가장 상위 계층에 위치하는 스위칭 장치(20)는 다음 계층의 하나 이상의 스위칭 장치(20)와 연결되며, 다음 계층의 스위칭 장치(20)는 그 다음 계층의 스위칭 장치(20)에 연결되며, 결국 가장 하위 계층에 위치하는 스위칭 장치(20)는 캐시 장치(30)와 연결된다. One or more switching
스위칭 장치(20)는 콘텐츠 서버(10) 혹은 상위 계층의 스위칭 장치(20)로부터 패킷이 입력되면, 해당 패킷이 어떤 캐시 장치(30)로 전송되어야 할 것인지를 확인한다. 즉, 패킷에 포함된 정보를 통해 지정된 캐시 장치(30) 혹은 해당 캐시 장치(30)로 연결되는 다음 계층의 스위칭 장치(20)로 패킷을 전달한다. 이러한 스위칭 장치(20)의 일례로, 네트워크 스위치(Switch) 혹은 라우터(Router)가 해당될 수 있다. When a packet is input from the
캐시 장치(30)는 컨텐츠 서버(10)의 컨텐츠의 사본의 일부 또는 전부를 저장하고, 사용자 단말(40)의 요청이 있는 경우, 저장된 컨텐츠를 컨텐츠 서버(10) 대신 사용자 단말(40)에 제공한다. 또한, 캐시 장치(30)는 컨텐츠 서버(40)로부터 컨텐츠를 미리 수신하여 저장하거나(즉, 콘텐츠 동기화), 컨텐츠 서버(10)가 사용자 단말(40)로 전송하는 컨텐츠를 중간에서 수신하여, 복사한 뒤 저장할 수 있다. 또한, 캐시 장치(30)는 사용자 단말(40)에게 콘텐츠를 제공하기 위하여 사용자 단말(40)로부터 전송되는 컨텐츠 요청을 중간에서 수신할 수 있다.The
도 2는 콘텐츠 전송 네트워크에서 기존의 캐시 동기화 방식과 본 발명의 일 실시예에 따른 캐시 동기화 방식을 비교하여 설명하기 위한 도면이다.2 is a diagram for comparing and explaining an existing cache synchronization method and a cache synchronization method according to an embodiment of the present invention in a content delivery network.
도 2의 (a)는 기존의 캐시 동1기화 방식을 예시한다. 콘텐츠 동기화는 컨텐츠 서버에서 콘텐츠 변경(예를 들어, 컨텐츠 제공자로부터 콘텐츠 업로드 등) 시 사용자들이 동시에 동일한 내용의 콘텐츠를 전송 받을 수 있도록 분산된 캐시 장치(30)에 변경된 콘텐츠를 즉각적으로 반영하는 것을 의미한다. 이러한 콘텐츠 동기화 방식의 일례로 도 2의 (a)와 같이 캐시 장치(30)가 사용자가 요청한 콘텐츠에 대하여 콘텐츠 서버(10)로 요청하고, 이에 대한 응답으로 콘텐츠 서버(10)로부터 콘텐츠를 수신함으로써 콘텐츠 서버(10)와 캐시 장치(30) 간에 콘텐츠 동기화를 수행할 수 있다. 이처럼 콘텐츠 동기화가 수행되면, 캐시 장치(30)는 사용자가 요청한 콘텐츠에 대하여 캐시 장치(30)에서 사용자에게 직접 콘텐츠를 제공할 수 있어 콘텐츠 서버(10)의 트래픽을 절감할 수 있다. 2 (a) illustrates an existing cache synchronization method. Content synchronization means that when the content is changed in the content server (for example, uploading content from a content provider, etc.), the changed content is immediately reflected in the
다만, 콘텐츠 서버(10)는 각 캐시 장치(30) 별로 세션(session) 혹은 터널(tunnel)을 생성하여 각 캐시 장치(30)에 요청된 콘텐츠를 전송하게 되므로, 콘텐츠가 사용자에게 제공되기 시작(즉, 콘텐츠의 오픈(open))됨과 동시에 사용자들의 요청이 일시적으로 폭증하게 되면, 초기에 콘텐츠 서버(10)에 부하가 발생되는 문제점이 있다. 다시 말해, 콘텐츠 서버(10)는 일시적으로 다수의 캐시 장치(30)로부터 콘텐츠의 요청을 수신함으로써, 다수의 캐시 장치(30)에게 일시적으로 콘텐츠를 전송을 처리해야 하므로 부하가 발생된다. However, since the
도 2의 (b)는 본 발명의 일 실시예에 따른 캐시 동기화 방식을 예시한다. 도 2의 (b)를 참조하면, 콘텐츠 서버(10)에서 캐시 장치(30)로 멀티캐스트 시작 명령 혹은 메시지를 전송하면, 각 캐시 장치(30)들은 멀티캐스트에 참여(join)하여 콘텐츠를 동기화하게 된다. Figure 2 (b) illustrates a cache synchronization scheme according to an embodiment of the present invention. Referring to (b) of FIG. 2, when the multicast start command or message is transmitted from the
구체적으로, 콘텐츠가 사용자에게 제공되기 시작되면, 콘텐츠 서버(10)는 캐시 장치(30)로 멀티캐스트 시작 메시지를 전송하여 캐시 장치(30)에게 콘텐츠 동기화의 시작을 알린다. 그리고, 콘텐츠 서버(10)로부터 멀티캐시트 시작 메시지를 수신한 캐시 장치(30)는 해당 캐시 장치(30)가 연결된 스위칭 장치(20)에 멀티캐스트 참여를 수행함으로써, 멀티캐스트 그룹이 형성된다. 계층적인 구조로 구성되는 하나 이상의 스위칭 장치(20) 중에서 가장 하위 계층에 위치하는 스위칭 장치(20)는 하나 이상의 캐시 장치(30)로 구성되는 멀티캐스트 그룹을 생성한다. 반면, 자신과 연결된 캐시 장치(30) 중에서 멀티캐스트 참여하는 캐시 장치(30)가 하나도 없는 경우, 해당 스위칭 장치(20)는 멀티캐스트 그룹을 생성하지 않을 수 있다. 그리고, 콘텐츠 서버(10)는 컨텐츠를 연결된 스위칭 장치(20)에 한 번 전송하고, 이를 수신한 스위칭 장치(20)는 자신이 생성한 멀티캐스트 그룹에 속하는 다음 계층의 각 스위칭 장치(20)로 콘텐츠를 전송하며, 이를 수신한 스위칭 장치(20) 또한 자신이 생성한 멀티캐스트 그룹에 속하는 다음 계층의 각 스위칭 장치(20)로 콘텐츠를 전송하게 된다. 콘텐츠 서버(10)와 캐시 장치(30)의 사이에 위치하는 스위칭 장치(20)는 다음에 전송해야 하는 수신단(예를 들어, 다음 계층에 위치하는 스위칭 장치 혹은 캐시 장치)의 수만큼 수신한 콘텐츠를 복제하여 전송한다. 즉, 콘텐츠 장치와 스위칭 장치 간, 스위칭 장치(20)와 스위칭 장치(20) 간의 각 링크 별로 콘텐츠는 1회 전송된다. 이러한 방식으로 순차적으로 콘텐츠가 전송됨으로써 캐시 장치(30)에 콘텐츠가 도달된다. 이와 같이, 콘텐츠 장치는 콘텐츠를 요청하는 캐시 장치(30)의 수만큼 콘텐츠를 다수 전송하는 것이 아니라 한 번의 콘텐츠를 멀티캐스트 방식으로 전송함으로써 해당 콘텐츠를 동시에 다수의 캐시 장치(30)로 전송할 수 있다. 이처럼, 멀티캐스트를 이용한 콘텐츠 동기화를 수행함으로써, 초기 콘텐츠 동기화 시 콘텐츠 서버(10)에 발생하는 부하를 줄일 수 있으며, 백홀(backhaul) 구간의 트래픽을 절감할 수 있다. Specifically, when the content starts to be provided to the user, the
도 3은 본 발명의 일 실시예에 따른 멀티캐스트를 이용한 콘텐츠 동기화 방법을 예시하는 도면이다.3 is a diagram illustrating a content synchronization method using multicast according to an embodiment of the present invention.
도 3을 참조하면, 콘텐츠 서버(10)는 콘텐츠 제공자로부터 신규 콘텐츠가 업로드 되었는지 여부를 판별한다(S301).Referring to FIG. 3, the
한편, 캐시 장치(30)는 멀티캐스트 소켓을 생성하여 대기한다(S303). Meanwhile, the
S301 단계에서 신규 콘텐츠가 업로드되지 않은 경우, S301 단계 이전으로 분기하여 S301 단계를 수행한다. 즉, 콘텐츠 서버(10)는 신규 콘텐츠가 업로드 되었는지 여부를 판별한다.If the new content has not been uploaded in step S301, branching is performed before step S301 to perform step S301. That is, the
반면, S301 단계에서 신규 콘텐츠가 업로드된 경우, 콘텐츠 서버(10)는 멀티캐스트 방식으로 업로드된 신규 콘텐츠의 전송이 시작됨을 캐시 장치(30)에 알리기 위하여 멀티캐스트 시작 메시지를 캐시 장치(30)에 전송한다(S305). 즉, 캐시 장치(30)는 멀티캐스트 소켓을 생성하여 대기하는 중에 콘텐츠 서버(10)로부터 멀티캐스트 시작 메시지를 수신하게 된다. 이때, 멀티캐스트 시작 메시지에는 콘텐츠 서버(10)가 전송하게 되는 콘텐츠를 식별하기 위한 정보가 포함될 수 있다.On the other hand, when the new content is uploaded in step S301, the
콘텐츠 서버(10)로부터 멀티캐스트 시작 메시지를 수신한 캐시 장치(30)는 멀티캐스트로 전송되는 콘텐츠를 수신하기 위하여 자신과 연결된 스위칭 장치(20)의 멀티캐스트 그룹에 참여(join)한다(S307). 즉, 캐시 장치(30)는 S303 단계에서 생성한 멀티캐스트 소켓을 연결된 스위칭 장치(20)의 멀티캐스트 그룹에 참여시킨다. The
이때, 캐시 장치(30)는 멀티캐스트 시작 메시지에 포함된 콘텐츠 식별 정보를 확인하고, 해당 콘텐츠의 수신을 원하지 않는 경우에는 멀티캐스트 참여를 수행하지 않을 수 있다. 즉, 해당 콘텐츠의 수신을 원하는 캐시 장치(30)만이 멀티캐스트 참여를 수행할 수 있다.At this time, the
멀티캐스트 참여는 멀티캐스트 그룹을 생성하기 위하여 캐시 장치(30)가 멀티캐스트 데이터(즉, 콘텐츠)의 수신에 참여하는 것을 해당 캐시 장치(30)가 자신에게 연결된 스위칭 장치(20)로 참여 메시지를 전송하는 것을 의미한다. 멀티캐스트 참여를 수행하기 위하여 스위칭 장치(20)와 캐시 장치(30)는 인터넷 그룹 관리 프로토콜(IGMP: Internet Group Management Protocol) 혹은 멀티캐스트 청취 발견(MLD: Multicast Listener Discovery) 프로토콜을 이용할 수 있다. 예를 들어, 스위칭 장치(20)는 주기적으로 캐시 장치(30)에 멤버쉽 쿼리(Membership Query) 메시지를 보내고, 멀티캐스트 데이터를 수신하기 원하는 캐시 장치(30)는 이에 대한 응답으로 멤버쉽 보고(Membership Report) 메시지(즉, 참여 메시지)로 응답함으로써 멀티캐스트 참여를 수행할 수 있다.In order to create a multicast group, the
콘텐츠 서버(10)는 콘텐츠를 전송하기 위한 멀티 캐스트 그룹을 생성한다(S309). 앞서 S307 단계에서 하나 이상의 캐시 장치(30)로 구성되는 멀티캐스트 그룹을 생성한 스위칭 장치(20)는 다시 참여 메시지를 상위 계층의 스위칭 장치(20)로 전송하여 상위 계층의 스위칭 장치(20)의 멀티캐스트 그룹에 참여하고, 상위 계층 스위칭 장치(20)를 다음 상위 계층 스위칭 장치(20)에 참여 메시지를 전송함으로써 다음 상위 계층의 스위칭 장치(20)의 멀티캐스트 그룹에 참여하여 가장 상위 계층은 콘텐츠 서버(10)로 구성되고, 가장 하위 계층은 캐시 장치(30)로 구성되는 멀티캐스트 분배 트리를 구성한다. 즉, 콘텐츠 서버(10)는 자신과 연결되어 있는 스위칭 장치(20)로부터 참여 메시지를 수신함으로써 멀티캐스트 그룹을 생성하게 된다. The
멀티캐스트 그룹을 생성한 콘텐츠 서버(10)는 멀티캐스트 방식으로 콘텐츠를 캐시 장치(30)에 전송한다(S311). 이때, 콘텐츠는 미리 정해진 데이터 블록 단위로 전송될 수 있다. 예를 들어, 8Kb, 16Kb 등과 같이 고정된 크기의 데이터 블록 단위로 전송되거나 가변적 크기의 데이터 블록 단위로 콘텐츠가 전송될 수도 있다. The
멀티캐스트 분배 트리에 속한 스위칭 장치(20)는 자신에게 속한 그룹 멤버(즉, 자신과 연결되어 있는 하위 계층의 스위칭 장치 혹은 캐시 장치)를 판별하여 멀티캐스트 데이터를 전송하게 된다. 즉, 콘텐츠 서버(10)는 자신과 연결된 스위칭 장치(20)에 콘텐츠를 전송하고, 콘텐츠를 수신한 스위칭 장치(20)는 자신이 생성한 멀티캐스트 그룹에 속하는 스위칭 장치(20)에 콘텐츠를 전송함으로써 순차적으로 콘텐츠가 캐시 장치(30)에 전송된다.The switching
이와 같이 콘텐츠를 멀티캐스트 방식으로 캐시 장치(30)에 전송함으로써 초기 콘텐츠 동기화 시 콘텐츠 서버(10)에 발생하는 부하를 줄일 수 있으며, 백홀(backhaul) 구간의 트래픽을 절감할 수 있다.As described above, by transmitting the content to the
다만, 멀티캐스트 전송 방식은 접속 지향형(connection-oriented) 전송 방식이 아니므로 콘텐츠 전송의 신뢰성이 낮아질 수도 있다. 따라서, 캐시 장치(30)는 콘텐츠 서버(10)로부터 수신한 콘텐츠가 완전한지 혹은 에러가 있는지를 판별하고, 오류가 있는 경우 오류가 있는 부분만으로 콘텐츠 서버(10)로부터 재수신하여 완전한 콘텐츠를 저장할 수 있다. 이에 대하여 아래 도 4를 참조하여 상세히 설명한다. However, since the multicast transmission method is not a connection-oriented transmission method, reliability of content transmission may be lowered. Accordingly, the
도 4는 본 발명의 일 실시예에 따른 멀티캐스트를 이용한 콘텐츠 동기화 방법을 예시하는 도면이다. 4 is a diagram illustrating a content synchronization method using multicast according to an embodiment of the present invention.
도 4를 참조하면, 콘텐츠 서버(10)는 콘텐츠 제공자로부터 신규 콘텐츠가 업로드 되었는지 여부를 판별한다(S401).Referring to FIG. 4, the
한편, 캐시 장치(30)는 멀티캐스트 소켓을 생성하여 대기한다(S403).Meanwhile, the
S401 단계에서 신규 콘텐츠가 업로드되지 않은 경우, S401 단계 이전으로 분기하여 S401 단계를 수행한다. 즉, 콘텐츠 서버(10)는 신규 콘텐츠가 업로드 되었는지 여부를 판별한다.If the new content has not been uploaded in step S401, branching is performed before step S401 to perform step S401. That is, the
반면, S401 단계에서 신규 콘텐츠가 업로드된 경우, 콘텐츠 서버(10)는 멀티캐스트 방식으로 업로드된 신규 콘텐츠의 전송이 시작됨을 캐시 장치(30)에 알리기 위하여 멀티캐스트 시작 메시지를 캐시 장치(30)에 전송한다(S405). 즉, 캐시 장치(30)는 멀티캐스트 소켓을 생성하여 대기하는 중에 콘텐츠 서버(10)로부터 멀티캐스트 시작 메시지를 수신하게 된다. 이때, 멀티캐스트 시작 메시지에는 콘텐츠 서버(10)가 전송하게 되는 콘텐츠를 식별하기 위한 정보가 포함될 수 있다.On the other hand, when new content is uploaded in step S401, the
콘텐츠 서버(10)로부터 멀티캐스트 시작 메시지를 수신한 캐시 장치(30)는 멀티캐스트로 전송되는 콘텐츠를 수신하기 위하여 자신과 연결된 스위칭 장치(20)의 멀티캐스트 그룹에 참여(join)한다(S407). 즉, 캐시 장치(30)는 S403 단계에서 생성한 멀티캐스트 소켓을 연결된 스위칭 장치(20)의 멀티캐스트 그룹에 참여시킨다. The
이때, 캐시 장치(30)는 멀티캐스트 시작 메시지에 포함된 콘텐츠 식별 정보를 확인하고, 해당 콘텐츠의 수신을 원하지 않는 경우에는 멀티캐스트 참여를 수행하지 않을 수 있다. 즉, 해당 콘텐츠의 수신을 원하는 캐시 장치(30)만이 멀티캐스트 참여를 수행할 수 있다.At this time, the
멀티캐스트 참여는 멀티캐스트 그룹을 생성하기 위하여 캐시 장치(30)가 멀티캐스트 데이터(즉, 콘텐츠)의 수신에 참여하는 것을 해당 캐시 장치(30)가 자신에게 연결된 스위칭 장치(20)로 참여 메시지를 전송하는 것을 의미한다. 멀티캐스트 참여를 수행하기 위하여 스위칭 장치(20)와 캐시 장치(30)는 인터넷 그룹 관리 프로토콜(IGMP) 혹은 멀티캐스트 청취 발견(MLD) 프로토콜을 이용할 수 있다. 예를 들어, 스위칭 장치(20)는 주기적으로 캐시 장치(30)에 멤버쉽 쿼리(Membership Query) 메시지를 보내고, 멀티캐스트 데이터를 수신하기 원하는 캐시 장치(30)는 이에 대한 응답으로 멤버쉽 보고(Membership Report) 메시지(즉, 참여 메시지)로 응답함으로써 멀티캐스트 참여를 수행할 수 있다.In order to create a multicast group, the
콘텐츠 서버(10)는 콘텐츠를 전송하기 위한 멀티 캐스트 그룹을 생성한다(S409). 앞서 S407 단계에서 하나 이상의 캐시 장치(30)로 구성되는 멀티캐스트 그룹을 생성한 스위칭 장치(20)는 다시 참여 메시지를 상위 계층의 스위칭 장치(20)로 전송하여 상위 계층의 스위칭 장치(20)의 멀티캐스트 그룹에 참여하고, 상위 계층 스위칭 장치(20)를 다음 상위 계층 스위칭 장치(20)에 참여 메시지를 전송함으로써 다음 상위 계층의 스위칭 장치(20)의 멀티캐스트 그룹에 참여하여 가장 상위 계층은 콘텐츠 서버(10)로 구성되고, 가장 하위 계층은 캐시 장치(30)로 구성되는 멀티캐스트 분배 트리를 구성한다. 즉, 콘텐츠 서버(10)는 자신과 연결되어 있는 스위칭 장치(20)로부터 참여 메시지를 수신함으로써 멀티캐스트 그룹을 생성하게 된다. The
멀티캐스트 그룹을 생성한 콘텐츠 서버(10)는 멀티캐스트 방식으로 콘텐츠를 캐시 장치(30)에 전송한다(S411). 이때, 콘텐츠는 미리 정해진 데이터 블록 단위로 전송될 수 있다. 예를 들어, 8Kb, 16Kb 등과 같이 고정된 크기의 데이터 블록 단위로 전송되거나 가변적 크기의 데이터 블록 단위로 콘텐츠가 전송될 수도 있다.The
멀티캐스트 분배 트리에 속한 스위칭 장치(20)는 자신에게 속한 그룹 멤버(즉, 자신과 연결되어 있는 하위 계층의 스위칭 장치 혹은 캐시 장치)를 판별하여 멀티캐스트 데이터를 전송하게 된다. 즉, 콘텐츠 서버(10)는 자신과 연결된 스위칭 장치(20)에 콘텐츠를 전송하고, 콘텐츠를 수신한 스위칭 장치(20)는 자신이 생성한 멀티캐스트 그룹에 속하는 스위칭 장치(20)에 콘텐츠를 전송함으로써 순차적으로 콘텐츠가 캐시 장치(30)에 전송된다.The switching
캐시 장치(30)는 수신한 콘텐츠가 전송 과정에서 발생되는 오류가 있는지 여부를 판별한다(S413). 이때, 캐시 장치(30)는 데이터 블록 단위로 콘텐츠를 수신하면서 데이터 블록 단위로 데이터의 오류 여부를 판별할 수 있다. The
S413 단계에서 수신한 콘텐츠에 오류가 없다고 판단한 경우, S411 단계 이전으로 분기하여 계속하여 다음 콘텐츠를 수신하게 된다. 즉, 캐시 장치(30)는 오류가 없다고 판단된 블록의 다음 블록을 수신할 수 있다.If it is determined in step S413 that there is no error in the received content, the process proceeds to branch before step S411 to continue to receive the next content. That is, the
반면, S413 단계에서 수신한 콘텐츠에 오류가 있다고 판단한 경우, 캐시 장치(30)는 콘텐츠 서버(10)로 콘텐츠 재전송 요청 메시지를 전송한다(S415). 이때, 캐시 장치(30)는 콘텐츠 재전송 요청 메시지에 오류가 발생된 데이터 블록을 특정하기 위한 정보를 포함시켜 해당 데이터 블록만을 요청할 수 있다. 즉, 캐시 장치(30)는 오류가 발생된 데이터 블록을 특정하기 위하여 콘텐츠 재전송 요청 메시지를 통해 해당 데이터 블록에 대한 해쉬 값을 콘텐츠 서버(10)에 전송할 수 있다. 캐시 장치(30)는 오류가 발생된 데이터 블록에 대한 해쉬 값을 MD5(Message-Digest algorithm 5), SHA-1(Secure Hash Algorithm) 등과 같은 해쉬 함수를 통해 산출할 수 있다. On the other hand, if it is determined that there is an error in the content received in step S413, the
콘텐츠 재전송 요청 메시지를 수신한 콘텐츠 서버(10)는 콘텐츠 재전송을 요청하는 캐시 장치(30)로 해당 콘텐츠를 재전송한다(S417). 여기서, 콘텐츠 서버(10)는 콘텐츠 재전송 요청 메시지에 포함된 소스 주소(source address) 즉, 콘텐츠 재전송을 요청한 캐시 장치(30)의 주소를 확인하고, 해당 캐시 장치(30)로 콘텐츠 재전송은 유니캐스트(Unicast) 방식으로 전송할 수 있다. Upon receiving the content retransmission request message, the
콘텐츠 서버(10)는 재전송 요청 메시지에 포함된 오류가 발생된 데이터 블록을 특정하기 위한 정보(예를 들어, 오류가 발생된 데이터 블록의 해쉬값)를 확인하고, 콘텐츠에서 해당 데이터 블록(또는 해쉬값)에 대한 콘텐츠를 전송한다(S417). 여기서, 콘텐츠 서버(10)는 콘텐츠를 미리 정해진 크기의 청크(chunk) 단위로 분할하여 저장하고, 재전송 요청 시 요청된 데이터 블록이 속한 청크(chunk) 단위로 콘텐츠를 전송할 수 있다. The
재전송된 콘텐츠를 수신한 캐시 장치(30)는 재전송된 컨텐츠와 기 수신된 컨텐츠를 결합하여 전체 컨텐츠를 완성한다(S419). 상술한 바와 같이, 콘텐츠 서버(10)는 콘텐츠를 미리 정해진 크기의 청크(chunk) 단위로 분할하여 저장할 때, 콘텐츠 서버(10)는 청크 단위 별로 시퀀스 번호(Sequence Number)를 부여함으로써, 캐시 장치(30)는 전체 청크(chunk) 단위를 모두 수신한 후 시퀀스 번호에 따라 청크 단위를 결합하여 전체 콘텐츠를 완성할 수 있다. 또한, 재전송을 요청한 데이터 블록(혹은 해쉬값)에 대한 청크 단위를 수신하면 기 수신된 콘텐츠와 결합하여 전체 콘텐츠를 완성할 수 있다.The
도 5는 본 발명의 일 실시예에 따른 콘텐츠 서버의 구성을 예시하는 도면이다. 5 is a diagram illustrating a configuration of a content server according to an embodiment of the present invention.
도 5에서 도시된 콘텐츠 서버(10)의 구성은, 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되어 구현될 수도 있다.The configuration of the
도 5를 참조하면, 본 발명의 일 실시예에 따른 콘텐츠 서버(10)는 통신부(510), 저장부(520) 및 제어부(530)를 포함하여 구성될 수 있다. 또한, 제어부(530)는 각 기능 별로 콘텐츠 전송 처리부(531) 및 콘텐츠 관리부(533)로 구성될 수 있다. 콘텐츠 서버(10)를 구성하는 통신부(510), 저장부(520) 및 제어부(530)는 본 발명에 따른 기능을 수행하기 위하여 상호 기능적으로 연결될 수 있다.Referring to FIG. 5, the
각 구성 요소에 대해 보다 구체적으로 설명하면, 통신부(510)는 네트워크(50)를 통해 스위칭 장치(20)와 통신을 가능하게 하는 인터페이스를 제공한다. 특히, 본 발명에 있어서, 통신부(510)는 제어부(530)의 제어를 받아 스위칭 장치(20)를 통해 캐시 장치(30)로 멀티캐스트 방식으로 콘텐츠를 전송할 수 있다. 또한, 통신부(510)는 스위칭 장치(20)를 통해 캐시 장치(30)와 다양한 메시지들을 송수신할 수 있다. In more detail for each component, the
저장부(520)는 콘텐츠 서버(10)의 동작에 필요한 데이터 및/또는 프로그램을 저장하는 수단으로서, 제어부(530) 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 제어부(530)와 연결될 수 있다. 특히, 본 발명에 있어서, 저장부(520)는 콘텐츠 제공자로부터 업로드 된 하나 이상의 콘텐츠를 저장할 수 있다. The
제어부(530)는 콘텐츠 서버(10)의 전반적인 제어를 수행하는 구성으로, 통신부(510) 및 저장부(520)의 기능 수행을 위한 신호의 흐름을 제어하게 된다. 특히, 본 발명에 있어서, 제어부(530)는 앞서 도 2 내지 도 4에서 제안된 기능, 과정 및/또는 방법을 구현한다. The
구체적으로, 제어부(530)의 콘텐츠 전송 처리부(531)는 캐시 장치(30)와 콘텐츠 동기화(혹은 캐시 동기화)를 수행하는 기능부를 의미한다. 콘텐츠 전송 처리부(533)는 콘텐츠 제공자로부터 업로드 된 콘텐츠의 전송을 개시하고자 할 때, 캐시 장치(30)로 멀티캐스트 시작 메시지를 전송할 수 있다. 또한, 콘텐츠 서버(10)와 연결된 스위칭 장치(20)로부터 멀티캐스트 그룹에 참여하기 위한 참여 메시지를 수신하면, 참여 메시지를 전송한 스위칭 장치(20)로 구성된 멀티캐스트 그룹을 생성하고, 콘텐츠의 멀티캐스트 전송을 위하여 생성된 멀티캐스트 그룹에 속한 각각의 스위칭 장치(20)에 콘텐츠를 한번씩 전송할 수 있다. 또한, 캐시 장치(30)로부터 수신한 콘텐츠 재전송 요청 메시지를 통해 재전송이 요청된 데이터 블록이 속한 청크 단위를 확인하고, 해당 청크 단위를 캐시 장치(30)에 전송할 수 있다.Specifically, the content
콘텐츠 관리부(533)는 콘텐츠 제공자로부터 업로드 된 하나 이상의 콘텐츠의 저장, 관리 등을 수행하는 기능부를 의미한다. 콘텐츠 관리부(531)는 콘텐츠를 미리 정해진 청크(chunk) 단위로 분할하여 저장부(520)에 저장하며, 각각의 분할된 청크 단위 별로 시퀀스 번호(Sequence Number)를 부여할 수 있다.The
도 6은 본 발명의 일 실시예에 따른 캐시 장치의 구성을 예시하는 도면이다. 6 is a diagram illustrating a configuration of a cache device according to an embodiment of the present invention.
도 6에서 도시된 캐시 장치(30)의 구성은, 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되어 구현될 수도 있다.The configuration of the
도 6을 참조하면, 본 발명의 일 실시예에 따른 캐시 장치(30)는 통신부(610), 저장부(620) 및 제어부(630)를 포함하여 구성될 수 있다. 또한, 제어부(630)는 각 기능 별로 콘텐츠 수신 처리부(631) 및 콘텐츠 오류 판별부(633)로 구성될 수 있다. 캐시 장치(30)를 구성하는 통신부(610), 저장부(620) 및 제어부(630)는 본 발명에 따른 기능을 수행하기 위하여 상호 기능적으로 연결될 수 있다.Referring to FIG. 6, the
각 구성 요소에 대해 보다 구체적으로 설명하면, 통신부(610)는 네트워크(50)를 통해 스위칭 장치(20)와 통신을 가능하게 하는 인터페이스를 제공한다. 특히, 본 발명에 있어서, 통신부(610)는 제어부(630)의 제어를 받아 스위칭 장치(20)를 통해 콘텐츠 서버(10)로부터 멀티캐스트 방식으로 콘텐츠를 수신할 수 있다. 또한, 통신부(610)는 스위칭 장치(20)를 통해 콘텐츠 서버(10)와 다양한 메시지들을 송수신할 수 있다.In more detail for each component, the
저장부(620)는 캐시 장치(30)의 동작에 필요한 데이터 및/또는 프로그램을 저장하는 수단으로서, 제어부(630) 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 제어부(630)와 연결될 수 있다. 특히, 본 발명에 있어서, 저장부(620)는 콘텐츠 제공자로부터 수신한 하나 이상의 콘텐츠를 저장할 수 있다.The
제어부(630)는 캐시 장치(30)의 전반적인 제어를 수행하는 구성으로, 통신부(610) 및 저장부(620)의 기능 수행을 위한 신호의 흐름을 제어하게 된다. 특히, 본 발명에 있어서, 제어부(630)는 앞서 도 2 내지 도 4에서 제안된 기능, 과정 및/또는 방법을 구현한다. The
구체적으로, 제어부(630)의 콘텐츠 수신 처리부(631)는 콘텐츠 서버(10)와 콘텐츠 동기화(혹은 캐시 동기화)를 수행하는 기능부를 의미한다. 콘텐츠 수신 처리부(631)는 콘텐츠 서버(10)로부터 멀티캐스트 시작 메시지를 수신하면, 캐시 장치(30)와 연결된 스위칭 장치(20)의 멀티캐스트 그룹에 참여하기 위하여 참여 메시지를 전송하여 해당 스위칭 장치(20)의 멀티캐스트 그룹에 참여하고, 해당 콘텐츠를 콘텐츠 서버(10)로부터 수신할 수 있다. 또한, 콘텐츠 오류 판별부(633)에서 판별한 콘텐츠에서 오류가 발생된 데이터 블록을 특정하기 위한 정보(예를 들어, 해쉬값)를 생성하고, 해당 정보를 콘텐츠 재전송 요청 메시지를 통해 콘텐츠 서버(10)에 전송하여 콘텐츠 재전송을 요청할 수 있다. 또한, 콘텐츠 수신 처리부(631)는 콘텐츠 서버(10)로부터 재전송된 콘텐츠를 결합함으로써 콘텐츠를 완성할 수 있다. Specifically, the content
콘텐츠 오류 판별부(633)는 콘텐츠 수신 처리부(631)에서 수신한 콘텐츠의 오류 여부를 판별하는 기능부를 의미한다. 콘텐츠 오류 판별부(633)는 콘텐츠를 수신하는 단위 즉, 데이터 블록 단위로 콘텐츠의 오류 발생 여부를 판별할 수 있다. The content
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.Embodiments according to the present invention can be implemented by various means, for example, hardware, firmware, software, or a combination thereof. For implementation by hardware, one embodiment of the present invention includes one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, and the like.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, in the case of implementation by firmware or software, one embodiment of the present invention is implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above, and is recorded on a record carrier readable through various computer means. Can be recorded. Here, the recording medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the recording medium may be specially designed and configured for the present invention or may be known and usable by those skilled in computer software. For example, recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes (Magnetic Media), compact disk read only memory (CD-ROM), optical media such as DVD (Digital Video Disk), and optical media. It includes a magneto-optical media such as a disk (Floptical Disk), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes made by a compiler. Such a hardware device may be configured to operate as one or more software modules to perform the operation of the present invention, and vice versa.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 선정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.As described above, in the specification and drawings, preferred embodiments of the present invention have been disclosed, but it is possible in the technical field to which the present invention pertains that other modified examples based on the technical spirit of the present invention may be implemented in addition to the embodiments disclosed herein. It is obvious to those with ordinary knowledge. In addition, although specific terms are used in the present specification and drawings, they are merely used in a general sense to easily describe the technical content of the present invention and to understand the present invention, and are not intended to limit the scope of the present invention. Therefore, the above detailed description should not be construed as limiting in all respects, but should be considered illustrative. The scope of the invention should be selected by rational interpretation of the appended claims, and all changes within the equivalent scope of the invention are included in the scope of the invention.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.In addition, the device or terminal according to the present invention can be driven by instructions that cause one or more processors to perform the functions and processes described above. For example, such instructions may include interpreted instructions such as script instructions such as JavaScript or ECMAScript instructions, executable code, or other instructions stored on a computer-readable medium. Furthermore, the device according to the present invention may be implemented in a distributed manner over a network, such as a server farm, or may be implemented in a single computer device.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.In addition, a computer program (also known as a program, software, software application, script or code) mounted on a device according to the present invention and executing the method according to the present invention includes a compiled or interpreted language or a priori or procedural language. It can be written in any form of programming language, and can be deployed in any form, including standalone programs or modules, components, subroutines, or other units suitable for use in a computer environment. Computer programs do not necessarily correspond to files in the file system. The program is in a single file provided to the requested program, or in multiple interactive files (e.g., one or more modules, files storing subprograms or parts of code), or part of a file holding other programs or data (Eg, one or more scripts stored in a markup language document). The computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
아울러, 본 발명에 따른 실시예를 설명하는데 있어서, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.In addition, in describing the embodiment according to the present invention, operations are depicted in the drawings in a specific order, but it is necessary to perform such operations in the specific order or sequential order shown in order to obtain a desired result or all illustrated actions They should not be understood as to be performed. In certain cases, multitasking and parallel processing may be advantageous. In addition, the separation of various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged in multiple software products. You should understand that you can.
본 발명에 따른 멀티캐스트(multicast)를 이용한 CDN 콘텐츠 동기화 방안은 다양한 통신망을 이용한 컨텐츠 전송 네트워크 시스템에 적용하는 것이 가능하다. The CDN content synchronization method using multicast according to the present invention can be applied to a content delivery network system using various communication networks.
10: 콘텐츠 서버 20: 스위칭 장치
30: 캐시 장치 40: 단말
50: 네트워크 510: 통신부
520: 저장부 530: 제어부
531: 콘텐츠 전송 처리부 533: 콘텐츠 관리부
610: 통신부 620: 저장부
630: 제어부 631: 콘텐츠 수신 처리부
633: 콘텐츠 오류 판별부10: content server 20: switching device
30: cache device 40: terminal
50: network 510: communication unit
520: storage unit 530: control unit
531: content transmission processing unit 533: content management unit
610: communication unit 620: storage unit
630: control unit 631: content receiving processing unit
633: content error determination unit
Claims (5)
콘텐츠 서버와 데이터 송수신을 위한 통신부; 및
상기 통신부 및 상기 저장부를 제어하도록 구성된 제어부를 포함하고,
상기 제어부는,
상기 콘텐츠 서버로부터 콘텐츠를 식별하기 위한 정보를 포함하는 멀티캐스트 시작 메시지를 수신하고,
멀티캐스트 그룹 참여를 위한 참여 메시지를 상기 캐시 장치와 연결된 스위칭 장치 또는 상기 콘텐츠 서버로 전송하여 상기 멀티캐스트 그룹에 참여하고,
상기 콘텐츠 서버로부터 상기 콘텐츠를 멀티캐스트 방식으로 수신하는 캐시 장치.As a cache device that supports content synchronization with a content server using multicast in a content delivery network,
Communication unit for data transmission and reception with the content server; And
And a control unit configured to control the communication unit and the storage unit,
The control unit,
Receiving a multicast start message including information for identifying content from the content server,
Participate in the multicast group by sending a participation message for joining the multicast group to the switching device or the content server connected to the cache device,
A cache device that receives the content from the content server in a multicast manner.
상기 콘텐츠는 미리 정해진 데이터 블록 단위로 전송되는 캐시 장치.According to claim 1,
The content is a cache device that is transmitted in a predetermined data block unit.
상기 콘텐츠의 데이터 블록에 오류가 발생되면, 상기 오류가 발생된 데이터 블록을 특정하기 위한 해쉬값을 포함하는 콘텐츠 재전송 요청 메시지를 상기 콘텐츠 서버로 전송하는 캐시 장치. According to claim 2,
When an error occurs in the data block of the content, a cache device that transmits a content retransmission request message including a hash value for specifying the data block in which the error occurred to the content server.
상기 콘텐츠는 미리 정해진 크기의 청크(chunk) 단위로 분할하여 저장되고,
상기 제어부는,
상기 콘텐츠 서버로부터 상기 해쉬 값에 대한 상기 콘텐츠의 청크 단위를 수신하면, 상기 수신한 청크 단위를 기 수신된 콘텐츠와 결합하는 캐시 장치. According to claim 3,
The content is divided into chunks of a predetermined size and stored.
The control unit,
When the chunk unit of the content for the hash value is received from the content server, the cache device combines the received chunk unit with the previously received content.
상기 캐시 장치가 상기 콘텐츠 서버로부터 콘텐츠를 식별하기 위한 정보를 포함하는 멀티캐스트 시작 메시지를 수신하는 단계;
상기 캐시 장치가 멀티캐스트 그룹 참여를 위한 참여 메시지를 상기 캐시 장치와 연결된 스위칭 장치 또는 상기 콘텐츠 서버로 전송하여 상기 멀티캐스트 그룹에 참여하는 단계;
상기 캐시 장치가 상기 콘텐츠 서버로부터 상기 콘텐츠를 멀티캐스트 방식으로 수신하는 단계;
를 포함하는 콘텐츠 동기화 방법.A method for supporting a content server and a content server (Synchronization) by using a multicast (multicast) in the content delivery network (Content Delivery Network),
Receiving, by the cache device, a multicast start message including information for identifying content from the content server;
The cache device participating in the multicast group by transmitting a participation message for joining the multicast group to a switching device or the content server connected to the cache device;
The cache device receiving the content from the content server in a multicast manner;
Content synchronization method comprising a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200055803A KR102210410B1 (en) | 2020-05-11 | 2020-05-11 | Method for contents synchronization, device therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200055803A KR102210410B1 (en) | 2020-05-11 | 2020-05-11 | Method for contents synchronization, device therefor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130119087A Division KR102111573B1 (en) | 2013-10-07 | 2013-10-07 | Method for contents synchronization, device therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200054926A true KR20200054926A (en) | 2020-05-20 |
KR102210410B1 KR102210410B1 (en) | 2021-01-29 |
Family
ID=70919911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200055803A KR102210410B1 (en) | 2020-05-11 | 2020-05-11 | Method for contents synchronization, device therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102210410B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100485974B1 (en) * | 2002-10-10 | 2005-05-03 | 엔에이치엔(주) | Method and System for Providing Contents |
KR20050054965A (en) * | 2005-03-25 | 2005-06-10 | 노키아 코포레이션 | Multicast data transfer |
JP2010541434A (en) * | 2007-10-02 | 2010-12-24 | パナソニック株式会社 | Management of session control signaling for multicast / broadcast services |
KR20110092869A (en) | 2010-02-10 | 2011-08-18 | 명창배 | The coldness and warmth water purifier which has a tax administration function |
KR20130033253A (en) * | 2011-09-26 | 2013-04-03 | 주식회사 케이티 | Overlay multicast system and its method to provide multiple content distribution in distributed content nodes |
-
2020
- 2020-05-11 KR KR1020200055803A patent/KR102210410B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100485974B1 (en) * | 2002-10-10 | 2005-05-03 | 엔에이치엔(주) | Method and System for Providing Contents |
KR20050054965A (en) * | 2005-03-25 | 2005-06-10 | 노키아 코포레이션 | Multicast data transfer |
JP2010541434A (en) * | 2007-10-02 | 2010-12-24 | パナソニック株式会社 | Management of session control signaling for multicast / broadcast services |
KR20110092869A (en) | 2010-02-10 | 2011-08-18 | 명창배 | The coldness and warmth water purifier which has a tax administration function |
KR20130033253A (en) * | 2011-09-26 | 2013-04-03 | 주식회사 케이티 | Overlay multicast system and its method to provide multiple content distribution in distributed content nodes |
Also Published As
Publication number | Publication date |
---|---|
KR102210410B1 (en) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2558611C (en) | Providing a multicast service in a communication network | |
CN110012437B (en) | Method, device and system for sending multicast message | |
WO2021136468A1 (en) | Multicast service session operation method and apparatus, and communication device | |
WO2021098123A1 (en) | Multicast and broadcast service continuity during mobility | |
AU2020395266B2 (en) | Methods and systems for multicast and broadcast service establishment in wireless communication networks | |
WO2021098108A1 (en) | Multicast or broadcast session establishment and management | |
JP2013543679A (en) | Multimedia broadcasting / broadcasting service counting method and system | |
JP6407893B2 (en) | Method, apparatus, and computer program for broadcasting a multicast session in wireless communication | |
US20230081286A1 (en) | Methods and systems for multicast data forwarding during mobility procedures in wireless communication networks | |
JP7100071B2 (en) | Message transmission method and device | |
KR102210410B1 (en) | Method for contents synchronization, device therefor | |
KR102111573B1 (en) | Method for contents synchronization, device therefor | |
WO2020019989A1 (en) | Event early-warning method and apparatus | |
WO2018108168A1 (en) | Method for implementing multicast service of packet transmission network, device thereof and communication system | |
CN111416760B (en) | Information synchronization method, terminal and information synchronization system | |
JP6802585B2 (en) | How to get system messages, devices, terminals and base stations | |
WO2018219218A1 (en) | Ma configuration method, system and device | |
JP5341821B2 (en) | Multicast distribution system and method | |
WO2023029537A1 (en) | Method and apparatus for service migration between ues, and storage medium | |
EP4087188A1 (en) | Multicast service implementing method, device, and communication device | |
Guardado et al. | Ndnwifi: Named data networking enabled wifi in challenged communication environments | |
CN114727235A (en) | Multicast service processing method, device, storage medium and electronic equipment | |
JPWO2017051664A1 (en) | Communication processing system and group message processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |