WO2018137218A1 - 一种数据传输方法、数据接收设备及数据发送设备 - Google Patents
一种数据传输方法、数据接收设备及数据发送设备 Download PDFInfo
- Publication number
- WO2018137218A1 WO2018137218A1 PCT/CN2017/072702 CN2017072702W WO2018137218A1 WO 2018137218 A1 WO2018137218 A1 WO 2018137218A1 CN 2017072702 W CN2017072702 W CN 2017072702W WO 2018137218 A1 WO2018137218 A1 WO 2018137218A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- pdcp
- tcp
- packet
- sequence number
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/168—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] specially adapted for link layer protocols, e.g. asynchronous transfer mode [ATM], synchronous optical network [SONET] or point-to-point protocol [PPP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/02—Data link layer protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
Definitions
- the present application relates to the field of communications technologies, and in particular, to a data transmission method, a data receiving device, and a data transmitting device.
- the data transmitting end and the data receiving end generally follow a layered model of data transmission, that is, an application layer, a Transmission Control Protocol (TCP) layer, an Internet Protocol (IP), and a packet. Packet Data Convergence Protocol (PDCP), Radio Link Control (RLC) layer, MAC (Media Access Control) layer, and Physical (PHY) layer.
- TCP Transmission Control Protocol
- IP Internet Protocol
- PHY Physical
- the data transmitting end sends data to the data receiving end
- the data starts from the application layer of the data transmitting end, and passes through the transmission link to the data after the TCP layer, the IP layer, the PDCP layer, the RLC layer, the MAC layer, and the PHY layer of the data transmitting end.
- the PHY layer at the receiving end passes through the MAC layer, the RLC layer, the PDCP layer, the IP layer, and the TCP layer of the data receiving end, and finally reaches the application layer of the data receiving end, and vice versa.
- a receiving data confirmation mechanism such as a TCP layer confirmation mechanism
- TCP layer confirmation mechanism is introduced during the above data transmission to ensure the correctness of TCP packet transmission.
- the data receiving end needs to feed back to the data transmitting end an acknowledgement (ACKnowledge, ACK) data packet that has correctly received the data packet sent by the data transmitting end, and the ACK data packet is compared. Large, affecting data transmission performance.
- the TCP layer acknowledgment mechanism is used to perform the uplink control information feedback process of the downlink data packet, and the size of the most basic TCP ACK data packet sent by the terminal is 20 bytes, if the IP header and the PDCP header are added.
- the TCP ACK packet is about 43 bytes when it is transmitted to the RLC layer. If the TCP ACK packet contains TCP option information such as Selective ACK (SACK), the TCP ACK packet is about 63 bytes when it is transmitted to the RLC layer.
- SACK Selective ACK
- the resource overhead is large when transmitting in the wireless network, and the round trip time of data packet transmission and reception between the data transmitting end and the data receiving end is caused when transmitting in the weak coverage area (Round Trip Time) , RTT) extends and reduces TCP throughput, affecting the transmission performance of data packets transmitted between the data sender and the data receiver.
- the embodiment of the present application provides a data transmission method, a data receiving device, and a data sending device, so as to optimize the transmission performance of the data packet and improve the reliability of the data transmission.
- a data transmission method in which a PDCP protocol entity unit of a data receiving end receives an ACK data packet, and a PDCP protocol entity unit of the data receiving end sends indication information to a PDCP protocol entity unit of the data transmitting end, where the indication
- the information includes a PDCP acknowledgment sequence number, where the PDCP acknowledgment sequence number is a sequence number of the data packet confirmed by the acknowledgment data packet at the PDCP layer, and the indication information is used to indicate that the PDCP protocol entity unit of the data sending end is according to the PDCP.
- the confirmation serial number constructs the ACK packet.
- the PDCP protocol entity unit of the data transmitting end receives the indication information sent by the PDCP protocol entity unit of the data receiving end, and constructs the ACK data packet according to the PDCP acknowledgement sequence number included in the indication information.
- the data receiving end does not send the ACK data packet to the data sending end, but the PDCP protocol entity unit of the data receiving end sends the PDCP protocol entity unit configured to indicate the data sending end to the PDCP protocol entity unit of the data sending end.
- the indication information of the ACK data packet, the resource overhead of transmitting the indication information in the wireless network is smaller than the resource overhead of transmitting the ACK data packet, thereby avoiding transmission between the data transmitting end and the data receiving end caused by the large ACK data packet.
- the problem of reduced transmission performance of the data packet optimizes the transmission performance of the data packet transmitted between the data transmitting end and the data receiving end.
- the ACK packet is a TCP ACK packet sent by a TCP protocol entity unit at the data receiving end.
- the TCP protocol entity unit of the data sending end sends a TCP data packet
- the PDCP protocol entity unit of the data transmitting end acquires the TCP data packet, and groups the TCP data packet into a PDCP data PDU.
- the PDCP protocol entity unit of the data sender parses the TCP packet header to obtain the TCP link identifier, the TCP sequence number, and the TCP packet length (TCP segment length), and establishes and maintains the TCP link identifier, the TCP sequence number, and the TCP packet length respectively.
- TCP segment length TCP segment length
- the PDCP protocol entity unit of the data transmitting end sends a PDCP data PDU to the PDCP protocol entity unit of the data receiving end.
- the PDCP protocol entity unit of the data receiving end receives the PDCP data PDU sent by the PDCP protocol entity unit of the data sending end, and obtains the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP serial number by using the PDCP data PDU. The mapping relationship between them.
- the PDCP protocol entity unit of the data receiving end sends the TCP data packet to the TCP protocol entity unit of the data receiving end.
- the TCP protocol entity unit of the data receiving end confirms that the TCP packet is correctly received, and sends a TCP ACK packet to the PDCP protocol entity unit of the data receiving end, and the PDCP protocol entity unit of the data receiving end receives the TCP ACK packet sent by the TCP protocol entity unit of the data receiving end, Obtain TCP link identification information and TCP acknowledgement number of the TCP ACK packet, and determine the TCP with the TCP ACK packet according to the mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number respectively.
- the link identification information and the PDCP confirmation sequence number that the TCP acknowledgment number matches.
- the PDCP protocol entity unit of the data receiving end generates the indication information including the PDCP acknowledgment sequence number, and sends the indication information including the PDCP acknowledgment sequence number to the PDCP protocol entity unit of the data sending end to indicate the PDCP protocol entity unit of the data sending end.
- the PDCP confirmation sequence number, and the mapping relationship between the TCP link identifier, the TCP sequence number, and the TCP packet length maintained by the data transmitting end and the PDCP sequence number respectively construct the TCP ACK packet, where the data transmitting end
- the PDCP protocol entity unit receives the indication information, and constructs the mapping according to the PDCP confirmation sequence number included in the indication information, and the mapping relationship between the TCP link identifier, the TCP sequence number, and the TCP packet length respectively and the PDCP sequence number.
- the TCP ACK packet can avoid the problem that the transmission performance of the data packet transmitted between the data transmitting end and the data receiving end is degraded due to the large TCP ACK packet, and the data packet between the data transmitting end and the data receiving end is optimized. Transmission performance.
- the PDCP protocol entity unit of the data receiving end may send, by using the PDCP control PDU, indication information indicating that the PDCP protocol entity unit of the data transmitting end constructs the TCP ACK data packet.
- the PDCP control PDU includes a PDCP control entity unit for indicating a data ACK to construct a TCP ACK packet, and a PDCP control PDU for indicating that the PDU is a PDCP control PDU, and a PDCP protocol entity for indicating a data sending end.
- the unit constructs a bit of the TCP ACK packet according to the PDCP acknowledgment sequence number, and a bit for indicating the data content required to construct the TCP ACK packet.
- the indication information is sent by using a PDCP control PDU, and the D/C domain of the PDCP control PDU is used to indicate that the PDU is occupied by one bit, and is used to indicate that the PDCP protocol entity unit of the data sending end is according to the PDCP Acknowledgment Sequence Number
- the PDU Type field of the TCP ACK packet occupies 3 bits and is used to indicate that the PDCP acknowledgment sequence number required to construct the TCP ACK packet occupies 12 bits.
- the indication information is sent by using a PDCP control PDU to indicate that the PDU is
- the D/C field of the PDCP control PDU occupies 1 bit, and is used to indicate that the PDCP protocol entity unit of the data transmitting end constructs a TCP ACK packet according to the PDCP acknowledgement sequence number, and the PDU Type field occupies 3 bits for indicating the configuration.
- the PDCP acknowledgment sequence number required for the TCP ACK packet occupies 15 bits, and the PDCP control PDU also includes 5 reserved bits.
- the PDCP protocol entity unit of the data receiving end may send, by using the PDCP data PDU, indication information indicating that the PDCP protocol entity unit of the data transmitting end constructs the TCP ACK data packet.
- the PDCP data PDU includes a bit for indicating a PDCP protocol entity unit of the data transmitting end, the PDU is a PDCP data PDU, and a bit for indicating that the PDCP protocol entity unit of the data transmitting end constructs a TCP ACK packet according to the PDCP acknowledgement sequence number.
- the indication information is sent by using a PDCP data PDU to indicate that the PDU is a D/C field of the PDCP data PDU occupying 1 bit, and is used to indicate that the PDCP protocol entity unit of the data sending end is according to the
- the PDCP acknowledgment sequence number constructs the PDCP data PDU type.
- the DPT field of the TCP ACK packet occupies 1 bit, which is used to indicate that the PDCP SN of the PDCP sequence number occupies 12 or 15 bits, and the remaining bits are the vacant bits R. .
- the PDCP protocol entity unit of the data receiving end sends the PDCP control PDU to the RLC protocol entity unit of the data receiving end, and the RLC protocol entity unit of the data receiving end determines that the RLC SDU is correctly received by the RLC ACK of the data sending end.
- the PDCP protocol entity unit PDCP control PDU of the data receiving end is notified in the form of the PDCP acknowledgement sequence number that the PDCP protocol entity unit of the data receiving end deletes the PDCP control PDU buffer corresponding to the PDCP acknowledgement sequence number.
- the indication information including the PDCP confirmation sequence number may further include a TCP receiving window size of the data receiving end, and the indication information including the TCP receiving window size is used to indicate that the data sending end constructs the TCP acknowledgement packet. Restores the TCP receive window size field.
- the indication information including the PDCP confirmation sequence number and the TCP reception window size may be sent through a PDCP control PDU or a PDCP data PDU. After the PDCP protocol entity unit of the data transmitting end receives the indication information sent by the PDCP protocol entity unit of the data receiving end, if the indication information includes the TCP receiving window size of the data receiving end, the data sending end constructs a TCP acknowledgement data packet. Restores the TCP receive window size field.
- the indication information including the PDCP confirmation sequence number may further include a TCP SACK option, and the indication information including the TCP SACK option is used to indicate that the data sending end restores the TCP SACK option when constructing the TCP acknowledgement packet. area.
- the indication information including the PDCP confirmation sequence number and the TCP SACK option field may be sent through a PDCP control PDU or a PDCP data PDU. After the PDCP protocol entity unit of the data transmitting end receives the indication information sent by the PDCP protocol entity unit of the data receiving end, if the indication information includes the TCP selection confirmation SACK option, the data sending end restores the TCP SACK when constructing the TCP acknowledgement packet. Option field.
- the acknowledgment data packet is a UDP-based QUIC acknowledgment data packet;
- the indication information includes a PDCP acknowledgment sequence number and timestamp information that match a data block sequence number of the QUIC acknowledgment data packet;
- the information is used to indicate that the PDCP protocol entity unit of the data sending end constructs the QUIC acknowledgement data packet according to the PDCP acknowledgement sequence number and the timestamp information.
- the PDCP protocol entity unit of the data transmitting end constructs the QUIC acknowledgement data packet according to the PDCP acknowledgement sequence number and the timestamp information.
- a data receiving device has a function of implementing a PDCP protocol entity unit in a data receiving end in the foregoing method design, and the function may be implemented by hardware, or may be implemented by hardware corresponding software.
- the hardware or software includes one or more modules corresponding to the functions described above. The modules can be software and/or hardware.
- the data receiving device comprises a receiving module and a sending module, wherein the receiving module is configured to receive the acknowledgement data packet.
- the sending module is configured to send, to the packet data aggregation layer PDCP protocol entity unit of the data sending end, the indication information, where the indication information includes a PDCP acknowledgment sequence number, where the PDCP acknowledgment sequence number is a data packet confirmed by the acknowledgment data packet In the sequence number of the PDCP layer, the indication information is used to indicate that the PDCP protocol entity unit of the data sending end constructs the acknowledgement data packet received by the receiving module according to the PDCP acknowledgement sequence number.
- the indication information is sent by using a PDCP control PDU or a PDCP data PDU.
- the PDCP control PDU or the PDCP data PDU includes a PDCP protocol entity unit for indicating a data sending end, and the acknowledgement data packet is constructed according to the PDCP acknowledgement sequence number. Bit.
- the data receiving device further includes a processing module.
- the acknowledgment data packet is a TCP acknowledgment data packet sent by the Transmission Control Protocol TCP protocol entity unit of the data receiving device.
- the receiving module is further configured to: before the sending module sends the indication information to the PDCP protocol entity unit of the data sending end, acquire the TCP link identifier information and the TCP acknowledgement number of the TCP acknowledgement data packet.
- the processing module is configured to: determine, according to a mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number, the TCP link identifier information and the TCP acknowledgement number of the TCP acknowledgement packet.
- the matched PDCP confirms the sequence number and generates indication information including the PDCP confirmation sequence number.
- the mapping relationship is obtained and maintained by a PDCP protocol entity unit of the data receiving device from a PDCP protocol entity unit PDCP data protocol data unit PDU of the data sending end, where the PDCP data PDU includes the TCP confirmed by the TCP acknowledgement packet. data pack.
- the indication information including the PDCP acknowledgment sequence number is used to indicate that the PDCP protocol entity unit of the data sending end confirms the sequence number according to the PDCP, and the TCP link identifier, the TCP sequence number, and the TCP packet length maintained by the data sending end.
- the mapping relationship between the PDCP column number and the PDCP column number constructs the TCP acknowledgement packet.
- the indication information further includes a TCP receiving window size of the data receiving device, where the indication information including the TCP receiving window size is used to indicate that the data sending end restores the TCP receiving window size domain when constructing the TCP acknowledgement data packet. .
- the indication information further includes a TCP selection confirmation SACK option, where the indication information including the TCP SACK option is used to indicate that the data sending end restores the TCP SACK option field when constructing the TCP acknowledgement packet.
- the acknowledgment data packet is a UDP-based QUIC acknowledgment data packet; the indication information includes a PDCP acknowledgment sequence number and timestamp information that match a data block sequence number of the QUIC acknowledgment data packet; the indication information is used to indicate
- the PDCP protocol entity unit of the data transmitting end constructs the QUIC acknowledgement data packet according to the PDCP acknowledgement sequence number and the timestamp information.
- the receiving module of the data receiving device may be a receiver.
- the processing module can be a processor.
- the sending module can be a transmitter.
- the data receiving device may be a terminal.
- the data receiving device may further include a memory and a bus.
- the memory is for coupling with the processor to store program code and data of the data receiving device.
- the receiver, the transmitter, the processor, and the memory can be connected to each other through a bus.
- a third aspect provides a data transmitting device, which has a function of implementing a PDCP protocol entity unit in a data sending end in the above method design, and the function may be implemented by hardware, or may be implemented by hardware corresponding software.
- the hardware or software includes one or more modules corresponding to the functions described above.
- the modules can be software and/or hardware.
- the data sending device includes a receiving module and a processing module, where the receiving module is configured to receive indication information sent by a packet data aggregation layer PDCP protocol entity unit of the data receiving device,
- the indication information includes a PDCP confirmation sequence number, and the PDCP confirmation sequence number is a sequence number of the data packet confirmed by the acknowledgement packet at the PDCP layer.
- the processing module is configured to construct an acknowledgement packet according to the PDCP confirmation sequence number included in the indication information received by the receiving module.
- the data transmitting device further includes a sending module.
- the acknowledgment data packet is a TCP acknowledgment data packet sent by the Transmission Control Protocol TCP protocol entity unit of the data receiving device.
- the sending module is configured to: before the processing module constructs the acknowledgement data packet according to the PDCP acknowledgement sequence number included in the indication information, send a PDCP data protocol data unit PDU to a PDCP protocol entity unit of the data receiving device, where The PDCP data PDU includes the TCP data packet confirmed by the TCP acknowledgement packet, and the PDCP protocol entity unit of the data sending end obtains the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP from the PDCP data PDU.
- the serial number establishes and maintains a mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number.
- the processing module constructs the acknowledgement data packet according to the PDCP acknowledgement sequence number included in the indication information according to the PDCP confirmation sequence number, and the TCP link identifier, the TCP sequence number, and the TCP packet length respectively.
- the TCP acknowledgement packet is constructed with a mapping relationship with the PDCP sequence number.
- the processing module is further configured to: after the receiving module receives the indication information sent by the PDCP protocol entity unit of the data receiving device, if the indication information includes a TCP receiving window size of the data receiving device, The TCP receive window size field is restored when the TCP acknowledgement packet is constructed.
- the processing module is further configured to: after the receiving module receives the indication information sent by the PDCP protocol entity unit of the data receiving device, if the indication information includes a TCP selection confirmation SACK option, constructing a TCP confirmation packet The TCP SACK option field is restored.
- the acknowledgment data packet is a QUIC acknowledgment data packet based on UDP;
- the indication information includes a PDCP acknowledgment sequence number and timestamp information that match a data block sequence number of the QUIC acknowledgment data packet; and the processing module adopts the following manner
- the acknowledgment data packet is constructed according to the PDCP acknowledgment sequence number included in the indication information: the QUIC acknowledgment data packet is constructed according to the PDCP acknowledgment sequence number and the timestamp information.
- the receiving module of the data transmitting device may be a receiver.
- the processing module can be a processor.
- the sending module can be a transmitter.
- the data sending device may be a network device such as an application server.
- the data transmitting device may further include a memory.
- the memory is for coupling with the processor to store program code and data of the data transmitting device.
- the data transmission method, the data receiving device, and the data transmitting device provided by the present application are sent by the PDCP protocol entity unit of the data receiving device to the PDCP protocol entity unit of the data transmitting device to indicate the PDCP protocol entity unit configuration confirmation packet of the data sending device.
- the problem of reduced transmission performance optimizes the transmission performance of data packets transmitted between the data transmitting device and the data receiving device.
- FIG. 1 is a structural diagram of data interaction between a terminal and a network device in a wireless communication system
- FIG. 2 is a flowchart of an implementation of a data transmission method according to an embodiment of the present application
- FIG. 3 is a flowchart of another implementation of a data transmission method according to an embodiment of the present application.
- FIG. 5 is another example of a PDCP control PDU format provided by an embodiment of the present application.
- FIG. 6 is an example of a PDCP data PDU format provided by an embodiment of the present application.
- FIG. 7 is still another example of a PDCP control PDU format provided by an embodiment of the present application.
- FIG. 8 is still another example of a PDCP control PDU format provided by an embodiment of the present application.
- FIG. 9 is still another example of a PDCP control PDU format provided by an embodiment of the present application.
- FIG. 10 is a schematic structural diagram of a data receiving device according to an embodiment of the present application.
- FIG. 11 is another schematic structural diagram of a data receiving device according to an embodiment of the present application.
- FIG. 12 is a schematic structural diagram of a data sending device according to an embodiment of the present disclosure.
- FIG. 13 is another schematic structural diagram of a data sending device according to an embodiment of the present disclosure.
- the data transmission method provided in the embodiment of the present application is applicable to data transmission in a wireless communication system, where the data receiving end and the data transmitting end perform data interaction through a radio access network (RAN) and a core network, where the data
- RAN radio access network
- a TCP connection can also be established between the receiving end and the data transmitting end, and the TCP protocol is used for data transmission.
- FIG. 1 in a wireless communication system, a data exchange is performed between a terminal and a network device, and the terminal accesses the RAN through an air interface and is connected to the network device via a core network, where the network between the terminal and the RAN may be referred to as wireless.
- the network, the network between the RAN and the network device may be referred to as a wired network.
- a TCP connection is established between the network device and the terminal for data transmission.
- the access layer includes PDCP/R LC/MAC/PHY
- the non-access stratum includes TCP/IP.
- the entity that performs the PDCP layer protocol is referred to as a PDCP protocol entity unit in the following embodiments, and the PDCP protocol entity unit belongs to the PDCP layer and corresponds to the PDCP layer.
- the entity that implements the TCP layer protocol is called the TCP protocol entity unit, and the TCP protocol entity unit belongs to the TCP layer and corresponds to the TCP layer.
- An entity that implements the RLC layer protocol is referred to as an RLC protocol entity unit, and an RLC protocol entity unit belongs to the RLC layer and corresponds to the RLC layer.
- an RLC protocol entity unit belongs to the RLC layer and corresponds to the RLC layer.
- the description of the processing procedure of the protocol layer between the two protocol entity units may be omitted, for example, the PDCP protocol entity unit and data at the data receiving end.
- the descriptions of the processing procedures of the RLC layer and the MAC/PHY layer of the data receiving end and the data transmitting end are omitted.
- the data receiving end in order to ensure the reliability of data interaction, after receiving the data packet sent by the data sending end, the data receiving end needs to feedback to the data sending end that the data has been correctly received.
- the ACK packet of the data packet sent to the data transmitting end such as the non-access stratum of the data receiving end, generates an ACK data packet. Since the ACK packet generated by the non-access stratum is large, the round trip time (RTT) of the data packet transmission and reception between the data transmitting end and the data receiving end is caused in the wireless network, especially when the weak coverage area is transmitted.
- RTT round trip time
- the data receiving end does not send the ACK data packet to the data sending end, but the PDCP protocol entity unit of the data receiving end sends the PDCP protocol entity unit of the data sending end to indicate the data sending end.
- the PDCP protocol entity unit constructs the indication information of the ACK data packet, and the resource overhead of transmitting the indication information in the wireless network is smaller than the resource overhead of transmitting the ACK data packet, thereby avoiding the data sending end caused by the large ACK data packet.
- the problem of the transmission performance of the transmitted data packet between the data receiving end and the data receiving end is reduced, and the transmission performance of the data packet transmitted between the data transmitting end and the data receiving end is optimized.
- FIG. 2 is a flowchart of implementing a data transmission method according to an embodiment of the present application. Referring to FIG. 2, the method includes:
- the PDCP protocol entity unit of the data receiving end receives the ACK data packet.
- the PDCP protocol entity unit of the data receiving end may acquire an ACK data packet from a non-access stratum of the data receiving end, and the ACK data packet is different according to a protocol used for transmitting the data packet between the data transmitting end and the data receiving end. It can be a different acknowledgment packet.
- the ACK packet can be a TCP ACK packet.
- the ACK packet can be UDP-based. Delay UDP Internet Connection (QUIC) ACK packet.
- the PDCP protocol entity unit of the data receiving end sends the indication information to the PDCP protocol entity unit of the data sending end, where the indication information includes a PDCP acknowledgment sequence number, where the indication information is used to indicate that the PDCP protocol entity unit of the data sending end is according to the PDCP.
- the confirmation serial number constructs the ACK packet.
- the PDCP confirms that the sequence number is the sequence number of the data packet confirmed by the ACK packet at the PDCP layer.
- the PDCP protocol entity unit of the data receiving end may send, by using a PDCP control PDU or a PDCP data PDU, a PDCP protocol entity unit for indicating a data transmitting end to construct the acknowledgement data according to the PDCP acknowledgement sequence number.
- Package instructions for using a PDCP control PDU or a PDCP data PDU, a PDCP protocol entity unit for indicating a data transmitting end to construct the acknowledgement data according to the PDCP acknowledgement sequence number.
- the PDCP protocol entity unit of the data sending end receives the indication information sent by the PDCP protocol entity unit of the data receiving end, and constructs the ACK data packet according to the PDCP acknowledgement sequence number included in the indication information.
- the ACK data packet constructed by the PDCP protocol entity unit of the data sending end generally refers to an ACK data packet including an IP header
- the TCP ACK data packet refers to a TCP ACK data packet including an IP header. Since most of the field values in ACK packets containing IP headers are usually fixed in a TCP link, such as version number, header length, priority and service type (Priority & Type of Service), flags Flags, time to live, etc., so the data sender constructs these fixed field values that can be constructed using the field values of the most recent TCP packet headers that have been sent.
- the PDCP protocol entity unit of the data sending end maintains the latest TCP packet header received in each link carried by the data, and the latest TCP packet header may be received and stored from the data receiving end.
- the header of the TCP packet may also be the header of a TCP packet (referred to only as a TCP ACK packet) generated and stored by the PDCP protocol entity unit of the data transmitting end.
- the PDCP protocol entity unit of the data sender is constructed by the PDCP acknowledgment sequence number. On this basis, the PDCP protocol entity unit of the data transmitting end generates other domains such as checksums by calculation, and then completes the construction of the TCP ACK packet.
- the PDCP protocol entity unit of the data receiving end sends an indication information indicating that the PDCP protocol entity unit of the data transmitting end constructs the ACK data packet to the PDCP protocol entity unit of the data transmitting end, and does not send the ACK data to the data sending end.
- the resource overhead of transmitting the indication information in the wireless network is smaller than the resource overhead of transmitting the ACK data packet, thereby avoiding transmission of the data packet transmitted between the data transmitting end and the data receiving end due to the large ACK data packet.
- the problem of degraded performance optimizes the transmission performance of data packets transmitted between the data sender and the data receiver.
- the following is a description of the implementation process of transmitting the indication information by the PDCP protocol entity unit of the data receiving end to the PDCP protocol entity unit of the data transmitting end, and constructing the ACK data packet by the PDCP protocol entity unit of the data sending end.
- an ACK packet is used as an example of a TCP ACK packet.
- other intermediate protocol entity units such as IP protocol entity units, may exist between the TCP protocol entity unit and the PDCP protocol entity unit, because the behavior of the intermediate protocol entity unit is prior art, and is simplified for description. This application omits the processing of the intermediate protocol entity unit.
- FIG. 3 is a flowchart of implementing a data transmission method in an embodiment provided by the present application. Referring to FIG. 3, the method includes:
- the TCP protocol entity unit of the data sending end sends a TCP data packet
- the PDCP protocol entity unit of the data sending end acquires the TCP data packet, and groups the TCP data packet into a PDCP data protocol data unit (Protocol Data Unit, PDU). ).
- PDU Protocol Data Unit
- the PDCP protocol entity unit of the data sending end parses the TCP data packet header to obtain a TCP link identifier, a TCP sequence number, and a TCP packet length (TCP segment length), and establishes and maintains a TCP link identifier, a TCP sequence number, and a TCP packet.
- TCP segment length TCP segment length
- the PDCP protocol entity unit of the data sending end sends the PDCP data PDU to the PDCP protocol entity unit of the data receiving end.
- the PDCP protocol entity unit of the data receiving end receives the PDCP data PDU sent by the PDCP protocol entity unit of the data sending end, and obtains the TCP link identifier, the TCP sequence number, and the TCP packet length respectively by using the PDCP data PDU.
- the PDCP protocol entity unit of the data receiving end sends the TCP data packet to the TCP protocol entity unit of the data receiving end.
- the TCP protocol entity unit of the data receiving end confirms that the TCP data packet is correctly received, and sends a TCP ACK data packet to the PDCP protocol entity unit of the data receiving end, and the PDCP protocol entity unit of the data receiving end receives the TCP ACK data sent by the TCP protocol entity unit of the data receiving end. package.
- the PDCP protocol entity unit of the data receiving end receives the TCP ACK data packet, and determines whether the TCP ACK data packet is constructed by the PDCP protocol entity unit of the data transmitting end according to the content of the TCP ACK data packet, for example, when determining a TCP ACK.
- the judgment result is that the TCP ACK packet needs to be constructed by the PDCP protocol entity unit of the data transmitting end, and then S207 is performed.
- the judgment result is that the data ACK packet cannot be constructed by the PDCP protocol entity unit, and the reference is made to the prior art.
- the PDCP packet is sent to send the TCP ACK packet.
- the PDCP protocol entity unit of the data receiving end acquires the TCP link identifier information of the TCP ACK packet and the TCP acknowledgement number, and according to the mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number respectively. Determine the PDCP sequence number that matches the TCP link identification information of the TCP ACK packet and the TCP acknowledgement number.
- the PDCP sequence number is the PDCP sequence number of the data sending end, in order to avoid confusion with the serial number of the PDCP data packet sent by the data receiving end itself, the determined PDCP serial number is named PDCP confirmation. serial number.
- the PDCP acknowledgement sequence number is the sequence number of the TCP packet acknowledged by the TCP ACK packet at the PDCP layer.
- mapping relationship between the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence number maintained by the data receiving end is as shown in Table 1:
- the PDCP protocol entity unit of the data receiving end generates the indication information including the PDCP acknowledgment sequence number, and sends the indication information including the PDCP acknowledgment sequence number to the PDCP protocol entity unit of the data sending end to indicate the PDCP protocol entity unit of the data sending end.
- the TCP ACK packet is constructed according to the PDCP confirmation sequence number, and the mapping relationship between the TCP link identifier, the TCP sequence number, and the TCP packet length maintained by the data sender and the PDCP sequence number, respectively.
- the PDCP protocol entity unit of the data receiving end may send, by using the PDCP control PDU, indication information indicating that the PDCP protocol entity unit of the data transmitting end constructs the TCP ACK data packet.
- the PDCP control PDU for indicating a TCP ACK packet of the PDCP protocol entity unit for indicating the data transmitting end includes a bit for indicating that the PDU is a PDCP control PDU, and a PDCP protocol entity unit for indicating a data transmitting end according to the PDCP.
- the acknowledgment sequence number constructs the bits of the TCP ACK packet and the bits used to indicate the data content required to construct the TCP ACK packet.
- FIG. 4 shows an example of a PDCP control PDU format provided by the present application.
- the PDCP control PDU shown in Figure 4 includes 16 bits for a total of 2 bytes (Oct).
- the data/control (D/C) field used to indicate that the PDU is a PDCP control PDU occupies 1 bit, and is used to indicate that the PDCP protocol entity unit of the data sending end constructs a TCP according to the PDCP acknowledgement sequence number.
- the PDU Type field of the ACK packet occupies 3 bits for indicating that the PDCP acknowledgment sequence number required to construct the TCP ACK packet occupies 12 bits.
- D/C data/control
- the D/C field takes a value of 0 to indicate that the PDU is a PDCP control PDU, and the PDU Type field has a value of 011 for indicating that the PDCP protocol entity unit of the data transmitting end confirms the serial number according to the PDCP. Construct a TCP ACK packet.
- 5 is another example of the PDCP control PDU format provided by the present application, considering that the PDCP acknowledgment sequence number corresponds to the PDCP sequence number format of the PDCP protocol entity unit of the data transmitting end, when the PDCP sequence number of the data transmitting end is 15 bits.
- the PDCP control PDU size is an integer number of bytes, there are 5 reserved bits in this format, and the contents of the remaining fields are the same as in FIG.
- the PDCP protocol entity unit of the data receiving end may send, by using the PDCP data PDU, indication information indicating that the PDCP protocol entity unit of the data transmitting end constructs the TCP ACK data packet.
- the PDCP protocol entity unit for indicating the data sending end is the bit of the PDCP data PDU
- the PDCP protocol entity unit for indicating the data sending end constructs the bit of the TCP ACK packet according to the PDCP acknowledgement sequence number.
- FIG. 6 shows an example of a PDCP data PDU format provided by the present application.
- the PDCP header of the PDCP data PDU shown in FIG. 6 includes 16 bits, for a total of 2 Oct. Wherein, it is used to indicate that the PDU is a PDCP data PDU.
- the D/C field occupies 1 bit, and is used to indicate that the PDCP protocol entity unit of the data transmitting end constructs a PDCP data PDU type (DPT) domain of the TCP ACK packet according to the PDCP acknowledgement sequence number, and occupies 1 bit.
- Bit the PDCP SN indicating the PDCP sequence number occupies 12 or 15 bits, and the remaining bits are the vacant bits R.
- the PDCP acknowledgment sequence number used to indicate the construction of the TCP ACK packet is in the data field.
- the acknowledgment sequence number can be 12 bits or 15 bits. When it is not an integer number of bytes, the previous digits are padded with 0s.
- the PDCP data PDU when the DPT field takes a value of 0, the PDCP data PDU does not include a PDCP acknowledgment sequence number for indicating a PDCP protocol entity unit of the data transmitting end to construct a TCP ACK packet, and the PDCP protocol entity unit of the data sending end can be processed according to a conventional manner.
- the mode processes the PDCP data PDU.
- the value of the DPT field is 1, it indicates that the PDCP data PDU includes a PDCP acknowledgment sequence number for indicating the TCP ACK packet of the PDCP protocol entity unit of the data transmitting end, and the PDCP protocol entity unit of the data sending end can parse the PDCP data PDU to obtain the PDCP. Confirm the serial number and construct a TCP ACK packet.
- the PDCP protocol entity unit of the data receiving end may delete the PDCP control PDU buffer corresponding to the PDCP acknowledgement sequence number after determining that the PDCP control PDU including the PDCP acknowledgement sequence number is correctly transmitted, to ensure the PDCP control PDU.
- the reliability of the transmission the PDCP protocol entity unit of the data receiving end sends the PDCP control PDU to the RLC protocol entity unit of the data receiving end, and the RLC protocol entity unit of the data receiving end determines that the RLC SDU is correctly received by the RLC ACK of the data sending end.
- the PDCP protocol entity unit PDCP control PDU of the data receiving end is notified in the form of the PDCP acknowledgement sequence number that the PDCP protocol entity unit of the data receiving end deletes the PDCP control PDU buffer corresponding to the PDCP acknowledgement sequence number.
- the PDCP protocol entity unit of the data sending end constructs a TCP ACK data packet according to the PDCP confirmation sequence number, and the mapping relationship between the TCP link identifier, the TCP sequence number, and the TCP packet length and the PDCP sequence number respectively.
- the PDCP protocol entity unit of the data transmitting end receives the indication from the PDCP protocol entity unit of the data receiving end that the PDCP protocol entity unit of the data transmitting end constructs the TCP ACK data packet according to the PDCP acknowledgement sequence number, and determines that the TCP ACK data packet needs to be constructed, and Obtaining a PDCP acknowledgment sequence number included in the indication information, confirming the serial number by using the PDCP, and the mapping relationship between the maintained TCP link identifier, the TCP sequence number, and the length of the TCP packet respectively and the PDCP sequence number, and determining the PDCP Confirm the TCP serial number corresponding to the serial number, and construct a TCP ACK packet.
- the PDCP protocol entity unit of the data transmitting end receives the PDCP control PDU with the PDU Type field value of 011 sent by the PDCP protocol entity unit of the data receiving end, it is determined that the TCP ACK data packet needs to be constructed.
- the PDCP protocol entity unit of the data transmitting end reads the PDCP acknowledgment sequence number included in the PDCP control PDU, and searches for the maintained mapping relationship according to the PDCP acknowledgment sequence number, determines the TCP sequence number corresponding to the PDCP acknowledgment sequence number, and constructs and The TCP ACK packet corresponding to the TCP sequence number.
- the TCP ACK packet constructed by the PDCP protocol entity unit of the data transmitting end refers to a TCP ACK packet containing an IP header.
- the following describes the process of the TCP ACK packet constructed by the PDCP protocol entity unit of the data sender.
- Each field value included in the IP header of the TCP ACK packet is repeated except for the identification field value and the checksum field value, and the identification field value is received for each TCP data.
- the packet is incremented by 1. Therefore, the domain values in the latest TCP packet of the TCP link maintained by the PDCP protocol entity unit of the data transmitting end can be used to determine each of the IP headers of the currently received TCP ACK packet. Domain value. Therefore, in the embodiment of the present application, the PDCP protocol entity unit of the data sending end needs to maintain the latest TCP packet header received in each link carried by the data.
- the latest TCP packet header may be received from the data receiving end.
- the header of the stored TCP packet, or the TCP packet generated and stored by the PDCP protocol entity unit of the data sender here only Refers to the header of a TCP ACK packet.
- the reserved bits, windows, emergency pointers, source ports, and destination ports included in the TCP ACK packet that needs to be constructed currently can continue to use the domain value in the latest TCP packet header maintained by the originator.
- the field value of the serial number of the TCP ACK packet currently required to be constructed is equal to the TCP sequence number in the TCP packet header of the TCP link maintained plus the TCP segment length.
- the domain value of the data offset of the currently required TCP ACK packet and the field value of the checksum can be obtained by calculation.
- the PDCP protocol entity unit of the data receiving end receives the TCP ACK data packet, it is determined according to the content of the TCP ACK data packet whether the TCP ACK data packet is constructed by the PDCP protocol entity unit of the data transmitting end, for example, when determining that the TCP ACK data packet is only used for confirmation When a TCP packet is correctly received, if the result of the judgment is that the TCP ACK packet needs to be constructed by the PDCP protocol entity unit of the data transmitting end, the data transmitting end needs to construct a TCP ACK packet, so that the TCP that needs to be constructed can be determined.
- the PDCP protocol entity unit of the data transmitting end completes the construction of the TCP ACK packet.
- the PDCP protocol entity unit of the data receiving end sends the indication information for indicating the TCP ACK packet of the PDCP protocol entity unit of the data sending end, and does not send the TCP ACK packet to the data sending end.
- the resource overhead of transmitting the indication information in the wireless network is much smaller than the resource overhead of transmitting the ACK data packet, thereby avoiding the transmission of the data packet between the data sending end and the data receiving end caused by the large TCP ACK data packet.
- the problem of reduced transmission performance optimizes the transmission performance of data packets transmitted between the data sender and the data receiver.
- the following describes the implementation process of maintaining the mapping relationship between the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence number of the PDCP protocol entity unit of the data sending end and the PDCP protocol entity unit of the data receiving end.
- the PDCP protocol entity unit of the data sending end and the PDCP protocol entity unit of the data receiving end can maintain the mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number through the mapping table.
- the mapping table refers to a table that stores mapping relationships.
- the PDCP protocol entity unit of the data sending end can maintain a mapping table storing the mapping relationship between the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence number in the following manner: the PDCP protocol entity unit of the data transmitting end can be completed every time. After a PDCP data PDU group packet, a record is added to the maintained mapping table, which includes the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence included in the PDCP data PDU of the completed group packet. Mapping between numbers.
- the PDCP protocol entity unit of the data sending end may delete all the records of the TCP link identifier corresponding to the constructed TCP ACK packet in the mapping table and less than or equal to the PDCP sequence number after constructing the TCP ACK packet.
- the PDCP protocol entity unit of the data receiving end can maintain a mapping table storing the mapping relationship between the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence number in the following manner: the PDCP protocol entity unit at the data receiving end can be received at each receiving end.
- the PDCP protocol entity unit of the data sending end After obtaining the PDCP data PDU packet sent by the PDCP protocol entity unit of the data sending end, obtain The mapping relationship between the TCP link identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence number included in the PDCP data PDU group packet, and a record is added to the maintained mapping table, and the record is included in the obtained The mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet read by the PDCP data PDU and the PDCP sequence number.
- the PDCP protocol entity unit of the data receiving end obtains the PDCP confirmation sequence number according to the TCP link identifier and the TCP acknowledgement number, and completes the PDCP control PDU including the PDCP acknowledgement sequence number, the PDCP control PDU included in the completed transmission may be deleted. All records under the TCP link identifier that are less than or equal to the PDCP confirmation sequence number.
- the PDCP protocol entity unit of the data transmitting end and the PDCP protocol entity unit of the data receiving end receive the activation indication information, Start the maintenance of the mapping table.
- the size of a mapping table maintained by a PDCP protocol entity unit of a data transmitting end and a PDCP protocol entity unit of a data receiving end is described.
- the PDCP confirmation sequence number can be set to 15 bits
- the TCP link identifier size is 100 bits
- the TCP sequence number size is 32 bits
- the TCP message length is 16 bits
- the mapping table is The size of one of the records is 163 bits
- the size of the mapping table is 163 bits ⁇ the number of records.
- the TCP link identifiers may be numbered, and the number information is recorded in the mapping table.
- the number of the TCP link identifier only needs 5 bits, and an additional mapping table of the TCP link identification number and the TCP link identifier is additionally maintained, which can save resource overhead.
- the TCP sequence number, the TCP packet length, and the PDCP sequence number are set, and the table size is 68 bits ⁇ the number of records, and the additional TCP link identification number and TCP chain are added.
- the size of a record in the mapping table of the road identifier is 105*TCP link number.
- the indication information including the PDCP confirmation sequence number may further include a TCP receiving window size of the data receiving end, and the indication information including the TCP receiving window size is used to indicate that the data sending end restores when constructing the TCP acknowledgement data packet. Out of the TCP receive window size field. It should be noted that, if the indication information can indicate the TCP receiving window size of the receiving end, the determining condition that the TCP ACK packet needs to be constructed by the PDCP protocol entity unit of the data transmitting end in S206 can be expanded to determine that the TCP ACK is used to confirm a certain The TCP packet is correctly received, and the TCP ACK is used to indicate the TCP receiving window size of the TCP originating end.
- the indication information including the PDCP confirmation sequence number and the TCP reception window size may be transmitted through a PDCP control PDU or a PDCP data PDU.
- 7 and 8 show a format diagram of a PDCP control PDU including indication information of a PDCP acknowledgment sequence number and a TCP reception window size.
- the PDCP control PDU shown in FIG. 7 includes 40 bits for a total of 5 Oct, wherein the PDCP acknowledgment sequence number required to construct the TCP ACK packet occupies 12 bits.
- the D/C domain occupies 1 bit, and the D/C field takes a value of 0 to indicate that the PDU is a PDCP control PDU.
- the PDU Type field occupies 3 bits, and the PDU Type field takes a value of 011 to indicate that the PDCP protocol entity unit of the data sender constructs a TCP ACK packet according to the PDCP acknowledgment sequence number.
- the W flag for indicating whether the indication information includes the TCP receiving window size of the data receiving end occupies 1 bit, and the W flag bit field takes a value of 0.
- the PDCP control PDU does not include TCP receiving for indicating the data receiving end.
- Window size TCP receiving window information, W flag bit field value 1 indicates that the PDCP control PDU contains TCP receiving window information indicating the TCP receiving window size of the data receiving end, and two words after the PDCP confirming sequence number Section (Oct4 to Oct5).
- the empty bit R occupies 7 bits. It should be noted that the number of bits is only exemplified, and there may be changes in practice. The following description is the same.
- the PDCP control PDU shown in Figure 8 includes 40 bits for a total of 5 Oct.
- the PDCP acknowledgment sequence number required to construct the TCP ACK packet occupies 15 bits, the vacant bit R occupies 4 bits, and the other portions are in the same format as the PDCP control PDU shown in FIG. 7.
- the PDCP protocol entity unit of the data transmitting end After receiving the indication information including the size of the TCP receiving window, the PDCP protocol entity unit of the data transmitting end sets the TCP receiving window value in the TCP ACK packet to the TCP indicated in the indication information when constructing the TCP ACK packet.
- Receive window size The process of restoring the TCP receiving window size domain involved in the embodiment of the present application can also be understood as a process of setting the TCP receiving window size when constructing a TCP ACK packet.
- the indication information including the PDCP confirmation sequence number may further include a TCP SACK option, where the indication information including the TCP SACK option is used to indicate that the data sending end restores the TCP SACK option field when constructing the TCP ACK packet.
- the indication information can indicate the TCP SACK option
- the determination condition that the STP needs to construct the TCP ACK packet by the PDCP protocol entity unit of the data transmitting end can be expanded to determine that the TCP ACK is used to confirm a certain TCP packet. It is received correctly, and TCP ACK is used to indicate the SACK option.
- the PDCP protocol entity unit of the data receiving end needs to maintain the newly sent TCP acknowledgement number, and when a PDCP protocol entity unit carries multiple TCP links supporting the SACK function, Need to maintain an up-to-date TCP acknowledgment number for each TCP link that supports SACK functionality
- the indication information including the PDCP confirmation sequence number and the TCP SACK option field may be transmitted through a PDCP control PDU or a PDCP data PDU.
- FIG. 9 shows a format diagram of a PDCP control PDU including indication information of a PDCP acknowledgment sequence number and a TCP SACK option field.
- the PDCP control PDU shown in FIG. 9 includes 40 bits for a total of 5 Oct, wherein the PDCP acknowledgment sequence number required to construct the TCP ACK packet occupies 12 bits.
- the D/C domain occupies 1 bit, and the D/C field takes a value of 0 to indicate that the PDU is a PDCP control PDU.
- the PDU Type field occupies 3 bits, and the PDU Type field takes a value of 011 to indicate that the PDCP protocol entity unit of the data sender constructs a TCP ACK packet according to the PDCP acknowledgment sequence number.
- the E flag used to indicate the TCP SACK option occupies 1 bit, and the E flag bit field has a value of 0.
- the identifier bit does not contain the TCP SACK option indication information, and the E flag bit field has a value of 1 to represent the flag bit.
- the TCP SACK option indication information is included.
- the SACK option in the TCP ACK packet confirms the non-contiguous data block correctly received by the data receiving end, including the starting TCP sequence number and the ending TCP sequence number of the data block, such as [6000, 6500] Because the data receiving end maintains the mapping relationship between the TCP link identifier, the TCP sequence number, and the TCP packet length and the PDCP sequence number respectively, the confirmed TCP sequence number corresponds to a PDCP sequence number, so a PDCP sequence number can be determined. That is to say, one data block in the SACK option can be characterized by two PDCP serial numbers, or one PDCP serial number and the number of PDCP packets (for example, the TCP SACK indicator in FIG.
- TCP SACK Indicator may contain A PDCP confirmation sequence number and a number of PDCP packets, wherein the PDCP confirmation sequence number corresponds to the starting TCP sequence number of the corresponding data block, and the number of PDCP packets corresponds to the starting TCP sequence number and the terminating TCP sequence. The number of PDCP packets between the column numbers).
- the TCP ACK packet containing the SACK option may only be used to indicate the SACK option, that is, the acknowledgment number in the TCP ACK packet is the same as the acknowledgment number of the previous TCP ACK packet, since the PDCP protocol entity unit at the receiving end is indicating the PDCP of the transmitting end. After the protocol entity unit completes the configuration, the record corresponding to the acknowledgement number is cleared, which means that the receiver cannot find the matching PDCP confirmation sequence number according to the acknowledgement number of the TCP ACK.
- the PDCP protocol entity unit of the data receiving end needs to maintain the newly sent TCP acknowledgement number, and when a PDCP protocol entity unit carries multiple TCP links supporting the SACK function, it needs to be Each supports SACK function
- the TCP link maintains an up-to-date TCP acknowledgment number.
- the PDCP protocol entity unit of the data transmitting end After receiving the indication information including the SACK, the PDCP protocol entity unit of the data transmitting end determines the starting TCP sequence number of the data block according to the PDCP confirmation sequence number 1 according to the PDACK confirmation sequence number 2, and determines the serial number of the data block according to the PDCP.
- the termination TCP sequence number of the data block the specific determination principle is the same as the TCP acknowledgement number, which will not be repeated here.
- the TCP SACK option field in the TCP ACK packet is set as the data block. Start TCP sequence number and terminate TCP sequence number.
- the process of restoring the TCP SACK option involved in the embodiment of the present application can also be understood as a process of setting a TCP SACK option when constructing a TCP ACK packet.
- the indication information including the PDCP confirmation sequence number may also include the TCP receiving window size and the packet TCP SACK option of the data receiving end, where the indication information may be used to indicate that the data sending end is constructing a TCP acknowledgement.
- the TCP receive window and the TCP SACK option field are restored when the packet is used.
- the indication information corresponding to the embodiment may be sent by using a PDCP control PDU or a PDCP data PDU, and the corresponding format is similar to the format in the foregoing description, and details are not described herein again.
- the ACK packet may be a UDP based QUIC ACK packet.
- the PDCP protocol entity unit at the data receiving end may transmit a PDCP acknowledgment sequence number and time including a data block number matching the QUIC ACK packet to the PDCP protocol entity unit of the data transmitting end.
- the indication information of the information indicating that the PDCP protocol entity unit of the data transmitting end constructs the QUIC ACK data packet according to the PDCP confirmation sequence number and the timestamp information.
- the PDCP acknowledgment sequence number and the indication information of the timestamp information, which match the data block number of the QUIC ACK packet, may be sent through the PDCP control PDU or the PDCP data PDU.
- the format is similar except that the PDCP control PDU or the PDCP data PDU used to indicate the PDCP protocol entity unit of the data transmitting end to construct the QUIC ACK packet includes a bit for indicating the data content required to construct the QUIC ACK packet. .
- the data transmitting end and the data receiving end transmit data through the transit routing node, for example, through a Customer Premises Equipment (CPE)
- the data sending end (network) A device, such as an application server, and a transit routing node such as a CPE, through a mobile network connection, such as a Long Term Evolution (LTE) network, and a wireless fidelity (WiFi) between the CPE and the data receiving end (terminal) )connection.
- LTE Long Term Evolution
- WiFi wireless fidelity
- the TCP data packet needs to be transferred to the data receiving end after being transferred by the transit routing node such as CPE.
- the PDCP protocol entity unit of the CPE can obtain information such as the PDCP sequence number, the TCP link information, the TCP sequence number, and the TCP packet length from the PDCP data packet (including the TCP data packet) sent by the PDCP protocol entity unit of the data sending end, and establish The relationship between the TCP link information, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number are maintained. For the convenience of description, the following is called mapping relationship 1.
- the PDCP protocol entity unit of the CPE parses the PDCP data packet and sends it to the data receiving end through the WiFi data frame.
- the CPE obtains information such as the data frame sequence number, the TCP link information, the TCP sequence number, and the TCP packet length, and establishes and maintains the TCP link information, the TCP sequence number, the TCP packet length, and the data frame sequence number.
- mapping relationship 2 The mapping relationship between them is referred to as mapping relationship 2 for convenience of description.
- mapping relationship 2 determining which TCP link number TCP packet of TCP link information is correctly received, and determining the PDCP confirmation sequence number in combination with the maintained mapping relationship 1, generating PDCP indication information, and transmitting to the data transmitting end to indicate
- the data sender constructs a TCP ACK packet.
- the PDCP protocol entity unit of the transit routing node of the CPE or the like may send the PDCP indication information to instruct the data sending end to construct a TCP ACK packet without sending a real TCP ACK packet, thereby saving the air interface overhead of the mobile network.
- the data receiving end can not save the TCP ACK data packet, thereby further saving the air interface resources of the WiFi.
- the solution provided by the embodiment of the present application is introduced from the perspective of the interaction between the data receiving end and the data sending end.
- the data receiving end and the data transmitting end include corresponding hardware structures and/or software modules for performing respective functions.
- the embodiments of the present application can be implemented in a combination of hardware or hardware and computer software in combination with the elements of the examples and algorithm steps described in the embodiments disclosed in the application. Whether a function is implemented in hardware or computer software to drive hardware depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the technical solutions of the embodiments of the present application.
- the embodiment of the present application may divide the functional unit by the data receiving end and the data sending end according to the foregoing method example.
- each functional unit may be divided according to each function, or two or more functions may be integrated into one processing unit. in.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit. It should be noted that the division of the unit in the embodiment of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner.
- FIG. 10 shows a schematic structural diagram of a possible data receiving apparatus 100.
- the data receiving device 100 includes a receiving module 101 and a sending module 102, wherein the receiving module 101 is configured to receive an acknowledgement packet.
- the sending module 102 is configured to send the indication information to the PDCP protocol entity unit of the data sending end, where the indication information includes a PDCP acknowledgment sequence number, where the indication information is used to indicate that the PDCP protocol entity unit of the data sending end is configured according to the PDCP acknowledgment sequence number.
- the acknowledgement packet received by the receiving module 101.
- the acknowledgement data packet is a TCP acknowledgement data packet sent by a TCP protocol entity unit of the data receiving device.
- the receiving module 101 is further configured to: before the sending module 102 sends the indication information to the PDCP protocol entity unit of the data sending end, acquire the TCP link identifier information and the TCP acknowledgement number of the TCP acknowledgement data packet.
- the data receiving device further includes a processing module 103, and the processing module 103 is configured to: determine, according to a mapping relationship between a TCP link identifier, a TCP serial number, a TCP packet length, and a PDCP sequence number, and the TCP acknowledgement.
- the TCP link identification information of the data packet and the PDCP confirmation sequence number matched by the TCP acknowledgement number generate indication information including the PDCP confirmation sequence number.
- the mapping relationship is obtained and maintained by a PDCP protocol entity unit of the data receiving device from a PDCP protocol entity unit PDCP data PDU of the data sending end, where the PDCP data PDU includes a TCP data packet confirmed by the TCP acknowledgement packet.
- the indication information including the PDCP acknowledgment sequence number is used to indicate that the PDCP protocol entity unit of the data sending end confirms the sequence number according to the PDCP, and the TCP link identifier, the TCP sequence number, and the TCP packet length maintained by the data sending end.
- the mapping relationship between the PDCP column number and the PDCP column number constructs the TCP acknowledgement packet.
- the indication information further includes a TCP receiving window size of the data receiving device, where the indication information including a TCP receiving window size is used to indicate that the data sending end is restored when constructing a TCP acknowledgement packet. Out of the TCP receive window size field.
- the indication information further includes a TCPSACK option, where the TCP is included.
- the indication information of the SACK option is used to instruct the data sender to restore the TCP SACK option field when constructing the TCP acknowledgement packet.
- the acknowledgement data packet is a UDP-based QUIC acknowledgement data packet.
- the indication information includes a PDCP confirmation sequence number and timestamp information that match the data block number of the QUIC acknowledgment packet. And the indication information is used to indicate that the PDCP protocol entity unit of the data sending end constructs the QUIC acknowledgement data packet according to the PDCP acknowledgement sequence number and the timestamp information.
- the indication information is sent by using a PDCP Control PDU or a PDCP Data PDU.
- the PDCP Control PDU or the PDCP Data PDU includes a bit for indicating that the PDCP protocol entity unit of the data transmitting end constructs the acknowledgement data packet according to the PDCP acknowledgement sequence number.
- the receiving module 101 may be a communication interface, a receiver, a transceiver circuit, or the like.
- the sending module 102 can be a communication interface, a transmitter, a transceiver circuit, etc., wherein the communication interface is a collective name and can include one or more interfaces.
- Processing module 103 can be a processor or controller.
- the data receiving device 100 When the receiving module 101 is a receiver and the transmitting module 102 is a transmitter, the data receiving device 100 according to the embodiment of the present application may be the data receiving device shown in FIG.
- the data receiving device shown in FIG. 11 may be a terminal.
- FIG. 11 is a schematic structural diagram of a possible data receiving device 1000 according to an embodiment of the present application, that is, another possible data receiving device according to an embodiment of the present application is shown.
- the data receiving device 1000 includes a receiver 1001 and a transmitter 1002.
- the receiver 1001 is configured to receive an acknowledgement packet.
- the transmitter 1002 is configured to send, to the PDCP protocol entity unit of the data sending end, the indication information, where the indication information includes a PDCP acknowledgment sequence number, where the indication information is used to indicate that the PDCP protocol entity unit of the data sending end is configured according to the PDCP acknowledgment sequence number.
- the acknowledgement data packet is a TCP acknowledgement data packet sent by a TCP protocol entity unit of the data receiving device.
- the receiver 1001 is further configured to: obtain the TCP link identifier information and the TCP acknowledgement number of the TCP acknowledgement data packet before the transmitter 1002 sends the indication information to the PDCP protocol entity unit of the data sending end.
- the data receiving device further includes a processor 1003, which may also be a controller, and is represented as "controller/processor 1003" in FIG.
- the processor 1003 is configured to: determine, according to a mapping relationship between a TCP link identifier, a TCP sequence number, and a TCP packet length and a PDCP sequence number, a TCP link identifier information and a TCP acknowledgement with the TCP acknowledgement packet.
- the number of matching PDCP confirmation sequence numbers generates indication information including the PDCP confirmation sequence number.
- the mapping relationship is obtained and maintained by a PDCP protocol entity unit of the data receiving device from a PDCP protocol entity unit PDCP data protocol data unit PDU of the data sending end, where the PDCP data PDU includes the TCP confirmed by the TCP acknowledgement packet. data pack.
- the indication information including the PDCP acknowledgment sequence number is used to indicate that the PDCP protocol entity unit of the data sending end confirms the sequence number according to the PDCP, and the TCP link identifier, the TCP sequence number, and the TCP packet length maintained by the data sending end.
- the mapping relationship between the PDCP column number and the PDCP column number constructs the TCP acknowledgement packet.
- the indication information further includes a TCP receiving window size of the data receiving device, where the indication information including a TCP receiving window size is used to indicate that the data sending end is restored when constructing a TCP acknowledgement packet. Out of the TCP receive window size field.
- the indication information further includes a TCP SACK option, where the indication information including the TCP SACK option is used to indicate that the data sending end restores the TCP SACK option field when constructing the TCP acknowledgement packet.
- the acknowledgement data packet is a UDP-based QUIC acknowledgement data packet.
- the indication information includes a PDCP confirmation sequence number and timestamp information that match the data block number of the QUIC acknowledgment packet. And the indication information is used to indicate that the PDCP protocol entity unit of the data sending end constructs the QUIC acknowledgement data packet according to the PDCP acknowledgement sequence number and the timestamp information.
- the indication information may be sent by using a PDCP control PDU or a PDCP data PDU, where the PDCP control PDU or the PDCP data PDU includes a PDCP protocol entity unit for indicating a data sending end, and the acknowledgement data is constructed according to the PDCP confirmation sequence number.
- the bit of the packet may be sent by using a PDCP control PDU or a PDCP data PDU, where the PDCP control PDU or the PDCP data PDU includes a PDCP protocol entity unit for indicating a data sending end, and the acknowledgement data is constructed according to the PDCP confirmation sequence number. The bit of the packet.
- the data receiving device 1000 may further include a memory 1004 and a bus 1005.
- the memory 1004 is for coupling with the processor 1003 to store program codes and data of the data receiving device 1000.
- the receiver 1001, the transmitter 1002, the processor 1003, and the memory 1004 may be connected to each other through a bus 1005; for convenience of representation, only one thick line is shown in FIG. 11, but it does not mean that there is only one bus or one type. bus.
- FIG. 11 only shows a simplified design of the data receiving device 1000.
- the data receiving device 1000 is not limited to the above-mentioned structure, and may also include a display device, an input/output interface, and the like, and all the terminals that can implement the embodiments of the present application are within the protection scope of the embodiments of the present application.
- the data receiving device 100 and the data receiving device 1000 may be used to implement the corresponding functions of the PDCP protocol entity unit of the data receiving end in the foregoing method embodiment of the embodiment of the present application.
- the description of the related method embodiment is not described here.
- FIG. 12 shows one possible structure of the data transmitting apparatus 200.
- the data sending device 200 includes a receiving module 201 and a processing module 202, where the receiving module 201 is configured to receive the indication information sent by the PDCP protocol entity unit of the data receiving device, where the indication information includes the PDCP confirmation serial number processing module 202, The acknowledgement packet is constructed according to the PDCP confirmation sequence number included in the indication information received by the receiving module 201.
- the acknowledgement data packet is a TCP acknowledgement data packet sent by a TCP protocol entity unit of the data receiving device.
- the data transmitting device further includes a sending module 203, configured to: before the processing module 202 constructs the acknowledgment data packet according to the PDCP acknowledgment sequence number included in the indication information, to the data receiving device.
- the PDCP protocol entity unit sends a PDCP data PDU, where the PDCP data PDU includes a TCP data packet confirmed by the TCP acknowledgement packet, and the PDCP protocol entity unit of the data sending end obtains a TCP link identifier from the PDCP data PDU,
- the TCP sequence number, the TCP packet length, and the PDCP sequence number establish and maintain a mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number.
- the processing module 202 constructs the acknowledgment data packet according to the PDCP acknowledgment sequence number included in the indication information by: confirming the sequence number according to the PDCP, and the TCP link identifier, the TCP sequence number, and the length of the TCP packet.
- the TCP acknowledgement packet is constructed by a mapping relationship with the PDCP sequence number, respectively.
- the processing module 202 is further configured to: after the receiving module 201 receives the indication information sent by the PDCP protocol entity unit of the data receiving device, if the indication information includes the data receiving
- the TCP receive window size of the device restores the TCP receive window size field when constructing the TCP acknowledgement packet.
- the processing module 202 is further configured to: after the receiving module 201 receives the indication information sent by the PDCP protocol entity unit of the data receiving device, if the indication information includes a TCPSACK option, The TCP SACK option field is restored when the TCP acknowledgement packet is constructed.
- the acknowledgement data packet is a UDP-based QUIC acknowledgement data packet.
- the indication The information contains the PDCP acknowledgment sequence number and timestamp information that match the data block number of the QUIC acknowledgment packet.
- the processing module 202 constructs the acknowledgment data packet according to the PDCP acknowledgment sequence number included in the indication information by constructing the QUIC acknowledgment data packet according to the PDCP acknowledgment sequence number and the timestamp information.
- the receiving module 201 may be a communication interface, a receiver, a transceiver circuit, or the like.
- Processing module 202 can be a processor or controller.
- the sending module 203 can be a communication interface, a transmitter, a transceiver circuit, etc., wherein the communication interface is a collective name and can include one or more interfaces.
- the processing module 202 is a processor.
- the data transmitting device 200 may be the data transmitting device shown in FIG.
- the data sending device shown in FIG. 13 may be a network device such as an application server.
- FIG. 13 is a schematic structural diagram of a possible data transmitting device 2000 according to an embodiment of the present application, that is, another possible data transmitting device according to an embodiment of the present application is shown.
- the data transmitting device 2000 includes a receiver 2001 and a processor 2002.
- the receiver 2001 is configured to receive indication information sent by a PDCP protocol entity unit of the data receiving device, where the indication information includes a PDCP confirmation sequence number.
- the processor 2002 is configured to construct an acknowledgement packet according to the PDCP confirmation sequence number included in the indication information received by the receiver 2001.
- the acknowledgement data packet is a TCP acknowledgement data packet sent by a TCP protocol entity unit of the data receiving device.
- the data transmitting device further includes a transmitter 2003, configured to: before the processor 2002 constructs the acknowledgement data packet according to the PDCP acknowledgement sequence number included in the indication information, to the data receiving device.
- the PDCP protocol entity unit sends a PDCP data protocol data unit PDU, where the PDCP data PDU includes a TCP data packet confirmed by the TCP acknowledgement packet, and the PDCP protocol entity unit of the data transmitting end obtains a TCP chain from the PDCP data PDU.
- the path identifier, the TCP sequence number, the TCP packet length, and the PDCP sequence number establish and maintain a mapping relationship between the TCP link identifier, the TCP sequence number, and the length of the TCP packet and the PDCP sequence number.
- the processor 2002 constructs the acknowledgement data packet according to the PDCP acknowledgement sequence number included in the indication information by: confirming the sequence number according to the PDCP, and the TCP link identifier, the TCP sequence number, and the length of the TCP packet.
- the TCP acknowledgement packet is constructed by a mapping relationship with the PDCP sequence number, respectively.
- the processor 2002 is further configured to: after the receiver 2001 receives the indication information sent by the PDCP protocol entity unit of the data receiving device, if the indication information includes the data receiving
- the TCP receive window size of the device restores the TCP receive window size field when constructing the TCP acknowledgement packet.
- the processor 2002 is further configured to: after the receiver 2001 receives the indication information sent by the PDCP protocol entity unit of the data receiving device, if the indication information includes a TCPSACK option, The TCP SACK option field is restored when the TCP acknowledgement packet is constructed.
- the acknowledgement data packet is a UDP-based QUIC acknowledgement data packet; and the indication information includes a PDCP acknowledgement sequence number and timestamp information that match a data block sequence number of the QUIC acknowledgement data packet.
- the processor 2002 constructs the acknowledgement data packet according to the PDCP acknowledgement sequence number included in the indication information by constructing the QUIC acknowledgement data packet according to the PDCP acknowledgement sequence number and the timestamp information.
- the data transmitting device 2000 may further include a memory 2004.
- the memory 2004 is for coupling with the processor 2002 to store program codes and data of the data transmitting device 2000.
- FIG. 13 only shows a simplified design of the data transmitting device 2000.
- the data transmitting device 2000 is not limited to the above structure, and may include, for example, a network adapter, a cache, and the like.
- the data transmitting device 200 and the data transmitting device 2000 are The corresponding functions of the PDCP protocol entity unit of the data sending end in the foregoing method embodiment of the present application are implemented. Therefore, for the description of the embodiment of the present application, the description of the related method embodiment is applicable. No longer.
- the processor or controller involved in the foregoing embodiments may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), and an application specific integrated circuit ( Application-Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
- the bus may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus.
- PCI Peripheral Component Interconnect
- EISA Extended Industry Standard Architecture
- embodiments of the present application can be provided as a method, system, or computer program product. Therefore, the embodiments of the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Moreover, embodiments of the present application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- Embodiments of the present application are described with reference to flowchart illustrations and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present application. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG.
- These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device.
- the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
- the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
- These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
- the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种数据传输方法、数据接收设备及数据发送设备,以优化数据包的传输性能。数据接收端的分组数据聚合层PDCP协议实体单元接收确认数据包;所述数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送指示信息,所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包。数据发送端的分组数据聚合层PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息,所述指示信息中包含PDCP确认序列号;所述数据发送端的PDCP协议实体单元依据所述指示信息中包含的PDCP确认序列号构造确认数据包。
Description
本申请涉及通信技术领域,尤其涉及一种数据传输方法、数据接收设备及数据发送设备。
在数据无线传输的过程中,数据发送端和数据接收端一般遵循数据传输的分层模型,即,应用层、传输控制(Transfer Control Protocol,TCP)层、网络层(Internet Protocol,IP)、分组数据聚合层(Packet Data Convergence Protocol,PDCP)、无线链路控制(Radio link Control,RLC)层、MAC(Media Access Control,媒体接入控制)层和物理(Physical,PHY)层。当数据发送端向数据接收端发送数据时,数据从数据发送端的应用层出发,经数据发送端的TCP层、IP层、PDCP层、RLC层、MAC层和PHY层后,经由传输链路到数据接收端的PHY层,经由数据接收端的MAC层、RLC层、PDCP层和IP层及TCP层,最后到达数据接收端的应用层,反之亦然。
为避免在传输过程中出现数据缺失或数据错误的情况,在上述数据传输的过程中引入接收数据确认机制,例如TCP层的确认机制,可确保TCP数据包传输的正确性。然而,数据传输过程中采用接收数据确认机制过程中,数据接收端需要向数据发送端反馈已经正确接收到数据发送端发送的数据包的确认(ACKnowledge,ACK)数据包,并且该ACK数据包较大,影响数据传输性能。例如无线通信***中,采用TCP层的确认机制进行下行数据包的上行控制信息反馈过程中,终端发送的最基本的TCP ACK数据包的大小为20byte,若再加上IP头、PDCP头的开销,TCP ACK数据包传输到RLC层时大小约为43byte。若TCP ACK数据包中包含选择确认(Selective ACK,SACK)等TCP选项信息,则TCP ACK数据包传输到RLC层时大小约63byte。
由于ACK数据包较大,在无线网络中传输时造成资源开销较大,并且在弱覆盖区域发送时会导致数据发送端和数据接收端之间的数据包发送与接收的往返时间(Round Trip Time,RTT)延长,并降低TCP的吞吐,影响数据发送端和数据接收端之间传输数据包的传输性能。
发明内容
本申请实施例提供一种数据传输方法、数据接收设备及数据发送设备,以优化数据包的传输性能,提高数据传输的可靠性。
第一方面,提供一种数据传输方法,在该方法中,数据接收端的PDCP协议实体单元接收ACK数据包,数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送指示信息,所述指示信息中包含PDCP确认序列号,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述ACK数据包。数据发送端的PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息,并依据所述指示信息中包含的PDCP确认序列号构造所述ACK数据包。
本申请实施例中数据接收端不向数据发送端发送ACK数据包,而是由数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送用于指示数据发送端的PDCP协议实体单元构造所述ACK数据包的指示信息,在无线网络中传输所述指示信息的资源开销小于传输所述ACK数据包的资源开销,进而避免由于ACK数据包较大造成的数据发送端和数据接收端之间传输数据包的传输性能下降的问题,优化数据发送端和数据接收端之间传输数据包的传输性能。
一种可能的设计中,所述ACK数据包为数据接收端的TCP协议实体单元发送的TCP ACK数据包。数据发送端的TCP协议实体单元发送TCP数据包,数据发送端的PDCP协议实体单元获取该TCP数据包,并将该TCP数据包组包为PDCP data PDU。数据发送端的PDCP协议实体单元解析所述TCP数据包头得到TCP链路标识、TCP序列号和TCP报文长度(TCP segment Length),建立并维护TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。数据发送端的PDCP协议实体单元向数据接收端的PDCP协议实体单元发送PDCP data PDU。数据接收端的PDCP协议实体单元接收到数据发送端的PDCP协议实体单元发送的所述PDCP data PDU后,通过该PDCP data PDU获取得到TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。数据接收端的PDCP协议实体单元将TCP数据包发送给数据接收端的TCP协议实体单元。数据接收端的TCP协议实体单元确认TCP数据包正确接收后向数据接收端的PDCP协议实体单元发送TCP ACK数据包,数据接收端的PDCP协议实体单元接收数据接收端的TCP协议实体单元发送的TCP ACK数据包,获取TCP ACK数据包的TCP链路标识信息以及TCP确认号,并依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与TCP ACK数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认序列号。所述数据接收端的PDCP协议实体单元生成包含PDCP确认序列号的指示信息并向数据发送端的PDCP协议实体单元发送该包含PDCP确认序列号的指示信息,以指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP ACK数据包,所述数据发送端的PDCP协议实体单元接收该指示信息,并依据指示信息中包含的所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP ACK数据包,进而可避免由于TCP ACK数据包较大造成的数据发送端和数据接收端之间传输数据包的传输性能下降的问题,优化数据发送端和数据接收端之间传输数据包的传输性能。
另一种可能的设计中,数据接收端的PDCP协议实体单元可通过PDCP control PDU发送用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的指示信息。其中,PDCP control PDU中包括用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的PDCP control PDU中包括用于指示该PDU为PDCP control PDU的比特位、用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的比特位,以及用于指示构造TCP ACK数据包所需的数据内容的比特位。
一种可能的设计中,所述指示信息通过PDCP control PDU发送,用于指示该PDU为PDCP control PDU的D/C域占用1个比特位,用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的PDU Type域占用3个比特位,用于指示构造TCP ACK数据包所需的PDCP确认序列号占用12个比特位。
一种可能的设计中,所述指示信息通过PDCP control PDU发送,用于指示该PDU为
PDCP control PDU的D/C域占用1个比特位,用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的PDU Type域占用3个比特位,用于指示构造TCP ACK数据包所需的PDCP确认序列号占用15个比特位,PDCP control PDU还包括5个预留比特。
又一种可能的设计中,数据接收端的PDCP协议实体单元可通过PDCP data PDU发送用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的指示信息。PDCP data PDU中包括用于指示数据发送端的PDCP协议实体单元该PDU为PDCP data PDU的比特位、用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的比特位
一种可能的设计中,所述指示信息通过PDCP data PDU发送,用于指示该PDU为PDCP data PDU的D/C域占用1个比特位,用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的PDCP data PDU类型的DPT域占用1个比特位,用于指示PDCP序列号的PDCP SN占用12或者15个比特位,剩余的比特位为空留比特位R。
又一种可能的设计中,数据接收端的PDCP协议实体单元将PDCP control PDU发送给数据接收端的RLC协议实体单元,数据接收端的RLC协议实体单元通过数据发送端的RLC ACK确定RLC SDU被正确接收时,以PDCP确认序列号的形式通知数据接收端的PDCP协议实体单元PDCP control PDU已被正确发送,以便于数据接收端的PDCP协议实体单元删除该PDCP确认序列号对应的PDCP control PDU缓存。
又一种可能的设计中,包含PDCP确认序列号的指示信息中还可包括所述数据接收端的TCP接收窗大小,包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。其中,包括PDCP确认序列号和TCP接收窗大小的指示信息可通过PDCP control PDU或PDCP data PDU发送。数据发送端的PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括所述数据接收端的TCP接收窗大小,则所述数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
又一种可能的设计中,包含PDCP确认序列号的指示信息中还可包括TCP SACK选项,包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。其中,包括PDCP确认序列号和TCP SACK选项域的指示信息可通过PDCP control PDU或PDCP data PDU发送。数据发送端的PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括TCP选择确认SACK选项,则所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
又一种可能的设计中,所述确认数据包为基于UDP的QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
第二方面,提供一种数据接收设备,该数据接收设备具有实现上述方法设计中数据接收端中的PDCP协议实体单元的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
一种可能的设计中,数据接收设备包括接收模块和发送模块,其中,接收模块,用于接收确认数据包。所述发送模块,用于向数据发送端的分组数据聚合层PDCP协议实体单元发送指示信息所述指示信息中包含PDCP确认序列号,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述接收模块接收的确认数据包。
其中,所述指示信息通过PDCP控制PDU或者PDCP数据PDU发送;所述PDCP控制PDU或者PDCP数据PDU中包括用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的比特位。
另一种可能的设计中,所述数据接收设备还包括处理模块。所述确认数据包为所述数据接收设备的传输控制协议TCP协议实体单元发送的TCP确认数据包。所述接收模块,还用于:在所述发送模块向数据发送端的PDCP协议实体单元发送指示信息之前,获取所述TCP确认数据包的TCP链路标识信息以及TCP确认号。所述处理模块用于:依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与所述TCP确认数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认序列号,生成包含PDCP确认序列号的指示信息。所述映射关系由所述数据接收设备的PDCP协议实体单元从数据发送端的PDCP协议实体单元PDCP数据协议数据单元PDU中获取并维护,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包。所述包含PDCP确认序列号的指示信息用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP列号之间的映射关系构造所述TCP确认数据包。
其中,所述指示信息中还包括所述数据接收设备的TCP接收窗大小,所述包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
其中,所述指示信息中还包括TCP选择确认SACK选项,所述包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
其中,所述确认数据包为基于UDP的QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
又一种可能的设计中,数据接收设备的接收模块可以是接收器。处理模块可以是处理器。发送模块可以是发射器。其中,数据接收设备可以是终端。
其中,数据接收设备还可以包括存储器和总线。存储器用于与处理器耦合,存储数据接收设备的程序代码和数据。其中,接收器、发射器、处理器以及存储器可以通过总线相互连接。
第三方面,提供一种数据发送设备,该数据发送设备具有实现上述方法设计中数据发送端中的PDCP协议实体单元的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
一种可能的设计中,所述数据发送设备包括接收模块和处理模块,其中,所述接收模块,用于接收数据接收设备的分组数据聚合层PDCP协议实体单元发送的指示信息,所述
指示信息中包含PDCP确认序列号,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号。所述处理模块,用于依据所述接收模块接收到的指示信息中包含的PDCP确认序列号构造确认数据包。
另一种可能的设计中,所述数据发送设备还包括发送模块。所述确认数据包为数据接收设备的传输控制协议TCP协议实体单元发送的TCP确认数据包。所述发送模块用于:在所述处理模块依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包之前,向数据接收设备的PDCP协议实体单元发送PDCP数据协议数据单元PDU,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包,所述数据发送端的PDCP协议实体单元从所述PDCP数据PDU中获取TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号,建立并维护所述TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。所述处理模块,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP确认数据包。
其中,所述处理模块,还用于:在所述接收模块接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括所述数据接收设备的TCP接收窗大小,则在构造TCP确认数据包时还原出TCP接收窗大小域。
其中,所述处理模块,还用于:在所述接收模块接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括TCP选择确认SACK选项,则在构造TCP确认包时还原出TCP SACK选项域。
其中,所述确认数据包为基于用UDP的QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述处理模块,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
又一种可能的设计中,数据发送设备的接收模块可以是接收器。处理模块可以是处理器。发送模块可以是发射器。其中,数据发送设备可以是应用服务器等网络设备。
其中,数据发送设备还可以包括存储器。存储器用于与处理器耦合,存储数据发送设备的程序代码和数据。
本申请提供的数据传输方法、数据接收设备和数据发送设备,由数据接收设备的PDCP协议实体单元向数据发送设备的PDCP协议实体单元发送用于指示数据发送设备的PDCP协议实体单元构造确认数据包的指示信息,在无线网络中传输所述指示信息的资源开销小于传输所述确认数据包的资源开销,进而避免由于确认数据包较大造成的数据发送设备和数据接收设备之间传输数据包的传输性能下降的问题,优化数据发送设备和数据接收设备之间传输数据包的传输性能。
图1为无线通信***中终端和网络设备之间进行数据交互架构图;
图2为本申请实施例提供的数据传输方法一种实现流程图;
图3为本申请实施例提供的数据传输方法另一种实现流程图;
图4为本申请实施例提供的PDCP control PDU格式的一个示例;
图5为本申请实施例提供的PDCP control PDU格式的另一个示例;
图6为本申请实施例提供的PDCP data PDU格式的一个示例;
图7为本申请实施例提供的PDCP control PDU格式的又一个示例;
图8为本申请实施例提供的PDCP control PDU格式的又一个示例;
图9为本申请实施例提供的PDCP control PDU格式的又一个示例;
图10为本申请实施例提供的数据接收设备的一种结构示意图;
图11为本申请实施例提供的数据接收设备的另一种结构示意图;
图12为本申请实施例提供的数据发送设备的一种结构示意图;
图13为本申请实施例提供的数据发送设备的另一种结构示意图。
下面将结合附图,对本申请实施例进行描述。
本申请实施例提供的数据传输方法可应用于无线通信***的数据传输,其中,数据接收端与数据发送端通过无线接入网(Radio Access Network,RAN)以及核心网进行数据交互,所述数据接收端和所述数据发送端之间还可建立TCP连接,采用TCP协议进行数据传输。例如图1所示,无线通信***中终端和网络设备之间进行数据交互,终端通过空口接入到RAN,并经由核心网连接到网络设备,其中,终端与RAN之间的网络可称为无线网络,RAN与网络设备之间的网络可称为有线网络。网络设备与终端之间建立TCP连接并进行数据传输。
无线通信***中数据接收端与数据发送端之间进行数据交互时,接入层包括PDCP/R LC/MAC/PHY,非接入层包括TCP/IP。为了便于理解,本申请以下实施例中将执行PDCP层协议的实体称为PDCP协议实体单元,PDCP协议实体单元属于PDCP层,与PDCP层对应。将执行TCP层协议的实体称为TCP协议实体单元,TCP协议实体单元属于TCP层,与TCP层对应。将执行RLC层协议的实体称为RLC协议实体单元,RLC协议实体单元属于RLC层,与RLC层对应。本申请实施例中为描述方便,各协议实体单元之间进行数据传输过程中,可能省略了两个协议实体单元之间的协议层的处理过程描述,例如:数据接收端的PDCP协议实体单元与数据发送端的PDCP协议实体单元之间进行数据传输时,省略了数据接收端和数据发送端的RLC层、MAC/PHY层的处理过程描述。
本申请实施例中数据接收端与数据发送端之间进行数据交互时,为保障数据交互的可靠性,数据接收端接收到数据发送端发送的数据包后,需要向数据发送端反馈已经正确接收到数据发送端发送的数据包的ACK数据包,如数据接收端的非接入层生成ACK数据包。由于非接入层生成的ACK数据包较大,在无线网络中尤其是弱覆盖区域发送时导致数据发送端和数据接收端之间的数据包发送与接收的往返时间(Round Trip Time,RTT)延长,影响传输性能,本申请实施例中数据接收端不向数据发送端发送该ACK数据包,而是由数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送用于指示数据发送端的PDCP协议实体单元构造所述ACK数据包的指示信息,在无线网络中传输所述指示信息的资源开销小于传输所述ACK数据包的资源开销,进而避免由于ACK数据包较大造成的数据发送端和数据接收端之间传输数据包的传输性能下降的问题,优化数据发送端和数据接收端之间传输数据包的传输性能。
图2所示为本申请实施例提供的一种数据传输方法实现流程图,参阅图2所示,包括:
S101:数据接收端的PDCP协议实体单元接收ACK数据包。
本申请的一个实施例中数据接收端的PDCP协议实体单元可从数据接收端的非接入层获取ACK数据包,该ACK数据包依据数据发送端和数据接收端之间传输数据包所采用的协议不同,可为不同的确认数据包,例如采用TCP协议时,该ACK数据包可以为TCP ACK数据包,采用用户数据报协议(User Datagram Protocol,UDP)时,该ACK数据包可以为基于UDP的低时延互联网传输层协议(Quick UDP Internet Connection,QUIC)ACK数据包。
S102:数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送指示信息,所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述ACK数据包。所述PDCP确认序列号为所述ACK数据包所确认的数据包在PDCP层的序列号。
本申请的一个实施例中,数据接收端的PDCP协议实体单元可通过PDCP控制(control)PDU或PDCP data PDU发送用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的指示信息。
S103:数据发送端的PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息,并依据所述指示信息中包含的PDCP确认序列号构造所述ACK数据包。
本申请实施例中,数据发送端的PDCP协议实体单元构造的ACK数据包通常是指包含有IP头的ACK数据包,例如TCP ACK数据包是指包含有IP头的TCP ACK数据包。由于含有IP头的ACK数据包中的大多数域值在一个TCP链接中通常是固定的,如版本号(Version)、头长度(Header Length)、优先级和业务类型(Priority&Type of Service)、标志位(Flags)、生存期(Time to live)等等,因此数据发送端构造这些固定的域值可以利用已经发送的最新的TCP数据包头的域值进行构造。故本申请实施例中,数据发送端的PDCP协议实体单元维护其所承载的每个链接中已接收到的最新的TCP数据包头,该最新的TCP数据包头可以是从数据接收端接收到并存储的TCP数据包的包头,也可以是数据发送端的PDCP协议实体单元生成并存储的的TCP数据包(仅指TCP ACK包)的包头。对于在一个TCP链接中不固定的域值,如TCP确认号,数据发送端的PDCP协议实体单元通过所述PDCP确认序列号进行构造。在此基础上,数据发送端的PDCP协议实体单元通过计算方式生成其他域如校验和等,进而完成TCP ACK数据包的构造。
本申请中,由数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送用于指示数据发送端的PDCP协议实体单元构造所述ACK数据包的指示信息,并不向数据发送端发送ACK数据包,在无线网络中传输所述指示信息的资源开销小于传输所述ACK数据包的资源开销,进而可避免由于ACK数据包较大造成的数据发送端和数据接收端之间传输数据包的传输性能下降的问题,优化数据发送端和数据接收端之间传输数据包的传输性能。
本申请以下将结合实际应用对上述由数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送指示信息,并由数据发送端的PDCP协议实体单元构造所述ACK数据包的实现过程进行说明。
本申请的一个实施例中,以ACK数据包为TCP ACK数据包为例进行说明。需要说明的是,基于当前协议架构,TCP协议实体单元和PDCP协议实体单元之间可能存在其他中间协议实体单元如IP协议实体单元,由于中间协议实体单元的行为是现有技术,且为了描述简化,本申请略去中间协议实体单元的处理过程。
图3所示为本申请提供的一个实施例中数据传输方法实现流程图,参阅图3所示,包括:
S201:数据发送端的TCP协议实体单元发送TCP数据包,数据发送端的PDCP协议实体单元获取该TCP数据包,并将该TCP数据包组包为PDCP数据(data)协议数据单元(Protocol Data Unit,PDU)。
S202:数据发送端的PDCP协议实体单元解析所述TCP数据包头得到TCP链路标识、TCP序列号和TCP报文长度(TCP segment length),建立并维护TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。
S203:数据发送端的PDCP协议实体单元向数据接收端的PDCP协议实体单元发送PDCP data PDU。
S204:数据接收端的PDCP协议实体单元接收到数据发送端的PDCP协议实体单元发送的所述PDCP data PDU后,通过该PDCP data PDU获取得到TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。
S205:数据接收端的PDCP协议实体单元将TCP数据包发送给数据接收端的TCP协议实体单元。
S206:数据接收端的TCP协议实体单元确认TCP数据包正确接收后向数据接收端的PDCP协议实体单元发送TCP ACK数据包,数据接收端的PDCP协议实体单元接收数据接收端的TCP协议实体单元发送的TCP ACK数据包。
本申请的一个实施例中,数据接收端的PDCP协议实体单元接收到TCP ACK数据包,根据TCP ACK数据包的内容判断是否由数据发送端的PDCP协议实体单元构造TCP ACK数据包,例如当确定TCP ACK数据包仅用于确认某个TCP数据包被正确接收时,判断结果为需要由数据发送端的PDCP协议实体单元构造TCP ACK数据包,则执行S207。当确定TCP ACK数据包还用作其它功能,如指示服务器端要终止该TCP链接等时,判断结果为无法通过PDCP协议实体单元指示数据发送端构造TCP ACK数据包,此时参考现有技术通过PDCP数据包来发送所述TCP ACK数据包。
S207:数据接收端的PDCP协议实体单元获取TCP ACK数据包的TCP链路标识信息以及TCP确认号,并依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与TCP ACK数据包的TCP链路标识信息以及TCP确认号匹配的PDCP序列号。需要说明的是,由于该PDCP序列号是所述数据发送端的PDCP序列号,为避免和所述数据接收端本身发送PDCP数据包的序列号混淆,将所述确定的PDCP序列号命名为PDCP确认序列号。换言之,所述PDCP确认序列号为所述TCP ACK数据包所确认的TCP数据包在PDCP层的序列号。下述段落将对如何确定PDCP确认序列号的过程做进一步举例说明。
本申请实施例中,假设数据接收端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号映射关系如表1所示:
表1
本申请实施例中,假设所述数据接收端的PDCP协议实体单元获取的TCP ACK数据包的TCP链路标识信息和TCP确认号(TCP链路标识,ACK_SN)=(<源IP=100.72.213.243,目标IP=121.12.108.12,源端口=41182,目标端口=80,版本=4>,568),因为ACK_SN表征期望下一个收到的TCP数据包,ACK_SN=TCP序列号+TCP报文长度,可以确定示例中TCP ACK数据包确认TCP SN 512正确接收,对应的PDCP序列号为2,因此,可确定与示例中的TCP ACK数据包的TCP链路标识信息和TCP确认号相匹配的PDCP确认序列号为2。
S208:数据接收端的PDCP协议实体单元生成包含PDCP确认序列号的指示信息,并向数据发送端的PDCP协议实体单元发送该包含PDCP确认序列号的指示信息,以指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP ACK数据包。
本申请的一个实施例中,数据接收端的PDCP协议实体单元可通过PDCP control PDU发送用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的指示信息。
其中,用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的PDCP control PDU中包括用于指示该PDU为PDCP control PDU的比特位、用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的比特位,以及用于指示构造TCP ACK数据包所需的数据内容的比特位。
图4所示为本申请提供的PDCP control PDU格式的一个示例。图4所示的PDCP control PDU包括16个比特位,共2个字节(Oct)。其中,用于指示该PDU为PDCP control PDU的数据/控制(Data/Control,D/C)域占用1个比特位,用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的PDU类型(Type)域占用3个比特位,用于指示构造TCP ACK数据包所需的PDCP确认序列号占用12个比特位。图4中所示的PDCP control PDU格式中,D/C域取值为0表征该PDU为PDCP control PDU,PDU Type域取值为011用于指示数据发送端的PDCP协议实体单元依据PDCP确认序列号构造TCP ACK数据包。
图5为本申请提供的PDCP control PDU格式的另一个示例,考虑到PDCP确认序列号与数据发送端的PDCP协议实体单元的PDCP序列号格式对应,当数据发送端的PDCP序列号为15个比特位时,为了保证PDCP control PDU大小为整数字节,该格式下有5个预留比特,其余域的内容同图4。
本申请的另一个实施例中,数据接收端的PDCP协议实体单元可通过PDCP data PDU发送用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的指示信息。
其中,用于指示数据发送端的PDCP协议实体单元该PDU为PDCP data PDU的比特位、用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的比特位。图6所示为本申请提供的PDCP data PDU格式的一个示例。图6所示的PDCP data PDU的PDCP头包括16个比特位,共2个Oct。其中,用于指示该PDU为PDCP data PDU
的D/C域占用1个比特位,用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造TCP ACK数据包的PDCP data PDU类型(Data Packet Type,DPT)域占用1个比特位,用于指示PDCP序列号的PDCP SN占用12或者15个比特位,剩余的比特位为空留比特位R。用于指示构造TCP ACK数据包的PDCP确认序列号在data域,确认序列号可以为12bit,也可以是15个bit,当非整数字节时,前面位数用0填充。其中,DPT域取值为0时表征该PDCP data PDU不包括用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的PDCP确认序列号,则数据发送端的PDCP协议实体单元可按照传统的处理方式对PDCP data PDU进行处理。DPT域取值为1时表征该PDCP data PDU中包括用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的PDCP确认序列号,则数据发送端的PDCP协议实体单元可解析PDCP data PDU得到PDCP确认序列号,并构造TCP ACK数据包。
本申请的一个说明性示例中,数据接收端的PDCP协议实体单元在确定包含PDCP确认序列号的PDCP control PDU正确发送后,可删除该PDCP确认序列号对应的PDCP control PDU缓存,以确保PDCP control PDU传输的可靠性。一种可能的实施方式中,数据接收端的PDCP协议实体单元将PDCP control PDU发送给数据接收端的RLC协议实体单元,数据接收端的RLC协议实体单元通过数据发送端的RLC ACK确定RLC SDU被正确接收时,以PDCP确认序列号的形式通知数据接收端的PDCP协议实体单元PDCP control PDU已被正确发送,以便于数据接收端的PDCP协议实体单元删除该PDCP确认序列号对应的PDCP control PDU缓存。
S209:数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造TCP ACK数据包。
数据发送端的PDCP协议实体单元接收到数据接收端的PDCP协议实体单元发送的指示数据发送端的PDCP协议实体单元依据PDCP确认序列号构造TCP ACK数据包的指示信息后,确定需要构造TCP ACK数据包,并获取指示信息中包含的PDCP确认序列号,通过所述PDCP确认序列号,以及所维护的TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与PDCP确认序列号对应的TCP序列号,进而构造TCP ACK数据包。例如,数据发送端的PDCP协议实体单元接收到数据接收端的PDCP协议实体单元发送的PDU Type域取值为011的PDCP control PDU后,确定需要构造TCP ACK数据包。数据发送端的PDCP协议实体单元读取PDCP control PDU中包含的PDCP确认序列号,并依据该PDCP确认序列号,查找已维护的映射关系,确定与PDCP确认序列号对应的TCP序列号,并构造与TCP序列号对应的TCP ACK数据包。
数据发送端的PDCP协议实体单元构造的TCP ACK数据包是指包含有IP头的TCP ACK数据包。以下对数据发送端的PDCP协议实体单元构造的TCP ACK数据包的过程进行举例说明。
TCP ACK数据包的IP头中包括的各域值除了身份标识码(Identification)域值和校验和(checksum)域值以外的其它域值都是重复的,Identification域值每接收到一个TCP数据包则加1,故,可通过数据发送端的PDCP协议实体单元所维护的本TCP链路的最新TCP数据包中的域值,可确定当前接收到的TCP ACK数据包的IP头中包括的各域值。故本申请实施例中,数据发送端的PDCP协议实体单元需要维护其所承载的每个链接中已接收到的最新的TCP数据包包头,该最新的TCP数据包包头可以是从数据接收端接收到并存储的TCP数据包的包头,也可以是数据发送端的PDCP协议实体单元生成并存储的TCP数据包(此处仅
指TCP ACK数据包)的包头。
当前需要构造的TCP ACK数据包中包括的保留位、窗口、紧急指针、源端口和目标端口等可以继续用发端所维护的最新的TCP数据包包头中的域值。当前需要构造的TCP ACK数据包的序列号的域值等于所维护的该TCP链路的TCP数据包包头中的TCP序列号加上TCP分段长度。当前需要构造的TCP ACK数据包的数据偏移的域值以及校验和的域值可以通过计算获得。并且由于数据接收端的PDCP协议实体单元接收到TCP ACK数据包,根据TCP ACK数据包的内容判断是否由数据发送端的PDCP协议实体单元构造TCP ACK数据包,例如当确定TCP ACK数据包仅用于确认某个TCP数据包被正确接收时,判断结果为需要由数据发送端的PDCP协议实体单元构造TCP ACK数据包的情况下,才需要数据发送端构造TCP ACK数据包,故可确定当前需要构造的TCP ACK数据包中紧急比特(URG)=0,确认比特(ACK)=1,推送比特(PSH)=0,复位比特(RST)=0,同步比特(SYN)=0,终止比特(FIN)=0。当前需要构造的TCP ACK数据包中的确认序列号可通过如下方式确定:数据发送端的PDCP协议实体单元获取数据接收端的PDCP协议实体单元发送的指示信息中包含的PDCP确认序列号,通过所述PDCP确认序列号,以及所维护的TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与PDCP确认序列号对应的TCP序列号及TCP报文长度,进而确定出当前需要构造的TCP ACK数据包中的确认序列号=TCP序列号+TCP报文长度。
通过上述方式,数据发送端的PDCP协议实体单元完成TCP ACK数据包的构造。
本申请上述由数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的指示信息,并不向数据发送端发送TCP ACK数据包,在无线网络中传输所述指示信息的资源开销远小于传输所述ACK数据包的资源开销,进而可避免由于TCP ACK数据包较大造成的数据发送端和数据接收端之间传输数据包的传输性能下降的问题,优化数据发送端和数据接收端之间传输数据包的传输性能。
本申请实施例以下对数据发送端的PDCP协议实体单元和数据接收端的PDCP协议实体单元维护TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号之间映射关系的实施过程进行说明。
本申请实施例中,数据发送端的PDCP协议实体单元和数据接收端的PDCP协议实体单元可通过映射表格维护TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,所述映射表格是指存储映射关系的表格。
数据发送端的PDCP协议实体单元可采用如下方式维护存储有TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号之间映射关系的映射表格:数据发送端的PDCP协议实体单元可在每完成一个PDCP data PDU组包后,在已维护的映射表格中增加一条记录,该记录中包括该完成组包的PDCP data PDU中包括的TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号之间映射关系。数据发送端的PDCP协议实体单元可在构造完成TCP ACK数据包后,删除映射表格中构造完成的TCP ACK数据包对应的TCP链路标识下小于等于PDCP序列号的所有记录。
数据接收端的PDCP协议实体单元可采用如下方式维护存储有TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号之间映射关系的映射表格:数据接收端的PDCP协议实体单元可在每收到一个数据发送端的PDCP协议实体单元发送的PDCP data PDU组包后,获取
PDCP data PDU组包中包括的TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号之间映射关系,并在已维护的映射表格中增加一条记录,该记录中包括在获取到的PDCP data PDU中读取得到的TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。数据接收端的PDCP协议实体单元当根据TCP链路标识和TCP确认号匹配得到PDCP确认序列号,并完成包含PDCP确认序列号的PDCP control PDU发送后,可删除该完成发送的PDCP control PDU中包含的TCP链路标识下小于等于PDCP确认序列号的所有记录。
本申请的一个说明性示例中,若数据接收端和数据发送端采用TCP ACK减少功能动态激活机制,则数据发送端的PDCP协议实体单元和数据接收端的PDCP协议实体单元在接收到激活指示信息后,启动映射表格的维护。
本申请的另一个说明性示例中,对数据发送端的PDCP协议实体单元和数据接收端的PDCP协议实体单元维护的映射表格的大小进行说明。一种可能的实施方式中,可设置PDCP确认序列号的大小为15比特,TCP链路标识的大小为100比特,TCP序列号的大小为32比特,TCP报文长度为16比特,则映射表格中的一条记录的大小为163比特,映射表格大小为163比特×记录条数。另一种可能的实施方式中,可对TCP链路标识进行编号,在映射表格中记录编号信息,考虑到当前RAN侧中一般限制一个无线承载(Radio Bearer,RB)上承载最多30条TCP链路,因此TCP链路标识的编号只需要5比特,额外再维护一个TCP链路标识编号和TCP链路标识的映射表格,可以节约资源开销。例如,按照上述第一种可能的实施方式中设置TCP序列号、TCP报文长度和PDCP序列号的大小,则表格大小为68比特×记录条数,额外增加的TCP链路标识编号和TCP链路标识的映射表格中一条记录的大小为105*TCP链路数。
本申请实施例中,包含PDCP确认序列号的指示信息中还可包括所述数据接收端的TCP接收窗大小,包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。需要说明的是,若所述指示信息能指示接收端的TCP接收窗大小,S206中判断需要由数据发送端的PDCP协议实体单元构造TCP ACK数据包的判断条件可以扩大到确定TCP ACK用于确认某个TCP数据包被正确接收,及TCP ACK用于指示TCP发端接收端TCP接收窗大小。
包括PDCP确认序列号和TCP接收窗大小的指示信息可通过PDCP control PDU或PDCP data PDU发送。图7和图8示出了包括PDCP确认序列号和TCP接收窗大小的指示信息的PDCP control PDU的格式示意图。
图7所示PDCP control PDU包括40个比特位,共5个Oct,其中,用于指示构造TCP ACK数据包所需的PDCP确认序列号占用12个比特位。D/C域占用1个比特位,D/C域取值为0表征该PDU为PDCP control PDU。PDU Type域占用3个比特位,PDU Type域取值为011用于指示数据发送端的PDCP协议实体单元依据PDCP确认序列号构造TCP ACK数据包。用于指示该指示信息中是否包含数据接收端的TCP接收窗大小的W标识位占用1个比特位,W标识位域取值为0表征该PDCP control PDU中不包含用于指示数据接收端的TCP接收窗大小的TCP接收窗信息,W标识位域取值为1表征该PDCP control PDU中包含用于指示数据接收端的TCP接收窗大小的TCP接收窗信息,且在PDCP确认序列号之后的两个字节(Oct4至Oct5)。空留比特位R占用7个比特位。需要说明的是,比特位个数仅示例说明,实际中可能有变化,下面的描述同。
图8所示的PDCP control PDU包括40个比特位,共5个Oct。其中,用于指示构造TCP ACK数据包所需的PDCP确认序列号占用15个比特位,空留比特位R占用4个比特位,其它部分与图7所示的PDCP control PDU格式相同。
数据发送端的PDCP协议实体单元接收到包含有TCP接收窗大小的指示信息后,在构造TCP ACK数据包时,将TCP ACK数据包中的TCP接收窗域值设置为所述指示信息中指示的TCP接收窗大小。本申请实施例中涉及的还原出TCP接收窗大小域的过程也可以理解为是构造TCP ACK数据包时设置TCP接收窗大小的过程。
本申请实施例中,包含PDCP确认序列号的指示信息中还可包括TCP SACK选项,包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP ACK数据包时还原出TCP SACK选项域。需要说明的是,若所述指示信息能指示TCP SACK选项,S206中判断需要由数据发送端的PDCP协议实体单元构造TCP ACK数据包的判断条件可以扩大到确定TCP ACK用于确认某个TCP数据包被正确接收,及TCP ACK用于指示SACK选项。进一步的,若指示信息中包含SACK选项指示,所述数据接收端的PDCP协议实体单元还需要维护最新发送的TCP确认号,且当一个PDCP协议实体单元承载多个支持SACK功能的TCP链路时,需要为每个支持SACK功能的TCP链路维护一个最新的TCP确认号
包括PDCP确认序列号和TCP SACK选项域的指示信息可通过PDCP control PDU或PDCP data PDU发送。图9示出了包括PDCP确认序列号和TCP SACK选项域的指示信息的PDCP control PDU的格式示意图。图9所示PDCP control PDU包括40个比特位,共5个Oct,其中,用于指示构造TCP ACK数据包所需的PDCP确认序列号占用12个比特位。D/C域占用1个比特位,D/C域取值为0表征该PDU为PDCP control PDU。PDU Type域占用3个比特位,PDU Type域取值为011用于指示数据发送端的PDCP协议实体单元依据PDCP确认序列号构造TCP ACK数据包。用于指示TCP SACK选项的E标识位占用1个比特位,E标识位域取值为0表征该该标识位后不含TCP SACK选项指示信息,E标识位域取值为1表征该标识位后含TCP SACK选项指示信息。
需要进一步说明的是,TCP ACK包中SACK选项所确认的是数据接收端所正确接收的非连续的数据块,包括数据块的起始TCP序列号和终止TCP序列号,如【6000,6500】,因为数据接收端会维护TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,所确认的TCP序列号对应一个PDCP序列号,因此可以确定一个PDCP序列号,也就是说SACK选项中的一个数据块可以用两个PDCP序列号表征,或者是一个PDCP序列号和PDCP包个数来表征(例如图9中的TCP SACK indicator可包含两个PDCP确认序列号(PDCP确认序列号1和PDCP确认序列号2),其中PDCP确认序列号1对应数据块的起始TCP序列号,PDCP确认序列号2对应数据包的终止TCP序列号,或者TCP SACK Indicator可包含一个PDCP确认序列号及PDCP包个数,其中PDCP确认序列号对应对应数据块的起始TCP序列号,PDCP包个数对应起始TCP序列号和终止TCP序列号之间的PDCP包个数)。考虑到包含SACK选项的TCP ACK包可能仅用于指示SACK选项,也就是说TCP ACK包中的确认号和上一个TCP ACK包的确认号相同,由于接收端的PDCP协议实体单元在指示发送端的PDCP协议实体单元完成构造后会清除所述确认号对应的记录,也就意味着接收端无法根据所述TCP ACK的确认号找到相匹配的PDCP确认序列号。因此若指示信息中包含SACK选项指示,所述数据接收端的PDCP协议实体单元还需要维护最新发送的TCP确认号,且当一个PDCP协议实体单元承载多个支持SACK功能的TCP链路时,需要为每个支持SACK功能
的TCP链路维护一个最新的TCP确认号。
数据发送端的PDCP协议实体单元接收到包含有SACK的指示信息后,根据指示信息中SACK Indicator的内容(如根据PDCP确认序列号1确定数据块的起始TCP序列号,根据PDCP确认序列号2确定数据块的终止TCP序列号,具体的确定原理同TCP确认号,在此不一一赘述),在构造TCP ACK数据包时,将TCP ACK数据包中的TCP SACK选项域设置为数据块的起始TCP序列号和终止TCP序列号。本申请实施例中涉及的还原出TCP SACK选项的过程也可以理解为是构造TCP ACK数据包时设置TCP SACK选项的过程。
本申请实施例中,包含PDCP确认序列号的指示信息中还可同时包括所述数据接收端的TCP接收窗大小及包TCP SACK选项,所述指示信息可用于指示所述数据发送端在构造TCP确认包时还原出TCP接收窗及TCP SACK选项域。该实施例对应的指示信息可以通过PDCP控制PDU或者PDCP数据PDU发送,对应的格式和上述描述中的格式类似,在此不再赘述。
本申请的另一个实施例中,ACK数据包可以是基于UDP的QUIC ACK数据包。
ACK数据包为基于UDP的QUIC ACK数据包的情况下,数据接收端的PDCP协议实体单元可向数据发送端的PDCP协议实体单元发送包含与QUIC ACK数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息的指示信息,通过该指示信息指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC ACK数据包。
包含与QUIC ACK数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息的指示信息,可通过PDCP control PDU或PDCP data PDU发送。用于指示数据发送端的PDCP协议实体单元构造QUIC ACK数据包的PDCP control PDU或PDCP data PDU的格式与上述用于指示数据发送端的PDCP协议实体单元构造TCP ACK数据包的PDCP control PDU或PDCP data PDU的格式类似,不同之处仅在于用于指示数据发送端的PDCP协议实体单元构造QUIC ACK数据包的PDCP control PDU或PDCP data PDU中包括用于指示构造QUIC ACK数据包所需的数据内容的比特位。
本申请的又一实施例中,若数据发送端和数据接收端之间通过中转路由节点进行数据传输,例如通过客户终端设备(Customer Premises Equipment,CPE)中转,该场景中,数据发送端(网络设备,例如应用服务器)和CPE等中转路由节点之间通过移动网络连接如长期演进(Long Term Evolution,LTE)网络,CPE和数据接收端(终端)之间通过无线保真技术(Wireless Fidelity,WiFi)连接。
数据发送端将TCP数据包发送给数据接收端的过程中,TCP数据包需通过CPE等中转路由节点中转以后被传送到数据接收端。CPE的PDCP协议实体单元可从数据发送端的PDCP协议实体单元发送的PDCP数据包(包含了TCP数据包)中获取PDCP序列号、TCP链路信息、TCP序列号和TCP报文长度等信息,建立并维护TCP链路信息、TCP序列号,TCP报文长度分别与PDCP序列号之间的映射关系,为描述方便以下称为映射关系1。CPE的PDCP协议实体单元解析所述PDCP数据包,并通过WiFi数据帧发送给数据接收端。CPE在组包WiFi数据帧时,获取数据帧序号、TCP链路信息、TCP序列号和TCP报文长度等信息,建立并维护TCP链路信息、TCP序列号,TCP报文长度和数据帧序号之间的映射关系,为描述方便以下称为映射关系2。CPE将所述数据帧发送给数据接收端后,等待数据接收端的确认帧。CPE收到数据接收端的确认帧后,根据确认帧所确认的数据帧序号,结合所维护
的映射关系2,确定哪个TCP链路信息的TCP序列号的TCP包被正确接收,再结合所维护的映射关系1确定PDCP确认序列号,生成PDCP指示信息,并向数据发送端发送,以指示数据发送端构造TCP ACK包。
本申请实施例中,CPE等中转路由节点的PDCP协议实体单元可以通过发送PDCP指示信息,以指示数据发送端构造TCP ACK数据包,不用发真实的TCP ACK数据包,可以节省移动网络的空口开销,同时数据接收端可以不用发TCP ACK数据包,进一步节省了WiFi的空口资源。
上述主要从数据接收端和数据发送端交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,数据接收端和数据发送端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。
本申请实施例可以根据上述方法示例对数据接收端和数据发送端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图10示出了一种可能的数据接收设备100的结构示意图。参阅图10所示,数据接收设备100包括接收模块101和发送模块102,其中,接收模块101,用于接收确认数据包。发送模块102,用于向数据发送端的PDCP协议实体单元发送指示信息所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述接收模块101接收的确认数据包。
一种可能的实施方式中,所述确认数据包为所述数据接收设备的TCP协议实体单元发送的TCP确认数据包。所述接收模块101,还用于:在所述发送模块102向数据发送端的PDCP协议实体单元发送指示信息之前,获取所述TCP确认数据包的TCP链路标识信息以及TCP确认号。所述数据接收设备还包括处理模块103,所述处理模块103用于:依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与所述TCP确认数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认序列号,生成包含PDCP确认序列号的指示信息。所述映射关系由所述数据接收设备的PDCP协议实体单元从数据发送端的PDCP协议实体单元PDCP数据PDU中获取并维护,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包。所述包含PDCP确认序列号的指示信息用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP列号之间的映射关系构造所述TCP确认数据包。
一种可能的实施方式中,所述指示信息中还包括所述数据接收设备的TCP接收窗大小,所述包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
一种可能的实施方式中,所述指示信息中还包括TCPSACK选项,所述包括TCP
SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
一种可能的实施方式中,所述确认数据包为基于UDP的QUIC确认数据包。所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息。所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
其中,所述指示信息通过PDCP控制PDU或者PDCP数据PDU发送。所述PDCP控制PDU或者PDCP数据PDU中包括用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的比特位。
当采用硬件形式实现时,本申请实施例中,接收模块101可以是通信接口、接收器、收发电路等。发送模块102可以是通信接口、发射器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。处理模块103可以是处理器或控制器。
当所述接收模块101是接收器,发送模块102是发射器时,本申请实施例所涉及的数据接收设备100可以为图11所示的数据接收设备。其中,所述图11所示的数据接收设备可以是终端。
图11示出了本申请实施例一种可能的数据接收设备1000结构示意图,即示出了本申请实施例涉及的另一种可能的数据接收设备。参阅图11所示,该数据接收设备1000包括:接收器1001和发射器1002。其中,接收器1001,用于接收确认数据包。发射器1002,用于向数据发送端的PDCP协议实体单元发送指示信息所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述接收器1001接收的确认数据包。
其中,所述确认数据包为所述数据接收设备的TCP协议实体单元发送的TCP确认数据包。所述接收器1001,还用于:在所述发射器1002向数据发送端的PDCP协议实体单元发送指示信息之前,获取所述TCP确认数据包的TCP链路标识信息以及TCP确认号。
所述数据接收设备还包括处理器1003,处理器1003也可以为控制器,图11中表示为“控制器/处理器1003”。
所述处理器1003用于:依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与所述TCP确认数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认序列号,生成包含PDCP确认序列号的指示信息。所述映射关系由所述数据接收设备的PDCP协议实体单元从数据发送端的PDCP协议实体单元PDCP数据协议数据单元PDU中获取并维护,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包。所述包含PDCP确认序列号的指示信息用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP列号之间的映射关系构造所述TCP确认数据包。
一种可能的实施方式中,所述指示信息中还包括所述数据接收设备的TCP接收窗大小,所述包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
一种可能的实施方式中,所述指示信息中还包括TCP SACK选项,所述包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
一种可能的实施方式中,所述确认数据包为基于UDP的QUIC确认数据包。所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息。所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
其中,所述指示信息可通过PDCP控制PDU或者PDCP数据PDU发送,所述PDCP控制PDU或者PDCP数据PDU中包括用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的比特位。
其中,数据接收设备1000还可以包括存储器1004和总线1005。存储器1004用于与处理器1003耦合,存储数据接收设备1000的程序代码和数据。其中,接收器1001、发射器1002、处理器1003以及存储器1004可以通过总线1005相互连接;为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可以理解的是,图11仅仅示出了数据接收设备1000的简化设计。在实际应用中,数据接收设备1000并不限于上述结构,例如还可以包括显示设备、输入输出接口等,而所有可以实现本申请实施例的终端都在本申请实施例的保护范围之内。
进一步可以理解的是,本申请实施例涉及的数据接收设备100和数据接收设备1000,可用于实现本申请实施例上述方法实施例中数据接收端的PDCP协议实体单元的相应功能,故对于本申请实施例描述不够详尽的地方,可参阅相关方法实施例的描述,本申请实施例在此不再赘述。
在采用集成的单元的情况下,图12示出了数据发送设备200的一种可能的结构。数据发送设备200包括接收模块201和处理模块202,其中,接收模块201,用于接收数据接收设备的PDCP协议实体单元发送的指示信息,所述指示信息中包含PDCP确认序列号处理模块202,用于依据所述接收模块201接收到的指示信息中包含的PDCP确认序列号构造确认数据包。
一种可能的实施方式中,所述确认数据包为数据接收设备的TCP协议实体单元发送的TCP确认数据包。所述数据发送设备还包括发送模块203,所述发送模块203用于:在所述处理模块202依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包之前,向数据接收设备的PDCP协议实体单元发送PDCP数据PDU,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包,所述数据发送端的PDCP协议实体单元从所述PDCP数据PDU中获取TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号,建立并维护所述TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。所述处理模块202,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP确认数据包。
一种可能的实施方式中,所述处理模块202,还用于:在所述接收模块201接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括所述数据接收设备的TCP接收窗大小,则在构造TCP确认数据包时还原出TCP接收窗大小域。
一种可能的实施方式中,所述处理模块202,还用于:在所述接收模块201接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括TCPSACK选项,则在构造TCP确认包时还原出TCP SACK选项域。
一种可能的实施方式中,所述确认数据包为基于UDP的QUIC确认数据包。所述指示
信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息。所述处理模块202,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
当采用硬件形式实现时,本申请实施例中,接收模块201可以是通信接口、接收器、收发电路等。处理模块202可以是处理器或控制器。发送模块203可以是通信接口、发射器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。
当所述接收模块201是接收器,处理模块202是处理器。发送模块203是发射器时,本申请实施例所涉及的数据发送设备200可以为图13所示的数据发送设备。其中,所述图13所示的数据发送设备可以是应用服务器等网络设备。
图13示出了本申请实施例一种可能的数据发送设备2000结构示意图,即示出了本申请实施例涉及的另一种可能的数据发送设备。参阅图13所示,该数据发送设备2000包括接收器2001和处理器2002。其中,接收器2001,用于接收数据接收设备的PDCP协议实体单元发送的指示信息,所述指示信息中包含PDCP确认序列号。处理器2002,用于依据所述接收器2001接收到的指示信息中包含的PDCP确认序列号构造确认数据包。
一种可能的实施方式中,所述确认数据包为数据接收设备的TCP协议实体单元发送的TCP确认数据包。所述数据发送设备还包括发射器2003,所述发射器2003用于:在所述处理器2002依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包之前,向数据接收设备的PDCP协议实体单元发送PDCP数据协议数据单元PDU,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包,所述数据发送端的PDCP协议实体单元从所述PDCP数据PDU中获取TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号,建立并维护所述TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系。
所述处理器2002,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP确认数据包。
一种可能的实施方式中,所述处理器2002,还用于:在所述接收器2001接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括所述数据接收设备的TCP接收窗大小,则在构造TCP确认数据包时还原出TCP接收窗大小域。
一种可能的实施方式中,所述处理器2002,还用于:在所述接收器2001接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括TCPSACK选项,则在构造TCP确认包时还原出TCP SACK选项域。
一种可能的实施方式中,所述确认数据包为基于UDP的QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息。所述处理器2002,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
其中,数据发送设备2000还可以包括存储器2004。存储器2004用于与处理器2002耦合,存储数据发送设备2000的程序代码和数据。
可以理解的是,图13仅仅示出了数据发送设备2000的简化设计。在实际应用中,数据发送设备2000并不限于上述结构,例如还可以包括网络适配器和缓存等。
进一步可以理解的是,本申请实施例涉及的数据发送设备200和数据发送设备2000,
可用于实现本申请实施例上述方法实施例中数据发送端的PDCP协议实体单元的相应功能,故对于本申请实施例描述不够详尽的地方,可参阅相关方法实施例的描述,本申请实施例在此不再赘述。
需要说明的是,本申请实施例上述涉及的处理器或控制器可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
本领域内的技术人员应明白,本申请实施例可提供为方法、***、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (33)
- 一种数据传输方法,其特征在于,包括:数据接收端的分组数据聚合层PDCP协议实体单元接收确认数据包;所述数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送指示信息所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号。
- 如权利要求1所述的方法,其特征在于,所述确认数据包为数据接收端的传输控制协议TCP协议实体单元发送的TCP确认数据包;所述数据接收端的PDCP协议实体单元向数据发送端的PDCP协议实体单元发送指示信息之前,所述方法还包括:所述数据接收端的PDCP协议实体单元获取所述TCP确认数据包的TCP链路标识信息以及TCP确认号;所述数据接收端的PDCP协议实体单元依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与所述TCP确认数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认序列号,所述映射关系由所述数据接收端的PDCP协议实体单元从数据发送端的PDCP协议实体单元PDCP数据协议数据单元PDU中获取并维护,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包;所述数据接收端的PDCP协议实体单元生成包含PDCP确认序列号的指示信息;所述包含PDCP确认序列号的指示信息用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP列号之间的映射关系构造所述TCP确认数据包。
- 如权利要求2所述的方法,其特征在于,所述指示信息中还包括所述数据接收端的TCP接收窗大小,所述包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
- 如权利要求2至3任一项所述的方法,其特征在于,所述指示信息中还包括TCP选择确认SACK选项,所述包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
- 如权利要求1所述的方法,其特征在于,所述确认数据包为基于用户数据报协议UDP的低时延互联网传输层协议QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
- 如权利要求1至5任一项所述的方法,其特征在于,所述指示信息通过PDCP控制PDU或者PDCP数据PDU发送;所述PDCP控制PDU或者PDCP数据PDU中包括用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的比特位。
- 一种数据传输方法,其特征在于,包括:数据发送端的分组数据聚合层PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息,所述指示信息中包含PDCP确认序列号,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号;所述数据发送端的PDCP协议实体单元依据所述指示信息中包含的PDCP确认序列号构造确认数据包。
- 如权利要求7所述的方法,其特征在于,所述确认数据包为数据接收端的传输控制协议TCP协议实体单元发送的TCP确认数据包;所述数据发送端的PDCP协议实体单元依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包之前,所述方法还包括:所述数据发送端的PDCP协议实体单元向数据接收端的PDCP协议实体单元发送PDCP数据协议数据单元PDU,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包,所述数据发送端的PDCP协议实体单元从所述PDCP数据PDU中获取TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号,建立并维护所述TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系;所述数据发送端的PDCP协议实体单元依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包,包括:所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP确认数据包。
- 如权利要求8所述的方法,其特征在于,数据发送端的PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息之后,所述方法还包括:若所述指示信息中包括所述数据接收端的TCP接收窗大小,则所述数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
- 如权利要求8至9任一项所述的方法,其特征在于,数据发送端的PDCP协议实体单元接收数据接收端的PDCP协议实体单元发送的指示信息之后,所述方法还包括:若所述指示信息中包括TCP选择确认SACK选项,则所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
- 如权利要求7所述的方法,其特征在于,所述确认数据包为基于用户数据报协议UDP的低时延互联网传输层协议QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述数据发送端的PDCP协议实体单元依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包,包括:所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
- 一种数据接收设备,其特征在于,包括:接收模块,用于接收确认数据包;发送模块,用于向数据发送端的分组数据聚合层PDCP协议实体单元发送指示信息所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述接收模块接收的确认数据包。
- 如权利要求12所述的数据接收设备,其特征在于,所述确认数据包为所述数据接收设备的传输控制协议TCP协议实体单元发送的TCP确认数据包;所述接收模块,还用于:在所述发送模块向数据发送端的PDCP协议实体单元发送指示信息之前,获取所述TCP确认数据包的TCP链路标识信息以及TCP确认号;所述数据接收设备还包括处理模块,所述处理模块用于:依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与所述TCP确认数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认序列号,生成包含PDCP确认序列号的指示信息;所述映射关系由所述数据接收设备的PDCP协议实体单元从数据发送端的PDCP协议实体单元PDCP数据协议数据单元PDU中获取并维护,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包;所述包含PDCP确认序列号的指示信息用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP列号之间的映射关系构造所述TCP确认数据包。
- 如权利要求13所述的数据接收设备,其特征在于,所述指示信息中还包括所述数据接收设备的TCP接收窗大小,所述包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
- 如权利要求13至14任一项所述的数据接收设备,其特征在于,所述指示信息中还包括TCP选择确认SACK选项,所述包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
- 如权利要求12所述的数据接收设备,其特征在于,所述确认数据包为基于用户数据报协议UDP的低时延互联网传输层协议QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
- 如权利要求12至16任一项所述的数据接收设备,其特征在于,所述指示信息通过PDCP控制PDU或者PDCP数据PDU发送;所述PDCP控制PDU或者PDCP数据PDU中包括用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的比特位。
- 一种数据发送设备,其特征在于,包括:接收模块,用于接收数据接收设备的分组数据聚合层PDCP协议实体单元发送的指示信息,所述指示信息中包含PDCP确认序列号,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号;处理模块,用于依据所述接收模块接收到的指示信息中包含的PDCP确认序列号构造确认数据包。
- 如权利要求18所述的数据发送设备,其特征在于,所述确认数据包为数据接收设备的传输控制协议TCP协议实体单元发送的TCP确认数据包;所述数据发送设备还包括发送模块,所述发送模块用于:在所述处理模块依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包之前,向数据接收设备的PDCP协议实体单元发送PDCP数据协议数据单元PDU,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包,所述数据发送端的PDCP协议实体单元从所述PDCP数据PDU中获取TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号,建立并维护所述TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系;所述处理模块,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系构造所述TCP确认数据包。
- 如权利要求19所述的数据发送设备,其特征在于,所述处理模块,还用于:在所述接收模块接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括所述数据接收设备的TCP接收窗大小,则在构造TCP确认数据包时还原出TCP接收窗大小域。
- 如权利要求19至20任一项所述的数据发送设备,其特征在于,所述处理模块,还用于:在所述接收模块接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括TCP选择确认SACK选项,则在构造TCP确认包时还原出TCP SACK选项域。
- 如权利要求18所述的数据发送设备,其特征在于,所述确认数据包为基于用户数据报协议UDP的低时延互联网传输层协议QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述处理模块,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
- 一种数据接收设备,其特征在于,包括接收器和发射器,其中:接收器,用于接收确认数据包;发射器,用于向数据发送端的分组数据聚合层PDCP协议实体单元发送指示信息所述指示信息中包含PDCP确认序列号,所述指示信息用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述接收器接收的确认数据包,所述PDCP确认序列号为所述确认数据包所确认的数据包在PDCP层的序列号。
- 如权利要求23所述的数据接收设备,其特征在于,所述确认数据包为所述数据接收设备的传输控制协议TCP协议实体单元发送的TCP确认数据包;所述接收器,还用于:在所述发射器向数据发送端的PDCP协议实体单元发送指示信息之前,获取所述TCP确认数据包的TCP链路标识信息以及TCP确认号;所述数据接收设备还包括处理器,所述处理器用于:依据TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系,确定与所述TCP确认数据包的TCP链路标识信息以及TCP确认号匹配的PDCP确认 序列号,生成包含PDCP确认序列号的指示信息;所述映射关系由所述数据接收设备的PDCP协议实体单元从数据发送端的PDCP协议实体单元PDCP数据协议数据单元PDU中获取并维护,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包;所述包含PDCP确认序列号的指示信息用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号,以及数据发送端所维护的TCP链路标识、TCP序列号、TCP报文长度和PDCP列号之间的映射关系构造所述TCP确认数据包。
- 如权利要求24所述的数据接收设备,其特征在于,所述指示信息中还包括所述数据接收设备的TCP接收窗大小,所述包括TCP接收窗大小的指示信息用于指示数据发送端在构造TCP确认数据包时还原出TCP接收窗大小域。
- 如权利要求24至25任一项所述的数据接收设备,其特征在于,所述指示信息中还包括TCP选择确认SACK选项,所述包括TCP SACK选项的指示信息用于指示所述数据发送端在构造TCP确认包时还原出TCP SACK选项域。
- 如权利要求23所述的数据接收设备,其特征在于,所述确认数据包为基于用户数据报协议UDP的低时延互联网传输层协议QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述指示信息,用于指示所述数据发送端的PDCP协议实体单元依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
- 如权利要求23至27任一项所述的数据接收设备,其特征在于,所述指示信息通过PDCP控制PDU或者PDCP数据PDU发送;所述PDCP控制PDU或者PDCP数据PDU中包括用于指示数据发送端的PDCP协议实体单元依据所述PDCP确认序列号构造所述确认数据包的比特位。
- 一种数据发送设备,其特征在于,包括:接收器,用于接收数据接收设备的分组数据聚合层PDCP协议实体单元发送的指示信息,所述指示信息中包含PDCP确认序列号;处理器,用于依据所述接收器接收到的指示信息中包含的PDCP确认序列号构造确认数据包。
- 如权利要求29所述的数据发送设备,其特征在于,所述确认数据包为数据接收设备的传输控制协议TCP协议实体单元发送的TCP确认数据包;所述数据发送设备还包括发射器,所述发射器用于:在所述处理器依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包之前,向数据接收设备的PDCP协议实体单元发送PDCP数据协议数据单元PDU,所述PDCP数据PDU中包含所述TCP确认包所确认的TCP数据包,所述数据发送端的PDCP协议实体单元从所述PDCP数据PDU中获取TCP链路标识、TCP序列号、TCP报文长度和PDCP序列号,建立并维护所述TCP链路标识、TCP序列号、TCP报文长度分别与PDCP序列号之间的映射关系;所述处理器,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号,以及TCP链路标识、TCP序列号、TCP报文长度分别 与PDCP序列号之间的映射关系构造所述TCP确认数据包。
- 如权利要求30所述的数据发送设备,其特征在于,所述处理器,还用于:在所述接收器接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括所述数据接收设备的TCP接收窗大小,则在构造TCP确认数据包时还原出TCP接收窗大小域。
- 如权利要求30至31任一项所述的数据发送设备,其特征在于,所述处理器,还用于:在所述接收器接收数据接收设备的PDCP协议实体单元发送的指示信息之后,若所述指示信息中包括TCP选择确认SACK选项,则在构造TCP确认包时还原出TCP SACK选项域。
- 如权利要求29所述的数据发送设备,其特征在于,所述确认数据包为基于用户数据报协议UDP的低时延互联网传输层协议QUIC确认数据包;所述指示信息包含与QUIC确认数据包的数据块序号匹配的PDCP确认序列号以及时间戳信息;所述处理器,采用如下方式依据所述指示信息中包含的PDCP确认序列号构造所述确认数据包:依据所述PDCP确认序列号以及所述时间戳信息构造所述QUIC确认数据包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201780083108.3A CN110169023A (zh) | 2017-01-25 | 2017-01-25 | 一种数据传输方法、数据接收设备及数据发送设备 |
PCT/CN2017/072702 WO2018137218A1 (zh) | 2017-01-25 | 2017-01-25 | 一种数据传输方法、数据接收设备及数据发送设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/072702 WO2018137218A1 (zh) | 2017-01-25 | 2017-01-25 | 一种数据传输方法、数据接收设备及数据发送设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018137218A1 true WO2018137218A1 (zh) | 2018-08-02 |
Family
ID=62977939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/072702 WO2018137218A1 (zh) | 2017-01-25 | 2017-01-25 | 一种数据传输方法、数据接收设备及数据发送设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110169023A (zh) |
WO (1) | WO2018137218A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277986A (zh) * | 2020-03-06 | 2020-06-12 | 北京百瑞互联技术有限公司 | 一种提高iOS设备蓝牙传输速度的方法 |
CN114244822A (zh) * | 2021-12-17 | 2022-03-25 | 八维通科技有限公司 | 一种基于通信协议的消息传输***及传输方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114585019B (zh) * | 2022-05-05 | 2022-08-23 | 深圳国人无线通信有限公司 | 一种5g下行tcp的ack包防拥塞方法、基站、终端与*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1437368A (zh) * | 2002-02-08 | 2003-08-20 | 华硕电脑股份有限公司 | 数据传输的确认方法 |
US20040052234A1 (en) * | 2001-12-04 | 2004-03-18 | Nokia Corporation | Method and system for dispatching multiple TCP packets from communication systems |
KR20090116588A (ko) * | 2008-05-06 | 2009-11-11 | 엘지전자 주식회사 | 데이터 블록의 전송 방법 |
CN103888215A (zh) * | 2012-12-21 | 2014-06-25 | 华为技术有限公司 | 数据传输方法、装置及通信*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202076B (zh) * | 2010-03-23 | 2014-08-27 | 深圳市金蝶中间件有限公司 | 一种数据传输方法和装置及数据发送、接收方法和装置 |
CN103888222B (zh) * | 2014-03-21 | 2017-09-15 | 电信科学技术研究院 | 一种数据包处理方法及装置 |
-
2017
- 2017-01-25 CN CN201780083108.3A patent/CN110169023A/zh active Pending
- 2017-01-25 WO PCT/CN2017/072702 patent/WO2018137218A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040052234A1 (en) * | 2001-12-04 | 2004-03-18 | Nokia Corporation | Method and system for dispatching multiple TCP packets from communication systems |
CN1437368A (zh) * | 2002-02-08 | 2003-08-20 | 华硕电脑股份有限公司 | 数据传输的确认方法 |
KR20090116588A (ko) * | 2008-05-06 | 2009-11-11 | 엘지전자 주식회사 | 데이터 블록의 전송 방법 |
CN103888215A (zh) * | 2012-12-21 | 2014-06-25 | 华为技术有限公司 | 数据传输方法、装置及通信*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277986A (zh) * | 2020-03-06 | 2020-06-12 | 北京百瑞互联技术有限公司 | 一种提高iOS设备蓝牙传输速度的方法 |
CN111277986B (zh) * | 2020-03-06 | 2022-02-25 | 北京百瑞互联技术有限公司 | 一种提高iOS设备蓝牙传输速度的方法 |
CN114244822A (zh) * | 2021-12-17 | 2022-03-25 | 八维通科技有限公司 | 一种基于通信协议的消息传输***及传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110169023A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8151155B2 (en) | Packet Re-transmission controller for block acknowledgement in a communications system | |
JP4504977B2 (ja) | オフロードユニットを使用したtcp接続のためのデータ処理 | |
CN104025525B (zh) | 用于发送分组的方法和设备以及交换机装置 | |
US11381514B2 (en) | Methods and apparatus for early delivery of data link layer packets | |
JP5081900B2 (ja) | 再送要求送信方法及び受信側装置 | |
JP4625044B2 (ja) | ウィンドウ制御及び再送制御方法、及び、送信側装置 | |
JP4929349B2 (ja) | 再送要求送信方法及び受信側装置 | |
WO2018201960A1 (zh) | 一种进行反馈的方法和设备 | |
WO2011150767A1 (zh) | 数据发送处理方法、装置和*** | |
WO2015196393A1 (zh) | 一种数据传输方法及设备 | |
US7480301B2 (en) | Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement | |
JP2011135601A (ja) | パケット通信方法及び受信側装置 | |
WO2018036173A1 (zh) | 一种网络负载均衡方法、设备及*** | |
WO2014186944A1 (zh) | 一种确认报文发送方法及其设备 | |
WO2018137218A1 (zh) | 一种数据传输方法、数据接收设备及数据发送设备 | |
WO2011079785A1 (zh) | 一种传输数据包的方法及装置 | |
US7957273B2 (en) | Packet re-transmission controller for block acknowledgement in a communications system | |
EP3490293A1 (en) | Data transmission method, data receiving device, and data sending device | |
CN113938431B (zh) | 突发数据包传输方法、装置和电子设备 | |
TWI416898B (zh) | 用於資料傳送的系統以及方法 | |
JP4976904B2 (ja) | 再送制御方法及び送信側装置 | |
CN109587733A (zh) | 低功耗无线通讯传输方法 | |
JP2004040493A (ja) | パケット通信装置及びパケット通信方法 | |
JP2023517081A (ja) | 通信方法および装置 | |
WO2019085920A1 (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: 17893578 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17893578 Country of ref document: EP Kind code of ref document: A1 |