会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 图形技术 / / 一种OBS组帧方法和装置

一种OBS组帧方法和装置

阅读:277发布:2021-02-24

IPRDB可以提供一种OBS组帧方法和装置专利检索,专利查询,专利分析的服务。并且本发明实施例公开了一种OBS组帧方法和装置,所述OBS组帧方法包括:边缘节点根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;所述边缘节点根据所述下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值;所述边缘节点根据所述长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包。通过应用本发明实施例所提出的技术方案,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。,下面是一种OBS组帧方法和装置专利的具体信息内容。

1.一种光突发交换OBS组帧方法,其特征在于,包括:

根据接收到的传输控制协议TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的确认字符ACK包的数量;

所述下一轮所接收的ACK包的数量的具体确定方式为:ACK_Total=TCP_Num×ACK_Length/Interval,其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔;

所述TCP流突发包中所包含的TCP包的数量的具体确定方式为:TCP_Num=BurstLength/MTU,其中,TCP_Num表示TCP包的数量,BurstLength表示TCP流突发包的包长,MTU表示TCP流突发包中所包含的TCP包的最大包长;

根据所述下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值;

所述确定长度门限值具体包括:根据所述下一轮所接收的ACK包的数量确定长度门限值为Length_Threshold=ACK_Total×β,其中,Length_Threshold表示长度门限值,ACK_Total表示下一轮所接收的ACK包的数量,β表示预设的调节参数;判断所述长度门限值是否小于所述预设的最小组帧长度值;当所述长度门限值小于所述预设的最小组帧长度值时,更新所述长度门限值为所述预设的最小组帧长度值;

根据所述长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包;

所述预设的最优组帧长度值的具体设置方式为:设置所述最优组帧长度值为拥塞窗口大小的期望值E[W],所述E[W]的计算方式为:其中,b表示ACK包的确认间隔,p表示链路的丢包

率。

2.一种边缘节点,其特征在于,包括:

数量确定模块,用于根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;所述下一轮所接收的ACK包的数 量的具体确定方式为:ACK_Total=TCP_Num×ACK_Length/Interval,其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔;

TCP数量确定模块,用于确定所述接收到的TCP流突发包中所包含的TCP包的数量,具体确定方式为:TCP_Num=BurstLength/MTU,其中,TCP_Num表示TCP包的数量,BurstLength表示TCP流突发包的包长,MTU表示TCP流突发包中所包含的TCP包的最大包长;

门限确定模块,用于根据所述数量确定模块所确定的下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值;所述确定长度门限值具体包括:根据所述下一轮所接收的ACK包的数量确定长度门限值为Length_Threshold=ACK_Total×β,其中,Length_Threshold表示长度门限值,ACK_Total表示下一轮所接收的ACK包的数量,β表示预设的调节参数;判断所述长度门限值是否小于所述预设的最小组帧长度值;当所述长度门限值小于所述预设的最小组帧长度值时,更新所述长度门限值为所述预设的最小组帧长度值;

组帧模块,用于根据所述门限确定模块所确定的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包;所述预设的最优组帧长度值的具体设置方式为:设置所述最优组帧长度值为拥塞窗口大小的期望值E[W],所述E[W]的计算方式为:其中,b表示ACK包的确认间隔,p表示链路的丢包

率。

3.如权利要求2所述的边缘节点,其特征在于,还包括:

初始化模块,用于设置所述最小组帧长度值、所述最优组帧长度值和所述组帧时间门限值。

4.一种OBS组帧方法,其特征在于,包括:

根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;所述下一轮所接收的ACK包的数量的具体确定方式为:ACK_Total=TCP_Num×ACK_Length/Interval,其中,ACK_Total表示下一轮 所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔;

根据接收到的TCP流突发包中所包含的ACK包的数量,确定下一轮所接收的TCP包的数量;所述确定下一轮所接收的TCP包的数量,具体为:根据所述ACK包的数量确定上一轮所接收的TCP包的数量为:TCP_Total=ACK_Num×Interval,其中,TCP_Total表示上一轮所接收的TCP包的数量,ACK_Num表示TCP流突发包中所包含的ACK包的数量,Interval表示ACK的确认间隔;确定所述上一轮所接收的TCP包的数量为所述下一轮所接收的TCP包的数量;

根据所述下一轮所接收的ACK包的数量、所述下一轮所接收的TCP包的数量和预设的最小组帧长度值,确定长度门限值;

所述确定长度门限值具体包括:根据所述下一轮所接收的ACK包的数量和所述下一轮所接收的TCP包的数量确定长度门限值为Length_Threshold=β×(ACKLength×ACK_Total+MTU×TCP_Total),其中,Length_Threshold表示长度门限值,β表示预设的调节参数,ACK_Length表示ACK包的包长,ACK_Total表示下一轮所接收的ACK包的数量,MTU表示TCP包的包长,TCP_Total表示下一轮所接收的TCP包的数量;判断所述长度门限值是否小于所述预设的最小组帧长度值;当所述长度门限值小于所述预设的最小组帧长度值时,更新所述长度门限值为所述预设的最小组帧长度值;

根据所述长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的TCP包和/或ACK包生成突发包;所述预设的最优组帧长度值的具体设置方式为:设置所述最优组帧长度值为拥塞窗口大小的期望值E[W],所述E[W]的计算方式为:其中,b表示ACK包的确认间隔,p表示链路的丢包率。

5.如权利要求4所述的方法,其特征在于,所述将下一轮接收到的TCP包和/或ACK包生成的突发包中包括预设的输入队列或额外ACK队列中的数 据,具体的生成过程为:当预设的组帧时间门限值所对应的时间到达时,判断所述额外ACK队列是否为空;

当所述额外ACK队列为空时,将所述输入队列中的数据生成所述突发包;当所述额外ACK队列不为空时,将所述额外ACK队列中的数据生成所述突发包。

6.如权利要求5所述的方法,其特征在于,所述将所述输入队列中的数据生成所述突发包之后,还包括:判断所述突发包中ACK包所对应的数据比例是否超过预设的ACK包比例门限值;

当所述突发包中ACK包所对应的数据比例未超过所述ACK包比例门限值时,在预设的组帧时间门限所对应的时间到达后,发送所述突发包;当所述突发包中ACK包所对应的数据比例超过所述ACK包比例门限值时,将所述突发包中的ACK包缓存至所述额外ACK队列,并将所述突发包中的非ACK包数据组成新的突发包,在预设的组帧时间门限所对应的时间到达后,进行发送。

7.一种边缘节点,其特征在于,包括:

ACK数量确定模块,用于根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;

所述下一轮所接收的ACK包的数量的具体确定方式为:ACK_Total=TCP_Num×ACK_Length/Interval,其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔;

TCP数量确定模块,用于根据接收到的TCP流突发包中所包含的ACK包的数量,确定下一轮所接收的TCP包的数量;

所述确定下一轮所接收的TCP包的数量,具体为:根据所述ACK包的数量确定上一轮所接收的TCP包的数量为:TCP_Total=ACK_Num×Interval,其中,TCP_Total表示上一轮所接收的TCP包的数量,ACK_Num表示TCP 流突发包中所包含的ACK包的数量,Interval表示ACK的确认间隔;确定所述上一轮所接收的TCP包的数量为所述下一轮所接收的TCP包的数量;

门限确定模块,用于根据所述ACK数量确定模块所确定的下一轮所接收的ACK包的数量、所述TCP数量确定模块所确定的下一轮所接收的TCP包的数量和预设的最小组帧长度值,确定长度门限值;

所述确定长度门限值具体包括:根据所述下一轮所接收的ACK包的数量和所述下一轮所接收的TCP包的数量确定长度门限值为Length_Threshold=β×(ACK_Length×ACK_Total+MTU×TCP_Total),其中,Length_Threshold表示长度门限值,β表示预设的调节参数,ACK_Length表示ACK包的包长,ACK_Total表示下一轮所接收的ACK包的数量,MTU表示TCP包的包长,TCP_Total表示下一轮所接收的TCP包的数量;判断所述长度门限值是否小于所述预设的最小组帧长度值;当所述长度门限值小于所述预设的最小组帧长度值时,更新所述长度门限值为所述预设的最小组帧长度值;

组帧模块,用于根据所述门限确定模块所确定的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的TCP包和/或ACK包生成突发包;

所述预设的最优组帧长度值的具体设置方式为:设置所述最优组帧长度值为拥塞窗口大小的期望值E[W],所述E[W]的计算方式为:其中,b表示ACK包的确认间隔,p表示链路的丢包率。

8.如权利要求7所述的边缘节点,其特征在于,还包括:

初始化模块,用于设置所述最小组帧长度值、所述最优组帧长度值和所述组帧时间门限值。

9.如权利要求7或8所述的边缘节点,其特征在于,还包括:

TCP统计模块,用于统计所述接收到的TCP流突发包中所包含的TCP包的数量;

ACK统计模块,用于统计所述接收到的TCP流突发包中所包含的ACK 包的数量。

10.如权利要求7或8所述的边缘节点,其特征在于,还包括:

门限设置模块,用于设置ACK包比例门限值;

队列管理模块,用于管理预设的输入队列和额外ACK队列中的数据,并根据ACK包所对应的数据比例与所述门限设置模块设置的ACK包比例门限值的大小关系,将所述输入队列或额外ACK队列中的数据组成突发包进行发送。

说明书全文

一种OBS组帧方法和装置

技术领域

[0001] 本发明涉及通信技术领域,特别是涉及一种OBS组帧方法和装置。

背景技术

