一种数据包处理方法及装置的制造方法

文档序号:9710783阅读:465来源:国知局
一种数据包处理方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及计算机技术领域,更具体地说,涉及一种数据包处理方法及装置。
【背景技术】
[0002]近些年,随着云计算技术在人们的生活和工作中应用越来越广,计算机网络的发展也正朝着更有利于云计算以及更有利于大数据时代信息传播的方向发展。近几年提出的软件定义网络(Software-Defined Network,SDN)技术成为广受业界关注的网络技术。其核心技术是0penFlow,0penFlow将网络设备的控制与数据分离开来,以实现对整个网络流量的灵活控制。
[0003]其中,每台OpenFlow交换机中的处理模块都是由多级流表构成的,不同的流表中存储有不同的规则,以对数据包进行不同的处理,每个进入到OpenFlow交换机中的数据包,都需要首先与多级流表中的第一个流表中包含的流表项进行匹配,并将按照与数据包匹配的流表项进行处理后转发至下一个流表项中,同样,数据包通过上述方式在下一个流表项中被处理,直至输出。另外,如果在任一流表中与数据包匹配的流表项中未指明数据包需被转发至下一个数据包,则对数据包进行处理后直接对数据包进行输出。但是,通常情况下,数据包在OpenFlow交换机中的处理模块中是需要跳转多个流表后完成处理被输出的,这样就会增加对于数据包的处理时间,增大数据包的处理时延,从而无法满足对时延要求较为严苛的数据包对应的虚拟机。
[0004]综上所述,现有技术对于数据包的处理中存在时延较大的问题。

【发明内容】

