CN104683262A - 一种数据包的处理方法和设备 - Google Patents
一种数据包的处理方法和设备 Download PDFInfo
- Publication number
- CN104683262A CN104683262A CN201510051856.6A CN201510051856A CN104683262A CN 104683262 A CN104683262 A CN 104683262A CN 201510051856 A CN201510051856 A CN 201510051856A CN 104683262 A CN104683262 A CN 104683262A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- packet
- rlc entity
- reception packet
- entity
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种数据包的处理方法和设备,该方法包括:PDCP实体获得待发送给FPGA芯片的发送数据包,在发送数据包中添加发送序列号,将携带所述发送序列号的发送数据包发送给FPGA芯片;FPGA芯片利用发送序列号得到携带接收序列号的接收数据包;PDCP实体接收来自FPGA芯片的携带接收序列号的接收数据包,将接收数据包缓存到接收队列,利用接收数据包中携带的接收序列号对接收队列内缓存的接收数据包进行重新排列;PDCP实体按照接收队列内的重新排列的接收数据包,将接收队列内的接收数据包发送给RLC实体。本发明实施例中,避免PDCP实体按照协议处理时丢包,避免乱序包导致的PDCP实体按协议丢包从而影响业务速率的问题,对***性能提升明显。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据包的处理方法和设备。
背景技术
在LTE(Long Term Evolution,长期演进)***中,随着上下行速率的大幅提高,特别是随着载波聚合技术的引入,ZUC(祖冲之)加解密算法软件的实现会极大的增加CPU(Central Processing Unit,中央处理器)占有率,难以保证***需要,而针对ZUC算法的硬件加速器并未普及。因此,ZUC加解密算法由FPGA(Field Programmable Gate Array,现场可编程门阵列)实现的方式比较合理。在这种实现方式下,对于PDCP(Packet Data Converge Protocol,分组数据汇聚协议)层所在的DSP(digital signal processing,数字信号处理)芯片,与FPGA之间的数据交换遵循CPRI(Common Public Radio Interface,通用公共无线电接口)协议的基带处理单元来说,一般为数据到达PDCP层处理后,通过多条CPRI链路传送到FPGA上,在FPGA上经过ZUC算法加解密之后,通过多条CPRI链路再次回传到PDCP层,然后PDCP层再进行后续处理。
LTE协议规定:在非重建立AM(确认模式)模式下,PDCP层收到底层传来的数据包做如下处理:所有已经接收的比当前接收到的PDCP SDU(Service Data Unit,服务数据单元)COUNT(计数)值小的数据包按照由低到高的顺序递交给高层;从当前接收到的PDCP SDU COUNT开始往后COUNT值连续的数据包按照由低到高的顺序递交给高层;设置lastsubmit(最后提交)PDCP SN(序列号)为最后一包递交给高层的数据包的PDCP SN。由上述协议可知,如果PDCP层对从FPGA收到的数据包不做重排序的话,对于AM模式,PDCP按照协议解包时,可能会产生PDCP层的乱序丢包问题。
综上所述,为了满足业务速率的要求采用多硬件链路方式,并且FPGA对长度不同的单个数据包处理时间的不同时,会导致PDCP顺序递交给FPGA处理的数据经过FPGA加解密后返回的顺序是乱序的,如果这些数据包不经过重排序,会导致PDCP层按照协议处理时丢包,从而影响正常业务的速率。
发明内容
本发明实施例提供一种数据包的处理方法和设备,以对接收队列内缓存的接收数据包进行重新排列,避免PDCP层按照协议处理时丢包。
本发明实施例提供一种数据包的处理方法,所述方法包括以下步骤:
分组数据汇聚协议PDCP实体获得待发送给现场可编程门阵列FPGA芯片的发送数据包,在所述发送数据包中添加发送序列号,并将携带所述发送序列号的发送数据包发送给所述FPGA芯片;以使所述FPGA芯片在处理完发送数据包之后,利用所述发送序列号得到携带接收序列号的接收数据包;
所述PDCP实体接收来自所述FPGA芯片的携带所述接收序列号的接收数据包,并将所述接收数据包缓存到接收队列,并利用所述接收数据包中携带的接收序列号对所述接收队列内缓存的接收数据包进行重新排列;
所述PDCP实体按照所述接收队列内的重新排列的接收数据包,将所述接收队列内的接收数据包发送给无线链路控制RLC实体。
所述方法进一步包括:
所述PDCP实体在将携带所述发送序列号的发送数据包发送给FPGA芯片时,所述PDCP实体在指定时间内发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数量总和小于预设第一数值,发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数据量总和小于预设第二数值。
所述方法进一步包括:
所述PDCP实体在将多个携带所述发送序列号的发送数据包发送给FPGA芯片时,所述PDCP实体将所述多个携带所述发送序列号的发送数据包均匀分布到多个通用公共无线电接口CPRI通道上,并通过所述多个CPRI通道将对应的携带所述发送序列号的发送数据包发送给所述FPGA芯片。
所述方法进一步包括:
所述PDCP实体在收到携带所述接收序列号的接收数据包之后,如果所述接收序列号大于RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差小于预设窗长门限,或者,所述接收序列号小于所述RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差大于所述预设窗长门限,则所述PDCP实体将携带所述接收序列号的接收数据包缓存到所述接收队列;否则,所述PDCP实体丢弃携带所述接收序列号的接收数据包。
所述PDCP实体将所述接收队列内的接收数据包发送给RLC实体,具体包括:如果所述接收队列内的第一个接收数据包的接收序列号等于RLC实体序列号加上1,则所述PDCP实体从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
所述PDCP实体将所述接收队列内的接收数据包发送给RLC实体的过程,具体包括:如果所述接收队列内的接收数据包的总数大于等于预设第三数值时,则所述PDCP实体从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向所述RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
所述PDCP实体将所述接收队列内的接收数据包发送给RLC实体,具体包括:如果在预设时间内未收到来自所述FPGA芯片的接收数据包,则所述PDCP实体将所述接收队列内的所有接收数据包发送给RLC实体,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
本发明实施例提供一种分组数据汇聚协议PDCP实体,该PDCP实体包括:获得模块,用于获得待发送给现场可编程门阵列FPGA芯片的发送数据包,在所述发送数据包中添加发送序列号,并将携带所述发送序列号的发送数据包发送给所述FPGA芯片;以使所述FPGA芯片在处理完所述发送数据包之后,利用所述发送序列号得到携带接收序列号的接收数据包;
排序模块,用于接收来自所述FPGA芯片的携带所述接收序列号的接收数据包,并将所述接收数据包缓存到接收队列,并利用所述接收数据包中携带的接收序列号对所述接收队列内缓存的接收数据包进行重新排列;
发送模块,用于按照所述接收队列内的重新排列的接收数据包,将所述接收队列内的接收数据包发送给无线链路控制RLC实体。
所述获得模块,进一步用于在将携带所述发送序列号的发送数据包发送给FPGA芯片时,在指定时间内发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数量总和小于预设第一数值,发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数据量总和小于预设第二数值。
所述获得模块,进一步用于在将多个携带所述发送序列号的发送数据包发送给FPGA芯片时,将所述多个携带所述发送序列号的发送数据包均匀分布到多个通用公共无线电接口CPRI通道上,并通过所述多个CPRI通道将对应的携带所述发送序列号的发送数据包发送给所述FPGA芯片。
所述排序模块,进一步用于在接收到携带所述接收序列号的接收数据包之后,如果所述接收序列号大于RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差小于预设窗长门限,或者,所述接收序列号小于所述RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差大于所述预设窗长门限,则将携带所述接收序列号的接收数据包缓存到所述接收队列;否则,丢弃携带所述接收序列号的接收数据包。
所述发送模块,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果所述接收队列内的第一个接收数据包的接收序列号等于RLC实体序列号加上1,则从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
所述发送模块,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果所述接收队列内的接收数据包的总数大于等于预设第三数值时,则从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向所述RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
所述发送模块,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果在预设时间内未收到来自所述FPGA芯片的接收数据包,则将所述接收队列内的所有接收数据包发送给RLC实体,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过在PDCP实体发送给FPGA芯片的发送数据包中携带发送序列号,FPGA芯片向PDCP实体返回的接收数据包中携带接收序列号,PDCP实体可以利用接收序列号对接收队列内缓存的接收数据包进行重新排列,避免PDCP实体按照协议处理时丢包,在满足业务数据速率要求的前提下,避免乱序包导致的PDCP实体按协议丢包从而影响业务速率的问题,对***性能提升明显。
附图说明
为了更加清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的这些附图获得其他的附图。
图1是本发明实施例一提供的一种数据包的处理方法流程示意图;
图2是本发明实施例二提供的一种PDCP实体的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
针对现有技术中存在的问题,本发明实施例一提供一种数据包的处理方法,该方法应用于包括PDCP实体、RLC(Radio Link Control,无线链路控制)实体和FPGA芯片的基站设备上。其中,数据包具体为上行数据包和/或下行数据包,该上行数据包是指终端设备发送给基站设备的数据包,该下行数据包是指基站设备发送给终端设备的数据包。进一步的,PDCP实体对应于PDCP层,RLC实体对应于RLC层,且该PDCP实体和该RLC实体均应用在DSP芯片上。在上述应用场景下,如图1所示,该方法具体可以包括以下步骤:
步骤101,PDCP实体获得待发送给FPGA芯片的发送数据包,在发送数据包中添加发送序列号,并将携带发送序列号的发送数据包发送给FPGA芯片。其中,将PDCP实体发送给FPGA芯片的数据包称为发送数据包,并将FPGA芯片发送给PDCP实体的数据包称为接收数据包。将发送数据包内携带的序列号称为发送序列号,并将接收数据包内携带的序列号称为接收序列号。
本发明实施例中,PDCP实体在发送数据包中添加发送序列号时,PDCP实体可以基于上一次向FPGA芯片发送的发送数据包中携带的发送序列号确定当前向FPGA芯片发送的发送数据包中携带的发送序列号。例如,当PDCP实体上一次向FPGA芯片发送的发送数据包中携带的发送序列号为10时,则PDCP实体当前向FPGA芯片发送的发送数据包中携带的发送序列号为11。
本发明实施例中,PDCP实体在将携带发送序列号的发送数据包发送给FPGA芯片时,PDCP实体在指定时间内发送给FPGA芯片的携带发送序列号的发送数据包的数量(即数据包的数量)总和小于预设第一数值,并且PDCP实体在指定时间内发送给FPGA芯片的携带发送序列号的发送数据包的数据量总和(即数据包大小的数据量)小于预设第二数值。
其中,PDCP实体发送给FPGA芯片的每个发送数据包中携带的发送序列号为SNzuc,且发送序列号SNzuc的取值范围是0至255,其初始值为0。
本发明实施例中,PDCP实体需要限制指定时间(如1ms)内发送给FPGA芯片的待加解密的携带发送序列号的发送数据包的个数以及总数据量,在满足业务速率处理的前提下,使FPGA芯片可以均匀处理携带发送序列号的发送数据包,不会使FPGA芯片在某一短时间缓存数据包超过最大门限而产生丢包。基于此,PDCP实体的上下行最大缓存m(可根据内存情况调整)个数据包,在满足下列条件下,PDCP实体每指定时间(如1ms)发送给FPGA芯片的携带发送序列号的发送数据包满足如下条件:(1)发送的上下行数据包总和小于预设第一数值Nmax,Nmax为根据业务速率设定的可调整值;(2)发送的上下行的数据量总和小于预设第二数值Klmt,Klmt为限定的1ms时间内PDCP实体最大数据发送量,根据FPGA芯片处理能力限定。其中,Nmax为预设的发送数据包的数量总和,其单位可以为个,如Nmax为100个。Klmt为预设的发送数据包的数据量总和,其单位可以为字节,如Klmt为20M字节。
本发明实施例中,PDCP实体在将多个携带发送序列号的发送数据包发送给FPGA芯片时,PDCP实体将多个携带发送序列号的发送数据包均匀分布到多个CPRI通道上,并通过多个CPRI通道将对应的携带发送序列号的发送数据包发送给FPGA芯片。具体的,PDCP实体在将多个携带发送序列号的发送数据包发送给FPGA芯片时,携带发送序列号的发送数据包需要均匀分布到N个CPRI通道上,即PDCP实体依次在可用的CPRI通道上将携带发送序列号的发送数据包发送给FPGA芯片。
步骤102,FPGA芯片处理携带发送序列号的发送数据包,并在处理完发送数据包之后,利用发送数据包中携带的发送序列号得到携带接收序列号(即发送序列号)的接收数据包,并将携带接收序列号的接收数据包发送给PDCP实体。
FPGA芯片在接收到携带发送序列号的发送数据包之后,对该携带发送序列号的发送数据包进行加解密等处理,并在处理完成的接收数据包中添加接收序列号,该接收序列号与发送数据包中携带的发送序列号相同,基于此,得到携带接收序列号的接收数据包。
步骤103,PDCP实体接收来自FPGA芯片的携带接收序列号的接收数据包,并将该接收数据包缓存到接收队列,并利用该接收数据包中携带的接收序列号对该接收队列内缓存的接收数据包进行重新排列。
本发明实施例中,PDCP实体利用接收数据包中携带的接收序列号对接收队列内缓存的接收数据包进行重新排列的过程中,PDCP实体将接收序列号小的接收数据包排在接收队列的前面,将接收序列号大的接收数据包排在接收队列的后面,即接收队列内缓存的接收数据包按照接收序列号从小到大排序。
在本发明实施例中,PDCP实体在接收到来自FPGA芯片的携带接收序列号的接收数据包之后,如果该接收序列号大于RLC实体序列号,并且该接收序列号与RLC实体序列号之差小于预设窗长门限,或者,该接收序列号小于RLC实体序列号,并且该接收序列号与RLC实体序列号之差大于预设窗长门限,则PDCP实体将携带接收序列号的接收数据包缓存到接收队列;否则,PDCP实体可以直接丢弃携带接收序列号的接收数据包。其中,RLC实体序列号具体是指最后一个发送给RLC实体的接收数据包的接收序列号。
具体的,如果PDCP实体从FPGA芯片收到的接收数据包满足下列条件:(1)SNcur大于SNlast,并且SNcur减去SNlast小于Lwindow;(2)SNcur小于SNlast,并且SNcur减去SNlast大于Lwindow;则:PDCP实体按照从FPGA芯片收到的接收数据包中携带的接收序列号由小到大的顺序,缓存接收数据包到接收队列;如果不满足上述条件,则认为接收数据包是异常数据包,PDCP实体丢弃接收数据包。其中,Lwindow根据1ms内发送给FPGA芯片的待处理的包数以及SNzuc取值范围确定,且Lodniw为PDCP实体收到的SNcur与SNlast的窗长门限。进一步的,SNcur为PDCP实体当前从FPGA芯片接收到的接收数据包的序列号SNzuc;SNlast为最后一个发送给RLC实体的接收数据包的序列号SNzuc,初始值为255。
步骤104,PDCP实体按照接收队列内的重新排列(即按照接收序列号从小到大排序)的接收数据包,将接收队列内的接收数据包发送给RLC实体。
本发明实施例中,PDCP实体将接收队列内的接收数据包发送给RLC实体的过程,具体包括但不限于:如果接收队列内的第一个接收数据包的接收序列号等于RLC实体序列号加上1,PDCP实体从接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
具体的,如果当前收到的接收数据包SNcur等于当前最后一个发送给RLC实体的接收数据包的接收序列号SNlast加上1,则PDCP实体从接收队列中缓存的第一个接收数据包为起始,顺序下发序列号SNzuc连续的接收数据包,直到第一个不连续接收序列号的接收数据包为止,并利用当前的接收数据包发送情况,更新当前最后一个发送给RLC实体的接收数据包的接收序列号SNlast。
本发明实施例中,PDCP实体将接收队列内的接收数据包发送给RLC实体的过程,具体包括但不限于:如果接收队列内的接收数据包的总数大于等于预设第三数值时,则PDCP实体从接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
具体的,对于接收序列号不连续的接收数据包,如果接收队列内缓存的接收数据包的总数大于等于Rlmt(此时认为FPGA芯片处理数据包异常并产生丢包),则PDCP实体从接收队列中缓存的第一个接收数据包为起始,顺序下发序列号SNzuc连续的接收数据包,直到第一个不连续接收序列号的接收数据包为止,并利用当前的接收数据包发送情况,更新当前最后一个发送给RLC实体的接收数据包的接收序列号SNlast。Rlmt为接收队列最大缓存数据包门限。
本发明实施例中,PDCP实体将接收队列内的接收数据包发送给RLC实体,具体包括但不限于:如果在预设时间内未收到来自FPGA芯片的接收数据包,则PDCP实体将接收队列内的所有接收数据包发送给RLC实体,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
具体的,如果PDCP实体在预设时间(如连续b个ms)内均没有收到FPGA芯片发送给PDCP实体的接收数据包(此种情况下,认为FPGA芯片已无可处理的发送数据包,此时未收到的接收数据包必然发生异常丢失),则PDCP实体将接收队列中缓存的所有接收数据包全部发送给RLC实体,并更新当前最后一个发送给RLC实体的接收数据包的接收序列号SNlast。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过在PDCP实体发送给FPGA芯片的发送数据包中携带发送序列号,FPGA芯片向PDCP实体返回的接收数据包中携带接收序列号,PDCP实体可以利用接收序列号对接收队列内缓存的接收数据包进行重新排列,避免PDCP实体按照协议处理时丢包,在满足业务数据速率要求的前提下,避免乱序包导致的PDCP实体按协议丢包从而影响业务速率的问题,对***性能提升明显。
实施例二
基于与上述方法同样的发明构思,本发明实施例中还提供了一种分组数据汇聚协议PDCP实体,如图2所示,所述PDCP实体包括:
获得模块11,用于获得待发送给现场可编程门阵列FPGA芯片的发送数据包,在所述发送数据包中添加发送序列号,并将携带所述发送序列号的发送数据包发送给所述FPGA芯片;以使所述FPGA芯片在处理完所述发送数据包之后,利用所述发送序列号得到携带接收序列号的接收数据包;
排序模块12,用于接收来自所述FPGA芯片的携带所述接收序列号的接收数据包,并将所述接收数据包缓存到接收队列,并利用所述接收数据包中携带的接收序列号对所述接收队列内缓存的接收数据包进行重新排列;
发送模块13,用于按照所述接收队列内的重新排列的接收数据包,将所述接收队列内的接收数据包发送给无线链路控制RLC实体。
所述获得模块11,进一步用于在将携带所述发送序列号的发送数据包发送给FPGA芯片时,在指定时间内发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数量总和小于预设第一数值,发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数据量总和小于预设第二数值。
所述获得模块11,进一步用于在将多个携带所述发送序列号的发送数据包发送给FPGA芯片时,将所述多个携带所述发送序列号的发送数据包均匀分布到多个通用公共无线电接口CPRI通道上,并通过所述多个CPRI通道将对应的携带所述发送序列号的发送数据包发送给所述FPGA芯片。
所述排序模块12,进一步用于在接收到携带所述接收序列号的接收数据包之后,如果所述接收序列号大于RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差小于预设窗长门限,或者,所述接收序列号小于所述RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差大于所述预设窗长门限,则将携带所述接收序列号的接收数据包缓存到所述接收队列;否则,丢弃携带所述接收序列号的接收数据包。
所述发送模块13,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果所述接收队列内的第一个接收数据包的接收序列号等于RLC实体序列号加上1,则从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
所述发送模块13,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果所述接收队列内的接收数据包的总数大于等于预设第三数值时,则从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向所述RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
所述发送模块13,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果在预设时间内未收到来自所述FPGA芯片的接收数据包,则将所述接收队列内的所有接收数据包发送给RLC实体,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (14)
1.一种数据包的处理方法,其特征在于,所述方法包括以下步骤:
分组数据汇聚协议PDCP实体获得待发送给现场可编程门阵列FPGA芯片的发送数据包,在所述发送数据包中添加发送序列号,并将携带所述发送序列号的发送数据包发送给所述FPGA芯片;以使所述FPGA芯片在处理完发送数据包之后,利用所述发送序列号得到携带接收序列号的接收数据包;
所述PDCP实体接收来自所述FPGA芯片的携带所述接收序列号的接收数据包,并将所述接收数据包缓存到接收队列,并利用所述接收数据包中携带的接收序列号对所述接收队列内缓存的接收数据包进行重新排列;
所述PDCP实体按照所述接收队列内的重新排列的接收数据包,将所述接收队列内的接收数据包发送给无线链路控制RLC实体。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
所述PDCP实体在将携带所述发送序列号的发送数据包发送给FPGA芯片时,所述PDCP实体在指定时间内发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数量总和小于预设第一数值,发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数据量总和小于预设第二数值。
3.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
所述PDCP实体在将多个携带所述发送序列号的发送数据包发送给FPGA芯片时,所述PDCP实体将所述多个携带所述发送序列号的发送数据包均匀分布到多个通用公共无线电接口CPRI通道上,并通过所述多个CPRI通道将对应的携带所述发送序列号的发送数据包发送给所述FPGA芯片。
4.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
所述PDCP实体在收到携带所述接收序列号的接收数据包之后,如果所述接收序列号大于RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差小于预设窗长门限,或者,所述接收序列号小于所述RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差大于所述预设窗长门限,则所述PDCP实体将携带所述接收序列号的接收数据包缓存到所述接收队列;否则,所述PDCP实体丢弃携带所述接收序列号的接收数据包。
5.如权利要求1所述的方法,其特征在于,所述PDCP实体将所述接收队列内的接收数据包发送给无线链路控制RLC实体的过程,具体包括:
如果所述接收队列内的第一个接收数据包的接收序列号等于RLC实体序列号加上1,则所述PDCP实体从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
6.如权利要求1所述的方法,其特征在于,所述PDCP实体将所述接收队列内的接收数据包发送给无线链路控制RLC实体的过程,具体包括:
如果所述接收队列内的接收数据包的总数大于等于预设第三数值时,则所述PDCP实体从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向所述RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
7.如权利要求1所述的方法,其特征在于,所述PDCP实体将所述接收队列内的接收数据包发送给无线链路控制RLC实体的过程,具体包括:
如果在预设时间内未收到来自所述FPGA芯片的接收数据包,则所述PDCP实体将所述接收队列内的所有接收数据包发送给RLC实体,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
8.一种分组数据汇聚协议PDCP实体,其特征在于,该PDCP实体包括:
获得模块,用于获得待发送给现场可编程门阵列FPGA芯片的发送数据包,在所述发送数据包中添加发送序列号,并将携带所述发送序列号的发送数据包发送给所述FPGA芯片;以使所述FPGA芯片在处理完所述发送数据包之后,利用所述发送序列号得到携带接收序列号的接收数据包;
排序模块,用于接收来自所述FPGA芯片的携带所述接收序列号的接收数据包,并将所述接收数据包缓存到接收队列,并利用所述接收数据包中携带的接收序列号对所述接收队列内缓存的接收数据包进行重新排列;
发送模块,用于按照所述接收队列内的重新排列的接收数据包,将所述接收队列内的接收数据包发送给无线链路控制RLC实体。
9.如权利要求8所述的PDCP实体,其特征在于,
所述获得模块,进一步用于在将携带所述发送序列号的发送数据包发送给FPGA芯片时,在指定时间内发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数量总和小于预设第一数值,发送给所述FPGA芯片的携带所述发送序列号的发送数据包的数据量总和小于预设第二数值。
10.如权利要求8所述的PDCP实体,其特征在于,
所述获得模块,进一步用于在将多个携带所述发送序列号的发送数据包发送给FPGA芯片时,将所述多个携带所述发送序列号的发送数据包均匀分布到多个通用公共无线电接口CPRI通道上,并通过所述多个CPRI通道将对应的携带所述发送序列号的发送数据包发送给所述FPGA芯片。
11.如权利要求8所述的PDCP实体,其特征在于,
所述排序模块,进一步用于在接收到携带所述接收序列号的接收数据包之后,如果所述接收序列号大于RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差小于预设窗长门限,或者,所述接收序列号小于所述RLC实体序列号,并且所述接收序列号与所述RLC实体序列号之差大于所述预设窗长门限,则将携带所述接收序列号的接收数据包缓存到所述接收队列;否则,丢弃携带所述接收序列号的接收数据包。
12.如权利要求8所述的PDCP实体,其特征在于,
所述发送模块,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果所述接收队列内的第一个接收数据包的接收序列号等于RLC实体序列号加上1,则从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给RLC实体的接收数据包的接收序列号。
13.如权利要求8所述的PDCP实体,其特征在于,
所述发送模块,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果所述接收队列内的接收数据包的总数大于等于预设第三数值时,则从所述接收队列内的第一个接收数据包开始,顺序将接收序列号连续的接收数据包发送给RLC实体,直到第一个接收序列号不连续的接收数据包为止,停止向所述RLC实体发送接收数据包,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
14.如权利要求8所述的PDCP实体,其特征在于,
所述发送模块,具体用于在将所述接收队列内的接收数据包发送给RLC实体的过程中,如果在预设时间内未收到来自所述FPGA芯片的接收数据包,则将所述接收队列内的所有接收数据包发送给RLC实体,并更新RLC实体序列号为最后一个发送给所述RLC实体的接收数据包的接收序列号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510051856.6A CN104683262B (zh) | 2015-01-30 | 2015-01-30 | 一种数据包的处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510051856.6A CN104683262B (zh) | 2015-01-30 | 2015-01-30 | 一种数据包的处理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104683262A true CN104683262A (zh) | 2015-06-03 |
CN104683262B CN104683262B (zh) | 2018-02-02 |
Family
ID=53317878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510051856.6A Active CN104683262B (zh) | 2015-01-30 | 2015-01-30 | 一种数据包的处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104683262B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109644083A (zh) * | 2017-06-15 | 2019-04-16 | Oppo广东移动通信有限公司 | 数据传输方法及相关产品 |
CN111163019A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 处理数据包的方法、装置和存储介质 |
US10959124B2 (en) | 2017-03-23 | 2021-03-23 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Uplink data transmission method, terminal, network side device and system |
CN113594077A (zh) * | 2021-07-22 | 2021-11-02 | 重庆双芯科技有限公司 | 一种多级芯片串联***芯片定位方法及多级芯片串联*** |
CN113595929A (zh) * | 2020-04-30 | 2021-11-02 | 荣耀终端有限公司 | 一种重排序定时器时长的调整方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829187A (zh) * | 2005-02-28 | 2006-09-06 | 华为技术有限公司 | 一种保持分组数据协议汇聚子层序列号同步的方法 |
US20080273537A1 (en) * | 2007-05-01 | 2008-11-06 | Qualcomm Incorporated | Ciphering sequence number for an adjacent layer protocol in data packet communications |
CN102104535A (zh) * | 2009-12-18 | 2011-06-22 | 华为技术有限公司 | 一种pdcp数据发送方法、装置及*** |
CN102905308A (zh) * | 2011-07-25 | 2013-01-30 | 中兴通讯股份有限公司 | 一种数据传输的方法、装置及eNB |
-
2015
- 2015-01-30 CN CN201510051856.6A patent/CN104683262B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829187A (zh) * | 2005-02-28 | 2006-09-06 | 华为技术有限公司 | 一种保持分组数据协议汇聚子层序列号同步的方法 |
US20080273537A1 (en) * | 2007-05-01 | 2008-11-06 | Qualcomm Incorporated | Ciphering sequence number for an adjacent layer protocol in data packet communications |
CN102104535A (zh) * | 2009-12-18 | 2011-06-22 | 华为技术有限公司 | 一种pdcp数据发送方法、装置及*** |
CN102905308A (zh) * | 2011-07-25 | 2013-01-30 | 中兴通讯股份有限公司 | 一种数据传输的方法、装置及eNB |
Non-Patent Citations (1)
Title |
---|
孙远欣等: "LTE ***中PDCP 子层功能研究", 《现代电子技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10959124B2 (en) | 2017-03-23 | 2021-03-23 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Uplink data transmission method, terminal, network side device and system |
CN109644083A (zh) * | 2017-06-15 | 2019-04-16 | Oppo广东移动通信有限公司 | 数据传输方法及相关产品 |
CN109644083B (zh) * | 2017-06-15 | 2020-06-30 | Oppo广东移动通信有限公司 | 数据传输方法及相关产品 |
CN111163019A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 处理数据包的方法、装置和存储介质 |
CN111163019B (zh) * | 2018-11-07 | 2022-10-28 | 中兴通讯股份有限公司 | 处理数据包的方法、装置和存储介质 |
US11985071B2 (en) | 2018-11-07 | 2024-05-14 | Zte Corporation | Method and apparatus for processing data packets, device, and storage medium |
CN113595929A (zh) * | 2020-04-30 | 2021-11-02 | 荣耀终端有限公司 | 一种重排序定时器时长的调整方法及装置 |
CN113595929B (zh) * | 2020-04-30 | 2022-07-26 | 荣耀终端有限公司 | 一种重排序定时器时长的调整方法及装置 |
CN113594077A (zh) * | 2021-07-22 | 2021-11-02 | 重庆双芯科技有限公司 | 一种多级芯片串联***芯片定位方法及多级芯片串联*** |
CN113594077B (zh) * | 2021-07-22 | 2024-03-08 | 重庆双芯科技有限公司 | 一种多级芯片串联***芯片定位方法及多级芯片串联*** |
Also Published As
Publication number | Publication date |
---|---|
CN104683262B (zh) | 2018-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112005002986B4 (de) | Verfahren und Medienzugangscontroller für drahtlose Breitbandkommunikation mit variabler Größe der Dateneinheiten und verzögertem Aufbau von Dateneinheiten | |
CN104683262A (zh) | 一种数据包的处理方法和设备 | |
US6829227B1 (en) | Dual polling media access control protocol for packet data in fixed wireless communication systems | |
US6363058B1 (en) | Multi-service handling by a single mobile station | |
CN102348292B (zh) | 一种基于mac子层和rlc子层的数据传输方法和设备 | |
US20090060009A1 (en) | Aggregate data frame generation | |
CN104301066A (zh) | 数据包传输方法及装置 | |
US20190200251A1 (en) | Transmission Status Reporting Apparatus and Method and Communication System | |
CN105517053A (zh) | 减少无线链路控制层协议数据单元重分段的方法及*** | |
CN110944358A (zh) | 数据传输方法和设备 | |
WO2023169051A1 (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN103581257A (zh) | 基于互联网协议的数据分流方法及装置 | |
CN108809540A (zh) | 数据处理方法及设备 | |
CN109803277A (zh) | 数据包处理的方法和设备 | |
CN102348203A (zh) | 加密同步实现方法 | |
CN104661315B (zh) | 一种上报缓存状态报告的方法及用户设备 | |
CN110012506A (zh) | 一种数据传输方法及通信设备 | |
CN108631941A (zh) | 通信方法和装置 | |
CN109561443B (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
CN107846709B (zh) | 一种基于LoRa的无线通信装置及无线通信方法 | |
CN108476428B (zh) | 用于处置从无线装置传送的信号的方法和网络节点 | |
CN108012289A (zh) | Pdu的发送方法及装置,和pdu的接收方法及装置 | |
CN107612871A (zh) | 一种数据传输处理方法、用户终端、网络设备和*** | |
CN107800516B (zh) | 一种高速下行分组接入hsdpa存储管理的方法和装置 | |
CN107801210B (zh) | 一种数据传输方法、***及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |