CN114866471A - Route searching method, device and equipment - Google Patents

Route searching method, device and equipment Download PDF

Info

Publication number
CN114866471A
CN114866471A CN202210307064.0A CN202210307064A CN114866471A CN 114866471 A CN114866471 A CN 114866471A CN 202210307064 A CN202210307064 A CN 202210307064A CN 114866471 A CN114866471 A CN 114866471A
Authority
CN
China
Prior art keywords
lookup table
message
level
lookup
next hop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210307064.0A
Other languages
Chinese (zh)
Inventor
司小龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210307064.0A priority Critical patent/CN114866471A/en
Publication of CN114866471A publication Critical patent/CN114866471A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Abstract

The embodiment of the application provides a method, a device and equipment for searching a route, wherein the method comprises the following steps: determining N messages to be processed, wherein N is an integer greater than 1; looking up M in the i-th level lookup table i If the next hop address of each message is not found in the i-level lookup table, M is added to the next hop address i+1 The next hop address of each message is M i+1 Prefetching the i +1 th lookup table corresponding to each packet to a cache, M i Is a positive integer, M 1 =N,M i+1 ≤M i (ii) a And i sequentially takes 1, 2 and 3 … … until the next hop addresses of the N messages are found, wherein i is smaller than K, and K is the maximum stage number of the lookup table. The efficiency of route searching is improved.

Description

