Method for transmitting broadcasting contents in real-time and device for same

A real-time broadcasting contents transmission method and device are disclosed. In an embodiment, the device stores a streaming list which is information about one or more streaming contents received from a contents providing server. When a request being transmitted to the contents providing server is received from a terminal device through the communication unit, the device determines whether the requested streaming content is registered in the streaming list. If the requested streaming content is registered in the streaming list, the device branches the streaming content received from the contents providing server and then, after delay for a predetermined time, transmits the streaming content to the terminal device.

TECHNICAL FIELD

The present invention relates to a contents delivery network (CDN) for real-time transmission of broadcasting contents and, more particularly, to a real-time broadcasting contents transmission method and device for reducing a traffic of a network and a load of a contents providing server by caching contents being broadcasted in real time to a terminal device and providing the cached contents to a third-party terminal device.

BACKGROUND ART

The advent of the ubiquitous era allows a user to freely access a network anywhere anytime without being aware of a terminal device, thus causing an explosive increase in network traffic. Particularly, at the request of a terminal device, a contents provider (CP) can provide large-volume contents via a network of any other internet service provider (ISP). In this case, due to concentration of traffic at internet exchange (IX) points and a resultant bottleneck, some problems such as an unstable network access and a degradation of a communication quality may be invited.

Introduced to solve such problems is a contents delivery network (CDN) for deploying a plurality of local caching devices at edges of an ISP network, transferring contents in advance, offered by a CP, to the local caching devices, and providing such contents in response to a user's request.

The CDN is composed of a load balancer (a global server load balancing, GSLB) and local caching devices. The load balancer selects, in response to a user's request, the local caching device capable of providing the best service. The local caching device previously stores contents in the order of a high caching hit and performs, in response to a user's request, pushing or caching of the stored contents.

By the way, in case of live streaming, the local caching device merely uses splitting due to the limit of having to provide contents in real time. Namely, the local caching device can merely distribute contents, received from the CP through one stream, to a number of terminal devices and cannot use pushing and caching as used in on-demand streaming.

Accordingly, even in case of live streaming that is incapable of using normal caching, technique to reduce a traffic concentration for the CP and a load of network traffic due to duplicate transmission of contents is needed.

SUMMARY

The present invention proposes, in a contents delivery service, a real-time broadcasting contents transmission method and device capable of permitting caching as well as splitting for a local caching device.

In addition, the present invention proposes a real-time broadcasting contents transmission method and device in which a contents transmission control device branches streaming content, being already received, and then delivers the branched streaming content to a local caching device after delay such that the local caching device can cache contents being transmitted in real time.

The present invention is not limited to the above objects, and any other object, even though not mentioned herein, may be well understood from the following description.

A contents transmission control device according to an aspect of the present invention includes a communication unit, a storage unit, and a control unit.

The communication unit is configured to transmit and receive data to and from a contents providing server and a local caching device distributed over and deployed in a network. The storage unit is configured to store a streaming list which is information about one or more streaming contents received from the contents providing server. The control unit is configured to, when a request being transmitted to the contents providing server for streaming content is received from a terminal device through the communication unit, determine whether the requested streaming content is registered in the streaming list, and configured to, if the requested streaming content is registered in the streaming list, branch the streaming content received from the contents providing server and then, after delay for a predetermined time, transmit the streaming content to the terminal device.

Additionally, a local caching device according to an aspect of the present invention includes a communication unit, a storage unit, and a control unit. The communication unit is configured to transmit and receive data through a network. The storage unit is configured to store streaming content. The control unit is configured to, when a request for streaming content is received from a terminal device, receive the streaming content being transmitted to the terminal device through a contents transmission control device, to determine whether any streaming content identical with the received streaming content is stored in the storage unit, to transmit a caching hit notification to the contents transmission control device if the identical streaming content is stored, and to transmit the stored streaming content to the terminal device depending on a chunk signature offered from the contents transmission control device.

Additionally, a contents transmission method according to an aspect of the present invention includes step of receiving, at a contents transmission control device, a request for streaming content, the request being transmitted to a contents providing server through a network; step of determining, at the contents transmission control device, whether the requested streaming content is registered in a streaming list which is information about one or more streaming contents received from the contents providing server; if it is determined that the requested streaming content is registered in the streaming list, first transmission step of, at the contents transmission control device, branching and delaying the streaming content received from the contents providing server and then transmitting the streaming content to the terminal device through the network; and if it is determined that the requested streaming content is not registered in the streaming list, second transmission step of, at the contents transmission control device, delivering a request for the streaming content to the contents providing server and then transmitting the streaming content, received from the contents providing server, to the terminal device through the network.

The present invention allows caching in real-time broadcasting contents transmission, thus reducing a traffic concentration for a CP and a load of network traffic due to duplicate transmission of contents.

Particularly, a contents transmission control device delivers delayed streaming of streaming content, being already received, to a local caching device and thereby allows the local caching device to cache the streaming content by using prefix caching and to transmit the cached streaming content.

Other various advantages and effects will be disclosed explicitly or implicitly in embodiments of this invention to be described below in detail.

DETAILED DESCRIPTION

Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. While the following description is particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of this invention.

In some cases, well known techniques may not be described or illustrated in detail to avoid obscuring the subject matter of the present invention.

When it is stated in the entire description that a certain article “comprises” or “includes” a certain element, this means that the article may further have any other element unless stated differently. In addition, the term “unit” or “module”, used herein, may refer to the unit of processing at least one function or operation, and may be implemented as hardware, software, or combinations thereof. In addition, singular forms are intended to include plural forms unless the context clearly indicates otherwise.

The terms used in describing various embodiments of this disclosure are only examples for describing a specific embodiment but do not limit such embodiments.

A contents transmission system according to an embodiment of this invention proposes a method for reducing a traffic concentration for a contents provider (CP) and a load of network traffic due to duplicate transmission of contents by allowing caching in live streaming, e.g., internet protocol television (IPTV), having to broadcast contents in real time without delay unlike on-demand streaming. Hereinafter, “streaming content” refers to live streaming content having to be broadcasted in real time, and “streaming” refers to live streaming.

At the outset, the entire configuration of a contents transmission system according to an embodiment of this invention will be described.

FIG. 1is a diagram illustrating the entire configuration of a contents transmission system100according to an embodiment of the present invention. The configuration of the contents transmission system100shown inFIG. 1indicates functional elements distinguished functionally from each other, and one or more thereof may be integrated with each other in a real physical environment.

Referring toFIG. 1, the contents transmission system100according to an embodiment of this invention may be configured to include a plurality of terminal devices110, one or more local caching devices120, a contents transmission control device130, a contents providing server140, and a network150.

Specifically, the terminal device110is an element configured to request streaming contents from the contents providing server140through the network150and to receive and output the requested streaming contents. For convenience of description, the terminal devices110may be separated into the first terminal device110ato the n-th terminal device110n.

The terminal device110according to an embodiment of this invention may transmit or receive data through the network150, and any device capable of processing and outputting streaming contents may be allowed therefor. For example, the terminal device110may include, but not limited to, a smart phone, a tablet, a laptop, a portable multimedia player, a phablet, a personal digital assistant, an e-book reader, and the like.

Next, the local caching device120is an element distributed over and deployed in the network150and configured to cache streaming content, which is being transmitted through the network150, and to transmit the cached streaming content to the terminal device110. The local caching device120monitors data being transmitted between the terminal device110and the contents providing server140through the network150, receives a request for streaming content being transmitted from the terminal device100to the contents providing server140through the network150, and receives streaming content being transmitted from the contents providing server140to the terminal device110. If a request for streaming content is made from the terminal device110, the local caching device120receives streaming content being transmitted to the terminal device110through the contents transmission control device130and then determines whether any streaming content identical with the received streaming content is stored in a storage unit. If it is determined that the identical streaming content is stored, the local caching device120transmits a cache hit notification to the contents transmission control device130and then, based on a chuck signature offered from the contents transmission control device130, transmits the stored streaming content to the terminal device.

A detailed description about the local caching device120will be given below with reference toFIG. 3.

Next, the contents transmission control device130is an element connected to the network150and configured to control a data flow into the network150from other network (not shown) and to cache and transmit streaming contents through one or more local caching devices120distributed over and deployed in the network150.

Specifically, the contents transmission control device130stores a streaming list, i.e., a list of streaming contents received from the contents providing server140and transmitted to the terminal device110through the network150. Additionally, when a request, transmitted to the contents providing server140, for streaming content is received from the terminal device110, the contents transmission control device130determines whether the requested streaming content is registered in the streaming list. If registered, the contents transmission control device130branches streaming content being received from the contents providing server140and then, after delay for a predetermined time, transmits the streaming content to the terminal device110through the network150. A delay value may be set depending on a time required for the local caching device120to determine a caching hit.

A detailed description about the contents transmission control device130will be given below with reference toFIG. 2.

Next, the contents providing server140is a server device of a CP for providing contents to the terminal device110through the network150. In particular, contents provided by the contents providing server140according to an embodiment of this invention may be broadcasted in real time.

Finally, the network150is an infrastructure for the contents providing server140to provide streaming contents to the terminal device110. The network150may be formed of, but not limited to, a mobile communication network such as CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), HSPA (High Speed Packet Access), or LTE (Long Term Evolution), a wired communication network such as Ethernet, xDSL (x Digital Subscriber Line), HFC (Hybrid Fiber Coax), or FTTH (Fiber To The Home), a wireless communication network such as WiFi, Wibro, Wimax, or UWB (Ultra WideBand), or combinations of the above communication networks. The network150according to an embodiment of this invention may include one or more access networks152connected to the terminal devices110, and a core network151coupling the one or more access networks152and connected to the contents transmission control device130.

