处理网络中的协议地址的方法和处理设备转让专利

申请号 : CN201380069879.9

文献号 : CN104904187B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 托米斯拉夫·通泽蒂克伊维卡·马陶西克

申请人 : 瑞典爱立信有限公司

摘要 :

本发明涉及一种处理网络(10)中的协议地址(IP_x)的方法。网络包括K个服务器(12)。在网络中由服务器标识符(Sid_x)唯一标识服务器。服务器容纳最大数量为L个的单元(14)。单元包括用于与网络连接的一个硬件地址(MACx)和单元标识符(Eid_x),单元标识符唯一标识服务器中的单元。单元托管最大数量为M个的主机(16)。单元上的每一个主机均包括唯一标识单元上的主机的本地主机标识符(Hid_x)。单元(14)基于主机的本地主机标识符(Hid_x)、单元的单元标识符(Eid_x)和与单元相关联的服务器标识符(Sid_x)生成单元上的主机的协议地址(IP_x);以及将协议地址指派给主机(16)。

权利要求 :

1.一种处理网络(10)中的协议地址(IP_x)的方法,所述网络包括K个服务器(12),服务器在所述网络中由服务器标识符(Sid_x)唯一标识并包括最大数量为L个的单元(14),单元包括用于与网络连接的一个硬件地址(MACx)和单元标识符(Eid_x),所述单元标识符唯一标识所述服务器中的单元,单元托管最大数量为M个的主机(16),单元上的每一个主机均包括唯一标识单元上的主机的本地主机标识符(Hid_x),所述方法包括:-单元(14)基于所述主机的本地主机标识符(Hid_x)、所述单元的单元标识符(Eid_x)和包括所述单元的服务器的服务器标识符(Sid_x),来生成单元上的主机的协议地址(IP_x);以及-所述单元(14)将所述协议地址指派给所述主机(16)。

2.根据权利要求1所述的方法,其中所述协议地址包括网络部分和主机标识符部分,服务器标识符(Sid_x)由具有k比特的第一参数表示,k是满足2k≥K的正整数,单元标识符I(Eid_x)由具有I比特的第二参数表示,I是满足2≥L的正整数,本地主机标识符(Hid_x)由具有m比特的第三参数表示,m是满足2m≥M的正整数,并且通过串接所述第一参数、所述第二参数和所述第三参数的比特来获得所述主机标识符部分。

3.根据权利要求2所述的方法,其中所述主机标识符部分包括H比特且k+I+m≤H。

4.根据权利要求2-3中任一项所述的方法,其中服务器定义网络的段,并且所述第一参数与定义所述网络中的所述段的协议地址的所述主机标识符部分的比特相对应。

5.根据权利要求2-3中任一项所述的方法,所述方法还包括以下步骤:-第一单元基于第一主机的预定义本地主机标识符(Hid_1)、第二单元的单元标识符(Eid_x)和包括所述第二单元的服务器的服务器标识符(Sid_x),生成第二单元上具有预定义本地主机标识符的第一主机的协议地址(IP_x);

-所述第一单元向具有协议地址(IP_x)的第一主机发送发送第一主机的硬件地址(MACx)这一请求;

-所述第二单元响应于所述请求,发送包括所述第二单元的所述硬件地址(MACx)的响应;以及-所述第一单元从所述响应中取得所述第二单元的所述硬件地址(MACx);以及-所述第一单元在所述第一单元的数据库(204)中存储所述第一主机的协议地址(IP_x)与所述第二单元的硬件地址(MACx)之间的关系。

6.根据权利要求5所述的方法,其中所述第一参数的至少一个最高有效位定义所述第一、第二和第三参数的比特数。

7.根据权利要求5所述的方法,其中所述存储步骤包括:

-通过串接至少所述第一参数的比特和所述第二参数的比特来生成具有预定义长度的索引地址,-将所述第二单元的硬件地址与所述索引地址关联。

8.根据权利要求5所述的方法,其中所述方法对于所述第二单元上的所有其他主机还包括以下步骤:-所述第一单元基于所述第二单元上的另一个主机的本地主机标识符(Hid_x)、所述第二单元的单元标识符(Eid_x)和与所述第二单元相关联的服务器标识符(Sid_x),来生成所述另一个主机的协议地址(IP_x),-所述第一单元存储所述另一个主机的协议地址(IP_x)与前一取得步骤中取得的所述第二单元的硬件地址(MACx)之间的关系。

9.根据权利要求5所述的方法,其中所述方法还包括以下过程(44):-所述第一单元从所述第一单元上的主机接收提供与协议地址相关联的所述硬件地址的请求;

-所述第一单元处理所述协议地址以获得索引地址;

-所述第一单元使用所述索引地址来从所述数据库检索所述硬件地址;以及-所述第一单元向所述第一单元上的主机发送检索出的硬件地址。

10.根据权利要求9所述的方法,其中所述处理步骤包括:

-根据所述协议地址的至少一个比特来推导所述第一、第二和第三参数的比特数;

-从所述协议地址取得所述第一和第二参数;