Route searching method, device and equipment
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method, an apparatus, and a device for searching a route.
Background
At present, the number of Internet Protocol version (IPv) 4 addresses cannot meet network requirements, and more Internet networks start using IPv6 addresses.
In the process of transmitting a message in the internet, routing lookup is usually performed according to a destination address of the message to find a next hop address of the message, and message routing forwarding is performed according to the next hop address. Because the length of the IPv6 address is long, a route lookup can be performed in a Longest Prefix Match (LPM) routing table. The LPM routing table is usually stored in the memory, and the routing lookup is performed in the cache of the processor, and when the routing lookup is performed for the first time, the LPM routing table may not be stored in the cache, and the router needs to obtain the LPM routing table from the memory and perform the routing lookup, which results in low efficiency of the routing lookup.
Disclosure of Invention
Aspects of the present application provide a method, an apparatus, and a device for route lookup to improve efficiency of route lookup.
In a first aspect, an embodiment of the present application provides a route lookup method, including:
determining N messages to be processed, wherein N is an integer greater than 1;
looking up M in the i-th level lookup table i If the next hop address of each message is not found in the i-level lookup table, M is added to the next hop address i+1 The next hop address of each message is M i+1 Prefetching an i +1 level lookup table corresponding to each packet to a cache, wherein M is i Is a positive integer, M 1 =N,M i+1 ≤M i
And i is 1, 2 and 3 … … in sequence until the next hop addresses of the N messages are found, wherein i is smaller than K, and K is the maximum stage number of the lookup table.
In one possible implementation, M is looked up in the i-th level lookup table i If the next hop address of each message is not found in the i-level lookup table, M is added to the next hop address i+1 The next hop address of each message is M i+1 Prefetching an i +1 th level lookup table corresponding to each message to a cache, comprising:
looking up the M in an ith level lookup table i The next hop address of the jth message in the messages;
if the next hop address of the jth message is not found in the ith level lookup table, prefetching an (i + 1) level lookup table corresponding to the jth message to the cache;
wherein j is 1, 2, … … and M in sequence i
In a possible implementation manner, prefetching the i +1 th lookup table corresponding to the jth packet to the cache includes:
determining the address of the (i + 1) th level lookup table corresponding to the jth message;
and prefetching the (i + 1) th level lookup table corresponding to the jth message to the cache through a prefetch instruction according to the address of the (i + 1) th level lookup table corresponding to the jth message.
In a possible implementation manner, determining an address of an i +1 th level lookup table corresponding to the jth packet includes:
acquiring an index of an i +1 level lookup table corresponding to the jth message from an i level lookup table corresponding to the jth message;
and determining the address of the (i + 1) th level lookup table corresponding to the jth message according to the index of the (i + 1) th level lookup table corresponding to the jth message.
In one possible embodiment, the M is looked up in an i-th level lookup table i The next hop address of the jth message in the messages comprises:
if the i is 1, searching a next hop address of the jth message in a first-level lookup table;
if the i is larger than 1, determining the ith level lookup table corresponding to the jth message in the cache, and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message.
In a possible implementation manner, looking up the next hop address of the jth packet in the first-stage lookup table includes:
determining an X-bit address in the destination address of the jth message according to the lookup length X corresponding to the first-stage lookup table, wherein X is an integer greater than 1;
and searching the next hop address of the jth message in the first-stage lookup table according to the X-bit address.
In a possible implementation manner, searching for the next hop address of the jth packet in an ith-level lookup table corresponding to the jth packet includes:
determining a Y-bit address in the destination address of the jth message according to the lookup length corresponding to the previous i-1 level lookup table and the lookup length Y corresponding to the ith level lookup table, wherein Y is an integer greater than 1;
and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message according to the Y bit address.
In one possible implementation, the i-th stage lookup table is a lookup table of an i-th stage in a longest prefix matching LPM lookup table, wherein,
the LPM lookup table comprises 14 levels of lookup tables, the lookup length of the first level of lookup table is 24, and the lookup length from the 2 nd level of lookup table to the 14 th level of lookup table is 8.
In a second aspect, an embodiment of the present application provides a route lookup apparatus, including: a determination module, a lookup module, a prefetch module, wherein,
the determining module is used for determining N messages to be processed, wherein N is an integer greater than 1;
the lookup module is used for looking up M in the ith level lookup table i The next hop address of each message;
the prefetch module is to, if M is not found in the i-th level lookup table i+1 The next hop address of each message is M i+1 Prefetching an i +1 level lookup table corresponding to each packet to a cache, wherein M is i Is a positive integer, M 1 =N,M i+1 ≤M;
And i is 1, 2 and 3 … … in sequence until the next hop addresses of the N messages are found, wherein i is smaller than K, and K is the maximum stage number of the lookup table.
In a possible implementation manner, the search module is specifically configured to:
looking up the M in an ith level lookup table i The next hop address of the jth message in the messages;
in one possible implementation, the prefetch module is specifically configured to:
if the next hop address of the jth message is not found in the ith level lookup table, prefetching an (i + 1) level lookup table corresponding to the jth message to the cache; wherein j is 1, 2, … … and M in sequence i
In one possible implementation, the prefetch module is specifically configured to:
determining the address of the (i + 1) th level lookup table corresponding to the jth message;
and prefetching the (i + 1) th level lookup table corresponding to the jth message to the cache through a prefetch instruction according to the address of the (i + 1) th level lookup table corresponding to the jth message.
In one possible implementation, the prefetch module is specifically configured to:
acquiring an index of an i +1 level lookup table corresponding to the jth message from an i level lookup table corresponding to the jth message;
and determining the address of the (i + 1) th level lookup table corresponding to the jth message according to the index of the (i + 1) th level lookup table corresponding to the jth message.
In a possible implementation manner, the search module is specifically configured to:
if the i is 1, searching a next hop address of the jth message in a first-level lookup table;
if the i is larger than 1, determining the ith level lookup table corresponding to the jth message in the cache, and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message.
In a possible implementation manner, the search module is specifically configured to:
determining an X-bit address in the destination address of the jth message according to a lookup length X corresponding to the first-stage lookup table, wherein X is an integer greater than 1;
and searching the next hop address of the jth message in the first-stage lookup table according to the X-bit address.
In a possible implementation manner, the lookup module is specifically configured to:
determining a Y-bit address in the destination address of the jth message according to the lookup length corresponding to the previous i-1 level lookup table and the lookup length Y corresponding to the ith level lookup table, wherein Y is an integer greater than 1;
and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message according to the Y bit address.
In one possible implementation, the LPM lookup table includes 14 stages of lookup tables, the lookup length of the first stage of lookup table is 24, and the lookup lengths of the 2 nd stage of lookup table to the 14 th stage of lookup table are 8.
In a third aspect, an embodiment of the present application provides a device for route lookup, including: a memory and a processor;
the memory stores computer-executable instructions;
the processor executes computer-executable instructions stored by the memory, causing the processor to perform the route lookup method of any one of the first aspect.
In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored, and when the computer-executable instructions are executed by a processor, the computer-readable storage medium is configured to implement the route lookup method according to any one of the first aspect.
In a fifth aspect, the present application provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, the computer program implements the route lookup method shown in any one of the first aspect.
In this embodiment of the present application, the router may determine N packets to be processed, and look up M in the i-th lookup table i And if the next hop address of the jth message in the message can be found, the finding of the jth message is finished. If the next hop address of the jth message is not found, the router may obtain, in the ith level lookup table, an index of the (i + 1) th level lookup table corresponding to the jth message according to the route corresponding to the jth message, and determine the address of the (i + 1) th level lookup table according to the index. The router can prefetch the (i + 1) th level lookup table from the memory into the cache through the prefetch instruction according to the address of the (i + 1) th level lookup table, and then perform routing lookup on the (j) th message through the (i + 1) th level lookup table. In each routing lookup, the router can prefetch the (i + 1) th level lookup tables corresponding to the multiple messages from the memory into the cache, and the router can prefetch the (i + 1) th level lookup tables corresponding to the multiple messages into the cacheAfter prefetching all the lookup tables, performing route lookup on each message by using the corresponding (i + 1) th level lookup table, so as to ensure that when performing route lookup in the cache, all the (i + 1) th level lookup tables exist in the cache, thereby reducing the condition of cache miss, reducing the condition of obtaining the route table in the memory by the router, and improving the efficiency of route lookup.
Drawings
The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the application and together with the description serve to explain the application and not to limit the application. In the drawings:
fig. 1 is a schematic diagram of an application scenario provided in an exemplary embodiment of the present application;
FIG. 2 is a schematic diagram of a routing table provided in an exemplary embodiment of the present application;
fig. 3 is a schematic flowchart of a route searching method according to an exemplary embodiment of the present application;
fig. 4 is a schematic flow chart of another route searching method according to an exemplary embodiment of the present application;
fig. 5 is a schematic process diagram of a route lookup method according to an exemplary embodiment of the present application;
fig. 6 is a schematic structural diagram of a route lookup apparatus according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of a route lookup apparatus according to an embodiment of the present application.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the technical solutions of the present application will be described in detail and completely with reference to the following specific embodiments of the present application and the accompanying drawings. It should be apparent that the described embodiments are only some of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
Fig. 1 is a schematic diagram of an application scenario provided in an exemplary embodiment of the present application. As shown in fig. 1, includes a network device 1, a router, and a network device 2. The router is provided with a routing table. Network device 1 may send a message to a router. After receiving the message, the router can obtain the destination address of the message according to the message, perform route lookup in the routing table according to the destination address, and determine the next hop address of the message. If the router determines that the next hop address of the packet is the IP address of the network device 2, the router may forward the packet to the network device 2 according to the next hop address of the packet.
The routing table may comprise a multi-level lookup table. When the router searches the route according to the routing table, the next hop address is searched in the level 1 routing table, if the next hop address is not searched in the level 1 lookup table, the next hop address is searched in the level 2 lookup table, and the like, the next hop address is returned after the next hop address is searched, or the search fails when the next hop address is not searched in the last level lookup table.
Each lookup table includes a plurality of routes. For any one route in any one level of lookup table, the route may or may not include the next hop address. If the route comprises the next hop address, the route does not have a lookup table associated with the next level; if the route does not include the next hop address, the route has a lookup table associated with the next level.
Each route comprises a plurality of route parameters, and whether the next hop address can be found in the route or not can be judged according to the route parameters, and whether the next-level lookup table exists in the route or not can be judged. For example, the routing may include the parameters shown in table 1:
TABLE 1
Figure BDA0003565847560000051
Figure BDA0003565847560000061
Please refer to table 1, wherein next-hop refers to a next hop address or an index of a next-level lookup table.
valid indicates whether the current route is in effect. When the valid is 1, the current route is valid, and when the valid is 0, the current route is invalid.
ext-entry indicates whether the current route has a corresponding next-level lookup table. When valid is 1, namely under the condition that the current route is effective, if ext-entry is 0, the current route does not have a next-level lookup table; if ext-entry is 1, it indicates that the current route exists in the next level lookup table.
The rule depth refers to the number of address bits that the current route supports lookup. The look-up table may be deeply partitioned according to rules. For example, if the lookup length of the level 1 lookup table is set to 24, it indicates that the first 24 bits of the destination address of the lookup packet are supported in the level 1 lookup table, and the rule depth of any one route in the level 1 lookup table is 24.
When the router judges whether the current route includes the next hop address or not according to the route parameters or whether the index of the next-level lookup table exists, the router can read the valid and ext-entry values in the current route so as to judge the meaning of the next-hop in the current route. For example, if the valid in the current route is 1 and the ext-entry is 0, it indicates that the current route is valid, and there is no next-hop lookup table, the next-hop address of the current route is checked, and the next-hop address of the route, that is, the next-hop address corresponding to the packet, can be known; if the valid of the current route is 1 and the ext-entry is 1, the current route is in effect, and if a next-level lookup table exists, the next-hop of the current route is checked, so that the index of the next-level lookup table corresponding to the current route can be obtained.
Next, a routing table will be described with reference to fig. 2, taking the routing table as an LPM routing table as an example.
Fig. 2 is a schematic diagram of a routing table provided in an exemplary embodiment of the present application. As shown in fig. 2, the routing table may be divided into 14 levels, and the routing table includes 14 levels of lookup tables, which are respectively referred to as a level 1 lookup table to a level 14 lookup table, where the lookup length of the level 1 lookup table is 24, and includes 2 24 And (4) strip routing. Level 2 lookupThe lookup length of the table to the 14 th level lookup table is 8, each comprising 2 8 And (4) strip routing.
For any one route in any one level of lookup table, the route may or may not include the next hop address. If the route comprises the next hop address, the route does not have a lookup table associated with the next level; if the route does not include the next hop address, the route has a lookup table associated with the next level. As shown in fig. 2, in the level 1 lookup table, assuming that valid of route 1 is 1 and ext-entry is 0, route 1 includes the next hop address, and there is no next level associated lookup table. Assuming that valid of route 2 is 1 and ext-entry is 1, route 2 does not include the next hop address, and there is a level 2 lookup table corresponding to route 2.
When the router searches the route in the routing table, the router can match the destination address of the message with each route in each level of the lookup table according to the longest prefix matching principle, and search the route with the most matching digits, thereby determining the next hop address of the message and forwarding the message according to the next hop address.
For example, when the router starts a route lookup for packet 1, the lookup may be performed in the level 1 lookup table according to the destination address of packet 1. Since the lookup length of the level 1 lookup table is 24, the router may perform routing lookup in the level 1 lookup table according to the addresses from bit 1 to bit 24 in the destination address of the packet 1. And if the router determines that the route matched with the message 1 in the level 1 lookup table is the route 1 and the route 1 comprises the next hop address, finishing the lookup of the message 1. If the route 1 does not include the next hop address but the level 2 lookup table corresponding to the route 1 exists, the router may perform route lookup in the level 2 lookup table corresponding to the route 1 according to the 25 th bit to the 32 th bit in the destination address of the packet 1, match the route 2, and repeat the process until the next hop address of the packet 1 is determined.
In the related art, since the length of the IPv6 address is long, a route lookup can be performed in the longest prefix matching lookup table. The routing table is usually stored in the memory, and the routing lookup is performed in the cache of the processor, when the routing lookup is performed for the first time, the cache may not store all levels of lookup tables, and the router needs to obtain the routing table in the memory and perform the routing lookup, which results in long time spent on the routing lookup and further lower efficiency of the routing lookup.
In the embodiment of the application, when the router searches for the routes of a plurality of messages, the lookup tables at each level corresponding to the messages can be prefetched from the memory to the cache of the processor in a data prefetching mode so as to search for the routes; and after the prefetching of the plurality of peer lookup tables corresponding to the plurality of messages is completed, the routing lookup of each message is performed in the plurality of peer lookup tables corresponding to the plurality of messages, so that the plurality of peer lookup tables are stored in the cache when the routing lookup is performed in the cache, thereby reducing the cache miss situation and reducing the situation that the router acquires the routing tables in the memory. Therefore, by the mode, the efficiency of route searching is improved.
The technical means shown in the present application will be described in detail below with reference to specific examples. It should be noted that the following embodiments may exist alone or in combination with each other, and the description of the same or similar contents is not repeated in different embodiments.
Fig. 3 is a flowchart illustrating a route searching method according to an exemplary embodiment of the present application. Referring to fig. 3, the method may include:
301. and determining N messages to be processed, wherein N is an integer greater than 1.
The router may perform batch processing on the messages, and the N messages to be processed may be messages processed by the router in a batch. The router may determine the N packets according to the time when the packet is received, for example, the router may determine the packet received within a preset time period as the N packets that need to be processed in a batch. The size of N may be set according to actual needs, for example, N may be 16, 8, 4, etc.
The message includes a destination address, and the destination address of the message may be an IPv6 address. IPv6 addresses are typically 128 bits in length and are divided into 8 address sections, each address section containing 16 address bits. The IPv6 address may be represented using 4 hexadecimal numbers, for example, the IPv6 address may be 2001:0DB8:0000:0000:0008:0800:200C: 417A.
302. I is initialized to 1.
When the router searches the routes of the N messages in the routing table, first, each level of the lookup table included in the routing table is determined. The number of stages in the lookup table can be represented by i, i being 1, 2, 3, … …, K. If the routing table is divided into 14 levels of lookup tables, K is 14.
The initialization of i may be set to 1, which means that the packet is routed from the level 1 lookup table.
303. Looking up M in the i-th level lookup table i The next hop address of each message.
Wherein M is i Is a positive integer.
When i is 1, M 1 And (4) the router searches the next hop addresses of the N messages in the level 1 lookup table. The router can extract destination addresses of the N messages respectively, match each route in the level 1 lookup table according to the destination addresses of the N messages respectively, find the route which is most matched with the destination address of each message, and further determine the next hop address of each message.
When i is greater than 1, the router looks up M in the i-th level lookup table i The next hop address of each message. M i Each message is a message for which the next hop address is not searched in the previous i-1 level lookup table, that is, the M is not searched in the previous i-1 level lookup table i The next hop address of each message. The router can extract M respectively i The destination address of the message and according to M i And respectively matching the destination address of each message with each route in the ith level lookup tables, searching the route which is most matched with the destination address of each message, and further determining the next hop address of each message.
304. And judging whether the next hop addresses of the N messages are found.
If yes, the next hop address searching of the N messages is finished. After the next hop address of the N messages is found, the N messages may be forwarded, or the message may be forwarded after the next hop address of one message is found.
If not, 305 is performed.
In the ith loop, M needs to be looked up i Next hop address of each message, except M in N messages i The next hop address of other messages except the message is successfully searched, so that whether M is searched in the ith level lookup table or not can be judged i If the next hop address of each message is found to be M i The next hop address of each message can be determined to find the next hop address of the N messages.
305. If M is not found in the i-level lookup table i+1 The next hop address of each message is M i+1 And prefetching an i +1 level lookup table corresponding to each message to a cache.
M i+1 Each message is M i Part of a message, i.e. in the lookup M i The next hop address of each message is not found to M i+1 The next hop address of each message. M i+1 Less than or equal to M i
For any message, the router may determine a route matched with the message in the i-th level lookup table, and obtain an index of the i + 1-th level lookup table corresponding to the message according to the route, and further may determine an address of the i + 1-th level lookup table corresponding to the message according to the index. And the router prefetches the (i + 1) th level lookup table corresponding to the message from the memory to the cache through a prefetching instruction according to the address of the (i + 1) th level lookup table corresponding to the message.
Note that, for M i+1 Message, router determines M i+1 After the addresses of the i +1 th level lookup tables respectively corresponding to the messages, M can be added i+1 And (4) prefetching all the i +1 level lookup tables corresponding to the messages from the memory into the cache, and then performing route lookup.
For example, if 3 packets of the next hop address are not found in the level 1 lookup table, after the router determines the addresses of the level 2 lookup tables corresponding to the 3 packets, the router may prefetch all the 3 level 2 lookup tables from the memory into the cache, and then perform routing lookup on the 3 packets in the corresponding level 2 lookup tables.
306. I is updated to i + 1.
When the router will M i+1 After the i +1 th lookup tables corresponding to the messages are prefetched to the cache, the router may update i, and take i +1 as new i.
307. And judging whether i is larger than K.
Since i can be 1, 2, 3, … … K, and the maximum value of i is K, the number of stages in the lookup table is K-th stage at most. When the router judges that i is less than or equal to K, because the next hop addresses of all the messages in the N messages are not found, the routing search of the messages in the i-level lookup table can be continued; if i is greater than K, it means that the packet has been subjected to route lookup in the K-th level lookup table, and since there is no higher level lookup table than the K-th level lookup table, when i is greater than K, the route lookup cannot be continued, and the lookup is ended.
In this embodiment of the present application, the router may determine a plurality of messages to be processed, and extract a destination address of each message. The router can perform route lookup in the routing table according to the destination address of each message, and determine the next hop address of each message. If the next hop address of the message can be found in the i-level lookup table, the lookup of the message is finished; if the next hop address of the packet is not found in the i-th lookup table, the i + 1-th lookup table corresponding to the packet may be prefetched from the memory to the cache, and routing lookup may be performed again until the next hop address of the packet is found, or the K-th lookup table is found, and the lookup may be ended. In each routing lookup, the router can prefetch the (i + 1) th level lookup tables corresponding to the multiple messages from the memory into the cache, and after the router can prefetch all the (i + 1) th level lookup tables corresponding to the multiple messages, the router performs routing lookup on each message in the corresponding (i + 1) th level lookup table, so as to ensure that the (i + 1) th level lookup tables exist in the cache when the routing lookup is performed in the cache, thereby reducing the condition of cache miss, reducing the condition of obtaining the routing tables in the memory by the router, and improving the efficiency of routing lookup.
Based on the embodiment shown in fig. 3, the step 303 will be described in further detail below with reference to fig. 4. Fig. 4 is a flowchart illustrating another route searching method according to an exemplary embodiment of the present application. Referring to fig. 4, the method may include:
401. j is initialized to 1.
When the router is paired with M in the routing table i When a message starts to perform route searching, M can be used i Each message in the message is respectively marked as 1 st, 2 nd, … … th, jth and … … Mth i Wherein j is 1, 2, … … and M in sequence i
J may be initialized to 1, indicating that for M i And starting to search the route for the 1 st message in the messages.
402. Looking up M in the i-th level lookup table i The next hop address of the jth message in each message.
When i is 1, M 1 N. The router can extract the destination address of the jth message in the N messages, and look up the next hop address of the jth message in the N messages in the level 1 lookup table according to the destination address of the jth message.
Specifically, an X-bit address may be determined in the destination address of the jth packet according to a lookup length X corresponding to the level-1 lookup table, where X is an integer greater than 1; and searching the next hop address of the jth message in the level 1 lookup table according to the X bit address.
For example, if there are 3 messages to be processed by the router, they may be respectively denoted as message 1, message 2, and message 3. Assuming that the jth packet is packet 1, since the lookup length of the level 1 lookup table is 24, the router may determine the addresses from bit 1 to bit 24 in the destination address of packet 1, match each route in the level 1 lookup table according to the addresses from bit 1 to bit 24, find the most matched route, and further determine the next hop address of packet 1. After the router finishes searching the message 1, similarly, the router can sequentially perform routing search in the level 1 lookup table according to the addresses from the 1 st bit to the 24 th bit in the destination addresses of the message 2 and the message 3.
When i is greater than 1, since M i If the ith level lookup table corresponding to the jth message in the messages may be in the memory or the cache, the router needs to determine that the ith level lookup table corresponding to the jth message exists in the cache, match each route in the ith level lookup table according to the destination address of the jth message, find the route most matched with the destination address of the jth message, and further determine the next hop address of the jth message.
Specifically, a Y-bit address may be determined in the destination address of the jth packet according to a lookup length corresponding to the previous i-1 level lookup table and a lookup length Y corresponding to the ith level lookup table, where Y is an integer greater than 1; and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message according to the Y bit address.
For example, if i is 2, it indicates that the router has performed a routing lookup on the packet in the level 1 lookup table. Since the lookup length of the level 1 lookup table is 24, it indicates that the routing lookup has been performed on the 1 st bit to the 24 th bit in the destination address of the packet. Since the lookup length of the level 2 lookup table is 8, the router may determine addresses from 25 th bit to 32 th bit in the destination address of the packet, match each route in the level 2 lookup table corresponding to the packet according to the addresses from 25 th bit to 32 th bit in the packet, find the most matched route, and further determine the next hop address of the packet.
403. Update j to j + 1.
When the router is in the i-th level lookup table for M i After the jth message of the messages is searched, j can be updated, and j +1 is taken as a new j.
For example, if j is 1, after the 1 st packet is searched, j is updated to 2, which indicates that the route search is started for the 2 nd packet.
404. Judging whether j is larger than M i
Since j takes 1, 2, … … and M in turn i Maximum value M of j i Then search at level iThe last message looked up in the table is Mth i And (5) sending the message. When the router judges that j is less than or equal to M i If so, executing S402; if j is greater than M i Then, it indicates that the router has already been aligned to the Mth i The search of each message is completed, namely the completion of the pair M i And (5) finishing the search of each message.
In this embodiment of the present application, the router may determine N packets to be processed, and look up M in the i-th lookup table i And if the next hop address of the jth message in the message can be found, the finding of the jth message is finished. If the next hop address of the jth message is not found, the router may obtain, in the ith level lookup table, an index of the (i + 1) th level lookup table corresponding to the jth message according to the route corresponding to the jth message, and determine the address of the (i + 1) th level lookup table according to the index. The router can prefetch the (i + 1) th level lookup table from the memory into the cache through the prefetch instruction according to the address of the (i + 1) th level lookup table, and then perform routing lookup on the (j) th message through the (i + 1) th level lookup table. In each routing lookup, the router can prefetch the i +1 th level lookup tables corresponding to the multiple messages from the memory into the cache, and after the i +1 th level lookup tables corresponding to the multiple messages are all prefetched, the router can perform routing lookup on the messages in the corresponding i +1 th level lookup tables to ensure that the i +1 th level lookup tables exist in the cache when the routing lookup is performed in the cache, so that the cache miss situation can be reduced, the situation that the router acquires the routing tables in the memory is reduced, and the routing lookup efficiency is improved.
On the basis of any of the above embodiments, the following describes the operation process of route lookup by using a specific example in conjunction with fig. 5.
Fig. 5 is a schematic process diagram of a route lookup method according to an exemplary embodiment of the present application. Referring to fig. 5, process 1, process 2, … …, and process 14 are included.
Referring to process 1, if there are 6 messages that the router needs to process, they are respectively marked as message 1, message 2, message 3, message 4, message 5, and message 6. When the router starts to perform routing lookup on the 6 messages, the router can respectively acquire destination addresses of the 6 messages according to the 6 messages. The router can match each route in the level 1 lookup table according to the destination addresses corresponding to the 6 messages respectively, and find the next hop address of the 6 messages. This is the 1 st lookup. If the next hop addresses of the message 1 and the message 3 can be found, the finding of the message 1 and the message 3 is finished, and the number of the finding is 1. If the next hop address of message 2, message 4, message 5, and message 6 is not found, refer to procedure 2.
Referring to the process 2, if the next hop addresses of the messages 2, 4, 5, and 6 are not found, the router may determine the level 2 lookup tables corresponding to the messages 2, 4, 5, and 6, and prefetch all the level 2 lookup tables corresponding to the messages 2, 4, 5, and 6 from the memory into the cache, so as to ensure that the level 2 lookup tables corresponding to the messages 2, 4, 5, and 6 are already in the cache when the level 2 lookup is performed on the messages 2, 4, 5, and 6, respectively. If the next hop addresses of the messages 2 and 6 can be found in the level 2 lookup tables corresponding to the messages 2 and 6, the search of the messages 2 and 6 is finished, and the number of times of search is 2. If the next hop address of the packet 4 or the next hop address of the packet 5 is not found in the level 2 lookup table corresponding to the packet 4 or the packet 5, the process 2 may be repeated until the level 14 lookup table is found, which may be referred to as the process 14.
Referring to process 14, if the next hop addresses corresponding to the messages 4 and 5 are not found in the level 2 lookup table to the level 13 lookup table corresponding to the messages 4 and 5, the router may determine the level 14 lookup tables corresponding to the messages 4 and 5 according to the routes of the messages 4 and 5 in the level 13 lookup table, prefetch all the level 14 lookup tables corresponding to the messages 4 and 5 from the memory into the cache, and perform the 14 th lookup on the messages 4 and 5, respectively. If the next hop address of the packet 14 can be found in the 14 th level lookup table corresponding to the packet 4, the search for the packet 14 is completed, and the number of times of search is 14. If the next hop address of the message 5 is not found in the 14 th level lookup table corresponding to the message 5, the lookup of the message 5 fails, and the lookup is ended.
When the number of messages processed in batches by the router is different and the number of routes included in the routing table is different, the performance of route searching is also different. The performance of a route lookup can be measured by the number of cycles of a Central Processing Unit (CPU) when the route lookup is performed. In one route lookup, the more times of CPU cycles, which means that the longer the time of CPU occupied by the route lookup, the worse the performance of the route lookup.
For example, when the number of messages batched by the router is 4, 6, 8, and 16, the number of CPU cycles for route lookup is as shown in table 2:
TABLE 2
Number of messages 4 6 8 16
10K routing 235cycles/route 168cycles/route 105cycles/route 94cycles/route
100K routing 742cycles/route 569cycles/route 463cycles/route 331cycles/route
When there are 10K routes in the routing table, and the numbers of messages batched by the routers are 4, 6, 8, and 16, respectively, the corresponding CPU cycles are 235, 168, 105, and 94 times, respectively. When there are 100K routes in the routing table, and the number of messages batched by the router is 4, 6, 8, and 16, the corresponding CPU cycles are 742, 569, 463, and 331 times, respectively.
(1) As can be compared from table 1, when there is 10K routes in the routing table, the router lookup performance for processing 16 packets (94 times) is improved by 2.5 times compared with the router lookup performance for processing 4 packets (235 times). It means that the greater the number of messages processed by the router, the better the performance of the route lookup.
(2) As can be compared from table 1, when the router processes 4 packets, the performance of the route lookup in the LPM table of 10K (235 times) is improved by 3 times compared with the performance of the route lookup in the LPM table of 100K (742 times). It means that the performance of the route lookup is better when the number of routes in the routing table is smaller.
In this embodiment of the present application, the router may determine N packets to be processed, and look up M in the i-th lookup table i And if the next hop address of the jth message in the message can be found, the finding of the jth message is finished. If the next hop address of the jth message is not found, the router may obtain, in the ith level lookup table, an index of the (i + 1) th level lookup table corresponding to the jth message according to the route corresponding to the jth message, and determine the address of the (i + 1) th level lookup table according to the index. The router can prefetch the (i + 1) th level lookup table from the memory into the cache through the prefetch instruction according to the address of the (i + 1) th level lookup table, and then perform routing lookup on the (j) th message through the (i + 1) th level lookup table. In each routing lookup, the router can prefetch the (i + 1) th level lookup table corresponding to a plurality of messages from the memory to the cacheIn addition, after the router prefetches all the i +1 th level lookup tables corresponding to the messages respectively, the router searches the routing of each message in the corresponding i +1 th level lookup table, so that when the routing search is performed in the cache, all the i +1 th level lookup tables exist in the cache, the cache miss situation can be reduced, the situation that the router acquires the routing tables in the memory is reduced, and the routing search efficiency is improved.
Fig. 6 is a schematic structural diagram of a route lookup apparatus according to an embodiment of the present application. Referring to fig. 6, the route lookup apparatus includes: a determination module 11, a lookup module 12, and a prefetch module 13, wherein,
the determining module 11 is configured to determine N packets to be processed, where N is an integer greater than 1;
the lookup module 12 is configured to lookup M in an i-th level lookup table i The next hop address of each message;
the prefetch module 13 is configured to, if M is not found in the i-th lookup table i+1 The next hop address of each message is M i+1 Prefetching an i +1 level lookup table corresponding to each packet to a cache, wherein M is i Is a positive integer, M 1 =N,M i+1 ≤M;
And i is 1, 2 and 3 … … in sequence until the next hop addresses of the N messages are found, wherein i is smaller than K, and K is the maximum stage number of the lookup table.
The route searching device provided in the embodiment of the present application may implement the technical solutions shown in the above method embodiments, and the implementation principles and beneficial effects thereof are similar, and are not described herein again.
In a possible implementation manner, the search module 11 is specifically configured to:
looking up the M in an ith level lookup table i The next hop address of the jth message in the messages;
in a possible implementation, the prefetch module 13 is specifically configured to:
if the next hop address of the jth message is not found in the ith level lookup table, the next hop address of the jth message is not found in the ith level lookup tablePrefetching an i +1 level lookup table corresponding to the jth message to the cache; wherein j is 1, 2, … … and M in sequence i
In a possible implementation, the prefetch module 13 is specifically configured to:
determining the address of the (i + 1) th level lookup table corresponding to the jth message;
and prefetching the (i + 1) th level lookup table corresponding to the jth message to the cache through a prefetch instruction according to the address of the (i + 1) th level lookup table corresponding to the jth message.
In a possible implementation, the prefetch module 13 is specifically configured to:
acquiring an index of an i +1 level lookup table corresponding to the jth message from an i level lookup table corresponding to the jth message;
and determining the address of the (i + 1) th level lookup table corresponding to the jth message according to the index of the (i + 1) th level lookup table corresponding to the jth message.
In a possible implementation manner, the search module 11 is specifically configured to:
if the i is 1, searching a next hop address of the jth message in a first-level lookup table;
if the i is larger than 1, determining the ith level lookup table corresponding to the jth message in the cache, and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message.
In a possible implementation manner, the search module 11 is specifically configured to:
determining an X-bit address in the destination address of the jth message according to the lookup length X corresponding to the first-stage lookup table, wherein X is an integer greater than 1;
and searching the next hop address of the jth message in the first-stage lookup table according to the X-bit address.
In a possible implementation manner, the search module 11 is specifically configured to:
determining a Y-bit address in the destination address of the jth message according to the lookup length corresponding to the previous i-1 level lookup table and the lookup length Y corresponding to the ith level lookup table, wherein Y is an integer greater than 1;
and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message according to the Y bit address.
In one possible implementation, the LPM lookup table includes 14 stages of lookup tables, the lookup length of the first stage of lookup table is 24, and the lookup lengths of the 2 nd stage of lookup table to the 14 th stage of lookup table are 8.
The route searching device provided in the embodiment of the present application may implement the technical solutions shown in the above method embodiments, and the implementation principles and beneficial effects thereof are similar, and are not described herein again.
Referring to fig. 7, the route lookup apparatus 20 may include a processor 21 and a memory 22. The processor 21, the memory 22, and the various parts are illustratively interconnected by a bus 23.
The memory 22 stores computer-executable instructions;
the processor 21 executes computer-executable instructions stored by the memory 22 to cause the processor 21 to perform a route lookup method as shown in the above-described method embodiments.
Accordingly, an embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored, and when the computer-executable instructions are executed by a processor, the computer-readable storage medium is configured to implement the route lookup method according to the foregoing method embodiment.
Accordingly, the present application may also provide a computer program product, which includes a computer program, and when the computer program is executed by a processor, the route lookup method shown in the foregoing method embodiment may be implemented.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The above description is only an example of the present application and is not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.

