Computer-implemented method for transmitting data in information centric network by managing its data cache in distributed manner

By adopting a distributed cache management method in the information center network, combining on-path and off-path cache technologies, and utilizing the collaboration of adjacent network elements, the problems of low cache resource utilization and high latency in the information center network are solved, and efficient cache management and data transmission are achieved.

CN120811976APending Publication Date: 2025-10-17AIRBUS (SAS)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510441208.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-04-10
Filing Date
2025-04-09
Publication Date
2025-10-17

AI Technical Summary

Technical Problem

In existing information center networks, the TCP/IP-based content distribution architecture has low efficiency issues, path caching technology leads to high latency and low cache hit rate, and centralized cache management increases signaling overhead and the risk of central node failure.

Method used

A distributed cache management method is adopted, combining on-path and off-path cache technologies. Through collaboration between adjacent network elements, on-path and off-path cache resources are utilized to reduce concurrent queries and make cache decisions based on data popularity and node characteristics.

Benefits of technology

It improves the cache hit rate, reduces latency, lowers computational complexity and signaling overhead, and optimizes cache resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120811976A_ABST
    Figure CN120811976A_ABST
Patent Text Reader

Abstract

A computer-implemented method for transferring data in an information centric network by managing its data cache in a distributed manner is disclosed. The present invention relates to a computer-implemented method for transmitting data in an information centric network (connectable to a plurality of server devices for respectively providing network service data, the information centric network being configured for receiving a request for network service data from a client device, the information centric network comprises a plurality of interconnected nodes, each comprising a cache for caching network service data, each of the nodes being configured for routing any request from a client device to a corresponding server device along a corresponding routing path to another of the nodes, a corresponding routing path has one or more nodes that are successively accessible by a request via a hop.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present invention relates to a computer-implemented method for transmitting data in an information-centric network, in particular by managing its data caches in a distributed manner. The present invention further relates to an information-centric network, a node, a computer program and a computer-readable data carrier. BACKGROUND

[0002] On the Internet, content delivery is a popular application and the traffic volume related to content exchange is growing exponentially based on the usage of applications such as YouTube and Netflix. In this scenario, the current TCP / IP based content distribution architecture can exhibit some inherent inefficiencies [1]. In the last few years, several measures like caching, creating content delivery network (CDN) overlays or creating proxy-based IoT publish-subscribe systems (e.g. MQTT) are solutions that can suffer from the same set of inefficiencies of the TCP / IP model.

[0003] Generally, an information-centric network (ICN) is a tactical shift from the conventional TCP / IP communication model, in which data is focused on rather than communication endpoints. ICN is a receiver-driven communication model in which the receiver controls the delivered content by sending an explicit request for that information. The request packet is forwarded in the direction of the data source following the information provided by the routing protocol and the resulting data packet flows in the opposite direction following the reverse path created by the request packet. Furthermore, the ICN model includes network elements with built-in caches and data can be provided from these intermediate caches.

[0004] By default, the ICN paradigm uses on-path caching techniques, in which content is cached only at the network elements on the path between the data producer and the data consumer. However, relying only on on-path caching can result in a low performance system with high latency and low cache hit rate. To mitigate this limitation, some approaches suggest using a controller with global visibility of the cached content [2], [3]. However, such approaches can require global coordination and introduce additional overhead and bottlenecks in the communication.

[0005] The following documents are cited herein:

[0006] [1] L. Zhang, A. Afanasyev, J. Burke, V. Jacobson, K. Claffy, P. Crowley, C. Papadopoulos, L. Wang, and B. Zhang. Named data networking. ACM SIGCOMM Comput. Commun. Rev., 44(3):66-73, 2014;

[0007] [2] J. Rihab and L. C. Fourati. Ccnflow: Content-centric networking managed by openflow controller. In Proc. ComNet, pages 1-5, 2018;

[0008] [3] Z. Zhang, C.-H. Lung, M. St-Hilaire, and I. Lambadaris. An sdn-based caching decision policy for video caching in information-centric networking. IEEE Transactions on Multimedia, 22(4):1069-1083, 2019;

[0009] [4] G. Zhang, Y. Li, and T. Lin. Caching in information centric networking: A survey. Computer networks, 57(16):3128-3141, 2013;

[0010] [5] S. Podlipnig and L. A survey of web cache replacement strategies. ACM Comput. Surv., 35(4):374-398, 2003;

[0011] [6] L. Saino, I. Psaras, and G. Pavlou. Hash-routing schemes for information centric networking. In Proc. ACM SIGCOMM ICN Workshop, pages 27-32, 2013;

[0012] [7] M. Zhang, H. Luo, and H. Zhang. A survey of caching mechanisms in information-centric networking. IEEE Communications Surveys & Tutorials, 17:1-1, 07 2015;

[0013] [8] N. Laoutaris, S. Syntila, and I. Stavrakakis. Meta algorithms for hierarchical web caches. In Proc. IEEE Int. Conf. Perform. Comput. Commun. (IPCCC), pages 445-452, 2004;

[0014] [9] Giovanna Carofiglio, Luca Muscariello, Jordan Auge, Michele Papalini, Mauro Sardara, Alberto Compagno, “Enabling ICN in the Internet Protocol: Analysis and Evaluation of the Hybrid-ICN Architecture”, ACM ICN 2019;

[0015]

[10] V. Jacobson, D. K. Smetters, J. D. Thornton, M. F. Plass, N. H. Briggs, and R. L. Braynard. Networking named content. In Proc. ACM CoNEXT, pages 1-12, 2009;

[0016]

[11] N. Laoutaris, H. Che, and I. Stavrakakis. The Icd interconnection of Irucaches and its analysis. Performance Evaluation, 63(7):609-634, 2006;

[0017]

[12] I. Psaras, W. K. Chai, and G. Pavlou. Probabilistic in-network caching for information-centric networks. In Proc. 2nd Ed. ICN Workshop Inf. Centric Netw. (ICN), pages 55-60, 2012;

[0018]

[13] Y. Gui and Y. Chen. A cache placement strategy based on compound popularity in name data networking. IEEE Access, 8:196002-196012, 2020;

[0019]

[14] D. Chang, M. Kwak, N. Choi, T. Kwon, and Y. Choi. C-flow: An efficient content delivery framework with openflow. In Proc. IEEE Int. Conf. Inf. Netw. (ICOIN), pages 270-275, 2014. SUMMARY

[0020] It is an object of the present invention to provide an improved method for transmitting data in an information centric network.

[0021] To achieve this object the present invention provides a computer-implemented method according to claim 1. An information centric network, a node, a computer program and a computer readable data carrier are subject matter of parallel claims.

[0022] Advantageous embodiments of the present invention are subject matter of dependent claims.

[0023] In one aspect the present invention provides a computer-implemented method for transmitting data in an information centric network, the information centric network being connectable to a plurality of server devices for providing network service data, respectively, the information centric network being configured for receiving requests for network service data from a client device, wherein the information centric network comprises a plurality of interconnected nodes, the plurality of interconnected nodes comprising a cache for caching network service data, respectively, each of the nodes being configured for routing any request from the client device to a further one of the nodes along a corresponding routing path to a corresponding server device, the corresponding routing path having one or more nodes that are successively accessible by the request via one hop, the method comprising:

[0024] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0025] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0026] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0027] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0028] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0029] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0030] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0031] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0032] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0033] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0034] a) determining the availability of the network service data in the respective caches by each node on the corresponding routing path that is currently accessed by the request for network service data, and if the network service data is not available in the respective caches, initiating a separate off-path lookup with respect to the nodes on the path, the off-path lookup comprising:

