CN102100041B - 基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送 - Google Patents

基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送 Download PDF

Info

Publication number
CN102100041B
CN102100041B CN200980128116.0A CN200980128116A CN102100041B CN 102100041 B CN102100041 B CN 102100041B CN 200980128116 A CN200980128116 A CN 200980128116A CN 102100041 B CN102100041 B CN 102100041B
Authority
CN
China
Prior art keywords
bag
address
network interface
departures
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200980128116.0A
Other languages
English (en)
Other versions
CN102100041A (zh
Inventor
C·玛斯普特
D·西格蒙德
V·鲁贝特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN102100041A publication Critical patent/CN102100041A/zh
Application granted granted Critical
Publication of CN102100041B publication Critical patent/CN102100041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery

Abstract

描述了一种方法,该方法涉及将出站包与第一网络接口相关联,及由该第一网络接口的标识符和该出站包的目的地地址构造搜索关键字。该方法还需要将该搜索关键字提交到路由功能部,其中所述路由功能部识别该出站包的下一跳地址。该方法还涉及将该出站包从所述第一网络接口发送到由所述下一跳地址识别出的节点。

Description

基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送
优先权请求 
本申请要求以下共同未决美国专利申请的优先权:于2008年9月30日提交的No.12/242,485;于2008年9月30日提交的No.12/242,499;于2008年9月30日提交的No.12/242,533和于2008年9月30日提交的No.12/242,548。本申请还根据35U.S.C.§119(e)要求于2008年6月8日提交的共同未决的美国临时申请No.61/059,778的优先权,该申请的公开内容通过引用并入于此。 
背景技术
图1示出了现有技术的通信地耦合到多个局域网(LAN)和广域网(WAN)的计算系统101。如图1中所看到的,LAN 103_1至103_4中的每一个都是计算系统101直接连接到的局域网。这种局域网的例子包括标准的“第2层(Layer 2)”网络,例如基于IEEE 802.3的网络(例如,以太网)和基于IEEE 802.11的网络(例如,无线/WLAN网络)。 
如图1中所绘出的,LAN 103_1至103_4中的每一个都是更大的“第3层(Layer 3)”(例如,网际协议(IP))网络中的子网。应当指出,在图1中观察到了至少两个单独的第3层网络104_1、104_2(例如,第一IP网络104_1与第二IP网络104_2独立并隔开)。计算系统还耦合到WAN 104_3和104_4(应当指出,每个第3层网络104_1、104_2也可以是WAN)。计算系统101直接连接到WAN 104_3并远程耦合到WAN 104_4。 
计算系统101包含用于通信到子网103_1至103_4和WAN 104_3和104_4的单独接口。即,接口102_1至102_4分别是用于子网103_1至103_4的接口,而接口102_5和102_6分别是用于WAN 104_3和 104_4的接口。在这里,每个接口都具有:1)与计算系统101在特定网络上的地址相对应的“端点”地址(例如,IP地址);及2)用于执行专用于该特定网络的协议的功能性。 
将包发送到特定网络是通过将有效负荷数据提交到对应接口来实现的。接口及其关联的功能性通过用适当的协议信息封装有效负荷数据以便形成用于其对应网络的包来进行响应。因此,在计算系统维持用于形成在特定网络中运输的包的功能性的意义上,接口的存在表示“网络服务”的存在。 
图1还示出了现有技术的计算系统101中的路由表110。基于出站包的目的地地址,路由表识别用于该包的合适网络接口。在子网的情况下,路由表还识别子网中该包的MAC层目的地地址。以下讨论通过例子例示了根据现有技术方法添加并使用路由表条目的方式。具体而言,图2a至2d涉及添加并使用用于子网103_1至103_4的条目的方式。图2e至2g涉及使用用于WAN 104_3和104_4的条目的方式。 
如图2a中所观察的,观察到了两个用于子网103_1和103_2的初始条目211和212,上述两个子网都是以太LAN。如图2a中所观察到的,用于LAN的条目识别出:1)作为“目的地”的LAN地址;及2)系统101中该LAN的网络标识符。例如,条目211识别出:1)作为目的地的子网地址192.168.1;及2)接口“en_1”,这是用于子网103_1的接口。 
如将紧接着下面作为例子将观察到的,一旦子网路由条目存在,计算系统就能够分解出子网内的特定目的地地址。对于图2a中所观察到的路由表状态210a,当出现在任何一个子网103_1或103_2上将包发送到特定端点目的地或者“主机”的需求时,主机的目的地地址作为查找参数用于在路由表210a的目的地地址列中执行“最长前缀匹配”搜索。因此,例如,如果出现将包发送到系统105_1(其位于子网103_1上)中、具有目的地地址192.168.1.10的端点的需求,则利用192.168.1.10作为查找参数在路由表210a中执行查找。最长前缀匹配将命中条目211(因为192.168.1是比缺省条目更深的匹配)。 
然而,计算系统101能够认识到条目211只识别出了子网(192.168.1),而没有识别出该子网上的特定主机(192.168.1.10)。同样,如在图2b中所观察到的,计算系统在路由表210b中添加了具体用于该主机地址的另一个条目213。条目213称为“路由”,因为它识别出了特定的主机或者端点目的地。新路由213的添加还与和IPv4子网相关联的ARP协议一致,因为它包括特定IP目的地地址(192.168.1.10)的附加细节,但是,至少初始地,它只复制或者“克隆”了子网网络服务条目211的接口信息(en_1)。 
对于子网中的新主机路由,例如路由条目213,计算系统101将尝试进一步分解路由213,以获得特定于该子网的附加目的地地址信息(例如,该子网中的特定MAC层地址)。具体而言,计算系统101将把ARP包投入到子网103_1中,以便识别用于子网103_1上包括IP地址192.168.1.10的系统的MAC地址。因为系统105_1具有这个端点,所以子网103_1将返回系统105_1的以太网MAC地址。 
一从子网103_1接收到用于系统105_1的MAC地址,计算系统101就将输入用于系统105_1的MAC地址(00:aa:bb:cc:dd:ee),作为条目213的下一个节点。这种状态在图2c中被观察为状态210c。因此,对表中目的地192.168.1.10的后续查找将返回用于该目的地(即,MAC地址(00:aa:bb:cc:dd:ee))的下一个节点,以及应当从其发送由计算系统发送的包以到达该目的地的接口(即,接口“en_1”102_1)。因此,路由表中(如果可应用的话)的下一个节点列针对路由表目的地列中的特定条目,识别计算系统101应当将包发送到的适当网络节点。 
如果出现将包发送到子网103_2上的系统105_2中的目的地地址192.168.2.20的需求,将重复相同的处理本身,最终得到新的路由条目214,如图2d中所观察到的,该条目指定系统105_2的MAC地址(00:11:22:33:44:55)作为用于该目的地的下一个节点,以及应当从其发送由计算系统发送的包以到达该目的地的接口(即,接口“en_2”102_2)。 
在这里,条目213、214都识别发送到子网中的接口。(具体而言,条目213识别发送到子网103_1中的接口en_1,而条目214识别发送到子网103_2中的接口en_2。)发送到子网中的接口的属性包括接合由接口创建的头信息中多个目的地地址中任何一个的能力。作为这个属性的结果,路由表中的子网表示一般包括用于同一个子网接口的多个条目/目的地。 
例如,如果在子网103_2上存在附加的端点目的地192.168.2.11、192.168.2.12和192.168.2.13,则这三个附加的条目都将在图2d中条目214的下面看到——这些IP地址中的每一个都有一个条目,指定其自己的唯一MAC地址。在这里,在整个操作过程中,期望子网接口en_1 102_1能够创建适当地包括这些MAC地址中任何一个的头信息。 
也存在用于“非子网”的接口。例子包括用于虚拟私人网(VPN)的接口和用于物理传输介质上点对点(PPP)链接(例如,调制解调器连接上的PPP或者以太网上的PPP(PPPoE))的接口。因为诸如这些的接口从其自己隔离的观点看不发送到子网中——它们不包括识别它们构造的头信息中可能目的地范围的能力,所以在路由表中它们的对应表示的结构与子网的那些不同。 
图1支持一些例子。具体而言,假设WAN_1接口102_5是PPP接口,其对应的包在到互联网(WAN_1)104_3的直接连接上发送,还假设WAN_2接口102_6是配置成将包发送到提供对VPN WAN_2104_4访问的服务器105_6的VPN接口。 
在PPP接口102_5(其可以是用于到WAN_1 104_3的调制解调器上PPP的连接或者以太网上PPP(PPPoE)的连接)的情况下,PPP接口102_5利用合适的PPP头来封装预定要在WAN_1中传输的IP包,并将它们转发到WAN_1的接入节点(未示出),该接入节点剥去PPP头并将该IP包“倒”到WAN_1中。由接口102_5创建的PPP头不能唯一地识别可能目的地地址的范围,因为所有由PPP接口102_5创建的包都直接发送到了这个接入节点。 
VPN接口102_6利用目的地地址(10.11.12.13)指定节点105_6 的IP包来封装用于在WAN_2 104_4中传输的包。即,WAN接口102_6设计成构造将到达至WAN_2的接入节点105_6的包。同样,就象PPP接口102_5,由VPN接口102_6创建的头信息不能唯一地识别可能目的地地址的范围,因为所有由VPN接口102_6创建的包都直接发送到了WAN_2接入节点105_6。 
图2e示出了用于VPN接口102_6和对应WAN_2 104_4的路由表条目215、216的存在。将在下面更具体地讨论用于PPP接口102_5和WAN_1的路由表条目。关于VPN,如在图2e中所看到的,在路由表中创建了两个条目215、216。第一个条目215列出了作为目的地的VPN接入节点105_6的IP地址(10.11.12.13),及用于到达作为计算系统101发送到的下一个节点的接入节点的子网网关106(IP地址=192.168.1.11)。第二个条目216列出了目的地地址的一部分,其将WAN_2(“17/8”)识别为目的地并将WAN_2接口102_6识别为适当的接口。 
当将这些条目提交到路由表时,发生以下操作。WAN_2具有地址“17/8”,因此去往WAN_2的包将具有以“17/8”开始的地址。例如,去往节点105_7的包将标记为17/8.1.2.3。提交这种目的地地址到路由表导致命中条目216,因为这是路由表中所列出的目的地地址中最深的匹配。条目216识别WAN_2接口102_6。同样,具有目的地地址17/8.1.2.3的出站包是由接口102_6处理的,如前面所讨论的,该接口包括利用具有识别接入节点105_6(10.11.12.13)的目的地地址的IP包的封装。在这个时候,具有目的地地址10.11.12.13的IP包已经创建了,这造成对路由表的第二次查找。 
目的地地址10.11.12.13将命中条目215,这返回网关106的标识(IP地址=192.168.1.11)。对IP地址192.168.1.11的查找返回对条目211的命中,根据条目213和214创建的方式,这造成子网103_1中用于网关106(具有MAC地址00:aa:bb:cc:dd:ff)的条目217的添加。因此,对条目192.168.1.11的查找最终返回网关106的MAC地址和en_1接口102_1的标识。因此,最终,由WAN_2接口102_6创建的、 具有VPN接入节点105_6的IP地址的出站IP包被en_1接口102_1用以太网头封装,该头指定了网关106的MAC地址。然后,以太网包被发送到子网103_1中。目的地地址指定网络“17/8”的后续包将造成相同的处理链(除了条目217不需要被创建之外,因为该条目现在已经存在于路由表中了)。以这种方式,目的地地址被持续地分解,直到目的地地址和接口不存在进一步的分解。 
图2a至2f还示出了缺省条目218的存在。在现有技术方法中,缺省条目218用作“抓住全部(catch all)”,以将目的地地址没有命中路由表中更特定条目的包路由到特定的网络中。如所观察到的,缺省条目218还识别出了用于子网103_1的网关106。因此,如在图2f中目前所观察到的,目的地地址未能更具体地匹配到另一个路由表条目的包将通过网关106被转发到网络104_1中。作为例子,考虑IP目的地地址为1.2.3.4的包。相比于在路由表中观察到的其它条目,提交这个目的地地址到路由表导致最深匹配命中缺省条目218(在现有技术方法中,缺省条目设置成0.0.0.0)。 
作为命中缺省条目218的结果,包被en_1接口用以太网头封装,该头指定了网关106的MAC地址作为目的地。而且,用于目的地地址1.2.3.4的条目219也输入到路由表中,列出了子网103_1的网关106作为下一个节点。因此,用于目的地1.2.3.4的后续提交将命中条目219,这返回网关106的IP地址(192.168.1.11),这造成在路由表中命中条目217的另一个查找。这种命中的结果是利用网关106的MAC地址封装的包从en_1到子网103_1的发送。 
然而,现有技术的一个问题在于,在任何给定的时间,路由表中都只存在一个缺省条目,这尤其导致计算系统101不能将包发送到该系统所耦合的所有网络中。例如,PPP接口102_5只有当WAN_1配置成缺省的时候才可以使用。在这里,回想VPN具有特定的数字标识符“17/8”,而WAN_1没有这种特定的数字标识符。在所讨论的本例中,WAN_1是互联网,这是具有不同数字标识符的不同网络的集合,但没有单个数字标号特定地识别互联网。因此,去往互联网的包基本 上具有随机的目的地地址(象1.2.3.4),这至少初始地只命中缺省条目。因此,在现有技术方法中,为了将包发送到网络WAN_1 104_3中,缺省条目必须从图2f中看到的状态变到图2g中看到的状态。 
在这里,图2g示出了在其变到WAN_1之后的缺省条目220(例如,以配置用于计算系统101的互联网服务)。后台处理也检测到了该变化并除去条目219(因为对于不同的网络,该条目假定是有效的)。在这里,去往具有基本随机的目的地地址(例如,IP地址=5.6.7.8)的互联网104_3的IP包的提交将命中缺省条目220,这返回PPP接口WAN_1 102_5的标识。该PPP接口将PPP头附加到IP包,并将该PPP包发送到用于WAN_1的接入节点(未示出),该接入节点剥去PPP头并将包倒到互联网/WAN_1中。在路由表中创建用于目的地地址5.6.7.8的条目221,其识别WAN_1接口。 
现有技术方法的一个问题在于,不能同时到达要求使用要到达的缺省条目的不同网络上的网络目的地。例如,如果网络104_1与互联网隔开,且到网络104_1上1.2.3.4目的地地址的另一个包被提交到图2f中所看到的路由表,则该包将被不正确地发送到互联网104_3,而不是网络104_1,因为缺省条目220不再指向网络104_1。 
另一个问题是不对称的输入/输出流。例如,通过多个接口en_1至en_3,计算系统101可以通过其到网络104_1的连接从该网络接收多个输入流。然而,由于单个缺省条目(例如,网关106),从超出其各自子网103_1至103_3到达接口en_1至en_3的输入流只能通过缺省条目被响应到相同的子网。因此,例如,接口en_1将发送到超出子网103_1至103_3之外的所有主机,尽管接口en_1、en_2和en_3都从这些主机接收包(在这里,回想每个接口都在网络104_1上具有其自己的IP地址)。因此,需要接口en_1处理超出系统101接收的流量的比例份额,从而导致潜在的瓶颈。 
另一个问题在于不能处理不同网络上相同的目的地地址。根据在路由表中添加并列出条目的方式,相同的目的地地址将总是从相同的接口发出的。 
附图说明
在附图中通过例子例示而非限制本发明,其中类似的标号指示类似的元件,附图中: 
图1示出了具有现有技术的路由表的联网实现; 
图2a至2g示出了现有技术的路由表的相关部分; 
图3示出了具有改进的路由表的联网实现; 
图4示出了改进的路由表的实施例的相关部分; 
图5示出了改进的路由表的实施例的附加相关部分; 
图6示出了改进的计算系统的实施例,其中该计算系统具有包含ifscope值和高速缓冲的路由的套接字,还示出了在执行路由查找之前确定范围值的处理; 
图7示出了在执行路由查找之前确定范围值的处理; 
图8示出了预期具有范围值的搜索关键字的路由查找处理; 
图9示出了路由表的实现和用于将条目添加到路由表的处理; 
图10示出了计算系统的实施例。 
具体实施方式
图3示出了改进的体系结构,该体系结构包括路由表310,该路由表310响应于由目的地地址构成的输入关键字320和适当出站接口的指示,而提供下一个节点跳的信息。因此,与图2a至2g中只接收目的地地址作为查找关键字的现有技术路由表相比,改进的路由表310使用目的地地址和特定接口的标识两者作为查找关键字320。因为改进方法的查找关键字320包括比现有技术方法的查找关键字更多的信息,如以下更具体解释的,所以图3的计算系统301能够实现优于现有技术系统的多个可能的改进,其中例如有,允许正确处理具有变化的目的地地址空间的多个网络的多个缺省条目、对称的输入/输出流及对不同网络中相同的目的地地址的正确处理。在下面更具体地描述这些特征中的每一个。 
为了提供包括目的地地址和适当出站接口的输入关键字320,在图3中绘出了位于路由表310“之上”的附加功能层330,该层具有考虑到出站包被发送的特定条件而确定正确出站接口的责任。当确定了正确的出站接口时,其标识基本上与出站包的目的地地址一起提供给路由表310。功能层330可以按照任意多种方式实现。 
例如,根据第一种“纯集中式”方法,计算系统301中的应用或者服务配置成请求功能层330考虑当前组条件而确定用于出站包的正确出站接口。根据第二种“纯分布式”方法,计算系统301中的应用或者服务写成自动地确定,对于它们发送或处理的出站包而言哪个出站接口是正确的。在这两种极端之间存在调用集中式与分布式方法的混合的体系结构的连续。 
注意图3中的以下特征;1)主机305_1和305_2连接到同一网络304_1,接口302_1至302_3连接到该网络,但主机305_1和305_2只能通过缺省条目到达;2)子网303_1至303_3是与网络304_2不同的网络304_1的一部分,其中接口302_4连接到网络304_2;3)分别连到不同网络304_1和304_2的主机305_3和3-5_4碰巧具有相同的目的地地址。这些特征关于以下马上描述的改进方法的一些潜在优点。其后讨论用于建立路由表内容的各种协议/方法的讨论。图4示出了用于图3的示例性实施例的路由表实施例410。 
对称的输入/输出通信流
通过分析系统301与主机305_1和305_2之间的通信交换,该改进方法参与位于本地子网之外的主机的对称通信交换的潜能变得很显然。如以上刚提到的,主机305_1和305_2连接到同一网络304_1,接口302_1至302_3连接到该网络304_1,但主机305_1和305_2中没有一个位于计算系统301直接耦合到的子网上。因此,主机305_1和305_2都必须通过缺省条目才能到达。 
假定主机305_1将包发送到与接口302_1关联的IP地址,而主机305_2将包发送到与接口302_2关联的IP地址。假定计算系统301 能够接受并继续与主机305_1和305_2的相应会话,应当指出,通过其单个缺省条目的现有技术方法将强制从系统301发送到主机305_1和305_2的所有出站包都必须在同一接口和单个缺省条目识别出的子网网关(例如,子网303_1上的网关306)上发送。 
相反,改进设计的功能层330可以配置成“跟踪”通信会话请求或者包到达哪个接口,并给出用于这种通信会话的出站包在它们对应的请求/包到达的同一接口(即,用于要发送到主机305_1的包的接口302_1,以及用于要发送到主机305_2的包的接口302_2)上发送的决定。因此,当计算系统301准备用于主机305_1和305_2两者的出站包时,功能层330将确定接口302_1对于要发送到主机305_1的包是优选的,而接口302_2对于要发送到主机305_2的包是优选的。 
因此,将针对要发送到主机305_1的包建立第一搜索关键字,该搜索关键字是由主机305_1的目的地地址和接口302_1的标识构造的。类似地,将针对要发送到主机305_2的包建立第二搜索关键字,该搜索关键字是由主机305_2的目的地地址和接口302_2的标识构造的。第一搜索关键字将命中图4的路由表410中的条目411(它在搜索列中具有主机305_1的目的地地址和接口302_1的标识),而第二搜索关键字将命中路由表410中的条目412(它在搜索列中具有主机305_2的目的地地址和接口302_2的标识)。条目411将用于子网303_1的网关路由器306的MAC地址识别为下一跳,而条目412将用于子网303_2的网关路由器307的MAC地址识别为下一跳。因此,用于主机305_1的包将被发送到网关路由器306,而用于主机305_2的包将被发送到网关路由器307。 
指出条目411和412初始创建的方式是有关的。对于条目411,用于主机305_1的初始出站包创建了包括主机305_1的目的地地址(1.2.3.4)和接口en_1的标识的初始搜索关键字。这造成最深匹配命中用于en_1接口的缺省条目401。因此,类似于现有技术处理,创建初始列出子网303_1网关的IP地址作为下一个节点(192.168.1.11)的新条目411。通过ARP处理,网关306的IP地址在条目411的下 一个节点列中被网关406的以太网MAC地址替代。如图4中所给出的,这是条目411的形式。 
条目412是以类似的方式创建的,但是应当指出,由目的地5.6.7.8和en_2构造的搜索关键字的初始命中是用于子网303_2的缺省条目402。这导致用于子网303_2的网关307被识别为用于条目412的下一个节点。因此,因为子网303_1和303_2都在路由表中具有相应的缺省条目,所以基本上两个接口en_1 303_1和en_2 303_2都可以支持基本上随机的目的地地址空间的发送。 
应当指出,如果来自主机305_1和305_2的第二组包到达关于前一个例子颠倒的接口(即,主机305_1将包发送到接口302_2的IP地址,而主机305_2将包发送到接口302_1的IP地址),则图4的路由表410能够保持到达/离开的对称性。在这种情况下,利用相同的接口跟踪算法,功能层330将把接口302_2识别为从其将包发送到主机305_1的适当接口,还将把接口302_1识别为从其将包发送到主机305_2的适当接口。对应的搜索关键字将命中用于要发送到主机305_1的包的条目413和用于要发送到主机305_2的包的条目414。因此,用于主机305_1的包将发送到子网303_2中,到达网关路由器307,而用于主机305_2的包将发送到子网303_1中,到达网关路由器306。条目413和414将以类似于条目411和412的方式创建。 
其它例子证明了本路由方法的多样性。考虑(一种可能不太可能的)场景,其中位于计算系统301上的两个应用分别绑定到接口en_1(302_1)和en_2(302_2),而且应用在网络104上向彼此发送包(例如,第一个应用使得包从en_1发送到en_2,而第二个应用使得包从en_2发送到en_1)。对初始包的发送将使得条目403、404添加到路由表中(即,条目403是用于从en_1发送到en_2的包,而条目404是用于从en_2发送到en_1的包)。 
作为本路由方法多样性的进一步指示,如果两个不同的接口耦合到同一子网,则自/至该子网的输入/输出通信仍然可以通过与上述原理一致的接口保持对称。即,如果两个接口具有相同的IP子网地址, 则跟踪算法将识别出正确的接口(即,被响应的包在其上接收的接口),该接口又触发路由表中正确的最深匹配。即,尽管路由表包含形式为〔子网_1.x,接口_2〕的其它条目,但是形式为〔〔子网_1.目的地〕,接口_1〕的搜索关键字将命中形式为〔子网_1.x,接口_1〕的条目。 
不同网络上相同的目的地地址
回想现有技术方法,只有单个缺省条目不能够正确地发送用于具有相同目的地地址的不同的、隔离开的网络的包。图3的改进方法不受这种缺陷的困扰。如图4中所观察到的,路由表410包括具有相同IP目的地地址但用于不同网络304_1、304_2的多个条目415、417。在这里,当相同目的地地址的多个实例存在时,功能层330通过其对特定接口的标识而基本上选择正确的网络。通过显示用于耦合到不同网络的主机的完全分解的目的地地址,图5的路由表510清楚地证明了这种能力。具体而言,如以上所讨论的,条目411至416是用于网络304_1上的目的地,而条目417是用于网络304_2上的目的地3054。应当指出,条目415具有与条目417相同的目的地地址(192.168.1.10)。 
可到达性
回想现有技术中的另一个问题是不能够到达目的地地址空间可构想地覆盖广范围的数值的多于一个网络。即,缺省条目用作捕捉广泛变化的目的地地址值的机制,但是,因为现有技术方法只使用单个缺省条目,所以只有单个网络可以识别为处理广范围的目的地值。具体而言,给出一个例子,其中用于网络104_1的接口或者用于网络104_3的接口102_5可以被分配缺省条目。网络104_1是大IP网络,而网络104_3是互联网。用于WAN_1的接口102_5是使用调制解调器或者以太网网络作为底层物理介质的PPP接口。基本上,问题显示为不能同时超出子网103_1至103_3在网络104_1上和互联网104_3上发送包,这是因为单个缺省条目只能分配给这些网络中的一个。 
图5示出了可以位于图4中给出的路由表中的附加条目。具体而 言,应当指出,不识别特定接口并将用于WAN_1的接口302_5作为适当接口返回的全局或者“无范围(unscoped)”缺省条目501的存在。这种配置基本上指示要用于互联网的任何目的地,或者可以为其识别出合适的网络/接口的任何目的地,具有不添加接口信息的对应搜索关键字。这种搜索关键字将命中条目501,使得对应的包发送到互联网304_3中。然而,同时,至少通过图4的缺省条目401和402,出站包仍然可以到达网络304_1上的任何目的地。以这种方式,广范围的数字目的地地址可以同时到达多于一个网络。 
条目502和503对应于为VPN网络304_4(WAN_2)添加的条目,其中VPN网络304_4对应于背景技术中所讨论的VPN WAN_2104_2。通常,VPN通知系统301要在VPN网络304_4中使用的路由/地址。根据一个实施例,计算系统301将这些路由与去往VPN的的包将要发送通过的接口链接。因此,将创建包括该VPN的数字标识符(“17/8”,其存在于路由本身中)和接口的搜索关键字。该搜索关键字将命中条目503。可选地,如果计算系统识别出该VPN的数字标识符在其管理的目的地地址值当中是唯一的(即,没有其它网络预期以“17/8”开始的目的地地址),则条目503可以保持“无范围”(即,不包括接口标识符),而且,路由无任何附加接口信息地提交到路由表。在这种情况下,条目503不包括接口信息。 
以任何一种方式,对条目503的命中返回WAN_2接口302_6的标识。WAN_2接口嵌入有VPN接入节点305_6的标识(IP地址=10.11.12.13)和去往该VPN的包将从其发送的接口的标识(en_1302_1)。因此,WAN_2接口利用目的地地址指定10.11.12.13的IP包封装用于VPN的包,并将包括这个IP地址和en_1接口的标识的搜索关键字提交到路由表。这导致命中条目502,这将返回子网网关的IP地址(192.168.1.11)和包将从其发送的、到该子网的对应接口(en_1)。在这个特定的例子中,条目502中的下一个节点信息的返回将用于在路由表中执行将命中条目420的查找。这使得出站包利用网关306的MAC地址封装并从接口en_1发送。 
确定搜索关键字的接口分量
图6绘出了涉及如下处理的相关特征,通过该处理,可以从路由表(例如图4的路由表)“查找”路由条目。图6示出了具有耦合到网络660的接口650(I/F_1)的计算系统601。通过网络彼此耦合的一对计算系统之间的通信一般是通过在由这两个系统建立的连接或会话上包的交换来实现的。一种普通的方法是为每个系统内部地建立“套接字”,该套接字表示会话/连接(例如,软件构造和/或程序代码)。在这些系统中的一个的内部,用于在连接上传输的包被参与到另一个系统的实质通信的应用递送到套接字。套接字调用合适的联网服务,例如传输层服务和联网层服务。 
图6绘出了计算系统601中用于通过接口650实现连接/会话的示例套接字620。特别地,接口650可以具有一个或多个关联的网络地址650(例如,IP地址),其中每个这种网络地址都是网络660上认可的源/目的地端点。在操作中,初始地,出站包被提供给套接字620。套接字620调用传输层服务(例如,传输通信协议(TCP))并识别出站包上传输层头信息的建立。接下来,套接字(或者有可能是传输层服务)调用联网层的联网层服务。 
联网层服务识别包的正确的下一跳地址,并利用例如合适的第3层(例如,网际协议(IP))和/或第2层(例如,以太网)目的地头将包打包。如以上详细讨论的,本方法预期使用由包的目的地和出站接口标识符构造的路由表搜索关键字。路由表(在图4中观察到其一个例子)接受这种具体的搜索关键字构造,并返回用于出站包的下一跳目的地信息及系统601的应当从其发送包的出站接口。 
根据一种方法,元数据可以与指定要在搜索关键字中识别的接口的套接字620(或者通信会话/连接的其它表示)关联(例如,包括在其中)。例如,图6示出了套接字主体中的“ifscope”值640和高速缓冲的路由630的存在。该ifscope值是接口的标识符。高速缓冲的路由是已经存储在套接字630中的先前路由表查找的结果(即,下一跳目的 地和出站接口标识)。在实践中,当出站包被提供给用于出站发送的套接字时,这些项630、640中的一个、两个或者没有一个存在于套接字620中。如以下关于图7进一步更具体解释的,ifscope值640或者高速缓冲的路由630的出站接口部分可以用于设置搜索关键字的接口分量(下文中称为搜索关键字或者查找的“范围”值)。 
不过,图6示出了高级的处理流程。根据图6的处理流程,当联网层被调用663时,确定664用于路由表搜索关键字的适当范围值。如关于图7将看到的,依赖于条件,范围值可以:1)是空值(即,没有指定接口);2)指定特定的接口(例如,通过基于ifscope 640或者高速缓冲的路由630的接口分量);3)指定主接口。一旦确定664了范围值,搜索关键字就可以由出站包的目的地地址和该范围值构造,并执行665对路由表的查找。然后,包从计算系统601从由查找表返回的接口发送。 
图7示出了用于确定范围值的方法。根据图7的流程图,其中保持ifscope和高速缓冲的路由的元数据还可以存储标志,该标志在被设置时指示高速缓冲的路由是“有效的”。即,高速缓冲的路由的接口分量对用于建立范围值是安全的。因此,根据图7的处理,如果标志被设置701,则高速缓冲的路由的接口分量用于设置范围值702。如果该标志没有设置,则下一个查询703是套接字是否包含ifscope值640(如果不包含,则该ifscope值就被称为是“空的”)。 
ifscope值是指定用于通信会话或连接的优选出站接口的方便途径。例如,如果通信会话或连接是准永久性的(例如,在计算系统与其通信伙伴之间设置准永久性的“管道”),则识别通信通过其发出的出站接口的ifscope值可以写到套接字或者对应的元数据中。作为另一个例子,通过将应用配置成向特定套接字提交包并将ifscope值写到识别接口的套接字中,由应用发出的出站包可以“绑定”到特定的接口。作为另一个例子,启动与计算系统的通信会话/连接的初始接收的包可以通过特定的套接字来处理。然后,在套接字中识别在其上接收包的接口(例如,具有特定的ifscope值)。其后,用于通信会话/连接的任何 出站包都被指向套接字,由此将任何这种出站包绑定到适当的接口。 
根据图7,如果ifscope值非空(即,存在ifscope值),则针对与出站包的源IP地址相匹配的IP地址搜索由该ifscope值识别的接口。在这里,回想用于特定网络的一个或多个IP地址可以与特定接口关联,使得发送至/自网络上的这些IP地址中的一个的包将流经该接口。因此,处理704基本上尝试确认由ifscope值识别的接口具有出站包应该从其发送的关联IP地址。 
如果不存在匹配,则包被丢弃,且套接字中的任何高速缓冲的路由也被丢弃706。如果存在匹配,则用于查找搜索关键字的范围值设置成与由ifscope值识别出的接口相对应的值705。接下来,如果套接字不包含高速缓冲的路由(r=空)707,则处理结束708。因为套接字不包含高速缓冲的路由,所以紧接下来的路由表查找的结果将作为高速缓冲的路由存储在套接字中。由此,可以想到,当下一次出站包被提供给套接字时,对询问707的回答将是“否”(即,现在存在高速缓冲的路由)。然后,检查高速缓冲的路由,以找到与出站包的源地址相匹配的IP地址709。即,验证路由表输出的有效性。如果高速缓冲的路由的接口包含与出站包的源IP地址相匹配的IP地址,则将标志设置710成指示高速缓冲的路由是有效的(由此,当下一次给出用于这种会话/连接的包时,范围值确定处理将在步骤702处终止,从而避免耗时的搜索处理704、709)。 
如果不存在匹配,则高速缓冲的路由被丢弃711且处理结束713。应当指出,处理709、711还将除去用于“新的”或者不同的连接的套接字中较早的、现在已经变旧的高速缓冲的路由。即,如果套接字用于新连接且以新的ifscope值更新,但较早的——现在不合适的——高速缓冲的路由没有从套接字中除去,则当用于新连接的包第一次提供给该套接字时,对询问707的回答将是“否”,而且处理709和711将丢弃旧的高速缓冲的路由。然后,来自路由表查找的结果将高速缓冲在套接字中,使得用于连接的新包触发处理707和709,并希望标志可以得到设置710。 
返回处理703,应当指出,有可能套接字不能简单地利用ifscope值配置。如果套接字不包含ifscope值703或者高速缓冲的路由714,则范围值设置成空,且处理完成715。在这种情况下,如以下将更具体解释的,路由表查找搜索关键字的接口分量设置成空值。如果ifscope为空但存在高速缓冲的路由,则进行检查自从高速缓冲的路由嵌在套接字中起是否有路由表变化的询问716。如果路由表没有变化,则范围设置成反映高速缓冲的路由的接口分量的值717。于是,检查由高速缓冲的路由识别的接口,以找出与出站包的源IP地址相匹配的IP地址719。 
如果存在匹配,则设置标志721且处理完成722。如果不存在匹配,则持续地搜索计算系统中的不同接口,来查找具有包的源IP地址的接口723。如果没有找到这种接口,则包被丢掉,且高速缓冲的路由被丢弃724。如果找到了这种接口,则范围值改变成识别通过处理723找到的接口的值。在这个时候,处理完成,然而,后续路由表查找的结果被高速缓冲在套接字中。 
返回到处理716,如果自从高速缓冲的路由嵌在套接字中起存在路由表变化,则将范围值设置成识别主网络(如果存在的话)的值。然后,检查主接口,以查看其是否具有与出站包的源IP地址相匹配的关联IP地址。如果有,则设置标志727且处理完成728。如果没有,则执行处理723和如上所述的后续处理。 
路由表查找
返回到图6,在确定了范围值644以后,利用由目的地地址和该范围值构造的搜索关键字执行路由查找665。图8示出了用于执行路由查找的处理的实施例。根据图8的处理,初始地执行901“无范围”路由查找。如以上关于图5提到的,并且如以下关于图9进一步再次讨论的,路由表可以包括“有范围”和“无范围”条目两者。有范围条目是其对应搜索关键字包括真正接口分量的条目。相反,无范围条目是其对应搜索关键字包括空接口分量的条目。因此,具有非空接口值的 搜索关键字将匹配到有范围条目,而具有空接口值的搜索关键字将匹配到无范围条目。根据一种实现,两个不同的值“r”和“r0”都设置成无范围路由查找的结果。 
如果搜索关键字的接口分量是空且没有主网络,则无范围查找结果(r或者r0)将作为最终结果返回802。如果搜索关键字的接口分量设置成空且有主网络,则范围值设置成对应于主网络接口的值803。在这里,“主”网络的接口对应于全局缺省路由的接口。因此,在图4和5的例子中,主网络接口对应于WAN_1接口(见图5的条目501)。在搜索关键字的接口分量没有设置成空的情况下,进行询问,以查看无范围查找801是否返回空值。如果无范围路由查找804没有产生空结果(即,r、r0包含目的地地址和出站接口)且范围值是空805,则范围值被重新设置成对应于r、r0的接口分量的值806。相反,如果无范围路由查找804没有产生空结果(即,r、r0包含目的地地址和出站接口)且范围值非空805,则r0值被清空,只留下r 807。 
无论如何,非空范围值的存在都使得要执行有范围查找808。结果输入到r中,因此,如果r0仍然存在,则同时存在r值(有范围路由结果)和r0值(无范围路由结果)。如果有范围查找结果r为空809,则r的值设置成等于r0(因此r=r0)811。如果有范围结果r非空809,则对r的具体性相对于r0的具体性进行询问810。例如,第2层的结果(例如,以太网子网上的MAC地址)被认为比第3层的结果(例如,IP地址)更具体。如果r不比r0更具体,则r设置成等于r0。接下来,如果r比r0更具体,则对r的状态进行询问。如果r非空,则处理完成817且r作为路由查找结果返回。 
如果r为空,则搜索关键字的目的地分量设置成缺省值(0.0.0.0)并执行另一个查找813,以便产生r的新值。如果r为空814,则该处理完成且路由查找将空作为最终的结果返回817。如果结果不是空,则将结果的接口分量与范围值进行比较815。如果它们匹配,则处理完成且r作为查找结果返回。如果它们不匹配,则r设置成空,处理完成且空值作为查找结果返回。 
路由表建立
图4公开了路由表的一种实施例,其目的是容易地描述可以接收由目的地和接口标识符组成的搜索关键字的路由表。图9示出了这种路由表的另一种实施例。图9的路由表表示900是由“重新布置的”出现在图4和图5中的条目组成的。 
参考图9,路由表的“顶部”901包括图5的“全局”缺省条目501。回想该全局缺省条目可以用作“抓住全部”,来找到在路由表中没有条目但仍然可以到达的特定目的地。例如,全局缺省条目901可以识别通过其可以到达互联网的出站接口(因为互联网支持巨大数量的、路由表不能全部列出来的目的地地址)。在操作中,路由表返回搜索列分量具有与搜索关键字的“最长前缀匹配”的条目的下一跳和出站接口。因此,在一个实施例中,缺省条目901具有0.0.0.0搜索列目的地分量,因为相对于在表中其它地方列出的特定地址,基本上随机的目的地地址(例如与互联网关联的那些地址)将呈现出与0.0.0.0的最接近匹配。 
子网将两个条目引入到表中,用于子网的“缺省”条目和用于子网的“子网条目”。如图9中观察到的,对于子网192.168.1,条目(401)对应于缺省条目,而条目920对应于子网条目。在这里,图9的缺省条目(401)基本上对应于图4的缺省条目401。同样,图9中用于子网192.168.1的子网条目920在图4中表示为恰在缺省条目之上。对于子网192.168.2,在图9中也观察到类似的缺省和子网条目(402)、930的集合。 
然而,比较图4和9,应当指出,子网缺省条目(401)、(402)——就象全局缺省条目901——是利用0.0.0.0的目的地值表示的。路由表物理上以数字顺序列出了条目。即,具有较小数值的搜索列条目将位于具有较大数值的搜索列条目之上。因为缺省条目901、(401)、(402)在表中具有最小的数字目的地值(0.0.0.0),所以它们位于表的顶部。全局缺省条目901是“无范围的”(即,在其搜索列中没有关联的接口值),而子网缺省条目(401)和(402)是“有范围的”。即, 条目(401)在其搜索列中具有接口en_1的标识符,而条目(402)在其搜索列中具有接口en_2的标识符。 
根据一个实施例,多个“排序策略”应用到表中的条目,使得它们在表中的次序正确地实现。如上面刚刚提到的,第一种排序策略是基于搜索列中的数值来对条目进行排序。第二种排序策略是,在具有相同目的地的条目集合中,将这些条目中的一个留作无范围的,而剩余条目作为有范围的。这两种策略都可以在图9的缺省条目901、(401)、(402)中看到。 
关于第一种策略,条目901在其搜索列中没有接口分量,因此数值上小于条目(401)和(402)。条目(401)数值上小于条目(402),因为假定接口分量“en_1”数值上小于接口分量“en_2”。关于图9中看到的剩余表条目,可以看到相同的原理。 
关于第二种排序策略,每个条目都具有0.0.0.0的目的地值。因此,根据该策略,有一个必须选择作为无范围条目。在一个实施例中,选择无范围条目的方式如下。首先,基于网络服务的类型,应用“自动”排序策略。根据一种方法,自动排序策略给网络服务排列,将更倾向于互联网连接或者以别的方式连接到具有广范围潜在目的地地址的网络的网络服务排列得高于不太倾向于互联网连接或者支持大目的地地址范围的网络服务。例如,以下自动排序策略是这种方法的标志:1)基于串行的PPP(最大倾向于互联网连接);2)以太网;3)Firewire;4)无线的(最小倾向于互联网连接)。 
然而,在自动排序策略之上和之外,特定的排列标准也可以明确地应用到任何路由。例如,根据一个实施例,任何路由都可以标记为以下一个:1)“排序第一(sort first)”;2)“排序最后(sort last)”;3)“从来无范围”。回顾缺省条目901、(401)和(402),显然条目901已被选择为在条目(401)和(402)之上的无范围条目。以下任何一个场景都可以建立这种排序次序: 
1)条目901的(通过接口WAN_1的)网络服务被自动排序策略认为比条目(401)和(402)的网络服务(以太 网)具有是互联网连接的更大倾向——而且——如果有的话,明确的排列标记(第一、最后、从来无范围)不会推翻自动排序(即,条目(401)和(402)中任何一个都不会排列为“第一”,而且条目901不会排列为“排序最后”或者“从来无范围”);。 
2)条目901的网络服务被排列为“排序第一”; 
3)条目(401)和/或(402)的网络服务被排列为“排序最后”或者“从来无范围”;等等。 
当具有空范围的搜索关键字被提供给路由表时,只有条目901(表中看到的唯一一个无范围条目)在针对最长前缀匹配搜索的条目集合内。当范围为空时,图9的路由表900中看到的剩余条目不被搜索,因为剩余条目具有在其各自搜索列条目中的接口分量。即,无范围的搜索关键字将只返回无范围的搜索结果。然而,在实践当中,多个无范围的条目是可能的,因为可以存在目的地分量相同但接口分量不同的附加实例(例如,图4的条目对411和413、图4的条目对412和414,等等)。以上所述的相同排序标准将应用到这种条目(例如,条目411和413中的一个将是无范围的)。 
在操作中,图9的路由表就象图4中所看到的表一样使用。即,例如,无范围、基本上随机的互联网目的地将具有对条目901的最深匹配,并且因此被WAN_1处理。作为另一个例子,1.2.3.4的目的地和en_1的范围将具有对条目(401)的最深匹配,这将返回用于子网192.168.1(303_1)的网关(192.168.1.11),这造成将对条目(420)具有最深匹配的第二次有范围查找。用于子网192.168.1(303_1)的“新”目的地(例如,范围为en_1的192.168.1.9)将具有对条目920的最深匹配,这将造成对子网192.168.1(303_1)中的地址询问,以查找该子网的MAC层地址及要插入到表中的新条目(恰在条目(415)之上)。应当指出,如果存在各自都分别配置成在子网192.168.1和192.168.2上的附加接口,则192.168.1和192.168.2将都有无范围和有范围条目。 
图9还示出了填充路由表的方法。根据图9的方法,当新条目要添加到表中时,“初始”位置由目的地901来识别950。例如,如果目的地0.0.0.0的另一个缺省条目要添加到表中,则条目901、(401)、(402)的区域将初始地被识别为用于条目插入的正确区域。然后,将应用排序标准960。例如,如果新条目被标记为“排序第一”,则它将替代位于表顶部的条目901。 
最后,附加评论。回想图7中可以搜索通过接口以便发现它支持什么源地址的讨论(例如,图7的方框704)。在一个实施例中,路由的源IP地址嵌到表的路由条目中。以这种方式,搜索可以对返回其所支持的全部源IP地址的特定接口执行。 
结束评论
图10示出了一种可以与本发明一起使用的典型计算系统(或者“计算机系统”)的例子。应当指出,尽管图10例示了计算机系统的各个部件,但它不是要代表细节与本发明没有密切关系的任何特定的体系结构或者互连部件的方式。还应当理解,个人数字助理(PDA)、蜂窝电话、手持式计算机、媒体播放器(例如,iPod)、娱乐系统、组合这些设备的方面或功能的设备(例如,在一种设备中与PDA和蜂窝电话组合的媒体播放器)、另一种设备中的嵌入式处理设备、网络计算机、消费者电子设备及具有更少或可能更多部件的其它数据处理系统也都可以与本发明的一个或多个实施例一起使用或者用于实现本发明的一个或多个实施例。图10的计算机系统可以是例如来自Apple公司的Macintosh计算机。该系统可以在编程或者编译或者执行所述软件的时候使用。 
如图10所示,形式为数据处理系统的计算机系统45包括总线51,该总线51耦合到处理系统47、易失性存储器49和非易失性存储器50。处理系统47可以是来自Intel的微处理器,它可以耦合到可选的高速缓冲存储器48。总线51将这各个部件互连到一起,还将这些部件互连到显示控制器和显示设备52,还互连到诸如输入/输出(I/O)设备 53的外围设备,其中输入/输出设备53可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域中已知的其它设备。一般来说,输入/输出设备53通过输入/输出控制器耦合到系统。易失性存储器49一般实现为动态RAM(DRAM),它需要不间断的供电,以便刷新或者维护存储器中的数据。非易失性存储器50一般是甚至在系统除去供电后也能维持数据(例如,大量的数据)的磁性硬驱、闪存半导体存储器、或者磁光盘驱动器或者光驱或者DVD RAM、或者其它类型存储器系统。一般来说,非易失性存储器50也将是随机存取存储器,尽管不要求如此。尽管图10显示非易失性存储器50是直接耦合到数据处理系统中剩余部件的本地设备,但应当理解,本发明可以使用远离该系统的非易失性存储器,例如通过诸如调制解调器或者以太网接口的网络接口耦合到该数据处理系统的网络存储设备。总线51可以包括通过本领域中众所周知的各种桥、控制器和/或适配器彼此连接的一条或多条总线。 
根据本说明书,很显然本发明的各个方面可以至少部分地在软件中体现。即,该技术可以在计算机系统或者其它数据处理系统中执行,响应于其处理器(例如,微处理器),执行包含在诸如存储器(例如,存储器49和/或存储器50)的机器可读存储介质中的指令序列。在各种实施例中,硬连线的电路可以和软件指令组合使用来实现本发明。即,该技术不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定的源。此外,为了简化描述,贯穿本说明书,各种功能和操作都描述为由软件代码执行或者造成。然而,本领域技术人员将认识到,这种表达的意思是由处理器(例如,处理系统47)执行代码而产生功能。 
需要指出的是,尽管以上的路由表场景是关于单个计算系统描述的,但利用在此所述的路由技术配置的多个这种计算系统可以耦合到一个或多个网络,而且,对于利用在此所讨论路由技术的每个这种系统,参与彼此的通信。 
在前面所述的说明书中,本发明已经参考其特定的示例实施例进 行了描述。很显然,在不背离由以下权利要求所阐述的本发明的更广的主旨与范围的情况下,可以对其进行各种修改。因此,说明书和附图应当认为是例示性的,而不是约束性的。 

