Timer-free channel aging learning method and device based on hash table and network monitoring node equipment
Through the timer-free channel aging learning method of the hash table, the oldest channel is directly replaced for new message allocation, which solves the data congestion and packet loss problems when there are no idle channels in the FC fiber channel network, and realizes fast channel allocation and efficient resource utilization.
Patent Information
- Application Number
- CN202510758478.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-09
- Publication Date
- 2025-09-12
AI Technical Summary
In a Fibre Channel (FC) network, when a new message arrives, there are no idle channels available. The message must wait for the aging channel to be released after the timer times out, leading to data congestion and packet loss.
A timer-free channel aging learning method based on hash table is adopted. The HASH value of the message ID is calculated through the CRC algorithm, and a HASH bucket aging table is established. The oldest channel is directly replaced to allocate a channel for the new message, and the HASH bucket aging table is updated to avoid waiting for the timer to time out.
It improves channel utilization efficiency, quickly allocates channels for new messages, avoids data congestion and packet loss, simplifies the logical processing of message channel allocation, and reduces resource usage.
Smart Images

Figure CN120639705A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of virtual channel management and channel aging learning of FPGA, and is particularly applied to fiber channel networks in the aerospace field. Specifically, it relates to a timerless channel aging learning method and device based on a hash table, and a network monitoring node device. Background Art
[0002] In the aerospace Fibre Channel network architecture, hosts access the Fibre Channel (FC) network via FC communication daughter cards to transmit and receive data. As a node device in the Fibre Channel network (FC network monitoring node device), the device's FPGA connects to the host via a PCIE interface and connects the host to the FC network via an FC port. The device's FC port typically connects to the monitoring port of an FC switch, acting as a high-performance receiving and monitoring device. Network routing technologies are not involved.
[0003] According to the FC Fibre Channel network communication protocol, when FC-AE-ASM message frames are transmitted in a Fibre Channel network, a 32-bit message_id is used as the message ID to distinguish different message types. Due to the large number of message types in the network and the large bit width of the message ID, FPGA device resources are limited, making it impossible to process all message types corresponding to the 32-bit message ID in parallel. FC fiber network nodes typically use channel mapping to map large-bit-width message IDs to smaller-bit-width channel numbers. Channel mapping can be achieved, for example, through hash tables (HASH) or content-addressable memory (CAM). However, when using FPGA nodes to receive and monitor messages in FC fiber networks, the number of received messages and the amount of data are large. The CAM table approach consumes a lot of FPGA resources and is not suitable for current applications. Therefore, the hash approach is typically used to implement channel mapping.
[0004] Combine Figure 1 In the existing channel aging learning process shown, the FPGA node device uses a CRC polynomial algorithm with a low collision rate to map the 32-bit message_id to a small bit-width index. The index is then used to retrieve data stored in the hash table for channel matching. To further resolve conflicts, a hash table is constructed by obtaining four hash buckets, each storing a message ID. Based on the calculated index value, the stored data at the corresponding index position in each of the four hash buckets can be retrieved simultaneously. This means that a single index value can support up to four simultaneous hash conflicts. Furthermore, a channel aging learning mechanism is added to the hash method to resolve hash conflicts while ensuring dynamic updates of the hash table and channel numbers.
[0005] When the message ID data of an FC message is obtained, the calculated HASH value is used as the index, and the message ID is stored in a free bucket in the four HASH buckets corresponding to the index. A channel number is obtained from the free channel pool for the current message to transmit data, and the mapping relationship between the channel number and the HASH bucket storing the message ID is stored. If all four HASH buckets read out at a time are occupied and do not match the message_id, it is necessary to wait for the corresponding channel to age and release the HASH bucket space before the current message can be properly assigned a channel number and transmitted. The channel aging process involves adding a counter for each channel number and accumulating it according to the aging count condition (generally a fixed time interval); when a channel number is allocated for use, the counter is reset. Each time the aging count condition (or fixed time interval) is met, the aging counters of all channels are checked. When the aging count of a channel reaches the channel aging threshold, it is considered that the channel has not been used for a long time, and the channel is aged (clearing the storage data of the HASH bucket corresponding to the channel number, clearing the mapping relationship between the channel number and the HASH bucket, etc.), and then the channel is released as an idle channel, and the channel number is returned to the idle channel pool for reallocation.
[0006] In FC Fibre Channel network communications, FC network monitoring node devices receive a wide variety of messages with high traffic volume, requiring fast channel allocation for received messages. In the traditional channel aging learning mechanism, when a new message arrives and there are no idle channels, the newly received message must wait for the aging channel to be released after the timer expires before it can be allocated to an idle channel for transmission. In high-throughput scenarios, this can cause data congestion and backpressure drops. Summary of the Invention
[0007] In view of the technical problems existing in the channel aging learning of the message channel allocation mechanism in the FC fiber channel network in the prior art, in particular, the problem of packet loss caused by the need to wait for the release of the aged channel after the timer expires when a new message is received and no idle channels are available, the purpose of the present invention is to provide a timer-free channel aging learning method and device based on a hash table, which solves the problem that when there are no idle channels, the newly received message needs to wait for the release of the aged channel after the timer expires, improves the channel utilization efficiency, quickly allocates channels for the received messages, and avoids back pressure drops caused by data congestion.
[0008] According to a first aspect of the present invention, a timer-free channel aging learning method based on a hash table is proposed, comprising the following steps:
[0009] Step 1: After receiving the new message FC frame, obtain the 32-bit message_id from the frame header field as the message ID;
[0010] Step 2: Calculate the HASH value corresponding to message_id according to the CRC algorithm;
[0011] Step 3: Use the calculated HASH value as the address and read the stored data in the four HASH buckets at the same time;
[0012] Step 4: Create a HASH bucket aging table based on the HASH bucket number and HASH value as the channel number to manage the real-time aging information of the HASH bucket;
[0013] Step 5: Compare the four readout data one by one and allocate transmission channels based on whether the readout data is consistent with the message_id and the real-time aging information of the four HASH buckets:
[0014] If the read data matches the message_id, the newly received message data is allocated and transmitted through the logical channel corresponding to the matching HASH bucket;
[0015] If the read data does not match the message_id, further allocation is performed based on whether there is an empty bucket:
[0016] If there is an idle HASH bucket, an idle channel is allocated for the newly received message data to be transmitted. The allocated channel number is composed of the HASH bucket number and the HASH value.
[0017] If there is no free HASH bucket, the real-time aging information of the four HASH buckets corresponding to the HASH value is obtained from the HASH bucket aging table, and the oldest channel is directly replaced and assigned as the transmission channel for the newly received message data. The assigned channel number is composed of the HASH bucket number and the HASH value;
[0018] Step 6: Update the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket, and provide real-time HASH bucket aging information for the transmission channel allocation of subsequent incoming messages.
[0019] In a further embodiment, the channel number is composed of a HASH bucket number and a HASH value, wherein the high bit is the HASH bucket number and the low bit is the HASH value.
[0020] In a further embodiment, in step 4, establishing a HASH bucket aging table includes:
[0021] A HASH bucket aging table is established using the HASH value as the address index. The numbers of the four buckets corresponding to the HASH bucket index are sorted in order from newest to oldest (newest, second newest, second oldest, oldest), and the sorted results are stored as data in the table. The value of the address column represents the HASH value, and the sorted values in the data column represent the HASH bucket numbers 1 to 4 respectively.
[0022] In a further embodiment, if there is no idle HASH bucket, the original channel in the HASH bucket is not cleared or reset, but the HASH value index of the newly arrived message is directly replaced with the oldest channel in the four HASH buckets.
[0023] In a further embodiment, updating the HASH bucket aging table according to the HASH bucket number of the HASH bucket allocated for use includes:
[0024] Get the allocated channel number, that is, the HASH bucket number and HASH value;
[0025] Get the HASH bucket aging table corresponding to the HASH value, move the allocated HASH bucket number to the latest one, move it to the highest position, and shift other HASH bucket numbers to the lower positions in turn;
[0026] The updated sorting data is written into the HASH bucket aging table to complete the aging order update of the channel.
[0027] In a further embodiment, the method further comprises the following steps:
[0028] Step 7: Based on the updated HASH bucket aging table, the HASH table is used to provide a basis for obtaining and matching the HASH buckets of subsequent incoming messages.
[0029] According to a second aspect of the present invention, a timer-free channel aging learning device based on a hash table is also proposed, comprising:
[0030] The message ID acquisition module is used to obtain the 32-bit message_id as the message ID from the frame header field after receiving the new message FC frame;
[0031] HASH value calculation module, used to calculate the HASH value corresponding to message_id according to the CRC algorithm;
[0032] The HASH bucket data acquisition module is used to read the stored data in four HASH buckets at the same time using the calculated HASH value as the address;
[0033] The HASH bucket aging table construction module is used to establish a HASH bucket aging table based on the HASH bucket number and HASH value as the channel number, which is used to manage the real-time aging information of the HASH bucket;
[0034] The message channel allocation module is used to compare the four readout data one by one and allocate transmission channels based on whether the readout data is consistent with the message_id and the real-time aging information of the four HASH buckets:
[0035] If the read data matches the message_id, the newly received message data is allocated and transmitted through the logical channel corresponding to the matching HASH bucket;
[0036] If the read data does not match the message_id, further allocation is performed based on whether there is an empty bucket:
[0037] If there is an idle HASH bucket, an idle channel is allocated for the newly received message data to be transmitted. The allocated channel number is composed of the HASH bucket number and the HASH value.
[0038] If there is no free HASH bucket, the real-time aging information of the four HASH buckets corresponding to the HASH value is obtained from the HASH bucket aging table, and the oldest channel is directly replaced and assigned as the transmission channel for the newly received message data. The assigned channel number is composed of the HASH bucket number and the HASH value;
[0039] The HASH bucket aging table update module is used to update the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket, and provide real-time HASH bucket aging information for the transmission channel allocation of subsequent incoming messages.
[0040] According to a third aspect of the present invention, a network monitoring node device for an FC fiber channel network is further provided. The node device includes a timer-less channel aging learning device based on a hash table implemented in an FPGA.
[0041] The hash table-based, timer-free channel aging learning method, device, and node device of the above embodiments of the present invention use the hash value and hash bucket number obtained by CRC calculation of the message ID as the channel number, and establish an aging linked list to manage the aging of the hash bucket. When a new message is received and no idle channels are available, the oldest channel in the four hash buckets corresponding to the message's hash value index is directly replaced. There is no need to clear or reset the original channel in the hash bucket, thereby improving channel utilization efficiency, quickly allocating channels for received messages, and avoiding back pressure drops caused by data congestion. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] Figure 1 It is a flow chart of the channel aging learning mechanism in the prior art.
[0043] Figure 2 4 is a flowchart of a timer-free channel aging learning method based on a hash table according to an example of the present invention.
[0044] Figure 3 2 is a schematic diagram of a timer-free channel aging learning device based on a hash table according to an example of the present invention.
[0045] Figure 4 2 is a schematic diagram of a timer-free channel aging learning device based on a hash table according to another example of the present invention. DETAILED DESCRIPTION
[0046] In order to better understand the technical content of the present invention, specific embodiments are given and described below with reference to the accompanying drawings.
[0047] Various aspects of the present invention are described in this disclosure with reference to the accompanying drawings, in which a number of illustrative embodiments are shown. The embodiments of the present disclosure are not necessarily intended to include all aspects of the present invention. It should be understood that the various concepts and embodiments introduced above, as well as those described in more detail below, can be implemented in any of many ways, because the concepts and embodiments disclosed herein are not limited to any embodiment. In addition, some aspects of the present disclosure may be used alone or in any appropriate combination with other aspects disclosed herein.
[0048] {Example 1}
[0049] Combine Figure 2 As shown, the timer-free channel aging learning method based on a hash table according to an embodiment of the present invention includes the following steps:
[0050] Step 1: After receiving the new message FC frame, obtain the 32-bit message_id from the frame header field as the message ID;
[0051] Step 2: Calculate the HASH value corresponding to message_id according to the CRC algorithm;
[0052] Step 3: Use the calculated HASH value as the address and read the stored data in the four HASH buckets at the same time;
[0053] Step 4: Create a HASH bucket aging table based on the HASH bucket number and HASH value as the channel number to manage the real-time aging information of the HASH bucket;
[0054] Step 5: Compare the four readout data one by one and allocate transmission channels based on whether the readout data is consistent with the message_id and the real-time aging information of the four HASH buckets:
[0055] If the read data matches the message_id, the newly received message data is allocated and transmitted through the logical channel corresponding to the matching HASH bucket;
[0056] If the read data does not match the message_id, further allocation is performed based on whether there is an empty bucket:
[0057] If there is an idle HASH bucket, an idle channel is allocated for the newly received message data to be transmitted. The allocated channel number is composed of the HASH bucket number and the HASH value.
[0058] If there is no free HASH bucket, the real-time aging information of the four HASH buckets corresponding to the HASH value is obtained from the HASH bucket aging table, and the oldest channel is directly assigned as the transmission channel for the newly received message data. The assigned channel number is composed of the HASH bucket number and the HASH value.
[0059] Step 6: Update the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket, and provide real-time HASH bucket aging information for the transmission channel allocation of subsequent incoming messages.
[0060] As an optional implementation, in step 4, the channel number is composed of the HASH bucket number and the HASH value. The channel number composition is shown in the following table:
[0061]
[0062] Among them, the high bit is the HASH bucket number and the low bit is the HASH value.
[0063] As an optional implementation, in step 4, a HASH bucket aging table is established, including:
[0064] A HASH bucket aging table is established using the HASH value as the address index. The numbers of the four buckets corresponding to the HASH bucket index are sorted from the latest to the oldest, and the sorted results are stored as data in the table. The structure of the table is as follows:
[0065]
[0066] The value in the address column represents the HASH value, and the sorted values in the data column represent the HASH bucket numbers 1 to 4.
[0067] As an optional implementation, in step 5, if there is no free HASH bucket, the original channel in the HASH bucket is not cleared or reset, but the HASH value index of the newly arrived message is directly replaced with the oldest channel in the four HASH buckets.
[0068] As an optional implementation, in step 6, updating the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket includes:
[0069] Get the allocated channel number, that is, the HASH bucket number and HASH value;
[0070] Get the HASH bucket aging table corresponding to the HASH value, move the allocated HASH bucket number to the latest one, move it to the highest position, and shift other HASH bucket numbers to the lower positions in turn;
[0071] The updated sorting data is written into the HASH bucket aging table to complete the aging order update of the channel.
[0072] As a specific example, for example, the data of the HASH bucket aging table in the initial state is shown in the following table. If the HASH value calculated after receiving the message is 1, and the second HASH bucket is hit after querying the HASH table, the HASH bucket aging table will be updated at this time:
[0073] a. Read the data at address 1 in the HASH bucket aging table as {1, 2, 3, 4};
[0074] b. Move the hit number 2 to the latest position, and sequentially shift the numbers of other HASH buckets to complete the data update, that is, {2, 1, 3, 4};
[0075] c. Write the updated data to address 1 to complete the aging table update.
[0076]
[0077] At this time, if a new message is received, the calculated HASH value is still 1, and none of the four buckets are hit, then the HASH bucket aging table is read to obtain the oldest bucket number, and the new message ID is stored in the bucket, the HASH bucket aging table is updated, and the channel aging learning process is completed.
[0078] Based on this, the HASH bucket aging table update process is as follows:
[0079] a. Read the data at address 1 in the HASH bucket aging table as {2, 1, 3, 4}, and find out that the oldest bucket number at this time is 4;
[0080] b. Replace the message ID corresponding to the oldest bucket number 4 in the HASH table;
[0081] c. Move the currently used number 4 to the highest position, and sequentially shift the numbers of other HASH buckets to complete the data update, that is, {4, 2, 1, 3};
[0082] d. Write the updated data to address 1 to complete the update of the HASH bucket aging table.
[0083] As an optional embodiment, combined with Figure 2 , the aforementioned channel aging learning method further includes the following steps:
[0084] Step 7: Based on the updated HASH bucket aging table, the HASH table is used to provide a basis for obtaining and matching the HASH buckets of subsequent incoming messages.
[0085] Therefore, the hash table-based, timer-free channel aging learning method described in the above embodiment enables rapid allocation of new messages upon arrival in FC fiber channel network communications. This solves the problem of newly received messages having to wait for the release of aged channels after a timer expires when there are no idle channels. This improves channel utilization efficiency, quickly allocates channels for received messages, and avoids data congestion and backpressure-induced discards. It also significantly simplifies the message channel allocation logic and resource usage. The channel aging learning mechanism can be implemented using only a single RAM unit, without complex logical judgment and calculation processes, and is implemented solely through RAM read and write operations and shift operations.
[0086] The timer-free channel aging learning method based on a hash table in the embodiment of the present invention has good scalability, and the channel can be expanded only by modifying the bit width of the HASH value and the number of HASH buckets.
[0087] {Example 2}
[0088] Combined with the implementation of the timer-free channel aging learning method based on the hash table in the above embodiment, combined with Figure 3 As shown, according to the present invention, a timer-free channel aging learning device based on a hash table is also proposed, comprising:
[0089] The message ID acquisition module is used to obtain the 32-bit message_id as the message ID from the frame header field after receiving the new message FC frame;
[0090] HASH value calculation module, used to calculate the HASH value corresponding to message_id according to the CRC algorithm;
[0091] The HASH bucket data acquisition module is used to read the stored data in four HASH buckets at the same time using the calculated HASH value as the address;
[0092] The HASH bucket aging table construction module is used to establish a HASH bucket aging table based on the HASH bucket number and HASH value as the channel number, which is used to manage the real-time aging information of the HASH bucket;
[0093] The message channel allocation module is used to compare the four readout data one by one and allocate transmission channels based on whether the readout data is consistent with the message_id and the real-time aging information of the four HASH buckets:
[0094] If the read data matches the message_id, the newly received message data is allocated and transmitted through the logical channel corresponding to the matching HASH bucket;
[0095] If the read data does not match the message_id, it is allocated based on whether there is an empty bucket:
[0096] If there is an idle HASH bucket, an idle channel is allocated for the newly received message data to be transmitted. The allocated channel number is composed of the HASH bucket number and the HASH value.
[0097] If there is no free HASH bucket, the real-time aging information of the four HASH buckets corresponding to the HASH value is obtained from the HASH bucket aging table, and the oldest channel is directly replaced and assigned as the transmission channel for the newly received message data. The assigned channel number is composed of the HASH bucket number and the HASH value;
[0098] The HASH bucket aging table update module is used to update the HASH bucket aging table according to the HASH bucket number of the HASH bucket allocated for use, and provide real-time aging information for channel allocation of subsequent incoming messages.
[0099] As an optional implementation, the channel number is composed of a HASH bucket number and a HASH value. The channel number composition is shown in the following table:
[0100]
[0101] Among them, the high bit is the HASH bucket number and the low bit is the HASH value.
[0102] As an optional implementation, the HASH bucket aging table construction module is configured to construct the HASH bucket aging table in the following manner:
[0103] A HASH bucket aging table is established using the HASH value as the address index. The numbers of the four buckets corresponding to the HASH bucket index are sorted from the latest to the oldest, and the sorted results are stored as data in the table. The structure of the table is as follows:
[0104]
[0105] The value in the address column represents the HASH value, and the sorted values in the data column represent the HASH bucket numbers 1 to 4 respectively.
[0106] As an optional implementation, the HASH bucket aging table update module is configured to update the HASH bucket aging table in the following manner, including:
[0107] Get the allocated channel number, that is, the HASH bucket number and HASH value;
[0108] Get the HASH bucket aging table corresponding to the HASH value, move the allocated HASH bucket number to the latest one, move it to the highest position, and shift other HASH bucket numbers to the lower positions in turn;
[0109] The updated sorting data is written into the HASH bucket aging table to complete the aging order update of the channel.
[0110] As an optional embodiment, combined with Figure 4 The timerless channel aging learning device based on a hash table of the embodiment shown further includes a HASH table updating module for providing a basis for obtaining and matching HASH buckets of subsequent incoming messages according to the updated HASH bucket aging table.
[0111] {Example 3}
[0112] In combination with the implementation of the hash table-based timerless channel aging learning method in the above embodiment, the present invention also proposes a network monitoring node device for an FC fiber channel network, which includes a hash table-based timerless channel aging learning device implemented in an FPGA. The hash table-based timerless channel aging learning device is implemented based on the method of the aforementioned embodiment 2.
[0113] While the present invention has been disclosed above with reference to preferred embodiments, this is not intended to limit the present invention. Persons skilled in the art will readily appreciate that various modifications and variations can be made without departing from the spirit and scope of the present invention. Therefore, the scope of protection of the present invention shall be determined by the claims.
Claims
1. A timer-free channel aging learning method based on a hash table, characterized in that: The following steps are involved: Step 1: After receiving the new message FC frame, obtain the 32-bit message_id from the frame header field as the message ID; Step 2: Calculate the HASH value corresponding to message_id according to the CRC algorithm; Step 3: Use the calculated HASH value as the address and read the stored data in the four HASH buckets at the same time; Step 4: Create a HASH bucket aging table based on the HASH bucket number and HASH value as the channel number to manage the real-time aging information of the HASH bucket; Step 5: Compare the four readout data one by one and allocate transmission channels based on whether the readout data is consistent with the message_id and the real-time aging information of the four HASH buckets: If the read data matches the message_id, the newly received message data is allocated and transmitted through the logical channel corresponding to the matching HASH bucket; If the read data does not match the message_id, further allocation is performed based on whether there is an empty bucket: If there is an idle HASH bucket, an idle channel is allocated for the newly received message data to be transmitted. The allocated channel number is composed of the HASH bucket number and the HASH value. If there is no free HASH bucket, the real-time aging information of the four HASH buckets corresponding to the HASH value is obtained from the HASH bucket aging table, and the oldest channel is directly replaced and assigned as the transmission channel for the newly received message data. The assigned channel number is composed of the HASH bucket number and the HASH value; Step 6: Update the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket, and provide real-time HASH bucket aging information for the transmission channel allocation of subsequent incoming messages.
2. The timer-free channel aging learning method based on hash table according to claim 1 is characterized in that: In step 4, the channel number is composed of the HASH bucket number and the HASH value. The channel number composition is shown in the following table: Among them, the high bit is the HASH bucket number and the low bit is the HASH value.
3. The timer-free channel aging learning method based on hash table according to claim 1, characterized in that: In step 4, establishing a HASH bucket aging table includes: A HASH bucket aging table is established using the HASH value as the address index. The numbers of the four buckets corresponding to the HASH bucket index are sorted from the latest to the oldest, and the sorted results are stored as data in the table. The structure of the table is as follows: The value in the address column represents the HASH value, and the sorted values in the data column represent the HASH bucket numbers 1 to 4 respectively.
4. The timer-free channel aging learning method based on a hash table according to any one of claims 1 to 3, characterized in that: In step 5, if there is no idle HASH bucket, the original channel in the HASH bucket is not cleared or reset, but the HASH value index of the newly arrived message is directly replaced with the oldest channel in the four HASH buckets.
5. The timer-free channel aging learning method based on a hash table according to any one of claims 1 to 3, characterized in that: In step 6, updating the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket includes: Get the allocated channel number, that is, the HASH bucket number and HASH value; Get the HASH bucket aging table corresponding to the HASH value, move the allocated HASH bucket number to the latest one, move it to the highest position, and shift other HASH bucket numbers to the lower positions in turn; The updated sorting data is written into the HASH bucket aging table to complete the aging order update of the channel.
6. The timer-free channel aging learning method based on hash table according to claim 1, characterized in that: The method further comprises the following steps: Step 7: Based on the updated HASH bucket aging table, the HASH table is used to provide a basis for obtaining and matching the HASH buckets of subsequent incoming messages.
7. A timer-free channel aging learning device based on a hash table, characterized in that: include: The message ID acquisition module is used to obtain the 32-bit message_id as the message ID from the frame header field after receiving the new message FC frame; HASH value calculation module, used to calculate the HASH value corresponding to message_id according to the CRC algorithm; The HASH bucket data acquisition module is used to read the stored data in four HASH buckets at the same time using the calculated HASH value as the address; The HASH bucket aging table construction module is used to establish a HASH bucket aging table based on the HASH bucket number and HASH value as the channel number, which is used to manage the real-time aging information of the HASH bucket; The message channel allocation module is used to compare the four readout data one by one and allocate transmission channels based on whether the readout data is consistent with the message_id and the real-time aging information of the four HASH buckets: If the read data matches the message_id, the newly received message data is allocated and transmitted through the logical channel corresponding to the matching HASH bucket; If the read data does not match the message_id, further allocation is performed based on whether there is an empty bucket: If there is an idle HASH bucket, an idle channel is allocated for the newly received message data to be transmitted. The allocated channel number is composed of the HASH bucket number and the HASH value. If there is no free HASH bucket, the real-time aging information of the four HASH buckets corresponding to the HASH value is obtained from the HASH bucket aging table, and the oldest channel is directly replaced and assigned as the transmission channel for the newly received message data. The assigned channel number is composed of the HASH bucket number and the HASH value; The HASH bucket aging table update module is used to update the HASH bucket aging table according to the HASH bucket number of the allocated HASH bucket, and provide real-time HASH bucket aging information for the transmission channel allocation of subsequent incoming messages.
8. The timer-free channel aging learning device based on a hash table according to claim 7, characterized in that: The channel number is composed of the HASH bucket number and the HASH value. The channel number composition is shown in the following table: Among them, the high bit is the HASH bucket number and the low bit is the HASH value.
9. The timer-free channel aging learning device based on a hash table according to claim 7, characterized in that: The HASH bucket aging table construction module is configured to construct the HASH bucket aging table in the following manner: A HASH bucket aging table is established using the HASH value as the address index. The numbers of the four buckets corresponding to the HASH bucket index are sorted from the latest to the oldest, and the sorted results are stored as data in the table. The structure of the table is as follows: The value in the address column represents the HASH value, and the sorted values in the data column represent the HASH bucket numbers 1 to 4 respectively.
10. The timer-free channel aging learning device based on a hash table according to claim 7, characterized in that: The HASH bucket aging table update module is configured to update the HASH bucket aging table in the following manner, including: Get the allocated channel number, that is, the HASH bucket number and HASH value; Get the HASH bucket aging table corresponding to the HASH value, move the allocated HASH bucket number to the latest one, move it to the highest position, and shift other HASH bucket numbers to the lower positions in turn; The updated sorting data is written into the HASH bucket aging table to complete the aging order update of the channel.
11. The timer-free channel aging learning device based on a hash table according to any one of claims 7 to 10, characterized in that: It also includes a HASH table updating module, which is used to provide a basis for obtaining and matching the HASH buckets of subsequent incoming messages according to the updated HASH bucket aging table and the HASH table.
12. A network monitoring node device for an FC fiber channel network, characterized in that: The node device includes a hash table-based timer-free channel aging learning device as described in any one of claims 7 to 11 implemented in an FPGA.