Specifically, the core network151is an element configured to couple the access networks152and to perform functions of call processing, mobility control, switching, etc., and may include an evolved packet core (EPC)151aand a plurality of switching devices151b. The EPC151ais an element for managing and controlling a packet flow and performing connection with other network (not shown), and the switching device151bis an element for performing a packet delivery to the access network152.

Additionally, the access network152is a subscriber network capable of transmitting and receiving data to and from the terminal device110in a wired or wireless manner. Particularly, the access network152according to an embodiment of this invention may be implemented with a base station152acapable of separately processing a digital signal and a radio signal by being formed of a plurality of digital units (DUs) and a radio unit (RU) centralized on each DU.

Further, the network150according to an embodiment of this invention may distribute and deploy the local caching devices120over and at edges thereof, and also provide, through the switching device151bconnected thereto, streaming contents to the respective terminal devices110connected to the access network152. At this time, a request, sent from the terminal device110, for streaming content is transmitted to the contents providing server140through one of the local caching devices120and the contents transmission control device130. On the contrary, streaming content sent from the contents providing server140is delivered to the terminal device110through the contents transmission control device130and one of the local caching devices. For this, the location caching device120may receive, using mirroring technique or through rerouting of switch/router, data transmitted between the terminal device110and the contents providing server150. Here, ‘mirroring technique’ refers to technique of duplicating and bringing a mobile packet, being delivered through the network150, without influence on traffic. Additionally, the contents transmission control device130may be connected between the packet core device151aof the core network151and an external network, receive a request, sent to the contents providing server140, for streaming content, and receive streaming content sent from the contents providing server140.

Hereinafter, the configuration of the contents transmission control device130according to an embodiment of this invention will be described in detail.

FIG. 2is a block diagram illustrating the configuration of the contents transmission control device130according to an embodiment of the present invention. The configuration of the contents transmission control device130shown inFIG. 2indicates functional elements distinguished functionally from each other, and one or more thereof may be physically divided from or integrated with each other.

Referring toFIG. 2, the contents transmission control device130according to an embodiment of this invention may be configured to include a communication unit131, a storage unit132, and a control unit133.

The communication unit131is an element configured to transmit or receive data to or from the contents providing server140and the local caching device120. Specifically, the communication unit131monitors the network150, receives streaming content or a request therefor being transmitted between the terminal device110and the contents providing server140, and then delivers it to the control unit133. Also, the communication unit131may transmit streaming content to the local caching device120through the network150and transmit a request for streaming content to the content providing server140through other network (not shown). Here, other network (not shown) may be, but not limited to, another public network or dedicated network which is different from the network150.

The storage unit132is an element configured to store information and programs required for offering a contents delivery service according to an embodiment of this invention. Specifically, the storage unit132may store a streaming list132aand subscriber information132b. Here, the streaming list132ais information about one or more streaming contents being currently received from the contents providing server140, and the subscriber information132bis information about one or more terminal devices110that receive respective streaming contents. In particular, the streaming list132aand the subscriber information132bmay be managed in the form of a table in which streaming contents received from the contents providing serer130are mapped respectively to the corresponding terminal devices110for receiving such streaming contents.

The control unit133is an element configured to perform the whole control of the contents transmission control device130and to control a signal flow for performing functions of the communication unit131and storage unit132. Briefly, in response to a request for streaming content from the terminal device110, the control unit133determines, using the streaming list132a, whether the requested streaming content is being currently received. Also, for prefix caching of the local caching device120, the control unit133branches the streaming content, being currently received, and then, after delay, delivers the branched streaming content to the local caching device120.

Specifically, the control unit133monitors the network150through the communication unit131and thereby receives a request, sent to the contents providing server140by the terminal device110, for streaming content or a request for streaming content from the local caching device120. For determining whether the requested streaming content is being currently received, the control unit133determines whether the requested streaming content is registered in the streaming list132a.

First, a case where the requested streaming content is registered in the streaming list132awill be described hereinafter.

If the requested streaming content is registered in the streaming list132a, this means that the requested streaming content has been already requested by a certain terminal device110. Thus, the contents transmission control device130may be able to transmit the streaming content, being currently received, to other terminal device110.

Therefore, if the requested streaming content is registered in the streaming list132a, the control unit133branches the requested streaming content, being currently received from the contents providing server140, and then delays the branched streaming content for a predetermined time. Here, the predetermined time (i.e., a delay value) may be set depending on a time required for a caching hit which means that the local caching device120determines whether the identical content has been cached. In addition, since such a caching hit is performed in the unit of content division (in the unit of chunk), the predetermined time (delay value) may be varied depending on a time required for the terminal device110to play one chunk divided from the requested streaming content. For example, in an embodiment of this invention, the predetermined time, which is a playback time of one chunk divided from streaming content, may be set for 5 seconds.

Additionally, the control unit133registers, in the subscriber information132b, the terminal device110that requests streaming content. Also, the control unit133delivers, through the communication unit131, streaming-delayed streaming content to the local caching device120that requests the streaming content.