Claims (20)

1.一种由计算系统执行的方法,包括:
将第一出站包与所述计算系统的第一网络接口相关联;
由所述第一网络接口的标识符和所述第一出站包的目的地地址构造搜索关键字,其中所述第一出站包的目的地地址是代表该第一出站包的预期接收方的端节点的网络地址;
将所述搜索关键字提交到路由功能部,所述路由功能部识别所述第一出站包的下一跳地址,包括基于该搜索关键字作为输入,利用路由表中的路由功能进行搜索以获得所述下一跳地址作为输出;及
将所述第一出站包从所述第一网络接口发送到由所述下一跳地址识别出的节点,其中由所述下一跳地址识别出的节点位于所述计算系统与代表所述预期接收方的所述端节点之间。
2.如权利要求1所述的方法,其中将第一出站包与所述计算系统的第一网络接口相关联包括:
在所述第一网络接口上接收入站包;
识别出所述入站包与所述第一出站包是同一通信会话的部分。
3.如权利要求1所述的方法,其中将第一出站包与所述计算系统的第一网络接口相关联包括:
将应用与所述第一网络接口相关联;及
从所述应用产生所述第一出站包。
4.如权利要求1所述的方法,还包括:
将第二出站包与第二网络接口相关联;
由所述第二网络接口的标识符和所述第二出站包的目的地地址构造第二搜索关键字;
将所述第二搜索关键字提交到所述路由功能部,所述路由功能部提供所述第二出站包的下一跳地址;及
将所述第二出站包从所述第二网络接口发送到由所述第二出站包的下一跳地址识别出的第二节点。
5.如权利要求4所述的方法,其中所述第一网络接口和第二网络接口与同一网络连接。
6.如权利要求5所述的方法,其中所述第一网络接口和第二网络接口与所述网络中的同一子网连接。
7.如权利要求4所述的方法,其中所述第一网络接口和第二网络接口与不同的网络连接。
8.如权利要求7所述的方法,其中所述第一出站包的目的地地址与所述第二出站包的目的地地址相同。
9.如权利要求1所述的方法,还包括:
对于第二出站包,构造包括所述第二出站包的目的地地址但不包括任何网络接口标识符的第二搜索关键字;
将所述第二搜索关键字提交到所述路由功能部,所述路由功能部提供所述第二出站包的下一跳地址和用于所述第二出站包的第二网络接口;及
将所述第二出站包从所述第二网络接口发送到由所述第二出站包的下一跳地址识别出的第二节点。
10.如权利要求9所述的方法,其中所述第二出站包具有指定互联网上的地址的目的地地址。
11.一种数据处理系统,包括:
用于将第一出站包与所述数据处理系统的第一网络接口相关联的装置;
用于由所述第一网络接口的标识符和所述第一出站包的目的地地址构造搜索关键字的装置,其中所述第一出站包的目的地地址是代表该第一出站包的预期接收方的端节点的网络地址;
用于将所述搜索关键字提交到路由功能部的装置,所述路由功能部识别所述第一出站包的下一跳地址,包括基于该搜索关键字作为输入,利用路由表中的路由功能进行搜索以获得所述下一跳地址作为输出;及
用于将所述第一出站包从所述第一网络接口发送到由所述下一跳地址识别出的节点的装置,其中由所述下一跳地址识别出的节点位于所述数据处理系统与代表所述预期接收方的所述端节点之间。
12.如权利要求11所述的系统,其中用于将第一出站包与所述数据处理系统的第一网络接口相关联的装置包括:
用于在所述第一网络接口上接收入站包的装置;
用于识别出所述入站包与第一出站包是同一通信会话的部分的装置。
13.如权利要求11所述的系统,其中用于将第一出站包与所述数据处理系统的第一网络接口相关联的装置包括:
用于将应用与所述第一网络接口相关联的装置;及
用于从所述应用产生所述第一出站包的装置。
14.如权利要求11所述的系统,还包括:
用于将第二出站包与第二网络接口相关联的装置;
用于由所述第二网络接口的标识符和所述第二出站包的目的地地址构造第二搜索关键字的装置;
用于将所述第二搜索关键字提交到所述路由功能部的装置,所述路由功能部提供所述第二出站包的下一跳地址;及
用于将所述第二出站包从所述第二网络接口发送到由所述第二出站包的下一跳地址识别出的第二节点的装置。
15.如权利要求14所述的系统,其中所述第一网络接口和第二网络接口与同一网络连接。
16.如权利要求15所述的系统,其中所述第一网络接口和第二网络接口与所述网络中的同一子网连接。
17.如权利要求14所述的系统,其中所述第一网络接口和第二网络接口与不同的网络连接。
18.如权利要求17所述的系统,其中所述第一出站包的目的地地址与所述第二出站包的目的地地址相同。
19.如权利要求11所述的系统,还包括:
用于对于第二出站包构造包括所述第二出站包的目的地地址但不包括任何网络接口标识符的第二搜索关键字的装置;
用于将所述第二搜索关键字提交到所述路由功能部的装置,所述路由功能部提供所述第二出站包的下一跳地址和用于所述第二出站包的第二网络接口;及
用于将所述第二出站包从所述第二网络接口发送到由所述第二出站包的下一跳地址识别出的第二节点的装置。
20.如权利要求19所述的系统,其中所述第二出站包具有指定互联网上的地址的目的地地址。
CN200980128116.0A 2008-06-08 2009-06-03 基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送 Active CN102100041B (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US5977808P 2008-06-08 2008-06-08
US61/059,778 2008-06-08
US12/242,533 US8189587B2 (en) 2008-06-08 2008-09-30 Routing table lookup algorithm employing search key having destination address and interface component
US12/242,533 2008-09-30
US12/242,548 2008-09-30
US12/242,485 2008-09-30
US12/242,485 US8064455B2 (en) 2008-06-08 2008-09-30 Outbound transmission of packet based on routing search key constructed from packet destination address and outbound interface
US12/242,499 2008-09-30
US12/242,499 US7940768B2 (en) 2008-06-08 2008-09-30 Source address based routing process
US12/242,548 US8265078B2 (en) 2008-06-08 2008-09-30 Routing table build algorithm for a routing table that uses a search key constructed from packet destination address and outbound interface
PCT/US2009/046182 WO2009152017A1 (en) 2008-06-08 2009-06-03 Outbound transmission of packet based on routing search key constructed from packet destination address and outbound interface

Publications (2)

Publication Number Publication Date
CN102100041A CN102100041A (zh) 2011-06-15
CN102100041B true CN102100041B (zh) 2014-10-29

Family

ID=41400263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980128116.0A Active CN102100041B (zh) 2008-06-08 2009-06-03 基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送

Country Status (5)

Country Link
US (7) US8189587B2 (zh)
EP (1) EP2297904B1 (zh)
KR (1) KR101215208B1 (zh)
CN (1) CN102100041B (zh)
WO (1) WO2009152017A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003292B2 (en) * 2006-07-06 2015-04-07 LiveAction, Inc. System and method for network topology and flow visualization
US8189587B2 (en) 2008-06-08 2012-05-29 Apple Inc. Routing table lookup algorithm employing search key having destination address and interface component
US20110040899A1 (en) * 2009-08-13 2011-02-17 Yepez Roberto Gabriel Host/peripheral local interconnect that is compatible with self-configurable peripheral device
US20110040900A1 (en) * 2009-08-13 2011-02-17 Yepez Roberto Gabriel Host/peripheral local interconnect that is compatible with self-configurable peripheral device
US8510409B1 (en) * 2009-12-23 2013-08-13 Emc Corporation Application-specific outbound source routing from a host in a data network
US9450779B2 (en) * 2010-05-10 2016-09-20 Hewlett Packard Enterprise Development Lp Edge link discovery
CN101931589B (zh) * 2010-07-27 2015-06-17 中国电信股份有限公司 基于接口标识的多种接入方式并发传输的方法和设备
US9185018B2 (en) * 2010-10-22 2015-11-10 Brocade Communications Systems, Inc. Path diagnosis in communication networks
US8873527B2 (en) * 2011-01-14 2014-10-28 Apple Inc. System and method for managing routers and communication interfaces on a computing device
US9094483B2 (en) 2011-01-14 2015-07-28 Apple Inc. System and method for collecting and evaluating statistics to establish network connections
US9294389B2 (en) * 2011-06-23 2016-03-22 Cisco Technology, Inc. Method to select interface for IP packets when destination subnet is reachable on multiple interfaces
CN102438331B (zh) * 2012-01-12 2016-04-13 惠州Tcl移动通信有限公司 一种移动终端通过手机上网的方法及系统
US8908698B2 (en) * 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
US20130332586A1 (en) * 2012-06-08 2013-12-12 Apple Inc. Providing ipv6 connectivity through shared external interfaces on electronic devices
US20140233569A1 (en) * 2013-02-15 2014-08-21 Futurewei Technologies, Inc. Distributed Gateway in Virtual Overlay Networks
ES2825061T3 (es) 2013-03-15 2021-05-14 Huawei Tech Co Ltd Método para procesamiento de paquetes y dispositivo y sistema de paquetes
WO2014169251A1 (en) 2013-04-12 2014-10-16 Huawei Technologies Co., Ltd. Service chain policy for distributed gateways in virtual overlay networks
JP6036506B2 (ja) * 2013-04-15 2016-11-30 富士通株式会社 障害影響範囲を特定するためのプログラム及び情報処理装置
EP2984797B1 (en) * 2013-04-19 2017-03-01 Entuity Limited Querying a traffic forwarding table
EP2984799B1 (en) 2013-04-19 2017-02-01 Entuity Limited Identification of paths in a network of mixed routing/switching devices
US9559909B2 (en) 2013-04-19 2017-01-31 Entuity Limited Identifying an egress port of a device
GB2513188B (en) 2013-04-19 2015-11-25 Entuity Ltd Identification of the paths taken through a network of interconnected devices
GB2527273B (en) 2014-04-11 2016-08-03 Entuity Ltd Executing a loop computer program to identify a path in a network
US9787586B2 (en) * 2013-10-24 2017-10-10 University Of Houston System Location-based network routing
US9313171B2 (en) * 2013-11-19 2016-04-12 Cisco Technology, Inc. Path selection in a multi-service and multi-tenant secure cloud environment
JP6429474B2 (ja) * 2014-03-24 2018-11-28 キヤノン株式会社 通信装置及びその制御方法、並びにプログラム
US9444736B2 (en) 2014-05-29 2016-09-13 Apple Inc. Selecting an interface for packet routing based on application-layer data
US9576048B2 (en) 2014-06-26 2017-02-21 International Business Machines Corporation Complex service network ranking and clustering
KR101746191B1 (ko) 2014-06-27 2017-06-12 주식회사 케이티 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
CN106937351B (zh) * 2015-12-29 2020-04-17 中国移动通信集团公司 一种会话实现方法及核心网元
US10505937B2 (en) 2017-02-01 2019-12-10 Servicenow, Inc. System and method for application route management
US10873498B2 (en) * 2017-10-23 2020-12-22 Hewlett Packard Enterprise Development Lp Server network interface level failover
CN113472753B (zh) * 2021-06-12 2023-03-24 广州鲁邦通智能科技有限公司 一种多租户网络隔离的方法、数据中心和通信系统
CN113992461B (zh) * 2021-10-26 2024-01-30 亿次网联(杭州)科技有限公司 一种数据隔离传输方法、系统及存储介质
KR102502758B1 (ko) 2022-11-24 2023-02-23 펌킨네트웍스(주) 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064671A (en) * 1995-12-08 2000-05-16 Killian; Michael G. Multi-homed end system for increasing computers network bandwidth
CN101026589A (zh) * 2007-04-05 2007-08-29 杭州华为三康技术有限公司 一种路由选择的方法和路由器
CN101102554A (zh) * 2007-08-10 2008-01-09 中兴通讯股份有限公司 7号信令系统信令连接控制部分中的信令转发装置和方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410543A (en) 1993-01-04 1995-04-25 Apple Computer, Inc. Method for connecting a mobile computer to a computer network by using an address server
JP3688408B2 (ja) * 1996-10-29 2005-08-31 株式会社東芝 パケット転送制御方法及びノード装置
JPH10285173A (ja) * 1997-04-08 1998-10-23 Hitachi Ltd Atmセル処理装置
US6862622B2 (en) 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
EP0993156B1 (en) * 1998-10-05 2007-01-03 Alcatel Network switching device with forwarding database tables populated based on use
US6980515B1 (en) * 1999-02-23 2005-12-27 Alcatel Multi-service network switch with quality of access
US6674756B1 (en) 1999-02-23 2004-01-06 Alcatel Multi-service network switch with multiple virtual routers
US6845091B2 (en) 2000-03-16 2005-01-18 Sri International Mobile ad hoc extensions for the internet
JP4407007B2 (ja) 2000-05-02 2010-02-03 ソニー株式会社 データ送信装置及び方法
US6876656B2 (en) * 2001-06-15 2005-04-05 Broadcom Corporation Switch assisted frame aliasing for storage virtualization
US6957274B2 (en) 2001-06-27 2005-10-18 Microsoft Corporation System adds additional new routes and default routes to a routing table to allow concurrent access to two different network connections
US7633942B2 (en) 2001-10-15 2009-12-15 Avaya Inc. Network traffic generation and monitoring systems and methods for their use in testing frameworks for determining suitability of a network for target applications
US7106740B1 (en) * 2002-01-02 2006-09-12 Juniper Networks, Inc. Nexthop to a forwarding table
US7039018B2 (en) * 2002-07-17 2006-05-02 Intel Corporation Technique to improve network routing using best-match and exact-match techniques
US7142541B2 (en) 2002-08-09 2006-11-28 Intel Corporation Determining routing information for an information packet in accordance with a destination address and a device address
US7035257B2 (en) 2002-11-14 2006-04-25 Digi International, Inc. System and method to discover and configure remotely located network devices
US7388869B2 (en) * 2002-11-19 2008-06-17 Hughes Network Systems, Llc System and method for routing among private addressing domains
EP1429497B1 (en) 2002-12-09 2016-03-02 Alcatel Lucent Method of relaying traffic from a source to a targeted destination in a communications network and corresponding equipment
JP4164352B2 (ja) * 2002-12-10 2008-10-15 株式会社日立製作所 移動端末を収容できるパケット転送装置
US7249216B2 (en) 2002-12-12 2007-07-24 Fujitsu Limited Data relay apparatus, content addressable/associative memory device, and content addressable/associative memory device use information search method
US7269174B2 (en) 2003-03-28 2007-09-11 Modular Mining Systems, Inc. Dynamic wireless network
US20050010644A1 (en) * 2003-07-07 2005-01-13 Brown Scott T. High performance electronic message delivery engine
JP2005045675A (ja) * 2003-07-24 2005-02-17 Fujitsu Ltd フレーム転送方法およびフレーム転送装置
JP4392294B2 (ja) * 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
JP4610240B2 (ja) 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
JP4598462B2 (ja) * 2004-09-16 2010-12-15 富士通株式会社 L2−vpnサービスを提供するプロバイダ網、及びエッジルータ
US20070022479A1 (en) 2005-07-21 2007-01-25 Somsubhra Sikdar Network interface and firewall device
US7664116B2 (en) * 2005-04-12 2010-02-16 Fujitsu Limited Network based routing scheme
FI20050919A0 (fi) * 2005-09-15 2005-09-15 Nokia Corp Monikotiselta isäntäkoneelta tulevien datapakettien reititys
CN1988495A (zh) * 2005-12-20 2007-06-27 鸿富锦精密工业(深圳)有限公司 网络地址转换装置及其转送封包的方法
US7596628B2 (en) 2006-05-01 2009-09-29 Broadcom Corporation Method and system for transparent TCP offload (TTO) with a user space library
US8144698B2 (en) 2006-06-09 2012-03-27 Ericsson Ab Scalable data forwarding techniques in a switched network
US8422491B2 (en) 2007-04-18 2013-04-16 Waav Inc. Mobile network configuration and method
US8189587B2 (en) 2008-06-08 2012-05-29 Apple Inc. Routing table lookup algorithm employing search key having destination address and interface component

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064671A (en) * 1995-12-08 2000-05-16 Killian; Michael G. Multi-homed end system for increasing computers network bandwidth
CN101026589A (zh) * 2007-04-05 2007-08-29 杭州华为三康技术有限公司 一种路由选择的方法和路由器
CN101102554A (zh) * 2007-08-10 2008-01-09 中兴通讯股份有限公司 7号信令系统信令连接控制部分中的信令转发装置和方法

Also Published As

Publication number Publication date
US20090304006A1 (en) 2009-12-10
US20120257608A1 (en) 2012-10-11
US20090304000A1 (en) 2009-12-10
US20110222542A1 (en) 2011-09-15
KR20110030547A (ko) 2011-03-23
US8189587B2 (en) 2012-05-29
US20090304001A1 (en) 2009-12-10
KR101215208B1 (ko) 2012-12-24
US8064455B2 (en) 2011-11-22
EP2297904A1 (en) 2011-03-23
US8514862B2 (en) 2013-08-20
US7940768B2 (en) 2011-05-10
US8488609B2 (en) 2013-07-16
WO2009152017A1 (en) 2009-12-17
CN102100041A (zh) 2011-06-15
EP2297904B1 (en) 2013-11-27
US20090304005A1 (en) 2009-12-10
US8681791B2 (en) 2014-03-25
US8265078B2 (en) 2012-09-11
US20120057596A1 (en) 2012-03-08

Similar Documents

Publication Publication Date Title
CN102100041B (zh) 基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送
CN106657637B (zh) 能够在保持手持服务功能集的同时提供数据网络共享服务的手持设备
CN102075438B (zh) 单播数据帧传输方法及装置
CN104718733B (zh) 基于分组的标识符定位符网络协议(ilnp)负载平衡和路由选择的方法和系统
CN113645136B (zh) 网络中报文转发的方法、网络节点、网络系统
CN102957589B (zh) 业务数据传输的方法、网络节点及系统
CN100372347C (zh) 扩展边界网关协议的4over6隧道封装及解封装方法
US20020099856A1 (en) Information processing device and method thereof, recording medium and program
US20140146710A1 (en) Trill Network Communications Across an IP Network
CN102859973A (zh) 一种地址解析的方法,装置和系统
CN101822022A (zh) 用户设备中对三重播放服务的支持
CN103139075A (zh) 一种报文传输方法和设备
CN102025848A (zh) 网关及其处理封包的方法
CN109246016B (zh) 跨vxlan的报文处理方法和装置
CN103152265B (zh) 一种spb网络中的报文转发方法和设备
CN104378302B (zh) 地址对应关系发送方法和路由桥设备
CN100479457C (zh) 一种实现虚拟私有网络中数据传输的方法
CN101110769B (zh) 基于安全业务的包转发方法及系统
JP3496641B2 (ja) 端末位置情報管理方法,この方法を用いる端末位置情報管理システム、並びにこのシステムに用いるホームエージェントおよびボーダゲートウェイ
CN113364849A (zh) 一种基于dds的跨广域网双漫游数据传输方法、系统及存储介质
CN101494849B (zh) 一种通信方法、系统及设备
CN102957756B (zh) 数据报文的处理方法及接入服务路由器
JP2001007848A (ja) ネットワーク間中継方法及びネットワーク間中継装置
CN101379841A (zh) 为提供异种网络之间的小包连通性和组分和小包之系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant