WO2022143902A1 - 数据包传输方法及相关设备 - Google Patents

数据包传输方法及相关设备 Download PDF

Info

Publication number
WO2022143902A1
WO2022143902A1 PCT/CN2021/143091 CN2021143091W WO2022143902A1 WO 2022143902 A1 WO2022143902 A1 WO 2022143902A1 CN 2021143091 W CN2021143091 W CN 2021143091W WO 2022143902 A1 WO2022143902 A1 WO 2022143902A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
network element
information
sequence information
terminal device
Prior art date
Application number
PCT/CN2021/143091
Other languages
English (en)
French (fr)
Inventor
潘奇
黄正磊
倪慧
李永翠
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP21914633.9A priority Critical patent/EP4254963A4/en
Publication of WO2022143902A1 publication Critical patent/WO2022143902A1/zh
Priority to US18/344,053 priority patent/US20230345058A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a data packet transmission method and related equipment.
  • the transmission of media data in media services requires a relatively high network delay.
  • the network condition When the network condition is not good, it may cause packet loss and retransmission of media data, which will cause the user end Stuttering issues when watching live streams.
  • the network condition deteriorates, the user may be willing to lower the requirements for image quality rather than wait for the buffer caused by the freeze.
  • Many existing media data transmission protocols have order-preserving (also known as sequencing reliability) for the transmission of data packets, such as RTSP (real time streaming protocol, real-time streaming protocol)/RTMP (real time messaging protocol, real-time message transmission) protocol), and HTTP (hypertext transfer protocol, hypertext transfer protocol) and so on.
  • TCP Transmission Control Protocol
  • TCP sequence number and confirmation sequence number of the data packet are used to ensure the reliability of the sorting of media data.
  • this sort reliability will also affect the continuity and real-time performance of media data playback, thereby affecting the user's experience of media services.
  • the present application provides a data packet transmission method and related equipment, through which the continuity and real-time performance of terminal equipment services can be improved.
  • a first aspect of the present application provides a data packet transmission method, in which a first network element may receive a first data packet of a first service from an application server, and the first network element determines first sequence information of a second data packet , and then the first network element determines the third data packet, and sends the third data packet to the terminal device.
  • the second data packet is a data packet to be discarded by the first service
  • the first sequence information is used to indicate the sequence of the second data packet
  • the third data packet includes the first sequence information.
  • the first network element may re-determine the third data packet carrying the first sequence information for the second data packet to be discarded by the first service. Since the third data packet carries the first sequence information, therefore, After the terminal device receives the third data packet, in the case that the data packet before the second data packet has been decoded, the terminal device can decode the third data packet, and then can decode the third data packet in the sequence. The subsequent data packets are decoded, which avoids the problem that the data packets after the second data packet cannot be decoded and processed due to the waiting for the second data packet, and the first service is stuck, thereby improving the first service. continuity and real-time.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the first sequence information is included in the first information, and the first information further includes a source IP address, a source port number, a destination IP address, and a destination port number.
  • the first network element may receive the second data packet; the first network element discards the second data packet.
  • the first network element may specifically receive the first sequence information from the second network element; the second network element is a terminal device or an application server.
  • the first sequence information further includes first indication information, where the first indication information is used to indicate that the second data packet is a data packet to be discarded.
  • the second data packet includes a first target data packet; if the first network element does not receive the first target data packet within the first receiving time limit, or If the first network element does not receive the acknowledgment information corresponding to the first target data packet from the terminal device within the second receiving time limit, the first network element obtains the first sequence information of the first target data packet .
  • the second data packet includes a first target data packet;
  • the first target data packet includes: a data packet of the first service that is not received by the terminal device within the third receiving time limit , and/or, when the data buffered for the first service is lower than the first threshold, the terminal device may perform one or more data packets in the highest order among the data packets that have not been decoded for the first service.
  • the second data packet further includes a second target data packet determined according to the second sequence information of the first target data packet and the second indication information of the first target data packet,
  • the second sequence information is used to indicate the sequence of the first target data packets
  • the second indication information is used to indicate the encoding type corresponding to the first target data packets in the first service.
  • the first sequence information further includes third indication information, where the third indication information is used to indicate the length of the second data packet.
  • the third data packet further includes the first checksum; the first network element may also determine the first checksum.
  • the first network element may also delete the first sequence information from the first record list after the first time period since the element sends the third data packet to the terminal device.
  • the first confirmation information is used to indicate that the terminal device has received the data packets carrying the first sequence information; the first record list includes sequence information of the data packets discarded by the first network element for the first service.
  • the first network element may further receive the second data packet, and send the second data packet to the terminal device, and store the first sequence information of the second data packet in a second record list, where the second record list includes sequence information of the data packets of the first service received by the first network element.
  • the first network element may delete the first sequence information from the second record list in the case of receiving the confirmation information corresponding to the second data packet within the second time period from receiving the second data packet;
  • the element determines the first sequence information of the second data packet in the case that the acknowledgment information corresponding to the second data packet is not received within the second time period after receiving the second data packet.
  • the first network element may also receive the second data packet; The packet is verified; if the verification fails, the first network element discards the second data packet.
  • a second aspect of the embodiments of the present application provides another data packet transmission method.
  • the second network element determines first sequence information of the second data packet, and the second network element sends the second data packet to the first network element.
  • the first order information The second data packet is a data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packets; the first sequence information is used to trigger the first network element to receive the first service from the application server.
  • the third data packet including the first sequence information is determined and the third data packet is sent to the terminal device.
  • the second network element may determine the first sequence information of the second data packet to be discarded, and send it to the first network element, and then the first network element may, for the second data packet to be discarded for the first service, Re-determine the third data packet carrying its first sequence information. Since the third data packet carries the first sequence information, after the terminal device receives the third data packet, the data in the sequence before the second data packet When the packet has been decoded, the terminal device can perform decoding processing on the third data packet, and then can perform decoding processing on the data packets after the third data packet in order to avoid the sequence caused by waiting for the second data packet. The data packets after the second data packet cannot be decoded and processed, which brings about the problem that the first service is stuck, which improves the continuity and real-time performance of the first service.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the first sequence information is included in the first information, and the first information further includes a source IP address, a source port number, a destination IP address, and a destination port number.
  • the second network element may also send first indication information to the first network element, where the first indication information is used to indicate that the second data packet is to be discarded the data package.
  • the second data packet includes the first target data packet; the second network element may specifically receive the first target data packet within the third receiving time limit. In this case, obtain the first sequence information of the first target data packet; or, the second network element may obtain the data packet of the first service that has not been decoded when the data amount of the first service in the cache is lower than the first threshold The first sequence information of the one or more first target data packets in the highest sequence.
  • the second data packet further includes a second target data packet determined according to the second sequence information and the second indication information of the first target data packet, and the second sequence information uses In order to indicate the sequence of the first target data packet, the second indication information is used to indicate the encoding type corresponding to the first target data packet in the first service.
  • the first sequence information further includes third indication information, where the third indication information is used to indicate the length of the second data packet.
  • a third aspect of the present application provides another data packet transmission method.
  • the terminal device determines the first sequence information of the second data packet according to the packet loss policy, and the terminal device sends the first sequence information to the application server according to the first sequence information. Confirm the information.
  • the second data packet is a data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packet; the first confirmation information is used to indicate that the terminal device has received the data packet carrying the first sequence information. .
  • the terminal device can determine the first sequence information of the second data packet discarded for the first service according to the packet loss policy, and send the first confirmation information to the application server according to the first sequence information, and then the terminal device will sort the second data packet in the second data packet.
  • the subsequent data packets are decoded to reduce the stalling of the first service and ensure the continuity and real-time performance of the first service.
  • the terminal device may also receive a second data packet carrying the first sequence information, and the terminal device discards the second data packet .
  • the terminal device when the terminal device receives the second data packet carrying the first sequence information, the terminal device deletes the first sequence information from the third record list;
  • the three-record list includes sequence information of the data packets to be discarded by the terminal device for the first service.
  • the terminal device deletes the first sequence information from the third record list after a third time period from determining the first sequence information; wherein, the third record The list includes sequence information of the data packets to be discarded by the terminal device for the first service.
  • the terminal device may also send the first sequence information to the third network element, the first sequence information is used to trigger the third network element to discard the second data packet when receiving the second data packet.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the terminal device may specifically acquire the first sequence information of the first target data packet without receiving the first target data packet within the third receiving time limit.
  • the terminal device may specifically acquire the data of one or more first target data packets in the highest order among the data packets of the first service that have not been decoded when the data amount of the buffered first service is lower than the first threshold. first order information.
  • the second data packet further includes a second target data packet
  • the terminal device may also determine the second target data packet according to the second sequence information and the second indication information of the first target data packet.
  • the target data packet, the second sequence information is used to indicate the sequence of the first target data packet, and the second indication information is used to indicate the encoding type corresponding to the first target data packet in the first service.
  • the terminal device may also send fourth indication information to the application server, where the fourth indication information is used to indicate that the first confirmation information is that the terminal device has not received the second data packet sent under the circumstances.
  • a fourth aspect of the embodiments of the present application provides a data packet transmission method.
  • a third network element may receive first sequence information from a terminal device, and the third network element may receive a third network element carrying the first sequence information from an application server.
  • data packet the third network element discards the second data packet.
  • the first sequence information is used to indicate the sequence of the second data packets, and the second data packets are the data packets to be discarded by the first service.
  • the third network element may, according to the first sequence information sent by the terminal device, discard the second data packet when receiving the second data packet carrying the first sequence information, because the terminal device has no longer When the second data packet is needed, the first network element discards the second data packet, so as to avoid the waste of transmission resources caused by the transmission of the second data packet.
  • the third network element may also receive the fourth data packet, and mark the third sequence information of the fourth data packet in the GTP layer protocol header of the fourth data packet, The third network element sends the marked fourth data packet to the access network device.
  • the third sequence information of the fourth data packet includes information indicating the sequence of the fourth data packet.
  • the third network element may specifically obtain the sequence information marked in the GTP layer protocol header of the second data packet, and the sequence information marked in the GTP layer protocol header is the same as the first one. If the sequence information matches, discard the second packet.
  • the third network element receives the first sequence information from the terminal device, in the case of receiving the second data packet carrying the first sequence information, the third network element The sequence information is deleted from the fourth record list; wherein, the fourth record list includes sequence information of the data packets to be discarded by the terminal device for the first service.
  • the third network element after the third network element receives the first sequence information from the terminal device, after a fourth time period from receiving the first sequence information, the third network element sends the first sequence information Deleted from the fourth record list; wherein, the fourth record list includes sequence information of the data packets to be discarded by the terminal device for the first service.
  • a fifth aspect of the embodiments of the present application provides a communication device, where the device includes a first transceiver module and a first processing module. a first transceiver module, configured to receive the first data packet of the first service from the application server;
  • the first processing module is configured to determine the first sequence information of the second data packet, the second data packet is a data packet discarded for the first service, and the first sequence information is used to indicate the sequence of the second data packet.
  • the first processing module is further configured to determine a third data packet, where the third data packet includes the first sequence information.
  • the first transceiver module is further configured to send a third data packet to the terminal device.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the first sequence information is included in the first information, and the first information further includes a source IP address, a source port number, a destination IP address, and a destination port number.
  • the first transceiver module is further configured to receive the second data packet after the third data packet is sent to the terminal device;
  • the first processing module is further configured to discard the second data packet.
  • the first transceiver module is further configured to receive the first sequence information from the second network element, and the second network element is a terminal device or an application server;
  • the first processing module is specifically configured to obtain the first sequence information from the first transceiver module.
  • the first transceiver module is further configured to receive first indication information from the second network element, where the first indication information is used to indicate that the second data packet is a data packet to be discarded .
  • the second data packet includes the first target data packet; the first processing module is specifically configured to:
  • the first transceiver module does not receive the first target data packet within the first reception time limit, or receives the confirmation information corresponding to the first target data packet from the terminal device within the second reception time limit, Obtain the first sequence information of the first target data packet.
  • the second data packet includes a first target data packet;
  • the first target data packet includes: data of the first service that is not received by the terminal device within the third receiving time limit packet, and/or, when the data buffered for the first service by the terminal device is lower than the first threshold, one or more data packets in the highest order among the data packets that have not been decoded for the first service.
  • the second data packet further includes the second target determined according to the second sequence information of the first target data packet and the second indication information of the first target data packet data packet, the second sequence information is used to indicate the sequence of the first target data packet, and the second indication information is used to indicate the encoding type corresponding to the first target data packet in the first service.
  • the first information further includes third indication information, where the third indication information is used to indicate the length of the data in the second data packet.
  • the third data packet further includes a first checksum; the first processing module is further configured to determine the first checksum according to the first information.
  • the first processing module is further configured to:
  • the first sequence information is recorded from the first record
  • the first confirmation information is used to indicate that the terminal device has received the data packets carrying the first sequence information; wherein, the first record list includes the sequence information of the data packets discarded by the terminal device for the first service.
  • the first transceiver module before the first processing module determines the first sequence information of the second data packet, is further configured to receive the second data packet, and further configured to The second data packet is sent to the terminal device;
  • the first processing module is further configured to store the first information of the second data packet in a second record list, where the second record list includes the information of the data packet of the first service received by the first transceiver module;
  • the first processing module in the case where the confirmation information corresponding to the second data packet is received within the second period of time since the first transceiver module receives the second data packet, is also used to remove the first sequence information from the second record list. delete;
  • the first processing module is configured to determine the first sequence information of the second data packet in the case of receiving the acknowledgment information corresponding to the second data packet within the second time period after the first transceiver module receives the second data packet.
  • the first transceiver module is further configured to receive the second data packet before the first processing module determines the first sequence information of the second data packet;
  • the first processing module is further configured to verify the second data packet, and discard the second data packet if the verification fails.
  • a sixth aspect of the embodiments of the present application provides another communication device, the device includes at least a second processing module and a second transceiver module.
  • the second processing module is configured to determine the first sequence information of the second data packet, the second data packet is the data packet to be discarded by the first service, and the first sequence information used to indicate the sequence of the second data packet;
  • the second transceiver module is configured to send first sequence information of the second data packet to the first network element, where the first sequence information is used to trigger the first network element to determine, during the process of receiving the data packet of the first service from the application server, the A third data packet including the first sequence information is sent to the terminal device.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the first sequence information is included in the first information, and the first information further includes a source IP address, a source port number, a destination IP address, and a destination port number.
  • the second transceiver module is further configured to send first indication information to the first network element, where the first indication information is used to indicate that the second data packet is a discarded data packet.
  • the second data packet includes the first target data packet; the second processing module is specifically configured to:
  • the second transceiver module does not receive the first target data packet within the third receiving time limit, obtain first sequence information of the first target data packet;
  • the communication device in the case that the data amount of the first service buffered by the communication device is lower than the first threshold, obtain the first data of one or more first target data packets in the highest order among the data packets of the first service that have not been decoded. sequence information.
  • the second data packet further includes a second target data packet determined according to the second sequence information and the second indication information of the first target data packet, the second sequence The information is used to indicate the sequence of the first target data packets, and the second indication information is used to indicate the encoding type corresponding to the first target data packets in the first service.
  • the first information further includes third indication information, and the third indication information is used to indicate the length of the second data packet.
  • a seventh aspect of an embodiment of the present application provides a terminal device, where the device includes a third processing module and a third transceiver module.
  • a third processing module configured to determine the first sequence information of the second data packet according to the packet loss policy, the second data packet is the data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packet;
  • the third transceiver module is configured to send the first acknowledgment information to the application server according to the first sequence information, wherein the first acknowledgment information is used to indicate that the terminal device has received the data packet carrying the first sequence information.
  • the third transceiver module after the third processing module determines the first sequence information of the second data packet according to the packet loss policy, is further configured to receive and carry the first sequence information the second data packet;
  • the third processing module is further configured to discard the second data packet.
  • the third processing module is further configured to, when the third transceiver module receives the second data packet carrying the first sequence information, or when the third processing module receives the first sequence information from the third processing module. After the module determines the third duration from the first sequence information, the first sequence information is deleted from the third record list;
  • the third record list includes information about data packets discarded by the terminal device for the first service.
  • the third transceiver module after the third processing module determines the first sequence information of the second data packet according to the packet loss policy, is further configured to send a message to the third network element. Send first sequence information, where the first sequence information is used to trigger the third network element to discard the second data packet when receiving the second data packet.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the second data packet includes the first target data packet
  • the third processing module is specifically configured to:
  • the third transceiver module does not receive the first target data packet within the third receiving time limit, obtain the first sequence information of the first target data packet;
  • the terminal device when the data amount of the first service buffered by the terminal device is lower than the first threshold, obtain the first data of one or more first target data packets in the highest order among the data packets that have not been decoded by the first service. sequence information.
  • the second data packet further includes a second target data packet
  • the third processing module is further configured to:
  • the second target data packet is determined according to the second sequence information and the second indication information of the first target data packet, the second sequence information is used to indicate the sequence of the first target data packet, and the second indication information is used to indicate the first target data packet The encoding type corresponding to the first service.
  • the third transceiver module is further configured to send fourth indication information to the application server, and the fourth indication information is used to indicate that the first confirmation information is that the terminal device has not received the first confirmation message. Sent in the case of two packets.
  • An eighth aspect of the embodiments of the present application provides another communication device, where the device includes a fourth transceiver module and a fourth processing module. in:
  • a fourth transceiver module configured to receive first sequence information from the terminal device, where the first sequence information is used to indicate the sequence of the second data packet; the second data packet is the data packet to be discarded by the first service;
  • a fourth transceiver module further configured to receive a second data packet carrying the first sequence information from the application server
  • the fourth processing module is used for discarding the second data packet.
  • the fourth transceiver module is further configured to receive a fourth data packet
  • the fourth processing module is further configured to mark the third sequence information of the fourth data packet in the GTP layer protocol header of the fourth data packet, and the third sequence information of the fourth data packet includes information indicating the sequence of the fourth data packet ;
  • the fourth transceiver module is further configured to send the marked fourth data packet to the access network device.
  • the fourth processing module is specifically used for:
  • the fourth processing module is further configured to:
  • the fourth transceiver module receives the second data packet carrying the first sequence information, or after a fourth period of time after the fourth transceiver module receives the first sequence information, the first sequence information is sent from the Four records are deleted from the list;
  • the fourth record list includes sequence information of data packets discarded by the terminal device for the first service.
  • a ninth aspect of the present application provides another communication device, the communication device may include a processor, a memory, and a communication interface, wherein the processor, the memory, and the communication interface are connected to each other, wherein the communication interface is used for receiving and sending data, and the memory
  • the processor is used to call the program stored in the memory, and the program is executed by the computer.
  • the above-mentioned processor and memory may be physically independent units, or, the memory may also be integrated with the processor.
  • a tenth aspect of the embodiments of the present application provides another terminal device.
  • the terminal device may include a processor, a memory, and a communication interface.
  • the processor, the memory, and the communication interface are connected to each other, wherein the communication interface is used for receiving and sending data.
  • the memory is used to store the above program
  • the processor is used to call the program stored in the memory
  • the computer executes the data packet transmission method in the third aspect and any possible implementation manner thereof.
  • the above-mentioned processor and memory may be physically independent units, or, the memory may also be integrated with the processor.
  • An eleventh aspect of the present application provides a computer-readable medium, where an instruction is stored in the computer-readable medium, and when the instruction is executed on a computer, the computer is made to execute the above-mentioned first aspect and any one of its possible implementation manners.
  • the data packet transmission method, or the data packet transmission method in the above-mentioned second aspect and any one of its possible implementations, or the data packet transmission method in the above-mentioned third aspect and any one of its possible implementations, or The data packet transmission method in the fourth aspect and any possible implementation manner thereof is performed.
  • a twelfth aspect of the present application provides a computer program product, the computer program product includes: computer program code, when the computer program code is run on a computer, the computer program code enables the computer to execute the above-mentioned first aspect and any of its possible implementation manners method, or perform the data packet transmission method in the above-mentioned second aspect and any possible implementation manner thereof, or perform the data packet transmission method in the above-mentioned third aspect and any possible implementation manner thereof, or perform the above-mentioned A data packet transmission method in the fourth aspect and any possible implementation manner thereof.
  • a thirteenth aspect of the present application provides a chip, where the chip includes a processor and a communication interface, the processor is coupled to the communication interface, and is configured to implement the above-mentioned first aspect or any of the optional implementation manners.
  • the data packet transmission method or realize the data packet transmission method in the above-mentioned second aspect and any one of its possible implementations, or implement the data packet transmission method in the above-mentioned third aspect and any one of its possible implementations, Or perform the data packet transmission method in the fourth aspect and any possible implementation manner thereof.
  • FIG. 1 is a schematic diagram of a 5G system architecture provided by an embodiment of the present application.
  • FIG. 2 is a schematic diagram of processing a media data packet based on a TCP protocol provided by an embodiment of the present application
  • 3a is a schematic diagram of the architecture of a data packet transmission system provided by an embodiment of the present application.
  • 3b is a schematic diagram of the architecture of another data packet transmission system provided by an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a data packet transmission method provided by an embodiment of the present application.
  • 5a is a schematic diagram of a TCP layer protocol header format provided by an embodiment of the application.
  • Fig. 5b is a kind of IPv4 message header information format intention provided by the embodiment of this application.
  • FIG. 6 is a schematic diagram of a method for determining first sequence information provided by an embodiment of the present application.
  • FIG. 7 An embodiment of the present application further provides another data packet transmission method
  • FIG. 8 is a schematic flowchart of another data packet transmission method provided by an embodiment of the present application.
  • FIG. 9 is a schematic flowchart of another data packet transmission method provided by an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of a communication device provided by an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • FIG. 14 is a schematic structural diagram of a terminal device provided by an embodiment of the application.
  • FIG. 15 is a schematic structural diagram of another terminal device provided by an embodiment of the present application.
  • FIG. 16 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • FIG. 17 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • FIG. 18 is a schematic structural diagram of a communication chip provided by an embodiment of the present application.
  • FIG. 1 is a schematic diagram of a 5G system architecture provided by an embodiment of the present application.
  • the 5G system includes an access network and a core network, and the access network and the core network include different network elements.
  • the network elements in the access network include (R)AN ((Radio) Access Network, (radio) access network) equipment, and UE (User Equipment, terminal equipment) can be connected to the core network through the (R)AN equipment.
  • the network elements in the core network include multiple NF (Network Function, network functions), such as AMF (Access and Mobility Management Function, access and mobility management function) network elements, SMF (Session Management Function, session management function) network elements , PCF (Policy Control Function) network element, UPF (User plane function, user plane function) network element, AUSF (Authentication Server Function, authentication server function) network element, NWDAF (Network Data Analytics Function, network data Analysis function) network element, NEF network element, etc.
  • the core network may be connected to a DN (Data Network, data network), and the DN may contain different AF (Application Function, application function) network elements to provide different application functions for the core network.
  • UE may include handheld devices, in-vehicle devices, wearable devices, computing devices or other processing devices connected to wireless modems with media playback and wireless communication functions, as well as terminal devices of any form in future communication networks.
  • (R)AN device It is an access network device that is located between the UE and the core network and can provide network access functions for terminal devices.
  • AMF network element It can perform functions such as UE registration management, reachability detection, and SMF network element selection, and transmit SM (Session Management) messages between UE and SMF.
  • SM Session Management
  • PCF network element It can be used as a policy decision point to provide rules based on service data flow and application detection, gate control, QoS (Quality of Service, quality of service) and flow-based charging control.
  • QoS Quality of Service, quality of service
  • SMF network element can perform session management (such as session establishment, modification and deletion), UE IP address allocation and management, and selection of UPF nodes.
  • UPF network element can perform data packet routing and forwarding, anchor point for mobility inside and outside the system, uplink classifier to support routing traffic flow to data network, branch point to support multi-homing PDU (Protocol Data Unit) , Protocol Data Units) sessions, etc.
  • uplink classifier to support routing traffic flow to data network
  • branch point to support multi-homing PDU (Protocol Data Unit) , Protocol Data Units) sessions, etc.
  • NEF network element It can support the opening of core network capabilities and time, such as third-party edge computing, functions supported by AF network elements, etc.
  • UDR Unified Data Repository, Unified Data Warehouse
  • UDM Unified Data Management, unified data management
  • AF network element It can interact with network functions in the core network to provide services, such as affecting service flow routing, supporting access network capability opening, and supporting policy control.
  • AS (application server, application server) device a server that can provide certain application services, for example, an application server can include a media server, and the media server can provide services such as media data management and download.
  • the sequence preservation of data packets in TCP is taken as an example to introduce the impact on the continuity and real-time performance of media playback services.
  • the media server When the media data packet is sent from the media server, it carries the corresponding TCP sequence number. Within the sending time window, the media server can send a certain number of media data packets to the terminal device according to the sequence of the TCP sequence Serial numbers are sent in ascending order), after receiving the media data packets, the terminal device will follow the sequence of the TCP sequence numbers, and then submit the media data packets from the transmission control layer to the application layer in turn, and decode and display the media data packets.
  • the terminal device will send an acknowledgment sequence number to the media server for the received media data packets, so that the media
  • the server confirms that the terminal device has successfully received the sent media data packet, and then continues to send the unsent media data packet to the terminal device.
  • the order in which the media data packets arrive at the terminal device may not be completely consistent with the sequence of their TCP sequence numbers due to factors such as different transmission paths. For example, if the media server sends media data packets in ascending order of TCP sequence numbers, the terminal device may not receive media data packets in strict order of TCP sequence numbers from small to large. Because in the TCP protocol, the terminal device submits media data packets to the application layer in strict accordance with the sequence of the TCP sequence numbers. After the data packet arrives, the terminal device will also wait for the arrival of the media data packet in the middle.
  • the media server Since the media server cannot receive the acknowledgment sequence number of the terminal device for the media data packet in the middle within a certain period of time, it will send to the media data packet.
  • the terminal device resends the media data packet, and only after the terminal device receives the retransmitted media data packet and delivers it to the application layer, will subsequent data packets be delivered to the application layer in turn. In this case, due to the loss of a media data packet in the middle, even if the terminal device receives subsequent media data packets, it cannot continue to perform processing such as decoding and displaying, resulting in a stuck phenomenon in media playback.
  • FIG. 2 is a schematic diagram of processing a media data packet based on the TCP protocol provided by an embodiment of the present application, and the order preservation of the media data packet in the TCP protocol may be introduced in conjunction with the example in FIG. 2 .
  • the media server sequentially transmits 8 media data packets to the terminal device according to the size of the TCP sequence number (assuming that the length of the data in the data packets is all 10), which are data packet 1 (its TCP sequence number 11), packet 2 (its TCP sequence number is 21), packet 3 (its TCP sequence number is 31), packet 4 (its TCP sequence number is 41), packet 5 (its TCP sequence number is 41) 51), packet 6 (whose TCP sequence number is 61), packet 7 (whose TCP sequence number is 71), and packet 8 (whose TCP sequence number is 81).
  • Data packets 1 to 4 and data packets 6 to 8 are normally received by the terminal device, but due to network reasons, the data packet 5 cannot be received by the terminal device, then the terminal device can sequentially Data packet 2, data packet 3 and data packet 4 are sequentially submitted from the transmission control layer to the application layer for decoding and display processing, and since the data packet 5 is not received, the terminal device will wait for the arrival of the data packet 5, and the data packet Data packets 6 to 8 will not be submitted to the application layer for decoding and display processing. If data packet 5 does not arrive and decode after the media data corresponding to data packet 4 is displayed, then waiting for data packet 5 will cause Media playback freezes, which affects media playback continuity and real-time performance.
  • the data packet transmission method provided by the embodiment of the present application is applied to a scenario where an application server sends data packets in a certain order to a terminal device.
  • an application server sends data packets in a certain order to a terminal device.
  • the sequence of the data packets is briefly described.
  • the application server may, after dividing the data packets for a data stream of a certain service, encode, compress and pack the divided data streams to form data packets, and the order of the data packets can be determined. Corresponds to the order of the data in the data packets in the original data stream, or to the order in which the data packets are output from the encoder.
  • the data sampled every 0.33ms sampling time can be encoded into 20 data packets, then the order of the 20 data packets obtained by the first 0.33ms sampling is earlier than the latter 0.33ms sampling
  • the order of the obtained 20 data packets, and for a sample of 20 data packets obtained within 0.33ms, the order of each data packet can be the same as the order in which it is output from the encoder.
  • the order of the data packets sent by the application server can also be defined by other subjects in other ways.
  • the data packets stored in the application server and processed by other subjects have a certain order.
  • the application server can send data packets to the terminal device in sequence. That is, wait, and other methods will not be repeated here.
  • the application server may indicate the sequence of the data packets through certain information, for example, the sequence of the data packets may be identified by numbers, and the smaller the number, the higher the sequence of the data packets. Further, in order to prevent the order of magnitude of the numbers from taking up too many resources, the numbers indicating the order of the data packets can be limited to a certain range, and the order indicating numbers of the data packets increase within the range with the back of the data packets. After the largest number in the range is occupied by the data packet, it can be used in sequence from the smallest number in the range.
  • FIG. 3a A schematic diagram of the architecture of a data packet transmission system
  • the system architecture may be an optional system architecture for implementing the data packet transmission method of the embodiment of the present application.
  • the system may at least include a terminal device, an application server and a first network element.
  • the terminal equipment may also be referred to as access terminal, terminal, subscriber unit, subscriber station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, wireless network device, user agent or user equipment.
  • the terminal device can be a mobile phone, a tablet computer, a vehicle-mounted device, a wearable device, a terminal device in the Internet of Things, a vehicle network, etc., as well as a terminal device with specific media data transmission functions in any form in the future communication network.
  • the application server may be a server that transmits service data packets to the terminal device.
  • the first network element may be a network element in the core network that has a routing function for data packets sent by the application server.
  • the first network element may be a UPF network element or an access network device in the 5G core network.
  • the data packet transmission method of the present application can be implemented. For example, in an implementation manner, when the first network element receives the data packet of the first service, the first network element may determine First sequence information of the second data packet, wherein the second data packet is a data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packet; and the first network element determines to carry the first sequence the third data packet of the information, and send the determined third data packet to the terminal device.
  • the first network element can re-determine the third data packet carrying the first sequence information for the second data packet to be discarded by the first service. Since the third data packet carries the first sequence information, therefore , after the terminal device receives the third data packet, in the case that the data packet before the second data packet has been decoded, the terminal device can decode the third data packet, and then can decode the third data packet in the sequence.
  • the data packet after the packet is decoded, which avoids the problem that the data packets after the second data packet cannot be decoded and processed due to the waiting for the second data packet, and the first service is stuck, which improves the first service. Business continuity and real-time.
  • FIG. 3b is a schematic diagram of the architecture of another data packet transmission system provided by an embodiment of the present application
  • the system architecture may be another optional system architecture for implementing the data packet transmission method of the embodiment of the present application, as shown in FIG.
  • the system may at least include a terminal device and an application server, and optionally, may also include a third network element.
  • the terminal equipment may also be referred to as access terminal, terminal, subscriber unit, subscriber station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, wireless network device, user agent or user equipment.
  • the terminal device can be a mobile phone, a tablet computer, a vehicle-mounted device, a wearable device, a terminal device in the Internet of Things, a vehicle network, etc., as well as a terminal device with specific media data transmission functions in any form in the future communication network.
  • the application server may be a server that transmits service data packets to the terminal device.
  • the third network element may be a network element in the core network or access network that has the function of routing or sending data packets sent by the application server.
  • the third network element may include a UPF network element in the 5G core network, and may also include an access network element. Access network equipment in the network.
  • the data packet transmission method of the present application can be implemented. For example, in an implementation manner, the terminal device determines the first sequence information of the second data packet according to the packet loss policy, wherein the second data packet The packet is a data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packet; the terminal device sends the first confirmation information to the application server according to the first sequence information, wherein the first confirmation information is used to indicate The terminal device has received the data packet carrying the first sequence information.
  • the terminal device can determine the first sequence information of the second data packets discarded for the first service according to the packet loss policy, and send the first confirmation information to the application server according to the first sequence information, and then the terminal device will sort the data packets.
  • the data packets after the second data packet are decoded, so as to reduce the stalling of the first service and ensure the continuity and real-time performance of the first service.
  • the data packet transmission method may be applied when the media server sends a data packet to a terminal device through a core network element (such as a UPF network element).
  • a core network element such as a UPF network element.
  • the method can be implemented in one or several network elements/equipment of the core network network element, access network equipment, application server or terminal equipment, which will be described in the following The method is described in detail in the embodiment of the method.
  • the first service may include, but is not limited to, audio media services, video media services, image media services, online game services, text services, file services, etc., such as media data that can be applied to live video or on-demand video
  • audio media services video media services
  • image media services online game services
  • text services file services, etc.
  • media data such as media data that can be applied to live video or on-demand video
  • the first service may be a service in which the user has relatively high requirements on data delay and has a certain fault tolerance for data quality itself. The continuity and real-time performance of the first service can be improved by the data packet transmission method in the embodiment of the present application.
  • the first service may be one of multiple services of the terminal device, or may include multiple services of the terminal device, that is, multiple services of the terminal device.
  • the data packet transmission method of the embodiment of the present application may be executed for the data packet of one of the first services, or the data packet transmission method of the embodiment of the present application may be executed simultaneously with multiple services of the terminal device as the first service.
  • the terminal device is performing an online audio playback service and an online game service at the same time
  • the first service may be an online audio playback service
  • the data packet transmission method of the embodiment of the present application can ensure the real-time performance of the online music playback service of the terminal device.
  • the first service may be an online game service
  • the data packet transmission method provided in the embodiment of the present application can ensure the real-time and continuity of the online game service of the terminal device; or the first service may include online video
  • the data packet transmission method provided by the embodiments of the present application can ensure the real-time and continuity of the terminal equipment online audio playback service and online game service.
  • each network element in this embodiment of the present application may be an entity network device or a virtual network device.
  • the connection relationship between the devices involved in the embodiments of the present application may be directly connected or indirectly connected, and may be wired or wireless connections, and the media data packets involved in the embodiments of the present application may be sent directly or through at least one device. Indirect sending is not specifically limited in this application.
  • FIG. 4 is a schematic flowchart of a data packet transmission method provided by an embodiment of the application.
  • the data packet transmission method corresponding to FIG. 4 may be implemented based on the data packet transmission system corresponding to FIG. 3a, and the method It involves the interaction between the first network element and the terminal device.
  • the first network element may be the first network element shown in FIG. 3a, may be a core network element, such as a UPF network element, or may be an access network device, and the terminal device may be the terminal device shown in FIG. 3a,
  • the data packet transmission method may include at least steps S400-S403.
  • the first network element receives the first data packet of the first service from the application server.
  • the data packet transmission method provided in this embodiment of the present application may be applied to a process in which a first network element receives a data packet of a first service from an application server, where the first data packet is the first data packet of the first service received by the first network element from the application server. any packet.
  • a first network element determines first sequence information of a second data packet.
  • the second data packet is a data packet that is dropped for the first service, wherein the dropped data packet may indicate that the data packet is no longer subjected to data packet processing related to the first service. For example, if the second data packet is the first service A data packet discarded by a network element may indicate that: the first network element does not receive the second data packet; after receiving the second data packet, the first network element immediately deletes it and does not continue routing; or the first network element After receiving the second data packet, the element does not add it to the data packet sending queue, deletes it after a certain time limit, and so on.
  • the second data packet is a data packet discarded by the terminal device, it may be that the terminal device does not receive the second data packet, or the terminal device immediately deletes the second data packet after receiving the second data packet, and also deletes the second data packet. It may be that after receiving the second data packet, the terminal device does not perform processing such as decoding it, and deletes it after a certain time limit, and so on.
  • the second data packet is a data packet discarded by the application server, it may be a data packet that the application server does not receive confirmation information from the terminal device and does not resend to the terminal device, and so on.
  • the first sequence information is used to indicate the sequence of the second data packets.
  • the second data packet is a TCP packet
  • the first sequence information may include a TCP sequence number.
  • the TCP sequence number of the second data packet can indicate The sequence of the second data packet; further, if the length of the data included in the data packet of the first service is uncertain, the first sequence information may further include the data length of the second data packet.
  • the first sequence information may include a QUIC (quick UDP internet connection, fast UDP internet connection) sequence number.
  • the first sequence information may be sequence information in an application layer header, such as a sequence number in an RTP (Real-time Transport Protocol, real-time transport protocol) application layer header.
  • the first sequence information may be included in the first information.
  • the first information may further include the source IP address, source port number, destination IP address and destination port number of the second data packet, and may further include a transport layer protocol;
  • the first information may include a third indication information, the third indication information may indicate the length of the entire data packet in the second data packet, etc., and other information that may be included in the first information will be described below. It should be understood that, in an implementation manner, if the data packet of the first service is a data packet with an indeterminate data length, the third indication information in the first information may also be understood as a part of the first sequence information.
  • the first information of the second data packet may be included in the protocol header information of the second data packet, and different protocol layers may have different protocol header information.
  • the first sequence information may be included in the TCP protocol header information, and the first sequence information may include the TCP sequence number.
  • the first sequence of The information may further include third indication information, where the third indication information is used to indicate the length of the second data packet.
  • FIG. 5a is a schematic diagram of a TCP layer protocol header format provided by an embodiment of the application, and FIG. 5a shows fields that may be included in the transmission control layer header information.
  • the first sequence information included in the first information may be a TCP sequence number corresponding to the data packet in the TCP layer protocol header information.
  • Fig. 5b is a format intention of IPv4 packet header information provided by the embodiment of the present application.
  • the third indication information included in the first information in Fig. 5b can be the information in the total length field in the IPv4 packet header information.
  • the first information may further include information such as source port and destination port in the protocol header information of the transmission control layer, and may also include information such as source IP address and destination IP address in the header information of the IPv4 packet.
  • the first sequence information determined by the first network element may include first sequence information of one second data packet, or may include respective first sequence information of multiple second data packets.
  • the first network element may determine the first sequence information by itself.
  • a certain packet loss policy may be transmitted to the first network element in advance, or a certain packet loss policy may be pre-configured in the first network element.
  • a certain packet loss policy and then the first network element can determine the first sequence information according to the packet loss policy.
  • the packet loss policy aims to ensure the real-time and continuity of the first service by moderately sacrificing a certain service quality. Packets are discarded, or packets are discarded for GOP (group of picture, a group of pictures) granularity packets, or packets are discarded for file granularity packets, etc.
  • the specific policies in the packet loss policy are not specified here. limited.
  • the first network element acquires the first sequence information of the second data packet when the first network element does not receive the second data packet within the first receiving time limit.
  • the data packet reception time limit can be preset in the first network element for the data packet of the first service, and the data packet that is not received within the corresponding data packet reception time limit is the second data packet, and the first network element can obtain the second data packet.
  • the first order information of the packet can be preset in the first network element for the data packet of the first service, and the data packet that is not received within the corresponding data packet reception time limit is the second data packet, and the first network element can obtain the second data packet.
  • the first order information of the packet can be preset in the first network element for the data packet of the first service, and the data packet that is not received within the corresponding data packet reception time limit is the second data packet, and the first network element can obtain the second data packet.
  • multiple data packets of the first service may have the same data packet receiving time limit. For example, for the data packet 1 received by the first network element, a certain number of adjacent data packets after the data packet 1 are all If not received by the first network element, the data packet reception time limit corresponding to the certain number of data packets may all be within the fifth time period after the first network element receives the data packet 1 .
  • Each data packet of the first service may also have a different data packet receiving time limit. For example, for the first receiving time limit corresponding to the second data packet, the first network element may receive the second data packet from the previous data packet.
  • the fifth time period is used as the first receiving time limit corresponding to the second data packet; or the first network element can be used as the first receiving time limit corresponding to the second data packet within the sixth time period from the time when the preceding data packet of the second data packet is sent.
  • the first reception time limit, etc. are not specifically limited.
  • the preceding data packet of the above-mentioned second data packet may be a data packet that precedes the second data packet and is adjacent to the second data packet, or may be a data packet that precedes the second data packet and is spaced from the second data packet. A certain number of data packets, etc., are not specifically limited.
  • the TCP sequence number is 101
  • the data length is 100
  • the preceding data packet of data packet 1 is data packet 2
  • the TCP sequence number of data packet 2 is 51
  • its length is 50.
  • the element starts timing when it receives the data packet 2, and if the data packet 1 has not been received when the timing duration reaches the fifth duration, the first network element obtains the first sequence information of the data packet 1.
  • the first network element acquires the first sequence information of the second data packet when the first network element does not receive the determination information corresponding to the second data packet from the terminal device within the second receiving time limit.
  • the acknowledgment information corresponding to the data packet sent by the terminal device is used to indicate that the terminal device has received the data packet.
  • the first sequence information of the data packet may include the TCP packet of the data packet.
  • Serial number after the terminal device receives the data packet, it can reply ACK (acknowledge character, confirmation character) according to the TCP serial number of the received data packet, and the ACK is the confirmation information corresponding to the data packet.
  • ACK acknowledge character, confirmation character
  • an ACK can be returned for each received data packet, or an ACK can be returned for consecutive data packets received for a period of time, and so on. It is not limited.
  • the receiving time limit can be set in advance for the confirmation information corresponding to the data packet of the first service in the first network element, and the data packet that does not receive the confirmation information within the receiving time limit of the confirmation information is the second data packet,
  • the first network element may acquire the first sequence information of the second data packet.
  • the confirmation information of each data packet of the first service may have different reception time limits.
  • the first network element may receive the second data from The second time period from the packet is used as the time limit for receiving the confirmation information corresponding to the second data packet; or the first network element can use the seventh time period from sending the second data packet to the terminal device as the confirmation corresponding to the second data packet.
  • the time limit for receiving the information; or the first network element can use the eighth time period from receiving the confirmation information corresponding to the previous data packet of the second data packet as the time limit for receiving the confirmation information corresponding to the second data packet, etc. , without specific restrictions.
  • the preceding data packet reference may be made to the introduction of the preceding data packet in the first optional manner, which will not be repeated here.
  • packet 3 its TCP sequence number is 101 and the packet length is 100.
  • the first network element starts timing when it receives packet 3, and when the timing reaches the second duration, packet 3 has not been received yet.
  • the first network element obtains the first sequence information of the data packet 3 .
  • the first network element may first determine the discarded second data packet, and then obtain the first sequence information of the second data packet, or directly obtain the first sequence information, or optionally, in the latter manner, the first network element may determine that the second data packet corresponding to the first sequence information is a discarded data packet while acquiring the first sequence information.
  • the first network element may record the identification information of the second data packet discarded for the first service, if the recorded identification information of the second data packet is information other than the first sequence information of the second data packet, Then, the first network element can determine which data packets are discarded second data packets through the recorded identification information, and then obtain the first sequence information of the second data packets. If the recorded identification information of the second data packet is the first sequence information of the second data packet, the first network element can directly obtain the first sequence information through the recorded first sequence information.
  • the information may indicate the sequence of the second data packet, that is, the second data packet may be uniquely identified, and the first network element may determine that the second data packet corresponding to the first sequence information is a data packet discarded for the first service.
  • the identification information of the second data packet recorded by the first network element is the first sequence information of the second data packet. It should be understood that the following description is only an example in this case. This is an exemplary implementation manner, and there may be other implementation manners, which will not be described again.
  • step S401 may be implemented by executing step S15.
  • the first network element may also execute some or all of the steps in steps S11-S14.
  • FIG. 6, is an implementation of the present application.
  • the first network element receives the second data packet.
  • the first network element sends the second data packet to the terminal device.
  • the first network element stores the first sequence information of the second data packet in a second record list, where the second record list includes sequence information of the data packets of the first service received by the first network element.
  • the first network element deletes the first sequence information from the second record list in the case of receiving the confirmation information corresponding to the second data packet within the second time period after receiving the second data packet.
  • the first network element achieves the acquisition of the first sequence information by maintaining the information in the second record list (including the recording and deletion of the information).
  • the first network element may receive the first sequence information from the second network element, and optionally, the second network element may be a terminal device, or an application server of the first service, etc. . Further optionally, a certain packet loss policy may be sent to the second network element in advance, or a certain packet loss policy may be preconfigured in the second network element, and then the second network element may determine the first sequence information according to the packet loss policy. , and send the first sequence information to the first network element. It should be understood that the packet loss policy aims to ensure the real-time and continuity of the first service by moderately sacrificing a certain service quality. Packet loss is performed for data packets, for GOP granularity data packets, or for file granularity data packets, etc. The specific policies in the packet loss policy are not specifically limited here.
  • the following describes the situation according to whether the second network element is a terminal device or an application server.
  • the terminal device may acquire the first sequence information of the second data packets that are not received within the third reception time limit, and send the information to the terminal device.
  • the first network element when the data amount of the buffered first service is lower than the first threshold, the terminal device obtains one or more data packets that are not decoded for the first service in the highest order.
  • the first sequence information of the second data packet is sent to the first network element.
  • the terminal device if the terminal device does not receive the second data packet within the ninth time period after receiving the preceding data packet of the second data packet, the terminal device obtains the second data packet.
  • the first sequence information of the packet is sent, and the first sequence information is sent to the second network element.
  • the terminal device may acquire the first sequence information of the second data packet according to the amount of data buffered for the first service.
  • the amount of data buffered by the terminal device for the first service may be the amount of data that has not been displayed, played or presented, obtained after the terminal device decodes the received data packet of the first service and other processing.
  • the first service is a media playback service for the media client 1
  • the amount of data buffered by the terminal device for the first service is the media data that has been decoded by the media client 1 but has not yet been played.
  • the comparison between the amount of data buffered by the terminal device for the first service and the first threshold may be based on a data amount unit (such as a bit, Kbit, Mbit, etc.) to compare the amount of data, or based on the playback time. , display page, display frame number and other business units to compare the amount of data, etc., and the specific comparison method is not limited here.
  • a data amount unit such as a bit, Kbit, Mbit, etc.
  • the data packets of the first service can be divided into data packets that have been decoded by the terminal device (taking the media playback service as an example, including data packets that have been decoded but not yet played and/or data packets that have been decoded and played), and Data packets that have not been decoded by the terminal device (taking the media playback service as an example, including data packets that have been received but not yet decoded and/or data packets that have not been received).
  • the amount of data of the first service buffered by the terminal device is lower than the first threshold, it may be because one or more data packets in the highest order among the data packets that have not been decoded by the first service have not been received.
  • the terminal device Due to other reasons, it cannot be decoded successfully by the terminal device, so that the subsequent data packets of the first service cannot be decoded smoothly, which in turn results in a small amount of data buffered by the first service, which may cause a freeze. Therefore, among the data packets of the first service that have not been decoded by the terminal device, one or more data packets in the highest order can be used as discarded data packets, and the terminal device can obtain the data packets of the first service that have not been decoded by the terminal device.
  • the first sequence information of one or more data packets in the highest sequence is sent to the first network element.
  • the terminal device can obtain the first sequence of the most advanced data packet in the undecoded data packets of the first service. information, and send it to the first network element, and then determine whether the data volume of the first service is lower than the first threshold.
  • the first sequence information of a data packet is sent to the first network element, and the above cycle may be performed until the terminal device completes the reception of the data packet of the first service.
  • the terminal device may obtain the first sequence information of the most advanced data packets in the undecoded data packets of the first service, and send the first network element, and the plurality of data packets may be preset
  • the number of data packets can also be multiple data packets determined by other methods, such as multiple data packets determined according to the codec relationship of the data packets, etc., which will be described in detail later; Specific restrictions.
  • the terminal device After the terminal device determines the first sequence information, it can send the first sequence information based on the same message carrier based on the confirmation information for the data packet (possibly the confirmation information for the subsequent data packets) sent most recently.
  • the information is carried in the ACK message sent last time, and is sent to the first network element.
  • the first network element After extracting the first sequence information in the ACK message, the first network element continues to send the ACK message to the application server.
  • the first sequence information may also be sent to the first network element based on other uplink signaling of the terminal device, which is not specifically limited here.
  • the application server may send the first sequence information of the second data packet to the first network element .
  • the fourth receiving time limit may be within the tenth time period after the application server sends the second data packet to the terminal device, as the fourth receiving time limit.
  • the application server may send the first sequence information based on the most recently sent data packet of the first service.
  • the first network element may send the first sequence information of the data packet.
  • the data packet is forwarded to the terminal device.
  • the first sequence information may also be sent to the first network element based on other downlink signaling of the application server, which is not specifically limited here.
  • the first sequence information determined by the second network element may only include first sequence information of one second data packet, or may include respective first sequence information of multiple second data packets. In the case where the first sequence information determined by the second network element includes respective firsts of multiple second data packets, the first sequence information determined by the second network element is the same as the first sequence information sent by the second network element to the first network element.
  • Each of the sequence information may indicate the sequence of the second data packets, but the form of the first sequence information may be the same or different.
  • the first sequence information determined by the second network element includes the respective first sequence information of two second data packets (respectively, data packet 1 and data packet 2), specifically the TCP sequence number 51 of data packet 1, the The length is 100, the TCP sequence number of the data packet 2 is 151, and the length of the data is 50.
  • the first sequence information sent by the second network element to the first network element may include the TCP sequence number 51, the length of the data 100, and the It includes the sequence number 151 and the data length of 50.
  • the first sequence information sent by the second network element to the first network element may include the TCP sequence number 51 and the data length of 150.
  • the second network element After the second network element determines the first order of the first order information of the second data packet, it sends the first order information to the first network element. Further optional, the second network element may also send the first network element to the first network element. Send first indication information, where the first indication information is used for the second data packet to be a data packet to be discarded.
  • the second data packet may include the first target data packet, the above-described determination method of the first sequence information (including any of the above-described modes for the first network element to determine the first sequence information by itself, and/or , the first sequence information determined by any of the above-mentioned manners for determining the first sequence information by the second network element) can be understood as the first sequence information of the first target data packet.
  • the second data packet may also include The second target data packet is determined according to the second sequence information of the first target data packet and the second indication information of the first target data packet. The second sequence information is used to indicate the sequence of the first target data packet, and the second indication information is used for is used to indicate the encoding type corresponding to the first target data packet in the first service.
  • the first target data packet is a part of the second data packet
  • the second sequence information of the first target data packet may indicate the sequence of the first target data packet
  • the second sequence information may be this part of the second data packet
  • the first sequence information of the packets may also be other forms of information that can indicate the sequence of this part of the second data packets. For example, it can be other variants of the first sequence information of the second data packet.
  • the first sequence information can be the TCP sequence number
  • the second sequence information can be the mapping of the TCP sequence number of the first sequence information to The sequence number of the GTP (GTP-U) layer
  • the second sequence information may include the SN (Serial Number) sequence number
  • the second sequence information may also include sequence information obtained by applying other mapping methods to the first sequence information, such as Other mapping methods defined in the GTP layer extension are not exhaustive here.
  • the encoding type corresponding to the first target data packet in the first service may indicate the encoding/decoding relationship between the first target data packet and other data packets of the first service.
  • the video frame may include three media frame types: I frame, P frame and B frame.
  • the I frame represents the key frame, including the complete data of one frame of picture, and only needs to decode the data of this frame to complete the decoding
  • P frame represents the difference frame, including the difference data between the current frame and the previous I frame or P frame, and decoding
  • the bidirectional difference frame represented by the B frame including the difference data between the current frame and the previous and previous frames, needs to use the previous and subsequent buffered pictures as the reference frame for decoding. Decode to generate the final picture.
  • the data packet of the first service may carry the media frame type, which may indicate that the data packet is an I frame, P frame or B frame data packet, and the media frame type carried by the first target data packet is the second indication information.
  • the second indication information may also indicate other encoding types, such as the encoding types of data packets of different video frames in the above example, and the second indication information may also indicate the encoding types of different data packets of the same frame of video frame, here
  • the encoding type is not specifically limited.
  • the first network element determines the first target data packet, it may further include steps S16 and S17, after step S17 The first network element acquires the first sequence information of all the determined second data packets (including the first target data packet and the second target data packet):
  • the first network element acquires second sequence information and second indication information of the first target data packet.
  • the first network element determines the second target data packet from the candidate data packets according to the second sequence information and the second indication information.
  • the candidate data packet may be one or more data packets other than the first target data packet in the undecoded data packets of the first service, and the candidate data packet may include the data packets received by the first network element but not yet sent to the terminal.
  • the data packets sent by the device may also include data packets that have not been received by the first network element.
  • the first network element may obtain seventh indication information and eighth indication information of the candidate data packets, where the seventh indication information is used to indicate the sequence of the candidate data packets, and the eighth indication information is used to indicate that the candidate data packets are in the first Corresponding coding type in a service.
  • the first network element sorts the first target data packet and the candidate data packet according to the second order information of the first target data packet and the seventh indication information of the candidate data packet, and then according to the second indication information of the first target data packet and the seventh indication information of the candidate data packet, determine the data packet that cannot be decoded normally due to the discarding of the first target data packet in the candidate data packet as the second target data packet; and then the first network element obtains the determined data packet.
  • the first sequence information of all the second data packets (including the first target data packets and the second target data packets determined from the candidate data packets).
  • the application server corresponding to the first service sends part of the data packets of the first service in the following order: data packet 3 (media frame type is P frame), data packet 4 ( Media frame type is I frame), data packet 1 (media frame type is P frame), data packet 2 (media frame type is P frame), data packet 5 (media frame type is I frame), data packet 6 (media frame type is I frame) type B frame).
  • data packet 3 media frame type is P frame
  • data packet 4 Media frame type is I frame
  • data packet 1 media frame type is P frame
  • data packet 2 media frame type is P frame
  • data packet 5 media frame type is I frame
  • data packet 6 media frame type is I frame
  • the first network element has received the data packets 1 and 2, but has not yet sent them to the terminal device, and the first network element has not received the data packets 3 and 4.
  • the first network element can The data packet 3 and the data packet 4 are determined as the first target data packet, according to the information indicating the sequence of the data packets from the data packet 1 to the data packet 6, the result of sorting the data packet 1 to the data packet 6 can be reflected through Table 1, Table 1 shows the data packets from front to back and the media frame type corresponding to each data packet from left to right:
  • the first network element Since data packet 3 and data packet 4 are discarded first target data packets, the first network element will not send these two data packets to the terminal device subsequently, and since the discarded data packet 4 is an I-frame data packet, the data Packet 1 and Packet 2 are P-frame data packets. The decoding of Packet 1 and Packet 2 by the terminal device needs to use Packet 4. Therefore, Packet 1 and Packet 2 will fail due to the discard of Packet 4. Therefore, the first network element can further determine the data packets 1 and 2 as the second target data packets, for example, the first network element can delete the received data packets 1 and 2 from the data packet sending queue.
  • the data packet 5 is the data packet of the I frame
  • the data packet 5 and the data packet 4 are data packets corresponding to different frames (it should be understood that although the data packet 4 and the data packet 5 are of the same frame type, they are both I frames, but they are different pictures. frame corresponding to the packet), so packet 5 is not affected by packet 4 being dropped, while packet 6 is a B-frame packet and is not affected by packet 3, packet 4, packet 1, or packet 2 being discarded. The impact of discarding, and it is not a data packet corresponding to the same frame as any of the data packets 3, 4, 1 or 2. Therefore, the first network element can 6 If the corresponding data packet receiving time limit has not been reached, continue to wait for data packet 5 and data packet 6.
  • the second sequence information and the second indication information of the first target data packet may be the first network element from the first target data packet. obtained from the target data packet, the seventh indication information and the eighth indication information of the candidate data packet may be obtained from the candidate data packet; if the first network element has not received the first target data packet or the candidate data packet , the second sequence information or the second indication information of the first target data packet, and the seventh indication information or the eighth indication information of the candidate data packet may be determined according to the relevant information of the data packet received by the first network element , for example, the relevant information may be the sampling time, etc.
  • the first service is a video playback service
  • the video played by the first service has a certain playback duration
  • each data packet is obtained by sampling data of different playback durations.
  • the data packets of the first service can be It carries the sampling time of the data packet (the time for sampling based on the playback duration), and the data packet of the first service is a TCP packet.
  • an I-frame type video frame may be packaged every certain sampling duration, and the data packets between adjacent I-frame type data packets are P-frame type or B-frame type.
  • the application server corresponding to the first service sends some data packets of the first service in the following order: data packet 7, data packet 8, data packet 9, data packet 1, and data packet 2.
  • the first network element receives data packet 7, data packet 8, data packet 1 and data packet 2 in sequence.
  • the sampling time, media frame type, TCP sequence number and data length corresponding to each data packet are shown in Table 2. Show:
  • packet label 7 8 1 2 sampling time 0.2s 0.4ms 0.8s 1s media frame type P frame P frame P frame B frame TCP sequence number 1 51 201 251 length of data 50 70 50 50
  • the first network element can determine, according to the TCP sequence numbers of the data packets 8 and 1 and the length of the data, that there are still data packets that have not arrived between the data packets 8 and 1. If the data packets that have not been received are If the corresponding data packet receiving time limit has been exceeded, it can be determined as the first target data packet. According to the sampling time of the data packet 8 and the data packet 1, the first network element can obtain that the data packet sorted between the data packet 8 and the data packet 1 includes a data packet (that is, the data packet 9) that starts sampling in 0.6s, and the The media frame type of the data packet is I frame. Packet 7, Packet 8, Packet 1, and Packet 2 can be used as candidate packets.
  • Packet 7 and Packet 8 are P frames and are not the same frame as Packet 9, the terminal device receives After reaching the data packet 7 and the data packet 8, it can be decoded normally, and the data packet 7 and the data packet 8 are not the first target data packet. Since the data packet (data packet 9) sampled at 0.6s has been determined to be the first target data packet to be discarded, data packet 1, data packet 2 and data packet 9 are data packets of different frames, but data packet 9 As an I-frame data packet, data packet 1 and data packet 2 will be affected by its discard and cannot be decoded normally by the terminal. Therefore, data packet 1 and data packet 2 are further determined to be affected by the discarded data packet and cannot be decoded. Two target packets.
  • the first network element further determines the second target data packet that is discarded by the first target data packet and cannot be decoded normally according to the first target data packet in the process of acquiring the first sequence information by the first network element.
  • the second network element may first determine the first target data packet, and then determine, according to the first target data packet, that the first target data packet is discarded and cannot be discarded. The second target data packet is decoded normally, and the determined first sequence information of all the second data packets is sent to the first network element.
  • the first network element determines according to the first target data packet The implementation manner of the second target data packet will not be repeated here.
  • the second data packet discarded for the first service in S401 is the data packet that is about to be discarded by (the first network element or the second network element), and may be the same as the data packet that has already performed the discarding action.
  • the same packet may or may not be the same packet.
  • the method may further include some or all of the steps in steps S404-S406:
  • the first network element receives the second data packet.
  • the first network element verifies the second data packet.
  • the first network element sends the second data packet to the terminal device; if the verification fails, the first network element executes S406.
  • the second data packet may include a second checksum, and when the first network element checks the second data packet, it may check the second checksum carried by the second data packet.
  • the first network element discards the second data packet.
  • the first sequence information is determined by the first network element according to whether the second data packet is received within the first receiving time limit, after the first network element discards the second data packet in S406, if the first network element is in the first If the second data packet retransmitted by the application server is received within the receiving time limit, the second data packet will be sent to the terminal device. In this case, the second data packet is not the data packet discarded for the first service; If a network element does not receive the second data packet retransmitted by the application server within the first receiving time limit, the second data packet is a data packet discarded for the first service.
  • the first network element determines the third data packet.
  • the third data packet includes the first sequence information.
  • the first sequence information may be included in header information of the third data packet.
  • the first sequence information may be included in the above-mentioned first information, and in addition to the first sequence information, the third data packet may include other information in the first information, such as source IP address, source port number, destination IP Some or all of the information such as address and destination port number, transport protocol, etc.
  • the third data packet may be a data packet reconstructed by the first network element for the second data packet, and the data volume in the third data packet is smaller than the data volume in the second data packet.
  • the third data packet may be an empty data packet, that is, a data packet with a length of zero payload data; for another example, the third data packet may be a data packet containing 1-bit data, and the 1-bit data may be the first network element
  • the randomly written data may also be pre-specified data, for example, the pre-specified data may be indication data indicating that the third data packet is a data packet reconstructed by the first network element; and so on.
  • the transmission pressure of the network to transmit the third data packet is smaller than that of the second data packet, so the success rate of transmitting the third data packet is much higher than that of transmitting the third data packet.
  • the success rate of the second data packet that is, the success rate of the terminal device receiving the data packet carrying the first sequence information is increased, and the probability that the service of the terminal device is stuck is reduced.
  • the third data packet may further include a first checksum, and the first checksum may be used to check the reliability of the third data packet.
  • the terminal device can The checksum is used to check the third data packet. Therefore, in the process of the first network element determining the third data packet, the first network element may also determine the first checksum.
  • the first checksum may be the first network element according to the TCP packet of the third data packet. Header, TCP data and other packet header information (such as source IP address, destination IP address, etc.) are determined.
  • the TCP header of the third data packet may include source port, destination port, TCP sequence number, reserved bytes, etc.; the TCP data of the third data packet is determined by the first network element, for example, it may be empty or a random number of Bit data, or specified data, etc.
  • the first sequence information determined by the first network element in step S401 may only include the first sequence information of one second data packet, or may include the first sequence information of multiple second data packets.
  • the first network element may determine a third data packet for the second data packet according to the first sequence information of the second data packet;
  • the first network element may determine the third data packet for the corresponding second data packet according to the first sequence information of each second data packet, and the other
  • the first network element may determine a third data packet for the plurality of second data packets according to the first sequence information of the plurality of second data packets.
  • first sequence information obtained by the first network element in step S401 and the first sequence information included in the third data packet determined by the first network element in step S402 can both indicate the second data packet order, but the form of the first order information may or may not be the same.
  • the following describes the manner in which the first network element determines the third data packet and the first sequence information by example:
  • the first sequence information determined by the first network element in S401 is the first sequence information for a second data packet
  • the first network element determines a third sequence information for the second data packet data packet
  • the form of the first sequence information determined by the first network element is the same as the form of the first sequence information included in the third data packet.
  • the first network element determines that the discarded second data packet has only one data packet 1, the data packet 1 is a TCP packet, and the first sequence information of the data packet 1 includes the TCP sequence number 51 and the data length 70
  • the first network element may determine a third data packet for data packet 1, and the third data packet may carry the TCP sequence number 51 and the data length 70.
  • the first order information determined by the first network element in S401 includes the respective first order information of the plurality of second data packets, and the first network element in S402 is based on the first order of each second data packet.
  • information, respectively determining a third data packet for each second data packet, and the form of the first sequence information determined by the first network element is the same as the form of the first sequence information included in the third data packet.
  • the first network element determines that the discarded second data packet includes data packet 2 and data packet 3, data packet 2 and data packet 3 are both TCP packets, and the first sequence information of data packet 2 includes the TCP sequence number 101 and data length 50, the first sequence information of data packet 3 includes TCP sequence number 151 and data length 100, then in S402, the first network element can determine a third data packet for data packet 2, the third The data packet may carry the TCP sequence number 101 and the data length of 50. The first network element may also determine a third data packet for the data packet 3, and the third data packet may carry the TCP sequence number 151 and the data length of 100.
  • the first order information determined by the first network element in S401 includes the first order information of each of the plurality of second data packets, and in S402, the first network element according to the first order of each second data packet information, a third data packet is determined for a plurality of second data packets, and the form of the first sequence information determined by the first network element is different from the form of the first sequence information included in the third data packet.
  • the first network element determines that the discarded second data packet includes data packet 4 and data packet 5, data packet 4 and data packet 5 are both TCP packets, and the first sequence information of data packet 4 includes the TCP sequence number 251 and data length 60, the first sequence information of data packet 5 includes TCP sequence number 311 and data length 70, then in S402, the first network element can determine a third data packet for data packet 4 and data packet 5 , the third data packet may carry the TCP sequence number 251 and the data length 130.
  • the first network element sends a third data packet to the terminal device.
  • the first network element sends the third data packet to the terminal device, the third data packet includes the first sequence information of the second data packet, and the terminal determines that the second data packet has been successfully received according to the checksum, so that the terminal device can be triggered Processing such as decoding is performed on the data packets in sequence after the second data packet.
  • the data packet of the first service is a TCP packet
  • the terminal device submits the data packets before the second data packet from the transmission control layer to the application layer for processing
  • the first network element The third data packet can be handed over from the transmission control layer to the application layer, and then the adjacent data packets in sequence after the second data packet can be handed over from the transmission control layer to the application layer in turn for decoding and other processing.
  • the problem of freezing caused by the discarding of the second data packet and the inability to perform decompression and other processing on the data packets in sequence after the second data packet.
  • the terminal device may send fourth indication information to the application server, where the fourth indication information is used to indicate that the third data packet that the terminal device receives that carries the first information is the first network A packet constructed for the second packet to be discarded.
  • the application server can avoid misjudging the network condition of the terminal device when performing traffic transmission control for the terminal device (mistakenly think that the terminal device has a good network and can successfully receive the second data packet, in fact, the second data packet has been discarded) , and increase the data packet transmission rate to the terminal device, which in turn brings more transmission pressure to the network of the terminal device, resulting in more packet loss.
  • the terminal device may send fourth indication information under the trigger of the third data packet, for example, the third data packet may carry fifth indication information, fifth indication information, and fifth indication information The terminal device may be instructed to send fourth indication information, and so on.
  • the first network element may also send sixth indication information to the terminal device, and the sixth indication information may indicate that the third data packet is a data packet constructed by the first network element and carries the first sequence information, and then The terminal device can prevent the terminal device from misjudging the network condition (misunderstanding that the network is good, can receive the second data packet smoothly, in fact, the second data packet has been discarded) when performing flow transmission control, and improve the data packet transmission rate, This in turn brings more transmission pressure to the network, resulting in more packet loss.
  • the sixth indication information may be carried in the third data packet, or may be carried in other data packets, which is not limited here.
  • the network layer of the terminal device can inform the TCP layer that the third data packet is a data packet constructed by the first network element, and then the TCP layer can perform flow control according to the information to avoid Misjudgment of network conditions brings more network congestion.
  • the method may further include steps S407 and S408:
  • the first network element receives the second data packet.
  • the first network element discards the second data packet.
  • the first network element After the first network element sends the third data packet carrying the first sequence information to the terminal device, if it receives the second data packet carrying the first sequence information, because the terminal device no longer needs the second data packet at this time, the first The network element may discard the second data packet to avoid waste of transmission resources caused by the transmission of the second data packet.
  • step S403 the method may further include step S409 or step S410:
  • the first network element deletes the first sequence information from the first record list after a first time period from sending the third data packet to the terminal device.
  • the first confirmation information is used to indicate that the terminal device has received the data packet carrying the first sequence information.
  • the first record list in S409 or S410 includes sequence information of the data packets to be discarded by the first network element for the first service. Further optionally, after determining the first sequence information, the first network element may store the first sequence information in the first record list, and then execute step S409 or S410 if the condition is satisfied.
  • the first network element can delete the information corresponding to the data packets received by the terminal device through step S409, and the first network element can further perform other processing on the information of the data packets that have not been deleted in the first record list, such as regularly targeting the undeleted data packets.
  • the information re-constructs the packet and sends it to the end device, etc.
  • the first network element deletes the first sequence information from the first record list after the first time period in step S410, which can prevent the false packet loss caused by the circulation of the first sequence information.
  • the data packets of the service may have the first sequence information cyclically used, and the first network element may subsequently receive data packets of the first service that carry the first sequence information but have different data.
  • the periodic deletion of the data packet can avoid the situation that the first network element mistakenly discards the data packet as the second data packet, and improves the data packet transmission reliability of the first service.
  • the first record list can be obtained by maintaining the second record list above (the second record list involved in steps such as S13 above) by the first network element, for example, the first network element
  • the sequence information of the data packet is added to the second record list.
  • the sequence information of the data packet is deleted from the second record list, and the sequence information of the data packets that are not deleted after the second duration constitutes each sequence information in the first record list (that is, the first network element for the first record list).
  • the sequence information of the data packets to be discarded by the service).
  • the first network element may re-determine the third data packet carrying the first sequence information for the second data packet discarded by the first service. Since the third data packet carries the first sequence information, therefore , after the terminal device receives the third data packet, in the case that the data packet before the second data packet has been decoded, the terminal device can decode the third data packet, and then can decode the third data packet in the sequence.
  • the data packet after the packet is decoded, which avoids the problem that the data packets after the second data packet cannot be decoded and processed due to the waiting for the second data packet, and the first service is stuck, which improves the first service. Business continuity and real-time.
  • the embodiment of the present application also provides another data packet transmission method.
  • the data packet transmission method corresponding to FIG. 7 can be implemented based on the data packet transmission system corresponding to FIG. 3b, and the method involves the terminal
  • the interaction between the device and the application server optionally, also involves the interaction between the terminal device and the application server and the third network element, where the terminal device can be the terminal device shown in Figure 3b, and the application server can be Figure 3b
  • the third network element may be the third network element shown in Figure 3b, which may be the (R)AN device and/or the core network element (such as the UPF network element) connected to the terminal device,
  • the data packet transmission method may at least include steps S601-S602 performed in sequence.
  • the terminal device determines first sequence information of the second data packet according to the packet loss policy.
  • the second data packet is the data packet to be discarded by the first service
  • the first sequence information is the sequence information of the second data packet
  • the first sequence information is used to indicate the sequence of the second data packet.
  • the first sequence information may be included in the first information, and the first information may further include other information.
  • the first information may further include other information.
  • the second data packet is a data packet to be discarded by the first service, and the discarded data packet may indicate that the data packet processing related to the first service is no longer performed on the data packet.
  • the discarding of the data packet reference may be made to the relevant introduction to the discarding of the data packet in the embodiment corresponding to FIG. 4 , which will not be repeated here.
  • the second data packet determined in S601 is the data packet that is about to be discarded by the terminal device, and may not be the same data packet as the data packet that has been discarded.
  • the method may further include some or all of the steps in steps S603-S607:
  • the terminal device receives the second data packet.
  • the terminal device verifies the second data packet.
  • the terminal device performs processing such as decoding on the second data packet; if the verification fails in S603, the terminal device executes S605.
  • the second data packet may contain a second checksum, and when the terminal device checks the second data packet, it may check the second checksum carried by the second data packet.
  • the terminal device discards the second data packet.
  • the terminal device After the terminal device discards the second data packet in S605, if the terminal device receives the second data packet retransmitted by the application server within the third receiving time limit, and the verification of the retransmitted second data packet is passed, this is the case.
  • the second data packet is not a data packet discarded for the first service; if the terminal device does not receive the second data packet retransmitted by the application server within the third receiving time limit, the second data packet is for the first service. Dropped packets.
  • the packet loss policy aims to ensure the real-time and continuity of the first service by moderately sacrificing a certain service quality.
  • the data packets are dropped, the data packets of GOP granularity are dropped, or the data packets of file granularity are dropped, etc.
  • the specific policy in the packet loss policy is not specifically limited here.
  • the terminal device may acquire the first sequence information of the second data packets that are not received within the third reception time limit; In a second optional implementation manner in which the packet loss policy determines the first sequence information, the terminal device obtains the sequence of the data packets of the first service that have not been decoded when the amount of data buffered for the first service is lower than the first threshold. The first sequence information of the first one or more second data packets.
  • the second data packet may include a first target data packet, and the first sequence information determined by the above-mentioned first optional implementation manner or the above-mentioned second optional implementation manner may be understood as the first target data packet.
  • the second data packet may also include a second target data packet determined according to the second sequence information of the first target data packet and the second indication information of the first target data packet. In order to indicate the sequence of the first target data packet, the second indication information is used to indicate the encoding type corresponding to the first target data packet in the first service.
  • the terminal device sends first confirmation information to the application server according to the first sequence information.
  • the terminal device may reply with confirmation information to the received data packets.
  • the terminal device may perform separate confirmation information for each received data packet.
  • the terminal device may reply with confirmation information for data packets received within a certain time window.
  • the first confirmation information replied by the terminal device may be the confirmation information corresponding to the second data packet, or may be the second data packet and other data packets received by the terminal device within a certain time window. A corresponding confirmation message.
  • the terminal device sends the first data packet to the application server.
  • the confirmation message may include the confirmation character 200.
  • the terminal device uniformly replies with confirmation information for the data packets received within a certain time window, the terminal device has received the fourth data packet and the fifth data packet in the current time window, and the TCP sequence number of the fourth data packet is 31. , the length of the data is 70, the TCP sequence number of the fifth data packet is 201, and the length of the data is 50.
  • the terminal device can uniformly reply to a common first confirmation message for the second data packet, the fourth data packet and the fifth data packet , the first confirmation message may include the confirmation character 250.
  • the application server After receiving the first acknowledgment information, the application server will transmit the data packet of the first service after the second data packet to the terminal server, so as to avoid the repeated retransmission of the second data packet and the possibility of repeated packet loss. problems and waste of transmission resources.
  • step S602 some or all of the steps in steps S606-S608 may also be included:
  • the terminal device sends the first sequence information to the third network element.
  • the first sequence information is used to trigger the third network element to discard the second data packet in the case of receiving the second data packet carrying the first sequence information from the application server.
  • the terminal device may also send first indication information to the third network element, where the first indication information is used to indicate that the second data packet is a discarded data packet.
  • the third network element receives the second data packet carrying the first sequence information from the application server.
  • the third network element discards the second data packet.
  • the terminal device After the terminal device sends the first confirmation information to the third network element, it indicates that the terminal device no longer needs the second data packet, and the third network element will receive the second data packet after receiving the first sequence information sent by the terminal device. Packet discarding can avoid repeated transmission of second data packets that are not needed by the terminal device, thereby saving data packet transmission resources.
  • the third network element receives the second data packet after step S606 (that is, S607 is executed), it will execute S608; if it does not receive the second data packet after step S606 (that is, S607 has not been executed), it will not 608 is executed.
  • the method may further include step S609:
  • the terminal device sends fourth indication information to the application server.
  • first sequence information in step S603 and the fourth indication information in step S609 may be sent through the same signaling, or may be sent through different signaling.
  • the fourth indication information is used to indicate that the first acknowledgment information is sent by the terminal device without receiving the second data packet that carries the first sequence information, so that the application server can control the traffic transmission for the terminal device when , to avoid misjudging the network condition of the terminal equipment (mistakenly think that the network of the terminal equipment is good, can receive the second data packet smoothly, in fact, the second data packet has been discarded), and improve the data packet transmission rate to the terminal equipment, and then give The network of the end device brings more transmission pressure, resulting in more packet loss.
  • the third network element includes a core network element, before the third network element receives the first sequence information from the terminal device, it may further include steps S610-S612:
  • the third network element receives the fourth data packet.
  • the third network element marks the third sequence information in the GTP (GPRS tunneling protocol, GPRS tunneling protocol) layer protocol header of the fourth data packet.
  • GTP GPRS tunneling protocol, GPRS tunneling protocol
  • the third network element sends the marked fourth data packet to the access network device.
  • the fourth data packet is any data packet of the first service, and the third sequence information of the fourth data packet includes information indicating the sequence of the fourth data packet. It should be understood that the fourth data packet may include the second data packet, and the third sequence information of the fourth data packet is also the first sequence information of the second data packet.
  • the third network element can obtain the third order information in the TCP layer protocol header, and then connect the The network access device cannot obtain the information contained in the TCP layer protocol header, so the third network element can obtain the third sequence information in the TCP layer protocol header of the fourth data packet before transmitting the fourth data packet to the access network device, And mark it on the GTP layer of the fourth data packet, and then after receiving the fourth data packet, the access network device can obtain the third sequence information of the fourth data packet from the GTP layer of the fourth data packet, and then judge the fourth data packet. Whether the packet is a dropped packet.
  • the third network element discarding the second data packet may specifically include that the third network element obtains the flag in the GTP layer protocol header of the second data packet.
  • Sequence information in the case that the sequence information marked in the GTP layer protocol header matches the first sequence information, discard the second data packet.
  • the sequence information marked in the GTP protocol header of the second data packet received by the access network device may be a core network element, such as marked by a UPF network element, and then the access network device may obtain information from the GTP layer of the second data packet.
  • the marked sequence information is obtained from the protocol header, and is compared with the first sequence information sent by the third network element, and if the two match, the second data packet is discarded.
  • it is judged that the two are matched which may be the same as the two, or the information of the specified field in the sequence information marked in the GTP layer protocol header of the second data packet, and the first sequence information sent by the third network element.
  • the information of the specified field is the same, and so on, which is not specifically limited.
  • steps S613 and S614 may also be included:
  • the terminal device receives the second data packet carrying the first sequence information.
  • the terminal device discards the second data packet.
  • step S614 the terminal device may discard the second data packet according to the first sequence information determined in S601.
  • step S615 or S616 may also be included:
  • S615 In the case of receiving the second data packet carrying the first sequence information, the terminal device discards the second data packet, and deletes the first sequence information from the third record list.
  • the third record list in step S615 or S616 includes sequence information of data packets to be discarded by the terminal device for the first service. Further optionally, after determining the first sequence information in S601, the terminal device stores the first sequence information in the third record list, and then executes step S615 or S616 if the condition is satisfied. The first sequence information stored in the third record list is used in S614 to delete the second data packet according to the first sequence information.
  • the terminal device can discard the second data packet after receiving the data packet that has been determined to be discarded, and delete the information of the data packet from the third record list, and the terminal device can further record the third record list. Other processing is performed on the information of the undeleted packets. Or the terminal device can delete the first sequence information from the third record list after the third time period through step S616, which can prevent the data packets of the first service from causing erroneous packet loss due to the cyclic use of the first sequence information, and improve the first sequence information. The reliability of data packet transmission for a service.
  • step S601 the method may further include step S617 or S618:
  • the second data packet is received in S617, the second data packet is discarded, and the first order information in the fourth record list is deleted.
  • the third network element deletes the first sequence information from the fourth record list after a fourth time period from receiving the first sequence information.
  • the fourth record list in S617 or S618 includes sequence information of data packets to be discarded by the terminal device for the first service. Further optionally, after receiving the first sequence information from the terminal device, the third network element stores the first sequence information in the fourth record list, and further executes step S617 or S618 if the condition is satisfied.
  • the third network element can discard the second data packet after receiving the data packet that has been determined to be a discarded data packet, and delete the information of the data packet from the fourth record list, and the third network element can further Perform other processing on the information of the undeleted data packets in the fourth record list, such as regularly feeding back the undeleted information to the first network element, and the like.
  • the first network element can delete the first sequence information from the fourth record list after the fourth time period through step S618, which can prevent the data packets of the first service from being erroneously lost due to the circular use of the first sequence information. In this case, the reliability of data packet transmission of the first service is improved.
  • the network layer of the terminal device can inform the TCP layer that the first acknowledgment information is sent without receiving the second data packet, and then the TCP layer can perform flow control according to the information, so as to avoid affecting the network conditions.
  • the misjudgment will bring more network congestion.
  • the terminal device may determine the first sequence information of the second data packet according to the packet loss policy, and send the first confirmation information to the application server according to the first sequence information, and then the terminal device will respond to the second data packet in sequence
  • the subsequent data packets are decoded to reduce the stalling of the first service and ensure the continuity and real-time performance of the first service.
  • FIG. 8 is a schematic flowchart of another data packet transmission method provided by an embodiment of the present application.
  • the data packet transmission method shown in FIG. 8 can be applied in the establishment/modification scenario of a PDU session triggered by a UE, including
  • the N26 interface N26 is the interface between the AMF network element and the MME network element (the mobility management network element in the 4G system)
  • the EPS Evolved Packet System
  • 5GS System architecture for the 5G System, 5G system architecture
  • 3GPP access and 3GPP access Scenarios of switching between existing PDU sessions etc.
  • the method may include some or all of steps S701-S717.
  • the first indication information, the second indication information, and the third indication information are objects with the same name that appear in the embodiment corresponding to FIG. 4 or FIG. 7 , which have different indication functions. different objects.
  • the AF network element sends a first service request to the PCF network element.
  • Step S701 is an optional step.
  • the first service request may include one or more of the following information: service tolerance delay corresponding to the first service, first indication information, and flow description information.
  • the service tolerance delay corresponding to the first service may be the tolerance delay set for the data packets of the first service.
  • the service tolerance time limit may indicate the latest reception time limit of the data packets of the first service, or indicate the first service time limit.
  • the latest time limit for receiving the acknowledgment information corresponding to the data packet, etc., the service tolerance delay can be used to determine the first sequence information of the second data packet.
  • the service tolerance delay may be an end-to-end delay threshold or a partial delay between the user and the application server, depending on the deployment location of the network element that uses the information to determine the second data packet.
  • the first indication information may be used to instruct the PCF network element to perform a corresponding action in the data packet transmission method of the embodiment of the present application for the first service (for example, the PCF network element performs S704 after S703).
  • the flow description information may include relevant information used to indicate the service flow of the first service, such as triple information including the service flow of the first service (including the transmission protocol type, target IP address, and target port), or include The quintuple information of the service flow of the first service (including source IP address, source port, destination IP address, destination port, and transmission protocol type), and may also include the service type corresponding to the first service (such as video service, audio service, game service or web service, etc.), access network identification, etc.
  • relevant information used to indicate the service flow of the first service such as triple information including the service flow of the first service (including the transmission protocol type, target IP address, and target port), or include The quintuple information of the service flow of the first service (including source IP address, source port, destination IP address, destination port, and transmission protocol type), and may also include the service type corresponding to the first service (such as video service, audio service, game service or web service, etc.), access network identification, etc.
  • the first service request may also include media identification type information
  • the media identification type information may include one type or multiple types of identification information, which is used to indicate that the data packet of the first service sent by the AS device may carry What is the identification information of .
  • Each type of identification information may indicate the type of the data packet, and further, may also indicate the corresponding function of the data packet in the process of encoding and decoding the data packet of the first service.
  • the AF network element when the AF network element is in the external data network domain, the AF network element needs to send the corresponding information to the PCF network element through the NEF network element, specifically to the UDR network element, so that the UDR network element can send the corresponding information to the UDR network element.
  • the change of the information in the element triggers the notification to the PCF network element.
  • one or more kinds of information included in the first service request may also be preconfigured to the PCF network element in a preconfigured manner, or other network elements or The device transmits to the PCF network element, which is not limited here.
  • the UE triggers the establishment/modification of the PDU session to the SMF network element.
  • the UE can trigger the SMF to establish/modify the PDU session through the (R)AN device and the AMF network element.
  • the SMF network element can be triggered to establish/modify the PDU session through the following steps:
  • the UE may send a PDU session establishment/modification request to the AMF network element through the (R)AN device.
  • the AMF network element selects the SMF network element for the UE.
  • the PDU session establishment request sent by the UE may include the type of the PDU session requested by the UE to be established, and the AMF network element may select the SMF network element for the UE according to the type of the PDU session requested by the UE to be established.
  • the AMF network element sends an N4 context creation/modification request to the SMF network element selected for the UE.
  • the SMF network element triggers the establishment/modification of the session management policy association to the PCF network element.
  • the PCF network element sends the first policy information to the SMF network element.
  • the first policy information includes one or more of the following information: service tolerance delay corresponding to the first service, policy and charging control (policy and charging control, PCC) rules, and second indication information.
  • the policy and charging control rules may include data packet forwarding rules or charging rules determined by the PCF network element for the first service.
  • the second indication information is used to instruct the SMF network element to perform the corresponding action in the data packet transmission method of the embodiment of the present application for the first service (eg, perform S705).
  • the SMF network element sends an N4 session establishment/modification request to the UPF network element.
  • the N4 session establishment/modification request may carry one or more of the following information: service tolerance delay, packet detection rule (packet detection rule, PDR), and third indication information.
  • the packet inspection rule may include a forwarding action rule (FAR) corresponding to the data packet, a quality of services (QoS) enforcement rule (QoS enforcement rule, QER) or a statistical information reporting rule (usage reporting rule, URR) etc.
  • FAR forwarding action rule
  • QoS quality of services
  • QER quality of services enforcement rule
  • URR statistical information reporting rule
  • the third indication information is used to instruct the UPF network element to perform a corresponding action in the data packet transmission method of the embodiment of the present application for the first service (for example, perform part or all of the steps in S707-S713, or perform the steps in S715-S717. some or all of the steps).
  • the SMF network element selects a UPF network element for the UE according to information such as load, location, and capacity of each UPF network element, and then sends an N4 session establishment request message to the selected UPF network element.
  • the SMF network element configures the PDR for data transmission to the UPF network element through the establishment of the N4 session.
  • the UPF network element sends an N4 session response message to the SMF network element.
  • the establishment/modification process of the PDU session can be completed through the above S702-S706.
  • the AS device adds corresponding identification information to the data packet of the first service.
  • Step S707 is an optional step, the data packet carries the identification information added by the AS device, so that after receiving the data packet, the UPF network element can identify which type of data packet the data packet is, and further, can also identify the data packet.
  • the AS device may add corresponding identification information to each data packet of the first service.
  • the AS device may add corresponding identification information to the data packet with the highest sequence among the consecutively identical data packets, which can reduce the amount of information carried by other data packets.
  • the AS device can add identification information to the first data packets of different frames, and other data packets may not carry identification information, for example, for data packets 1, 2, 3, and 4 ,5, assuming that 1,2,3 data packets belong to the first frame (I frame as an example), 4,5 are the second frame, you can add the corresponding I frame and
  • the P frame identification ensures that the network side can determine the frame type corresponding to other data packets according to the identification information and the sequence information carried in the data packets.
  • the UPF network element receives the first data packet of the first service from the AS device.
  • the first data packet is any data packet of the first service received by the UPF network element from the AS device.
  • the UPF network element receives the second data packet of the first service from the AS device.
  • the UPF network element verifies the second data packet.
  • step S711 is executed, and if the verification fails, step S712 is executed.
  • the UPF network element may check the second data packet according to the checksum carried by the second data packet.
  • the UPF network element sends the second data packet to the UE.
  • the UPF network element may receive the second data packet, or may not receive the second data packet.
  • Steps S709-S711 are optional steps, if the optional steps S709-S711 are not executed , the UPF network element may execute S712 after S708.
  • the UPF network element executes S711, it may also execute S712, or may not execute S712. For example, if the UE fails to receive the second data packet, S712 may be executed. When the second data packet is received, S712 is not executed.
  • the UPF network element determines the first sequence information of the second data packet, and records the first sequence information.
  • the second data packet in S712 is a data packet to be discarded for the first service determined by the UPF network element, and the first sequence information is used to indicate the sequence of the second data packets.
  • the first sequence information of the second data packet may be determined by the UPF network element according to the service delay tolerance.
  • the UPF network element may, according to the waiting time for the confirmation information corresponding to the second data packet, be compatible with the service tolerance.
  • the delay determines the first sequence information of the second data packet; in another manner, the UPF network element may determine the first sequence information of the second data packet according to the waiting time for the second data packet and the service tolerance delay.
  • the second data packet may include the first target data packet
  • the first sequence information determined by the UPF network element according to the service tolerance delay may be the first sequence information of the first target data packet
  • the UPF network The element can also determine, according to the first sequence information and identification information of the first target data packet, the first sequence of other second data packets that are affected by the discarding of the first target data packet and cannot be successfully processed by the terminal device. information.
  • the UPF network element can analyze and identify the coding layer for the first target data packet, and then according to the first target data packet.
  • the first sequence information and the result of analyzing and identifying the coding layer determine the first sequence information of other second data packets that cannot be successfully processed by the terminal device due to the discarding of the first target data packet.
  • Steps S713-S714 are executed for other second data packets determined by the data packets.
  • step S712 the UPF network element determines the first sequence information of the first target data packet, and determines the further specific implementation of other second data packets affected by the discarding of the first target data packet.
  • the UPF network element determines the third data packet.
  • the third data packet carries the first sequence information.
  • the third data packet may be an empty data packet, or may be a data packet whose data length is smaller than that of the second data packet.
  • the UPF network element adds the length of the second data packet to the third data packet. If the second data packet is a TCP packet, then the third data packet is also a TCP packet, and the length of the second data packet can be added. The length is added to the optional field in the TCP protocol header information of the third data packet.
  • the UPF network element determines the first checksum for the third data packet, and carries it in the third data packet.
  • step S402 for a further specific implementation manner of determining the third data packet by the UPF network element, reference may be made to the implementation manner of step S402 in the embodiment corresponding to FIG. 4 , which will not be repeated here.
  • the UPF network element sends a third data packet to the UE.
  • the UE performs service processing on the third data packet.
  • the UE Since the third data packet carries the first sequence information, after receiving the third data packet carrying the first sequence information, the UE will consider that the second data packet has arrived, and then perform service processing on the third data packet. Data packets are delivered from the TCP layer to the application layer for decoding and other processing.
  • the UE verifies the third data packet according to the first checksum of the third data packet, and if the verification is passed, performs service processing on the third data packet.
  • the UPF network element receives the second data packet from the AS device.
  • the UPF network element discards the second data packet.
  • the UPF network element may or may not receive the second data packet, so steps S716-S717 are optional steps. If the second data packet is received in S716, the UPF network element S717 is executed.
  • the UPF network element deletes the recorded first sequence information.
  • Step S718 is an optional step.
  • the UPF network element may delete the recorded first sequence information in the case of receiving the confirmation information corresponding to the third data packet, or the UPF network element may delete the recorded first sequence information after a certain period of time from recording the first sequence information. Delete the recorded first order information.
  • the UPF network element may determine the first sequence information of the second data packet discarded for the first service, and determine the third sequence information carrying the first sequence information. data packet, by sending the third data packet to the UE, so that the UE can perform service processing on the data packets in the sequence after the second data packet, avoiding the jam of the first service caused by the UE waiting for the second data packet , which improves the continuity and real-time performance of the first business.
  • FIG. 9 is a schematic flowchart of another data packet transmission method provided by an embodiment of the present application.
  • the data packet transmission method shown in FIG. 9 can also be applied to the establishment/modification scenario of a PDU session triggered by a UE.
  • the method may include part or all of steps S801-S820.
  • the first service request corresponding to FIG. 8 is that the first service request in the embodiment is a service request carrying different information; the first indication information, the second indication information, Objects with the same name appearing in the third indication information and the fourth indication information in the embodiment corresponding to FIG. 4 , FIG. 7 or FIG. 8 are different objects with different indication functions; the first policy information is the same as that in the embodiment corresponding to FIG. 8 .
  • the first policy information that appears is policy information containing different information.
  • the AS device sends first application information to the UE.
  • Step S801 is an optional step.
  • the first application information may include information instructing the UE to perform corresponding actions in the data packet transmission method of the embodiment of the present application (eg, performing S809-S812, etc.) for the first service.
  • the first application information may further include media identification type information, wherein the media identification type information may refer to the corresponding introduction in the embodiment corresponding to FIG. 8 , and details are not repeated here.
  • function enhancement may be performed on the UE, so that the UE can perform the corresponding actions in the data packet transmission method of the embodiment of the present application for the first service.
  • the configuration method pre-configures the media identification type information to the UE.
  • the AF network element sends a first service request to the PCF network element.
  • Step S802 is an optional step.
  • the first service request may include one or more of the following information: first indication information and flow description information.
  • the first indication information may be used to instruct the PCF network element to perform a corresponding action in the data packet transmission method of the embodiment of the present application for the first service (for example, the PCF network element performs S805 after S804).
  • the PCF network element performs S805 after S804.
  • the UE triggers the establishment/modification of the PDU session to the SMF network element.
  • step S803 For the implementation of step S803, reference may be made to the implementation of step S702 in the embodiment corresponding to FIG. 8 , and details are not repeated here.
  • the SMF network element triggers the establishment/modification of the session management policy association to the PCF network element.
  • the PCF network element sends the first policy information to the SMF network element.
  • the first policy information includes one or more of the following information: policy and charging control rules, and second indication information.
  • policy and charging control rules For the introduction of the policy and the charging control rule, reference may be made to the corresponding introduction in the embodiment corresponding to FIG. 8 , and details are not repeated here.
  • the second indication information is used to instruct the SMF network element to perform a corresponding action in the data packet transmission method of the embodiment of the present application for the first service (eg, perform S806 or S808).
  • the SMF network element sends an N4 session establishment/modification request to the UPF network element.
  • the establishment/modification request of the N4 session may carry one or more of the following information: packet detection rules and third indication information.
  • packet detection rules For the introduction of the packet detection rule, reference may be made to the corresponding introduction in the embodiment corresponding to FIG. 8 , and details are not repeated here.
  • the third indication information is used to instruct the UPF network element to perform corresponding actions in the data packet transmission method of the embodiment of the present application for the first service (eg, perform some or all of the steps in S816-S819).
  • the UPF network element sends an N4 session response message to the SMF network element.
  • the establishment/modification process of the PDU session can be completed through the above S803-S807.
  • the SMF network element sends fourth indication information to the (R)AN device.
  • the fourth indication information is used to instruct the (R)AN device to perform a corresponding action in the data packet transmission method of the embodiment of the present application for the first service (eg, perform some or all of the steps in S820-S822).
  • the fourth indication information may be included in the N2SM information and sent to the (R)AN device through the AMF network element.
  • the UE determines the first sequence information of the second data packet according to the data amount buffered by the first service, and performs service processing on one or more adjacent data packets in sequence after the second data packet.
  • the second data packet in S809 is a data packet determined by the UE to be discarded for the first service, and the first sequence information is used to indicate the sequence of the second data packets.
  • the UE may obtain the data packets of the highest sequence of one or more data packets of the first service that have not been processed by the UE. first order information.
  • the data packet of the first service may carry identification information (that is, one of the identification information included in the media identification type information), the second data packet may include the first target data packet, and the UE caches according to the first service.
  • the first order information determined by the amount of data is the first order information of the first target data packet, and the UE may also determine, according to the first order information and the identification information of the first target data packet, that it is affected by the discarding of the first target data packet , and the first sequence information of other second data packets that cannot be successfully processed by the terminal device.
  • the above-mentioned further optional manner may be a part of S809, or may be a step performed after S809, and independently of the steps S810, S814-S815 performed for the first target data packet, the UPF network element can be independently targeted for passing the first target. Steps S810, S814-S815 are executed for other second data packets determined by the data packet.
  • step S809 for a further specific implementation manner of determining the first sequence information by the UE, reference may be made to the embodiment corresponding to FIG.
  • the UE sends first confirmation information to the AS device according to the first sequence information.
  • the first confirmation information is used to indicate that the terminal device has received the data packet carrying the first sequence information.
  • step S810 for a further specific implementation manner of the UE sending the first confirmation information according to the first sequence information, please refer to the embodiment corresponding to FIG. It is not repeated here.
  • the UPF network element receives the second data packet from the AS device.
  • the UPF network element marks the first sequence information of the second data packet in the GTP layer protocol header of the second data packet.
  • the UPF network element may obtain the first sequence information from the second data packet, and mark it in the GTP layer protocol header of the second data packet. For example, the UPF network element may obtain the first sequence information from the second data packet. The first sequence information is obtained from the TCP layer protocol header of the second data packet, and marked in the GTP layer protocol header.
  • the UPF network element sends the marked second data packet to the (R)AN device.
  • Steps S811-S813 are optional steps before step S814, that is, before the UPF network element receives the first sequence information sent by the UE, if the second data packet is received in S811, steps S812 and S813 may be performed.
  • the second data packet is sent (for example, the second data packet is received during the ARQ (automatic repeat request, automatic repeat request) process of the RLC (radio link control, radio link control) layer for the second data packet, or in the For the second data packet received during the HARQ (hybrid automatic repeat request, hybrid automatic repeat request) process of the MAC (media access control, media access control) layer of the second data packet), can be obtained from the second data packet
  • the GTP layer obtains the first sequence information and discards the second data packet.
  • the UE sends the first sequence information to the UPF network element.
  • the first sequence information sent by the UE to the UPF network element is used to instruct the UPF network element to discard the second data packet after receiving the second data packet after S814.
  • the first sequence information may be included in the acknowledgment information sent by the UE to the UPF network element most recently, and sent to the UPF network element, or may be included in other uplink data packets and sent to the UPF network element.
  • step S814 the UE sends the first sequence information to the UPF network element, so that when the UPF network element receives the second data packet after receiving the first sequence information, it discards the second data packet, thereby avoiding the UPF network element The transmission resources are wasted due to the transmission of the second data packet.
  • the UE sends the first sequence information to the (R)AN device.
  • the first sequence information sent by the UE to the (R)AN device is used to instruct the (R)AN device to discard the second data packet after receiving the second data packet after S815.
  • the first sequence information may be included in the confirmation information sent by the UE to the (R)AN device last time, and sent to the (R)AN device. Further, the first sequence information may be marked in the last time the UE sent the (R)AN device to the (R)AN device. ) in the PDCP (packet data convergence protocol, packet data convergence protocol) layer protocol header information of the acknowledgment information sent by the AN device.
  • the first sequence information may also be included in other information, such as RCC (radio resource control, radio resource control) information, and sent to the (R)AN device.
  • step S815 the UE sends the first sequence information to the (R)AN device, so that when the (R)AN device receives the second data packet after receiving the first sequence information, it discards the second data packet to avoid The waste of transmission resources caused by the transmission of the second data packet by the (R)AN device is avoided.
  • the UPF network element records the first sequence information.
  • Step S816 may be executed after step S814, regardless of the execution order of S815.
  • the UPF network element receives the second data packet from the AS device.
  • the UPF network element discards the second data packet according to the first sequence information.
  • step S815 the UPF network element may or may not receive the second data packet. Therefore, steps S817-S818 are optional steps.
  • the UPF network element deletes the recorded first sequence information.
  • Step S819 is an optional step.
  • the UPF network element may execute S819 after receiving the second data packet in S817.
  • the UPF network element may delete the recorded first order information after a certain period of time from recording the first order information.
  • the (R)AN device records the first sequence information.
  • Step S820 may be executed after step S815, regardless of the execution order of S816-S819.
  • the (R)AN device discards the second data packet according to the first sequence information.
  • step S821 the (R)AN device may receive the marked second data packet sent by the UPF network element in step S813, the second data packet has not been sent to the UE, and the UPF network element receives the first sequence in S815. In the case of information, S821 is executed.
  • the (R)AN device may acquire information marked in the GTP header of the second data packet, and discard the second data packet in the case that the information marked in the GTP header matches the first sequence information.
  • the (R)AN device deletes the recorded first sequence information.
  • Step S822 is an optional step.
  • the (R)AN device may receive the marked second data packet sent by the UPF network element in step S813, the second data packet has not been sent to the UE, and the UPF network element in S815.
  • S822 can be executed.
  • the (R)AN device may record the first sequence information after a certain period of time from recording the first sequence information. Information deleted.
  • the UE in the process of receiving the data packets of the first service, may determine the first sequence information of the second data packets discarded for the first service according to the packet loss policy, and then the UE may determine the first sequence information according to the first sequence information
  • the first confirmation information is sent to the application server, and the data packets sequenced in the second data packet are decoded, so as to reduce the jamming of the first service and ensure the continuity and real-time performance of the first service.
  • FIG. 10 is a schematic structural diagram of a communication device provided by the embodiment of the present application.
  • the communication device 90 includes at least a first transceiver module 901 and a first processing module 902 .
  • a first transceiver module 901 configured to receive a first data packet of a first service from an application server;
  • a first processing module 902 configured to determine first sequence information of the second data packet, the second data packet is a data packet discarded for the first service, and the first sequence information is used to indicate the sequence of the second data packet;
  • the first processing module 902 is further configured to determine a third data packet, where the third data packet includes first sequence information
  • the first transceiver module 901 is further configured to send a third data packet to the terminal device.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet
  • the first sequence information is included in the first information, and the first information further includes a source IP address, a source port number, a destination IP address, and a destination port number.
  • the first transceiver module 901 is further configured to receive the second data packet after the third data packet is sent to the terminal device;
  • the first processing module 902 is further configured to discard the second data packet.
  • the first transceiver module 901 is further configured to receive the first sequence information from the second network element, and the second network element is a terminal device or an application server;
  • the first processing module 902 is specifically configured to acquire the first sequence information from the first transceiver module 901 .
  • the first transceiver module 901 is further configured to receive first indication information from the second network element, where the first indication information is used to indicate that the second data packet is a data packet to be discarded.
  • the second data packet includes the first target data packet; the first processing module 902 is specifically configured to:
  • the first transceiver module 901 does not receive the first target data packet within the first reception time limit, or receives the confirmation information corresponding to the first target data packet from the terminal device within the second reception time limit , and obtain the first sequence information of the first target data packet.
  • the second data packet includes a first target data packet;
  • the first target data packet includes: a data packet of the first service that is not received by the terminal device within the third receiving time limit, and/or, When the data buffered for the first service is lower than the first threshold, the terminal device may perform one or more data packets in the highest order among the data packets that have not been decoded for the first service.
  • the second data packet further includes the second target data packet determined according to the second sequence information of the first target data packet and the second indication information of the first target data packet, the second sequence The information is used to indicate the sequence of the first target data packets, and the second indication information is used to indicate the encoding type corresponding to the first target data packets in the first service.
  • the first information further includes third indication information, where the third indication information is used to indicate the length of the data in the second data packet.
  • the third data packet further includes the first checksum; the first processing module 902 is further configured to determine the first checksum according to the first information.
  • the first processing module 902, after the first transceiver module 901 sends the third data packet to the terminal device, is further configured to:
  • the first sequence information is sent to the terminal device. Deleted from a record list; the first confirmation information is used to indicate that the terminal device has received the data packets carrying the first sequence information; wherein, the first record list includes sequence information of the data packets discarded by the terminal device for the first service.
  • the first transceiver module 901 is further configured to receive the second data packet before the first processing module determines the first sequence information of the second data packet, and is further configured to send the second data packet to terminal equipment;
  • the first processing module 902 is further configured to store the first information of the second data packet in a second record list, and the second record list includes the information of the data packet of the first service received by the first transceiver module 901;
  • the first processing module 902 in the case of receiving the confirmation information corresponding to the second data packet within the second time period after the first transceiver module 901 receives the second data packet, is further configured to convert the first sequence information from the second data packet to the second data packet. delete from the record list;
  • the first processing module 902 in the case of receiving the confirmation information corresponding to the second data packet within the second time period after the first transceiver module 901 receives the second data packet, is used to determine the first data packet of the second data packet. sequence information.
  • the first transceiver module 901 is further configured to receive the second data packet before the first processing module 902 determines the first sequence information of the second data packet;
  • the first processing module 902 is further configured to verify the second data packet, and discard the second data packet if the verification fails.
  • the communication device 90 in this embodiment of the present application can implement the steps performed by the first network element in the embodiment corresponding to FIG. 4 , such as step S401 or S402 , or perform the steps performed by the UE in FIG. 8 .
  • the steps performed by the first network element in the embodiment corresponding to FIG. 4 such as step S401 or S402
  • the steps performed by the UE in FIG. 8 can be implemented.
  • the functional components included in the first network element in FIG. 10 and the corresponding beneficial effects reference may be made to the specific introduction of the foregoing embodiment in FIG. 4 or FIG. 8 .
  • FIG. 11 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • the communication device 100 includes: a processor 1001 , a memory 1002 , and a transceiver 1004 .
  • the processor 1001 may be configured to determine or process the first sequence information of the second data packet, or determine the third data packet, and so on. For example, step S401 or S402 in the embodiment corresponding to FIG. 4 is implemented, and so on.
  • the memory 1002 is used to store program codes and data for execution by the communication device 100, and the processor 1001 can execute the application program codes stored in the memory 1002 to implement the actions of the first network element in the embodiment shown in FIG. 4, or to implement FIG. 8 Action of the UE in the illustrated embodiment.
  • the processor 1001 is communicatively connected to the memory 1002 , eg, via a bus 1003 .
  • the bus 1003 may be a PCI bus, an EISA bus, or the like.
  • the bus 1003 can be divided into an address bus, a data bus, a control bus, and the like. For ease of presentation, only one thick line is used in FIG. 11, but it does not mean that there is only one bus or one type of bus.
  • the transceiver 1004 is configured to support information transmission between the communication device 100 and the application server, terminal device or other network elements in the above-mentioned embodiments.
  • step S400 in the embodiment corresponding to FIG. 4 is implemented; or step S714 or S716 in the embodiment corresponding to FIG. 8 is implemented.
  • the communication device 100 may include one or more processors, and the structure of the communication device 100 does not constitute a limitation on the embodiments of the present application.
  • the processor 1001 may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or a field programmable gate array. (field programmable gate array, FPGA) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various exemplary logical blocks, modules and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
  • the transceiver 1004 may be a communication interface or a transceiver circuit, etc., where the transceiver is a general term, and in a specific implementation, the transceiver may include multiple interfaces.
  • the memory 1002 may include volatile memory (volatile memory), such as random access memory (RAM); the memory 1002 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory 1002 may also include a combination of the above-mentioned types of memory.
  • volatile memory volatile memory
  • RAM random access memory
  • non-volatile memory non-volatile memory
  • non-volatile memory such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD
  • the memory 1002 may also include a combination of the above-mentioned types of memory.
  • the embodiment of the present application also provides a computer storage medium, which can be used to store the computer software instructions used by the communication device 100 in the embodiment shown in FIG. program of.
  • the storage medium includes, but is not limited to, flash memory, hard disk, and solid-state disk.
  • An embodiment of the present application also provides a computer program product.
  • the computer product When the computer product is run by the communication device shown in FIG. 10 or FIG. 11 , it can execute the data designed for the communication device 90 in the above-mentioned embodiment shown in FIG. 10 .
  • FIG. 12 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • the communication device 110 includes at least a second processing module 1101 and a second transceiver module 1102 . in:
  • the second processing module 1101 is configured to determine the first sequence information of the second data packet, the second data packet is the data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packet;
  • the second transceiver module 1102 is configured to send the first sequence information of the second data packet to the first network element, where the first sequence information is used to trigger the first network element to receive the data packet of the first service from the application server, A third data packet including the first sequence information is determined and the third data packet is sent to the terminal device.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet
  • the first sequence information is included in the first information, and the first information further includes a source IP address, a source port number, a destination IP address, and a destination port number.
  • the second transceiver module 1102 is further configured to send first indication information to the first network element, where the first indication information is used to indicate that the second data packet is a discarded data packet.
  • the second data packet includes the first target data packet; the second processing module 1101 is specifically configured to:
  • the second transceiver module 1102 does not receive the first target data packet within the third receiving time limit, obtain first sequence information of the first target data packet;
  • the communication device in the case that the data amount of the first service buffered by the communication device is lower than the first threshold, obtain the first data of one or more first target data packets in the highest order among the data packets of the first service that have not been decoded. sequence information.
  • the second data packet further includes a second target data packet determined according to second sequence information and second indication information of the first target data packet, and the second sequence information is used to indicate the first target data packet.
  • a sequence of target data packets, and the second indication information is used to indicate the encoding type corresponding to the first target data packet in the first service.
  • the first information further includes third indication information, where the third indication information is used to indicate the length of the second data packet.
  • the communication device 110 in this embodiment of the present application can implement the steps performed by the second network element in the embodiment corresponding to FIG. 4 , or implement some of the steps performed by the UE in FIG. 8 .
  • the communication device 110 in FIG. 12 can implement the steps performed by the second network element in the embodiment corresponding to FIG. 4 , or implement some of the steps performed by the UE in FIG. 8 .
  • the communication device 110 in FIG. 12 can implement the specific introduction of the foregoing embodiment in FIG. 4 or FIG. 8 .
  • FIG. 13 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • the communication device 120 includes: a processor 1201 , a memory 1202 , and a transceiver 1204 .
  • the processor 1201 may be configured to determine the first sequence information of the second data packet, for example, in the embodiment corresponding to FIG. 4 , determine the first sequence information of the second data packet sent to the first network element.
  • the memory 1202 is used to store program codes and data for execution by the communication device 120, and the processor 1201 may execute the application code stored in the memory 1202 to implement the steps performed by the second network element provided in the embodiment of FIG. 4 .
  • the processor 1201 is communicatively connected to the memory 1202 , eg, via a bus 1203 .
  • the bus 1203 may be a PCI bus, an EISA bus, or the like.
  • the bus 1203 can be divided into an address bus, a data bus, a control bus, and the like. For ease of presentation, only one thick line is used in FIG. 13, but it does not mean that there is only one bus or one type of bus.
  • the transceiver 1204 is configured to support information transmission between the communication device 120 and the first network element or other network elements in the above-mentioned embodiments. For example, the first sequence information of the second data packet is transmitted to the first network element.
  • the communication device 120 may include one or more processors, and the structure of the communication device 120 does not constitute a limitation on the embodiments of the present application.
  • the processor 1201 may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or a field programmable gate array. (field programmable gate array, FPGA) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various exemplary logical blocks, modules and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
  • the transceiver 1204 may be a communication interface or a transceiver circuit, etc., where the transceiver is a general term, and in a specific implementation, the transceiver may include multiple interfaces.
  • the memory 1202 may include volatile memory (volatile memory), such as random access memory (RAM); the memory 1202 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory 1202 may also include a combination of the above-mentioned types of memory.
  • volatile memory volatile memory
  • RAM random access memory
  • non-volatile memory non-volatile memory
  • non-volatile memory such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD
  • the memory 1202 may also include a combination of the above-mentioned types of memory.
  • An embodiment of the present application also provides a computer storage medium, which can be used to store computer software instructions used by the communication device in the embodiment shown in FIG. 13 , and includes a program for executing the program designed for the communication device in the above embodiment .
  • the storage medium includes, but is not limited to, flash memory, hard disk, and solid-state disk.
  • An embodiment of the present application also provides a computer program product, which can execute the data designed for the communication device 110 in the embodiment shown in FIG. 12 when the computer product is run by the communication device shown in FIG. 12 or FIG. 13 .
  • FIG. 14 is a schematic structural diagram of a terminal device provided by an embodiment of the present application.
  • the terminal device 130 at least includes a third processing module 1301 and a third transceiver module 1302 . in:
  • the third processing module 1301 is configured to determine the first sequence information of the second data packet according to the packet loss policy, the second data packet is the data packet to be discarded by the first service, and the first sequence information is used to indicate the sequence of the second data packet ;
  • the third transceiver module 1301 is configured to send first confirmation information to the application server according to the first sequence information, where the first confirmation information is used to indicate that the terminal device has received the data packet carrying the first sequence information.
  • the third transceiver module 1302 is further configured to receive the second data packet carrying the first sequence information after the third processing module 1301 determines the first sequence information of the second data packet according to the packet loss policy. data pack;
  • the third processing module 1301 is further configured to discard the second data packet.
  • the third processing module 1301 is further configured to, when the third transceiver module 1302 receives the second data packet carrying the first sequence information, or when the third processing module 1301 determines After the third time period from the first sequence information is obtained, the first sequence information is deleted from the third record list;
  • the third record list includes information about data packets discarded by the terminal device for the first service.
  • the third transceiver module 1302 is further configured to send the first sequence information to the third network element after the third processing module 1301 determines the first sequence information of the second data packet according to the packet loss policy sequence information, where the first sequence information is used to trigger the third network element to discard the second data packet when it receives the second data packet.
  • the second data packet is a TCP packet
  • the first sequence information includes a TCP sequence number of the second data packet.
  • the second data packet includes the first target data packet
  • the third processing module 1301 is specifically configured to:
  • the third transceiver module 1302 does not receive the first target data packet within the third receiving time limit, obtain the first sequence information of the first target data packet;
  • the terminal device when the data amount of the first service buffered by the terminal device is lower than the first threshold, obtain the first data of one or more first target data packets in the highest order among the data packets that have not been decoded by the first service. sequence information.
  • the second data packet further includes a second target data packet
  • the third processing module 1301 is further configured to:
  • the second target data packet is determined according to the second sequence information and the second indication information of the first target data packet, the second sequence information is used to indicate the sequence of the first target data packet, and the second indication information is used to indicate the first target data packet The encoding type corresponding to the first service.
  • the third transceiver module 1302 is further configured to send fourth indication information to the application server, where the fourth indication information is used to indicate that the first confirmation information is when the terminal device has not received the second data packet sent under the circumstances.
  • the terminal device 130 in this embodiment of the present application can implement the steps performed by the terminal device in the embodiment corresponding to FIG. 7 , such as step S601 , or perform the steps performed by the UE in FIG. 9 .
  • the terminal device 130 in FIG. 14 can implement the steps performed by the terminal device in the embodiment corresponding to FIG. 7 , such as step S601 , or perform the steps performed by the UE in FIG. 9 .
  • the terminal device 130 in this embodiment of the present application can implement the steps performed by the terminal device in the embodiment corresponding to FIG. 7 , such as step S601 , or perform the steps performed by the UE in FIG. 9 .
  • FIG. 15 is a schematic structural diagram of another terminal device provided by an embodiment of the present application.
  • the terminal device 140 includes: a processor 1401 , a memory 1402 , and a transceiver 1404 .
  • the processor 1401 may be configured to determine the first sequence information of the second data packet. For example, step S601 in the embodiment corresponding to FIG. 6 is implemented.
  • the memory 1402 is used to store program codes and data for the terminal device 140 to execute, and the processor 1401 can execute the application program code stored in the memory 1402 to realize the actions of the terminal device in the embodiment corresponding to FIG. action.
  • the processor 1401 is communicatively connected to the memory 1402 , eg, via a bus 1403 .
  • the bus 1403 may be a PCI bus, an EISA bus, or the like.
  • the bus 1403 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in FIG. 15, but it does not mean that there is only one bus or one type of bus.
  • the transceiver 1404 is configured to support information transmission between the terminal device 140 and the application server, the first network element or other network elements in the above-mentioned embodiments.
  • step S602 in the embodiment corresponding to FIG. 6 is implemented; or step S815 in the embodiment corresponding to FIG. 8 is implemented.
  • the terminal device 140 may include one or more processors, and the structure of the terminal device 140 does not constitute a limitation on the embodiments of the present application.
  • the processor 1401 may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or a field programmable gate array. (field programmable gate array, FPGA) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various exemplary logical blocks, modules and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
  • the transceiver 1404 may be a communication interface or a transceiver circuit, etc., where the transceiver is a general term, and in a specific implementation, the transceiver may include multiple interfaces.
  • Memory 1402 may include volatile memory (volatile memory), such as random access memory (RAM); memory 1402 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory 1402 may also include a combination of the above-mentioned types of memory.
  • volatile memory such as random access memory (RAM)
  • memory 1402 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory 1402 may also include a combination of the above-mentioned types of memory.
  • This embodiment of the present application also provides a computer storage medium, which can be used to store computer software instructions used by the first terminal device 140 in the embodiment shown in FIG. designed program.
  • the storage medium includes, but is not limited to, flash memory, hard disk, and solid-state disk.
  • An embodiment of the present application also provides a computer program product, when the computer product is run by the terminal device shown in FIG. 14 or FIG. 15 , it can execute the data designed for the terminal device 130 in the above-mentioned embodiment shown in FIG. 14 .
  • FIG. 16 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • the communication device 150 includes at least a fourth transceiver module 1501 and a fourth processing module 1502 . in:
  • the fourth transceiver module 1501 is configured to receive first sequence information from the terminal device, where the first sequence information is used to indicate the sequence of the second data packet; the second data packet is the data packet to be discarded by the first service;
  • the fourth transceiver module 1501 is further configured to receive a second data packet carrying the first sequence information from the application server;
  • the fourth processing module 1502 is configured to discard the second data packet.
  • the fourth transceiver module 1501 is further configured to receive a fourth data packet
  • the fourth processing module 1502 is further configured to mark the third sequence information of the fourth data packet in the GTP layer protocol header of the fourth data packet, and the third sequence information of the fourth data packet includes a sequence indicating the sequence of the fourth data packet. information;
  • the fourth transceiver module 1501 is further configured to send the marked fourth data packet to the access network device.
  • the fourth processing module 1502 is specifically configured to:
  • the fourth processing module 1502, after the fourth transceiver module 1501 receives the first sequence information from the terminal device, is further configured to:
  • the fourth transceiving module 1501 When the fourth transceiving module 1501 receives the second data packet carrying the first sequence information, or after the fourth time period after the fourth transceiving module 1501 receives the first sequence information, the first sequence information delete from the fourth record list;
  • the fourth record list includes sequence information of data packets discarded by the terminal device for the first service.
  • the communication device 150 in this embodiment of the present application can implement the steps performed by the third network element in the embodiment corresponding to FIG. 7 , or part of the steps performed by the UPF network element or the (R)AN device in FIG. 9 .
  • the communication device 150 in FIG. 6 can implement the steps performed by the third network element in the embodiment corresponding to FIG. 7 , or part of the steps performed by the UPF network element or the (R)AN device in FIG. 9 .
  • the communication device 150 in FIG. 6 can implement the steps performed by the third network element in the embodiment corresponding to FIG. 7 , or part of the steps performed by the UPF network element or the (R)AN device in FIG. 9 .
  • FIG. 17 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • the communication device 160 includes: a processor 1601 , a memory 1602 , and a transceiver 1604 .
  • the processor 1601 may be configured to discard the second data packet according to the first sequence information, for example, perform S818 and the like in the embodiment corresponding to FIG. 8 .
  • the memory 1602 is used to store program codes and data for execution by the communication device 160, and the processor 1601 may execute the application code stored in the memory 1602 to implement the steps performed by the third network element provided in the embodiment of FIG. 6 .
  • the processor 1601 is communicatively connected to the memory 1602 , eg, via a bus 1603 .
  • the bus 1603 may be a PCI bus, an EISA bus, or the like.
  • the bus 1603 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in FIG. 17, but it does not mean that there is only one bus or one type of bus.
  • the transceiver 1604 is used to support information transmission between the communication device 160 and the terminal device or other network elements in the above-mentioned embodiments. For example, the first sequence information of the second data packet is received from the terminal device, and so on.
  • the communication device 160 may include one or more processors, and the structure of the communication device 160 does not constitute a limitation on the embodiments of the present application.
  • the processor 1601 may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or a field programmable gate array. (field programmable gate array, FPGA) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various exemplary logical blocks, modules and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
  • the transceiver 1604 may be a communication interface or a transceiver circuit, etc., where the transceiver is a general term, and in a specific implementation, the transceiver may include multiple interfaces.
  • Memory 1602 may include volatile memory (volatile memory), such as random access memory (RAM); memory 1602 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory 1602 may also include a combination of the above-mentioned types of memory.
  • volatile memory such as random access memory (RAM)
  • memory 1602 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- only memory, ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory 1602 may also include a combination of the above-mentioned types of memory.
  • An embodiment of the present application also provides a computer storage medium, which can be used to store computer software instructions used by the communication device in the embodiment shown in FIG. 17 , and includes a program for executing the program designed for the communication device in the above embodiment .
  • the storage medium includes, but is not limited to, flash memory, hard disk, and solid-state disk.
  • An embodiment of the present application also provides a computer program product.
  • the computer product When the computer product is run by the communication device shown in FIG. 16 or FIG. 17 , it can execute the data designed for the communication device 150 in the above-mentioned embodiment shown in FIG. 16 .
  • An embodiment of the present application also provides a data packet transmission system.
  • the data packet transmission system includes the communication device 90 in the embodiment corresponding to FIG. 10 and the communication device 110 in the embodiment corresponding to FIG. 12 , so as to realize the present invention.
  • the data packet transmission method involved in the embodiment of the application is provided.
  • the data packet transmission system includes the communication device 100 in the above-mentioned embodiment corresponding to FIG. 11 and the communication device 120 in the above-mentioned embodiment corresponding to FIG. 13, so as to realize The data packet transmission method involved in the embodiments of the present application.
  • the data packet transmission system includes the terminal device 130 in the above-mentioned embodiment corresponding to FIG. 14 and the communication device 150 in the above-mentioned corresponding embodiment in FIG.
  • the data packet transmission method involved in the embodiments of the present application is implemented.
  • Another data packet transmission system is also provided in the embodiment of the present application, and the data packet transmission system includes the terminal device 140 in the embodiment corresponding to FIG. 15 and the communication device 160 in the embodiment corresponding to FIG. 17 , so as to realize The data packet transmission method involved in the embodiments of the present application.
  • FIG. 18 is a schematic structural diagram of a communication chip provided by an embodiment of the present application.
  • the communication chip 170 may include: a processor 1701 , and one or more communication interfaces 1702 coupled to the processor 1701 . in:
  • the processor 1701 may be used to read and execute computer readable instructions.
  • the processor 1701 may mainly include a controller, an arithmetic unit, and a register.
  • the controller is mainly responsible for instruction decoding, and sends out control signals for the operations corresponding to the instructions.
  • the arithmetic unit is mainly responsible for performing fixed-point or floating-point arithmetic operations, shift operations, and logical operations, and can also perform address operations and conversions.
  • Registers are mainly responsible for saving register operands and intermediate operation results temporarily stored during instruction execution.
  • the hardware architecture of the processor 1701 may be an application specific integrated circuit (ASIC) architecture, a MIPS architecture, an ARM architecture, or an NP architecture, or the like.
  • the processor 1701 may be single-core or multi-core.
  • the interface 1702 can be used to input signals or data to be processed to the processor 1701, and can output the processing result of the processor 1701 to the outside.
  • the communication interface 1702 can be a general purpose input output (GPIO) interface, which can be connected to a plurality of peripheral devices (such as a display (LCD), a camera (camara), a radio frequency (RF) module, etc.) .
  • GPIO general purpose input output
  • peripheral devices such as a display (LCD), a camera (camara), a radio frequency (RF) module, etc.
  • RF radio frequency
  • the processor 1701 may be used to call the implementation program of the terminal device in the data packet transmission method provided by one or more embodiments of this application from the memory, and execute the instructions contained in the program; or be used to call the program from the memory An implementation program of the first network element in the data packet transmission method provided by one or more embodiments of this application, and executes the instructions contained in the program; or is used to call the program provided by one or more embodiments of this application from a memory An implementation program of the second network element in the data packet transmission method, and executes the instructions contained in the program; or is used to call the implementation of the third network element in the data packet transmission method provided by one or more embodiments of the present application from a memory program, and execute the instructions contained in the program; the communication interface 1702 can be used to output the execution result of the processor 1701 .
  • the communication interface 1702 may be specifically used to input the first sequence information of the second data packet, or output the first sequence information of the second data packet processed by the processor 1701, and so on.
  • the communication interface 1702 may be specifically used to input the first sequence information of the second data packet, or output the first sequence information of the second data packet processed by the processor 1701, and so on.
  • processor 1701 and the communication interface 1702 can be implemented by hardware design, software design, or a combination of software and hardware, which is not limited here.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供了一种数据包传输方法及相关设备,该方法中,第一网元可以从应用服务器接收第一业务的第一数据包,第一网元确定第二数据包的第一顺序信息,进而第一网元确定第三数据包,并向终端设备发送第三数据包。其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序,第三数据包包括第一顺序信息。通过本申请可以提高终端设备业务的连续性和实时性。

Description

数据包传输方法及相关设备
本申请要求于2020年12月31日提交中国专利局、申请号为202011639881.3、申请名称为“数据包传输方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种数据包传输方法及相关设备。
背景技术
随着5G等通信技术的发展,使得高清视频、VR(virtual reality,虚拟现实)视频、AR(augmented reality,增强现实)视频等新兴媒体业务得以落地,实现了大量媒体数据的实时传输,以及网络延时的降低。从网络层面来看,媒体业务将是未来移动网络的主要承载流量,用户对整个移动网络的体验感受,很大程度上取决于用户对媒体业务的体验感受,因此,优化用户对媒体业务的体验感受至关重要。
媒体业务中媒体数据的传输,如直播媒体流的传输,对网络延迟的要求比较高,在网络状况不佳时,可能会造成承载媒体数据的丢包重传的情况,这就会造成用户端在观看直播时的卡顿问题。在用户的实际应用中,针对这类媒体业务,在网络状况恶化的情况下,用户可能愿意降低对画质的要求,而不愿等待卡顿带来的缓冲。现有的很多媒体数据传输协议对数据包的传输都具有保序性(也称排序可靠性),例如RTSP(real time streaming protocol,实时流传输协议)/RTMP(real time messaging protocol,实时消息传输协议)、以及HTTP(hypertext transfer protocol,超文本传输协议)等。这些协议都是基于TCP(Transmission Control Protocol,传输控制协议)的,TCP中通过数据包的TCP序列号和确认序列号等,保证了媒体数据的排序可靠性。但在网络状况恶化的情况下,这种排序可靠性也会影响媒体数据播放的连续性和实时性,进而影响了用户对媒体业务的体验。
发明内容
本申请提供一种数据包传输方法及相关设备,通过本申请可以提高终端设备业务的连续性和实时性。
本申请第一方面提供了一种数据包传输方法,该方法中,第一网元可以从应用服务器接收第一业务的第一数据包,第一网元确定第二数据包的第一顺序信息,进而第一网元确定第三数据包,并向终端设备发送第三数据包。其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序,第三数据包包括第一顺序信息。
该方法中,第一网元可以针对第一业务待丢弃的第二数据包,重新确定携带其第一顺序信息的第三数据包,由于该第三数据包携带有第一顺序信息,因此,当终端设备接收到第三数据包后,在顺序在第二数据包之前的数据包已被解码的情况下,终端设备可以对第三数据包进行解码处理,进而可以对顺序在第三数据包之后的数据包进行解码处理,避免了由于针对第二数据包的等待,导致顺序在第二数据包之后的数据包无法被解码处理而带来第一业务卡顿的问题,提高了第一业务的连续性和实时性。
结合第一方面,在一种替换的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
结合第一方面,在另一种替换的方式中,第一顺序信息包括于第一信息中,第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
结合第一方面,在另一种替换的方式中,第一网元向终端设备发送第三数据包之后,第一网元可以接收第二数据包;第一网元丢弃第二数据包。
结合第一方面,在另一种替换的方式中,第一网元具体可以从第二网元接收第一顺序信息;第二网元为终端设备或者应用服务器。
结合第一方面,在另一种替换的方式中,第一顺序信息还包括第一指示信息,第一指示信息用于指示第二数据包为待丢弃的数据包。
结合第一方面,在另一种替换的方式中,第二数据包包括第一目标数据包;第一网元未在第一接收时限内接收到所述第一目标数据包的情况下,或者所述第一网元未在第二接收时限内从所述终端设备接收到所述第一目标数据包对应的确认信息的情况下,第一网元获取第一目标数据包的第一顺序信息。
结合第一方面,在另一种替换的方式中,第二数据包包括第一目标数据包;第一目标数据包包括:终端设备未在第三接收时限内接收到的第一业务的数据包,和/或,终端设备在针对第一业务缓存的数据低于第一阈值的情况下,针对第一业务未进行解码的数据包中顺序最靠前的一个或多个数据包。
结合第一方面,在另一种替换的方式中,第二数据包还包括根据第一目标数据包的第二顺序信息和第一目标数据包的第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
结合第一方面,在另一种替换的方式中,第一顺序信息还包括第三指示信息,第三指示信息用于指示第二数据包的长度。
结合第一方面,在另一种替换的方式中,第三数据包还包括第一校验和;第一网元还可以确定第一校验和。
结合第一方面,在另一种替换的方式中,第一网元向终端设备发送第三数据包之后,第一网元在从终端设备接收到第一确认信息的情况下,或者第一网元在从将第三数据包发送给终端设备起的第一时长后,第一网元还可以将第一顺序信息从第一记录列表中删除。其中,第一确认信息用于指示终端设备已接收到携带所述第一顺序信息的数据包;第一记录列表中包括第一网元针对第一业务丢弃的数据包的顺序信息。
结合第一方面,在另一种替换的方式中,第一网元确定所述第二数据包的第一顺序信息之前,第一网元还可以接收第二数据包,将第二数据包发送给终端设备,并将第二数据包的第一顺序信息存储在第二记录列表中,第二记录列表包含第一网元接收到的第一业务的数据包的顺序信息。
第一网元可以在从接收到第二数据包起的第二时长内,接收到第二数据包对应的确认信息的情况下,将第一顺序信息从第二记录列表中删除;第一网元在从接收到第二数据包起的第二时长内,未接收到第二数据包对应的确认信息的情况下,确定第二数据包的第一顺序信息。
结合第一方面,在另一种替换的方式中,第一网元确定第二数据包的第一顺序信息之前,第一网元还可以接收第二数据包;第一网元对第二数据包进行校验;在校验不通过的情况下, 第一网元将第二数据包丢弃。
本申请实施例第二方面提供了另一种数据包传输方法,该方法中,第二网元确定第二数据包的第一顺序信息,第二网元向第一网元发送第二数据包的第一顺序信息。其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;第一顺序信息用于触发第一网元在从应用服务器接收第一业务的数据包的过程中,确定包括第一顺序信息的第三数据包并向终端设备发送第三数据包。
该方法中,第二网元可以确定出待丢弃的第二数据包的第一顺序信息,并发送给第一网元,进而第一网元可以针对第一业务待丢弃的第二数据包,重新确定携带其第一顺序信息的第三数据包,由于该第三数据包携带有第一顺序信息,因此,当终端设备接收到第三数据包后,在顺序在第二数据包之前的数据包已被解码的情况下,终端设备可以对第三数据包进行解码处理,进而可以对顺序在第三数据包之后的数据包进行解码处理,避免了由于针对第二数据包的等待,导致顺序在第二数据包之后的数据包无法被解码处理而带来第一业务卡顿的问题,提高了第一业务的连续性和实时性。
结合第二方面,在一种可替换的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
结合第二方面,在另一种可替换的方式中,第一顺序信息包括于第一信息中,第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
结合第二方面,在另一种可替换的方式中,该方法中,第二网元还可以向第一网元发送第一指示信息,第一指示信息用于指示第二数据包为待丢弃的数据包。
结合第二方面,在另一种可替换的方式中,第二数据包包括第一目标数据包;第二网元具体可以在未在第三接收时限内接收到所述第一目标数据包的情况下,获取第一目标数据包的第一顺序信息;或者,第二网元可以在缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个所述第一目标数据包的第一顺序信息。
结合第二方面,在另一种可替换的方式中,第二数据包还包括根据第一目标数据包的第二顺序信息和第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
结合第二方面,在另一种可替换的方式中,第一顺序信息还包括第三指示信息,第三指示信息用于指示第二数据包的长度。
本申请第三方面提供了另一种数据包传输方法,该方法中,终端设备根据丢包策略确定第二数据包的第一顺序信息,终端设备根据第一顺序信息,向应用服务器发送第一确认信息。其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包。
终端设备可以根据丢包策略确定针对第一业务丢弃的第二数据包的第一顺序信息,并根据第一顺序信息向应用服务器发送第一确认信息,进而终端设备将对排序在第二数据包后的数据包进行解码,减少第一业务出现的卡顿,保证第一业务的连续性和实时性。
结合第三方面,在一种可替换的方式中,终端设备在根据丢包策略确定第一顺序信息后,还可以接收携带第一顺序信息的第二数据包,终端设备丢弃该第二数据包。
结合第三方面,在另一种可替换的方式中,终端设备在接收到携带第一顺序信息的第二数据包的情况下,将第一顺序信息从第三记录列表中删除;其中,第三记录列表中包括终端设备针对第一业务待丢弃的数据包的顺序信息。
结合第三方面,在另一种可替换的方式中,终端设备在从确定出第一顺序信息起的第三时长后,将第一顺序信息从第三记录列表中删除;其中,第三记录列表中包括终端设备针对第一业务待丢弃的数据包的顺序信息。
结合第三方面,在另一种可替换的方式中,终端设备根据丢包策略确定第二数据包的第一顺序信息后,还可以向第三网元发送第一顺序信息,第一顺序信息用于触发第三网元在接收到第二数据包时丢弃第二数据包。
结合第三方面,在另一种可替换的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
结合第三方面,在另一种可替换的方式中,终端设备具体可以在未在第三接收时限内接收到第一目标数据包的情况下,获取第一目标数据包的第一顺序信息。或者,终端设备具体可以在缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第一目标数据包的第一顺序信息。
结合第三方面,在另一种可替换的方式中,第二数据包还包括第二目标数据包,终端设备还可以根据第一目标数据包的第二顺序信息和第二指示信息确定第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
结合第三方面,在另一种可替换的方式中,终端设备还可以向应用服务器发送第四指示信息,第四指示信息用于指示第一确认信息是终端设备在未接收到第二数据包的情况下发送的。
本申请实施例第四方面提供了一种数据包传输方法,该方法中,第三网元可以从终端设备接收第一顺序信息,第三网元从应用服务器接收携带第一顺序信息的第三数据包,第三网元丢弃第二数据包。其中,第一顺序信息用于指示第二数据包的顺序,第二数据包是第一业务待丢弃的数据包。
该方法中,第三网元可以根据终端设备发送的第一顺序信息,在接收到携带第一顺序信息的第二数据包的情况下,丢弃第二数据包,由于此时终端设备已经不再需要第二数据包,第一网元将第二数据包丢弃,避免第二数据包的传递造成传输资源的浪费。
结合第四方面,在一种可替换的方式中,第三网元还可以接收第四数据包,并将第四数据包的第三顺序信息标记在第四数据包的GTP层协议头中,第三网元将标记后的第四数据包发送给接入网设备。其中,第四数据包的第三顺序信息包括指示第四数据包的顺序的信息。
结合第四方面,在另一种可替换的方式中,第三网元具体可以获取第二数据包的GTP层协议头中标记的顺序信息,在GTP层协议头中标记的顺序信息与第一顺序信息匹配的情况下,丢弃第二数据包。
结合第四方面,在另一种可替换的方式中,第三网元在从终端设备接收第一顺序信息后,在接收到携带第一顺序信息的第二数据包的情况下,将第一顺序信息从第四记录列表中删除;其中,第四记录列表中包括终端设备针对第一业务待丢弃的数据包的顺序信息。
结合第四方面,在另一种可替换的方式中,第三网元在从终端设备接收第一顺序信息后,在从接收到第一顺序信息起的第四时长后,将第一顺序信息从第四记录列表中删除;其中,第四记录列表中包括终端设备针对第一业务待丢弃的数据包的顺序信息。
本申请实施例第五方面提供了一种通信设备,该设备包括第一收发模块和第一处理模块。第一收发模块,用于从应用服务器接收第一业务的第一数据包;
第一处理模块,用于确定第二数据包的第一顺序信息,第二数据包是针对第一业务丢弃 的数据包,第一顺序信息用于指示第二数据包的顺序。第一处理模块,还用于确定第三数据包,第三数据包包括第一顺序信息。第一收发模块,还用于向终端设备发送第三数据包。
结合第五方面,在一种可替换的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
结合第五方面,在另一种可替换的方式中,第一顺序信息包括于第一信息中,第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
结合第五方面,在另一种可替换的方式中,第一收发模块还用于在向终端设备发送的第三数据包之后,接收第二数据包;
第一处理模块,还用于丢弃第二数据包。
结合第五方面,在另一种可替换的方式中,第一收发模块还用于从第二网元接收第一顺序信息,第二网元为终端设备或者应用服务器;
第一处理模块,具体用于从第一收发模块获取第一顺序信息。
结合第五方面,在另一种可替换的方式中,第一收发模块还用于从第二网元接收第一指示信息,第一指示信息用于指示第二数据包为待丢弃的数据包。
结合第五方面,在另一种可替换的方式中,第二数据包包括第一目标数据包;第一处理模块,具体用于:
在第一收发模块未在第一接收时限内接收到所述第一目标数据包的情况下,或者在第二接收时限内从终端设备接收到第一目标数据包对应的确认信息的情况下,获取第一目标数据包的第一顺序信息。
结合第五方面,在另一种可替换的方式中,第二数据包包括第一目标数据包;第一目标数据包包括:终端设备未在第三接收时限内接收到的第一业务的数据包,和/或,终端设备在针对第一业务缓存的数据低于第一阈值的情况下,针对第一业务未进行解码的数据包中顺序最靠前的一个或多个数据包。
结合第五方面,在另一种可替换的方式中,第二数据包还包括所述根据第一目标数据包的第二顺序信息和第一目标数据包的第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
结合第五方面,在另一种可替换的方式中,第一信息还包括第三指示信息,第三指示信息用于指示第二数据包中数据的长度。
结合第五方面,在另一种可替换的方式中,第三数据包还包括第一校验和;第一处理模块还用于根据第一信息确定第一校验和。
结合第五方面,在另一种可替换的方式中,第一处理模块,在第一收发模块向终端设备发送第三数据包后,还用于:
在第一收发模块从终端设备接收到第一确认信息的情况下,或者在第一收发模块从将第三数据包发送给终端设备起的第一时长后,将第一顺序信息从第一记录列表中删除;第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包;其中,第一记录列表中包括终端设备针对第一业务丢弃的数据包的顺序信息。
结合第五方面,在另一种可替换的方式中,第一收发模块,在第一处理模块确定第二数据包的第一顺序信息之前,还用于接收第二数据包,还用于将第二数据包发送给终端设备;
第一处理模块,还用于将第二数据包的第一信息存储在第二记录列表中,第二记录列表包含第一收发模块接收到的第一业务的数据包的信息;
第一处理模块,在第一收发模块接收到第二数据包起的第二时长内,接收到第二数据包对应的确认信息的情况下,还用于将第一顺序信息从第二记录列表中删除;
第一处理模块,在第一收发模块接收到第二数据包起的第二时长内,接收到第二数据包对应的确认信息的情况下,用于确定第二数据包的第一顺序信息。
结合第五方面,在另一种可替换的方式中,第一收发模块,在所述第一处理模块确定第二数据包的第一顺序信息之前,还用于接收第二数据包;
第一处理模块,还用于对第二数据包进行校验,以及在校验不通过的情况下,将第二数据包丢弃。
本申请实施例第六方面提供了另一种通信设备,该设备包括至少包括第二处理模块和第二收发模块。
结合第六方面,在一种可替换的方式中,第二处理模块,用于确定第二数据包的第一顺序信息,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;
第二收发模块,用于向第一网元发送第二数据包的第一顺序信息,第一顺序信息用于触发第一网元在从应用服务器接收第一业务的数据包的过程中,确定包括第一顺序信息的第三数据包并向终端设备发送第三数据包。
结合第六方面,在另一种可替换的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
结合第六方面,在另一种可替换的方式中,第一顺序信息包括于第一信息中,第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
结合第六方面,在另一种可替换的方式中,第二收发模块还用于向第一网元发送第一指示信息,第一指示信息用于指示第二数据包为丢弃的数据包。
结合第六方面,在另一种可替换的方式中,第二数据包包括第一目标数据包;第二处理模块具体用于:
在第二收发模块未在第三接收时限内接收到第一目标数据包的情况下,获取第一目标数据包的第一顺序信息;
或者,在通信设备缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第一目标数据包的第一顺序信息。
结合第六方面,在另一种可替换的方式中,第二数据包还包括根据所述第一目标数据包的第二顺序信息和第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
结合第六方面,在另一种可替换的方式中,第一信息还包括第三指示信息,第三指示信息用于指示第二数据包的长度。
本申请实施例第七方面提供了一种终端设备,该设备包括第三处理模块和第三收发模块。
第三处理模块,用于根据丢包策略确定第二数据包的第一顺序信息,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;
第三收发模块,用于根据第一顺序信息,向应用服务器发送第一确认信息,其中,第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包。
结合第七方面,在一种可替换的方式中,第三收发模块,在第三处理模块根据丢包策略确定出第二数据包的第一顺序信息之后,还用于接收携带第一顺序信息的第二数据包;
第三处理模块,还用于丢弃第二数据包。
结合第七方面,在另一种可替换的方式中,第三处理模块,还用于在第三收发模块接收 到携带第一顺序信息的第二数据包的情况下,或者在从第三处理模块确定出第一顺序信息起的第三时长后,将第一顺序信息从第三记录列表中删除;
其中,第三记录列表中包括终端设备针对第一业务进行丢弃的数据包的信息。
结合第七方面,在另一种可替换的方式中,第三收发模块,在第三处理模块根据丢包策略确定出第二数据包的第一顺序信息之后,还用于向第三网元发送第一顺序信息,第一顺序信息用于触发第三网元在接收到第二数据包时丢弃第二数据包。
结合第七方面,在另一种可替换的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
结合第七方面,在另一种可替换的方式中,第二数据包包括第一目标数据包,第三处理模块具体用于:
在第三收发模块未在第三接收时限内接收到第一目标数据包的情况下,获取第一目标数据包的第一顺序信息;
或者,在终端设备缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第一目标数据包的第一顺序信息。
结合第七方面,在另一种可替换的方式中,第二数据包还包括第二目标数据包,第三处理模块还用于:
根据第一目标数据包的第二顺序信息和第二指示信息确定第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
结合第七方面,在另一种可替换的方式中,第三收发模块还用于向应用服务器发送第四指示信息,第四指示信息用于指示第一确认信息是终端设备在未接收到第二数据包的情况下发送的。
本申请实施例第八方面提供了另一种通信设备,该设备包括第四收发模块和第四处理模块。其中:
第四收发模块,用于从终端设备接收第一顺序信息,第一顺序信息用于指示第二数据包的顺序;第二数据包是第一业务待丢弃的数据包;
第四收发模块,还用于从应用服务器接收携带第一顺序信息的第二数据包;
第四处理模块,用于丢弃第二数据包。
结合第八方面,在一种可替换的方式中,第四收发模块,还用于接收第四数据包;
第四处理模块,还用于将第四数据包的第三顺序信息标记在第四数据包的GTP层协议头中,第四数据包的第三顺序信息包括指示第四数据包的顺序的信息;
第四收发模块,还用于将标记后的第四数据包发送给接入网设备。
结合第八方面,在另一种可替换的方式中,第四处理模块,具体用于:
获取第二数据包的GTP层协议头中标记的顺序信息,在GTP层协议头中标记的信息与第一顺序信息匹配的情况下,丢弃第二数据包。
结合第八方面,在另一种可替换的方式中,第四处理模块,在第四收发模块从终端设备接收第一顺序信息后,还用于:
在第四收发模块接收到携带第一顺序信息的第二数据包的情况下,或者在从第四收发模块接收到所述第一顺序信息起的第四时长后,将第一顺序信息从第四记录列表中删除;
其中,第四记录列表中包括终端设备针对第一业务进行丢弃的数据包的顺序信息。
本申请第九方面提供了另一种通信设备,该通信设备可以包括处理器、存储器和通信接 口,所述处理器、存储器和通信接口相互连接,其中,通信接口用于接收和发送数据,存储器用于存储上述程序,处理器用于调用存储器中存储的程序,程序当被计算机执行上述第一方面及其任意一种可能的实现方式中的数据包传输方法,或执行上述第二方面及其任意一种可能的实现方式中的数据包传输方法,或执行上述第四方面及其任意一种可能的实现方式中的数据包传输方法。上述的处理器与存储器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。
本申请实施例第十方面提供了另一种终端设备,该终端设备可以包括处理器、存储器和通信接口,所述处理器、存储器和通信接口相互连接,其中,通信接口用于接收和发送数据,存储器用于存储上述程序,处理器用于调用存储器中存储的程序,程序当被计算机执行时使所述计算机执行上述第三方面及其任意一种可能的实现方式中的数据包传输方法。上述的处理器与存储器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。
本申请第十一方面提供了一种计算机可读介质,计算机可读介质存储有指令,当该指令在计算机上运行时,使得计算机执行上述第一方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第二方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第三方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第四方面及其任意一种可能的实现方式中的数据包传输方法。
本申请第十二方面提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述第一方面及其任意一种可能的实现方式中的方法,或者执行上述第二方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第三方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第四方面及其任意一种可能的实现方式中的数据包传输方法。
本申请第十三方面提供一种芯片,所述芯片包括处理器和通信接口,所述处理器与所述通信接口耦合,用于实现上述第一方面或任一种可选的实施方式所提供的数据包传输方法,或者实现上述第二方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第三方面及其任意一种可能的实现方式中的数据包传输方法,或者执行上述第四方面及其任意一种可能的实现方式中的数据包传输方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种5G系统架构示意图;
图2为本申请实施例提供的一种基于TCP协议的媒体数据包的处理示意图;
图3a是本申请实施例提供的一种数据包传输系统的架构示意图;
图3b是本申请实施例提供的另一种数据包传输系统的架构示意图;
图4为本申请实施例提供的一种数据包传输方法的流程示意图;
图5a为本申请实施例提供的一种TCP层协议头格式示意图;
图5b为本申请实施例提供的一种IPv4报文首部信息格式意图;
图6是本申请实施例提供的一种第一顺序信息的确定方式的示意图;
图7本申请实施例还提供了另一种数据包传输方法;
图8是本申请实施例提供的另一种数据包传输方法的流程示意图;
图9是本申请实施例提供的另一种数据包传输方法的流程示意图;
图10是本申请实施例提供的一种通信设备的结构示意图;
图11是本申请实施例提供的又一种通信设备的结构示意图;
图12是本申请实施例提供的另一种通信设备的结构示意图;
图13是本申请实施例提供的又一种通信设备的结构示意图;
图14为本申请实施例提供的一种终端设备的结构示意图;
图15是本申请实施例提供的另一种终端设备的结构示意图;
图16是本申请实施例提供的另一种通信设备的结构示意图;
图17是本申请实施例提供的又一种通信设备的结构示意图;
图18是本申请实施例提供的一种通信芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例提供的一种5G系统架构示意图,5G系统包括接入网和核心网,接入网和核心网中包含不同的网元。例如,接入网中的网元包含(R)AN((Radio)Access Network,(无线)接入网)设备,UE(User Equipment,终端设备)可以通过(R)AN设备与核心网连接。核心网中的网元包含多个NF(Network Function,网络功能),如AMF(Access and Mobility Management Function,接入和移动性管理功能)网元、SMF(Session Management Function,会话管理功能)网元、PCF(Policy Control Function,策略控制功能)网元、UPF(User plane function,用户面功能)网元、AUSF(Authentication Server Function,鉴权服务器功能)网元、NWDAF(Network Data Analytics Function,网络数据分析功能)网元、NEF网元等。核心网可以与DN(Data Network,数据网络)相连,DN中可以包含不同的AF(Application Function,应用功能)网元,为核心网提供不同的应用功能。
下面对本申请可能涉及到的网元或设备分别进行说明,其中:
UE:可以包括具有媒体播放和无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备,以及未来通信网络中的任意形态的终端设备。
(R)AN设备:是一种接入网设备,位于UE和核心网之间,可以为终端设备提供入网功能。
AMF网元:可以进行UE注册管理、可达性检测、SMF网元选取等功能、传输UE和SMF之间的SM(Session Management,会话管理)消息等。
PCF网元:可以作为策略决策点,提供基于业务数据流和应用检测、门控、QoS(Quality of Service,服务质量)和基于流的计费控制等规则。
SMF网元:可以进行会话管理(例如会话的建立、修改和删除)、UE的IP地址分配和管理、UPF节点的选取等。
UPF网元:可以进行数据包的路由和转发、用于系统内外移动性的锚点、用于上行分类器以支持路由业务流到数据网络、用于分支点以支持多归属PDU(Protocol Data Unit,协议数据单元)会话等。
NEF网元:可以支持核心网的能力和时间的开放,如第三方边缘计算、AF网元支持的功能等。
UDR(Unified Data Repository,统一数据仓库)网元:可以向UDM(Unified Data Management,统一数据管理)网元提供存储和检索签约数据、向PCF网元提供存储和检索策略数据、结构化服务的存储和检索等功能。
AF网元:可以与核心网中的网络功能进行交互来提供服务,例如影响业务流路由、支持接入网能力开放、支持策略控制等。
AS(application server,应用服务器)设备:可以提供一定应用业务的服务器,比如应用服务器可以包括媒体服务器,媒体服务器可以提供媒体数据的管理、下载等业务。
接下来结合媒体数据包从媒体服务器发送,到该媒体数据包被终端设备解码处理的过程,以TCP中数据包的保序性为例,介绍对媒体播放业务连续性和实时性的影响。
媒体数据包从媒体服务器发送时,携带相应的TCP序列号,在发送时间窗内,媒体服务器可以按照TCP序列号的先后顺序向终端设备发送一定数量的媒体数据包(如按照媒体数据包的TCP序列号从小到大的顺序发送),终端设备接收到媒体数据包后,会按照TCP序列号的先后顺序,将媒体数据包依次从传输控制层向上递交给应用层,对媒体数据包进行解码显示等处理(如,与媒体服务器相应地,按照TCP序列号从小到大的顺序递交给应用层),并且,终端设备会针对接收到的媒体数据包,向媒体服务器发送确认序列号,以使媒体服务器确认终端设备已成功接收到已发送的媒体数据包,进而继续向终端设备发送未发送的媒体数据包。
然而,这些媒体数据包在向终端设备传输的过程中,可能因为传输路径不同等因素的影响,可能使得媒体数据包到达终端设备的顺序与其TCP序列号的先后顺序不完全一致。比如,若媒体服务器按照TCP序列号从小到大的顺序发送媒体数据包,但是终端设备可能并没有按照严格的TCP序列号从小到大的顺序接收到媒体数据包。由于在TCP协议中,终端设备严格按照TCP序列号的先后顺序向应用层递交媒体数据包,假设TCP序列号排在中间的一个媒体数据包由于网络状况不佳发生了丢包,那么即使后续媒体数据包到达后,终端设备也会等待该排在中间的媒体数据包的到达,由于媒体服务器在一定时间内无法收到终端设备针对该排在中间的媒体数据包的确认序列号,就会向终端设备重发该媒体数据包,进而终端设备收到重发的该媒体数据包并递交给应用层后,才会将后续数据包依次向应用层递交。这种情况中,由于中间一个媒体数据包的丢包,使得终端设备即使接收到了后续媒体数据包也无法持续进行解码显示等处理,造成媒体播放的卡顿现象。
参见图2,图2为本申请实施例提供的一种基于TCP协议的媒体数据包的处理示意图,可以结合图2中的示例介绍TCP协议中媒体数据包的保序性。在图2的示例中,假设媒体服务器按照TCP序列号的大小,依次向终端设备传输了8个媒体数据包(假设数据包中数据的长度均为10),分别为数据包1(其TCP序列号为11)、数据包2(其TCP序列号为21)、数据包3(其TCP序列号为31)、数据包4(其TCP序列号为41)、数据包5(其TCP序列号为51)、数据包6(其TCP序列号为61)、数据包7(其TCP序列号为71)、和数据包8(其TCP序列号为81)。数据包1至数据包4、以及数据包6至数据包8均被终端设备正常接收,而由于网络原因,数据包5未能被终端设备接收到,那么,终端设备可以依次将数据包1、数据包2、数据包3和数据包4依次从传输控制层递交给应用层进行解码显示等处理,而由于数据包5未接收到,那么终端设备就会等待数据包5的到达,而数据包6至数据包8也将 不会递交给应用层进行解码显示等处理,若数据包5未在数据包4对应的媒体数据显示完成后到达并解码完毕,那么对数据包5的等待就会造成媒体播放卡顿的问题,影响媒体的播放连续性和实时性。
本申请实施例提供的数据包传输方法应用于应用服务器向终端设备发送有一定顺序的数据包的场景中,首先对数据包的顺序作简要说明,数据包的顺序可以是在数据包从应用服务器发出之前就已经具备的一种顺序属性,比如可以是由应用服务器定义的顺序属性。
一种具体实现方式中,数据包发送之前,应用服务器可以在针对某业务的数据流进行数据包划分后,对划分后的数据流进行编码、压缩打包等处理形成数据包,数据包的顺序可以与数据包中的数据在原数据流中的顺序相对应,或者与数据包从编码器输出的顺序相对应。比如,针对视频数据流,每0.33ms采样时间(基于视频播放时间的采样)采样的数据可以编码为20个数据包,那么前0.33ms采样得到的20个数据包的顺序先于后0.33ms采样得到的20个数据包的顺序,而针对一个0.33ms内采样得到的20个数据包,各个数据包的顺序可以与其从编码器中输出的顺序相同。
应用服务器发送的数据包的顺序也可以通过其他主体通过其他方式定义,比如应用服务器中存储为其他主体处理后得到的数据包,本身具有一定的顺序,应用服务器可以按照顺序向终端设备发送数据包即可,等等,其他方式此处不再赘述。
进一步的,应用服务器可以通过一定的信息指示数据包的顺序,比如,可以通过数字标识数据包的顺序,数字越小的数据包的顺序越靠前。进一步的,为避免数字的数量级过大占用过多资源,可以将指示数据包顺序的数字限定在一定的范围,数据包的顺序指示数字随着数据包的靠后在该范围内依次递增,当该范围内最大的数字被数据包占用后,可以从该范围内的最小数字起依次循环使用。
下面结合图3a和图3b介绍实现本申请提供的数据包传输方法所使用系统架构,以及本申请实施例提供的数据包传输方法,首先参见图3a,图3a是本申请实施例提供的一种数据包传输系统的架构示意图,该系统架构可以是实现本申请实施例的数据包传输方法的一种可选系统架构,如图3a所示,该系统可以至少包括终端设备、应用服务器和第一网元。
其中,终端设备也可以称为接入终端、终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、无线网络设备、用户代理或用户装置等。终端设备可以是手机、平板电脑、车载设备、可穿戴设备或物联网、车辆网中的终端设备等,以及未来通信网络中任意形态的具体媒体数据传输功能的终端设备。应用服务器可以是向终端设备传输业务的数据包的服务器。第一网元可以是核心网中针对应用服务器发送的数据包具有路由功能的网元,例如,第一网元可以是5G核心网中的UPF网元或者接入网设备等。
基于图3a所示的系统结构,可以实现本申请的数据包传输方法,比如,在一种实现方式中,第一网元在接收第一业务的数据包的过程中,第一网元可以确定第二数据包的第一顺序信息,其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;进而第一网元确定携带第一顺序信息的第三数据包,并将确定的第三数据包发送给终端设备。
该系统架构中,第一网元可以针对第一业务待丢弃的第二数据包,重新确定携带其第一顺序信息的第三数据包,由于该第三数据包携带有第一顺序信息,因此,当终端设备接收到第三数据包后,在顺序在第二数据包之前的数据包已被解码的情况下,终端设备可以对第三 数据包进行解码处理,进而可以对顺序在第三数据包之后的数据包进行解码处理,避免了由于针对第二数据包的等待,导致顺序在第二数据包之后的数据包无法被解码处理而带来第一业务卡顿的问题,提高了第一业务的连续性和实时性。
参阅图3b,图3b是本申请实施例提供的另一种数据包传输系统的架构示意图,该系统架构可以是实现本申请实施例的数据包传输方法的另一种可选系统架构,如图3b所示,该系统可以至少包括终端设备和应用服务器,可选的,还可以包括第三网元。
其中,终端设备也可以称为接入终端、终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、无线网络设备、用户代理或用户装置等。终端设备可以是手机、平板电脑、车载设备、可穿戴设备或物联网、车辆网中的终端设备等,以及未来通信网络中任意形态的具体媒体数据传输功能的终端设备。应用服务器可以是向终端设备传输业务的数据包的服务器。第三网元可以是核心网或接入网中针对应用服务器发送的数据包具有路由或发送功能的网元,例如,第三网元可以包括5G核心网中的UPF网元,还可以包括接入网中的接入网设备。
基于图3b所示的系统结构,可以实现本申请的数据包传输方法,比如,在一种实现方式中,终端设备根据丢包策略确定第二数据包的第一顺序信息,其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;终端设备根据第一顺序信息向应用服务器发送第一确认信息,其中,第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包。
该系统架构中,终端设备可以根据丢包策略确定针对第一业务丢弃的第二数据包的第一顺序信息,并根据第一顺序信息向应用服务器发送第一确认信息,进而终端设备将对排序在第二数据包后的数据包进行解码,减少第一业务出现的卡顿,保证第一业务的连续性和实时性。
下面结合图4-图9介绍本申请实施例提供的数据包传输方法,一种实现场景中,该数据包传输方法可以应用在媒体服务器通过核心网网元(如UPF网元)向终端设备发送第一媒体的媒体数据包的过程中,该方法可以在核心网网元、接入网设备、应用服务器或终端设备这四种中的一种或几种网元/设备中实现,将在下文中方法实施例中具体介绍。
其中,第一业务可以包括但不限于音频类媒体业务、视频类媒体业务、图像媒体业务、在线游戏类业务、文本类业务、文件类业务等,比如可以应用在直播视频或点播视频的媒体数据包的传输过程中,又如可以应用在直播电台或在线音乐的媒体数据包的传输过程中,等等。可选的,第一业务可以是用户对数据时延要求相对较高,而对数据质量自身具有一定的容错性的业务。通过本申请实施例的数据包传输方法可以提高第一业务的连续性和实时性。
应理解,在该数据包传输方法的具体使用中,第一业务可以是终端设备多个业务中的其中一个,也可以包括终端设备的多个业务,也就是说,在终端设备的多个业务中可以针对其中一个第一业务的数据包执行本申请实施例的数据包传输方法,也可以将终端设备的多个业务同时作为第一业务执行本申请实施例的数据包传输方法。
在一示例中,终端设备正在同时进行在线音频播放业务和在线游戏业务,第一业务可以是在线音频播放业务,通过本申请实施例的数据包传输方法,可以保证终端设备在线音乐播放业务的实时性和连续性;或者第一业务可以是在线游戏类业务,通过本申请实施例提供的数据包传输方法,可以保证终端设备在线游戏业务的实时性和连续性;或者第一业务可以包括在线视频业务和在线游戏业务,通过本申请实施例提供的数据包传输方法,可以保证终端 设备在线音频播放业务和在线游戏业务的实时性和连续性。
需要说明的是,本申请实施例中的各个网元可以是实体的网络设备,也可以是虚拟的网络设备。本申请实施例涉及的设备之间的连接关系,可以是直接相连或间接相连,可以是有线连接或无线连接,本申请实施例涉及的媒体数据包的发送可以是直接发送或通过至少一个设备的间接发送,本申请均不作具体限定。
参阅图4,图4为本申请实施例提供的一种数据包传输方法的流程示意图,一种实现中,图4对应的数据包传输方法可以基于图3a对应的数据包传输系统实现,该方法涉及第一网元和终端设备的交互。第一网元可以是图3a中所示的第一网元,可以是核心网网元,如UPF网元,也可以是接入网设备,终端设备可以是图3a中所示的终端设备,相关介绍可以参阅针对图3a的相关介绍。如图4所示,该数据包传输方法可以至少包括步骤S400-S403。
S400,第一网元从应用服务器接收第一业务的第一数据包。
本申请实施例提供的数据包传输方法可以应用于第一网元从应用服务器接收第一业务的数据包的过程中,第一数据包是第一网元从应用服务器接收到的第一业务的任一数据包。
S401,第一网元确定第二数据包的第一顺序信息。
第二数据包是针对第一业务丢弃(drop)的数据包,其中,丢弃的数据包可以表示不再对该数据包进行第一业务相关的数据包处理,比如,若第二数据包是第一网元丢弃的数据包,可以表示:第一网元未接收到第二数据包;第一网元在接收到第二数据包后,立即将其删除,不再继续路由;或者第一网元在接收到第二数据包后,不将其加入数据包发送队列,在一定时限后将其删除,等等。又如,若第二数据包是终端设备丢弃的数据包,可以是终端设备未接收到第二数据包,也可以是终端设备收到第二数据包后,立即将第二数据包删除,还可以是终端设备在接收到第二数据包后,不对其进行解码等处理,在一定时限后将其删除,等等。又如,若第二数据包是应用服务器丢弃的数据包,可以是应用服务器未收到来自终端设备的确认信息、且不再向终端设备重发的数据包,等等。
第一顺序信息用于指示第二数据包的顺序。一种方式中,第二数据包是TCP报文,第一顺序信息可以包括TCP序列号,如第一业务的数据包为数据长度固定的数据包,第二数据包的TCP序列号即可指示第二数据包的顺序;进一步的,若第一业务的数据包中包含的数据的长度不确定,第一顺序信息还可以包括第二数据包的数据长度。又一种方式中,第一顺序信息可以包括QUIC(quick UDP internet connection,快速UDP网络连接)序列号。又一种方式中,第一顺序信息可以是应用层报头中的顺序信息,如RTP(Real-time Transport Protocol,实时传输协议)应用层头部的序列号。
可选的,第一顺序信息可以包括于第一信息中。比如,第一信息中还可以包括第二数据包的源IP地址、源端口号、目标IP地址和目标端口号,进一步还可以包括传输层协议;又如,第一信息中可以包括第三指示信息,第三指示信息可以指示第二数据包中整个数据包的长度,等等,第一信息可能包括的其他信息还将在下文有所介绍。应理解,一种实现方式中,若第一业务的数据包为数据长度不确定的数据包,第一信息中的第三指示信息也可以理解为第一顺序信息的一部分。
一种实现方式中,第二数据包的第一信息可以包括于第二数据包的协议头信息中,不同的协议层可以有不同的协议头信息,比如,若第二数据包是TCP报文,第一顺序信息可以包括于TCP协议头信息中,第一顺序信息可以包括TCP序列号,进一步的,若第一业务的数据包中包含的数据的长度不确定,第二数据包的第一信息还可以包括第三指示信息,第三指 示信息用于指示第二数据包的长度。具体可以参阅图5a和图5b,图5a为本申请实施例提供的一种TCP层协议头格式示意图,图5a中示出了传输控制层报头信息中可以包含的字段。第一信息包括的第一顺序信息,可以为TCP层协议头信息中的数据包对应的TCP序列号。图5b为本申请实施例提供的一种IPv4报文首部信息格式意图,如图5b第一信息包括的第三指示信息,可以为IPv4报文首部信息中的总长度字段中的信息。第一信息中还可以包括传输控制层协议头信息中的源端口、目的端口等信息,还可以包括IPv4报文首部信息中的源IP地址、目的IP地址等信息。
第一网元确定的第一顺序信息可以包括一个第二数据包的第一顺序信息,也可以包括多个第二数据包各自的第一顺序信息。第一网元确定第一顺序信息有多种可替换的实现方式,示例性地详细介绍第一网元自行确定出第一顺序信息,以及第一网元从第二网元接收第一顺序信息这两种可替换的实现方式。
在第一种可替换的实现方式中,第一网元可以自行确定第一顺序信息,可选的,可以预先向第一网元传输一定的丢包策略,或者在第一网元中预配置一定的丢包策略,进而第一网元可以根据丢包策略,确定出第一顺序信息。应理解,该丢包策略旨在以适度牺牲一定的业务质量,来保证第一业务的实时性和连续性,该丢包策略中可以指示针对包粒度的数据包进行丢包,针对帧粒度的数据包进行丢包,或者针对GOP(group of picture,一组图片)粒度的数据包进行丢包,或者针对文件粒度的数据包进行丢包等,丢包策略中的具体策略此处不做具体限定。
在一种具体的方式中,第一网元在第一接收时限内未接收到第二数据包的情况下,获取第二数据包的第一顺序信息。可以在第一网元中针对第一业务的数据包预先设定数据包接收时限,在对应数据包接收时限内未接收到的数据包即为第二数据包,第一网元可以获取第二数据包的第一顺序信息。
需要说明的是,第一业务的多个数据包可以有相同的数据包接收时限,比如,针对第一网元接收到的数据包1,该数据包1之后相邻的一定数量的数据包均未被第一网元接收到,该一定数量的数据包对应的数据包接收时限均可以为从第一网元接收到数据包1起的第五时长内。第一业务的各个数据包也可以有不同的数据包接收时限,比如针对第二数据包对应的第一接收时限,第一网元可以将从接收到第二数据包的前续数据包起的第五时长内,作为第二数据包对应的第一接收时限;或者第一网元可以将从第二数据包的前续数据包发送时刻起的第六时长内,作为第二数据包对应的第一接收时限,等等,不做具体限定。上述第二数据包的前续数据包可以是顺序在第二数据包之前的、与第二数据包相邻的数据包,也可以是顺序在第二数据包之前的、与第二数据包间隔一定数量的数据包,等等,不做具体限定。比如,针对数据包1,其TCP序列号为101,数据的长度为100,数据包1的前续数据包为数据包2,数据包2的TCP序列号为51,长度为50,第一网元接收到数据包2时开始计时,若在计时时长达到第五时长时,还未接收到数据包1,第一网元就获取数据包1的第一顺序信息。
在另一种具体的实现方式中,第一网元在第二接收时限内未从终端设备接收到第二数据包对应的确定信息的情况下,获取第二数据包的第一顺序信息。其中,终端设备发送的数据包对应的确认信息,用于指示终端设备收到了该数据包,例如,在数据包是TCP报文的情况下,数据包的第一顺序信息可以包括数据包的TCP序列号,终端设备收到数据包后,可以根据收到的数据包的TCP序列号,回复ACK((acknowledge character,确认字符),该ACK即为数据包对应的确认信息。终端设备针对数据包回复ACK的方式可以有多种具体的实现方式,例如,可以针对接收到的每个数据包分别回复ACK,也可以针对一段时间接收到的连续 的数据包回复一个ACK,等等,具体实现方式不做限定。可以预先在第一网元中针对第一业务的数据包对应的确认信息设定接收时限,在确认信息的接收时限内未接收到确认信息的数据包即为第二数据包,第一网元可以获取第二数据包的第一顺序信息。
需要说明的是,第一业务的各个数据包的确认信息可以有不同的接收时限,比如针对第二数据包对应的确认信息的第二接收时限,第一网元可以将从接收到第二数据包起的第二时长内,作为第二数据包对应的确认信息的接收时限;或者第一网元可以将向终端设备发送第二数据包起的第七时长内作为第二数据包对应的确认信息的接收时限;或者第一网元可以将从接收到第二数据包的前续数据包对应的确认信息起的第八时长内,作为第二数据包对应的确认信息的接收时限,等等,不做具体限定。其中,关于前续数据包可参阅第一种可选方式中对前续数据包的介绍,此处不再赘述。比如,针对数据包3,其TCP序列号为101,报文长度为100,第一网元在接收到数据包3时开始计时,在计时时长达到第二时长时,还未接收到数据包3对应确认信息,第一网元就获取数据包3的第一顺序信息。
进一步的,第一网元在自行确定第一顺序信息的过程中,可以先确定丢弃的第二数据包,再获取第二数据包的第一顺序信息,也可以直接获取第一顺序信息,可选的,在后一种方式中,第一网元在获取第一顺序信息的同时可以确定第一顺序信息对应的第二数据包为丢弃的数据包。
具体来说,第一网元可以记录针对第一业务丢弃的第二数据包的标识信息,若该记录的第二数据包的标识信息为第二数据包的第一顺序信息以外的其他信息,那么第一网元通过记录的标识信息可以确定出哪些数据包是丢弃的第二数据包,进而获取第二数据包的第一顺序信息。若该记录的第二数据包的标识信息为第二数据包的第一顺序信息,那么第一网元通过该记录的第一顺序信息可以直接获取到第一顺序信息,此外,由于第一顺序信息可以指示第二数据包的顺序,也就可以对第二数据包进行唯一标识,第一网元也就可以确定第一顺序信息对应的第二数据包为针对第一业务丢弃的数据包。下面举例介绍一种第一网元记录的第二数据包的标识信息为第二数据包的第一顺序信息的情况下一种具体的实现方式,应理解,以下介绍仅为该情况下的一种示例性实现方式,还可以有其他实现方式,不再赘述。
在该具体实现方式中,步骤S401可以通过步骤S15的执行实现,步骤S15之前,第一网元还可以执行步骤S11-S14中的部分或全部步骤,可以参阅图6,图6是本申请实施例提供的一种第一顺序信息的确定方式的示意图,如图6所示,在该实现方式中:
S11,第一网元接收第二数据包。
S12,第一网元将第二数据包发送给终端设备。
S13,第一网元将第二数据包的第一顺序信息存储在第二记录列表中,第二记录列表中包含第一网元接收到的第一业务的数据包的顺序信息。
S14,第一网元在从接收到第二数据包起的第二时长内,接收到第二数据包对应的确认信息的情况下,将第一顺序信息从第二记录列表中删除。
S15,第一网元在从接收到第二数据包起的第二时长内,未接收到第二数据包对应的确认信息的情况下,获取第二记录列表中,第二时长到达后未被删除的第一顺序信息。
通过上述步骤中第一网元通过对第二记录列表中信息的维护(包括信息的记录和删除),实现了对第一顺序信息的获取。
第二种可替代的实现方式中,第一网元可以从第二网元接收第一顺序信息,可选的,第二网元可以是终端设备,也可以是第一业务的应用服务器,等。进一步可选的,可以预先向第二网元发送一定的丢包策略,或者在第二网元中预配置一定的丢包策略,进而第二网元可 以根据丢包策略确定出第一顺序信息,并将第一顺序信息发送给第一网元。应理解,该丢包策略旨在以适度牺牲一定的业务质量,来保证第一业务的实时性和连续性,该丢包策略中可以指示针对包粒度的数据包进行丢包,针对帧粒度的数据包进行丢包,针对GOP粒度的数据包进行丢包,或者针对文件粒度的数据包进行丢包等,丢包策略中的具体策略此处不做具体限定。
下面根据第二网元是终端设备或者应用服务器分情况进行介绍。
在第二网元是终端设备的情况下,在第一种可选的实现方式中,终端设备可以获取在第三接收时限内未接收到的第二数据包的第一顺序信息,并发送给第一网元。在第二种可选的实现方式中,终端设备在缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第二数据包的第一顺序信息,并发送给第一网元。
进一步的,在上述第一种可选的实现方式中,终端设备在接收到第二数据包的前续数据包起的第九时长内未接收到第二数据包,终端设备就获取第二数据包的第一顺序信息,并将第一顺序信息发送给第二网元。
在上述第二种可选的实现方式中,终端设备可以根据针对第一业务缓存的数据量,获取第二数据包的第一顺序信息。其中,终端设备针对第一业务缓存的数据量可以是终端设备对接收到的第一业务的数据包进行解码等处理后,得到的还未进行显示、播放或者呈现的数据的数量。比如第一业务为针对媒体客户端1的媒体播放业务,终端设备针对第一业务缓存的数据量即为已被媒体客户端1解码的,但还未被播放的媒体数据。可选的,终端设备针对第一业务缓存的数据量与第一阈值的比较,可以是基于某数据量单位(如bit、Kbit、Mbit等单位)进行数据量多少的比较,或者是基于播放时间、显示页面、显示帧数等业务单位进行数据量多少的比较,等等,此处不限定具体的比较方式。
第一业务的数据包可以被划分为已经被终端设备解码的数据包(以媒体播放业务为例,包括已解码但还未播放的数据包和/或已解码且已播放的数据包),以及还未被终端设备解码的数据包(以媒体播放业务为例,包括已接收到但还未解码的数据包和/或未接收到的数据包)。通常情况下,若终端设备缓存的第一业务的数据量低于第一阈值,可能是因为第一业务未进行解码的数据包中顺序最靠前的一个或多个数据包,由于未被接收到等原因,不能被终端设备顺利解码,导致第一业务后续的数据包也不能被顺利解码,进而造成了第一业务缓存的数据量较少,可能造成卡顿的情况。因此,第一业务未被终端设备解码的数据包中,顺序最靠前的一个或多个数据包可以作为丢弃的数据包,终端设备可以获取第一业务未被终端设备解码的数据包中,顺序最靠前的一个或多个数据包的第一顺序信息,发送给第一网元。
应理解,若终端设备缓存的第一业务的数据量低于第一阈值,一种方式中,终端设备可以获取第一业务未解码的数据包中排序最靠前的一个数据包的第一顺序信息,并发送给第一网元,并进而判断第一业务的数据量是否低于第一阈值,若依然低于第一阈值,可以进一步获取此时未解码的数据包中排序最靠前的一个数据包的第一顺序信息,并发送给第一网元,可以执行上述循环,直至终端设备对第一业务的数据包接收完成。另一种方式中,终端设备可以获取第一业务未解码的数据包中排序最靠前的多个数据包的第一顺序信息,并发送第一网元,这多个数据包可以是预设数量的数据包,也可以是通过其他方式确定的多个数据包,如根据数据包的编解码关系确定的多个数据包等,后文将进一步详细介绍;还可以有其他实现方式,不做具体限定。
终端设备确定出第一顺序信息后,可以基于之后最近一次发送的针对数据包的确认信息 (可能是针对后续数据包的确认信息)同一消息载体发送第一顺序信息,比如,可以将第一顺序信息携带于最近一次发送的ACK消息中,发送给第一网元,第一网元将ACK消息中的第一顺序信息提取后,将ACK消息继续向应用服务器发送。第一顺序信息也可以是基于终端设备的其他上行信令发送给第一网元,此处不做具体限定。
在第二网元是应用服务器的情况下,若应用服务器在第四接收时限内未接收到第二数据包对应的确认信息,可以将第二数据包的第一顺序信息发送给第一网元。其中,第四接收时限可以是从应用服务器将第二数据包向终端设备发送起的第十时长内,作为第四接收时限。
应用服务器确定出第一顺序信息后,可以基于之后最近一次发送的第一业务的数据包发送第一顺序信息,第一网元接收到该数据包后,可以将该数据包的第一顺序信息提取后,将该数据包继续向终端设备转发。第一顺序信息也可以基于应用服务器的其他下行信令发送给第一网元,此处不做具体限定。
应理解,第二网元确定的第一顺序信息可以仅包括一个第二数据包的第一顺序信息,也可以包括多个第二数据包各自的第一顺序信息。在第二网元确定的第一顺序信息包括多个第二数据包各自的第一的情况下,第二网元确定的第一顺序信息,与第二网元向第一网元发送的第一顺序信息,均可指示第二数据包的顺序,但第一顺序信息的形式可以相同,也可以不相同。比如,第二网元确定的第一顺序信息包括两个第二数据包(分别为数据包1和数据包2)各自的第一顺序信息,具体为数据包1的TCP序列号51,数据的长度100,数据包2的TCP序列号151,数据的长度50,一种方式中,第二网元向第一网元发送的第一顺序信息可以包括TCP序列号51、数据的长度100,还包括序列号151,数据的长度50,另一种方式中,第二网元向第一网元发送的第一顺序信息可以包括TCP序列号51、数据的长度150。
第二网元将第一顺序确定出第二数据包的第一顺序信息后,将第一顺序信息发送给第一网元,进一步可选的,可以第二网元还可以向第一网元发送第一指示信息,第一指示信息用于第二数据包为待丢弃的数据包。
可选的,第二数据包可以包括第一目标数据包,以上介绍的第一顺序信息的确定方式(包括以上介绍的任一种第一网元自行确定第一顺序信息的方式,和/或,以上介绍的任一种第二网元确定第一顺序信息的方式)所确定出的第一顺序信息可以理解为第一目标数据包的第一顺序信息,此外,第二数据包还可以包括根据第一目标数据包的第二顺序信息和第一目标数据包的第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
其中,进一步可选的,第一目标数据包是部分第二数据包,第一目标数据包的第二顺序信息可以指示第一目标数据包的顺序,第二顺序信息可以是这部分第二数据包的第一顺序信息,也可以是其他形式的可以指示这部分第二数据包的顺序的信息。比如可以是这部分第二数据包的第一顺序信息的其他变形形式,一种示例中,第一顺序信息可以是TCP序列号,第二顺序信息可以是第一顺序信息的TCP序列号映射至GTP(GTP-U)层的序列号;又如第二顺序信息可以包括SN(Serial Number)序列号;第二顺序信息还可以包括将第一顺序信息通过其他映射方式后得到的顺序信息,如在GTP层扩展定义的其他映射方式,此处不再穷举。
其中,进一步可选的,第一目标数据包在第一业务中对应的编码类型可以指示第一目标数据包与第一业务的其他数据包之间的编解码关系。比如,若第一业务为视频业务,视频帧可以包括I帧、P帧和B帧三种媒体帧类型。其中,I帧表示关键帧,包括一帧画面的完整数据,解码时只需解码本帧数据即可完成;P帧表示差别帧,包含本帧与前一个I帧或P帧的差别数据,解码时需要使用之前缓存的画面作为参考帧进行解码,生成最终的画面;B帧表 示的双向差别帧,包括本帧与前后帧的差别数据,解码时需要使用之前和之后缓存的画面作为参考帧进行解码,生成最终的画面。因此,第一业务的数据包可以携带媒体帧类型,可以指示该数据包是I帧、P帧或者B帧的数据包,第一目标数据包携带的媒体帧类型即为第二指示信息。应理解,第二指示信息也可以指示其他的编码类型,比如上述示例为不同视频帧的数据包的编码类型,第二指示信息也可以指示同一帧视频帧的不同数据包的编码类型,此处对编码类型不做具体限定。
以第一网元自行获取第一顺序信息的过程为例,一种可选的实现方式中,第一网元确定出第一目标数据包后,还可以包括步骤S16和S17,在步骤S17后第一网元获取确定出的所有第二数据包(包括第一目标数据包和第二目标数据包)的第一顺序信息:
S16,第一网元获取第一目标数据包的第二顺序信息和第二指示信息。
S17,第一网元根据第二顺序信息和第二指示信息从候选数据包中确定第二目标数据包。
其中,候选数据包可以是第一业务未解码的数据包中,除第一目标数据包以外的一个或多个数据包,候选数据包可以包括第一网元已接收到的但还未向终端设备发送的数据包,也可以包括第一网元还未接收到的数据包。具体的,第一网元可以获取候选数据包的第七指示信息和第八指示信息,其中,第七指示信息用于指示候选数据包的顺序,第八指示信息用于指示候选数据包在第一业务中对应的编码类型。然后第一网元根据第一目标数据包的第二顺序信息和候选数据包的第七指示信息,对第一目标数据包和候选数据包排序,进而根据第一目标数据包的第二指示信息和候选数据包的第七指示信息,将候选数据包中受第一目标数据包的丢弃的影响而不能正常解码的数据包,确定为第二目标数据包;进而第一网元获取确定出的所有第二数据包(包括第一目标数据包和从候选数据包中确定出的第二目标数据包)的第一顺序信息。
举例来说,若第一业务为视频播放业务,第一业务对应的应用服务器将第一业务的部分数据包按照如下顺序依次发出:数据包3(媒体帧类型为P帧)、数据包4(媒体帧类型为I帧)、数据包1(媒体帧类型为P帧)、数据包2(媒体帧类型为P帧)、数据包5(媒体帧类型为I帧)、数据包6(媒体帧类型为B帧)。应用服务器将上述数据包发出后的某一时刻,第一网元已接收到数据包1和数据包2,但还未向终端设备发送,第一网元未接收到数据包3、数据包4、数据包5和数据包6,数据包3和数据包4的已超过各自对应的数据包接收时限,数据包5和数据包6还未超过各自对应的数据包接收时限,第一网元可以将数据包3和数据包4确定为第一目标数据包,根据数据包1至数据包6各自指示数据包顺序的信息,对数据包1至数据包6进行排序的结果可以通过表1反映,表1中从左到右依次展示了顺序从前到后的数据包及各个数据包对应的媒体帧类型:
数据包3 数据包4 数据包1 数据包2 数据包5 数据包6
P帧 I帧 P帧 P帧 I帧 B帧
表1
由于数据包3和数据包4为丢弃的第一目标数据包,因此第一网元后续不会向终端设备发送这两个数据包,而由于丢弃的数据包4是I帧的数据包,数据包1和数据包2为P帧的数据包,终端设备对数据包1和数据包2的解码需要使用到数据包4,因此数据包1和数据包2会因为数据包4的丢弃而无法正常解码,因此第一网元可以将数据包1和数据包2进一步确定为第二目标数据包,如第一网元可以将接收到的数据包1和数据包2从数据包发送队列中删除。数据包5是I帧的数据包,且数据包5与数据包4为不同帧对应的数据包(应理解,虽然数据包4和数据包5帧类型相同,均为I帧,但是为不同画面帧对应的数据包),因此数 据包5不受数据包4被丢弃的影响,而数据包6是B帧的数据包,不受数据包3、数据包4、数据包1或数据包2被丢弃的影响,且不与数据包3、数据包4、数据包1或数据包2中的任一数据包为同一帧对应的数据包,因此,第一网元可以在数据包5和数据包6各自对应的数据包接收时限未到达的情况下,继续等待数据包5和数据包6。
需要说明的是,在第一网元已接收到第一目标数据包或候选数据包的情况下,第一目标数据包的第二顺序信息和第二指示信息可以是第一网元从第一目标数据包获取的,候选数据包的第七指示信息和第八指示信息可以是从候选数据包中获取的;在第一网元还未接收到第一目标数据包或候选数据包的情况下,第一目标数据包的第二顺序信息或第二指示信息、以及候选数据包的第七指示信息或第八指示信息,可以是根据第一网元已接收到的数据包的相关信息确定的,如该相关信息可以是采样时间等。
针对上述后一种情况进行举例,第一业务为视频播放业务,第一业务播放的视频有一定的播放时长,各个数据包是针对不同播放时长的数据采样得到的,第一业务的数据包可以携带数据包的采样时间(基于播放时长进行采样的时间),第一业务的数据包为TCP报文。针对该视频,可以每隔一定的采样时长打包一个I帧类型的视频帧,相邻I帧类型的数据包之间的数据包为P帧类型或B帧类型。如,可以每隔1s打包一个I帧类型的视频帧,也就是从该视频的整秒钟时间起始采样得到的数据包均为I帧类型,其他采样时间得到的数据包为B帧类型或P帧类型,如FPS(frames per second,每秒传输帧数)=5,对应顺序可以是I帧类型、P帧类型、B帧类型、P帧类型、P帧类型。假设第一业务对应的应用服务器将第一业务的部分数据包按照如下顺序依次发出:数据包7、数据包8、数据包9、数据包1、数据包2,上述数据包发送完成后的某一时刻,第一网元依次接收到的数据包7、数据包8、数据包1和数据包2,各个数据包对应的采样时间、媒体帧类型、TCP序列号和数据的长度如表2所示:
数据包标号 7 8 1 2
采样时间 0.2s 0.4ms 0.8s 1s
媒体帧类型 P帧 P帧 P帧 B帧
TCP序列号 1 51 201 251
数据的长度 50 70 50 50
表2
第一网元可以根据数据包8和数据包1的TCP序列号及数据的长度,确定排序在数据包8和数据包1之间还有未到达的数据包,若该未接收到的数据包已超出对应的数据包接收时限,可将其确定为第一目标数据包。第一网元根据数据包8和数据包1的采样时间,可以得到排序在数据包8和数据包1之间的数据包包括一个0.6s开始采样的数据包(即数据包9),且该数据包的媒体帧类型为I帧。数据包7、数据包8、数据包1和数据包2可以作为候选数据包,由于数据包7和数据包8为P帧,且不与数据包9为同一帧的数据包,因此终端设备接收到数据包7和数据包8后可以正常解码,数据包7和数据包8不为第一目标数据包。由于0.6s开始采样的数据包(数据包9)已被确定为丢弃的第一目标数据包,因此,数据包1和数据包2与数据包9虽然为不同帧的数据包,但数据包9为一个I帧的数据包,数据包1和数据包2会受其丢弃的影响不能被终端正常解码,因此数据包1和数据包2进一步被确定为受丢弃的数据包影响而无法解码的第二目标数据包。
以上介绍了第一网元自行获取第一顺序信息的过程中,第一网元根据第一目标数据包进一步确定受第一目标数据包丢弃而无法正常解码的第二目标数据包的实现方式,类似地,在第二网元确定第一顺序信息的过程中,第二网元也可以先确定出第一目标数据包,进而根据 第一目标数据包确定出受第一目标数据包丢弃而无法正常解码的第二目标数据包,并将确定出的所有第二数据包的第一顺序信息发送给第一网元。其中,第二网元根据第一目标数据包确定第二目标数据包的实现方式,可参阅针对第一网元在自动获取第一顺序信息过程中,第一网元根据第一目标数据包确定第二目标数据包的实现方式,此处不再赘述。
需要说明的是,S401中针对第一业务丢弃的第二数据包,为即将被(第一网元或第二网元)执行丢弃动作的数据包,其与已经执行丢弃动作的数据包可能为相同的数据包,也可能不为相同的数据包。例如,可选的,在步骤S401之前,该方法还可以包括步骤S404-S406中的部分或全部步骤:
S404,第一网元接收第二数据包。
S405,第一网元对第二数据包进行校验。
在校验通过的情况下,第一网元将第二数据包发送给终端设备;在校验不通过的情况下,第一网元执行S406。
其中,第二数据包可以包含第二校验和,第一网元在对第二数据包进行校验时,可以是对第二数据包携带的第二校验和进行校验。
S406,第一网元将第二数据包丢弃。
若第一顺序信息由第一网元根据在第一接收时限内是否接收到第二数据包自行确定,在S406中第一网元将第二数据包丢弃之后,假如第一网元在第一接收时限内接收到了应用服务器重发的第二数据包,那么第二数据包将会被发送给终端设备,这种情况下,第二数据包不为针对第一业务丢弃的数据包;若第一网元未在第一接收时限内接收到应用服务器重发的第二数据包,那么第二数据包为针对第一业务丢弃的数据包。
S402,第一网元确定第三数据包。
其中,第三数据包包括第一顺序信息。可选的,第一顺序信息可以包含于第三数据包的报头信息中。进一步可选的,第一顺序信息可以包括于上述第一信息中,除了第一顺序信息外,第三数据包可以包括第一信息中的其他信息,如源IP地址、源端口号、目标IP地址和目标端口号、传输协议等信息中的部分或全部信息。
可选的,第三数据包可以为第一网元针对第二数据包重新构造的数据包,第三数据包中的数据量小于第二数据包的数据量。比如,第三数据包可以为空数据包,也就是负载数据的长度为零的数据包;又如,第三数据包可以是包含1bit数据的数据包,该1bit的数据可以是第一网元随机写入的数据,也可以是预先指定的数据,如预先指定的数据可以是指示第三数据包是第一网元重新构造的数据包的指示数据;等等。由于第三数据包的数据量小于第二数据包的数据量,因此网络传输第三数据包的传输压力小于传输第二数据包的传输压力,因此传输第三数据包的成功率远高于传输第二数据包的成功率,也就是提高了终端设备接收到携带第一顺序信息的数据包的成功率,降低了终端设备业务卡顿的概率。
可选的,第三数据包还可以包括第一校验和,第一校验和可以用于校验第三数据包的可靠性,终端设备接收到第三数据包后,可以根据第一校验和对第三数据包进行校验。因此,在第一网元确定第三数据包的过程中,还可以包括第一网元确定第一校验和。例如,在第二数据包是TCP报文的情况下,针对第二数据包确定的第三数据包也为TCP报文,第一校验和可以是第一网元根据第三数据包的TCP首部、TCP数据以及其他数据包头部信息(如源IP地址、目的IP地址等)确定的。第三数据包的TCP首部可以包括源端口、目标端口、TCP序列号、保留字节等;第三数据包的TCP数据是第一网元确定的,比如可以是空,也可以是随机的若干比特数据,还可以是指定的数据等。
可选的,第一网元在步骤S401中确定的第一顺序信息可以仅包括一个第二数据包的第一顺序信息,也可以包括多个第二数据包的第一顺序信息,在仅包括一个第二数据包的第一顺序信息的情况下,第一网元可以根据该第二数据包的第一顺序信息,针对该第二数据包确定一个第三数据包;在包括多个第二数据包的第一顺序信息的情况下,一种实现方式中,第一网元可以根据各个第二数据包的第一顺序信息,分别针对相应的第二数据包确定第三数据包,另一种实现方式中,第一网元可以根据多个第二数据包的第一顺序信息,针对多个第二数据包确定一个第三数据包。
此外,需要说明的是,步骤S401中第一网元获取的第一顺序信息,与步骤S402中第一网元确定的第三数据包中包含的第一顺序信息,均可以指示第二数据包的顺序,但第一顺序信息的形式可以相同也可以不相同。
下面分情况对第一网元确定第三数据包以及第一顺序信息的形式进行举例说明:
第一种实现方式中,第一网元在S401中确定的第一顺序信息为针对一个第二数据包的第一顺序信息,S402中第一网元针对这一个第二数据包确定一个第三数据包,且第一网元确定的第一顺序信息的形式与第三数据包中包括的第一顺序信息的形式相同。比如,S401中第一网元确定出丢弃的第二数据包仅有一个数据包1,数据包1为TCP报文,数据包1的第一顺序信息中包括TCP序列号51以及数据的长度70,那么S402中第一网元可以针对数据包1确定一个第三数据包,该第三数据包可以携带TCP序列号51和数据的长度70。
第二种实现方式中,第一网元在S401中确定的第一顺序信息包括多个第二数据包各自的第一顺序信息,S402中第一网元根据各个第二数据包的第一顺序信息,分别针对各个第二数据包确定第三数据包,且第一网元确定的第一顺序信息的形式与第三数据包中包括的第一顺序信息的形式相同。比如,S401中第一网元确定出丢弃的第二数据包包括数据包2和数据包3,数据包2和数据包3均为TCP报文,数据包2的第一顺序信息中包括TCP序列号101以及数据的长度50,数据包3的第一顺序信息中包括TCP序列号151以及数据的长度100,那么S402中第一网元可以针对数据包2确定一个第三数据包,该第三数据包可以携带TCP序列号101以及数据的长度50,第一网元还可以针对数据包3确定一个第三数据包,该第三数据包可以携带TCP序列号151以及数据的长度100。
第三种实现方式中,第一网元在S401中确定的第一顺序信息包括多个第二数据包各自的第一顺序信息,S402中第一网元根据各个第二数据包的第一顺序信息,针对多个第二数据包确定一个第三数据包,且第一网元确定的第一顺序信息的形式与第三数据包中包括的第一顺序信息的形式不同。比如,S401中第一网元确定出丢弃的第二数据包包括数据包4和数据包5,数据包4和数据包5均为TCP报文,数据包4的第一顺序信息中包括TCP序列号251以及数据的长度60,数据包5的第一顺序信息中包括TCP序列号311以及数据的长度70,那么S402中第一网元可以针对数据包4和数据包5确定一个第三数据包,该第三数据包可以携带TCP序列号251以及数据的长度130。
S403,第一网元向终端设备发送第三数据包。
第一网元将第三数据包发送给终端设备,第三数据包中包括第二数据包的第一顺序信息,终端根据校验和确定已经成功接收到第二数据包,从而可以触发终端设备对顺序在第二数据包之后的数据包进行解码等处理。比如,在第一业务的数据包为TCP报文的情况下,若终端设备将顺序在第二数据包之前的数据包,均从传输控制层递交至应用层进行处理后,那么第一网元可以将第三数据包从传输控制层递交至应用层,进而可以将顺序在第二数据包之后的相邻的数据包,依次从传输控制层向应用层递交,进行解码等处理,解决了由于第二数据包 的丢弃而不能对顺序在第二数据包之后的数据包进行解压等处理造成的卡顿问题。
可选的,终端设备接收到第三数据包后,终端设备可以向应用服务器发送第四指示信息,第四指示信息用于指示终端设备接收到携带第一信息的第三数据包是第一网元针对待丢弃的第二数据包构造的数据包。进而应用服务器可以在进行针对终端设备的流量传输控制时,避免误判终端设备的网络情况(误认为终端设备网络良好,能对第二数据包顺利接收,事实上第二数据包已被丢弃),而提高对终端设备的数据包传输速率,进而给终端设备的网络带来更多传输压力,导致更多数据包丢包的情况。进一步可选的,一种方式中,终端设备可以在第三数据包的触发下发送第四指示信息,比如,第三数据包中可以携带第五指示信息,第五指示信息,第五指示信息可以指示终端设备发送第四指示信息,等。
可选的,步骤S403后,第一网元还可以向终端设备发送第六指示信息,第六指示信息可以指示第三数据包为第一网元构造的携带第一顺序信息的数据包,进而终端设备可以在进行流量传输控制时,避免终端设备误判网络情况(误认为网络良好,能对第二数据包顺利接收,事实上第二数据包已被丢弃),而提高数据包传输速率,进而给网络带来更多传输压力,导致更多数据包丢包的情况。进一步可选的,第六指示信息可以携带于第三数据包中,也可以通过其他数据包携带,此处不做限定。比如,终端设备的网络层从第三数据包中获取第六指示信息后,可以告知TCP层第三数据包为第一网元构造的数据包,进而TCP层可以根据该信息进行流量控制,避免对网络情况的误判带来更多的网络拥塞。
可选的,在步骤S403之后,该方法还可以包括步骤S407和步骤S408:
S407,第一网元接收第二数据包。
S408,第一网元丢弃第二数据包。
第一网元向终端设备发送携带第一顺序信息的第三数据包之后,若接收到携带第一顺序信息的第二数据包,由于此时终端设备已经不再需要第二数据包,第一网元可以将第二数据包丢弃,避免第二数据包的传递造成传输资源的浪费。
可选的,在步骤S403之后,该方法中还可以包括步骤S409或步骤S410:
S409,第一网元从终端设备接收到第一确认信息的情况下,将第一顺序信息从第一记录列表中删除。
S410,第一网元在将第三数据包发送给终端设备起的第一时长后,将第一顺序信息从第一记录列表中删除。
其中,第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包。S409或S410中的第一记录列表中包括第一网元针对第一业务待丢弃的数据包的顺序信息。进一步可选的,第一网元可以在确定出第一顺序信息后,将第一顺序信息存储于第一记录列表中,进而在满足条件的情况下,执行步骤S409或者S410。
第一网元通过步骤S409可以将终端设备接收到的数据包对应的信息删除,第一网元可以进一步对第一记录列表中未被删除的数据包的信息进行其他处理,如定期针对未删除的信息再次构筑数据包并向终端设备发送,等。或者,第一网元通过步骤S410,在第一时长后,将第一顺序信息从第一记录列表中删除,可以防止第一顺序信息的循环造成的误丢包情况,也就是说,第一业务的数据包可能存在第一顺序信息循环使用的情况,第一网元可能在后续会接收到携带第一顺序信息,但数据不同的第一业务的数据包,通过将第一记录列表中信息的定期删除,可以尽量避免第一网元误将该数据包当作第二数据包进行丢弃的情况,提高第一业务的数据包传输可靠性。
应理解,可选的方式中,第一记录列表可以通过第一网元对上文中第二记录列表(上文 S13等步骤中涉及的第二记录列表)的维护得到,比如,第一网元每接收到第一业务的一个数据包,就将该数据包的顺序信息添加至第二记录列表中,若在接收该数据包起的第二时长内接收到该数据包的确认信息,即可将该数据包的顺序信息从第二记录列表中删除,未在第二时长后被删除的数据包的顺序信息组成了第一记录列表中的各个顺序信息(也就是第一网元针对第一业务待丢弃的数据包的顺序信息)。
本申请实施例中,第一网元可以针对第一业务丢弃的第二数据包,重新确定携带其第一顺序信息的第三数据包,由于该第三数据包携带有第一顺序信息,因此,当终端设备接收到第三数据包后,在排序在第二数据包之前的数据包已被解码的情况下,终端设备可以对第三数据包进行解码处理,进而可以对顺序在第三数据包之后的数据包进行解码处理,避免了由于针对第二数据包的等待,导致顺序在第二数据包之后的数据包无法被解码处理而带来第一业务卡顿的问题,提高了第一业务的连续性和实时性。
参阅图7,图7本申请实施例还提供了另一种数据包传输方法,一种实现中,图7对应的数据包传输方法可以基于图3b对应的数据包传输系统实现,该方法涉及终端设备和应用服务器的交互,可选的,还涉及终端设备和应用服务器这二者与第三网元的交互,其中,终端设备可以是图3b中所示的终端设备,应用服务器可以是图3b中所示的应用服务器,第三网元可以是图3b中所示的第三网元,可以是与终端设备相连的(R)AN设备和/或核心网网元(如UPF网元),相关介绍可以参阅针对图3b的相关介绍。如图7所示,该数据包传输方法可以至少包括依次执行的步骤S601-S602。
S601,终端设备根据丢包策略确定第二数据包的第一顺序信息。
第二数据包是第一业务待丢弃的数据包,第一顺序信息是第二数据包的顺序信息,第一顺序信息用于指示第二数据包的顺序。
可选的,第一顺序信息可以包括于第一信息,第一信息中还可以包括其他信息,具体可参阅图4对应的实施例中第一信息的相关介绍,此处不再赘述。
其中,第二数据包为第一业务待丢弃的数据包,丢弃的数据包可以表示不再对该数据包进行第一业务相关的数据包处理。关于数据包的丢弃可参阅图4对应的实施例中对数据包丢弃的相关介绍,此处不再赘述。
应理解,S601中确定的第二数据包为即将被终端设备执行丢弃动作的数据包,与已经执行丢弃的数据包可能不为相同的数据包。例如,可选的,在步骤S601之前,该方法还可以包括步骤S603-S607中的部分或全部步骤:
S603,终端设备接收第二数据包。
S604,终端设备对第二数据包进行校验。
在S603中校验通过的情况下,终端设备对第二数据包进行解码等处理;在S603中校验不通过的情况下,终端设备执行S605。
其中,第二数据包中可以包含第二校验和,终端设备在对第二数据包进行校验时,可以是对第二数据包带的第二校验和进行校验。
S605,终端设备将第二数据包丢弃。
在S605中终端设备将第二数据包丢弃后,若终端设备在第三接收时限内接收到了应用服务器重发的第二数据包,且对重发的第二数据包校验通过,这种情况下,第二数据包不为针对第一业务丢弃的数据包;若终端设备在第三接收时限内未接收到应用服务器重发的第二数据包,那么该第二数据包为针对第一业务丢弃的数据包。
终端设备在获取第二数据包的第一顺序信息的过程中,可以是根据丢包策略确定的,丢包策略可以是预先向终端设备传输的,或者预先在终端设备中预配置的。应理解,该丢包策略旨在以适度牺牲一定的业务质量,来保证第一业务的实时性和连续性,该丢包策略中可以指示针对包粒度的数据包进行丢包,针对帧粒度的数据包进行丢包,针对GOP粒度的数据包进行丢包,或者针对文件粒度的数据包进行丢包,等,丢包策略中的具体策略此处不做具体限定。
在终端设备根据丢包策略确定第一顺序信息的第一种可选实现方式中,终端设备可以获取在第三接收时限内未接收到的第二数据包的第一顺序信息;在终端设备根据丢包策略确定第一顺序信息的第二种可选实现方式中,终端设备在缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第二数据包的第一顺序信息。
进一步的,第二数据包可以包括第一目标数据包,通过上述第一种可选的实现方式或者上述第二种可选的实现方式确定出的第一顺序信息可以理解为第一目标数据包的第一顺序信息,此外,第二数据包还可以包括根据第一目标数据包的第二顺序信息和第一目标数据包的第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
上述确定第一顺序信息的第一种可选实现方式或者第二种可选实现方式,以及根据第一目标数据包的第二顺序信息和第二指示信息确定第二目标数据包的实现方式,在图4对应的实施例中S401均有详细介绍,可参阅其中对应的介绍,此处不再赘述。
S602,终端设备根据第一顺序信息,向应用服务器发送第一确认信息。
终端设备在接收第一业务的数据包的过程中,可以对接收到的数据包进行确认信息的回复,一种实现方式中,终端设备可以针对接收到的每个数据包进行单独的确认信息的回复,又一种实现方式中,终端设备可以针对一定时间窗内接收到的数据包进行确认信息的回复。其中,因此,终端设备回复的第一确认信息可以是第二数据包这一个数据包对应的确认信息,也可以是第二数据包以及终端设备在一定时间窗内终端设备接收到的其他数据包共同对应的一个确认信息。
比如,在第一业务的数据包为TCP报文的情况下,若第一顺序信息包括第二数据包的TCP序列号101以及第二数据包的长度100,终端设备向应用服务器发送的第一确认信息可以包括200这一确认字符。又如,若终端设备针对一定时间窗内接收到的数据包统一回复确认信息,终端设备在当前时间窗内接收到了第四数据包和第五数据包,第四数据包的TCP序列号为31,数据的长度为70第五数据包的TCP序列号为201,数据的长度为50,终端设备可以针对第二数据包、第四数据包以及第五数据包统一回复一个共同的第一确认信息,第一确认信息中可以包括250这一确认字符。
应用服务器在接收到第一确认信息后,将会向终端服务器传递顺序在第二数据包之后的第一业务的数据包,避免对第二数据包的反复重传以及反复丢包可能造成的卡顿问题和传输资源浪费问题。
可选的,步骤S602之后还可以包括步骤S606-S608中的部分或全部步骤:
S606,终端设备向第三网元发送第一顺序信息。
第一顺序信息用于触发第三网元在从应用服务器接收到携带第一顺序信息的第二数据包的情况下,丢弃第二数据包。可选的,终端设备还可以向第三网元发送第一指示信息,第一指示信息用于指示第二数据包为丢弃的数据包。
S607,第三网元从应用服务器接收携带第一顺序信息的第二数据包。
S608,第三网元丢弃第二数据包。
由于终端设备向第三网元发送第一确认信息后,表示终端设备已不再需要第二数据包,第三网元将在接收到终端设备发送的第一顺序信息之后接收到的第二数据包丢弃,可以避免将终端设备不需要的第二数据包反复传递,节约了数据包传输资源。
第三网元若在步骤S606后接收到第二数据包(也就是执行了S607),则执行S608;若在步骤S606后未接收到第二数据包(也就是未执行了S607),则不执行608。
可选的,该方法还可以包括步骤S609:
S609,终端设备向应用服务器发送第四指示信息。
应理解,步骤S603中的第一顺序信息与步骤S609中的第四指示信息可以是通过同一信令发送的,也可以是通过不同的信令发送的。
其中,第四指示信息用于指示第一确认信息是终端设备在未接收到携带第一顺序信息的第二数据包的情况下发送的,进而应用服务器可以在进行针对终端设备的流量传输控制时,避免误判终端设备的网络情况(误认为终端设备网络良好,能对第二数据包顺利接收,事实上第二数据包已被丢弃),而提高对终端设备的数据包传输速率,进而给终端设备的网络带来更多传输压力,导致更多数据包丢包的情况。
可选的,在第三网元包括核心网网元的情况下,在第三网元从终端设备接收第一顺序信息之前,还可以包括步骤S610-S612:
S610,第三网元接收第四数据包。
S611,第三网元将第三顺序信息标记在第四数据包的GTP(GPRS tunneling protocol,GPRS隧道协议)层协议头中。
S612,第三网元将标记后的第四数据包发送给接入网设备。
其中,第四数据包是第一业务的任意一个数据包,第四数据包的第三顺序信息包括指示第四数据包的顺序的信息。应理解,第四数据包可能包括第二数据包,那么第四数据包的第三顺序信息也就是第二数据包的第一顺序信息。
若第三顺序信息是TCP层协议头中包含的信息,由于第三网元是核心网网元,如UPF网元,第三网元可以获取TCP层协议头中的第三顺序信息,而接入网设备不能获取TCP层协议头中包含的信息,因此第三网元在将第四数据包向接入网设备传输之前,可以获取第四数据包TCP层协议头中的第三顺序信息,并标记在第四数据包的GTP层,进而接入网设备在接收到第四数据包后,可以从第四数据包的GTP层获取第四数据包的第三顺序信息,进而判断第四数据包是否是丢弃的数据包。
可选的,在第三网元包括接入网设备的情况下,步骤S605中第三网元丢弃第二数据包具体可以包括第三网元获取第二数据包的GTP层协议头中标记的顺序信息,在GTP层协议头中标记的顺序信息与第一顺序信息匹配的情况下,丢弃第二数据包。
其中,接入网设备接收到的第二数据包的GTP协议头中标记的顺序信息可以是核心网网元,如UPF网元标记的,进而接入网设备可以从第二数据包的GTP层协议头中获取标记的顺序信息,与第三网元发送的第一顺序信息进行比较,在二者匹配的情况下,将第二数据包丢弃。这里,判断二者是匹配的情况,可以是二者完全相同,也可以是第二数据包的GTP层协议头标记的顺序信息中指定字段的信息,与第三网元发送的第一顺序信息中指定字段的信息相同,等等,具体不做限定。
可选的,该方法中S602后,还可以包括步骤S613和S614:
S613,终端设备接收携带第一顺序信息的第二数据包。
S614,终端设备丢弃第二数据包。
若终端设备在S602后接收到了第二数据包(也就是执行了S613),则执行S614;若在S602后未接收到第二数据包(也就是未执行S613),则不执行S614。步骤S614中,终端设备可以根据S601中确定的第一顺序信息丢弃第二数据包。
可选的,该方法中S602后,还可以包括步骤S615或者S616:
S615,终端设备在接收到携带第一顺序信息的第二数据包的情况下,丢弃该第二数据包,将第一顺序信息从第三记录列表中删除。
S616,终端设备在从确定出第一顺序信息起的第三时长后,将第一顺序信息从第三记录列表中删除。
其中,步骤S615或S616中的第三记录列表中包括终端设备针对第一业务待丢弃的数据包的顺序信息。进一步可选的,终端设备在S601中确定出第一顺序信息后,将第一顺序信息存储于第三记录列表中,进而在满足条件的情况下,执行步骤S615或S616。第三记录列表中存储的第一顺序信息在S614中用于根据该第一顺序信息删除第二数据包。
终端设备通过步骤S615,可以在接收到已被确定为丢弃的数据包后,丢弃该第二数据包,并从第三记录列表中删除该数据包的信息,终端设备可以进一步对第三记录列表中未被删除的数据包的信息进行其他处理。或者终端设备通过步骤S616可以在第三时长后,将第一顺序信息从第三记录列表中删除,可以防止第一业务的数据包针对第一顺序信息的循环使用造成误丢包情况,提高第一业务的数据包传输可靠性。
可选的,在步骤S601后,该方法还可以包括步骤S617或者S618:
S617,第三网元在接收到携带所述第一顺序信息的第二数据包的情况下,将第一顺序信息从第四记录列表中删除。
若S617中接收到第二数据包,丢弃该第二数据包,并删除第四记录列表中的第一顺序信息。
S618,第三网元在从接收到第一顺序信息起的第四时长后,将第一顺序信息从第四记录列表中删除。
其中,S617或S618中第四记录列表中包括终端设备针对第一业务待丢弃的数据包的顺序信息。进一步可选的,第三网元在从终端设备接收到第一顺序信息后,将第一顺序信息存储于第四记录列表中,进而在满足条件的情况下,执行步骤S617或S618。
第三网元通过步骤S617可以在接收到已被确定为丢弃数据包的数据包后,丢弃该第二数据包,并从第四记录列表中删除该数据包的信息,第三网元可以进一步对第四记录列表中未被删除的数据包的信息进行其他处理,如定期向第一网元反馈未删除的信息,等。或者,第一网元可以通过步骤S618,在第四时长后,将第一顺序信息从第四记录列表中删除,可以防止第一业务的数据包针对第一顺序信息的循环使用造成误丢包情况,提高第一业务的数据包传输可靠性。
可选的,步骤S602之后,终端设备的网络层可以告知TCP层第一确认信息为未收到第二数据包的情况下发送的,进而TCP层可以根据该信息进行流量控制,避免对网络情况的误判带来更多的网络拥塞。
本申请实施例中,终端设备可以根据丢包策略确定第二数据包的第一顺序信息,并根据第一顺序信息向应用服务器发送第一确认信息,进而终端设备将对顺序在第二数据包后的数据包进行解码,减少第一业务出现的卡顿,保证第一业务的连续性和实时性。
参阅图8,图8是本申请实施例提供的另一种数据包传输方法的流程示意图,图8所示的数据包传输方法可以应用在UE触发的PDU会话的建立/修改场景中,包括建立一个新的PDU会话的场景、在未部署N26接口(N26是AMF网元和MME网元(4G系统中的移动性管理网元)之间的接口)的情况下,将EPS(Evolved Packet System,演进的分组系统)中的PDN(Public Data Network,公用数据网)连接切换到5GS(System architecture for the 5G System,5G系统架构)中的PDU会话的场景中、以及在非3GPP访问和3GPP访问之间切换现有的PDU会话的场景,等。如图8所示,该方法可以包括步骤S701-S717中的部分或全部步骤。需要说明的是,图8对应的实施例中,第一指示信息、第二指示信息、第三指示信息与图4或图7对应的实施例中出现的同一名称的对象为有不同指示功能的不同对象。
S701,AF网元向PCF网元发送第一业务请求。
步骤S701为可选步骤。其中,第一业务请求中可以包括以下信息中的一种或多种:第一业务对应的业务容忍时延、第一指示信息、流描述信息。
其中,第一业务对应的业务容忍时延可以为针对第一业务的数据包设定的容忍时延,比如业务容忍时限可以指示第一业务的数据包的最迟接收时限,或者指示第一业务的数据包对应的确认信息的最迟接收时限,等等,该业务容忍时延可以用于确定第二数据包的第一顺序信息。具体地,该业务容忍时延可以是用户与应用服务器之间的端到端时延门限或者部分时延,具体取决于利用该信息进行第二数据包判定的网元部署位置。
其中,第一指示信息可以用于指示PCF网元针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如在S703后PCF网元执行S704)。
其中,流描述信息可以包括用于指示第一业务的业务流的相关信息,如包括第一业务的业务流的三元组信息(包括传输协议类型、目标IP地址和目标端口),又如包括第一业务的业务流的五元组信息(包括源IP地址、源端口、目的IP地址、目的端口、传输协议类型),还可以包括第一业务对应的业务类型(如视频业务、音频业务、游戏业务或网页业务等)、接入网络标识等等。
可选的,第一业务请求中还可以包括媒体标识类型信息,该媒体标识类型信息可以包括一种类型或多种类型的标识信息,用于指示AS设备发送的第一业务的数据包可能携带的标识信息有哪些。每一种标识信息可以指示数据包的类型,进一步的,还可以指示该种数据包在第一业务的数据包编解码过程中对应的功能。
可选的,当AF网元在外部数据网络域中时,AF网元需要通过NEF网元将对应信息发往PCF网元,具体地是将对应信息发往UDR网元中,从而由UDR网元中信息的变动触发通知给PCF网元。
该方法中,在可选步骤S701未执行的情况下,也可以通过预配置的方式将第一业务请求中包含的一种或多种信息预配置给PCF网元,也可以通过其他网元或设备传输给PCF网元,此处不做限定。
S702,UE向SMF网元触发PDU会话的建立/修改。
应理解,UE可以通过(R)AN设备和AMF网元等触发SMF建立/修改PDU会话,具体的,可通过以下步骤触发SMF网元建立/修改PDU会话:
(1)UE可以通过(R)AN设备向AMF网元发送PDU会话建立/修改请求。
(2)AMF网元为UE选择SMF网元。
具体的,UE发送的PDU会话建立请求中可以包含UE请求建立的PDU会话的类型,AMF 网元可以根据UE请求建立的PDU会话的类型,为UE选择SMF网元。
(3)AMF网元向为UE选择的SMF网元发送N4上下文创建/修改请求。
S703,SMF网元向PCF网元触发会话管理策略关联的建立/修改。
S704,PCF网元向SMF网元发送第一策略信息。
第一策略信息包括以下信息中一种或多种:第一业务对应的业务容忍时延、策略与计费控制(policy and charging control,PCC)规则、第二指示信息。
其中,策略与计费控制规则可以包括PCF网元针对第一业务确定的数据包转发规则或计费规则等。
其中,第二指示信息用于指示SMF网元针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如执行S705)。
S705,SMF网元向UPF网元发送N4会话的建立/修改请求。
N4会话的建立/修改请求中可以携带以下信息中的一种或多种:业务容忍时延、包检测规则(packet detection rule,PDR)、第三指示信息。
其中,包检测规则可以包括数据包对应的转发动作规则(forwarding action rule,FAR)、服务质量(quality of services,QoS)执行规则(QoS enforcement rule,QER)或统计信息上报规则(usage reporting rule,URR)等。
其中,第三指示信息用于指示UPF网元针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如执行S707-S713中的部分或全部步骤,或者执行S715-S717中的部分或全部步骤)。
具体的,SMF网元根据各个UPF网元的负载、位置、容量等信息为UE选择UPF网元,进而向选择的UPF网元发送N4会话建立请求消息。SMF网元通过N4会话的建立,向UPF网元配置数据传输的PDR等。
S706,UPF网元向SMF网元发送N4会话响应消息。
通过上述S702-S706可以完成PDU会话的建立/修改流程。
S707,AS设备为第一业务的数据包添加对应的标识信息。
步骤S707为可选步骤,数据包携带AS设备添加的标识信息,可以使得UPF网元接收到数据包后,识别出数据包是哪种类型的数据包,进一步的,还可以识别出该数据包在第一业务的数据包的解码过程中对应的功能。
一种实现方式中,AS设备可以为第一业务的每个数据包均添加对应的标识信息。
另一种实现方式中,AS设备可以为连续相同的多个数据包中,顺序最靠前的数据包添加对应的标识信息,可以减少其他数据包携带的信息量。比如,若第一业务为视频类业务,AS设备可以为不同帧画面的第一个数据包上添加标识信息,其他数据包可以不携带标识信息,如,对于数据包1,2,3,4,5,假设1,2,3数据包属于第一帧(I帧为例),4,5为第二帧,可以在第1个数据包与第4个数据包上添加对应的I帧与P帧标识,确保网络侧能够根据该标识信息以及数据包上所携带的顺序信息,确定其他数据包所对应的帧类型。
S708,UPF网元从AS设备接收第一业务的第一数据包。
第一数据包是UPF网元从AS设备接收到的第一业务的任一数据包。
S709,UPF网元从AS设备接收第一业务的第二数据包。
S710,UPF网元对第二数据包进行校验。
在校验通过的情况下,执行步骤S711,在校验不通过的情况下,执行步骤S712。
可选的,UPF网元可以根据第二数据包携带的校验和对第二数据包进行校验。
S711,UPF网元向UE发送第二数据包。
UPF网元在接收第一业务的数据包的过程中可能接收到第二数据包,也可能未接收到第二数据包,步骤S709-S711为可选步骤,若可选步骤S709-S711未执行,UPF网元可以在S708之后执行S712。
应理解,若UPF网元在执行S711的情况下,可能还会执行S712,也可能不会执行S712,比如,在UE未成功接收到第二数据包的情况下,可以执行S712,在UE成功接收到第二数据包的情况下,不执行S712。
S712,UPF网元确定第二数据包的第一顺序信息,并记录第一顺序信息。
其中,S712中第二数据包为UPF网元确定的针对第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序。
可选的,第二数据包的第一顺序信息可以是UPF网元根据业务容忍时延确定的。
一种方式中,若UPF网元已接收到第二数据包,并已将第二数据包发送给UE,那么UPF网元可以根据对第二数据包对应的确认信息的等待时长,与业务容忍时延确定第二数据包的第一顺序信息;另一种方式中,UPF网元可以根据对第二数据包的等待时长,与业务容忍时延确定第二数据包的第一顺序信息。
一种进一步的可选方式中,第二数据包可以包括第一目标数据包,UPF网元根据业务容忍时延确定的第一顺序信息可以是第一目标数据包的第一顺序信息,UPF网元还可以根据第一目标数据包的第一顺序信息和标识信息,确定出受第一目标数据包的丢弃的影响,而不能顺利被终端设备进行业务处理的其他第二数据包的第一顺序信息。
又一种进一步的可选方式中,在第一目标数据包不携带标识信息的情况下,UPF网元可以针对第一目标数据包进行编码层的分析和识别,进而根据第一目标数据包的第一顺序信息,以及对编码层分析和识别的结果,确定出受第一目标数据包的丢弃的影响,而不能顺利被终端设备进行业务处理的其他第二数据包的第一顺序信息。
上述两种进一步的可选方式可以是S712的一部分,也可以是在S712后执行的步骤,且独立于针对第一目标数据包执行的步骤S713-S714,UPF网元可以单独针对通过第一目标数据包确定出的其他第二数据包执行步骤S713-S714。
步骤S712中UPF网元确定第一目标数据包的第一顺序信息,以及确定受第一目标数据包丢弃影响到的其他第二数据包的进一步具体实现方式,在图4对应的实施例中步骤S401中均有相应介绍,可参阅其中相应的实现方式,此处不再赘述。
S713,UPF网元确定第三数据包。
其中,第三数据包携带第一顺序信息。第三数据包可以是空数据包,也可以是包含的数据长度小于第二数据包的数据长度的数据包。
可选的,UPF网元将第二数据包的长度添加于第三数据包中,如第二数据包为TCP报文,那么第三数据包也为TCP报文,可以将第二数据包的长度添加于第三数据包的TCP协议头信息中的可选项字段。
可选的,UPF网元针对第三数据包确第一校验和,并将其携带于第三数据包中。
其中,UPF网元确定第三数据包的进一步具体实现方式可以参阅图4对应的实施例中步骤S402的实现方式,此处不再赘述。
S714,UPF网元向UE发送第三数据包。
S715,UE对第三数据包进行业务处理。
由于第三数据包携带第一顺序信息,因此UE在接收到携带第一顺序信息的第三数据包 后会认为第二数据包已到达,便对第三数据包进行业务处理,比如将第三数据包从TCP层递交给应用层进行解码等处理。
可选的,UE根据第三数据包的第一校验和对第三数据包进行校验,校验通过的情况下,对第三数据包进行业务处理。
S716,UPF网元从AS设备接收第二数据包。
S717,UPF网元将第二数据包丢弃。
在S714之后,UPF网元可能会接收到第二数据包,也可能接收不到第二数据包,因此步骤S716-S717为可选步骤,若S716中接收到第二数据包,则UPF网元执行S717。
S718,UPF网元删除记录的第一顺序信息。
步骤S718为可选步骤。可选的,UPF网元可以在接收到第三数据包对应的确认信息的情况下,将记录的第一顺序信息删除,或者,UPF网元可以在记录第一顺序信息起的一定时长后,将记录的第一顺序信息删除。
本申请实施例中,UPF网元在接收第一业务的数据包的过程中,可以确定出针对第一业务丢弃的第二数据包的第一顺序信息,并确定携带第一顺序信息的第三数据包,通过向UE发送第三数据包,使UE可以对顺序在第二数据包之后的数据包进行业务处理,避免了由于UE对第二数据包的等待而造成的第一业务的卡顿,提高了第一业务的连续性和实时性。
参阅图9,图9是本申请实施例提供的另一种数据包传输方法的流程示意图,图9所示的数据包传输方法也可以应用在UE触发的PDU会话的建立/修改场景中。如图9所示,该方法可以包括步骤S801-S820中的部分或全部步骤。需要说明的是,图9对应的实施例中,第一业务请求与图8对应的是实施例中出现的第一业务请求为携带不同信息的业务请求;第一指示信息、第二指示信息、第三指示信息、第四指示信息与图4、图7或图8对应的实施例中出现的同一名称的对象为有不同指示功能的不同对象;第一策略信息与图8对应的实施例中出现的第一策略信息为包含不同信息的策略信息。
S801,AS设备向UE发送第一应用信息。
步骤S801为可选步骤。其中,第一应用信息可以包括指示UE针对第一业务执行本申请实施例的数据包传输方法中相应的动作(如执行S809-S812等)的信息。
可选的,第一应用信息中还可以包括媒体标识类型信息,其中媒体标识类型信息可以参阅图8对应的实施例中相应的介绍,不再赘述。
该方法中,在可选步骤S801未执行的情况下,也可以通过在UE进行功能增强,使得UE可以针对第一业务执行本申请实施例的数据包传输方法中相应的动作,也可以通过预配置的方式将媒体标识类型信息预配置给UE。
S802,AF网元向PCF网元发送第一业务请求。
步骤S802为可选步骤。其中,第一业务请求中可以包括以下信息中的一种或多种:第一指示信息、流描述信息。
其中,第一指示信息可以用于指示PCF网元针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如在S804后PCF网元执行S805)。其中,关于流描述信息的介绍可以参阅图8对应的实施例中相应的介绍,不再赘述。
S803,UE向SMF网元触发PDU会话的建立/修改。
步骤S803的实现方式可参阅图8对应实施例中步骤S702的实现方式,不再赘述。
S804,SMF网元向PCF网元触发会话管理策略关联的建立/修改。
S805,PCF网元向SMF网元发送第一策略信息。
第一策略信息包括以下信息中一种或多种:策略与计费控制规则、第二指示信息。其中,策略与计费控制规则的介绍可参阅图8对应的实施例中相应的介绍,不再赘述。第二指示信息用于指示SMF网元针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如执行S806或S808)。
S806,SMF网元向UPF网元发送N4会话的建立/修改请求。
N4会话的建立/修改请求中可以携带以下信息中的一种或多种:报文检测规则、第三指示信息。其中,报文检测规则的介绍可参阅图8对应的实施例中相应的介绍,不再赘述。其中,第三指示信息用于指示UPF网元针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如执行S816-S819中的部分或全部步骤)。
S807,UPF网元向SMF网元发送N4会话响应消息。
通过上述S803-S807可以完成PDU会话的建立/修改流程。
S808,SMF网元向(R)AN设备发送第四指示信息。
其中,第四指示信息用于指示(R)AN设备针对第一业务执行本申请实施例的数据包传输方法中对应的动作(如执行S820-S822中的部分或全部步骤)。可选的,第四指示信息可以包含于N2SM信息中通过AMF网元发送给(R)AN设备。
S809,UE根据第一业务缓存的数据量,确定第二数据包的第一顺序信息,并对顺序在第二数据包之后的相邻的一个或多个数据包进行业务处理。
其中,S809中第二数据包为UE确定的针对第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序。
可选的,UE可以在第一业务缓存的数据量低于第一阈值的情况下,获取第一业务未被UE进行业务处理的数据包中,顺序最靠前的一个或多个数据包的第一顺序信息。
进一步可选的,第一业务的数据包可以携带标识信息(即媒体标识类型信息中包括的其中一种标识信息),第二数据包可以包括第一目标数据包,UE根据第一业务缓存的数据量确定的第一顺序信息为第一目标数据包的第一顺序信息,UE还可以根据第一目标数据包的第一顺序信息以及标识信息,确定出受第一目标数据包的丢弃的影响,而不能顺利被终端设备进行业务处理的其他第二数据包的第一顺序信息。上述进一步可选的方式可以是S809的一部分,也可以是在S809后执行的步骤,且独立于针对第一目标数据包执行的步骤S810、S814-S815,UPF网元可以单独针对通过第一目标数据包确定出的其他第二数据包执行步骤S810、S814-S815。
步骤S809中,UE确定第一顺序信息的进一步具体实现方式,可以参阅图7对应的实施例中,步骤601中终端设备确定第一顺序信息的方式,此处不在赘述。
S810,UE根据第一顺序信息,向AS设备发送第一确认信息。
其中,第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包。
步骤S810中,UE根据第一顺序信息发送第一确认信息的进一步具体实现方式,可以参阅图7对应的实施例中,步骤S602中终端设备根据第一顺序信息发送第一确认信息的方式,此处不再赘述。
S811,UPF网元从AS设备接收第二数据包。
S812,UPF网元将第二数据包的第一顺序信息标记在第二数据包的GTP层协议头中。
进一步的,UPF网元在S811中接收到第二数据包后,可以从第二数据包获取第一顺序信息,并标记在第二数据包的GTP层协议头中,比如,UPF网元可以从第二数据包的TCP层 协议头中获取第一顺序信息,并标记在GTP层协议头中。
S813,UPF网元向(R)AN设备发送标记后的第二数据包。
步骤S811-S813为步骤S814之前的可选步骤,也就是UPF网元在接收到UE发送的第一顺序信息之前,若在S811中接收到了第二数据包,可以执行步骤S812和S813。
通过步骤S811-S813,通过UPF网元在第二数据包的GTP层的标记,使得在(R)AN设备接收到UE发送的第一顺序信息后,若(R)AN设备接收到了UPF网元发送的第二数据包(如在针对第二数据包的RLC(radio link control,无线链路控制)层的ARQ(automatic repeat request,自动重传请求)过程中收到了第二数据包,或者在针对第二数据包的MAC(media access control,媒体接入控制)层的HARQ(hybrid automatic repeat request,混合自动重传请求)过程中接收到的第二数据包),可以从第二数据包的GTP层获取第一顺序信息,并对第二数据包进行丢弃。
S814,UE向UPF网元发送第一顺序信息。
UE向UPF网元发送的第一顺序信息用于指示UPF网元在S814之后接收到第二数据包后,将第二数据包丢弃。可选的,第一顺序信息可以包含于UE最近一次向UPF网元发送的确认信息中,发送给UPF网元,也可以包含于其他上行数据包中发送给UPF网元。
通过步骤S814,UE将第一顺序信息发送给UPF网元,使得UPF网元在接到第一顺序信息之后收到第二数据包的情况下,将第二数据包丢弃,避免了UPF网元针对第二数据包进行传输带来的传输资源浪费。
S815,UE向(R)AN设备发送第一顺序信息。
UE向(R)AN设备发送的第一顺序信息用于指示(R)AN设备在S815后接收到第二数据包后,将第二数据包丢弃。可选的,第一顺序信息可以包含于UE最近一次向(R)AN设备发送的确认信息中,发送给(R)AN设备,进一步的,第一顺序信息可以标记于UE最近一次向(R)AN设备发送的确认信息的PDCP(packet data convergence protocol,分组数据汇聚协议)层协议头信息中。第一顺序信息也可以包含于其他信息,如RCC(radio resource control,无线资源控制)信息中发送给(R)AN设备。
通过步骤S815,UE将第一顺序信息发送给(R)AN设备,使得(R)AN设备在接到第一顺序信息之后收到第二数据包的情况下,将第二数据包丢弃,避免了(R)AN设备针对第二数据包进行传输带来的传输资源浪费。
其中,S814和S815的执行顺序无关。
S816,UPF网元记录第一顺序信息。
步骤S816可以在步骤S814后执行,与S815的执行顺序无关。
S817,UPF网元从AS设备接收第二数据包。
S818,UPF网元根据第一顺序信息丢弃第二数据包。
步骤S815后,UPF网元可能会收到第二数据包,也可能不会收到第二数据包,因此,步骤S817-S818为可选步骤。
S819,UPF网元删除记录的第一顺序信息。
步骤S819为可选步骤。一种可选的方式中,UPF网元可以在S817中接收到第二数据包后,即可执行S819。另一种可选方式中,若UPF网元未在S815后执行S817,那么UPF网元可以在记录第一顺序信息起的一定时长后,将记录的第一顺序信息删除。
S820,(R)AN设备记录第一顺序信息。
步骤S820可以在步骤S815后执行,与S816-S819的执行顺序无关。
S821,(R)AN设备根据第一顺序信息丢弃第二数据包。
步骤S821可以在(R)AN设备接收到步骤S813中UPF网元发送的标记后的第二数据包,该第二数据包还未向UE发送,且UPF网元在S815中接收到第一顺序信息的情况下,执行S821。
可选的,(R)AN设备可以获取第二数据包的GTP协议头中标记的信息,在GTP协议头中标记的信息与第一顺序信息匹配的情况下,丢弃第二数据包。
S822,(R)AN设备删除记录的第一顺序信息。
步骤S822为可选步骤。一种可选的方式中,(R)AN设备可以在接收到步骤S813中UPF网元发送的标记后的第二数据包,该第二数据包还未向UE发送,且UPF网元在S815中接收到第一顺序信息的情况下,即可执行S822。另一种可选方式中,若(R)AN设备未在S815后接收到第二数据包,那么(R)AN设备可以在记录第一顺序信息起的一定时长后,将记录的第一顺序信息删除。
本申请实施例中,UE在接收第一业务的数据包的过程中,可以根据丢包策略确定出针对第一业务丢弃的第二数据包的第一顺序信息,进而UE可以根据第一顺序信息向应用服务器发送第一确认信息,并对排序在第二数据包的数据包进行解码,减少第一业务出现的卡顿,保证第一业务的连续性和实时性。
以上介绍了本申请实施例提供的数据包传输方法,下面针对该方法中涉及相关设备进行介绍,首先参见图10,图10是本申请实施例提供的一种通信设备的结构示意图。如图10所示,通信设备90至少包括第一收发模块901和第一处理模块902。
第一收发模块901,用于从应用服务器接收第一业务的第一数据包;
第一处理模块902,用于确定第二数据包的第一顺序信息,第二数据包是针对第一业务丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;
第一处理模块902,还用于确定第三数据包,第三数据包包括第一顺序信息;
第一收发模块901,还用于向终端设备发送第三数据包。
一种可选的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
另一种可选的方式中,第一顺序信息包括于第一信息中,第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
另一种可选的方式中,第一收发模块901还用于在向终端设备发送的第三数据包之后,接收第二数据包;
第一处理模块902,还用于丢弃第二数据包。
另一种可选的方式中,第一收发模块901还用于从第二网元接收第一顺序信息,第二网元为终端设备或者应用服务器;
第一处理模块902,具体用于从第一收发模块901获取第一顺序信息。
另一种可选的方式中,第一收发模块901还用于从第二网元接收第一指示信息,第一指示信息用于指示第二数据包为待丢弃的数据包。
另一种可选的方式中,第二数据包包括第一目标数据包;第一处理模块902,具体用于:
在第一收发模块901未在第一接收时限内接收到所述第一目标数据包的情况下,或者在第二接收时限内从终端设备接收到第一目标数据包对应的确认信息的情况下,获取第一目标数据包的第一顺序信息。
另一种可选的方式中,第二数据包包括第一目标数据包;第一目标数据包包括:终端设备未在第三接收时限内接收到的第一业务的数据包,和/或,终端设备在针对第一业务缓存的数据低于第一阈值的情况下,针对第一业务未进行解码的数据包中顺序最靠前的一个或多个数据包。
另一种可选的方式中,第二数据包还包括所述根据第一目标数据包的第二顺序信息和第一目标数据包的第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
另一种可选的方式中,第一信息还包括第三指示信息,第三指示信息用于指示第二数据包中数据的长度。
另一种可选的方式中,第三数据包还包括第一校验和;第一处理模块902还用于根据第一信息确定第一校验和。
另一种可选的方式中,第一处理模块902,在第一收发模块901向终端设备发送第三数据包后,还用于:
在第一收发模块901从终端设备接收到第一确认信息的情况下,或者在第一收发模块901从将第三数据包发送给终端设备起的第一时长后,将第一顺序信息从第一记录列表中删除;第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包;其中,第一记录列表中包括终端设备针对第一业务丢弃的数据包的顺序信息。
另一种可选的方式中,第一收发模块901,在第一处理模块确定第二数据包的第一顺序信息之前,还用于接收第二数据包,还用于将第二数据包发送给终端设备;
第一处理模块902,还用于将第二数据包的第一信息存储在第二记录列表中,第二记录列表包含第一收发模块901接收到的第一业务的数据包的信息;
第一处理模块902,在第一收发模块901接收到第二数据包起的第二时长内,接收到第二数据包对应的确认信息的情况下,还用于将第一顺序信息从第二记录列表中删除;
第一处理模块902,在第一收发模901块接收到第二数据包起的第二时长内,接收到第二数据包对应的确认信息的情况下,用于确定第二数据包的第一顺序信息。
另一种可选的方式中,第一收发模块901,在所述第一处理模块902确定第二数据包的第一顺序信息之前,还用于接收第二数据包;
第一处理模块902,还用于对第二数据包进行校验,以及在校验不通过的情况下,将第二数据包丢弃。
可以理解的,本申请实施例中的通信设备90可以实现图4对应的实施例中第一网元执行的步骤,如步骤S401或S402,或执行图8中UE执行的步骤。关于图10中的第一网元包括的功能组件的具体实现方式及相应的有益效果,可参考前述图4或图8的实施例的具体介绍。
上述图10所示实施例中的通信设备可以以图11所示的通信设备100实现。参阅图11,图11是本申请实施例提供的又一种通信设备的结构示意图,如图11所示,通信设备100包括:处理器1001、存储器1002和收发器1004。
处理器1001可以用于确定或处理第二数据包的第一顺序信息,或者确定第三数据包等。例如,实现图4对应实施例中的步骤S401或S402,等。
存储器1002用于存储供通信设备100执行的程序代码和数据,处理器1001可以执行存储器1002中存储的应用程序代码,以实现图4所示实施例中第一网元的动作,或实现图8所示实施例中UE的动作。
处理器1001与存储器1002通信连接,例如通过总线1003相连。总线1003可以是PCI总线或EISA总线等。所述总线1003可以分为地址总线、数据总线和控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器1004,用于支持通信设备100与上述实施例中的应用服务器、终端设备或者其他网元的信息传输。例如,实现图4对应实施例中的步骤S400;或实现图8对应实施例中的步骤S714或S716等。
需要说明的是,实际应用中通信设备100可以包括一个或者多个处理器,该通信设备100的结构并不构成对本申请实施例的限定。
处理器1001可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1004可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1002可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1002也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1002还可以包括上述种类的存储器的组合。
在本申请实施例中还提供了一种计算机存储介质,可以用于存储图11所示实施例中通信设备100所用的计算机软件指令,其包含用于执行上述实施例中为通信设备100所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被图10或图11所示的通信设备运行时,可以执行上述图10所示实施例中为通信设备90所设计的数据包传输方法,或者执行上述图11所示实施例中为通信设备100所设计的数据包传输方法。
参见图12,图12是本申请实施例提供的另一种通信设备的结构示意图,如图12所示,该通信设备110至少包括第二处理模块1101和第二收发模块1102。其中:
第二处理模块1101,用于确定第二数据包的第一顺序信息,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;
第二收发模块1102,用于向第一网元发送第二数据包的第一顺序信息,第一顺序信息用于触发第一网元在从应用服务器接收第一业务的数据包的过程中,确定包括第一顺序信息的第三数据包并向终端设备发送第三数据包。
在一种可选的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
在另一种可选的方式中,第一顺序信息包括于第一信息中,第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
在另一种可选的方式中,第二收发模块1102还用于向第一网元发送第一指示信息,第一指示信息用于指示第二数据包为丢弃的数据包。
在另一种可选的方式中,第二数据包包括第一目标数据包;第二处理模块1101具体用于:
在第二收发模块1102未在第三接收时限内接收到第一目标数据包的情况下,获取第一目标数据包的第一顺序信息;
或者,在通信设备缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第一目标数据包的第一顺序信息。
在另一种可选的方式中,第二数据包还包括根据所述第一目标数据包的第二顺序信息和第二指示信息确定的第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
在又一种可选的方式中,第一信息还包括第三指示信息,第三指示信息用于指示第二数据包的长度。
可以理解的,本申请实施例中的通信设备110可以实现图4对应的实施例中第二网元执行的步骤,或实现图8中UE执行的部分步骤。关于图12中的通信设备110包括的功能组件的具体实现方式及相应的有益效果,可参考前述图4或图8的实施例的具体介绍。
上述图12所示实施例中的通信设备可以以图13所示的通信设备120实现。参阅图13,图13是本申请实施例提供的又一种通信设备的结构示意图,如图13所示,通信设备120包括:处理器1201、存储器1202和收发器1204。
处理器1201可以用于确定第二数据包的第一顺序信息,例如,在图4对应的实施例中确定向第一网元发送的第二数据包的第一顺序信息。
存储器1202用于存储供通信设备120执行的程序代码和数据,处理器1201可以执行存储器1202中存储的应用程序代码,以实现图4实施例提供的第二网元执行的步骤。
处理器1201与存储器1202通信连接,例如通过总线1203相连。总线1203可以是PCI总线或EISA总线等。所述总线1203可以分为地址总线、数据总线和控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器1204,用于支持通信设备120与上述实施例中的第一网元或其他网元等的信息传输。例如,向第一网元传输第二数据包的第一顺序信息。
需要说明的是,实际应用中通信设备120可以包括一个或者多个处理器,该通信设备120的结构并不构成对本申请实施例的限定。
处理器1201可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1204可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1202可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1202也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1202还可以包括上述种类的存储器的组合。
在本申请实施例中还提供了一种计算机存储介质,可以用于存储图13所示实施例中通信设备所用的计算机软件指令,其包含用于执行上述实施例中为通信设备所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被图12或图13所示的通信设备运行时,可以执行上述图12所示实施例中为通信设备110所设计的数据包传输方法,或者执行上述图13所示实施例中为通信设备120所设计的数据包传输方法。
参见图14,图14为本申请实施例提供的一种终端设备的结构示意图,如图14所示,该终端设备130至少包括第三处理模块1301和第三收发模块1302。其中:
第三处理模块1301,用于根据丢包策略确定第二数据包的第一顺序信息,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序;
第三收发模块1301,用于根据第一顺序信息,向应用服务器发送第一确认信息,其中,第一确认信息用于指示终端设备已接收到携带第一顺序信息的数据包。
在一种可选的方式中,第三收发模块1302,在第三处理模块1301根据丢包策略确定出第二数据包的第一顺序信息之后,还用于接收携带第一顺序信息的第二数据包;
第三处理模块1301,还用于丢弃第二数据包。
在另一种可选的方式中,第三处理模块1301,还用于在第三收发模块1302接收到携带第一顺序信息的第二数据包的情况下,或者在从第三处理模块1301确定出第一顺序信息起的第三时长后,将第一顺序信息从第三记录列表中删除;
其中,第三记录列表中包括终端设备针对第一业务进行丢弃的数据包的信息。
在另一种可选的方式中,第三收发模块1302,在第三处理模块1301根据丢包策略确定出第二数据包的第一顺序信息之后,还用于向第三网元发送第一顺序信息,第一顺序信息用于触发第三网元在接收到第二数据包时丢弃第二数据包。
在另一种可选的方式中,第二数据包为TCP报文,第一顺序信息包括第二数据包的TCP序列号。
在另一种可选的方式中,第二数据包包括第一目标数据包,第三处理模块1301具体用于:
在第三收发模块1302未在第三接收时限内接收到第一目标数据包的情况下,获取第一目标数据包的第一顺序信息;
或者,在终端设备缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个第一目标数据包的第一顺序信息。
在另一种可选的方式中,第二数据包还包括第二目标数据包,第三处理模块1301还用于:
根据第一目标数据包的第二顺序信息和第二指示信息确定第二目标数据包,第二顺序信息用于指示第一目标数据包的顺序,第二指示信息用于指示第一目标数据包在第一业务中对应的编码类型。
在又一种可选的方式中,第三收发模块1302还用于向应用服务器发送第四指示信息,第四指示信息用于指示第一确认信息是终端设备在未接收到第二数据包的情况下发送的。
可以理解的,本申请实施例中的终端设备130可以实现图7对应的实施例中终端设备执行的步骤,如步骤S601,或执行图9中UE执行的步骤。关于图14中的终端设备130包括的功能组件的具体实现方式及相应的有益效果,可参考前述图4或图9的实施例的具体介绍。
上述图14所示实施例中的终端设备130可以以图15所示的终端设备140实现。参阅图 15,图15是本申请实施例提供的另一种终端设备的结构示意图,如图15所示,终端设备140包括:处理器1401、存储器1402和收发器1404。
处理器1401可以用于确定第二数据包的第一顺序信息。例如,实现图6对应实施例中的步骤S601。
存储器1402用于存储供终端设备140执行的程序代码和数据,处理器1401可以执行存储器1402中存储的应用程序代码,以实现图6对应实施例中终端设备的动作,或者实现图8中UE的动作。
处理器1401与存储器1402通信连接,例如通过总线1403相连。总线1403可以是PCI总线或EISA总线等。所述总线1403可以分为地址总线、数据总线和控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器1404,用于支持终端设备140与上述实施例中的应用服务器、第一网元或其他网元的信息传输。例如,实现图6对应实施例中的步骤S602;或实现图8对应实施例中的步骤S815等。
需要说明的是,实际应用中终端设备140可以包括一个或者多个处理器,该终端设备140的结构并不构成对本申请实施例的限定。
处理器1401可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1404可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1402可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1402也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1402还可以包括上述种类的存储器的组合。
在本申请实施例中还提供了一种计算机存储介质,可以用于存储图15所示实施例中第一终端设备140所用的计算机软件指令,其包含用于执行上述实施例中为终端设备140所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被图14或图15所示的终端设备运行时,可以执行上述图14所示实施例中为终端设备130所设计的数据包传输方法,或者执行上述图15所示实施例中为终端设备140所设计的数据包传输方法。
图16是本申请实施例提供的另一种通信设备的结构示意图,如图16所示,该通信设备150至少包括第四收发模块1501和第四处理模块1502。其中:
第四收发模块1501,用于从终端设备接收第一顺序信息,第一顺序信息用于指示第二数据包的顺序;第二数据包是第一业务待丢弃的数据包;
第四收发模块1501,还用于从应用服务器接收携带第一顺序信息的第二数据包;
第四处理模块1502,用于丢弃第二数据包。
在一种可选的方式中,第四收发模块1501,还用于接收第四数据包;
第四处理模块1502,还用于将第四数据包的第三顺序信息标记在第四数据包的GTP层协议头中,第四数据包的第三顺序信息包括指示第四数据包的顺序的信息;
第四收发模块1501,还用于将标记后的第四数据包发送给接入网设备。
在另一种可选的方式中,第四处理模块1502,具体用于:
获取第二数据包的GTP层协议头中标记的顺序信息,在GTP层协议头中标记的信息与第一顺序信息匹配的情况下,丢弃第二数据包。
在又一种可选的方式中,第四处理模块1502,在第四收发模块1501从终端设备接收第一顺序信息后,还用于:
在第四收发模块1501接收到携带第一顺序信息的第二数据包的情况下,或者在从第四收发模块1501接收到所述第一顺序信息起的第四时长后,将第一顺序信息从第四记录列表中删除;
其中,第四记录列表中包括终端设备针对第一业务进行丢弃的数据包的顺序信息。
可以理解的,本申请实施例中的通信设备150可以实现图7对应的实施例中第三网元执行的步骤,或图9中UPF网元或(R)AN设备执行的部分步骤。关于图6中的通信设备150包括的功能组件的具体实现方式及相应的有益效果,可参考前述图7或图9的实施例的具体介绍。
上述图16所示实施例中的通信设备可以以图17所示的通信设备160实现。参阅图17,图17是本申请实施例提供的又一种通信设备的结构示意图,如图17所示,通信设备160包括:处理器1601、存储器1602和收发器1604。
处理器1601可以用于根据第一顺序信息对第二数据包进行丢弃,例如,在图8对应的实施例中执行S818等。
存储器1602用于存储供通信设备160执行的程序代码和数据,处理器1601可以执行存储器1602中存储的应用程序代码,以实现图6实施例提供的第三网元执行的步骤。
处理器1601与存储器1602通信连接,例如通过总线1603相连。总线1603可以是PCI总线或EISA总线等。所述总线1603可以分为地址总线、数据总线和控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器1604,用于支持通信设备160与上述实施例中的终端设备或其他网元等的信息传输。例如,从终端设备接收第二数据包的第一顺序信息等。
需要说明的是,实际应用中通信设备160可以包括一个或者多个处理器,该通信设备160的结构并不构成对本申请实施例的限定。
处理器1601可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1604可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1602可以包括易失性存储器(volatile memory),例如随机存取存储器(random  access memory,RAM);存储器1602也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1602还可以包括上述种类的存储器的组合。
在本申请实施例中还提供了一种计算机存储介质,可以用于存储图17所示实施例中通信设备所用的计算机软件指令,其包含用于执行上述实施例中为通信设备所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被图16或图17所示的通信设备运行时,可以执行上述图16所示实施例中为通信设备150所设计的数据包传输方法,或者执行上述图17所示实施例中为通信设备160所设计的数据包传输方法。
在本申请实施例中还提供了一种数据包传输系统,该数据包传输系统包括上述图10对应实施例中的通信设备90,以及上述图12对应实施例中的通信设备110,以实现本申请实施例所涉及的数据包传输方法。
在本申请实施例中还提供了另一种数据包传输系统,该数据包传输系统包括上述图11对应实施例中的通信设备100,以及上述图13对应实施例中的通信设备120,以实现本申请实施例所涉及的数据包传输方法。
在在本申请实施例中还提供了另一种数据包传输系统,该数据包传输系统包括上述图14对应实施例中的终端设备130,以及上述图16对应实施例中的通信设备150,以实现本申请实施例所涉及的数据包传输方法。
在本申请实施例中还提供了又一种数据包传输系统,该数据包传输系统包括上述图15对应实施例中的终端设备140,以及上述图17对应实施例中的通信设备160,以实现本申请实施例所涉及的数据包传输方法。
参见图18,图18是本申请实施例提供的一种通信芯片的结构示意图。如图18所示,通信芯片170可包括:处理器1701,以及耦合于处理器1701的一个或多个通信接口1702。其中:
处理器1701可用于读取和执行计算机可读指令。具体实现中,处理器1701可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器1701的硬件架构可以是专用集成电路(application specific integrated circuits,ASIC)架构、MIPS架构、ARM架构或者NP架构等等。处理器1701可以是单核的,也可以是多核的。
接口1702可用于输入待处理的信号或数据至处理器1701,并且可以向外输出处理器1701的处理结果。例如,通信接口1702可以是通用输入输出(general purpose input output,GPIO)接口,可以和多个外围设备(如显示器(LCD)、摄像头(camara)、射频(radio frequency,RF)模块等等)连接。通信接口1702通过总线1703与处理器1701相连。
本申请中,处理器1701可用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中终端设备的实现程序,并执行该程序包含的指令;或者用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中第一网元的实现程序,并执行该程序包含的 指令;或者用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中第二网元的实现程序,并执行该程序包含的指令;或者用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中第三网元的实现程序,并执行该程序包含的指令;通信接口1702可用于输出处理器1701的执行结果。本申请中,通信接口1702可具体用于输入第二数据包的第一顺序信息,或是输出处理器1701处理得到的第二数据包的第一顺序信息,等。关于本申请的一个或多个实施例提供的数据包传输方法可参考前述图4、图7-至图9所示各个实施例,这里不再赘述。
需要说明的,处理器1701、通信接口1702各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本领域普通技术人员可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

Claims (30)

  1. 一种数据包传输方法,其特征在于,包括:
    第一网元从应用服务器接收第一业务的第一数据包;
    所述第一网元确定第二数据包的第一顺序信息,所述第二数据包是所述第一业务待丢弃的数据包,所述第一顺序信息用于指示所述第二数据包的顺序;
    所述第一网元确定第三数据包,所述第三数据包包括所述第一顺序信息;
    所述第一网元向终端设备发送所述第三数据包。
  2. 根据权利要求1所述的方法,其特征在于,所述第二数据包为TCP报文,所述第一顺序信息包括所述第二数据包的TCP序列号。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一顺序信息包括于第一信息中,所述第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
  4. 根据权利要求1-3中任一项所述的方法,其特征在于,所述第一网元向终端设备发送所述第三数据包之后,还包括:
    所述第一网元接收所述第二数据包;
    所述第一网元丢弃所述第二数据包。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述第一网元获取所述第二数据包的第一顺序信息包括:
    所述第一网元从第二网元接收所述第一顺序信息;所述第二网元为所述终端设备或者所述应用服务器。
  6. 根据权利要求5所述的方法,其特征在于,所述方法还包括:
    所述第一网元从所述第二网元接收第一指示信息,所述第一指示信息用于指示所述第二数据包为待丢弃的数据包。
  7. 根据权利要求1-4中任一所述的方法,其特征在于,所述第二数据包包括第一目标数据包;
    所述第一网元确定第二数据包的第一顺序信息包括:
    所述第一网元未在第一接收时限内接收到所述第一目标数据包的情况下,或者所述第一网元未在第二接收时限内从所述终端设备接收到所述第一目标数据包对应的确认信息的情况下,获取所述第一目标数据包的第一顺序信息。
  8. 根据权利要求5或6所述的方法,其特征在于,所述第二数据包包括第一目标数据包;
    所述第一目标数据包包括:所述终端设备未在第三接收时限内接收到的所述第一业务的数据包,和/或,所述终端设备在针对所述第一业务缓存的数据低于第一阈值的情况下,针对所述第一业务未进行解码的数据包中顺序最靠前的一个或多个数据包。
  9. 根据权利要求7或8所述的方法,其特征在于,所述第二数据包还包括所述根据所述 第一目标数据包的第二顺序信息和所述第一目标数据包的第二指示信息确定的第二目标数据包,所述第二顺序信息用于指示所述第一目标数据包的顺序,所述第二指示信息用于指示所述第一目标数据包在所述第一业务中对应的编码类型。
  10. 根据权利要求3中任一项所述的方法,其特征在于,所述第一信息还包括第三指示信息,所述第三指示信息用于指示所述第二数据包的长度。
  11. 根据权利要求1-10中任一项所述的方法,其特征在于,所述第一网元向终端设备发送所述第三数据包之后,还包括:
    所述第一网元在从所述终端设备接收到第一确认信息的情况下,或者所述第一网元在从将所述第三数据包发送给所述终端设备起的第一时长后,将所述第一顺序信息从第一记录列表中删除;所述第一确认信息用于指示所述终端设备已接收到携带所述第一顺序信息的数据包;
    其中,所述第一记录列表中包括所述第一网元针对所述第一业务丢弃的数据包的顺序信息。
  12. 根据权利要求1-11中任一项所述的方法,其特征在于,所述第一网元确定所述第二数据包的第一顺序信息之前,还包括:
    所述第一网元接收所述第二数据包;
    所述第一网元将所述第二数据包发送给所述终端设备,将所述第二数据包的所述第一顺序信息存储在第二记录列表中,所述第二记录列表包含所述第一网元接收到的所述第一业务的数据包的信息;
    所述第一网元在从接收到所述第二数据包起的第二时长内,接收到所述第二数据包对应的确认信息的情况下,将所述第一顺序信息从所述第二记录列表中删除;
    所述第一网元在从接收到所述第二数据包起的第二时长内,未接收到所述第二数据包对应的确认信息的情况下,执行所述第一网元确定所述第二数据包的第一顺序信息。
  13. 一种数据包传输方法,其特征在于,包括:
    第二网元确定第二数据包的第一顺序信息,所述第二数据包是所述第一业务待丢弃的数据包,所述第一顺序信息用于指示所述第二数据包的顺序;
    所述第二网元向第一网元发送所述第二数据包的第一顺序信息,所述第一顺序信息用于触发所述第一网元在从应用服务器接收所述第一业务的数据包的过程中,确定包括所述第一顺序信息的第三数据包并向终端设备发送所述第三数据包。
  14. 根据权利要求13所述的方法,其特征在于,所述第二数据包为TCP报文,所述第一顺序信息包括所述第二数据包的TCP序列号。
  15. 根据权利要求13或14所述的方法,其特征在于,所述第一顺序信息包括于第一信息中,所述第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
  16. 根据权利要求13-15中任一项所述的方法,其特征在于,所述方法还包括:
    所述第二网元向所述第一网元发送第一指示信息,所述第一指示信息用于指示所述第二数据包为待丢弃的数据包。
  17. 根据权利要求13-16中任一项所述的方法,其特征在于,所述第二数据包包括第一目标数据包;
    所述第二网元确定第二数据包的第一顺序信息包括:
    所述第二网元未在第三接收时限内接收到所述第一目标数据包的情况下,获取所述第一目标数据包的第一顺序信息;
    或者,所述第二网元在缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个所述第一目标数据包的第一顺序信息。
  18. 根据权利要求17所述的方法,其特征在于,所述第二数据包还包括所述根据所述第一目标数据包的第二顺序信息和第二指示信息确定的第二目标数据包,所述第二顺序信息用于指示所述第一目标数据包的顺序,所述第二指示信息用于指示所述第一目标数据包在所述第一业务中对应的编码类型。
  19. 根据权利要求15所述的方法,其特征在于,所述第一信息还包括第三指示信息,所述第三指示信息用于指示所述第二数据包的长度。
  20. 一种数据包传输方法,其特征在于,包括:
    终端设备根据丢包策略确定所述第二数据包的第一顺序信息,所述第二数据包是第一业务待丢弃的数据包,所述第一顺序信息用于指示所述第二数据包的顺序;
    所述终端设备根据所述第一顺序信息,向应用服务器发送第一确认信息,其中,所述第一确认信息用于指示所述终端设备已接收到携带所述第一顺序信息的数据包。
  21. 根据权利要求20所述的方法,其特征在于,所述终端设备根据丢包策略确定所述第二数据包的第一顺序信息之后,还包括:
    所述终端设备接收携带所述第一顺序信息的所述第二数据包;
    所述终端设备丢弃所述第二数据包。
  22. 根据权利要求20-21中任一项所述的方法,其特征在于,所述终端设备根据丢包策略确定所述第二数据包的第一顺序信息之后,还包括:
    所述终端设备向第三网元发送所述第一顺序信息,所述第一顺序信息用于触发所述第三网元在接收到所述第二数据包时丢弃所述第二数据包。
  23. 根据权利要求20-22中任一项所述的方法,其特征在于,所述第二数据包为TCP报文,所述第一顺序信息包括所述第二数据包的TCP序列号。
  24. 根据权利要求20-23中任一项所述的方法,其特征在于,所述第二数据包包括第一目标数据包,所述终端设备确定所述第二数据包的第一顺序信息包括:
    所述终端设备未在第三接收时限内接收到所述第一目标数据包的情况下,获取所述第一 目标数据包的第一顺序信息;
    或者,所述终端设备在缓存的第一业务的数据量低于第一阈值的情况下,获取所述第一业务未进行解码的数据包中顺序最靠前的一个或多个所述第一目标数据包的第一顺序信息。
  25. 根据权利要求24所述的方法,其特征在于,所述第二数据包还包括第二目标数据包,所述终端设备确定所述第二数据包的第一顺序信息还包括:
    所述终端设备根据所述第一目标数据包的第二顺序信息和第二指示信息确定所述第二目标数据包,所述第二顺序信息用于指示所述第一目标数据包的顺序,所述第二指示信息用于指示所述第一目标数据包在所述第一业务中对应的编码类型。
  26. 根据权利要求20-25中任一所述的方法,其特征在于,所述方法还包括:
    所述终端设备向所述应用服务器发送第四指示信息,所述第四指示信息用于指示所述第一确认信息是所述终端设备在未接收到所述第二数据包的情况下发送的。
  27. 一种数据包传输方法,其特征在于,包括:
    第三网元从终端设备接收第一顺序信息;所述第一顺序信息用于指示第二数据包的顺序;所述第二数据包是第一业务待丢弃的数据包;
    所述第三网元从应用服务器接收携带所述第一顺序信息的所述第二数据包;
    所述第三网元丢弃所述第二数据包。
  28. 根据权利要求27所述的方法,其特征在于,所述第三网元从终端设备接收第一顺序信息之后,还包括:
    所述第三网元在接收到携带所述第一顺序信息的所述第二数据包的情况下,或者所述第三网元在从接收到所述第一顺序信息起的第四时长后,将所述第一顺序信息从第四记录列表中删除;
    其中,所述第四记录列表中包括所述终端设备针对所述第一业务待丢弃的数据包的顺序信息。
  29. 一种通信装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序以实现如权利要求1至28中任一项所述的方法。
  30. 一种计算机存储介质,其特征在于,所述计算机存储介质上存储有指令,当所述指令在处理器上运行时,使得所述处理器执行权利要求1至28中任一项所述的方法。
