Method and device for transmitting data packet between lossless network ports

By utilizing a credit value prediction module in long-distance data transmission to predict the cache space status of downstream nodes, the problem of low data transmission efficiency and latency caused by credit value update delay is solved, achieving more efficient data transmission.

CN121418352APending Publication Date: 2026-01-27BEIJING SHUDU INFORMATION TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202512006583.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-29
Publication Date
2026-01-27

AI Technical Summary

Technical Problem

In long-distance data transmission, the credit value update information of downstream nodes cannot reach upstream nodes in a timely manner, resulting in decreased data transmission efficiency and increased latency. Existing technologies cannot effectively solve this problem.

Method used

Upstream nodes can predict future cache space status by receiving historical credit value updates from downstream nodes, and make data sending decisions in advance to avoid data link idleness and delays caused by credit value update delays.

Benefits of technology

It improves data transmission efficiency, reduces data packet latency, and increases bandwidth utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121418352A_ABST
    Figure CN121418352A_ABST
Patent Text Reader

Abstract

The invention belongs to the field of communication, and relates to a method and a device for transmitting a data packet between lossless network ports, and the device comprises a data transmitting module, a credit value updating module, a credit value prediction module, a data receiving module and a credit value monitoring module. According to the invention, an upstream node is used to estimate the update condition of the credit value which may be received in the future according to the update condition of the previously received credit value; when the upstream node sends data, if the idle cache space obtained according to the residual credit value of the current downstream node is not enough, a data packet sending decision is made according to the estimated credit value condition, so that the data transmission efficiency can be improved; and the delay influence on a data sending decision caused by relatively long transmission delay required by credit value data updating is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a method and apparatus for lossless data packet transmission between network ports, belonging to the field of communication technology. Background Technology

[0002] In high-performance computing and intelligent computing, lossless networks are typically used for high-performance data transmission between modules within a device node and between device nodes. Lossless networks employ various mechanisms during data transmission to ensure that data is not lost or corrupted, thus guaranteeing the reliability and integrity of data transmission. Common lossless transmission protocols and methods include PCIe (a high-speed serial computer expansion bus standard), InfiniBand (an infinite bandwidth interconnect technology, a high-speed network interconnect protocol for high-performance computing), and some proprietary custom protocols.

[0003] To prevent data loss and performance degradation due to downstream nodes' data buffers becoming full, technologies like PCIe and InfiniBand employ credit-based flow control mechanisms. When an upstream node sends data to a downstream node, it uses a credit value to calculate the downstream node's remaining buffer space and determines whether to send data based on the calculation result. If a downstream node has additional buffer space, it sends a credit value update to the upstream node, indicating that new buffer space has been released.

[0004] However, when the transmission distance between nodes is long, the credit value information updated by the downstream node cannot reach the upstream node in time. The upstream node cannot send the data in time because it cannot receive the latest credit value update information. This leads to a decrease in data transmission efficiency and an increase in data transmission latency due to waiting for the credit value update information to arrive.

[0005] Therefore, in long-distance data transmission, if the upstream node can predict the buffer space status of the downstream node in advance and send data packets in a timely manner, and the data packets can be accurately received and stored after arriving at the downstream node, the transmission efficiency of the communication link can be greatly improved and the waiting latency of data packets at the upstream node can be reduced.

[0006] One existing technical solution is as follows:

[0007] The upstream node sends data to the downstream node based on the latest credit value information of the downstream node.

[0008] An upstream node can only determine the amount of data to send to a downstream node based on the credit value after receiving the latest credit value from the downstream node.

[0009] If the amount of data sent by the current upstream node has not reached the downstream node's buffer limit represented by the credit value, the data is sent directly, and the upper limit of the amount of data that can be sent under the current credit value is updated.

[0010] If the amount of data sent by the upstream node has reached the upper limit of the currently received credit value, then it is necessary to wait for the new credit value update information to arrive, and then decide whether to send data based on the size of the updated credit value.

[0011] This method ensures that downstream nodes have sufficient buffer space to receive data after the upstream node sends it, preventing packet loss due to insufficient buffer space at the downstream node. However, in long-distance link transmission, excessive transmission latency can cause downstream nodes' credit value updates to fail to be timely, delaying the data transmission time of upstream nodes and severely impacting data transmission efficiency and bandwidth utilization.

