Congestion processing method of NDN (Named Data Networking) network and network equipment
By configuring the server cluster in the NDN network and using the tag fields to judge the network congestion situation, and dynamically adjusting the transmission path, the problem of network congestion in the NDN network is solved, and more efficient data processing and content distribution are achieved.
Patent Information
- Application Number
- CN202411523397.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-29
- Publication Date
- 2025-02-07
AI Technical Summary
Due to its open architecture and in-network cache characteristics, NDN networks are prone to network congestion problems. The existing technology mainly focuses on improving content distribution efficiency, and lacks effective strategies for network security and congestion processing.
By configuring the server cluster in the NDN network, when the downstream node detects a network congestion in the upstream node, it forwards the request to the server cluster for processing, and still sends the request to the upstream node for processing without congestion. At the same time, use mark fields (such as isCon_flag field) to determine network congestion and dynamically adjust the transmission path to distribute network traffic.
It effectively alleviates network congestion, reduces the processing pressure of upstream nodes, achieves more efficient data processing and content distribution, and improves the stability and availability of the entire network.
Smart Images

Figure CN119402426A_ABST
Abstract
Description
Background Art
[0002] The Named Data Network (NDN) uses content name-based addressing for data transmission. Compared with IP networks, it can effectively improve the efficiency of content distribution and data availability through measures such as in-network caching and multi-node transmission. At the same time, the routing mechanism based on content name addressing effectively avoids some security issues in traditional networks, such as common denial of service (DoS) attacks. However, precisely because the NDN network has an open architecture and unique in-network caching and content routing characteristics, attack methods specifically targeting NDN networks continue to emerge.
[0003] In network communication security technology, current research on NDN networks is mainly focused on areas such as content caching and content routing. The goal of these studies is to improve the efficiency of content distribution in the network. Given the core position of network security in the communication field, it is urgent to develop effective strategies to deal with and solve the potential network congestion problem in NDN networks. Summary of the invention
[0004] The present application provides a congestion handling method and a network device for an NDN network, so as to solve the congestion problem of the NDN network.
[0005] On the one hand, an embodiment of the present application provides a congestion processing method for an NDN network, wherein the NDN network is configured with a server cluster, the NDN network includes an upstream node and a downstream node, and the downstream node performs the following operations:
[0006] receiving a first data packet returned by an upstream node in response to a first interest packet of a first request, and determining whether network congestion occurs at the upstream node according to a target field of the first data packet;
[0007] If congestion occurs at the upstream node, sending the second interest packet of the second request to the server cluster for processing;
[0008] If the upstream node is not congested, sending the second interest packet of the second request to the upstream node for processing;
[0009] Receive a second data packet corresponding to the second interest packet.
[0010] On the other hand, an embodiment of the present application provides a congestion processing method for an NDN network, wherein the NDN network is configured with a server cluster, and the NDN network includes an upstream node and a downstream node. For any upstream node, the following operations are performed:
[0011] Receiving a first interest packet of a first request sent by the downstream node;
[0012] Marking the target field of the first data packet corresponding to the first interest packet according to its own load capacity;
[0013] The marked first data packet is transmitted back to the downstream node so that the downstream node determines whether network congestion occurs at the upstream node based on the target field, and when congestion occurs, the second interest packet of the second request is sent to the server cluster to obtain the second data packet corresponding to the second interest packet; otherwise, the second interest packet of the second request is sent to the upstream node to obtain the second data packet corresponding to the second interest packet.
[0014] On the other hand, an embodiment of the present application provides a network device, the network device is a downstream node of an NDN network, the NDN is configured with a server cluster, and the network device includes:
[0015] The receiving module is used to receive a first data packet corresponding to a first interest packet of a first request; and receive a second data packet corresponding to a second interest packet of a second request.
[0016] a congestion detection module, configured to determine whether network congestion occurs at the upstream node according to the target field of the first data packet;
[0017] The sending module is used to send the interest packet of the second request to the server cluster for processing when congestion occurs at the upstream node; and to send the interest packet of the second request to the upstream node for processing when congestion does not occur at the upstream node.
[0018] Optionally, when the data requested by the second interest packet of the second request is cached in other routing nodes, the sending module is specifically used to:
[0019] Acquire a first routing path between the downstream node and the server cluster, and a second routing path between the downstream node and the other routing nodes;
[0020] If the first routing path is not longer than the second routing path, sending the second interest packet of the second request to the server cluster for processing;
[0021] If the first routing path is longer than the second routing path, the second interest packet of the second request is sent to the other routing nodes for processing.
[0022] Optionally, the server cluster includes multiple servers, and the sending module is specifically used for:
[0023] Obtaining serial numbers of the multiple servers;
[0024] According to the sequence number, the second interest packet of the second request is sent to the target nodes in the multiple servers in turn.
[0025] Optionally, when the load capacity of the target node is the largest, the sending module is further used to:
[0026] Obtaining the load capacity of the next server of the target node;
[0027] If the load capacity of the next server is within a preset range, the second interest packet of the second request is sent to the next server for processing; otherwise, the next server is queried again until the second interest packet of the second request is sent to a server whose load capacity is within a preset range for processing.
[0028] Optionally, the server cluster includes multiple servers, and the sending module is specifically used for:
[0029] Get the remaining load capacity of all servers and sort them;
[0030] The second interest packet of the second request is sent to a server with the largest remaining load capacity for processing.
[0031] Optionally, the target field is an isCon_flag field, and the congestion detection module is specifically used for:
[0032] When the value of the isCon_flag field of the first data packet is 1, it is determined that network congestion occurs at the upstream node;
[0033] When the value of the isCon_flag field of the first data packet is 0, it is determined that no network congestion occurs at the upstream node.
[0034] On the other hand, an embodiment of the present application provides a network device, the network device is an upstream node of an NDN network, the NDN is configured with a server cluster, and the network device includes:
[0035] A receiving module, configured to receive a first interest packet of a first request and a second interest packet of a second request sent by a downstream node;
[0036] A field marking module, used to mark the target field of the first data packet corresponding to the first interest packet according to its own load capacity;
[0037] A sending module is used to transmit the marked first data packet back to the downstream node, so that the downstream node determines whether the upstream node has network congestion according to the target field, and when congestion occurs, sends the second interest packet to the server cluster to obtain the second data packet corresponding to the second interest packet; otherwise, sends the second interest packet to the upstream node to obtain the second data packet corresponding to the second interest packet.
[0038] Optionally, the target field is an isCon_flag field, and the field marking module is specifically used for:
[0039] If its own load capacity is greater than a preset value, the value of the isCon_flag field of the first data packet is marked as 1 to indicate that network congestion occurs;
[0040] If its own load capacity is not greater than a preset value, the value of the isCon_flag field of the first data packet is marked as 0 to indicate that no network congestion occurs.
[0041] The congestion handling method and network device of an NDN network provided by the embodiment of the present application have the following beneficial effects:
[0042] After the downstream node receives the first data packet sent back by the upstream node for the first request, it identifies the target field to learn about the network congestion. When network congestion occurs, the downstream node will send a second request to the configured server cluster to obtain the second data packet. When network congestion does not occur, the downstream node will send a second request to the upstream node to obtain the second data packet. It can select different transmission paths according to the network congestion situation to disperse network traffic, effectively reduce the load on specific links, and alleviate network congestion. On the other hand, by configuring a server cluster for the NDN network, its computing power can be used to reduce the pressure on the upstream node when the network is congested, achieving more efficient data processing and content distribution.
[0043] Other features and advantages of the present application will be described in the following description, and partly become apparent from the description, or be understood by practicing the present application. The purpose and other advantages of the present application can be realized and obtained by the structures specifically pointed out in the written description, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, a brief introduction will be given below to the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0045] Figure 1 The following is a schematic diagram of a data transmission scenario based on an NDN network.
[0046] Figure 2 A schematic diagram of the topology of the NDN network provided in the embodiment of the present application;
[0047] Figure 3 A schematic diagram of the transmission direction of a data stream provided in an embodiment of the present application;
[0048] Figure 4A A schematic diagram of the process of a downstream node requesting data from an upstream node;
[0049] Figure 4B A schematic diagram of the process of upstream nodes transmitting data back to downstream nodes;
[0050] Figure 5 A flowchart of a congestion handling method for an NDN network implemented on the upstream node side;
[0051] Figure 6 A flowchart of a congestion handling method for an NDN network implemented on the downstream node side;
[0052] Figure 7 It is a flow chart of data request from downstream nodes when the network of upstream nodes is congested;
[0053] Figure 8 A structural diagram of a network device provided in an embodiment of the present application;
[0054] Fig. 9 A structural diagram of another network device provided in an embodiment of the present application;
[0055] Fig.10 A structural diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0056] In order to make the purpose, technical solutions and advantages of this application clearer, this application will be further described in detail below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0057] Based on the exemplary embodiments shown in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application. In addition, although the disclosure in this application is introduced according to one or several exemplary examples, it should be understood that each aspect of these disclosures can also constitute a complete technical solution separately.
[0058] It should be understood that the terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, for example, they can be implemented according to an order other than those given in the diagrams or descriptions of the embodiments of this application.
[0059] In addition, the terms "include" and "have" and any variations thereof are intended to cover but not exclude inclusion, for example, a product or device comprising a list of components is not necessarily limited to those components expressly listed but may include other components not expressly listed or inherent to such products or devices.
[0060] In order to clearly describe the embodiments of the present application, the nouns in the embodiments of the present application are explained below.
[0061] NDN network: It shares and exchanges data based on content names, adopts network built-in cache and publish / subscribe transmission mode. It is one of the future network architecture research projects initiated in 2010. It aims to develop a new network architecture to meet the emerging communication needs.
[0062] Content router: is a special router, which is a unique expression in NDN network. The router in the embodiment of the present application refers to a content router.
[0063] Routing node: A node consisting of a router in an NDN network, also called a router node.
[0064] Edge node: A routing node composed of routers at the edge of the NDN network, connected to the user terminal, used to receive requests from the client.
[0065] Intermediate nodes: Routing nodes composed of routers in the middle of the NDN network. They cannot be directly connected to user terminals. They are used to process requests not processed by edge nodes and realize routing and exchange of data content.
[0066] Upstream and downstream: used to indicate the transmission direction of data flow. In network communication, data flow generally goes from upstream to downstream.
[0067] Upstream node: A routing node that receives requests and sends data packets.
[0068] Downstream node: A routing node that sends requests and receives packets.
[0069] The data processing of routers in NDN networks presents a three-level pipeline processing mode: including content store (CS), pending interest table (PIT) and forwarding information base (FIB). That is to say, when the interest packet arrives at the router for next-hop forwarding, it first enters the CS module for matching to check whether the content requested by the interest packet has been cached locally in the router, and then it can enter the latter two modules for processing. In this way, all interest packets need to be processed in the CS module when entering the routing node.
[0070] Based on the characteristics of NDN in-network caching, after the interest packet requested by the client matches the data, when the data packet is transmitted back to the client, the CS module of each routing node along the way will cache the data. Since some intermediate nodes in the NDN network are connected to more routing nodes than edge nodes, they will receive more interest packets, which means that the intermediate nodes will cache more data, and the pressure on the intermediate nodes to process and forward data will be greater, which is more likely to cause performance bottlenecks and network congestion.
[0071] Specifically, when the number of interest packets arriving at a certain intermediate node reaches the processing threshold of the CS module, a large number of interest packets will be blocked at the CS module and cannot be sent to the next two modules or even the next node for processing. Each interest packet has its own specific life cycle. An interest packet of a life cycle may expire while waiting for processing due to network congestion, resulting in the loss of the interest packet and the need to resend it, thereby reducing the throughput of the entire network and increasing the latency of content transmission.
[0072] In view of this, an embodiment of the present application provides a congestion handling method for an NDN network. When a downstream node requests data from an upstream node, it learns about the network congestion by identifying the target field of the first data packet, and when network congestion occurs, it sends a second request to the configured server cluster to obtain the second data packet, otherwise it sends a second request to the upstream node to obtain the second data packet. Selecting different transmission paths according to the network congestion situation can disperse network traffic, effectively reduce the load on a specific link, and alleviate network congestion. On the other hand, in response to the performance bottleneck of the CS module in the routing and forwarding process of the intermediate node, a server cluster is configured for the NDN network. When the upstream node sends network congestion, it requests data from the server cluster, thereby making full use of the processing power of the server cluster to reduce the routing and forwarding pressure of the upstream node, and achieving more efficient data processing and content distribution.
[0073] The preferred embodiments of the present application are described below in conjunction with the drawings in the specification. It should be understood that the preferred embodiments described herein are only used to illustrate and explain the present application, and are not used to limit the present application. In addition, the embodiments and features in the embodiments of the present application may be combined with each other if there is no conflict.
[0074] Figure 1 A schematic diagram of a data transmission scenario based on an NDN network provided in an embodiment of the present application is exemplarily shown, and the application scenario diagram includes a terminal device 110 and a server 120.
[0075] In the embodiment of the present application, the terminal device 110 includes but is not limited to mobile phones, tablet computers, laptops, desktop computers, e-book readers, intelligent voice interaction devices, smart home appliances, vehicle-mounted terminals, wearable devices and other devices; the client on the terminal device 110 can request data of the target service through the NDN network. The client can be software (such as a browser, instant messaging software, etc.), or a web page, a small program, etc. The server 120 is the background server of the target service, which can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides content distribution services.
[0076] It should be noted that Figure 1 The figure is only an example. In fact, the number of terminal devices and servers is not limited and is not specifically limited in the embodiments of the present application.
[0077] It should be noted that the above application scenarios are only shown to facilitate understanding of the spirit and principles of the present application, and the implementation methods of the present application are not limited in this regard.
[0078] Generally, the traffic of edge nodes in NDN network is small and congestion rarely occurs. However, since the intermediate nodes in NDN network are connected to more routing nodes, they will receive more requests and cache more content, resulting in performance bottlenecks. Therefore, a server cluster is configured for the intermediate nodes. The server cluster consists of several servers with large storage capacity, which can be responsible for processing the interest packets and data packets requested by the client, especially the interest packets blocked in the content storage module of the intermediate node.
[0079] For example, a server cluster can be configured for an NDN network based on geographical location, and a server cluster can also be configured for an NDN network based on network partitioning.
[0080] It should be noted that the embodiment of the present application does not impose any restrictive requirements on the number of server clusters in the NDN network, and can be set according to actual needs.
[0081] After configuring the server cluster, you can initialize the server cluster. In specific implementation, according to the various mainstream services corresponding to the NDN network, some business-related popular content can be deployed on the server cluster to divert the interest packets of the intermediate nodes.
[0082] In the embodiment of the present application, by configuring a server cluster, the interest packet blocked in the content storage module can be forwarded to the server cluster for processing, thereby alleviating the routing forwarding processing pressure of the intermediate node and preventing and alleviating network congestion.
[0083] See also Figure 2 , a schematic diagram of the topology of the NDN network provided in an embodiment of the present application, wherein routing nodes route1, route2, and route4 are edge nodes, directly connected to user terminals, and used to receive requests sent by clients on user terminals and process or forward them, and routing nodes route3, route5-route7 are intermediate nodes, wherein intermediate nodes route5 and route6 are connected to edge nodes, and intermediate nodes route3 and route7 are connected to other intermediate nodes. An intermediate node can serve as an upstream node or a downstream node, such as intermediate node route5 serving as an upstream node of edge node route2, and intermediate node route5 serving as a downstream node of intermediate node route3. The upstream node is used to receive requests forwarded by downstream nodes and process or forward them. At one end of intermediate node route3, a server cluster is configured.
[0084] According to the transmission direction of data flow, it is divided into two parts: upstream nodes and downstream nodes, such as Figure 3 Among them, the downstream node is mainly used for data request and data reception, and the upstream node mainly marks the field of the data packet sent back to the downstream node according to its own load capacity to inform the downstream node of its network congestion, so that the subsequent downstream node can select different transmission paths to request data according to the network congestion.
[0085] like Figure 4A As shown in the figure, it is the process of the downstream node requesting data from the upstream node. After receiving the request sent by the client, the downstream node first performs matching processing in the local content storage module. If the CS module caches data with the same name as the interest packet content of the request, the data will be returned to the client. Otherwise, the request will be forwarded to the pending interest table. When an interest packet is recorded in the pending interest table, the data with the same name as the interest packet content will be routed back to the original node that sent the interest packet by adding an input port. Otherwise, the request will be further forwarded to the forwarding information library. When the forwarding information library matches the interest packet corresponding to the request, the request will be forwarded to the next hop, otherwise the interest packet of the request will be discarded.
[0086] like Figure 4BAs shown in the figure, it is the process of an upstream node transmitting data back to a downstream node. The upstream node will first check whether there is a corresponding interest packet in the pending interest table for the data packet it sends. If so, the local content cache module will be updated according to the data packet and sent to the downstream node. Otherwise, the data packet will be directly discarded.
[0087] In order to improve the service quality and availability of the NDN network, it is necessary not only to prevent early network congestion, but also to effectively control the transmission of data packets in the network after congestion occurs, so as to alleviate network congestion and ensure efficient and stable network operation.
[0088] See also Figure 5 , which is the implementation process of the congestion handling method of the NDN network implemented on the upstream node side, mainly includes the following steps:
[0089] S501: Receive a first interest packet of a first request sent by a downstream node.
[0090] Among them, the first interest packet carries the name of the data content requested by the first request sent by the client.
[0091] S502: Mark the target field of the first data packet corresponding to the first interest packet according to its own load capacity.
[0092] After receiving the first interest packet, the upstream node searches for the data content carried by the first interest packet according to the name of the data content carried by the first interest packet, and encapsulates the found data into a first data packet.
[0093] Taking into account the limited processing power of the upstream node, in order to avoid long waiting for subsequent interest packets, it can mark the field in the header of the first data packet sent back to the client according to its own load capacity, and use the value of this field to notify the downstream node of its current network congestion, so that the downstream node can subsequently select different transmission paths to request data according to the network congestion.
[0094] In one example, an isCon_flag field may be added to the header of a data packet to mark network congestion. In specific implementation, if the load capacity of the upstream node is greater than a preset value, the value of the isCon_flag field of the first data packet is marked as 1 to indicate that network congestion has occurred; if the load capacity of the upstream node is not greater than the preset value, the value of the isCon_flag field of the first data packet is marked as 0 to indicate that network congestion has not occurred.
[0095] by Figure 2 For example, route5 is the upstream node of route2. When the load capacity of route5 reaches the upper limit, the value of the isCon_flag field of the first data packet is marked as 1, otherwise the value of the isCon_flag field of the first data packet is marked as 0.
[0096] S503: Send the marked first data packet back to the downstream node.
[0097] In an embodiment of the present application, the upstream node adds an isCon_flag field to the header of the data packet and assigns a value to the field. In this way, each time the downstream node receives a data packet, it can check the value of the isCon_flag field to learn about the current network congestion of the upstream node, thereby selecting a different transmission path to send subsequent data requests according to the network congestion situation to avoid network congestion.
[0098] See also Figure 6 , which is the implementation process of the congestion handling method of the NDN network implemented on the downstream node side, mainly includes the following steps:
[0099] S601: Receive a first data packet returned by an upstream node in response to a first interest packet of a first request.
[0100] A target field for marking the upstream node's own load capacity is added to the header of the first data packet, so that the downstream node can learn the network congestion status of the upstream node according to the target field.
[0101] S602: Determine whether network congestion occurs at the upstream node according to the target field of the first data packet. If congestion occurs, execute S603; if not, execute S604.
[0102] After receiving the first data packet sent by the upstream node, the downstream node first detects the value of the target field to learn the network congestion status of the upstream node.
[0103] Optionally, taking the target field as the isCon_flag field as an example, the network congestion situation of the upstream node is judged as follows: when the value of the isCon_flag field of the first data packet is 1, it is determined that network congestion occurs at the upstream node; when the value of the isCon_flag field of the first data packet is 0, it is determined that network congestion does not occur at the upstream node.
[0104] S603: Send the second interest packet of the second request to the server cluster for processing.
[0105] In one example, due to network congestion at the upstream node, if the downstream node continues to send the second interest packet of the second request to the upstream node, the second interest packet will wait in the content storage module of the upstream node, and the waiting time may exceed its life cycle and cause packet loss, so that the client cannot obtain the response result of the second request. In this application, a server cluster is configured for the NDN network, which has a large storage capacity and strong data processing capability. Therefore, when network congestion occurs at the upstream node, the downstream node can send the second interest packet of the second request to the server cluster for processing, thereby reducing the processing pressure on the upstream node.
[0106] Still Figure 2 For example, the upstream node route5 is congested. It is known that the server cluster caches most of the popular content in the network. When the data name of the interest packet forwarded by the downstream node router2 happens to hit the server cluster, the interest packet when the upstream node router5 is blocked can be directly forwarded to the server cluster for processing. The upstream node router5, as an intermediate node, can only forward the interest packet. That is, when the interest packet reaches the blocked router5 node, it will not match the content in the content storage module of route5, but bypass the content storage modules of the nodes along the way router2->router5->router3, and directly add it to the pending interest table and forward it to the server cluster for processing.
[0107] In an optional embodiment, when the server cluster does not store the content of the second interest packet, the second data packet may be discarded or forwarded to other nodes storing the content of the second interest packet for processing.
[0108] S604: Send the second interest packet of the second request to the upstream node for processing.
[0109] In one example, when the upstream node does not experience network congestion, it indicates that it still has sufficient processing capacity, so the downstream node can send the second interest packet of the second request to the upstream node for processing.
[0110] Still Figure 2 For example, the upstream node route5 has no network congestion, and the downstream node router2 sends the interest packet to the upstream node route5. The upstream node route5 performs content matching in the content storage module and sends the matched data packet to the downstream node route2.
[0111] S605: Receive a second data packet corresponding to the second interest packet.
[0112] The second data packet may come from a server or an upstream node.
[0113] In an optional implementation, the downstream node can detect the value of the target field of the data packet within the current period according to a set period, and when it detects that the upstream node has network congestion, it directly sends all the interest packets requested within the current period to the server cluster for processing, thereby saving computing resources.
[0114] In the embodiment of the present application, the current network congestion is notified and identified by setting a tag field. When the upstream node is under great pressure to process the interest packet and network congestion occurs, the downstream node does not continue to block these interest packets in the content storage module, but forwards these interest packets to the server cluster, so as to select different transmission paths according to the value of the tag field, so that the network can dynamically adjust the forwarding path of the interest packet, reduce the load on a specific link, and effectively alleviate network congestion. On the other hand, forwarding the interest packet to the server cluster for processing can not only reduce the processing pressure of the network, but also optimize the data flow of the entire network, because the server cluster has idle resources and powerful computing power to process these interest packets, so as to achieve more efficient data processing and content distribution.
[0115] In an optional implementation, when network congestion occurs at the upstream node, and the data requested by the second interest packet of the second request is cached in other routing nodes, the data request process of the downstream node is as follows: Figure 7 As shown, it mainly includes the following steps:
[0116] S701: Acquire a first routing path between a downstream node and a server cluster, and a second routing path between a downstream node and other routing nodes.
[0117] Still Figure 2 For example, assuming that the upstream node route5 has network congestion, and the content of the interest packet requested by the downstream node route2 exists in the server cluster and the routing node route7, then the first routing path between the downstream node and the server cluster is router2->router5->router3->server cluster, and router5 and router3 only forward the interest packet; the second routing path between the downstream node and the routing node route7 is router2->router5->router6->router7, and router5 and router6 only forward the interest packet.
[0118] For another example, assuming that the upstream node route5 has network congestion, and the content of the interest packet requested by the downstream node route2 exists in the server cluster and the routing node route6, then the first routing path between the downstream node and the server cluster is router2->router5->router3->server cluster, and router5 and router3 only forward the interest packet; the second routing path between the downstream node and the routing node route6 is router2->router5->router6, and router5 only forwards the interest packet.
[0119] S702: Determine whether the first routing path is not longer than the second routing path, if so, execute S703, otherwise, execute S704.
[0120] The shorter the path length, the higher the data processing efficiency. Therefore, the optimal transmission path can be selected by comparing the path lengths.
[0121] S703: Send the second interest packet of the second request to the server cluster for processing.
[0122] For example, the length of the first routing path router2->router5->router3->server cluster is 4, and the length of the second routing path router2->router5->router6->router7 is also 4. The two lengths are equal, but because the server cluster has strong data processing capabilities, the second interest packet of the second request can be sent to the server cluster for processing.
[0123] S704: Send the second interest packet of the second request to other routing nodes for processing.
[0124] For another example, the length of the first routing path router2->router5->router3->server cluster is 4, and the length of the second routing path router2->router5->router6 is 3. The length of the second routing path is shorter, so the second interest packet of the second request can be sent to routing node route6 for processing.
[0125] In an embodiment of the present application, when network congestion occurs at an upstream node, diversified selection of transmission paths is achieved by comparing the routing paths of interest packets, thereby flexibly coping with network congestion and reducing the load on the upstream node.
[0126] Although this application configures a server cluster for the NDN network, considering that the server cluster also has performance bottlenecks, the data processing method of the server cluster can be optimized.
[0127] Generally, a server cluster includes multiple servers. Therefore, a round-robin method can be used to request data from the server.
[0128] During specific implementation, the downstream node obtains the serial numbers of multiple servers, and sends the second interest packet of the second request to the target nodes in the multiple servers in turn according to the serial numbers.
[0129] Taking the server cluster containing 3 servers with serial numbers 1, 2, and 3 as an example, when the route5 node has network congestion, the route2 node sends the interest packet to server 1 in the server cluster. When the route6 node has network congestion, the route4 node sends the interest packet to server 2 in the server cluster.
[0130] In an optional implementation, when the load capacity of the target node is the largest, load balancing can be achieved in the following manner: obtain the load capacity of the next server of the target node, and determine whether the load capacity of the next server is within a preset range; if so, send the second interest packet of the second request to the next server for processing; otherwise, continue to query the next server until the second interest packet of the second request is sent to a server whose load capacity is within the preset range.
[0131] Still taking the server cluster containing 3 servers with serial numbers 1, 2, and 3 as an example, the load capacity of server 1 has reached the upper limit, while the load capacity of server 2 has not reached the upper limit. When network congestion occurs at the route5 node, theoretically the route2 node should send the interest packet to server 1 in the server cluster. However, since the load capacity of server 1 has reached the upper limit, the route2 node will eventually send the interest packet to server 2 in the server cluster.
[0132] In an optional implementation, load balancing can also be achieved in the following manner: the remaining load capacity of all servers is obtained and sorted, and then the second interest packet of the second request is sent to a server with the largest remaining load capacity for processing based on the sorting result.
[0133] Taking the server cluster containing 3 servers with serial numbers 1, 2, and 3 as an example, when the route5 node encounters network congestion, the remaining load capacity of each server is obtained as follows: server 1 < server 3 < server 2. Therefore, the route2 node will eventually send the interest packet to server 2 in the server cluster.
[0134] In the embodiments of the present application, interest packets are sent to different servers for processing through a round-robin algorithm and a ranking of the remaining load capacity to achieve load balancing, thereby preventing a server from reaching its maximum load capacity, improving the utilization of server resources, and ensuring high availability of services while ensuring the stable and efficient operation of the entire NDN network.
[0135] In an optional implementation, when the upstream node encounters network congestion, the downstream node can directly send the interest packet to the server cluster. The load balancer in the server cluster is responsible for distributing the interest packet according to a round-robin algorithm or a remaining load capacity sorting method, thereby achieving load balancing and improving the utilization of server resources. While ensuring the stable and efficient operation of the entire NDN network, it also ensures the high availability of the service.
[0136] Based on the same technical concept, an embodiment of the present application also provides a network device, which is a downstream node in the NDN network, and can implement the steps of the congestion handling method of the NDN network on the downstream node side, and can achieve the same technical effect.
[0137] See also Figure 8 , the network device includes a receiving module 801, a congestion detection module 802 and a sending module 803, wherein:
[0138] The receiving module 801 is used to receive a first data packet corresponding to a first interest packet of a first request; and to receive a second data packet corresponding to a second interest packet of a second request.
[0139] A congestion detection module 802, configured to determine whether network congestion occurs at an upstream node according to a target field of the first data packet;
[0140] The sending module 803 is used to send the interest packet of the second request to the server cluster for processing when congestion occurs in the upstream node; and to send the interest packet of the second request to the upstream node for processing when congestion does not occur in the upstream node.
[0141] Optionally, when the data requested by the second interest packet of the second request is cached in other routing nodes, the sending module 803 is specifically used to:
[0142] Obtaining a first routing path between a downstream node and a server cluster, and a second routing path between the downstream node and other routing nodes;
[0143] If the first routing path is not longer than the second routing path, sending the second interest packet of the second request to the server cluster for processing;
[0144] If the first routing path is longer than the second routing path, the second interest packet of the second request is sent to other routing nodes for processing.
[0145] Optionally, the server cluster includes multiple servers, and the sending module 803 is specifically used for:
[0146] Get serial numbers of multiple servers;
[0147] According to the sequence number, the second interest packet of the second request is sent to the target nodes in multiple servers in turn.
[0148] Optionally, when the load capacity of the target node is the largest, the sending module 803 is further used to:
[0149] Get the load capacity of the next server of the target node;
[0150] If the load capacity of the next server is within the preset range, the second interest packet of the second request is sent to the next server for processing; otherwise, the next server is queried until the second interest packet of the second request is sent to a server with a load capacity within the preset range for processing.
[0151] Optionally, the server cluster includes multiple servers, and the sending module 803 is specifically used for:
[0152] Get the remaining load capacity of all servers and sort them;
[0153] The second interest packet of the second request is sent to a server with the largest remaining load capacity for processing.
[0154] Optionally, the target field is the isCon_flag field, and the congestion detection module 802 is specifically used for:
[0155] When the value of the isCon_flag field of the first data packet is 1, it is determined that network congestion occurs at the upstream node;
[0156] When the value of the isCon_flag field of the first data packet is 0, it is determined that no network congestion occurs at the upstream node.
[0157] Based on the same technical concept, an embodiment of the present application also provides another network device, which is an upstream node in the NDN network, and can implement the steps of the congestion handling method of the above-mentioned upstream node side NDN network, and can achieve the same technical effect.
[0158] See also Fig. 9 , the network device includes a receiving module 901, a field marking module 902 and a sending module 903; wherein:
[0159] The receiving module 901 is used to receive a first interest packet of a first request and a second interest packet of a second request sent by a downstream node;
[0160] A field marking module 902, used to mark the target field of the first data packet corresponding to the first interest packet according to its own load capacity;
[0161] The sending module 903 is used to transmit the marked first data packet back to the downstream node, so that the downstream node determines whether the upstream node has network congestion based on the target field, and when congestion occurs, sends the second interest packet to the server cluster to obtain the second data packet corresponding to the second interest packet, otherwise sends the second interest packet to the upstream node to obtain the second data packet corresponding to the second interest packet.
[0162] Optionally, the target field is the isCon_flag field, and the field marking module 902 is specifically used for:
[0163] If its own load capacity is greater than the preset value, the value of the isCon_flag field of the first data packet is marked as 1 to indicate that network congestion occurs;
[0164] If its own load capacity is not greater than the preset value, the value of the isCon_flag field of the first data packet is marked as 0 to indicate that no network congestion occurs.
[0165] For the convenience of description, the above parts are divided into modules (or units) according to their functions and described separately. Of course, when implementing this application, the functions of each module (or unit) can be implemented in the same or multiple software or hardware.
[0166] After introducing the congestion handling method and network device of the NDN network according to the exemplary embodiment of the present application, next, an electronic device according to another exemplary embodiment of the present application is introduced.
[0167] Those skilled in the art will appreciate that various aspects of the present application may be implemented as a system, method or program product. Therefore, various aspects of the present application may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to as "circuit", "module" or "system" herein.
[0168] Based on the same inventive concept as the above method embodiment, the electronic device provided in the embodiment of the present application may be a router. In this embodiment, the structure of the electronic device may be as follows: Fig.10 As shown, it includes a memory 1001 , a communication interface 1003 and one or more processors 1002 .
[0169] The memory 1001 is used to store computer programs executed by the processor 1002. The memory 1001 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system and programs required for running the instant messaging function, etc.; the data storage area may store various instant messaging information and operation instruction sets, etc.
[0170] The memory 1001 may be a volatile memory, such as a random-access memory (RAM); the memory 1001 may also be a non-volatile memory, such as a read-only memory, a flash memory, a hard disk drive (HDD) or a solid-state drive (SSD); or the memory 1001 may be any other medium that can be used to carry or store a desired computer program in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1001 may be a combination of the above memories.
[0171] The processor 1002 may include one or more central processing units (CPU) or a digital processing unit, etc. The processor 1002 is configured to implement the above-mentioned NDN network congestion handling method when calling the computer program stored in the memory 1001 .
[0172] The communication interface 1003 is used to communicate with terminal devices and other network devices.
[0173] The specific connection medium between the memory 1001, the communication interface 1003 and the processor 1002 is not limited in the embodiment of the present application. Fig.10 In the embodiment, the memory 1001 and the processor 1002 are connected via a bus 1004. The bus 1004 is connected to the processor 1002 via a bus 1004. Fig.10 The connections between the other components are only for illustration and are not intended to be limiting. The bus 1004 can be divided into an address bus, a data bus, a control bus, etc. For ease of description, Fig.10 The diagram shows that only one thick line is used, but this does not mean that there is only one bus or only one type of bus.
[0174] The memory 1001 stores a computer storage medium, and the computer storage medium stores computer executable instructions, and the computer executable instructions are used to implement the congestion handling method of the NDN network in the embodiment of the present application. The processor 1002 is used to execute the congestion handling method of the NDN network, such as Figure 5 , Figure 6 shown.
[0175] In some possible implementations, various aspects of the congestion handling method for the NDN network provided in the present application may also be implemented in the form of a program product, which includes a computer program. When the program product is run on an electronic device, the computer program is used to enable the electronic device to execute the steps of the congestion handling method for the NDN network according to various exemplary embodiments of the present application described above in this specification. For example, the electronic device may execute the following steps: Figure 5 , Figure 6 Follow the steps shown in .
[0176] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0177] The program product of the embodiment of the present application may adopt a portable compact disk read-only memory (CD-ROM) and include a computer program, and can be run on an electronic device. However, the program product of the present application is not limited thereto, and in this document, a readable storage medium may be any tangible medium containing or storing a program, which can be used by or in combination with a command execution system, apparatus, or device.
[0178] A readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, wherein a readable computer program is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. A readable signal medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with a command execution system, apparatus, or device.
[0179] The computer program embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0180] The computer program for performing the operation of the present application can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and also conventional procedural programming languages such as "C" language or similar programming languages. The computer program can be executed entirely on the user electronic device, partially on the user electronic device, as a separate software package, partially on the user electronic device and partially on a remote electronic device, or entirely on a remote electronic device or server. In the case of a remote electronic device, the remote electronic device can be connected to the user electronic device through any type of network including a local area network (LAN) or a wide area network (WAN), or can be connected to an external electronic device (for example, using an Internet service provider to connect through the Internet).
[0181] It should be noted that, although several units or subunits of the device are mentioned in the above detailed description, this division is merely exemplary and not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more units described above can be embodied in one unit. Conversely, the features and functions of one unit described above can be further divided into multiple units to be embodied.
[0182] In addition, although the operations of the method of the present application are described in a specific order in the drawings, this does not require or imply that the operations must be performed in this specific order, or that all the operations shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps.
[0183] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0184] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0185] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0186] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process in the computer or other programmable device. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0187] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A congestion handling method for an NDN network, characterized in that: The NDN network is configured with a server cluster, the NDN network includes an upstream node and a downstream node, the downstream node performs the following operations: receiving a first data packet returned by an upstream node in response to a first interest packet of a first request, and determining whether network congestion occurs at the upstream node according to a target field of the first data packet; If congestion occurs at the upstream node, sending the second interest packet of the second request to the server cluster for processing; If the upstream node is not congested, sending the second interest packet of the second request to the upstream node for processing; Receive a second data packet corresponding to the second interest packet.
2. The method according to claim 1, characterized in that When the data requested by the second interest packet of the second request is cached in other routing nodes, sending the second interest packet of the second request to the server cluster for processing includes: Acquire a first routing path between the downstream node and the server cluster, and a second routing path between the downstream node and the other routing nodes; If the first routing path is not longer than the second routing path, sending the second interest packet of the second request to the server cluster for processing; If the first routing path is longer than the second routing path, the second interest packet of the second request is sent to the other routing nodes for processing.
3. The method according to claim 1 or 2, characterized in that The server cluster includes a plurality of servers, and sending the second interest packet of the second request to the server cluster for processing includes: Obtaining serial numbers of the multiple servers; According to the sequence number, the second interest packet of the second request is sent to the target nodes in the multiple servers in turn.
4. The method according to claim 3, characterized in that When the load capacity of the target node is the largest, the method further includes: Obtaining the load capacity of the next server of the target node; If the load capacity of the next server is within a preset range, the second interest packet of the second request is sent to the next server for processing; otherwise, the next server is queried again until the second interest packet of the second request is sent to a server whose load capacity is within a preset range for processing.
5. The method according to claim 1 or 2, characterized in that: The server cluster includes a plurality of servers, and sending the second interest packet of the second request to the server cluster for processing includes: Get the remaining load capacity of all servers and sort them; The second interest packet of the second request is sent to a server with the largest remaining load capacity for processing.
6. The method according to claim 1 or 2, characterized in that: The target field is an isCon_flag field, and determining whether network congestion occurs at the upstream node according to the target field of the first data packet includes: When the value of the isCon_flag field of the first data packet is 1, it is determined that network congestion occurs at the upstream node; When the value of the isCon_flag field of the first data packet is 0, it is determined that no network congestion occurs at the upstream node.
7. A congestion handling method for an NDN network, characterized in that: The NDN network is configured with a server cluster. The NDN network includes upstream nodes and downstream nodes. For any upstream node, the following operations are performed: Receiving a first interest packet of a first request sent by the downstream node; Marking the target field of the first data packet corresponding to the first interest packet according to its own load capacity; The marked first data packet is transmitted back to the downstream node so that the downstream node determines whether network congestion occurs at the upstream node based on the target field, and when congestion occurs, the second interest packet of the second request is sent to the server cluster to obtain the second data packet corresponding to the second interest packet; otherwise, the second interest packet of the second request is sent to the upstream node to obtain the second data packet corresponding to the second interest packet.
8. The method according to claim 7, characterized in that The target field is an isCon_flag field, and the target field of the first data packet corresponding to the first request is marked according to its own load capacity, including: If its own load capacity is greater than a preset value, the value of the isCon_flag field of the first data packet is marked as 1 to indicate that network congestion occurs; If its own load capacity is not greater than a preset value, the value of the isCon_flag field of the first data packet is marked as 0 to indicate that no network congestion occurs.
9. An electronic device, characterized in that: It includes a processor, a memory and a communication interface, wherein the communication interface, the memory and the processor are connected via a bus; The communication interface is used to send and receive data; The memory is used to store computer instructions; The processor is used to read the computer instructions in the memory and execute the steps of any one of claims 1 to 8.
10. A computer-readable storage medium, characterized in that: It includes a computer program. When the computer program is run on an electronic device, the computer program is used to enable the electronic device to execute the steps of any method described in claims 1 to 8.