主机中分组终端的路由器辅助快速处理方法、系统和产品的制作方法

文档序号:7594625阅读:228来源:国知局
专利名称:主机中分组终端的路由器辅助快速处理方法、系统和产品的制作方法
技术领域
本发明通常涉及数据处理系统网络中的数据传输,特别涉及在因特网或者类似网络中数据块的传送。更特别地,本发明涉及改进的处理主机通过网络接收的数据分组的性能。
背景技术
网络提供从信源通过特定路由至目的地的信息传输。信息通过路由器沿着路由传送。信息依照特定的协议贯穿网络传送,网络中的路由器可以支持多种协议中的任何一个。典型地,每个路由器知道网络中可用的各种路由,这种认识被存储在路由数据库或者路由表中。因此,路由器可以存储使用多种协议可得的多条路由。
因特网已经成为一种对数据(文本、编码、图像、视频、音频或者混合的)和软件进行传输和分布的非常重要的网络。用户通过从14.4Kb/s至超过45Mb/s的广泛且分散的性能级别连接到因特网的主干线。传输控制协议/网际协议(TCP/IP)已经成为一种在因特网和内部网技术中广泛执行的标准通信协议,允许在客户机、服务器和连接它们的通信系统之间广泛的不均匀性。网际协议(IP)是网络层协议,传输控制协议(TCP)是传输层协议。在网络级中,IP提供“数据报”传送服务。与IP相比,TCP在数据报服务之上建立一种传输级服务,为两个IP主机之间的字节流提供被保证的、连续传送。
网络中的主机经常既作为路由器和又作为主机运行。这种主机能够转发去往网络内其它主机的分组。当路由器/主机服务器通过网络接收分组时,它必须花费相当多的资源以验证分组应该在驻留的主机结束,还是应该向前发送到另一个被寻址的主机。进行这种验证的处理资源和相应的开销基本上随着属于主机的IP地址数量增加而增加。这种结果是因为分组中的目的地址必须与和主机相关的所有IP地址进行比较以确认分组在那台主机结束,或者目的地址必须发送到主机的路由功能以计算和执行路由,使分组沿着该路由到达最终指定的主机。一般地,具有为各种主机设计的多个IP地址的忙碌系统中存在为检查接收到的分组包括主机服务器目的地址所消耗的处理资源相当多。
发明概述根据本发明,公开了一种改进的用于辅助目的主机中网络分组处理的制造方法、系统和产品。本发明的一个优选方法包括步骤路由器从网络接收数据分组;确定该数据分组的目的主机是否直连到该路由器或者目的主机是否通过一个或者多个其它路由器连接到该路由器;如果数据分组的目的主机直接连接到该路由器,在数据分组中设置一个标识符;将数据分组传送到目的主机,其中目的主机读取标识符,并通知该目的主机它是数据分组的目的地,并绕过确定数据分组是否被寻址到该目的主机的过程。本发明另一个优选方法包括步骤从目的主机的路由器接收数据分组;确定数据分组中的标识符是否已经被路由器设置,该标识符指示目的主机直接连接路由器,从而通知目的主机它是数据分组的目的地;绕过确定数据分组是否被寻址到目的主机、路由器是否已经设置数据分组中的标识符的过程。
本发明的所有目的、特征和优势将在下面详细的描述中变得显而易见。


在下面参考附图描述的优选实施例中描述本发明,其中相同的标号表示相同或者类似的组件,如下图1描述一个可以实现本发明优选实施例的数据处理系统网络。
图2是对可以在本发明优选实施例中利用的网络的4层通信结构的说明。
图3显示依照本发明的优选实施例,在网络节点上接受和转发数据报所需的路由器中的硬件框图。
图4显示依照本发明的优选实施例的路由器存储器中的路由和转发表的框图。
图5显示依照本发明的优选实施例的路由器中用于辅助主机内快速处理的过程流程图。
图6显示依照本发明的优选实施例的主机中用于对输入分组的路由器辅助快速处理的处理流程图。
具体实施例方式
本发明通过在下文参考附图描述的优选实施例中描述,其中相同的标号表示相同或类似的组件。虽然按照完成该发明目的的最佳模式描述了本发明,但是本领域的技术人员应该理解可以不偏离本发明精神或范围的情况下根据这些教导完成对其的变化。
现在参考附图,特别参考图1,其描述了一种可以实现本发明优选实施例的数据处理系统网络。数据处理系统网络102包括通过至少一个网络108(例如因特网)连接到至少一个客户/主机服务器系统106的至少一个主机服务器系统104,该网络108包括至少一个路由器110。服务器系统104与服务器系统106之间的数据传送符合TCP/IP和UDP/IP规范,也符合文件传送协议(FTP)、超文本传送协议(HTTP)或者一些类似的通信协议。如将要理解的,数据处理系统网络102可以包括多个主机计算机(主机1-6)、多个路由器(路由器1-7)和通过一个或者多个连接与包括网络108的网络互连的任意数量的其它服务器和路由器系统(未示出)。
诸如因特网的网络108通过许多互连的路由器而互连,每个路由器将两个或者更多的网络连接在一起。典型的路由器包括一个具备输入和输出连接的特定用途硬件盒和允许多种不同类型物理网络连接的专用硬件和/或嵌入软件,例如以太网、令牌环、点到点链接,等。一个路由器具有两个或者更多网络接口层(因为它连接两个或者更多网络)。任何具有多个接口的系统被称为多归属(multi-homed)。大多数TCP/IP设备允许多归属的主机充当路由器,尤其允许将分组从一个接口转发至另一个接口,但是主机需要被特定地配置以支持这种使用。在该实例中,系统是一个主机(当使用例如FTP或Telnet的应用时),或者是一个路由器(当它将分组从一个网络转发至另一个网络时)。
如图2所示,网络108利用一个包括应用层210、传输层212、网络层214和链路层216的网络4层通信结构200。每层负责处理如下不同的通信任务。链路层216(也称为数据链路层或网络接口层)通常包括操作系统中的设备驱动器以及在例如服务器104、106的网络计算机中的对应网络接口卡。他们一起处理与使用中的网络媒介物理连接的所有硬件元件,例如以太电缆,等。网络层214(也称为因特网层)处理在网络周围的数据分组运动。例如,网络层处理通过网络传送的不同数据分组的路由选择。TCP/IP组的网络层包括几个协议,包括IP(网际协议)、ICMP(网际控制报文协议)以及IGMP(网际成组管理协议)。
传输层212在网络层214与应用层210之间提供一个便于两个主计算机之间数据传送的接口。传输层关心诸如将从应用层传送给它的数据分成适合下面网络层大小的块、确认收到的分组、设置超时以确定被发送的其它结束确认分组,等等的情况。在TCP/IP协议组中,具有两种显然不同的传输协议TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供包括漏码检测和重传服务的可靠性服务以确保数据在两个主机之间正确地传输。相反地,UDP不提供任何保证数据正确传送的机制,仅通过将称作数据报的数据分组从一个主机发送给另一个主机向应用层提供非常简单的服务。当使用UDP时,应用层必须执行可靠性的功能性(functionality)。
应用层210处理特殊应用的组件。许多通用TCP/IP应用中几乎每个实现都提供,包括(1)用于远程注册的Telnet;(2)FTP(文件传送协议);(3)用于电子邮件的SMTP,简单邮件传送协议,以及(4)SNMP,简单网络管理协议。当一个应用使用TCP/IP发送数据时,数据沿着一种协议栈通过每一层发送,直到该数据被作为比特流跨越网络被发送为止。每一层通过将报头(有时添加尾部信息)挂在其接收的数据上而向数据添加信息。数据分组的IP报头内是一个存在期限(TTL)字段。该字段负责限制数据分组在网络中可能产生的跳数。这个字段在网络中的每个连网节点递减。如果到达希望的目的地之前该字段减少至0,丢弃该数据报。这种机制防止由于一些路由选择错误而引起的两个连网节点之间的无限循环。
图3显示依照本发明优选实施例的路由器硬件框图,其中要求路由器接收和转发在IP连网节点中的IP数据报。IP连网节点或路由器(例如,路由器110)必须首先处理输入分组的IP报头。基于在输入IP数据报的输入目的地址确定数据报的外出接口。一旦核实了报头,数据被发送到网络节点中的另一个端口,或者被发送到网络节点内的路由选择引擎。路由器网络节点的典型结构通过连接到连网节点的多个接口的路由选择引擎300实现。去往路由器的所有IP路由选择协议数据通过转发表与报头处理单元301-304被所有进入端口转发到路由选择引擎300。路由选择引擎300检查路由选择协议PDU,学习不同网络的目的网络地址,然后计算网络地址的外出接口号。目的网络地址和外出接口号形成了转发表与报头处理单元301-304中的转发表(如图4所示转发表404的实例)的条目。然后,路由选择引擎300将转发表或者转发表的更新发送到每个进入接口,从而指示每个进入报头处理单元(图3中的单元301-304)如何确定每个输入数据报的出去接口。每个进入报头处理单元则验证每个数据报,检查目的字段,然后指出转发表中的目的地以确定数据报的外出端口号。
现在详述使用图3中高级连网节点图的典型过程。通过网络传送的IP分组被每个路由器以及路由选择主机处理以确定分组在网络中的下一跳。假定分别附加到单元301、302、303和304另一端的IP路由选择协议、路由器的一些组合分别通知至网络地址a、b和c、网络地址c、d和e、网络地址a、f和g、以及最后至网络地址h、i和j的可达到性。在该简单的实例中,路由选择引擎300看到标记为输出端口1-4(310-340)的多个出去或者输出端口。例如,基于诸如开销、跳数等许多选项的其中一个,路由选择引擎300将决定到达目的网络地址‘a’和目的网络地址‘c’的最佳出去端口。假设该实例中路由选择引擎300选择接口至端口310转发去往网络地址‘a’的所有数据报,并选择端口320转发去往网络地址‘c’的所有数据报,路由选择引擎300将因此创建图4所示的转发表404。实际上,主干路由器的转发表中可以超过几万个条目。图4的每个网络地址列为圆括号中的四个数字,它们将实际的网络地址表示为四个字节。然后,路由选择引擎300将转发表转发到每个输入或者进入数据端口(301-304)以允许转发表与报头处理单元301-304检查所有输入数据报并匹配转发表中的目的地址,从而确定对应适当的输出或者外出接口端口310、320、330、340。然后数据报通过开关305发送到那个输出端口。作为该转发过程的部分,在转发所接收的分组之前,每个路由器内的报头处理单元301-304递减IP报头中的TTL字段。如果这个字段达到零,路由器将丢弃该分组,而不是继续转发。
依照优选的实施例,作为路由选择过程的部分,报头处理单元301-304检查路由器存储器400中的路由表402,确定在分组路由的下一个路由器的网关地址,如果路由选择表中的标记指出寻址目的地是路由器直连子网内部连接的主机服务器,该路由器断定网关地址是该分组的最后目的地。上述内容在路由选择表402中示出,其中“Flag(标记)”列中的“G”标记指出目的地址条目的特定网关地址指向附加到端口310-340的路由器。在网关地址没有相关的“G”标记时,路由器便断定特定网关地址是附加到端口310-340的路由器子网内部的直连主机。
依照优选实施例,当路由选择表指出目的地址在路由器子网时,报头处理单元301-304在分组转发前将数据分组的IP报头中的TTL设置为“0”,而不是像IP协议指定的那样递减TTL。接收数据分组的报头处理单元301-304将搜索ARP(地址解析协议)表,将分组的IP地址转换成链路层的物理地址(例如,DLC(数据链路控制)层)以唯一地识别网络中直连目的主机的节点。在优选实施例中,路由器和开关使用例如Ethernet的IEEE 802兼容协议与子网上的主机通信,DLC层指定媒体访问控制(MAC)地址。搜索转发表404以查找符合与目的主机的MAC地址相对应的目的网络地址的外出端口号。然后,相应的报头处理单元301-304通过开关305将分组转发到索引的输出端1-4(310-340),这些端口在MAC地址直接连接到目的主机。在图4所示的实例中,转发表404指出MAC地址连接到外出端口4。因此,开关305将分组指向直接路由至该主机的输出端口4(340)。
目的主机接收到分组时,主机内的传输层就拆开分组并立刻检测TTL值。如果TTL被设置为0,主机自动通知分组已经到达它的目的地,主机中运行的应用程序是该分组的用户。在优选实施例中,因为TTL是路由器已经检查、修改且正常地不设置为零且被转发的数值(它应该被减少),所以TTL被设置为零以指出该主机是目的地。因为TCP/IP协议不需要被修改且TTL是一个在每个节点被处理的数值,所以TTL的使用是有利的。然而,应该理解本发明可以修改或者创建分组的另一个数值以为主机提供的传送的信息。因此,依照优选实施例,当接收到TTL设置为零的分组时,主机绕过需要搜索主机IP地址表以确定该分组打算供那台主机使用还是被继续转发的标准分组处理,并假设分组的IP地址属于主机。绕过这个搜索过程可以节省主机内相当多的处理时间和资源。依照优选实施例,主机绕过IP地址表搜索,立刻开始将分组的TCP/IP报头内的信源/目的地址和信源/目的端口对与驻留在主机的TCP套接字指定的连接进行比较。当发生匹配时,分组被转发到由主机上相应应用程序消耗的请求套接字。在极少情况下,信源/目的对将不匹配主机的任何TCP套接字,因为TTL已经达到0,主机将立刻丢弃该分组。
正如所见,本发明的优选实施例通过允许接收主机跳过IP地址查找过程并立刻消耗接收到的分组,对网络系统提供极大的性能增强。这一点可以通过认识到分组路由中的最后一个路由器基于路由选择表中传送的信息,可以容易地确定何时分组处于到达目的地之前的最后一跳,然后通过将被转发至最终目的地的分组中的TTL设置为零而将信息传送到主机完成。这样被通知分组去往它的IP地址的主机因此可以消除相对于它被分配的IP地址列表,对输入分组的目的IP地址进行的确定是否分组去往那台主机的IP地址表搜索。
参考图5,依照本发明的优选实施例,显示用于辅助主机内快速处理的路由器内部处理的流程图。当路由器在网络上接收分组时(502),开始处理800。接收到分组时,路由器将搜索路由器的路由选择表以定位分组的目的地址的路由器指示的网关地址(504)。依据在路由选择表中定位目的地址的网关地址,路由器确定路由选择表条目是具有一个指示目的地址的网关路由是一个路由器接口上的直连主机,还是指出路由的网关地址通向另一个路由器的标记设定(506)。如果目的主机直接连接到路由器,路由器将分组IP报头中的TTL设置为零(508),然后将分组转发至直接连接的目的主机(510)。如果路由选择表指示对于目的地址的路由通向一个连接的网关而不是一个主机,则分组IP报头中的TTL被递减(512),该分组通过网关地址被直接转发到路由器(510)。
参考图6,显示依照本发明的优选实施例的主机中为输入分组路由器辅助快速处理的过程流程图。当主机从网络接收分组时(602),开始处理600。当接收到分组时,主机拆开IP报头,确定IP报头中的TTL值是否为零(604)。如果IP报头中的TTL被设置为零,主机绕过对IP地址接口表的搜索,立刻开始搜索TCP连接表以确定分组寻址的TCP套接字(606)。如果寻址TCP套接字位于TCP连接表(608),主机直接将分组的有效负载转发给寻址TCP套接字(610)。如果4-元组(信源/目的地址、信源/目的端口)在TCP连接表中不匹配(608),主机内的处理具有对分组的所有权,在主机中则丢弃该分组(612)。回到判定块604,如果确定IP报头的TTL没有被设置为零,主机将在IP地址接口表中搜索分组的目的地址(614)。如果确定分组的目的地址在IP地址接口表中(616),该过程转到步骤606,搜索TCP连接表以确定分组寻址的TCP套接字。如果在(616)确定分组的目的地址不在IP地址接口表中,分组IP报头中的TTL被递减(618)。然后确定TTL是否已经达到零(620),如果TTL已经达到零,分组被丢弃(612),或者分组被路由到该分组的最终地址(622)。
尽管已经参考优选实施例特别地显示和描述了本发明,但本领域的技术人员应该理解在不偏离本发明的精神和范围的情况下,可以进行在形式和细节上的不同变化。例如,可以使用计算机程序设计软件、固件或硬件的任何组合实现本发明。作为实践本发明或者依照本发明构建设备的准备步骤,依照本发明的计算机程序设计代码(软件还是硬件)将典型地被存储在一种或者多种机器可读存储介质中,例如固定的(硬)驱动器、软盘、光盘、磁带、如ROM、PROM的半导体存储器,等等,因此,撰写依照本发明的制造产品。包含计算机程序设计代码的制造产品通过直接执行存储设备的代码、或从存储设备将代码复制到例如硬盘、RAM等的另一个存储设备,或者传输用于远程执行的代码而使用。本发明的方法形式可以通过将包括依照本发明的代码的一个或者多个机器可读存储设备与适当的标准计算机硬件结合以执行其中包含的代码而付诸于实践。用于实践本发明的设备可以是包括或者具有访问依照本发明编码的计算机程序的网络的一个或者多个计算机和存储系统。虽然本发明按照完成发明目标的最好模式描述,但是本领域的技术人员应该理解在不偏离本发明的精神或者范围的情况下,可以在这些教学的观点下完成变化。
权利要求
1.一种在数据处理系统(路由器)中用于辅助在数据处理系统(目的主机)中进行的网络分组处理的方法,所述方法包括步骤路由器从网络接收数据分组;确定分组的目的主机是否是路由器的下一跳;如果分组的目的主机是路由器的下一跳,在数据分组中设置一个标识符;以及将数据分组传送到目的主机,其中标识符被目的主机读取,通知目的主机它是数据分组的目的地,并且绕过确定数据分组是否被寻址到目的主机的过程。
2.根据权利要求1的方法,其中确定分组的目的地是否是路由器的下一跳的步骤包括确定数据分组的目的主机是否直接连接到路由器或者目的主机是否通过一个或者多个其它路由器连接到路由器。
3.根据权利要求1的方法,其中标识符是数据分组报头中被设置为零的TTL字段。
4.根据权利要求1的方法,其中确定步骤包括检查是否在路由器的路由选择表中设置了标记。
5.一种在数据处理系统(目的主机)中用于路由器辅助的网络分组处理的方法,所述的方法包括步骤目的主机从路由器接收数据分组;确定路由器是否已经在数据分组中设置了指示目的主机是数据分组目的地的标识符;以及如果路由器已经在数据分组中设置了标识符,绕过确定数据分组是否被寻址到目的主机的过程。
6.根据权利要求5中的方法,其中指示器还指示目的主机直接连接到路由器。
7.根据权利要求5中的方法,其中标识符是数据分组报头中被设置为零的TTL字段。
8.根据权利要求5中的方法,还包括执行确定数据分组是否被寻址到目的主机、数据分组中的标识符是否已经被路由器设置的过程的步骤。
9.根据权利要求8的方法,其中所述过程是在列出与目的主机相关的目的地址的地址表内的目的地址查找。
10.一种用于辅助数据处理系统(目的主机)中的网络分组处理的数据处理系统(路由器)包括用于路由器从网络接收数据分组的装置;用于确定分组的目的主机是否是路由器的下一跳的装置;用于如果对于分组的目的主机是路由器的下一跳,在数据分组中设置标识符的装置;以及用于将数据分组传送到目的主机的装置,其中标识符被目的主机读取,通知目的主机它是数据分组的目的,并且绕过确定数据分组是否被寻址到目的主机的过程。
11.根据权利要求10的数据处理系统,其中用于确定分组的目的地是否是路由器下一跳的装置包括用于确定数据分组的目的主机是否直接连接到路由器或者目的主机是否通过一个或者多个其它路由器连接到路由器的装置。
12.根据权利要求10的数据处理系统,其中标识符是数据分组报头中被设置为零的TTL字段。
13.根据权利要求10的数据处理系统,其中确定装置包括检查是否在路由器的路由选择表中设置了标记的装置。
14.一种用于路由器辅助的网络分组处理的数据处理系统(目的主机)包括用于目的主机从路由器接收数据分组的装置;用于确定路由器是否已经在数据分组中设置了指示目的主机是数据分组目的地的标识符的装置;以及用于如果路由器已经在数据分组中设置了标识符,绕过确定数据分组是否被寻址到目的主机的过程的装置。
15.根据权利要求14的数据处理系统,其中指示器还指示目的主机直接连接到路由器。
16.根据权利要求14的数据处理系统,其中标识符是数据分组报头中被设置为零的TTL字段。
17.根据权利要求14的数据处理系统,还包括用于执行确定数据分组是否被寻址到目的主机、数据分组中的标识符是否已经被路由器设置的过程的装置。
18.根据权利要求17的数据处理系统,其中所述过程是在列出与目的主机相关的目的地址的地址表内的目的地址查找。
19.一种包括机器可读介质的制造产品,该机器可读介质包括其中内嵌的程序逻辑,该程序逻辑引起数据处理系统(路由器)中用于辅助网络内数据处理系统(目的主机)的网络数据分组处理的控制电路执行以下步骤路由器从网络接收数据分组;确定分组的目的主机是否是路由器的下一跳;如果分组的目的主机是路由器的下一跳,在数据分组中设置一个标识符;以及将数据分组传送到目的主机,其中标识符被目的主机读取,并通知目的主机它是数据分组的目的地,并且绕过确定数据分组是否被寻址到目的主机的过程。
20.根据权利要求19的制造产品,其中确定分组的目的地是否是路由器的下一跳的步骤包括确定数据分组的目的主机是否直接连接到路由器或者目的主机是否通过一个或者多个其它路由器连接到路由器。
21.根据权利要求19的制造产品,其中标识符是数据分组报头中被设置为零的TTL字段。
22.根据权利要求19的制造产品,其中确定步骤包括检查是否在路由器的路由选择表中设置了标记。
23.一种包括机器可读介质的制造产品,该介质包括其中内嵌的程序逻辑,该程序逻辑引起在数据处理系统(目的主机)中用于网络中路由器辅助的网络数据处理的控制电路执行以下步骤目的主机从路由器接收数据分组;确定路由器是否已经在数据分组中设置了指示目的主机是数据分组目的地的标识符;以及如果路由器已经在数据分组中设置了标识符,绕过确定数据分组是否被寻址到目的主机的过程。
24.根据权利要求23中的制造产品,其中指示器还指示目的主机直接连接到路由器。
25.根据权利要求23中的制造产品,其中标识符是数据分组报头中被设置为零的TTL字段。
26.根据权利要求23中的制造产品,还包括用于执行确定数据分组是否被寻址到目的主机、数据分组中的标识符是否已经被路由器设置的过程的步骤。
27.根据权利要求23中的制造产品,其中过程是在列出与目的主机相关的目的地址的地址表内的目的地址查找。
全文摘要
提供主机中分组终端的路由器辅助快速处理方法、系统和产品。在分组路由选择中的最后一个路由器基于在目的地是一个直连主机的路由选择表中传达的信息,确定何时分组处于到达其目的地之前的最后一跳,然后通过将被转发至最终目的地的分组中的TTL设置为零而将信息传送到主机完成。被通知分组去往它的IP地址的主机因此可以消除相对于它被分配的IP地址列表,对输入分组的目的IP地址进行的确定是否分组去往那台主机的IP地址表搜索,因此通过允许接收主机跳过IP地址查找过程并立刻消耗接收到的分组,对网络系统提供极大的性能增强。
文档编号H04L12/56GK1614954SQ20041005776
公开日2005年5月11日 申请日期2004年8月17日 优先权日2003年11月6日
发明者维尼特·贾恩, 文卡特·文卡苏布拉 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1