[0002] 全球Internet和数据业务的爆炸式增长,各种新兴业务相继出现,使互联网络业务呈指数增长。由于业务的多样性和多变性,传统的核心交换网络已经不适于互联网不断发展的需要。目前光网络采用的光突发交换提高处理粒度就是一种较好的解决方法,可以满足上述的技术需要。
[0003] 在OBS网络中,基本交换单位是突发包(burst)。光突发交换节点包括核心节点与边缘节点。边缘节点将IP分组会聚成长度比IP分组大很多的突发包,同时向调度器发送一个突发包组装完毕信号,使该突发包进入调度队列,调度器根据到来突发包的描述信息,为它预约资源,成功后再发送预约信息到下游核心节点预约网络资源,在核心节点,控制分组经过光/电/光变换和电信息处理,为相应的光突发分组预留资源。
[0004] 在OBS的研究中,突发组装、资源调度、资源预留、QoS支持等是研究的关键技术。其中突发组装的任务是将所收到的数据包根据目的节点和QoS级别进行分类,发送到各自所属队列中;控制各队列,将达到要求的队列组装成突发包;将突发包及相关信息如突发包目的节点、QoS级别、包长、组包时延等发送给分类器。目前,基本的组装算法分为两类:
基于组帧时间门限的算法和基于组帧长度门限的算法。
[0005] 其中,基于时间门限的组帧算法的技术方案是在边缘节点维护一个定时器,当第一个IP分组进入边缘节点时开始计时,计时器超时后,将缓存内的所有IP分组组装成一个突发帧发送出去。
[0006] 另一方面,基于长度门限组帧算法的技术方案是边缘节点将突发帧的长度作为判断是否组成突发帧并发送的标准。
[0007] 再一方面,先用技术还提出了基于双门限组帧算法。这种算法将时间门限和长度门限一起考虑进来,二者之一满足时就会产生突发帧。最常见的双门限算法是Max-Time-Min-Max-Length算法,这种算法既可以避免网络流量不稳定时突发帧长度波动的情况,也可以解决由于网络中流量过小而引入的长组帧延时。
[0008] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0009] 对于不同类型的边缘节点,其对应的网络流量因为流量的不对称性而存在很大差异,而且还会出现网络流量不稳定的情况,而现有技术的技术方案中,没有提出相应的解决方案,各种预设的参数值或门限值都可能会因为网络流量的变化而受到影响,使得预期的技术效果受到影响,降低网络的数据处理效率和处理质量。

发明内容

[0010] 本发明实施例提出一种OBS组帧方法和装置,针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列的设定。
[0011] 为达到上述目的,本发明实施例一方面提出一种OBS组帧方法,包括:
[0012] 边缘节点根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的确认字符(ACKnowledge Character,ACK)包的数量;
[0013] 所述边缘节点根据所述下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值;
[0014] 所述边缘节点根据所述长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包。
[0015] 另一方面,本发明实施例还提出一种边缘节点,包括:
[0016] 数量确定模块,用于根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;
[0017] 门限确定模块,用于根据所述数量确定模块所确定的下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值;
[0018] 组帧模块,用于根据所述门限确定模块所确定的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包。
[0019] 另一方面,本发明实施例还提出一种OBS组帧方法,包括:
[0020] 根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;
[0021] 根据接收到的TCP流突发包中所包含的ACK包的数量,确定下一轮所接收的TCP包的数量;
[0022] 根据所述下一轮所接收的ACK包的数量、所述下一轮所接收的TCP包的数量和预设的最小组帧长度值,确定长度门限值;
[0023] 根据所述长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的TCP包和/或ACK包生成突发包。
[0024] 另一方面,本发明实施例还提出一种边缘节点,包括:
[0025] ACK数量确定模块,用于根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;
[0026] TCP数量确定模块,用于根据接收到的TCP流突发包中所包含的ACK包的数量,确定下一轮所接收的TCP包的数量;
[0027] 门限确定模块,用于根据所述ACK数量确定模块所确定的下一轮所接收的ACK包的数量、所述TCP数量确定模块所确定的下一轮所接收的TCP包的数量和预设的最小组帧长度值,确定长度门限值;
[0028] 组帧模块,用于根据所述门限确定模块所确定的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的TCP包和/或ACK包生成突发包。
[0029] 本发明实施例的技术方案具有以下优点,因为采用了与边缘节点类型相对应的组帧算法,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。

附图说明

[0030] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031] 图1A为本发明实施例中的CEN和SEN的组帧长度仿真示意图;
[0032] 图1B为本发明实施例中的组帧延时的仿真结果示意图;
[0033] 图2为本发明实施例一中的一种OBS组帧方法的流程示意图;
[0034] 图3为本发明实施例二中的一种区分边缘节点类型的OBS组帧方法的流程示意图;
[0035] 图4为本发明实施例三中的一种OBS组帧方法的流程示意图;
[0036] 图5为本发明实施例四中的一种通用边缘节点的OBS组帧方法的流程示意图;
[0037] 图6为本发明实施例五中的一种在通用边缘节点中控制通过组帧队列生成的突发包中的ACK个数的算法的流程示意图;
[0038] 图7为本发明实施例六中的一种客户端边缘节点的结构示意图;
[0039] 图8为本发明实施例六中的一种通用边缘节点的结构示意图。

具体实施方式

[0040] TCP(Transmission Control Protocol),即传输控制协议,是目前使用最广的传输层协议,提供面向连接的、全双工可靠交付的服务。传输数据前必须先建立连接,数据传输结束后要释放连接。TCP协议通过“三次握手”方式来建立连接,其连接采用的是客户——服务器(Client-Server)模式,其中主动发起连接建立的应用进程为客户(Client),被动建立连接的为服务器(Server)。通常情况下服务器将向客户端发送大量的数据,而客户端仅向服务器发送少量的数据。不论是一般的数据流还是来自于客户端的ACK,在OBS的边缘节点都需要进行组帧,这样就导致了服务器端边缘节点和客户端边缘节点的流量存在严重的不平衡性。其中,客户端边缘节点具体为靠近客户端的入口边缘节点,即从服务器端到客户端流量的出口边缘节点;服务器端边缘节点具体为靠近服务器端的入口边缘节点,即从客户端到服务器端流量的出口边缘节点。由于OBS网络中TCP性能是延时和丢包敏感的,通过分析网络中端到端延时的组成,发现在考虑节点对等的情况下,OBS网络中CEN(ClientEdge Node,客户端边缘节点)中由于多个ACK组帧过程之间存在一段时间的停顿,因此,会带来不必要延时,从而给网络性能带来很坏的影响。
[0041] 因此,本发明实施例针对以上技术问题,提出了基于TCP流不对称性的组帧方案,从而减小TCP流端到端的传输时延,并且根据不同的应用场景,提出相应的的解决方案来提高TCP over OBS的传输特性。
[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 在现实网络中的数据往往存在一定的取向性,从服务器端到客户端的流量和从客户端到服务器端的流量存在着严重的不平衡性。而服务器端和客户端在地理位置上又存在着空间位置分布的特性,从而导致了OBS网络中SEN(服务器端边缘节点)和CEN的不对等性。这就要求在组帧时对二者应该加以区分,使用基于边缘节点功能区分的OBS组帧方法。
[0044] 如图1A所示,CEN和SEN的组帧长度仿真示意图。对于SEN的组帧情况,其突发长度几乎都可以达到组帧长度门限450Kbytes,而对于CEN的组帧长度,从图上可以看出,其长度远远小于组帧长度门限。
[0045] 图1B为组帧延时的仿真结果示意图。即当突发帧长度达到长度门限时,组帧延时很小(小于2ms),而对于那些没有达到长度门限的点,组帧延时达到了时间门限5ms。对于CEN,组帧延时保持5ms不变。
[0046] 基于以上的说明,本发明实施例所提出的技术方案针对实际OBS网络中边缘节点流量的不对称性,根据统计、计算接收到的TCP包与ACK包的数量,将OBS网络中的边缘节点实时的调整为功能明确的边缘节点以及通用边缘节点,并且依据建议的组帧算法选取一组合适的组帧参数,降低CEN的组帧延时,从而提高TCP的吞吐量。
[0047] 其中,功能明确的边缘节点即CEN(客户端边缘节点)和SEN(服务器端边缘节点)。
[0048] 下面,针对功能明确的边缘节点以及通用边缘节点两种情况,分别通过不同的实施例进行技术方案的具体说明。
[0049] 本发明实施例一提出的一种OBS组帧方法,该方法具体应用于功能明确的边缘节点所对应的网络场景中。
[0050] 在网络设备的应用中,有时节点功能具有明确的区分。比如服务器端边缘节点,主要负责服务器发出的数据的组帧以及发送,并接收客户端边缘节点返回的ACK数据,客户端边缘节点则负责客户端数据的组帧以及发送,并接收服务器端边缘节点发送的TCP数据。因为客户端和服务器端的数据具有不同的数据特征以及流量,所以所采用的组帧方案也需要调整。
[0051] 其中,服务器端边缘节点的OBS组帧方法具体为根据预设的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值配置组帧队列,生成相应的突发包。
[0052] 另一方面,如图2所示,客户端边缘节点中的OBS组帧方法包括以下步骤:
[0053] 步骤S201、客户端边缘节点根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量。
[0054] 本步骤中下一轮所接收的ACK包的数量的具体确定方式为:
[0055] ACK_Total=TCP_Num×ACK_Length/Interval,
[0056] 其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔。
[0057] 进一步的,TCP流突发包中所包含的TCP包的数量的具体确定方式为:
[0058] TCP_Num=BurstLength/MTU,
[0059] 其中,TCP_Num表示TCP包的数量,BurstLength表示TCP流突发包的包长,MTU表示TCP流突发包中所包含的TCP包的包长。
[0060] 步骤S202、客户端边缘节点根据下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值。
[0061] 具体实现方式包括:
[0062] 客户端边缘节点根据下一轮所接收的ACK包的数量确定长度门限值为:
[0063] Length_Threshold=ACK_Total×β,
[0064] 其中,Length_Threshold表示长度门限值,ACK_Total表示下一轮所接收的ACK包的数量,β表示预设的调节参数;
[0065] 客户端边缘节点判断长度门限值是否小于预设的最小组帧长度值;
[0066] 当长度门限值小于预设的最小组帧长度值时,客户端边缘节点更新长度门限值为预设的最小组帧长度值。
[0067] 步骤S203、客户端边缘节点根据长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包。
[0068] 具体的组帧方法可以为,根据上述各参数配置组帧队列的参数,并根据该组帧队列的配置将下一轮接收到的ACK包生成相应的突发包。
[0069] 其中,预设的最优组帧长度值的具体设置方式为:
[0070] 边缘节点设置最优组帧长度值为拥塞窗口大小的期望值E[W],E[W]的计算方式为:
[0071]
[0072] 其中,b表示ACK包的确认间隔,p表示链路的丢包率。
[0073] 本发明实施例的技术方案具有以下优点,因为采用了与边缘节点类型相对应的组帧算法,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。
[0074] 对应上述的方法,结合具体的应用场景,如图3所示,为本发明实施例二所提出的一种区分边缘节点类型的OBS组帧方法,根据边缘节点的具体类型进行组帧参数的确定和组帧队列的配置,具体包括以下步骤:
[0075] 步骤S301、客户端边缘节点执行初始化流程。
[0076] 具体的,初始化流程至少包括三种参数值的设置,具体说明如下:
[0077] 最优组帧长度值的设置:根据E[W](拥塞窗口大小的期望值)来设定初始的最佳组帧长度。
[0078] 此期望值与链路丢包率以及ACK的确认间隔有关,其关系具体如下:
[0079]
[0080] 其中,b为ACK的确认间隔,即1个ACK最多能确认b个TCP包。p表示链路的丢包率。
[0081] 最小组帧长度门限值的设置:根据OBS网络核心节点的处理能力设定最小组帧长度门限值Lmin。
[0082] 组帧时间门限值的设置:在边缘节点设定组帧时间门限。
[0083] 步骤S302、客户端边缘节点确定接收到的TCP突发包中所包含的TCP包的数量。
[0084] 其中,由于客户端边缘节点所接收的TCP突发包主要由TCP包组成,所以,本步骤中的TCP包数量确定方法具体采用估算方法进行:
[0085] 假设TCP突发包全部由TCP包组成,且各TCP包的包长或TCP包的最大包长达到MTU(如,1500bytes),TCP突发包的包长为BurstLength,则TCP突发包中的TCP包的个数为:
[0086] TCP_Num=BurstLength/MTU,
[0087] 其中,TCP_Num表示TCP包的数量,BurstLength表示TCP流突发包的包长,MTU表示TCP流突发包中所包含的TCP包的最大包长。
[0088] 步骤S303、客户端边缘节点确定下一轮所接收的ACK包的数量。
[0089] 具体的,客户端边缘节点根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量,具体确定方式为:
[0090] ACK_Total=TCP_Num×ACK_Length/Interval,
[0091] 其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔。
[0092] 步骤S304、客户端边缘节点确定长度门限值。
[0093] 长度门限值根据步骤S303中所确定的下一轮所接收的ACK包的数量进行配置,具体配置方式为:
[0094] Length_Threshold=ACK_Total×β,
[0095] 其中,Length_Threshold表示长度门限值,ACK_Total表示下一轮所接收的ACK包的数量,β表示预设的调节参数。
[0096] 如,对于TCP突发包中只包含TCP包的纯TCP突发包,调节参数β设置为1。
[0097] 步骤S305、客户端边缘节点判断当前的长度门限值是否小于预设的最小组帧长度值。
[0098] 本步骤即执行对步骤S304中所确定的长度门限值的修正步骤,避免因为网络数据流流量的不稳定而导致的数据队列参数配置错误,即避免由于某一次或几次接收TCP包数量偏少而对下一次接收的突发包流量判断偏小,并因此而导致对相应的数据队列参数配置错误。
[0099] 当客户端边缘节点判断当前的长度门限值小于预设的最小组帧长度值时,执行步骤S306;
[0100] 当客户端边缘节点判断当前的长度门限值不小于预设的最小组帧长度值时,执行步骤S307。
[0101] 步骤S306、客户端边缘节点更新当前的长度门限值为预设的最小组帧长度值。
[0102] 即客户端边缘节点将步骤S304中确定的长度门限值替换为初始化流程所形成的最小组帧长度值,完成对偏小的当前长度门限值的修订。
[0103] 步骤S307、客户端边缘节点保持当前的长度门限值。
[0104] 即由于当前的长度门限值高于最小组帧长度值,所以,无需修正。
[0105] 步骤S308、客户端边缘节点配置组帧队列,以将下一轮接收到的ACK包生成突发包。
[0106] 具体的,客户端边缘节点配置组帧队列至少包括对长度门限值、最优组帧长度值和组帧时间门限值三个参数的配置。
[0107] 其中,最优组帧长度值和组帧时间门限值两个参数按照初始化流程所生成的数值进行配置,即与初始化的参数值相一致。
[0108] 而长度门限值则按照步骤S306或步骤S307所确定的数值进行配置。
[0109] 需要进一步指出的是,上述的步骤S301所描述的初始化步骤说明的是客户端边缘节点的初始化流程,并在后续的步骤中进行相应的处理流程,而当边缘节点的类型具体为服务器端边缘节点时,具体的初始化流程与上述步骤S301相同,但是在后续的处理流程中,服务器端边缘节点直接根据初始化的参数配置组帧队列,并生成相应的突发包。其中,配置组帧队列所需的最优组帧长度和组帧时间等参数均按照初始化流程所生成的最优组帧长度值和组帧时间门限值进行配置,即与初始化的参数值相一致。
[0110] 本发明实施例的技术方案具有以下优点,因为采用了与边缘节点类型相对应的组帧算法,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。
[0111] 另外一种情况,节点功能不是明确区分,既可以接收TCP数据,也可以接收ACK数据,即该节点中的数据流兼具了用户端侧的边缘节点或服务器端边缘节点中数据流的数据特征。在这种情况下,为了提高网络的性能,可以在节点处统计各种流的数据,根据实时的流特性来调整组帧的参数以使得网络达到最优。
[0112] 本发明实施例三提出了一种OBS组帧方法,该方法具体应用于节点功能不是明确区分的网络场景中,即通用边缘节点中的OBS组帧方法,如图4所示,该方法具体包括:
[0113] 步骤S401、通用边缘节点根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量。
[0114] 本步骤中下一轮所接收的ACK包的数量的具体确定方式为:
[0115] ACK_Total=TCP_Num×ACK_Length/Interval,
[0116] 其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔。
[0117] 进一步的,接收到的TCP流突发包中所包含的TCP包的数量具体通过统计确定。
[0118] 步骤S402、通用边缘节点根据接收到的TCP流突发包中所包含的ACK包的数量,确定下一轮所接收的TCP包的数量。
[0119] 本步骤中下一轮所接收的TCP包的数量的具体确定方式为:
[0120] 首先,确定上一轮所接收的TCP包的数量为:
[0121] TCP_Total=ACK_Num×Interval,
[0122] 其中,TCP_Total表示上一轮所接收的TCP包的数量,ACK_Num表示TCP流突发包中所包含的ACK包的数量,Interval表示ACK的确认间隔。
[0123] 然后,根据TCP包数量基本不变的结论,确定该上一轮所接收的TCP包的数量为下一轮所接收的TCP包的数量。
[0124] 进一步的,接收到的TCP流突发包中所包含的ACK包的数量具体通过统计确定。
[0125] 步骤S403、通用边缘节点根据下一轮所接收的ACK包的数量、下一轮所接收的TCP包的数量和预设的最小组帧长度值,确定长度门限值。
[0126] 具体的,边缘节点根据下一轮所接收的ACK包的数量和下一轮所接收的TCP包的数量确定长度门限值为:
[0127] Length_Threshod=β×(ACK_Length×ACK_Total+MTU×TCP_Total),[0128] 其中,Length_Threshold表示长度门限值,β表示预设的调节参数,ACK_LengthACK包的包长,ACK_Total表示下一轮所接收的ACK包的数量,MTU表示TCP包的包长,TCP_Total表示下一轮所接收的TCP包的数量;
[0129] 通用边缘节点判断长度门限值是否小于预设的最小组帧长度值;
[0130] 当长度门限值小于预设的最小组帧长度值时,更新长度门限值为预设的最小组帧长度值。
[0131] 步骤S404、通用边缘节点根据长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的TCP包和/或ACK包生成突发包。
[0132] 具体的组帧方法可以为,根据上述各参数配置组帧队列的参数,并根据该组帧队列的配置将下一轮接收到的TCP包和/或ACK包生成突发包。
[0133] 其中,预设的最优组帧长度值的具体设置方式为:
[0134] 边缘节点设置最优组帧长度值为拥塞窗口大小的期望值E[W],E[W]的计算方式为:
[0135]
[0136] 其中,b表示ACK包的确认间隔,p表示链路的丢包率。
[0137] 需要进一步指出的是,该通用边缘节点按照配置的组帧队列所生成的突发包由预设的输入队列或额外ACK队列中的数据组成,具体的生成过程为:
[0138] 当预设的组帧时间门限值所对应的时间到达时,边缘节点判断额外ACK队列是否为空;
[0139] 当额外ACK队列为空时,通用边缘节点将输入队列中的数据生成突发包;当额外ACK队列不为空时,通用边缘节点将额外ACK队列中的数据生成突发包。
[0140] 进一步的,当通用边缘节点将输入队列中的数据生成突发包之后,还包括:
[0141] 通用边缘节点判断突发包中ACK包所对应的数据比例是否超过预设的ACK包比例门限值;
[0142] 当该突发包中ACK包所对应的数据比例未超过预设的ACK包比例门限值时,通用边缘节点在预设的组帧时间门限所对应的时间到达后,直接发送该突发包;当该突发包中的ACK包所对应的数据比例超过预设的ACK包比例门限值时,通用边缘节点将该突发包中的ACK包缓存至额外ACK队列,并将该突发包中的其他数据组成新的突发包,在预设的组帧时间门限所对应的时间到达后,进行发送。。
[0143] 其中,该突发包中ACK包所对应的数据比例具体通过以下方式进行计算:
[0144]
[0145] 本发明实施例的技术方案具有以下优点,因为采用了与边缘节点类型相对应的组帧算法,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。
[0146] 对应上述的方法,结合具体的应用场景,如图5所示,为本发明实施例四所提出的一种通用边缘节点的OBS组帧方法,在节点功能或节点类型不能明确区分的情况下,根据实时测定的流特性进行组帧参数的确定和组帧队列的配置,具体包括以下步骤:
[0147] 步骤S501、通用边缘节点执行初始化流程。
[0148] 具体的,初始化流程至少包括三种参数值的设置,具体说明如下:
[0149] 最优组帧长度值的设置:根据E[W](拥塞窗口大小的期望值)来设定初始的最佳组帧长度。
[0150] 此期望值与链路丢包率以及ACK的确认间隔有关,其关系具体如下:
[0151]
[0152] 其中,b为ACK的确认间隔,即1个ACK最多能确认b个TCP包。p表示链路的丢包率。
[0153] 最小组帧长度门限值的设置:根据OBS网络核心节点的处理能力设定最小组帧长度门限值Lmin。
[0154] 组帧时间门限值的设置:在边缘节点设定组帧时间门限。
[0155] 步骤S502、通用边缘节点实时统计接收到的TCP突发包中所包含的TCP包和ACK包的数量。
[0156] 步骤S503、通用边缘节点确定下一轮所接收的ACK包的数量和上一轮所接收的TCP包的数量。
[0157] 其中,通用边缘节点根据步骤S502中所统计的TCP包的数量,确定下一轮所接收的ACK包的数量,具体确定方式为:
[0158] ACK_Total=TCP_Num×ACK_Length/Interval,
[0159] 其中,ACK_Total表示下一轮所接收的ACK包的数量,TCP_Num表示TCP包的数量,ACK_Length表示ACK包的包长,Interval表示ACK的确认间隔。
[0160] 进一步的,通用边缘节点根据步骤S502中所统计的ACK包的数量确定上一轮所接收的TCP包的数量,具体确定方式为:
[0161] TCP_Total=ACK_Num×Interval,
[0162] 其中,TCP_Total表示上一轮所接收的TCP包的数量,ACK_Num表示TCP流突发包中所包含的ACK包的数量,Interval表示ACK的确认间隔。
[0163] 需要指出的是,上述的下一轮所接收的ACK包的数量和上一轮所接收的TCP包的数量的确定过程可能同时进行,也可能先后分别进行,但两者之间没有必然的先后顺序,优先确定哪一个数量均不影响本发明的保护范围。
[0164] 步骤S504、通用边缘节点根据下一轮所接收的ACK包的数量和上一轮所接收的TCP包的数量确定长度门限值。
[0165] 具体的确认方式为:
[0166] Length_Threshod=β×(ACK_Length×ACK_Total+MTU×TCP_Total),[0167] 其中,Length_Threshold表示长度门限值,β表示预设的调节参数,ACK_LengthACK包的包长,ACK_Total表示下一轮所接收的ACK包的数量,MTU表示TCP包的包长,TCP_Total表示上一轮所接收的TCP包的数量。
[0168] 步骤S505、通用边缘节点判断当前的长度门限值是否小于预设的最小组帧长度值。
[0169] 本步骤即执行对步骤S504中所确定的长度门限值的修正步骤,避免因为网络数据流流量的不稳定而导致的数据队列参数配置错误,即避免由于某一次或几次接收TCP包数量偏少而对下一次接收的突发包流量判断偏小,并因此而导致对相应的数据队列参数配置错误。
[0170] 当通用边缘节点判断当前的长度门限值小于预设的最小组帧长度值时,执行步骤S506;
[0171] 当通用边缘节点判断当前的长度门限值不小于预设的最小组帧长度值时,执行步骤S507。
[0172] 步骤S506、通用边缘节点更新当前的长度门限值为预设的最小组帧长度值。
[0173] 即通用边缘节点将步骤S504中确定的长度门限值替换为初始化流程所形成的最小组帧长度值,完成对偏小的当前长度门限值的修订。
[0174] 步骤S507、通用边缘节点保持当前的长度门限值。
[0175] 即由于当前的长度门限值高于最小组帧长度值,所以,无需修正。
[0176] 步骤S508、通用边缘节点配置组帧队列,以将下一轮接收到的TCP包和/或ACK包生成突发包。
[0177] 具体的,通用边缘节点配置组帧队列至少包括对长度门限值、最优组帧长度值和组帧时间门限值三个参数的配置。
[0178] 其中,最优组帧长度值和组帧时间门限值两个参数按照初始化流程所生成的数值进行配置,即与初始化的参数值相一致。
[0179] 而长度门限值则按照步骤S506或步骤S507所确定的数值进行配置。
[0180] 本发明实施例的技术方案具有以下优点,因为采用了与边缘节点类型相对应的组帧算法,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。
[0181] 进一步的,对于通用边缘节点,由于同时存在包含不同方向的TCP包和ACK包的TCP突发包的接收,所以,如果直接将接收到的所有数据直接组成突发包发送,可能会使发送的数据中包含大量的ACK包,从而使因为OBS中丢包会造成大量IP包的丢弃。所以当突发包中含有过多的ACK的话导致TCP性能的恶化,对该边缘节点的TCP的吞吐量造成极大的影响。所以,需要在组帧的过程中考虑一个突发包中ACK包所占有的数据比例,以避免因为ACK数量过多而导致数据帧的丢失。
[0182] 为此,本发明实施例五提出了一种在通用边缘节点中控制通过组帧队列生成的突发包中的ACK比例的算法,其流程示意图如图6所示。
[0183] 在该算法中,边缘节点中预先设置突发包中的ACK包比例门限值Rmax,并建立两种队列:输入队列(input queues)和额外ACK队列(extra-ACK queues)。其中,Input queues为一般队列。Extra-ACK queues为ACK专用队列,一般保持为空。
[0184] 当按照配置的组帧队列所生成的一个突发包中ACK包所占有的数据比例没有达到Rmax时,ACK包放在输入队列与TCP包一起进行发送,当一个突发包中ACK包所占有的数据比例超过Rmax的时候,把该突发包中的ACK包放入额外ACK队列中,额外ACK队列具有特殊的优先级,在预设的组帧时间门限到达后,直接将额外ACK队列中的数据放入突发包中进行发送。
[0185] 基于上述设置,本算法具体包括以下步骤:
[0186] 步骤S601、初始化Rmax,同时清空额外ACK队列。
[0187] 步骤S602、触发突发包生成操作。
[0188] 具体的触发操作可以是接收到TCP包而触发,也可以是达到一个突发包生成周期,即到达预设的组帧时间门限,以及其他可以实现突发包生成操作的条件,具体触发条件的变化并不影响本发明的保护范围。
[0189] 步骤S603、检查额外ACK队列是否为空。
[0190] 即判断额外ACK队列中是否含有数据,由于额外ACK队列具有特殊的优先级,所以,在突发包组成过程中,优先对该队列进行数据检查。
[0191] 当额外ACK队列不为空时,执行步骤S604;
[0192] 当额外ACK队列为空时,执行步骤S605。
[0193] 步骤S604、将额外ACK队列中的数据组成突发包。
[0194] 即将额外ACK队列中的数据组成一个突发包,并将额外ACK队列清空。
[0195] 本步骤完成后,直接执行步骤S608。
[0196] 步骤S605、将输入队列中的数据组成突发包。
[0197] 并将输入队列清空。
[0198] 步骤S606、判断组成的突发包中的ACK包所占的数据比例是否大于Rmax。
[0199] 当组成的突发包中的ACK包所占的数据比例大于Rmax时,执行步骤S607;
[0200] 当组成的突发包中的ACK包所占的数据比例不大于Rmax时,执行步骤S608。
[0201] 步骤S607、将该突发包中的ACK包放入额外ACK队列,并将剩余的数据生成新的突发包。
[0202] 并返回步骤S602,即在一个新的突发包生成流程中,将原突发包中的ACK包放入额外ACK队列等待发送。
[0203] 步骤S608、在预设的组帧时间门限所对应的时间到达后,发送突发包。
[0204] 本发明实施例的技术方案具有以下优点,因为采用了在通用边缘节点中控制通过组帧队列生成的突发包中的ACK包比例的算法,从而,实现了对突发包中的ACK包比例的控制,达到了降低数据的数据丢失率,提高TCP流的传输数据量的效果。
[0205] 对应上述的本发明各实施例所提出的方法,本发明实施例五还提出了相应的边缘节点结构。
[0206] 如图7所示,为客户端边缘节点的结构示意图,包括:
[0207] 数量确定模块71,用于根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;
[0208] 门限确定模块72,用于根据数量确定模块71所确定的下一轮所接收的ACK包的数量和预设的最小组帧长度值,确定长度门限值;
[0209] 组帧模块73,用于根据门限确定模块72所确定的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的ACK包生成突发包。
[0210] 进一步的,上述客户端边缘节点还包括:
[0211] 初始化模块74,用于设置最小组帧长度值、最优组帧长度值和组帧时间门限值。
[0212] TCP数量确定模块75,用于确定接收到的TCP流突发包中所包含的TCP包的数量,为数量确定模块71提供相应的数据依据。
[0213] 需要说明的是,上述各模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块,这样的变化并不影响本发明的保护范围。
[0214] 本发明实施例的技术方案具有以下优点,因为采用了可以应用与边缘节点类型相对应的组帧算法的装置,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。
[0215] 如图8所示,为通用边缘节点的结构示意图,包括:
[0216] ACK数量确定模块81,用于根据接收到的TCP流突发包中所包含的TCP包的数量,确定下一轮所接收的ACK包的数量;
[0217] TCP数量确定模块82,用于根据接收到的TCP流突发包中所包含的ACK包的数量,确定下一轮所接收的TCP包的数量;
[0218] 门限确定模块83,用于根据ACK数量确定模块81所确定的下一轮所接收的ACK包的数量、TCP数量确定模块82所确定的下一轮所接收的TCP包的数量和预设的最小组帧长度值,确定长度门限值;
[0219] 组帧模块84,用于根据门限确定模块83所确定的长度门限值、预设的最优组帧长度值和预设的组帧时间门限值,将下一轮接收到的TCP包和/或ACK包生成突发包。
[0220] 进一步的,上述通用边缘节点还包括:
[0221] 初始化模块85,用于设置最小组帧长度值、最优组帧长度值和组帧时间门限值;
[0222] TCP统计模块86,用于统计接收到的TCP流突发包中所包含的TCP包的数量;
[0223] ACK统计模块87,用于统计接收到的TCP流突发包中所包含的ACK包的数量。
[0224] 再进一步的,上述通用边缘节点还包括:
[0225] 门限设置模块88,用于设置ACK包比例门限值;
[0226] 队列管理模块89,用于管理预设的输入队列和额外ACK队列中的数据,并根据ACK包所对应的数据比例与门限设置模块88设置的ACK包比例门限值的大小关系,将输入队列或额外ACK队列中的数据组成突发包进行发送。
[0227] 需要说明的是,上述各模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块,这样的变化并不影响本发明的保护范围。
[0228] 本发明实施例的技术方案具有以下优点,因为采用了可以应用与边缘节点类型相对应的组帧算法的装置,从而,实现了针对实际OBS网络中边缘节点流量的不对称性和边缘节点的业务类型进行组帧队列设定,达到了减小TCP的端到端时延,提高TCP流的传输数据量的效果。
[0229] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0230] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0231] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用