# US 2018/0323913 A1 · Data transmission method and related device

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

- Number: US 2018/0323913 A1
- Document ID: US20180323913A1
- Status: Published application
- Kind: A1
- Application number: 16/038,112
- Filed: 2018-07-17
- Published: 2018-11-08
- Earliest claimed: 2016-01-18
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Guohai CHEN
- Web page: https://patentgrep.com/patent/US20180323913A1

## CPC

- H04L 1/1825: Adaptation of specific ARQ protocol parameters according to transmission conditions
- H04L 1/1854: {Scheduling and prioritising arrangements}
- H04L 1/1887: {Scheduling and prioritising arrangements}
- H04L 5/0055: {Physical resource allocation for ACK/NACK (for physical mapping arrangements in ARQ protocols H04L1/1861)}
- H04L 9/40: Network security protocols
- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A data transmission method and a device are provided. A receive end receives, using a first protocol, K packets sent by a transmit end, determines a second sending delay based on a target packet when detecting that the target packet is lost; sends an ACK message to the transmit end by using the first protocol based on the second sending delay, where the ACK message is used to notify the transmit end that the receive end has received all packets sent by the transmit end; sends a retransmission request for the target packet to the transmit end by using a second protocol, and receives, by using the second protocol, the target packet retransmitted by the transmit end. The method ensures high and stable throughputs, and lowers a memory requirement compared with an improved technology that uses TCP streams to transmit data, thereby saving system resources.

## Claims

### Claim 1

A data transmission method, comprising:
receiving K packets using a first protocol, wherein each packet comprises a sequence number, and the K packets are a subset of L packets sent by a transmit end;
determining a second sending delay based on a target packet when it is detected that the target packet is lost using the first protocol based on sequence numbers in the K packets, wherein the second sending delay is greater than a first sending delay, and the first sending delay is preset;
sending an acknowledgement (ACK) message to the transmit end using the first protocol based on the second sending delay, wherein the ACK message is used to notify the transmit end that a receive end has received the L packets;
sending a retransmission request for the target packet to the transmit end using a second protocol; and
receiving, using the second protocol, the target packet retransmitted by the transmit end.

### Claim 2 (depends on 1)

The method according to claim 1, wherein before determining a second sending delay based on a target packet, the method further comprises:
determining whether a sequence number corresponding to the last byte of a first packet in the K packets is continuous with a sequence number corresponding to the first byte of a second packet in the K packets, wherein the first packet is received before the second packet.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising: determining that no packet is lost if the sequence number corresponding to the last byte of the first packet is continuous with the sequence number corresponding to the first byte of the second packet.

### Claim 4 (depends on 2)

The method according to claim 2, further comprising: determining that at least one packet is lost if the sequence number corresponding to the last byte of the first packet is not continuous with the sequence number corresponding to the first byte of the second packet, wherein the at least one packet is the target packet.

### Claim 5 (depends on 1)

The method according to claim 1, wherein before sending a retransmission request for the target packet to the transmit end using a second protocol, the method further comprises:
sending information about the target packet to a second protocol layer of the second protocol by a first protocol layer of the first protocol.

### Claim 6 (depends on 4)

The method according to claim 4, wherein after determining that at least one packet is lost, the method further comprises:
determining a location of the target packet using the second protocol based on an initial sequence number of the first protocol, the sequence number corresponding to the last byte of the first packet, and the sequence number corresponding to the first byte of the second packet.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the determining a location of the target packet using the second protocol based on an initial sequence number of the first protocol, the sequence number corresponding to the last byte of the first packet, and the sequence number corresponding to the first byte of the second packet comprises:
calculating a sequence number corresponding to the first byte of the target packet based on a formula M=A+1, wherein
M is the sequence number corresponding to the first byte of the target packet, and A is the sequence number corresponding to the last byte of the first packet;
calculating a length of the target packet based on a formula N=B−A−1, wherein
N is the length of the target packet and B is the sequence number corresponding to the first byte of the second packet; and
calculating an offset location of the target packet based on a formula Q=A−Y, wherein
Q is the offset location of the target packet and Y is the initial sequence number.

### Claim 8 (depends on 1)

The method according to claim 1, wherein after the determining a second sending delay based on a target packet, the method further comprises:
starting a counter;
each time one packet is received, determining whether a packet loss occurs;
if a packet is lost, resetting the counter and increasing the second sending delay, or if no packet is lost,
increasing a value of the counter,
determining whether the value of the counter reaches a preset threshold, and
if the value of the counter reaches the preset threshold, decreasing the second sending delay and resetting the counter.

### Claim 9

A receive end, comprising:
a processor; and
a non-transitory computer readable medium which contains computer-executable instructions,
wherein the processor is configured to execute the computer-executable instructions to perform operations, the operations comprising:
receiving K packets using a first protocol, wherein each packet comprises a sequence number, and the K packets are a subset of L packets sent by a transmit end;
determining a second sending delay based on a target packet when it is detected that the target packet is lost using the first protocol based on sequence numbers in the K packets, wherein the second sending delay is greater than a first sending delay, and the first sending delay is preset;
sending an acknowledgement (ACK) message to the transmit end using the first protocol based on the second sending delay, wherein the ACK message is used to notify the transmit end that a receive end has received the L packets;
sending a retransmission request for the target packet to the transmit end using a second protocol; and
receiving, using the second protocol, the target packet retransmitted by the transmit end.