-通过串接至少所述第一参数的比特和所述第二参数的比特,来生成具有预定义长度的所述索引地址。

11.根据权利要求9或10所述的方法,其中所述方法还包括以下过程(44):当不能从所述数据库检索到所述硬件地址时,

-所述第一单元向具有所述协议地址的远程主机发送发送远程主机的硬件地址(MACx)这一请求;

-具有所述协议地址的远程主机响应于所述请求,发送包括所述主机的硬件地址(MACx)的响应;以及-所述第一单元从所述响应中取得所述硬件地址;以及

-第一单元在所述第一单元的数据库(204)中存储所述远程主机的协议地址(IP_x)与托管所述远程主机的第二单元的所述硬件地址(MACx)之间的关系。

12.一种处理单元(14),包括在服务器(12)中,托管最大数量为M个的主机(16),处理单元上的每一个主机均包括唯一标识处理单元上的主机的本地主机标识符(Hid_x),其中,所述处理单元(14)还包括处理器(610)、与网络系统连接的输入/输出设备(630)、数据库(640)和包括指令的数据存储器(620),所述指令当由处理器(610)执行时使所述处理单元(14):-基于主机的本地主机标识符(Hid_x)、所述处理单元的单元标识符(Eid_x)和包括所述处理单元的服务器的服务器标识符(Sid_x),来生成处理单元上的主机(16)的协议地址(IP_x);以及-将所述协议地址指派给所述主机(16)。

13.根据权利要求12所述的处理单元,其中,所述指令当由处理单元执行时使所述处理单元:-基于第一主机的预定义本地主机标识符(Hid_1)、第二单元的单元标识符(Eid_x)和包括所述第二单元的服务器的服务器标识符(Sid_x),来生成第二单元上具有预定义本地主机标识符的第一主机的协议地址(IP_x);

-向具有协议地址(IP_x)的第一主机发送在响应中发送第一主机的硬件地址(MACx)的请求;

-从所述响应中取得所述第二单元的所述硬件地址(MACx);以及-在所述处理单元的数据库(640)中存储所述第一主机的协议地址(IP_x)与所述第二单元的硬件地址(MACx)之间的关系。

14.根据权利要求12所述的处理单元,其中,所述指令当由处理单元执行时使所述处理单元:-从所述本地主机接收提供与协议地址相关联的硬件地址的请求;

-处理所述协议地址以获得索引地址;

-使用所述索引地址来从所述数据库检索所述硬件地址;以及

-向本地主机发送检索出的硬件地址。

说明书 :

处理网络中的协议地址的方法和处理设备

技术领域

[0001] 本发明涉及网络技术的领域,并具体涉及处理网络中的协议地址的方法和设备。

背景技术

[0002] 地址解析协议(ARP)是互联网协议(IP)联网的非常重要的部分。ARP是用于将媒体访问控制(MAC)地址映射到IP地址的OSI第二层(数据链路)协议。局域网或专用网上的所有主机由它们的IP地址定位。ARP是用于关联IP地址与MAC地址的协议。
[0003] 在主机可以与网络中的任意其他主机通信之前,主机必须具有那个其他主机的MAC地址。在TCP/IP网络中,知晓IP地址,可以使用互联网协议版本4(IPv4)的地址解析协议(ARP)或使用IPv6的邻居发现协议(NDP)询问接口的MAC地址。因此,主机发出(广播)ARP分组。ARP分组包含简单的问题:与IP地址10.5.5.1相对应的MAC地址是什么?已经被配置为使用IP地址的主机用包含它的MAC地址的ARP分组做出响应。用这种方式,ARP用于将IPv4-地址(OSI第三层)转换为MAC地址(OSI第二层)。
[0004] 在具有MAC地址的设备上运行的ARP软件维护IP地址与MAC地址之间的转换表。一般动态地构建该表。当ARP接收到将IP地址转换为MAC地址的请求时,它检查它的表中的IP地址。如果找到了IP地址,则它返回与它的ARP表中的IP地址相关联的MAC地址。如果在ARP表中没有找到IP地址,则ARP向网络上的每个主机广播分组。该分组包含寻求其MAC地址的IP地址。如果接收主机将IP地址识别为它自己的,则它通过将它的MAC地址发回请求主机来响应。然后在ARP表中高速缓存响应中的MAC地址和相关联的IP地址。
[0005] ARP表查找时间对于特定应用能够尽快连接是重要的。如果ARP表中不存在IP地址,则ARP软件必须在网络上请求MAC地址。这将消耗时间并因此消耗建立连接的性能。
[0006] 例如,一个虚拟局域网(VLAN)内的大的专用网具有网络内的10000个主机。一些主机共享形成物理层的同一网络接口硬件,并因此具有同一MAC地址。此外,网络中的所有主机可以与网络中的所有其他主机通信。然而,在可以在主机之间建立连接之前,必须已知MAC地址。主机根据请求从网络管理服务获得它的IP地址。结果,每个主机需要维护它自身的ARP表。ARP表将具有将IP地址与MAC地址关联的10000-1个条目。可以用上述方式动态建立这种表格。然而,这将导致网络上获得相应主机的MAC地址的大量ARP请求。此外,遍历搜索ARP表将花一些时间,以检索与IP地址相对应的MAC地址(如果存在于ARP表中的话),或检测到在ARP表中不存在IP-MAC对。如果应用对每秒的连接数有要求的话,这可能难于满足。
[0007] 在启动网络时,可以在与其他主机的任意数据交换之前填充主机的ARP表。在该初始阶段,当填充ARP表时,将存在广播风暴。这意味着,在网络包括N个主机的情况下,将存在可能向网络发出的N*(N-1)个ARP请求。理论上,假设ARP-分组的大小是28字节,在网络上可能存在大约2*28*10000*10000字节的突发,以填充网络中所有主机的ARP表。
[0008] 鉴于以上事实,ARP缓存的简单直接的实施方式对于大型专用网络是不可选的。
[0009] 此外,在一些伪线情况下(如IP上的ATM,或IP上的TDM)被模拟协议需要传送在新近建立的连接上发送第一数据。在这些情况下,需要在网络上的主机之间发生任意数据交换之前完全填充ARP表。完全填充的ARP表允许在不丢失第一IP分组的情况下建立主机之间的连接。

