[发明专利]一种网络数据包处理方法和装置有效
申请号: | 201810872618.5 | 申请日: | 2018-08-02 |
公开(公告)号: | CN109218227B | 公开(公告)日: | 2019-12-24 |
发明(设计)人: | 姜海辉 | 申请(专利权)人: | 武汉绿色网络信息服务有限责任公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863;G06F9/48;G06F9/52 |
代理公司: | 44372 深圳市六加知识产权代理有限公司 | 代理人: | 向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 包线 数据包 网卡 预设 网络数据包处理 方法和装置 遍历操作 策略函数 判断结果 休眠调度 队列 计算机技术领域 数据处理策略 遍历机制 网卡驱动 访问 触发 挂起 阻塞 调用 终端 重复 创建 | ||
1.一种网络数据包处理方法,网卡驱动状态默认的初始化,网卡开始工作,其特征在于,方法包括:
创建收包线程rx_thread,通过所述收包线程rx_thread中的遍历操作,判断网卡驱动中对应的各网卡队列下是否有收到数据包;其中,收包线程内部包含休眠调度策略函数rx_schedu_policy,所述休眠调度策略函数rx_schedu_policy设置有预设访问次数,以便在包线程rx_thread中确认没有接收到数据包时,仍然执行所述预设访问次数的各网卡队列下是否有收到数据包的遍历操作后,才执行判断结果;
其中,每次rx_thread内部调用一次所述休眠调度策略函数rx_schedu_policy,所述rx_schedu_policy的内部计数变量schedu_times便执行自加1操作;
其中,若判断结果为确认网卡中有收到数据包,则调用接收数据处理策略函数,将相应收到的数据包交由预设的协议栈或者应用程序处理,计数变量schedu_times被重置;若判断结果为确认网卡中没有收到数据包,则调用接收数据处理策略函数将收包线程阻塞,计数变量schedu_times被重置。
2.根据权利要求1所述的网络数据包处理方法,其特征在于,所述收包线程rx_thread的主体函数内容为死循环函数,其中,所述死循环函数的跳出机制设定为根据所述休眠调度策略函数rx_schedu_policy的返回参数值作为条件设置的,以if判断该条件后执行阻塞操作;具体的:一旦休眠调度策略函数rx_schedu_policy返回的值满足第一预设条件,便执行if判断内的收包线程的阻塞操作;
其中,每次rx_thread内部调用一次所述休眠调度策略函数rx_schedu_policy,所述rx_schedu_policy的内部计数变量schedu_times便执行自加1操作;直到满足所述计数变量schedu_times与预设访问次数相同,便返回满足第一预设条件的参数值。
3.根据权利要求1所述的网络数据包处理方法,其特征在于,所述通过所述收包线程rx_thread中遍历网卡驱动中对应的各网卡队列下是否有收到数据包,具体包括收包线程rx_thread预先建立网卡队列结构体变量rx_ring,具体的:
在一轮遍历过程中,通过网卡队列结构体变量rx_ring获取网卡驱动中各网卡队列的数据包接收情况;
并将所述网卡队列结构体变量rx_ring,作为输入参数导入Poll方法函数poll_proc_packet,以便通过逐一的将网卡队列结构体变量rx_ring中各队列位的状态字节与标识是否收到数据包的标识STAT_DD进行与逻辑运算,若运算结果为真,则执行数据包计数变量rx_cnt的自加操作,以便Poll方法函数poll_proc_packet的最后根据所述数据包计数变量rx_cnt确定是否将数据包交由预设的协议栈或者应用程序处理。
4.根据权利要求3所述的网络数据包处理方法,其特征在于,所述Poll方法函数poll_proc_packet确定将数据包交由预设的协议栈或者应用程序处理,具体是分别通过函数push_pkt_statck()和push_pkt_app()完成。
5.根据权利要求1所述的网络数据包处理方法,其特征在于,rx_schedu_policy函数中设置的计数变量schedu_times为静态变量;直到包线程rx_thread被阻塞为止,所述计数变量schedu_times才被内存释放。
6.根据权利要求1所述的网络数据包处理方法,其特征在于,所述预设访问次数的参数值的取值范围位于区间[64,256]之间。
7.根据权利要求1-6任一所述的网络数据包处理方法,其特征在于,当物理网卡接收到数据包的时候,网卡驱动向cpu发送中断,此时中断处理服务程序把收包线程唤醒。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉绿色网络信息服务有限责任公司,未经武汉绿色网络信息服务有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810872618.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:报文处理方法及网络设备
- 下一篇:一种分布式网络带宽管理方法