发明名称 基于FPGA的高速网络数据流负载均衡调度方法
摘要 本发明公开一种基于FPGA的高速网络数据流负载均衡调度方法,该方法充分发挥FPGA并行计算的优势,前端并发执行哈希运算和根据队列组的拥塞程度依概率来选择输出端口,并采取流映射端口优先的策略;后端根据输出端口并发将数据包从相应PHY端口发出,将数据包相应信息写入PHY端口对应FIFO并按周期反馈当前最大剩余数据量,以及统计并反馈本周期内的最小流量端口同时基于速率反馈动态调整下一次统计的周期,使其能适应突发流量,并在保证流粒度的前提下,实现高速网络数据流的瞬时均衡。
申请公布号 CN103139093A 申请公布日期 2013.06.05
申请号 CN201310056497.4 申请日期 2013.02.22
申请人 桂林电子科技大学 发明人 王勇;刘勇;陶晓玲;何倩
分类号 H04L12/803(2013.01)I 主分类号 H04L12/803(2013.01)I
代理机构 桂林市持衡专利商标事务所有限公司 45107 代理人 陈跃琳
主权项 基于FPGA的高速网络数据流负载均衡调度方法,其特征是包括如下步骤:S1.数据包首部信息提取,FPGA采用TEMAC核将物理层比特流封装成MAC帧,然后再相应提取源IP地址、目的IP地址、源端口、目的端口、复位RST、同步SYN和终止FIN;S2.哈希运算,对提取的源IP地址、目的IP地址、源端口和目的端口进行四元组哈希运算,并将哈希结果对4求模取余数;S3.流映射表管理,包括流映射表的写操作管理、读操作管理和清除操作管理;即S31.判断TCP新建连接,若SYN=1,则根据在本周期中队列组中最大剩余数据量,判断是否存在队列拥塞,若最大剩余数据量没有超过一定门限值则视为没有拥塞,则不做任何处理;若最大剩余量超过该门限且存在某种梯度时视为轻度、中度与重度拥塞,则分别按某种概率增长方式依概率选中最小流量端口作为当前数据包的输出端口,并标记流映射端口有效,同时将该数据包对应的源IP地址和目的IP地址写入CAM中,并将该CAM地址作为RAM地址,将该输出端口值存入RAM中,以备后续同一条流的数据包访问;若SYN=0,则执行S32;S32.判断TCP复位,若RST=1,则将数据包对应的源IP地址和目的IP地址匹配CAM,若匹配CAM命中,则将该CAM地址写入指定FIFO,以示该CAM地址单元已被清除,若匹配CAM不命中,则不做任何处理;若RST=0,执行S33;S33.将数据包相应的源IP地址和目的IP地址匹配CAM,若匹配CAM命中,则将该命中的CAM地址作为地址访问RAM,得到该数据包的输出端口,并标记流映射端口有效,再判断TCP终止,若FIN=1,则再将该CAM地址写入指定FIFO,以示该CAM地址单元已被清除,若FIN=0,则表示该数据包为普通数据包,跳出此步;若匹配CAM不命中,则不做任何处理;S4.输出端口选择,根据流映射表与哈希值来选择当前数据包的输出端口,即在流映射端口有效时优先选择流映射端口为输出端口,在流映射端口无效时选择哈希值为输出端口;S5.数据输入输出管理,包含将数据包写入至缓冲池与读取到对应PHY端口;即S51.从缓冲器接收数据包,并传递该数据包长度信息,另外根据输出端口修改相应指定字段,并将该数据包存储至缓冲池中,同时记录一次数据包传输的首地址;S52.根据上述记录中的首地址,读取缓冲池中的数据包,根据修改的输出端口字段发送至相应输出队列,使之从该端口发出;S6.队列分发与存储管理,将数据包相应信息分发存储至PHY端口对应FIFO中,并经过一定周期后反馈当前队列组最大剩余数据量;S7.流量统计与反馈,在一定周期内统计并反馈当前最小流量端口,并基于速率反馈动态调整下一次统计的周期。
地址 541004 广西壮族自治区桂林市金鸡路1号