首页> 中国专利> 用于以太网交换机的没有查找表的第2层分组交换

用于以太网交换机的没有查找表的第2层分组交换

摘要

在一个实施例中,一种系统包括至少一个处理器,其包括:被配置成接收针对为一个端口上的设备指派介质接入控制(MAC)地址的请求的逻辑;被配置成至少部分地基于所述端口确定将为所述设备指派的MAC地址的逻辑;以及被配置成发送带有MAC地址的针对所述请求的响应的逻辑。在另一个实施例中,一种用于指派MAC地址的计算机程序产品包括其中具体实现有计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:被配置成在不使用查找表的情况下确定将为设备指派的MAC地址的计算机可读程序代码;以及被配置成向设备发送MAC地址的计算机可读程序代码。根据更多实施例还给出了其他系统、方法和计算机程序产品。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-24

    授权

    授权

  • 2015-01-07

    实质审查的生效 IPC(主分类):H04L12/28 申请日:20130319

    实质审查的生效

  • 2014-12-17

    公开

    公开

说明书

背景技术

本发明涉及数据中心基础设施,更具体来说,本发明涉及能够在 不使用查找表的情况下进行第2层分组交换的以太网交换机。

在分组交换网络交换机中,通常对目的地介质接入控制(MAC)地 址或目的地互联网协议(IP)地址实施查找,以便发现用于转发分组 的交换设备的实际目的地端口。大多数系统利用某种交换处理器来进 行这一确定,比如专用集成电路(ASIC)。所述交换处理器保持用于 实施查找解析的查找表,其在典型的网络中可能相当长,并且可能具 有数以千计的条目。所述查找表被存储在芯片上或者被存储在芯片外 部。在任一种情况下,对于查找表的使用都会对于芯片增加显著的逻 辑复杂度、空间和存储器需求。这一附加的复杂度最终会增加更多等 待时间,并且使得芯片比起所期望的情况更加昂贵。因此,有益的是 将能够在不使用查找表的情况下发现实际目的地端口。

发明内容

在一个实施例中,一种系统包括至少一个处理器,其包括:被配 置成接收针对为一个端口上的设备指派介质接入控制(MAC)地址的请 求的逻辑;被配置成至少部分地基于所述端口确定将为所述设备指派 的MAC地址的逻辑;

以及被配置成发送带有MAC地址的针对所述请求的响应的逻辑。

在另一个实施例中,一种用于指派MAC地址的计算机程序产品包 括随之具体实现计算机可读程序代码的计算机可读存储介质,所述计 算机可读程序代码包括:被配置成在不使用查找表的情况下确定将为 设备指派的MAC地址的计算机可读程序代码;以及被配置成向设备发 送MAC地址的计算机可读程序代码。

根据另一个实施例,一种用于指派MAC地址的方法包括:在交换 设备的端口处接收来自设备的针对MAC地址的请求;至少部分地基于 所述端口确定将为所述设备指派的MAC地址;以及利用所述MAC地址 对所述请求做出响应。

在另一个实施例中,一种用于取回MAC地址的方法包括:向MAC 分配服务器(MAAS)发送针对MAC地址的请求;等待预定时间量以接 收针对所述请求的响应,所述响应包括MAC地址;以及在所述预定时 间量内接收到针对所述请求的响应时使用所述MAC地址。

通过后面结合附图做出的以举例的方式说明本发明的原理的详细 描述,本发明的其他方面和实施例将变得显而易见。

附图说明

图1示出了根据一个实施例的网络架构。

图2示出了根据一个实施例的可以与图1的服务器和/或客户端相 关联的代表性硬件环境。

图3是根据一个实施例的交换设备的简化图示。

图4示出了根据一个实施例的介质接入控制(MAC)地址分配表。

图5是根据一个实施例的方法的流程图。

图6是根据另一个实施例的方法的流程图。

具体实施方式