[0035] d) collecting information related to each path-out neighbor node and path-on node accessed by the request along the corresponding routing path; and

[0036] e) caching the requested network service data in one or more accessed nodes selected based on the collected node-related information.

[0037] Preferably, step d) and step e) comprise:

[0038] d1) collecting, by each corresponding broadcast group, information related to each respectively accessed path-out neighbor node and corresponding path-on node; and

[0039] e1) caching, by each broadcast group, the requested network service data in one or more accessed nodes of the broadcast group respectively selected based on the node-related information collected by the broadcast group respectively.

[0040] Preferably, the node-related information of a reference node comprises or is based on one, several or all of:

[0041] - an identifier for identifying the reference node;

[0042] - a degree of the reference node, the degree corresponding to a number of neighbor nodes at one hop distance from the reference node;

[0043] - a bandwidth of the reference node;

[0044] - an available cache space of the reference node;

[0045] - a number of requests for a requested network service previously received by the reference node; and / or

[0046] - a hop distance to a corresponding path-on node.

[0047] Preferably, the method further comprises:

[0048] f) counting, by each node, a number of received requests for the requested network service data, the number indicating a popularity of the network service data; and

[0049] g) caching, by one or more cache-selected nodes, the requested network service data by replacing other network service data based on the popularity.

[0050] Preferably, the method further comprises one or both of:

[0051] h) causing, by each accessed path-out neighbor node, transmission of the respective node-related information to a corresponding path-on node; and / or

[0052] i) broadcasting, transmitting and / or forwarding the request by adding respective node related information to the request.

[0053] Preferably, step b) further comprises:

[0054] b1 ) forwarding the request to the nearest node or server device by using the routing information available in the nodes on each path to retrieve the data in the shortest time possible.

[0055] In another aspect, the application provides an information centric network comprising means for performing the method according to any one of the preceding embodiments.

[0056] In another aspect, the application provides a node adapted for an information centric network according to any one of the preceding embodiments.

[0057] In another aspect, the application provides a computer program which, when executed by an information centric network, causes the information centric network to perform the method according to any one of the preceding embodiments.

[0058] In another aspect, the application provides a computer readable data carrier having stored thereon a computer program.

[0059] The preferred embodiments of the application can be summarized as follows:

[0060] The preferred embodiments aim at proposing a new distributed caching and request routing method based on the cooperation between adjacent network elements. The proposed mechanism preferably combines the advantages of in-path and out-of-path caching techniques to better exploit the caching resources, increase the cache hit rate and minimize the total delay.

[0061] The preferred embodiments describe a distributed cooperative caching management system for information centric networks aiming at maximizing the in-network caching utilization through lightweight coordination between adjacent network elements. The proposed cooperative caching method is preferably based on a combination of features of both in-path and out-of-path caching techniques to maximize the cache hit rate, reduce the data access time and keep a low computational complexity.

[0062] The combination of in-path and out-of-path methods is preferably done by including a spray-out lookup to a limited number of neighbors at each in-path node visited. To avoid querying the same neighbors at different in-path visited nodes, the proposed solution preferably adapts the in-path signaling to pass the set of already queried network elements to the next hop. The in-path signaling towards the data source is stopped when a copy of the required data is found in any in-path or out-of-path visited node or at the data source.

[0063] The information collected while probing the path towards the data source is then preferably used to decide where to cache the data object while following the reverse path to the requesting data consumer. Based on a set of criteria related to the nature of the data and the nature of each visited node, a copy of the data object can be cached in any network element visited on the path as well as in all the previously queried off-path nodes.

[0064] Irrespective of the number of data replicas deployed in the network, the preferred embodiments always try to store data objects in the network edge closest to the data consumer to reduce latency for very popular data. In this case, to not reduce the cache hit of data that needs to be evicted from a nearly full edge cache, the evicted data is not deleted but cached in a neighbor node using a hash-based approach.

[0065] The support of in-network caching features in the ICN framework [1] has led to many recent works that propose new caching techniques, including strategies for placing caches in the network [4], and cache replacement strategies [5], as well as search strategies [6], with a focus on off-path caching or on-path caching.

[0066] In the aspect related to on-path caching strategies, content is cached along the path from the data producer to the data consumer [7]. Due to its simplicity and low coordination overhead, this is the strategy commonly used by web caching systems [8] as ICN frameworks like NCN [1] and hICN [9] inherently support on-path caching

[10] . In this context, there are several proposals for managing on-path caching, namely Leave Copy Everywhere [6], Leave Copy Down

[11] and Probabilistic Caching

[12] .

[0067] The Leave Copy Everywhere approach is a simple and popular non-cooperative on-path caching strategy in which data is stored in all cache-enabled nodes available in the return path from the data provider to the requesting consumer. As a result, Leave Copy Everywhere can have huge data redundancy.

[0068] To mitigate this problem, the Leave Copy Down approach aims to reduce the access time for subsequent requests by copying data one hop down from the hit node, making the data closer to the consumer after each subsequent hit. As a result, this approach makes better use of cache space compared to the Leave Copy Everywhere approach, but can degrade the performance for unique / limited repeat requests.

[0069] To reduce cache redundancy and improve cache utilization, probabilistic caching approaches employ a probabilistic on-path caching strategy that uses a cache weight factor for the computation, which can be created based on different metrics, such as data and node popularity

[13] .

[0070] Different approaches can rely on using off-path caching strategies, where on-path network elements cooperate with off-path network elements to perform data lookup operations, aiming to increase cache hit rate while probing the network in the direction of data provision. In the reverse path, network elements make collaborative decisions on caching / replacing data, aiming to increase cache space utilization and avoid cache data redundancy. In off-path caching strategies, collaborative decisions are made among network elements based on predefined rules [6] or by coordinating with the SDN controller [3].

[0071] SDN controller-based caching strategies

[14] aim to determine data caching / replacement according to consumer requests and a global view of the network topology. Due to the global topology view, the SDN controller can efficiently decide which cache is suitable for which data based on, for example, cache location and content popularity, allowing efficient utilization of cache space in the network. However, while centralized cache management improves cache hit rate and reduces content retrieval time, it can have two significant drawbacks. First, centralized cache management increases signaling overhead due to the interaction between routers and the controller, and second, due to the central node failure.

[0072] Embodiments of the invention preferably have the following advantages and effects:

[0073] Compared to other approaches aiming to develop a suitable distributed cache management scheme for information-centric networks, preferred embodiments can have the following benefits:

[0074] - combine the benefits of on-path caching and off-path caching to reduce latency and increase cache hit;

[0075] - have reduced overhead by reducing the number of concurrent queries to off-path network nodes;

[0076] - make decisions on caching data not only based on data popularity, but also based on a combination of several metrics characterizing data objects and visited nodes, such as nodes with higher available bandwidth, higher node degree, and higher betweenness, and data objects such as locally popular, with shorter validity time, and cached in neighbors. BRIEF DESCRIPTION OF DRAWINGS

[0077] Embodiments of the present application will now be explained in more detail with reference to the drawings, in which:

[0078] Figure 1 Embodiments of a network arrangement are shown;

[0079] Figure 2 Embodiments of a network arrangement are shown Figure 1

[0080] Figure 3 is a first embodiment of a computer-implemented method; and

[0081] Figure 4 is a second embodiment of a computer-implemented method. DETAILED DESCRIPTION

[0082] Figure 1 Embodiments of a network arrangement 10 are shown. The network arrangement 10 comprises an information-centric network 12, a plurality of server devices 14 and a plurality of client devices 16.

[0083] Each of the plurality of server devices 14 and each of the plurality of client devices 16 is connected to the information-centric network 12. The server devices 14 are respectively configured for providing network service data 18 via the information-centric network 12. The client devices 16 are configured for requesting said network service data 18 via the information-centric network 12.

[0084] The information-centric network 12 comprises a plurality of interconnected nodes 20. Each node 20 is connected to at least one other node 20 of the information-centric network 12. The number of nodes 20 to which a reference node 20 is directly connected is referred to as the degree 22 of said reference node 20. The respective degrees 22 of different nodes 20 can also be different. The nodes 20 further respectively comprise a cache for caching network service data 18.

[0085] When a client device 16 requests network service data 18, the client device sends a request 24 for said network service data 18 to one of the nodes 20 of the information-centric network 12. The nodes 20 are respectively configured for routing the request 24 along a corresponding routing path 26 from the client device 16 to a corresponding server device 14 providing the requested network service data 18. The routing of the request 24 is based on routing information of the information-centric network 12, which is accessible to the nodes 20 on the routing path 20.

[0086] The corresponding routing path 26 comprises one or more nodes 20 successively visited by the request 24 via one hop. Each node 20 visited along the corresponding routing path 26 is referred to as an on-path node 28.

[0087] For example, as Figure 1 ​As shown in the figure, the network arrangement 10 includes a first client device 16a, a second client device 16b, a third client device 16c, a fourth client device 16d, a fifth client device 16e, and a sixth client device 16f. The network arrangement 10 also includes a first server device 14a, a second server device 14b, a third server device 14c, a fourth server device 14d, a fifth server device 14e, and a sixth server device 14f.

