Data transmission method, system, device and storage medium for named data network
By exchanging and synchronizing status data between nodes and neighboring nodes in the named data network, the local network view generates a routing table, which solves the problems of large state data transmission volume and high computing resource consumption in traditional named data networks, and achieves fast data acquisition and resource saving.
Patent Information
- Application Number
- CN202411797643.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-09
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2044-12-09
AI Technical Summary
In traditional named data networks, each node needs to synchronize the global view of the entire network, resulting in large amounts of state data transmission, high consumption of computing resources, and waste of bandwidth resources.
In named data networking, nodes only exchange and synchronize status data with neighboring nodes, rather than with all nodes in the entire network. By generating adjacency link state advertisements and name link state advertisements, a local network view is formed, a routing table is generated, and the neighbor node with the highest association is selected for data transmission.
It reduces the state data synchronization time and transmission volume, saves computing resources and network bandwidth, and improves data acquisition speed.
Smart Images

Figure CN119652812B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of data transmission, and in particular relates to a data transmission method, system, device and storage medium for a named data network. Background Art
[0002] The currently widely used network architecture is based on traditional IP networks, which are end-to-end communication. For example, traditional IP network architectures are centered around IP addresses and lack focus on data content. These networks are increasingly unable to meet the demands of future network development in terms of reliability, data confidentiality, integrity, and mobility. To adapt to future network development trends, the National Science Foundation (NFS) launched a research project on future network architectures in 2010, which led to the development of Named Data Networking (NDN). Within the underlying architecture of NDN, NDN uses two different types of data packets for communication: Interest packets and Data packets. Interest packets are packets containing the names of data consumers wish to receive. Routing nodes forward these packets based on the names of the data consumers wish to receive. Data packets are packets that, when an Interest packet arrives at a node and that node has matching data, it sends its Data packet back to the requester via the reverse path. Furthermore, to facilitate NDN communication and forward Interest and Data packets, each NDN routing node contains three data structures: an Interest table, a Forwarding table, and a Cache table, along with associated forwarding strategies.
[0003] Among related technologies, the commonly used named data network routing protocol is the traditional named data network link state routing protocol (NLSR) developed by the Named Data Network open source project team (one of the four major future network architecture projects funded by the National Science Foundation of the United States). The underlying NLSR routing protocol uses a full synchronization protocol to synchronize routing state updates held by each node, allowing adjacent nodes to exchange all routing state update data they hold, thereby synchronizing the network link state database (LSDB) of each node with each other. During the process of synchronizing routing updates in the NLSR routing protocol, the process is essentially a process of recursive and iterative transmission of synchronization data. If the network topology is large, the number of recursive and iterative transmissions of synchronization data will be large. In summary, after the NLSR routing protocol undergoes a recursive and iterative process of synchronous data transmission, each node in the network topology will have a global view of the entire network (the global network link state database). This means that each node can perceive the existence and location of any node in the network topology. Once each node in the network has obtained the global view of the entire network (the global network link state database), each node will call the Dijkstra shortest path algorithm to calculate the shortest routing path between the current node and other nodes in the network topology based on the entire global network view. The node will then record the calculated path routing interface and form a routing forwarding table for the current node's route to the destination node. In addition, since named data networks support multi-path routing, that is, multiple routing paths between the current node and the destination node are supported, each node will sequentially traverse its own interfaces to call the Dijkstra shortest path algorithm to calculate all the shortest path routes from the current node to the destination node. These calculated shortest path routes are then sorted according to the path cost, and the shortest path routes are selected. The forwarding interface of each selected shortest path route is recorded to form a multi-path routing forwarding table.
[0004] Regarding the above-mentioned related technologies, traditional named data networks use a fully synchronized protocol for each node in the network to obtain a global view of the entire network. All nodes in the network topology must synchronize their respective routing state update data with each other. This means that all nodes in large-scale network topologies need to spend a long time to establish a global view of the entire network and consume a huge amount of bandwidth traffic resources. Summary of the Invention
[0005] The technical problem to be solved by the present invention is to provide a data transmission method, system, device and storage medium for a named data network, which reduces the amount of state data transmission and routing calculation, and saves computer resources.
[0006] A method for transmitting data in a named data network, comprising:
[0007] Establish communication between the current node and the neighboring node, set the node state of the neighboring node that can establish communication to active, notify the node state of the neighboring node to the network link state database of the current node, register the name prefix of the active neighboring node in the routing forwarding table of the current node, and generate an adjacency link state advertisement and a name link state advertisement;
[0008] Publishing the adjacent link state advertisement and the name link state advertisement through the synchronization protocol of the current node, exchanging data with the neighboring node, obtaining the latest link state advertisement name prefix held by the neighboring node, and uploading the latest link state advertisement name prefix to the network link state database of the current node;
[0009] The network link state database sends an interest packet with a prefix of the latest link state advertisement name to obtain the corresponding latest link state advertisement data from the neighboring node, and stores the latest link state advertisement data in the network link state database of the current node to form a network view of the current node, and generates a routing table according to the network view;
[0010] Generate a name prefix table of the current node according to the routing table and the network link state database;
[0011] Registering the name prefix routing information of the name prefix table into the routing forwarding table;
[0012] Obtaining the relevance of the current node and the relevance of neighboring nodes according to the routing forwarding table;
[0013] Sort the relevance of the neighbor nodes and obtain the neighbor node with the highest relevance to the current node as the target node;
[0014] Determining whether the current node is a data cache node according to the relevance of the current node and a relevance threshold;
[0015] If the current node is a data cache node, it caches the data packets of the neighboring nodes;
[0016] If the current node is not a data cache node, the data packet is forwarded through the target node.
[0017] Specifically, in named data network opportunistic routing, each node only needs to exchange and synchronize state data with neighboring nodes, and does not need to exchange and synchronize state data with any other nodes in the network topology. That is, the transmission of state data only requires one hop to enable the nodes in the network to achieve the synchronization process, which saves time in state data synchronization compared to obtaining the state of each node in the network.
[0018] In NDN opportunistic routing, NDN only needs to transmit the node's status data between its neighboring nodes (between neighboring links), rather than spreading the node's status data to the entire network. Compared with NDN link state routing, this reduces network bandwidth consumption.
[0019] In named data network opportunistic routing, each node only needs to perform routing calculations based on the degrees (associations) of all its neighboring nodes, without using the global information of all nodes in the network for routing calculations. That is, the amount of data processed for routing calculations is very small.
[0020] When acquiring data, since the filtered data cache nodes are used, it is only necessary to find the data cache nodes to find the corresponding data, thereby speeding up the process of acquiring named data.
[0021] Optionally, the adjacent link state advertisement includes a list of all active neighbor nodes of the current node, the number of neighbor nodes, and a link cost connecting each neighbor node.
[0022] Optionally, notifying the network link state database of the current node of the node state of the neighboring node includes:
[0023] Get the preset period;
[0024] According to the preset period, a hello message is sent to the neighboring node to obtain the latest status notification of the neighboring node.
[0025] Optionally, establishing communication between the current node and the neighboring node includes:
[0026] Get the current network status and communication link status of the named data network;
[0027] If the current network state is stable and the communication link state is accessible, the current node will establish communication with the neighboring node.
[0028] Optionally, forwarding the data packet through the target node includes:
[0029] Get the preset life cycle of the data packet;
[0030] If the data packet is not within the preset life cycle or the forwarding hop count from the current node to the target node is 0, the data packet will be discarded;
[0031] If the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0, the data packet is forwarded through the target node.
[0032] Optionally, if the data packet is within the preset life cycle and the number of forwarding hops from the current node to the target node is not 0, the method further includes:
[0033] When a data packet is transmitted between the current node and the target node, it is determined whether a loop occurs. A loop occurs when a data packet is forwarded multiple times in a node.
[0034] If a loop occurs, the data packet is discarded;
[0035] If no loop is generated, the data packet of the current node is transmitted to the target node.
[0036] A data transmission system for a named data network, comprising:
[0037] A first generation module is configured to establish communication between the current node and a neighboring node, set the node state of the neighboring node with which communication can be established to an active state, notify the network link state database of the current node of the node state of the neighboring node, register the name prefix of the active neighboring node in the routing forwarding table of the current node, and generate an adjacency link state advertisement and a name link state advertisement;
[0038] an exchange module, configured to publish the adjacent link state advertisement and the name link state advertisement through a synchronization protocol of the current node, obtain the latest link state advertisement name prefix held by the neighboring node after exchanging data with the neighboring node, and upload the latest link state advertisement name prefix to the network link state database of the current node;
[0039] A network view generation module is configured to send an interest packet with a prefix of the latest link state advertisement name from a network link state database to obtain the corresponding latest link state advertisement data from a neighboring node, store the latest link state advertisement data in the network link state database of the current node, form a network view of the current node, and generate a routing table based on the network view;
[0040] A second generating module is used to generate a name prefix table of the current node according to the routing table and the network link state database;
[0041] A registration module, configured to register the name prefix routing information of the name prefix table into a routing forwarding table;
[0042] An acquisition module, configured to obtain the relevance of the current node and the relevance of neighboring nodes according to the routing table;
[0043] A sorting module is used to sort the relevance of the neighbor nodes and obtain the neighbor node with the highest relevance to the current node as the target node;
[0044] A judgment module, configured to determine whether the current node is a data cache node according to the relevance of the current node and a relevance threshold;
[0045] A first execution module is configured to cache data packets of neighboring nodes if the current node is a data cache node;
[0046] The second execution module is configured to forward the data packet through the target node if the current node is not a data cache node.
[0047] Optionally, the second execution module includes:
[0048] An acquisition unit, used to acquire a preset life cycle of a data packet;
[0049] A first execution unit, configured to discard the data packet if the data packet is not within the preset life cycle or the number of forwarding hops from the current node to the target node is 0;
[0050] The second execution unit is configured to forward the data packet through the target node if the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0.
[0051] A terminal device includes a memory and a processor. The memory stores a computer program that can be run on the processor. When the processor loads and executes the computer program, a data transmission method of a named data network is adopted.
[0052] A computer-readable storage medium stores a computer program. When the computer program is loaded and executed by a processor, a data transmission method of a named data network is adopted.
[0053] The beneficial effects of the present invention are:
[0054] In a named data network, a current node establishes communication with a neighboring node, notifies the node status of the neighboring node to the network link state database of the current node, generates an adjacency link state advertisement and a name link state advertisement, and then publishes them through a synchronization protocol. The neighboring nodes exchange data, and the latest link state advertisement name prefix held by the neighboring node is updated to the network link state database. The network link state database sends an interest packet for the latest link state advertisement name prefix to obtain the corresponding latest link state advertisement data from the neighboring node, and stores the latest link state advertisement data in the network link state database of the current node, forming a network view of the current node, and generating a routing table based on the network view. The name prefix table is obtained from the routing table and registered in the routing forwarding table. The relevance of the current node and the relevance of the neighboring node are obtained from the routing forwarding table. The relevance of the current node and the relevance of the neighboring node are confirmed based on the relevance, and the target node is obtained by sorting the relevance of the neighboring nodes. If the current node is a data cache node, the data packet of the neighboring node is cached. If the current node is not a data cache node, the data packet is forwarded through the target node. This application has the advantages of not needing to obtain data of all nodes when synchronizing data, but only needing to obtain data of neighboring nodes, so the status data synchronization speed is fast, the status data transmission volume is small, the routing calculation speed is fast, and the routing calculation overhead is small. BRIEF DESCRIPTION OF THE DRAWINGS
[0055] Figure 1 A flowchart of a method for data transmission in a named data network according to the present invention is provided;
[0056] Figure 2 This is an overview diagram of the composition architecture of the named data network opportunistic routing protocol project of the present invention;
[0057] Figure 3 This is a diagram showing the composition of the synchronization protocol of the present invention. DETAILED DESCRIPTION
[0058] A method for data transmission in a named data network, such as Figure 1 Shown, including:
[0059] S100. Establish communication between the current node and the neighboring node, set the node status of the neighboring node that can establish communication to the active state, notify the network link state database of the current node of the node status of the neighboring node, and register the name prefix of the active neighboring node in the routing forwarding table of the current node, generate an adjacent link state announcement and a name link state announcement.
[0060] Specifically, named data networking is a new type of network architecture. Unlike traditional address-based networks (such as the Internet), NDN uses data rather than location (address) for naming and transmission.
[0061] Establishing communication between the current node and the neighboring node includes:
[0062] Get the current network status and communication link status of the named data network.
[0063] If the current network state is stable and the communication link state is accessible, the current node will establish communication with the neighboring node.
[0064] Specifically, the current network state is in a stable state, which means that the topology, nodes, and links in the network remain relatively unchanged, and the entire network operates well, without frequent nodes joining or leaving, and without large-scale network failures.
[0065] A reachable communication link means that the connection between nodes is unobstructed, meaning that the nodes can successfully send and receive data packets without congestion or loss. This generally means that the network has sufficient bandwidth, low latency, and no physical or link layer issues are affecting communication.
[0066] When the current network state is stable and the communication link state is accessible, the current node can establish communication with the neighboring node.
[0067] The network link state database that notifies the current node of the node status of the neighboring node includes:
[0068] Get the preset period;
[0069] According to the preset period, a hello message is sent to the neighboring node to obtain the latest status notification of the neighboring node.
[0070] Specifically, the preset period can be set to synchronize the status of neighboring nodes by sending hello messages periodically. When the status of a neighboring node changes, the network link state database in the routing protocol project is notified. Hello messages are commonly used in network protocols for communication and management between nodes. Hello messages are used to discover other neighboring nodes and help devices on the network identify their surroundings and available connections. By periodically sending "Hello" messages, nodes can monitor the activity of neighboring nodes and determine whether their links are valid.
[0071] Specifically, neighbor nodes can be in either active or inactive states. Only nodes in the active state can establish communication and exchange data. The name prefix identifies the connection status and neighbor discovery information between nodes, helping subsequent routing protocols synchronize routing status updates of these active neighbor nodes.
[0072] An adjacency link state advertisement includes a list of all active neighbor nodes of the current node, the number of neighbor nodes, and the link cost connecting each neighbor node. A name link state advertisement is a message used in network routing protocols to disseminate link state information related to a specific name prefix. It contains the name prefix for which the current node intends to publish data.
[0073] S110. Publish the adjacent link state announcement and the name link state announcement through the synchronization protocol of the current node, exchange data with the neighboring node, obtain the latest link state announcement name prefix held by the neighboring node, and upload the latest link state announcement name prefix to the network link state database of the current node.
[0074] Specifically, after the current node and all its neighboring nodes have published the latest name prefix of their own link state announcements through the synchronization protocol, the current node will synchronize the latest link state announcement name prefix held by each neighboring node in the network through the synchronization protocol. The synchronization protocol will notify the LSDB (network link state database) of the latest link state announcement name prefix obtained from the network.
[0075] Synchronization protocol: used to synchronize the link state update name prefix (index) held by neighboring nodes and publish their latest link state update name prefix (index). When a new link state update name prefix (index) is synchronized from the network, the network link state database (LSDB) module is notified to obtain the link state update data of the name prefix (index). The synchronization protocols currently available in routing protocols are: PSync (partial and full synchronization library), ChronoSync (named data network distributed application synchronization library), ndn-svs (state vector synchronization protocol library) and PartialSync (partial synchronization protocol library).
[0076] S120. The network link state database sends an interest packet with the latest link state announcement name prefix to obtain the corresponding latest link state announcement data from the neighboring node, and stores the latest link state announcement data in the network link state database of the current node to form a network view of the current node, and generates a routing table based on the network view.
[0077] Network Link State Database: stores / synchronizes the latest LSA (Link State Advertisement) data obtained by the current node from the entire network, allowing the current node to hold a global view or local view of the entire network.
[0078] Specifically, when the LSDB (network link state database) of a node perceives the latest link state announcement name prefix in the network, the LSDB (network link state database) will send an interest packet for the name prefix to the network in order to obtain the latest link state announcement data corresponding to the name prefix from the neighboring node. The LSDB (network link state database) will store the latest link state announcement data obtained to form the global view / local view of the network held by the current node itself.
[0079] When the node's LSDB (network link state database) completes the network status update synchronization work (building the network global view / network local view), it will select and call the corresponding routing table calculator to complete the routing table calculation. For example, the Named Data Network Opportunistic Routing (NOR) protocol project calls the Opportunistic Calculator to complete the routing table calculation.
[0080] Routing Table Calculator: This tool uses the link state data (global network view / local network view) stored in the current node's LSDB (Link State Database) to calculate the routing table. Depending on the routing calculation method used by the routing protocol project, different routing calculators will be selected to complete the routing calculation. The available routing table calculators for this routing protocol project are: LinkState Calculator, Hyperbolic Calculator, and Opportunistic Calculator.
[0081] Routing table: stores and maintains entries for destination nodes in the network and all their next hop information.
[0082] S130: Generate a name prefix table of the current node according to the routing table and the network link state database.
[0083] Specifically, after the node's routing table is generated, the routing information recorded in the routing table and the name prefix notification information base of each network node stored in the LSDB (network link state database) will be used to convert and generate the required name prefix table. The name prefix table mainly refers to the structure that stores the prefix information related to the name of each node in the network. Through the name prefix table, the node can quickly find the routing information related to the prefix, which helps to carry out efficient data forwarding. The name prefix table summarizes the information of each prefix and its corresponding reachable node, so that the nodes in the network can choose the best path to access the target data as needed. Routing information refers to the various data and its attributes used in the network to determine the transmission path of data packets.
[0084] Name prefix table: stores and maintains the table entries of the advertised name prefixes and all their next hop information in the network.
[0085] S140: Register the name prefix routing information of the name prefix table into the routing forwarding table.
[0086] Specifically, after the name prefix table of the node is generated, the name prefix table will use the interface provided by the forwarding table module to register the name prefix routing information recorded in itself into the routing forwarding table of the named data network forwarder (NFD), or cancel certain routing items in the routing forwarding table of the named data network forwarder (NFD).
[0087] A routing table is a data structure used by network devices (such as routers) to store routing information. It contains entries about how each address in the network is accessed and is a key component to ensure that data packets can be transmitted efficiently.
[0088] In this application, the Named Data Network Opportunistic Routing Protocol (NOR) only requires each node to update the status data with its neighboring nodes when synchronizing status update data, rather than updating the status data between each node and all nodes in the network. That is, when exchanging data with neighboring nodes, the current node only exchanges data with the neighboring nodes connected to it, and does not obtain data from other network nodes, thereby reducing status updates and routing calculations.
[0089] In this application, the PSync (Partial and Full Sync library) synchronization protocol library is used by default to implement the synchronization process of status update data.
[0090] In the field of named data networking, the model for obtaining named data is the producer / consumer model. The producer node is responsible for publishing data to the outside world, while the consumer sends a request to subscribe to the data to the network. The named data network routes the request, allowing the consumer to finally subscribe and obtain the required named data.
[0091] Routing table: This functional component is not the so-called routing table in the routing protocol project (Named Data Network), but is used to help this routing protocol project interact with the real routing table in the Named Data Network Forwarder (NFD) to complete the registration and deregistration of related routes.
[0092] S150 : Obtain the relevance of the current node and the relevance of neighboring nodes according to the routing table.
[0093] Specifically, during the construction of the routing table, all nodes in the network topology will know the association degree of the current node itself and the association degree of neighboring nodes. The association degree is the number of neighbors of the node.
[0094] S160 , sorting the associations of the neighbor nodes, and obtaining the neighbor node with the highest association with the current node as the target node.
[0095] S170: Determine whether the current node is a data cache node according to the relevance of the current node and a relevance threshold.
[0096] Specifically, the data cache node is used to store requested data copies to improve data availability and access efficiency. Figure 2 As shown in the figure, the relevance threshold is set to 3. The green arrows indicate the final data transmission path and Interest message forwarding port calculated by each node after exchanging relevance with its neighbors. The blue arrows illustrate how data generators transmit important data that needs to be synchronized using opportunistic routing to "spread" the data to other nodes as quickly as possible. Data cache nodes along the "spread" path cache the data, increasing the probability of other nodes accessing the content and enhancing network robustness. The points along the critical path (marked in red) in the figure are the data caches selected for the content in the network. A complete critical path is not always possible in a network topology. This is because opportunistic routing protocols are inherently constructed based on a distributed local view, lacking a global view to construct a complete critical path that maximizes the probability of other nodes accessing the content. More commonly, the network contains multiple indirect critical paths (i.e., data caches are not all directly connected). In such cases, routing is necessary to inform other nodes of data reachability. This, in turn, alleviates the pressure on content caching across the entire network.
[0097] S180: If the current node is a data cache node, cache the data packets of the neighboring nodes.
[0098] S190: If the current node is not a data cache node, forward the data packet through the target node.
[0099] Forwarding a packet through the destination node involves:
[0100] Get the preset life cycle of the data packet;
[0101] If the data packet is not within the preset life cycle or the forwarding hop count from the current node to the target node is 0, the data packet will be discarded;
[0102] If the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0, the data packet is forwarded through the target node.
[0103] Specifically, the lifecycle refers to the time limit for a data packet to exist in the network. Each data packet can be forwarded or processed within its lifecycle. After this time, the data packet will be discarded or become invalid.
[0104] When the lifetime is not zero, it means that the data packet is still valid and can be accepted and processed by nodes in the network. This is an important mechanism to ensure that data arrives in a timely and safe manner.
[0105] The forwarding hop count is the number of nodes that a data packet passes through from the source node to the destination node. The hop count increases by one for each node it passes through.
[0106] A non-zero forwarding hop count indicates that the packet has passed through at least one node in the network. This usually means that the packet has not yet reached its destination, or that it needs to pass through multiple intermediate nodes during transmission.
[0107] If the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0, it includes:
[0108] When a data packet is transmitted between the current node and the target node, check whether a loop occurs. A loop occurs when a data packet is forwarded multiple times in a node.
[0109] If a loop occurs, the data packet is discarded;
[0110] If no loop is generated, the data packet of the current node is transmitted to the target node.
[0111] Specifically, avoiding loops is a key principle for ensuring efficient data transmission and the rational use of network resources. Avoiding loops means ensuring that packets do not circulate back and forth between nodes as they are forwarded across the network, causing them to propagate unrestricted across the network.
[0112] In the field of named data networking, the model for obtaining named data is the producer / consumer model. The producer node is responsible for publishing data externally, while the consumer sends a request to subscribe to the data to the network. After the named data network routes the request, the consumer finally subscribes to the required named data. The synchronization protocol itself is also an application for obtaining state synchronization named data. Its architecture should follow the producer / consumer model. That is, the PartialSync partial synchronization protocol designed in this work has the significant characteristics of the producer / consumer model architecture. The composition architecture of the PartialSync partial synchronization protocol is as follows Figure 3 As shown,
[0113] The architecture of the PartialSync protocol features a distinct producer / consumer model. Within a node, the PartialSync protocol operates as two components: a consumer and a producer. The consumer component retrieves the name prefixes of state updates from neighboring nodes, while the producer component publishes the name prefixes of its own state updates to the network. Working together, these two components easily synchronize state updates between the current node and its neighbors. The key difference between the architecture of the partial synchronization protocol described above and that of the full synchronization protocol is that the consumer module in the partial synchronization protocol can subscribe to relevant data based on the node's needs, while the consumer module in the full synchronization protocol does not filter or control the subscribed data and simply synchronizes all data held by neighboring nodes. However, in practice, the architecture of a full synchronization protocol for named data networking may not clearly distinguish between consumer and producer modules. For example, the PSync full synchronization protocol used in the named data networking link state routing protocol completely integrates the consumer and producer modules. In the composition architecture of the PartialSync partial synchronization protocol, both the consumer module and the producer module hold some related Bloom filters (libraries / tables), which have the following meanings:
[0114] In the producer module: the reversible Bloom filter stores the name prefix (including the version number) of the state update data published by the current node about itself.
[0115] In the consumer module: the reversible Bloom filter stores the name prefix of the latest state update data that the current node has synchronized from the network (including the version number), while the Bloom filter stores the name prefix of the state update data that the current node wants to subscribe to / synchronize from the network (excluding the version number).
[0116] In the actual operation of the PartialSync synchronization protocol, for computational convenience and to control the size of the synchronization interest packets sent, the reversible Bloom filters in the producer and consumer modules actually store a 32-bit hash value of the state update data name prefix (including the version number). Furthermore, the Named Data Network Opportunistic Routing Protocol divides the acquisition of neighboring node state update data into two steps: the first step is to obtain the name prefix (index) of the state update data, and the second step is to obtain the state update data itself. The first step is the responsibility of the PartialSync partial synchronization protocol. That is, the PartialSync partial synchronization protocol only synchronizes the name prefix (index) of the state update data between nodes, not the state update data itself. Only after the LSDB (Link State Database) obtains the name prefix (index) of the latest state update data synchronized by the synchronization protocol will it synchronize the state update data itself.
[0117] By introducing opportunistic routing strategies and the concept of contagion models into the design of existing named data networking routing protocols and leveraging the underlying framework of the named data networking link state routing (NLSR) protocol for functional expansion, a prototype of the named data networking opportunistic routing protocol (NOR) can be quickly implemented. Furthermore, to support the NOR protocol's need for state data updates and synchronization between nodes in the underlying layer of the named data network, the concept of data exchange based on the producer / consumer model in the named data network is required.
[0118] The data generated by the producer will be able to spread to each data cache node (key node) on the critical path starting from the producer. When the consumer wants to obtain the data generated by this producer, it can obtain the relevant data from the data cache node (key node) closest to itself on the critical path, thereby speeding up the speed at which consumers route to find and obtain data.
[0119] A data transmission system for a named data network, comprising:
[0120] A first generation module is configured to establish communication between the current node and a neighboring node, set the node state of the neighboring node with which communication can be established to an active state, notify the network link state database of the current node of the node state of the neighboring node, register the name prefix of the active neighboring node in the routing forwarding table of the current node, and generate an adjacency link state advertisement and a name link state advertisement;
[0121] an exchange module, configured to publish the adjacent link state advertisement and the name link state advertisement through a synchronization protocol of the current node, obtain the latest link state advertisement name prefix held by the neighboring node after exchanging data with the neighboring node, and upload the latest link state advertisement name prefix to the network link state database of the current node;
[0122] A network view generation module is configured to send an interest packet with a prefix of the latest link state advertisement name from a network link state database to obtain the corresponding latest link state advertisement data from a neighboring node, store the latest link state advertisement data in the network link state database of the current node, form a network view of the current node, and generate a routing table based on the network view;
[0123] A second generating module is used to generate a name prefix table of the current node according to the routing table and the network link state database;
[0124] A registration module, configured to register the name prefix routing information of the name prefix table into a routing forwarding table;
[0125] An acquisition module, configured to obtain the relevance of the current node and the relevance of neighboring nodes according to the routing table;
[0126] A sorting module is used to sort the relevance of the neighbor nodes and obtain the neighbor node with the highest relevance to the current node as the target node;
[0127] A judgment module, configured to determine whether the current node is a data cache node according to the relevance of the current node and a relevance threshold;
[0128] A first execution module is configured to cache data packets of neighboring nodes if the current node is a data cache node;
[0129] The second execution module is configured to forward the data packet through the target node if the current node is not a data cache node.
[0130] Optionally, the second execution module includes:
[0131] An acquisition unit, used to acquire a preset life cycle of a data packet;
[0132] A first execution unit, configured to discard the data packet if the data packet is not within the preset life cycle or the number of forwarding hops from the current node to the target node is 0;
[0133] The second execution unit is configured to forward the data packet through the target node if the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0.
[0134] An embodiment of the present application further discloses a terminal device including a memory and a processor. The memory stores a computer program that can be run on the processor. When the processor loads and executes the computer program, a data transmission method of a named data network is adopted.
[0135] Among them, the terminal device can be a computer device such as a desktop computer, a laptop computer or a cloud server, and the terminal device includes but is not limited to a processor and a memory. For example, the terminal device can also include input and output devices, network access devices and buses, etc.
[0136] Among them, the processor can adopt a central processing unit (CPU). Of course, according to actual usage, other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. can also be adopted. The general-purpose processor can adopt a microprocessor or any conventional processor, etc., and this application does not impose any restrictions on this.
[0137] Among them, the memory can be an internal storage unit of the terminal device, such as the hard disk or memory of the terminal device, or it can be an external storage device of the terminal device, such as a plug-in hard disk, smart memory card (SMC), secure digital card (SD) or flash memory card (FC) equipped on the terminal device, etc., and the memory can also be a combination of the internal storage unit and the external storage device of the terminal device. The memory is used to store computer programs and other programs and data required by the terminal device. The memory can also be used to temporarily store data that has been output or is to be output. This application does not impose any restrictions on this.
[0138] Among them, through this terminal device, a data transmission method of a named data network in the above embodiment is stored in the memory of the terminal device, and is loaded and executed on the processor of the terminal device for easy use.
[0139] An embodiment of the present application further discloses a computer-readable storage medium, and the computer-readable storage medium stores a computer program. When the computer program is executed by a processor, a data transmission method of a named data network in the above embodiment is adopted.
[0140] Among them, the computer program can be stored in a computer-readable medium, the computer program includes computer program code, the computer program code can be in the form of source code, object code, executable file or certain middleware, etc. The computer-readable medium includes any entity or device that can carry computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that computer-readable medium includes but is not limited to the above-mentioned components.
[0141] Among them, through this computer-readable storage medium, a data transmission method of a named data network in the above embodiment is stored in a computer-readable storage medium, and is loaded and executed on a processor to facilitate the storage and application of the above method.
[0142] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of protection of the present application is limited to these examples. In line with the present application, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of different aspects of one or more embodiments of the present application as described above, which are not provided in detail for the sake of simplicity.
[0143] The one or more embodiments of this application are intended to encompass all such substitutions, modifications, and variations that fall within the broad scope of this application. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of one or more embodiments of this application should be included in the scope of protection of this application.
Claims
1. A method for data transmission in a named data network, characterized in that: include: Establish communication between the current node and the neighboring node, set the node state of the neighboring node that can establish communication to active, notify the node state of the neighboring node to the network link state database of the current node, register the name prefix of the active neighboring node in the routing forwarding table of the current node, and generate an adjacency link state advertisement and a name link state advertisement; Publishing the adjacent link state advertisement and the name link state advertisement through the synchronization protocol of the current node, exchanging data with the neighboring node, obtaining the latest link state advertisement name prefix held by the neighboring node, and uploading the latest link state advertisement name prefix to the network link state database of the current node; The network link state database sends an interest packet with a prefix of the latest link state advertisement name to obtain the corresponding latest link state advertisement data from the neighboring node, and stores the latest link state advertisement data in the network link state database of the current node to form a network view of the current node, and generates a routing table according to the network view; Generate a name prefix table of the current node according to the routing table and the network link state database; Registering the name prefix routing information of the name prefix table into the routing forwarding table; Obtaining the relevance of the current node and the relevance of neighboring nodes according to the routing forwarding table; Sort the relevance of the neighbor nodes and obtain the neighbor node with the highest relevance to the current node as the target node; Determining whether the current node is a data cache node according to the relevance of the current node and a relevance threshold; If the current node is a data cache node, it caches the data packets of the neighboring nodes; If the current node is not a data cache node, the data packet is forwarded through the target node.
2. The method for transmitting data in a named data network according to claim 1, wherein: The adjacent link state advertisement includes a list of all active neighbor nodes of the current node, the number of neighbor nodes, and the link cost of connecting each neighbor node.
3. The method for transmitting data in a named data network according to claim 1, wherein: The step of notifying the node status of the neighboring node to the network link state database of the current node includes: Get the preset period; According to the preset period, a hello message is sent to a neighboring node to obtain the node status of the neighboring node and notify the network link status database of the current node.
4. The method for transmitting data in a named data network according to claim 1, wherein: The establishing of communication between the current node and the neighboring node includes: Get the current network status and communication link status of the named data network; If the current network state is stable and the communication link state is accessible, the current node will establish communication with the neighboring node.
5. The method for transmitting data in a named data network according to claim 1, wherein: The forwarding of the data packet through the target node comprises: Get the preset life cycle of the data packet; If the data packet is not within the preset life cycle or the forwarding hop count from the current node to the target node is 0, the data packet will be discarded; If the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0, the data packet is forwarded through the target node.
6. The method for transmitting data in a named data network according to claim 5, wherein: If the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0, the method further includes: When a data packet is transmitted between the current node and the target node, it is determined whether a loop occurs. A loop occurs when a data packet is forwarded multiple times in a node. If a loop occurs, the data packet is discarded; If no loop is generated, the data packet of the current node is transmitted to the target node.
7. A data transmission system for a named data network, characterized in that: include: A first generation module is configured to establish communication between the current node and a neighboring node, set the node state of the neighboring node with which communication can be established to an active state, notify the network link state database of the current node of the node state of the neighboring node, register the name prefix of the active neighboring node in the routing forwarding table of the current node, and generate an adjacency link state advertisement and a name link state advertisement; an exchange module, configured to publish the adjacent link state advertisement and the name link state advertisement through a synchronization protocol of the current node, obtain the latest link state advertisement name prefix held by the neighboring node after exchanging data with the neighboring node, and upload the latest link state advertisement name prefix to the network link state database of the current node; A network view generation module is configured to send an interest packet with a prefix of the latest link state advertisement name from a network link state database to obtain the corresponding latest link state advertisement data from a neighboring node, store the latest link state advertisement data in the network link state database of the current node, form a network view of the current node, and generate a routing table based on the network view; A second generating module is used to generate a name prefix table of the current node according to the routing table and the network link state database; A registration module, configured to register the name prefix routing information of the name prefix table into a routing forwarding table; An acquisition module, configured to obtain the relevance of the current node and the relevance of neighboring nodes according to the routing table; A sorting module is used to sort the relevance of the neighbor nodes and obtain the neighbor node with the highest relevance to the current node as the target node; A judgment module, configured to determine whether the current node is a data cache node according to the relevance of the current node and a relevance threshold; A first execution module is configured to cache data packets of neighboring nodes if the current node is a data cache node; The second execution module is configured to forward the data packet through the target node if the current node is not a data cache node.
8. The data transmission system of named data network according to claim 7, characterized in that: The second execution module includes: An acquisition unit, used to acquire a preset life cycle of a data packet; A first execution unit, configured to discard the data packet if the data packet is not within the preset life cycle or the number of forwarding hops from the current node to the target node is 0; The second execution unit is configured to forward the data packet through the target node if the data packet is within the preset life cycle and the forwarding hop count from the current node to the target node is not 0.
9. A terminal device comprising a memory and a processor, characterized in that: The memory stores a computer program that can be run on the processor, and when the processor loads and executes the computer program, the transmission method according to any one of claims 1 to 6 is adopted.
10. A computer-readable storage medium storing a computer program, wherein: When the computer program is loaded and executed by a processor, the transmission method according to any one of claims 1 to 6 is adopted.
Citation Information
Patent Citations
Routing method for minimizing transmission delay of high-dynamic delay network
CN110139319A
Method for sharing an FIB table in Named Data Networking and Named Data Network system
KR102060907B1