前向通用路由封装包的乱序调整方法

文档序号:7970024阅读:182来源:国知局
专利名称:前向通用路由封装包的乱序调整方法
技术领域
本发明涉及无线通信系统中的通用路由封装(GRE)技术,特别涉及GRE包乱序之后的调 整方法。
背景技术
随着网际协议(IP)技术的发展,GRE隧道(一个数据包封装在另一个数据包的净荷中 进行传送时,所经过的路径称为隧道)也得到了广泛的应用,GRE隧道是基于RFC1701标准 协议、RFC1702标准协议和RFC2784标准协议的IP方案。它的方案是将数据包加上GRE包头, 封装了GRE包头的数据包通过GRE隧道传送。在路由器看来GRE隧道是一个点到点端口,它 可以被加密。
如图1所示,在无线通讯系统的地面链路中,网络分组数据通过分组数据服务结点(PI)SN) 与分组控制功能(PCF)之间的GRE数据隧道传输到基站控制器(BSC)。由PDSN'经过BSC再传输 到移动台的方向称为前向链路,反之,由移动台经过BSC再到PDSN的链路称为反向链路,在 PDSN与PCF之间的业务接口称为RP接口,其链路称为Ai0数据链路。由于网络拓朴结构的 复杂性,在PDSN中序号连续的GRE包,可能会经过不同的路由到达BS(:,从而当BSC接收到 GRE包时可能存在序号不连续的甜向GRE包。当这些乱序的GRE包(点对点协议(PPP)的净荷) 通过空中链路传输到移动台侧,再通过某些上层具有可靠保证的传输协议(如TCP:传输控制 协议)传输后,会导致移动台侧的上层协议因为要分出资源来纠正乱序而影响移动台的性能 如果GRE包承载的是PPP报文分片,则GRE包乱序可能会导致移动台侧组PPP报文失败而丢 弃报文。由此而引起的数据重传会对数据业务的性能产生较大影响。在乱序严重的情况下, 可能会使网络分组传输性能严重下降,极大地影响无线链路的通讯质量。

发明内容
为克服上述缺陷,本发明的目的在于提供一种能够很大程度将乱序包调整为顺序包的前 向通用路由封装包的乱序调整方法。
为达到上述发明目的,本发明前向通用路由封装包的乱序调整方法包括如下步骤 (1)设置条件参数;
(2) 接收前向通用路由封装包
(3) 利用条件参数对接收到的前向通用路由封装包进行乱序调整。
其中,所述步骤(1)中的条件参数包括目标序号,该目标序号为等待接收的前向通问路 由封装包的序号。
其中,所述的步骤(3)具体为
(31) 判断接收到的前向通用路由封装包的序号与目标序号是否相等,若相等,执行步 骤(32):若不相等,执行步骤(33):
(32) 将该接收到的前向通用路由封装包,以及重排序缓冲区中与该接收到的前向通用 路由封装包序号连续的前向通用路由封装包,按顺序发送到移动台,并调整目标序号,返回 执行歩骤(2);
(33) 将该接收到的前向通用路由封装包按照乱序包处理。 其中,所述的歩骤(33)具体为
(331) 将该接收到的前向通用路由封装包按照序号递增的方式加入到重排序缓冲区;
(332) 判断重排序缓冲区是否写满,如果没有写满,执行歩骤(333):如果已经写满, 执行歩骤(334);
(333) 若定时器没有启动,则启动定时器后返回执行歩骤(2);若定时器已启动,直接
返回执行歩骤(2);
(334) 将重排序缓冲区中的全部前向通用路由封装包按顺序发送到移动台,调整目标序 号,并停止定时器,返回执行步骤(2)。
其中,所述定时器的处理流程为
A、 定时器计时并判断定时器是否超时,若定时器超时,执行歩骤B;若定时器没有超时, 重新执行步骤A;
B、 将重排序缓冲区中的全部前向通用路由封装包按顺序发送到移动台,调整目标序号,
并停止定时器。
其中,所述步骤(32)中的调整目标序号的具体方法为将所述发送到移动台的连续的
前向通用路由封装包中的最后一个包序号加1设置为目标序号。
其中,所述步骤(334)中的调整目标序号的具体方法为将接收到的前向通用路由封装
包的序号加l设置为目标序号。
其中,所述步骤B中的调整目标序号的具体方法为将所述发送到移动台的前向通用路
由封装包中的最后一个包序号加1设置为目标序号。
由上述技术方案所描述的前向通用路由封装包的乱序调整方法,对接收到的顺序GRE包 按顺序发送,对接收到的乱序GRE包则利用重排序缓冲区进衧一次重薪排序,并在缓沖超时 或重排序缓冲区写满后按顺序发送。虽然重新排过的顺序不一定是严格按照我们所需要的顺 序排列,但是能够将大部分的数据包在局部区域内是按照顺序排列的,能够保证GRE包在一 定缓冲范围内有序,能够符合链路层高效、 一定程度低出错率的数据传输特性。


