[发明专利]基于RSS的网络会话分发方法及系统有效
申请号: | 201410851928.0 | 申请日: | 2014-12-30 |
公开(公告)号: | CN104580017B | 公开(公告)日: | 2018-04-06 |
发明(设计)人: | 孙浩 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | H04L12/917 | 分类号: | H04L12/917;H04L29/12 |
代理公司: | 北京鸿元知识产权代理有限公司11327 | 代理人: | 陈英俊 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 rss 网络 会话 分发 方法 系统 | ||
技术领域
本发明涉及网络会话分发技术领域,更为具体地,涉及一种基于RSS的网络会话分发方法及系统。
背景技术
为了提升计算机的性能,现代计算机一般采用多核架构处理数据。对于基于多核架构的网络设备而言,当它接收到一个网络数据包时,相关的网卡需要通过一种机制决定将这个数据包交给哪个CPU处理,RSS(receive side scaling,接收端调节)是一种网络数据包分发机制,已被广泛应用,尤其是应用在一些高性能的网络硬件设备中,如Intel推出的基于8259910Gb以太网控制器的万兆网卡就支持使用开发者给定的参数,通过RSS来进行CPU的任务分配。
为了详细说明RSS进行数据包分发的过程,图1示出了现有的RSS的处理流程,如图1所示,RSS的处理流程包括如下几个简要步骤:
首先,确定入参;包括一个40字节(320比特)的key的入参和一个长度为128的数组redirection table(重定向表)的入参。一般情况下,这两个入参可以由开发者指定,以满足特定场景下的计算需求。Key用于计算hash值,redirection table则用于将hash值映射到各个CPU(即各个发送队列的id)上。
然后,根据key和input(输入的网络数据信息)通过给定的hash算法(compute_hash)计算出一个32位的hash值。input的选取一般有两种形式,一种是取源IP与目的IP二元组连接成的数据段,另一种是取源IP、目的IP、源端口、目的端口四元组连接成的数据段。在计算TCP或UDP等常用数据包时,一般都采用后一种(即四元组的数据段)作为input,四元组的input共包含12个字节,它作为一串8*12位的数字参与计算。关于hash算法,其对应的32位hash值由如下步骤产生:
S1:先将hash结果result置为0;
S2:如果input最左端的一位为1,则将result更新为result自身与key最左端32位的异或值;否则,result不变。
S3:将input与key均左移一位。
S4:如果input为0,则将result作为输出结果;否则,重复S2、S3和S4。
接着,取出上述hash值(result)的7位最低有效位(LSB,即二进制数的最右侧7位)作为redirection table的下标。
最后,按照取出的下标读取相应redirection table上的id值。
一般情况下,随机选取key和redirection table中的对应关系满足取模运算,即:当用n表示id的总个数时,有id=(result&0x7f)%n,当网络会话(session)数目足够多时,上述的RSS算法基本上能够保证将各个网络会话均匀的分配到各个id上。这样,在高流量场景下,各个CPU都能尽可能大的发挥其各自性能。但是,在一些特定场景下,如:向一些特定VIP用户提供专属服务的大流量服务器部署环境或吞吐量测试环境,之前高会话数的条件往往无法得到满足。这时,如果key和redirection table选取的不好,RSS就有可能把有限的网络会话只分配到有限的CPU资源上,使得相应的设备无法发挥其应有的高性能,造成资源浪费。
发明内容
鉴于上述问题,本发明的目的是提供一种RSS的网络会话分发方法及系统,以解决网络会话不能均匀分配到各个id上问题,从而提高设备的性能。
根据本发明的一个方面,提供一种基于RSS的网络会话分发方法,包括:在低会话高流量场景下,通过RSS将各条网络会话均匀分配到网卡的cpu接收队列序号id上,以实现cpu资源的均衡利用;
其中,通过RSS将各条网络会话平均分配到各个id上的过程包括:
将RSS表示为:hash=f(s,k)和id=g(hash,t);
其中,s表示输入的网络数据,
s=(ip1,ip2,port1,port2)=(s1,s2,……,s96),ip1表示32位的源IP,ip2表示32位的目的IP,port1表示16位的源端口,port2表示16位的目的端口;k表示320位的key,k=(k1,k2,……,k320);t表示长度为128的数组redirection table;id表示s在RSS作用下分配的网络端口的地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410851928.0/2.html,转载请声明来源钻瓜专利网。