Claims (12)

1. A method for route lookup, comprising:
determining N messages to be processed, wherein N is an integer greater than 1;
looking up M in the i-th level lookup table i If the next hop address of each message is not found in the i-level lookup table, M is added to the next hop address i+1 The next hop address of each message is M i+1 Prefetching an i +1 level lookup table corresponding to each packet to a cache, wherein M is i Is a positive integer, M 1 =N,M i+1 ≤M i
And i is 1, 2 and 3 … … in sequence until the next hop addresses of the N messages are found, wherein i is smaller than K, and K is the maximum stage number of the lookup table.
2. The method of claim 1, wherein M is looked up in an i-th level lookup table i If the next hop address of each message is not found in the i-level lookup table, M is added to the next hop address i+1 The next hop address of each message is M i+1 Prefetching an i +1 th level lookup table corresponding to each message to a cache, comprising:
looking up the M in an ith level lookup table i The next hop address of the jth message in the messages;
if the next hop address of the jth message is not found in the ith level lookup table, prefetching an (i + 1) level lookup table corresponding to the jth message to the cache;
wherein j is 1, 2, … … and M in sequence i
3. The method of claim 2, wherein prefetching an i +1 th lookup table corresponding to the jth packet to the cache comprises:
determining the address of the (i + 1) th level lookup table corresponding to the jth message;
and prefetching the (i + 1) th level lookup table corresponding to the jth message to the cache through a prefetch instruction according to the address of the (i + 1) th level lookup table corresponding to the jth message.
4. The method of claim 3, wherein determining the address of the (i + 1) th lookup table corresponding to the jth packet comprises:
acquiring an index of an i +1 level lookup table corresponding to the jth message from an i level lookup table corresponding to the jth message;
and determining the address of the (i + 1) th level lookup table corresponding to the jth message according to the index of the (i + 1) th level lookup table corresponding to the jth message.
5. The method of any of claims 2-4, wherein looking up M in an i-th level lookup table i The next hop address of the jth message in the messages comprises:
if the i is 1, searching a next hop address of the jth message in a first-level lookup table;
if the i is larger than 1, determining the ith level lookup table corresponding to the jth message in the cache, and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message.
6. The method of claim 5, wherein looking up the next hop address of the jth packet in a first-level lookup table comprises:
determining an X-bit address in the destination address of the jth message according to the lookup length X corresponding to the first-stage lookup table, wherein X is an integer greater than 1;
and searching the next hop address of the jth message in the first-stage lookup table according to the X-bit address.
7. The method of claim 5, wherein looking up a next hop address of the jth packet in an ith-level lookup table corresponding to the jth packet comprises:
determining a Y-bit address in the destination address of the jth message according to the lookup length corresponding to the previous i-1 level lookup table and the lookup length Y corresponding to the ith level lookup table, wherein Y is an integer greater than 1;
and searching the next hop address of the jth message in the ith level lookup table corresponding to the jth message according to the Y bit address.
8. The method according to any of claims 1-7, wherein the i-th stage lookup table is an i-th stage lookup table in a longest prefix matching LPM lookup table, wherein,
the LPM lookup table comprises 14 levels of lookup tables, the lookup length of the first level of lookup table is 24, and the lookup length from the 2 nd level of lookup table to the 14 th level of lookup table is 8.
9. A route lookup apparatus, comprising: a determination module, a lookup module, a prefetch module, wherein,
the determining module is used for determining N messages to be processed, wherein N is an integer greater than 1;
the lookup module is used for looking up M in the ith level lookup table i The next hop address of each message;
the prefetch module is to, if M is not found in the i-th level lookup table i+1 The next hop address of each message is M i+1 Prefetching an i +1 level lookup table corresponding to each packet to a cache, wherein M is i Is a positive integer, M 1 =N,M i+1 ≤M;
And i is 1, 2 and 3 … … in sequence until the next hop addresses of the N messages are found, wherein i is smaller than K, and K is the maximum stage number of the lookup table.
10. A route lookup apparatus, comprising: a memory and a processor;
the memory stores computer-executable instructions;
the processor executing the computer-executable instructions stored by the memory causes the processor to perform the route lookup method of any one of claims 1 to 8.
11. A computer-readable storage medium having computer-executable instructions stored thereon, which when executed by a processor, perform the route lookup method of any one of claims 1 to 8.
12. A computer program product comprising a computer program which, when executed by a processor, implements the route lookup method of any one of claims 1 to 8.
CN202210307064.0A 2022-03-25 2022-03-25 Route searching method, device and equipment Pending CN114866471A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210307064.0A CN114866471A (en) 2022-03-25 2022-03-25 Route searching method, device and equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210307064.0A CN114866471A (en) 2022-03-25 2022-03-25 Route searching method, device and equipment