### Claim 10 (depends on 9)

The receive end according to claim 9, wherein before the determining a second sending delay based on a target packet, the processor is further configured to execute the computer-executable instructions to perform an operation comprising:
determining whether a sequence number corresponding to the last byte of a first packet in the K packets is continuous with a sequence number corresponding to the first byte of a second packet in the K packets, wherein the first packet is received before the second packet.

### Claim 11 (depends on 10)

The receive end according to claim 10, wherein the processor is further configured to execute the computer-executable instructions to perform an operation comprising: determining that no packet is lost if the sequence number corresponding to the last byte of the first packet is continuous with the sequence number corresponding to the first byte of the second packet.

### Claim 12 (depends on 10)

The receive end according to claim 10, wherein the processor is further configured to execute the computer-executable instructions to perform an operation comprising: determining that at least one packet is lost if the sequence number corresponding to the last byte of the first packet is not continuous with the sequence number corresponding to the first byte of the second packet, wherein the at least one packet is the target packet.

### Claim 13 (depends on 9)

The receive end according to claim 9, wherein before the sending a retransmission request for the target packet to the transmit end using a second protocol, the processor is further configured to execute the computer-executable instructions to perform an operation comprising: sending information about the target packet to a second protocol layer of the second protocol by a first protocol layer of the first protocol.

### Claim 14 (depends on 12)

The receive end according to claim 12, wherein after the determining that at least one packet is lost, the processor is further configured to execute the computer-executable instructions to perform an operation comprising: determining a location of the target packet by using the second protocol based on an initial sequence number of the first protocol, the sequence number corresponding to the last byte of the first packet, and the sequence number corresponding to the first byte of the second packet.

### Claim 15 (depends on 14)

The receive end according to claim 14, wherein the determining a location of the target packet by using the second protocol based on an initial sequence number of the first protocol, the sequence number corresponding to the last byte of the first packet, and the sequence number corresponding to the first byte of the second packet comprises:
calculating a sequence number corresponding to the first byte of the target packet based on a formula M=A+1, wherein
M is the sequence number corresponding to the first byte of the target packet and A is the sequence number corresponding to the last byte of the first packet;
calculating a length of the target packet based on a formula N=B−A−1, wherein
N is the length of the target packet and B is the sequence number corresponding to the first byte of the second packet; and
calculating an offset location of the target packet based on a formula Q=A−Y, wherein
Q is the offset location of the target packet and Y is the initial sequence number.

### Claim 16 (depends on 9)

The receive end according to claim 9, wherein after the determining a second sending delay based on a target packet, the processor is further configured to execute the computer-executable instructions to perform an operation comprising:
starting a counter;
each time one packet is received, determining whether a packet loss occurs;
if a packet is lost, resetting the counter and increasing the second sending delay; and
if no packet is lost,
increasing a value of the counter,
determining whether the value of the counter reaches a preset threshold, and
if the value of the counter reaches the preset threshold, decreasing the second sending delay, and resetting the counter.

### Claim 17

A receive end, comprising:
a receiving module configured to receive K packets by using a first protocol, wherein each packet comprises a sequence number, and the K packets are a subset of L packets sent by a transmit end;
a determining module configured to determine a second sending delay based on a target packet when detecting that the target packet is lost using the first protocol based on sequence numbers in the K packets received by the receiving module, wherein the second sending delay is greater than a first sending delay, and the first sending delay is preset; and
a sending module configured to send an acknowledgement (ACK) message to the transmit end using the first protocol based on the second sending delay determined by the determining module, wherein the ACK message is used to notify the transmit end that the receive end has received the L packets, wherein
the sending module is further configured to send a retransmission request for the target packet to the transmit end using a second protocol when the determining module detects that the target packet is lost using the first protocol based on the sequence numbers in the K packets; and
the receiving module is further configured to: after the sending module sends the retransmission request for the target packet to the transmit end using the second protocol, receive, using the second protocol, the target packet retransmitted by the transmit end.

### Claim 18 (depends on 17)

The receive end according to claim 17, wherein the receive end further comprises a judgment module, wherein
the judgment module is configured to:
before the determining module determines the second sending delay based on the target packet, and
determine whether a sequence number corresponding to the last byte of a first packet in the K packets is continuous with a sequence number corresponding to the first byte of a second packet in the K packets, wherein the first packet is received before the second packet; and
the determining module is further configured to:
determine that no packet is lost if the judgment module determines that the sequence number corresponding to the last byte of the first packet is continuous with the sequence number corresponding to the first byte of the second packet, or
determine that at least one packet is lost if the judgment module determines that the sequence number corresponding to the last byte of the first packet is not continuous with the sequence number corresponding to the first byte of the second packet, wherein the at least one packet is the target packet.

### Claim 19 (depends on 17)

The receive end according to claim 17, wherein
the sending module is further configured to: before the sending module sends the retransmission request for the target packet to the transmit end using the second protocol, send information about the target packet to a second protocol layer of the second protocol by a first protocol layer of the first protocol.

### Claim 20 (depends on 18)

The receive end according to claim 18, wherein
the determining module is further configured to: after the determining module determines that the at least one packet is lost, determine a location of the target packet using the second protocol based on an initial sequence number of the first protocol, the sequence number corresponding to the last byte of the first packet, and the sequence number corresponding to the first byte of the second packet.
