[发明专利]一种报文处理方法和装置在审
申请号: | 201410411942.9 | 申请日: | 2014-08-20 |
公开(公告)号: | CN104184729A | 公开(公告)日: | 2014-12-03 |
发明(设计)人: | 李华生 | 申请(专利权)人: | 新华三技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/70 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 310052 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报文 处理 方法 装置 | ||
本发明提出一种报文处理方法,应用于网络设备,所述方法包括:为本地每台虚拟机分别创建连接池;将隶属于同一台虚拟机的连接归类到为该虚拟机创建的连接池中;当本地任一虚拟机发送或接收报文时,基于发送或接收报文的连接控制信息,在所述连接池中匹配对应的连接,并通过匹配到的连接发送或接收该报文。通过本发明可以提高对报文的处理效率。
技术领域
本发明涉及通信技术领域,尤其涉及一种报文处理方法和装置。
背景技术
请参见图1,网络协议栈作为一个基础功能组件,可以为分布式设备上的各节点之间提供通信服务。其中所述节点,对应于一个CPU系统,通常分布式设备上的一块业务板上可存在一个或者多个节点。
当分布式设备支持虚拟化技术后,上述通信过程则发生在节点上的虚拟机上。在虚拟化技术中,各虚拟机之间的通信互相隔离,虚拟机之间的通信需要由网络协议栈提供有连接、可靠、保序的传输机制,该机制的最终实现依赖于网络协议栈的传输层。
在非虚拟化的条件下,传输层报文头中通常包括传输序号、消息类型等信息。而在虚拟化的条件下,传输层报头中除了传输序号、消息类型等信息以外,报文头中还包括虚拟机ID。
请参见图2,为了实现虚拟机之间的通信互相隔离,所有虚拟机在发送报文时,都从自己的用户态进入协议栈的传输层,为了区分不同的虚拟机的每个报文,每个报文在协议栈的传输层进行汇聚时携带自身的虚拟机ID;在接收报文时,所有虚拟机的报文都从节点的物理层。网络层进入协议栈的传输层,在传输层统一对这些报文进行分发,根据报文中不同的虚拟机ID上送到不同的虚拟机的应用程序中。
然而,由于物理层、网络层是无连接的、不可靠的,并且对虚拟化不感知。当虚拟化以后,传输层维护的连接数将于虚拟机的个数呈倍数关系。当系统支持大量虚拟机后,任一虚拟机发送或者接收报文时,都需要遍历所有虚拟机的全部连接,才可以匹配到自身的指定连接,报文的处理效率低下。
发明内容
有鉴于此,本发明提出一种报文处理方法,应用于网络设备,所述网络设备上被预先配置了一台或多台虚拟机,所述方法包括:
为本地每台虚拟机分别创建连接池;
将隶属于同一台虚拟机的连接归类到为该虚拟机创建的连接池中;
当本地任一虚拟机发送或接收报文时,基于发送或接收报文的连接控制信息,在所述连接池中匹配对应的连接,并通过匹配到的连接发送或接收该报文。
优选的,所述将隶属于同一台虚拟机的连接归类到为该虚拟机创建的连接池中包括:
为发送的报文创建连接,并为该连接分配连接控制信息;
获取所述报文中的虚拟机ID;
根据该虚拟机的ID查找已创建的连接池;
将为所述报文创建的连接添加到查找到的连接池中。
优选的,所述连接控制信息包括:本地端口号以及对端端口号;
当将隶属于同一台虚拟机的连接归类到为该虚拟机创建的连接池中后,所述方法还包括:
以连接池中各连接的本地端口号和远端端口为参数进行hash计算;
以计算出的hash值作为查找关键字对各连接进行分组。
优选的,所述基于发送或者接收报文的连接控制信息,在所述连接池中匹配对应的连接包括:
根据该报文所在虚拟机的ID查找连接池;
以该报文中的本地端口号和对端端口号为参数进行hash计算;
根据计算出的hash值在查找到的连接池中查找连接分组;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司,未经新华三技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410411942.9/2.html,转载请声明来源钻瓜专利网。