An efficient cross-layer message forwarding circuit and control method
Through design support for cross -layer optimization message forwarding circuits, combined with high -speed processing and flexible forwarding control of software, the problem of information transmission control in extreme situations is solved, and efficient data forwarding and bandwidth use have been realized.
Patent Information
- Application Number
- CN202410447492.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-15
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2044-04-15
AI Technical Summary
In the extreme situations where nodes are sparse, routes are rapidly changing, and network topology is often fragmented and reorganized, the existing technology is difficult to meet the needs of message transmission control, and there are problems such as message transmission congestion and insufficient bandwidth utilization.
Design a message forwarding circuit that supports cross -layer optimization, through the combination of control modules, message transmission control modules, hash table search modules, read and write control modules, free pointer management modules, and storage. Receive, store and forward. The circuit combines high -speed processing and flexible forwarding control of software, which improves the data forwarding effect of communication node data.
Through effective combination of high -speed processing and flexible forwarding control of software, the data forwarding effect of communication node data is significantly improved, and the problems of insufficient use of message transmission congestion and bandwidth are used to be suitable for message transmission control in extreme conditions.
Smart Images

Figure CN118301070B_ABST
Abstract
Description
Technical Field
[0001] The invention belongs to the field of communication circuits, and in particular relates to a message forwarding circuit supporting cross-layer optimization and a cross-layer message forwarding method. Background Art
[0002] Ad hoc networks have the characteristics of flexible networking and low deployment cost. However, in application scenarios such as sparse nodes, rapid routing changes, and frequent fragmentation and reorganization of network topology, the improved wireless TCP protocol is difficult to meet the communication transmission control needs.
[0003] DTN aims to improve the throughput and accessibility of non-time-sensitive services. Although it can meet the data transmission needs in scenarios with intermittent and long-term network connection interruptions, it focuses more on communication problems in periodic and predictable scenarios. It is not suitable for message transmission control in extreme situations such as sparse network topology, fast routing changes, and frequent fragmentation and reorganization of network topology.
[0004] At the same time, both Ad hoc networks and DTN have problems such as message transmission congestion and insufficient bandwidth utilization. The congestion control mechanism directly affects key performance such as network throughput and end-to-end delay, which are closely related to key technologies such as storage resource allocation, management, and forwarding scheduling of switching nodes. Summary of the invention
[0005] The present invention provides a highly efficient cross-layer message forwarding circuit and control method, which can significantly improve the data forwarding efficiency of communication nodes by effectively combining hardware high-speed processing and flexible forwarding control.
[0006] In order to achieve the above object, the technical solution adopted by the present invention is:
[0007] A first aspect of the present invention provides a message forwarding circuit supporting cross-layer optimization, including a transceiver control module and a message transmission control module, a hash table lookup module, a read-write control module, a free pointer management module and a storage;
[0008] The transceiver control module is used to control the reception and forwarding of data segments; the transceiver control module is communicatively connected to the message transmission control module; the message transmission control module is communicatively connected to the storage through the read-write control module; the hash table lookup module and the message transmission control module, as well as the hash table lookup module and the read-write control module, are communicatively connected; the free pointer management module and the message transmission control module, as well as the free pointer management module and the read-write control module are communicatively connected; the message transmission control module is communicatively connected with a message aging management module and an RTO calculation module.
[0009] Further, the transceiver control module is used to receive data segments; the message transmission control module matches keywords of the data segments;
[0010] The storage available data buffer pointed to by the free pointer of the free pointer management module; the read-write control module stores the data in segments into the storage;
[0011] The hash table search module obtains a hash value according to a keyword calculation of the data segment; and saves the storage address of the data segment into a hash table item storage area using the hash value as an index.
[0012] Furthermore, the transceiver control module generates a forwarding instruction; the message transmission control module obtains the storage address of the data segment through the hash table lookup module; the read-write control module reads the data segment from the memory according to the storage address, and sends the data segment to the message transmission control module; the message transmission control module forwards the data segment to the transceiver control module; the transceiver control module is configured with a forwarding table, and the data segment is forwarded to the adjacent routing node according to the forwarding table.
[0013] Furthermore, the message aging management module sets an aging cycle for network transmission data, and generates an aging deletion instruction for the network transmission data that has reached the aging cycle by extracting the message lifetime of the network transmission data. The message transmission control module obtains the storage address of the data segment from the hash table lookup module according to the aging deletion instruction, and the read-write control module deletes the data segment in the memory according to the storage address.
[0014] Furthermore, the RTO calculation module records the timer value when sending data segments and receiving ACK information or NAK information and stores it in the on-chip register RAM, and calculates the RTO value according to the timer value when sending data segments and receiving ACK information or NAK information.
[0015] A second aspect of the present invention provides a control method for a message forwarding circuit supporting cross-layer optimization, comprising:
[0016] Receive the message digest sent by the previous routing node, and determine whether to establish a connection with the previous routing node based on the remaining cache space size and network status of the routing node;
[0017] If the node routing establishes a connection with the previous routing node, it receives the data segment and extracts the segment sequence number;
[0018] Determine whether to store according to the received segment sequence number; when it is determined to store the received data segment, match the keyword of the data segment; obtain the available data buffer of the storage through the free pointer of the free pointer management module; store the data segment in the available data buffer of the storage;
[0019] A hash value is obtained according to the keyword calculation of the data segment; the storage address of the data segment is saved in the hash table item storage area using the hash value as an index.
[0020] Furthermore, the message summary includes message length, message ID number, source IP, destination IP, priority, message category and life cycle information.
[0021] Further, judging whether to store according to the received segment stream number and sequence number information includes:
[0022] If the received segment sequence number is consistent with the expected received segment sequence number, the output judgment is to store the received data segment and send an ACK message to the previous routing node;
[0023] If the received segment number is greater than the expected segment number, the output is judged to store the received data segment and send NAK information to the previous routing node;
[0024] If the received segment sequence number is smaller than the expected segment sequence number, the data segment is discarded.
[0025] Further, determining whether to establish a connection with the previous routing node according to the remaining cache space size of the routing node and the network status includes:
[0026] Compare the received message digest information with the message digest information stored in the routing node. If the same message digest information exists in the routing node, refuse to establish a connection and send a NAK message to the previous routing node.
[0027] If the same message digest information does not exist in this routing node, match the node local IP with the destination IP information in the message digest, and determine that this routing node is the final message receiver, then send ACK information to the previous routing node and establish a connection;
[0028] Determine whether the routing node is a relay forwarding end, compare the message length information in the message summary with the remaining cache space in the routing node, and combine the routing status of the routing node to the destination end to determine whether to establish a connection with the previous routing node;
[0029] If the connection is established, an ACK message is sent to the previous routing node; if the connection is rejected, a NAK message is sent to the previous routing node.
[0030] Furthermore, the method further includes: the routing node sends summary information to the next routing node, and determines whether to establish a connection according to ACK information or NAK information fed back by the next routing node;
[0031] After the current routing node establishes a connection with the next routing node, a timeout retransmission timer is started after sending the data segment. When the timeout retransmission timer returns to 0, if the ACK information fed back by the next routing node is not received, the data segment is retransmitted. If the data segment is retransmitted more than 3 times in a row, it indicates that the link between the current routing node and the next routing node is interrupted, and the next routing node is marked as the interruption point, and the summary information is re-generated to establish a connection.
[0032] Within the timeout retransmission timing range, if the ACK information fed back by the next routing node is received, the next data segment is sent, the timer information is updated, and the timeout retransmission timer is started;
[0033] When determining whether the sent data segment is the last data segment, the sent data segment is marked, and after receiving the ACK information fed back by the next routing node, the message transmission completion information is determined.
[0034] Compared with the prior art, the present invention has the following beneficial effects:
[0035] The transceiver control module of the present invention controls the reception and forwarding of data segments through message forwarding control software, and realizes routing search, neighbor discovery, next hop selection, message queue management and scheduling functions; the message transmission control module, hash table search module, read-write control module, free pointer management module and storage cooperate to realize transport layer protocol processing, message storage management and segment output scheduling functions; by effectively combining hardware high-speed processing and software flexible forwarding control, the data forwarding efficiency of communication nodes can be greatly improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Figure 1 This is a circuit structure block diagram of the message forwarding circuit provided in Example 1 of the present invention.
[0037] Figure 2 A schematic diagram of the control flow of a message forwarding circuit provided in Embodiment 2 of the present invention. DETAILED DESCRIPTION
[0038] The present invention will be further described below in conjunction with the accompanying drawings. The following embodiments are only used to more clearly illustrate the technical solution of the present invention, and cannot be used to limit the protection scope of the present invention.
[0039] Example 1
[0040] like Figure 1 As shown, this implementation provides a message forwarding circuit supporting cross-layer optimization, including a transceiver control module and a message transmission control module, a hash table lookup module, a read-write control module, a free pointer management module and a storage;
[0041] The transceiver control module controls the reception and forwarding of data segments through the message forwarding control software, and realizes the functions of route search, neighbor discovery, next hop selection, message queue management and scheduling; the custom segment transmission control header includes the sending segment sequence number, receiving segment sequence number, data segment stream number, sending control, receiving control and receiving window fields; the receiving segment sequence number, sending control, receiving control and segment stream number complete the message congestion control, the receiving window field completes the flow control, and the UDP checksum field completes the error control;
[0042] The transceiver control module is connected to the message transmission control module; the message transmission control module is connected to the storage through the read-write control module; the storage in this embodiment is DDR3; DDR3 is used as the message storage medium, the data read / write speed is fast, the system storage capacity is large and expandable; the hash table lookup module and the message transmission control module, the hash table lookup module and the read-write control module are connected; the free pointer management module and the message transmission control module, the free pointer management module and the read-write control module are connected; the message transmission control module is connected to the message aging management module and the RTO calculation module. Transmission and message forwarding share the DDR storage space, so that the received data is "zero-copy" and the node data processing efficiency is improved.
[0043] The transceiver control module is used to receive data segments; the message transmission control module matches the keywords of the data segments; and is used to store and schedule the corresponding forwarding messages and data segments to achieve zero data copy.
[0044] The storage available data buffer pointed to by the free pointer of the free pointer management module; the read-write control module stores the data in segments into the storage;
[0045] The hash table search module obtains a hash value according to the keyword calculation of the data segment; uses the hash value as an index to save the keyword, length information, service flow number information and the storage address of the data segment to the hash table item storage area.
[0046] The transceiver control module generates a forwarding instruction, and the message transmission control module obtains the storage address of the data segment through the hash table search module; the read-write control module reads the data segment from the memory according to the storage address, and sends the data segment to the message transmission control module; the message transmission control module forwards the data segment to the transceiver control module; the transceiver control module is configured with a forwarding table, and the data segment is forwarded to the adjacent routing node according to the forwarding table.
[0047] The message aging management module sets the aging cycle of the network transmission data, and generates an aging deletion instruction for the network transmission data that has reached the aging cycle by extracting the message lifetime of the network transmission data. The message transmission control module obtains the storage address of the data segment from the hash table lookup module according to the aging deletion instruction, and the read-write control module deletes the data segment in the memory according to the storage address.
[0048] The RTO calculation module records the timer value when sending data segments and receiving ACK information or NAK information and stores it in the on-chip register RAM, and calculates the RTO value according to the timer value when sending data segments and receiving ACK information or NAK information.
[0049] Example 2
[0050] like Figure 2 As shown, a control method for a message forwarding circuit supporting cross-layer optimization is provided. The method described in this implementation can be applied to the message forwarding circuit described in Example 1. The control method includes:
[0051] Receive the message digest sent by the previous routing node, which includes message length, message ID number, source IP, destination IP, priority, message category and life cycle information;
[0052] Determine whether to establish a connection with the previous routing node based on the remaining cache space size and network status of the routing node, including:
[0053] Compare the received message digest information with the message digest information stored in the routing node. If the same message digest information exists in the routing node, refuse to establish a connection and send a NAK message to the previous routing node.
[0054] If the same message digest information does not exist in this routing node, match the node local IP with the destination IP information in the message digest, and determine that this routing node is the final message receiver, then send ACK information to the previous routing node and establish a connection;
[0055] Determine whether the routing node is a relay forwarding end, compare the message length information in the message summary with the remaining cache space in the routing node, and combine the routing status of the routing node to the destination end to determine whether to establish a connection with the previous routing node;
[0056] If the connection is established, an ACK message is sent to the previous routing node; if the connection is rejected, a NAK message is sent to the previous routing node.
[0057] If the node routing establishes a connection with the previous routing node, the data segment is received and the segment sequence number is extracted; and whether to store is determined according to the received segment stream number and sequence number information, including:
[0058] If the received segment sequence number is consistent with the expected received segment sequence number, the output judgment is to store the received data segment and send an ACK message to the previous routing node;
[0059] If the received segment number is greater than the expected segment number, the output is judged to store the received data segment and send NAK information to the previous routing node;
[0060] If the received segment sequence number is smaller than the expected segment sequence number, the data segment is discarded.
[0061] When determining to store the received data segment, matching the keyword of the data segment; obtaining the available data buffer of the storage through the free pointer of the free pointer management module; storing the data segment in the available data buffer of the storage;
[0062] A hash value is obtained according to the keyword calculation of the data segment; the storage address of the data segment is saved in the hash table item storage area using the hash value as an index.
[0063] The routing node sends summary information to the next routing node, and determines whether to establish a connection based on the ACK information or NAK information fed back by the next routing node;
[0064] After the current routing node establishes a connection with the next routing node, a timeout retransmission timer is started after sending the data segment. When the timeout retransmission timer returns to 0, if the ACK information fed back by the next routing node is not received, the data segment is retransmitted. If the data segment is retransmitted more than 3 times in a row, it indicates that the link between the current routing node and the next routing node is interrupted, and the next routing node is marked as the interruption point, and the summary information is re-generated to establish a connection.
[0065] Within the timeout retransmission timing range, if the ACK information fed back by the next routing node is received, the next data segment is sent, the timer information is updated, and the timeout retransmission timer is started;
[0066] When determining whether the sent data segment is the last data segment, the sent data segment is marked, and after receiving the ACK information fed back by the next routing node, the message transmission completion information is determined.
[0067] The invention adopts a customized transmission control mechanism, which is based on the UDP protocol and adopts customized segment header control information to realize error control, flow control and congestion control functions; in the segmented sending and receiving process, data is transmitted between adjacent node pairs, supporting reliable hop-by-hop forwarding of data; DDR3 is adopted as the medium for storing messages, with fast data reading / writing speed and large and expandable system storage capacity; the transmission layer and the message forwarding circuit share the DDR storage space, so that the received data is "zero-copy" and the node data processing efficiency is improved.
[0068] 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.
[0069] 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 embodiments of 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 generate 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.
[0070] 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 comprising 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.
[0071] 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. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0072] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the technical principles of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. A control method for an efficient cross-layer message forwarding circuit, characterized in that: include: The efficient cross-layer message forwarding circuit includes a transceiver control module and a message transmission control module, a hash table search module, a read-write control module, a free pointer management module and a memory; The transceiver control module is used to control the reception and forwarding of data segments; the transceiver control module is communicatively connected to the message transmission control module; the message transmission control module is communicatively connected to the memory through the read-write control module; the hash table lookup module and the message transmission control module, and the hash table lookup module and the read-write control module are communicatively connected; the free pointer management module and the message transmission control module, and the free pointer management module and the read-write control module are communicatively connected; the message transmission control module is communicatively connected with a message aging management module and an RTO calculation module; Receive the message digest sent by the previous routing node, and determine whether to establish a connection with the previous routing node based on the remaining cache space size and network status of the routing node; If the node routing establishes a connection with the previous routing node, it receives the data segment and extracts the segment sequence number; Determine whether to store according to the received segment sequence number; when it is determined to store the received data segment, match the keyword of the data segment; obtain the available data buffer of the memory through the free pointer of the free pointer management module; store the data segment in the available data buffer of the memory; Obtain a hash value based on the keyword calculation of the data segment; The storage address of the data segment is saved to the hash table entry storage area using the hash value as an index.
2. The control method according to claim 1, characterized in that: The transceiver control module is used to receive data segments; the message transmission control module matches keywords of the data segments; The free pointer of the free pointer management module points to an available data buffer of the memory; the read-write control module stores the data in segments into the memory; The hash table search module calculates and obtains a hash value based on the keyword of the data segment; The storage address of the data segment is saved to the hash table entry storage area using the hash value as an index.
3. The control method according to claim 1, characterized in that: The transceiver control module generates a forwarding instruction; the message transmission control module obtains the storage address of the data segment through the hash table search module; the read-write control module reads the data segment from the memory according to the storage address, and sends the data segment to the message transmission control module; the message transmission control module forwards the data segment to the transceiver control module; the transceiver control module is configured with a forwarding table, and the data segment is forwarded to the adjacent routing node according to the forwarding table.
4. The control method according to claim 1, characterized in that: The message aging management module sets the aging cycle of the network transmission data, and generates an aging deletion instruction for the network transmission data that has reached the aging cycle by extracting the message lifetime of the network transmission data. The message transmission control module obtains the storage address of the data segment from the hash table lookup module according to the aging deletion instruction, and the read-write control module deletes the data segment in the memory according to the storage address.
5. The control method according to claim 1, characterized in that: The RTO calculation module records the timer value when sending data segments and receiving ACK information or NAK information and stores it in the on-chip register RAM, and calculates the RTO value according to the timer value when sending data segments and receiving ACK information or NAK information.
6. The control method according to claim 1, characterized in that: The message summary includes message length, message ID number, source IP, destination IP, priority, message category and life cycle information.
7. The control method according to claim 1, characterized in that: Determine whether to store based on the received segment stream number and sequence number information, including: If the received segment sequence number is consistent with the expected received segment sequence number, the output judgment is to store the received data segment and send an ACK message to the previous routing node; If the received segment number is greater than the expected segment number, the output is judged to store the received data segment and send NAK information to the previous routing node; If the received segment sequence number is smaller than the expected segment sequence number, the data segment is discarded.
8. The control method according to claim 6, characterized in that: Determine whether to establish a connection with the previous routing node based on the remaining cache space size and network status of the routing node, including: Compare the received message digest information with the message digest information stored in the routing node. If the same message digest information exists in the routing node, refuse to establish a connection and send a NAK message to the previous routing node. If the same message digest information does not exist in this routing node, match the node local IP with the destination IP information in the message digest, and determine that this routing node is the final message receiver, then send ACK information to the previous routing node and establish a connection; Determine whether the routing node is a relay forwarding end, compare the message length information in the message summary with the remaining cache space in the routing node, and combine the routing status of the routing node to the destination end to determine whether to establish a connection with the previous routing node; If the connection is established, an ACK message is sent to the previous routing node; if the connection is rejected, a NAK message is sent to the previous routing node.
9. The control method according to claim 1, characterized in that: The routing node sends summary information to the next routing node, and determines whether to establish a connection based on the ACK information or NAK information fed back by the next routing node; After the current routing node establishes a connection with the next routing node, a timeout retransmission timer is started after sending the data segment. When the timeout retransmission timer returns to 0, if the ACK information fed back by the next routing node is not received, the data segment is retransmitted; If the data segment is retransmitted more than 3 times in a row, it indicates that the link between this routing node and the next routing node is interrupted. The next routing node is marked as the interruption point, and the summary information is re-transmitted to establish a connection; Within the timeout retransmission timing range, if the ACK information fed back by the next routing node is received, the next data segment is sent, the timer information is updated, and the timeout retransmission timer is started; When determining whether the sent data segment is the last data segment, the sent data segment is marked, and after receiving the ACK information fed back by the next routing node, the message transmission completion information is determined.
Citation Information
Patent Citations
Packet forwarding method, network forwarding device and computer storage medium
WO2023024799A1