[发明专利]路由器及其处理数据报文的方法在审
申请号: | 201810609335.1 | 申请日: | 2018-06-13 |
公开(公告)号: | CN110602262A | 公开(公告)日: | 2019-12-20 |
发明(设计)人: | 程杜勇 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/06;H04L12/751 |
代理公司: | 11573 北京华智则铭知识产权代理有限公司 | 代理人: | 陈向敏 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 请求报文 路由器 用户空间 用户态网络协议栈 网卡驱动 处理数据 转发 报文 发送 用户进程 转换 解析 | ||
本发明实施例提供一种路由器处理数据报文的方法,所述方法包括:路由器通过网卡驱动接收第一请求报文,并提供给所述路由器的用户空间;所述用户空间通过用户态网络协议栈解析所述第一请求报文,并判断是否转发所述第一请求报文;若不转发,所述用户空间通过用户态网络协议栈及用户进程将所述第一请求报文转换为第二请求报文,并发送至所述网卡驱动;若转发,所述用户空间通过用户态网络协议栈将所述第一请求报文转换为第三请求报文,并发送至所述网卡驱动。本发明还提供一种路由器。本发明提供的路由器及其处理数据报文的方法,能够提高路由器的性能。
技术领域
本发明涉及网络通信技术领域,特别涉及一种路由器及其处理数据报文的方法。
背景技术
现有使用Linux操作系统的路由器,一般通过内核协议栈处理数据报文,其处理数据报文的方式可参阅图1。网卡将接收到的报文数据发送给内核空间的网络协议栈处理,然后内核通过上下文切换将处理后的报文数据拷贝到用户空间的用户进程;用户进程处理完毕之后,又将数据报文拷贝到内核,经过内核空间的网络协议栈处理以后,再发送到网卡。
本专利申请的发明人,通过研究现有使用Linux操作系统的路由器处理数据报文的过程发现,现有技术至少存在以下问题:通过内核的网络协议栈处理数据报文比较复杂及繁琐,整个过程需要将数据在内核和用户空间之间进行多次拷贝及切换,导致效率下降;其次,内核采用的是中断方式处理数据报文,当并发数据大的时候,容易出现软中断非常高,占用系统资源,将成为系统的性能瓶颈;再次,内核的网络协议栈为防止抢占资源,很多地方需要对进程控制块(Process Control Block,PCB)加锁,这样也影响数据报文的处理效率;最后,同一个数据报文可能由多个CPU处理,而且每个非统一内存访问(Non-uniformMemory Access,NUMA)节点共用同一内存,造成数据报文处理效率低下。
由此可见,上述原因均可能导致路由器的性能下降。
发明内容
本申请的目的在于提供一种路由器及其处理数据报文的方法,以提高路由器的性能。
为实现上述目的,本申请一方面提供一种路由器处理数据报文的方法,所述方法包括:路由器通过网卡驱动接收第一请求报文,并提供给所述路由器的用户空间;所述用户空间通过用户态网络协议栈解析所述第一请求报文,并判断是否转发所述第一请求报文;若不转发,所述用户空间通过用户态网络协议栈及用户进程将所述第一请求报文转换为第二请求报文,并发送至所述网卡驱动;若转发,所述用户空间通过用户态网络协议栈将所述第一请求报文转换为第三请求报文,并发送至所述网卡驱动。
进一步的,所述路由器包括多个CPU,所述用户空间包括多个用户态网络协议栈,所述多个用户态网络协议栈与所述多个CPU之间分别一一对应,且所述用户态网络协议栈仅通过对应的CPU处理数据报文。
进一步的,所述用户空间还包括多个用户进程,所述多个用户态网络协议栈还与所述多个用户进程之间分别一一对应,且所述用户态网络协议栈仅将所述数据报文发送给对应的所述用户进程。
进一步的,所述路由器通过网卡驱动接收第一请求报文,并提供给所述路由器的用户空间的步骤具体包括:所述路由器通过网卡驱动接收第一请求报文,并提供给所述用户空间的散列进程;所述散列进程以共享内存的方式将所述第一请求报文均匀散列至所述多个用户态网络协议栈。
进一步的,所述网卡驱动以轮询的方式接收所述第一请求报文。
进一步的,所述用户空间通过用户态网络协议栈及用户进程将所述第一请求报文转换为第二请求报文,并发送至所述网卡驱动的步骤包括:所述用户空间通过用户态网络协议栈获取第一请求数据,并提供给所述用户进程;所述用户空间通过用户进程生成与所述第一请求数据对应的第二请求数据,并提供给所述用户态网络协议栈;所述用户空间通过用户态网络协议栈将所述第二请求数据封装为第二请求报文,并发送至所述网卡驱动。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810609335.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:社区留言信箱通讯方法
- 下一篇:一种热点内容缓存系统及缓存方法