一种报文处理方法及虚拟交换机与流程

文档序号:13212784阅读:248来源:国知局
一种报文处理方法及虚拟交换机与流程

本发明涉及通信技术领域,尤其涉及一种报文处理方法及虚拟交换机。



背景技术:

在网络虚拟化场景中,虚拟交换机用于为公众网络用户提供虚拟pbx(privatebranchexchange,pbx)服务,虚拟交换机的种类有很多,其中一种为openvswitch,在openvswitch中通常应用虚拟扩展局域网vxlan(virtualextensiblelocalareanetwork,vxlan)以实现相同和不同网段内设备的通信。

相关技术中,应用vxlan的openvswitch在发送待处理报文时,通常需要通过vxlan端口将待处理报文封装成用户数据报协议(userdatagramprotocol,udp)报文,并通过openvswitch所在的主机协议栈获取路由信息,然后通过主机协议栈根据获取的路由信息将udp报文发送出去。

然而,由于主机协议栈中的协议非常多,在具体执行的过程中,主机协议栈还自发强制地对待处理报文做了例如报文预处理等许多冗余处理,因此造成了报文的转发路径过长,导致了openvswitch的报文转发性能差。



技术实现要素:

为了解决上述技术问题,本发明提供一种报文处理方法及虚拟交换机,能够极大程度地缩短报文的转发路径,提高交换机的转发性能。

为了达到本发明目的,本发明提供了一种报文处理方法,应用于虚拟交换机,所述虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法包括:

接收计算机发送的第一待处理报文;其中,所述第一待处理报文为需要经过所述目标端口的报文;

对所述第一待处理报文进行封装;

通过所述目标网卡将完成封装的所述第一待处理报文发送给服务器。

所述目标网卡上配置有互联网协议地址和端口号,所述对第一待处理报文进行封装,包括:

通过所述目标端口为所述第一待处理报文封装第一用户数据报协议报文头和虚拟扩展局域网报文头,以完成对所述第一待处理报文的封装;其中,所述第一用户数据报协议报文头包括第一源互联网协议地址、第一源端口号、第一目的互联网协议地址和第一目的端口号,所述虚拟扩展局域网报文头包括所述目标网卡的互联网协议地址和端口号。

所述通过目标网卡将完成封装的第一待处理报文发送给服务器,包括:

通过所述目标网卡根据所述第一目的互联网协议地址和第一目的端口号将完成封装的所述第一待处理报文发送给所述服务器。

所述将完成封装的第一待处理报文发送给服务器之后,所述方法还包括:

接收所述服务器发送的第二待处理报文;其中,所述第二处理报文包括第二用户数据报协议报文头和所述虚拟扩展局域网报文头,所述第二用户数据报协议报文头包括第二源互联网协议地址、第二源端口号、第二目的互联网协议地址和第二目的端口号;

对所述第二待处理报文进行解封装;

将完成解封装的所述第二待处理报文发送给发送所述第一待处理报文的计算机。

所述接收服务器发送的第二待处理报文,包括:

通过所述网卡接收所述服务器发送的所述第二待处理报文;

所述对第二待处理报文进行解封装,包括:

通过所述目标端口剥离所述第二待处理报文的第二用户数据报协议报文头和虚拟扩展局域网报文头,以完成对所述第二待处理报文的解封装。

所述通过目标端口剥离第二待处理报文的用户数据报协议报文头和虚拟扩展局域网报文头,包括:

通过所述目标端口判断所述目标网卡的信息中的互联网协议地址是否是所述目标网卡的互联网协议地址,且所述目标网卡的信息中的端口号是否是所述目的网卡的端口号;

若所述目标网卡的信息中的互联网协议地址是所述目标端口的互联网协议地址,并且所述目标网卡的信息中的端口号是所述目标端口的端口号,通过所述目标端口剥离所述第二待处理报文中的第二用户数据报协议报文头和虚拟扩展局域网报文头。

所述将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机,包括:

根据所述第二目的互联网协议地址和第二目的端口号将完成解封装的所述第二待处理报文发送给发送所述第一待处理报文的计算机。

本发明还提供了一种虚拟交换机,所述虚拟交换机上部署有与所述目标端口建立连接的目标网卡,所述交换机包括:

接收模块,用于接收计算机发送的第一待处理报文;其中,所述第一待处理报文为需要经过所述目标端口的报文;

封装模块,用于对所述第一待处理报文进行封装;

发送模块,用于通过所述目标网卡将完成封装的所述第一待处理报文发送给服务器。

所述目标网卡上配置有互联网协议地址和端口号,所述封装模块,具体用于通过所述目标端口为所述第一待处理报文封装第一用户数据报协议报文头和虚拟扩展局域网报文头,以完成对所述第一待处理报文的封装;其中,所述第一用户数据报协议报文头包括第一源互联网协议地址、第一源端口号、第一目的互联网协议地址和第一目的端口号;所述虚拟扩展局域网报文头包括所述目标网卡的互联网协议地址和端口号。

还包括:解封装模块,用于对第二待处理报文进行解封装;其中,所述第二处理报文包括第二用户数据报协议报文头和所述虚拟扩展局域网报文头,所述第二用户数据报协议报文头包括第二源互联网协议地址、第二源端口号、第二目的互联网协议地址和第二目的端口号;

所述接收模块,还用于接收所述服务器发送的所述第二待处理报文;

所述发送模块,还用于将完成解封装的所述第二待处理报文发送给发送所述第一待处理报文的计算机。

与现有技术相比,本发明提供的报文处理方法应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,无需再通过自身所在的主机协议栈获取路由信息并根据获取的路由信息转发报文,而是直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例提供的一种报文处理方法的流程示意图;

图2为本发明实施例提供的另一种报文处理方法的流程示意图;

图3为本发明实施例提供的又一种报文处理方法的流程示意图;

图4为本发明实施例提供的又一种报文处理方法的流程示意图;

图5为本发明实施例提供的又一种报文处理方法的流程示意图;

图6为现有技术的报文转发示意图;

图7为本发明实施例提供的报文转发示意图;

图8为本发明实施例提供的一种虚拟交换机的结构示意图;

图9为本发明实施例提供的另一种虚拟交换机的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本发明实施例提供一种报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,如图1所示,该方法包括:

步骤101、接收计算机发送的第一待处理报文。

其中,所述第一待处理报文为需要经过所述目标端口的报文。

需要说明的是,交换机会收到很多待处理报文,这些报文中有一些是需要经过目标端口的,因此这一部分报文才是第一待处理报文。

还需要说明的是,本发明中所有实施例提供的报文处理方法的执行主体均为虚拟交换机。

步骤102、对第一待处理报文进行封装。

步骤103、通过目标网卡将完成封装的第一待处理报文发送给服务器。

具体的,由于虚拟交换机上存在于目标端口建立连接的目标网卡,因此,经由目标端口处理的报文都可以不再依赖主机协议栈,而由虚拟交换机通过目标网卡发出。

需要说明的是,现有技术中网卡可能有很多个,这样要实现报文的转发需要获取路由信息(即具体是由哪个网卡承担转发任务的),而本发明提供的报文处理方法中,目标网卡与目标端口建立连接,说明目标网卡是专门配置给目标端口的,因此无需再通过自身所在的主机协议栈获取路由信息并根据获取的路由信息转发报文,而所有需要经过目标端口处理的报文都可以通过目标网卡以实现直接的转发。

本发明实施例所提供的报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

本发明实施例提供另一种报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,目标网卡上配置有互联网协议(internetprotocol,ip)地址和端口号,如图2所示,该方法包括:

步骤201、接收计算机发送的第一待处理报文。

其中,第一待处理报文为需要经过目标端口的报文。

步骤202、通过目标端口为第一待处理报文封装第一udp报文头和vxlan报文头,以完成对第一待处理报文的封装。

其中,第一udp报文头包括第一源ip地址、第一源端口号、第一目的ip和第一目的端口号,vxlan报文头包括目标网卡的ip地址和端口号。

需要说明的是,目标端口可以是vxlan,当目标端口是vxlan是,虚拟交换机可以是openvswitch。

