US10880393B2 - Method for caching a piece of content in a content distribution network - Google Patents
Method for caching a piece of content in a content distribution network Download PDFInfo
- Publication number
- US10880393B2 US10880393B2 US15/300,132 US201515300132A US10880393B2 US 10880393 B2 US10880393 B2 US 10880393B2 US 201515300132 A US201515300132 A US 201515300132A US 10880393 B2 US10880393 B2 US 10880393B2
- Authority
- US
- United States
- Prior art keywords
- content
- proxy server
- item
- browser
- distribution network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004891 communication Methods 0.000 claims description 57
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000009471 action Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000001747 exhibiting effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H04L67/2842—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- 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/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/23116—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
-
- 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/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
Definitions
- the invention is situated in the field of content distribution in a communication network and more particularly relates to a technique for caching an item of content in a content distribution network.
- the origin servers are servers from which the content is introduced in the content distribution networks.
- This content is then duplicated, for example according to its popularity, in substitute servers located as close as possible to a point of access to the Internet (or “point of presence”).
- Content distribution networks include a routing mechanism for serving a request from a user relating to an item of content via the substitute server located as close as possible to the access point of the user.
- content distribution networks can be used to distribute any type of content.
- This can be audiovisual content such as video or audio files, of streams intended to be played continuously.
- An item of content thus denotes an “entire” piece of content (e.g. the whole of a video or audio file) or an item of content formed by one or more segments of an entire piece of content.
- proxy servers with which browser modules are associated.
- These proxy servers also called “browser accelerators”, generally have their own content duplication functions, as well as functions of data compression, request optimization and filtering, with the aim of reducing access times for a user to a service or to a requested item of content.
- the content duplication solutions provided by these proxy servers however exhibit drawbacks.
- the duplicated content is generally stored at peering points between the network to which such proxy servers belong and the network for example of an Internet access provider. A user of the Internet access provider network can thus obtain a desired item of content via his/her browser module only from substitute servers located at the interconnection of the Internet access provider network and the network to which such proxy servers belong.
- These solutions do not provide for duplicating an item of content as close as possible to the access of a user of the Internet access provider network, and this has the effect, among other outcomes, of generating significant traffic within the network.
- One of the aims of the invention is to remedy deficiencies/drawbacks of the prior art and/or to bring about improvements thereto.
- the invention relates to a method for caching an item of content in a content distribution network, this distribution network being a network of a first communication network, a browser module running on a user terminal and providing for accessing content by means of encrypted sessions, the browser module being associated with a proxy server of a second communication network interconnected with the first communication network, the proxy server controlling the state of a session in progress between the browser module and a content provider, the method comprising the following steps:
- the browser module sending a content-related request to the content provider
- the proxy server obtaining from the browser module at least one item of information relating to the request;
- the browser module receiving the content requested from the content provider
- the proxy server commanding the browser module to cache the content in the content distribution network.
- the method thus proposes a solution for caching an item of content in for example a content distribution network of an Internet access provider, providing for duplicating the content as close as possible to the access of the users of the access provider network. Due to more effective processing of content-related requests, the traffic within the provider network is found to be reduced. Users of the Internet access provider network requesting an item of content which has been cached in the distribution network of the access provider additionally benefit from faster distribution. User satisfaction is thus improved.
- this caching is made possible when outgoing messages sent from the browser module are encrypted.
- the method can thus advantageously be implemented by browser modules using the HTTP/2 over TLS protocol for messages that they transmit.
- the method provides for introducing the unencrypted content into the content distribution network in order to cache it. It is thus possible to benefit from the advantages of content distribution through a content distribution network as close as possible to the users.
- the securing of exchanges relating to requested content is nevertheless maintained insofar as the caching of the content in the content distribution network is performed only upon a network command.
- control of the state of a session in progress consists in checking that the content-related request is redirected by the proxy server to the content provider, after the proxy server has received the request via an encrypted session established with the browser module, the obtaining of the at least one item of request-related information being obtained when the request is being received by the proxy server.
- the proxy server is in this case in a “flow intercepting” arrangement. More specifically, an encrypted session is established between the browser module and the proxy server with which it is associated. When a request relating to an item of content intended for a content provider is sent from the browser module, it is first sent to the proxy server via this encrypted session, and then redirected by the latter to the content provider.
- the proxy server thus permanently has access to the content of the messages received from the browser module. It can notably obtain in real time information relating to a requested item of content. The requested content is thus easily identified, thereby having the effect of simplifying and limiting exchanges with the proxy server when the caching method is implemented.
- the proxy server in fact has immediate access to the data transiting via the encrypted session.
- the step for obtaining information relating to the requested content therefore does not require, in addition to the request relating to an item of content, the sending to the proxy server of reports relating to the content requests transmitted by the browser module according to, for example, an asynchronous mode.
- the method additionally comprises the following steps implemented by a control server belonging to the first communication network:
- the selection of a content distribution network is centralized at the control server.
- the control server provides, for example, for choosing the content distribution network according to criteria based on the closeness of access points of the users of the network of an Internet access provider, the availability of the candidate content distribution networks, or according to the type of content to be cached.
- the control server thus provides for choosing a distribution network suitable for the content and/or the terminal from which a request relating to an item of content has been transmitted.
- this network is that of an Internet access provider
- the proxy server which does not have access to the content distribution networks of the provider, is capable of commanding a caching of a requested item of content in a content distribution network chosen by the access provider.
- control server is located in the provider network and has overall knowledge of the content distribution networks belonging to the provider network. Additionally, confidentiality of the information which the control server has for the selection of a content distribution network, notably on the structure of the access provider network, is preserved. Specifically, this information is not communicated to the proxy server.
- Centralized management of content distribution networks by the control server moreover facilitates the maintenance of infrastructures implementing the method.
- the addition or removal of a content distribution network, but also the selection of an alternative distribution network in the event that a content distribution network is unavailable are simple to implement and have no impact on other network equipment.
- the selection of the distribution network furthermore allows offered services to be differentiated according to the requested content, and/or according to the terminal via which a request has been transmitted. For example, it allows a content distribution network to be associated with content requiring a particular type of distribution (e.g. streaming, restricted broadcast). A content distribution network can likewise be associated with certain types of terminals, for which particular criteria based on quality or security are demanded as regards the distribution of a requested item of content.
- a content distribution network can likewise be associated with certain types of terminals, for which particular criteria based on quality or security are demanded as regards the distribution of a requested item of content.
- the method additionally comprises a step implemented by the control server of receiving from the proxy server information relating to at least a second browser module having a session established with the proxy server, the content distribution network being selected based on this information.
- the information received by the control server is by way of example the number of browser modules having a session established with the proxy server, information identifying the browser modules (e.g. the HTTP header field “User-Agent”), or the list of IP addresses of the user terminals on which these modules run.
- the control server can thus locate the terminals from their IP address, and select a content distribution network according to this location.
- the method additionally comprises a step of sending to the proxy server a caching policy containing at least one item of data for which a caching of the content is triggered.
- the data contained in the caching policy sent to the proxy server can be used to distinguish between the items of content that an Internet access provider wishes to cache.
- This data is for example an identifier of a network resource (e.g. a uniform resource locator), an identifier of a content provider (e.g. IP (Internet Protocol) address) or more generally an identifier of a resource referencing several items of content.
- This data can also make reference to a range of addresses.
- This data thus provides for restricting a caching in a distribution network of the Internet access provider to specifically identified content or to content supplied by specifically identified resources.
- This data is not limited to identifiers making reference to content; it can also include indicators of a quality level for content to be cached, or indicators of popularity of an item of content.
- a caching operation can thus advantageously be restricted to content exhibiting a quality level higher than a predefined quality level, or be restricted to content for which a minimum number of requests relating to the content is verified by the proxy server. It is also to be noted that these items of data, which form criteria for deciding whether an item of content must be cached in a distribution network of the access provider, can be combined with each other to form new decision criteria.
- the at least one item of data contained in the caching policy is a list of uniform resource locators
- the method additionally comprising a step of the proxy server checking, with the aid of the at least one item of request-related information, that the request is to a content provider belonging to the list of uniform resource locators, the command to cache the content then being conditional upon whether the content provider belongs to the list.
- Uniform resource locator refers to a string of characters used to address the resources made available on the Internet network. These resources can be of different types: HTML document, image, sound, video, website, etc. These addresses can in particular refer to a server of a content provider, a server of a content distribution network, or even the items of content themselves provided by the servers.
- the list of uniform resource locators can thus be used to restrict the caching of content to a predetermined number of these resources. In particular it can be used to not send a caching command for an item of content from a third party for which a caching action is not desired. The caching of an item of content is thus only implemented for trusted third parties. Notably, it has the effect of protecting the first network (for example that of an Internet access provider) from an introduction of content likely to present a risk to its integrity.
- An Internet access provider can for example construct a list for a particular type of content provider (e.g. a list containing only content providers referred to as “premium”).
- the method comprises the following steps:
- control server storing a cached content identifier in combination with an identifier of the distribution network in which the content has been cached;
- the proxy server checking, with the aid of the content identifier and of the at least one item of request-related information, that the requested content has been cached;
- the proxy server redirecting the request to the distribution network in which the requested content was previously cached.
- the proxy server can be informed of content which has been cached.
- a request to the content provider by the proxy server can be avoided when it concerns an item of content that has already benefited from being cached. This also results in a reduction in the number of messages exchanged in the networks implementing the method.
- the method additionally comprises a step of the proxy server sending the cached content identifier in combination with the identifier of the distribution network in which the content has been cached to at least a second browser module having a session established with the proxy server, another request transmitted from the at least one second browser module for the requested content being redirected by the at least one second browser module to the distribution network in which the content has been cached.
- the proxy server at a given instant, has in general several sessions open with browser modules which are associated with it. Through these sessions, a proxy server can inform the browser modules, with which a session is established, of the caching of an item of content and of the content distribution network in which the content has been cached.
- the terminal prior to a request relating to an item of content and transmitted by its browser module, can directly check that the content has already been cached.
- the browser module advantageously redirects the content request directly to the content distribution network in which the content has been cached, without passing via the proxy server.
- the processing of the request relating to an item of content is accelerated, and the traffic to the content provider reduced. Interconnection costs between the first and second networks also turn out to be reduced.
- the method additionally comprises the control server sending to the proxy server a set of instructions that can be executed by the browser module, this set being transmitted by the proxy server, with the command requesting the caching of the content, and being executed by the browser module prior to the caching.
- the sending of instructions that can be executed by the browser module enables preprocessing to be carried out on the content to be cached before it is actually cached.
- This preprocessing consists for example in segmenting the content, or encoding it in another format, in order to facilitate its caching and its later restoration by the content distribution network.
- These operations are additionally advantageously performed by the terminal on which the browser module runs. Thus a saving is achieved on the computation resources of the control server and proxy server.
- the sending of executable instructions also exhibits the advantage of securing the caching command. Specifically, these instructions add complexity to the proxy server obtaining the caching policy of the Internet access provider.
- the invention relates to a browser module comprising program code instructions intended to command the execution of the following steps, when the module is executed on a terminal:
- the invention relates to a proxy server, connected with a browser module, comprising:
- a first control module arranged to control the state of a session in progress between the browser module and a content provider
- an obtain module arranged to obtain from the browser module at least one item of information relating to a requested item of content
- a command module arranged to command the browser module to cache an item of content received from the latter in a content distribution network, the command containing an identifier of the distribution network;
- a second control module arranged to check whether an item of content has been cached in a content distribution network of the communication network.
- the invention proposes a system for caching an item of content in a content distribution network, the distribution network being a network of a first communication network, comprising a browser module according to the second aspect associated with a proxy server according to the third aspect, the proxy server belonging to a second communication network interconnected with the first communication network.
- the system additionally comprises a control server, the control server belonging to the communication network and being arranged to:
- the invention also relates to a program for a proxy server, comprising program code instructions intended to control the execution of the steps of the method described previously, when said program is executed by the proxy server and a recording medium that can be read by a proxy server on which a program for a proxy server is recorded.
- the invention relates to a recording medium that can be read by a terminal, on which a browser module is recorded.
- FIG. 1 a represents a system for caching an item of content according to a first particular embodiment
- FIG. 1 b represents a system for caching an item of content according to a second particular embodiment
- FIG. 2 is a diagrammatic representation of the steps of the method for caching an item of content and of the exchanges between equipment implementing the method according to a particular embodiment
- FIG. 3 represents a proxy server according to a particular embodiment
- FIG. 4 represents a browser module in structural form according to a particular embodiment.
- FIG. 1 a represents a system for caching an item of content in a content distribution network according to a first particular embodiment.
- the system comprises a proxy server 20 with which there is associated a browser module 12 running on a user terminal 10 (e.g. a computer, cellphone, tablet), and a control server 30 .
- the system is arranged to cache in a content distribution network an item of content desired by a user of the terminal 10 upon receiving a caching command transmitted by the proxy server 20 .
- the user uses for example a man-machine interface of the browser module 12 in order to select the desired content.
- the browser module 12 is arranged to obtain the required content from a content provider 40 .
- a second terminal 10 ′ on which there runs a browser module 12 ′ associated with the proxy server 20 is also represented.
- the browser module 12 ′ is arranged to obtain an item of content cached in a content distribution network.
- a requested item of content will refer to an item of content requested by a user of the terminal 10 , or equally to a content-related request transmitted by the browser module 12 .
- the proxy server 20 is for example located in a network 2 .
- the proxy server is in particular an item of physical equipment which is not administered by the Internet access provider which manages the network 1 .
- the proxy server 20 is for example dedicated to the acceleration of requests transmitted by the browser modules associated with it. Furthermore, it is arranged to control the states of the sessions in progress between the browser modules 12 , 12 ′ and the content provider 40 .
- the proxy server 20 is a module integrated with an item of equipment of the network 2 (e.g. router, access gateway).
- the control server 30 is an entity through which the management of the various content distribution networks of the network 1 can be centralized. It is located in a communication network 1 and communicates with content distribution networks 100 , 102 also located in the network 1 .
- the network 1 is for example the network of an Internet access provider.
- the control server 30 also communicates with the proxy server 20 .
- a request relating to an item of content C is transmitted from the browser module 12 to the content provider 40 .
- This request is for example a request in accordance with the HTTP/2 over TLS protocol and relates to an audio or video resource provided by the content provider 40 .
- information relating to the requested content and to the obtained content is sent at regular intervals to the proxy server 20 .
- This information is used by the proxy server 20 to identify these items of content. This is particularly useful for the requests relating to content sent via encrypted sessions, this content being unable in this latter case to be identified from the requests themselves.
- the information on the content requested and/or obtained is then transmitted to the control server 30 .
- the control server 30 is arranged to select with the aid of this information a content distribution network, suitable for distributing the types of content identified, in which to cache the content. It is also arranged to then indicate to the proxy server 20 the distribution network 100 selected for caching the content.
- the proxy server 20 is arranged to command the browser module 12 to cache the content C, which was previously delivered to it, in the content distribution network 100 selected by the control server 30 . Upon receiving the caching command, the browser module 12 sends the content C to the selected content distribution network 100 .
- the caching system does not include a control server 30 .
- the proxy server 20 commands for example the caching of the identified content in a predefined content distribution network 100 , 102 .
- the proxy server 20 is also arranged to send an identifier of the cached content to the browser modules having a session established with the proxy server.
- a second terminal 10 ′ having a session established with the proxy server 20 is then able to request the content cached by the terminal 10 directly from the content distribution network 100 .
- the proxy server is located in the network 1 but is not administered by the Internet access provider or the operator of the network 1 .
- FIG. 1 b represents a system for caching an item of content in a content distribution network according to a second particular embodiment.
- the proxy server 20 is an item of equipment of the network 2 intercepting exchanges between the user terminal 10 and the content provider 40 . All the requests relating to an item of content and transmitted by the browser module 12 running on the user terminal 10 pass through the proxy server 20 . These requests are more particularly sent from the browser module 12 via an encrypted session established with the proxy server 20 . They are then redirected to the content provider 40 that is the addressee of the content-related request.
- This particular location of the proxy server 20 notably enables the latter to immediately have information about the requested content without waiting for this information to be sent to it by the browser module 12 after the content C has been delivered.
- FIG. 2 is a diagrammatic representation of the steps of the method for caching an item of content and of the exchanges between the equipment implementing the method in a system according to FIG. 1 a .
- the steps for obtaining the content, once the latter is cached, are also represented.
- the method is made up of three phases P 1 , P 2 , P 3 .
- the first phase P 1 forms a configuration phase of a caching system as described with reference to FIG. 1 a .
- the second phase P 2 corresponds to a first delivery to a user terminal 10 of a content C requested via a browser module 12 running on the user terminal 10 .
- the third phase P 3 corresponds for its part to the steps of the method for the actual caching of the content C in a content distribution network CDN 1 100 belonging to the network 1 .
- a control server 30 located for example in the network 1 of an Internet access provider, transmits during a step E 0 a caching policy to the proxy server 20 located in a network 2 not managed by the Internet access provider.
- the caching policy defines a list of uniform resource locators for which the caching method is implemented. These uniform resource locators are for example addresses of servers of content providers or of content distribution networks offering content. They can also be reduced to a domain name, thus indicating that the caching method must be implemented for all the content provided for this domain name.
- the list of uniform resource locators provides for differentiating between content to be cached in the network 1 of the Internet access provider and content for which such a caching action is not sought.
- the sending at step E 0 of the caching policy can also be accompanied by a set of instructions (e.g. JavaScript code) that can be executed by user terminals, or by a file referred to as “manifest” setting out a list of addresses of segments of an item of content (“chunks”) associated with a quality level.
- a set of instructions e.g. JavaScript code
- the proxy server 20 transmits an acknowledgement to the control server 30 in order to indicate to the latter that the caching policy has definitely been received.
- this acknowledgement contains a list of identifiers of user terminals having a session established with the proxy server 20 . This latter list can furthermore be filtered in order to contain only identifiers of user terminals subscribed to the services of the Internet access provider.
- the first phase P 1 ends with the reception of the acknowledgement from the proxy server 20 .
- This phase is repeated at regular intervals in order that the proxy server 20 can have an up-to-date caching policy.
- the browser module 12 sends during a step F 0 a request relating to an item of content C to a content provider 40 via an encrypted session.
- the request relating to the content C is an HTTP/2 over TLS request: “Get www.svr.fr/C”.
- the content provider 40 returns in response to this request a message of redirection to a content distribution network 200 located outside the network 1 of the Internet access provider, where the content is stored. This redirection message is received by the browser module 12 during a step F 1 .
- the request relating to the content C is redirected by the proxy server 20 to the content distribution network 200 .
- this network does not have servers located in the network 1 .
- the delivery of the content from this content distribution network involves the contribution of a significant number of items of equipment of the communication network 1 .
- the request relating to the content C is transmitted via a TLS encrypted session to the proxy server 20 .
- the latter checks during a step G 0 whether the identifier of the content distribution network 200 belongs to the uniform resource locator list defined by the caching policy obtained during phase P 1 .
- the particular case is considered in which the identifier of the content distribution network does belong to the list of addresses.
- the proxy server 20 checks during a step G 1 , with the aid of the identifier of the requested content, whether the latter has already been cached in a content distribution network of the network 1 .
- the identifier of the requested content is for example compared with a list of identifiers of cached content, stored by the proxy server 20 .
- the proxy server 20 transmits the request relating to the content C to the content distribution network 200 in which this content is stored.
- the content C is then sent to the browser module 12 , which receives it during a step F 3 .
- This reception of the content C by the browser module 12 corresponds to a first reception of the content by the browser module before it is cached in the network 1 , and ends the second phase P 2 .
- the request relating to the content C is simply transmitted to the content distribution network 200 in accordance with the known technique.
- the third phase P 3 starts with the browser module 12 sending to the proxy server 20 , during a step F 4 , information relating to the content obtained by the browser module 12 .
- This information is for example a history of the requests relating to an item of content and transmitted from the browser module 12 .
- the information comprises in particular the identifier of the content C obtained by the browser module 12 during the second phase P 2 and an identifier of the content distribution network 200 from which the content C was obtained.
- the proxy server 20 sends an acknowledgement to the browser module 12 , then uses the information received from the browser module 12 to determine, during a step G 2 , whether the content C is an item of content to be cached in the network 1 . To this end, as described previously for steps G 0 and G 1 , the proxy server 20 checks whether the identifier of the content distribution network 200 corresponds to an address for which caching in the network 1 is desired (step G 0 ), and whether furthermore the content C has not yet been cached in the network 1 (step G 1 ).
- the proxy server 20 stores a list of items of content to be cached, which list is updated during phase P 1 following steps G 0 and G 1 .
- Step G 2 is not implemented.
- the content C is then added to the list of items of content to be cached at the end of steps G 0 and G 1 , i.e. when on the one hand caching in the network 1 is desired for the content distribution network 200 from which the content C was obtained, and on the other hand the content C has not yet been cached in the network 1 .
- This list can be stored locally or in a remote database controlled for example by the Internet access provider. There is however no restriction as regards administration of this database which can also be delegated to a third entity.
- step G 2 brings the caching method to an end.
- the proxy server 20 When the content C is identified as being an item of content to be cached, the proxy server 20 then sends during a step G 3 a notification to the control server 30 .
- This notification informs the latter that the content C has recently been delivered to the browser module 12 running on the user terminal 10 . It notably includes an identifier of the content C, and an identifier of the user terminal 10 .
- the control server 30 selects during a step E 2 a content distribution network 100 , 102 belonging to the network 1 according to the identifier of the content C and that of the user terminal 10 .
- the identifier of the content C and that of the user terminal 10 are given by way of example. There is no restriction as to the criteria used for the selection of the content distribution network by the control server 30 .
- the control server 30 has the means to select the content distribution network that is the most suitable for storing the content C in the network 1 .
- the content distribution network 100 is associated, by a policy of the Internet access provider, with the type of terminal having the content C and with the type of content C requested, and is selected.
- control server 30 can also, during this step E 2 , perform a check as to whether a caching of the content C is authorized according to a caching policy defined by the Internet access provider.
- a caching policy defined by the Internet access provider.
- Such a policy consists for example in excluding from caching in the network content having a memory size smaller than a threshold.
- the control server 30 transmits to the proxy server 20 , during a step E 3 , an identifier of this distribution network 100 for caching the content C. It also memorizes that the content C is cached in the content distribution network 100 .
- the proxy server 20 sends during a step G 4 a command for caching the content C in the content distribution network 100 to the browser module 12 .
- the latter receives the caching command and sends an acknowledgement to the proxy server 20 in order to notify it that the command has definitely been received.
- the sending of the caching command is more particularly performed in “push” mode, i.e. without the user terminal 10 having requested beforehand that the command be sent.
- the caching command contains the identifier of the content C to be cached, the identifier of the selected content distribution network 100 for the caching of the content C, and optionally instructions for preprocessing the content before the content is cached, which instructions can be executed by the user terminal 10 .
- the preprocessing instructions provide, for example, for converting the content C into a given format, or for splitting it into several data segments.
- the preprocessing instructions also add complexity to accessing the content distribution policy implemented by the Internet access provider for the proxy server 20 , thereby reinforcing the confidentiality of the policy.
- a manifest file can also be associated with the sending of the caching command.
- the manifest file is for example obtained from the control server 30 during step E 0 .
- This file contains a set of uniform resource locators to content categorized by quality levels.
- the uniform resource locators of the manifest file identify for example content which has previously been cached. In one embodiment, this file can advantageously be used by the terminal 10 to maximize the number of requests directly addressed to the content distribution network in which an item of content has been cached.
- Step F 6 the content C stored on the user terminal 10 is sent to the content distribution network 100 identified with the aid of the network identifier received with the caching command. If necessary, the content preprocessing instructions are executed by the user terminal 10 before the content is sent to the content distribution network 100 . Step F 6 brings an end to both the third phase P 3 and the caching method.
- the selection of a content distribution network by the control server 30 is optional. Steps G 3 and E 1 to E 3 are hence not implemented.
- the content distribution network 100 in which the content C is cached is predefined by the Internet access provider.
- the identifier of the predefined content distribution network is for example communicated to the proxy server 20 during system configuration step E 0 .
- a check as to whether the content C is an item of content for which caching is desired is performed based on a content identifier or an IP address of a content provider.
- An item of content can for example be explicitly referred to by a uniform resource locator.
- a range of addresses can also be defined by a network mask applied to an IP address. This range thus provides for indicating a set of items of content to be cached.
- An item of content to be cached can also be identified from a manifest file. In this latter case, an item of content is for example verified to be an item of content to be cached when the quality level associated with it in the manifest file is higher than a quality level predefined by the caching policy received by the proxy server 20 during step E 0 .
- the control server 30 can indicate to the proxy server 20 , via this caching policy, a threshold of requests relating to the content beyond which step G 3 is implemented.
- control server 30 selects a content distribution network based on information received from the proxy server 20 , relating to browser modules that have a session established with the latter. This information is for example sent by the proxy server 20 during the acknowledgement of receipt of the caching policy at step E 0 , or during the sending of a notification at step G 3 . This information can also be the subject of a specific send action to the control server 30 . Information relating to the quality level of an item of content or to a popularity level of the content can also be taken into account when the content distribution network is being selected. This information includes for example quality levels associated with content referred to by a manifest file or the number of queries requesting an item of content over a predefined time interval.
- the sending to the proxy server 20 , by the browser module 12 , of information relating to the content which it has obtained is optional.
- step F 4 is not implemented.
- the proxy server 20 is arranged to intercept exchanges between the user terminal 10 and the content provider 40 .
- steps F 0 to F 2 , G 0 and G 1 are performed again. These steps concern a new request relating to the content C.
- This new request is transmitted from a browser module 12 ′ running on a user terminal 10 ′.
- the content C is this time identified at step G 1 as having already been cached in the network 1 .
- the proxy server 20 does not transmit the request to the content distribution network 200 , but redirects the request to the control server 30 during a step G 2 ′.
- the browser module 12 ′ receives the redirection message during a step F 7 , and then resends the content-related request to the control server 30 during a step F 8 .
- the control server 30 receives during a step E 4 the request relating to the content C and transmits to the browser module 12 ′ a redirection message to the content distribution network 100 of the network 1 in which the content C is stored.
- the browser module 12 ′ receives the redirection messaging during a step F 9 , and, during a step F 10 , redirects the request relating to the content C to the content distribution network 100 of the network 1 .
- the content C is received by the browser module 12 ′ during a step F 11 .
- the caching method has been described for the caching of only one given item of content at a time.
- the messages exchanged can however easily be adapted in order to process several items of content simultaneously.
- the proxy server 20 notifies that the browser module 12 has obtained several items of content in the same send action.
- the proxy server 20 can also notify of the obtaining of several items of content for various browser modules having a session established with it in the same send action.
- the selection by the control server 30 of the content distribution network during step E 2 can then take into account all the items of content notified by the proxy server 20 .
- the control server 30 can then send at step E 3 a selected content distribution network identifier for several items of content in the same send action.
- the caching command is then sent as previously described during step G 4 to each browser module that has obtained an item of content to be cached.
- the caching policy transmitted to the proxy server 20 during phase P 1 can be transmitted to the browser modules associated with the proxy server 20 .
- a browser module which has the caching policy is then capable of determining, as described at step G 0 , whether the content referred to in a request for an item of content provided by a given content provider is to be cached in a content distribution network of the network 1 according to the caching method, before actually sending the request. The request can thus if necessary be sent directly to the content provider without the proxy server 20 intervening.
- the identifier of the content in combination with the identifier of the distribution network in which the content has been cached is sent to the browser modules that have a session established with the proxy server.
- another request transmitted from one of these browser modules for the cached content can be redirected directly by this browser module to the distribution network in which the content has been cached.
- the method has moreover been described with an implementation for the HTTP/2 over TLS protocol; however it can be adapted to any type of client-server exchange protocol exhibiting the same issues of access to content to be cached in a particular content distribution network.
- Such a proxy server 20 notably comprises:
- the notification module 25 is optional. This is notably the case when the method is implemented without a control server 30 .
- FIG. 4 represents a browser module 12 arranged to run on a terminal 10 , said module comprising:
- the recording sub-module 308 is optional. This is notably the case when the caching method is implemented by a system according to the second particular embodiment described with reference to FIG. 1 b.
- module can be in this document a software component or a hardware component, or an assembly of hardware and/or software components, suitable for implementing a function or a set of functions, according to that which is described previously for the module concerned.
- a software component corresponds to one or more computer programs, one or more sub-programs of a program, or more generally to any element of a program or software item.
- Such a software component is stored in memory, and then loaded and executed by a data processor of a physical entity, and is likely to access the hardware resources of this physical entity (memories, recording media, communication buses, electronic input/output boards, user interfaces, etc.).
- a hardware component corresponds to any element of a hardware assembly.
- This can be a hardware component that may or may not be programmable, with or without an integrated processor for executing software.
- This is for example an integrated circuit, a chip card, an electronic board for executing firmware, etc.
- the modules 21 , 22 , 23 , 24 and 25 are arranged to implement the previously described caching method. These are preferably software modules containing software instructions to enable those of the steps of the previously described caching method, which are implemented by a proxy server, to be executed.
- the sub-modules 300 , 302 , 304 , 306 and 308 are arranged to implement the previously described caching method.
- These are preferably software modules containing software instructions to enable those of the steps of the previously described caching method, which are implemented by a terminal on which a browser module runs, to be executed.
- the invention also relates to:
- the software modules can be stored in or transmitted by a data medium.
- a data medium can be a hardware storage medium, for example a CD-ROM, a magnetic floppy disk or a hard disk, or a transmission medium such as an electrical, optical or radio signal, or a telecommunication network.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
-
- a
first control module 21, arranged to control the state of a session in progress between a browser module and a content provider; - an obtain
module 22, arranged to obtain from a browser module at least one item of information relating to a requested item of content; - a command module 23, arranged to command a browser module to cache an item of content received by the latter in a content distribution network, the command containing an identifier of this distribution network;
- a
second control module 24, arranged to check whether an item of content has been cached in a content distribution network; - a notification module 25, arranged to notify a control server that an item of content has been delivered to a browser module.
- a
-
- an
interrogation sub-module 300, arranged to access content by means of encrypted sessions and to send a request relating to an item of content to a content provider; - a first receive sub-module 302, arranged to receive an item of content requested from a content provider;
- a second receive sub-module 304, arranged to receive from a proxy server a command for caching in a content distribution network a previously received item of content;
- a command sub-module 306, arranged to command, following reception of the caching command, the sending of an item of content, previously received by the terminal on which said module is running, to a content distribution network;
- a
recording sub-module 308, arranged to log information on the requests relating to an item of content and transmitted from the browser module.
- an
-
- a program for a proxy server, comprising program code instructions intended to control the execution of the steps of the previously described caching method, when said program is executed by said proxy server;
- a recording medium that can be read by a proxy server on which the program for such a server is recorded.
Claims (15)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1452751A FR3019427A1 (en) | 2014-03-28 | 2014-03-28 | METHOD OF CALLING A CONTENT IN A CONTENT DISTRIBUTION NETWORK |
FR1452751 | 2014-03-28 | ||
PCT/FR2015/050772 WO2015145079A1 (en) | 2014-03-28 | 2015-03-26 | Method for caching a piece of content in a content distribution network |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170142218A1 US20170142218A1 (en) | 2017-05-18 |
US10880393B2 true US10880393B2 (en) | 2020-12-29 |
Family
ID=51564730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/300,132 Active 2035-12-14 US10880393B2 (en) | 2014-03-28 | 2015-03-26 | Method for caching a piece of content in a content distribution network |
Country Status (4)
Country | Link |
---|---|
US (1) | US10880393B2 (en) |
EP (1) | EP3123700B1 (en) |
FR (1) | FR3019427A1 (en) |
WO (1) | WO2015145079A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016106557A1 (en) * | 2014-12-30 | 2016-07-07 | 上海贝尔股份有限公司 | Method and apparatus for sending video |
US11973815B2 (en) * | 2017-10-03 | 2024-04-30 | Sony Group Corporation | Network assistance for uplink streaming |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173311B1 (en) * | 1997-02-13 | 2001-01-09 | Pointcast, Inc. | Apparatus, method and article of manufacture for servicing client requests on a network |
US20020016911A1 (en) | 2000-08-07 | 2002-02-07 | Rajeev Chawla | Method and system for caching secure web content |
US20020091792A1 (en) | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for client sharing of cached content |
US20030074425A1 (en) * | 2001-10-12 | 2003-04-17 | Mvp Kabushiki Kaisha | Browser with proxy server and information copying system |
US20050010653A1 (en) | 1999-09-03 | 2005-01-13 | Fastforward Networks, Inc. | Content distribution system for operation over an internetwork including content peering arrangements |
US20110131341A1 (en) * | 2009-11-30 | 2011-06-02 | Microsoft Corporation | Selective content pre-caching |
US20120254341A1 (en) * | 2001-01-12 | 2012-10-04 | Parallel Networks, Llc | Method and system for dynamic distributed data caching |
US20130166669A1 (en) * | 2011-04-19 | 2013-06-27 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
-
2014
- 2014-03-28 FR FR1452751A patent/FR3019427A1/en not_active Withdrawn
-
2015
- 2015-03-26 US US15/300,132 patent/US10880393B2/en active Active
- 2015-03-26 EP EP15732020.1A patent/EP3123700B1/en active Active
- 2015-03-26 WO PCT/FR2015/050772 patent/WO2015145079A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173311B1 (en) * | 1997-02-13 | 2001-01-09 | Pointcast, Inc. | Apparatus, method and article of manufacture for servicing client requests on a network |
US20050010653A1 (en) | 1999-09-03 | 2005-01-13 | Fastforward Networks, Inc. | Content distribution system for operation over an internetwork including content peering arrangements |
US20020016911A1 (en) | 2000-08-07 | 2002-02-07 | Rajeev Chawla | Method and system for caching secure web content |
US20020091792A1 (en) | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for client sharing of cached content |
US20120254341A1 (en) * | 2001-01-12 | 2012-10-04 | Parallel Networks, Llc | Method and system for dynamic distributed data caching |
US20030074425A1 (en) * | 2001-10-12 | 2003-04-17 | Mvp Kabushiki Kaisha | Browser with proxy server and information copying system |
US20110131341A1 (en) * | 2009-11-30 | 2011-06-02 | Microsoft Corporation | Selective content pre-caching |
US20130166669A1 (en) * | 2011-04-19 | 2013-06-27 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
Non-Patent Citations (5)
Title |
---|
ADAM STUBBLEFIELD ; AVIEL D. RUBIN ; DAN S. WALLACH: "Managing the Performance Impact of Web Security", ELECTRONIC COMMERCE RESEARCH, KLUWER ACADEMIC PUBLISHERS, BO, vol. 5, no. 1, 1 January 2005 (2005-01-01), Bo, pages 99 - 116, XP019206445, ISSN: 1572-9362, DOI: 10.1023/B:ELEC.0000045975.59531.08 |
Adam Stubblefield et al, "Managing the Performance Impact of Web Security" Electronic Commerce Research, Kluwer Academic Publishers, BO, vol. 5, No. 1, Jan. 1, 2005 (Jan. 1, 2005), pp. 99-116, XP019206445. |
International Preliminary Report on Patentability and English translation of the Written Opinion of the International Searching Authority dated Oct. 4, 2016 for corresponding International Application No. PCT/FR2015/050772, filed Mar. 28, 2014. |
International Search Report dated Aug. 28, 2015, for corresponding International Application No. PCT/FR2015/050772, filed Mar. 26, 2015. |
Written Opinion of the International Searching Authority dated Mar. 26, 2015, for corresponding International Application No. PCT/FR2015/050772, filed Mar. 28, 2014. |
Also Published As
Publication number | Publication date |
---|---|
FR3019427A1 (en) | 2015-10-02 |
WO2015145079A1 (en) | 2015-10-01 |
EP3123700A1 (en) | 2017-02-01 |
EP3123700B1 (en) | 2020-04-29 |
US20170142218A1 (en) | 2017-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9888089B2 (en) | Client side cache management | |
CN1855884B (en) | Load balancing server and system | |
US11271972B1 (en) | Data flow logic for synthetic request injection for cloud security enforcement | |
Leung et al. | Content Distribution Network Interconnection (CDNI) Requirements | |
WO2017088381A1 (en) | Method, apparatus and system for playing live video | |
CN101326493B (en) | Method and device for distributing load of multiprocessor server | |
US11888902B2 (en) | Object metadata-based cloud policy enforcement using synthetic request injection | |
EP2870735B1 (en) | Method for adding client capability data to a sip message | |
US12088623B2 (en) | Edge network-based account protection service | |
US10154007B1 (en) | Enterprise cloud access control and network access control policy using risk based blocking | |
US20180205720A1 (en) | Enabling Setting Up A Secure Peer-To-Peer Connection | |
JP2011090685A (en) | Transmission of application information and command using presence technology | |
US20110264777A1 (en) | Communications device and method | |
CN109981803A (en) | Service request processing method and device | |
US20170041422A1 (en) | Method and system for retrieving a content manifest in a network | |
US11528326B2 (en) | Method of activating processes applied to a data session | |
US20170026481A1 (en) | Technique for controlling the service request routing | |
CN105828046A (en) | Data flow transmission method and device | |
CN107113304B (en) | Method and module for intermediary delegation on encrypted data exchange | |
US10880393B2 (en) | Method for caching a piece of content in a content distribution network | |
US10129320B2 (en) | QoS improvement method, apparatus, and system | |
US20200336515A1 (en) | Establishing And Managing Connections For Real Time Communications | |
US7689648B2 (en) | Dynamic peer network extension bridge | |
WO2008049853A2 (en) | Methods, apparatuses and computer program for improving sip parse performance | |
CN114124935A (en) | Method, system, equipment and storage medium for realizing FTP service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ORANGE, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FIEAU, FREDERIC;FROMENTOUX, GAEL;STEPHAN, EMILE;SIGNING DATES FROM 20161014 TO 20161103;REEL/FRAME:041279/0505 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |