# US 12,015,560 B2 · Data transmission method and network device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,015,560 B2
- Document ID: US12015560B2
- Status: Granted
- Kind: B2
- Application number: 17/369,739
- Filed: 2021-07-07
- Published: 2021-10-28
- Granted: 2024-06-18
- Earliest claimed: 2019-01-07
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Zijian He; Hui Lu; Linchun Wang; Xingtao Yan; Yang Liu; Wenzong Yang; Jingzhou Yu; Xiang Yu
- Web page: https://patentgrep.com/patent/US12015560B2

## CPC

- H04L 5/0053: {Allocation of signalling, i.e. of overhead other than pilot signals}
- H04L 5/0044: {Allocation of payload; Allocation of data channels, e.g. PDSCH or PUSCH}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 47/26: using explicit feedback to the source, e.g. choke packets
- H04L 47/27: Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
- H04L 47/30: in combination with information about buffer occupancy at either end or at transit nodes
- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- H04L 47/39: {Credit based}
- H04W 72/23: in the downlink direction of a wireless link, i.e. towards a terminal
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

This application provides for data transmission between first and second network devices. The first network device requests information from the second network device and in return receives grant information from the second network device. The grant information includes at least a first sequence number that is used by the first network device to determine a first credit limit, where the first credit limit is an amount of data allowed to be sent by the first network device in a packet-distributed load sharing manner. The first network device sends data to the second network device based on the first credit limit. Second and third sequence numbers are also described.

## Claims

### Claim 1

A data transmission method comprising:
sending, by a first network device, request information to a second network device, wherein the request information is used to request to send data;
receiving, by the first network device, grant information sent by the second network device, wherein the grant information comprises first and second sequence numbers;
in response to the first sequence number being greater than a largest first sequence number previously received by the first network device, determining, by the first network device, a first credit limit based on a difference between the first sequence number and the largest first sequence number,
wherein the first credit limit is an amount of data allowed to be sent by the first network device in a packet-distributed load sharing manner; and
in response to the second sequence number being greater than a largest second sequence number previously received by the first network device, determining, by the first network device, a second credit limit based on a difference between the second sequence number and the largest second sequence number,
wherein the second credit limit is an amount of data allowed to be sent by the first network device to a port of the second network device; and
sending, by the first network device, data to the second network device based on the first and second credit limits.

### Claim 2 (depends on 1)

The method according to claim 1, wherein sending data to the second network device based on the first credit limit comprises:
within a preset time period, upon the first credit limit being less than or equal to a first threshold, switching, by the first network device, from the packet-distributed load sharing manner to a per-flow load sharing manner, and sending data to the second network device in the per-flow load sharing manner.

### Claim 3 (depends on 1)

The method according to claim 1, wherein sending the data to the second network device based on the first credit limit and the second credit limit comprises:
sending, by the first network device, data to the second network device based on a lesser one between the first credit limit and the second credit limit; or
in response to the first credit limit being less than the second credit limit, and a difference between the first credit limit and the second credit limit being greater than a second threshold, switching, by the first network device, from the packet-distributed load sharing manner to a per-flow load sharing manner, and sending data to the second network device in the per-flow load sharing manner.

### Claim 4 (depends on 1)

The method according to claim 1, wherein after receiving the grant information sent by the second network device, the method further comprises:
upon the first sequence number being greater than the largest first sequence number, updating, by the first network device, the largest first sequence number to the first sequence number; and
upon the second sequence number being greater than the largest second sequence number, updating, by the first network device, the largest second sequence number to the second sequence number.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the request information further comprises one or both of an enabling field indicating whether a packet distribution function and a request-grant flow control function are/is enabled on the first network device.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the request information further indicates a requested amount of data that the first network device requests to send.

### Claim 7 (depends on 6)

The method according to claim 6, wherein before synchronizing a cumulative base of the first network device and a cumulative base of the second network device, the request information comprises the requested amount; and
after receiving the grant information, the method further comprises:
determining, by the first network device, the cumulative base based on the first sequence number or the second sequence number,
wherein the cumulative base is used to determine a third sequence number, and
wherein the third sequence number is a sum of the cumulative base of the first network device, an amount of data that the first network device previously requested to send, and an amount of data presently requested.

### Claim 8 (depends on 6)

The method according to claim 6, wherein after synchronizing a cumulative base of the first network device and a cumulative base of the second network device, the request information comprises a third sequence number that is a sum of the cumulative base of the first network device, an amount of data that the first network device has previously requested to send, and an amount presently requested.