[0088] In an example, the second client device 16b requests the network service data 18 by sending a request 24 to the first on-path node 28a. Based on the routing information, the first on-path node 28a forwards the request 24 to the second on-path node 28b. Based on the routing information, the second on-path node 28b forwards the request 24 to the third on-path node 28c. Based on the routing information, the third on-path node 28c forwards the request 24 to the fourth on-path node 28d. Based on the routing information, the fourth on-path node 28d forwards the request 24 to the fifth on-path node 28e. Based on the routing information, the fifth on-path node 28e forwards the request 24 to the sixth on-path node 28f. Based on the routing information, the sixth on-path node 28f forwards the request 24 to the seventh on-path node 28g. Finally, the seventh on-path node 28g forwards the request 24 to the fifth server device 14e that is providing the requested network service data 18.

[0089] The degree 22 of the first on-path node 28a is 3. The degree 22 of the second on-path node 28b is 3. The degree 22 of the third on-path node 28c is 6. The degree 22 of the fourth on-path node 28d is 4. The degree 22 of the fifth on-path node 28e is 6. The degree 22 of the sixth on-path node 28f is 4. The degree 22 of the seventh on-path node 28g is 3.

[0090] The fifth server device 14e provides the requested network service data 18 to the seventh on-path node 28g. Accordingly, the corresponding routing path 26 from the second client device 16b to the fifth server device 14e includes seven on-path nodes 20, 28, 28a to 28g that are successively accessed by the request 24 via one hop. After the requested network service data 18 is provided on the corresponding routing path 26, the network service data 18 is transmitted along a corresponding reverse routing path 30 to the second client device 16b.

[0091] In the public caching scheme, the network service data 18 is cached or stored in the cache of each of the accessed on-path nodes 20, 28, 28a to 28g. Accordingly, if the same network service data 18 is requested again, any of the accessed on-path nodes 20, 28, 28a to 28g can provide the requested network service data 18.

[0092] The idea of the preferred embodiments is to find an improved caching scheme. Another idea of the preferred embodiments is to provide network service data 18 in a more efficient way.

[0093] Figure 2 Again, a network arrangement 10 is shown Figure 1

[0094] As can be seen from Figure 2 Each of the nodes 20 is connected to at least one other node 20. For example, each path-on node 28, 28a to 28g comprises a plurality (zero or more) of neighbor nodes 32 which are outside the corresponding routing path 26 and at a distance of one hop from the respective path-on node 28, 28a to 28g.

[0095] Here, the first path-on node 28a is connected to a first neighbor node 32a and a second neighbor node 32b, both of which are outside the corresponding routing path 26 and at a distance of one hop from the first path-on node 28a.

[0096] The second path-on node 28b is connected to a third neighbor node 32c which is outside the corresponding routing path 26 and at a distance of one hop from the second path-on node 28b.

[0097] The third path-on node 28c is connected to a third neighbor node 32c, a fourth neighbor node 32d, a fifth neighbor node 32e and a sixth neighbor node 32f, all of which are outside the corresponding routing path 26 and at a distance of one hop from the third path-on node 28c.

[0098] The fourth path-on node 28d is connected to a fifth neighbor node 32f and a seventh neighbor node 32g, both of which are outside the corresponding routing path 26 and at a distance of one hop from the fourth path-on node 28d.

[0099] The fifth path-on node 28e is connected to a sixth neighbor node 32f, an eighth neighbor node 32h, a ninth neighbor node 32i and a tenth neighbor node 32j, all of which are outside the corresponding routing path 26 and at a distance of one hop from the fifth path-on node 28e.

[0100] ​The sixth on-path node 28f is connected to a tenth neighbor node 32j and to an eleventh neighbor node 32k, both of which are located outside the corresponding routing path 26 at a distance of one hop from the sixth on-path node 28f.

[0101] Finally, the seventh on-path node 28g is connected to a ninth neighbor node 32i and to a twelfth neighbor node 32l, both of which are located outside the corresponding routing path 26 at a distance of one hop from the seventh on-path node 28g.

[0102] The first to twelfth neighbor nodes 32, 32a to 32i are all located outside the corresponding routing path 26 at a distance of one hop from the respective on-path node 28, 28a to 28g. With respect to a distance of more than one hop, there are further off-path neighbor nodes 32.

[0103] Figure 3 A first embodiment of a computer-implemented method for transmitting data in an information-centric network 12 is shown.

[0104] In step Sll, the method comprises:

[0105] Determining the availability of the network service data 18 in the respective cache by each node 20, 28, 28a to 28g on the corresponding routing path 26 that is currently accessed by the request 24 for the network service data 18.

[0106] In step S12, the method comprises:

[0107] If the network service data 18 is not available in the respective cache, a separate off-path lookup is initiated with respect to the on-path node 20, 28, 28a to 28g.

[0108] In step S13, the separate off-path lookup comprises:

[0109] From the currently accessed on-path node 20, 28, 28a to 28g, the request 24 is broadcast to the respective broadcast-selected off-path neighbor nodes 32, 32a to 32i, which are located outside the corresponding routing path 26 and at a respective maximum distance of K hops (K > 1) from the on-path node 20, 28, 28a to 28g, the respective broadcast-selected off-path neighbor nodes 32, 32a to 32i and the currently accessed on-path node 20, 28, 28a to 28g as the corresponding on-path node 34 forming a corresponding broadcast group 36.

[0110] In an example, a first in-path node 28a, which is a corresponding in-path node 34, receives a request 24 for network service data 18 from a second client device 16b, and determines the availability of said network service data 18 in its cache according to step Sll.