[0005]本发明的目的是提供一种数据包处理方法及装置,以解决现有技术对于数据包的处理中存在的时延较大的问题。
[0006]为了实现上述目的,本发明提供如下技术方案:
[0007]一种数据包处理方法,包括:
[0008]接收数据包;
[0009]如果所述数据包是与特定虚拟机对应的数据包,则将所述数据包同时与Μ个第一流表中的流表项进行匹配,如果所述Μ个第一流表中存在与所述数据包匹配的任一流表项,则确定该流表项为目标流表项,依据所述目标流表项对所述数据包进行处理,并将处理完成的数据包进行输出。
[0010]优选的,在接收数据包之后,还包括:
[0011 ]步骤1:如果所述数据包不是与所述特定虚拟机对应的数据包,则确定Ν个第二流表中的第一个流表为当前流表;
[0012]步骤2:将所述数据包与当前流表中的流表项进行匹配,如果当前流表中存在与所述数据包匹配的任一流表项,则确定该流表项为目标流表项,依据所述目标流表项对所述数据包进行处理,如果所述目标流表项中包含有需对所述数据包进行处理的下一第二流表的流表信息,则确定该流表信息对应的第二流表为当前流表;
[0013]步骤3:返回执行步骤2,直至所述目标流表项中未包含有需对所述数据包进行处理的下一第二流表的流表信息为止,将处理完成的数据包进行输出。
[0014]优选的,还包括:
[0015]如果同时接收到多个数据包,所述多个数据包均是与所述特定虚拟机对应的数据包或者所述多个数据包均不是与所述特定虚拟机对应的数据包,则按照所述多个数据包中每个数据包对应的虚拟机的优先级对所述多个数据包进行处理。
[0016]优选的,在接收到多个数据包之后,还包括:
[0017]确定与所述多个数据包对应的虚拟机的优先级,依据所述优先级计算所述多个数据包中每个数据包需等待被处理的等待时间,并将所述等待时间发送至对应的虚拟机。
[0018]优选的,确定所述数据包是否为与所述特定虚拟机对应的数据包,包括:
[0019]获取所述数据包中携带的源IP或者目的IP,并判断与所述源IP或者目的IP对应的虚拟机是否为特定虚拟机。
[0020]优选的,将所述数据包与任一流表中的流表项进行匹配,包括:
[0021 ]如果任一流表中包含多个流表项,则按照该流表中多个流表项的优先级将所述多个流表项依次与所述数据包进行匹配。
[0022]优选的,还包括:
[0023]如果所述Μ个第一流表中或者所述N个第二流表中不存在与所述数据包匹配的流表项,则将所述数据包发送至控制器。
[0024]优选的,预先设置所述Μ个第一流表项的过程包括:
[0025]获取历史上与所述特定虚拟机对应的数据需被进行的处理内容,并依据该处理内容确定Μ个第一流表。
[0026]一种数据包处理装置,包括:
[0027]接收模块,用于接收数据包;
[0028]匹配模块,用于如果所述数据包是与特定虚拟机对应的数据包,则将所述数据包同时与Μ个第一流表中的流表项进行匹配;
[0029]处理模块,用于如果所述Μ个第一流表中存在与所述数据包匹配的任一流表项,则确定该流表项为目标流表项,依据所述目标流表项对所述数据包进行处理,并将处理完成的数据包进行输出。
[0030]优选的,还包括:
[0031]设置模块,用于获取历史上与所述特定虚拟机对应的数据需被进行的处理内容,并依据该处理内容确定Μ个第一流表。
[0032]本发明提供的一种数据包处理方法及装置,该方法包括:接收数据包;如果所述数据包是与特定虚拟机对应的数据包,则将所述数据包同时与Μ个第一流表中的流表项进行匹配,如果所述Μ个第一流表中存在与所述数据包匹配的任一流表项,则确定该流表项为目标流表项,依据所述目标流表项对所述数据包进行处理,并将处理完成的数据包进行输出。与现有技术相比,本申请中对于特定虚拟机对应的数据包,将其同时与Μ个第一流表中的流表项进行匹配,并直接按照匹配成功的流表项对数据包进行处理后输出,从而避免了【背景技术】中提到的需要对数据包进行多级跳转处理的情况发生,从而大大减少了对于与特定虚拟机对应的数据包的处理时间,减小了数据包的处理时延。
【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0034]图1为本发明实施例提供的一种数据包处理方法的第一种流程图;
[0035]图2为本发明实施例提供的一种数据包处理方法接收数据包之后的第二种流程图;
[0036]图3为本发明实施例提供的一种数据包处理方法的处理流程示意图;
[0037]图4为本发明实施例提供的一种数据包处理装置的结构示意图。
【具体实施方式】
[0038]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]请参阅图1,其示出了本发明实施例提供的一种数据包处理方法的流程图,可以包括以下步骤:
[0040]S11:接收数据包。
[0041]需要说明的是,本发明实施例提供的一种数据包处理方法中每个步骤的主语均可以是OpenFlow交换机。其中,数据包是一种数据单位,其携带有数据。
[0042]S12:如果数据包是与特定虚拟机对应的数据包,则将数据包同时与Μ个第一流表中的流表项进行匹配。
[0043]其中,本实施例中的特定虚拟机可以是对时延要求较为严苛的虚拟机,对于特定虚拟机,其需要在时延较小的情况下完成对数据包的处理。与特定虚拟机对应的数据包可以是其他设备需要传送至特定虚拟机的数据包,也可以是特定虚拟机需要传送至其他虚拟机的数据包。
[0044]Μ的具体取值可以根据实际需要进行确定,而对于流表项与数据包的匹配,具体可以是:数据包通常包括包头,而流表项通常包括包头域,包头及包头域均可以包括入端口、源MAC地址、目的MAC地址、以太网类型、VLAN ID、VLAN优先级、源IP地址、目的IP地址、IP协议、IP T0S位、TCP/UDP源端口及TCP/UDP目的端口等,流表项的包头域及数据包的包头包含的上述一种或者多种参数的具体值相同时,则说明流表项与数据包匹配。
[0045]如果数据包不是与特定虚拟机
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1