PCT/CN2021/143091 2020-12-31 2021-12-30 数据包传输方法及相关设备 WO2022143902A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21914633.9A EP4254963A4 (en) 2020-12-31 2021-12-30 DATA PACKET TRANSMISSION METHOD AND ASSOCIATED DEVICE
US18/344,053 US20230345058A1 (en) 2020-12-31 2023-06-29 Data packet transmission method and related device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011639881.3 2020-12-31
CN202011639881.3A CN114765690B (zh) 2020-12-31 2020-12-31 数据包传输方法、通信装置及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/344,053 Continuation US20230345058A1 (en) 2020-12-31 2023-06-29 Data packet transmission method and related device

Publications (1)

Publication Number Publication Date
WO2022143902A1 true WO2022143902A1 (zh) 2022-07-07

Family

ID=82259072

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/143091 WO2022143902A1 (zh) 2020-12-31 2021-12-30 数据包传输方法及相关设备

Country Status (4)

Country Link
US (1) US20230345058A1 (zh)
EP (1) EP4254963A4 (zh)
CN (1) CN114765690B (zh)
WO (1) WO2022143902A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024055871A1 (zh) * 2022-09-14 2024-03-21 华为技术有限公司 一种通信系统中传输数据的方法和通信装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024016279A1 (zh) * 2022-07-21 2024-01-25 Oppo广东移动通信有限公司 通信方法、装置、设备、存储介质、芯片、产品及程序
CN116887009B (zh) * 2023-09-06 2023-12-12 湖南智警公共安全技术研究院有限公司 基于5g网络的端云一体视频结构化方法及系统
CN117478680B (zh) * 2023-12-26 2024-03-15 国网四川省电力公司信息通信公司 基于物联管理平台的终端数据流传输远程控制方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000012A1 (en) * 2007-06-22 2008-12-31 Mobile Ip Pty Ltd Method of communicating a data stream over a communication network
CN101924625A (zh) * 2010-08-23 2010-12-22 华为技术有限公司 数据包重传控制的方法和网络侧设备
CN105933319A (zh) * 2016-05-30 2016-09-07 贵阳朗玛信息技术股份有限公司 视频数据包的发送、接收方法及装置
CN108289007A (zh) * 2017-01-10 2018-07-17 中兴通讯股份有限公司 数据包传输方法及装置
CN109951255A (zh) * 2019-03-27 2019-06-28 深圳市网心科技有限公司 一种基于tcp的数据传输方法、系统、源设备、及目标设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729228B (zh) * 2008-10-31 2014-04-16 华为技术有限公司 丢包抑制重传的方法、网络节点和系统
CN102905380B (zh) * 2012-09-14 2015-03-04 西安交通大学 一种hsdpa网络中针对实时视频的跨层调度方法
CN105933453A (zh) * 2016-06-28 2016-09-07 广州华多网络科技有限公司 一种传输数据的方法和系统
CN112713970B (zh) * 2016-11-02 2022-05-13 华为技术有限公司 一种发送报文的方法、装置、芯片及终端
CN109714134B (zh) * 2017-10-26 2020-11-06 华为技术有限公司 接收窗口滑动方法及装置
US10412625B1 (en) * 2018-04-24 2019-09-10 Verizon Patent And Licensing Inc. Systems and methods for tracking and calculating network usage in a network with multiple user plane functions
CN111787566B (zh) * 2018-08-07 2022-03-18 Oppo广东移动通信有限公司 一种信息传输方法及装置、通信设备
CN111163019B (zh) * 2018-11-07 2022-10-28 中兴通讯股份有限公司 处理数据包的方法、装置和存储介质
CN111193792A (zh) * 2019-12-27 2020-05-22 北京指掌易科技有限公司 一种消息传输方法、装置、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000012A1 (en) * 2007-06-22 2008-12-31 Mobile Ip Pty Ltd Method of communicating a data stream over a communication network
CN101924625A (zh) * 2010-08-23 2010-12-22 华为技术有限公司 数据包重传控制的方法和网络侧设备
CN105933319A (zh) * 2016-05-30 2016-09-07 贵阳朗玛信息技术股份有限公司 视频数据包的发送、接收方法及装置
CN108289007A (zh) * 2017-01-10 2018-07-17 中兴通讯股份有限公司 数据包传输方法及装置
CN109951255A (zh) * 2019-03-27 2019-06-28 深圳市网心科技有限公司 一种基于tcp的数据传输方法、系统、源设备、及目标设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4254963A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024055871A1 (zh) * 2022-09-14 2024-03-21 华为技术有限公司 一种通信系统中传输数据的方法和通信装置

