数据包发送方法、接收方法、发送装置及接收装置
技术领域
本发明实施例涉及但不限于通信领域,尤指一种数据包发送方法、接收方法、发送装置及接收装置。
背景技术
随着科技的发展,互联网在人们的生活中起着越来越重要的作用,在当前的网络时代,可以利用网络传输多种类型的数据。在数据传输的过程中,由于种种原因,需要进行流量限制,在流量限制方面,数据传输类软件及相关互联网产品,采用的基本策略包括漏桶和令牌桶策略。漏桶算法提供了一种机制,通过漏桶算法,突发流量可以被整形以便为网络提供一个稳定的流量。漏桶可以看作是一个带有常量服务时间的单服务器队列,如果漏桶(包缓存)溢出,那么数据包会被丢弃。漏桶算法的主要目的是控制数据注入到网络的速率,平滑网络上的突发流量。
令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。令牌桶的另外一个好处是可以方便的改变速度。一旦需要提高速率,则按需提高放入桶中的令牌的速率。
由于漏桶的漏出速率是固定的参数,所以即使网络中不存在资源冲突(没有发生拥塞),漏桶算法也不能使某一个单独的流突发到端口速率。因此,在某些情况下,漏桶算法不能够有效地使用网络资源。漏桶算法的根本目的是保持速率平滑,对于存在突发特性的流量来说缺乏效率。
令牌桶算法则能够满足这些具有突发特性的流量。但是,令牌桶算法又有它的局限性,首先,令牌桶算法和漏桶算法一样,也是需要较大的缓冲区来实现队列存储,更适合运行于在较大型系统,如个人电脑(Personal Computer,简称为PC)软件和互联网网站等;其次,令牌桶算法的主要目的是流量限制和流量整形,对桶内无令牌可取时的情况没有详细描述,因此,当网络在短时间内保持高流量时,丢包率仍然是影响传输质量的因素之一,带宽利用率不高。另外,相对于漏桶而言,令牌桶只能在某短暂时刻允许突发流量,其本质还是流量“限制和整形”,而没有提升速率的功能。数据通
道产品有一个重要的课题,就是并发速率,在同时上下行传输时,其上行、下行的速率往往并不能达到单独进行上传、下载时的单独速率。上述的漏桶算法和令牌桶算法均无法解决上下行速率无法达到单独进行上传、下载时的单独速率的问题。
并且,在上行发送数据包时,数据包会经过多层处理,以物联网(也称为机器通信(Machine-Type Communications,简称为MTC))中的数据传输为例,上行传输的数据包会经过无线协议栈的分组数据汇聚协议层(Packet Data Convergence Protocol,简称为PDCP)、无线链路控制(Radio Link Control,简称为RLC)、媒体接入控制(Medium Access Control,简称为MAC)、物理层等一层层的处理,对于小包来说,其数据体占整个包大小的比例原本就不大,每个数据包的包头都层层处理,会使得无线协议栈工作效率降低,导致数据传输慢的问题。
针对相关技术中存在的上述的数据传输慢的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据包发送方法、接收方法、发送装置及接收装置,以至少解决相关技术中存在的数据传输慢的问题。
根据本发明实施例的一个方面,提供了一种数据包发送方法,包括:确定待发送到服务器的第一数据包;当所述第一数据包的数量为两个以上时,将两个以上所述第一数据包聚合为一个第二数据包;将所述第二数据包发送给所述服务器。
可选地,将两个以上所述第一数据包聚合为一个第二数据包包括:将两个以上所述第一数据包的源互联网协议IP地址均转换为预定IP地址;将转换了源IP地址的两个以上第一数据包聚合为所述第二数据包,并将所述第二数据包的源地址设置为所述预定IP地址。
可选地,将转换了源IP地址的两个以上第一数据包聚合为所述第二数据包包括:将转换了源IP地址的两个以上第一数据包中的数据分别填充进所述第二数据包中的不同的数据字段中。
可选地,将转换了源IP地址的两个以上第一数据包中的数据分别填充进
所述第二数据包中的不同的数据字段中包括:将转换了源IP地址的两个以上第一数据包中的数据分别填充进所述第二数据包中的长度相同的不同的数据字段中,其中,填充了所述第一数据包中的数据的数据字段中携带有以下信息至少之一:用于标识所述第一数据包中的数据的长度的第一标识信息、用于标识所述第一数据包转换之前的源IP地址的第二标识信息、填充位,其中,所述填充位用于当所述第一数据包中的数据的长度小于所述数据字段的长度时,填充所述数据字段中未填充所述第一数据包中的数据的部分。
根据本发明实施例的另一方面,提供了一种数据包发送方法,包括:确定待发送到服务器的第一数据包;当所述第一数据包为确认ACK数据包时,利用非接入层-协议数据单元NAS-PDU发送所述ACK数据包。
可选地,利用非接入层-协议数据单元NAS-PDU发送所述ACK数据包包括:将所述ACK数据包承载进所述NAS-PDU中;发送承载了所述ACK数据包的NAS-PDU。
根据本发明实施例的另一方面,提供了一种数据包接收方法,包括:接收来自终端的第二数据包;解析所述第二数据包,获取所述第二数据包中聚合的两个以上第一数据包。
可选地,解析所述第二数据包,获取所述第二数据包中聚合的两个以上所述第一数据包包括:对所述第二数据包中的两个以上数据字段进行解析,确定各数据字段中填充的第一数据包中的数据的长度;根据确定的所述长度获取各数据字段中填充的所述第一数据包中的数据。
可选地,对所述第二数据包中的两个以上数据字段进行解析,确定各数据字段中填充的第一数据包中的数据的长度包括:对所述第二数据包中的两个以上数据字段进行解析,根据解析得到的所述数据字段中携带的第一标识信息确定各数据字段中填充的第一数据包中的数据的长度,其中,所述第一标识信息用于标识所述第一数据包中的数据的长度。
可选地,在对所述第二数据包中的两个以上数据字段进行解析之后,所述方法还包括:根据解析得到的所述数据字段中携带的第二标识信息确定所述第一数据包转换之前的源IP地址,其中,所述第二标识信息用于标识所述第一数据包转换之前的源IP地址。
根据本发明实施例的另一方面,提供了一种数据包发送装置,包括:第一确定模块,用于确定待发送到服务器的第一数据包;聚合模块,用于当所述第一数据包的数量为两个以上时,将两个以上所述第一数据包聚合为一个第二数据包;第一发送模块,用于将所述第二数据包发送给所述服务器。
可选地,所述聚合模块包括:转换单元,用于将两个以上所述第一数据包的源互联网协议IP地址均转换为预定IP地址;聚合单元,用于将转换了源IP地址的两个以上第一数据包聚合为所述第二数据包,并将所述第二数据包的源地址设置为所述预定IP地址。
可选地,在将转换了源IP地址的两个以上第一数据包聚合为所述第二数据包时,所述聚合单元包括:填充子单元,用于将转换了源IP地址的两个以上第一数据包中的数据分别填充进所述第二数据包中的不同的数据字段中。
可选地,所述填充子单元包括:填充次子单元,用于将转换了源IP地址的两个以上第一数据包中的数据分别填充进所述第二数据包中的长度相同的不同的数据字段中,其中,填充了所述第一数据包中的数据的数据字段中携带有以下信息至少之一:用于标识所述第一数据包中的数据的长度的第一标识信息、用于标识所述第一数据包转换之前的源IP地址的第二标识信息、填充位,其中,所述填充位用于当所述第一数据包中的数据的长度小于所述数据字段的长度时,填充所述数据字段中未填充所述第一数据包中的数据的部分。
根据本发明实施例的另一方面,提供了一种数据包发送装置,包括:第二确定模块,用于确定待发送到服务器的第一数据包;第二发送模块,用于当所述第一数据包为确认ACK数据包时,利用非接入层-协议数据单元NAS-PDU发送所述ACK数据包。
可选地,所述第二发送模块包括:承载单元,用于将所述ACK数据包承载进所述NAS-PDU中;发送单元,用于发送承载了所述ACK数据包的NAS-PDU。
根据本发明实施例的另一方面,提供了一种数据包接收装置,包括:接收模块,用于接收来自终端的第二数据包;获取模块,用于解析所述第二数据包,获取所述第二数据包中聚合的两个以上第一数据包。
可选地,所述获取模块包括:第一确定单元,用于对所述第二数据包中的两个以上数据字段进行解析,确定各数据字段中填充的第一数据包中的数据的长度;获取单元,用于根据确定的所述长度获取各数据字段中填充的所述第一数据包中的数据。
可选地,所述第一确定单元包括:确定子单元,用于对所述第二数据包中的两个以上数据字段进行解析,根据解析得到的所述数据字段中携带的第一标识信息确定各数据字段中填充的第一数据包中的数据的长度,其中,所述第一标识信息用于标识所述第一数据包中的数据的长度。
可选地,所述装置还包括:第二确定单元,用于在对所述第二数据包中的两个以上数据字段进行解析之后,根据解析得到的所述数据字段中携带的第二标识信息确定所述第一数据包转换之前的源IP地址,其中,所述第二标识信息用于标识所述第一数据包转换之前的源IP地址。
又一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项的实现资源配置的方法及装置。
通过本发明实施例提供的技术方案,采用确定待发送到服务器的第一数据包;当所述第一数据包的数量为两个以上时,将两个以上所述第一数据包聚合为一个第二数据包;将所述第二数据包发送给所述服务器。解决了相关技术中存在的数据传输慢的问题,进而达到了提高数据传输速率的效果。
本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图概述
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的第一种数据包发送方法的流程图;
图2是根据本发明实施例的第二种数据包发送方法的流程图;
图3是根据本发明实施例的数据包接收方法的流程图;
图4是根据本发明实施例的第一种数据包发送装置的结构框图;
图5是根据本发明实施例的第一种数据包发送装置中聚合模块44的结构框图;
图6是根据本发明实施例的第一种数据包发送装置中聚合单元54的结构框图;
图7是根据本发明实施例的第一种数据包发送装置中填充子单元62的结构框图;
图8是根据本发明实施例的第二种数据包发送装置的结构框图;
图9是根据本发明实施例的第二种数据包发送装置中第二发送模块84的结构框图;
图10是根据本发明实施例的数据包接收装置的结构框图;
图11是根据本发明实施例的数据包接收装置中获取模块104的结构框图;
图12是根据本发明实施例的数据包接收装置中第一确定单元112的结构框图;
图13是根据本发明实施例的数据包接收装置中获取模块104的优选结构框图;
图14是根据本发明实施例的包聚合方法的流程示意图;
图15是根据本发明实施例的包解聚合的流程示意图;
图16是根据本发明实施例的通过信令传输ACK方法的流程示意图;
图17是根据本发明实施例的流量调整模块的具体工作流程图。
本发明的较佳实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种数据包发送方法,图1是根据本发明实施例的第一种数据包发送方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,确定待发送到服务器的第一数据包;
步骤S104,当第一数据包的数量为两个以上时,将两个以上第一数据包聚合为一个第二数据包;
步骤S106,将得到的第二数据包发送给服务器。
通过上述步骤,将两个以上的第一数据包聚合为一个第二数据包进行发送,避免了每个第一数据包的包头都要经过层层处理导致所导致的数据传输速度慢的问题。解决了相关技术中存在的数据传输慢的问题,进而达到了提高数据传输速率的效果。
在一个可选的实施例中,将两个以上的上述第一数据包聚合为一个第二数据包包括:将两个以上上述第一数据包的源互联网协议(IP)地址均转换为预定IP地址;将转换了源IP地址的两个以上第一数据包聚合为上述第二数据包,并将上述第二数据包的源地址设置为预定IP地址。其中,上述的源IP地址可以是预先分配的局域网IP地址,上述的预定IP地址可以是网关设备的公网IP地址,在该实施例中,各第一数据包的目的IP地址是相同的,即,都是上述服务器的IP地址,所以,在将第二数据包的原地址设置为上述的预定IP地址时,可以将第二数据包的目的地址设置为上述服务器的IP地址。
在一个可选的实施例中,将转换了源IP地址的两个以上第一数据包聚合为上述第二数据包包括:将转换了源IP地址的两个以上第一数据包中的数据分别填充进该第二数据包中的不同的数据字段中。在该实施例中,第二数据包中设置有多个数据字段,每个数据字段的长度可以是相同的,也可以是不同的,且数据字段的长度可以是灵活设置的,例如将每个数据字段的长度都
设置成100字节。
在一个可选的实施例中,将转换了源IP地址的两个以上第一数据包中的数据分别填充进上述第二数据包中的不同的数据字段中包括:将转换了源IP地址的两个以上第一数据包中的数据分别填充进上述第二数据包中的长度相同的不同的数据字段中,其中,填充了上述第一数据包中的数据的数据字段中携带有以下信息至少之一:用于标识上述第一数据包中的数据的长度的第一标识信息、用于标识上述第一数据包转换之前的源IP地址的第二标识信息、填充位,其中,该填充位用于当上述第一数据包中的数据的长度小于数据字段的长度时,填充数据字段中未填充上述第一数据包中的数据的部分。当上述数据字段中仅携带第一标识信息时,接收方(可以是服务器或者是解聚合装置)可以根据第一标识信息确定数据字段中的有效数据(即第一数据包中的数据)的长度,从而仅解析相关长度的数据字段,获取有效数据即可。
当上述数据字段中仅携带填充位时,说明这个字段实际并没有有效信息,即没有填充第一数据包的数据,接收方对这个字段无需解析。这种情况一般只见于在聚合单元在聚合第一数据包时,指定的第二数据包的大小比较大,划分的字段比较多,而第一数据包数量较少,组成的段数小于第二数据包提供的段数目,此时第二数据包尾部未填充的段会全部填为填充位。
当然,上述的第一标识信息时、第二标识信息、填充位也是可以组合的,组合方式可以是多样的。例如,
可以设定每个数据字段的大小不一定相同,这样数据字段中就可以不包括填充位,每个字段的数据都是第一标识信息、第二标识信息以及第一数据包的数据信息;或者,
用于指明第一数据包长度的第一标识信息不存在,直接放置第一数据包的数据;
上面这两种情况也是可以实现的,优点是能够充分利用数据字段的空间;
或者,用于标识第一数据包的未转换前的源地址的第二标识信息不存在,这种情况可能存在于接收方不需要知道第一数据字段的未转换前的源地址的场景,例如在客户端/服务器模式下,服务器即接收方也可以通过第一数据包中TCP头中的端口号来区分来自不同MTC终端的不同的第一数据包,而无
需了解第一数据字段未转换前的源IP地址。
下面以一种组合为例进行说明:以第二数据包中每个数据字段的长度都是100字节为例,当一个待填充进第二数据包中的一个数据字段的第一数据包中的数据的大小小于100字节时,可以在该数据字段中设置一个标志位,该标志位用于标识填充进本数据字段中的数据包的具体大小,该标志位可设置在本数据字段的首字节位置上,从而使得接收方在接收到该第二数据包后,能够准确的得知某一个数据字段中的有效数据的长度,进而解析出原始的数据包。需要说明的是,一般填充进一个数据字段中的第一数据包中的数据的长度会小于该数据字段,对于数据字段中未被填满的部分可以采用填充位padding进行填充。当一个待发送第一数据包的数据的大小大于了第二数据包中的数据字段的长度时,可以不将该待发送的第一数据包中的数据填充进第二数据包中,而是采用现有技术中的发送方式将该待发送的第一数据包发送给接收端。
上述的实施例主要描述了如何将多个小数据包(对应于上述的第一数据包)聚合成一个大数据包(对应于上述的第二数据包)的操作,上述的实施例可以应用于物联网中,下面结合物联网对上述实施例进行举例说明:
首先描述一下物联网系统对于终端的要求,以及物联网在数据传输方面的特殊性。物联网终端通常的特点有:
正常工作时要低消耗(low-cost),包括设备功耗和网络负载等;
可能常常工作于移动状态或信号覆盖较差的状态,此时也要低消耗的传输数据;
常常有小数据传输的特点;例如多个传感器将采集到的小数据包离散的发送到MTC服务器。这种频发的,或者离散的小数据包传输场景,通常会导致3GPP系统资源的利用率很低。
而针对上述的MTC机器通信的小数据包传输特点,通过“包聚合”的方式进行小数据量传输的优化,提高了小数据传输效率,降低了消耗;这种包聚合的主要优点在于,在上行发送数据包时,数据包会经过无线协议栈的PDCP、RLC、MAC、物理层等一层层的进行处理,对于小包来说,其数据体占整个包大小的比例原本就不大,每个数据包的包头都层层处理,无疑会
使得无线协议栈工作效率降低。小包聚合后,多个小包生成一个大包,只有一个包头部,那么会大幅提高协议栈处理的效率。
在本实施例中还提供了一种数据包发送方法,图2是根据本发明实施例的第二种数据包发送方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定待发送到服务器的第一数据包;
步骤S204,当第一数据包为确认ACK数据包时,利用非接入层-协议数据单元(NAS-PDU)发送上述ACK数据包。
通过上述步骤,利用NAS-PDU发送ACK能够实现利用控制面传输ACK的目的,避免了影响下行TCP数据传输的速率,解决了相关技术中存在的数据传输慢的问题,进而达到了提高数据传输速率的效果。
在一个可选的实施例中,利用非接入层-协议数据单元(Non Access stratum-Protocol Data Unit,简称为NAS-PDU)发送上述ACK数据包包括:将该ACK数据包承载进NAS-PDU中;发送承载了上述ACK数据包的NAS-PDU。其中,上述的ACK数据包是针对下行数据(如传输控制协议(Transmission Control Protocol,简称为TCP)数据)反馈的响应消息。下面仍以物联网为例对本实施例进行说明:在一个时间段内突发并发性的数据传输(同时上下行传输)。相比于对于传统数据终端来说,用户的主要业务基本是下行业务,如视频播放,文件下载等,下行峰值速率也是用户最关注的指标。上行数据传输量较小,对于并发峰值速率的要求也很低。物联网则不同,常常会出现并发上下行传输,且上下行峰值速率都要满足要求的现象。在本实施例中提出了对这种峰值速率的优化,且该优化是基于不提高发射功率的前提。在本实施例中提出了将上行ACK小包(即,上述的ACK数据包)消息通过信令方式传送到网络。终端工作时,能够检测系统环境,如温度、小区信号关键性能指标(Key Performance Indicators,简称为KPI)(信号强度、信噪比等),通过控制上行ACK传输的速度,来控制下行TCP数据的速率,在高温度、弱信号下降低数据发送的消耗;基于同一原理,还在不额外提升发射功率即不提升发功的前提下,大幅提高了上下行并发速率。
在本实施例中提供了一种数据包接收方法,图3是根据本发明实施例的数据包接收方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,接收来自终端的第二数据包;
步骤S304,解析上述第二数据包,获取该第二数据包中聚合的两个以上第一数据包。
通过上述步骤,可以接收到聚合了两个以上第一数据包的第二数据包,其中,将两个以上的第一数据包聚合为一个第二数据包进行传输的方式能够避免每个第一数据包的包头都要经过层层处理所导致的数据传输速度慢的问题,可以让接收端更快地接收到多个第一数据包。解决了相关技术中存在的数据传输慢的问题,进而达到了提高数据传输速率的效果。
在一个可选的实施例中,解析上述第二数据包,获取第二数据包中聚合的两个以上第一数据包包括:对上述第二数据包中的两个以上数据字段进行解析,确定各数据字段中填充的第一数据包中的数据的长度;根据确定的上述长度获取各数据字段中填充的第一数据包中的数据包。在该实施例中,第二数据包中可以填充有多个第一数据包(即,上述的两个以上第一数据包),且一个第一数据包可以对应第二数据包中的一个数据字段,每个数据字段中都有用于标识数据包长度的标志位(对应于上述的第一标识信息),从而在解析第二数据包中的数据字段时,可以准确获知数据字段中的有效数据的长度,进而解析出原始的第一数据包。
在一个可选的实施例中,对上述第二数据包中的两个以上数据字段进行解析,确定各数据字段中填充的第一数据包中的数据的长度包括:对上述第二数据包中的两个以上数据字段进行解析,根据解析得到的上述数据字段中携带的第一标识信息确定各数据字段中填充的第一数据包中的数据的长度,其中,该第一标识信息用于标识第一数据包中的数据的长度。在该实施例中,第二数据包中的各个数据字段中都可以携带有用于标识有效数据的长度的第一标识信息的。
在一个可选的实施例中,在对上述第二数据包中的两个以上数据字段进行解析之后,上述方法还包括:根据解析得到的上述数据字段中携带的第二标识信息确定第一数据包转换之前的源IP地址,其中,该第二标识信息用于标识上述第一数据包转换之前的源IP地址。通过该实施例可以使得接收方能够明确每个第一数据包的原始的源IP。
其中,在发送上行数据包时,可以在弱信号发送数据包时,将数据包暂时缓存,待信号质量提高后发送。该方案能够在一定程度上解决弱信号下发包的信令负载。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据包发送装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的第一种数据包发送装置的结构框图,如图4所示,该装置包括第一确定模块42、聚合模块44和第一发送模块46,下面对该装置进行说明。
第一确定模块42,设置为确定待发送到服务器的第一数据包;聚合模块44,连接至上述第一确定模块42,设置为当上述第一数据包的数量为两个以上时,将两个以上上述第一数据包聚合为一个第二数据包;第一发送模块46,连接至上述聚合模块44,设置为将上述第二数据包发送给服务器。
图5是根据本发明实施例的第一种数据包发送装置中聚合模块44的结构框图,如图5所示,该聚合模块44包括转换单元52和聚合单元54,下面对该聚合模块44进行说明。
转换单元52,设置为将两个以上上述第一数据包的源互联网协议IP地址均转换为预定IP地址;聚合单元54,连接至上述转换单元52,设置为将转换了源IP地址的两个以上第一数据包聚合为上述第二数据包,并将上述第二数据包的源地址设置为预定IP地址。
图6是根据本发明实施例的第一种数据包发送装置中聚合单元54的结构框图,如图6所示,该聚合单元54包括填充子单元62,下面对该填充子单元62进行说明:
填充子单元62,设置为在将转换了源IP地址的两个以上第一数据包聚合为大数据包时,将转换了源IP地址的两个以上第一数据包中的数据分别填充进该第二数据包中的不同的数据字段中。
图7是根据本发明实施例的第一种数据包发送装置中填充子单元62的结构框图,如图7所示,该填充子单元62包括填充次子单元72,下面对该填充次子单元72进行说明。
填充次子单元72,设置为将转换了源IP地址的两个以上第一数据包中的数据分别填充进上述第二数据包中的长度相同的不同的数据字段中,其中,填充了上述第一数据包中的数据的数据字段中携带有以下信息至少之一:用于标识第一数据包中的数据的长度的第一标识信息、标识上述第一数据包转换之前的源IP地址的第二标识信息、填充位,其中,上述填充位用于当上述第一数据包中的数据的长度小于上述数据字段的长度时,填充上述数据字段中未填充第一数据包中的数据的部分。
图8是根据本发明实施例的第二种数据包发送装置的结构框图,如图8所示,该装置包括第二确定模块82和第二发送模块84,下面对该装置进行说明:
第二确定模块82,设置为确定待发送到服务器的第一数据包;第二发送模块84,连接至上述第二确定模块82,设置为当上述第一数据包为确认ACK数据包时,利用非接入层-协议数据单元NAS-PDU发送上述ACK数据包。
图9是根据本发明实施例的第二种数据包发送装置中第二发送模块84的结构框图,如图9所示,该第二发送模块84包括承载单元92和发送单元94,下面对该第二发送模块84进行说明。
承载单元92,设置为将ACK数据包承载进NAS-PDU中;发送单元94,连接至上述承载单元92,用于发送承载了上述ACK数据包的NAS-PDU。
图10是根据本发明实施例的数据包接收装置的结构框图,如图10所示,该装置包括接收模块102和获取模块104,下面对该装置进行说明。
接收模块102,设置为接收来自终端的第二数据包;获取模块104,连接至上述接收模块102,设置为解析上述第二数据包,获取上述第二数据包中聚合的两个以上第一数据包。
图11是根据本发明实施例的数据包接收装置中获取模块104的结构框图,如图11所示,该获取模块104包括第一确定单元112和获取单元114,下面对该获取模块104进行说明。
第一确定单元112,设置为对上述第二数据包中的两个以上数据字段进行解析,确定各数据字段中填充的第一数据包中的数据的长度;获取单元114,连接至上述第一确定单元112,设置为根据确定的上述长度获取各数据字段中填充的第一数据包中的数据。
图12是根据本发明实施例的数据包接收装置中第一确定单元112的结构框图,如图12所示,该第一确定单元112包括确定子单元122,下面对该确定子单元122进行说明:
确定子单元122,设置为对上述第二数据包中的两个以上数据字段进行解析,根据解析得到的上述数据字段中携带的第一标识信息确定各数据字段中填充的第一数据包中的数据的长度,其中,该第一标识信息用于标识上述第一数据包中的数据的长度。
图13是根据本发明实施例的数据包接收装置中获取模块104的优选结构框图,如图13所示,该获取模块104除包括图11所示的所有模块外,还包括第二确定单元132,下面对该获取模块104进行说明。
第二确定单元132,连接至上述第一确定单元112,设置为在对上述第二数据包中的两个以上数据字段进行解析之后,根据解析得到的数据字段中携带的第二标识信息确定上述第一数据包转换之前的源IP地址,其中,该第二标识信息用于标识第一数据包转换之前的源IP地址。
下面结合物联网对本发明实施例上述装置实施例进行举例说明:
本实施例中涉及的物理网中的模块主要包括如下几个模块:
一个数据包聚合模块(Packet Aggregation Module,简称为PAM)(对应于上述的聚合单元54),该模块位于网络地址转换(Network Address
Translation,简称为NAT)模块和空口之间。设置为将多个来自多个终端(可能是带有私网IP地址的传感器),发到同一个物联网应用服务器(MTC Server)的小数据包(对应于上述的第一数据包)聚合起来,将多个小数据包聚合为数据块,存放于新建的大IP包(对应于上述的第二数据包)中传输至网络。基于这个思路,具体聚合的方式可能有多种。本实施中提出一种较为简单,且效率较高的方式。即将新创建的大IP包的数据部分在逻辑上划分为若干个相同字节大小(本例是以100字节为例)的字段,在聚合时,将每个小IP包的内容填充进去,如果小包不足以填满这个字段的话,会用填充位(padding)补满。需要说明的是,本实施例的场景是,多个终端均分配有同一网段的局域网IP地址,且均将IP包发往同一个服务器,如果有多个服务器,那么发往相同服务器的一路做一个聚合处理。聚合的过程发生于NAT后端,在NAT处理后,多个小IP包头的源IP地址已经变为核心网给终端分配的公网IP地址,多个终端的此公网IP地址是相同的,而目的地址即MTC服务器也相同,因此新建的大IP包的源、目的IP地址可以复制小包的源、目的IP地址。
一个数据包解聚合模块(Packet Fragmentation Module,简称为PFM)(对应于上述的获取模块104),该模块逻辑上位于运营商核心网和物联网应用服务器之间。它可以实现于运营商的网络中,也可以实现于MTC Server上。它的作用是将UE发来的聚合IP包进行解聚合,生成原始小包后,再提供给MTC应用的原始流程的TCP/IP协议栈。解聚合的过程是聚合过程的逆。将大IP包中的数据部分的内容按字段解出即可。
一个流量调节开关,可控制本功能的使能。目的是为提高本系统的网络兼容性,当UE切换出第三代移动通讯伙伴计划(3rd Generation partnership project,简称为3GPP)物联网环境(Cat1、Cat0或长期演进机器到机器(Long Term Evolution-Machine to Machine,简称为LTE-M))后,也不影响原始工作流程。
一个流量调节处理模块(Traffic Regulator Process)(对应于上述的第二发送模块84),该模块有两个功能,一个是检测工作环境状况,另一个是通过3GPP物联网中的“信令传输小数据”的功能,将上行发送的,针对下行TCP数据包的确认(TCP ACK)消息放入NAS信令的消息体中发往网络。
下面分别结合不同的实施例对本发明进行说明:
包聚合方法实施例:
本实施例提供了一种上行小数据包聚合的方法,请参考图14,图14是根据本发明实施例的包聚合方法的流程示意图,如图14所示,该流程包括如下步骤:
步骤S1401:是物联网设备(MTC Device),MTC系统通常存在多个设备,可分配局域网IP地址,本例中分配的IP地址为192.168.0.x区段;
步骤S1402:是物联网设备向网络发送的上行数据包;图14中列出了三个数据包,其中IP-1最大,IP-3最小。三个设备将数据包发往74.125.128.106地址的MTC Server中;
步骤S1403:是NAT即网络地址转换模块,该模块最终会将三个包的源IP地址转换为3GPP系统给网关设备分配的公网IP地址,本例是1.1.36.108;
步骤S1404:NAT转换后的IP包,发往空中接口侧;
步骤S1405:是包聚合模块(PAM)。该模块是本专利技术的核心模块之一,它的作用是将多个小数据包聚合起来,形成下一步骤描述的大包,再发向3GPP网络;注意这里有一个打包码,如100,即长度不大于100字节的包参与聚合,不足100字节的则附加padding填充位,每100字节作为一个字段填充到大包的数据字段内。每个字段的首字节L是有效IP包内容在本字段中的长度,首字节的设定是为了解聚合时,能够有效分离出原始小IP包和后面的padding填充位。这个包聚合机制的目的是便于解聚合模块字节寻址,以将大IP包中的数据分解为原始IP包。这里列出的只是一种聚合方式,可以有其他聚合方式及其他解聚合方式,但属程序设计层面的细节问题,本实施例不一一描述;
步骤S1406:是PAM模块聚合的大包,其中,多个小数据包在IP包的数据部分。随后通过空中接口(Um口),发向网络侧。
包解聚合方法实施例:
聚合后的数据包在到达网络侧后,需要解聚合,以打散恢复为原始的离散小数据包。本实施例提供了一种数据包的解聚合的方法,请参考图15。图
15是根据本发明实施例的包解聚合的流程示意图,它和图14是对应关联的,图15所示的流程包括如下步骤:
步骤S1501:是大数据包经过3GPP网络;
步骤S1502:是包解聚合模块(PFM)。它的作用是将聚合后的大数据包打散成原始小数据包群。其过程和包聚合(PAM)模块是互逆过程;
步骤S1503:解聚合后的IP包;还原后传递给MTC Server的相关应用,或直接投递进TCP/IP协议栈。由于此时已经是原始IP包,MTC Server上的应用程序可以按原始流程进行处理。
需要说明的是,上述包聚合、解聚合的针对的工作场景,以及此种优化方式的目的如下:
(1)如前所述,很多物联网应用都有发送小数据包的特性,如多个智能摄像头向MTC服务器上传数据等。大量的小数据包,在传递到空口协议栈时,由于空口协议栈的分层机制(RLC、MAC、PDCP等),层层有封包机制,运营商网络上各网元也有分层处理机制,那么大量的小数据包的分层加头等处理,也会导致系统资源严重利用不充分。本专利技术的聚合方案,可以有效提高这一场景的3GPP系统资源利用率,即实现低消耗。
(2)物联网终端常常位于信号覆盖差的位置如楼宇地下室等,数据业务前要建立的无线承载,在网络状态KPI的区域建立无线承载要消耗的信令往往更多(存在信令发送失败、被拒绝等原因导致的重传),且信号差的时刻发射功率也会更大,频发小数据对于终端的功耗就更高。本方案可以在网络状态较差的区域,先将要发送的小数据包聚合起来,待网络状态好转时发送,可解决该问题。
PAM和PFM模块的聚合、解聚合模式,本例只是给出了其中一种。从程序设计技巧和实现具体复杂度考虑,具体的聚合方式可能有多种,但基本思路都是一样的。
通过信令传输ACK的优化策略实施例:
TCP即传输控制协议是一种基于确认的传输层协议,即数据包到达对端后,需要对端发送ACK包进行确认收到了该包,该ACK包的发送会影响到
TCP数据流的传输速率。基于这个原理,本实施例提供了一种能够通过控制上行的TCP ACK发送,来调整下行速率的方法和模块(即,上述的流量调节开关和流量调节处理模块),该实施例中的模块有三个主要功能,(1)能够检测当前环境的网络状态,如信号强度,信号质量,信噪比等;(2)在网络状况良好,设备电量充足的情况下本模块能在不提升发射功率的前提下,有效提升并发速率,实现高性能传输;(3)在检测到设备电量低等情况下,可以在不额外增加缓冲buffer空间的前提下,对下行速率限流,以降低功耗。需要说明的是,上行速率通常速率要低于下行,且上行速率对于UE可控,因此本专利技术重点描述对下行的限流。
请参考图16,图16是根据本发明实施例的通过信令传输ACK方法的流程示意图,该流程包括如下步骤:
步骤S1601:带有TCP数据包的下行IP包抵达UE侧;
步骤S1602:流量调整开关如果是开启状态,转步骤S1204,可继续下面流程;否则转步骤S1203;此开关目的是给用户程序提供功能的可选性;
步骤S1603:传统的上行数据包传输流程,即直接将封装了TCP的IP包投递入UE空中接口侧,层层打包后通过空口发送至网络;
步骤S1604:流量调整处理模块,实现检测网络参考信号KPI,能够提升并发速率,能够实现限流降耗;
步骤S1605:将上行的TCP ACK消息,即对下行的TCP数据包的确认消息,在控制面打包成NAS-PDU的一部分;
步骤S1606:在运营商网络进行传输该NAS消息,消息体含有TCP ACK内容;
步骤S1607:网络侧将消息最终投递至物联网服务器(MTC Server)。
在上述实施例中,无线数据终端的并发速率通常存在下行速率不达标的情况,用户数据协议(User Datagram Protocol,简称为UDP)一般没有该问题,主要是TCP存在。但是应用程序用的最多的还是TCP。其原因主要是因为上行的TCP数据流会占据大部分的资源,造成上行的TCP ACK小包上传有微延迟。这个延迟不同于一般TCP数据负载包的延迟,下行的大数据包得
不到及时确认,就会严重影响下行峰值速率。目前有一些规避和优化方案来解决此类问题,主要是通过在UE上增加缓存,然后将上行的数据包进行判决后将体积小的数据包优先发送,大的数据包暂时缓存;这种方案有两个弊端,一是会对上行速率造成一定影响;二是要占据UE的缓存空间,对于物联网终端,很多是资源受限的低端设备,不适用此方案。本技术方案则不涉及这两个弊端,直接将TCP ACK作为小数据承载在无线NAS信令中上传至网络,相当于是“辅道”,不占据用户面数据,且无需提高发射功率。通过这种方式,可以明显提升并发时的下行速率。同样道理,通过对TCP ACK封包投递入无线协议栈NAS封包模块的频率,也可以实现下行限速降功耗的效果。其具体工作机制可以进一步参考图17。
流量调整模块具体处理实施例:
图17是根据本发明实施例的流量调整模块的具体工作流程图,如图17所示,该流程包括如下步骤:
步骤S1701:即完成图16中的流量调整的具体处理模块;
步骤S1702:是IP序列,其中含有的是上行的TCP ACK包;
步骤S1703:是一个分流器(Dispatcher),可以将数据流分配到空中接口无线协议栈,交给NAS层打包数据;也可以按照常规流程,将数据流打包成RLC PDU,再往下层层打包通过空口用户面传输。前者即本专利技术提出的方案。分流器是从提高兼容性和用户可选度的考虑而设计;
步骤S1704:是空中接口的协议栈,这里尤其是非无线接入层即NAS层,将小数据包打包通过信令传输;
步骤S1705:是常规的用户面协议栈,数据包走这条路的话,会被无线二层协议栈依次处理,最终形成无线帧发送到3GPP系统的网络中。
下面结合具体应用场景进行说明:
考虑两个应用到本技术方案的物联网应用场景。首先,是安装有多个IP摄像头的大桥,车辆经过大桥时,摄像头会对其进行拍摄、压缩,并通过LTE-M网络上传到应用服务器。在早晚高峰期,车辆会频繁经过,此时即频繁并发小数据上传的情形。本专利技术将众多小数据包聚合上传,有效减少
了多个零散包导致的系统负荷;而在车辆稀少时,每隔一段时间才有一辆车辆经过,这时由于包聚合机制,有效的避免了每个数据包传一次,后者会使得多个MTC Device的状态在空闲IDLE和连接CONNECT之间频繁切换,增大系统信令负载。
再考虑车载终端的场景。车载终端可以使得车内用户接入进行上传下载操作,也可以通过无线下载的方式来更新终端显示屏上播放的广告、视频等业务,如此就可以应用本发明上述实施例的技术,以避免移动到弱信号下导致的传输耗能,以及在节约资源的情况下,提升大业务传输时的峰值速率,提高用户体验。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S11,确定待发送到服务器的第一数据包;
S12,当上述第一数据包的数量为两个以上时,将两个以上上述第一数据包聚合为一个第二数据包;
S13,将该第二数据包发送给服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S21,确定待发送到服务器的第一数据包;
S22,当上述第一数据包为确认ACK数据包时,利用非接入层-协议数据单元NAS-PDU发送上述ACK数据包。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S31,接收来自终端的第二数据包;
S32,解析上述第二数据包,获取该第二数据包中聚合的两个以上第一数据包。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读
存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述各方法实施例中的步骤。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通过上述的实施例能够有效提高系统工作效率,且能够降低系统消耗(包括UE耗电和3GPP系统信令负载损耗)。
上行小数据包发送时的“包聚合”机制。该技术有两个好处,一是减少了大量小包每个包都要经过层层协议栈处理带来的低效率。将包聚合起来之后,无线协议栈只需要处理这一个大包的包头即可,而不用每个原始小包都处理一遍。其次是由于聚合模块的存在,使得小包上传的时机可控,那么就可以选择在强信号的时候发送,在弱信号的时候暂时缓存,包聚合机制其实就能够起到缓存的效果。在弱信号下发送数据,常常会发生无线链路建立失败等问题,使得信令重发频繁发生,导致系统负载升高。而信号转好后再发,会降低这种问题出现的频率,降低了系统信令消耗,也降低了UE终端的耗电。
通过控制上行的ACK,来控制、提高并发时下行速率。其基于的原理就是TCP传输协议的确认机制。本技术方案提出的将ACK包作为一种特殊小包,放在NAS信令中传输,可以使它不占用数据通道,上行的ACK反馈的快,下行的数据速率也会大幅提高。在不提升发功的前提下,提高了并发速率。同样道理,控制将ACK打包为NAS的速率,也就可以控制下行速率,实现省电的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者
将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
工业实用性
本发明实施例提出的数据包发送方法、接收方法、发送装置及接收装置,其中,该数据包发送方法包括:确定待发送到服务器的第一数据包;当上述第一数据包的数量为两个以上时,将两个以上上述第一数据包聚合为一个第二数据包;将该第二数据包发送给服务器。通过本发明实施例,解决了相关技术中存在的数据传输慢的问题,进而达到了提高数据传输速率的效果。