后面的描述是为了说明本发明的一般原理,而不意图限制这里所 要求保护的发明性概念。此外,这里所描述的特定特征可以与多种可 能的组合和置换当中的每一种组合和置换中的其他所描述的特征组合 使用。

除非在这里明确地另行定义,否则应当为所有术语给出其所可能 的最宽泛的解释,其中包括说明书所暗指的含义以及本领域技术人员 所理解和/或如词典、协定中所定义的含义。

还必须提到的是,除非另行表明,否则用在说明书和所附权利要 求书中的单数形式“一个”、“一项”和“所述”也包括复数的所指 对象。

在一种方法中,可以对于耦合到交换系统的遵循某一系统的设备 确定介质接入控制(MAC)地址,其中每一个MAC地址在被应用散列算 法时对应于特定散列数值,从而使得每一个散列数值对应于交换设备 的一个端口,从而简化并且改进为设备指派MAC地址的方式。

在一个一般性实施例中,一种系统包括至少一个处理器,其包括: 被配置成接收针对为一个端口上的设备指派介质接入控制(MAC)地址 的请求的逻辑;被配置成至少部分地基于所述端口确定将为所述设备 指派的MAC地址的逻辑;以及被配置成发送带有MAC地址的针对所述 请求的响应的逻辑。

在另一个一般性实施例中,一种用于指派MAC地址的计算机程序 产品包括随之具体实现计算机可读程序代码的计算机可读存储介质, 所述计算机可读程序代码包括:被配置成在不使用查找表的情况下确 定将为设备指派的MAC地址的计算机可读程序代码;以及被配置成向 设备发送MAC地址的计算机可读程序代码。

根据另一个一般性实施例,一种用于指派MAC地址的方法包括: 在交换设备的端口处接收来自设备的针对MAC地址的请求;至少部分 地基于所述端口确定将为所述设备指派的MAC地址;以及利用所述MAC 地址对所述请求做出响应。

在另一个一般性实施例中,一种用于取回MAC地址的方法包括: 向MAC分配服务器(MAAS)发送针对MAC地址的请求;等待预定时间 量以接收针对所述请求的响应,所述响应包括MAC地址;以及在所述 预定时间量内接收到针对所述请求的响应时使用所述MAC地址。

所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、 方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下 形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻 留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称 为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个 方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的 形式,该计算机可读介质中包含计算机可读的程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质 可以是计算机可读信号介质或者非瞬时性计算机可读存储介质。非瞬时 性计算机可读存储介质例如可以是——但不限于——电子、磁、光、电 磁、红外线、或半导体的系统、装置或设备,或者任意以上的组合。非 瞬时性计算机可读存储介质的更具体的例子(非穷举的列表)包括:便 携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦 式可编程只读存储器(EPROM或闪存)、便携式紧凑盘只读存储器 (CD-ROM)、蓝光盘只读存储器(BD-ROM)、光存储设备、磁存储设备、或 者上述的任意合适的组合。在本文件中,非瞬时性计算机可读存储介质 可以是任何能够包含或存储程序或应用的有形介质,该程序或应用供指 令执行系统、装置或者设备使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播 的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号 可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的 任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质 以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传 输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序, 比如具有一条或多条连线的电连接、光纤等等。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包 括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适 的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明 操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语 言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言 —诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计 算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、 部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机 或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任 意种类的网络——包括局域网(LAN)存储区域网(SAN)和/或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网 服务提供商来通过因特网连接)。

下面将参照根据本发明实施例的方法、装置(系统)和计算机程序 产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每 个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令 实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它 可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机 程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产 生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装 置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指令 使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作, 从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框 图中的一个或多个方框中规定的功能/动作的指令的制造品(article of  manufacture)。

计算机程序指令还可以被加载到计算机、其他可编程数据处理装 置或者其他设备上,从而使得在所述计算机、其他可编程装置或其他 设备上实施一系列操作步骤以产生计算机实施的处理,从而使得在计 算机或其他可编程装置上执行的指令提供用于实施在流程图和/或方 框图的一个或多个方框中规定的功能/动作的处理。

