CN112911640A - 数据包接收方法和设备 - Google Patents
数据包接收方法和设备 Download PDFInfo
- Publication number
- CN112911640A CN112911640A CN202110129054.8A CN202110129054A CN112911640A CN 112911640 A CN112911640 A CN 112911640A CN 202110129054 A CN202110129054 A CN 202110129054A CN 112911640 A CN112911640 A CN 112911640A
- Authority
- CN
- China
- Prior art keywords
- window
- data
- data packet
- packet
- pdcp
- 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.)
- Granted
Links
Images
Classifications
-
- 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/04—Error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1657—Implicit acknowledgement of correct or incorrect reception, e.g. with a moving window
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据包接收方法和设备。该方法包括:将接收窗口从当前的第一窗口滑动至第二窗口;检测所述第二窗口内接收到的连续第一预设数量的数据包是否均出窗;若所述第二窗口内接收到的连续第一预设数量的数据包均出窗,则将所述接收窗口滑动回所述第一窗口;检测所述第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且所述连续第二预设数量的数据包是否均正确;若所述第一窗口内接收到的连续第二预设数量的数据包均未出窗且所述连续第二预设数量的数据包均正确,则确定在所述第一窗口内接收数据包。可避免接收窗口异常滑动导致正常数据包被丢弃的问题,提升了用户对业务的体验。
Description
技术领域
本申请涉及通信领域,尤其涉及一种数据包接收方法和设备。
背景技术
用户设备包括分组数据聚类协议(Packet Data Convergence Protocol,简称PDCP)层和传输控制协议(Transmission Control Protocol,简称TCP)层/国际互联协议(Internet Protocol,简称IP)层。在第三代合作伙伴计划(3rd Generation PartnershipProject,简称3GPP)协议中,用户设备处于确认模式(acknowledge mode,简称AM)时,PDCP层用于对数据包进行解密,并将解密后的数据投递给TCP层/IP层。PDCP层还用于对数据包的序列号(Sequence Number,简称SN)进行检查,若当前数据包的SN和上个数据包的SN不连续,则滑动接收窗口,后续再接收到数据包后,根据新窗口进行出窗检测,若检测结果为数据包出窗,则将数据包丢弃。
然而,当前数据包的SN和上个数据包的SN偏离较大的情况下,会造成接收窗口异常滑动,后续收到正常包时会被当成出窗包而丢弃,导致丢包现象严重,影响了用户对业务的体验。
发明内容
本申请提供一种数据包接收方法和设备,用于解决现有技术中正常包时被当成出窗包而丢弃的问题。
第一方面,本申请提供一种数据包接收方法,包括:检测当前接收到的数据包和前一个数据包的序列号SN是否连续;若不连续,则将接收窗口从当前的第一窗口滑动至第二窗口;检测该第二窗口内接收到的连续第一预设数量的数据包是否均出窗;若该第二窗口内接收到的连续第一预设数量的数据包均出窗,则将该接收窗口滑动回该第一窗口;检测该第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且该连续第二预设数量的数据包是否均正确;若该第一窗口内接收到的连续第二预设数量的数据包均未出窗且该连续第二预设数量的数据包均正确,则确定在该第一窗口内接收数据包。
可选的,该检测该第二窗口内接收到的连续第一预设数量的数据包是否均出窗,包括:针对该第二窗口内接收到的每个数据包,根据该第二窗口的长度、该数据包的分组数据聚类协议序列号PDCP SN以及前一次投递给高层的数据对应的PDCP SN,检测该数据包是否出窗,该高层包括:传输控制协议TCP层或者国际互联协议IP层。
可选的,该根据该第二窗口的长度、该数据包的分组数据聚类协议序列号PDCP SN以及前一次投递给高层的数据对应的PDCP SN,检测该数据包是否出窗,包括:若该前一次投递给高层的数据对应的PDCP SN和该数据包的PDCP SN的差值大于或者等于零,且该差值小于该第二窗口的长度,则确定该数据包出窗。
可选的,该将该接收窗口滑动回该第一窗口,包括:检测该第二窗口内接收到的连续第一预设数量的数据包是否均正确;若该第二窗口内接收到的连续第一预设数量的数据包均正确,则将该接收窗口滑动回该第一窗口。
可选的,该检测该第二窗口内接收到的连续第一预设数量的数据包是否均正确,包括:针对该第二窗口内接收到的每个数据包,对该数据包进行解密,得到解密数据;从该解密数据中获取头部分数据,该头部分数据包括以下至少一种:IP源地址、IP目的地址、端口号或者IP地址类型;对该头部分数据进行校验;若该头部分数据校验通过,则确定该数据包正确。
可选的,该对该数据包进行解密,得到解密数据,包括:根据该数据包的超帧号HFN和该数据包的PDCP SN的长度,确定该数据包对应的数字编号COUNT;根据该数字编号COUNT,对该数据包进行解密,得到该解密数据。
可选的,该将接收窗口从当前的第一窗口滑动至第二窗口之前,该方法还包括:根据该当前接收到的数据包的超帧号HFN和该当前接收到的数据包的PDCP SN的长度,确定该当前接收到的数据包对应的数字编号COUNT;根据该当前接收到的数据包对应的数字编号COUNT,确定该第二窗口。
第二方面,本申请提供一种数据包接收装置,包括:检测模块和处理模块;该检测模块用于检测当前接收到的数据包和前一个数据包的序列号SN是否连续;该处理模块用于在该检测模块检测到当前接收到的数据包和前一个数据包的序列号SN不连续时,将接收窗口从当前的第一窗口滑动至第二窗口;该检测模块还用于检测该第二窗口内接收到的连续第一预设数量的数据包是否均出窗;该处理模块还用于在该检测模块检测到该第二窗口内接收到的连续第一预设数量的数据包均出窗时,将该接收窗口滑动回该第一窗口;该检测模块还用于检测该第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且该连续第二预设数量的数据包是否均正确;该处理模块还用于在该检测模块检测到该第一窗口内接收到的连续第二预设数量的数据包均未出窗且该连续第二预设数量的数据包均正确时,确定在该第一窗口内接收数据包。
第三方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的方法。
第四方面,本申请提供一种用户设备,包括:处理器;以及存储器,用于存储该处理器的可执行指令;其中,该处理器配置为经由执行该可执行指令来实现第一方面提供的方法。
本申请提供的数据包的接收方法和设备,接收窗口从第一窗口滑到第二窗口后,检测第二窗口内连续出窗的数据包的数量是否达到预设值,若达到预设值,则将接收窗口滑动回第一窗口,并检测在第一窗口内,连续未出窗的数据包的数量是否达到预设值,并且检测这些未出窗的数据包是否正确,若连续未出窗的数据包的数量达到预设值且这些未出窗的数据包均正确,则确定在原来的窗口接收数据包。和现有协议相比,可避免窗口异常滑动导致正常数据包被丢弃的问题,提升了用户对业务的体验。
附图说明
图1为本申请提供的数据包接收示意图一;
图2为本申请提供的数据包接收示意图二;
图3为本申请提供的数据包接收方法的实施例一的流程示意图;
图4为本申请提供的数据包接收示意图三;
图5为本申请提供的数据包接收方法的实施例二的流程示意图;
图6为本申请提供的数据包接收装置的结构示意图;
图7为本申请提供的用户设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,需要解释的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“以是一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:单独a,单独b,单独c,a和b的组合,a和c的组合,b和c的组合,或a、b以及c的组合,其中a,b,c可以是单个,也可以是多个。
参见图1所示,在3GPP协议中,用户设备处于AM时,PDCP层会接收来自基站的数据包,PDCP层可对接收到的数据包进行解密,将解密数据发送至高层,该高层包括TCP层或者国际互联协议(Internet Protocol,简称IP)层。PDCP层接收到的数据包携带该数据包的序列号(Sequence Number,简称SN),参见图1所示,该SN可以包括超帧号(Hyper FrameNumber,简称HFN)和PDCP SN。PDCP层可检测当前接收到的数据包和前一个数据包的SN是否连续,若不连续,说明当前接收到的数据包为异常包。在3GPP协议中,PDCP层接收到异常包后,进行如下处理:根据异常包的序号,计算异常包对应的数字编号COUNT,根据异常包对应的数字编号COUNT,确定新的窗口,并将接收窗口从原来的窗口滑动至新的窗口。针对新的窗口内接收到的每个数据包,根据新的窗口检测数据包是否出窗,若出窗,则将数据包视为出窗包丢弃。
然而,异常包和前一个数据包的SN相比偏离较大时,新的窗口会出现异常,后续接收到正常包时会被当成出窗包而丢弃,参见图2所示,假设当前接收到的数据包如虚线所示,当前接收到的数据包的HFN=n,PDCP SN=k,而上一个数据包的HFN=n,PDCP SN=m,两个数据包的PDCP SN不连续,确定新的窗口后,新的窗口内接收到的正常数据包,如HFN=n,PDCP SN=m+1对应的数据包,HFN=n,PDCP SN=m+2对应的数据包等,均被视为出窗包而被丢弃,导致丢包现象严重,影响了用户对业务的体验。
为解决上述技术问题,本申请提出,在确定新的窗口后,检测在新的窗口内连续出窗的数据包的数量是否达到预设值,若达到预设值,则将接收窗口滑动回原来的窗口,并检测在原来的窗口内,连续未出窗的数据包的数量是否达到预设值,并且检测这些未出窗的数据包是否正确,若连续未出窗的数据包的数量达到预设值且这些未出窗的数据包均正确,则确定在原来的窗口接收数据包。可避免新的窗口出现异常导致正常数据包被丢弃的问题,提升了用户对业务的体验。
下面结合具体的实施例对本申请的技术方案进行详细描述。
图3为本申请提供的数据包接收方法的实施例一的流程示意图。本实施例提供的数据包接收方法由用户设备中的PDCP层执行。如图3所示,本实施例提供的数据包接收方法,包括:
S301、检测当前接收到的数据包和前一个数据包的序列号SN是否连续。
如前文描述,数据包的SN可以包括:HFN和PDCP SN。PDCP SN的长度可由上层配置,例如可以配置为5bit、7bit或者12bit,本实施例中以12bit为例进行说明。HFN的初始值也可以由上层配置,例如可以配置为0,本实施例以HFN的初始值为0为例进行说明。当AM模式的数据无线承载(Data Radio Bearer,DRB)建立起来后,PDCP层接收到的第1个数据包的HFN=0,PDCP SN=0,PDCP层接收到的第2个数据包的HFN=0,PDCP SN=1,PDCP层接收到的第3个数据包的HFN=0,PDCP SN=3,……,PDCP层接收到的第4096个数据包的HFN=0,PDCPSN=212-1,PDCP层接收到的第4097个数据包的HFN=1,PDCP SN=0,PDCP层接收到的第4098个数据包的HFN=1,PDCP SN=1,……。也就是说,若PDCP SN的值达到212-1时,下一数据包的HFN加1,且PDCP SN退回至0。
当前接收到的数据包和前一个数据包的SN连续指的是:当前接收到的数据包和前一个数据包的HFN相同,且当前接收到的数据包的PDCP SN为前一个数据包的PDCP SN加1,或者,当前接收到的数据包的HFN为前一个数据包的HFN加1,且当前接收到的数据包的PDCPSN为0,前一个数据包的PDCP SN为212-1。
检测当前接收到的数据包的SN和前一个数据包的SN是否满足上述两个条件中任一条件,若满足,则认为当前接收到的数据包和前一个数据包的SN连续;若均不满足,则认为当前接收到的数据包和前一个数据包的SN不连续,这种情况下,执行S302。并且将当前第一窗口的位置保存下来。
S302、将接收窗口从当前的第一窗口滑动至第二窗口。
可选的,在将接收窗口滑动至第二窗口之前,可先根据当前接收到的数据包的HFN和当前接收到的数据包的PDCP SN的长度,确定当前接收到的数据包对应的数字编号COUNT;然后根据当前接收到的数据包对应的数字编号COUNT,确定第二窗口的位置。
一种可能的实现方式中,可将当前接收到的数据包的HFN、当前接收到的数据包的PDCP SN以及PDCP SN的长度带入下面的公式(1),从而确定当前接收到的数据包对应的数字编号COUNT,如前文描述,本实施例中PDCP SN的长度为12bit:
COUNT=HFN×2PDCP SN的长度+PDCP SN (公式1)
在得到当前接收到的数据包对应的数字编号COUNT后,可将当前接收到的数据包对应的数字编号COUNT+1作为第二窗口的起始位置,将当前接收到的数据包对应的数字编号COUNT+1+2048作为第二窗口的末尾位置。
下面举例说明:
当AM模式的数据无线承载(Data Radio Bearer,DRB)建立起来后,PDCP层接收到的第1个数据包的HFN=0,PDCP SN=0,PDCP层计算第1个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=0,根据第1个数据包对应的COUNT对第1个数据包进行解密,得到解密数据,将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=0。Last_Submitted_PDCP_RX_SN指的是前一次投递给高层的数据对应的PDCP SN,当前的第一窗口的起始位置为1,第一窗口的末尾位置为2049。
PDCP层接收到的第2个数据包的HFN=0,PDCP SN=1,PDCP层计算第2个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=1,根据第2个数据包对应的COUNT对第2个数据包进行解密,得到解密数据,将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=1。此时第一窗口的起始位置为2,第一窗口的末尾位置为2050。
……
PDCP层接收到的第50个数据包的HFN=0,PDCP SN=49,PDCP层计算第50个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=49,根据第50个数据包对应的COUNT对第50个数据包进行解密,得到解密数据,将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=49。此时第一窗口的起始位置为50,第一窗口的末尾位置为2098。
假设,PDCP层接收到的第51个数据包的HFN=0,PDCP SN=1000,PDCP层计算第51个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=1000,根据第51个数据包对应的COUNT对第51个数据包进行解密,得到解密数据,将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=1000。由于第51个数据包的PDCP SN=1000,第50个数据包的PDCPSN=49,经检测第51个数据包和第50个数据包的SN号并不连续,则将第51个数据包对应的COUNT+1,即1001作为第二窗口的起始位置,将当前接收到的数据包对应的数字编号COUNT+1+2048,即3049作为第二窗口的末尾位置。并将接收窗口从第一窗口滑动至第二窗口。同时保存第一窗口的位置,第一窗口的起始位置为50,第一窗口的末尾位置为2098。
S303、检测第二窗口内接收到的连续第一预设数量的数据包是否均出窗。
下面介绍检测数据包是否出窗的可实现方式:
接收窗口从第一窗口滑动至第二窗口后,PDCP层再接收到数据包时,针对每个数据包,可根据第二窗口的长度、该数据包的PDCP SN以及前一次投递给高层的数据对应的PDCP SN,检测该数据包是否出窗。
具体的,可利用如下公式(2)检测数据包是否出窗:
0<=Last_Submitted_PDCP_RX_SN-received PDCP SN<Reordering_Window 公式(2)
其中,Last_Submitted_PDCP_RX_SN表示前一次投递给高层的数据对应的PDCPSN,received PDCP SN表示数据包的PDCP SN,Reordering_Window表示第二窗口的长度。若前一次投递给高层的数据对应的PDCP SN和数据包的PDCP SN的差值满足公式(2),则确定该数据包出窗。
若第二窗口内接收到的连续第一预设数量的数据包均出窗,则执行S304。
S304、将接收窗口滑动回第一窗口。
接着S302中的举例:
假设第一预设数量为3个,PDCP层接收到的第52个数据包的HFN=0,PDCP SN=51,采用公式(2)对第52个数据包进行出窗检测,由于
0<=Last_Submitted_PDCP_RX_SN(1000)-第52个数据包的PDCP SN(51)<Reordering_Window;
因此,第52个数据包出窗。将第52个数据包丢弃。
PDCP层接收到第53个数据包的HFN=0,PDCP SN=52,采用公式(2)对第53个数据包进行出窗检测,由于
0<=Last_Submitted_PDCP_RX_SN(1000)-第53个数据包的PDCP SN(52)<Reordering_Window;
因此,第53个数据包出窗。将第53个数据包丢弃。
PDCP层接收到的第54个数据包的HFN=0,PDCP SN=53,采用公式(2)对第54个数据包进行出窗检测,由于
0<=Last_Submitted_PDCP_RX_SN(1000)-第54个数据包的PDCP SN(53)<Reordering_Window;
因此,第54个数据包出窗。将第54个数据包丢弃。
由于连续3个数据包均出窗,则将接收窗口滑动回第一窗口,第一窗口的起始位置为50,第一窗口的末尾位置为2098,并且更新Last_Submitted_PDCP_RX_SN=49。
S305、检测第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且该连续第二预设数量的数据包是否均正确。
针对第一窗口内接收的每个数据包,检测其是否出窗的方法可参见S303,本实施例在此不再赘述。下面介绍检测每个数据包是否正确的可实现方式:
首先,对该数据包进行解密,得到解密数据;然后,根据该解密数据,检测数据包是否正确。
可选的,可根据数据包的HFN和数据包的PDCP SN的长度,确定数据包对应的数字编号COUNT,根据该数字编号COUNT,对数据包进行解密,得到解密数据。确定数据包对应的数字编号COUNT的方法可参见公式(1),使用数字编号COUNT对数据包进行解密的过程可参加现有技术,本实施例在此不再赘述。
可选的,在得到解密数据后,先从解密数据中获取头部分数据,该头部分数据包括以下至少一种:IP源地址、IP目的地址、端口号或者IP地址类型;然后分别对IP源地址、IP目的地址、端口号或者IP地址类型进行校验,若全部检验通过,则认为数据包正确。校验过程可参见现有技术,本实施例在此不再赘述。
将接收窗口滑动回第一窗口后,若连续第二预设数量的数据包均未出窗,且该第二预设数量的数据包均正确,则执行S306。
S306、确定在第一窗口内接收数据包。
接着S304中的举例:
假设第二预设数量为3个,PDCP层接收到的第55个数据包的HFN=0,PDCP SN=54,采用公式(2)对第55个数据包进行出窗检测,由于
Last_Submitted_PDCP_RX_SN(49)-第55个数据包的PDCP SN(54)=-5<0;
因此,第55个数据包未出窗。
进一步的,PDCP层计算第55个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=54,PDCP层根据第55个数据包对应的COUNT对第55个数据包进行解密,得到解密数据,假设基于解密数据,通过S305中的方法检测得到第55个数据包正确,则将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=54。
PDCP层接收到的第56个数据包的HFN=0,PDCP SN=55,采用公式(2)对第56个数据包进行出窗检测,由于Last_Submitted_PDCP_RX_SN(54)-第56个数据包的PDCP SN(55)=-1<0;因此,第56个数据包未出窗。
进一步的,PDCP层计算第56个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=55,PDCP层根据第56个数据包对应的COUNT对第56个数据包进行解密,得到解密数据,假设基于解密数据,通过S305中的方法检测得到第56个数据包正确。将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=55。
PDCP层接收到的第57个数据包的HFN=0,PDCP SN=56,采用公式(2)对第57个数据包进行出窗检测,由于Last_Submitted_PDCP_RX_SN(55)-第56个数据包的PDCP SN(56)=-1<0;因此,第57个数据包未出窗。
PDCP层计算第57个数据包对应的COUNT=HFN×2PDCP SN的长度+PDCP SN=56,PDCP层根据第57个数据包对应的COUNT对第57个数据包进行解密,得到解密数据,假设基于解密数据,通过S305中的方法检测得到第57个数据包正确。将解密数据投递给高层,并且更新Last_Submitted_PDCP_RX_SN=56。
由于,连续3个数据包均未出窗且这3个数据包均正确,则确定在第一窗口内接收数据包,参见图4所示,本实施例提供的方案,仅丢弃了第52个、第53个以及第54个数据包,后续正常的数据包不会被当做出窗包而丢弃,提升了用户对业务的体验。
需要说明的是:第57个以后的数据包,按照协议处理即可,无需再像第55个数据包、第56个数据包以及第57个数据包进行出窗检测以及正确性检测。
本申请提供的数据包的接收方法,接收窗口从第一窗口滑到第二窗口后,检测第二窗口内连续出窗的数据包的数量是否达到预设值,若达到预设值,则将接收窗口滑动回第一窗口,并检测在第一窗口内,连续未出窗的数据包的数量是否达到预设值,并且检测这些未出窗的数据包是否正确,若连续未出窗的数据包的数量达到预设值且这些未出窗的数据包均正确,则确定在原来的窗口接收数据包。和现有协议相比,可避免窗口异常滑动导致正常数据包被丢弃的问题,提升了用户对业务的体验。
上述实施例中,在确定第二窗口内连续第一预设数量的数据包均出窗情况下,便将接收窗口滑动回第一窗口,为了进一步确认第一窗口滑动至第二窗口属于异常滑动,还可对上述连续第一预设数量的数据包进行正确性检测,图5为本申请提供的数据包接收方法的实施例二的流程示意图。如图5所示,本实施例提供的数据包接收方法,包括:
S501、检测当前接收到的数据包和前一个数据包的序列号SN是否连续。
S502、将接收窗口从当前的第一窗口滑动至第二窗口。
S501-S502的实现过程参见上述实施例中的S301-S302,本实施例在此不再赘述。
S503、检测第二窗口内接收到的连续第一预设数量的数据包是否均出窗,并且检测第二窗口内接收到的连续第一预设数量的数据包是否均正确。
对应到图4所示举例中,针对第52个、第53个和第54个数据包,除了检测其是否出窗,还可检测其是否正确。当这连续的3个数据包都出窗但是都正确时,说明从第一窗口滑到第二窗口很大可能属于异常滑动,再执行S504。
S504、将接收窗口滑动回第一窗口。
S505、检测第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且该连续第二预设数量的数据包是否均正确。
S306、确定在第一窗口内接收数据包。
S504-S506的实现过程参见上述实施例中的S304-S306,本实施例在此不再赘述。
本申请提供的数据包的接收方法,在S503中增加了对数据包正确性检测,第二窗口内接收到的连续第一预设数量的数据包均出窗但是均正确时,将接收窗口滑动回第一窗口。可避免窗口异常滑动导致正常数据包被丢弃的问题,提升了用户对业务的体验。
图6为本申请提供的数据包接收装置的结构示意图。如图6所示,本申请提供的数据包接收装置包括:检测模块601和处理模块602;
检测模块601用于检测当前接收到的数据包和前一个数据包的序列号SN是否连续;
处理模块602用于在检测模块检测到当前接收到的数据包和前一个数据包的序列号SN不连续时,将接收窗口从当前的第一窗口滑动至第二窗口;
检测模块601还用于检测所述第二窗口内接收到的连续第一预设数量的数据包是否均出窗;
处理模块602还用于在检测模块检测到所述第二窗口内接收到的连续第一预设数量的数据包均出窗时,将所述接收窗口滑动回所述第一窗口;
检测模块601还用于检测所述第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且所述连续第二预设数量的数据包是否均正确;
处理模块602还用于在检测模块检测到所述第一窗口内接收到的连续第二预设数量的数据包均未出窗且所述连续第二预设数量的数据包均正确时,确定在所述第一窗口内接收数据包。
可选的,检测模块601具体用于:
针对所述第二窗口内接收到的每个数据包,根据所述第二窗口的长度、所述数据包的分组数据聚类协议序列号PDCP SN以及前一次投递给高层的数据对应的PDCP SN,检测所述数据包是否出窗,所述高层包括:传输控制协议TCP层或者国际互联协议IP层。
可选的,检测模块601具体用于:
若所述前一次投递给高层的数据对应的PDCP SN和所述数据包的PDCP SN的差值大于或者等于零,且所述差值小于所述第二窗口的长度,则确定所述数据包出窗。
可选的,处理模块602具体用于:
检测所述第二窗口内接收到的连续第一预设数量的数据包是否均正确;
若所述第二窗口内接收到的连续第一预设数量的数据包均正确,则将所述接收窗口滑动回所述第一窗口。
可选的,处理模块602具体用于:
针对所述第二窗口内接收到的每个数据包,对所述数据包进行解密,得到解密数据;
从所述解密数据中获取头部分数据,所述头部分数据包括以下至少一种:IP源地址、IP目的地址、端口号或者IP地址类型;
对所述头部分数据进行校验;
若所述头部分数据校验通过,则确定所述数据包正确。
可选的,处理模块602具体用于:
根据所述数据包的超帧号HFN和所述数据包的PDCP SN的长度,确定所述数据包对应的数字编号COUNT;
根据所述数字编号COUNT,对所述数据包进行解密,得到所述解密数据。
可选的,处理模块602还用于:
根据所述当前接收到的数据包的超帧号HFN和所述当前接收到的数据包的PDCPSN的长度,确定所述当前接收到的数据包对应的数字编号COUNT;
根据所述当前接收到的数据包对应的数字编号COUNT,确定所述第二窗口。
需要说明的是:图6所示数据包接收装置可以为虚拟装置,该虚拟装置可以为存储在芯片中存储区域里面的一段代码,芯片的处理器执行这段代码时可以实现上述任一方法实施例中的步骤。
图7为本申请提供的用户设备的硬件结构示意图。如图7所示,本实施例的用户设备可以包括:
存储器701,用于存储程序指令。
处理器702,用于在所述程序指令被执行时实现上述任一实施例描述的数据包接收方法,具体实现原理可参见上述实施例,本实施例此处不再赘述。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例描述的数据包接收方法。
本申请还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得用户设备实施上述任一实施例描述的数据包接收方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应理解,本申请所描述的处理器可以是中央处理单元(英文:Central ProcessingUnit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital SignalProcessor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据包接收方法,其特征在于,包括:
检测当前接收到的数据包和前一个数据包的序列号SN是否连续;
若不连续,则将接收窗口从当前的第一窗口滑动至第二窗口;
检测所述第二窗口内接收到的连续第一预设数量的数据包是否均出窗;
若所述第二窗口内接收到的连续第一预设数量的数据包均出窗,则将所述接收窗口滑动回所述第一窗口;
检测所述第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且所述连续第二预设数量的数据包是否均正确;
若所述第一窗口内接收到的连续第二预设数量的数据包均未出窗且所述连续第二预设数量的数据包均正确,则确定在所述第一窗口内接收数据包。
2.根据权利要求1所述的方法,其特征在于,所述检测所述第二窗口内接收到的连续第一预设数量的数据包是否均出窗,包括:
针对所述第二窗口内接收到的每个数据包,根据所述第二窗口的长度、所述数据包的分组数据聚类协议序列号PDCP SN以及前一次投递给高层的数据对应的PDCP SN,检测所述数据包是否出窗,所述高层包括:传输控制协议TCP层或者国际互联协议IP层。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二窗口的长度、所述数据包的分组数据聚类协议序列号PDCP SN以及前一次投递给高层的数据对应的PDCP SN,检测所述数据包是否出窗,包括:
若所述前一次投递给高层的数据对应的PDCP SN和所述数据包的PDCP SN的差值大于或者等于零,且所述差值小于所述第二窗口的长度,则确定所述数据包出窗。
4.根据权利要求1所述的方法,其特征在于,所述将所述接收窗口滑动回所述第一窗口,包括:
检测所述第二窗口内接收到的连续第一预设数量的数据包是否均正确;
若所述第二窗口内接收到的连续第一预设数量的数据包均正确,则将所述接收窗口滑动回所述第一窗口。
5.根据权利要求4所述的方法,其特征在于,所述检测所述第二窗口内接收到的连续第一预设数量的数据包是否均正确,包括:
针对所述第二窗口内接收到的每个数据包,对所述数据包进行解密,得到解密数据;
从所述解密数据中获取头部分数据,所述头部分数据包括以下至少一种:IP源地址、IP目的地址、端口号或者IP地址类型;
对所述头部分数据进行校验;
若所述头部分数据校验通过,则确定所述数据包正确。
6.根据权利要求5所述的方法,其特征在于,所述对所述数据包进行解密,得到解密数据,包括:
根据所述数据包的超帧号HFN和所述数据包的PDCP SN的长度,确定所述数据包对应的数字编号COUNT;
根据所述数字编号COUNT,对所述数据包进行解密,得到所述解密数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述将接收窗口从当前的第一窗口滑动至第二窗口之前,所述方法还包括:
根据所述当前接收到的数据包的超帧号HFN和所述当前接收到的数据包的PDCP SN的长度,确定所述当前接收到的数据包对应的数字编号COUNT;
根据所述当前接收到的数据包对应的数字编号COUNT,确定所述第二窗口。
8.一种数据包接收装置,其特征在于,包括:检测模块和处理模块;
所述检测模块用于检测当前接收到的数据包和前一个数据包的序列号SN是否连续;
所述处理模块用于在所述检测模块检测到当前接收到的数据包和前一个数据包的序列号SN不连续时,将接收窗口从当前的第一窗口滑动至第二窗口;
所述检测模块还用于检测所述第二窗口内接收到的连续第一预设数量的数据包是否均出窗;
所述处理模块还用于在所述检测模块检测到所述第二窗口内接收到的连续第一预设数量的数据包均出窗时,将所述接收窗口滑动回所述第一窗口;
所述检测模块还用于检测所述第一窗口内接收到的连续第二预设数量的数据包是否均未出窗且所述连续第二预设数量的数据包是否均正确;
所述处理模块还用于在所述检测模块检测到所述第一窗口内接收到的连续第二预设数量的数据包均未出窗且所述连续第二预设数量的数据包均正确时,确定在所述第一窗口内接收数据包。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
10.一种用户设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129054.8A CN112911640B (zh) | 2021-01-29 | 2021-01-29 | 数据包接收方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129054.8A CN112911640B (zh) | 2021-01-29 | 2021-01-29 | 数据包接收方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112911640A true CN112911640A (zh) | 2021-06-04 |
CN112911640B CN112911640B (zh) | 2022-07-29 |
Family
ID=76121357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110129054.8A Active CN112911640B (zh) | 2021-01-29 | 2021-01-29 | 数据包接收方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112911640B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106304127A (zh) * | 2015-05-13 | 2017-01-04 | 苏州简约纳电子有限公司 | 一种lte数据面下行检错纠错方法 |
CN106357548A (zh) * | 2016-09-18 | 2017-01-25 | 京信通信技术(广州)有限公司 | Pdcp数据包的接收方法和系统 |
EP3589066A1 (en) * | 2018-06-29 | 2020-01-01 | ASUSTek Computer Inc. | Method and apparatus of handling sidelink transmission in a wireless communication system |
CN110943808A (zh) * | 2018-09-21 | 2020-03-31 | 北京松果电子有限公司 | 数据传输方法、装置、电子设备和存储介质 |
CN111818630A (zh) * | 2019-07-12 | 2020-10-23 | 维沃移动通信有限公司 | 状态变量维护方法、装置及用户设备 |
-
2021
- 2021-01-29 CN CN202110129054.8A patent/CN112911640B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106304127A (zh) * | 2015-05-13 | 2017-01-04 | 苏州简约纳电子有限公司 | 一种lte数据面下行检错纠错方法 |
CN106357548A (zh) * | 2016-09-18 | 2017-01-25 | 京信通信技术(广州)有限公司 | Pdcp数据包的接收方法和系统 |
EP3589066A1 (en) * | 2018-06-29 | 2020-01-01 | ASUSTek Computer Inc. | Method and apparatus of handling sidelink transmission in a wireless communication system |
CN110943808A (zh) * | 2018-09-21 | 2020-03-31 | 北京松果电子有限公司 | 数据传输方法、装置、电子设备和存储介质 |
CN111818630A (zh) * | 2019-07-12 | 2020-10-23 | 维沃移动通信有限公司 | 状态变量维护方法、装置及用户设备 |
Non-Patent Citations (1)
Title |
---|
ERRISSON: ""R2-1704369 - Lossless PDCP SN reconfiguration at HO"", 《3GPP TSG_RAN\WG2_RL2》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112911640B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11570098B2 (en) | Systems, apparatuses and methods for cooperating routers | |
US10305928B2 (en) | Detection of malware and malicious applications | |
US9191158B2 (en) | Communication apparatus, communication method and computer readable medium | |
US8442052B1 (en) | Forward packet recovery | |
US20210194863A1 (en) | Methods of bidirectional packet exchange over nodal pathways | |
EP2632102A1 (en) | Method and device for data transmission | |
JP2003078565A (ja) | 無線通信装置 | |
JP2006211632A (ja) | Crc検査範囲外エラーを検出する方法 | |
US8942224B2 (en) | Method and system for handling security synchronization for prolonged periods of no-reception of voice frames | |
EP3101844A1 (en) | Packet loss detection method, apparatus, and system | |
US20230171191A1 (en) | Systems, Apparatuses and Methods for Cooperating Routers | |
CN113746788A (zh) | 一种数据处理方法及装置 | |
CN112717380A (zh) | 网络检测方法及相关装置 | |
US20170064489A1 (en) | Network system, method for determining communication quality, and analysis apparatus | |
KR101039550B1 (ko) | 데이터 전송률 계산 방법 및 이를 이용한 대역폭 설정 방법 | |
JP6512282B2 (ja) | 通信装置、利用可能帯域計算システム、利用可能帯域計算方法及びプログラム | |
CN112911640B (zh) | 数据包接收方法和设备 | |
EP3539235B1 (en) | Systems, apparatuses and methods for cooperating routers | |
US10200154B2 (en) | System and method for early packet header verification | |
JP2017092692A (ja) | データ伝送制御システム及び方法、並びに、データ伝送制御プログラム | |
EP3739827A1 (en) | Packet loss reduction using auxiliary path | |
CN113225748A (zh) | 超帧号失步检测方法及装置 | |
US11962517B2 (en) | Communications method, apparatus, and system for recovering lost packets | |
CN112333850B (zh) | 防止下行失步方法、通信装置和可读存储介质 | |
EP3363161B1 (en) | Transport of time sensitive information using the internet |
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 |