Dynamic Acceleration in Content Delivery Network

20170366409 · 2017-12-21

    Inventors

    Cpc classification

    International classification

    Abstract

    A method may include receiving, by a CDN node, configuration information and conducting route exploration based on the configuration information to obtain an exploration value. After the CDN node receives an access request to a domain required dynamic acceleration, the exploration value of the CDN node and other CDN nodes may be multiplied by a corresponding weight associated with the configuration information, respectively, and corresponding values may be added together to obtain a path value of an individual return-to-source routing path. A return-to-source routing path may be further selected based on path values to perform a return-to-source operation. The techniques of the present disclosure achieve adjustment of selection orders of optimal return-to-source paths in various scenarios.

    Claims

    1. A method comprising: receiving, by a Content Delivery Network (CDN) node, configuration information; conducting, by the CDN node, route exploration based on the configuration information to obtain a respective exploration value; and in response to a determination that the CDN node receives an access request to a domain desired for dynamic acceleration, determining a respective path value of a respective return-to-source routing path; and selecting a return-to-source routing path based on path values to perform a return-to-source operation.

    2. The method of claim 1, wherein the determining the respective path value of the respective return-to-source routing path includes: multiplying the respective exploration value of the CDN node and other CDN nodes by a corresponding weight in the configuration information, and adding together corresponding values to obtain the respective path value of the respective return-to-source routing path.

    3. The method of claim 1, wherein the receiving, by the CDN node, the configuration information includes determining a type of the CDN node based on the configuration information from multiple types of the CDN nodes.

    4. The method of claim 3, wherein the multiple types of the CDN nodes include a relay node and an access node.

    5. The method of claim 4, wherein the conducting, by the CDN node, the route exploration based on the configuration information, to obtain the respective exploration value includes: performing the route exploration on other relay nodes and a source station based on the configuration information to obtain the respective exploration value in response to determining that the CDN node is a relay node.

    6. The method of claim 4, wherein the conducting, by the CDN node, the route exploration based on the configuration information, to obtain the respective exploration value includes: performing the route exploration on other relay nodes based on the configuration information to obtain the respective exploration value if the node is an access node.

    7. The method of claim 3, wherein the respective exploration value obtained based on the route exploration on the relay node using the CDN node as the access node is set to zero in response to determining that the type of the CDN node includes both a relay node and an access node.

    8. The method of claim 2, wherein: the weight includes a first weight, a second weight, and a third weight; and the multiplying the respective exploration value of the CDN node and other CDN nodes by a corresponding weight in the configuration information includes: determining multiple return-to-source routing paths of the CDN node; and for a respective return-to-source routing path: multiplying the respective exploration value between the access node and the relay node by the first weight; multiplying the respective exploration value between two adjacent relay nodes by the second weight; and multiplying the respective exploration value between the source station and the relay node by the third weight; and the adding together corresponding values to obtain the respective path value of the respective return-to-source routing path includes: adding corresponding values together to obtain a respective path value of a respective return-to-source routing path.

    9. The method of claim 8, wherein: the configuration information includes an identifier of a selected processing model; and information of the processing model includes the identifier, the first weight, the second weight, and the third weight.

    10. The method of claim 1, wherein the configuration information includes: information of the domain desired for the dynamic acceleration; and one or more respective identifiers of one or more access node pools performing the dynamic acceleration.

    11. The method of claim 10, wherein information of a respective access node pool of the one or more access node pools includes: an identifier of the respective access node pool; an access node list; one or more respective identifier of one or more relay node pools performing the dynamic acceleration; information of the one or more relay node pools; and an identifier of a source station.

    12. The method of claim 11, wherein information of a respective relay node pool of the one or more relay node pools includes an identifier of the respective relay node pool and a respective relay node list.

    13. The method of claim 12, wherein the receiving, by the CDN node, the configuration information includes determining a type of the CDN node based on the configuration information, the determining the type of the CDN node based on the configuration information includes: determining a corresponding access node pool based on the respective identifier of the respective access node pool in the dynamic acceleration; determining whether the node is within the access node list in the information of the respective access node pool; and determining that the type of the node is an access node in response to determining that the access node is within the access node list.

    14. The method of claim 13, wherein the determining the type of the CDN node based on the configuration information further includes: determining the respective relay node pool corresponding to the respective identifier of the access node pool in the dynamic acceleration; determining whether the node is within the access node list in the information of the respective relay node pool; and determining that the type of the node is a relay node in response to determining that the access node is within the access node list.

    15. The method of claim 14, wherein: the determining the type of the CDN node based on the configuration information further includes: determining whether the type of the node further includes the relay node based on a value of a corresponding string in the domain of the dynamic acceleration in response to determining that the type of the node includes the access node; and the conducting, by the CDN node, the route exploration based on the configuration information, to obtain the respective exploration value includes performing the route exploration on other relay nodes and the source station based on the configuration information, the performing the route exploration on the other relay nodes and the source station based on the configuration information comprises: determining the respective relay node pool corresponding to the respective identifier of the respective relay node pool in the dynamic acceleration; determining one or more relay nodes based on the respective relay node list in the information of the respective relay node pool; performing the route exploration on each determined relay node except for a current node; and performing the route exploration on each source station based on an identifier of each source station.

    16. The method of claim 15, wherein the performing the route exploration on the other relay nodes based on the configuration information includes: determining the respective relay node pool corresponding to the identifier of the relay node pool in the dynamic acceleration; determining the one or more relay nodes based on the relay node list in the information of the respective relay node pool; and performing the route exploration on each of the one or more relay nodes.

    17. The method of claim 1, wherein the selecting the return-to-source routing path based on the path values to perform the return-to-source operation includes: in response to determining that there is not a return-to-source routing path available, selecting a return-to-source routing path having a smallest path value for the return-to-source operation.

    18. The method of claim 1, wherein the selecting the return-to-source routing path based on the path values to perform the return-to-source operation includes: in response to determining that there is a return-to-source routing path available, determining whether the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, performing a return-to-source operation using the return-to-source routing path that is currently used in response to determining that the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used; or determining a difference between two return-to-source routing paths is within a predetermined threshold in response to determining that the return-to-source routing path having the smallest path value is not the return-to-source routing path that is currently used; performing the return-to-source operation using the return-to-source routing path that is currently used in response to determining that the difference is within the predetermined threshold; or performing the return-to-source operation using the return-to-source routing path having the smallest path value in response to determining that the difference is not within the predetermined threshold.

    19. A device comprising: a receiving module configured to receive configuration information; a detection module configured to perform route exploration based on the configuration information, obtaining an exploration value; and a return-to-source module configured to, after receiving an access request to a domain desired dynamic acceleration: multiply the exploration value of a CDN node and other CDN nodes by a corresponding weight in the configuration information, respectively, add corresponding values together to obtain a path value of an individual return-to-source routing path, and select a return-to-source routing path based on path values to perform a return-to-source operation.

    20. One or more memories stored thereon computer readable instructions that, when executed by one or more processors, cause the one or more processors to perform acts comprising: receiving, by a Content Delivery Network (CDN) node, configuration information; conducting, by the CDN node, route exploration based on the configuration information to obtain a respective exploration value; in response to a determination that the CDN node receives an access request to a domain desired for dynamic acceleration, determining a respective path value of a respective return-to-source routing path; and selecting a return-to-source routing path based on path values to perform a return-to-source operation.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0035] FIG. 1 is a schematic flow diagram illustrating an example dynamic acceleration method in a CDN in a first example embodiment.

    [0036] FIG. 2 is a schematic diagram illustrating an exploration logic of two types of CDN nodes in an implementation of the first example embodiment.

    [0037] FIG. 3 is a schematic diagram illustrating transmitting of configuration information in an implementation of the first example embodiment.

    [0038] FIG. 4 is a schematic diagram illustrating implementations of a first example scenario in an implementation of the first example embodiment.

    [0039] FIG. 5 is a schematic diagram illustrating implementations of a second example scenario in an implementation of the first example embodiment.

    [0040] FIG. 6 is a schematic diagram illustrating a device for dynamic acceleration in a CDN in a second example embodiment.

    DETAILED DESCRIPTION

    [0041] Below in conjunction with the accompanying drawings, various implementations of the present disclosure are described in detail.

    [0042] It should be noted that, if there is no conflict, implementations and the features thereof may be combined in various ways and are included in the scope of the present disclosure. In addition, although flow charts are shown in logical orders, in certain example embodiments, operations may be performed in other orders.

    [0043] In a typical configuration, a CDN node may include one or more processors (CPU), input/output interfaces, network interfaces, and memory. The memory may include computer-readable medium volatile memory, random access memory (RAM) and/or nonvolatile memory, etc., such as read only memory (ROM) or flash memory (flash RAM). Computer-readable memory medium is an example. Memory may store thereon a module 1, a module 2, . . . • a module M (M is an integer greater than 2).

    [0044] Computer-readable media includes permanent and non-permanent, removable and non-removable media that may be used in any method or technology to achieve information storage. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable Read Only memory (EEPROM), flash memory or other memory technology, CD-ROM read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic tape storage devices, or any other magnetic non-transmission medium, which can be used to store the information for access by computing devices. Defined in accordance with this present disclosure, computer-readable media does not include non-transitory media, such as modulated data signal and carriers.

    [0045] A first example embodiment relates to a method of dynamic acceleration in a CDN. As shown in FIG. 1, operations are described in detail in S110-S130.

    [0046] At S110, a CDN node receives configuration information.

    [0047] At S120, the CDN node conducts route exploration based on the configuration information to obtain one or more exploration values.

    [0048] At S130, after the CDN node receives an access request to a domain required dynamic acceleration, the exploration values of the CDN node and other CDN nodes are multiplied by a corresponding weight in the configuration information, respectively. Further, corresponding values are added together to obtain a path value of an individual return-to-source routing path, and a return-to-source routing path is selected based on path values to perform a return-to-source operation.

    [0049] In this example embodiment, since the introduction of the weight values, path values may be changed based on various weights, and the selection order of optimal return-to-source path may be changed to perform different tasks.

    [0050] In this example embodiment, CDN nodes may interact with each other nodes after obtaining exploration values. For example, a CDN node may obtain exploration values from other CDN nodes that perform route exploration.

    [0051] In implementations, the CDN node may receive the configuration information for determining a type of the CDN node based on the configuration information. The type may include a relay node and an access node. The CDN node may then conduct route exploration based on the configuration information to obtain the exploration value. If the CDN node is a relay node, the CDN node may perform the route exploration on other relay nodes and source station based on the configuration information to obtain the exploration value. If the node is an access node, the CDN node may perform the route exploration on other relay nodes based on the configuration information to obtain the exploration value.

    [0052] CDN nodes may be categorized based on their types, and different types of CDN nodes may be used to process different tasks in different scenarios. For example, the capacity of a server of the source station may be limited such as to receive a small amount of return-to-source exploration information. Separation of access nodes and relay nodes may avoid a situation that an access node performs route exploration on the source station directly.

    [0053] In example embodiments, the exploration value obtained based on the route exploration on the relay node using the CDN node as the access node is set to zero if the type of the CDN node includes a relay node and an access node.

    [0054] In implementations, the exploration value may be set to other values or an actual value that is detected.

    [0055] In example embodiments, weight values may include a first weight value, a second weight value, third weight value. Based on exploration values detected by the node and other CDN nodes and weight values in the configuration information, a path value corresponding to each return-to-source routing path may be calculated by the following operations.

    [0056] Return-to-source routing paths of the CDN node may be determined. For each return-to-source routing path, the exploration value between the access node and the relay node may be multiplied by the first weight value, the exploration value between two adjacent relay nodes may be multiplied by the second weight value, and the exploration value between the source station and the relay node may be multiplied by the third weight value. Further, corresponding values may be added together to obtain the path value of the return-to-source routing path.

    [0057] For example, a return-to-source routing path is provided as follow. The return-to-source routing path includes a path from an access node to the first relay node, to the second relay node, and to the source station. Suppose that the exploration value detected by the route exploration between the access node and the first relay node is r.sub.a, the exploration value detected by the route exploration between the first relay node and the second relay node is r.sub.b, the exploration value detected by the route exploration between the second relay node and the source station is r.sub.c, and the path value of the return-to-source routing path may be represented as r.sub.a×first weight value+r.sub.b×second weight value+r.sub.c×third weight value.

    [0058] In implementations, other methods may be used to categorize weight values. For example, an exploration value between CDN nodes may be set to a weight value, another exploration value between CDN nodes and the source station may be set as another weight value.

    [0059] In implementations, the configuration information further may include an identifier of a selected processing model and information of the processing model. The information of processing models may include the identifier, the first weight value, the second weight value, and the third weight value.

    [0060] In these instances, for any domain required for dynamic acceleration, the access node may obtain a weight value based on the selected processing model. For domains having the same processing model and the source station, return-to-source routing paths are the same. These techniques avoid repeated computation and increase of computation with linear growth in response to the increase of domains.

    [0061] In implementations, the configuration information may include weight values and not include the concept of a processing model.

    [0062] In example embodiments, the configuration information further may include the domain required for the dynamic acceleration, an identifier an access node pool performing the dynamic acceleration, and information of the access node pool. The information of the access node pool may include the identifier of the access node pool and an access node list, an identifier of a relay node pool performing the dynamic acceleration, information of the relay node pool, and an identifier of a source station. The information of the relay node pool may include an identifier of the relay node pool and the relay node list.

    [0063] The type of the CDN node based on the configuration information may be determined by determining the corresponding access node pool based on the identifier of the access node pool in the dynamic acceleration and determining whether the node is in the access node list in the information of the access node pool. If the access node is within the access node list, the CDN may determine that the type of the node is an access node, determine the relay node pool corresponding to the identifier of the relay node pool in the dynamic acceleration, and determine whether the node is in the access node list in the information of the relay node pool. If the access node is within the access node list, the type of the node may be determined to be a relay node.

    [0064] If the type is the access node, the CDN may further determine whether the type of the node may include the relay node based on a value of a corresponding string in the domain of the dynamic acceleration.

    [0065] In these instances, the CDN node as an access node pool is not in the access node pool in the dynamic acceleration. When a value of a corresponding string in the domain desired for the dynamic acceleration is represented by a value indicating reuse of the type, the CDN node as the access node may be considered as a relay node with respect to the domain.

    [0066] In these instances, various relay nodes and access nodes may be configured with respect to various domains.

    [0067] In implementations, the relationship between the identifier and the type of each node may be included in the configuration information such that each CDN node may acquire the type of the node based on the relationship.

    [0068] In implementations, the domain required for the dynamic acceleration may be stored in each CDN node in advance while not be acquired using the configuration information.

    [0069] In these instances, the route exploration on the other relay nodes and source station may be performed by determining the relay node pool corresponding to the identifier of the relay node pool in the dynamic acceleration, determining each relay node performing the route exploration on each determined relay node except for the node based on the relay node list in the information of the relay node pool, and performing the route exploration on each source station based on an identifier of the each source station.

    [0070] The route exploration on the other relay nodes may be performed by determining the relay node pool corresponding to the identifier of the relay node pool in the dynamic acceleration and determining each relay node performing the route exploration on each determined relay node based on the relay node list in the information of the relay node pool.

    [0071] In implementations, information of relay nodes may be obtained such as to perform route exploration based on the interaction between CDN nodes. For example, after each CDN node determines the type of the node, the CDN node may notify other CDN nodes.

    [0072] In implementations, the identifier of the source station may be stored in the CDN node if the source station relatively fixed, while not being acquired using the configuration information.

    [0073] In implementations, the return-to-source routing path based on path values to perform the return-to-source operation may be selected by performing the following operations. If there is not a return-to-source routing path available, the return-to-source routing path having the smallest path value for the return-to-source operation may be selected. If there is a return-to-source routing path available, the CDN node may determine whether the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used. If the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, the CDN node may perform the return-to-source operation using the return-to-source routing path that is currently used. If the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, the CDN node may determine a difference between two return-to-source routing paths is within a predetermined threshold. If the difference is within the predetermined threshold, the CDN node may perform the return-to-source operation using the return-to-source routing path that is currently used. If the difference is not within the predetermined threshold, the CDN node may perform the return-to-source operation using the return-to-source routing path having the smallest path value.

    [0074] In implementations, the return-to-source routing path may be changed when the minimal path value of a return-to-source routing path is significantly different from the path value of the return-to-source path currently used. These techniques improve the stability of the return-to-source routing path and avoid jumping in response to the fluctuation of exploration values.

    [0075] In implementations, the predetermined range may be configured based on experience or tests.

    [0076] In implementations, a return-to-source routing path having the smallest path value may be selected for the return-to-source operation. By increasing the length of detection periods, path switching frequency is therefore reduced, and path stability may be improved as well. In addition, exploration values may be performed by a rounding process such that slight fluctuation may not have a large impact on path values, and stability of path may be improved accordingly.

    [0077] The following example illustrates exemplary example embodiments described above.

    [0078] CDN nodes include two types: relay nodes and access nodes. Each CDN node may be used as one or more types of nodes.

    [0079] An access node generally refers to an edge CDN node, which is close to users (location+carriers), and each access node may detect each relay node respectively. A relay node may function as a transit route, and detection may be performed among relay nodes and between each relay node and the user source station. FIG. 2 illustrates a detection logic of two types of CDN nodes. In FIG. 2, dashed line represents detection routes between nodes. Suppose that there are source station 202 and source station 204. Access node 206 is a node in China Unicorn of Beijing, and another access node 208 is a node in China Unicorn of Qingdao. Accordingly, each relay node, such as relay node 210(1), 210(2), . . . , 210(m), m being any integer, detects two source stations respectively, and relay nodes may detect each other. Each access node may detect each relay node.

    [0080] In these instances, configuration information such as dynamic acceleration domains and processing models may be configured at a global control center. Changes of configuration information may be distributed in real-time or periodically to each CDN node, and any policy may be taken effective within a detection decision cycle. FIG. 3 illustrates a global control center 302, which distributes configuration information to various CDN nodes such as CDN node 1 304(1), CDN node2 304(2), . . . , CDN node N 304(N), N may be any integer.

    [0081] In these instances, the configuration information may include: (1) information of domains required for dynamic acceleration, which may include a domain required for dynamic acceleration, an identifier of an access node pool in dynamic acceleration, an identifier of a relay node pool in dynamic acceleration, an identifier of a source station, and an identifier of the selected processing model, (2) information on access node pools, which may include an identifier of each access node pool, and access node list, (3) information of relay node pools, which may include an identifier of each relay node pool and replay node list, (4) information of domain source stations, which may include an identifier of each source station and a virtual IP or a domain supporting the configuration, (5) information of processing models, which may include an identifier of each processing model, descriptions, weight values (including weights for access nodes to relay nodes, weights for relay nodes to relay nodes, and weights for relay nodes to source stations).

    [0082] In these instances, a CDN node may perform the following operations. After receiving configuration information, the CDN node may determine the corresponding access node pool based on the identifier of the access node pool in the dynamic acceleration and determine whether the node is in the access node list in the information of the access node pool. If the node is within the access node list in the information of the access node pool, the CDN may determine that the type of the node is an access node. Each CDN node may determine whether the type of the node may include the relay node based on a value of a corresponding string in the domain of the dynamic acceleration. For example, the predefined string value is “enable” in the domain, the CDN node is a relay node when the type of the CDN node is an access node. If the predefined string value is not “enable,” the CDN node merely is an access node when the type of the CDN node is an access node.

    [0083] For various domains required for the dynamic acceleration, CDN node sets including access nodes may be different, and types of a CDN node may be different. For example, domain X includes CDN node R, and the type of the CDN R is an access node. Domain Y includes CDN node R, and the types of the CDN node is both an access node and a relay node. For domain Z, CDN node R is neither an access node nor a relay node. Here, domains X, Y, and Z are domains required for dynamic acceleration.

    [0084] If the type of the CDN node includes an access node, a domain request may be processed. If the type of the CDN node includes a relay node, the source station of the domain may be detected, and the ability for return-to-source is available.

    [0085] In these instances, if the type of the CDN node is a relay node and an access node, the exploration value of the node is set to zero, which the highest priority.

    [0086] In these instances, the exploration value may be the round-trip delay between the detected node and the present node. For example, detection may be performed using TCP, and the exploration value is round-trip delay value of RTT. For example, detection may be performed using HTTP, and the exploration value is round-trip delay value of RT.

    [0087] Common dynamic acceleration includes following scenarios.

    [0088] In scene one, when a user accesses a dynamic document, the return-to-source operation may be performed via an accessible and near edge CDN node. When the return-to-source network is poor, the edge CDN node may perform the return-to-source operation via other CDN nodes and resume the previous return-to-source operation timely when the network is restored. This approach requires servers of the source station having high performance and capable of receiving detection by multiple batches of CDN nodes.

    [0089] In scene two, the performance of servers of the source station is limited, and the servers are merely capable of receiving return-to-source detection from a small number of nodes in the CDN node pool. When a user accesses the accessible edge CDN node, the edge CDN node may forward return-to-source to nodes in the CDN node pool.

    [0090] In other scenarios, return-to-source operations may be performed via the node, which is closest to the source station. CDN vendors may, based on their own costs and user experience, control the return-to-source routing hop-count and other parameters.

    [0091] In these instances, a corresponding processing model may be provided for the scenarios described above.

    [0092] Implementations of the two scenarios are provided as follow.

    [0093] In scene one, return-to-source of access CDN nodes is direct and has priority. When the return-to-source network is poor, the access CDN nodes may perform return-to-source operations via other nodes.

    [0094] Suppose that, in the configuration information, the id of the access node pool and the relay node pool is b (i.e., the access node and the relay node share a set of CDN node pool), and id of the selected processing model is c (thereafter processing model c).

    [0095] For processing model c, the weight between an access node and a relay node is c1, the weight between a relay node and another relay node is c2, and the weight between a relay node and the source station is c3.

    [0096] As illustrated in FIG. 4, for three CDN nodes b1, b2, and b3, each node is both an access node and a relay node. r1, r2, and r3 are detected RT/RTT values between these CDN nodes, respectively. S1, S2, and S3 are detected RT/RTT values between each node and the source station, respectively. In FIG. 4, dotted lines represent route exploration between nodes. RT/RTT values derived from self-route exploration of each node are zero, as denoted by r0.

    [0097] Suppose that a user or actor 402 of China Unicom (Actor) in Baoding selectively accesses a CDN node b1 of China Unicom in Hebei. A path value corresponding each return-to-source routing path is provided as follow:


    Rout1=c1*r0+c3*s1

    (i.e., from access node b1, to relay node b1, to source station s),


    Rout2=c1*r0+c2*r1+c3*s2

    (i.e., from access node b1, to relay node b1, to relay node b2, to source station s),


    Rout3=c1*r0+c2*r2+c3*s3

    (i.e., from access node b1, to relay node b1, to relay node b3, to source station s),


    Rout4=c1*r0+c2*r1+c2*r3+c3*s3

    (i.e., from access node b1, to relay node b1, to relay node b2, to relay node b3, to source station s),


    Rout5=c1*r0+c2*r2+c2*r3+c3*s2

    (i.e., from access node b1, to relay node b1, to relay node b3, to relay node b2, to source station s), and

    [0098] Optimal return-to-source routing path is: Min (Rout1, Rout2, Rout3, Rout4, Rout5). Min indicates the minimum value.

    [0099] By changes of the processing model, different c1, c2, and c3 may be obtained. The obtained return-to-source routing path may change as well as to be applied to different scenarios.

    [0100] Specific analysis is provided as follows: (1) if c1 increases, since r0 is 0, when node b1 is both an access node and a relay node, c1 configuration may not affect the result of path selection; (2) if c2 increases, Route 4 and Route 5 may be preferentially eliminated to reduce routing hop-count and to reduce transmission costs between CDN nodes; (2) if c3 increases, return-to-source operations may be performed via the CDN node, which is closest to the source station.

    [0101] In scene two, the performance of servers of the source station is limited, and the server may receive a small amount of return-to-source exploration information.

    [0102] Suppose that, in the configuration information, the id of an access node in the dynamic acceleration is a, the id of a relay node in the dynamic acceleration is b, and id of the selected processing model is c (thereafter processing model c). The relay node pool is a relatively small CDN node set, and the amount of detection of the source station is reduced.

    [0103] For processing model c, the weight between an access node and a relay node is c1, the weight between a relay node and another relay node is c2, and the weight between a relay node and the source station is c3.

    [0104] As illustrated in FIG. 5, an access layer 502 includes access nodes acc1 504(1).sup.˜accN 504(N), a relay layer 506 includes three relay nodes b1, b2, and b3, and a return-to-source layer 508 includes source station s.

    [0105] As used here, a1, a2, and a3 are detected RT/RTT values between each node and the source station, respectively, r1, r2, and r3 are detected RT/RTT values between these relay nodes, respectively, and S1, S2, and S3 are detected RT/RTT values between each relay node and the source station, respectively. In FIG. 5, dotted lines represent route exploration between nodes.

    [0106] Under this scenario, an access node may perform return-to-source via at least a relay node, and there is at least one hop route between CDN nodes under this approach.

    [0107] Suppose that the user of China Unicom (Actor) in Baoding 402 selectively accesses an access node acc1 504(1) of China Unicom in Hebei via automated intelligent scheduling 404 of AIM DNS 406. Suppose that the acc1 502 performs return-to-source via relay node b1. A path value corresponding each return-to-source routing path is provided as follow:

    [0108] Rout1=c1*a1+c3*s1 (i.e., from access node acc1, to relay node b1, to source station s),

    [0109] Rout2=c1*a1+c2*r1+c3*s2 (i.e., from access node acc1, to relay node b1, to relay node b2, to source station s),

    [0110] Rout3=c1*a1+c2*r2+c3*s3 (i.e., from access node acc1, to relay node b1, to relay node b3, to source station s),

    [0111] Rout4=c1*a1+c2*r1+c2*r3+c3*s3 (i.e., from access node acc1, to relay node b1, to relay node b2, to relay node b3, to source station s),

    [0112] Rout5=c1*a1+c2*r2+c2*r3+c3*s2 (i.e., from access node acc1, to relay node b1, to relay node b3, to relay node b2, to source station s), and

    [0113] Optimal return-to-source routing path is: Min (Rout1, Rout2, Rout3, Rout4, Rout5).

    [0114] By changes of the processing model, different c1, c2, and c3 may be obtained. The obtained return-to-source routing path may change as well as to be applied to different scenarios.

    [0115] Specific analysis is provided as follows: (1) if c1 increases, return-to-source may be performed via the node, which is closest to the source station, (2) if c2 increases, Route 4 and Route 5 may be preferentially eliminated to reduce routing hop-count and to reduce transmission costs between CDN nodes, (3) if c3 increases, return-to-source operations may be performed via the CDN node, which is closest to the source station.

    [0116] In the two scenarios as described above, if there is a return-to-source routing path available, the CDN node may determine whether the optimal return-to-source routing path is the return-to-source routing path that is currently used. If the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, the CDN node may perform the return-to-source operation using the return-to-source routing path that is currently used. If the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, the CDN node may determine a difference between two return-to-source routing paths is within a predetermined threshold. If the difference is within the predetermined threshold, the CDN node may perform the return-to-source operation using the return-to-source routing path that is currently used. If the difference is not within the predetermined threshold, the CDN node may perform the return-to-source operation using the optimal return-to-source routing path. Suppose that the path value of the current return-to-source routing path is 7 and the predetermined range is assumed to be less than or equal to 2. If the path value of the optimal return-to-source routing path is 6 or 5, and the difference between two path values is less than 1 or 2, the current return-to-source routing path may not be changed. However, if the path value of the optimal return-to-source routing path is 4 or less, and the difference between two path values is more than 3, the current return-to-source routing path may be changed to the optimal routing path.

    [0117] A second example embodiment of the present disclosure describes a device for dynamic acceleration in CDN.

    [0118] As illustrated in FIG. 6, a device 600 may include one or more processor(s) 602 or data processing unit(s) and memory 604. The device 600 may further include one or more input/output interface(s) 606, and network interface(s) 608. The memory 604 is an example of computer-readable media.

    [0119] The memory 604 may store therein a plurality of modules or units including:

    [0120] a receiving module 610 configured to receive configuration information, a detection module 612 configured to perform route exploration based on the configuration information to obtain an exploration value, and a return-to-source module 614 configured to, after receiving an access request to a domain required dynamic acceleration, multiple the exploration value of the CDN node and other CDN nodes by a corresponding weight in the configuration information, respectively, to add corresponding values together to obtain a path value of an individual return-to-source routing path, and to select a return-to-source routing path based on path values to perform a return-to-source operation.

    [0121] In this example embodiment, the receiving module 610 may receive configuration information on the device and include software and/or hardware.

    [0122] In this example embodiment, the detection module 612 may perform route exploration in the device and include software and/or hardware.

    [0123] In this example embodiment, the return-to-source module 614 may perform return-to-source in the device and include software and/or hardware.

    [0124] In this example embodiment, the device may be incorporated into, but not limited to, CDN nodes. As used herein, the node refers to the device in a CDN node.

    [0125] In implementations, the device may further include a judgment module configured to determine the type of the node based on the configuration information. The type may include a relay node and an access node.

    [0126] The route exploration based on the configuration information to obtain the obtained exploration value may be implemented by the following operations. If the CDN node is a relay node, the CDN node may perform the route exploration on other relay nodes and source station based on the configuration information to obtain an exploration value. If the node is an access node, the CDN node may perform the route exploration on other relay nodes based on the configuration information to obtain the exploration value.

    [0127] In example embodiments, the exploration value obtained based on the route exploration on the relay node using the CDN node as the access node is set to zero if the detection module determines that the CDN node is a relay node and an access node.

    [0128] In example embodiments, weight values may include a first weight value, a second weight value, third weight value. The return-to-source module may set the exploration value of the CDN node and other CDN nodes to be multiplied by a corresponding weight in the configuration information, respectively, and then corresponding values may be added together to obtain a path value of an individual return-to-source routing path. In these instances, the return-to-source module may determine return-to-source routing paths of the CDN node, for each return-to-source routing path, multiply the exploration value between the access node and the relay node by the first weight value, multiply the exploration value between two adjacent relay nodes by the second weight value, multiply the exploration value between the source station and the relay node by the third weight value, and add the corresponding values together to obtain the path value of the return-to-source routing path.

    [0129] In implementations, the configuration information further may include an identifier of a selected processing model and information of the processing model. The information of processing models may include the identifier, the first weight value, the second weight value, and the third weight value.

    [0130] In example embodiments, the configuration information further may include the domain required for the dynamic acceleration, an identifier an access node pool performing the dynamic acceleration, and information of the access node pool. The information of the access node pool may include the identifier of the access node pool and an access node list, an identifier of a relay node pool performing the dynamic acceleration, information of the relay node pool, and an identifier of a source station. The information of the relay node pool may include an identifier of the relay node pool and the relay node list,

    [0131] The type of the CDN node based on the configuration information by the judgment module may be determined by performing the following operations. The judgment module may determine the corresponding access node pool based on the identifier of the access node pool in the dynamic acceleration and determine whether the node is in the access node list in the information of the access node pool. If the access node is within the access node list, the device may determine that the type of the node is an access node. The detection module may determine the corresponding access node pool based on the identifier of the access node pool in the dynamic acceleration and determine whether the node is in the access node list in the information of the relay node pool. If the access node is within the access node list, the device may determine that the type of the node is a relay node. If the type is the access node, the device may determine whether the type of the node may include the relay node based on a value of a corresponding string in the domain of the dynamic acceleration.

    [0132] In implementations, the route exploration on the other relay nodes and source station may be performed based on the configuration information by the detection module in the following manner. The detection module may determine the corresponding access node pool based on the identifier of the access node pool in the dynamic acceleration, determine the relay node based on the relay node list in the information of the relay node pool, perform the route exploration on each determined relay node except for the node, and performing the route exploration on each source station based on an identifier of each source station.

    [0133] The route exploration on other relay nodes may be performed based on the configuration information in the following manner. The device may determine the relay node pool corresponding to the identifier of the relay node pool in the dynamic acceleration, determine the relay node based on the relay node list in the information of the relay node pool, and perform the route exploration on each determined relay node.

    [0134] In implementations, the return-to-source routing path may be selected based on path values to perform the return-to-source operation by the return-to-source module in the following manner. If the return-to-source module determines that there is not a return-to-source routing path available, the device may select a return-to-source routing path having the smallest path value for the return-to-source operation. If there is a return-to-source routing path available, the device may determine whether the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used. If the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, the device may perform the return-to-source operation using the return-to-source routing path that is currently used. If the return-to-source routing path having the smallest path value is the return-to-source routing path that is currently used, the device may determine a difference between two return-to-source routing paths is within a predetermined threshold. If the difference is within the predetermined threshold, the device may perform the return-to-source operation using the return-to-source routing path that is currently used If the difference is not within the predetermined threshold, the device may perform the return-to-source operation using the return-to-source routing path having the smallest path value.

    [0135] Further details can be found in the first example embodiment.

    [0136] Those of ordinary skill in the art will be appreciated that all or a portion of the above-described techniques may be performed by hardware with instructions. The application software/programs (including associated data structures) may be stored in a computer-readable recording medium, such as read-only memory (ROM) or flash memory (flash RAM). In some example embodiments, all or a portion of the above-described example embodiments may be implemented using one or more integrated circuits. Correspondingly, the one or more processing modules may be implemented using modules of hardware and/or software. This application is not limited to a specific combination of hardware and software.

    [0137] In implementations, other example embodiments may be included in the present disclosure, without conflict, one of ordinary skill in the art should understand that forms and details may vary without departing from the spirit and scope of the present disclosure.