[发明专利]一种支持优先级的标签化网络栈方法和系统有效
申请号: | 201811426135.9 | 申请日: | 2018-11-27 |
公开(公告)号: | CN109768939B | 公开(公告)日: | 2021-05-25 |
发明(设计)人: | 张文力;刘珂;常轶松;于蓝;陈明宇 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H04L12/851 | 分类号: | H04L12/851;H04L12/865;H04L29/06 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 优先级 标签 网络 方法 系统 | ||
1.一种支持优先级的标签化网络栈方法,其特征在于,包括:
步骤100、服务器网卡对接收到的数据包提取数据载荷中预设偏移处的值,作为优先级标签,根据该优先级标签将该数据包放入相应优先级的DMA队列;
步骤200、驱动将高优先级的DMA队列中数据包存进主机内存的高优先级队列供TCP/IP协议栈使用,将低优先级的DMA队列中数据包存进主机内存的低优先级队列;
步骤300、TCP/IP协议栈取包时优先处理该高优先级队列中的数据包,对应产生高优先级事件提交上层应用事件处理框架,保障高优先级数据包继续获得优先服务权,直到取包数量达到设定策略阈值或该高优先级队列中为空时,TCP/IP协议栈才处理该低优先级队列中的数据包,对应产生低优先级事件,处理设定数量的低优先级数据包后再查看高优先级队列;
步骤400、该应用事件处理框架优先取出该高优先级事件,处理对应的高优先级请求,优先发给应用;该应用事件处理框架收到待发送的响应数据时,把优先级标签写入该响应数据的该预设偏移处,同时在该响应数据之外标注优先级给本地该TCP/IP协议栈用,以使响应数据包传递给TCP/IP协议栈的顺序也遵循高优先级优先的原则。
2.如权利要求1所述的支持优先级的标签化网络栈方法,其特征在于,步骤100中根据该优先级标签将该数据包放入相应优先级的DMA队列,包括:将高优先级标签对应的数据包放入高优先级的DMA队列,低优先级标签对应的数据包放入低优先级的DMA队列。
3.如权利要求1或2所述的支持优先级的标签化网络栈方法,其特征在于,该步骤100包括:
步骤110、服务器网卡的网口接收以太网帧,解析帧的各层协议,提取五元组、校验和,计算校验和,并比较,若不正确则丢弃;
步骤120、根据五元组的哈希值得到密钥地址,用密钥对数据载荷解密;
步骤130、解密后,提取数据包的数据载荷中预设偏移处的值,与预设的优先级标签值进行比较,若相等则为高优先级,否则为低优先级,并将该数据包放入相应优先级的DMA队列。
4.如权利要求3所述的支持优先级的标签化网络栈方法,其特征在于,该步骤300,包括:
步骤310、检查各接收队列,若该高优先级队列有数据包,则从该高优先级队列中取出一个数据包并将其标记为高优先级;若该高优先级队列为空,检查该低优先级队列,若有包则取出并标记为低优先级;若该高优先级队列和该低优先级队列均为空或达到设定策略阈值,跳出收包处理环节,跳转到步骤330发包处理环节;
步骤320、检查该数据包是否带有数据载荷,若有,则检查该数据包的优先级,并根据优先级将该数据包加入对应优先级的接收缓冲区,并生成对应优先级的应用事件发送给该应用事件处理框架,跳转到步骤310重复执行,直到达到设定策略阈值;
步骤330、检查用户高优先级发送请求队列,若有高优先级发送请求,将该请求取出准备处理;若高优先级发送请求队列为空,检查低优先级发送请求队列,若有低优先级发送请求则将其取出准备处理;重复执行该步骤330,若在达到设定策略阈值或没有用户发送请求时,则跳转到步骤340;
步骤340、进行流状态更新维护,跳转到步骤310。
5.如权利要求4所述的支持优先级的标签化网络栈方法,其特征在于,该步骤400包括:
步骤410、取出的该高优先级事件的事件标识若为listener,则接受并建立socket连接;若该高优先级事件的事件标识为EPOLLIN,则接收数据包,并根据事件优先级,分发请求数据到各请求处理线程的对应的优先级队列中,得到高优先级请求队列和低优先级请求队列;
步骤420、合并该高优先级请求队列和该低优先级请求队列为单队列模式,将高优先级请求排在队头,提交给应用进行处理,跳转到步骤410重复执行,直到达到设定策略阈值时跳转到步骤430;
步骤430、将应用处理得到的响应结果按优先级需求打好标签放入发送缓冲区,交给TCP/IP协议栈处理,且在达到设定策略阈值时,开始处理低优先级请求的发送,每处理完一个低优先级请求后检查高优先级请求队列是否有新的元素,若有,则依旧处理该高优先级请求至该高优先级请求队列排空,跳到步骤410继续处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811426135.9/1.html,转载请声明来源钻瓜专利网。