Disclosure of Invention
The application provides a data transmission method and network equipment, which can prevent data messages from being sent out of order from the network equipment at a receiving end and improve the performance of a data center network.
In a first aspect, the present application provides a method of transmitting data, the method comprising: the first network device sends request information to the second network device, wherein the request information is used for requesting to send data; the first network device receives authorization information sent by the second network device, wherein the authorization information comprises a first serial number; the first network equipment determines a first credit limit according to the first serial number, wherein the first credit limit is the data quantity of data which can be sent by the first network equipment in a packet distribution load sharing mode; and the first network equipment sends data to the second network equipment according to the first credit limit.
In the above technical solution, the first network device determines, according to the authorization information of the second network device, the data amount that can be sent in a packet distribution load sharing manner, and then sends the data to the second network device according to the data amount, so that the sent data amount can be prevented from exceeding the data amount that can be cached and ordered by the second network device, and thus, the data message can be prevented from being sent out of order from the second network device, and the performance of the data center network is improved.
In some possible implementations, the first network device determining the first reputation quota according to the first serial number includes: when the first serial number is greater than the maximum first serial number received by the first network device, the first network device determines the first credit limit according to the difference between the first serial number and the maximum first serial number
In consideration of the situation that the authorization information is likely to be lost in the transmission process, in the above technical scheme, the first network device determines the first credit limit according to the recorded maximum first serial number and the difference value of the first serial number received this time, so that even if the authorization information is lost, the first credit limit determined by the first network device according to the subsequently received authorization information also comprises the credit limit indicated in the lost authorization information, thereby improving the reliability of network data transmission of the data center.
In some possible implementations, the first network device sending data to the second network device according to the first reputation quota, including: and in a preset time period, when the first credit limit is smaller than or equal to a first threshold value, the first network equipment is switched from a packet distribution load sharing mode to a stream-by-stream load sharing mode, and data is sent to the second network equipment by adopting the stream-by-stream load sharing mode.
In the above technical solution, under the condition that the first credit limit is smaller in a period of time, the first network device uses a stream-by-stream load sharing mode to send data, so that the occurrence of disorder of data messages can be avoided.
In some possible implementations, the authorization information further includes a second sequence number; the method further comprises the steps of: the first network device determines a second credit limit according to the second serial number, wherein the second credit limit is the data quantity which can be sent to the port of the second network device by the first network device; the first network device sending data to the second network device according to the first credit limit, including: the first network device sends data to the second network device according to the first credit limit and the second credit limit.
In the technical scheme, the first network equipment determines the mode and the size of the data to be transmitted according to the first credit limit and the second credit limit, so that the data message transmission is ensured to be neither congested nor disordered, and the performance of the data center network is improved.
In some possible implementations, the first network device determining a second reputation credit based on the second serial number includes: and when the second serial number is larger than the maximum second serial number which is received by the first network equipment, the first network equipment determines the second credit limit according to the difference value between the second serial number and the maximum second serial number.
In consideration of the situation that the authorization information is likely to be lost in the transmission process, in the above technical scheme, the first network device determines the second credit limit according to the recorded maximum second serial number and the difference value of the received second serial number, so that even if the authorization information is lost, the second credit limit determined by the first network device according to the subsequently received authorization information also comprises the credit limit indicated in the lost authorization information, thereby improving the reliability of network data transmission of the data center.
In some possible implementations, the first network device sending data to the second network device according to the first reputation quota and the second reputation quota, including: the first network device sends data to the second network device according to the smaller one of the first credit limit and the second credit limit; or when the first credit limit is smaller than the second credit limit and the difference between the first credit limit and the second credit limit is larger than a second threshold, the first network device switches from the package distribution load sharing mode to the stream-by-stream load sharing mode and sends data to the second network device according to the stream-by-stream load sharing mode.
In the above technical scheme, the first network device determines the mode and the size of the data to be transmitted according to the first credit limit and the second credit limit at the same time, so that the data message can be more effectively transmitted, and the performance of the data center network is improved.
In some possible implementations, after the first network device receives the authorization information sent by the second network device, the method further includes: when the first serial number is larger than the maximum first serial number, the first network equipment updates the maximum first serial number to the first serial number; when the second sequence number is greater than the maximum second sequence number, the first network device updates the maximum second sequence number to the second sequence number.
In the above technical solution, the first network device updates the maximum first serial number and the maximum second serial number in real time, so that the first credit limit is not too much and not leaked.
In some possible implementations, the request information further includes an enable field for indicating whether the first network device enables a packet distribution function and/or a request-grant flow control function.
In the above technical solution, the first network device notifies the second network device of the load sharing manner adopted by the second network device through the request information, so that the second network device can correctly receive the data.
In some possible implementations, the request information is further used to indicate a request amount, the request amount being an amount of data the first network device requests to send.
In the above technical solution, the first network device sends the data volume requested to be sent to the second network device, so that the second network device can more reasonably allocate resources.
In some possible implementations, the request information includes the request quantity before the accumulated radix of the first network device is synchronized with the accumulated radix of the second network device; after the first network device receives the authorization information, the method further comprises: the first network device determines the accumulation base according to the first sequence number or the second sequence number, and the accumulation base is used for determining a third sequence number, wherein the third sequence number is the sum of the accumulation base, the data volume requested to be sent by the first network device and the current request volume. By the technical scheme, the reliability of data transmission can be improved.
In some possible implementations, after the accumulation base of the first network device is synchronized with the accumulation base of the second network device, the request information includes a third sequence number that is a sum of the accumulation base, an amount of data the first network device has requested to send, and a current request amount.
In the above technical solution, after the accumulation base of the first network device and the accumulation base of the second network device are synchronized, the sum of the accumulation base, the data volume requested to be sent by the first network device and the current request volume is used to indicate the data volume requested to be sent by the first network device, so that even if the request information is lost, the request volume determined by the second network device according to the subsequently received request information also includes the data volume indicated in the lost request information, thereby improving the reliability of network data transmission of the data center.
In some possible implementations, the message carrying the request information and the message carrying the authorization information employ standard virtual extensible local area network generic protocol extension encapsulation or standard generic network virtualization encapsulation.
In the technical scheme, the message is packaged in a standard packaging mode, so that the difficulty in interaction among equipment of different manufacturers can be avoided.
In a second aspect, the present application provides a method of transmitting data, the method comprising: the second network equipment receives request information sent by the first network equipment, wherein the request information is used for requesting to send data; the second network equipment determines a first credit limit which is the data quantity of data which can be sent by the first network equipment in a packet distribution load sharing mode; the second network device determines a first serial number according to the first credit limit, wherein the first serial number is used for indicating the sum of the data volume which the second network device has authorized to be sent by the first network device and the data volume which the first network device is authorized to be sent at the time under the packet distribution load sharing mode; the second network device sends authorization information to the first network device, the authorization information including the first sequence number.
In the above technical solution, the second network device determines the data amount that the first network device can send in a packet distribution load sharing manner, and feeds back the data amount to the first network device, so that the first network device can send data to the second network device according to the data amount, and the sent data amount can be prevented from exceeding the data amount that can be cached and ordered by the second network device, thereby preventing data messages from being sent out of order from the second network device, and improving the performance of the data center network.
In some possible implementations, the second network device determining the first reputation limit includes: the second network device determines the first credit limit as a first preset limit; or the second network device determines the first credit limit according to the ordering buffer margin and the request information, wherein the ordering buffer is used for reordering out-of-order data.
According to the technical scheme, the second network device determines the data volume sent by the first network device in the packet distribution load sharing mode according to the sequencing cache margin, so that the sent data volume exceeds the data volume which can be cached and sequenced by the second network device, and therefore the data messages can be prevented from being sent out of order from the second network device, and the performance of the data center network is improved.
In some possible implementations, the authorization information further includes a second sequence number, where the second sequence number is used to indicate that the second network device has authorized the sum of an amount of data sent by the first network device to the port of the second network device and an amount of data sent by the first network device to the port of the second network device that is authorized at the time; the method further comprises the steps of: the second network device determines a second credit limit, wherein the second credit limit is the data quantity which can be sent to the port of the second network device by the first network device; the second network device determines the second serial number according to the second credit limit.
In the above technical solution, the second network device determines the data amount that the first network device can send to the port of the second network device, and feeds back the data amount to the first network device, so that the first network device can send data to the second network device according to the data amount, and the sent data can be prevented from exceeding the receivable data amount of the second network device, thereby preventing traffic from being congested and improving the performance of the data center network.
In some possible implementations, the second network device determining a second reputation credit includes: the second network device determines the second credit limit as a second preset limit; or the second network device determines a second credit limit according to the bandwidth allowance and the request information. By the technical scheme, the transmitted data can be prevented from exceeding the receivable data volume of the second network equipment, so that traffic congestion can be avoided, and the performance of the data center network is improved.
In some possible implementations, the request information further includes an enable field for indicating whether packet switching functionality and/or request-grant flow control functionality is enabled on the first network device.
In the above technical solution, the first network device notifies the second network device of the load sharing manner adopted by the second network device through the request information, so that the second network device can correctly receive the data.
In some possible implementations, the request information is further used to indicate a request amount, the request amount being a transmitted data amount requested by the first network device; the second network device determines a first credit limit according to the ordering cache allowance and the request information, and the method comprises the following steps: the second network equipment determines a first credit limit according to the sequencing cache allowance and the request quantity; the second network device determines a second credit limit according to the bandwidth allowance and the request information, and the method comprises the following steps: the second network device determines a second reputation credit based on the bandwidth allowance and the request quantity.
In the above technical solution, the first network device sends the data volume requested to be sent to the second network device, so that the second network device can more reasonably allocate resources.
In some possible implementations, the request information includes the request quantity before the accumulated radix of the first network device is synchronized with the accumulated radix of the second network device; the method further comprises the steps of: the second network device generating the accumulation base; the second network device determines a first serial number according to the first credit limit, including: the second network device determines the first serial number according to the accumulated base number and the first credit limit; the second network device determines a second serial number according to the second credit limit, including: the second network device determines the second serial number according to the accumulated base number and the second credit limit. By the technical scheme, the reliability of data transmission can be improved.
In some possible implementations, after the accumulation base of the first network device is synchronized with the accumulation base of the second network device, the request information includes a third sequence number that is a sum of the accumulation base, an amount of data the first network device has requested to send, and a current request amount.
In the above technical solution, after the accumulation base of the first network device and the accumulation base of the second network device are synchronized, the sum of the accumulation base, the data volume requested to be sent by the first network device and the current request volume is used to indicate the data volume requested to be sent by the first network device, so that even if the request information is lost, the request volume determined by the second network device according to the subsequently received request information also includes the data volume indicated in the lost request information, thereby improving the reliability of network data transmission of the data center.
In some possible implementations, the message carrying the request information and the message carrying the authorization information employ standard virtual extensible local area network generic protocol extension encapsulation or standard generic network virtualization encapsulation.
In the technical scheme, the message is packaged in a standard packaging mode, so that the difficulty in interaction among equipment of different manufacturers can be avoided.
In a third aspect, the present application provides a network device comprising means for performing the first aspect or any implementation of the first aspect.
In a fourth aspect, the application provides a network device comprising means for performing the second aspect or any implementation of the second aspect.
In a fifth aspect, the present application provides a chip comprising a transceiver, a processor and a memory for performing the method of the first aspect or any implementation manner of the first aspect.
In a sixth aspect, the present application provides a chip comprising a transceiver, a processor and a memory for performing the method of the second aspect or any implementation of the second aspect.
In a seventh aspect, the present application provides a network device, including a transceiver, a processor and a memory, configured to perform the method according to the first aspect or any implementation manner of the first aspect.
In an eighth aspect, the present application provides a network device comprising a transceiver, a processor and a memory for performing the method of the second aspect or any implementation of the second aspect.
In a ninth aspect, the present application provides a computer readable storage medium comprising instructions which, when run on a network device, cause the network device to perform the method of the first aspect or any implementation of the first aspect.
In a tenth aspect, the present application provides a computer readable storage medium comprising instructions which, when run on a network device, cause the network device to perform the method of the second aspect or any implementation of the second aspect.
In an eleventh aspect, the present application provides a computer program product which, when run on a network device, causes the network device to perform the method of the first aspect or any implementation of the first aspect.
In a twelfth aspect, the application provides a computer program product which, when run on a network device, causes the network device to perform the method of the second aspect or any implementation of the second aspect.
Detailed Description
The technical scheme of the application will be described below with reference to the accompanying drawings.
The technical scheme of the embodiment of the application can be applied to data center networks with various topological structures, such as hierarchical Internet models (e.g. three-layer fat tree structures and the like). The technical scheme of the embodiment of the application can be applied to other scenes as long as the source terminal equipment needs to send data to the destination terminal equipment in the scene, and the destination terminal equipment needs to receive the data sent by the source terminal equipment.
The type of network device is not particularly limited in the present application, and may be, for example, a network device in a data center network. Specifically, for example, various switches or other devices having similar functions as the switch.
It will be understood that the "first" and "second" in the first network device and the second network device in the embodiments of the present application are merely for distinguishing different network devices, and are not limited to the functions of the network devices themselves. One network device may act as both a first network device and a second network device. Assuming that the network includes two switches, switch a and switch B, if switch a sends data to switch B, switch a may be a first network device and switch B may be a second network device. If switch B sends data to switch a, switch a may be the second network device and switch B may be the first network device.
The embodiment of the application provides a data transmission method, which can prevent data messages from being sent out of order from receiving end equipment and improve the performance of a data center network.
Fig. 1 is a schematic diagram of a topology of a data center network to which embodiments of the present application may be applied. As shown in fig. 1, the data center network is divided into three layers, namely, an access layer (TOR or edge), a convergence layer (aggregation layer, AGG), and a CORE layer (CORE). Wherein, the TOR network equipment is physically connected with the server; the AGG network device connects TOR while providing some other services, such as network analysis, etc.; the CORE network device provides high-speed forwarding for traffic entering and exiting the data center and is connected with a plurality of aggregation layer AGGs. The plurality of TOR network devices, AGG network devices, may be further divided into one deployment unit (point of deployment, POD). The data message enters from TOR and reaches the corresponding destination through TOR, AGG, CORE forwarding. Each node of each layer of the data center network corresponds to a network device.
Fig. 2 is another schematic topology of a data center network to which embodiments of the present application may be applied. The topology in fig. 2 is a leaf-ridge (leaf-spine) structure. As shown in fig. 2, the leaf-spine structure includes two layers of leaf and spine, and the number of uplinks of each leaf layer network device is equal to the number of spine layer network devices, and the number of downlinks of each spine layer network device is equal to the number of leaf layer network devices.
It should be understood that fig. 1 and 2 are merely exemplary, and that embodiments of the present application may also be applied to other types of data center networks.
The method for transmitting data according to the embodiment of the present application is described below by taking a fat tree topology as an example.
Fig. 3 is an information interaction of a data center network to which a method of transmitting data of an embodiment of the present application is applied. It should be understood that fig. 3 is merely exemplary and that the data center network of fig. 3 may include further TOR, AGG, CORE or include other network devices.
Fig. 4 is a schematic flow chart of a method of transmitting data according to an embodiment of the present application, and the method shown in fig. 4 may include at least part of the following.
In 410, the first network device sends request information to the second network device, the request information requesting to send data.
At 420, the second network device determines a first reputation credit, which is an amount of data that the first network device can send data in a packet distribution load sharing manner.
In 430, the second network device determines, according to the first credit limit, a first sequence number, where the first sequence number is used to indicate a sum of an amount of data that the second network device has authorized the first network device to transmit and an amount of data that the first network device is authorized to transmit in a packet distribution load sharing manner.
At 440, the second network device sends authorization information to the first network device, the authorization information including the first sequence number.
At 450, the first network device determines the first reputation credit based on the first serial number.
In 460, the first network device sends data to the second network device according to the first reputation credit.
The first network device in the embodiment of the present application may be an ingress network device, or may also be referred to as a source network device, for example, a TOR network device or an AGG network device in POD0 in fig. 1, or a leaf network device in fig. 2.
The second network device in the embodiment of the present application may be an egress network device, or also referred to as a destination network device, for example, TOR network devices or AGG network devices except the first network device in PODs 0 to PODN in fig. 1, or leaf network devices except the first network device in fig. 2.
The request information in the embodiment of the application can be carried in a data message (for example, a control field is added in the data message), and can also be sent to the second network device through a special message; authorization information may be sent by special messages
A first network device. Other ways of sending the request information and the authorization information may be also possible, and embodiments of the present application are not limited in particular.
In the above technical solution, the first network device determines, according to the authorization information of the second network device, the data amount that can be sent in a packet distribution load sharing manner, and then sends the data to the second network device according to the data amount, so that the sent data amount can be prevented from exceeding the data amount that can be cached and ordered by the second network device, and thus, the data message can be prevented from being sent out of order from the second network device, and the performance of the data center network is improved.
And the second network equipment determines a first credit limit allocated to the first network equipment after receiving the request information of the first network equipment.
In some embodiments, the second network device may determine the first reputation quota allocated for the first network device based on the amount of the request information and a ranking cache margin of the second network device, wherein the ranking cache is used to reorder the out-of-order data. As one example, the second network device may count the number of request messages received simultaneously, and distribute all or part of the resources equally to the first network device that sent the request messages. As another example, the second network device may count the amount of request information received over a smaller period of time, and allocate all or part of the resources to the first network device that sent the request information on average or with different weights (e.g., by priority of the data or by arrival time of the request information, etc.). As another example, a preset credit limit may be agreed between the first network device and the second network device, and after the second network device receives the request message, the second network device may directly allocate the first network device with a sorting cache resource of the preset credit limit, where the preset credit limit may have a smaller value, so that the second network device may receive and reorder data sent by the first network device.
In other embodiments, the request information sent by the first network device indicates a request amount, which is an amount of data requested to be sent by the first network device. In this way, the second network device may determine the first reputation quota allocated for the first network device based on the ranked cache margin and the requested amount.
The second network device determines a first serial number according to the first credit limit. The first sequence number is used for indicating the sum of the data volume which the second network device has authorized the first network device to transmit and the data volume which the first network device is authorized to transmit at this time in the packet distribution load sharing mode.
In some embodiments, the second network device generates a first serial number when the first reputation credit indicates that there is an available ranking cache and sends the first serial number to the first network device via the authorization message until the first reputation credit is assigned. Each first serial number represents a unit credit limit that may be configured, for example, 1KB, 2KB, 4KB, 8KB, 16KB, etc.
In other embodiments, the second network device generates a first serial number when the first credit line indicates that there is an available ranking cache, directly allocates the first credit line, and sends the first credit line to the first network device via the authorization information. At this time, the first serial number represents at least one unit credit limit.
In other embodiments, the second network device generates a plurality of first sequence numbers when the first reputation credit indicates that there is an available ranking cache, and when the accumulated reputation credit represented by the last first sequence number reaches a transmittable threshold, the second network device transmits the last first sequence number via the authorization information.
And after the first network equipment receives the authorization information sent by the second network equipment, the first network equipment sends data to the second network equipment.
In some embodiments, the first network device determines a first reputation amount based on a first serial number in the authorization information and sends data to the second network device based on the first reputation amount. That is, the first network device transmits data to the second network device based on the number of transmissions that the second network device authorizes the first network device to transmit in a packet distribution load sharing manner. Specifically, the first network device determines the first credit limit according to a difference value between the first serial number and a maximum first serial number which has been received by the first network device.
In some embodiments, when the first reputation value unit indicates that the second network device has an available ordering cache, the first network device sends data to the second network device in a packet distribution load sharing manner that is less than or equal to the first reputation value unit in size.
In other embodiments, in a preset period of time, when the first credit limit is less than or equal to a first threshold, the first network device switches from a packet distribution load sharing mode to a progressive load sharing mode, and sends data to the second network device in the progressive load sharing mode. That is, when the first credit limit indicates that the second network device has no available ordering buffer or the ordering buffer margin is small, the first network device switches from the packet distribution load sharing mode to the progressive load sharing mode, and sends data to the second network device in the progressive load sharing mode.
In other embodiments, the first network device does not receive the authorization information sent by the second network device within the preset time period, and the first network device switches from the packet distribution load sharing mode to the progressive load sharing mode, and sends data to the second network device in the progressive load sharing mode.
After the first network device receives the authorization information sent by the second network device, the first reputation limit is determined according to the first serial number in the authorization information, and then a first reputation limit accumulated value is obtained. And the first network equipment sends data to the second network equipment according to the obtained first credit limit accumulated value. Specifically, the first network device compares the first sequence number with a maximum first sequence number that the first network device has received. When the first serial number is larger than the maximum first serial number received by the first network equipment, the first network equipment accumulates the data quantity corresponding to the difference value between the first serial number and the maximum first serial number on the first credit limit accumulated value to obtain a new first credit limit accumulated value, and updates the maximum first serial number into the first serial number; when the first serial number is less than or equal to the maximum first serial number that the first network device has received, the first network device does not update the first reputation credit accumulated value and the maximum first serial number.
The first network device sends data to the second network device according to the new first credit limit accumulated value.
It should be appreciated that the first credit limit accumulation value is also constantly changing, as the first network device is constantly transmitting data after receiving the authorization information. The first network device sends data to the second network device according to the new first credit limit accumulated value, or the first network device sends data to the second network device according to the current first credit limit accumulated value.
In some embodiments, when the new first reputation credit line accumulation value indicates that the second network device has an available ranking cache,
The first network device sends data with the size smaller than or equal to the new first credit limit accumulated value to the second network device in a packet distribution load sharing mode.
In some embodiments, in a preset period of time, when the new first credit limit accumulated value is less than or equal to the first threshold value, the first network device switches from the packet distribution load sharing mode to the progressive load sharing mode, and sends data to the second network device in the progressive load sharing mode. That is, when the new first credit limit accumulated value indicates that the second network device has no available ordering buffer or the ordering buffer margin is small, the first network device switches from the packet distribution load sharing mode to the progressive load sharing mode, and sends data to the second network device in the progressive load sharing mode.
And under the condition of considering the bandwidth allowance of the second network equipment, the second network equipment determines a second credit limit distributed to the first network equipment after receiving the request information of the first network equipment, wherein the second credit limit is the data quantity which can be sent to the port of the second network equipment by the first network equipment.
In some embodiments, the second network device may determine a second reputation credit allocated for the first network device based on the amount of requested information and a bandwidth allowance for the second network device, wherein the bandwidth allowance indicates an amount of data that the port of the second network device is capable of receiving. As one example, the second network device may count the number of request messages received simultaneously, and distribute all or part of the bandwidth headroom to the first network device transmitting the request messages. As another example, the second network device may count the amount of request information received over a smaller period of time, and allocate all or part of the bandwidth headroom to the first network device that sent the request information on average or with different weights (e.g., by priority of the data or by arrival time of the request information, etc.). As another example, a preset credit limit may be agreed between the first network device and the second network device, and after the second network device receives the request message, the second network device may directly allocate a bandwidth limit of the preset credit limit to the first network device, where the preset credit limit may have a smaller value, so that the second network device may receive data sent by the first network device.
In other embodiments, the request information sent by the first network device indicates a request amount, which is an amount of data requested to be sent by the first network device. The second network device may then determine a second reputation credit allocated to the first network device based on the bandwidth allowance and the request amount.
And the second network equipment determines a second serial number according to the second credit limit. The second sequence number is used for indicating that the second network device has authorized the first network device to send the sum of the data amount sent by the first network device to the port of the second network device and the data amount sent by the first network device to the port of the second network device.
In some embodiments, the second network device generates a second serial number when the second reputation credit indicates available bandwidth and sends the second serial number to the first network device via the authorization message until the second reputation credit is allocated. Each second serial number represents a unit credit limit that may be configured, for example, 1KB, 2KB, 4KB, 8KB, 16KB, etc.
In other embodiments, the second network device generates a second serial number when the second credit line indicates available bandwidth, directly allocates the second credit line, and sends the second credit line to the first network device via the authorization information. At this time, the second serial number represents at least one unit credit limit.
In other embodiments, the second network device generates a plurality of second sequence numbers when the second reputation credit amount indicates available bandwidth, and when the accumulated reputation credit amount represented by the last second sequence number reaches a transmittable threshold, the second network device transmits the last second sequence number through the authorization information.
After the first network device receives the authorization information sent by the second network device, the second credit limit is determined according to the second serial number in the authorization information. The first network device sends data to the second network device according to the first credit limit and the second credit limit. Specifically, the first network device determines the second credit limit according to the difference between the second serial number and the maximum second serial number that the first network device has received.
In some embodiments, the first network device sends data to the second network device based on the smaller of the first reputation credit and the second reputation credit.
In other embodiments, when the first credit limit is less than the second credit limit and the difference between the first credit limit and the second credit limit is greater than a second threshold, the first network device switches from the packet distribution load sharing mode to the stream-by-stream load sharing mode and sends data to the second network device in the stream-by-stream load sharing mode. That is, when the first credit limit is smaller than the second credit limit and the difference between the first credit limit and the second credit limit is large, the first network device switches from the packet distribution load sharing mode to the progressive load sharing mode, and sends data to the second network device according to the progressive load sharing mode.
After the first network device receives the authorization information sent by the second network device, the second credit limit is determined according to the second serial number in the authorization information, and then a second credit limit accumulated value is obtained. Specifically, the first network device compares the second sequence number with a maximum second sequence number that the first network device has received. When the second serial number is larger than the maximum second serial number received by the first network equipment, the first network equipment adds the data quantity corresponding to the difference value of the second serial number and the maximum second serial number to the last second credit limit accumulated value to obtain a new second credit limit accumulated value, and updates the maximum second serial number to the second serial number; and when the second serial number is smaller than or equal to the maximum second serial number which the second network equipment has received, the first network equipment does not update the second credit limit accumulated value and the maximum second serial number.
The first network device sends data to the second network device according to the new first credit limit accumulated value and the new second credit limit accumulated value.
It should be appreciated that the first credit line accumulation value and the second credit line accumulation value are also constantly changing, as the first network device is constantly transmitting data after receiving the authorization information. The first network device sends data to the second network device according to the new first credit limit accumulated value and the new second credit limit accumulated value, or the first network device sends data to the second network device according to the current first credit limit accumulated value and the current second credit limit accumulated value.
In some embodiments, the first network device sends data to the second network device based on the smaller of the new first reputation credit line accumulation value and the new second reputation credit line accumulation value.
In other embodiments, when the new first reputation credit accumulated value is less than the new second reputation credit accumulated value and the difference between the new first reputation credit accumulated value and the new second reputation credit accumulated value is greater than a second threshold, the first network device switches from the packet distribution load sharing mode to the stream-by-stream load sharing mode and sends data to the second network device in the stream-by-stream load sharing mode. That is, when the new first credit limit accumulated value is smaller than the new second credit limit accumulated value and the difference between the new first credit limit accumulated value and the new second credit limit accumulated value is large, the first network device switches from the packet distribution load sharing mode to the progressive load sharing mode, and sends data to the second network device according to the progressive load sharing mode.
After the first network device switches to the progressive load sharing mode under the above various conditions, the first network device keeps a period of time (time is configurable) when the queue is empty after the current traffic is sent, and no new traffic enters the queue during the period of time, so that the first network device switches back to the packet distribution load sharing mode from the progressive load sharing mode.
It should be appreciated that the first network device may also send data to the second network device based solely on the second reputation line or the current second reputation line accumulation value, regardless of the ranking cache.
Fig. 5 describes a method of transmitting data according to an embodiment of the present application in conjunction with a specific example. Taking the second network device as an example according to the bandwidth allowance and the ordering buffer allowance, as shown in fig. 5, assuming that the current request information requests the credit limit of 10 units of the limit, the second network device can return the credit limit of 10 units of the limit according to the bandwidth allowance, and can temporarily return the credit limit of 5 units of the limit according to the ordering buffer allowance, then, along with the release of the ordering buffer, enough resources are available, and authorization information is continuously returned. Optionally, the first network device may send the data message after having the available credit limit and carry the latest request information.
When a new device is on-line, the virtual output queues (virtual output queue, VOQ) of the first network device are dynamically configured (data center (DATA CENTER, DC) scenario, limited VOQ accommodates a large number of streams) or periodically synchronized for reliability, there is an out-of-sync condition of the accumulation cardinality of the first and second network devices, therefore
The first network device and the second network device need to perform a synchronization process of the accumulation base.
The second network device generates an accumulation base. Optionally, the second network device randomly generates the accumulation base.
The second network equipment determines the first serial number according to the accumulated base number and the first credit limit; and determining a second serial number according to the accumulated base number and the second credit limit. After the first network device receives the authorization information, the accumulation base number is determined according to the first serial number or the second serial number. And when new data needs to be sent, determining a third serial number according to the accumulation base number, the last request quantity and the current request quantity.
Optionally, the first sequence number is the sum of an accumulation base number, the data volume that the second network device has authorized the first network device to send in a packet distribution load sharing mode, and the data volume that the first network device is authorized to send in a packet distribution load sharing mode at this time; the second serial number is the sum of the accumulation base number, the data volume which the second network device has authorized the first network device to send to the port of the second network device and the data volume which the first network device is authorized to send to the port of the second network device at this time; the third serial number is the sum of the accumulation base number, the data volume requested to be sent by the first network device and the current request volume.
Before the accumulation base of the first network device is synchronous with the accumulation base of the second network device, the request information carries the request quantity, and the authorization information carries the first serial number and/or the second serial number; after the accumulation base of the first network device is synchronous with the accumulation base of the second network device, the request information carries a third serial number, and the authorization information carries the first serial number and/or the second serial number.
FIG. 6 is a schematic flow chart diagram of accumulation radix synchronization of an embodiment of the application. Taking the second reputation unit of the first network device determined by the second network device according to the bandwidth allowance as an example, as shown in fig. 6, before the synchronization, assuming that the reputation unit requested by the current request information is 10, the second network device determines the reputation unit which can be allocated to 10 unit units of the first network device according to the bandwidth allowance after receiving the request information. The second network device returns 10 pieces of authorization information, and each second serial number represents a unit credit, and the second serial numbers in the 10 pieces of authorization information are 1001 and 1002 … and 1010 respectively. After the first network device receives the authorization information, the accumulation base number is determined to be 1000, synchronization is considered to be possible, and next request information is sent in the form of a third serial number. Assuming that the first network device requests a reputation unit of 5 units of the next data, and historically requests a reputation unit of 10 units of the unit of the next data, the new request information carries a third serial number 1015 (1000+10+5=1015). After receiving the new request information, the second network device determines, according to the bandwidth allowance, that the reputation limit of 3 units of limit can be allocated to the first network device, and historically allocates the reputation limit of 10 units of limit to the first network device, so that the second serial number in the first authorization information for the new request information is 1013 (1000+10+3=1013).
Optionally, the first network device records and updates the minimum second sequence number. After a certain amount of authorization information is received, the current minimum second serial number is determined as an accumulation base.
In some embodiments, the authorization information may carry both the first sequence number and the second sequence number. The first network device transmits data according to the first sequence number and/or the second sequence number according to the enabled packet distribution function and/or the request-grant function. As one example, when the first network device enables the packet distribution function, the first network device determines a first reputation quota according to the first serial number, and further sends data to the second network device according to the first reputation quota. As another example, when enabling the packet distribution and request-grant flow control functionality, the first network device determines a first reputation credit based on the first sequence number, determines a second reputation credit based on the second sequence number, and sends data to the second network device based on the first reputation credit and the second reputation credit. As another example, upon enabling the request-grant flow control function, the first network device determines a second reputation credit based on the second serial number, and in turn, sends data to the second network device based on the second reputation credit.
The packet distribution function and/or the request-grant flow control function on the first network device is enabled before the first network device sends the request information to the second network device, depending on the situation. For example, for delay insensitive traffic, the request-grant flow control function is enabled when there are more incidents or destination addresses of multiple source devices are 1 destination device; for delay sensitive and simpler traffic, the request-grant flow control function is not enabled; for more traffic of elephant flows, enabling a packet switching function; for traffic with no or less elephant flows, the packet distribution function is not enabled.
As shown in fig. 7 and 8, the deployment location of the request-grant flow control function and the packet distribution function may be TOR-to-TOR, AGG-to-AGG, or some POD support. The deployment location needs to consider traffic models and latency requirements within and between PODs, and whether TOR or AGG devices are supported. It will be appreciated that for the package distribution function to begin package distribution at that level, it is necessary to reorder at the same level.
It should be appreciated that the flexible configuration of request-grant flow control functions and packet distribution functions of embodiments of the present application may be embodied in time (e.g., different enabled functions for different time periods) and path/data flow/device/port, etc. (e.g., different path/data flow/device/port enabled functions).
There are many ways to enable the request-grant flow control function and/or the packet distribution function on the first network device, for example, the request-grant flow control function and/or the packet switching function on the first network device may be enabled by a configuration message from the network management device; the request-grant flow control function and/or the packet switching function on the first network device may be enabled by control messages from the control device; the request-grant flow control function and/or the packet switching function on the first network device may also be enabled by a user instruction, and embodiments of the present application are not limited in detail. In the embodiment of the application, the request-grant flow control function or the packet switching function of the first network device can be independently enabled, and the request-grant flow control function and the packet switching function of the first network device can also be simultaneously enabled.
In other embodiments, the request information further comprises an enable field for indicating whether the packet switching function and/or the request-grant flow control function is enabled on the first network device. The second network device judges that the first serial number and/or the second serial number are/is carried in the authorization information according to the enabling field, and the first network device does not need to judge any more. As one example, when the enable field indicates that the first network device enables the packet distribution function, the second network device carries the first sequence number and not the second sequence number in the authorization information. As another example, the second network device carries the first sequence number and the second sequence number in the authorization information when the enable field indicates to the first network device to enable the packet distribution and request-grant flow control function. As another example, when the enable field indicates that the first network device enables the request-grant flow control function, the second network device carries the second sequence number in the grant information without carrying the first sequence number.
Optionally, the enable field may also indicate a deployment location of the request-grant flow control function and/or a deployment location of the packet switching function.
In some embodiments, the second network device releases the ordering cache. Optionally, after the data is sent, the first network device sends a release message to the second network device, where the release message includes an ordering buffer release field, where the ordering buffer release field is used to instruct the second network device to release the ordering buffer and the size of the ordering buffer that needs to be released, and the second network device receives the release message sent by the first network device and releases the ordering buffer according to the release message. Optionally, when the unused time of the ordering buffer exceeds the time threshold, the second network device releases the ordering buffer whose unused time exceeds the time threshold, and sends a reclamation message to the first network device, where the reclamation message includes an ordering buffer reclamation field, and the ordering buffer reclamation field is used to inform the first network device that the second network device reclaims the ordering buffer and the size of the reclaimed ordering buffer. In the technical scheme, the ordering cache can be timely released through the end-to-end information interaction, so that the waiting time of the subsequent data is reduced.
It should be appreciated that the release message and the reclamation message may be dedicated messages or may be fields in the request information and the authorization information.
In other embodiments, the second network device may automatically release the ordering cache. Optionally, the ordering buffer is automatically recovered after the ordering of the data sent by the second network device to the first network device is normally completed. Optionally, when the unused time of the ordering buffer exceeds the threshold, the second network device releases the ordering buffer whose unused time exceeds the threshold, for example, if the second network device does not end the ordering task by waiting for a certain message, a timeout (timer) mechanism is triggered, and the ordering buffer is forcedly recovered after a certain waiting time is satisfied.
Fig. 9 is a diagram showing various fields of request information and their sizes and locations according to an embodiment of the present application. It should be understood that fig. 9 is only exemplary, and the request information of the embodiment of the present application may include fewer or more fields, and may be other forms. As shown in fig. 9, the request information of the embodiment of the present application includes at least part of the following fields.
-An egress port (DstPort) (optional): the egress port describing the egress side device may take 8 bits (bits).
-An ingress side device ID (source DEVICE IDENTITY, srcDevID): the unique identification describing the entry side device may take up 16 bits.
-Request credit (REQCREDIT): increment of requested unit amount. The SN is used in a scene that the new equipment is on line and the VOQ is dynamically refreshed and the like and is not synchronized, and the SN can occupy 12 bits.
-Request sequence number (request sequence number, reqSN): i.e. the third sequence number, requesting the current maximum SN of the credit. The reliability of data transmission can be enhanced when used in a scenario in which the SNs are already synchronized. Switching to ReqSN after synchronization using REQCREDIT, SN before SN synchronization may take 32 bits.
-Unit Credit (Credit size): the capacity size of each credit may be an absolute value, may be a quantized value, and the reference configuration may be 1KB, 2KB, 4KB, 8KB, 16KB, etc., and may occupy 3 bits.
-A flow control flag (flow control flag, fc_flag) describing whether a request-grant (request-grant) flow control function is enabled, which may take up 1 bit.
-A flow control location (flow control place, fc_place) (optional, not shown), a deployment location describing a request-grant (request-grant) flow control function, which may take up 1 place.
-A packet switch flag (PACKET SPRAY FLAG, ps_flag) describing whether load sharing of the packet switch (PACKET SPRAY, PS) is enabled, possibly taking up 1 bit.
-A packet-switched location (PACKET SPRAY PLACE, ps_place) (optionally, not shown), a deployment location describing the load sharing of the packet-switched, which may take up 1 bit.
Priority, descriptive data message priority, which may take up 3 bits.
Wherein the flow control flag, the flow control location, the packet distribution flag, and the packet distribution location constitute an enable field by which the flow control scheme and the load sharing scheme as shown in fig. 7 and 8 can be configured. The request-grant flow control function and the packet switching function can be flexibly configured according to different situations and notify the second network device.
-An order-preserving unit identity (source PS IDENTITY, SRCPSID), an order-preserving unit unique identity.
-A data message sequence number (packet sequence number).
When the first network device receives the authorization information and transmits data in a packet distribution load sharing mode, an order-preserving field is added in the transmitted data. The order-preserving field comprises an order-preserving unit identifier and a data message serial number, the order-preserving unit can be an access port, a data stream or other units, or can be manually specified, and the second network equipment carries out order-preserving processing on the data message with the same order-preserving unit identifier.
Fig. 10 is a diagram of the various fields of authorization information for an embodiment of the application. It should be understood that fig. 10 is only exemplary, and that the request information of the embodiment of the present application may include fewer or more fields, and may be other forms. As shown in fig. 10, the request information of the embodiment of the present application includes at least part of the following fields.
-An egress port (DstPort): the outlet port describing the outlet side device may take up 8 bits.
-An ingress side device ID (source DEVICE IDENTITY, srcDevID): the unique identification describing the entry side device may take up 16 bits.
-The grant sequence number (grant sequence number, grntSN), i.e. the second sequence number, may take 32 bits for use in scenarios where the SN is already synchronized, enabling to enhance the reliability of the data transmission.
-Reordering the sequence numbers (grant sequence number, grntSN), i.e. the first sequence number, can take 32 bits for use in scenarios where the SN is already synchronized, can enhance the reliability of the data transmission.
-A unit Credit size (optional, not shown): the capacity size of each credit may be an absolute value, may be a quantized value, and the reference configuration may be 1KB, 2KB, 4KB, 8KB, 16KB, and may occupy 3 bits.
Priority, descriptive data message priority, which may take up 3 bits.
It should be understood that the reputation units in fig. 9 and 10 are merely exemplary, and that the unit units and the unit amount are represented (e.g., the unit of credit is 2KB, the unit amount of unit of credit is 3, and then the reputation unit is 6 KB), and that the reputation unit of embodiments of the present application may be represented in any other possible manner.
In some embodiments, the message carrying the request information and the message carrying the authorization information employ standard virtual extensible local area network generic protocol extension encapsulation or standard generic network virtualization encapsulation. Fig. 11 is a standard ethernet based virtual extensible local area network universal protocol extension (generic protocol extension virtual extensible local area network, VXLAN-GPE) encapsulation, fig. 12 is a standard ethernet based universal network virtualization encapsulation (generic network virtualization encapsulation, GENEVE). As shown in fig. 11 and 12, the embodiment of the present application encapsulates the payload in VXLAN-GPE or GENEVE (the various fields of the embodiment of the present application are carried in VXLAN-GPE header or GENEVE header) on the basis of standard ethernet format (including external ethernet header, external internet protocol (internet protocol, IP) header, external user datagram protocol (user datagram protocol, UDP) header, internal ethernet header, frame check sequence (FRAME CHECK sequence, FCS), etc.) in order to transmit various information (e.g., request information, authorization information, etc.) related to the embodiment of the present application.
Specifically, the VXLAN-GPE header or GENEVE header may be carried by the data packet itself, or may be encapsulated by the first network device. Thus, embodiments of the present application distinguish by distinguishing between fields (e.g., the a field in fig. 9 or 10, which may occupy 1 bit). For example, when the discrimination field is 0, it indicates that the VXLAN header or GENEVE header is carried by the data packet itself; when the discrimination field is 1, it means that the VXLAN header or GENEVE header is encapsulated by the first network device that enables the request-grant flow control function and/or the packet switching function.
Because network devices in a data center network may come from different device vendors, the message formats supported by the network devices of the different device vendors may be different. In the technical scheme, the message is sent and received by adopting the standard Ethernet message format, so that the difficulty in interaction between equipment of different manufacturers can be avoided.
In other embodiments, the various information or messages involved in embodiments of the present application may be in an ethernet message format with a private header. Such as request information, authorization information, release messages, and reclamation messages. Fig. 13 is an ethernet message format with a private header encapsulation.
In addition, in other embodiments, the first network device may not send the request information, and the second network device may send the authorization information to the first network device periodically or periodically.
The method for transmitting data according to the embodiment of the present application is described in detail above, and the network device according to the embodiment of the present application is described in detail below with reference to fig. 14 to 18. The network device of the embodiments of the present application may perform the various methods described above.
Fig. 14 is a logic diagram of a network device according to an embodiment of the present application. As shown in fig. 14, a data packet enters a network device from an inlet, a network processor performs path selection and scheduling, and a traffic scheduler is arranged in the processor, so that a certain amount of traffic can be distributed and sent out from a specific outlet. The network processor may be a chip in the network device. The various methods of the embodiments of the present application may be applied in a network processor.
Optionally, the network processor of the embodiment of the application is the network device itself.
Fig. 15 is a schematic block diagram of a network device according to an embodiment of the present application. The network device 1500 shown in fig. 15 may correspond to the first network device above, and as shown in fig. 15, the network device 1500 includes a receiving module 1510, a transmitting module 1520, and a processing module 1530.
A transmitting module 1520 for transmitting request information to the second network device, the request information being for requesting transmission of data.
The receiving module 1510 is configured to receive, by the first network device, authorization information sent by the second network device, where the authorization information includes a first serial number.
The processing module 1530 determines, according to the first serial number, a first credit limit, where the first credit limit is a data amount of data that the first network device can send in a packet distribution load sharing manner.
The sending module 1520 is further configured to send data to the second network device according to the first credit limit.
Optionally, the processing module 1530 is specifically configured to determine the first reputation unit according to a difference between the first serial number and the maximum first serial number when the first serial number is greater than the maximum first serial number that the first network device has received.
Optionally, the sending module 1520 is specifically configured to switch from the packet distribution load sharing mode to the progressive load sharing mode when the first credit limit is less than or equal to the first threshold in a preset time period, and send data to the second network device in the progressive load sharing mode.
Optionally, the authorization information further includes a second serial number. Optionally, the processing module 1530 is further configured to determine a second credit limit according to the second serial number, where the second credit limit is an amount of data that the first network device can send to the port of the second network device. The sending module 1520 is specifically configured to send data to the second network device according to the first credit limit and the second credit limit.
Optionally, the processing module 1530 is further configured to determine the second reputation credit unit according to a difference between the second serial number and the maximum second serial number when the second serial number is greater than the maximum second serial number that the first network device has received.
Optionally, the sending module 1520 is specifically configured to send data to the second network device according to the smaller one of the first credit limit and the second credit limit; or when the first credit limit is smaller than the second credit limit and the difference between the first credit limit and the second credit limit is larger than a second threshold, the first network device switches from the package distribution load sharing mode to the stream-by-stream load sharing mode and sends data to the second network device according to the stream-by-stream load sharing mode.
Optionally, the processing module 1530 is further configured to update the maximum first sequence number to the first sequence number when the first sequence number is greater than the maximum first sequence number after the first network device receives the authorization information sent by the second network device; and updating the maximum second serial number to the second serial number when the second serial number is larger than the maximum second serial number.
Optionally, the request information further comprises an enable field for indicating whether the first network device enables a packet distribution function and/or a request-grant flow control function.
Optionally, the request information is further used to indicate a request amount, where the request amount is an amount of data requested to be sent by the first network device.
Optionally, the request information includes the request quantity before the accumulation base of the first network device is synchronized with the accumulation base of the second network device; the processing module 1530 is further configured to determine, after the first network device receives the authorization information, the accumulation base according to the first sequence number or the second sequence number, where the accumulation base is used to determine a third sequence number, and the third sequence number is a sum of the accumulation base, an amount of data that the first network device has requested to send, and a current request amount.
Optionally, after the accumulation base of the first network device is synchronized with the accumulation base of the second network device, the request information includes a third sequence number, where the third sequence number is a sum of the accumulation base, an amount of data that the first network device has requested to send, and a current request amount.
Optionally, the message carrying the request information and the message carrying the authorization information are in a standard virtual extensible local area network universal protocol extension package or a standard universal network virtualization package.
The receiving module 1510 and the transmitting module 1520 may be implemented by transceivers. The processing module 1530 may be implemented by a processor. The specific functions and advantages of the receiving module 1510, the transmitting module 1520 and the processing module 1530 can be found in the method shown in fig. 4, and will not be described again here.
Fig. 16 is a schematic block diagram of a network device provided according to an embodiment of the present application. The network device 1600 in fig. 16 may correspond to the above second network device, as shown in fig. 16, the network device 1600 includes a receiving module 1610, a transmitting module 1620, and a processing module 1630.
A receiving module 1610, configured to receive request information sent by the first network device, where the request information is used to request to send data.
A processing module 1630 is configured to determine a first credit limit, where the first credit limit is a data amount of data that the first network device can send in a packet distribution load sharing manner.
The processing module 1630 is further configured to determine, according to the first credit limit, a first serial number, where the first serial number is used to indicate a sum of an amount of data that the second network device has been authorized to send by the first network device and an amount of data that the first network device is authorized to send this time in a packet distribution load sharing manner.
A sending module 1620 configured to send authorization information to the first network device, where the authorization information includes the first sequence number.
Optionally, the processing module 1630 is specifically configured to determine that the first credit limit is a first preset limit; or determining the first credit limit according to the sequencing cache allowance and the request information, wherein the sequencing cache is used for reordering out-of-order data.
Optionally, the authorization information further includes a second sequence number, where the second sequence number is used to indicate that the second network device has authorized the first network device to send a sum of an amount of data to a port of the second network device and an amount of data that the first network device is authorized to send to the port of the second network device at this time; the processing module 1630 is further configured to determine a second credit limit, where the second credit limit is an amount of data that the first network device can send to the port of the second network device; and determining the second serial number according to the second credit limit.
Optionally, the processing module 1630 is specifically configured to determine that the second credit limit is a second preset limit; or determining a second credit limit according to the bandwidth allowance and the request information.
Optionally, the request information further comprises an enable field for indicating whether packet switching functionality and/or request-grant flow control functionality is enabled on the first network device.
Optionally, the request information is further used for indicating a request amount, where the request amount is a transmitted data amount requested by the first network device; the processing module 1630 is specifically configured to determine a first credit limit according to the ranking cache margin and the request amount; for determining a second reputation credit based on the bandwidth allowance and the request quantity.
Optionally, the request information includes the request quantity before the accumulation base of the first network device is synchronized with the accumulation base of the second network device; the processing module 1630 is further configured to generate the accumulation base; the method specifically is used for determining the first serial number according to the accumulation base number and the first credit limit; the method is specifically used for determining the second serial number according to the accumulated base number and the second credit limit.
Optionally, after the accumulation base of the first network device is synchronized with the accumulation base of the second network device, the request information includes a third sequence number, where the third sequence number is a sum of the accumulation base, an amount of data that the first network device has requested to send, and a current request amount.
Optionally, the message carrying the request information and the message carrying the authorization information are in a standard virtual extensible local area network universal protocol extension package or a standard universal network virtualization package.
The receiving module 1610 and the transmitting module 1620 may be implemented by a transceiver. The processing module 1630 may be implemented by a processor. The specific functions and advantages of the receiving module 1610, the transmitting module 1620 and the processing module 1630 may be referred to as a method shown in fig. 4, and will not be described herein.
Fig. 17 is a schematic block diagram of a network device according to another embodiment of the present application. As shown in fig. 17, the network device 1700 includes a transceiver 1710, a processor 1720, and a memory 1730.
Only one memory and processor is shown in fig. 17. In an actual network device product, there may be one or more processors and one or more memories. The memory may also be referred to as a storage medium or storage device, etc. The memory may be provided separately from the processor or may be integrated with the processor, as the embodiments of the application are not limited in this respect.
The transceiver 1710, the processor 1720, and the memory 1730 communicate with each other via internal communication paths to transfer control and/or data signals.
Specifically, the transceiver 1710 is configured to send request information to the second network device, where the request information is used to request to send data; the method includes receiving, by a first network device, authorization information sent by the second network device, the authorization information including a first sequence number.
Processor 1730 the first network device determines a first credit limit based on the first serial number, the first credit limit being an amount of data that the first network device can send data in a packet distribution load sharing manner.
The transceiver 1710 is further configured to send data to the second network device according to the first reputation credit. The specific operation and benefits of network device 1700 may be described with reference to the embodiment shown in fig. 4.
Fig. 18 is a schematic block diagram of a network device according to another embodiment of the present application. As shown in fig. 18, the network device 1800 may include a transceiver 1810, a processor 1820, and a memory 1830.
Only one memory and processor is shown in fig. 18. In an actual control device product, there may be one or more processors and one or more memories. The memory may also be referred to as a storage medium or storage device, etc. The memory may be provided separately from the processor or may be integrated with the processor, as the embodiments of the application are not limited in this respect.
The transceiver 1810, the processor 1820, and the memory 1830 communicate with each other via internal communication paths to transfer control and/or data signals.
Specifically, the transceiver 1810 is configured to receive request information sent by the first network device, where the request information is used to request to send data.
A processor 1830 configured to determine a first credit limit, where the first credit limit is a data amount by which the first network device may send data in a packet distribution load sharing manner; and the first serial number is used for indicating the sum of the data volume which the second network equipment has authorized to send by the first network equipment and the data volume which the first network equipment is authorized to send at the time under the packet distribution load sharing mode.
The transceiver 1810 is configured to send authorization information to the first network device, where the authorization information includes the first sequence number.
The specific operation and benefits of the network device 1800 may be seen from the description in the embodiment shown in fig. 4.
The transceiver according to the embodiments of the present application may also be referred to as a transceiver unit, a transceiver device, etc. The processor may also be referred to as a processing unit, processing board, processing module, processing device, etc. Alternatively, the device for implementing the receiving function in the transceiver may be regarded as a receiving unit, and the device for implementing the transmitting function in the transceiver may be regarded as a transmitting unit, i.e. the transceiver comprises a receiving unit and a transmitting unit. The receiving unit may also be referred to as a receiver, or receiving circuit, among others. The transmitting unit may also sometimes be referred to as a transmitter, or a transmitting circuit, etc.
The memory described in various embodiments of the application is used to store computer instructions and parameters required for the operation of the processor.
The processor according to the embodiments of the present application may be an integrated circuit chip having signal processing capability. In implementation, the steps of the above method may be performed by integrated logic circuits of hardware in a processor or by instructions in the form of software. The processor described by embodiments of the application may be a general purpose processor, a digital signal processor (DIGITAL SIGNAL processor, DSP), an Application SPECIFIC INTEGRATED Circuit (ASIC), an off-the-shelf programmable gate array (field programmable GATE ARRAY, FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware components. The disclosed methods, steps, and logic blocks in the embodiments of the present application may be implemented or performed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of the method disclosed in connection with the embodiments of the present application may be embodied directly in the execution of a hardware decoding processor, or in the execution of a combination of hardware and software modules in a decoding processor. The software modules may be located in a memory medium well known in the art such as random access memory (random access memory, RAM), flash memory, read-only memory (ROM), programmable read-only memory (ROM), or electrically erasable programmable memory (eeprom), registers, etc. The storage medium is located in a memory, and the processor reads instructions from the memory and, in combination with its hardware, performs the steps of the method described above.
In various embodiments of the present application, the sequence number of each process does not mean the sequence of execution sequence, and the execution sequence of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any other combination. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device including one or more servers, data centers, etc. that can be integrated with the available medium. The usable medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital video disc (digital video disc, DVD)), or a semiconductor medium (e.g., a Solid State Drive (SSD)), or the like.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, and are not repeated herein.
In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, comprising several instructions for causing a computer device (which may be a personal computer, a server, a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a read-only memory (ROM), a random access memory (random access memory, RAM), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
The foregoing is merely illustrative of the present application, and the present application is not limited thereto, and any person skilled in the art will readily recognize that variations or substitutions are within the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.