WO2020063501A1 - 传输确认报文的方法和通信设备 - Google Patents

传输确认报文的方法和通信设备 Download PDF

Info

Publication number
WO2020063501A1
WO2020063501A1 PCT/CN2019/107177 CN2019107177W WO2020063501A1 WO 2020063501 A1 WO2020063501 A1 WO 2020063501A1 CN 2019107177 W CN2019107177 W CN 2019107177W WO 2020063501 A1 WO2020063501 A1 WO 2020063501A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
field
message
bytes
group
Prior art date
Application number
PCT/CN2019/107177
Other languages
English (en)
French (fr)
Inventor
王伟光
李峰
周兴旺
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP19867987.0A priority Critical patent/EP3813284B1/en
Priority to JP2021500682A priority patent/JP7210867B2/ja
Publication of WO2020063501A1 publication Critical patent/WO2020063501A1/zh
Priority to US17/162,556 priority patent/US11533657B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Definitions

  • the present application relates to the field of communications, and more particularly, to a method and a communication device for transmitting an acknowledgement message.
  • Reliable transmission protocols such as Transmission Control Protocol (TCP) usually include a message confirmation mechanism, which is used to feedback that a data message has been successfully received by the receiver, or assist the sender to perform packet loss and retransmission.
  • TCP Transmission Control Protocol
  • the reliable transmission protocol ensures the reliable transmission of data in the network through the following rules:
  • the reliability transmission protocol assigns a sequence number to each data message, which ensures that the data message is received in order from the sending end to the receiving end. After the receiver receives the data message, it will generate and send an acknowledgement message (acknowledgment, ACK) containing the corresponding sequence number (may be called an acknowledgement sequence number), indicating that the corresponding data message has been successfully received by the receiver;
  • ACK acknowledgement message
  • the above process illustrates how the confirmation message assists the reliable transmission protocol in confirming the arrival of the data message and assists in retransmission.
  • the acknowledgement message only contains the acknowledgement sequence number.
  • This application provides a method and a communication device for transmitting an acknowledgement message, which can clearly identify data messages that need to be retransmitted, thereby reducing resource waste.
  • the present application provides a method for transmitting an acknowledgement message.
  • the method includes: a first device receives data sent by a second device, where the data includes N data packets; and the first device sends the second message to the second device.
  • the device sends a confirmation message.
  • the confirmation message includes a confirmation field.
  • the confirmation field includes a first field and a second field.
  • the second field includes K positions and K lengths.
  • the i-th position of the K positions is The position of the start byte or the end byte of the ith group of data messages in the K group of data messages.
  • the i-th length of the K lengths is the ith group of the K-th data messages. The length of the data message.
  • Each group of data messages in the K group of data messages includes one data message or multiple consecutive data messages, and each group of data messages includes one data message or multiple consecutive data.
  • a start position or an end position and a length are used to represent a group of data packets, and the data length varies with the data contained in each group of data packets received / lost by the first device.
  • the quantity changes, so that the first device can dynamically adjust the number of bytes represented by a group of data messages according to the data length of each group of data messages, which can make the confirmation messages take up less space, thereby improving the bandwidth utilization. .
  • the start position is the sequence number of the start data message or the sequence number of the start byte
  • the end position is the sequence number of the end data message or the sequence number of the end byte.
  • a sequence number of a data message or a sequence number of a byte is used to indicate a position, which is easy to implement.
  • the length is an offset from the sequence number of the start data message or the end data message, or an offset from the sequence number of the start byte or the end byte. Shift amount.
  • an offset is used in combination with the start position or the end position to represent a group of data messages. This can avoid the problem of a large data length value caused by the serial number being continuously superimposed, and can enable the confirmation message. Takes up less space, thereby improving broadband utilization.
  • the first field includes the K value.
  • the first field carries the K value, which can directly instruct the second device how to read the content of the confirmation field, so that the second device can correctly parse the confirmation message.
  • the first field includes a first byte number, and the first byte number is a number of bytes occupied by the confirmation field.
  • the first field carries the first byte number, which can indirectly instruct the second device how to read the content of the confirmation field, so that the second device can correctly parse the confirmation message.
  • the first field further includes a second number of bytes, where the second number of bytes indicates a number of bytes occupied by the length.
  • the second byte number changes as the number of bytes represented by one length changes.
  • the number of bytes represented by a group of data packets can be dynamically adjusted, thereby instructing the second device to correctly parse the confirmation. Message.
  • the first field further includes a second number of bytes, where the second number of bytes is used to indicate a number of bytes occupied by one of the position and one of the length.
  • the number of bytes occupied by the length representing the group of data packets is the number of bytes represented by the largest length among the K lengths.
  • the number of bytes occupied by the length representing a group of data messages is the number of bytes represented by the largest length among the K lengths, which can ensure the correct representation of any group of data messages.
  • the confirmation field further includes a third field, where the third field is used to indicate a type of the confirmation field.
  • the third field indicates the type of the confirmation field, which can facilitate the second device to determine a method for parsing the confirmation message, and then correctly parse the confirmation message.
  • the K group of data packets are successfully received data packets.
  • the data message that needs to be retransmitted can be specified, thereby reducing resource waste.
  • the K group of data packets are data packets that are not successfully received.
  • the data message that needs to be retransmitted can be specified, thereby reducing resource waste.
  • the present application provides a method for transmitting an acknowledgement message.
  • a start position or an end position and a length are used to represent a group of data packets, and the data length varies with the data contained in each group of data packets received / lost by the first device.
  • the quantity changes, so that the first device can dynamically adjust the number of bytes represented by a group of data messages according to the data length of each group of data messages, which can make the confirmation messages take up less space, thereby improving the bandwidth utilization. .
  • the start position is the sequence number of the start data message or the sequence number of the start byte
  • the end position is the sequence number of the end data message or the sequence number of the end byte.
  • a sequence number of a data message or a sequence number of a byte is used to indicate a position, which is easy to implement.
  • the length is an offset from the sequence number of the start data message or the end data message, or an offset from the sequence number of the start byte or the end byte. Shift amount.
  • an offset is used in combination with the start position or the end position to represent a group of data messages. This can avoid the problem of a large data length value caused by the serial number being continuously superimposed, and can enable the confirmation message. Takes up less space, thereby improving broadband utilization.
  • the first field includes the K value.
  • the first field carries the K value, which can directly instruct the second device how to read the content of the confirmation field, so that the second device can correctly parse the confirmation message.
  • the first field includes a first byte number, and the first byte number is a number of bytes occupied by the confirmation field.
  • the first field carries the first byte number, which can indirectly instruct the second device how to read the content of the confirmation field, so that the second device can correctly parse the confirmation message.
  • the first field further includes a second number of bytes, where the second number of bytes indicates a number of bytes occupied by the length.
  • the second byte number changes as the number of bytes represented by one length changes.
  • the number of bytes represented by a group of data packets can be dynamically adjusted, thereby instructing the second device to correctly parse the confirmation. Message.
  • the first field further includes a second number of bytes, where the second number of bytes is used to indicate a number of bytes occupied by one of the position and one of the length.
  • the number of bytes occupied by the length representing the group of data packets is the number of bytes represented by the largest length among the K lengths.
  • the number of bytes occupied by the length representing a group of data messages is the number of bytes represented by the largest length of the K lengths. Under the premise, reduce the space occupied by the acknowledgement message.
  • the confirmation field further includes a third field, where the third field is used to indicate a type of the confirmation field.
  • the third field indicates the type of the confirmation field, which can facilitate the second device to determine a method for parsing the confirmation message, and then correctly parse the confirmation message.
  • the K group of data packets are successfully received data packets.
  • the data message that needs to be retransmitted can be specified, thereby reducing resource waste.
  • the K group of data packets are data packets that are not successfully received.
  • the data message that needs to be retransmitted can be specified, thereby reducing resource waste.
  • the present application provides a communication device including a module for performing the first aspect or any one of the implementation manners of the first aspect.
  • the present application provides a communication device including a module for implementing the second aspect or any implementation manner of the second aspect.
  • the present application provides a chip, including a processor and a transceiver, for performing the method according to the first aspect or any implementation manner of the first aspect.
  • the present application provides a chip, including a processor and a transceiver, for performing the second aspect or the method described in any implementation manner of the second aspect.
  • the present application provides a communication device, including a processor and a transceiver, for performing the method according to the first aspect or any implementation manner of the first aspect.
  • the present application provides a communication device, including a processor and a transceiver, for performing the method described in the second aspect or any implementation manner of the second aspect.
  • the present application provides a computer-readable storage medium including instructions that, when run on a communication device, cause the communication device to perform the method described in the first aspect or any one of the implementation manners of the first aspect.
  • the present application provides a computer-readable storage medium including instructions that, when run on a communication device, cause the communication device to perform the method described in the second aspect or any one of the implementation manners of the second aspect.
  • the present application provides a computer program product that, when running on a communication device, causes the communication device to perform the method described in the first aspect or any implementation manner of the first aspect.
  • the present application provides a computer program product that, when running on a communication device, causes the communication device to perform the method described in the second aspect or any one of the implementation manners of the second aspect.
  • FIG. 1 is a schematic diagram of the TCP acknowledgement message mechanism.
  • FIG. 2 is a schematic diagram of a TCP message retransmission mechanism.
  • FIG. 3 is a schematic flowchart of a method for transmitting an acknowledgement message according to an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a location of an option field of a TCP acknowledgement message.
  • FIG. 5 is a schematic diagram of a large number of packet loss situations during data transmission.
  • FIG. 6 is two examples of adopting the method of the embodiment of the present application and another method, respectively.
  • FIG. 7 is a schematic structural diagram of a communication device according to an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a communication device according to another embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a communication device according to another embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of a communication device according to another embodiment of the present application.
  • This application can be applied to various scenarios where a reliable transmission protocol is applied, for example, various scenarios where TCP is applied.
  • This application can also be applied to other scenarios, as long as there is a device at one end that needs to indicate which packets the other device needs to retransmit, the device at one end needs to interpret it in some way and retransmit the report according to the instruction of the other device
  • the text can be, for example, various scenarios of UDP with the confirmation mechanism added.
  • the type of the communication device is not specifically limited in this application, and may be, for example, a communication device to which a reliable transmission protocol is applied.
  • the communication equipment to which the reliability transmission protocol is applied may be a computer, a mobile phone, a tablet computer, or the like.
  • FIG. 1 is a schematic diagram of the TCP acknowledgement message mechanism.
  • FIG. 1 is a schematic diagram of the TCP acknowledgement message mechanism.
  • FIG. 1 when data is sent from host A to host B, host B returns a confirmation response to host A.
  • host A sends a data packet with a serial number of 1 to 1000 to host B.
  • the host After B successfully receives the data message with the sequence number 1 ⁇ 1000, it will send a confirmation response containing the confirmation sequence number 1001 to the host A, that is, the confirmation message, indicating that the sequence number of the next data message expected is 1001.
  • host A After parsing the acknowledgement, host A sends a data packet with a serial number of 1001 to 2000 to host B, and so on; if host A does not receive the confirmation packet from host B within a reasonable time, then host A Assuming that the data message has been lost, the data message retransmission mechanism is triggered.
  • FIG. 2 is a schematic diagram of the TCP message retransmission mechanism. As shown in FIG. 2, when host A receives three consecutive acknowledgment messages with a serial number of 100, host A determines that the data packet with a serial number of 100 is lost during transmission and performs packet loss retransmission.
  • host A will face the problem of whether to retransmit only the data packets with the serial number 100, or simultaneously retransmit the data packets with the serial numbers 120, 135, and 141 sent after the data packet with the serial number 100.
  • the retransmission efficiency can be improved if the data packets with sequence numbers 120, 135, and 141 are successfully transmitted; however, data packets with sequence numbers 120, 135, and 141 can be improved.
  • host A needs to wait for the data packets with sequence numbers 120, 135, and 141 to time out before they can retransmit the packets separately, which will cause a lot of waste of time and bandwidth.
  • This application provides a method for transmitting an acknowledgement message, which can clearly identify data messages that need to be retransmitted, thereby reducing waste of resources.
  • FIG. 3 is a schematic flowchart of a method for transmitting an acknowledgement message according to an embodiment of the present application. The method shown in FIG. 3 includes at least part of the following.
  • the second device sends data to the first device, where the data includes N data packets.
  • the first device sends a confirmation message to the second device
  • the confirmation message includes a confirmation field
  • the confirmation field includes a first field and a second field
  • the second field includes K positions and K lengths
  • the i-th position of the K positions is the start position or the end position of the i-th data packet in the K-group data packet
  • the i-th length of the K lengths is the K-th data packet
  • Each group of data messages in the K group of data messages includes one data message or multiple consecutive data messages, and each group of data messages includes one data message.
  • the embodiments of the present application do not specifically limit the types of the first device and the second device.
  • the first device may be any device that supports a reliability transmission protocol or a confirmation mechanism, such as a computer, a mobile phone, and a tablet computer.
  • the confirmation message may have no confirmation field.
  • a start position or an end position and a length are used to represent a group of data packets, and the length varies with the amount of data contained in each group of data packets received / lost by the first device.
  • the change can dynamically adjust the number of bytes required to represent a group of data messages according to the length of each group of data messages, which can make the confirmation messages take up less space, thereby improving the bandwidth utilization.
  • the second device sends data to the first device, where the data includes N data packets.
  • the first device receives the N data packets. It should be understood that the first device may successfully receive all N data packets, or may only successfully receive a part of the N data packets.
  • Each data message can consist of multiple bytes of data.
  • the first device sends a confirmation message to the second device
  • the confirmation message includes a confirmation field
  • the confirmation field includes a first field and a second field
  • the second field includes K sequence numbers and K Length
  • the i-th sequence number in the K sequence numbers is the start position or the end position of the i-th group data message in the K-group data message
  • the i-th length in the K-lengths is the K-th The length of the i-th group of data packets in a group data packet.
  • Each group of data packets in the K group data packets includes one data packet or multiple consecutive data packets.
  • the second device receives and parses the confirmation message sent by the first device, and then retransmits the data message according to the content in the confirmation message.
  • the first device indicates, through the confirmation message, a data message that the second device needs to retransmit.
  • Data packets that need to be retransmitted can exist in the following two situations.
  • Single data message for example, data message number 4.
  • the first device indicates the data message that the second device needs to retransmit by using the confirmation field in the confirmation message.
  • the confirmation field may be located in a reserved field of a reliable transmission protocol message.
  • TCP for TCP, it can be located in the option field of the TCP acknowledgement message, as shown in Figure 4.
  • the confirmation field may be a newly added field in the reliability transmission protocol message.
  • the first device indicates a data packet that the second device needs to retransmit by using a second field in the confirmation field.
  • the K start positions or K end positions of the K group data packets and the K lengths are used to represent the K group data packets, where the K group data packets may be successfully received data packets, It can also be a data message that was not successfully received.
  • the start position can be represented by the sequence number of the start data message in a group of data messages
  • the end position can be represented by the sequence number of the end data message in a group of data messages
  • the length can be Is the sequence number offset relative to the start data message or the end data message (at this time, the data message can be consecutively numbered, for example, No. 4 data message, No. 5 data message, No. 6 data message ,). That is, the sequence number of the start data message or the end data message in a group of data messages is used, and the sequence number offset from the start data message or the end data message is used to represent The group of data messages. For example, if a group of data packets includes data packets 4-9, it can be expressed as (4,5) or (9,5); if a group of data packets includes data packet 4, it can be expressed as (4 , 0).
  • the start position can be represented by the sequence number of the start byte in a group of data messages
  • the end position can be represented by the sequence number of the end byte in a group of data messages
  • the length can be relative The sequence number offset for the start or end byte. That is, the sequence number of the start byte or the end byte in a group of data messages and the sequence number offset from the start byte or the end byte are used to represent the group of data messages. Text.
  • a group of data messages includes two consecutive data messages, 101 and 151, and the data length of the two data messages is 50, which can be expressed as (101,99) or (200, 99);
  • a group of data packets includes data packet 101, and the data length of data packet 101 is 50, which can be expressed as (101,49) or (150,49).
  • the sequence number of a data message or the sequence number of a byte is used to indicate a position, which is easy to implement.
  • an offset is used to represent a group of data messages. This can avoid The problem of large data length values caused by the serial number being continuously superimposed can enable the confirmation message to occupy a small space, thereby improving the bandwidth utilization.
  • the start position can be represented by the sequence number of the start data message in a group of data messages
  • the end position can be represented by the sequence number of the end data message in a group of data messages
  • the length can be Is the number of data messages in the group of data messages. That is, the sequence number of the start data message or the sequence number of the end data message in a group of data messages and the number of data messages in the group of data messages are used to represent the group of data messages. For example, if a group of data packets includes data packets 4-9, it can be expressed as (4,6) or (9,6); if a group of data packets includes data packet 4, it can be expressed as (4 ,1).
  • the start position may be represented by the sequence number of the start byte in a group of data messages
  • the end position may be represented by the sequence number of the end byte in a group of data messages
  • the length may be The number of bytes in the group data message. That is, the sequence number of the start data message or the sequence number of the end data message in a group of data messages, and the number of bytes in the group of data messages are used to represent the group of data messages.
  • a group of data packets includes two consecutive data packets, which are data packets 101 and 151, and the data length of the two data packets is 50, which can be expressed as (101,100) or (200,100);
  • the group data message includes the 101 data message, and the data length of the 101 data message is 50, which can be expressed as (101,50) or (150,50).
  • the sequence number of the data message or the sequence number of the byte is used to indicate the position, which is easy to implement.
  • the number of data messages or the number of bytes is used to represent a group of data. Message, this can avoid the problem of large data length caused by the serial number continuously superimposed, can make the confirmation message occupy a small space, and thus improve the bandwidth utilization.
  • the second device may save the serial number of the corresponding byte of each data packet and the serial number offset, so as to find the corresponding according to the serial number of the data packet.
  • the serial number of the byte may be saved.
  • the starting position in the embodiment of the present application may also be a sequence number of a start data segment, a sequence number of a start data packet, a sequence number of a start bit, and a data frame used to transmit a group of data packets.
  • the ending position in the embodiment of the present application may also be the sequence number of the end data segment, the sequence number of the end data packet, the sequence number of the end bit, and the number of the end frame in the data frame used to transmit a group of data packets. , The number of the ending sub-frame in the data frame for transmitting a group of data messages, or the group number of the ending group of any possible size group obtained by grouping the data sent by the second device to the first device.
  • the length of the embodiment of the present application may also be a sequence number offset relative to a start data segment or an end data segment, a sequence number offset relative to a start data packet or an end data packet, and relative to a start bit ( bit) or end bit (bit) sequence number offset, offset from the start or end frame number, offset from the start or end subframe number, relative to the start
  • the group number offset of the group or end group can also be the number of data segments, the number of data packets, the number of bits, the number of frames, the number of sub-frames, the number of groups, and so on.
  • sequence number of the start byte and the sequence number of the end byte may be used to represent a single data message or a group of consecutive multiple data messages.
  • data packet number 101 has a data length of 50.
  • the sequence number of the start byte and the end byte is expressed as (101,150).
  • the two consecutive data packets are the 101 and 151 datagrams, respectively.
  • the data length of the data packet No. 101 is 50, and the data length of the data packet No. 102 is also 50.
  • the serial number of the start byte and the serial number of the end byte is expressed as (101,200).
  • this application uses a start position or an end position and a length to indicate A single data message or a group of consecutive multiple data messages can occupy a small space (because the value is small and can be represented by fewer bytes), thereby saving resources.
  • the present application uses a start position, an end position, and a length to represent a single data packet or a group of consecutive multiple data packets.
  • the data length of each group of data packets can also be dynamically adjusted to represent a group of data packets.
  • the number of bytes required for the message further reduces the footprint of the acknowledgement message.
  • the second field includes K positions and K lengths, and a position and a length may represent a single data packet or a group of multiple continuous data packets, and it can be known that the second field may indicate K single Data packets, or K consecutive multiple data packets, or a single data packet with a total of K and multiple consecutive data packets, where K is an integer greater than or equal to 1.
  • K single data messages, or K consecutive data messages, or a single data message and continuous data messages with a total of K correspond to the K group data messages.
  • the i-th length in the second byte is determined according to the data length of the i-th data packet.
  • the data length of the i-th data packet when the data length of the i-th data packet is less than or equal to 256, the data length of the i-th data packet occupies 1 byte, and the i-th length is 1; the data length of the i-th data packet is greater than When 256 and less than or equal to 65535, the data length of the i-th group data packet occupies 2 bytes, the i-th length is 2; when the data length of the i-th group data packet is greater than 65535, the i-th group data packet The length of the data occupies 3 bytes, the i-th length is 3, and so on.
  • the embodiment of the present application can dynamically adjust the space occupied by the data length according to the data length of the data message that needs to be retransmitted to avoid wasting space.
  • the first device indicates the K value through a first field in the confirmation field, where the K value is the number of a single data packet and multiple consecutive data packets that can be indicated in the second field, and K is an integer greater than or equal to 1.
  • the first field includes the K value.
  • the first field indicates the K value of the second device by carrying the K value.
  • the confirmation message only needs to carry a K value, and the second device may be instructed. Correctly parse the content of the confirmation field. Specifically, for example, when the first device and the second device have agreed to indicate 4 bytes occupied by one position and 2 bytes occupied by a length, the K value carried in the confirmation field is 2.
  • the first field carries the K value, which can directly instruct the second device how to read the content of the confirmation field, so that the second device can correctly parse the confirmation message.
  • the first field includes the K value and a second byte number
  • the second byte number is a byte number representing a length.
  • the confirmation message may instruct the second device to correctly parse the confirmation by carrying the K value and the second number of bytes.
  • the contents of the field Specifically, for example, when the first device and the second device have agreed to indicate 4 bytes occupied by one location, the K value carried in the confirmation field is 2, and the second byte number is 2.
  • the first field carries the K value, which can directly instruct the second device how to read the content of the confirmation field.
  • the second byte number changes with the number of bytes representing the length, and can be dynamically adjusted. Represents the sum of the number of bytes occupied by a group of data messages, thereby instructing the second device to correctly parse the confirmation message.
  • the first field includes the K value and a second number of bytes, and the second number of bytes is a number of bytes used to indicate that a position and a length occupy the same.
  • the confirmation message may instruct the second device to correctly parse the confirmation by carrying the K value and the second number of bytes.
  • the contents of the field Specifically, for example, when the first device and the second device have agreed to represent 4 bytes occupied by one location and 2 bytes occupied by one length, the K value carried in the confirmation field is 6.
  • the first field carries the K value, which can directly instruct the second device how to read the content of the confirmation field.
  • the second byte number changes with the number of bytes representing the length, and can be dynamically adjusted. Represents the sum of the number of bytes occupied by a group of data messages, thereby instructing the second device to correctly parse the confirmation message.
  • the first field includes a first number of bytes, where the first number of bytes indicates the number of bytes occupied by the confirmation field.
  • the confirmation message only needs to carry the first number of bytes, and the second device Only a simple calculation is required to correctly parse the contents of the confirmation field.
  • the number of first bytes carried in the confirmation field is 8.
  • the first field carries the first byte number, which can indirectly instruct the second device how to read the content of the confirmation field, so that the second device can correctly parse the confirmation message.
  • the first field includes the first byte number and the second byte number
  • the second byte number indicates a number of bytes occupied by the length.
  • the confirmation message carries the first number of bytes and the second number of bytes.
  • the calculation will correctly parse the contents of the confirmation field. Specifically, for example, when the first device and the second device have agreed to represent 4 bytes occupied by one location, the number of first bytes carried in the confirmation field is 8, and the number of second bytes is 2.
  • the second byte number changes with the change in the number of bytes representing a length, and the sum of the number of bytes representing a group of data packets can be dynamically adjusted to instruct the second device to correctly parse the Confirmation message.
  • the K value can also be dynamically adjusted according to the data length of the data message that needs to be retransmitted, which can enhance the expression ability.
  • the first field includes the first number of bytes and the second number of bytes, and the second number of bytes is used to indicate that the number of bytes occupied by the position and one of the length is shared.
  • the confirmation message carries the first number of bytes and the second number of bytes.
  • the calculation will correctly parse the contents of the confirmation field.
  • the first device and the second device have agreed to indicate 4 bytes occupied by one location, and the number of first bytes carried in the confirmation field is 8 and the number of second bytes is 6.
  • the second byte number changes with the change in the number of bytes representing a length, and the sum of the number of bytes representing a group of data packets can be dynamically adjusted to instruct the second device to correctly parse the Confirmation message.
  • the K value can also be dynamically adjusted according to the data length of the data message that needs to be retransmitted, which can enhance the expression ability.
  • the positions and lengths of the K group data messages are expressed using the same byte.
  • the positions of the K group data messages are expressed using 4 bytes, and the length is 2 bytes.
  • the confirmation field includes an end identifier, which is used to indicate the end of the confirmation field.
  • the second device can correctly parse the confirmation field.
  • the number of bytes occupied by one position and one length can be agreed in advance, or the second device can be notified by an acknowledgement message. It should be understood that, at this time, in a case where the number of bytes occupied by a position and a length is predetermined, the confirmation message may not have the first field.
  • the K value may be determined according to the second number of bytes.
  • the acknowledgement field is located in the TCP option field.
  • the TCP option field has a maximum of 40 bytes. If the number of second bytes is 6, the maximum K value is 6.
  • the embodiment of the present application can dynamically adjust the K value according to the data length of the data message that needs to be retransmitted, which can enhance the expression ability.
  • the number of bytes occupied by the length representing a group of data packets is the number of bytes represented by the largest length among the K lengths.
  • the actual position of the first group of data messages requires 4 bytes, and the length needs 1 byte, which occupies a total of 5 bytes; the actual position of the second group of data messages requires 4 bytes, 2 bytes in length, 6 bytes in total; the actual position of the third group of data messages requires 4 bytes, 3 bytes in length, 7 bytes in total .
  • the length of groups 1-3 is expressed by 3 bytes, so the number of the second byte is 7, and when constructing the confirmation message, the position and length of the data message of group 1-3 are 7 words. Section to represent.
  • the number of bytes occupied by the length representing a group of data messages is the number of bytes represented by the largest of the K lengths, which can be achieved on the premise of ensuring the correct representation of any group of data messages. Then, the space occupied by the acknowledgement message is further reduced.
  • the confirmation field further includes a third field, where the third field is used to indicate a type of the confirmation field.
  • the third field carries the type number of the confirmation field.
  • the third field indicates the type of the confirmation field, which can facilitate the second device to determine a method for parsing the confirmation field, and then correctly parse the confirmation field.
  • the acknowledgement message further includes an acknowledgement sequence number, which is used to indicate the sequence number of the next data message expected by the second device or the maximum sequence number of the data message that the first device has successfully received.
  • the first device generates the confirmation message.
  • the method for generating the confirmation message by the first device includes the following two methods.
  • the first device generates the confirmation message according to the M data messages that are successfully received, where M is less than N.
  • the K group data messages are successfully received data messages, and it is confirmed that the sequence number is the sequence number of the next data message expected by the second device.
  • the first device may not determine the data that was not successfully received, and the second device may determine the data that was not successfully sent.
  • the first device indicates the data successfully received by the first device through the confirmation message
  • the second device determines the data that needs to be retransmitted according to the successfully received data, that is, the data that the second device did not send successfully, that is, Data not successfully received by the first device.
  • the data message that needs to be retransmitted can be specified, thereby reducing resource waste.
  • the first device determines the N-M data packets that were not successfully received according to the M data packets that were successfully received, and then generates the confirmation message based on the K positions and K lengths of the N-M data packets that were not received.
  • the K group data messages are unsuccessfully received data messages, and it is confirmed that the sequence number is the maximum sequence number of the data message that the first device has successfully received.
  • the data message that needs to be retransmitted can be specified, thereby reducing resource waste.
  • the key content of the acknowledgement message that the first device replies to the second device is: ACK 4 + 6-7 + 10-12.
  • ACK 4" indicates that the confirmation sequence number is 4, indicating that the next data packet expected by the second device is 4;
  • 6-7 + 10-12 is the second field in the confirmation field, indicating that although The No. 4 data message has not been successfully received, but the first device has successfully received the subsequent No. 6, 7, 10, 11 and 12 data messages; 6-7 and 10-12 are a group of data messages, respectively.
  • the sender When the first device determines that packet loss and retransmission is needed (for example, it receives three repeated acknowledgement messages), the sender will discard the retransmission of 6-7, which has been considered as successful, according to the contents of the acknowledgement sequence number and acknowledgement field And 10-12 data packets, and in turn, may perform more accurate retransmission of data packets 4-5 and 8-9 that may be lost.
  • the key content of the acknowledgement message that the first device replies to the second device is: ACK 12 + 4-5 + 8-9.
  • ACK 12 indicates that the maximum sequence number of the data packet that the first device has successfully received is 12;
  • 4-5 + 8-9 indicates that although the maximum sequence number of the currently successfully received data packet is 12, but Of all the data packets from 1-12, the data packets from 4-5 and 8-9 were not successfully received.
  • the second device receives the confirmation message, it will perform packet loss retransmission according to the sequence number of the data message indicated in the confirmation message.
  • the type may correspond to the third field above
  • the total number of continuous data sequence ranges may correspond to the K value above
  • the number of bytes occupied by each continuous data sequence range may correspond to the second byte above.
  • the serial number of the start byte can correspond to the serial number of the start byte above
  • the data length can correspond to the length above.
  • the number of bytes occupied by the data length part changes with the current maximum continuous data sequence range, which can be up to 4 bytes.
  • “1 byte: 256” means that when the length of the continuous data sequence range is less than 256, the data The length occupies 1 byte; similarly, “2 bytes: 65535" indicates that when the length of the continuous data sequence range is greater than 256 and less than or equal to 65535, the data length occupies 2 bytes, which is longer. "Contiguous data sequence range" and so on.
  • the occupied length and content of the relevant part of the confirmation message are dynamically adjusted. If the range of the continuous data sequence is small, the number of bytes occupied by the acknowledgement message is reduced; if the range of the continuous data sequence is large, the acknowledgement message with more bytes is used to represent it.
  • the application also adds the number of bytes occupied by each continuous data sequence range and the total number of continuous data sequence ranges in the confirmation message.
  • the total length of the confirmation field can be optimized as: (2 + L * N), 5 ⁇ L ⁇ 8, where N is the total number of continuous data sequence ranges, and the size of L depends on the largest continuous data
  • the data length of the sequence range that is, the longer the data length of the continuous data range, the larger the required data length, and the more space the confirmation field takes up.
  • the total number of continuous data sequence ranges and the number of bytes occupied by each continuous data sequence range are respectively represented by a 4-bit space.
  • each continuous data sequence range when constructing each continuous data sequence range, the space required to express the largest continuous data sequence range is used.
  • the purpose of this is to prevent the parsing error of the content of the confirmation message caused by the inconsistent size of the continuous data sequence range.
  • the side effect is that it may cause a certain amount of space waste.
  • the type is the type of the acknowledgement message
  • the sequence number of the start byte is the sequence number of the start byte of the continuous data message range
  • the sequence number of the end byte is the sequence number of the end byte of the continuous data sequence range.
  • a sequence number of a start byte and a sequence number of an end byte correspond to a continuous data sequence range.
  • the total length occupied by the confirmation field is: 2 + 8 * N, where N is the total number of continuous data sequence ranges.
  • This construction method uses 8 bytes to represent a continuous data sequence range.
  • the lengthy content of the acknowledgement field in the acknowledgement message not only limits the total number of additional received (missing) continuous data sequence ranges that can be expressed in the acknowledgement message, but also limits the use of other functional options in the acknowledgement message.
  • the method for constructing the confirmation field in the embodiment of the present application requires only 8 bytes for the confirmation field.
  • FIG. 6 is two examples of adopting the method of the embodiment of the present application and another method, respectively.
  • the data length of the continuous data sequence range exceeds 65535, so the data length field needs 3 bytes of space to express it.
  • the second example there are two continuous data sequence ranges, indicating that each continuous data sequence range requires 6 bytes. It can be seen that the construction method of the confirmation field in the embodiment of the present application can effectively reduce the space occupied by the confirmation field in the confirmation message.
  • Table 1 summarizes that as the data length of the continuous data sequence range increases, the data length (DL) part of the confirmation field constructed using the method of the present application also increases with the increase in the confirmation of the method structure of the present application.
  • the first column is based on the number of bytes of data length, and analyzes the maximum length of a single continuous data sequence range that can be supported under different data lengths.
  • the first line indicates the total number of continuous data sequence ranges supported. It can be seen that the confirmation field constructed by the method of the present application can support a maximum of 7 continuous data sequence ranges, and the confirmation field constructed by another method supports a maximum of 4 continuous data sequence ranges. .
  • the last column is the average space saving rate of the confirmation field constructed by the method of the present application compared with the confirmation field constructed by another method in the case of different data lengths.
  • the confirmation field constructed by the method of the present application can effectively reduce the space occupied by the confirmation message information, improve the space utilization of the confirmation message, and thereby reduce the uplink bandwidth overhead.
  • FIG. 7 is a structural block diagram of a communication device according to an embodiment of the present application.
  • the communication device 700 in FIG. 7 may correspond to the first device above.
  • the communication device 700 includes a receiving module 701 and a sending module 702.
  • the receiving module 701 is configured to receive data sent by a second device, where the data includes N data packets.
  • the sending module 702 is configured to send a confirmation message to the second device.
  • the confirmation message includes a confirmation field, the confirmation field includes a first field and a second field, and the second field includes K positions and K lengths.
  • the i-th position of the K positions is the start byte position or the end byte position of the i-th group data message in the K-group data message, and the i-th length of the K lengths is the K-th group The length of the ith group of data messages in the data message.
  • Each group of data messages in the K group of data messages includes one data message or multiple consecutive data messages, and each group of data messages includes one data.
  • the receiving module 701 may be implemented by a receiver.
  • the sending module 702 may be implemented by a sender. For specific functions and beneficial effects of the receiving module 701 and the sending module 702, reference may be made to the method shown in FIG. 3, and details are not described herein again.
  • FIG. 8 is a structural block diagram of a communication device according to another embodiment of the present application.
  • the communication device 800 in FIG. 8 may correspond to the second device above.
  • the communication device 800 includes a receiving module 801 and a sending module 802.
  • the sending module 802 is configured to send data to the first device, where the data includes N data packets.
  • the receiving module 801 is configured to receive a confirmation message sent by the first device, where the confirmation message includes a confirmation field, the confirmation field includes a first field and a second field, and the second field includes K positions and K lengths,
  • the i-th position of the K positions is the start byte position or the end byte position of the i-th data packet in the K-group data packet, and the i-th length of the K-lengths is the K-th packet.
  • Each group of data packets in the K group data packets includes one data packet or multiple consecutive data packets.
  • the receiving module 801 may be implemented by a receiver.
  • the sending module 802 may be implemented by a sender.
  • specific functions and beneficial effects of the receiving module 801 and the sending module 802 reference may be made to the method shown in FIG. 3, and details are not described herein again.
  • FIG. 9 is a schematic structural diagram of a communication device according to another embodiment of the present application.
  • the communication device 900 in FIG. 9 may correspond to the first device above.
  • the communication device 900 includes a transceiver 901, a processor 902, and a memory 903.
  • FIG. 9 Only one memory and processor are shown in FIG. 9. In an actual communication 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 a storage device.
  • the memory may be set independently of the processor or integrated with the processor, which is not limited in the embodiment of the present application.
  • the transceiver 901, the processor 902, and the memory 903 communicate with each other through an internal connection path, and transfer control and / or data signals.
  • the method disclosed in the embodiments of the present application may be applied to the transceiver 901, or implemented by the transceiver 901.
  • the first field is used to indicate the K value.
  • the confirmation message may be generated by a processing module in the processor 902 or the transceiver 901.
  • FIG. 10 is a schematic structural diagram of a communication device according to another embodiment of the present application.
  • the communication device 1000 in FIG. 10 may correspond to the second device above.
  • the communication device 1000 may include a transceiver 1001, a processor 1002, and a memory 1003.
  • FIG. 10 Only one memory and processor are shown in FIG. 10. In an actual communication 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 a storage device.
  • the memory may be set independently of the processor or integrated with the processor, which is not limited in the embodiment of the present application.
  • the transceiver 1001, the processor 1002, and the memory 1003 communicate with each other through an internal connection path, and transfer control and / or data signals.
  • the first field is used to indicate the K value.
  • the confirmation message may be parsed and processed by the processing module in the processor 1002 or the transceiver 1001.
  • the transceiver described in the embodiments of the present application may also be referred to as a transceiver unit, a transceiver, a transceiver device, and the like.
  • the processor may also be referred to as a processing unit, a processing single board, a processing module, a processing device, and the like.
  • a device for implementing a receiving function in the transceiver may be regarded as a receiving unit, and a device for implementing a transmitting function in the transceiver may be regarded as a transmitting unit, that is, the transceiver includes a receiving unit and a transmitting unit.
  • the receiving unit may also be called a receiver, a receiver, or a receiving circuit.
  • the transmitting unit may also be called a transmitter, a transmitter, or a transmitting circuit.
  • the memories described in the embodiments of the present application are used to store computer instructions and parameters required for the processor to run.
  • the processor described in the embodiments of the present application may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method may be completed by an integrated logic circuit of hardware in a processor or an instruction in a form of software.
  • the processor described in the embodiments of the present application may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), and a field programmable gate array , FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
  • DSP digital signal processor
  • ASIC application-specific integrated circuit
  • FPGA field programmable gate array
  • 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 combination with the embodiments of the present application may be directly implemented by a hardware decoding processor, or may be performed by using a combination of hardware and software modules in the decoding processor.
  • Software modules can be located in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory or electrically erasable programmable memory, registers, etc.
  • Storage media The storage medium is located in a memory, and the processor reads the instructions in the memory and completes the steps of the foregoing method in combination with its hardware.
  • the size of the sequence number of each process does not mean the order of execution.
  • the execution order of each process should be determined by its function and internal logic, and should not constitute the implementation process of the embodiments of this application. Any restrictions.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • 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 from a website site, computer, server, or data center Transmission by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) to another website site, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, and the like including one or more available medium integration.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a digital video disc (DVD)), or a semiconductor medium (for example, a solid state disk (SSD)), etc. .
  • a magnetic medium for example, a floppy disk, a hard disk, a magnetic tape
  • an optical medium for example, a digital video disc (DVD)
  • DVD digital video disc
  • SSD solid state disk
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the unit is only a logical function division.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, which may be electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objective of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each of the units may exist separately physically, or two or more units may be integrated into one unit.
  • the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of this application is essentially a part that contributes to the existing technology or a part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in the embodiments of the present application.
  • the aforementioned storage media include: U disks, mobile hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks or compact discs and other media that can store program codes .

Abstract

本申请提供了传输确认报文的方法和通信设备。该方法包括:第一设备接收第二设备发送的数据;该第一设备向该第二设备发送该确认报文,该确认报文包括确认字段,该确认字段携带K组数据报文的数据长度,该数据长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化。上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费,并且根据每组数据报文的数据长度动态调整表示一组数据报文所需的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。

Description

传输确认报文的方法和通信设备
本申请要求于2018年09月27日提交中国专利局、申请号为201811134342.7、申请名称为“传输确认报文的方法和通信设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,并且更具体地,涉及传输确认报文的方法和通信设备。
背景技术
可靠性传输协议(例如传输控制协议(transmission control protocol,TCP))通常包含报文确认机制,用来反馈数据报文已经被接收端成功接收、或协助发送端进行丢包重传。可靠性传输协议通过以下规则来保证数据在网络中的可靠传输:
1)可靠性传输协议为每个数据报文分配一个序列号,该序列号保证了数据报文从发送端到接收端的按序接收。在接收端收到数据报文后,会生成并发送一个包含相应序列号(可称为确认序列号)的确认报文(acknowledgment,ACK),表示相应数据报文已经成功被接收端接收;
2)如果发送端在合理的时间内未收到接收端的确认报文,那么发送端假设数据报文已丢失,触发数据报文重传机制。
以上过程说明了确认报文是如何协助可靠性传输协议进行数据报文达到的确认和协助完成重传的。但是确认报文仅仅只包含确认序列号,接收端在利用确认报文进行报文重传时,会面临着不能明确重传哪些数据报文的问题:
1)只重传超时的数据报文:对于超时的数据报文之后发送的数据报文都能够正常接收的状况,这种重传方式能提高重传效率;但是对于数据报文大量丢失的情形,发送端就需要一个个等待数据报文超时,然后接连进行报文重传,造成时间和带宽的大量浪费;
2)重传超时的数据报文以及之后发送的所有数据报文:在超时的数据报文之后发送的所有数据报文都丢失的情形下,这种重传方法重传效率很高;但是如果仅仅只是造成超时的那个数据报文丢失,重传之后的所有数据报文则会造成流量的严重浪费。
因此,不能明确重传哪些数据报文的问题亟待解决。
发明内容
本申请提供传输确认报文的方法和通信设备,能够明确需要重传的数据报文,从而减小资源浪费。
第一方面,本申请提供了一种传输确认报文的方法,该方法包括:第一设备接收第二设备发送的数据,其中该数据包括N个数据报文;该第一设备向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位 置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节的位置或结束字节的位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费。
此外,上述技术方案中,在确认字段,使用起始位置或结束位置以及长度来表示一组数据报文,且该数据长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化,使得第一设备能够根据每组数据报文的数据长度动态调整表示一组数据报文所占的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该起始位置为起始数据报文的序列号或起始字节的序列号,该结束位置为结束数据报文的序列号或结束字节的序列号。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现。
在一种可能的实现方式中,该长度为相对于该起始数据报文或者该结束数据报文的序列号偏移量,或者相对于该起始字节或者该结束字节的序列号偏移量。
上述技术方案中,结合起始位置或结束位置,使用偏移量,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该第一字段包括该K值。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段包括第一字节数,该第一字节数为该确认字段所占的字节数。
上述技术方案中,第一字段携带该第一字节数,可以间接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为表示一个该长度所占的字节数。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数,从而指示第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为用于表示一个该位置与一个该长度共占的字节数。通过上述技术方案,第二设备可以正确解析该确认报文。
在一种可能的实现方式中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数。
上述技术方案中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数,能够在保证正确表示任意一组数据报文的前提下,减小确认报文占用的空间。
在一种可能的实现方式中,该确认字段还包括第三字段,该第三字段用于指示该确认 字段的类型。
上述技术方案中,通过第三字段指示确认字段的类型,可以便于第二设备确定解析该确认报文的方法,进而正确解析该确认报文。
在一种可能的实现方式中,该K组数据报文为成功接收的数据报文。
上述技术方案中,通过向第二设备指示已经成功接收的数据报文,间接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
在一种可能的实现方式中,该K组数据报文为未成功接收的数据报文。
上述技术方案中,通过向第二设备指示未成功接收的数据报文,直接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
第二方面,本申请提供了一种传输确认报文的方法,该方法包括:第二设备向第一设备发送数据,其中该数据包括N个数据报文;该第二设备接收该第一设备发送的确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费。
此外,上述技术方案中,在确认字段,使用起始位置或结束位置以及长度来表示一组数据报文,且该数据长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化,使得第一设备能够根据每组数据报文的数据长度动态调整表示一组数据报文所占的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该起始位置为起始数据报文的序列号或起始字节的序列号,该结束位置为结束数据报文的序列号或结束字节的序列号。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现。
在一种可能的实现方式中,该长度为相对于该起始数据报文或者该结束数据报文的序列号偏移量,或者相对于该起始字节或者该结束字节的序列号偏移量。
上述技术方案中,结合起始位置或结束位置,使用偏移量,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该第一字段包括该K值。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段包括第一字节数,该第一字节数为该确认字段所占的字节数。
上述技术方案中,第一字段携带该第一字节数,可以间接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为表示一个 该长度所占的字节数。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数,从而指示第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为用于表示一个该位置与一个该长度共占的字节数。通过上述技术方案,第二设备可以正确解析该确认报文。
在一种可能的实现方式中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数。
上述技术方案中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数,能够在保证正确表示任意一组数据报文的前提下,减小确认报文占用的空间。
在一种可能的实现方式中,该确认字段还包括第三字段,该第三字段用于指示该确认字段的类型。
上述技术方案中,通过第三字段指示确认字段的类型,可以便于第二设备确定解析该确认报文的方法,进而正确解析该确认报文。
在一种可能的实现方式中,该K组数据报文为成功接收的数据报文。
上述技术方案中,通过向第二设备指示已经成功接收的数据报文,间接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
在一种可能的实现方式中,该K组数据报文为未成功接收的数据报文。
上述技术方案中,通过向第二设备指示未成功接收的数据报文,直接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
第三方面,本申请提供了一种通信设备,包括用于执行第一方面或第一方面任意一种实现方式中的模块。
第四方面,本申请提供了一种通信设备,包括用于执行第二方面或第二方面任意一种实现方式中的模块。
第五方面,本申请提供了一种芯片,包括处理器和收发器,用于执行第一方面或第一方面任意一种实现方式所述的方法。
第六方面,本申请提供了一种芯片,包括处理器和收发器,用于执行第二方面或第二方面任意一种实现方式所述的方法。
第七方面,本申请提供了一种通信设备,包括处理器和收发器,用于执行第一方面或第一方面任意一种实现方式所述的方法。
第八方面,本申请提供了一种通信设备,包括处理器和收发器,用于执行第二方面或第二方面任意一种实现方式所述的方法。
第九方面,本申请提供了一种计算机可读存储介质,包括指令,当其在通信设备上运行时,使得通信设备执行第一方面或第一方面任意一种实现方式所述的方法。
第十方面,本申请提供了一种计算机可读存储介质,包括指令,当其在通信设备上运行时,使得通信设备执行第二方面或第二方面任意一种实现方式所述的方法。
第十一方面,本申请提供了一种计算机程序产品,当其在通信设备上运行时,使得通信设备执行第一方面或第一方面任意一种实现方式所述的方法。
第十二方面,本申请提供了一种计算机程序产品,当其在通信设备上运行时,使得通信设备执行第二方面或第二方面任意一种实现方式所述的方法。
附图说明
图1是TCP确认报文机制的示意图。
图2是TCP报文重传机制的示意图。
图3是本申请实施例的传输确认报文的方法的示意性流程图。
图4是TCP确认报文的选项字段的位置的示意图。
图5是数据传输过程中一个大量丢包的情形的示意图。
图6是分别采用本申请实施例的方法和另一种方法的2个实例。
图7是根据本申请实施例提供的通信设备的示意性结构图。
图8是根据本申请另一实施例提供的通信设备的示意性结构图。
图9是根据本申请另一实施例提供的通信设备的示意性结构图。
图10是根据本申请另一实施例提供的通信设备的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请可以应用于各种应用可靠性传输协议的场景,例如,应用TCP的各种场景。本申请也可以应用于其他场景,只要该场景中存在某一端设备需要指示另一端设备需要重传哪些报文,该某一端设备需要按照某种方式解读并按照该另一端设备的指示重传报文即可,例如增加了确认机制的UDP的各种场景。
本申请对通信设备的类型不作具体限定,例如可以是应用可靠性传输协议的通信设备。应用可靠性传输协议的通信设备可以是电脑、手机、平板电脑等。
为了方便理解本申请实施例的方案,首先对本申请涉及到的概念及相关技术进行描述。
确认报文(acknowledge,ACK):以TCP确认报文机制为例对确认报文进行描述,图1是TCP确认报文机制的示意图。如图1所示,当数据从主机A发送到主机B时,主机B会返给主机A一个确认应答,例如图1中主机A向主机B发送序列号为1~1000的数据报文,主机B在成功接收序列号为1~1000的数据报文后,会向主机A发送一个包含确认序列号1001的确认应答,也就是确认报文,来表示期待的下一个数据报文的序列号为1001,主机A解析该确认应答后,向主机B发送序列号1001~2000的数据报文,以此类推;如果主机A在合理的时间内未收到主机B发送的确认报文,那么主机A假设数据报文已丢失,触发数据报文重传机制。
报文重传:同样以TCP报文重传机制为例对报文重传进行描述,图2是TCP报文重传机制的示意图。如图2所示,当主机A连续收到三个确认序列号均为100的确认报文时,主机A判断序列号为100的数据报文在传输过程中丢失,进行丢包重传。
但主机A将面临是只重传序列号为100数据报文,还是同时重传在序列号为100数据报文之后发送的序列号为120、135和141的数据报文的问题。
如果只重传序列号为100数据报文,在序列号为120、135和141的数据报文传输成 功的情况下,能够提高重传效率;但是在序列号为120、135和141的数据报文同样丢失的情况下,主机A需要一个个等待序列号为120、135和141的数据报文超时,才能分别进行报文重传,这样会造成时间和带宽的大量浪费。
如果重传序列号为100的数据报文以及之后发送的序列号为120、135和141的数据报文,在序列号为120、135和141的数据报文都丢失的情况下,能够提高重传效率高;但是在只有序列号为100的数据报文丢失的情况下,则会造成流量的严重浪费。
因此,不管是只重传超时的数据报文,还是重传超时的数据报文以及之后发送的所有数据报文,在一定情况下都会造成传输资源的大量浪费。
本申请提供传输确认报文的方法,能够明确需要重传的数据报文,从而减小资源浪费。
图3是本申请实施例的传输确认报文的方法的示意性流程图。图3所示的方法包括以下内容的至少部分内容。
在310中,第二设备向第一设备发送数据,其中该数据包括N个数据报文。
在320中,该第一设备向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,所述每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
本申请实施例对第一设备和第二设备的类型不做具体限定,第一设备可以是任意的支持可靠性传输协议或确认机制的设备,例如,电脑、手机、平板电脑等。
应理解,当第一设备成功接收全部的数据报文时,确认报文可以没有确认字段。
上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费。
此外,上述技术方案中,在确认字段,使用起始位置或结束位置以及长度来表示一组数据报文,该长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化,可以根据每组数据报文的长度动态调整表示一组数据报文所需的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
下面分别对310和320进行描述。
在310中,第二设备向第一设备发送数据,其中该数据包括N个数据报文。
第一设备接收该N个数据报文。应理解,第一设备可能成功接收了全部N个数据报文,也可能只成功接收了N个数据报文中的部分数据报文。
每个数据报文可以由多个字节的数据构成。
在320中,该第一设备向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个序列号和K个长度,该K个序列号中的第i个序列号为K组数据报文中的第i组数据报文的起始位置或结束位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于 指示所述K值。
第二设备接收并解析第一设备发送的确认报文,然后按照确认报文中的内容重传数据报文。
第一设备通过确认报文指示第二设备需要重传的数据报文。
需要重传的数据报文可以存在以下两种情况。
情况1:
单个数据报文,例如,4号数据报文。
情况2:
多个连读数据报文,例如,4-7号数据报文。
具体地,第一设备通过确认报文中的确认字段指示第二设备需要重传的数据报文。
可选地,该确认字段可以位于可靠性传输协议报文的预留字段。
例如,对于TCP,可以位于TCP确认报文的选项字段,如图4所示。
可选地,该确认字段可以是可靠性传输协议报文中新增加的字段。
更具体地,第一设备通过确认字段中的第二字段指示第二设备需要重传的数据报文。
本申请实施例使用K组数据报文的K个起始位置或K个结束位置,以及K个长度来表示该K组数据报文,其中K组数据报文可以是成功接收的数据报文,也可以是未成功接收的数据报文。
可选地,起始位置可以用一组数据报文中的起始数据报文的序列号来表示,结束位置可以用一组数据报文中的结束数据报文的序列号来表示,长度可以是相对于起始数据报文或者结束数据报文的序列号偏移量(此时数据报文可以是连续编号的,例如,4号数据报文、5号数据报文、6号数据报文、)。也就是说,使用一组数据报文中的起始数据报文的序列号或者结束数据报文的序列号,以及相对于起始数据报文或者结束数据报文的序列号偏移量来表示该组数据报文。例如,一组数据报文包括4-9号数据报文,那么可表示为(4,5)或者(9,5);一组数据报文包括4号数据报文,那么可表示为(4,0)。
可选地,起始位置可以用一组数据报文中的起始字节的序列号来表示,结束位置可以用一组数据报文中的结束字节的序列号来表示,长度可以是相对于起始字节或者结束字节的序列号偏移量。也就是说,使用一组数据报文中的起始字节的序列号或者结束字节的序列号,以及相对于起始字节或者结束字节的序列号偏移量来表示该组数据报文。例如,一组数据报文包括连续的两个数据报文分别为101号和151号数据报文,两个数据报文的数据长度为50,那么可表示为(101,99)或(200,99);一组数据报文包括101号数据报文,101号数据报文的数据长度为50,那么可表示为(101,49)或(150,49)。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现,并且结合起始位置或结束位置,使用偏移量,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
可选地,起始位置可以用一组数据报文中的起始数据报文的序列号来表示,结束位置可以用一组数据报文中的结束数据报文的序列号来表示,长度可以是该组数据报文中数据报文的数量。也就是说,使用一组数据报文中的起始数据报文的序列号或者结束数据报文的序列号,以及该组数据报文中的数据报文的数量来表示该组数据报文。例如,一组数据 报文包括4-9号数据报文,那么可表示为(4,6)或者(9,6);一组数据报文包括4号数据报文,那么可表示为(4,1)。
可选地,起始位置可以用一组数据报文中的起始字节的序列号来表示,结束位置可以用一组数据报文中的结束字节的序列号来表示,长度可以是该组数据报文中字节数。也就是说,使用一组数据报文中的起始数据报文的序列号或者结束数据报文的序列号,以及该组数据报文中的字节数来表示该组数据报文。例如,一组数据报文包括连续的两个数据报文分别为101号和151号数据报文,两个数据报文的数据长度为50,那么可表示为(101,100)或(200,100);一组数据报文包括101号数据报文,101号数据报文的数据长度为50,那么可表示为(101,50)或(150,50)。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现,并且结合起始位置或结束位置,使用数据报文的数量或者字节数,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
上述技术方案中,对于数据报文是连续编号的情况,第二设备可以保存着每个数据报文相应的字节的序列号以及序列号偏移量,以便根据数据报文的序列号找到相应字节的序列号。
本申请实施例的起始位置还可以是起始数据段的序列号、起始数据包的序列号、起始比特(bit)的序列号、用于传输一组数据报文的数据帧中的起始帧的编号、用于传输一组数据报文的数据帧中的起始子帧的编号,或者对第二设备向第一设备发送的数据进行分组得到的任意可能的大小的组的起始组的组号等。
本申请实施例的结束位置还可以是结束数据段的序列号、结束数据包的序列号、结束比特(bit)的序列号、用于传输一组数据报文的数据帧中的结束帧的编号、用于传输一组数据报文的数据帧中的结束子帧的编号,或者对第二设备向第一设备发送的数据进行分组得到的任意可能的大小的组的结束组的组号等。
本申请实施例的长度还可以是相对于起始数据段的或者结束数据段的序列号偏移量、相对于起始数据包或者结束数据包的序列号偏移量、相对于起始比特(bit)或者结束比特(bit)的序列号偏移量、相对于起始帧或者结束帧的编号的偏移量、相对于起始子帧或者结束子帧的编号偏移量、相对于起始组或者结束组的组号偏移量;还可以是数据段数量、数据包的数量、比特(bit)数、帧的数量、子帧的数量、组数等。
在另一种可能的实现方式中,可以使用起始字节的序列号和结束字节的序列号来表示一个单个数据报文或者一组连续的多个数据报文。
例如,101号数据报文,数据长度为50,使用起始字节的序列号和结束字节的序列号表示为(101,150);连续的两个数据报文分别为101号和151号数据报文,101号数据报文的数据长度为50,102号数据报文的数据长度也为50,使用起始字节的序列号和结束字节的序列号表示为(101,200)。
相较于使用起始字节的序列号和结束字节的序列号来表示一个单个数据报文或者一组连续的多个数据报文,本申请的使用起始位置或者结束位置以及长度来表示一个单个数据报文或者一组连续的多个数据报文,可以占用较小的空间(因为数值较小,可以用较少的字节数来表示),从而节省资源。
此外,本申请的使用起始位置或者结束位置以及长度来表示一个单个数据报文或者一组连续的多个数据报文,还可以根据每组数据报文的数据长度动态调整表示一组数据报文所需的字节数,进一步减小确认报文的占据空间。
可选地,第二字段包括K个位置和K个长度,一个位置与一个长度可以表示上文的一个单个数据报文或者一组多个连续数据报文,可知第二字段可以指示K个单个数据报文,或者K组连续的多个数据报文,或者总数为K的单个数据报文和连续的多个数据报文,其中K为大于或者等于1的整数。
K个单个数据报文,或者K组连续数据报文,或者总数为K的单个数据报文和连续数据报文对应于K组数据报文。
可选地,第二字节中的第i个长度根据第i组数据报文的数据长度确定。
例如,第i组数据报文的数据长度小于或者等于256时,第i组数据报文的数据长度占用1个字节,该第i个长度为1;第i组数据报文的数据长度大于256且小于或者等于65535时,第i组数据报文的数据长度占用2个字节,该第i个长度为2;第i组数据报文的数据长度大于65535时,第i组数据报文的数据长度占用3个字节,该第i个长度为3,以此类推。
上述技术方案中,本申请实施例可以根据需要重传的数据报文的数据长度动态调整表示数据长度的占用的空间,避免空间浪费。
第一设备通过确认字段中的第一字段指示该K值,其中K值为第二字段可以指示的单个数据报文和多个连续数据报文的数量,K为大于或者等于1的整数。
可选地,第一字段包括该K值。
也就是说,第一字段通过携带该K值来指示第二设备该K值。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数和一个长度所占的字节数的情况下,确认报文只需携带K值,就可以指示第二设备正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节、一个长度占的2字节,确认字段携带的K值为2。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
可选地,第一字段包括该K值和第二字节数,第二字节数为表示一个长度所占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带该K值和第二字节数,就可以指示第二设备正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节,确认字段携带的K值为2,第二字节数为2。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
可选地,第一字段包括该K值和第二字节数,第二字节数为用于表示一个该位置与一个该长度共占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认 报文通过携带该K值和第二字节数,就可以指示第二设备正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节、一个长度占的2字节,确认字段携带的K值为6。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
可选地,第一字段包括第一字节数,该第一字节数表示该确认字段所占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数和一个长度所占的字节数的情况下,确认报文只需携带第一字节数,第二设备只需经过简单计算即可正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节、一个长度占的2字节,确认字段携带的第一字节数为8。
上述技术方案中,第一字段携带该第一字节数,可以间接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
可选地,第一字段包括该第一字节数和该第二字节数,第二字节数为表示一个该长度所占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带第一字节数和第二字节数,第二设备只需经过简单计算即可正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节,确认字段携带的第一字节数为8、第二字节数为2。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
此外,上述技术方案中,还可以根据需要重传的数据报文的数据长度动态调整K值,可以增强表达能力。
可选地,第一字段包括该第一字节数和该第二字节数,第二字节数为用于表示一个该位置与一个该长度共占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带第一字节数和第二字节数,第二设备只需经过简单计算即可正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节,确认字段携带的第一字节数为8、第二字节数为6。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
此外,上述技术方案中,还可以根据需要重传的数据报文的数据长度动态调整K值,可以增强表达能力。
应理解,上述技术方案中,K组数据报文的位置和长度均使用相同的字节来表达,例如K组数据报文的位置均使用4个字节来表达,长度均使用2个字节来表达。
可选地,确认字段包括一个结束标识,用于指示确认字段的结束。此时,只要知道表示一个位置和一个长度所占的字节数,第二设备就可以正确解析确认字段。表示一个位置和一个长度所占的字节数可以预先约定好、也可以通过确认报文通知第二设备。应理解,此时,在表示一个位置和一个长度所占的字节数预先约定好的情况下,确认报文可以没有 第一字段。
应理解,本申请实施例在构造第二字段时,表达第二字段中的每组数据报文占用的空间相同,这样可以避免由于占用的空间不同而引起的第二设备对确认字段内容的解析失误。
可选地,K值可以根据第二字节数确定。
例如,确认字段位于TCP选项字段,TCP选项字段最多为40个字节,如果第二字节数为6,那么K值最大为6。
上述技术方案中,本申请实施例可以根据需要重传的数据报文的数据长度动态调整K值,可以增强表达能力。
可选地,表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数。
例如,K值为3时,实际表示第1组数据报文的位置需要4个字节,长度需要1个字节,共占5个字节数;实际表示第2组数据报文的位置需要4个字节,长度需要2个字节,共占6个字节数;实际表示第3组数据报文的位置需要4个字节,长度需要3个字节,共占7个字节数。第1-3组的长度均使用3个字节来表达,故第二字节数为7,并且在构造确认报文时,第1-3组数据报文的位置和长度均使用7个字节来表示。
上述技术方案中,表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数,能够在保证正确表示任意一组数据报文的前提下,进一步减小确认报文占用的空间。
可选地,确认字段还包括第三字段,该第三字段用于指示该确认字段的类型。
例如,第三字段携带确认字段的类型编号。
上述技术方案中,通过第三字段指示确认字段的类型,可以便于第二设备确定解析该确认字段的方法,进而正确解析该确认字段。
可选地,确认报文还包括确认序列号,该确认序列号用于指示第二设备期待的下一个数据报文的序列号或者第一设备已经成功接收的数据报文的最大序列号。
可选地,该第一设备生成该确认报文。第一设备生成确认报文的方法包括以下两种。
方法1:
该第一设备根据成功接收的M个数据报文生成该确认报文,其中M小于N。
此时,K组数据报文为成功接收的数据报文,确认序列号为第二设备期待的下一个数据报文的序列号。
可选地,该第一设备可以不确定未成功接收的数据,由第二设备确定未成功发送的数据。
例如,第一设备通过确认报文指示第二设备第一设备成功接收的数据,第二设备根据该成功接收的数据确定需要重传的数据,也即第二设备未成功发送的数据,也即第一设备未成功接收的数据。
上述技术方案中,通过向第二设备指示已经成功接收的数据报文,间接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
方法2:
第一设备根据成功接收的M个数据报文确定未成功接收的N-M个数据报文,再根据 该未成功接收的N-M个数据报文的中K个位置和K个长度生成该确认报文。
此时,K组数据报文为未成功接收的数据报文,确认序列号为第一设备已经成功接收的数据报文的最大序列号。
上述技术方案中,通过向第二设备指示未成功接收的数据报文,直接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
下面结合图5详细描述以上两种方法。如图5所示,第一设备成功接1-3号数据报文后,丢失了4-5号数据报文,之后又成功接收6-7号的数据报文,丢失了8-9号数据报文,最后成功接收10-12号数据报文。
采用方法1,第一设备回复给第二设备的确认报文关键内容为:ACK 4+6-7+10-12。其中,“ACK 4”代表确认序列号为4,表示第二设备期待的下一个数据报文的序列号为4;“6-7+10-12”为确认字段中的第二字段,表示虽然还没有成功接收4号数据报文,但第一设备已经成功接收后续6、7、10、11和12号数据报文;6-7和10-12分别为一组数据报文。当第一设备断定需进行丢包重传时(例如收到三个重复确认报文),发送端将依据确认序列号和确认字段的内容,放弃重传已经被认为成功接收的6-7号和10-12号数据报文,而依次对可能丢失的4-5号和8-9号数据报文进行比较精确的重传。
采用方法2,第一设备回复给第二设备的确认报文关键内容为:ACK 12+4-5+8-9。其中,“ACK 12”表示第一设备已经成功接收的数据报文的最大序列号为12;“4-5+8-9”表示虽然当前成功接收的数据报文的最大序列号为12,但在1-12号的所有数据报文中,4-5号和8-9号数据报文并没有被成功接收。当第二设备接收到该确认报文时,将按照确认报文中所指示数据报文的序列号进行丢包重传。
下面结合具体地例子对本申请实施例的方法进行更详细的描述。
应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
本申请的确认报文的确认字段的一种构造方法为:
类型(1字节)+连续数据序列范围的总数量(4位)+每个连续数据序列范围所占字节数(4位)+起始字节的序列号(4字节)+数据长度(1字节:256或者2字节:65535…)
其中,类型可以对应于上文的第三字段,连续数据序列范围的总数量可以对应于上文的K值,每个连续数据序列范围所占字节数可以对应于上文的第二字节数,起始字节的序列号可以对应于上文的起始字节的序列号,数据长度可以对应于上文的长度。
数据长度部分所占用的字节数随着当前最大连续数据序列范围的变化而变化,最大可以为4字节,“1字节:256”的含义是连续数据序列范围长度小于256时,则数据长度占用字节数为1字节;类似的,“2字节:65535”表示连续数据序列范围长度大于256且小于或者等于65535时,则数据长度占用字节数为2字节,更长的“连续数据序列范围”以此类推。
上述技术方案中,根据连续接收/丢失数据序列范围的长度信息,动态调整确认报文中相关部分的占用长度和内容。连续数据序列范围小,则减少确认报文所占的字节数;连续数据序列范围大,则用更多字节的确认报文来表示。为了表达动态变化的连续的接收/丢失数据序列范围,本申请在确认报文中还新增每个连续数据序列范围的所占字节数和连 续数据序列范围的总数量。
采用上述构造方法,确认字段所占的总长度可优化为:(2+L*N),5≤L≤8,其中N为连续数据序列范围的总数量,L的大小取决于最大的连续数据序列范围的数据长度,即连续数据范围的数据长度越长,所需数据长度则越大,确认字段占用空间就越多。
本申请实施例的确认字段的构造方法中连续数据序列范围的总数量和每个连续数据序列范围所占字节数分别用4位空间来表示。对于连续数据序列范围的总数量,由于确认字段所在的TCP选项的最大长度是40字节,减去控制字节2字节(类型字段1字节、连续数据序列范围的总数量和每个连续数据序列范围所占字节共占1字节),剩38字节;以最小的连续数据序列范围所占字节数为例(例如,起始字节的序列号4+数据长度1=5),则最大连续数据序列范围的总数量为38/5=7,因此用4位空间来表达连续数据序列范围的总数量是足够的。对于每个连续数据序列范围所占字节数,由于我们限制连续数据序列范围所占字节数的最大值为8字节,因此用4位空间来表达每个连续数据序列范围所占字节数也是足够的。
本申请实施例在构造每个连续数据序列范围时,使用表达最大的连续数据序列范围所需的空间。这样做的目的是为了防止由于连续数据序列范围大小不一致而引起的确认报文内容解析失误,副作用是可能引起一定空间浪费。
另一种确认字段的构造方法为:
类型(1字节)+长度(1字节)+起始字节的序列号(4字节)+结束字节的序列号(4字节)
其中,类型为确认报文的类型,起始字节的序列号为连续数据报文范围的起始字节的序列号,结束字节的序列号为连续数据序列范围的结束字节的序列号,一组起始字节的序列号和结束字节的序列号对应一个连续数据序列范围。
采用上述构造方法,确认字段所占的总长度为:2+8*N,其中N为连续数据序列范围的总数量。该构造方法固定采用8个字节表示一个连续数据序列范围。
以确认序列号为7778881,连续数据序列范围为7783261至7840201为例,采用上述两种确认报文的构造方法结果如下。
本申请:ACK:7778881+类型:*+连续数据序列范围的总数量:1+每个连续数据序列范围所占字节数:6+起始字节的序列号:7783261+数据长度:56940,其中*表示为新的确认字段的构造方法分配的新类型编号。
另一种方法:ACK:7778881+类型:5+长度:10+起始字节的序列号:7783261+结束字节的序列号:7840201。
可见在连续数据序列范围较小时,另一种方法会存在很大空间浪费,表达效率很低。确认报文中冗长的确认字段内容,不仅限制了确认报文中可以表达的额外接收(丢失)的连续数据序列范围的总数量,而且也限制了确认报文中其他功能选项的使用。以TCP选项字段为例,TCP选项字段的长度限制为40字节,该方法最多可以表达4个连续数据序列范围((40-2)/8=4.75);同时,除了确认字段以外,还有其他33种功能字段也同样使用TCP的选项字段,而冗长的确认字段内容也限制了这些功能的使用。
相较于另外一种方法中确认字段需要10个字节,本申请实施例的确认字段的构造方法的确认字段仅需8个字节。
更具体地,图6是分别采用本申请实施例的方法和另一种方法的2个实例。
第一个实例中,连续数据序列范围的数据长度超过了65535,因此数据长度字段需要3个字节的空间来表达。第二个实例中,存在两个连续数据序列范围,表示每个连续数据序列范围需要6个字节。可以看出,本申请实施例的确认字段的构造方法确能够有效的减少确认报文中确认字段占据的空间。
表1总结了随着连续数据序列范围数据长度的增长,采用本申请的方法构造的确认字段中的数据长度(data length,DL)部分也随着增长的情况下,本申请的方法构造的确认字段相比于另一种方法构造的确认字段,在空间节约和表达能力增加方面的提高情况。其中第一列以数据长度的占的字节数为标准,分析不同数据长度下能够支持的单个连续数据序列范围的长度最大值。第一行表示支持的连续数据序列范围的总数量,可见本申请的方法构造的确认字段最多可支持7个连续数据序列范围,而另一种方法构造的确认字段最多支持4个连续数据序列范围。最后一列为不同数据长度的情况下,本申请的方法构造的确认字段相比另一种方法构造的确认字段的平均空间节约率。
可见本申请的方法构造的确认字段,可以有效的减少确认报文信息所占的空间,提高确认报文空间利用率,从而减少上行带宽开销。
表1 本申请的确认字段和另一种方法的确认字段效果对比
Figure PCTCN2019107177-appb-000001
图7是根据本申请实施例提供的通信设备的结构框图。图7中的通信设备700可以对应于上文的第一设备。如图7所示,通信装置700包括接收模块701和发送模块702。
接收模块701,用于接收第二设备发送的数据,其中该数据包括N个数据报文。
发送模块702,用于向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
接收模块701可以由接收器实现。发送模块702可以由发送器实现。接收模块701和发送模块702的具体功能和有益效果可以参见图3所示的方法,在此就不再赘述。
图8是根据本申请另一实施例提供的通信设备的结构框图。图8中的通信设备800可以对应于上文的第二设备。如图8所示,通信装置800包括接收模块801和发送模块802。
发送模块802,用于向第一设备发送数据,其中该数据包括N个数据报文。
接收模块801,用于接收该第一设备发送的确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
接收模块801可以由接收器实现。发送模块802可以由发送器实现。接收模块801和发送模块802的具体功能和有益效果可以参见图3所示的方法,在此就不再赘述。
图9是本申请另一实施例提供的通信设备的示意性结构图。图9中的通信设备900可以对应于上文的第一设备。如图9所示,通信设备900包括收发器901、处理器902、存储器903。
图9中仅示出了一个存储器和处理器。在实际的通信设备产品中,可以存在一个或多个处理器和一个或多个存储器。存储器也可以称为存储介质或者存储设备等。存储器可以是独立于处理器设置,也可以是与处理器集成在一起,本申请实施例对此不做限制。
收发器901、处理器902、存储器903之间通过内部连接通路互相通信,传递控制和/或数据信号
上述本申请实施例揭示的方法可以应用于收发器901中,或者由收发器901实现。
具体地,收发器901,用于接收第二设备发送的数据,其中该数据包括N个数据报文;用于向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续 的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
该确认报文可以由处理器902或者收发器901中的处理模块生成。
通信设备900的具体工作过程和有益效果可以参见图3所示实施例中的描述。
图10是本申请另一实施例提供的通信设备的示意性结构图。图10中的通信设备1000可以对应于上文的第二设备。如图10所示,通信设备1000可以包括收发器1001、处理器1002、存储器1003。
图10中仅示出了一个存储器和处理器。在实际的通信设备产品中,可以存在一个或多个处理器和一个或多个存储器。存储器也可以称为存储介质或者存储设备等。存储器可以是独立于处理器设置,也可以是与处理器集成在一起,本申请实施例对此不做限制。
收发器1001、处理器1002、存储器1003之间通过内部连接通路互相通信,传递控制和/或数据信号
上述本申请实施例揭示的方法可以应用于收发器1001中,或者由收发器1001实现。具体地,收发器1001,用于向第一设备发送数据,其中该数据包括N个数据报文;用于接收该第一设备发送的确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
该确认报文可以由处理器1002或者收发器1001中的处理模块解析并处理。
通信设备1000的具体工作过程和有益效果可以参见图3所示实施例中的描述。
本申请各实施例所述的收发器也可以称为收发单元、收发机、收发装置等。处理器也可以称为处理单元,处理单板,处理模块、处理装置等。可选的,可以将收发器中用于实现接收功能的器件视为接收单元,将收发器中用于实现发送功能的器件视为发送单元,即收发器包括接收单元和发送单元。接收单元有时也可以称为接收机、接收器、或接收电路等。发送单元有时也可以称为发射机、发射器或者发射电路等。
本申请各实施例所述的存储器用于存储处理器运行所需的计算机指令和参数。
本申请各实施例所述的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。本申请各实施例所述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而 前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (26)

  1. 一种传输确认报文的方法,其特征在于,包括:
    第一设备接收第二设备发送的数据,其中所述数据包括N个数据报文;
    所述第一设备向所述第二设备发送确认报文,所述确认报文包括确认字段,所述确认字段包括第一字段和第二字段,所述第二字段包括K个位置和K个长度,所述K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,所述K个长度中的第i个长度为所述第K组数据报文中的第i组数据报文的长度,所述K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,所述每组数据报文包括一个数据报文或者多个连续的数据报文属于所述N个数据报文,i=1,……,K,所述第一字段用于指示所述K值。
  2. 根据权利要求1所述的方法,其特征在于,所述起始位置为起始数据报文的序列号或起始字节的序列号,所述结束位置为结束数据报文的序列号或结束字节的序列号。
  3. 根据权利要求2所述的方法,其特征在于,所述长度为相对于所述起始数据报文或者所述结束数据报文的序列号偏移量,或者相对于所述起始字节或者所述结束字节的序列号偏移量。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述第一字段包括所述K值。
  5. 根据权利要求1至3中任一项所述的方法,其特征在于,所述第一字段包括第一字节数,所述第一字节数为所述确认字段所占的字节数。
  6. 根据权利要求4或5所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为表示一个所述长度所占的字节数。
  7. 根据权利要求4或5所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为用于表示一个所述位置与一个所述长度共占的字节数。
  8. 根据权利要求6或7所述的方法,其特征在于,所述表示一组数据报文的所述长度所占的字节数为表示所述K个长度中最大的长度所占的字节数。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,所述确认字段还包括第三字段,所述第三字段用于指示所述确认字段的类型。
  10. 根据权利要求1至9中任一项所述的方法,其特征在于,所述K组数据报文为成功接收的数据报文。
  11. 根据权利要求1至9中任一项所述的方法,其特征在于,所述K组数据报文为未成功接收数据报文。
  12. 一种传输确认报文的方法,其特征在于,包括:
    第二设备向第一设备发送数据,其中所述数据包括N个数据报文;
    所述第二设备接收所述第一设备发送的确认报文,所述确认报文包括确认字段,所述确认字段包括第一字段和第二字段,所述第二字段包括K个位置和K个长度,所述K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,所述K个长度中的第i个长度为所述第K组数据报文中的第i组数据报文的长度,所述K组数据 报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,所述每组数据报文包括一个数据报文或者多个连续的数据报文属于所述N个数据报文,i=1,……,K,所述第一字段用于指示所述K值。
  13. 根据权利要求12所述的方法,其特征在于,所述起始位置为起始数据报文的序列号或起始字节的序列号,所述结束位置为结束数据报文的序列号或结束字节的序列号。
  14. 根据权利要求13所述的方法,其特征在于,所述长度为相对于所述起始数据报文或者所述结束数据报文的序列号偏移量,或者相对于所述起始字节或者所述结束字节的序列号偏移量。
  15. 根据权利要求12至14中任一项所述的方法,其特征在于,所述第一字段包括所述K值。
  16. 根据权利要求12至14中任一项所述的方法,其特征在于,所述第一字段包括第一字节数,所述第一字节数为所述确认字段所占的字节数。
  17. 根据权利要求15或16所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为表示一个所述长度所占的字节数。
  18. 根据权利要求15或16所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为用于表示一个所述位置与一个所述长度共占的字节数。
  19. 根据权利要求17或18所述的方法,其特征在于,所述表示一组数据报文的所述长度所占的字节数为表示所述K个长度中最大的长度所占的字节数。
  20. 根据权利要求12至19中任一项所述的方法,其特征在于,所述确认字段还包括第三字段,所述第三字段用于指示所述确认字段的类型。
  21. 根据权利要求12至20中任一项所述的方法,其特征在于,所述K组数据报文为成功接收的数据报文。
  22. 根据权利要求12至20中任一项所述的方法,其特征在于,所述K组数据报文为未成功接收数据报文。
  23. 一种通信设备,其特征在于,包括收发器,用于执行如权利要求1至11中任一项所述的方法。
  24. 一种通信设备,其特征在于,包括收发器,用于执行如权利要求12至22中任一项所述的方法。
  25. 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在通信设备上运行时,使得通信设备执行如权利要求1至11中任一项所述的方法。
  26. 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在通信设备上运行时,使得通信设备执行如权利要求12至22中任一项所述的方法。
PCT/CN2019/107177 2018-09-27 2019-09-23 传输确认报文的方法和通信设备 WO2020063501A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP19867987.0A EP3813284B1 (en) 2018-09-27 2019-09-23 Method for transmitting confirmation message, and communication device
JP2021500682A JP7210867B2 (ja) 2018-09-27 2019-09-23 確認パケット伝送方法および通信デバイス
US17/162,556 US11533657B2 (en) 2018-09-27 2021-01-29 Acknowledgment packet transmission method and communications device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811134342.7 2018-09-27
CN201811134342.7A CN110958084B (zh) 2018-09-27 2018-09-27 传输确认报文的方法和通信设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/162,556 Continuation US11533657B2 (en) 2018-09-27 2021-01-29 Acknowledgment packet transmission method and communications device

Publications (1)

Publication Number Publication Date
WO2020063501A1 true WO2020063501A1 (zh) 2020-04-02

Family

ID=69953287

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/107177 WO2020063501A1 (zh) 2018-09-27 2019-09-23 传输确认报文的方法和通信设备

Country Status (5)

Country Link
US (1) US11533657B2 (zh)
EP (1) EP3813284B1 (zh)
JP (1) JP7210867B2 (zh)
CN (1) CN110958084B (zh)
WO (1) WO2020063501A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110958084B (zh) * 2018-09-27 2021-12-14 华为技术有限公司 传输确认报文的方法和通信设备
CN114337942B (zh) * 2021-12-29 2023-06-13 伟乐视讯科技股份有限公司 一种报文重传方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247209A (zh) * 2007-02-15 2008-08-20 大唐移动通信设备有限公司 反馈状态报告的方法及设备
CN104518852A (zh) * 2013-09-29 2015-04-15 普天信息技术研究院有限公司 一种传输反馈方法
CN107734547A (zh) * 2016-08-12 2018-02-23 中兴通讯股份有限公司 状态报告生成和系统,及状态报告接收方法
WO2018127238A1 (zh) * 2017-01-05 2018-07-12 电信科学技术研究院 信息处理方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7436778B1 (en) * 2003-05-12 2008-10-14 Sprint Communications Company, L.P. Related-packet identification
US20060136614A1 (en) * 2004-07-30 2006-06-22 Nokia Corporation System and method for variable length aggregate acknowledgements in a shared resource network
CN1328868C (zh) * 2005-03-01 2007-07-25 广东省电信有限公司研究院 在分布式对等流媒体服务系统中实现可靠组播的方法
US8830846B2 (en) * 2005-04-04 2014-09-09 Interdigital Technology Corporation Method and system for improving responsiveness in exchanging frames in a wireless local area network
CN100401665C (zh) * 2006-01-19 2008-07-09 华为技术有限公司 一种判断反向数据包字节丢失的方法
US8473825B2 (en) * 2009-08-13 2013-06-25 Research In Motion Limited Evolved universal terrestrial radio access acknowledged mode radio link control status report for segmented protocol data units
JP5329581B2 (ja) * 2011-02-04 2013-10-30 株式会社東芝 無線通信端末および無線通信方法
CN102104468A (zh) * 2011-02-18 2011-06-22 中兴通讯股份有限公司 一种基于路由代理的媒体感知arq控制方法及系统
US9154468B2 (en) * 2013-01-09 2015-10-06 Netronome Systems, Inc. Efficient forwarding of encrypted TCP retransmissions
EP3188536B1 (en) * 2014-08-29 2021-04-14 Kabushiki Kaisha Toshiba Integrated circuit for wireless communication, wireless communication terminal, and wireless communication method
US20160219458A1 (en) * 2015-01-26 2016-07-28 Qualcomm Incorporated Methods and apparatus for radio link control switching
CN106161583B (zh) * 2015-05-12 2020-02-21 华为技术有限公司 一种块确认帧的传输方法及设备
CN106535351B (zh) * 2015-09-09 2021-01-15 华为技术有限公司 传输数据的方法和装置
CN108141325B (zh) * 2015-10-07 2021-01-01 Lg电子株式会社 用于上行链路多用户传输的ack/nack信号处理方法及装置
CN107231218B (zh) * 2016-03-25 2021-07-30 大唐移动通信设备有限公司 一种ack/nack反馈方法及相关设备
US10361832B2 (en) * 2016-04-22 2019-07-23 Qualcomm Incorporated Block acknowledgment generation and selection rules
EP3445020B1 (en) * 2016-05-18 2020-10-21 Samsung Electronics Co., Ltd. Method and apparatus for performing efficient layer 2 function in mobile communication system
CN110958084B (zh) * 2018-09-27 2021-12-14 华为技术有限公司 传输确认报文的方法和通信设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247209A (zh) * 2007-02-15 2008-08-20 大唐移动通信设备有限公司 反馈状态报告的方法及设备
CN104518852A (zh) * 2013-09-29 2015-04-15 普天信息技术研究院有限公司 一种传输反馈方法
CN107734547A (zh) * 2016-08-12 2018-02-23 中兴通讯股份有限公司 状态报告生成和系统,及状态报告接收方法
WO2018127238A1 (zh) * 2017-01-05 2018-07-12 电信科学技术研究院 信息处理方法及装置

Also Published As

Publication number Publication date
EP3813284A1 (en) 2021-04-28
EP3813284A4 (en) 2021-08-11
EP3813284B1 (en) 2023-08-30
JP7210867B2 (ja) 2023-01-24
US11533657B2 (en) 2022-12-20
CN110958084A (zh) 2020-04-03
JP2021532636A (ja) 2021-11-25
CN110958084B (zh) 2021-12-14
US20210153075A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
US11412078B2 (en) Data transmission method and first device
US7487424B2 (en) Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same
US8988994B2 (en) System and method for creating logical radio link control (RLC) and medium access control (MAC) protocol data units (PDUs) in mobile communication system
US9043486B2 (en) Data transfer method, system and protocol
WO2020200162A1 (zh) 确定反馈信息的方法和通信装置
WO2020143709A1 (zh) 一种信息处理方法、终端设备及网络设备
US9081905B2 (en) Low latency interconnect bus protocol
WO2020143635A1 (zh) 数据的重传方法、装置、存储介质及电子装置
WO2018228477A1 (zh) 通信方法、网络设备和终端
WO2020063501A1 (zh) 传输确认报文的方法和通信设备
CN107209713B (zh) 按需文件修复的方法和系统
CN114301576B (zh) 用于在ieee 802.15.4网络中生成和发送应答帧的方法及通信装置
WO2020025063A1 (zh) 一种通信方法及装置
CN103999394A (zh) 数据重传、反馈方法,以及相应的装置
US9819602B2 (en) Efficient datagram segmentation and reassembly for packet-switched networks
EP4131817A1 (en) Data transmission method and network device
EP3790213B1 (en) Mac-based hybrid automatic repeat request (harq)
CN115913473B (zh) 一种数据选择性重传方法及其系统、存储介质、电子设备
EP3672189B1 (en) Data transmission method, device and system
JP7166356B2 (ja) アップリンク制御情報の伝送方法及び装置
WO2018228553A1 (zh) 数据传输的方法、网络设备和终端设备
EP2736189B1 (en) Status report processing method, communication device, and communication system
WO2024082238A1 (zh) 通信方法、装置、设备以及存储介质
WO2022236752A1 (zh) 无线通信方法、第一设备和第二设备
WO2024027367A1 (zh) 编码、解码方法及其装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19867987

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021500682

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019867987

Country of ref document: EP

Effective date: 20210121

NENP Non-entry into the national phase

Ref country code: DE