### Claim 9

A data transmission method comprising:
receiving, by a second network device, request information describing an amount of data a first network device requests to send to the second network device;
determining, by the second network device, a first credit limit that is an amount of data allowed to be sent by the first network device in a packet-distributed load sharing manner;
determining, by the second network device, a first sequence number based on the first credit limit and either remaining space in an ordering cache of the second network device and the requested amount of data or a cumulative base of the second network device,
wherein the first sequence number indicates a sum of an amount of data second network device has previously authorized the first network device to send in the packet-distributed load sharing manner and an amount of data the second network device presently authorizes the first network device to send in the packet-distributed load sharing manner; and
determining, by the second network device, a second sequence number based on the cumulative base and a second credit limit that is an amount of data allowed to be sent by the first network device to a port of the second network device,
wherein the second credit limit is based on a bandwidth margin and the requested amount of data, and
wherein the second sequence number indicates a sum of an amount of data the second network device has previously authorized the first network device to send to a port of the second network device and an amount of data that the second network device presently authorizes the first network device to send to a port of the second network device;
sending, by the second network device, grant information to the first network device, wherein the grant information comprises the first sequence number and the second sequence number.

### Claim 10 (depends on 9)

The method according to claim 9, wherein determining the first credit limit comprises:
determining, by the second network device, that the first credit limit is a first preset limit; or
determining, by the second network device, the first credit limit based on a remaining space in an ordering cache and the request information, wherein the ordering cache is configured to reorder out-of-order data.

### Claim 11 (depends on 9)

The method according to claim 9, wherein determining the second credit limit comprises:
determining, by the second network device, that the second credit limit is a second preset limit; or
determining, by the second network device, the second credit limit based on a bandwidth margin and the request information.

### Claim 12 (depends on 9)

The method according to claim 9, wherein the request information further comprises one or both of an enabling field indicating whether a packet switching function and a request-grant flow control function enabled on the first network device.

### Claim 13 (depends on 9)

The method according to claim 9, wherein after synchronizing a cumulative base of the first network device and a cumulative base of the second network device, the request information comprises a third sequence number that is a sum of the cumulative base of the first network device, an amount of data that the first network device has previously requested to send and an amount of data presently requested.

### Claim 14

A non-transitory computer-readable storage medium, comprising one or more instructions, wherein when the one or more instructions are executed by one or more processors, the one or more processors is caused to perform a data transmission method comprising:
sending request information to a network device, wherein the request information is used to request to send data;
receiving grant information sent by the network device, wherein the grant information comprises first and second sequence numbers;
in response to the first sequence number being greater than a largest first sequence number previously received, determining a first credit limit based on a difference between the first sequence number and the largest first sequence number,
wherein the first credit limit is an amount of data allowed to be sent in a packet-distributed load sharing manner;
in response to the second sequence number being greater than a largest second sequence number previously received, determining a second credit limit based on a difference between the second sequence number and the largest second sequence number,
wherein the second credit limit is an amount of data allowed to be sent to a port of the network device; and
sending data to the network device based on the first and second credit limits.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein sending data to the network device based on the first credit limit comprises:
within a preset time period, upon the first credit limit being less than or equal to a first threshold, switching from the packet-distributed load sharing manner to a per-flow load sharing manner, and sending data to the network device in the per-flow load sharing manner.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein sending the data to the network device based on the first credit limit and the second credit limit comprises:
sending data to the network device based on a lesser one between the first credit limit and the second credit limit; or
in response to the first credit limit being less than the second credit limit, and a difference between the first credit limit and the second credit limit being greater than a second threshold, switching from the packet-distributed load sharing manner to a per-flow load sharing manner, and sending data to the network device in the per-flow load sharing manner.

### Claim 17 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein after receiving the grant information sent by the network device, the method further comprises:
upon the first sequence number being greater than the largest first sequence number, updating the largest first sequence number to the first sequence number; and
upon the second sequence number being greater than the largest second sequence number, updating the largest second sequence number to the second sequence number.

### Claim 18 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein the request information further comprises one or both of an enabling field indicating whether a packet distribution function and a request-grant flow control function are/is enabled.

### Claim 19 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein the request information further indicates a requested amount of data to send.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium according to claim 19, wherein after synchronizing a cumulative base and a cumulative base of the network device, the request information comprises a third sequence number that is a sum of the cumulative base, an amount of data previously requested to send, and an amount presently requested.