[0012] Another existing technical solution is as follows:

[0013] The upstream node determines whether the data being sent is valid based on the latest credit information of the downstream node.

[0014] The upstream node first transmits the data portion of the data packet to the bus, while waiting to receive credit value update information from the downstream node. When sending the data packet header, it checks the current latest credit value.

[0015] If the credit value required to send the data is less than the current credit value, the data is sent directly to the downstream node. The downstream node receives the data.

[0016] If the credit value required to send the data exceeds the current credit value, the data packet header is marked with an invalid flag before being sent to the downstream node. The downstream node discards the received data packet based on the invalid flag.

[0017] This method alleviates the impact of reduced data transmission efficiency caused by the delay in receiving credit value update information due to long-distance link transmission to some extent. However, it only increases the waiting time for the transmission delay of the data packet part. For long-distance link transmission, this delay can play a limited role. Summary of the Invention

[0018] This invention relates to the field of communications. When a sending node (such as an upstream node) cannot obtain the latest cache space status update information of a downstream node (which is also a data sender) in a timely manner, it uses prior information to predict the actual cache space status of the downstream node (which is also a data receiver) and sends a certain amount of data in advance, thereby improving the utilization efficiency of data bandwidth and reducing data transmission latency.

[0019] This invention allows upstream nodes to predict future credit value updates based on previously received updates. When sending data, if the upstream node's buffer space based on the current credit value of downstream nodes is insufficient, it can make data packet sending decisions based on the predicted credit value. This avoids delays caused by long transmission links leading to credit value updates, which could result in idle data links and long data packet waiting times.

[0020] The specific solution of the present invention is as follows:

[0021] In a first aspect, a lossless network port data packet transmission device includes:

[0022] Data sending module: When there is a data sending request, it first checks the remaining credit value of the current downstream node to see if the size of the free cache space of the downstream node meets the usage requirements. If the usage requirements are met, the data packet is sent directly. If the remaining credit value of the current downstream node does not meet the usage requirements, the data packet sending decision is evaluated in combination with the predicted credit value of the credit value prediction module. At the same time, abnormal information received from the downstream node is processed.

[0023] Credit score update module: Receives credit score update data sent from downstream nodes to update the current credit score, and then passes it to the credit score prediction module;

[0024] Credit score prediction module: Makes predictions based on the credit score update data recently received from the credit score update module, and transmits the predicted data to the data sending module for pre-send decision.

[0025] Data receiving module: Receives data packets sent by upstream nodes and processes them; if the data receiving buffer is full, it drops the data packet according to the rules and notifies the upstream node to discard the data packet.

[0026] Credit value monitoring module: Monitors the received data buffer and data packet processing status; when data processing is completed and the buffer is freed up, it sends a credit value update packet to the upstream node to notify the upstream node of the amount of newly added free buffer space.

[0027] Secondly, a lossless method for sending data packets between network ports includes the following steps:

[0028] S1. At the upstream node, when there is a data transmission request, the remaining credit value of the current downstream node is checked to see if the free cache space of the downstream node meets the usage requirements. If the usage requirements are met, the data packet is sent directly. If the remaining credit value of the current downstream node indicates that the free cache space of the downstream node cannot meet the usage requirements, the credit value is predicted based on the credit value update history information of the downstream node recently received, and a decision is made on whether to allow data to be sent in advance.

[0029] S2. At the upstream node, decisions are dynamically adjusted based on feedback from the data received by the downstream node.

[0030] S3. At the downstream node, after receiving data sent by the upstream node, it determines whether to receive the data based on its own buffer status.

[0031] S4. In the downstream node, when new free cache space becomes available, the credit value update information is sent to the upstream node.

[0032] Furthermore, the upstream node's pre-send data decision-making method includes the following steps:

[0033] The upstream node has N_t data packets to send at time t; the upstream node can send data packets at time t, which is the remaining credit value, is n_t; the upstream node expects the downstream node to receive data packets after the data arrives at time t, and the expected data packet size is n'_t.

[0034] First, the upstream node obtains the size N_t of the data packet to be sent and the remaining credit value n_t of the downstream node. It then determines whether the free buffer space of the downstream node identified by the remaining credit value n_t obtained by the current receiver is sufficient to accommodate the data packet to be sent. If so, i.e. N_t≤n_t, the packet is sent directly without prediction.

