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

文档序号:8907612阅读:来源:国知局
[0115] 所述添加模块205,用于将所述接收模块201接收的所述目的MAC地址与对应的目 的通信端口标识的对应关系添加到所述第一数据转发表中,所述目的MAC地址与对应的目 的通信端口标识的对应关系用于发送下一个携带所述目的MAC地址的数据包。
[0116] 可见,本发明实施例中,通信端口可以将VMM确定的目的MAC地址与目的虚拟机的 通信端口标识或目的物理通信端口的标识的对应关系及时添加到第一数据转发表中,从而 使后面相同MAC地址的数据包可以得到快速转发。
[0117] 可选地,在数据转发的装置20的第二个可选实施例的基础上,参阅图9,本发明 实施例提供的数据转发的装置20的第四个可选实施例中,所述装置20还包括:更新模块 206,
[0118] 所述接收模块201,还用于当任意一个MAC地址对应的目的通信端口标识发生变 更时,接收所述VMM发送的所述任意一个MAC地址与更新后的目的通信端口标识的对应关 系;
[0119] 所述更新模块206,用于将所述接收模块接收的所述任意一个MAC地址与更新后 的目的通信端口标识的对应关系,更新到所述第一数据转发表中,所述任意一个MAC地址 与更新后的目的通信端口标识的对应关系用于发送携带所述任意一个MAC地址的数据包 到更新后的目的端口。
[0120] 可见,本发明实施例中,当一个MAC地址对应的目的通信端口标识发生变更时,如 VMM在更新第二数据转发表后,会将MAC地址与更新后的目的通信端口标识的对应关系发 送给每个通信端口,从而使包含该MAC地址的端口更新第一数据转发表中MAC地址与更新 后的目的通信端口标识的对应关系,从而保证后续携带所述任意一个MAC地址的数据包能 快速的发送到更新后的目的端口。
[0121] 图6至图9对应的实施例及其可选实施例可以参阅图1至图5部分的描述进行理 解,本处不做过多赘述。
[0122] 在上述虚拟机容错的装置的多个实施例中,应当理解的是,在一种实现方式下,接 收模块、发送模块可以是由输入/输出I/O设备(比如网卡)来实现,查找模块、添加模块、 转发表管理模块、更新模块可以由处理器执行存储器中的程序或指令来实现的(换言之, 即由处理器以及与所述处理器耦合的存储器中的特殊指令相互配合来实现);在另一种实 现方式下,接收模块、发送模块,查找模块、添加模块、转发表管理模块、更新模块也可以分 别通过专有电路来实现,具体实现方式参见现有技术,这里不再赘述;在再一种实现方式 下,接收模块、发送模块,查找模块、添加模块、转发表管理模块、更新模块也可以通过现场 可编程门阵列(FPGA,Field-ProgrammableGateArray)来实现,具体实现方式参见现有 技术,这里不再赘述,本发明包括但不限于前述实现方式,应当理解的是,只要按照本发明 的思想实现的方案,都落入本发明实施例所保护的范围。
[0123] 本实施例提供了一种物理主机的硬件结构,参见图10所示,一种物理主机的硬件 结构可以包括:
[0124] 收发器件、软件器件以及硬件器件三部分;
[0125] 收发器件为用于完成包收发的硬件电路;
[0126] 硬件器件也可称"硬件处理模块",或者更简单的,也可简称为"硬件",硬件器件主 要包括基于FPGA、ASIC之类专用硬件电路(也会配合其他配套器件,如存储器)来实现某 些特定功能的硬件电路,其处理速度相比通用处理器往往要快很多,但功能一经定制,便很 难更改,因此,实现起来并不灵活,通常用来处理一些固定的功能。需要说明的是,硬件器件 在实际应用中,也可以包括MCU(微处理器,如单片机)、或者CPU等处理器,但这些处理器的 主要功能并不是完成大数据的处理,而主要用于进行一些控制,在这种应用场景下,由这些 器件搭配的系统为硬件器件。
[0127] 软件器件(或者也简单"软件")主要包括通用的处理器(例如CPU)及其一些配 套的器件(如内存、硬盘等存储设备),可以通过编程来让处理器具备相应的处理功能,用 软件来实现时,可以根据业务需求灵活配置,但往往速度相比硬件器件来说要慢。软件处理 完后,可以通过硬件器件将处理完的数据通过收发器件进行发送,也可以通过一个与收发 器件相连的接口向收发器件发送处理完的数据。
[0128] 本实施例中,收发器件用于进行上述实施例中数据包的接收和发送,软件器件或 硬件器件用于确定目的MAC地址对应的目的物理端口、管理第一数据转发表等。
[0129] 硬件器件及软件器件的其他功能在前述实施例中已经详细论述,这里不再赘述。
[0130] 下面结合附图就接收模块、发送模块可以是由输入/输出I/O设备(比如网卡) 来实现,查找模块、添加模块、转发表管理模块、更新模块可以是可以由处理器执行存储器 中的程序或指令来实现的技术方案来做详细的介绍:
[0131] 图11是本发明实施例提供的物理主机4的结构示意图。所述物理主机4包括多 个虚拟机VM、虚拟机监控器VMM和物理网卡,每个VM上包括虚拟通信端口,所述物理网卡 上包括多个物理通信端口,特征在于,每个虚拟通信端口和每个物理通信端口中都维护有 本通信端口的第一数据转发表,所述第一数据转发表由与所述本通信端口关联的媒体访问 控制MAC地址与目的通信端口标识的对应关系组成,所述物理主机4包括处理器410、存储 器450、和输入/输出I/O设备430,所述存储器上运行有主虚拟机4501,所述备端主机上运 行有备虚拟机,存储器450可以包括只读存储器和随机存取存储器,并向处理器410提供操 作指令和数据。存储器450的一部分还可以包括非易失性随机存取存储器(NVRAM)。
[0132] 在一些实施方式中,存储器450存储了如下的元素,可执行模块或者数据结构,或 者他们的子集,或者他们的扩展集:
[0133] 虚拟机4501和虚拟机监控器4052 :其中,虚拟机4501通过虚拟机软件可以在一 台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样 进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟 机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。在本发明实施例中, 通过调用存储器450存储的操作指令(该操作指令可存储在操作系统中),
[0134] 所述I/O设备430用于接收待发送的数据包,所述待发送的数据包携带目的MAC 地址;
[0135] 所述处理器410用于:从所述本通信端口维护的第一数据转发表中,查找与所述 本通信端口关联的所述目的MAC地址对应的目的通信端口标识;
[0136] 所述I/O设备430用于当查找到与所述目的MAC地址对应的目的通信端口标识, 直接向所述目的通信端口标识对应的目的通信端口发送所述待发送的数据包,其中,当所 述源通信端口为虚拟机的虚拟通信端口时,所述目的通信端口为目的物理通信端口,当所 述源通信端口为物理通信端口时,所述目的通信端口为目的虚拟机的虚拟通信端口。
[0137] 可见,与现有技术中虚拟机上下行的数据包都要经过VMM,由VMM从包含每一个 MAC地址与目的通信端口标识的对应关系的大表中确定待发送的数据包要发往的目的端口 相比,本发明实施例提供的物理主机,在虚拟机的虚拟通信端口和物理网卡的物理通信端 口中维护一个只与本通信端口关联的第一数据转发表,所述第一数据转发表由与所述本通 信端口关联的媒体访问控制MAC地址与目的通信端口标识的对应关系组成,从而加快了确 定目的通信端口的速度,并且在确定到目的通信端口后,源通信端口直接将数据包发送到 目的通信端口,也就是说数据包可以绕过VMM,从而减轻了VMM的负担,提高了数据包转发 的效率。
[0138] 处理器410控制物理主机4的操作,处理器410还可以称为CPU(Central ProcessingUnit,中央处理单元)。存储器450可以包括只读存储器和随机存取存储器,并 向处理器410提供指令和数据。存储器450的一部分还可以包括非易失性随机存取存储器 (NVRAM)。具体的应用中物理主机4的各个组件通过总线系统420耦合在一起,其中总线系 统420除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了 清楚说明起见,在图中将各种总线都标为总线系统420。
[0139] 上述本发明实施例揭示的方法可以应用于处理器410中,或者由处理器410实现。 处理器410可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各 步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理 器410可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵 列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实 现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理 器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤 可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执 行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦 写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器450,处理器 410读取存储器450中的信息,结合其硬件完成上述方法的步骤。
[0140] 可选地,处理器410还用于:删除所述本通信端口维护的第一数据转发表中满足 删除条件的MAC地址与目的通信端口标识的对应关系,以保持所述本通信端口维护的第 一数据转发表的容量。
[0141] 可见,本发明实施例中,删除满足删除条件的MAC地址与目的通信端口标识的对 应关系,可以保持第一数据转发表的轻量化,从而进一步提高数据包转发的效率。
[0142] 可选地,输入/输出(I/O)设备430当未查找到与所述目的MAC地址对应的目的 通信端口标识,向所述VMM发送所述待发送的数据包,所述待发送的数据包由所述VMM从所 述VMM中维护的第二数据转发表中,确定与所述目的MAC地址对应的目的通信端口标识,并 向所述目的MAC地址对应的目的通信端口发送所述待发送的数据包,所述第二数据转发表 包含每一个MAC地址与目的通信端口标识的对应关系。
[0143] 可见,本发明实施例提供中,在通过第一数据转发表无法查找到目的通信端口标 识时,可以通过VMM查找相应的目的通信端口标识,从而保证了每个数据包都能得到转发。
[0144] 可选地,输入/输出(I/O)设备430还用于接收所述VMM发送的所述目的MAC地 址与对应的目的通信端口标识的对应关系;
[0145] 处理器410还用于将所述目的MAC地址与对应的目的通信端口标识的对应关系添 加到所述第一数据转发表中,所述目的MAC地址与对应的目的通信端口标识的对应关系用 于发送下一个携带所述目的MAC地址的数据包。
[0146] 可见,本发明实施例中,通信端口可以将VMM确定的目的MAC地址与目的虚拟机的 通信端口标识或目的物理通信端口的标识的对应关系及时添加到第一数据转发表中,从而 使后面相同MAC地址的数据包可以得到快速转发。
[0
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1