[0111] If said network service data 18 is not available in its cache, the first in-path node 28a initiates a separate off-path lookup according to step S13. Said separate off-path lookup with respect to the first in-path node 28a comprises broadcasting the request 24 to a broadcast-selected (zero or more) off-path neighbour node 32, 32a, 32b, which is at a maximum distance of, for example, K = 1 hop from the first in-path node 28a. The maximum distance K can be different for each in-path node 28, 28a to 28g.

[0112] The broadcast selection can be selected, for example, such that any off-path neighbour node 32, 32a to 321 is requested 24 to be accessed at most once. In other words, the broadcast selection can be selected by ignoring off-path neighbour nodes 32, 32a to 321 outside the corresponding routing path 26 that were previously accessed by said request 24. However, this is not essential within the scope of the present application.

[0113] Thus, the first in-path node 28a broadcasts the request 24 to the first off-path neighbour node 32a and the second off-path neighbour node 32b.

[0114] In step S14, the off-path lookup comprises:

[0115] The availability of the requested network service data 18 in the respective cache is determined by each broadcast-selected off-path neighbour node 32, 32a to 321 upon receiving the request 24, respectively.

[0116] In step S15, the off-path lookup comprises:

[0117] If the requested network service data 18 is available in the respective cache, said network service data 18 is caused to be transmitted to the corresponding in-path node 34 of the broadcast group 36 to provide said network service data 18 on the corresponding routing path 26.

[0118] In an example, the first off-path neighbour node 32a and the second off-path neighbour 32b determine the availability of the requested network service data 18 in their respective caches upon receiving the request 24.

[0119] If the requested network service data 18 is available, the network service data 18 is transmitted to the corresponding on-path node 34 being the first off-path neighbor node 32a. If the requested network service data 18 is not available, the individual off-path lookup can be stopped or continued depending on the maximum distance of K hops with respect to the corresponding on-path node 34.

[0120] Thus, in step S16, the off-path lookup can be continued depending on the following:

[0121] The request 24 is broadcasted by each visited off-path neighbor node 32, 32a to 321 located at a distance of k hops (1 < k < K) from the corresponding on-path node 34 to the respective broadcast-selected off-path neighbor node 32 located outside the corresponding routing path 26 and at a distance of k+1 hops from the corresponding on-path node 34.

[0122] In the example, since the maximum distance with respect to the first on-path node 28a is K = 1 hop, the first off-path neighbor node 32a and the second off-path node 32b do not broadcast according to step S16 if the requested network service data 18 is not available in the cache of the first off-path neighbor node 32a and the second off-path neighbor 32b, respectively. In this example, the individual off-path lookup is stopped. Thus, the first on-path node 28a, the first off-path neighbor node 32a and the second off-path neighbor node 32b form a first broadcast group 36a.

[0123] In step S17, the method comprises:

[0124] If the requested network service data 18 cannot be provided by the currently visited on-path node 28, 28a to 28g by means of the individual off-path lookup, the request 24 is forwarded along the corresponding routing path 26 to provide the requested network service data 18 on the corresponding routing path 26.

[0125] In the example, the request 24 is forwarded to the second on-path node 28b. The method continues with steps S11 to S16, wherein the second on-path node 28b is the corresponding on-path node 34. In step S13, if the maximum distance of hops from the second on-path node 28b is again K = 1, the second on-path node 28b and the third off-path neighbor node 32c can form a second broadcast group 36b.

[0126] If the network service data 18 cannot be provided by the node 28b on the second path by means of a separate off-path lookup, the request 24 is forwarded to a third on-path node 28c. The method continues with steps Sll to S16, wherein the third on-path node 28c is the corresponding on-path node 34. In step S13, if the maximum distance in hops from the third on-path node 28c is again K = 1, the third on-path node 28c, a fourth off-path neighbor node 32d, a fifth off-path neighbor node 32e and a sixth off-path neighbor node 32f can form a third broadcast group 36c.

[0127] The broadcast selection can be chosen, for example, such that any off-path neighbor node 32, 32a to 32i is requested 24 to access at most once. Thus, in the example, the third broadcast group 36c does not include the third off-path neighbor node 32c, because the third off-path neighbor node 32 has already been included in the second broadcast group 36b.

[0128] In step S18, the method comprises:

[0129] Upon providing the requested network service data 18 on the corresponding routing path 24, the network service data 18 is transmitted along the corresponding reverse routing path 30 to the client device 16.

[0130] Figure 2 It is further shown that a fourth broadcast group 36d, a fifth broadcast group 36e, a sixth broadcast group 36f and a seventh broadcast group 36g can be formed according to the method for the fourth on-path node 28d, the fifth on-path node 28e, the sixth on-path node 28f and the seventh on-path node 28g, respectively, in case K = 1. However, it should be noted that not all of the shown broadcast groups 36a to 36f actually need to be explored according to the method. In implementations of the method, it can happen that no broadcast group 36 needs to be explored, for example, when the network service data 18 is already available in the first on-path node 28a. Furthermore, a broadcast group 36 can also include the corresponding on-path node 34, for example, only when any off-path neighbor node 32 has been included in another broadcast group 36 previously.

[0131] In any case, the method can stop exploring further broadcast groups 36 as soon as the requested network service data 18 can be provided on the corresponding routing path 26.

[0132] Figure 4 A second implementation of the method is shown. The second implementation can comprise steps Sll to S17 or a selection thereof. However, steps Sll to S17 are not shown anymore.

[0133] In step S19, the method comprises:

[0134] collecting information 38 about each off-path neighbor node 32, 32a to 32l and on-path node 28, 28a to 28g accessed by the request 24 along the corresponding routing path 26; and

[0135] caching the requested network service data 18 in one or more of the selected nodes 20 based on the collected node-related information.

[0136] In step S19, each broadcast group 36, 36a to 36g can collect information 38 about its members. For example, each accessed off-path neighbor node 32, 32a to 32l can cause the respective node-related information 38 to be transmitted to the corresponding on-path node 28, 28a to 28g, 34 which can collect the information 38. The node-related information 38 can be, for example, the degree 22 and / or the available cache space of each member of the respective broadcast group 36, 36a to 36g. Based on the collected node-related information 38, each broadcast group 36, 36a to 36g can select one or more members for caching the requested network service data 18. Thus, in contrast to the caching scheme as described with reference to Figure 1 the network service data 18 can not be cached in the accessed on-path nodes 20, 28, 28a to 28g, but in any other member of the corresponding broadcast group 36, 36a to 36g.

[0137] In a further embodiment of the method, the network service data 18 is not even cached in any member of the broadcast group 36, 36a to 36g, but at least in one or more nodes 20, 28, 28a to 28g, 32, 32l of one or more broadcast groups 36, 36a to 36g accessed by the request 24.

[0138] In step S20, the method comprises:

[0139] counting, by each node 20, the number of received requests 24 for the requested network service data 18, the number being indicative of the popularity of the network service data 18; and

[0140] caching the requested network service data 18 by one or more cache-selected nodes 20 by replacing other network service data 18 based on the popularity.

[0141] When a node 28, 28a to 28g, 32, 32a to 32l is selected for caching according to step S19, the selected node 28, 28a to 28g, 32, 32a to 32l can not have enough cache space available for caching the requested network service data 18. In such a case, each node 20 can count the number of requests 24 received for each requested network service data 18 and cache the requested network service data 18 based on popularity.

[0142] For example, if the selected node 28, 28a to 28g, 32, 32a to 32l already stores less popular network service data 18 of the currently requested network service data 18, the selected node 28, 28a to 28g, 32, 32a to 32l can replace the less popular network service data 18 by overwriting the less popular network service data 18 with the currently requested network service data 18. If the selected node 28, 28a to 28g, 32, 32a to 32l does not have less popular cached network service data 18 compared to the currently requested network service 18, another node 28, 28a to 28g, 32, 32a to 32l can be selected to cache the currently requested network service data 18.

[0143] The data that has been replaced can be stored in another node 20 adjacent to the selected node 28, 28a to 28g, 32, 32a to 32l.

[0144] With reference to Figure 1 and Figure 2 the preferred embodiments of the present application can be summarized as follows:

[0145] In this document, a distributed cache management scheme for information-centric networks is proposed, which is preferably based on two operational phases:

[0146] Data request: A request packet initiated by a consumer is forwarded to the nearest location to fetch the data in the shortest possible time. In this process, the nodes on the full path and a certain range of off-path nodes will be monitored.

[0147] Cache decision: A data packet initiated by a data holder (source or cache) is forwarded in the reverse path of the request, and in this way, the data will be cached in some of the visited on-path nodes and their off-path neighbors.

[0148] Figure 1 and Figure 2 aiming to illustrate the operation of the two phases (data request and cache decision) of the preferred embodiments of the mechanism. Figure 1 and Figure 2A network is shown with six data producers 14, 14a through 14f, six data consumers 16, 16a through 16f, and 24 network elements 20. Of these, seven network elements 28, 28a through 28g are selected routers that create a path from 14e to 16b. These routers have twelve neighbors 32, 32a through 32i distributed among them, some of which are shared between routers on more than one path. For example, neighbor 32j is a neighbor of network element 28e and network element 28f, while neighbor 32f is a neighbor of network elements 28c, 28d, and 28e.

[0149] Data request phase:

[0150] When the edge node ( Figure 1 and Figure 2 When receiving a data request from the local host 16b, the data request phase begins, in which the data request is forwarded to the nearest location using the routing information available in each on-path node to retrieve the data in the shortest possible time (following the shortest path 28a-28b-28c-28d-28e-28f-28g). During this process, the data request is provided with an empty list of off-path nodes, called the off-path node list. After this, the following set of operations are performed in each on-path node visited:

[0151] The node first checks its own cache to see if it can serve the requested data. If the data request is locally available, the data request ends and the cache decision phase begins. However, if the requested data is not locally available, the node increments a local variable that counts the number of requests received for that data, or starts a new variable. After this, the off-path lookup begins:

[0152] -Out-of-path search operations:

[0153] The data request is broadcast to all off-path neighbors within K hops of the current node, in addition to the nodes already on the off-path node list carried in the data request. For example, on-path node 28c broadcasts to neighbor nodes 32d and 32f with K=1. This excludes neighbor 32c, as it is already on the off-path node list included by on-path node 28b.

[0154] o Start an off-path lookup operation by adding the following information to the data request packet: the identity of the node on the path where the lookup operation is to begin; a hop count variable initialized with the value of the maximum number of hops allowed (K).

[0155] o All visited off-path nodes will: i) increase a local variable counting the number of received requests for this data, or start a new variable; ii) add their own identification to the data request packet, along with information about their average bandwidth and degree.

[0156] o If, after decreasing the hop count variable by on, the hop count is still positive, any visited off-path neighbor that does not have the requested data in its local cache will be able to further broadcast the data request. Otherwise, the off-path lookup operation is ended and the data request packet is sent back in the reverse path until a on-path node is found.

[0157] o If the off-path node has the requested data in its local cache, the data request phase is ended and the cache decision phase is started.

[0158] - After the on-path node that started the lookup operation receives all data request packets (in the same amount as its node degree), the data request phase proceeds by having the data request packets forwarded to the next on-path node in the direction of the data source. However, if the on-path node that started the lookup operation receives at least one data packet from its neighbors, the on-path node will complete the data request phase by not further forwarding the data request.

[0159] Cache decision phase:

[0160] This phase is preferably started after the requested data is found during the previous data request phase (in Figure 1 and Figure 2 , the data is found in producer 14e). Once found, the data packet is sent in the reverse direction used to forward the data request packets (28g to 28a in Figure 1 and Figure 2 ). In addition to the requested data object, the data packet carries information about all on-path nodes (including the data holder) and off-path nodes visited during the data request phase, including the topological distance between them.

[0161] In addition to forwarding the data packet, each on-path node decides whether (or whether not) to cache the data in its local cache or in the cache of any of its K-hop neighbors. The cache decision is done based on the properties of all on-path nodes and all visited off-path nodes, as well as the properties shown below:

[0162] - If the current on-path node is an edge node, meaning that the current on-path node is one hop distance from the data consumer (28a in Figure 1 and Figure 2 ), then the current on-path node stores the data in its local cache. If the cache does not have space for the new data, then:

[0163] o From the existing caches, another data object is selected for replacement to create space for the new data. The data object selected to be replaced is placed in the cache of one of the edge node's neighbors. To select the right neighbor node, the edge computes a number value by passing the name of the content to a hash function. The result of the hash function is used to identify the exact neighbor that should store the replaced data.

[0164] - If the node on the current path is not an edge:

[0165] o From its own group of neighbors, the node on the current path will select the following nodes as new data holders: i) with available cache space; ii) with bandwidth and degree higher than the average of all the nodes listed in the out-of-path nodes list. For example, the node on the current path 28e will select the following nodes as new potential data holders: 28e, 32j and 32f, because of their higher node degree (assuming that all neighbors have available cache space and similar bandwidth).

[0166] o In case the node on the current path is in the selected group of nodes, if there is available space, the node on the current path will store the data in its local cache. If there is no available space, the new data will be stored locally only if:

[0167] ■ the new data is more popular locally than some of the locally stored data, meaning it has a higher number of requests.

[0168] ■ the topological distance from the current node to the previous holder of the received data is higher than some of the locally stored data.

[0169] ■ the new data has a shorter validity than some of the locally stored data.

[0170] o After completing its cache decision process, the current node on the path will send a data packet to all its neighbor nodes in the selected group of nodes.

[0171] o If there is available space, each out-of-path neighbor node will store the data in its local cache. If there is no available space, the new data will be stored locally only if:

[0172] ■ the new data is more popular locally than some of the locally stored data, meaning it has a higher number of requests.

[0173] ■ the topological distance from the current node to the previous holder of the received data is higher than some of the locally stored data.

[0174] ■The new data has a shorter validity than some of the locally stored data.

[0175] o After the neighbor outside the whole path has finished its cache decision process, the node on the current path sends the data packet to the next node on the path according to the reverse path created by the data request packet.

[0176] The invention is embodied in a computer-implemented method as described herein. The invention is also embodied in an information centric network 12 comprising means for performing the method and nodes 20 adapted to the information centric network 12. The invention is also embodied in a computer program which, when executed by the information centric network 12, causes the information centric network to perform the described method. The invention is also embodied in a computer-readable data carrier having the computer program stored thereon.

[0177] List of reference signs

[0178] 10 network arrangement

[0179] 12 information centric network

[0180] 14 server device

[0181] 14a first server device

[0182] 14b second server device

[0183] 14c third server device

[0184] 14d fourth server device

[0185] 14e fifth server device

[0186] 14f sixth server device

[0187] 16 client device

[0188] 16a first client device

[0189] 16b second client device

[0190] 16c third client device

[0191] 16d fourth client device

[0192] 16e fifth client device

[0193] 16f sixth client device

[0194] 18 network service data

[0195] 20 node

[0196] 22 degrees

[0197] 24 request

[0198] 26 routing path

[0199] 28 on-path node

[0200] 28a first on-path node

[0201] 28b second on-path node

[0202] 28c third on-path node

[0203] 28d fourth on-path node

[0204] 28e fifth on-path node

[0205] 28f sixth on-path node

[0206] 28g seventh on-path node

[0207] 30 reverse routing path

[0208] 32 off-path neighbor node

[0209] 32a first off-path neighbor node

[0210] 32b second off-path neighbor node

[0211] 32c third off-path neighbor node

[0212] 32d fourth off-path neighbor node

[0213] 32e fifth off-path neighbor node

[0214] 32f sixth off-path neighbor node

[0215] 32g seventh off-path neighbor node

[0216] 32h eighth off-path neighbor node

[0217] 32i ninth off-path neighbor node

[0218] 32j tenth off-path neighbor node

[0219] 32k eleventh off-path neighbor node

[0220] 32l twelfth off-path neighbor node

[0221] 34 corresponding on-path node

[0222] 36 broadcast group

[0223] 36a first broadcast group

[0224] 36b second broadcast group

[0225] 36c third broadcast group

[0226] 36d fourth broadcast group

[0227] 36e fifth broadcast group

[0228] 36f sixth broadcast group

[0229] 36g seventh broadcast group

[0230] 38 node-related information

Claims