图1示出了根据一个实施例的网络架构100。如图1中所示,提 供多个远程网络102,其中包括第一远程网络104和第二远程网络106。 网关101可以耦合在远程网络102与邻近网络108之间。在这一网络 架构100的情境中,网络104、106可以分别采取任何形式,其中包括 但不限于LAN、例如因特网之类的WAN、公共交换电话网(PSTN)、内 部电话网等等。

在使用中,网关101充当从远程网络102到邻近网络108的进入 点。因此,网关101可以充当能够引导到达该网关101处的给定数据 分组的路由器,以及对于给定分组布置进入和离开该网关101的实际 路径的交换机。

此外还包括耦合到邻近网络108的至少一个数据服务器114,其 可以从远程网络102经由网关101访问。应当提到的是,(多个)数 据服务器114可以包括任何类型的计算设备/群件。每一个数据服务器 114耦合有多个用户设备116。这样的用户设备116可以包括台式计算 机、膝上型计算机、手持式计算机、打印机以及/或者任何其他类型的 包含逻辑的设备。应当提到的是,在某些实施例中,用户设备111还 可以直接耦合到任何网络。

一个外设120或一系列外设120可以耦合到一个或多个网络104、 106、108,所述外设比如是传真机、打印机、扫描仪、硬盘驱动器、 联网和/或本地存储单元或系统等等。应当提到的是,数据库和/或附 加的组件可以与耦合到网络104、106、108的任何类型的网络设备一 同使用或者被集成到其中。在本发明的描述的情境中,网络元件可以 指代网络的任何组件。

根据某些方法,这里所描述的方法和系统可以利用虚拟系统和/ 或仿真一个或多个其他系统的系统来实施以及/或者被实施在其上,比 如仿真IBM z/OS环境的UNIX系统、虚拟主机MICROSOFT WINDOWS环 境的UNIX系统、仿真IBM z/OS环境的MICROSOFT WINDOWS系统等等。 在一些实施例中,通过使用VMWARE软件可以增强这一虚拟化和/或仿 真。

在更多方法中,一个或多个网络104、106、108可以代表被共同 称为“云”的系统群集。在云计算中,通过按需关系为云中的任何系 统提供例如处理能力、外设、软件、数据、服务器等共享资源,从而 允许在许多计算系统之间访问和分配服务。云计算通常涉及在云中操 作的系统之间的因特网连接,但是也可以采用本领域内已知的其他连 接系统的技术。

图2示出了根据一个实施例的与图1的用户设备116和/或服务器 114相关联的代表性硬件环境。图2示出了工作站的典型硬件配置, 其具有中央处理单元(CPU)210(比如微处理器)以及经由一条或多 条总线212互连的若干其他单元,所述总线根据几个实施例可以是不 同类型,比如局部总线、并行总线、串行总线等等。

图2中所示出的工作站包括随机存取存储器(RAM)214,只读存 储器(ROM)216,用于把例如盘存储单元220之类的外围设备连接到 一条或多条总线212的I/O适配器218,用于把键盘224、鼠标226、 扬声器228、麦克风232和/或例如触摸屏、数字摄影机(未示出)等 其他用户接口设备连接到一条或多条总线212的用户接口适配器222, 用于把所述工作站连接到通信网络235(例如数据处理网络)的通信 适配器234,以及用于把一条或多条总线212连接到显示设备238的 显示适配器236。

所述工作站上可以驻留有操作系统,比如MICROSOFT WINDOWS操 作系统(OS)、MAC OS、UNIX OS等等。应当认识到,一个优选实施 例还可以被实施在所提到的之外的其他平台和操作系统。一个优选实 施例可以利用JAVA、XML、C和/或C++语言或其他编程语言连同面向 对象的编程方法来编写。可以使用越来越多地被用来开发复杂应用的 面向对象的编程(OOP)。

当前,IEEE向例如公司、教育机构等组织指派MAC地址,其随后 按照需要在其(多个)网络上自由指派MAC地址。但是这一处理效率 低下,并且存在大量等待时间和问题。举例来说,在以太网交换中, 取决于存储对于特定交换设备所获知的所有MAC地址的MAC地址表的 尺寸,在对交换机进行扩展以用在不断扩张的网络中时,在针对MAC 地址解析的处理能力和保持较低查找等待时间方面可能存在很大问 题。

为了克服与当前使用的MAC编址协议相关联的问题和等待时间, 取代指派固定MAC地址,可以在耦合到要求MAC地址的设备的交换设 备引导(boot-up)时指派MAC地址。这些MAC地址可以基于对算法分 配的符合来确定。

根据一个实施例,将把所接收到的分组交换到该处的目的地端口 可以是目的地MAC地址的函数,其可以被写作 Dest_Port=F(Dest_MAC_Address,is_mirror,is_flow),其中F表 示函数,Dest_Port是目的地端口,Dest_MAC_Address是由分组提供 的目的地MAC地址,is_mirror表示该分组是否被允许镜像到多个端 口,并且is_flow表示特殊操作和流控制。is_mirror和is_flow对 于分组交换不是必须的,但是在希望时可以使用。这样,与传统方法 相比,MAC地址分配被更加高效地实施并且所需的开销处理更少。

现在参照图3,其中示出了根据一个实施例的系统300,比如交换 设备。如图所示,系统300包括服务器,比如MAAS,其被适配成对于 电耦合到系统300的设备304指派和管理MAC地址。所述服务器可以 是一个组件并且/或者由至少一个处理器306管理,比如用于执行逻辑 的交换处理器。在一些实施例中,系统300还可以包括用于执行逻辑 的本地处理器302,其电耦合到所述至少一个处理器306。对于本地处 理器302和/或至少一个处理器306可以使用本领域内已知的任何类型 的处理器,比如中央处理单元(CPU)、现场可编程门阵列(FPGA)、 集成电路(IC)、专用集成电路(ASIC)等等。在另一个实施例中, 交换ASIC和本地CPU都可以被包括在系统300中,其中交换ASIC管 理交换操作,本地CPU管理MAC地址分配操作。

每一个变为在线的新的主机、服务器或设备采集MAC地址以便与 其他设备通信。这从传统方法来说是唯一的,其中设备的网络接口卡 (NIC)预先编程有MAC地址。在传统上,设备在引导时使用该MAC 地址进行通信。但是根据这里所描述的实施例,一种利用MAC地址采 集算法或MAC地址采集协议(MAAP)的MAC地址采集方法不再需要预 先编程的MAC地址,而是可以在某些方法中作为针对预先编程的MAC 地址的补充来使用。

根据一个实施例,所述至少一个处理器306包括或者可以访问被 配置成接收针对为端口308上的设备304指派MAC地址的请求的逻辑。 所述请求可以由设备304发送,或者可以源自网络中或系统300中的 其他地方。在该处接收到请求的端口308被存储或者以其他方式被记 住,从而使其可以被用来在将来发送去往设备304的所有外出通信量。 所述至少一个处理器306还包括或者可以访问被配置成至少部分地基 于所述端口确定将为设备指派的MAC地址的逻辑,以及被配置成发送 带有MAC地址的针对所述请求的响应的逻辑。

在一个实施例中,所述至少一个处理器306还可以包括或者可以 访问被配置成创建MAC地址分配表的逻辑。现在参照图4,MAC地址分 配表400可以包括多个散列数值402,每一个散列数值402与一个端 口404和多个MAC地址406相关联。在一种方法中,现在参照图3-4, 对所述多个MAC地址406当中的任一个应用散列算法会得到相关联的 散列数值402,从而存在一种为设备304指派MAC地址406的系统性 方法,其中设备304请求对应于该设备304在其上耦合到系统300的 端口404的MAC地址406。

在一种方法中,被配置成确定将为设备304a指派的MAC地址406a 的逻辑可以包括被配置成从MAC地址分配表400中选择MAC地址406a 的逻辑,从而使得对所选MAC地址406a应用散列算法会得到与耦合到 设备304a的端口404a相关联的散列数值402a。

在另一种方法中,被配置成从MAC地址分配表400中选择MAC地 址406a的逻辑包括被配置成从多个可用MAC地址406当中顺序地或随 机地选择下一个可用MAC地址406的逻辑,其中可用MAC地址当前未 被分配给设备304。当然,与此相反,不可用MAC地址当前被指派给 设备304。

在另一种方法中,所述逻辑还可以包括在从MAC地址分配表400 中选择MAC地址406a时被配置成将MAC地址406a标记为不可用的逻 辑,这是通过将MAC地址406a从MAC地址分配表400中去除并且将所 述MAC地址添加到已使用MAC地址表(未示出,但是其将类似于MAC 地址分配表400,不同之处在于其将仅包括已指派MAC地址)中。在 更多方法中,所述逻辑还可以包括在设备304a释放为之指派的MAC 地址406a时被配置成将MAC地址406a标记为可用的逻辑,这是通过 将MAC地址406a添加到MAC地址分配表400中并且从已使用MAC地址 表400中去除MAC地址406a。

在另一个实施例中,所述逻辑可以被配置成在MAC地址分配表400 中翻转与MAC地址406a相关联的指示比特,从而表明MAC地址406a 可用或不可用。

根据各个实施例,所述散列算法可以包括本领域内已知的任何完 美或不完美散列算法。在一种方法中,所述散列算法可以包括: H(DM)=(DM[0]*1XOR DM[1]*2XOR DM[2]*3XOR DM[3]*4XOR DM[4]*5 XOR DM[5]*6)MOD P,其中DM是MAC地址,H(DM)是MAC地址DM的 所有六个字节的散列数值,并且P是系统300的物理端口308的总数。

在另一个实施例中,所述散列算法可以包括:H(DM)=(DM[0]*1XOR  DM[1]*2...XOR DM[N-1]*N)MOD P,其中DM是MAC地址,H(DM)是 MAC地址DM的散列数值,DM[N-1]是具有N个字节的MAC地址DM的一 个字节,并且P是物理端口总数。

根据另一个实施例,可以在所述至少一个处理器306的启动 (start-up)处理期间创建MAC地址分配表400。这一启动处理可以 是系统300引导,或者是发生一次以便令各个组件达到运转速度的任 何其他处理。

在另一个实施例中,所述请求可以包括具有源地址的MAC地址采 集协议(MAAP)分组。在这种情况下,所述响应可以包括经过改动的 所接收到的MAAP分组,从而使得经过改动的MAAP分组的目的地址被 改变到所接收到的MAAP分组的源地址。这样,通过源和目的地地址之 间的简单切换,相同的MAAP分组可以被用于请求和响应。

现在参照图5,其中示出了根据一个实施例的用于指派MAC地址 的方法500的流程图。在各个实施例中,特别可以根据本发明在图1-4 所描绘的任何环境中实施方法500。当然,本领域技术人员通过阅读 本发明的描述将会理解的是,在方法500中可以包括比在图5中具体 描述的那些操作更多或更少的操作。

方法500的每一个步骤可以由操作环境的任何适当组件实施。举 例来说,在一个实施例中,方法500可以部分地或完全地由交换设备 和/或交换设备的MAAS实施。

如图5中所示,方法500可以发起于操作502,其中在交换设备 的一个端口处接收来自设备的针对MAC地址的请求。正如这里所描述 的那样,在该处接收到请求的端口被存储以用于确定对应于所述设备 的MAC地址。

在操作504中,至少部分地基于所述端口确定将为设备指派的MAC 地址。

在一种方法中,可以创建MAC地址分配表。MAC地址分配表可以 包括多个散列数值,每一个散列数值与对应于多个MAC地址的一个端 口相关联。此外,对所述多个MAC地址当中的任一个应用散列算法会 得到相关联的散列数值,其又与所述MAC地址的端口相关联。

此外,在一个实施例中,MAAS可以使用从输入文件提供到MAAS 的预先定义的MAC地址集合来建立MAC地址分配表。在这种情况下, MAAS响应于接收到MAC地址分配协议(MAAP)分组从MAC地址分配表 中确定将为设备指派的MAC地址。

在一个实施例中,所述散列算法可以是完美散列算法或不完美散 列算法。可以使用的一种此类完美散列算法是:H(DM)=(DM[0]*1XOR  DM[1]*2XOR DM[2]*3XOR DM[3]*4XOR DM[4]*5XOR DM[5]*6)MOD  P,其中DM是MAC地址,H(DM)是MAC地址DM的所有六个字节的散列 数值,并且P是交换设备的物理端口的总数。

根据另一个实施例,所述散列算法可以包括H(DM)=(DM[0]*1XOR  DM[1]*2...XOR DM[N-1]*N)MOD P,其中DM是MAC地址,H(DM)是 MAC地址DM的散列数值,DM[N-1]是具有N个字节的MAC地址DM的一 个字节,并且P是端口总数。

在某些方法中,如果接收到来自设备的分组并且对MAC地址应用 散列算法没有得到交换设备的适当端口,例如目的地MAC地址并非由 MAAP提供,则可以使用常规查找算法来找到目的地端口。随后可以将 所述分组转发到目的地端口。为了识别出并非由MAAS利用MAAP提供 的MAC地址,可以比较MAC地址的全球唯一标识符(UUID)字段的范 围。MAAP在特定预先编程的范围内分配MAC地址。

在一种方法中,可以在交换设备的启动处理期间(比如在引导期 间)创建MAC地址分配表。此外,MAC地址分配可以是列表、关联、 文件或者某种其他手段,其允许将一个或多个MAC地址与单一端口和 单一散列数值相关联。

在另一种方法中,方法500还可以包括从MAC地址分配表中选择 MAC地址,从而使得对所选MAC地址应用散列算法会得到与耦合到所 述设备的交换设备的端口相关联的散列数值。举例来说,如果设备连 接到交换设备的端口4,则对为所述设备选择的MAC地址应用散列算 法会得到与端口4相关联的散列数值。所述散列数值可以是4,或者 可以是在指派散列到该特定散列数值的MAC地址之前与交换设备的所 述端口相关联的任何其他数字。

在另一种方法中,从MAC地址分配表中选择MAC地址可以包括从 多个可用MAC地址当中顺序地或随机地选择下一个可用MAC地址。可 用MAC地址是当前未被指派给设备的MAC地址,不可用MAC地址则是 当前被指派给设备的MAC地址。

在另一个实施例中,方法500可以包括在从MAC地址分配表中选 择MAC地址时,将所述MAC地址标记为不可用,或者将所述MAC地址 从MAC地址分配表中去除并且将所述MAC地址添加到已使用MAC地址 表中。此外,在设备释放为之指派的MAC地址时,可以将所述MAC地 址添加到MAC地址分配表中并且从已使用MAC地址中去除,或者可以 将所述MAC地址标记为可用。当然,在另一些实施例中可以使用全部 两个单独的分配表和标记。

在另一种方法中,所述标记可以包括翻转MAC地址分配表中的与 MAC地址相关联的指示比特,或者本领域内已知的对表中的条目进行 标记的任何方法。

在操作506中,利用MAC地址对所述请求做出响应。可以使用包 括MAC地址的任何响应,比如以太网分组。在一种此类情况中,所述 请求可以包括具有源地址的MAAP分组。在这种情况下,所述响应可以 包括经过改动的所接收到的MAAP分组,从而使得经过改动的MAAP分 组的目的地地址被改变到所接收到的MAAP分组的源地址。这样,通过 源和目的地地址之间的简单切换,相同的MAAP分组可以被用于请求和 响应。

根据一个实施例,在引导时,可以利用D-MAC=01:00:5e:00:00:xx、 S-MAC=NIC MAC地址以及EtherType=0xFFFF或0xXXXX来形成分组, 其中XX或xx尚未被定义,但是可以由网络管理员确定并且在配置时 间为主机操作系统给出。因此,这些数值可以是为全部两个实体所知 的任何数值。

随后,在所连接的NIC端口上向MAAS发送出以太网分组(优选地 是MAAP分组),其可以是交换设备的一部分。接下来,交换设备在该 交换设备的其中一个端口上接收所述分组。相应地,MAAP请求分组连 同源端口信息被发送到本地MAAS。此时,本地MAAS运行地址分配算 法,并且确定对应于主机操作系统的MAC地址H-MAC。

在一种方法中,所述地址分配算法可以包括提取出在其上接收到 MAAP请求的交换机端口号“p”,并且利用控制软件将该端口传递到 MAAS。随后对MAC地址分配表进行解析,并且确定第一可用(未分配) MAC地址。该地址随后被添加到MAAP分组中,并且所述地址被标记为 不可用(已分配)。

接下来,MAAS通过把H-MAC地址写入到MAAP分组中并且把目的 地地址改变到原始MAAP请求的原始源地址而改动MAAP分组。所述分 组被发送出源端口。发出请求的主机操作系统在预定等待时间 (t_wait)接收到响应MAAP分组,并且随后开始将H-MAC用作其所有 未来通信的源MAC地址。

如果MAAP响应没有在等待时间(t_wait)内到达,则主机操作系 统可以重试所述处理两次或更多次。在所述重试没有接收到响应之后, 主机操作系统开始利用预先编程的NIC MAC地址作为其所有未来通信 的源MAC地址。

根据大多数实施例,这里所描述的方法和系统可以被初始化在平 坦第2层网络上,其中所有的主机、设备或服务器都被指派相同子网 的IP地址。

现在参照图6,其中示出了根据一个实施例的用于取回MAC地址 的方法600的流程图。在各个实施例中,特别可以根据本发明在图1-4 所描绘的任何环境中实施方法600。当然,本领域技术人员通过阅读 本发明的描述将会理解的是,在方法600中可以包括比在图6中具体 描述的那些操作更多或更少的操作。

方法600的每一个步骤可以由操作环境的任何适当组件实施。举 例来说,在一个实施例中,方法600可以部分地或完全地由交换设备 和/或交换设备的MAAS实施。

如图6中所示,方法600可以发起于操作602,其中向MAAS发送 针对MAC地址的请求。在一种方法中,所述请求可以是MAAP分组。

在操作604中,等待针对请求的响应。如果在预定时间量期间没 有接收到针对所述请求的响应,则可以采取其他行动。

在操作606中,当在预定时间量内接收到针对请求的响应时,使 用MAC地址。所述响应包括MAC地址,并且在接收到MAC地址之后, 由最初发送请求的设备或者耦合到该设备的某一其他设备使用所述 MAC地址。

在一个实施例中,当在预定时间量期间没有接收到针对请求的响 应时,发送针对MAC地址的请求的设备可以使用预先编程的MAC地址。 根据一种方法,该MAC地址在制造时被预先编程到设备中。

根据这里给出的实施例和方法,可以在不使用查找表的情况下做 出交换决定,这是因为网络中的每一个设备具有对应于交换设备的目 的地端口的MAC地址。此外,这样提供了极快的交换算法并且提供了 非常低的等待时间。其还通过简化交换逻辑大大缩短了直通 (cut-through)等待时间并且降低了成本。

虽然前面描述了各个实施例,但是应当理解的是其仅仅是作为实 例而非限制给出的。因此,本发明的实施例的宽度和范围不应当受限 于任何前面所描述的示例性实施例,而是应当仅根据所附权利要求书 及其等效表述来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号