发明内容

[0010] 本发明的目的是提供一种处理协议地址(即IP地址)的改进的方法和设备,并消除至少一个上述缺点。
[0011] 根据发明的第一方面,提供了一种处理网络中的协议地址的方法。网络包括K个服务器。服务器是容纳最大数量为L个个处理单元的网络实体或节点。在网络中每一个服务器均由服务器标识符唯一标识。每一个处理单元均包括用于与网络连接的至少一个硬件地址。指派给处理单元的单元标识符唯一标识服务器中的单元。处理单元被配置为托管最大数量为M个的主机。单元上的每一个主机均包括唯一标识处理单元上的主机的本地主机标识符。处理单元基于主机的本地主机标识符、单元的单元标识符和与处理单元相关联的服务器标识符(即容纳处理单元的网络实体的服务器标识符)来生成单元上主机的协议地址。后续地,单元将协议地址指派给主机。
[0012] 方法是基于以下概念,不是或多或少随机地、而是以结构化的方式向网络中的主机给出协议地址。应用规则来生成主机的协议地址。通过使用规则,可以将协议地址指派给具有某一类似性的或同一范围中的同一单元上运行的主机。某一类似性意味着协议的仅某些比特(例如最低有效位(LSB))不同。此外,当规则定义了一侧的协议地址与另一侧的服务器标识符、单元标识符和主机标识符之间的唯一关系时,可以从IP消息导出协议地址,与协议地址相关联的主机的服务器和单元。由于同一单元上的所有主机具有同一硬件地址或MAC地址,第一单元仅需要向第二单元发送一个ARP请求以获得第二单元的MAC地址,并且在第一单元上运行的过程可以通过使用规则来生成第二单元上的所有其他主机的协议地址-硬件地址对。这使得能够减少在网络启动时网络上的填充ARP表的ARP请求的数量。
[0013] 在方法的实施例中,协议地址包括网络部分和主机标识符部分。与主机相关联的服务器标识符由具有k比特的第一参数表示,其中k是满足2k≥K的正整数。与主机相关联的单元标识符由具有I比特的第二参数表示,其中I是满足2I≥L的正整数。本地主机标识符由具有m比特的第三参数表示,其中m是满足2m≥M的正整数。通过串接第一参数、第二参数和第三参数的比特来获得主机标识符部分。这些特征提供了规则的简单实施方式。
[0014] 在另一个实施例中,主机标识符部分包括H比特,并且k+I+m≤H。这些特征确保对于每个主机可以生成唯一的协议地址。
[0015] 在实施例中,服务器定义网络的段,并且第一参数与定义网络中的段的协议地址的主机标识符部分的比特相对应。这些特征允许用户来在节点或服务器中使用路由器或交换单元来将服务器与网络连接。与服务器中的交换单元耦合的所有处理单元将在同一子网中。因此服务器中的所有主机将在同一子网中。在该实施例中,子网比特与服务器识别符相对应。
[0016] 在方法的实施例中,第一单元生成第二单元上具有预定义本地主机标识符的第一主机的协议地址。协议地址基于第一主机的预定义本地主机标识符、第二单元的单元标识符和与第二单元和第一主机相关联的服务器标识符。此外,第一单元向具有协议地址的协议地址的第一主机发送发送托管第一主机的第二单元的硬件地址这一请求。第二单元响应于请求发送包括第二单元的硬件地址的响应。后续地,第一单元从响应中取得第二单元的硬件地址;以及在第一单元的数据库中存储第一主机的协议地址和第二单元的硬件地址之间的关系。数据库与定义IP地址和MAC地址之间的关系的ARP表相对应。由于可以由一个处理单元或处理板托管一个或更多个主机,并且处理单元包括到网络的一个接口以及因此一个MAC地址,生成协议地址的规则还提供了:通过产生具有网络中服务器中的处理单元托管的特定主机标识的主机协议地址,来仅对网络中每个处理单元寻址一次的方式。
[0017] 另一实施例中,第一参数的至少一个最高有效位定义第一、第二和第三参数的比特数。该特征允许使用至少两个规则来生成协议地址。如果需要在网络中至少使用两种不同类型的处理单元,则这在较大的专用网络中可能是有利的。例如,能够托管多达4个主机的一种旧型处理单元和能够托管多达64个主机的新型处理单元。该特征支持用容纳新的处理单元的服务器来部分替换容纳旧的处理单元的服务器。仅需要替换用于生成协议地址的算法,以允许旧的处理单元根据两个或更多个规则生成协议地址。
[0018] 在实施例中,存储步骤包括:通过串接至少第一参数的比特和第二参数的比特来生成具有预定义长度的索引地址。后续地,将第二单元的硬件地址与数据库中的索引地址关联。这些特征允许当需要从ARP表中检索所有可能的IP地址和MAC地址的组合时,减少ARP表中的条目的数量。简化的ARP表具有以下优点:它需要不那么复杂的存储器来存储表格。在备选实施例中,通过串接网络部分、第一参数的比特、第二参数的比特和可选地至少一个填充比特来获得索引地址。
[0019] 在另一实施例中,对于第二单元上的所有其他主机:第一单元生成第二单元上的另一个主机的协议地址。协议地址基于另一个主机的本地主机标识符、第二单元的单元标识符和与第二单元和另一个主机相关联的服务器标识符。第一单元存储由第二单元托管的另一个主机的协议地址与在前一取得步骤中取得的第二单元的硬件地址之间的关系。这些特征可以用减少数量的ARP请求来完全填充ARP表。
[0020] 在方法的实施例中,第一单元从第一单元上的主机接收提供与协议地址相关联的硬件地址这一请求。第一单元处理协议地址以获得索引地址。第一单元使用索引地址来从数据库中检索与协议地址相关联的硬件地址。最后,第一单元向第一单元上的主机发送检索到的硬件地址。这些特征支持使用简化的ARP表来从简化的ARP表获得任意主机的MAC地址。
[0021] 在另一个实施例中,根据协议地址的至少一个比特来推导第一、第二和第三参数的比特数;从协议地址检索第一和第二参数;以及通过串接至少第一参数的比特和第二参数比特来生成具有预定义长度的索引地址。在另一实施例中,通过串接协议地址的网络部分、第一参数的比特和第二参数的比特以及可选地至少一个填充比特来获得索引地址。这些特征支持在一个专用网络中使用两种或更多种类型的服务器,每种类型的服务器容纳不同类型的处理单元。通过使用协议地址的至少一个比特来标识服务器中的处理单元的类型,可以应用两个或更多个规则来从协议地址中取得索引地址。
[0022] 在方法的另一个实施例中,当不能从数据库检索到硬件地址时,第一单元向具有协议地址的远程主机发送发送它的硬件地址这一请求。具有协议地址的远程主机响应于请求发送包括主机的硬件地址的响应。第一单元从响应中取得硬件地址,以及在第一单元的数据库(204)中存储远程主机的协议地址与托管远程主机的第二单元的硬件地址之间的关系。
[0023] 根据第二方面,提供了一种处理设备,包括处理器、与网络系统连接的输入/输出设备、数据库和包括指令的数据存储器,所述指令当由处理器执行时使处理设备:基于主机的本地主机标识符、处理设备的单元标识符和与处理设备相关联的服务器标识符来生成单元上的主机的协议地址;以及将协议地址指派给主机。
[0024] 在另一个实施例中,指令当由处理器执行时使处理设备:基于第一主机的预定义本地主机标识符、第二单元的单元标识符和与第二单元相关联的服务器标识符,生成第二单元上具有预定义本地主机标识符的第一主机的协议地址;向具有预定义本地主机标识符的第一主机发送发送包括它的硬件地址的响应这一请求,从来自第二单元的响应中取得硬件地址;以及在处理设备的数据库中存储第一主机的协议地址与第二单元的硬件地址之间的关系。
[0025] 在备选实施例中,指令当由处理器执行时使处理设备:从本地主机接收提供与协议地址相关联的硬件地址这一请求,处理协议地址以获得索引地址;使用索引地址来从数据库检索硬件地址;以及向本地主机发送检索出的硬件地址。
[0026] 根据以下详细描述结合附图,其他特征和优点将显而易见,附图仅以示例的方式示出了实施例的各种特征。

附图说明

[0027] 以下将参照附图基于以下说明来解释这些和其他方面、属性和优点,其中相似的参考符号表示相似或可比的部分,并且其中:
[0028] 图1是示意性示出具有在单元上运行的主机的网络架构的框图;
[0029] 图2示意性示出了生成协议地址的规则;
[0030] 图3是示出在服务器中的处理单元上运行的过程的第一实施例的框图;
[0031] 图4是示出在服务器中的处理单元上运行的过程的第二实施例的框图;
[0032] 图5示意性示出了从协议地址产生索引地址的规则;以及
[0033] 图6是示出处理单元的框图。

具体实施方式

[0034] 图1示意性示出了适于应用本发明的网络架构。在互联网中示出了网络10。网络还可以是分离的和隐蔽的网络。网络可以属于一个运营商,或属于合营的一组运营商。网络具有单个的网络运营和管理(O&M)服务。网络10包括四个节点。在描述的剩余部分,节点将被称为服务器12。服务器是用于容纳0-N个交换/路由单元和0-N个处理单元的网络实体。图1中,服务器12包括一个交换单元20和L个处理单元14。交换单元20是服务器内的计算机联网设备,其关联网络段或网络设备。交换/路由单元从与其连接的任意设备接收消息,并且然后仅向消息所针对的设备发送消息。交换单元20将服务器12中的处理单元14与服务器中的其他处理单元14连接,以及与其它服务器12连接。交换单元20用于将网络划分子网络。这意味着将不向网络中的任意其他服务器发送同一服务器上的主机之间的消息。
[0035] 处理单元14是网络的服务器内的一台设备。它的特征在于它具有一个物理以太网连接和一个媒体访问控制(MAC1,...,MAC8)地址。MAC地址是连接的硬件地址。处理单元14可以是服务器中的处理板的形式。处理单元适合于托管1-M个主机16。每个主机16具有至少一个互联网协议(IP)地址。因此处理单元14具有至少1-M个IP地址。应用在处理单元上运行并且由主机16之一托管。在建立连接之前,应用可以请求连接至具有IP地址的特定目的地,针对该IP地址,必须解析IP/MAC地址对。为了获得与特定IP地址相关联的MAC地址,处理单元14上的主机16请求在处理单元14上运行的ARP过程18来提供MAC地址。根据图1可以清楚地知道,处理单元14上的所有主机16(Hid_1,...,Hid_M)共享同一MAC地址。
[0036] 利用服务器标识符(Sid_1,…,Sid_4)唯一标识网络中的每个服务器12。利用单元标识符或设备标识符(Eid_1,...,Eid_L)唯一标识服务器12中的每个处理单元14。此外,由本地主机标识符(Hid_1,...,Hid_M)唯一标识处理单元14上的每个主机16。根据实施方式,服务器标识符还可以是子网身份,其标记同一虚拟局域网(VLAN)的一个段。在这种情况下,Sid_x标记具有编号x的交换单元20的交换板身份,Eid_x唯一标记具有编号x的一个VLAN段内的具有以太网连接的设备板,并且Hid_x唯一标记设备板内具有编号x的IP主机。
[0037] 在图1的网络中,所有主机将接收到基于主机的本地主机标识符Hid_x、托管主机的单元的单元标识符Eid_x以及容纳托管主机Hid_x的处理单元的服务器单元的服务器标识符Hid_x的协议地址。图2示出了在互联网协议是IPv4的情况下生成协议地址的示例实施例。IPv4使用32位地址。32位可以由4字节表示。协议地址包括16位的网络部分和16位的主机id部分。网络部分是标识网络的固定部分。该部分对于网络中的所有主机相同。主机id部分可以用于唯一标识网络中的主机。这意味着可以216=65536个协议地址可用于向主机指派。
[0038] 在图1的网络中,可以由三个参数唯一标识主机:与服务器标识符(Sid_x)相关联的第一参数Sid、与单元标识符(Eid_x)相关联的第二参数Eid和与主机标识符(Hid_x)相关联的第三参数Hid。将在规则或算法中使用三个参数,以生成协议地址的主机id部分。
[0039] 一般情况下,如果网络包括K个服务器,则可以由k比特来表示第一参数Sid的值,k是满足2k≥K的正整数。如果网络的服务器中的处理单元的最大数量是L,则可以由I比特表示第二参数Eid的值,I是满足2I≥L的正整数。如果网络的处理单元上的主机的最大数量是M,则可以由m比特表示第三参数Hid的值,m是满足2m≥M的正整数。
[0040] 在生成主机的协议地址的规则的实施例中,通过串接第一参数、第二参数、第三参数的比特来获得主机id部分。应当应用同一规则,以向在网络中的服务器的处理单元上运行的所有主机指派协议地址。如果表示第一参数、第二参数和第三参数的比特的数量的总和小于等于协议地址的主机标识符部分的长度,则可以获得唯一的协议地址。因此k+I+m≤H,其中H是主机标识符部分的比特的长度,并且k、I和m分别是表示第一、第二和第三参数的比特的数目。
[0041] 图2是假设网络可以包括多达16个服务器、服务器可以包含多达32个处理单元,并且处理单元可以托管多达128个主机的示例。在这种情况下,可以用4比特表示第一参数Sid的值,可以用5比特表示第二参数Eid的值,并且可以用7比特表示第三参数Hid的值。在图2的示例中,Hid值为7的主机在Eid值为4的处理单元上,其中处理单元在Sid值为3的服务器中,第一参数Sid将由以下比特0011来表示,第二参数Eid将由比特00100来表示,以及第三参数Hid将由比特0000111来表示。串接三个参数的比特得到了16比特序列:0011001100000011。该16比特形成了协议地址的主机标识符部分。主机标识符部分后续与以二进制表示10101001.01111011和以点分十进制表示的169.123的网络部分组合。通过应用规则,获得了IPv4的协议地址169.123.050.007。该协议地址后续地被指派给Hid=3,Eid=4和Sid=3的主机。
[0042] 根据上述规则的协议地址的指派具有一些优点。由于处理单元上所有主机具有同一硬件地址(即同一MAC地址),仅需要ARP过程来广播一个ARP请求,所述ARP过程维护处理单元上的ARP表,以填充托管针对其发送ARP请求的主机的处理单元上的所有其他主机的ARP表。借助规则,ARP过程可以针对同一处理单元中的所有其他主机生成协议地址,并后续在ARP表中存储协议地址与硬件地址之间的关系。
[0043] 图3是示出在服务器中的处理单元上运行的过程18的第一实施例的框图。该过程18被配置为执行针对IPv4设备的地址解析协议ARP。网络中的所有处理单元使用同一规则或算法来生成协议地址。通过第一实施例的方式,解释了如何在网络中的处理单元的初始阶段中,通过填充功能30来填充ARP表32。
[0044] 填充功能30使用与之前描述的第一、第二和第三参数相对应的三个变量Sid、Eid和Hid。用这种方式,功能30可以对网络中的所有主机寻址。针对第一变量Sid和第二变量Eid的所有可能值,功能30针对具有预定义本地主机标识符Hid值的主机生成协议地址。预定义本地主机标识符具有(例如)值1。基于变量Sid、Eid和Hid的值=1,功能30生成协议地址。该协议地址属于网络中的第二处理单元上的主机。在生成协议地址之后,在处理单元上运行的ARP例程18的功能30广播ARP请求。具有所生成的协议地址的第二处理单元上的主机将识别出ARP请求,并向已经发送了ARP请求的处理单元响应回复ARP响应。ARP响应包括与生成响应的主机相关联的协议地址(即IP地址)和硬件地址(即MAC地址)。填充功能30接收ARP响应并在ARP表32中存储协地址与硬件地址之间的关系。
[0045] ARP表32可以具有常规ARP表的格式。在这种情况下,ARP表针对网络中的每个主机包括指定协议地址与硬件地址之间的关系的条目。传统ARP例程然后可以访问ARP表以获得与协议地址相关联的硬件地址。用这种ARP表,填充功能30被配置为在接收ARP响应之后,在ARP表中存储在同一处理单元上运行的所有可能主机的协议地址与硬件地址之间的关系。为此,功能再次使用规则来针对在同一处理单元上的所有其他主机生成相应的协议地址,并在ARP表中存储协议地址与硬件地址之间的关系。因此,假设在说明书中所使用的参数参考图2,其中处理单元可以包括多达128个主机,在接收ARP响应并存储ARP地址和ARP响应中的硬件地址之间的关联之后,填充功能针对处理单元上的其他127个可能的主机生成协议地址,并在ARP表中对于127个协议地址中的每一个来存储协议地址与从ARP响应中取得的硬件地址之间的关联。填充功能30与ARP表32之间的连接36指示在ARP表中存储协议地址和硬件地址之间的关联。
[0046] 用上述方式,在网络中的主机之间发生任意通信之前,生成完全填充的ARP表。如果这种ARP表可用,则在网络中的两个主机之间建立连接之前,不需要广播任意ARP请求。
[0047] 图3还用虚线示出了包括解析器功能34的ARP例程18。在建立与另一个主机的连接时,在与ARP例程正在运行的相同处理单元上托管的主机可以请求ARP例程来提供与另一个主机的协议地址IP_x相关联的硬件地址MACx。附图标记38指示要发送给ARP表32的数据,并且附图标记37指示要响应于数据38发送回解析器功能34的硬件地址。在ARP表是完全填充的ARP表的情况下,其意味着所有可能的协议地址在ARP表中具有条目,数据38与协议地址或协议地址的至少主机标识符部分相对应。
[0048] 应用规则来生成协议地址并知晓同一处理单元上的所有主机具有处理单元的硬件地址的好处在于:ARP表仅需要一个条目来使解析器功能34能够获得与处理单元上的所有主机相关联的硬件地址。现在使用索引地址来寻址托管具有特定协议地址的主机的处理单元。从主机的协议地址导出索引地址。填充功能30和解析器功能34然后将能够从协议地址导出索引地址。规则确保由同一处理单元托管的主机的所有协议地址具有同一索引地址。
[0049] 图5示意性地示出了根据协议地址生成索引地址的规则的实施例。在该实施例中,规则基于前面参照图2描述的生成协议地址的规则。假设具有点分十进制格式的IPv4协议地址169.123.050.007。前两个数字169.123与协议地址的网络部分相对应,并且后两个数字与协议地址的主机标识符部分相对应。此外,已知根据所应用的生成协议地址的规则,主机标识符部分通过串接表示三个参数Sid、Eid和Hid的比特来获得。Sid的值与容纳托管具有协议地址的主机的处理单元的服务器的服务器标识符相对应,Eid的值与托管具有协议地址的主机的处理单元的单元标识符相对应,并且Hid是唯一标识处理单元上的主机的主机标识符。此外,根据规则,参数Sid包括4比特,参数Eid包括5比特,并且参数Hid包括7比特。图5示出了如何根据点分十进制的值050.007来导出三个参数Sid、Eid和Hid的值。后续地,参数Sid和Eid的值被用于获得索引地址。图5中,通过串接协议地址的网络部分、参数Sid和参数Eid来获得索引地址。可选地,至少一个填充比特被用于将索引地址扩展为适合于寻址其中存储ARP表的处理单元的存储器的比特长度。图5示出了用缺省值来替代参数Hid的比特值的实施例。用这种方式,由值0000001替代参数Hid的值0000111。
[0050] 图5示出了获得索引地址的两个实施例。在第一实施例中,从协议地址移除与参数Hid相对应的协议地址的比特,以获得索引地址。在第二实施例中,用缺省比特值来替代与参数Hid相对应的协议地址的比特,以获得索引地址。在处理单元可以托管128个主机的给定的示例中,上述方法允许以128的因子减少ARP表的条目数。这两个实施例减少了存储ARP表所需的存储器和从ARP表获得硬件地址的时间。
[0051] 图4示出了利用简化ARP表的优点的ARP例程的实施例。在该实施例中,ARP例程不具有图3所示的填充功能。现在,在处理单元ARP表42启动时,ARP表42为空。当本地主机想要在网络中建立与另一个主机的连接时,主机请求ARP例程通过向ARP例程18的解析器功能44递交协议地址IP_x来提供另一个主机的硬件地址。解析器功能44如上所述从协议地址导出索引地址,并使用索引地址来从ARP表42中检索硬件地址MACx。如果在ARP表42中存在与索引地址相对应的条目,则解析器功能通过向主机供应MACx来从ARP表42读取MACx和对本地主机做出响应。
[0052] 如果在ARP表中不存在与索引地址相对应的条目,则解析器功能44将广播ARP请求。响应于ARP请求,具有ARP请求中的协议地址的主机将通过向发送ARP请求的解析器功能44递交ARP响应来做出响应。ARP响应包括发送ARP响应的主机的协议地址和硬件地址二者。
在接收ARP响应之后,解析器功能从响应中取得协议地址和硬件地址,从协议地址导出索引地址。后续地,解析器功能44在具有索引地址的位置处存储硬件地址。此外,响应于ARP响应,解析器功能44将ARP响应中的硬件地址供应给请求解析与协议地址IP_x相关联的硬件地址的本地主机。
[0053] 图4的实施例以由网络中处理单元上的主机数限定的因子,减小ARP表的大小和网络上的ARP请求的量。
[0054] 参照图6,示出了图1中所示的处理单元14的示例组件的框图。处理单元14可以是其上实现上述功能的网络的节点或服务器内的任意设备。处理单元可以是交换/路由器单元或处理器板。如图6所示,处理单元14包括处理器610、数据存储器620、输入/输出单元630和数据库640。数据存储器620包括当由处理器610执行时使单元14执行上述动作的指令,数据存储器620可以是存储数据的任意合适的存储器。I/O单元630被配置为提供以太网连接,并且包括MAC地址形式的一个硬件地址。I/O单元允许在处理单元上托管的主机与网络中其他处理单元上的其他主机进行通信。数据库640被配置为存储由包括硬件地址的硬件所托管的主机的协议地址与所述硬件的硬件地址之间的关系。数据库640提供与当前以太网设备中的ARP表可比的功能。
[0055] 网络可能包括:容纳多达32个能够托管16个主机的处理单元的第一类型的服务器,和容纳多达8个能够托管256个主机的处理单元的第二类型的服务器。仅包括第一类型的服务器的网络将需要多达128个服务器来为网络提供216个主机。仅包括第二类型的服务器的网络将需要多达32个服务器来为网络提供216个主机。当应用上述可用于两种服务器的简单规则时,服务器的数目将限于8个服务器。由于网络中的处理单元可以托管多达256个主机,参数Hid将需要八比特。由于服务器可以托管多达32个处理单元,参数Eid需要5比特。假定协议地址的主机标识符部分包括16比特,参数Sid可用的比特数被限制为16-8-5=3比特,其与8个服务器相对应。这种简单的规则将显著限制网络中主机的最大数量,并将妨碍网络的供应者利用第二类型的新服务器来逐渐替代第一类型的旧服务器。
[0056] 为了克服该问题,以下描述了更复杂的规则的第二实施例。在该规则中,服务器标识符Sid_x的值和协议地址的主机标识符部分的最高有效位(MSB)的比特值确定服务器的类型,以及因此确定所述类型的服务器应当使用的规则。在示例实施例中,最高有效位为值‘1’指示服务器具有第一类型,并且最高有效位为值‘0’指示服务器具有第二类型。这意味着,对于第一类型的服务器,可以应用以下规则:参数Eid使用5比特来对第一类型的服务器中的多达32个处理单元寻址,并且使用4比特来对第一类型的服务器中的一个处理单元托管的多达16个主机寻址。作为结果,对于参数Sid,有16-5-4=7比特可用。然而,MSB具有预定义的值‘1’,这意味着可以使用6比特来对网络中第一类型的服务器唯一寻址。这意味着在网络中可以包括多达64个第一类型的服务器。64个服务器可以共托管64*32*16=32768个主机。
[0057] 类似地,对于第二类型的服务器,可以应用以下规则:参数Eid使用3比特来对第二类型的服务器中的多达8个处理单元寻址,并且使用8比特来对第二类型的服务器中的一个处理单元托管的多达256个主机寻址。作为结果,对于参数Sid,有16-3-8=5比特可用。然而,MSB具有预定义的值‘0’,这意味着可以使用4比特来对网络中第二类型的服务器唯一寻址。这意味着在网络中可以包括多达16个第二类型的服务器。16个服务器可以共托管16*8*256=32768主机。
[0058] 为了在解析器功能中应用更复杂的规则,上述解析器功能必须适配为首先检查协议地址的主机标识符部分的MSB。基于MSB的值,解析器功能知晓已经用于生成协议地址的参数Sid、Eid和Hid的比特数。该知识使解析器功能能够生成正确的索引地址。在索引地址具有协议地址的长度或协议地址的主机标识符部分的情况下,解析器必须利用与所应用的规则相对应的预定义值或比特序列来替代主机标识符部分中表示主机的主机标识符的比特。然而,如果索引地址的比特长度比协议地址的比特长度或协议地址的主机标识符部分短,则解析器功能必须配置为针对两种服务器的类型用相等的比特长度来生成索引地址。协议地址中第一类型的服务器的参数Sid和Eid的参数的比特的总数量是7+5=12比特。协议地址中第二类型的服务器的参数Sid和Eid的比特的总数量是5+3=8比特。结果,在通过串接参数Sid和Eid获得的比特序列之后必须添加四个预定义的填充位,以获得对于网络中的所有处理单元具有12比特长度的唯一索引地址。
[0059] 为了在填充功能中应用更复杂的规则,填充功能知晓:0~15的服务器标识值用于寻址16个第二类型的服务器,并且65~127的服务器标识值用于寻址64个第一类型的服务器。此外,当填充功能生成简化的ARP表(针对每一个处理单元仅用表格中的一个条目)时,填充功能必须适配为针对两种类型的服务器均生成具有固定长度的索引地址。这可以用前一段落所述的方法来实现。
[0060] 该更复杂的规则允许网络的运营商来逐渐地利用具有为网络提供大量主机的能力的第二类型的服务器来逐渐替代第一类型的服务器。此外,更复杂的规则允许减小定义网络中的主机的硬件地址和协议地址之间的关系的ARP表的大小和填充ARP表所需的ARP请求的量。
[0061] 在上述示例实施例中,通过串接第一参数Sid的比特、第二参数Eid的比特以及最终第三参数Hid的比特来获得主机标识符部分。还可以用另一种顺序来串接三个参数的比特。在那种情况下,服务器中主机的主机标识符部分的MSB不同,并且服务器不形成这样一种子网,其中,服务器的所有主机具有同一子网中的协议地址。
[0062] 应该注意的是,关于互联网协议版本4(IPv4)中所需的地址解析协议描述了示例实施例。应该清楚的是,实施例可以容易地适配为适于IPv6的邻居发现协议(NDP)。
[0063] 可以用多种方式来实现本发明及其示例实施例。例如,一个实施例包括计算机可读介质或其上具有计算机可读代码的计算机程序产品,其可以由专用网络的节点内的设备的处理器(例如处理器板)执行,以执行先前所述的示例实施例方法。
[0064] 本发明提供了减少ARP表的搜索时间的机制。由于ARP表可以在网络中主机之间的任意通信之前完全填充,ARP表可以实现为存储器中的查找表。只通过一个读出操作,就可以从ARP表检索出与IP地址相对应的MAC地址。这在存在对高连接建立速率的需求时非常有用。
[0065] 此外,提供了一种在请求任意套接字连接之前填充内部或专用VLAN的ARP表的方法。稍后,当应用与意套接字连接并开始发送数据时,将没有IP分组由于ARP表中缺少IP地址和相应的MAC地址之间的关联而丢失。
[0066] 此外,提供了一种最小化ARP表大小和发送给网络的ARP请求的数量的方法。结果,对于ARP表需要更少的存储器,并避免了网络上的潜在的ARP广播风暴。
[0067] 尽管已经关于多个实施例描述了本发明,所预期的是,对于本领域技术人员,当阅读说明书和研读附图时将其备选、修改、置换和等价形式。本发明不限于所说明的实施例。可以不离开发明的想法做出改变。