一种数据包转发的方法、装置及系统的制作方法_3

文档序号:8907612阅读:来源:国知局
参阅图5,本发明实施例提供的数据包转发的方法的一实施例包括:
[0083] 101、物理主机中的源通信端口接收待发送的数据包,所述待发送的数据包携带目 的媒体访问控制MAC地址,其中,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物 理网卡,所述源通信端口包括每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信 端口,每个虚拟通信端口和每个物理通信端口中都维护有本通信端口的第一数据转发表, 所述第一数据转发表由与所述本通信端口关联的媒体访问控制MAC地址与目的通信端口 标识的对应关系组成。
[0084] 102、从所述本通信端口维护的第一数据转发表中,查找与所述本通信端口关联的 所述目的MAC地址对应的目的通信端口标识。
[0085] 103、当查找到与所述目的MAC地址对应的目的通信端口标识,直接向所述目的通 信端口标识对应的目的通信端口发送所述待发送的数据包,其中,当所述源通信端口为虚 拟机的虚拟通信端口时,所述目的通信端口为目的物理通信端口,当所述源通信端口为物 理通信端口时,所述目的通信端口为目的虚拟机的虚拟通信端口。
[0086] 本发明实施例提供的数据包转发的方法,所述方法应用于物理主机中的源通信端 口,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物理网卡,所述源通信端口包括 每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信端口,每个虚拟通信端口和每 个物理通信端口中都维护有本通信端口的第一数据转发表,所述第一数据转发表由与所述 本通信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应关系组成,所述方法 包括:接收待发送的数据包,所述待发送的数据包携带目的MAC地址;从所述本通信端口维 护的第一数据转发表中,查找与所述本通信端口关联的所述目的MAC地址对应的目的通信 端口标识;当查找到与所述目的MAC地址对应的目的通信端口标识,直接向所述目的通信 端口标识对应的目的通信端口发送所述待发送的数据包,其中,当所述源通信端口为虚拟 机的虚拟通信端口时,所述目的通信端口为目的物理通信端口,当所述源通信端口为物理 通信端口时,所述目的通信端口为目的虚拟机的虚拟通信端口。与现有技术中虚拟机上下 行的数据包都要经过VMM,由VMM从包含每一个MAC地址与目的通信端口标识的对应关系的 大表中确定待发送的数据包要发往的目的端口相比,本发明实施例提供的数据包转发的方 法,在虚拟机的虚拟通信端口和物理网卡的物理通信端口中维护一个只与本通信端口关联 的第一数据转发表,所述第一数据转发表由与所述本通信端口关联的媒体访问控制MAC地 址与目的通信端口标识的对应关系组成,从而加快了确定目的通信端口的速度,并且在确 定到目的通信端口后,源通信端口直接将数据包发送到目的通信端口,也就是说数据包可 以绕过VMM,从而减轻了VMM的负担,提高了数据包转发的效率。
[0087] 可选地,在上述图5对应的实施例的基础上,本发明实施例提供的数据包转发的 方法的第一个可选实施例中,所述方法还可以包括:
[0088] 删除所述本通信端口维护的第一数据转发表中满足删除条件的MAC地址与目的 通信端口标识的对应关系,以保持所述本通信端口维护的第一数据转发表的容量。
[0089] 可见,本发明实施例中,删除满足删除条件的MAC地址与目的通信端口标识的对 应关系,可以保持第一数据转发表的轻量化,从而进一步提高数据包转发的效率。
[0090] 可选地,在上述图5对应的实施例或第一个可选实施例的基础上,本发明实施例 提供的第二个可选实施例中,所述方法还可以包括:
[0091] 当未查找到与所述目的MAC地址对应的目的通信端口标识,向所述VMM发送所述 待发送的数据包,所述待发送的数据包由所述VMM从所述VMM中维护的第二数据转发表中, 确定与所述目的MAC地址对应的目的通信端口标识,并向所述目的MAC地址对应的目的通 信端口发送所述待发送的数据包,所述第二数据转发表包含每一个MAC地址与目的通信端 口标识的对应关系。
[0092] 可见,本发明实施例提供中,在通过第一数据转发表无法查找到目的通信端口标 识时,可以通过VMM查找相应的目的通信端口标识,从而保证了每个数据包都能得到转发。
[0093] 可选地,在上述数据包转发的方法的第二个可选实施例的基础上,本发明实施例 提供的第三个可选实施例中,所述向所述VMM发送所述待发送的数据包之后,所述方法还 可以包括:
[0094] 接收所述VMM发送的所述目的MAC地址与对应的目的通信端口标识的对应关系;
[0095] 将所述目的MAC地址与对应的目的通信端口标识的对应关系添加到所述第一数 据转发表中,所述目的MAC地址与对应的目的通信端口标识的对应关系用于发送下一个携 带所述目的MAC地址的数据包。
[0096] 可见,本发明实施例中,通信端口可以将VMM确定的目的MAC地址与目的虚拟机的 通信端口标识或目的物理通信端口的标识的对应关系及时添加到第一数据转发表中,从而 使后面相同MAC地址的数据包可以得到快速转发。
[0097] 可选地,在上述数据包转发的方法的第二个可选实施例的基础上,本发明实施例 提供的第四个可选实施例中,所述方法还可以包括:
[0098] 当任意一个MAC地址对应的目的通信端口标识发生变更时,接收所述VMM发送的 所述任意一个MAC地址与更新后的目的通信端口标识的对应关系;
[0099] 将所述任意一个MAC地址与更新后的目的通信端口标识的对应关系,更新到所述 第一数据转发表中,所述任意一个MAC地址与更新后的目的通信端口标识的对应关系用于 发送携带所述任意一个MAC地址的数据包到更新后的目的端口。
[0100] 可见,本发明实施例中,当一个MAC地址对应的目的通信端口标识发生变更时,如 VMM在更新第二数据转发表后,会将MAC地址与更新后的目的通信端口标识的对应关系发 送给每个通信端口,从而使包含该MAC地址的端口更新第一数据转发表中MAC地址与更新 后的目的通信端口标识的对应关系,从而保证后续携带所述任意一个MAC地址的数据包能 快速的发送到更新后的目的端口。
[0101] 图5对应的实施例及其可选实施例可以参阅图1至图4部分的描述进行理解,本 处不做过多赘述。
[0102] 参阅图6,本发明实施例提供的数据包转发的装置20,所述装置20为物理主机中 的源通信端口,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物理网卡,所述源 通信端口包括每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信端口,其特征在 于,每个虚拟通信端口和每个物理通信端口中都维护有本通信端口的第一数据转发表,所 述第一数据转发表由与所述本通信端口关联的媒体访问控制MAC地址与目的通信端口标 识的对应关系组成,所述装置20包括:
[0103] 接收模块201,用于接收待发送的数据包,所述待发送的数据包携带目的MAC地 址;
[0104] 查找模块202,用于从所述本通信端口维护的第一数据转发表中,查找与所述本通 信端口关联的所述目的MAC地址对应的目的通信端口标识;
[0105] 发送模块203,用于当所述查找模块202查找到与所述目的MAC地址对应的目的 通信端口标识,直接向所述目的通信端口标识对应的目的通信端口发送所述待发送的数据 包,其中,当所述源通信端口为虚拟机的虚拟通信端口时,所述目的通信端口为目的物理通 信端口,当所述源通信端口为物理通信端口时,所述目的通信端口为目的虚拟机的虚拟通 信端口。
[0106] 本发明实施例中提供的数据包转发的装置20,所述装置20为物理主机中的源通 信端口,所述物理主机包括多个虚拟机VM、虚拟机监控器VMM和物理网卡,所述源通信端口 包括每个VM上的虚拟通信端口,以及所述物理网卡上的物理通信端口,其特征在于,每个 虚拟通信端口和每个物理通信端口中都维护有本通信端口的第一数据转发表,所述第一数 据转发表由与所述本通信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应 关系组成,所述装置20包括:接收模块201接收待发送的数据包,所述待发送的数据包携带 目的MAC地址;查找模块202从所述本通信端口维护的第一数据转发表中,查找与所述本通 信端口关联的所述目的MAC地址对应的目的通信端口标识;发送模块203当所述查找模块 202查找到与所述目的MAC地址对应的目的通信端口标识,直接向所述目的通信端口标识 对应的目的通信端口发送所述待发送的数据包,其中,当所述源通信端口为虚拟机的虚拟 通信端口时,所述目的通信端口为目的物理通信端口,当所述源通信端口为物理通信端口 时,所述目的通信端口为目的虚拟机的虚拟通信端口。与现有技术中虚拟机上下行的数据 包都要经过VMM,由VMM从包含每一个MAC地址与目的通信端口标识的对应关系的大表中确 定待发送的数据包要发往的目的端口相比,本发明实施例提供的数据包转发的装置,在虚 拟机的虚拟通信端口和物理网卡的物理通信端口中维护一个只与本通信端口关联的第一 数据转发表,所述第一数据转发表由与所述本通信端口关联的媒体访问控制MAC地址与目 的通信端口标识的对应关系组成,从而加快了确定目的通信端口的速度,并且在确定到目 的通信端口后,源通信端口直接将数据包发送到目的通信端口,也就是说数据包可以绕过 VMM,从而减轻了VMM的负担,提高了数据包转发的效率。
[0107] 可选地,在上述图6对应的实施例的基础上,参阅图7,本发明实施例提供的数据 转发的装置20的第一个可选实施例中,所述装置20还包括:
[0108] 转发表管理模块204,用于删除所述本通信端口维护的第一数据转发表中满足删 除条件的MAC地址与目的通信端口标识的对应关系,以保持所述本通信端口维护的第一数 据转发表的容量。
[0109] 可见,本发明实施例中,删除满足删除条件的MAC地址与目的通信端口标识的对 应关系,可以保持第一数据转发表的轻量化,从而进一步提高数据包转发的效率。
[0110] 可选地,在上述图6对应的实施例的基础上,参阅图7,本发明实施例提供的数据 转发的装置20的第二个可选实施例中,
[0111] 所述发送模块203,还用于当所述查找模块202未查找到与所述目的MAC地址对 应的目的通信端口标识,向所述VMM发送所述待发送的数据包,所述待发送的数据包由所 述VMM从所述VMM中维护的第二数据转发表中,确定与所述目的MAC地址对应的目的通信 端口标识,并向所述目的MAC地址对应的目的通信端口发送所述待发送的数据包,所述第 二数据转发表包含每一个MAC地址与目的通信端口标识的对应关系。
[0112] 可见,本发明实施例提供中,在通过第一数据转发表无法查找到目的通信端口标 识时,可以通过VMM查找相应的目的通信端口标识,从而保证了每个数据包都能得到转发。
[0113] 可选地,在数据转发的装置20的第二个可选实施例的基础上,参阅图8,本发明 实施例提供的数据转发的装置20的第三个可选实施例中,所述装置20还包括:添加模块 205,
[0114] 所述接收模块201,还用于接收所述VMM发送的所述目的MAC地址与对应的目的通 信端口标识的对应关系;
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1