还需要说明的是,因为虚拟交换机通过目标网卡进行报文转发,当报文发送回来时,需要首先发送到目标网卡上,因此需要为第一待处理报文封装vxlan报文头。

具体的,第一源ip地址和第一源端口号分别指的是发送第一待处理报文的最原始发送方的ip地址和端口号,第一目的ip地址和第一目的端口号分别指的是第一待处理报文最终接收方的ip地址和端口号;具体来说,第一源ip地址和第一源端口号分别是发送第一待处理报文的计算机的ip地址和端口号,第一目的ip地址和第一目的端口号分别是处理第一待处理报文的服务器的ip地址和端口号。

步骤203、通过目标网卡将完成封装的第一待处理报文发送给服务器。

具体的,该步骤可以通过通过目标网卡根据第一目的ip地址和第一目的端口号将完成封装的第一待处理报文发送给服务器实现。

本发明实施例所提供的报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

本发明实施例提供又一种报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,目标网卡上配置有ip地址和端口号,如图3所示,该方法包括:

步骤301、接收计算机发送的第一待处理报文。

其中,第一待处理报文为需要经过目标端口的报文。

步骤302、通过目标端口为第一待处理报文封装第一udp报文头和vxlan报文头,以完成对第一待处理报文的封装。

其中,第一udp报文头包括第一源ip地址、第一源端口号、第一目的ip地址和第一目的端口号,vxlan报文头包括目标网卡的ip地址和端口号。

步骤303、通过目标网卡根据第一目的ip地址和第一目的端口号将完成封装的第一待处理报文发送给服务器。

步骤304、接收服务器发送的第二待处理报文。

其中,第二处理报文包括第二udp报文头和vxlan报文头,第二udp报文头包括第二源ip地址、第二源端口号、第二目的ip地址和第二目的端口号。

步骤305、对第二待处理报文进行解封装。

步骤306、将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。

本发明实施例所提供的报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

本发明实施例提供又一种报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,目标网卡上配置有ip地址和端口号,如图4所示,该方法包括:

步骤401、接收计算机发送的第一待处理报文。

步骤402、通过目标端口为第一待处理报文封装第一udp报文头和vxlan报文头,以完成对第一待处理报文的封装。

其中,第一udp报文头包括第一源ip地址、第一源端口号、第一目的ip地址和第一目的端口号,vxlan报文头包括目标网卡的ip地址和端口号。

步骤403、通过目标网卡根据第一目的ip地址和第一目的端口号将完成封装的第一待处理报文发送给服务器。

步骤404、通过网卡接收服务器发送的第二待处理报文。

其中,第二处理报文包括第二udp报文头和vxlan报文头,第二udp报文头包括第二源ip地址、第二源端口号、第二目的ip地址和第二目的端口号。

需要说明的是,第一待处理报文和第二待处理报文不同,第一待处理报文不携带任何报文头,而第二待处理报文携带udp报文头和vxlan报文头。

步骤405、通过目标端口剥离第二待处理报文的第二udp报文头和vxlan报文头,以完成对第二待处理报文的解封装。

步骤406、将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。

本发明实施例所提供的报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器;接收服务器发送的第二待处理报文;对第二待处理报文进行解封装;将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发;当虚拟交换机接收到服务器发送的第二待处理报文时,直接通过目标端口判断是否是从自身发送出去的报文,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

本发明实施例提供又一种报文处理方法,应用于虚拟交换机,虚拟交换机上部署有目与目标端口建立连接的目标网卡,目标网卡上配置有ip地址和端口号,如图5所示,该方法包括:

步骤501、接收计算机发送的第一待处理报文。

步骤502、通过目标端口为第一待处理报文封装第一udp报文头和vxlan报文头,以完成对第一待处理报文的封装。

其中,第一udp报文头包括第一源ip地址、第一源端口号、第一目的ip地址和第一目的端口号,vxlan报文头包括目标网卡的ip地址和端口号。

步骤503、通过目标网卡根据第一目的ip地址和第一目的端口号将完成封装的第一待处理报文发送给服务器。

步骤504、通过网卡接收服务器发送的第二待处理报文。

其中,第二处理报文包括第二udp报文头和vxlan报文头,第二udp报文头包括第二源ip地址、第二源端口号、第二目的ip地址和第二目的端口号。

步骤505、通过目标端口判断目标网卡的信息中的ip地址是否是目标网卡的ip地址,且目标网卡的信息中的端口号是否是目的网卡的端口号。

步骤506、若目标网卡的信息中的ip地址是目标端口的ip地址,并且目标网卡的信息中的端口号是目标端口的端口号,通过目标端口剥离第二待处理报文中的第二udp报文头和vxlan报文头,以完成对第二待处理报文的解封装。

步骤507、将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。

需要说明的是,现有技术的报文转发示意图可以如图6所示,报文的转发需要依赖主机协议栈,本发明提供的报文转发示意图可以如图7所示,报文的转发不需要依赖主机协议栈。

本发明实施例所提供的报文处理方法,应用于虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器;接收服务器发送的第二待处理报文;对第二待处理报文进行解封装;将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发;当虚拟交换机接收到服务器发送的第二待处理报文时,直接通过目标端口判断是否是从自身发送出去的报文,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

本发明实施例提供一种虚拟交换机,虚拟交换机上部署有与目标端口建立连接的目标网卡,如图8所示,该虚拟交换机6包括:

接收模块61,用于接收计算机发送的第一待处理报文;其中,所述第一待处理报文为需要经过所述目标端口的报文。

封装模块62,用于对第一待处理报文进行封装。

发送模块63,用于通过网卡将完成封装的第一待处理报文发送给服务器。

本发明实施例所提供的虚拟交换机,部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

进一步,目标网卡上配置有互联网协议地址和端口号,封装模块62,具体用于通过目标端口为第一待处理报文封装第一udp报文头和vxlan报文头,以完成对第一待处理报文的封装;其中,第一udp报文头包括第一源ip地址、第一源端口号、第一目的ip地址和第一目的端口号,vxlan报文头包括目标网卡的ip地址和端口号。

进一步,在图8对应的实施例的基础上,本发明实施例提供另一种虚拟交换机,如图9所示,该虚拟交换机6还包括:

解封装模块64,用于对第二待处理报文进行解封装;其中,第二处理报文包括第二udp报文头和vxlan报文头,第二udp报文头包括第二源ip地址、第二源端口号、第二目的ip地址和第二目的端口号。

接收模块61,还用于接收服务器发送的第二待处理报文。

发送模块63,还用于将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。

进一步,发送模块63,具体还用于通过网卡接收服务器发送的第二待处理报文。

解封装模块64,具体用于通过目标端口剥离第二待处理报文的第二udp报文头和vxlan报文头,以完成对第二待处理报文的解封装。

进一步,解封装模块64,具体还用于:

通过目标端口判断目标网卡的信息中的ip地址是否是目标网卡的ip地址,且目标网卡的信息中的端口号是否是目的网卡的端口号。

若目标网卡的信息中的ip地址是目标端口的ip地址,并且目标网卡的信息中的端口号是目标端口的端口号,通过目标端口剥离第二待处理报文中的第二udp报文头和vxlan报文头,以完成对第二待处理报文的解封装。

本发明实施例所提供的虚拟交换机,部署有与目标端口建立连接的目标网卡,该方法至少包括接收计算机发送的第一待处理报文;对第一待处理报文进行封装;通过目标网卡将完成封装的第一待处理报文发送给服务器;接收服务器发送的第二待处理报文;对第二待处理报文进行解封装;将完成解封装的第二待处理报文发送给发送第一待处理报文的计算机。从本发明提供的技术方案可见,由于虚拟交换机上部署有与目标端口建立连接的独立网卡,因此,当虚拟交换机接收到计算机发送的待处理报文时,直接将报文封装并通过目标网卡将完成封装的待处理报文进行转发;当虚拟交换机接收到服务器发送的第二待处理报文时,直接通过目标端口判断是否是从自身发送出去的报文,从而极大程度地缩短了报文的转发路径,提高了虚拟交换机的转发性能。

在实际应用中,所述接收模块61、封装模块62、发送模块63和解封装模块64均可由位于虚拟交换机的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1