Also Published As

Publication number Publication date
CN114765690B (zh) 2023-09-12
EP4254963A4 (en) 2024-04-24
CN114765690A (zh) 2022-07-19
EP4254963A1 (en) 2023-10-04
US20230345058A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
WO2022143902A1 (zh) 数据包传输方法及相关设备
CN110086578B (zh) 数据传输方法、装置和系统
CN111740808B (zh) 一种数据传输方法及装置
US20190268797A1 (en) Data transmission method and apparatus
EP1427146B1 (en) Packet transmission system and packet reception system
US20230083441A1 (en) Managing subpacket transmission and reception for advanced interactive services
WO2017161999A1 (zh) 一种报文处理的方法及相关设备
CN110249659B (zh) 服务质量流重新定位
CN111385221B (zh) 一种数据处理方法和通信设备
KR20120123386A (ko) 신뢰성 있는 데이터 통신을 위한 네트워크 추상화 계층을 파싱하는 방법 및 장치
KR20140017662A (ko) 모바일 송수신기, 기지국 송수신기, 데이터 서버, 그리고 관련 장치, 방법 및 컴퓨터 프로그램
KR101991388B1 (ko) 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치
WO2018121742A1 (zh) 一种流数据的传输方法和装置
US20220174477A1 (en) Method and apparatus for realizing network capability opening, electronic device and storage medium
RU2645283C1 (ru) Способ и устройство адаптации стека протоколов
CN110474721B (zh) 视频数据传输方法、装置及计算机可读存储介质
WO2022088833A1 (zh) 用于传输媒体流的数据包的方法和通信装置
JP2006245834A (ja) Ip網の通信装置
EP3672189B1 (en) Data transmission method, device and system
CN106712908B (zh) 数据传输方法、装置和系统
WO2018133496A1 (zh) 一种报负载分担方法及网络设备
CN107820274B (zh) 一种移动网络udp业务拥塞处理方法及基站
CN109792444B (zh) 实况内容分发系统中的播出缓冲
CN107548105B (zh) 一种基于udp的数据传输确认方法和基站
US20230412514A1 (en) Method and apparatus for managing the flow of data in pdcp

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: 21914633

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021914633

Country of ref document: EP

Effective date: 20230625

NENP Non-entry into the national phase

Ref country code: DE