Further, the control unit133determines whether a caching hit notification for streaming content is received from the local caching device120through the communication unit131.

If a caching hit notification for streaming content is received from the local caching device120, prefix caching of streaming content at the local caching device120corresponds to a case of hit. In this case, rather than interrupts delivery of delayed streaming content to the local caching device120, the control unit133sends a chunk signature for identifying a chunk, divided from the delayed streaming content, to the local caching device120through the communication unit133until a request for interruption of streaming content is received from the local caching device120.

Next, a case where the requested streaming content is not registered in the streaming list132awill be described hereinafter.

If the requested streaming content is not registered in the streaming list132a, this means that the requested streaming content has been not yet requested by any terminal device110. Thus, the contents transmission control device130may have to newly receive streaming content from the contents providing server140so as to offer the streaming content to the terminal device110.

Therefore, if the requested streaming content is not registered in the streaming list132a, the control unit133delivers a request for streaming content to the contents providing server140through the communication unit131. In addition, the control unit133monitors the network150through the communication unit131and receives streaming content being sent to the terminal device110by the contents providing server140.

The control unit133registers, in the streaming list132a, streaming content received from the contents providing server140and registers, in the subscriber information132b, the terminal device110that requests the streaming content. Also, the control unit133delivers streaming content, received through the communication unit131, to the local caching device120requesting the streaming content until a request for interruption of streaming content is received from the local caching device120.

Hereinafter, a case where a streaming interruption request is received from the local caching device120will be described.

The control unit133monitors the network150through the communication unit131and receives an interruption request for streaming content sent to the contents providing server140by the terminal device110. Then the control unit133interrupts the transmission of streaming content or chunk signature being sent to the local caching device120. Also, the control unit133deletes, from the subscriber information132b, the registered terminal device110that requests interruption. And also, the control unit133determines whether the number of the terminal devices110registered in the subscriber information132bto receive interruption-requested streaming content is zero.

If the number of the terminal devices110registered in the subscriber information132to receive interruption-requested streaming content is zero, the control unit133interrupts the reception of the interruption-requested streaming content being currently received from the contents providing server140. Also, the control unit133deletes the interruption-requested streaming content from the streaming list132a.

Hereinafter, the configuration of the local caching device120according to an embodiment of this invention will be described in detail.

FIG. 3is a block diagram illustrating the configuration of the local caching device120according to an embodiment of the present invention. The configuration of the local caching device120shown inFIG. 3indicates functional elements distinguished functionally from each other, and one or more thereof may be physically divided from or integrated with each other.

Referring toFIG. 3, the local caching device120according to an embodiment of this invention may be configured to include a communication unit121, a storage unit122, and a control unit123.

The communication unit121is an element configured to transmit or receive data to or from the contents transmission control device130and the terminal device110. Specifically, the communication unit121monitors the network150, receives streaming content or a request therefor being transmitted between the terminal device110and the contents providing server140, and then delivers it to the control unit123. Also, the communication unit121may transmit a request for streaming content to the contents transmission control device130through the network150and transmit streaming content to the terminal device110.

The storage unit122is an element configured to store information and programs required for offering a contents delivery service according to an embodiment of this invention. Specifically, the storage unit122may store a streaming list122a, subscriber information122b, a chunk122c, and a chunk signature122d. Here, the streaming list122ais information about one or more streaming contents being received from the contents transmission control device130, and the subscriber information122bis information about one or more terminal devices110that receive streaming contents. The chunk122cis data divided from streaming content received from the contents transmission control device130, and the chunk signature122dis an identifier for identifying each chunk. In particular, the streaming list122aand the subscriber information122bmay be managed in the form of a table in which streaming contents received from the contents providing serer130are mapped respectively to the corresponding terminal devices110for receiving such streaming contents. Further, the chunk122cand the chunk signature122dmay be managed in the form of a table in which the chunks122cdivided from streaming contents received from the contents providing serer130are mapped respectively to the corresponding chunk signatures122dfor identifying such chunks.

The control unit123is an element configured to perform the whole control of the local caching device120and to control a signal flow for performing functions of the communication unit121and storage unit122. Briefly, the control unit123receives streaming contents from the contents providing server140and stores them. Also, when a request for streaming content is received from the terminal device110, the control unit123delivers the stored streaming content to the terminal device110.

Specifically, the control unit123monitors the network150through the communication unit121and thereby receives a request, sent to the contents providing server140by the terminal device110, for streaming content. Then the control unit123delivers the received request for streaming content to the contents transmission control device130through the communication unit121. Also, the control unit123receives streaming content, as a response to the delivered request, from the contents transmission control device130through the communication unit121.

The control unit123determines whether any chunk corresponding to a chunk divided from the received streaming content is stored in the storage unit122, and thereby determines whether prefix caching for streaming content is a hit or not. Here, a chunk is data divided from streaming content received from the contents transmission control device130. In order to guarantee reliability of prefix caching, the control unit123may determine that the requested streaming content is identical only if a given number of chunks divided from received streaming content are sequentially hit. For example, only if three chunks are sequentially hit, the local caching device120may determine that the requested streaming content is identical.

