一种计算机网络tcp流量控制方法

文档序号:7886551阅读:779来源:国知局
专利名称:一种计算机网络tcp流量控制方法
技术领域
本发明涉及一种计算机网络控制方法,尤其是一种计算机网络TCP流量控制方法。
背景技术
随着互联网用户规模急剧增大、网络新应用的不断发展,网络带宽资源被以P2P为代表的高突发流量大量侵占,一些关键业务无法得到保证,完成旨在提高网络服务质量的网络管理日益困难。在这种背景之下,流量控制技术作为一种有效的网络管理手段越来越被网络研究者和产业界所重视。流量控制将业务流进入网络的流量速率控制在限制范围内。通过流量控制,可以缓解网络拥塞、为网络安全提供防御手段以及保证关键业务的服务质量,从而达到优化网络性能、增加可用网络带宽、提高网络服务质量的目的。传统流量控制方法大多数是基于队列模型的流量控制算法,例如RED、WFQ,通过缓存或丢弃数据包调节业务流速率,并通过队列的优先级调度完成不同类型业务流的带宽分配,对不同业务流提供不同服务并实现关键业务的服务质量保证。传统方法存在以下一些不足:1.队列的排队延时和调度延时增加了数据包的往返时延。尤其是队列的规模较大时,产生的延时将增加,可能会对高实时性要求的业务流造成影响;2.丢包会造成TCP流的数据包重传,浪费网络带宽,降低网络带宽的利用率。同时由于TCP协议的拥塞控制机制会对丢包采取抑制发送速率的措施,TCP发送速率会自主下降,导致UDP流过多的占用带宽,造成了 TCP流和UDP流的不公平性;3.流量控制策略的设置不够灵活,所依赖的策略指标不够全面。大部分流量控制系统不能区分不同层次上的协议,尤其是不能针对应用层的业务类型进行区分;4.难以保证业务流之间的流量控制相互独立,不能针对单个业务流采用独立的流量控制结构(以基于队列的流量控制方法为例,多个业务流共用一个队列缓存,业务流之间的流量控制相互干扰,降低了控制精度)。

发明内容
本发明提供了一种低延时、控制策略灵活配置、不丢包的计算机网络TCP流量控制方法。实现本发明目的的计算机网络TCP流量控制方法,包括如下步骤:(I)将数据包采集后按照自定义格式封装:在数据包原有头部封装数据包有关信息、时间戳以及根据五元组计算的Hash值,封装完成的数据包将送入用户空间供用户程序进行解析;(2)根据用户配置,构建一个五元组规则库:该五元组规则库主要包括源IP、目的IP、源端口、目的端口和协议,同时还需要对出入境流量进行区分,增加对进入物理端口的匹配,匹配成功后得到流量控制策略号;(3)根据用户配置,构建流表:流表按照业务流五元组Hash值索引,表项中写入内容为用户配置的流量控制策略号;(4)比较步骤(2)和步骤(3)分别得到的流量控制策略号,如果二者不等,则选择步骤(3)所得到的流量控制策略号作为最终结果;(5)根据得到的流量控制策略号,系统将业务流送入对应的速率控制管道,同时用户将速率管道配置到约定的速率阈值,从而保证业务流的通过速率不会超过这个速率阈值。本发明的计算机网络TCP流量控制方法的有益效果如下:(I)不需要通过缓存通过的数据包来降低其速率,因此降低了数据包的处理延时;(2)提供了多样的业务流匹配方式,既能后完成基于五元组规则的匹配识别,同时能够配合上层软件根据流量识别特征库完成业务流应用协议的匹配识别。(3)在流量控制过程中,本发明通过修改ACK确认包中接收端窗口值大小,达到发送端自主调节其发送速率的目的,从而实现了对TCP流的流量控制。并且在动态修改接收端窗口过程,对发送端TCP报文长度实时采样来估算当前TCP报文段长度,并以此作为修改接收端窗口值的最小单位,以提高控制粒度。由于流量控制过程中不丢弃数据包,较好地克服数据包重传问题,提高了网络带宽的利用率。(4)通过速率控制管道阵列结构的设计,使并发业务流的速率控制相互独立,并提供了业务流级的精确速率控制效果。