1. A computer-implemented method for transmitting data (18) in an information-centric network (12), the information-centric network (12) being connectable to a plurality of server devices (14, 14a to 14f) for respectively providing network service data (18), the information-centric network (12) being configured to receive a request (24) for the network service data (18) from a client device (16, 16a to 16f), wherein: The information-centric network (12) includes a plurality of interconnected nodes (20), each of the plurality of interconnected nodes (20) including a cache for caching network service data (18), each of the nodes (20) being configured to route any request (24) from the client device (16, 16a to 16f) to the corresponding server device (14, 14a to 14f) along a corresponding routing path (26) to another node in the nodes (20), the corresponding routing path (26) having one or more nodes (28, 28a to 28g) that can be accessed by the request (24) via one hop in sequence, the method comprising: a) determining, by each node (28, 28a to 28g) on ​​the corresponding routing path (26) currently accessed by the request (24) for the network service data (18), the availability of the network service data (18) in the corresponding cache, and if the network service data (18) is not available in the corresponding cache, initiating a separate off-path lookup with respect to the on-path node (28, 28a to 28g), the off-path lookup comprising: α) starting from a currently visited on-path node (28, 28a to 28g), broadcasting the request (24) to corresponding broadcast-selected off-path neighbor nodes (32, 32a to 32l), the corresponding broadcast-selected off-path neighbor nodes being located outside the corresponding routing path (26) and at a corresponding maximum distance of K hops from the on-path node, where K≥1, the corresponding broadcast-selected off-path neighbor nodes (32, 32a to 32l) and the currently visited on-path node (28, 28a to 28g) being the corresponding on-path node (34) forming a corresponding broadcast group (36, 36a to 36g), β) determining, by each broadcast selected off-path neighbor node (32, 32a to 321) upon receiving the request (24), the availability of the requested network service data (18) in the corresponding cache, and γ) if the requested network service data (18) is available in the corresponding cache, transmitting the network service data (18) to the corresponding on-path node (34) of the broadcast group (36, 36a to 36g) to provide the network service data (18) on the corresponding routing path (26); b) if the requested network service data (18) cannot be provided by the currently visited on-path node (28, 28a to 28g) by means of the separate off-path lookup, forwarding the request (24) along the corresponding routing path (26) to provide the requested network service data (18) on the corresponding routing path (26); and c) when the requested network service data (18) is provided on the corresponding routing path (26), transmitting the network service data (18) to the client device (16, 16a to 16f) along the corresponding reverse routing path (30).

2. The method according to claim 1, characterized in that Step α) further comprises: α1) Each visited off-path neighbor node (32, 32a to 321) located at a distance of k hops from the corresponding on-path node (34) broadcasts the request to the following corresponding broadcast-selected off-path neighbor nodes (32, 32a to 321): the corresponding broadcast-selected off-path neighbor nodes are located outside the corresponding routing path and at a distance of k+1 hops from the corresponding on-path node (34), where 1≤k <K。 3. The method according to any one of the preceding claims, characterized in that Step α) further comprises: a2) performing broadcast selection by ignoring off-path neighbor nodes (32, 32a to 321) outside the corresponding routing path (26) previously accessed by the request (24).

4. The method according to any one of the preceding claims, further comprising: d) collecting information (40) along the corresponding routing path (26) associated with each off-path neighbor node (32, 32a to 321) and on-path node (28, 28a to 28g) accessed by the request (24); and e) caching the requested network service data (18) in one or more visited nodes (20, 28, 28a to 28g, 32, 32a to 321) selected based on the collected node-related information (40).

5. The method according to claim 4, characterized in that Step d) and step e) include: d1) collecting, by each corresponding broadcast group (36, 36a to 36g), information (40) associated with each respectively visited off-path neighbor node (32, 32a to 321) and the corresponding on-path node (34); and e1) Each broadcast group (36, 36a to 36g) caches the requested network service data (18) in one or more accessed nodes (20, 28, 28a to 28g, 32, 32a to 32l) of the broadcast group (36, 36a to 36g) selected based on the node-related information (40) collected by the broadcast group (36, 36a to 36g).

6. The method according to claim 4 or 5, characterized in that The node-related information of the reference node includes or is based on one, several or all of the following: - an identifier for identifying the reference node (20); - a degree (22) of the reference node (20), the degree (22) corresponding to the number of neighbor nodes (20) at a one-hop distance from the reference node; - the bandwidth of the reference node (20); - available cache space of the reference node (20); - the number of requests (24) for the requested network service (18) previously received by the reference node (20); and / or - The hop distance to the corresponding node (34) on the path.

7. The method according to any one of the preceding claims, further comprising: f) counting, by each node (20), a number of received requests (24) for the requested network service data (18), said number indicating the popularity of said network service data (18); as well as g) caching the requested web service data (18) by one or more cache-selected nodes (20) by replacing other web service data (18) based on the popularity.

8. The method according to any one of the preceding claims, further comprising one or both of the following: h) transmitting corresponding node-related information (40) to the corresponding on-path node (34) via each visited off-path neighbor node (32, 32a to 321); and / or i) broadcasting, transmitting and / or forwarding the request (24) by adding corresponding node-related information (34) to the request (24).

9. The method according to any one of the preceding claims, characterized in that Step b) further comprises: b1) forwarding the request (24) to the nearest node (20) or server device (14, 14a to 14f) by using routing information available in nodes (28, 28a to 28g) on ​​each path to retrieve the data (18) in the shortest possible time.

10. An information-centric network comprising means for performing the method according to any one of the preceding claims.

11. A node adapted for use in an information-centric network according to claim 10.

12. A computer program, when executed by an information-centric network, causing the information-centric network to perform the method according to any one of claims 1 to 9.

13. A computer-readable data carrier having stored thereon the computer program according to claim 12.