IP Library › Granted Patent US 11,671,210
Granted Patent B2
US 11,671,210 · App. 17/138,321 · Granted Jun 6, 2023

Retransmission control method, communications interface, and electronic device

Inventors: Zhen Cao (Beijing, CN); Kai Zheng (Beijing, CN); Ilpo Jarvinen (Helsinki, FI); Markku Kojo (Helsinki, FI)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L1/188H04L5/0055H04L49/552
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,671,210
App. No.
17/138,321
Granted
Jun 6, 2023
Kind
B2
Abstract

This application provide a retransmission control method, a communications interface, and an electronic device. When a transmit end transmits a first data packet to a receive end and does not receive an acknowledgement corresponding to the first data packet within a first RTO, the transmit end retransmits a second data packet based on a second RTO. The second data packet is a data packet transmitted by the transmit end after the transmit end transmits the first data packet. The second RTO is related to a receive timestamp of the acknowledgement corresponding to the first data packet and a transmit timestamp of the first data packet.

Claims (61)

1. A retransmission control method, comprising:

transmitting, by a transmit end, a first data packet to a receive end; and

when the transmit end does not receive an acknowledgement corresponding to the first data packet within a first retransmission timeout time (RTO), wherein the acknowledgement indicates that the receive end has received the first data packet, performing the following operations:

retransmitting, by the transmit end, the first data packet, and calculating a second RTO based on a receive timestamp of the acknowledgement corresponding to the first data packet and a transmit timestamp of the first data packet; and

transmitting, by the transmit end, a second data packet based on the second RTO, wherein the second data packet is transmitted by the transmit end after transmitting the first data packet, wherein the transmitting of the second data packet based on the second RTO comprises:

when the transmit end does not receive an acknowledgement corresponding to the second data packet within the first RTO, retransmitting, by the transmit end, the second data packet; and

when the transmit end does not receive the acknowledgement corresponding to the second data packet that has been retransmitted within the second RTO, retransmitting, by the transmit end, the second data packet again;

when the transmit end receives the acknowledgement corresponding to the second data packet within the first RTO, updating, by the transmit end, the first RTO based on a transmit timestamp of the second data packet and a receive timestamp of the acknowledgement corresponding to the second data packet; and

when the transmit end does not receive an acknowledgement corresponding to a third data packet within the updated first RTO, retransmitting, by the transmit end, the third data packet, wherein the third data packet is transmitted by the transmit end after transmitting the second data packet.

2. The method according to claim 1 , wherein the second RTO is greater than a product of the first RTO and a first coefficient, and wherein a value of the first coefficient is greater than 1.

3. The method according to claim 2 , wherein the value of the first coefficient is 2.

4. The method according to claim 1 , further comprising:

updating the second RTO based on a receive timestamp of the acknowledgement corresponding to the second data packet and a transmit timestamp of the second data packet; and

when the transmit end does not receive an acknowledgement corresponding to the third data packet within the second RTO, retransmitting, by the transmit end, the third data packet, wherein the third data packet is transmitted by the transmit end after transmitting the second data packet.

5. The method according to claim 4 , further comprising:

when the transmit end receives the acknowledgement corresponding to the third data packet within the second RTO, updating, by the transmit end, the first RTO based on a transmit timestamp of the third data packet and a receive timestamp of the acknowledgement corresponding to the third data packet; and

when the transmit end does not receive an acknowledgement corresponding to a fourth data packet within the updated first RTO, retransmitting, by the transmit end, the fourth data packet, wherein the fourth data packet is transmitted by the transmit end after transmitting the third data packet.

6. The method according to claim 4 , further comprising:

updating the second RTO based on a receive timestamp of the acknowledgement corresponding to the third data packet and a transmit timestamp of the third data packet; and

when the transmit end does not receive an acknowledgement corresponding to a fourth data packet within the updated second RTO, retransmitting, by the transmit end, the fourth data packet, wherein the fourth data packet is transmitted by the transmit end after transmitting the third data packet.

7. The method according to claim 1 , wherein the second RTO represents a time difference between the receive timestamp of the acknowledgement corresponding to the first data packet and the transmit timestamp of the first data packet.

8. The method according to claim 1 , wherein the second RTO is a product of a second coefficient and a time difference between the transmit timestamp of the first data packet and the receive timestamp of the acknowledgement corresponding to the first data packet, wherein a value of the second coefficient is greater than 0.

9. The method according to claim 8 , wherein the value of the second coefficient is 1.5.

10. The method according to claim 1 , wherein the first data packet includes a retransmission sequence number indicating a quantity of times the first data packet has been transmitted, and the acknowledgement corresponding to the first data packet received by the transmit end includes a retransmission sequence number identical to the retransmission sequence number in the first data packet; and

the second RTO represents a time difference between the receive timestamp of the acknowledgement corresponding to the first data packet received by the transmit end and the transmit timestamp of the first data packet corresponding to the acknowledgement.

11. The method according to claim 10 , wherein the first data packet comprises an extension field to store the retransmission sequence number.

12. The method according to claim 10 , wherein the retransmission sequence number is in a token field in the first data packet.

13. The method according to claim 1 , wherein the first data packet includes a retransmission sequence number indicating a quantity of times the first data packet has been transmitted, and the acknowledgement corresponding to the first data packet received by the transmit end includes a retransmission sequence number identical to the retransmission sequence number in the first data packet corresponding to the acknowledgement; and

the second RTO is a product of a second coefficient and a time difference between the receive timestamp of the acknowledgement received by the transmit end and the transmit timestamp of the first data packet corresponding to the acknowledgement, wherein a value of the second coefficient is greater than 0.

14. A non-transitory computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor of a transmit end, cause the transmit end to perform operations, the operations comprising:

transmitting a first data packet to a receive end; and

when the transmit end does not receive an acknowledgement corresponding to the first data packet within a first retransmission timeout time (RTO), wherein the acknowledgement indicates that the receive end has received the first data packet, performing the following operations:

retransmitting the first data packet, and calculating a second RTO based on a receive timestamp of the acknowledgement corresponding to the first data packet and a transmit timestamp of the first data packet; and

transmitting a second data packet based on the second RTO, wherein the second data packet is transmitted by the transmit end after transmitting the first data packet, wherein the transmitting of the second data packet based on the second RTO comprises:

when the transmit end does not receive an acknowledgement corresponding to the second data packet within the first RTO, retransmitting, by the transmit end, the second data packet; and

when the transmit end does not receive the acknowledgement corresponding to the second data packet that has been retransmitted within the second RTO, retransmitting, by the transmit end, the second data packet again;

when the transmit end receives the acknowledgement corresponding to the second data packet within the first RTO, updating, by the transmit end, the first RTO based on a transmit timestamp of the second data packet and a receive timestamp of the acknowledgement corresponding to the second data packet; and

when the transmit end does not receive an acknowledgement corresponding to a third data packet within the updated first RTO, retransmitting, by the transmit end, the third data packet, wherein the third data packet is transmitted by the transmit end after transmitting the second data packet.

15. A communications interface, comprising:

an input/output (IO) port; and

a processor to:

transmit a first data packet to a receive end through the IO port; and

when the IO port does not receive an acknowledgement corresponding to the first data packet within a first retransmission timeout time (RTO), wherein the acknowledgement indicates that the receive end has received the first data packet, perform the following operations:

retransmitting the first data packet through the IO port, and calculating a second RTO based on a receive timestamp of the acknowledgement corresponding to the first data packet and a transmit timestamp of the first data packet; and

transmitting a second data packet through the IO port based on the second RTO, wherein the second data packet is transmitted after the first data packet is transmitted through the IO port, wherein the transmitting of the second data packet based on the second RTO comprises:

when the IO port does not receive an acknowledgement corresponding to the second data packet within the first RTO, retransmitting the second data packet; and

when the IO port does not receive the acknowledgement corresponding to the second data packet that has been retransmitted within the second RTO, retransmitting the second data packet again;

when the IO port receives the acknowledgement corresponding to the second data packet within the first RTO, update the first RTO based on a transmit timestamp of the second data packet and a receive timestamp of the acknowledgement corresponding to the second data packet; and

when the IO port does not receive an acknowledgement corresponding to a third data packet within the updated first RTO, retransmit the third data packet, wherein the third data packet is transmitted after transmitting the second data packet.

16. The communications interface according to claim 15 ,

wherein the second RTO is greater than a product of the first RTO and a first coefficient, and a value of the first coefficient is greater than 1.

17. The communications interface according to claim 15 , wherein when the IO port receives the acknowledgement corresponding to the second data packet within the first RTO, the processor is further to:

update the first RTO based on a transmit timestamp of the second data packet and a receive timestamp of the acknowledgement corresponding to the second data packet; and

when the IO port does not receive an acknowledgement corresponding to the third data packet within the updated first RTO, retransmit the third data packet through the IO port, wherein the third data packet is transmitted after the second data packet is transmitted through the IO port.

18. The communications interface according to claim 17 , wherein the processor is further to:

when the transmit end receives the acknowledgement corresponding to the third data packet within the second RTO, update the first RTO based on a transmit timestamp of the third data packet and a receive timestamp of the acknowledgement corresponding to the third data packet; and

when the transmit end does not receive an acknowledgement corresponding to a fourth data packet within the updated first RTO, retransmit the fourth data packet, wherein the fourth data packet is transmitted by the transmit end after transmitting the third data packet.

19. The communications interface according to claim 17 , wherein the processor is further to:

update the second RTO based on a receive timestamp of the acknowledgement corresponding to the third data packet and a transmit timestamp of the third data packet; and

when the IO port does not receive an acknowledgement corresponding to a fourth data packet within the updated second RTO, retransmitting the fourth data packet, wherein the fourth data packet is transmitted after transmitting the third data packet.

20. The communications interface according to claim 15 , wherein the second RTO represents a time difference between the receive timestamp of the acknowledgement corresponding to the first data packet and the transmit timestamp of the first data packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2023
From: CAO, ZHEN; ZHENG, KAI; JARVINEN, ILPO; KOJO, MARKKU
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 062858/0258 →
Priority Claims (1)
CN 201810710158.6 · Jul 2, 2018 · national
Continuity (2)
Continuation PCTCN2019081718 · Apr 8, 2019
Related Publication 20210126741A1 · Apr 29, 2021