[0035] If the remaining credit value n_t obtained by the current downstream node indicates that the free buffer space of the downstream node cannot accommodate the data packet to be sent, the free buffer space of the downstream node is predicted; if it is expected that after the data packet arrives at the downstream node, the downstream node has enough buffer space to accommodate all the information of the data packet to be sent, i.e. N_t≤n'_t, the data packet is sent directly.

[0036] If, after predicting the free buffer space of the downstream node, N_t > n'_t, then after the new credit value arrives at the upstream node, the downstream node's receiving buffer space will be reassessed to decide whether to send data.

[0037] Furthermore, the method by which downstream nodes determine whether to receive and process data based on their own cache state includes the following steps:

[0038] When a downstream node receives a data packet sent by an upstream node at time t, the size of the downstream node's free buffer space is S_t.

[0039] When a downstream node receives a data packet sent by an upstream node, it first checks if there is a case where S_t ≥ N_t. If so, it receives all the data; otherwise, it discards the data packet and handles it according to the packet loss procedure.

[0040] The beneficial effects of this invention are:

[0041] This invention allows upstream nodes to predict potential future credit value updates based on previously received updates. When an upstream node sends data, if the available buffer space obtained from the remaining credit value at downstream nodes is insufficient, it can make data packet sending decisions based on the predicted available buffer space. This avoids delays caused by long transmission links leading to credit value updates, which could prevent upstream nodes from making timely sending decisions and resulting in idle data links and long data packet waiting times. This improves data transmission efficiency and reduces the impact of long transmission delays on data sending decisions caused by credit value updates. Attached Figure Description

[0042] Figure 1 This is a schematic diagram of the data transmission process of the lossless network port data packet transmission device described in this invention;

[0043] Figure 2 This is a diagram illustrating the data sender's cache configuration update process.

[0044] Figure 3 This is a schematic diagram of the downstream node feedback information update process. Detailed Implementation

[0045] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.

[0046] This invention primarily relates to a method that, by predicting the downstream node's cache status, pre-sends partial data even when the sender has not yet received credit value update information, thereby alleviating the problem of slow credit value updates caused by long link transmission delays and resulting in untimely data transmission. This improves the utilization rate of downstream node cache space and data transmission efficiency. Here, this invention utilizes historical credit value update information fed back from downstream nodes to upstream nodes to predict the current actual cache space information of downstream nodes. The upstream node then makes a data pre-sending decision based on the prediction to promptly utilize the newly vacated cache space of the downstream node, thus improving data transmission efficiency.

[0047] Example 1

[0048] I. This invention involves the upstream node receiving cache space update history information from the downstream node to predict the available cache space of the downstream node. Based on this prediction, the upstream node makes a pre-send data decision, sending data ahead of time, thereby improving the cache space utilization of the downstream node, increasing bandwidth utilization, and reducing data latency. However, pre-send data may either be predicted lower than the actual value, leading to incomplete utilization of the downstream node's cache space, or predicted higher than the actual value, causing packet loss due to insufficient cache in the downstream node. To ensure more efficient data transmission, the upstream node adjusts its data pre-send decision based on received information, including downstream cache space update status and whether packet loss has occurred.

[0049] like Figure 1 The diagram shown illustrates the operation of upstream and downstream nodes. The upstream node processing includes:

[0050] Data sending module: When there is a data sending request, it first checks the remaining credit value of the current downstream node to see if the size of the free cache space of the downstream node meets the usage requirements. If the usage requirements are met, the data packet is sent directly. If the remaining credit value of the current downstream node does not meet the usage requirements, the data packet sending decision is comprehensively evaluated by combining the predicted credit value of the credit value prediction module.

[0051] At the same time, abnormal information received from downstream nodes is processed. For example, if a downstream node loses packets due to insufficient space, it needs to retransmit.

[0052] Credit score update module: Receives credit score update data sent from downstream nodes and passes it to the credit score prediction module.

[0053] Credit score prediction module: Based on the credit score update data recently received from the credit score update module, the module makes predictions and transmits the predicted data to the data sending module for pre-send decision.

[0054] The downstream node exhibits the following behavior:

[0055] Data receiving module: Receives data packets sent by upstream nodes and processes them; if the data receiving buffer is full, it drops the data packet according to the rules and notifies the upstream node to discard the data packet; the upstream node then performs the corresponding operation.

[0056] Credit value monitoring module: Monitors the received data buffer and data packet processing status; when data processing is completed and the buffer is freed up, it sends a credit value update packet to the upstream node to notify the upstream node that there is new free buffer space.

[0057] like Figure 1 As shown, at a certain moment, the data buffer to be sent contains several data packets (such as...). Figure 1 The data packets S_0 and S_1 mentioned above, and the received data buffer contains several data packets ( Figure 1 (represented as data packet r_0, data packet r_1).

[0058] II. Decision-making process for upstream node to pre-send data

[0059] According to the present invention, the upstream node pre-sends data process is as follows:

[0060] The size of the data packets to be sent by the upstream node at time t is N_t; the size of the data packets that the upstream node can send to the downstream node at time t is n_t, which is the remaining credit value of the current downstream node; the size of the data packets that the upstream node expects the downstream node to receive after the data arrives at time t is n'_t; the credit value update history information of the downstream node received by the upstream node is SS.

[0061] First, the upstream node (i.e., the sender) obtains the size N_t of the data packet to be sent and the remaining credit value n_t of the downstream node (i.e., the receiver). It then determines whether the free buffer space of the downstream node identified by the remaining credit value n_t received by the receiver is sufficient to accommodate the data packet to be sent. If so, i.e., N_t≤n_t, the packet is sent directly without prediction.

[0062] If the remaining credit value n_t received by the current downstream node (i.e., the receiver) indicates that the free buffer space of the downstream node cannot accommodate the data packet to be sent, a prediction is made for the credit value not received by the downstream node (i.e., the receiver); if it is expected that after the data packet arrives at the downstream node, the downstream node has enough space to accommodate all the information of the data packet to be sent, i.e., N_t≤n'_t, the data packet is sent directly.

[0063] If the predicted free buffer space of the downstream node is still insufficient to meet the space required for the current data packet to be sent (i.e., N_t > n'_t), then wait for the new credit value to arrive at the upstream node, re-evaluate the downstream node's reception status, and decide whether to send the data.

[0064] III. Downstream nodes receive and process data.

[0065] When the downstream node (i.e. the receiving end) receives the data packet sent by the upstream node at time t, the size of the free storage space of the downstream node is S_t;

[0066] When a downstream node receives a data packet sent by an upstream node, it first determines whether its current buffer space can receive all the data, i.e., whether there is S_t≥N_t. If so, it receives all the data; otherwise, it discards the data packet and handles it according to the packet loss procedure.

[0067] The present invention does not require any changes to the receiving and processing of downstream nodes; it can be executed according to the normal data processing flow.

[0068] Example 2

[0069] like Figure 2 The diagram illustrates a specific application example of the present invention. Assume that the upstream node has N_t data packets to send at time t. At this moment, the upstream node determines the remaining buffer space of the downstream node based on the remaining credit value n_t corresponding to the current downstream node. If N_t > n_t, the upstream node determines that the currently recorded free buffer space of the downstream node is insufficient to accommodate all the data to be sent. Therefore, it needs to predict the actual free buffer space of the downstream node by forecasting any potential future credit values.

[0070] The predicted buffer space of the downstream node (i.e., the size of the data packets that the downstream node can receive) is n'_t (the current remaining credit value of the upstream node + the predicted size of the credit values ​​that have not yet been received). At this time, N_t ≤ n'_t, the size of the data packet to be sent by the upstream node is less than the predicted free buffer space of the downstream node, so the data packet is sent directly. If the free buffer space of the downstream node is still insufficient after prediction, the process of processing the data packet to be sent is repeated after a new credit value arrives. During this process, the downstream node continuously sends credit values ​​to the upstream node (e.g., credit value at time t1, credit value at time t2, ... credit value at time tn), updates the remaining credit value, and records the historical credit value until the data packet is sent.

[0071] like Figure 3 As shown, after the downstream node processes the data packet, it checks the cache space usage, such as t nWhen new free cache space becomes available, the system sends an updated credit value to the upstream node based on the size of the newly generated free cache space, notifying the upstream node that new free cache space has been added.

[0072] After a time interval Δt, the upstream node sends data to the downstream node. If the downstream node has sent a total credit value of size Δn to the upstream node within the time interval Δt (e.g., credit value at time t1, credit value at time t2, ..., credit value at time tn), the credit value of the downstream node's free buffer space is n_t + Δn. If N_t ≤ n_t, all data is received; otherwise, packet loss is handled.

[0073] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the protection scope of the present invention.

Claims

1. A lossless network port data packet transmission device, characterized in that, include: Data sending module: When there is a data sending request, it first checks the remaining credit value of the current downstream node to see if the size of the free cache space of the downstream node meets the usage requirements. If the usage requirements are met, the data packet is sent directly. If the remaining credit value of the current downstream node does not meet the usage requirements, the data packet sending decision is evaluated in combination with the predicted credit value of the credit value prediction module. At the same time, abnormal information received from the downstream node is processed. Credit score update module: Receives credit score update data sent from downstream nodes and updates the current credit score, while also passing it to the credit score prediction module; Credit score prediction module: Makes predictions based on the credit score update data recently received from the credit score update module, and transmits the predicted data to the data sending module for pre-send decision. Data receiving module: Receives data packets sent by upstream nodes and performs reception processing; If the receive data buffer is full, the upstream node will be notified to drop the data packet in accordance with the rules. Credit score monitoring module: Monitors the received data buffer and data packet processing status; When data processing is complete and the cache space becomes available, a credit value update packet is sent to the upstream node to notify the upstream node that new free cache space exists.

2. A method for lossless data packet transmission between network ports, characterized in that: The lossless network port data packet sending device according to claim 1 includes the following steps: S1. At the upstream node, when there is a data transmission request, the remaining credit value of the current downstream node is checked to see if the free buffer space of the downstream node meets the usage requirements. If the usage requirements are met, the data packet is sent directly. If the remaining credit value of the current downstream node indicates that the free buffer space of the downstream node cannot meet the usage requirements, the historical credit value information of the downstream node recently received is used to predict a more accurate credit value and decide whether to allow the data to be sent in advance. S2. At the upstream node, decisions are dynamically adjusted based on feedback from the data received by the downstream node. S3. At the downstream node, after receiving data sent by the upstream node, it determines whether to receive the data based on its own buffer status. S4. In the downstream node, when new free cache space becomes available, the credit value is sent to the upstream node.

3. The method for lossless data packet transmission between network ports according to claim 2, characterized in that: The upstream node's data pre-transmission decision-making method includes the following steps: The upstream node has N_t data packets to send at time t; the upstream node can send data packets at time t, which is the remaining credit value, is n_t; the upstream node expects the downstream node to receive data packets after the data arrives at time t, and the expected data packet size is n'_t. First, the upstream node obtains the size N_t of the data packet to be sent and the remaining credit value n_t received from the downstream node. It then determines whether the free buffer space of the downstream node identified by the remaining credit value n_t received by the current receiver is sufficient to accommodate the data packet to be sent. If so, i.e. N_t≤n_t, the packet is sent directly without prediction. If the remaining credit value n_t received by the current downstream node indicates that the free buffer space of the downstream node cannot accommodate the data packet to be sent, make a prediction on the free buffer space of the downstream node; if it is expected that after the data packet arrives at the downstream node, the downstream node has enough space to accommodate all the information of the data packet to be sent, i.e. N_t≤n'_t, send the data packet directly. If, after predicting the free buffer space of the downstream node, N_t > n'_t, then after waiting for the new credit value to arrive at the upstream node, the reception status of the downstream node is reassessed, and a decision is made on whether to send data.

4. The method for lossless data packet transmission between network ports according to claim 2, characterized in that: The method for downstream nodes to determine whether to receive and process data based on their own cache status includes the following steps: When a downstream node receives a data packet sent by an upstream node at time t, the size of the downstream node's free storage space is S_t. When a downstream node receives a data packet sent by an upstream node, it first checks if there is a case where S_t ≥ N_t. If so, it receives all the data; otherwise, it discards the data packet and handles it according to the packet loss procedure.

Citation Information

Patent Citations

  • Method and system for controlling data flow

    CN101534173A

  • FC network traffic control method, FC network traffic control device and related components

    CN111970206A

  • Method and a system for flow control in a communication network

    US20070274215A1

  • Device, System, and Method of Speculative Packet Transmission

    US20090113082A1

  • Data transmission flow control regime

    US20230318984A1