Publications (1)

Publication Number Publication Date
CN114866471A true CN114866471A (en) 2022-08-05

Family

ID=82628998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210307064.0A Pending CN114866471A (en) 2022-03-25 2022-03-25 Route searching method, device and equipment

Country Status (1)

Country Link
CN (1) CN114866471A (en)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030018269A (en) * 2001-08-27 2003-03-06 한국전자통신연구원 Apparatus of IP lookup using cache forwarding table in router system, its method
US20050038907A1 (en) * 2003-08-14 2005-02-17 Roeder Michael T. Routing cache management with route fragmentation
US6888838B1 (en) * 2000-11-16 2005-05-03 Tensilica, Inc. Fast IP route lookup with configurable processor and compressed routing table
US20050195831A1 (en) * 2004-03-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
JP2005354579A (en) * 2004-06-14 2005-12-22 Fujitsu Ltd Packet repeating device, and route selection method by originator and destination address
CN101079817A (en) * 2007-07-04 2007-11-28 中兴通讯股份有限公司 A route searching method and system
CN102035727A (en) * 2010-11-17 2011-04-27 杭州华三通信技术有限公司 Method and equipment for processing routing
CN102355418A (en) * 2011-10-08 2012-02-15 大连环宇移动科技有限公司 Message forwarding method of router
CN105357126A (en) * 2015-11-12 2016-02-24 国电南瑞科技股份有限公司 Lookup table optimization method for parallel redundancy protocol (PRP)/high reliable seamless redundancy (HSR) message dropping algorithm
CN106453091A (en) * 2016-10-28 2017-02-22 武汉烽火网络有限责任公司 Equivalent routing management method and device of router forwarding plane
KR102101419B1 (en) * 2019-03-04 2020-04-16 서강대학교 산학협력단 Method for routing table lookup and memory system implementing the same

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6888838B1 (en) * 2000-11-16 2005-05-03 Tensilica, Inc. Fast IP route lookup with configurable processor and compressed routing table
KR20030018269A (en) * 2001-08-27 2003-03-06 한국전자통신연구원 Apparatus of IP lookup using cache forwarding table in router system, its method
US20050038907A1 (en) * 2003-08-14 2005-02-17 Roeder Michael T. Routing cache management with route fragmentation
US20050195831A1 (en) * 2004-03-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
JP2005354579A (en) * 2004-06-14 2005-12-22 Fujitsu Ltd Packet repeating device, and route selection method by originator and destination address
CN101079817A (en) * 2007-07-04 2007-11-28 中兴通讯股份有限公司 A route searching method and system
CN102035727A (en) * 2010-11-17 2011-04-27 杭州华三通信技术有限公司 Method and equipment for processing routing
CN102355418A (en) * 2011-10-08 2012-02-15 大连环宇移动科技有限公司 Message forwarding method of router
CN105357126A (en) * 2015-11-12 2016-02-24 国电南瑞科技股份有限公司 Lookup table optimization method for parallel redundancy protocol (PRP)/high reliable seamless redundancy (HSR) message dropping algorithm
CN106453091A (en) * 2016-10-28 2017-02-22 武汉烽火网络有限责任公司 Equivalent routing management method and device of router forwarding plane
KR102101419B1 (en) * 2019-03-04 2020-04-16 서강대학교 산학협력단 Method for routing table lookup and memory system implementing the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙红权;王新;李飞;: "高端路由器路由查找算法分析与实现", 计算机应用与软件, no. 09 *
陈亮;王建;胡康;: "众核网络处理器下高速包转发系统设计与实现", 计算机应用与软件, no. 12 *