图1为PDSN到移动台链路的框图; 图2为GRE隧道模型图3为本发明前向通用路由封装包的乱序调整方法的重排序缓冲区的顺序图; 图4为本发明前向通用路由封装包的乱序调整方法的重排序缓冲区的乱序图 图5为本发明前向通用路由封装包的乱序调整方法的整体流程图; 图6为本发明前向通用路由封装包的乱序调整方法的定时器的流程图。
具体实施例方式
下面结合附图对本发明前向通用路由封装包的乱序调整方法进行详细的描述。 在PDSN与PCF的A10数据链路之间通过一种称为GRE隧道的技术进行数据封装。如图1 和图2所示,PDSN首先对收到的网络报文进行PPP封装,然后再通过GRE封装完成不同链路 层协议的转换和PPP (点对点协议)报文的封装,从而在PDSN与PCF之间建立一个GRI':数据 隧道,两者之间所有的数据均在此隧道中传输。BSC收到甜向GRE包后,会进行GRE解封装 成PPP数据包,再使用无线链路协议(RLP)通过空中接口传送到移动台。
由于GRE协议本身不包含乱序调整功能,BSC在解GRE封装时,不会对乱序的GRf':包进 行调整和重排序,当GRE包乱序较为严重时,会严重影响网络分组数据的传输心能,所以, 引入GRE包乱序调整功能对于在GRE包产生乱序的情况下提高无线分组网络传输性能是很有 必要的。
本发明针对现有GRE协议的缺陷提供一种前向GRE包乱序调整方法,可以在很大程度上 保证乱序包调整为顺序包,从而使数据业务性能基本不受影响。考虑到A10链路位于数据链 路层,数据链路层的可靠传输并不能保证网络层的传输也是可靠的(上层可能因为网络拥塞而 丢弃报文),因而,链路层过分强求精确的调整反而不利于传输性能。前向GRf:包乱序调整采
用了一种简单而高效的算法,该算法的特点是"保证收到的GRE包在--定缓冲范围内有序, 不过分强求精确的调整,同时通过一定的保护措施来控制A10链路的数据包时延"。从而使之 更符会链路层髙效、 一定程度的低出错率数据传送特性。对子链路层出现的小量错误,则通 过上层传输协议(如TCP)来达到可靠的数据传输。
本发明的核心算法思想是利用等待接收的前向通用路由封装包的序号和接收到的的'向 通用路由封装包的序号,进行乱序调整,在二者序号相同的情况下,进行顺序包的处理,在 二者序号不同的情况下,进行乱序包的处理。
将上述算法思想付诸实践需要以下歩骤
步骤1、设置条件参数,该条件参数是指等待接收的前向通用路由封装包的序号,作为 最初的参数可以设置为1,该参数还可以通过后续的流程进行修改。修改的方法有很多,但 每次进行修改都必须是在将数据包发送出去后,或者该参数溢出的情况下。
歩骤2、接收到前向通用路由封装包,并获取该接收到的前向通用路由封装包的序号.
与歩骤1中设置的参数共同作为乱序调整的条件。
步骤3、判断接收到的前向通用路由封装包的序号与等待接收的甜向通闭路由封装包的
序号是否相等,如果相等,则将接收到的前向通用路由封装包以及重排序缓冲区中与接收到
的前向通用路由封装包的序号连续的GRE包一起发送到移动台,并重新调整等待接收的前向 通用路由封装包的序号之后执行歩骤2;否则执行歩骤4。
歩骤4、将接收到的前向通用路由封装包,按序号递增的方式加入到重排序缓冲区中-. 如果重排序缓冲区没有写满,执行步骤5;否则执行歩骤6。
步骤5、如果没有启动定时器,则启动定时器,并返回执行歩骤2。
步骤6、发送重排序缓冲区中的全部GRE包到移动台,并重新调整等待接收的前向通用 路由封装包的序号,停止定时器,并返回执行歩骤2。
上述歩骤中所述的定时器有自己的一个处理流程如下在定时器超时的情况下,将重排 序缓冲区中的全部前向通用路由封装包按顺序发送到移动台,并调整等待接收的前向通用路 由封装包的序号,停止定时器。
通过上述的步骤,本发明可以将大多数乱序的GRE包调整为顺序包,并且充分考虑数据 链路层的特点,引入的乱序调整所需的系统开销很小,能在前向GRE包乱序的情况下依然保 证数据业务的传输性能。
在加入上述的处理流程以后,BSC在解GRE封装时,就会判断GRE序号是否连续从而决
定需要乱序调整与否。假设BSC等待接收的GRE包的序号是Vn,当前BSC接收到的GRfi包的 序号为Seq。如果Vn等于Seq,则表示前向GRE包是顺序包;否则前向GRE包存在乱序,需 耍进行乱序调盤。图3和图4就是例子
顺序包:如图3所示,先后收到Seq=l和Seq=2的GRE包,等待接收的GRE包的序号V'n=3, 而此时,Seq为3的顺序GRE包到达BSC,这就是一个顺序包。
乱序包如图4所示,等待接收的GRE包的序号V『3,先后收到Seq为1、 2、 4、 7、 y、 IO的GRE包。而接收到的GRE包中,仍然存在乱序(或者丢包),如序号为5、 6、 8的G服 包一旦到达,虽然中间有一部分是顺序的GRE包,但由于不符合Vn等于Seq,仍然认定是乩 序包。
考虑到等待接收的GRE包的到达,需要引入一个重排序缓冲区来实现该功能。重排序缓 冲区由存放N个GRE包结点组成.在该重排序缓冲区中存放的GRE包满足如下两个条件
(1) 该重排序缓冲区中的乱序GRE包按序号递增的方式存放;
(2) 等待接收的GRE包的序号Vn总指向缓冲区中序号最小的空洞,空洞可以为
A、 顺序接收所期望的GRE包,如图2中的Vn;
B、 乱序或丢包造成的GRE包不连续,如图3中相邻两个GRE包中的空洞所示的Vn。 图5说明了 GRE包乱序调整的总体流程,该流程歩骤如下-
101、 设置等待接收的GRE包的序号Vn;
102、 BSC接收到序号为Seq的GRE包;
103、 判断Seq是否等于Vn,若二者不相等,执行歩骤104;若二者相等,执行步骤108:
104、 BSC收到的当前GRE包是乱序包,将该收到的GRE包按序号递增的方式加入到重排 序缓冲区中;
105、 判断重排序缓冲区是否被写满,若还没有写满,执行步骤106;若巳经写满,执行 歩骤107;
106、 判断是否启动过Flush定时器,若没有启动则启动Flush定时器,并返回执行步骤 102;若Flush定时器已启动则直接返回执行歩骤102;
107、 重排序缓冲区被写满,则表示发生了丢包或乱序幅度已经超出该重排序缓冲区所能 调节的范围,将重排序缓冲区中的GRE包一次性按顺序发送(由于在缓冲区存放GRE包时己经 排序,可以保证这些GRE包是按序号增序存放的),并调整Vn为Seq+l,即期望接收与Seq
连续的下一个GRE包,并在停止Flush定时器后返回执行歩骤102;108、如果Vn-Seq,则BSC收到的当前GRE包为顺序包,检査重排序缓冲区里是否有与 Seq序号连续的GRE包,如果有,则将这些GRE包按顺序先后发送,调整Vn为发送出去的最 后一个GRE包序号加1。
在上述的流程中设定了一个定时器,该定时器是用来限制乱序包在重排序缓冲区中等待 顺序包的时间。如果等待时间太短,可能顺序包并没有到达就匆忙将GRE包发送给移动台, 无法达到较好的乱序调整效果;但是如果等待时间过长,会造成前向(;RE包的数据积压,造 成传输延迟增大。更为严重的是,如果GRE包在缓冲区中积压太久,将会导致移动台侧的某 些上层协议(例如TCP协议)认为数据传输超时而申请数据重传,而积压的数据随后发到移动 台侧已经是无效数据,造成不必要的资源浪费。
该Flush定时器的具体工作流程如图6所示
201、 定时器计时;
202、 判断定时器是否超时,若定吋器超时,执行步骤203:若定时器没有超时,重新执 行步骤201;
203、 将重排序缓冲区中的全部前向通用路由封装包按顺序发送到移动台,调整等待接收 的前向通用路由封装包的序号为发送的最后一个包的序号加1,停止定时器。
本发明的一个最重要的处理就是对重排序缓冲区中的数据的排序和发送,在重排序缓冲 区中的数据在3种情况下需要发送
第一、就是在接收到顺序包的时候发送连续的GRE包
第二、重排序缓冲区被写满则发送重排序缓冲区的全部GRE包;
如果重排序缓冲区被写满,则说明可能存在两种情况 一是可能发生了丢包(丢包可以 认为是乱序的一种);二是可能乱序情况很严重,收到了N—l个包后仍然没有等到序号为Vn 的GRE包。为了防止死等某一个乱序严重或已经丢包的GRE包而影响后续连续包的情况.当 缓冲区满后立即将缓冲的GRE包全部发送至移动台侧,并自动调整Vn。由于缓冲区的G股包 按照GRE序号增序排列,因而符合算法"保证收到的GRE包在一定缓冲范围内有序,不过分 强求精确的调整"的特点,而且简单高效。
第三、Flush定时器超时就发送重排序缓冲区的全部GRE包;该Flush定时器起到的作 用如下
1) 保证任一GRE包的传输时延不超过一个定时器周期;
2) 保证一次数据传输业务的最后几个GRE包正确发送(通过定时器来触发GRE包传输);
3) 缓解某些乱序GRE包积压问题;
4) 保证某些低速率数据业务的乱序包能及时传输。
本发明充分考虑了性能与效能的平衡点,保证在达到一定效能的基础上达到较高的性能。 并且,也考虑了可能出现的异常处理,如GRE包的传输时延处理(髙速率时引入的乱序调整 基本不影响性能;低速率时引入了 GRE包的传输时延双重保护,保证乱序调整尽可能小地影 响时延);对于某些特殊情况出现的异常GRE序号(例如, 一个异常大的GRE序号攻击入侵), 可能会导致Vn值的异常,如果不作特殊处理,会导致等待接收的Vn值远远偏离实际接收的 GRE序号,从而严重影响乱序调整效果。针对此,本发明的算法可以在很短时间内自适应地 调整Vn为正常值,从而提高容错能力。
本发明不仅可以应用于无线通讯领域,还可以应用于任何存在分组网络传输系统的乱序 包的调整中,不仅针对GRE包,也就是说乱序调整的对象是可以拓展的。
在上述的实施例中,除了本发明的乱序调整对象可以拓展以外,还可以改变一些其他的 参数,例如为了根据系统需求来更改重排序缓冲区的乱序调整能力,可以适当改变重排序 缓冲区大小。在本发明中除了用定时器来实现GRE包传输时延的保护,还可以采用其它的手 段来保证GRE包的传输时延。
权利要求
1、一种前向通用路由封装包的乱序调整方法,其特征在于包括以下步骤(1)设置条件参数;(2)接收前向通用路由封装包;(3)利用条件参数对接收到的前向通用路由封装包进行乱序调整。
2、 按照权利要求1所述的前向通用路由封装包的乱序调整方法,其特征在于所述步骤 (1)中的条件参数包括目标序号,该目标序号为等待接收的前向通用路由封装包的序号。
3、 按照权利要求2所述的前向通用路由封装包的乱序调整方法,其特征在于所述的步 骤(3)具体为(31) 判断接收到的前向通用路由封装包的序号与目标序号是否相等,若相等,执行步 骤(32);若不相等,执行歩骤(33);(32) 将该接收到的前向通用路由封装包,以及重排序缓冲区中与该接收到的前向通用路由封装包序号连续的前向通用路由封装包,按顺序发送到移动台,并调整目标序号,返回执行歩骤(2);(33) 将该接收到的前向通用路由封装包按照乱序包处理。
4、 按照权利要求3所述的前向通用路由封装包的乱序调整方法,其特征在于所述的步 骤(33)具体为(331) 将该接收到的前向通用路由封装包按照序号递增的方式加入到重排序缓冲区(332) 判断重排序缓冲区是否写满,如果没有写满,执行歩骤(333):如果己经写满, 执行歩骤(334);(333) 若定时器没有启动,则启动定时器后返回执行步骤(2);若定时器已启动,直接返回执行步骤(2);(334) 将重排序缓冲区中的全部前向通用路由封装包按顺序发送到移动台,调整目标序 号,并停止定时器,返回执行歩骤(2)。
5、 按照权利要求4所述的前向通用路由封装包的乱序调整方法,其特征在于所述定时 器的处理流程为A、 定时器计时并判断定时器是否超时,若定时器超时,执行歩骤B;若定时器没有超时, 重新执行歩骤A;B、 将重排序缓冲区中的全部前向通用路由封装包按顺序发送到移动台,调整目标序号,并停止定时器。
6、 按照权利要求3所述的前向通用路由封装包的乱序调整方法,其特征在于所述步骤 (32)中的调整目标序号的具体方法为将所述发送到移动台的连续的前向通用路由封装包中的最后一个包序号加1设置为目标序号。
7、 按照权利要求4所述的前向通用路由封装包的乱序调整方法,其特征在于所述步骤 (334)中的调整目标序号的具体方法为将接收到的前向通用路由封装包的序号加1设置为目标序号。
8、 按照权利要求5所述的前向通用路由封装包的乱序调整方法,其特征在于所述步骤 B中的调整目标序号的具体方法为将所述发送到移动台的前向通用路由封装包中的最后一 个包序号加l设置为目标序号。
全文摘要
本发明公开了一种前向通用路由封装包的乱序调整方法,涉及无线通信系统中的分组数据传输,为解决现有技术中数据链路层没有乱序调整功能的问题而发明。该前向通用路由封装包的乱序调整方法包括(1)设置条件参数;(2)接收前向通用路由封装包;(3)利用条件参数对接收到的前向通用路由封装包进行乱序调整。其中的条件参数包括目标序号,且目标序号为等待接收的前向通用路由封装包的序号,并根据该目标序号来确定接收到的GRE包是顺序包还是乱序包。本发明通过将接收到的顺序GRE包发送,将接收到的乱序GRE包重新排序后发送,从而实现了GRE包在一定缓冲范围内有序。本发明主要用于分组数据传输系统中。
文档编号H04L1/00GK101162968SQ200610140378
公开日2008年4月16日 申请日期2006年12月8日 优先权日2006年12月8日
发明者佟志新, 康向锋, 谭继奎 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1