CN114765690B - 数据包传输方法、通信装置及存储介质 - Google Patents
数据包传输方法、通信装置及存储介质 Download PDFInfo
- Publication number
- CN114765690B CN114765690B CN202011639881.3A CN202011639881A CN114765690B CN 114765690 B CN114765690 B CN 114765690B CN 202011639881 A CN202011639881 A CN 202011639881A CN 114765690 B CN114765690 B CN 114765690B
- Authority
- CN
- China
- Prior art keywords
- data packet
- information
- network element
- sequence
- service
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 182
- 238000004891 communication Methods 0.000 title claims description 98
- 230000005540 biological transmission Effects 0.000 title abstract description 133
- 230000008569 process Effects 0.000 claims description 39
- 238000012790 confirmation Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 13
- 230000000875 corresponding effect Effects 0.000 description 138
- 238000012545 processing Methods 0.000 description 90
- 230000006870 function Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 32
- 238000005070 sampling Methods 0.000 description 16
- 238000012986 modification Methods 0.000 description 13
- 230000004048 modification Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 10
- 238000012795 verification Methods 0.000 description 10
- 239000007787 solid Substances 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 5
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000009349 indirect transmission Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1063—Application servers providing network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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/440281—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control 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/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据包传输方法及相关设备,该方法中,第一网元可以从应用服务器接收第一业务的第一数据包,第一网元确定第二数据包的第一顺序信息,进而第一网元确定第三数据包,并向终端设备发送第三数据包。其中,第二数据包是第一业务待丢弃的数据包,第一顺序信息用于指示第二数据包的顺序,第三数据包包括第一顺序信息。通过本申请可以提高终端设备业务的连续性和实时性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据包传输方法及相关设备。
背景技术
随着5G等通信技术的发展,使得高清视频、VR(virtual reality,虚拟现实)视频、AR(augmented reality,增强现实)视频等新兴媒体业务得以落地,实现了大量媒体数据的实时传输,以及网络延时的降低。从网络层面来看,媒体业务将是未来移动网络的主要承载流量,用户对整个移动网络的体验感受,很大程度上取决于用户对媒体业务的体验感受,因此,优化用户对媒体业务的体验感受至关重要。
媒体业务中媒体数据的传输,如直播媒体流的传输,对网络延迟的要求比较高,在网络状况不佳时,可能会造成承载媒体数据的丢包重传的情况,这就会造成用户端在观看直播时的卡顿问题。在用户的实际应用中,针对这类媒体业务,在网络状况恶化的情况下,用户可能愿意降低对画质的要求,而不愿等待卡顿带来的缓冲。现有的很多媒体数据传输协议对数据包的传输都具有保序性(也称排序可靠性),例如RTSP(real time streamingprotocol,实时流传输协议)/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)AccessNetwork,(无线)接入网)设备,UE(User Equipment,终端设备)可以通过(R)AN设备与核心网连接。核心网中的网元包含多个NF(Network Function,网络功能),如AMF(Access andMobility Management Function,接入和移动性管理功能)网元、SMF(Session ManagementFunction,会话管理功能)网元、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 DataUnit,协议数据单元)会话等。
NEF网元:可以支持核心网的能力和时间的开放,如第三方边缘计算、AF网元支持的功能等。
UDR(Unified Data Repository,统一数据仓库)网元:可以向UDM(Unified DataManagement,统一数据管理)网元提供存储和检索签约数据、向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 TransportProtocol,实时传输协议)应用层头部的序列号。
可选的,第一顺序信息可以包括于第一信息中。比如,第一信息中还可以包括第二数据包的源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 tunnelingprotocol,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(PublicData 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 actionrule,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中的部分或全部步骤)。可选的,第四指示信息可以包含于N2 SM信息中通过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(automaticrepeat 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-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1004可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1002可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1002也可以包括非易失性存储器(non-volatilememory),例如只读存储器(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-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1204可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1202可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1202也可以包括非易失性存储器(non-volatilememory),例如只读存储器(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-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1404可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1402可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1402也可以包括非易失性存储器(non-volatilememory),例如只读存储器(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-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
收发器1604可以是通信接口或收发电路等,其中,该收发器是统称,在具体实现中,该收发器可以包括多个接口。
存储器1602可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1602也可以包括非易失性存储器(non-volatilememory),例如只读存储器(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的硬件架构可以是专用集成电路(applicationspecific integrated circuits,ASIC)架构、MIPS架构、ARM架构或者NP架构等等。处理器1701可以是单核的,也可以是多核的。
接口1702可用于输入待处理的信号或数据至处理器1701,并且可以向外输出处理器1701的处理结果。例如,通信接口1702可以是通用输入输出(general purpose inputoutput,GPIO)接口,可以和多个***设备(如显示器(LCD)、摄像头(camara)、射频(radiofrequency,RF)模块等等)连接。通信接口1702通过总线1703与处理器1701相连。
本申请中,处理器1701可用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中终端设备的实现程序,并执行该程序包含的指令;或者用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中第一网元的实现程序,并执行该程序包含的指令;或者用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中第二网元的实现程序,并执行该程序包含的指令;或者用于从存储器中调用本申请的一个或多个实施例提供的数据包传输方法中第三网元的实现程序,并执行该程序包含的指令;通信接口1702可用于输出处理器1701的执行结果。本申请中,通信接口1702可具体用于输入第二数据包的第一顺序信息,或是输出处理器1701处理得到的第二数据包的第一顺序信息,等。关于本申请的一个或多个实施例提供的数据包传输方法可参考前述图4、图7-至图9所示各个实施例,这里不再赘述。
需要说明的,处理器1701、通信接口1702各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本领域普通技术人员可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
Claims (30)
1.一种数据包传输方法,其特征在于,包括:
第一网元从应用服务器接收第一业务的第一数据包;
所述第一网元确定第二数据包的第一顺序信息,所述第二数据包是所述第一业务待丢弃的数据包,所述第一业务待丢弃的数据包表示终端设备不再对所述数据包进行所述第一业务相关的数据包处理,所述第一顺序信息用于指示所述第二数据包的顺序;
所述第一网元确定第三数据包,所述第三数据包包括所述第一顺序信息;
所述第一网元向所述终端设备发送所述第三数据包,所述第三数据包中携带的所述第一顺序信息用于指示所述终端设备在顺序在所述第一顺序信息所指示的所述第二数据包的顺序之前的数据包已被接收的情况下,对顺序在所述第一顺序信息所指示的所述第二数据包的顺序之后的数据包进行处理。
2.根据权利要求1所述的方法,其特征在于,所述第二数据包为TCP报文,所述第一顺序信息包括所述第二数据包的TCP序列号。
3.根据权利要求2所述的方法,其特征在于,所述第一顺序信息包括于第一信息中,所述第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
4.根据权利要求3所述的方法,其特征在于,所述第一网元向终端设备发送所述第三数据包之后,还包括:
所述第一网元接收所述第二数据包;
所述第一网元丢弃所述第二数据包。
5.根据权利要求4所述的方法,其特征在于,所述第一网元获取所述第二数据包的第一顺序信息包括:
所述第一网元从第二网元接收所述第一顺序信息;所述第二网元为所述终端设备或者所述应用服务器。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一网元从所述第二网元接收第一指示信息,所述第一指示信息用于指示所述第二数据包为待丢弃的数据包。
7.根据权利要求4所述的方法,其特征在于,所述第二数据包包括第一目标数据包;
所述第一网元确定第二数据包的第一顺序信息包括:
所述第一网元未在第一接收时限内接收到所述第一目标数据包的情况下,或者所述第一网元未在第二接收时限内从所述终端设备接收到所述第一目标数据包对应的确认信息的情况下,获取所述第一目标数据包的第一顺序信息。
8.根据权利要求6所述的方法,其特征在于,所述第二数据包包括第一目标数据包;
所述第一目标数据包包括:所述终端设备未在第三接收时限内接收到的所述第一业务的数据包,和/或,所述终端设备在针对所述第一业务缓存的数据低于第一阈值的情况下,针对所述第一业务未进行解码的数据包中顺序最靠前的一个或多个数据包。
9.根据权利要求8所述的方法,其特征在于,所述第二数据包还包括所述根据所述第一目标数据包的第二顺序信息和所述第一目标数据包的第二指示信息确定的第二目标数据包,所述第二顺序信息用于指示所述第一目标数据包的顺序,所述第二指示信息用于指示所述第一目标数据包在所述第一业务中对应的编码类型。
10.根据权利要求3所述的方法,其特征在于,所述第一信息还包括第三指示信息,所述第三指示信息用于指示所述第二数据包的长度。
11.根据权利要求10所述的方法,其特征在于,所述第一网元向终端设备发送所述第三数据包之后,还包括:
所述第一网元在从所述终端设备接收到第一确认信息的情况下,或者所述第一网元在从将所述第三数据包发送给所述终端设备起的第一时长后,将所述第一顺序信息从第一记录列表中删除;所述第一确认信息用于指示所述终端设备已接收到携带所述第一顺序信息的数据包;
其中,所述第一记录列表中包括所述第一网元针对所述第一业务丢弃的数据包的顺序信息。
12.根据权利要求1-11中任一项所述的方法,其特征在于,所述第一网元确定所述第二数据包的第一顺序信息之前,还包括:
所述第一网元接收所述第二数据包;
所述第一网元将所述第二数据包发送给所述终端设备,将所述第二数据包的所述第一顺序信息存储在第二记录列表中,所述第二记录列表包含所述第一网元接收到的所述第一业务的数据包的信息;
所述第一网元在从接收到所述第二数据包起的第二时长内,接收到所述第二数据包对应的确认信息的情况下,将所述第一顺序信息从所述第二记录列表中删除;
所述第一网元在从接收到所述第二数据包起的第二时长内,未接收到所述第二数据包对应的确认信息的情况下,执行所述第一网元确定所述第二数据包的第一顺序信息。
13.一种数据包传输方法,其特征在于,包括:
第二网元确定第二数据包的第一顺序信息,所述第二数据包是第一业务待丢弃的数据包,所述第一业务待丢弃的数据包表示终端设备不再对所述数据包进行所述第一业务相关的数据包处理,所述第一顺序信息用于指示所述第二数据包的顺序;
所述第二网元向第一网元发送所述第二数据包的第一顺序信息,所述第一顺序信息用于触发所述第一网元在从应用服务器接收所述第一业务的数据包的过程中,确定包括所述第一顺序信息的第三数据包并向所述终端设备发送所述第三数据包,所述第三数据包中携带的所述第一顺序信息用于指示所述终端设备在顺序在所述第一顺序信息所指示的所述第二数据包的顺序之前的数据包已被接收的情况下,对顺序在所述第一顺序信息所指示的所述第二数据包的顺序之后的数据包进行处理。
14.根据权利要求13所述的方法,其特征在于,所述第二数据包为TCP报文,所述第一顺序信息包括所述第二数据包的TCP序列号。
15.根据权利要求14所述的方法,其特征在于,所述第一顺序信息包括于第一信息中,所述第一信息还包括源IP地址、源端口号、目标IP地址和目标端口号。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
所述第二网元向所述第一网元发送第一指示信息,所述第一指示信息用于指示所述第二数据包为待丢弃的数据包。
17.根据权利要求13-16中任一项所述的方法,其特征在于,所述第二数据包包括第一目标数据包;
所述第二网元确定第二数据包的第一顺序信息包括:
所述第二网元未在第三接收时限内接收到所述第一目标数据包的情况下,获取所述第一目标数据包的第一顺序信息;
或者,所述第二网元在缓存的第一业务的数据量低于第一阈值的情况下,获取第一业务未进行解码的数据包中顺序最靠前的一个或多个所述第一目标数据包的第一顺序信息。
18.根据权利要求17所述的方法,其特征在于,所述第二数据包还包括所述根据所述第一目标数据包的第二顺序信息和第二指示信息确定的第二目标数据包,所述第二顺序信息用于指示所述第一目标数据包的顺序,所述第二指示信息用于指示所述第一目标数据包在所述第一业务中对应的编码类型。
19.根据权利要求15所述的方法,其特征在于,所述第一信息还包括第三指示信息,所述第三指示信息用于指示所述第二数据包的长度。
20.一种数据包传输方法,其特征在于,包括:
终端设备根据丢包策略确定第二数据包的第一顺序信息,所述第二数据包是第一业务待丢弃的数据包,所述第一业务待丢弃的数据包表示终端设备不再对所述数据包进行所述第一业务相关的数据包处理,所述第一顺序信息用于指示所述第二数据包的顺序;
所述终端设备根据所述第一顺序信息,向应用服务器发送第一确认信息,其中,所述第一确认信息用于指示所述终端设备已接收到携带所述第一顺序信息的数据包,所述第一顺序信息用于指示所述终端设备在顺序在所述第一顺序信息所指示的所述第二数据包的顺序之前的数据包已被接收的情况下,对顺序在所述第一顺序信息所指示的所述第二数据包的顺序之后的数据包进行处理。
21.根据权利要求20所述的方法,其特征在于,所述终端设备根据丢包策略确定所述第二数据包的第一顺序信息之后,还包括:
所述终端设备接收携带所述第一顺序信息的所述第二数据包;
所述终端设备丢弃所述第二数据包。
22.根据权利要求21所述的方法,其特征在于,所述终端设备根据丢包策略确定所述第二数据包的第一顺序信息之后,还包括:
所述终端设备向第三网元发送所述第一顺序信息,所述第一顺序信息用于触发所述第三网元在接收到所述第二数据包时丢弃所述第二数据包。
23.根据权利要求22所述的方法,其特征在于,所述第二数据包为TCP报文,所述第一顺序信息包括所述第二数据包的TCP序列号。
24.根据权利要求20-23中任一项所述的方法,其特征在于,所述第二数据包包括第一目标数据包,所述终端设备确定所述第二数据包的第一顺序信息包括:
所述终端设备未在第三接收时限内接收到所述第一目标数据包的情况下,获取所述第一目标数据包的第一顺序信息;
或者,所述终端设备在缓存的第一业务的数据量低于第一阈值的情况下,获取所述第一业务未进行解码的数据包中顺序最靠前的一个或多个所述第一目标数据包的第一顺序信息。
25.根据权利要求24所述的方法,其特征在于,所述第二数据包还包括第二目标数据包,所述终端设备确定所述第二数据包的第一顺序信息还包括:
所述终端设备根据所述第一目标数据包的第二顺序信息和第二指示信息确定所述第二目标数据包,所述第二顺序信息用于指示所述第一目标数据包的顺序,所述第二指示信息用于指示所述第一目标数据包在所述第一业务中对应的编码类型。
26.根据权利要求20-23、25中任一所述的方法,其特征在于,所述方法还包括:
所述终端设备向所述应用服务器发送第四指示信息,所述第四指示信息用于指示所述第一确认信息是所述终端设备在未接收到所述第二数据包的情况下发送的。
27.一种数据包传输方法,其特征在于,包括:
第三网元从终端设备接收第一顺序信息;所述第一顺序信息用于指示第二数据包的顺序;所述第二数据包是第一业务待丢弃的数据包,所述第一业务待丢弃的数据包表示终端设备不再对所述数据包进行所述第一业务相关的数据包处理,所述第一顺序信息用于指示所述终端设备在顺序在所述第一顺序信息所指示的所述第二数据包的顺序之前的数据包已被接收的情况下,对顺序在所述第一顺序信息所指示的所述第二数据包的顺序之后的数据包进行处理;
所述第三网元从应用服务器接收携带所述第一顺序信息的所述第二数据包;
所述第三网元丢弃所述第二数据包。
28.根据权利要求27所述的方法,其特征在于,所述第三网元从终端设备接收第一顺序信息之后,还包括:
所述第三网元在接收到携带所述第一顺序信息的所述第二数据包的情况下,或者所述第三网元在从接收到所述第一顺序信息起的第四时长后,将所述第一顺序信息从第四记录列表中删除;
其中,所述第四记录列表中包括所述终端设备针对所述第一业务待丢弃的数据包的顺序信息。
29.一种通信装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序以实现如权利要求1至28中任一项所述的方法。
30.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有指令,当所述指令在处理器上运行时,使得所述处理器执行权利要求1至28中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639881.3A CN114765690B (zh) | 2020-12-31 | 2020-12-31 | 数据包传输方法、通信装置及存储介质 |
EP21914633.9A EP4254963A4 (en) | 2020-12-31 | 2021-12-30 | DATA PACKET TRANSMISSION METHOD AND ASSOCIATED DEVICE |
PCT/CN2021/143091 WO2022143902A1 (zh) | 2020-12-31 | 2021-12-30 | 数据包传输方法及相关设备 |
US18/344,053 US20230345058A1 (en) | 2020-12-31 | 2023-06-29 | Data packet transmission method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639881.3A CN114765690B (zh) | 2020-12-31 | 2020-12-31 | 数据包传输方法、通信装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114765690A CN114765690A (zh) | 2022-07-19 |
CN114765690B true CN114765690B (zh) | 2023-09-12 |
Family
ID=82259072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011639881.3A Active CN114765690B (zh) | 2020-12-31 | 2020-12-31 | 数据包传输方法、通信装置及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230345058A1 (zh) |
EP (1) | EP4254963A4 (zh) |
CN (1) | CN114765690B (zh) |
WO (1) | WO2022143902A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024016279A1 (zh) * | 2022-07-21 | 2024-01-25 | Oppo广东移动通信有限公司 | 通信方法、装置、设备、存储介质、芯片、产品及程序 |
CN117768943A (zh) * | 2022-09-14 | 2024-03-26 | 华为技术有限公司 | 一种通信***中传输数据的方法和通信装置 |
CN116887009B (zh) * | 2023-09-06 | 2023-12-12 | 湖南智警公共安全技术研究院有限公司 | 基于5g网络的端云一体视频结构化方法及*** |
CN117478680B (zh) * | 2023-12-26 | 2024-03-15 | 国网四川省电力公司信息通信公司 | 基于物联管理平台的终端数据流传输远程控制方法和*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729228A (zh) * | 2008-10-31 | 2010-06-09 | 华为技术有限公司 | 丢包抑制重传的方法、网络节点和*** |
CN102905380A (zh) * | 2012-09-14 | 2013-01-30 | 西安交通大学 | 一种hsdpa网络中针对实时视频的跨层调度方法 |
CN105933453A (zh) * | 2016-06-28 | 2016-09-07 | 广州华多网络科技有限公司 | 一种传输数据的方法和*** |
CN108289007A (zh) * | 2017-01-10 | 2018-07-17 | 中兴通讯股份有限公司 | 数据包传输方法及装置 |
CN109714134A (zh) * | 2017-10-26 | 2019-05-03 | 华为技术有限公司 | 接收窗口滑动方法及装置 |
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 |
CN111163019A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 处理数据包的方法、装置和存储介质 |
CN111193792A (zh) * | 2019-12-27 | 2020-05-22 | 北京指掌易科技有限公司 | 一种消息传输方法、装置、电子设备和存储介质 |
CN111787566A (zh) * | 2018-08-07 | 2020-10-16 | Oppo广东移动通信有限公司 | 一种信息传输方法及装置、通信设备 |
Family Cites Families (5)
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 | 贵阳朗玛信息技术股份有限公司 | 视频数据包的发送、接收方法及装置 |
CN112713970B (zh) * | 2016-11-02 | 2022-05-13 | 华为技术有限公司 | 一种发送报文的方法、装置、芯片及终端 |
CN109951255A (zh) * | 2019-03-27 | 2019-06-28 | 深圳市网心科技有限公司 | 一种基于tcp的数据传输方法、***、源设备、及目标设备 |
-
2020
- 2020-12-31 CN CN202011639881.3A patent/CN114765690B/zh active Active
-
2021
- 2021-12-30 EP EP21914633.9A patent/EP4254963A4/en active Pending
- 2021-12-30 WO PCT/CN2021/143091 patent/WO2022143902A1/zh unknown
-
2023
- 2023-06-29 US US18/344,053 patent/US20230345058A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729228A (zh) * | 2008-10-31 | 2010-06-09 | 华为技术有限公司 | 丢包抑制重传的方法、网络节点和*** |
CN102905380A (zh) * | 2012-09-14 | 2013-01-30 | 西安交通大学 | 一种hsdpa网络中针对实时视频的跨层调度方法 |
CN105933453A (zh) * | 2016-06-28 | 2016-09-07 | 广州华多网络科技有限公司 | 一种传输数据的方法和*** |
CN108289007A (zh) * | 2017-01-10 | 2018-07-17 | 中兴通讯股份有限公司 | 数据包传输方法及装置 |
CN109714134A (zh) * | 2017-10-26 | 2019-05-03 | 华为技术有限公司 | 接收窗口滑动方法及装置 |
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 |
CN111787566A (zh) * | 2018-08-07 | 2020-10-16 | Oppo广东移动通信有限公司 | 一种信息传输方法及装置、通信设备 |
CN111163019A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 处理数据包的方法、装置和存储介质 |
CN111193792A (zh) * | 2019-12-27 | 2020-05-22 | 北京指掌易科技有限公司 | 一种消息传输方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022143902A1 (zh) | 2022-07-07 |
EP4254963A1 (en) | 2023-10-04 |
EP4254963A4 (en) | 2024-04-24 |
US20230345058A1 (en) | 2023-10-26 |
CN114765690A (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114765690B (zh) | 数据包传输方法、通信装置及存储介质 | |
CN111406415B (zh) | 多播和广播服务的方法和*** | |
CN110086578B (zh) | 数据传输方法、装置和*** | |
JP6025880B2 (ja) | データ伝送方法、装置及びシステム | |
CN111740808B (zh) | 一种数据传输方法及装置 | |
RU2461147C2 (ru) | Способ обработки радиопротокола в системе подвижной связи и передатчик подвижной связи | |
EP1427146B1 (en) | Packet transmission system and packet reception system | |
CN110249659B (zh) | 服务质量流重新定位 | |
KR102300300B1 (ko) | 헤더 압축을 이용한 패킷 통신 방법 및 장치 | |
WO2018201498A1 (zh) | 一种数据接收状态报告方法及装置 | |
CN114051173B (zh) | 一种基于rtp扩展头部的视频帧可靠传输方法、装置及设备 | |
JP2006245834A (ja) | Ip網の通信装置 | |
EP3672189B1 (en) | Data transmission method, device and system | |
CN115250506A (zh) | 一种通信方法及设备 | |
CN101741752A (zh) | 视频流传输的方法、装置和*** | |
CN112311503A (zh) | 一种视频数据传输的方法及装置 | |
CN117812746A (zh) | 一种协议数据单元集合传输方法及装置 | |
CN114979793A (zh) | 一种直播数据传输方法、装置、***、设备和介质 | |
CN109792444B (zh) | 实况内容分发***中的播出缓冲 | |
CN107820274B (zh) | 一种移动网络udp业务拥塞处理方法及基站 | |
US20240259319A1 (en) | Priority Application And Network Bits For PDU Handling | |
WO2024055692A1 (zh) | 通信方法、通信装置和通信*** | |
US20230412514A1 (en) | Method and apparatus for managing the flow of data in pdcp | |
WO2023088155A1 (zh) | 一种服务质量QoS管理方法以及装置 | |
WO2023168573A1 (en) | Wireless communication method and device for extended reality traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |