A method and system for hop-by-hop data flow control credit reporting

By reporting hop-by-hop data flow control credits, the sending device adjusts the transmission rate and path based on the summary of flow control credits collected by the receiving device, thus solving the congestion problem in network communication and achieving efficient and optimized data transmission.

CN121532997APending Publication Date: 2026-02-13HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380100452.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-08
Publication Date
2026-02-13

AI Technical Summary

Technical Problem

Existing data flow control technologies are prone to causing congestion and delays in network communication and cannot effectively improve network performance.

Method used

By reporting flow control credits hop-by-hop in the network, the sending device sends a data packet containing a telemetry header and telemetry data fields. The receiving device collects and summarizes the flow control credits. Based on the summary, the sending device adjusts the transmission rate and path selection to avoid network congestion.

Benefits of technology

It achieves efficient, accurate, and optimized data flow control, avoids network device congestion, improves data transmission stability and network performance, and shortens the total data transmission time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121532997A_ABST
    Figure CN121532997A_ABST
Patent Text Reader

Abstract

A method is provided that includes a sender device sending a first packet of information to a receiver device along a path through a plurality of network devices, and receiving a second packet of information from the receiver device after the receiver device receives the first packet of information. Each of the network devices along the path inserts telemetry data into a telemetry data field of the first packet. The telemetry data includes a number of flow control credits that the network device allows an adjacent network device to use, representing traffic that the adjacent network device can transmit to the network device without causing congestion. The receiver device prepares a summary of the flow control credits in the telemetry data for each of the network devices, and inserts the summary into the second packet, which the sender device uses to control other packets of information that are sent.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present invention relates generally to the field of data networks, and more specifically, to a method and system for hop-by-hop data flow control credit reporting in a network. BACKGROUND

[0002] Generally, data transmission and traffic management plays a vital role in network communication to ensure smooth data flow and prevent network congestion. Therefore, network communication systems require various flow control mechanisms to regulate the data transmission rate between network devices. For example, data flow can be controlled by informing a sender device whether a receiver device is ready to receive data or the amount of data that can be received by the receiver device, etc.

[0003] Conventionally, certain attempts have been made to control data flow, such as using different data flow control techniques. Data flow control techniques include reporting by each node (e.g., a receiving node) a number of credits that can be used by an adjacent node without any congestion occurring in the corresponding node, reporting by each receiver device to a sender device (i.e., a source) on an end-to-end basis a number of credits that can be utilized by the sender device to transmit data without causing any congestion at the receiver end, etc. However, such attempts fail for many reasons, such as blocking traffic in one switch (or router) causing congestion in another switch (or router), which is undesirable. In certain scenarios, program data flow blocks data flow and causes congestion, which is also undesirable. Therefore, there is a technical problem of how to control data flow so that there is no delay due to congestion when transmitting data while improving network performance.

[0004] Therefore, in light of the above discussion, there is a need to overcome the above-mentioned drawbacks associated with conventional data flow control techniques. SUMMARY

[0005] The present invention provides a method and system for hop-by-hop data flow control credit reporting in a network. The present invention provides a solution to the existing problem of how to control data flow so that there is no delay due to congestion when transmitting data while improving network performance. It is an object of the present invention to provide a solution that at least partially overcomes problems encountered in the prior art and to provide an improved method and improved system for hop-by-hop data flow control credit reporting in a network.

[0006] One or more objects of the present invention are achieved by the solutions provided in the independent claims that follow. Advantageous implementations of the invention are further defined in the dependent claims.

[0007] In one aspect, the present invention provides a method comprising a sending device sending a first data packet of information to a receiving device along a path traversing a plurality of network devices, wherein the first data packet has a telemetry header field and a telemetry data field. Furthermore, the method includes, after the receiving device receives the first data packet through the plurality of network devices, receiving a second data packet of information from the receiving device at the sending device. Additionally, each of the network devices along the path inserts telemetry data into the telemetry data field of the first data packet, and for each network device along the path, the telemetry data includes, for each network device along the path, a number of flow control credits that the network device allows neighboring network devices to send data packets to the network device, representing traffic that the neighboring network devices can send to the network device without causing congestion at the network device. Furthermore, when the receiving device receives the first data packet, the receiving device prepares a summary of the flow control credits in the telemetry data for each of the network devices in the path and inserts the summary into the second data packet of information, the sending device using the summary in the second data packet to control other data packets sending information to the receiving device.

[0008] The method addresses key problems in network communication, including packet congestion and loss. The method disclosed in this invention achieves efficient, accurate, and optimized hop-by-hop data flow control credit reporting. The first data packet includes telemetry data providing granular flow control. The granular flow control provided by the telemetry data allows each network device to adjust its flow control credits based on the current data flow capacity, thereby achieving efficient and optimized data transmission. The flow control credits provided by each network device help prevent congestion at any point on the network path. Furthermore, the sending device can use the flow control credit information to regulate the data transmission rate to avoid stressing any particular network device, thus maintaining smooth data transmission. Additionally, the sending device uses the summary of the flow control credits to determine the volume of data flow that can be used to regulate the flow across the entire network. Therefore, the total data transmission time required to transmit data from the sending device to the receiving device is reduced while effectively utilizing network resources and optimizing data flow.

[0009] In one implementation, the sending device uses the summary in the second data packet to control the rate at which other data packets are transmitted to the receiving device.

[0010] In this implementation, using the summary information in the second data packet to control the transmission rate enables the sending device to eliminate data congestion, thereby maintaining balanced, reliable, efficient, and optimized data transmission between the sending and receiving devices.

[0011] In this implementation, the sending device uses the summary to implement a sending congestion control algorithm, which updates the sending transmission rate proportionally based on the minimum number of credits received in the flow control credit list included in the summary.

[0012] Advantageously, the sending device is used to dynamically adjust the data transmission rate based on the flow control credit to ensure effective use of network resources and maintain optimal network performance, thereby reducing the risk of packet loss or degradation during communication.

[0013] In another implementation, the sending device uses the summary in the second data packet to select a path from the sending device to the receiving device from a plurality of potential paths through a plurality of network devices.

[0014] Advantageously, the sending device is used to select the optimal path from the plurality of potential paths via the plurality of network devices from the sending device to the receiving device to achieve efficient and optimized data transmission without any delay.

[0015] In this implementation, the sending device uses the profile to implement a sending path selection algorithm that considers the number of potential paths using flow control credits in the profile, and in each path, observes the minimum credit count along the path and selects the path with the maximum such minimum credit count.

[0016] Advantageously, the sender path selection algorithm is implemented in a manner that takes into account the number of potential paths using flow control credits in the summary, for selecting the optimal path from among the multiple potential paths available for data transmission.

[0017] In another aspect, the present invention provides a system comprising means adapted to perform all the steps of the above-described method.

[0018] The disclosed system achieves all the advantages and technical effects of the method of the present invention.

[0019] It should be noted that all devices, elements, circuits, units, and apparatuses described in this application can be implemented in software or hardware elements or any combination thereof. All steps performed by the various entities described in this application, and the functions to be performed by the various entities described, are intended for the respective entities to perform the respective steps and functions. Even in the description of the following specific embodiments, if a particular function or step to be performed by an external entity is not reflected in the description of the specific detailed elements of the entity performing that particular step or function, it will be apparent to those skilled in the art that these methods and functions can be implemented in the corresponding software or hardware elements, or in any combination of such elements. It should be understood that the features of the invention are readily combined in various combinations without departing from the scope of the invention as defined by the appended claims.

[0020] Additional aspects, advantages, features and objects of the invention will become apparent from the accompanying drawings and the detailed description of illustrative implementations as explained in conjunction with the following appended claims. Attached Figure Description

[0021] The above-described invention and the following detailed description of illustrative embodiments can be better understood when read in conjunction with the accompanying drawings. Exemplary structures of the invention are shown in the drawings to illustrate the invention. However, the invention is not limited to the specific methods and tools disclosed herein. Furthermore, those skilled in the art will understand that the drawings are not drawn to scale. Where possible, the same elements are represented by the same numbers.

[0022] The following figures will now be used as examples to describe embodiments of the present invention, wherein: Figure 1 This is a flowchart of a method for hop-by-hop flow control credit reporting in a network according to an embodiment of the present invention; Figure 2 This is a block diagram illustrating a system for hop-by-hop flow control credit reporting in a network according to an embodiment of the present invention; Figure 3 This is a diagram illustrating an exemplary implementation of hop-by-hop flow control according to an embodiment of the present invention; Figure 4 This is a diagram illustrating hop-by-hop telemetry data encapsulated in a data packet according to an embodiment of the present invention.

[0023] In the accompanying diagrams, underlined numbers indicate the item in which the underlined number appears or the item adjacent to the underlined number. Ununderlined numbers relate to the item identified by the line that associates the ununderlined number with the item. When a number is ununderlined and has an associated arrow, the ununderlined number is used to identify the general item that the arrow points to. Detailed Implementation

[0024] The following detailed description illustrates embodiments of the present invention and ways in which these embodiments can be implemented. While some modes of implementing the invention have been disclosed, those skilled in the art will recognize that other embodiments for implementing or practicing the invention may also exist.

[0025] Figure 1 This is a flowchart of a method for hop-by-hop flow control credit reporting in a network, according to an embodiment of the present invention. (Reference) Figure 1 The diagram illustrates a flowchart of a method 100 for hop-by-hop flow control credit reporting in a network. Method 100 includes steps 102 through 104.

[0026] In operation, method 100 includes: a sending device sending a first data packet of information to a receiving device along a path through multiple network devices. In one implementation, the sending device is configured to combine telemetry header fields and telemetry fields into one or more control data packets, such as the first data packet of information. In another implementation, the sending device is configured to combine telemetry header fields and telemetry fields into one or more data packets, such as the first data packet of information. In yet another implementation, the sending device is configured to combine telemetry header fields and telemetry fields into a subset of the first data packet of information. Furthermore, the first data packet has telemetry header fields and telemetry data fields. Each of the network devices along the path inserts telemetry data into the telemetry data field of the first data packet. In one implementation, zero or more routers are configured to support hop-by-hop flow control credit reporting, for example, by receiving the first data packet of information having telemetry header fields and further combining the telemetry data fields into the first data packet, the first data packet including the status of the hop-by-hop flow control credits of the neighbor from which the first data packet of information originated. In other words, the sending device sends a first data packet containing information to the receiving device along a path through multiple network devices such as routers, switches, firewalls, and servers. In one implementation, the sending device sends a first data packet to the receiving device containing information with in-band telemetry header fields, such as in-situ operations administration and maintenance (IOAM). Examples of sending and receiving devices may include, but are not limited to, user equipment such as computers, personal digital assistants, portable computing devices, or electronic devices.

[0027] Furthermore, the first data packet of the information has a telemetry header field that includes information about the first data packet, such as metadata, the source and destination addresses of the first data packet, packet length, protocol information, error detection codes, or any other such relevant information required to transmit the first data packet of the information to the receiving device. Additionally, the telemetry header field may be encapsulated in an Internet Protocol version 6 (IPv6) extension header. Similarly, the first data packet of the information also has a telemetry data field that includes the number of flow control credits that neighboring network devices are allowed to use to send data packets to the network device, representing the traffic that neighboring network devices can transmit to the network device without causing congestion at the network device for each of the multiple network devices along the path. Therefore, each of the multiple network devices is used to regulate the flow of data packets based on capacity, congestion level, etc., to ensure smooth and reliable communication between the sending and receiving devices.

[0028] According to one embodiment, the first data packet of information further includes additional telemetry data, including timestamps and queue status. The additional telemetry data (e.g., timestamps and queue status information in the first data packet) provides more detailed information about the first data packet of the corresponding information, effectively enhancing monitoring of network performance and ensuring efficient data transmission between the sending and receiving devices.

[0029] According to one embodiment, the first data packet can be a data packet or a control data packet. In one implementation, the first data packet is a data packet carrying the actual payload or information to be transmitted from the sending device to the receiving device. For example, the data packet may include text, images, audio, video, or any other type of digital content. In another implementation, the first data packet is a control data packet carrying control information or commands related to network communication. Furthermore, such control data packets are also used to manage and control data flow, routing, and monitoring the behavior of each network device among multiple network devices. Additionally, control data packets are used to establish connections in the network, terminate connections, adjust transmission parameters, manage network congestion, or exchange network state updates. However, the type of the first data packet depends on the purpose and requirements of the network or the sending device. For example, the sending device may be used to send data packets to transmit data throughout the network. Optionally, the sending device may be used to send control data packets to the receiving device to transmit control information or commands.

[0030] Furthermore, method 100 includes receiving (step 104) a second data packet of information from the receiving device at the sending device after the receiving device receives a first data packet of information from the sending device via one or more routers. The second data packet of information can be used to ensure that the first data packet of information was successfully received by the receiving device. Therefore, the sending device and the receiving device are used to ensure efficient, reliable, and congestion-free data transmission.

[0031] According to one embodiment, the second data packet of the information may be an acknowledgment packet. The acknowledgment packet is used to provide feedback to the sending device, indicating that the data packet transmission has been completed without any errors or congestion. Therefore, the second data packet (which may be an acknowledgment packet) is used to ensure bidirectional communication between the sending and receiving devices.

[0032] According to another embodiment, the second data packet of the information is a control data packet. Control data packets can be used for various purposes, such as adjusting transmission parameters, initiating specific actions, coordinating network operations, etc. Furthermore, control data packets enable the sending device to receive instructions or commands required for further data transmission over the network. Therefore, control data packets facilitate the coordination and management of multiple network devices throughout the network.

[0033] Furthermore, when the receiving device receives the first data packet, it prepares a summary of flow control credits in the telemetry data for each network device in the path and inserts this summary into the second data packet of information. The sending device uses the summary in the second data packet of information to control other data packets sent to the receiving device. In other words, the sending device sends the first data packet of information to the receiving device, and then the receiving device prepares a summary of flow control credits in the telemetry data for each network device in the path. The receiving device then inserts the summary into the second data packet of information. Additionally, the receiving device sends the second data packet of information to the sending device through multiple network devices. The sending device uses the summary in the second data packet of information to control other data packets sent to the receiving device. Therefore, a reliable connection is established between the sending device and the receiving device.

[0034] According to one embodiment, the summary includes the sum of flow control credits for each network device along the path. By including the sum of flow control credits in the summary, the sending device can determine the capacity and congestion level of multiple network devices along the path. Therefore, the sending device can obtain insights into the capacity and congestion level of each network device from the multiple network devices along the path. Consequently, the sending device can efficiently and effectively control data flow and optimize data transmission, thereby achieving improved network performance and reliable network communication.

[0035] In the first method of controlling data flow, the sending device uses a summary in the second data packet of the information to control the rate at which other data packets of information are transmitted to the receiving device. Using the summary in the second data packet of the information to control the transmission rate allows the sending device to eliminate data congestion, thereby maintaining balanced, reliable, efficient, and optimized data transmission between the sending and receiving devices.

[0036] In a second method of controlling the data flow, the sending device uses the summary in the second data packet of information to select a path from multiple potential paths through multiple network devices to the receiving device. Advantageously, the sending device selects the optimal path from multiple potential paths through multiple network devices to achieve efficient and optimized data transmission without any delay.

[0037] According to this second method, the sending device uses a summary to implement a sending path selection algorithm. This algorithm considers the number of potential paths using flow control credits in the summary, and within each path, observes the minimum credit count along the path and selects the path with the largest such minimum credit count. The sending device can use the path selection algorithm to select a path from the sending device to the receiving device from multiple potential paths through multiple network devices. The path selection algorithm is used to measure the number of potential paths available for data transmission, for example, by using telemetry hop-by-hop flow control credits. Subsequently, the minimum credit count for each measured potential path is calculated, and finally, the path with the highest credit count is selected from multiple potential paths for data transmission. Therefore, the optimal path can be selected from multiple potential paths to transmit data.

[0038] According to the first method, the sending device uses a summary to implement a sending congestion control algorithm, which proportionally updates the sending transmission rate based on the minimum number of credits received in the flow control credit list included in the summary. The sending congestion control algorithm receives the number of credits for each hop and updates the transmission rate for each hop based on the minimum number of credits in the received list of hop-by-hop credits. Therefore, the sending device dynamically adjusts the data transmission rate based on flow control credits to ensure efficient use of network resources and maintain optimal network performance, thereby reducing the risk of packet loss or degradation during communication.

[0039] Method 100 addresses key problems in network communication, including packet congestion and loss. The method 100 disclosed in this invention achieves efficient, accurate, and optimized hop-by-hop data flow control credit reporting. The first data packet of information includes telemetry data providing granular flow control. The granular flow control provided by the telemetry data enables each network device to adjust flow control credits based on the current data flow capacity, thereby achieving efficient and optimized data transmission. The flow control credits provided by each network device help prevent congestion at any point on the network path. Furthermore, the sending device can use the flow control credit information to regulate the rate of data transmission to avoid stressing any particular network device, thus maintaining smooth data transmission. Additionally, the sending device uses the summary of the flow control credits to determine the volume of data flow that can be used to regulate the data flow throughout the network. Therefore, the total data transmission time required to transmit data from the sending device to the receiving device is reduced while effectively utilizing network resources and optimizing data flow.

[0040] Steps 102 to 104 are merely illustrative, and other alternatives may be provided, in which one or more steps are added or provided in a different order, without departing from the scope of the claims herein.

[0041] This invention provides a computer program comprising instructions for performing all steps of method 100. The computer program executes on a computer system. The computer program is implemented as an algorithm and embedded in software stored on a non-transitory computer-readable storage medium having program instructions stored thereon. The program instructions can be executed by one or more processors in the computing system to perform method 100. The non-transitory computer-readable storage device may include, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. The computer-readable storage medium may be implemented in, but is not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), read-only memory (ROM), hard disk drive (HDD), flash memory, secure digital (SD) cards, solid-state drives (SSDs), computer-readable storage media, and / or CPU cache memory.

[0042] Figure 2 This is a block diagram of a system for hop-by-hop flow control credit reporting in a network, according to an embodiment of the present invention; see reference. Figure 2 The system 200 shown includes a sending device 202, multiple network devices 214, and a receiving device 216. The sending device 202 also includes a controller 204, a first data packet 206 including a telemetry header field 208 and a telemetry data field 210, and a communication interface 212. Furthermore, the receiving device 216 includes a controller 218, a second data packet 220 including a summary 222, and a communication interface 224.

[0043] The sending device 202 is used to send a first data packet of information to the receiving device 216 along a path through multiple network devices 214. Examples of the sending device 202 and the receiving device 216 may include, but are not limited to, user equipment such as computers, personal digital assistants, portable computing devices, or electronic devices.

[0044] Multiple network devices 214, such as first network device 214A, second network device 214B, up to nth network device 214N, are used to transmit the first data packet and the second data packet along the path between the sending device 202 and the receiving device 216. Examples of multiple network devices may include, but are not limited to, routers, switches, firewalls, servers, etc.

[0045] Controller 204 is used to send a first data packet 206 of information from sender device 202 to receiver device 216. Similarly, controller 218 is used to send a second data packet 220 of information from receiver device 216 to sender device 202. Examples of implementations of controller 204 and controller 218 may include, but are not limited to, a central data processing device, a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a state machine, and other processors or control circuits.

[0046] Communication interface 212 includes hardware or software for establishing communication between controller 204 and a first data packet 206 of information. Similarly, communication interface 224 includes hardware or software for establishing communication between controller 218 and a second data packet 220. Examples of communication interfaces 212 and 224 may include, but are not limited to, computer ports, network sockets, network interface controllers (NICs), and any other network interface devices.

[0047] In operation, the sending device 202 is used to follow a path through multiple network devices 214 (e.g., first network device 214A, second network device 214B to nth network device 214N) (e.g., first path 316 (see...)). Figure 3The first data packet 206 of the information is sent to the receiving device 216 via a first path 316, a second path 318, or a third path 320. In one implementation, the controller 204 of the sending device 202 is configured to send the first data packet 206 of the information along a path (e.g., the first path 316, the second path 318, or the third path 320) through multiple network devices 214. For example, the sending device 202 is configured to send the first data packet 206 of the information along a path through a first network device 214A. Similarly, the sending device 202 is configured to send the first data packet 206 of the information along a path through a second network device 214B. Furthermore, the first data packet 206 of the information has a telemetry header field that includes information about the first data packet 206 of the information, such as metadata, the source and destination addresses of the first data packet, the packet length, protocol information, error detection codes, or any other such relevant information required to transmit the first data packet 206 of the information to the receiving device 216. Additionally, the telemetry header field can be encapsulated in the Internet Protocol version 6 (IPv6) extension header. Similarly, the first data packet 206 of the information has a telemetry data field, which includes the number of flow control credits that neighboring network devices are allowed to use to send data packets to the network device, representing the traffic that neighboring network devices can transmit to the network device without causing congestion at the network device for each of the multiple network devices along the path. Therefore, each of the multiple network devices (i.e., the first network device 214A, the second network device 214B, up to the nth network device 214N) is used to regulate the flow of data packets based on capacity, congestion level, etc., to ensure smooth and reliable communication between the sending device 202 and the receiving device 216.

[0048] Furthermore, the sending device 202 is used to receive a second data packet 220 of the information from the receiving device 216 after the first data packet 206 of the information has been received by the receiving device 216 through multiple network devices (e.g., the first network device 214A, the second network device 214B, up to the nth network device 214N). The second data packet 220 of the information can be used to ensure that the first data packet 206 of the information is successfully received by the receiving device 216. Therefore, bidirectional communication is established between the sending device 202 and the receiving device 216 to ensure efficient, reliable, and congestion-free data transmission.

[0049] Furthermore, when the receiving device 216 receives the first data packet 206 of the information, the receiving device 216 prepares a summary 222 of the flow control credits in the telemetry data for each network device in the path, and inserts the summary 222 into the second data packet 220 of the information. The sending device 202 uses the summary 222 in the second data packet 220 of the information to control other data packets sent to the receiving device 216. In other words, the sending device 202 sends the first data packet 206 of the information to the receiving device 216, and then the receiving device 216 prepares a summary 222 of the flow control credits in the telemetry data for each network device in the path. Afterwards, the receiving device 216 inserts the summary 222 into the second data packet 220 of the information. Additionally, the receiving device 216 sends the second data packet 220 of the information to the sending device 202 via multiple network devices 214. In one example, the receiving device 216 sends the second data packet 220 of the information to the sending device 202 via a first network device 214A. In another example, receiving device 216 is used to send a second data packet 220 containing information to sending device 202 via second network device 214B. In yet another example, receiving device 216 is used to send the second data packet 220 containing information to sending device 202 via nth network device 214N. Furthermore, sending device 202 uses the summary 222 in the second data packet 220 to control the transmission of other data packets containing information to receiving device 216. Therefore, a reliable connection is established between sending device 202 and receiving device 216.

[0050] System 200 addresses key problems in network communication, including packet congestion and loss. The system 200 disclosed in this invention implements efficient, accurate, and optimized hop-by-hop data flow control credit reporting. The first data packet 206 includes telemetry data providing granular flow control. Granular flow control enables each network device to adjust flow control credits based on the current data flow capacity, thereby achieving efficient and optimized data transmission. The flow control credits provided by each network device help prevent congestion at any point on the network path. Furthermore, the sending device 202 can use the flow control credit information to regulate the rate of data transmission to avoid stressing any particular network device, thus maintaining smooth data transmission. Additionally, the sending device 202 uses the summary of the flow control credits to determine the volume of data flow that can be used to regulate the flow across the entire network. Therefore, the total data transmission time required to transmit data from the sending device 202 to the receiving device is reduced while effectively utilizing network resources and optimizing data flow.

[0051] Figure 3This is a diagram illustrating an example of a method for reporting hop-by-hop flow control between a sending device and a receiving device according to an embodiment of the present invention. Figure 3 Combination Figure 2 The elements are described. (See reference.) Figure 3 This demonstrates a method (i.e., Figure 1 Method 100 is used to report hop-by-hop credits of each switching router on the path using an in-band telemetry protocol.

[0052] A first transmitting node 302, a second transmitting node 304, and a third transmitting node 314 are provided. The third transmitting node 314 corresponds to... Figure 2 The sending device 202 (or the sender) in the middle, which transmits through the first sending node 302 (or Figure 2 The controller 204 of the sending device 202 sends the first data packet 206 of the information. First, the first sending node 302 (or Figure 2 The sending device 202 in the network is used to send a first data packet (e.g., first data packet 206) of information along a path through multiple network devices 214 to the destination node 312 (or... Figure 2 The receiving device 216). Furthermore, the first data packet 206 has a telemetry header field 208 and a telemetry data field, the telemetry data field including hop-by-hop credit information along the path. Additionally, R0 network node 306, R1 network node 308, and R2 network node 310 are provided, each corresponding to a plurality of intermediate network nodes, through which the first sending node 302 (or Figure 2The sending device 202 transmits a first data packet 206 containing information. Each network node, such as network node 306 (R0), network node 308 (R1), and network node 310 (R2), incorporates the amount of available credits into the first data packet 206 directed towards the adjacent network node. For example, each network node, such as network node 306 (R0), network node 308 (R1), and network node 310 (R2), pushes the amount of credits it possesses, which can be used for hop-by-hop flow control in each hop. In one implementation, if the data packet flow is from left to right, then in this case, the right-hand node tracks the amount of credits and the number of data packets or bytes that the corresponding right-hand node can receive from the left-hand node (immediately to the left of the right-hand node). In this implementation, the right-hand node (e.g., network node 308 (R1)) plays a crucial role in the hop-by-hop flow control process, such as monitoring and maintaining the amount of available credits (for efficient flow regulation) possessed by the corresponding network node and the number of data packets or bytes that the corresponding right-hand node can receive from the corresponding left-hand network node (e.g., network node 306 (R0)). By effectively managing these credit metrics and receiving capabilities, the right-hand node ensures smooth data transmission within the network, thereby effectively preventing congestion and optimizing the entire data transmission process. For example, R1 network node 308, located to the right of R0 network node 306, tracks the credit count and the number of data packets or bytes that R1 network node 308 can receive from R0 network node 306. Furthermore, destination node 312 receives information about each network node on the path through the first data packet of received information (including the credit count currently available for hop-by-hop flow control). Afterwards, destination node 312 (or...) Figure 2 The receiving device 218) sends the information back to the first sending node 302.

[0053] The first sending node 302 is used to send data from the destination node 312 (or...) Figure 2The receiving device 216 receives information about hop-by-hop credits and uses this information to increase or decrease the overall network transmission rate to prevent congestion or select data transmission paths. In one implementation, a sender control algorithm is used to control the transmission rate. In one example, the first sending node 302 is used to increase and decrease the transmission rate of the stream and prevent congestion among network nodes R0 306, R1 308, and R2 310. In another example, the first sending node 302 is used to increase the transmission rate of the stream to prevent congestion among network nodes R0 306, R1 308, and R2 310. In yet another example, the first sending node 302 is used to decrease the transmission rate of the stream to prevent congestion among network nodes R0 306, R1 308, and R2 310. In yet another example, the first sending node 302 is used to prevent congestion among network nodes R0 306, R1 308, and R2 310. In another implementation, a sender path selection algorithm is used to select the transmission path. For example, the first sending node 302 is used to select a path with fewer credits. Additionally, the destination node 312 (or...) Figure 2 The receiving device 216 in the middle is used to receive the first data packet 206 of information and further send the second data packet 220 of information to the first sending node 302.

[0054] Conversely, in conventional methods and systems, network nodes notify sending and destination nodes, requesting the sending node to stop sending to the destination node and vice versa, for example, through hop-by-hop flow control. However, the sending node is blocked because the network node cannot send or receive any further packets. Furthermore, while the blocking of the second sending node 304 does not cause any congestion, it negatively impacts overall network performance. In other words, hop-by-hop flow control can block traffic in switches and / or routers, leading to further congestion in other switches and / or routers. Therefore, conventional methods and systems suffer from the problem of congestion slowly propagating back to the sending node. Additionally, in some cases, head-of-line congestion may occur, where the flow control process also blocks flows that are not the cause of congestion, which is undesirable. Therefore, the method of the present invention addresses these problems by using hop-by-hop telemetry data and prevents the blocking of the second sending node 304. Consequently, overall network performance is optimized, and packet loss is eliminated.

[0055] Figure 4 This is a diagram illustrating exemplary hop-by-hop telemetry data encapsulated in a first data packet of information, according to an embodiment of the present invention. Figure 4 Combination Figure 2 and Figure 3 The elements are described. The first data packet encapsulated within the information (i.e., Figure 2The hop-by-hop telemetry data in the first data packet (206).

[0056] In an exemplary scenario, the first data packet of information (e.g., Figure 2 The first data packet (206) includes a telemetry header field and a telemetry data field encapsulated within the first data packet of information. The first data packet of information includes a second-layer header 402, a third-layer header 404, a telemetry header 406, hop-by-hop telemetry data 418, a fourth-layer header 414, and a payload 416. The hop-by-hop telemetry data 418 also includes R0 telemetry data 408, R1 telemetry data 410, and R2 telemetry data 412. Furthermore, the telemetry data field includes credit reporting information that can be used to send data packets or bytes that the right-hand node wishes to receive from the left-hand node. For example, in the example above (such as in...), Figure 3 As described in detail in [the document], credit reporting information is used by R1 network node 308, located to the right of R0 network node 306, to track the amount of credit and the number of packets or bytes that R1 network node 308 can receive from R0 network node 306. In one example, the credit reporting information corresponds to the number of packets or bytes that the receiving device expects to receive from the sending device. Furthermore, telemetry header 406 and hop-by-hop telemetry data 418 are encapsulated in a Layer 3 header 404. For example, if Layer 3 header 404 is IPv6, then in this case, hop-by-hop telemetry data 418 can be encapsulated in an IPv6 extended header. Therefore, the first packet containing information including hop-by-hop telemetry data is encapsulated in multiple layers, such as Layer 2 header 402, Layer 3 header 404, and Layer 4 header 414, enabling the system (i.e., [the system]) to [achieve this goal]. Figure 2 The system (200) monitors and analyzes network performance, thereby enhancing the overall troubleshooting capabilities of the network and promoting efficient and reliable data transmission.

[0057] Modifications to the embodiments of the invention described above may be made without departing from the scope of the invention as defined by the appended claims. Terms such as “comprising,” “including,” “incorporated,” “is / is,” etc., are used in description, and the statements claiming the invention are intended to be interpreted in a non-exclusive manner, allowing for the presence of items, components, or elements not explicitly described. Singular references should also be interpreted to refer to the plural. The word “exemplary” as used herein means “as an example, instance, or illustration.” Any embodiment described as “exemplary” is not necessarily to be construed as more preferred or advantageous than other embodiments, and / or excluding combinations of features from other embodiments. The word “optionally” as used herein means “provided in some embodiments and not in others.” It should be understood that certain features of the invention described in the context of a single embodiment for clarity may also be provided in combination in a single embodiment. Conversely, various features of the invention described in the context of a single embodiment for brevity may also be provided individually or in any suitable combination or as embodiments of any other described aspect of the invention.

Claims

1. A method (100) characterized by, The method comprises the steps of: a sender device (202) sending a first data packet (206) of information along a path through a plurality of network devices (214) to a receiver device (216), wherein the first data packet (206) has a telemetry header field (208) and a telemetry data field (210); after the receiver device (216) receives the first data packet (206) through the plurality of network devices (214), receiving at the sender device (202) a second data packet (220) of information from the receiver device (216); wherein each of the network devices along the path inserts telemetry data into the telemetry data field (210) of the first data packet (206), wherein for each of the network devices along the path, the telemetry data comprises a number of flow control credits used by an adjacent network device that allows sending of data packets to the network device, indicating the amount of traffic that the adjacent network device can send to the network device without causing congestion at the network device; wherein when the receiver device (216) receives the first data packet (206), the receiver device (216) prepares a summary (222) of the flow control credits in the telemetry data for each of the network devices in the path and inserts the summary (222) into the second data packet (220) of information; wherein the sender device (202) uses the summary (222) in the second data packet (220) to control other data packets of information sent to the receiver device (216).

2. The method (100) according to claim 1, characterized in that The sender device (202) uses the summary (222) in the second data packet (220) to control the rate of other data packets of information sent to the receiver device (216).

3. The method (100) according to claim 1, characterized in that The sender device (202) uses the summary (222) in the second data packet (220) to select a path from the sender device (202) to the receiver device (216) from a plurality of potential paths through a plurality of network devices (214).

4. The method (100) according to claim 1, characterized in that The second data packet (220) is an acknowledgement data packet.

5. The method (100) according to claim 1, characterized in that The second data packet (220) is a control data packet.

6. The method (100) according to claim 2, characterized in that The sender device (202) uses the summary (222) to implement a sender congestion control algorithm that updates the sender's transmission rate proportionally to the minimum credit number received in the list of flow control credits included in the summary (222).

7. The method (100) according to claim 3, characterized in that The sender device (202) uses the summary (222) to implement a sender path selection algorithm that considers the number of potential paths using flow control credits in the summary (222) and, in each path, observes a minimum credit number along the path and selects the path with the largest such minimum credit number.

8. The method (100) according to claim 1, characterized in that The first data packet (206) can be a data packet or a control data packet.

9. The method (100) according to claim 1, characterized in that The first data packet (206) also includes additional telemetry data having a timestamp and a queue status.

10. The method (100) according to claim 1, characterized in that The summary (222) includes a sum of the flow control credits for each of the network devices on the path.

11. A system (200), characterized by The system comprises means adapted to perform all the steps of the method (100) according to any of the preceding claims.

12. A computer program, characterized in that, The computer program comprises instructions for performing all the steps of the method according to any of the preceding method claims on a computer system. The computer program comprises instructions for performing all the steps of the method according to any of the preceding method claims on a computer system.