一种确认方式数据传输的流量控制方法及系统的制作方法

文档序号:7686683阅读:140来源:国知局
专利名称:一种确认方式数据传输的流量控制方法及系统的制作方法
技术领域
本发明涉及流量控制技术,具体涉及一种确认方式数据传输的流量控制方法及系统。
背景技术
在移动通信系统中,手机等终端是由多个特点不同的模块构成,为了实现手机等终端与网络侧的数据传输,需要用到终端的前端模块和后端模块。具体来说,在进行确认方式的数据传输时,首先由前端模块向后端模块递交要发送的数据包,后端模块保存数据包并向网络侧端传送数据包,成功传送数据包后,后端模块会收到来自网络侧端的确认,然后再根据确认将保存的相关数据包删
除。对第二代(2G)移动通信系统的移动终端来说,前端模块为应用层,后端模块为子网会聚协议层(SNDCP)和逻辑链路控制层(LLC ),而对第三代(3G )移动通信系统的移动终端来说,前端模块为应用层,后端模块为分组数据集中协议层(PDCP)。
以2G系统移动终端进行上行数据传送为例,2G系统移动终端的上行数据传送流程如图1所示,SNDCP收到来自其他层的数据后,先判断数据类型,如果SNDCP收到的是来自应用层的数据包,则保存数据包,并在LLC与网络侧链路已建立的情况下,发送数据包给LLC,再由LLC将数据包上传网络侧,而在LLC与网络侧链路尚未建立的情况下,则保留数据包;如果SNDCP收到的是来自LLC的确认信息,则根据确认信息删除相关数据包;如果SNDCP收到的是LLC与网络侧链路重建成功消息,则重发没有收到确认的数据包给LLC ,再由LLC将数据包上传网络侧;如果SNDCP收到的是其他消息,则系统进行出错处理。这里,如果SNDCP所保存的数据包在设定的一段时间内没有收到
4确认信息,则认为LLC和网络侧链路失败,由网络侧发起请求与LLC重新建 链,建链成功后,SNDCP重新向LLC发送没有收到确认信息的数据包,以便 再次将数据上传网络侧。
但是,应用层向SNDCP传送数据包的频率并不是固定不变的,并且数据 包占用的存储空间也不尽相等,如果应用层传送数据包频率太高或数据包占用 存储空间过大,很容易因大量数据包堆积在SNDCP等待确认而导致SNDCP 存储空间耗尽,所以,需要通过流量控制来保证SNDCP的存储空间不至于占 得太大。
图2为现有技术流量控制方法流程图,如图2所示,现有技术流量控制的 基本思想是根据硬件资源和软件资源的状况设置存储上限(Upthres)和存储 下限(Dnthres),当SNDCP被占用的存储空间大于Upthres时,SNDCP向 应用层发送一条挂起(Suspend)消息,进入挂起状态,应用层收到Suspend 消息后暂停向SNDCP发送数据包,随着SNDCP收到来自LLC的确认信息释 放存储空间,使得被占用的存储空间小于Dnthres时,SNDCP再向应用层发 送一条恢复(Resume)消息,恢复正常状态,应用层收到Resume消息后继 续向SNDCP发送数据包。
虽然,现有的流量控制方法,能够在一定程度上解决存储空间易耗尽的问 题,但是Upthres和Dnthres的选择比较难,如果Upthres设置过高,则存储 空间需要占用SNDCP更多的资源,这样会浪费SNDCP本身并不丰富的资源; 如果Upthres设置过低,又会使SNDCP在正常状态时频繁达到Upthres,从 而SNDCP会频繁地发送Suspend消息给应用层,浪费系统资源;如果Dnthres 设置过高,会使SNDCP在保持桂起状态时,频繁达到Dnthres,浪费系统资 源;而Dnthres设置太低,会使SNDCP保持挂起状态的时间太长,影响数据 传输效率。并且, 一对固定的Upthres和Dnthres无法适应数据传输过程中的 所有情况,灵活性差。

发明内容
有鉴于此,本发明的主要目的在于提供一种确认方式数据传输的流量控制
方法及系统,能够灵活调整Upthres和Dnthres,从而节约系统资源,提高数 据传输效率。
为达到上述目的,本发明的技术方案是这样实现的
本发明提供了一种确认方式数据传输的流量控制方法,包括设置前端模 块数据包占用后端模块存储空间的存储上限Upthres和存储下限Dnthres;该 方法还包括在数据传输过程中,根据后端模块进入挂起状态的次数Numup 和恢复正常状态的次数Numdn,动态调整Upthres或Dnthres,改变存储空间 大小。
该方法进一步包括设置Upthres和Dnthres之差的绝对值的阈值;所述 根据Numup和Numdn动态调整Upthres或Dnthres为设置Numup禾口 Numdn 初始值相等,如果由于Numup增大使Numup与Numdn之差的绝对值大于阈 值,则增大Upthres;如果由于Numdn增大使Numup与Numdn之差的绝对 值大于阈值,则减小Dnthres。
上述方案中,该方法进一步包括每次根据Numup和Numdn调整Upthres 或Dnthres后,将Numup和Numdn清零。
上述方案中,该方法进一步包括设置定时器,后端模块每次进入挂起状态 时,定时器开始计时,如果定时器到时,后端模块还未恢复正常状态,则调整 Upthres和/或Dnthres,减小Upthres与Dnthres之差;如果后端模块已恢复 正常状态,计时器还未到时,则调整Upthres和/或Dnthres,增大Upthres与 Dnthres之差。
其中,所述调整Upthres和/或Dnthres,减小Upthres与Dnthres之差为 减小Upthres和/或增大Dnthres;所述调整Upthres和/或Dnthres,增大Upthres 与Dnthres之差为增大Upthres和/或减小Dnthres。
该方法进一步包括每次根据定时器调整Upthres和/或Dnthres后,将定时器清零。
该方法进一步包括设置Upthres最大值;Upthres达到最大值后不再增大。
本发明还提供了 一种数据传输的流量控制系统,该系统包括网络侧以及位于终端侧的前端模块和后端模块,其中,前端模块将数据包传送至后端模块,后端模块保存前端模块传送的数据包,并将数据包传送至网络侧,根据网络侧返回的确认信息调整数据包的存储;关键在于,所述后端模块进一步包括存储上下限调整模块、计数模块、消息发送模块、判断模块和控制模块,
其中,计数模块用于记录后端模块进入挂起状态的次数Numup以及恢复正常状态的次数Numdn;判断模块用于判断Numup与Numdn之差的绝对值是否大于阈值;消息发送模块用于向前端模块发送挂起消息或恢复消息,并向计数模块和存储上下限调整模块提供后端模块的状态;存储上下限调整模块用于根据判断模块的判断结果及消息发送模块提供的后端模块状态调整Upthres和Dnthres;控制模块用于在存储上下限调整模块根据判断模块的判断结果调整Upthres和Dnthres后,将Numup和Numdn清零。
其中,所述后端模块进一步包括定时模块,用于在后端模块进入挂起状态时开始计时;所述存储上下限调整模块进一步用于根据消息发送模块提供的后端模块状态以及定时模块的定时情况调整Upthres和Dnthres;所述消息发送模块进一步用于向定时模块提供后端模块的状态;所述控制模块进一步用于在存储上下限调整模块根据定时模块的定时情况调整Upthres和Dnthres后,将计数器清零。
本发明确认方式数据传输的流量控制方法及系统,在数据传输过程中,根据后端模块进入挂起状态的次数和恢复正常状态的次数,动态调整Upthres或Dnthres,从而节约系统资源、提高数据传输效率。
进一步的,本发明还可以根据后端模块从挂起状态到恢复正常状态所经历的时间动态调整Upthres和/或Dnthres,从而灵活分配系统资源、有效利用系统资源。


图1为2G系统移动终端的上行数据传送流程图;图2为现有技术流量控制方法流程图;图3为本发明数据传输的流量控制方法流程图;图4为本发明数据传输流量控制系统结构图。
具体实施例方式
本发明的基本思想是根据经验设置Upthres和Dnthres的初始值,在数据传输过程中,根据后端模块进入挂起状态的次数和恢复正常状态的次数,动态调整Upthres或Dnthres。
进一步的,本发明还可以根据后端模块从挂起状态到恢复正常状态所经历的时间动态调整Upthres和/或Dnthres。
下面以2G系统移动终端进行上行数据传输为例,结合附图对本发明作进一步详细说明。
本发明根据SNDCP进入挂起状态的次数Numup和恢复正常状态的次数Numdn对Upthres或Dnthres进行动态调整,Numup和Numdn初始值相等。
本发明中,Numup和Numdn初始值取0,如果由于Numup的增大使iNumup-Numdn|>n,则说明Upthres偏小,容易达到,需要增大Upthres;如
果由于Numdn的增大使lNumup-Numdnl〉n,则说明Numdn偏大,容易达到,需要减小Dnthres。这里,n为自然数,其大小根据实际需要给定,本实施例中取n:1。此外,每次根据Numup和Numdn调整Upthres或Dnthres后,需要对Numup和Numdn清零。
为了防止Upthres变得过大,可以设置一个最大值来控制, 一旦达到最大值,就算实际传输需要增大Upthres, Upthres也保持不变。
并且,由于需要动态调整的是Upthres和Dnthres这两个门限,(Upthres-Dnthres)即反映的是SNDCP从进入挂起状态到恢复正常状态需要释放的存储空间,本发明设置了一个定时器T1衡量SNDCP从进入挂起状态到恢复正常状态所需要的时间,SNDCP进入挂起状态时T1开始计时,如果SNDCP还未恢复正常状态,T1就已经到时,则说明(Upthres-Dnthres)太大,即Upthres与Dnthres之间距离太长,需要通过减小Upthres和/或增大Dnthres来减小(Upth「es-Dnthres )。
如果SNDCP已经恢复正常状态,T1还未到时,则说明(Upthres-Dnthres)太小,即Upthres与Dnthres之间距离太短,需要通过增大Upthres和/或减小Dnthres来增大(Upthres-Dnthres )。这里,T1的定时时间根据实际经验设置。此外,每次根据T1调整Upthres和/或Dnthres后,需要对T1清零。
图3为本发明数据传输的流量控制方法流程图,如图3所示,本发明数据传输的流量控制方法包括以下步骤
步骤301 步骤308: SNDCP接收来自其他层的数据后,进行数据类型判断,如果接收到的数据为来自应用层的数据包,则保存数据包,并执行步骤309;如果接收到的数据为来自LLC层的确认信息,则SNDCP根据确认信息删除存储的相关数据包,并执行步骤315;如果接收到的数据为来自LLC的链路重建成功信息,则SNDCP重新发送没有收到确认信息的数据包给LLC,再由LLC将数据包上传网络侧;如果收到的数据不是上述三种数据,系统进行出错处理。
步骤309 步骤310:判断SNDCP是否处于正常状态,如果是,则将数据包发送给LLC,再由LLC将数据包上传网络侧后,执行步骤311;否则,返回步骤301。
步骤311 步骤312:判断SNDCP被占用的存储空间S是否超过Upthres,如果是,则SNDCP向应用层发送Suspend消息,进入挂起状态,同时,调整进入挂起状态次数Numup:Numup+1,执行步骤313;否则,返回步骤301。
步骤313~步骤314:判断SNDCP的挂起次数与恢复次数之差的绝对值是否大于预定值,如果是,将Upthres增大一个单位,并将Numup和Numdn清零,以及启动定时器T1后,返回步骤301;否则,直接返回步骤301。这里,每个单位包含一定的字节数,具体一个单位包含的字节数根据实际需要设定。步骤315:判断SNDCP是否处于挂起状态,如果是,执行步骤316;否则返回步骤301。
步骤316 步骤317:判断SNDCP被占用的存储空间S是否小于Dnthres,如果是,则SNDCP向应用层发送恢复消息,进入正常状态,并调整恢复正常状态次数Numdn=Numdn+1,执行步骤318;否则,执行步骤322;
步骤318~步骤319:判断SNDCP的挂起次数与恢复次数之差的绝对值是否大于预定值,如果是,将Dnthres减小一个单位,并将Numup和Numdn清零后,执行步骤320;否则返回步骤301。
步骤320 步骤321:判断定时器T1是否正在计时,如果是,调整Upthres和Dnthres,使两者之差增大一个单位,并将T1清零后返回步骤301;否则,直接返回步骤301。
步骤322 步骤323:判断定时器T1是否到时,如果是,调整Upthres和Dnthres,使两者之差减小一个单位,并将T1清零后返回步骤301;否则,直接返回步骤301。
举个例子来说,如果Upthres=30kbytes, Dnthres=4500bytes,应用层向SNDCP发送数据包的最大速率为1Mbytes/s,应用层向SNDCP发送数据包的最小速率为20kbytes/s, SNDCP根据确认信息释放存储空间的速率为10kbytes/s。
当釆用现有技术数据传输流量控制方法时,Upthres=30kbytes和Dnthres=4500bytes固定不变,这样在应用层用最大速率发送文件给SNDCP的过程中,如果传输顺利的话,由于30000bytes /(1000000 bytes/s - 10000bytes/s) = 0.03s ,平均下来应用层每发送30ms的数据,SNDCP就要向应用层发送一次Suspend消息;而在应用层用最小速率发送文件给SNDCP的过程中,如果传输顺利的话,由于30000bytes /(20000 bytes/s - 10000 bytes/s)=3s,平均下来应用层每发送3s的数据,SNDCP才会向应用层发送一次Suspend消息,实际上使得流量控制的效果不明显,而SNDCP又保留了相当大的存储空间,浪费系统资源。
10如果釆用本发明所提供的方法,在应用层用最大速率发送文件给SNDCP
的过程中,Upthres在系统允许的范围内会超过30kbytes,例如变化至150kbytes左右,有效地减少了应用和SNDCP之间传递消息的频率;而在应用层用最小速率发送文件给SNDCP的过程中,Upthres会低于30kbytes,例如变
化至7.5 kbytes左右,又使得用于数据传输的存储空间减少了 ,从而可以有更多的存储空间用于其它目的。
图4为本发明数据传输流量控制系统结构图,如图4所示,本发明数据传
输的流量控制系统包括网络侧以及位于终端侧的前端模块和后端模块,其中,前端模块用于将数据包传送至后端模块;
后端模块用于保存前端模块传送的数据包,将数据包传送至网络侧,并根据网络恻返回的确认信息删除保存的相关数据包,以及根据设置的Upthres、Dnthres和数据包占用的存储空间控制前端模块发送数据包或停止发送数据包;
网络侧用于接收数据,并向后端模块发送确认信息,
其中,所述后端模块进一步包括存储上下限调整模块、计数模块、消息发送模块、判断模块和控制模块,其中,
计数模块用于记录后端模块进入挂起状态的次数Numup以及恢复正常状态的次数Numdn;
判断模块用于判断Numup与Numdn之差的绝对值是否大于阈值;
消息发送模块用于向前端模块发送挂起消息或恢复消息,并向计数模块和存储上下限调整模块提供后端模块的状态;
存储上下限调整模块用于根据判断模块的判断结果及消息发送模块提供的后端模块状态调整Upthres和Dnthres;
控制模块用于在存储上下限调整模块根据判断模块的判断结果调整Upthres和Dnthres后,将Numup和Numdn清零。
所述后端模块还可以进一步包括定时模块,用于在后端模块进入挂起状态时开始计时;所述存储上下限调整模块还可以进一步用于根据消息发送模块提供的后端
模块状态以及定时模块的定时情况调整Upthres和Dnthres;
所述消息发送模块还可以进一步用于向定时模块提供后端模块的状态; 所述控制模块还可以进一步用于在存储上下限调整模块根据定时模块的定 时情况调整Upthres和Dnthres后,将计数器清零。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范
权利要求
1、一种确认方式数据传输的流量控制方法,包括设置前端模块数据包占用后端模块存储空间的存储上限Upthres和存储下限Dnthres;其特征在于,该方法还包括在数据传输过程中,根据后端模块进入挂起状态的次数Numup和恢复正常状态的次数Numdn,动态调整Upthres或Dnthres,改变存储空间大小。
2、 根据权利要求1所述的方法,其特征在于,该方法进一步包括设置 Upthres和Dnthres之差的绝对值的阈值;所述根据Numup和Numdn动态调整Upthres或Dnthres为设置Numup 和Numdn初始值相等,如果由于Numup增大使Numup与Numdn之差的绝 对值大于阈值,则增大Upthres;如果由于Numdn增大使Numup与Numdn 之差的绝对值大于阈值,则减小Dnthres。
3、 根据权利要求2所述的方法,其特征在于,该方法进一步包括每次 根据Numup和Numdn调整Upthres或Dnthres后,将Numup和Numdn清 零。
4、 根据权利要求1所述的方法,其特征在于,该方法进一步包括设置定 时器,后端模块每次进入挂起状态时,定时器开始计时,如果定时器到时,后 端模块还未恢复正常状态,则调整Upthres和/或Dnthres,减小Upthres与 Dnthres之差;如果后端模块已恢复正常状态,计时器还未到时,则调整Upthres 和/或Dnthres,增大Upthres与Dnthres之差。
5、 根据权利要求4所述的方法,其特征在于,所述调整Upthres和/或 Dnthres,减小Upthres与Dnthres之差为减小Upthres和/或增大Dnthres;所述调整Upthres和/或Dnthres,增大Upthres与Dnthres之差为增大 Upthres和/或减小Dnthres。
6、 根据权利要求4所述的方法,其特征在于,该方法进一步包括每次 根据定时器调整Upthres和/或Dnthres后,将定时器清零。
7、 根据权利要求2或5所述的方法,其特征在于,该方法进一步包括 设置Upthres最大值;Upthres达到最大值后不再增大。
8、 一种数据传输的流量控制系统,该系统包括网络侧以及位于终端侧的前 端模块和后端模块,其中,前端模块将数据包传送至后端模块,后端模块保存 前端模块传送的数据包,并将数据包传送至网络侧,根据网络侧返回的确认信 息调整数据包的存储;其特征在于,所述后端模块进一步包括存储上下限调整模块、计数模块、 消息发送模块、判断模块和控制模块,其中,计数模块用于记录后端模块进入挂起状态的次数Numup以及恢复正常状 态的次数Numdn;判断模块用于判断Numup与Numdn之差的绝对值是否大于阈值;消息发送模块用于向前端模块发送挂起消息或恢复消息,并向计数模块和 存储上下限调整模块提供后端模块的状态;存储上下限调整模块用于根据判断模块的判断结果及消息发送模块提供的 后端模块状态调整Upthres和Dnthres;控制模块用于在存储上下限调整模块根据判断模块的判断结果调整 Upthres和Dnthres后,将Numup和Numdn清零。
9、 根据权利要求8所述的控制系统,其特征在于,所述后端模块进一步 包括定时模块,用于在后端模块进入挂起状态时开始计时;所述存储上下限调整模块进一步用于根据消息发送模块提供的后端模块状态以及定时模块的定时情况调整Upthres和Dnthres;所述消息发送模块进一步用于向定时模块提供后端模块的状态; 所述控制模块进一步用于在存储上下限调整模块根据定时模块的定时情况调整Upthres和Dnthres后,将计数器清零。
全文摘要
本发明公开一种确认方式数据传输的流量控制方法,该方法设置存储上限Upthres和存储下限Dnthres,当后端模块被占用的存储空间大于Upthres时,进入挂起状态,随着后端模块收到来自网络侧的确认信息释放存储空间,使被占用的存储空间小于Dnthres时,后端模块恢复正常状态,本发明中,后端模块会根据后端模块进入挂起状态的次数和进入正常状态的次数,对Upthres和Dnthres进行动态调整,并进一步根据后端模块从进入挂起状态到恢复正常状态所经历的时间对Upthres和Dnthres进行动态调整,本发明还公开一种数据传输的流量控制系统,采用本发明的方法和系统,能够节约系统资源、提高数据传输效率。
文档编号H04L1/16GK101483508SQ20081005587
公开日2009年7月15日 申请日期2008年1月10日 优先权日2008年1月10日
发明者李引新 申请人:联芯科技有限公司;大唐移动通信设备有限公司;上海大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1