First, a case where any chunk corresponding to a chunk divided from received streaming content is stored in the storage unit122will be described hereinafter.

If any chunk corresponding to a chunk divided from received streaming content is stored in the storage unit122, this means that the streaming content is being already received from the contents transmission control device130. Thus, the local caching device120may be able to transmit the received streaming content to other terminal device110. Therefore, in this case, the control unit123determines that prefix caching for the requested streaming content is hit, and then transmits a caching hit notification for the streaming content to the content transmission control device130through the communication unit121.

The control unit123receives a chunk signature from the contents transmission control device130through the communication unit121rather than interrupts the reception of streaming content from the contents transmission control device130through the communication unit121. Then, using the received chunk signature, the control unit123transmits streaming content to the terminal device110through the communication unit121. Here, the control unit123may transmit streaming content to the terminal device110until a request for interruption of streaming content is received from the terminal device110.

Next, a case where any chunk corresponding to a chunk divided from received streaming content is not stored in the storage unit122will be described hereinafter.

If any chunk corresponding to a chunk divided from received streaming content is not stored in the storage unit122, this means that the streaming content has been not yet requested by any terminal device110. Thus, the local caching device120may have to newly receive streaming content from the contents transmission control device130so as to offer the streaming content to the terminal device110. Therefore, in this case, the control unit123determines that prefix caching for the requested streaming content is missed, and then stores streaming content, being currently received, for a predetermined time from the current time point. Here, the predetermined time may be, but not limited to, a time required for the terminal device110to play a given number of chunks divided from the received streaming content. Additionally, in case the local caching device120performs prefix caching of stored streaming content and delivers it to the terminal device110, a storage maintenance time may be a short time enough for a user of the terminal device110to feel as if streaming content is received in real time. However, a storage maintenance time may be a long time near the limit of being supportable by a physical environment of the local caching device120.

Also, the control unit123delivers streaming content, received from the contents transmission control device130through the communication unit121, to the terminal device110until a request for interruption of streaming content is received from the terminal device110.

Hereinafter, a transmission flow of streaming content according to an embodiment of this invention will be described in detail.

FIGS. 4A and 4Bare flow diagrams illustrating a transmission process of streaming content according to an embodiment of the present invention. In the following description, for convenience, the plurality of terminal devices110will be separated into the first terminal device110ato the third terminal device110c, and the plurality of local caching devices120will be separated into the first local caching device120aand the second local caching device120b.

Additionally, let's suppose that the first terminal device110ato the third terminal device110crequest the same streaming content A. Further, let's suppose that, by a load balancer (a global server load balancing, GSLB), the first and second terminal devices110aand110bare connected to the first local caching device120a, and the third terminal device110cis connected to the second local caching device120b.

Also, requests for streaming content A of the first and second terminal devices110aand110bare transmitted to the contents providing server140via the first local caching device120aand the contents transmission control device130. Similarly, a request for streaming content A of the third terminal device110cis transmitted to the contents providing server140via the second local caching device120band the contents transmission control device130. In this case, the first and second local caching devices120aand120band the contents transmission control device130may intercept and thereby receive such requests being transmitted to the contents providing server140through the network150.

First, a flow of providing streaming content A to the first terminal device110awill be described hereinafter.

Referring toFIG. 4A, the first terminal device110atransmits a request for streaming content A to the contents providing server140through the network150. The first local caching device120amonitors the network150and receives the request, sent by the first terminal device110a, for the streaming content A (S401).

The first local caching device120adelivers, to the contents transmission control device130, the request for the streaming content A received through step S401(S403). The contents transmission control device130monitors the network150and, for determining whether the streaming content A in the request delivered through step S403is being already received, determines whether the streaming content A requested through step S403is registered in the streaming list132a(S405). Since the requested streaming content A is not registered in the streaming list132aas the result of determination at step S405, the contents transmission control device130determines that the streaming content A is not yet received, and then delivers the request for the streaming content A to the contents providing server140(S407).

The contents providing server140transmits streaming content to the first terminal device110ain response to step S407, and the contents transmission control device130monitors the network150and receives the streaming content transmitted by the contents providing server140(S409).

The content transmission control device130registers, in the streaming list132a, the streaming content A received through step S409and also registers, in the subscriber information132b, the first terminal device110athat requests the streaming content A through step S401(S411). Also, the contents transmission control device130delivers, to the first local caching device120a, the streaming content A being received through step S409(S413).

The first local caching device120adetermines a hit or not of prefix caching for the streaming content A by determining whether any chunk corresponding to a chunk divided from the streaming content A received through step S413is stored (S415). Since any chunk corresponding to a chunk divided from the streaming content A is not stored as the result of determination at step S415, the first local caching device120adetermines that prefix caching is missed, and then stores the streaming content A, being received through step S413, for a predetermined time from the current time point (S417). Let's suppose that at step S417the first local caching device120astores three chunks divided from the received streaming content A. Also, the first local caching device120adelivers the streaming content A, being received through step S413, to the first terminal device110a(S419).