Similar Documents

Publication Publication Date Title
CN110120942B (en) Security policy rule matching method and device, firewall equipment and medium
US8838558B2 (en) Hash lookup table method and apparatus
US11463360B2 (en) System and method for range matching
US10771386B2 (en) IP routing search
CN108460030B (en) Set element judgment method based on improved bloom filter
CN113315705B (en) Flexible IP addressing method and device based on single Hash bloom filter
WO2015131720A1 (en) Packet processing method and device
CN111209341B (en) Data storage method, device, equipment and medium of block chain
CN107147581B (en) Maintenance method and device for routing table entry
CN110012124B (en) Method and device for splitting network address range segment
US20060274762A1 (en) Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags
CN112187636A (en) ECMP route storage method and device
CN114866471A (en) Route searching method, device and equipment
US20160301658A1 (en) Method, apparatus, and computer-readable medium for efficient subnet identification
CN113824814B (en) Address matching method, device, network equipment and medium of forwarding table
US8755386B2 (en) Traceback packet transport protocol
CN112187743B (en) Network policy matching method and system based on IP address longest prefix
CN103368852A (en) Method and system for processing hash conflict
CN111683036B (en) Data storage method and device and message identification method and device
KR101587756B1 (en) Apparatus and method for searching string data using bloom filter pre-searching
US10476785B2 (en) IP routing search
CN112532610A (en) Intrusion prevention detection method and device based on TCP segmentation
US7376657B1 (en) Fast IPv6 address lookup using skip level processing on multi-bit tries
US11916789B2 (en) Prefix length expansion in packet processors
CN111629077A (en) Method, device and storage medium for processing address conflict

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination