An apparatus and method for transmitting information
By setting up extension devices between network devices to directly or indirectly forward flow control information, the buffer threshold dependency problem in RoCE technology is solved, achieving more efficient flow control and longer transmission distance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-12-22
- Publication Date
- 2026-04-17
AI Technical Summary
Existing RoCE technology requires buffer threshold settings in network devices to ensure no packet loss and no under-throughput, which increases design complexity and limits transmission distance.
By setting up extension devices between network devices, flow control information can be forwarded directly or indirectly, avoiding reliance on internal buffer thresholds and using all buffer space in the header, thus achieving transparent transmission of flow control information.
It improves flow control efficiency, extends the maximum transmission distance between network devices, and reduces design complexity and ease of use.
Smart Images

Figure CN116346720B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and more specifically, to an apparatus and method for transmitting information. Background Technology
[0002] Remote direct memory access (RDMA) technology can solve the latency problem of server-side data processing during network transmission. RDMA over converged Ethernet (RoCE) is a network protocol that allows remote direct data access over Ethernet. Compared to the traditional TCP / IP protocol, it has lower latency and higher bandwidth, while significantly reducing CPU utilization. Therefore, this technology is widely used in data center networks.
[0003] RoCE technology relies on link-layer flow control mechanisms to ensure low latency and high throughput performance. However, after receiving flow control information, network devices terminate the transmission of this information and rely on buffers within the network device to notify upstream devices to respond. Users also need to set buffer thresholds, dividing the buffer into a portion to ensure sufficient throughput and a header space to ensure no packet loss, increasing the complexity of network device usage and design. Therefore, how to reduce the complexity of network device usage and design while maintaining sufficient throughput and ensuring no packet loss, and how to make more buffers (also called caches) available in the header space to extend transmission distance, has become a pressing issue. Summary of the Invention
[0004] This application provides an apparatus and method for transmitting information, which can improve flow control efficiency.
[0005] In a first aspect, an apparatus for transmitting information is provided, the apparatus comprising: a first port for receiving first flow control information, wherein the first flow control information is used to indicate the start or pause of data transmission; the first port is further configured to respond according to the first flow control information; and a second port for transmitting second flow control information, the second flow control information being obtained based on the first flow control information.
[0006] When responding to flow control information, the device of this application does not simply terminate the flow control information, but continues to forward the flow control information directly or indirectly, so that upstream devices can obtain the flow control information more quickly, thereby improving flow control efficiency.
[0007] On the other hand, the apparatus of this application forwards flow control information upstream without relying on the threshold set by the internal buffer, thus allowing the entire internal buffer to be used for the header space. Furthermore, since the maximum supported transmission distance between network devices is linearly related to the size of the header space, the apparatus provided by this application effectively extends the maximum supported transmission distance between network devices. Therefore, in the following text, the apparatus provided by this application may also be referred to as an "extended device".
[0008] Additionally, in the following text, "first port" may also be referred to as "local port" or "L port," for example, for connection to a network device; "second port" may also be referred to as "extension port" or "E port," for example, for connection to an extension port of another extension device. The specific names of the ports are merely exemplary and should not be construed as limiting the embodiments of this application.
[0009] On the other hand, those skilled in the art will clearly understand that in the embodiments of this application, "upstream" and "downstream" are merely relative concepts. In other words, "upstream" or "downstream" is relative to the transmission direction of the data packet: when data packet a is transmitted from device A to device B, for data a, device A can be called the upstream device and device B can be called the downstream device; in addition, there may also be data packet b transmitted from device B to device A, then for data b, device B can be called the upstream device and device A can be called the downstream device.
[0010] In conjunction with the first aspect, some implementations of the first aspect also include a buffer, which is used entirely for the header space.
[0011] Since the size of the header space is linearly related to the transmission distance between network devices, the device of this application can increase the size of the header space by using the entire buffer as header space, thereby extending the transmission distance between network devices.
[0012] In conjunction with the first aspect, in some implementations of the first aspect, the second flow control information is the transparently transmitted first flow control information.
[0013] The device described in this application directly transmits flow control information from downstream devices to upstream devices, eliminating the need for information format or content conversion at each port, thereby reducing the implementation complexity of both downstream and upstream devices. Furthermore, the transparent transmission method is faster and has lower latency, enabling quicker forwarding of flow control information upstream and improving flow control efficiency.
[0014] In conjunction with the first aspect, in some implementations of the first aspect, the first port is specifically used to forward the first flow control information to the second port through a dedicated queue or dedicated hardware channel.
[0015] The local port of the extended device in this application can directly transmit flow control information to the extended port by using a dedicated queue and a dedicated hardware channel. This method eliminates the need to set a buffer threshold for forwarding flow control information. Therefore, downstream devices can directly transmit flow control information to upstream devices, enabling upstream devices to respond to flow control information more quickly.
[0016] In conjunction with the first aspect, in some implementations of the first aspect, the first port is also used to terminate the first flow control information and send the third flow control information to the second port, the third flow control information including control information extracted from the first flow control information.
[0017] The local port of the downstream device of this application can extract key information from the flow control information, enabling the flow control information to be transmitted to the extended port while occupying less transmission resources.
[0018] In conjunction with the first aspect, in some implementations of the first aspect, the aforementioned control information includes vectors and timers.
[0019] In conjunction with the first aspect, in some implementations of the first aspect, the aforementioned second flow control information is obtained based on the third flow control information. In other words, the extended port can convert the control information extracted from the first flow control information into second flow control information suitable for sending to another extended device.
[0020] In conjunction with the first aspect, in some implementations of the first aspect, the first port and the second port are media access control (MAC) modules.
[0021] The device of this application implements the aforementioned local port and extended port through a MAC module, thereby enabling the termination and transmission of flow control information.
[0022] In conjunction with the first aspect, in some implementations of the first aspect, the first flow control information is link layer flow control information or Ethernet pause flow control information.
[0023] In a second aspect, an apparatus for transmitting information is provided, the apparatus comprising: a third port for receiving second flow control information, wherein the second flow control information is used to indicate the start or pause of data transmission; the third port is further configured to respond according to the second flow control information; and a fourth port for transmitting fourth flow control information, wherein the fourth flow control information is used to indicate the start or pause of data transmission.
[0024] In conjunction with the second aspect, in some implementations of the second aspect, the second flow control information is the transparently transmitted first flow control information.
[0025] In conjunction with the second aspect, in some implementations of the second aspect, the third port is also used to terminate the first flow control information.
[0026] In conjunction with the second aspect, in some implementations of the second aspect, the aforementioned second flow control information is obtained based on the third flow control information. In other words, the extended port can convert the control information extracted from the first flow control information into second flow control information suitable for sending to another extended device.
[0027] In conjunction with the second aspect, in some implementations of the second aspect, the aforementioned control information includes vectors and timers.
[0028] In conjunction with the second aspect, in some implementations of the second aspect, the third and fourth ports are media access control modules.
[0029] In conjunction with the second aspect, in some implementations of the second aspect, the second flow control information is link-layer flow control information or Ethernet pause flow control information.
[0030] In conjunction with the second aspect, some implementations of the second aspect also include a buffer, which is used entirely for the header space.
[0031] Thirdly, a system for transmitting information is provided, comprising a first communication device according to the first aspect and a second communication device according to the second aspect. Specifically, the first communication device includes a first port and a second port, the first port being connected to a first network device; the second communication device includes a third port and a fourth port, the third port being connected to the second port and the fourth port being connected to the second network device; the first port is used to receive first flow control information from the first network device, wherein the first flow control information is used to indicate the start or pause of data transmission; the first port is also used to respond to the first flow control information and send second flow control information to the second port, the second flow control information being obtained based on the first flow control information; the second port is used to send the second flow control information to the third port; the third port is used to respond to the second flow control information and terminate the second flow control information.
[0032] This information transmission system enables communication devices to respond to flow control information without simply terminating the information, but to continue sending it, allowing upstream devices to receive the information more quickly and thus improving the device's communication capabilities.
[0033] In conjunction with the third aspect, in some implementations of the third aspect, the second communication device includes a buffer that is entirely used for the head space.
[0034] The system that transmits this information forwards flow control information upstream without relying on the threshold set by the internal buffer, and can use the entire internal buffer for the header space.
[0035] Fourthly, a method for transmitting information is provided, comprising: receiving first flow control information through a first port, wherein the first flow control information is used to indicate the start or pause of data transmission; responding to the first flow control information through the first port; and sending second flow control information through a second port, wherein the second flow control information is obtained based on the first flow control information.
[0036] In conjunction with the fourth aspect, in some implementations of the fourth aspect, data is cached through a buffer, so that the entire buffer is used for the header space.
[0037] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the second flow control information is the transparently transmitted first flow control information.
[0038] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the first port forwards the first flow control information to the second port through a dedicated queue or dedicated hardware channel.
[0039] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the first flow control information is terminated through the first port, and the third flow control information is sent to the second port. The third flow control information includes control information extracted from the first flow control information.
[0040] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the control information includes vectors and timers.
[0041] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the first flow control information is link layer flow control information or Ethernet pause flow control information.
[0042] Fifthly, a method for transmitting information is provided, the method comprising: receiving second flow control information through a third port, wherein the second flow control information is used to indicate the start or pause of data transmission; responding to the second flow control information through the third port; and sending fourth flow control information through a fourth port, wherein the fourth flow control information is used to indicate the start or pause of data transmission.
[0043] In conjunction with the fifth aspect, some implementations of the fifth aspect also include a buffer, which is used entirely for the header space.
[0044] In conjunction with the fifth aspect, in some implementations of the fifth aspect, the second flow control information is the transparently transmitted first flow control information.
[0045] In conjunction with the fifth aspect, in some implementations of the fifth aspect, the second flow control information is terminated through the third port.
[0046] In conjunction with the fifth aspect, in some implementations of the fifth aspect, the aforementioned second flow control information is obtained based on the third flow control information. In other words, the extended port can convert the control information extracted from the first flow control information into second flow control information suitable for sending to another extended device.
[0047] In conjunction with the fifth aspect, in some implementations of the fifth aspect, control information includes vectors and timers.
[0048] In conjunction with the fifth aspect, in some implementations of the fifth aspect, the second flow control information is link-layer flow control information or Ethernet pause flow control information.
[0049] In a sixth aspect, an apparatus for transmitting information is provided, including a processor and a memory, wherein the memory is used to store program instructions and the processor is used to invoke the program instructions to execute the fourth aspect or any possible implementation thereof.
[0050] In a seventh aspect, embodiments of this application provide a computer program product comprising: computer program code, which, when run on a computer, causes the computer to perform the processes described in the fourth or fifth aspect.
[0051] Eighthly, a computer-readable storage medium is provided, which stores computer instructions that, when executed on a computer, perform the processes described in the fourth or fifth aspect.
[0052] A ninth aspect provides a chip system comprising: a processor for retrieving and running a computer program from a memory, such that a device equipped with the chip system performs various processes of the methods described in the fourth or fifth aspect.
[0053] Based on the above technical solutions, the apparatus and method for transmitting information in the embodiments of this application, by setting up an extension device between network devices, can reduce the difficulty of using and the complexity of designing network devices without packet loss or insufficient throughput, and make more buffers available as header space, thereby extending the transmission distance. Attached Figure Description
[0054] Figure 1 It is a schematic diagram of a network system architecture.
[0055] Figure 2 yes Figure 1 The diagram shows the data traffic changes in the buffer of the first network device.
[0056] Figure 3 yes Figure 1This diagram illustrates another data traffic change in the buffer of the first network device.
[0057] Figure 4 This is a schematic architecture diagram of a network system according to an embodiment of this application.
[0058] Figure 5 This is a schematic diagram of information transmission in a first extended device according to an embodiment of this application.
[0059] Figure 6 This is another schematic diagram of the transmission of information in the first extended device according to an embodiment of this application.
[0060] Figure 7 This is a schematic flowchart of a method for transmitting information according to an embodiment of this application.
[0061] Figure 8 This is a schematic flowchart of a flow control method according to an embodiment of this application.
[0062] Figure 9 This is a schematic flowchart of another flow control method according to an embodiment of this application.
[0063] Figure 10 This is a schematic architecture diagram of another network system according to an embodiment of this application.
[0064] Figure 11 This is a schematic diagram of the structure of a communication device according to an embodiment of this application. Detailed Implementation
[0065] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this application. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this application.
[0066] Figure 1 A schematic architecture diagram of a network system 100 is shown. (For example...) Figure 1 As shown, the network system 100 includes a first network device 110 and a second network device 140. The link-layer flow control mechanism used by the network system 100 can be priority-based flow control (PFC). This is a flow control mechanism based on port queue priority, which requires setting a threshold for the buffers of the network devices, so that a portion of the buffer is used as headroom to buffer data packets, thereby ensuring that data transmission is not lost and does not suffer from insufficient throughput.
[0067] Taking the case where the second network device 140 sends a data packet to the first network device 110 as an example, the first network device 110 is a downstream device and the second network device 140 is an upstream device. The first network device 110 can receive the data packet and transmit it to other downstream devices. In addition, the first network device 110 can receive flow control information sent by other downstream devices, respond to the flow control information (start or pause data transmission), and terminate the flow control information.
[0068] Suppose flow control information requires a pause in data transmission. While the first network device 110 responds by pausing data packet transmission to downstream devices, the second network device 140 continues to send data packets to the first network device 110. In this case, the first network device 110 buffers the received data packets in its buffer. When the number of buffered data packets in the first network device 110 reaches a set threshold, the first network device 110 generates a backpressure signal and sends it to the second network device 140. Upon receiving the backpressure signal from the first network device 110, the second network device 140 responds by pausing data packet transmission.
[0069] The following is combined with Figure 2 and Figure 3 To describe in more detail Figure 1 The flow control process of a network system. Figure 2 yes Figure 1 The diagram 200 illustrates the changes in data traffic within the buffer of the first network device. (See diagram 200.) Figure 2 As shown, Figure 2 Normalize the total capacity of the buffer and set a threshold k. Figure 2 The threshold k divides the buffer into two parts: one half is used to ensure that data packet transmission does not suffer from insufficient throughput, and the other half is used as header space to ensure that data packet transmission does not suffer from packet loss. Specifically, the part from 0 to k is used to ensure that data packet transmission does not suffer from insufficient throughput, and the part from k to 1 is used to ensure that data packet transmission does not suffer from packet loss.
[0070] like Figure 2As shown, before time t1, the upstream second network device 140 sends data packets to the downstream first network device 110, and the first network device 110 forwards the data packets to other downstream devices. When the first network device 110 receives priority-based flow control information (PFC information) from the downstream at time t1, for example, if the PFC information indicates to pause data transmission, the first network device 110 responds to the PFC information by stopping the transmission of data packets to the downstream and terminating the PFC information. Afterwards, data packets transmitted from the second network device 140 to the first network device 110 will accumulate in the buffer of the first network device 110. When the data packets accumulate to a set threshold k at time t2, the first network device 110 will send a backpressure signal "off" to the second network device, instructing the second network device to stop transmitting data packets. Since there is a certain transmission distance between the first network device 110 and the second network device 140, the transmission of the backpressure signal "off" also requires a certain amount of time. Assume that the second network device 140 stops transmitting data packets after receiving the backpressure signal "off" at time t3. In other words, from time t2 when the first network device 110 stops sending data packets to time t3 when the second network device 140 stops sending data packets, the first network device 110 will still receive data packets sent by the second network device 140 and cache them in the header space to ensure that these data packets are not lost.
[0071] Suppose that when the first network device 110 receives a new flow control message from the downstream device at time t3, instructing it to start sending data, the data packets buffered in the header space of the first network device 110 will be sent to the downstream device first. At time t4, all data packets in the header space are emptied, and the number of data packets in the buffer drops to the set threshold k. Then, at time t4, the first network device 110 sends a start signal "on" to the second network device 140, instructing the second network device to start sending data packets. Similarly, this start signal "on" also requires a certain transmission time. Suppose that when the second network device 140 receives the start signal "on" at time t5 and then starts sending data packets, from time t4 when the first network device 110 starts sending data packets to time t5 when the second network device 140 starts sending data packets, the first network device 110 will not receive the data packets sent by the second network device 140. Instead, it will send the data packets stored in the buffer during the previous pause to ensure that the data throughput is not insufficient.
[0072] from Figure 2From the solution, it can be seen that after the network device receives the flow control message and responds, it directly terminates the flow control message, and relies on the threshold set in the buffer to achieve flow control for more upstream devices, which reduces the efficiency of flow control. On the other hand, it is necessary to divide the buffer into two parts for ensuring non-underflow of data packet transmission and ensuring non-loss of data packet transmission by setting the threshold, which increases the complexity of buffer design and use. Moreover, since the transmission distance between network devices is linearly related to the header space size, that is, the longer the time difference between t2 and t3 (representing the longer the transmission distance between network devices), the larger the header space required. From this perspective, when the buffer space remains unchanged, in order to extend the transmission distance between network devices, a lower threshold k can be set so that more buffer is used as the header space.
[0073] Figure 3 is Figure 1 Another schematic diagram 300 of data traffic change in the buffer of the first network device shown in Figure 3 is the situation where more buffer is set as the header space based on Figure 2 . As shown in Figure 3 shown, Figure 3 The total capacity size in the buffer is normalized, and a lower threshold 0 < k < 0.5 is set. The buffer is divided into two parts by the threshold k: a small part is used to ensure non-underflow of data packet transmission, and a large part is used as the header space to ensure non-loss of data packet transmission. Among them, the small part from 0 to k is used to ensure non-underflow of data packet transmission, and the large part from k to 1 is used to ensure non-loss of data packet transmission. Figure 3 The data transmission process and the response process according to the flow control information at times t1 to t4 in the first network device 110 and the second network device 120 in Figure 2 are the same as those above, and for the sake of brevity, they will not be elaborated here. But after the first network device 110 starts to send the start signal on to the second network device 140 at time t4. Since Figure 3 the part in the buffer shown is less for ensuring non-underflow of data, the data packets stored in the buffer of the first network device 110 for ensuring non-underflow of data are emptied at time t5, while the second network device 140 can receive the start signal on and start sending data packets at time t6. As a result, the first network device 110 has no data packets to send from time t5 to t6, that is, the situation of underflow occurs. Therefore, although reducing the threshold k in the buffer increases the header space and thus increases the transmission distance, it will cause underflow of the network device.
[0074] From Figure 3As can be seen from the proposed solution, after receiving and responding to a flow control message, the network device directly terminates the message and relies on a threshold set in the buffer to control the flow of upstream devices, which reduces the efficiency of flow control. On the other hand, although lowering the threshold k increases the header space and thus the transmission distance between network devices, it introduces the problem of insufficient throughput for network devices and also increases the complexity of buffer design and use.
[0075] To address the aforementioned issues, this application proposes an extension device that, when responding to flow control information, does not simply terminate the flow control information but continues to forward it directly or indirectly, enabling upstream devices to receive the flow control information more quickly and thus improving flow control efficiency. Furthermore, the device in this application does not rely on the threshold set by the internal buffer when forwarding flow control information upstream, thus allowing the entire internal buffer to be used for header space. Therefore, the extension device provided in this application effectively extends the maximum supported transmission distance between network devices.
[0076] Figure 4 A schematic architecture diagram of a network system 400 according to an embodiment of this application is shown. Figure 4 As shown, the network system 400 may include a first network device 410, a first extension device 420, a second extension device 430, and a second network device 440.
[0077] The first expansion device 420 includes: a first expansion port (E port) 421, i.e., the first port; and a first local port (L port) 422, i.e., the second port. The second expansion device 430 includes: a second expansion port (E port) 431, i.e., the third port; and a second local port (L port) 432, i.e., the fourth port. It should be understood that the aforementioned E port 421, L port 422, E port 431, and L port 432 can be hardware ports, such as parallel ports, serial ports, etc. The first network device 410 and the second network device 440 can be network interface cards (NICs) or chips of a host or server with network transmission capabilities, or switches supporting flow control mechanisms such as PFC. Furthermore, although... Figure 4 The application only includes two network devices and two expansion devices, but it should be understood that the application can also include two or more network devices interconnected with each other or two or more network devices interconnected through multiple corresponding expansion devices.
[0078] like Figure 4 As shown, during normal transmission, the data packets are transmitted from upstream of the second network device 440 to the second network device 440, then sequentially through the second extension device 430 and the first extension device 420 to the first network device 410, and then sent by the first network device 410 to the downstream device.
[0079] The first network device 410 can be... Figure 1 The network device 110 or 140 shown is implemented to receive first flow control information from downstream devices and respond to the first flow control information. Furthermore, the first network device 410 can communicate with the first extension device 420. Additionally, for example... Figure 2 As shown, half of the buffer in the first network device 410 is used to ensure that the data packet transmission does not suffer from insufficient throughput, and the other half is used as header space to ensure that the data packet transmission does not lose packets.
[0080] The first extension device 420 can receive the first flow control information transmitted from the first network device 410 and respond according to the first flow control information. The first extension device 420 can also send second flow control information to the second extension device 430. The second flow control information is obtained based on the first flow control information. In other words, the function of the second flow control information is the same as that of the first flow control information. That is, when the first flow control information is used to indicate the suspension of data packet transmission, the second flow control information is used to indicate the suspension of data packet transmission; or, when the first flow control information is used to indicate the start of data packet transmission, the second flow control information is used to indicate the start of data packet transmission.
[0081] The second extension device 430 can respond to and terminate the second flow control information based on the received second flow control information. Furthermore, the second extension device 430 can also send fourth flow control information to the second network device 440. Specifically, the buffer 433 of the second extension device 430 is entirely used as header space, which is equivalent to the set threshold being 0 at this time. Thus, after the second extension device 430 suspends sending data packets to the first extension device 420 in response to the second flow control information, the buffer 431 begins to buffer new data packets sent from the second network device 440. Because the buffer 433 is entirely used as header space (i.e., the shaded area), a backpressure signal (i.e., the aforementioned fourth flow control information) is immediately triggered, causing the second network device 440 to also suspend sending data packets.
[0082] On the other hand, the first extension device 420 can also use the entire buffer as the header space (i.e., the shaded area). Because the first extension device 420 does not simply terminate the first flow control information, but instead transmits or extracts key control information from the first flow control information and passes it to the second extension device 430, it can quickly notify the second extension device 430 to perform the corresponding flow control response without waiting for the data packets stored in the buffer to reach a threshold before performing flow control. Therefore, it is unnecessary to set conditions such as... Figure 2 Or the threshold shown in 3. In this case, since the size of the head space is proportional to the maximum transmission distance (i.e., the distance between the first extension device 420 and the second extension device 430), a longer transmission distance can be achieved with a larger head space.
[0083] More specifically, the first network device 410 can receive first flow control information, which can be link-layer flow control information, and this link-layer flow control information can be pause transmission information. The pause transmission information is used to instruct the transmission queue to pause the transmission of data packets. After receiving the link-layer flow control information, the first network device 410 can respond according to the link-layer flow control information and notify its transmission queue to stop transmitting data packets. When data packets transmitted from the first extension device 420 accumulate in the first network device 410 due to the first network device 410 pausing transmission, and the accumulated data packets exceed a set threshold, the first network device 410 sends the link-layer flow control information to the L port 422 of the first extension device 420. After receiving the link-layer flow control information, the L port 422 of the first expansion device 420 responds normally to the link-layer flow control information sent by the first network device 410, notifying the sending queue of L port 422 to suspend the transmission of data packets. Simultaneously, L port 422 of the first expansion device 420 sends the link-layer flow control information to E port 421 of the first expansion device 420. E port 421 then transmits the link-layer flow control information to E port 431 of the second expansion device 430. Upon receiving the link-layer flow control information, E port 431 of the second expansion device 430 responds to the link-layer flow control information, notifying the sending queue of E port 432 to suspend the transmission of data packets. After E port 431 of the second expansion device 430 stops transmitting data packets, data packets from the second network device 440 begin to accumulate in the buffer of the second expansion device 430. The second expansion device 430 can... Figure 5 Similar to the first expansion device 420, the second expansion device 430 uses all its buffers as header space. Since the second expansion device 430 uses all its buffers as header space (equivalent to setting the threshold to 0 at this time), when buffer backlog occurs in the second expansion device 430, its L port 432 will immediately send a backpressure signal "off" to the second network device 440. Upon receiving the backpressure signal "off", the second network device 440 will notify its transmission queue to stop sending data packets.
[0084] In another scenario, the link-layer flow control information can also be a start-of-transmission message. In this case, the first network device 410 can receive the first flow control information, which can be link-layer flow control information, and this link-layer flow control information can be a start-of-transmission message. The start-of-transmission message is used to instruct the transmission queue to begin transmitting data packets. After receiving the link-layer flow control information, the first network device 410 can respond according to the link-layer flow control information and notify its transmission queue to begin transmitting data packets. The first network device 410 first sends the data packets cached in the header space of its buffer during the pause to the downstream network device or terminal. When all the data packets cached in the header space of the first network device 410's buffer are emptied, and the number of data packets cached in the buffer of the first network device 410 drops to a set threshold (i.e., the threshold triggered by the first network device 410 for the backlog of data packets during the pause), the first network device 410 sends the link-layer flow control information to the L port 422 of the first extension device 420. After receiving the link-layer flow control information, the L port 422 of the first expansion device 420 responds normally to the link-layer flow control information sent by the first network device 410, notifying the sending queue of L port 422 to start sending data packets. Simultaneously, L port 422 of the first expansion device 420 sends the link-layer flow control information to E port 421 of the first expansion device 420. E port 421 then transmits the link-layer flow control information to E port 432 of the second expansion device 430. Upon receiving the link-layer flow control information, E port 431 of the second expansion device 430 responds to the link-layer flow control information, notifying the sending queue of E port 431 to start sending data packets. After the E port 431 of the second expansion device 430 starts sending data packets, since the buffer in the second expansion device 430 is used entirely as header space (equivalent to the set threshold being 0 at this time), the data packets buffered in the header space of the second expansion device 430 will be sent quickly. Then, the L port 432 of the second expansion device 430 will immediately send a start signal "on" to the second network device 440. After receiving the start signal "on", the second network device 440 will notify its transmission queue to start sending data packets.
[0085] Since the maximum transmission distance supported by a network device is linearly related to the size of the header space—that is, the larger the header space, the longer the maximum transmission distance supported by the network device—the extension device in this embodiment uses all of its buffers as header space, increasing the header space size and thus extending the maximum transmission distance supported by the network device.
[0086] It should be understood that the threshold set for the buffer in the first extension device 420 and the second extension device 430 can also be a smaller value, so that most of the buffer is used as header space, thereby extending the transmission distance between the first network device 410 and the second network device 440.
[0087] It should be understood that the network system can be a network system using RDMA technology, such as a network system using RoCE technology. This application's embodiments are only illustrated using network systems, network devices, and extension devices using RoCE technology as examples, but this application is not limited to these; any system capable of implementing flow control can utilize the technical solutions of this application.
[0088] Figure 4 A network system 400 applying an embodiment of this application is shown. This network system 400 is, for example, a network system using RoCE technology. The following will be combined with... Figure 5 and Figure 6 Taking the first extended device as an example, the information transmission method of the extended device in the embodiments of this application is described in detail.
[0089] Figure 5 A schematic diagram 500 is shown in the first extended device according to an embodiment of this application, illustrating the transmission of information.
[0090] like Figure 5 As shown, the first extension device 420 is connected to the first network device 410 via wired transmission (such as fiber optic, copper wire, etc.). The first extension device 420 can receive first flow control information from the first network device 410. This embodiment does not limit the specific format of the first flow control information. For example, the flow control information can be link-layer flow control information, including priority-based flow control information (PFC information), or Ethernet pause traffic flow control information (pause frame). This embodiment only uses PFC information as an example for explanation. The L port 422 of the first extension device 420 can receive PFC information from the first network device 410, respond to the PFC information, and the response can be to start or pause data transmission. The original first flow control information is forwarded to the E port 421 through an internal forwarding path, for example, by forwarding the first flow control information through a dedicated queue. The following explanation uses forwarding PFC information through a dedicated queue as an example. L port 422 can send PFC information to buffer 423 of the first extension device 420 through a dedicated queue ingress. Buffer 423 then transmits the PFC information to E port 421 of the first extension device 420 through a dedicated queue egress. After receiving the PFC information, E port can transmit it to E port 431 of the second extension device 430 at the other end via wired or wireless means.
[0091] It should be understood that the embodiments in this application are illustrated using a dedicated queue ingress / egress as an example, but this application is not limited thereto.
[0092] In addition, data packet transmission in the first expansion device 420 can also be carried out through a dedicated queue. After receiving a data packet, the E port can first transmit the data packet from the E port 421 to the buffer 423 through the ingress queue, and then the buffer 423 can transmit the data packet to the L port 422 through the egress queue.
[0093] Using the aforementioned dedicated queue for transmission enables rapid information transfer and avoids the need for algorithms to correct the transmitted information.
[0094] Figure 6 Another schematic diagram 600 shows the transmission of information in a first extended device according to an embodiment of this application.
[0095] like Figure 6 As shown, the first extension device 420 and the first network device 410 can be connected via wired transmission (such as fiber optic, copper wire, etc.). The first extension device 420 can receive first flow control information from the first network device 410. This first flow control information can be link-layer flow control information, including priority-based flow control information (PFC information), or Ethernet pause flow control information (pause frame). This embodiment only uses PFC information as an example for illustration. The L port 422 of the first extension device 420 can receive PFC information from the first network device 410 and respond to the PFC information. This response can be to start or pause data transmission. The L port 422 can also extract key information from the PFC information, such as vector and timer information, and can transmit the first flow control information directly from the first extension device 420 to the E port 421 of the first extension device 420 through a dedicated hardware channel. For example, the L port 422 of the first extension device 420 can forward the extracted information directly to the E port 421 of the first extension device 420 through a control plane channel (CPU channel, etc.), without going through the buffer 423. After receiving the extracted information, the E port 421 of the first extension device 420 can generate new PFC information based on the extracted information, and transmit the new PFC information to the E port 431 of the second extension device 430 at the other end via wired or wireless means.
[0096] In addition, the above Figure 7 The dedicated hardware channel can also be used to transmit the original first flow control information from L port 422 to E port 421 without L port 422 extracting key information from the first flow control information, and without going through buffer 423.
[0097] The above Figure 5and Figure 6 The information transmission method in the first extended device is described below, and will be combined with Figures 7 to 9 This application describes in detail the method for transmitting information according to embodiments of the present application.
[0098] Figure 7 A schematic flowchart of a method for transmitting information according to an embodiment of this application is shown. The following is in conjunction with... Figure 4 The system, description Figure 7 The method of transmitting information is shown.
[0099] 701, receives and responds to the first flow control information through the L-segment port 422 of the first extension device 420. The first flow control information can be used to indicate whether to start or pause data transmission.
[0100] 702, the second flow control information is sent through the E segment port 421 of the first expansion device 420, the second flow control information being obtained based on the first flow control information.
[0101] 703, receives and responds to the second flow control information through the E port 431 of the second expansion device 430. The second flow control information is used to indicate whether to start or pause data transmission.
[0102] 704. A fourth flow control message is sent through the L port 422 of the second extension device 430. The fourth flow control message is used to indicate whether to start or pause data transmission.
[0103] Therefore, the method for transmitting information in this application embodiment can respond to flow control information without simply terminating the flow control information, but instead continue to forward the flow control information, so that upstream devices can obtain the flow control information more quickly, thereby improving communication capabilities.
[0104] The following will combine Figure 8 and Figure 9 For passing Figure 7 The specific implementation steps for using information transmission methods to achieve flow control effects are described in detail.
[0105] Figure 8 A schematic flowchart of a flow control method according to an embodiment of this application is shown. The following will be combined with... Figure 5 and Figure 6 right Figure 8 The method is described.
[0106] It should be understood that the first flow control information in the embodiments of this application can be link-layer flow control information, including priority-based flow control information (PFC information), or Ethernet pause traffic flow control information (pause frame). The embodiments of this application are only illustrated using PFC information as an example, but this application is not limited thereto. Using PFC information for flow control can effectively avoid packet loss problems.
[0107] like Figure 8 As shown, the method includes the following procedures.
[0108] 801, the first network device 410 receives and responds to the first flow control information.
[0109] Specifically, in step 801, the first network device 410 can monitor whether its downstream network devices or terminal devices are sending PFC information. When PFC information is sent, the first network device 410 can receive the PFC information, respond to the PFC information, and send the PFC information to the first extension device 420. For example, the PFC information can be PFC OFF information. When the first network device 410 receives the PFC OFF information, it can respond according to the PFC OFF information and notify the first network device 410's transmission queue to stop sending data packets.
[0110] It should be understood that the PFC information in the embodiments of this application can also be PFC start information (PFC ON), and the embodiments of this application do not limit this.
[0111] 802, the first network device 410 sends the first flow control information to the L port 422 of the first extension device 420.
[0112] In step 802, when the transmission queue of the first network device 410 stops transmitting data packets, the data packets transmitted from the first extension device 420 accumulate in the first network device 410 due to the first network device 410 pausing transmission. After the accumulated data packets exceed the set threshold, the first network device 410 sends PFC pause information to the L port 422 of the first extension device 420.
[0113] 803, the L port 422 of the first extended device 420 receives and responds to the first flow control information.
[0114] In step 803, after receiving the PFC pause information, the L port 422 of the first extension device 420 can normally respond to the link layer flow control information sent by the first network device 410, and notify the L port 422's transmission queue to pause the transmission of data packets.
[0115] 804, the L port 422 of the first expansion device 420 transmits the first flow control information to the E port 421 of the first expansion device 420.
[0116] In step 804, the L port 422 of the first extension device 420 responds to the PFC pause information sent by the first network device 410. In some embodiments, the L port 422 of the first extension device 420 can be accessed as described above. Figure 6 A dedicated queue (e.g., an ingress / egress queue) forwards PFC pause information through a buffer to port 421 of the first extension device 420.
[0117] In other embodiments, the L port 422 of the first expansion device 420 can be accessed as described above. Figure 7 A dedicated hardware channel (e.g., a CPU channel) forwards the PFC pause information through a buffer to the E port 421 of the first expansion device 420.
[0118] 805, the E port 421 of the first expansion device 420 sends the second flow control information to the E port 431 of the second expansion device 430.
[0119] In step 805, after receiving the PFC pause information sent by the L port of the first expansion device, the E port 421 can directly transmit the PFC pause information to the E port 132 of the second expansion device 430. Here, E ports 421 and 431 contain a media access control (MAC) module, and the transmission method of PFC information between the L port 422 and the E port 431 can be transparent transmission. Furthermore, PFC information can be transmitted wirelessly or via wired transmission, and wired transmission can also be via optical fiber, copper wire, etc., which is not limited in this embodiment.
[0120] 806, the E port 431 of the second extension device 430 receives and responds to the second flow control information.
[0121] In step 806, after receiving the PFC pause information sent by the E port 421 of the first expansion device 420, the E port 431 of the second expansion device 430 can respond according to the PFC pause information, notify the sending queue to stop sending data packets, and terminate the PFC pause information.
[0122] 807, the L port 432 of the second expansion device 430 generates the fourth flow control information.
[0123] In step 807, to ensure that the second network device 440 can quickly respond and pause data packet transmission after the second extension device 430 pauses data transmission, thus preventing excessive data packets from accumulating or being lost in the second extension device 430, when the E port 132 of the second extension device 430 stops transmitting data packets, data packets sent from the second network device 440 to the second extension device 430 begin to accumulate in the buffer of the second extension device 430. Since the buffer in the second extension device 430 is entirely used as header space (equivalent to a threshold value of 0 at this time), when the buffer in the second extension device 430 accumulates, the L port of the second extension device 430 will immediately generate a pause transmission signal (backpressure signal off).
[0124] 808, the L port 432 of the second extension device 430 sends the fourth flow control information to the second network device 440.
[0125] In step 808, after generating the back pressure signal off, the L port of the second extension device 430 will immediately send the back pressure signal off to the second network device 440.
[0126] 809, the second network device 440 receives and responds to the fourth flow control information.
[0127] In step 809, after receiving the back pressure signal off, the second network device 440 will notify its transmission queue to stop sending data packets and complete the response process between network devices to flow control information.
[0128] In this embodiment of the application, the second flow control information sent from the E port 421 of the first expansion device 420 to the E port 431 of the second expansion device 430 is the same as the first flow control information, that is, at this time, the E port 421 directly forwards the first flow control information to the E port 431.
[0129] In some embodiments, the E port 421 of the first extension device 420 may respond according to the first flow control information. After receiving the first flow control information sent by the first network device 410, the L port 422 of the first extension device 420 may not respond to the first flow control information, but directly transmit the first flow control information to the E port 421 of the first extension device 420. The E port 421 may respond according to the first flow control information, pausing or starting to send data packets, and transmitting the second flow control information to the E port 431 of the second extension device 430.
[0130] This solution can use all buffers in the extended device as header space, increasing the size of the header space, thereby extending the maximum transmission distance of the network device without causing packet loss or low throughput.
[0131] This solution also allows flow control information to be directly transmitted from downstream devices to upstream devices, eliminating the need for information format or content conversion at each port, thus reducing the implementation complexity of both downstream and upstream devices. Furthermore, the transmission method is faster and has lower latency, enabling quicker forwarding of flow control information upstream and improving flow control efficiency.
[0132] Figure 9 A schematic flowchart illustrating another flow control method according to an embodiment of this application is shown. The following will be combined with... Figure 5 and Figure 6 right Figure 9 The method is described as follows. For example... Figure 9 As shown, the method includes the following procedures.
[0133] 901, the first network device 410 receives the first flow control information.
[0134] In step 901, the first network device 410 can monitor whether downstream network devices or terminal devices are sending PFC information. When PFC information is sent, the first network device can receive the PFC information, respond to the PFC information, and send the PFC information to the first extension device 420. For example, the PFC information can be a PFC pause information (PFCOFF). When the first network device 410 receives the PFC pause information, it can respond according to the PFC pause information and notify the first network device 410's transmission queue to stop sending data packets.
[0135] It should be understood that the PFC information in the embodiments of this application can also be PFC start information (PFC ON), and the embodiments of this application do not limit this.
[0136] 902, the first network device 410 sends the first flow control information to the L port 422 of the first extension device 420.
[0137] In step 902, when the sending queue of the first network device 410 stops sending data packets, the data packets transmitted from the first extension device 420 accumulate in the first network device 410 due to the first network device 410 pausing transmission. After the accumulated data packets exceed the set threshold, the first network device 410 sends PFC pause information to the L port 422 of the first extension device 420.
[0138] 903, the L port 422 of the first extended device 420 receives and responds to the first flow control information.
[0139] In step 903, after receiving the PFC pause information, the L port 422 of the first extension device 420 can respond normally to the PFC pause information sent by the first network device 410, and notify the sending queue of the L port 422 to pause sending data packets.
[0140] 904, the L port 422 of the first extended device 420 generates third flow control information based on the first flow control information.
[0141] In step 904, when the L port 422 of the first extension device 420 responds to the PFC pause information sent by the first network device 410, the L port 422 of the first extension device 420 can extract key information (i.e., control information) from the PFC pause information, such as vector and timer information, and then, as described above... Figure 4 A dedicated hardware channel (e.g., a CPU channel) forwards the extracted information to the E port 421 of the first extended device 420 via a buffer. The timer information can be in multiple standard frame formats, containing multiple bits. For example, the timer information can be timer0, timer1, ..., timer7, where each timer can be a combination of all 0s or all 1s. For instance, when timer0 is all 0s, it indicates the start of information transmission; when timer0 is all 1s, it indicates the pause of information transmission.
[0142] The vector information can be multi-bit information used to indicate that one or more timer messages in multiple standard frame formats are valid. For example, the vector information could be 0090101, indicating that timer2, timer5, and time7 are valid timer messages, and all of timer2, timer5, and time7 are 1, meaning that the extracted information indicates a pause in transmission. This allows the E-port 421 of the first extended device 420 in subsequent steps to generate new PFC pause information based on the valid timer information indicated by the aforementioned vector information.
[0143] 905, the L port 422 of the first expansion device 420 sends the third flow control information to the E port 421 of the first expansion device 420.
[0144] In step 905, the L port 422 of the first extended device 420 can send the extracted information to the E port 421. The transmission between the L port 422 and the E port 421 of the first network device 110 can be via a dedicated queue or a dedicated hardware channel. Furthermore, when transmitting extracted information via a dedicated queue, if the format of the extracted information is not supported by the E port 421, such as the standard PFC format, the first network device 410 can convert the extracted information into a format supported by the E port and send it to the E port 421.
[0145] 906, the E port 421 of the first extension device 420 receives the third flow control information and generates the second flow control information based on the third flow control information.
[0146] In step 906, after receiving the extracted information sent by the L port 422 of the first expansion device 420, the E port 421 of the first expansion device 420 can generate new PFC pause information based on the extracted information.
[0147] 907, the E port 421 of the first expansion device 420 sends the second flow control information to the E port 431 of the second expansion device 430.
[0148] In step 907, the E port 421 of the first expansion device 420 can transmit the new PFC pause information to the E port 132 of the second expansion device 430. Both E ports 421 and 431 include MAC modules. Furthermore, PFC information can be transmitted wirelessly or via wired transmission, and wired transmission can also be achieved through optical fiber, copper wire, etc., which is not limited in this embodiment.
[0149] 908, the E port 431 of the second extension device 430 receives and responds to the second flow control information.
[0150] In step 908, after receiving the new PFC pause information sent by the E port 421 of the first expansion device 420, the E port 431 of the second expansion device 430 can respond according to the new PFC pause information, notify the sending queue to stop sending data packets, and terminate the new PFC pause information.
[0151] 909, the L port 432 of the second expansion device 430 generates the fourth flow control information.
[0152] In step 909, to ensure that the second network device 440 can quickly respond and pause data packet transmission after the second extension device 430 pauses data transmission, thus preventing excessive data packets from accumulating or being lost in the second extension device 430, when the E port 431 of the second extension device 430 stops transmitting data packets, data packets sent from the second network device 440 to the second extension device 430 begin to accumulate in the buffer of the second extension device 430. Since the buffer in the second network device 440 is entirely used as header space (equivalent to a threshold value of 0 at this time), when the buffer in the second extension device 430 experiences accumulation, the L port of the second extension device 430 will immediately generate a pause transmission signal (backpressure signal off).
[0153] 910, the L port 432 of the second extension device 430 sends the fourth flow control information to the second network device 440.
[0154] In step 910, after generating the back pressure signal off, the L port 432 of the second extension device 430 will immediately send the back pressure signal off to the second network device 440.
[0155] 911, the second network device 440 receives and responds to the fourth flow control information.
[0156] In step 911, after receiving the back pressure signal off, the second network device 440 will notify its transmission queue to stop sending data packets and complete the response process between network devices for flow control information.
[0157] The above embodiments describe the process by which a first network device receives traffic flow control information and sends it to a second extended device. The process by which a second network device receives traffic flow control information and sends it to a first extended device will be described below.
[0158] In this embodiment, the L port 422 of the first expansion device 420 can extract some information from the first flow control information and generate third flow control information based on the extracted information. Furthermore, the E port 421 of the first expansion device 420 can generate second flow control information based on the third flow control information and transmit the second flow control information to the E port of the second expansion device.
[0159] In some embodiments, the E port 421 of the first extension device 420 may respond according to the third flow control information. After receiving the first flow control information sent by the first network device 410, the E port 421 of the first extension device 420 may not respond to the first flow control information, but instead extract a portion of the information from the first flow control information and use the extracted information as the third flow control information. Subsequently, the third flow control information is sent to the E port 421 of the first extension device 420. The E port 421 can respond according to the third flow control information, pausing or starting to send data packets, and generating second flow control information according to the third flow control information, and transmitting the second flow control information to the E port 431 of the second extension device 430.
[0160] In other embodiments, the first network device 410 may respond based on the first flow control information. Upon receiving the first flow control information, the first network device 410 may respond by pausing or starting data packet transmission, extracting partial information from the first flow control information and generating third flow control information, which is then sent to the L port 422 of the first extension device 420. Upon receiving the third flow control information from the first network device 410, the L port 121 of the first extension device 420 may respond to the third flow control information and send it to the E port 421 of the first extension device 420. The E port 421 may generate second flow control information based on the third flow control information and transmit the second flow control information to the E port 431 of the second extension device 430.
[0161] In other embodiments, the first network device 410 may respond based on the first flow control information. Upon receiving the first flow control information, the first network device 410 may respond by pausing or starting data packet transmission, extracting partial information from the first flow control information and generating third flow control information, which is then sent to the L port 422 of the first extension device 420. Upon receiving the first flow control information from the first network device 410, the L port 121 of the first extension device 420 may not respond to the third flow control information but may directly send it to the E port 421 of the first extension device 420. The E port 421 may respond based on the third flow control information, pausing or starting data packet transmission, generating second flow control information based on the third flow control information, and transmitting the third flow control information to the E port 431 of the second extension device 430.
[0162] It should be understood that in the embodiments of this application, the L port 422 and the E port 421 of the first network device 410, the first extension device 420, and the first extension device 420 can all extract the received first flow control information and generate third flow control information. Furthermore, the L port 422 and the E port 421 of the first network device 410, the first extension device 420, and the first extension device 420 can also respond to the first flow control information and the third flow control information; for the sake of brevity, this application will not repeat the description.
[0163] This solution can also use all buffer space as header space, thereby extending the maximum transmission distance of network devices without causing packet loss or low throughput. Furthermore, this solution can extract key information from flow control information, enabling flow control information to be transmitted to extended ports while consuming fewer transmission resources.
[0164] Figure 10 A schematic architecture diagram of another network system 1000 according to an embodiment of this application is shown, such as Figure 10 As shown, Figure 10 Includes the above Figure 4 For the sake of simplicity, all the same components will not be described again here. However... Figure 10 The first flow control information is transmitted from the upstream device of the second network device 440 to the second network device 440. This will be explained below.
[0165] like Figure 10 As shown, the second network device 440 can receive and respond to the first flow control information, and communicate with the second extension device 430. The second extension device 430 can receive the first flow control information transmitted from the second network device 440 and respond according to the first flow control information. Furthermore, the first extension device 420 can also send second flow control information to the second extension device 430. The second extension device 430 can respond to and terminate the second flow control information based on the received second flow control information. Additionally, the first extension device 420 can also send fourth flow control information.
[0166] Specifically, the second network device 440 can receive first flow control information, which can be link-layer flow control information, and this link-layer flow control information can be a pause transmission information. The pause transmission information is used to instruct the receive queue to pause receiving data packets. After receiving the link-layer flow control information, the second network device 440 can respond according to the link-layer flow control information and notify its receive queue to stop receiving data packets from its upstream network devices or terminals. After the second network device 440 stops receiving data packets, it first sends the data packets in the header space of its buffer to the second extension device 430. When all the data packets in the header space of the second network device 440's buffer have been sent, and the number of data packets in the buffer of the second network device 440 has dropped to a set threshold, the second network device 440 sends the link-layer flow control information to the L port 432 of the second extension device 430. After receiving the link-layer flow control information, the L port 432 of the second expansion device 430 responds normally to the link-layer flow control information sent by the second network device 440, notifying the receive queue of L port 432 to suspend receiving data packets. Simultaneously, L port 432 of the second expansion device 430 sends the link-layer flow control information to E port 431 of the second expansion device 430, and E port 421 transmits the link-layer flow control information to E port 421 of the second expansion device 430. Upon receiving the link-layer flow control information, E port 421 of the first expansion device 420 responds to the link-layer flow control information, notifying the receive queue of E port 421 to suspend receiving data packets. After the E port 421 of the first expansion device 420 stops receiving data packets, since the buffer in the first expansion device 420 is used entirely as header space (i.e., equivalent to the set threshold being 0 at this time), the number of data packets buffered in the header space of the buffer of the first expansion device 420 will drop to the set threshold, and the L port 422 of the first expansion device 420 will immediately send a backpressure signal off to the first network device 410. After receiving the backpressure signal off, the first network device 410 will notify its receive queue to stop receiving data packets.
[0167] In another scenario, the link-layer flow control information can also be a start-of-transmission message. In this case, the second network device 440 can receive the first flow control information, which can be link-layer flow control information, and this link-layer flow control information can be a start-of-transmission message. The start-of-transmission message is used to instruct the receive queue to begin receiving data packets. After receiving the link-layer flow control information, the second network device 440 can respond according to the link-layer flow control information and notify itself to begin receiving data packets from its upstream network device or terminal. When data packets transmitted from the upstream network device or terminal of the second network device 440 accumulate in the second network device 440 due to the second network device 440 pausing transmission, and the accumulated data packets exceed a set threshold, the second network device 440 sends the link-layer flow control information to the L port 432 of the second extension device 430. After receiving the link-layer flow control information, the L port 432 of the second expansion device 430 responds normally to the link-layer flow control information sent by the second network device 440, notifying the receive queue of L port 432 to start receiving data packets. Simultaneously, L port 432 of the second expansion device 430 sends the link-layer flow control information to E port 431 of the second expansion device 430. E port 431 then transmits the link-layer flow control information to E port 421 of the first expansion device 420. Upon receiving the link-layer flow control information, E port 421 of the first expansion device 420 responds to the link-layer flow control information, notifying the receive queue of E port 122 to start receiving data packets. After the E port 421 of the first expansion device 420 starts receiving data packets, since the buffer in the first expansion device 420 is used entirely as header space (equivalent to the set threshold being 0 at this time), when the buffer in the first expansion device 420 accumulates, the L port 432 of the second expansion device 430 will immediately send a start signal on to the first network device 410. After receiving the start signal on, the first network device 410 will notify its receive queue to start receiving data packets.
[0168] It should be understood that the above Figure 10 Another network system 1000 in the system can perform, for example Figures 5 to 9 It is a method for transmitting information and controlling flow, but its transmission direction for flow control information is reversed.
[0169] The above describes an apparatus and method for transmitting information according to embodiments of this application. The apparatus and method for transmitting information according to embodiments of this application can, when responding to flow control information, not simply terminate the flow control information, but continue to forward the flow control information, enabling upstream devices to receive the flow control information more quickly, thereby improving communication capabilities. Furthermore, by setting up extension devices between existing network devices and using all buffers in the extension devices as header space, the original header space size is effectively increased. Since the size of the header space is related to the maximum supported transmission distance between network devices, the apparatus and method for transmitting information according to embodiments of this application can extend the data transmission distance between network devices while ensuring lossless data transmission characteristics and sufficient throughput.
[0170] The following will combine Figure 11 A computer device for transmitting information according to an embodiment of this application is described.
[0171] This application also provides a computer storage medium storing program instructions, which, when executed, may include, for example... Figures 6 to 10 Some or all of the steps of the data transmission method in the corresponding embodiments.
[0172] Figure 11 This is a schematic diagram of the structure of a communication device according to an embodiment of this application. Figure 11 The computer device 1100 shown includes a processor 1101, a memory 1102, and a communication interface 1103, which communicate via a bus 1104. A receiver 1105 receives pending requests from the host, and a transmitter 1106 sends pending requests stored in the memory 1102 to another computing device in the computing cluster.
[0173] The methods disclosed in the embodiments of this application can be applied to or implemented by processor 1101. Processor 1101 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor. During implementation, each step of the above method can be completed by the integrated logic circuits in the hardware of processor 1101 or by instructions in software form. The methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software module may reside in memory 1102, which may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be random access memory (RAM), which serves as an external cache.By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). Processor 1101 reads instructions from memory 1102 and performs the steps of the above method in conjunction with its hardware.
[0174] The memory 1102 may store instructions for performing the methods executed by the computer device in the above embodiments. The processor 1101 may execute the instructions stored in the memory 1102 in conjunction with other hardware (such as the receiver 1105 and the transmitter 1106) to complete the steps of the computer device in the above embodiments. The specific working process and beneficial effects can be described in the above embodiments.
[0175] The memory can be volatile or non-volatile, or a combination of both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0176] In addition to the data bus, bus 1104 may also include a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus 1104 in the diagram.
[0177] This application also provides a chip system including logic circuitry for coupling with an input / output interface to transmit data through the input / output interface in order to perform the various steps executed by the computer device in the above embodiments.
[0178] According to the method provided in the embodiments of this application, this application also provides a computer program product, which includes: computer program code, which, when run on a computer, causes the computer to perform the steps in the above embodiments.
[0179] According to the method provided in the embodiments of this application, this application also provides a computer-readable medium storing program code, which, when run on a computer, causes the computer to perform the steps in the above embodiments.
[0180] In implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions or program code in software form. The steps of the method disclosed in the embodiments of this application can be directly implemented by a hardware processor, or by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method. To avoid repetition, detailed descriptions are not provided here.
[0181] It should be noted that the processor in the embodiments of this application can be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method embodiments can be completed by the integrated logic circuitry in the processor's hardware or by instructions or program code in software form. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory; the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0182] Embodiments of this application provide apparatus and methods for transmitting information. It will be apparent to those skilled in the art that embodiments of this application can be applied to various types of computer devices.
[0183] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0184] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0185] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0186] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0187] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0188] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0189] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A device for transmitting information, characterized in that, include: A first port is used to receive first flow control information, wherein the first flow control information is used to indicate the start or pause of data transmission, and the first port is connected to a network device. The first port is also used to respond according to the first flow control information; The second port is used to send second flow control information, which is obtained based on the first flow control information. The buffer is entirely used for head space.
2. The apparatus according to claim 1, characterized in that, The second flow control information is the first flow control information transmitted transparently.
3. The apparatus according to claim 2, characterized in that, The first port is specifically used to forward the first flow control information to the second port through a dedicated queue or dedicated hardware channel.
4. The apparatus according to claim 1, characterized in that, The first port is also used to terminate the first flow control information and send third flow control information to the second port, the third flow control information including control information extracted from the first flow control information.
5. The apparatus according to claim 4, characterized in that, The control information includes vectors and timers.
6. The apparatus according to claim 4, characterized in that, The second flow control information is obtained based on the third flow control information.
7. The apparatus according to any one of claims 1 to 6, characterized in that, The first port and the second port are media access control modules.
8. The apparatus according to any one of claims 1 to 6, characterized in that, The first flow control information is link layer flow control information or Ethernet pause flow control information.
9. A system for transmitting information, characterized in that, Includes a first communication device and a second communication device. The first communication device includes a first port and a second port, wherein the first port is connected to a first network device. The second communication device includes a third port and a fourth port, the third port being connected to the second port, and the fourth port being connected to a second network device. The first port is configured to receive first flow control information from the first network device, wherein the first flow control information is used to indicate whether to start or pause data transmission; The first port is also used to respond according to the first flow control information and send second flow control information to the second port, wherein the second flow control information is obtained based on the first flow control information; The second port is used to send second flow control information to the third port; The third port is used to respond to the second flow control information and terminate the second flow control information. The second communication device further includes a buffer, which is entirely used for head space.
10. A method for transmitting information, characterized in that, include: The first flow control information is received through a first port, wherein the first flow control information is used to indicate the start or pause of data transmission, and the first port is connected to a network device. The first flow control information is responded to through the first port; The second flow control information is sent through the second port, and the second flow control information is obtained based on the first flow control information. By using a buffer to cache data, the entire buffer is used for header space.
11. The method according to claim 10, characterized in that, The second flow control information is the first flow control information transmitted transparently.
12. The method according to claim 11, characterized in that, The first port forwards the first flow control information to the second port through a dedicated queue or dedicated hardware channel.
13. The method according to claim 10, characterized in that, The first flow control information is terminated through the first port, and the third flow control information is sent to the second port. The third flow control information includes control information extracted from the first flow control information.
14. The method according to claim 13, characterized in that, The control information includes vectors and timers.
15. The method according to any one of claims 10 to 14, characterized in that, The first flow control information is link layer flow control information or Ethernet pause flow control information.
16. A device for transmitting information, characterized in that, It includes a processor and a memory, the memory being used to store program instructions, and the processor being used to invoke the program instructions to perform the method of transmitting information as described in any one of claims 10 to 15.
17. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed on a computer, implement the method as described in any one of claims 10 to 15.
18. A chip system, characterized in that, Includes: a processor for retrieving and running a computer program from memory, causing a device having the chip system mounted thereon to perform the method of any one of claims 10 to 15.
Citation Information
Patent Citations
Flow control method and device
CN109802894A