图1为本发明的计算机网络TCP流量控制方法的流程图。
具体实施例方式本发明的计算机网络TCP流量控制方法,包括如下步骤:(1)将数据包采集后按照自定义格式封装:在数据包原有头部封装数据包有关信息、时间戳以及根据五元组计算的Hash值,封装完成的数据包将送入用户空间供用户程序进行解析;(2)根据用户配置,构建一个五元组规则库:该五元组规则库主要包括源IP、目的IP、源端口、目的端口和协议,同时还需要对出入境流量进行区分,增加对进入物理端口的匹配,匹配成功后得到流量控制策略号;(3)根据用户配置,构建流表:流表按照业务流五元组Hash值索引,表项中写入内容为用户配置的流量控制策略号;(4)比较步骤(2)和步骤(3)分别得到的流量控制策略号,如果二者不等,则选择步骤(3)所得到的流量控制策略号作为最终结果;(5)根据得到的流量控制策略号,系统将业务流送入对应的速率控制管道,同时用户将速率管道配置到约定的速率阈值,从而保证业务流的通过速率不会超过这个速率阈值。如图1所示,本发明的计算机网络TCP流量控制方法的具体实施的步骤如下:(I)为速率管道设置速率阈值;(2)设置速率高门限thresholdhig和速率低门限thresholdlow ;
(3)截获业务流接收端返回确认包,获得其接收端窗口值大小;(4)根据最近Is截获的返回确认包接收端窗口值大小计算平均接收端窗口大小,作为修改接收端窗口的单位长度,以下称为单位长度;(5)计算当前业务流通过速率;(6)当前速率是否超出速率高门限thresholdhigh,如果是,跳转(8);(7)当前速率是否小于速率低门限thresholdlow,如果是,跳转(12);否则跳转
(9);(8)拟修改接收端窗口大小减小至一个单元长度,跳转(10);(9)拟修改接收端窗口大小增加一个单元长度;跳转(10);(10)判断拟修改后接收端窗口大小是否大于实际接收端窗口值大小,如果小于,跳转(12)算法结束;(11)修改接收端窗口值;(12)修改结束;对以上步骤可以概括为:当实际速率大于预约速率阈值时,减小接收端窗口 ;当实际速率小于预约速率阈值时,逐步增加接收端窗口。同时,对超出速率低门限和超出速率高门限两种越界情况分别采取了不同程度的控制力度,当实际速率超出速率高门限时,接收端窗口马上降至一个单元长度,目的是保证实际速率不能超出预约速率阈值,当实际速率低于速率低门限时,接收端窗口增加一个单元长度,逐步恢复传输速率。在这种控制机制的作用下,实际的速率被控制在速率低门限thresholdlow和速率高门限thresholdhigh两个门限值之间。本发明的一种计算机网络TCP流量控制方法,通过硬件加速处理的方式降低处理延时,通过采取不丢包的方式克服TCP不公平性问题和TCP数据包重传问题,并且提供了灵活的策略制定方式,除此之外设计了速率控制管道阵列结构保证各个TCP业务流的速率控制相互独立。上面所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。技术术语解释:业务流:指一个包括通信双方的源IP、目的IP、源端口、目的端口和协议的五元组。流量控制策略号:指定速率控制管道的标识。数据包捕获设备:指计算机系统中,可以从互联网上像用户空间提供数据包数据的专用硬件设备。Hash函数:指满足下列特征的一类函数:1)将有限的定义域映射到有限的值域。2)对于某一确定的输入,存在一确定的输出与之对应。3)对于不同的输入数据,其输出结果也不同。流表:根据业务流特征建立数据结构,流表按照业务流五元组按照特定Hash函数(如CRC32)计算的Hash值索引,在流表表项中记录业务流有关信息,在本发明中流表用于记录业务流的流量控制策略号。
权利要求
1.一种计算机网络TCP流量控制方法,包括如下步骤: (1)将数据包采集后按照自定义格式封装:在数据包原有头部封装数据包有关信息、时间戳以及根据五元组计算的Hash值,封装完成的数据包将送入用户空间供用户程序进行解析; (2)根据用户配置,构建一个五元组规则库:该五元组规则库主要包括源IP、目的IP、源端口、目的端口和协议,同时还需要对出入境流量进行区分,增加对进入物理端口的匹配,匹配成功后得到流量控制策略号; (3)根据用户配置,构建流表:流表按照业务流五元组Hash值索引,表项中写入内容为用户配置的流量控制策略号; (4)比较步骤(2)和步骤(3)分别得到的流量控制策略号,如果二者不等,则选择步骤(3)所得到的流量控制策略号作为最终结果; (5)根据得到的流量控制策略号,系统将业务流送入对应的速率控制管道,同时用户将速率管道配置到约定的速率阈值,从而保证业务流的通过速率不会超过这个速率阈值。
全文摘要
本发明提供了一种低延时、控制策略灵活配置、不丢包的计算机网络TCP流量控制方法,包括如下步骤(1)将数据包采集后按照自定义格式封装在数据包原有头部封装数据包有关信息、时间戳以及根据五元组计算的Hash值,封装完成的数据包将送入用户空间供用户程序进行解析;(2)根据用户配置,构建一个五元组规则库;(3)根据用户配置,构建流表;(4)比较步骤(2)和步骤(3)分别得到的流量控制策略号,如果二者不等,则选择步骤(3)所得到的流量控制策略号作为最终结果;(5)系统将业务流送入对应的速率控制管道,同时用户将速率管道配置到约定的速率阈值,从而保证业务流的通过速率不会超过这个速率阈值。
文档编号H04L12/801GK103200112SQ201210002440
公开日2013年7月10日 申请日期2012年1月6日 优先权日2012年1月6日
发明者彭策力, 谢海燕, 王建东 申请人:北京奇策科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1