As a result, since the first terminal device110arequests the streaming content A through step S401and then receives it through step S419, a time spent between requesting and receiving the streaming content A will be T1.

Next, a flow of providing streaming content A to the second terminal device110bwill be described hereinafter with reference toFIG. 4B.

Referring toFIG. 4B, the second terminal device110btransmits a request for streaming content A to the contents providing server140through the network150. The first local caching device120amonitors the network150and receives the request, sent by the second terminal device110b, for the streaming content A (S421).

The first local caching device120adelivers, to the contents transmission control device130, the request for the streaming content A received through step S421(S423).

The contents transmission control device130monitors the network150and, for determining whether the streaming content A in the request delivered through step S423is being already received, determines whether the streaming content A requested through step S423is registered in the streaming list132a(S425). Since the requested streaming content A is registered in the streaming list132athrough step S411as the result of determination at step S425, the contents transmission control device130determines that the streaming content A is being already received, and then registers, in the subscriber information132b, the second terminal device110bthat requests the streaming content A through step S421(S427). Also, the contents transmission control device130branches the streaming content A being currently received through step S409, delays the branched streaming content A for a predetermined time, and delivers the delayed streaming content A to the first local caching device120a(S429). Let's suppose that at step S429the contents transmission control device130delays the branched streaming content A for a time required for the second terminal device110bto play one chunk divided from the branched streaming content A.

The first local caching device120adetermines a hit or not of prefix caching for the streaming content A by determining whether any chunk corresponding to a chunk divided from the streaming content A received through step S429is stored (S431). In order to guarantee reliability of prefix caching, let's suppose that the first local caching device120adetermines that streaming content A is identical only if three chunks divided from the streaming content A received through step S429are hit. Since three chunks corresponding to three chunks divided from the streaming content A are stored through step S417as the result of determination at step S431, the first local caching device120adetermines that prefix caching is hit, and then transmits a cache hit notification for the streaming content A to the contents providing control device130(S433).

Since receiving a caching hit notification for the streaming content A through step S433, the contents transmission control device130transmits a chunk signature for identifying a chunk, divided from delayed streaming content A, to the first local caching device120arather than interrupts the delivery of delayed streaming content A being delivered through step S429(S435).

Then, using the chunk signature received through step S435, the first local caching device120atransmits, to the second terminal device110b, streaming content A stored through step S417(S437).

As a result, since the second terminal device110brequests the streaming content A through step S421and then receives it through step S437, a time spent between requesting and receiving the streaming content A will be T2. Particularly, transmitting the streaming content A, being currently sent to the first terminal device110a, to the second terminal device110bmay reduce traffic between the contents transmission control device130and the contents providing server140. Additionally, a hit of prefix caching at step S431may reduce traffic between the first local caching device120aand the contents transmission control device130. Therefore, a required time T2may be shorter than a required time T1.

Finally, a flow of providing streaming content A to the third terminal device110cwill be described hereinafter.

The third terminal device110ctransmits a request for streaming content A to the contents providing server140through the network150, and the second local caching device120bmonitors the network150and receives the request, sent by the third terminal device110c, for the streaming content A (S439).

The second local caching device120bdelivers, to the contents transmission control device130, the request for the streaming content A received through step S439(S441).

The contents transmission control device130monitors the network150and, for determining whether the streaming content A in the request delivered through step S441is being already received, determines whether the streaming content A requested through step S441is registered in the streaming list132a(S443). Since the requested streaming content A is registered in the streaming list132athrough step S411as the result of determination at step S443, the contents transmission control device130determines that the streaming content A is being already received, and then registers, in the subscriber information132b, the third terminal device110cthat requests the streaming content A through step S439(S445). Also, the contents transmission control device130branches the streaming content A being currently received through step S409, delays the branched streaming content A for a predetermined time, and delivers the delayed streaming content A to the second local caching device120b(S447). Let's suppose that at step S447the contents transmission control device130delays the branched streaming content A for a time required for the third terminal device110cto play one chunk divided from the branched streaming content A.

The second local caching device120bdetermines a hit or not of prefix caching for the streaming content A by determining whether any chunk corresponding to a chunk divided from the streaming content A received through step S447is stored (S449). Since any chunk corresponding to a chunk divided from the streaming content A is not stored as the result of determination at step S449, the second local caching device120bdetermines that prefix caching is missed, and then stores the streaming content A, being received through step S447, for a predetermined time from the current time point (S451). Let's suppose that at step S451the second local caching device120bstores three chunks divided from the received streaming content A. Also, the second local caching device120bdelivers the streaming content A, being received through step S447, to the third terminal device110c(S453).

As a result, since the third terminal device110crequests the streaming content A through step S439and then receives it through step S453, a time spent between requesting and receiving the streaming content A will be T3. Particularly, transmitting the streaming content A, being currently sent to the first terminal device110a, to the third terminal device110cmay reduce traffic between the contents transmission control device130and the contents providing server140. Additionally, a miss of prefix caching at step S449may not reduce traffic between the second local caching device120band the contents transmission control device130. Therefore, a required time T3may be shorter than a required time T1but be longer than a required time T2.

Hereinafter, a method for providing streaming content at the contents transmission control device130according to an embodiment of this invention will be described in detail.

FIG. 5is a flow diagram illustrating a method for providing streaming content at the contents transmission control device130according to an embodiment of the present invention.

Referring toFIG. 5, the contents transmission control device130monitors the network150and receives a request, sent to the contents providing server140by the terminal device110, for streaming content or a request for streaming content from the local caching device120(S501).

For determining whether the streaming content requested through step S501is being already received, the contents transmission control device130determines whether the requested streaming content is registered in the streaming list132a(S503).

In case the requested streaming content is not registered in the streaming list132aas the result of determination at step S503, the contents transmission control device130determines that the requested streaming content is not yet received, receives the streaming content from the contents providing server140, and then delivers the received streaming content to the local caching device120(S505).

On the contrary, in case the requested streaming content is registered in the streaming list132aas the result of determination at step S503, the contents transmission control device130determines that the requested streaming content is being already received, branches the streaming content being already received from the contents providing server140, delays the branched streaming content for a predetermined time, and then delivers the delayed streaming content to the local caching device120(S507). Here, the predetermined time may be, but not limited to, a time required for the terminal device110to play one chunk divided from the requested streaming content.

FIG. 6is a flow diagram illustrating another method for providing streaming content at the contents transmission control device130according to an embodiment of the present invention.

Referring toFIG. 6, the contents transmission control device130monitors the network150and receives a request, sent to the contents providing server140by the terminal device110, for streaming content or a request for streaming content from the local caching device120(S601).

For determining whether the streaming content requested through step S601is being already received, the contents transmission control device130determines whether the requested streaming content is registered in the streaming list132a(S603).

In case the requested streaming content is not registered in the streaming list132aas the result of determination at step S603, the contents transmission control device130determines that the requested streaming content is not yet received, and then delivers the request, received through step S601, for the streaming content to the contents providing server140(S605).

The contents transmission control device130monitors the network150and receives the streaming content sent to the terminal device110by the contents providing server140(S607). Also, the content transmission control device130registers, in the streaming list132a, the streaming content received through step S607and also registers, in the subscriber information132b, the terminal device110that requests the streaming content (S609).

Also, the contents transmission control device130delivers, to the local caching device120, the streaming content being received through step S607(S611).

On the contrary, in case the requested streaming content is registered in the streaming list132aas the result of determination at step S603, the contents transmission control device130determines that the requested streaming content is being already received, and then registers, in the subscriber information132b, the terminal device110that requests the streaming content (S613).

The contents transmission control device130branches the streaming content being already received, and delays the branched streaming content for a predetermined time (S615). Then the contents transmission control device130delivers the streaming content, delayed through step S615, to the local caching device120(S617).

Further, the contents transmission control device130determines a hit or not of prefix caching for the streaming content by determining whether a cache hit notification is received from the local caching device120(S619).

If it is determined at step S619that the caching hit notification is received, the contents transmission control device130determines that prefix caching for the streaming content is hit at the local caching device120, and then transmits, rather than interrupts the delivery of delayed streaming content, a chunk signature for identifying a chunk, divided from delayed streaming content, to the local caching device120until a request for interruption of streaming content is received from the local caching device120(S621).

FIG. 7is a flow diagram illustrating a process of interrupting the provision of streaming content at the contents transmission control device130according to an embodiment of the present invention.

Referring toFIG. 7, the contents transmission control device130monitors the network150and receives an interruption request, sent to the contents providing server140by the terminal device110, for streaming content (S701).

Then the contents transmission control device130interrupts the transmission of streaming content or chunk signature being sent to the local caching device120(S703). Also, the contents transmission control device130deletes, from the subscriber information132b, the registered terminal device110that requests interruption (S705).

Then the contents transmission control device130determines whether the number of the terminal devices110registered in the subscriber information132bto receive interruption-requested streaming content is zero as the result of deletion at step S705(S707).

If it is determined at step S707that the number of the terminal devices110for receiving the interruption-requested streaming content is greater than zero, the contents transmission control device130waits without performing subsequent steps.

On the contrary, if it is determined at step S707that the number of the terminal devices110for receiving the interruption-requested streaming content is zero, the contents transmission control device130interrupts the reception of the interruption-requested streaming content being currently received from the contents providing server140(S709).

Also, the contents transmission control device130deletes the interruption-requested streaming content from the streaming list132a(S711).

Hereinafter, a method for providing streaming content at the local caching device120according to an embodiment of this invention will be described in detail.

FIG. 8is a flow diagram illustrating a method for providing streaming content at the local caching device120according to an embodiment of the present invention.

Referring toFIG. 8, the local caching device120monitors the network150and receives a request, sent to the contents providing server140by the terminal device110, for streaming content (S801). Then the local caching device120delivers the request, received through step S801, for streaming content to the contents transmission control device130(S803). Also, the local caching device120receives streaming content, as a response to the delivered request at step S803, from the contents transmission control device130(S805).

The local caching device120determines whether any chunk corresponding to a chunk divided from the streaming content, received through step S805, is stored, and thereby determines whether prefix caching for streaming content is a hit or not (S807). Here, in order to guarantee reliability of prefix caching, the local caching device120may determine that the requested streaming content is identical only if a given number of chunks divided from the streaming content, received through step S805, are sequentially hit.

If it is determined at step S807that any chunk corresponding to a chunk divided from the received streaming content is not stored, the local caching device120determines that prefix caching for the requested streaming content is missed, and then stores streaming content, being currently received through step S805, for a predetermined time from the current time point. Here, the predetermined time may be, but not limited to, a time required for the terminal device110to play a given number of chunks divided from the streaming content received through step S805. Additionally, in case the local caching device120performs prefix caching of stored streaming content and delivers it to the terminal device110, a storage maintenance time may be a short time enough for a user of the terminal device110to feel as if streaming content is received in real time. However, a storage maintenance time may be a long time near the limit of being supportable by a physical environment of the local caching device120. Also, the local caching device120delivers streaming content, received through step S805, to the terminal device110until a request for interruption of streaming content is received from the terminal device110(step S811).

On the contrary, if it is determined at step S807that any chunk corresponding to a chunk divided from the received streaming content is stored, the local caching device120determines that prefix caching for the requested streaming content is hit, and then transmits a caching hit notification for the streaming content to the content transmission control device130. The local caching device120receives a chunk signature from the contents transmission control device130rather than interrupts the reception of streaming content from the contents transmission control device130(S815). Then, using the chunk signature received through step S815, the local caching device120transmits streaming content to the terminal device110(S817). Here, the local caching device120may transmit streaming content to the terminal device110until a request for interruption of streaming content is received from the terminal device110.

As fully discussed above, in a contents delivery service, the content transmission system100according to an embodiment of this invention permits caching as well as splitting for the local caching device120, thus reducing a traffic concentration for a CP and a load of network traffic due to duplicate transmission of contents.

Particularly, the content transmission system100according to an embodiment of this invention branches streaming content, being already received by the contents transmission control device130, delays the branched streaming content, and delivers the delayed streaming content to the local caching device120, thereby allowing transmission using prefix caching of streaming content to the terminal device110at the local caching device120.

Embodiments of this invention may be implemented by means of various manners, e.g., hardware, firmware, software, or combinations thereof. In case of implementation by hardware, an embodiment of this invention may be implemented by one or more ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays), processors, controllers, micro controllers, micro processors, etc.

Additionally, in case of implementation by firmware or software, an embodiment of this invention may be implemented in the form of a module, a procedure, a function, etc. for performing functions or operations discussed above, and then recorded on a computer-readable non-transitory storage medium through various computing manners. Here, this medium may contain, alone or in combination, program instructions, data files, data structures, and the like. These program instructions recorded in the medium may be specially designed and constructed for the present invention or well known to persons in the field of computer software. For example, the medium includes hardware devices specially configured to store and execute program instructions, including magnetic media such as a hard disk, a floppy disk and a magnetic tape, optical media such as CD-ROM (Compact Disk Read Only Memory) and DVD (Digital Video Disk), magneto-optical media such as floptical disk, ROM, RAM (Random Access Memory), and flash memory. Program instructions may include machine language codes made by a complier and high-level language codes executable in a computer using an interpreter or the like. These hardware devices may be configured to operating as one or more of software to perform the operation of this invention, and vice versa.

The present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, the disclosed embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of this invention to those skilled in the art. The principles and features of the present invention may be employed in varied and numerous embodiments without departing from the scope of the invention.

Additionally, any device or terminal according to this invention may be operated by commands that enable one or more processors to perform the above-discussed functions and process. For example, such commands may include interpretable commands such as script command, e.g., JavaScript or ECMAScript, executable code, or other commands stored in a computer-readable medium. Further, devices according to this invention may be implemented in a distributed form, such as Server Farm, over the network or implemented in a single computer device.

In embodiments, all steps and messages are not a target for selective implementation or omission. Additionally, in each embodiment, steps may not be always performed in the order described and may be changed in order. Similarly, delivery of messages may not be always performed in the order described and may be changed in order. Each step and messaging may be performed independently.

The system according to the present invention is applicable to the field of CDN in which a local caching device can deliver contents by performing caching together with splitting for streaming contents in real-time transmission of broadcasting contents to a terminal device such as a smart phone, a laptop, a tablet, or a phablet. Additionally, this invention has industrial applicability since there is sufficient marketability and actual executability.