发明名称 一种基于可编程交换机的网络资源的双层隔离方法
摘要 本发明公开了一种基于可编程交换机的网络资源的双层隔离方法,该方法将网络资源分为聚流层和流层,在聚流层调度时为每一个聚流预留指定带宽,在流层调度时让聚流内的多个流根据其权重竞争带宽。本发明使用低成本的NetFPGA硬件设备,实现了网络资源的灵活、公平且可控的分配,降低了网络资源分配的实现成本,其实现方法简便,手段灵活,网络服务质量能得到显著保证,且与网络层协议无关。
申请公布号 CN103166875B 申请公布日期 2015.10.28
申请号 CN201310077876.1 申请日期 2013.03.12
申请人 浙江大学 发明人 吴春明;曾若瑜;周伯阳;姜明
分类号 H04L12/931(2013.01)I;H04L12/861(2013.01)I 主分类号 H04L12/931(2013.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 周烽
主权项 一种基于可编程交换机的网络资源的双层隔离方法,其特征在于,包括以下步骤:步骤一:数据包通过8个输入端口之一进入可编程交换机:可编程交换机共有8个输入端口,包括4个1G以太网端口和4个DMA端口;交换机采用轮询方式轮流从8个输入端口之一选择数据包进入网络层;步骤二:网络层协议根据路由表,按照数据包头部选择数据包的输出端口,并在数据包头部标记对应的输出队列;步骤三:使用双层的网络资源隔离方法对标记了输出队列的数据包进行调度;该步骤通过以下子步骤来实现:(3.1)获得数据包的流号:若从网络层输出的数据包不带VLAN标签,认为该数据包的流号为0;若从网络层输出的数据包带VLAN标签,则使用VLAN的VID字段的低2位标识其流号:不带VLAN标签或者VID低2位为00的数据包被识别为流0,VID末2位为01的数据包被识别为流1,VID末2位为02的数据包被识别为流2,VID末2位为03的数据包被识别为流3;(3.2)为每个流建立一条调度队列,将数据包根据流号送入对应的队列;(3.3)对流进行分组,一个或多个流组合成一个聚流;(3.4)使用加权时间片轮转方式分配每一个聚流的带宽:设一次轮转的时间片总数为N,任意一个聚流i的指定带宽为b<sub>i</sub>,总带宽为b,则给每一聚流在一次轮转中分配时间片为b<sub>i </sub>/ b * N;当轮到一个聚流i接受服务时,它的时间将被属于聚流i的所有流使用;当时间片使用完时,聚流i停止接受服务,切换至下一个聚流接受服务;(3.5)在聚流i分配到的服务时间内,按照流的权重分配属于每一个流f的服务时间:一个聚流内的多个流排队接受轮询,为每一个流设置一个差额计数器;当一个流开始接收服务时,依据该流的权重,给这个流的差额计数器加上一个差额,差额与权重大小成正比;对于一个正在被发送的流来说,每发送一个数据包,差额计数器就会减少该数据包的字节数,当差额计数器用完或者该流的队列为空时,就切换至下一个流;流的增加与减少会使得每个流得到的带宽改变,这样使得聚流内的带宽能被内部存在的流充分利用;(3.6)当某个队列中的数据包充满队列,当有新数据包进入该队列时,该队列就会丢弃该队列中最老的数据包;步骤四:经过调度的数据包进入输出队列:可编程交换机共有8个输出端口,包括4个1G以太网端口和4个DMA端口;根据步骤二中添加的输出端口标记,送入指定队列。
地址 310058 浙江省杭州市西湖区余杭塘路866号