CN1281020C - 检测和避开网络内高数据讹误路径的方法和*** - Google Patents
检测和避开网络内高数据讹误路径的方法和*** Download PDFInfo
- Publication number
- CN1281020C CN1281020C CNB2004100566222A CN200410056622A CN1281020C CN 1281020 C CN1281020 C CN 1281020C CN B2004100566222 A CNB2004100566222 A CN B2004100566222A CN 200410056622 A CN200410056622 A CN 200410056622A CN 1281020 C CN1281020 C CN 1281020C
- Authority
- CN
- China
- Prior art keywords
- packet
- recipient
- network
- router
- data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0072—Error control for data other than payload data, e.g. control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
TCP/IP网络中的接收主机发送指示接收数据分组讹误的确认信息。发送主机将开始发送,其中在IP报头中设有称作检查-TCP-校验和位的新字段,从而请求TCP/IP网络中的所有路由器对整个接收分组执行校验和。TCP/IP网络中的路由器将对设有检查-TCP-校验和位的整个分组而不是仅对IP报头执行完整的校验和。路由器连续监测整个分组校验和失败的在特定端口上接收的讹误分组与在那个端口上接收的分组的总数之比。如果讹误与接收分组之比超过讹误阈值,则路由器认为相关链路导致数据讹误,并且发出指示该路讹误并且应被避开的路由选择更新。一旦发送者与接收者之间的重传速率降至阈值级别之下,则检测到讹误链路,并在TCP/IP网络内避开它,并且不再在发送到接收主机的数据分组的IP报头中设置检查-TCP-校验和选项。
Description
技术领域
总的来说,本发明涉及数据处理***网络中的数据传输,特别涉及因特网或类似网络上的数据块传输。更具体地说,本发明涉及快速检测导致高数据讹误(data corruption)的因特网内路径,并且高效地对数据进行重新路由选择以绕开该高数据讹误路径。
背景技术
网络提供通过特定路径将信息从源传输到目的地的传输。信息通过路由器沿着路径传输。典型地,每个路由器知道网络中可用的各条路径,并且该知识存储在路径数据库或路径表中。信息根据特定协议在整个网络上传输,并且网络内的路由器可以支持多种协议中的任何一个。因此,路由器可以存储使用多种协议可获得的多个路径。
因特网已成为特别重要的用于传输和分发数据(文本、代码、图像、视频、音频或混合式)和软件的网络。用户以范围从14.4Kb/s到超过45Mb/s的广泛不同性能级别连接到骨干因特网。传输控制协议/网际协议(TCP/IP)已成为因特网和内部网技术中广泛实现的标准通信协议,它允许客户端、服务器和耦合它们的通信***之间的广泛异构性。网际协议(IP)是网络层协议,而传输控制协议(TCP)是传输层协议。在网络层,IP提供“数据报”传送服务。相反,TCP构建数据报服务之上的传输层服务,以在两个IP主机之间提供有保证的、顺序的字节流传送。
在诸如因特网之类的大型网络中,网络内路径之一有可能导致数据讹误。虽然沿着该路径的每个路由器将对所接收的每个数据分组的报头执行校验和、以检测分组的数据讹误,但是沿着该路径引起的某些数据讹误只能通过对接收分组的整个有效载荷执行校验和来检测。因此,网络内的路由器不知道它们正在将受损分组转发到目的地。只有当分组到达对整个有效载荷执行校验和的接收主机时,才检测到该数据讹误。接收主机然后将确认信息发送到发送主机,从而请求重传受损数据分组。然而,由于发送主机和接收主机没有办法知道哪一条路径导致数据讹误,因此它们不能在重传数据分组时避开那条路径。此外,发送主机和接收主机没有办法向网络内的路由器通知数据讹误以便路由器能够纠正或避开讹误路径。因此,可以看到,需要一种提供快速检测网络内的坏链路以便路由器能够避开数据讹误链路来经过路由选择传送数据分组。
发明内容
根据本发明,公开了用于检测和避开IP网络中导致数据讹误的数据链路的改进型方法和***。
本发明提供一种IP网络中用于检测和避开导致数据讹误的数据链路的方法,所述方法包括以下步骤:在IP网络内的路由器中接收数据链路上的数据分组,其中,数据分组来源于一个发送者,发往一个接收者,并且包含要对整个数据分组执行校验和的指示;响应接收到包含要对整个数据分组执行校验和的指示的数据分组,对整个数据分组执行校验和;响应整个数据分组的校验和失败,修改表示在校验和失败的数据链路上接收的数据分组数的值;以及如果该值超过路由器的讹误阈值,则执行路由选择更新以避免在该数据链路上传输数据分组。
本发明还提供一种用于在IP网络中检测和避开导致数据讹误的数据链路的***,所述***包括:用于在IP网络内的路由器接收数据链路上的数据分组的装置,其中,数据分组来源于一个发送者,发往一个接收者,并且包含要对整个数据分组执行校验和的指示;用于响应接收到包含要对整个数据分组执行校验和的指示的数据分组,对整个数据分组执行校验和的装置;用于响应整个数据分组的校验和失败,修改表示在校验和失败的数据链路上接收的数据分组数的值的装置;以及用于如果该值超过路由器的讹误阈值,则执行路由选择更新以避免在该数据链路上传输数据分组的装置。
本发明的一个优选方法包括以下步骤:在IP网络内的路由器中接收数据链路上的数据分组,其中,数据分组来源于一个发送者,发往一个接收者,并且包含要对整个数据分组执行校验和的指示;响应接收到包含要对整个数据分组执行校验和的指示的数据分组,对整个数据分组执行校验和;响应整个数据分组的校验和失败,修改表示在校验和失败的数据链路上接收的数据分组数的值;以及如果该值超过路由器的讹误阈值,则执行路由选择更新以避免在该数据链路上传输数据分组。
在下面详细描述中,本发明的所有目的、特性和优点将会变得更加清楚。
附图说明
图1是示出其中可以实现本发明优选实施例的数据处理***网络。
图2是可以用于本发明的优选实施例中的用于服务器-客户端***的典型软件架构的图示。
图3示出利用TCP/IP的4层通信架构的例子。
图4示出包括通过路由器连接到令牌环网的以太网的因特网的例子。
图5示出当数据穿过TCP/IP协议栈时数据的格式。
图6A示出TCP报头的格式。
图6B示出根据一个优选实施例的IP报头的格式。
图6C示出根据本发明一个优选实施例的TCP确认帧的数据结构。
图7示出诸如因特网的网络的图示。
图8示出用来接收和转发IP数据报的路由器的硬件。
图9A示出根据一个优选实施例的路由选择表和转发表。
图9B示出根据一个优选实施例的路由器存储器中的寄存器。
图10示出根据本发明一个优选实施例的在客户端-服务器***中执行的、用于指示网络内数据讹误的过程的流程图。
图11示出根据本发明一个优选实施例的在客户端-服务器***中执行的、用于指示网络内数据讹误的过程的流程图。
图12示出根据本发明一个优选实施例的在网络路由器中执行的、用于提供快速检测和避开网络内导致高数据讹误的数据路径的过程的流程图。
具体实施方式
在下文中将参照附图通过优选实施例描述本发明,其中相同的标号表示相同或类似的单元。虽然本发明是按照用于实现本发明目的的最佳方式来描述的,但是本领域的技术人员应该理解,在本文的启迪下可以实现各种变更而不脱离本发明的精神或范围。
现在参照附图,并且特别参照图1,描述可以实现本发明优选实施例的数据处理***网络。数据处理***网络100包括通过至少一个网络如因特网108连接到至少一个客户端***106的至少一个服务器***104。服务器***104与客户端***106之间的数据传输遵循TCP/IP规范以及文件传输协议(FTP)、超文本传输协议(HTTP)或者某类似通信协议。应该理解,虽然仅示出了单个服务器***104和单个客户端***106,但是数据处理***网络100可以包括由一种或多种连接法(connection)和网络(包括因特网108)互连的任意数目的服务器和客户端***(未示出)。
为了在网络上传输数据,需要有一组规则以便正确执行传输序列的每一个部分。这些规则中的每一个称作协议,并且一组规则称作协议集。在因特网和各种其他网络如LAN(局域网)和WAN(广域网)上传输数据时所用的最常见协议集由TCP/IP(传输控制协议/网际协议)协议集提供。TCP/IP协议集允许运行不同操作***的各种不同类型的计算机相互通信。TCP/IP形成全球因特网即真正跨越全球的数百万计算机的广域网的基础。除了TCP/IP协议集之外,还存在很多其他网络协议集,包括IP/X/SPX(因特网分组交换/顺序分组交换)和NetBios。虽然最初是由独立研究组开发的,但是大部分网络协议是公开(非私有)标准,其中很多是作为一系列按照数字顺序的RFC(请求注解)文件来公布的。例如,IP协议是RFC 791。RFC文件可在因特网或者各个图书馆容易地获得。虽然存在区别,但是这些网络协议集的每一个在结构上是类似的,它们都包括一组层,其中每层负责通信任务的不同方面。为简单起见,下面讨论将主要关于采用TCP/IP协议时的本发明使用。然而,本领域的技术人员应该认识到,虽然本发明的原理是参照TCP/IP协议描述的,但是本发明也可以应用于各种其他网络。
流控制是处理接收主机和发送者之间的处理和缓冲能力失配以最佳地利用由传输介质提供的带宽的过程。TCP流控制机制只在终端站运行,以限制TCP端点发送数据的速率。然而,TCP缺少显式数据速率控制。基本流控制机制是施加于最后显式确认的字节以外的一定范围字节上的“滑动窗”。滑动窗限制从服务器最近发送的字节与尚未从客户端接收到接收确认的最早字节之间的连续字节的最大数目。该滑动操作限制TCP端点可以发送的未确认可传输数据量。多种算法自动重新发送分组,并且当超过滑动窗限制时缓慢地重新启动数据传输。因此,如果在传输数据集合的中间切断服务器与客户端之间的链路,则服务器将在由客户端确认的最后分组的一个滑动窗内停止发送分组。滑动窗的使用内在地限制了通过网络的数据传输带宽。
图2是可以用于本发明的优选实施例中的服务器-客户端***的典型软件架构的图示。服务器104和客户端106均采用软件架构200构造。在最低层,利用操作***205来向用户和其他软件提供高层功能。该操作***典型地包括BIOS(基本输入输出***)。通信软件210通过直接调用操作***功能或者间接地绕开操作***来访问用于在网络上通信的硬件,经由物理通信链路,通过外部端口提供与诸如因特网的网络的通信。应用编程接口215允许不管是作为个人还是作为软件例程的***用户使用标准一致的接口来调用***功能而不关心如何实现具体功能。因特网软件220代表可用于向计算机配备因特网功能的若干标准商业包的任一个。应用软件225代表设计成通过通信端口对数据作出反应以提供用户寻求的期望功能的软件应用。此层的应用可以包括处理能由因特网用户访问的数据、视频、图形、照片或文本所需的应用。
如图3所示,TCP/IP和类似协议由包括应用层310、传输层312、网络层314以及链路层316的网络的4层通信架构300采用。每层如下所述地负责处理各种通信任务。链路层316(也称作数据链路层或者网络接口层)通常包括操作***中的设备驱动程序以及计算机中的相应网络接口卡。它们一起处理在物理上与正被使用的网络介质如以太网电缆等进行接***互的所有硬件细节。
网络层314(也称作网际层)处理数据分组在网络内的移动。例如,网络层处理在网络上传输的各个数据分组的路由选择。TCP/IP集中的网络层由若干协议构成,包括IP(网际协议)、ICMP(网际控制消息协议)和IGMP(网际组管理协议)。
传输层312提供网络层314和应用层310之间的接口,该接口帮助在两个主机计算机之间传输数据。传输层与如下事情有关:将从应用传给它的数据分成适当大小的用于下面网络层的数据块,确认接收分组、设置超时以确定另一端确认所发送的分组等等。在TCP/IP协议集中,存在两个明显不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠***以保证数据在两个主机之间正确传输,包括信号丢失检测和重传服务。相反,UDP通过仅将称作数据报的数据分组从一个主机发送到另一个主机而不提供任何用于保证数据被正确传输的机制,向应用层提供简单得多的服务。当使用UDP时,应用层必须执行可靠性功能。
应用层310处理具体应用的细节。存在几乎每一个实现都提供的很多常用TCP/IP应用,包括(1)用于远程登录的Telnet;(2)文件传输协议FTP;(3)用于电子邮件的简单邮件传输协议SMTP;以及(4)简单网络管理协议SNMP。
诸如因特网的网络由路由器互连,其中每个路由器一起连接两个或更多个网络。典型路由器包括具有输入和输出连接的专用硬件盒以及允许连接很多不同类型的物理网络如以太网、令牌环(token ring)、点到点链路等的专用硬件和/或嵌入式软件。图4示出包括由路由器436连接到令牌环网434的以太网432的因特网400。虽然图4仅示出通信中的两个主机,但是以太网上的任何主机可以与其上的任何主机,或者令牌环网上的任何主机通信,反之亦然。
如图4所示,路由器436包括网络层模块438(在本例中为IP模块),以及用于连接到主机网络的适当网络驱动器即以太网驱动器440和令牌环驱动器442。在应用层,网络包括FTP客户端420和FTP服务器422。大部分网络应用设计成一端为客户端而另一端为服务器。服务器向各个客户端提供某种类型的服务,在本例中,访问服务器主机上的文件。每层都具有一个或多个用于与其相同层的对等体通信的协议。这些通信协议包括应用层的FTP协议444、传输层的TCP协议446、网络层的IP协议448以及链路层的以太网协议450和令牌环协议454。常见的是,应用层处理用户进程,而较低三层(传输层、网络层和链路层)在操作***如UNIX或Windows操作***的内核中实现。例如,网络接口层的目的是处理通信介质(以太网、令牌环等)的细节。而应用层的目的是处理一个特定用户应用(FTP、Telnet等)。
应用层和传输层使用端到端协议(FTP协议444、TCP协议446)。网络层提供在两个端***和其间的每一个中间***上使用的中继段到中继段(hop-to-hop)协议(为简洁起见,在此仅示出一个中间***)。例如,路由器436的IP模块438采用IP协议448连接到两个主机。还存在特定于连接到路由器的不同类型主机网络的链路层协议,以在链路层处理网络和路由器之间的通信。因此,以太网协议450用来处理路由器436中的以太网驱动器440与以太网432上的主机的以太网驱动器452之间的通信,而令牌环协议454用来处理路由器436的令牌环驱动器442与令牌环网434上主机的令牌环驱动器456之间的通信。
在TCP/IP协议集中,网络层即IP提供不可靠服务。它将数据分组从源处移至目的地,但是没有提供用于保证传送的机制,甚至没有提供用于判定是否已发生正确传输的机制。TCP提供可靠***以保证数据在两个主机之间被正确传输,该服务包括丢失检测和重传服务。
路由器具有两个或更多个网络接口层(因为它连接两个或更多个网络)。任何具有多个接口的***都称作是多驻留的(multi-homed)。主机也可以是多驻留的,但是除非它明确地将分组从一个接口转发到另一个接口,否则它不称作路由器。另外,路由器无需是仅在因特网内移动分组的专用硬件盒。大多数TCP/IP实现允许多驻留主机用作路由器,但是该主机需要明确配置成支持该使用。在这样的情况下,***是主机(当正在使用诸如FTP或Telnet的应用时)或者路由器(当它正在将分组从一个网络转发到另一个网络时)。连接网络的另一种方式是采用桥接器。桥接器在链路层连接网络,而路由器在网络层连接网络。桥接器使得多个LAN对于高层看上去如同是单个LAN一样。
当应用使用TCP/IP发送数据时,数据沿着协议栈逐层向下发送,直到它作为字节流跨越网络发送为止。如图5所示,每层通过向所接收的数据前置报头(并且有时添加报尾信息)。例如,在应用层,应用报头580前置于用户数据582以形成应用数据584。在传输层,将传输层报头前置于应用数据。在图5的情况下,传输层是TCP,因此将TCP报头586前置于应用数据584,从而形成发送到网络层IP的TCP分组588。TCP报头586包括二十字节。类似地,在网络层,将网络层报头前置于传输层数据。在TCP/IP的情况下,将IP报头590前置于TCP分组588以形成IP数据报592。IP报头590也包括二十字节。最后,在链路层,将诸如以太网报头594的介质报头加到从网络层接收的数据以形成数据分组。在某些情况下,例如当介质是以太网时,还将介质报尾附加到数据的末尾。例如,在图5中,将以太网报尾96附加到以太网报头594和IP数据报592以形成以太网分组598。以太网分组包括与原始应用消息数据相对应的流过网络的位流。报头底部的数字(14、20、20、4)是以字节为单位的报头典型大小,例如,以太网报头94包括14字节等。分组的大小将受限于用来传输数据分组的网络类型的最大传输单元(MTU)。例如,以太网的MTU为1500字节。网络层自动执行分段(将数据报分成较小片断),从而使每个片断小于网络的MTU。
图6A示出TCP报头的格式。如图所示,TCP分组600由32位字构成,并且包括20字节(5字)报头。TCP报头605的基本布局包括:
“源端口号”-源(和目的)端口号用于将数据流多路分解到应用。两个主机之间存在多个同时TCP数据流是完全有可能的。TCP数据流由四个数字所构成的组唯一标识。它们是两个主机地址和两个端口号。源端口号是要在对分组的任何回复中用作目的地的端口号。
“目的端口号”-这是远程***上的“目标”端口号。
“顺序号”-这个32位数标识分组中数据的第一字节。
“确认号”-这个32位数是发送主机预期从远程主机接收的下一字节的字节号。远程主机可以推断直到该数减1的所有字节均已被安全接收并且远程主机的本地副本可以被丢弃。
“报头长度”-这个4位字段以32位字为单位指定报头长度。显然,该最大值是15字(60字节),其中考虑到10(40字节)选项。
“标志位”-这个由6位构成的组标识协议中的各种特殊状态。这些位中的若干位可以同时设置。
“窗口大小”-这是根据接收主机可用于存储未确认数据的空间量的转换。除非使用窗口比例因子选项,这些单位是字节。最大值为65535。
“校验和”-这覆盖报头和数据。它通过将伪报头前置于TCP分组来计算。这包括三个32位字,包含源和目的IP地址、设为0的字节、设为6的字节(IP数据报报头中的TCP的协议号)以及分组长度(以“字”为单位)。TCP分组的校验和字段设为零,并且将下面算法施加于视作16位(无符号)字序列的前置分组。注意,在校验和计算中包括IP地址意味着TCP不能容易地在不同于IP的较低层协议上执行。
“紧急指针”-这是用于发送将优先于正常数据流的紧急数据的TCP机制的一部分。如果设置紧急标志,则该字段表示紧急数据的最后字节在数据内的位置。没有指示紧急数据在何处开始的方法。
“选项”-存在不同RFC中所定义的多个选项。最有用的是最大分组大小(MSS)规范设施。
根据本优选实施例的IP报头610的格式如图6B所示,并且以当前赋值为“4”的版本号(版本)开头。接下来四位以长字(32位)为单位表示报头长度字段(报头长度)。对于因特网上的几乎所有数据分组,该值为“5”,这使得报头长度为20字节。然而,如果数据报为称作选项分组的特殊类型,则该数目增大。接下来八位称作“ToS”位,表示分配给该数据报的服务类型。不同应用具有用于从网络传送的不同服务要求,它们在ToS字段中编码。接下来十六位字段是以字节为单位的数据报总长度,从而将IP数据报的长度限制为216;即65535字节。称作“标识”字段的接下来十六位唯一标识由主机发送的每个数据报。下两个字段为标志(FLG)和片断偏移字段,它们用来当数据报通过对数据报最大大小具有限制的网络时对数据报进行分组并且重新组装它们。
图6B的IP报头610所示的下一字段称作“存活时间”或TTL字段,它负责限制数据报可以在网络内进行中继的中继段(hop)数。该字段在网络中的每一个网络节点减小。如果该字段在到达期望目的地之前减小至零,则丢弃该数据报。该机制防止由于某路由选择错误而在两个连网节点之间无限循环。下一字段为协议字段,由主机用来区别该数据报打算用于的较高层应用。这允许在相同两个主机之间同时存在多个应用。报头校验和是下一字段,它通常提供校验和生成功能,并且保证报头的有效性。校验和在整个报头的范围内计算,并且存储在报头中。
根据本优选实施例,报头校验和之后为称作检查TCP校验和(“CK_TCP_CKSUM”)的特殊标志,它指示接收连网节点对整个接收分组执行校验和(如在此所用的“分组校验和”)。根据本优选实施例,当网络中的路由器接收到在IP报头中设有CK_TCP_CKSUM位的分组时,除了利用IP报头610中的报头校验和执行的报头校验和之外,它还将对整个TCP有效载荷600计算校验和。在连网节点上利用存储在分组的TCP报头605中的校验和值来执行整个分组的该校验和。如果未设置CK_TCP_CKSUM位,则仅利用IP报头610中的报头校验和执行报头校验和。
该字段之后为两个地址:源网络地址和目的网络地址。每个主机分配有唯一地址,这允许网络将数据报流从一个节点转发到另一个节点。
当客户端检测到特定数据分组从数据传输流中丢失时,客户端将通过在确认帧中发送丢失分组的第一字节的顺序号来请求服务器重传丢失分组。如图6C所示,TCP确认帧622的格式包括介质报头624、协议报头626、接收顺序号字段628以及发送顺序号字段630。介质报头624将特定于网络类型,例如以太网的以太网报头等。协议报头626将依赖于所使用的传输和网络层协议如TCP/IP、IPX/SPX、Netbios等等。接收顺序号字段628提供由计算机可靠接收的最后一个顺序号的标识符。发送顺序号630对应于消息的相对顺序号。
根据本发明的优选实施例,校验和失败(CKSUM_FAIL)标志632提供当对接收分组的TCP校验和失败时可以由接收主机设置的专用标志。当确定接收分组包含受损数据时,接收主机将在返回给服务器主机的确认帧622中设置校验和识别标志632。
在图1的简化因特网图示中,数据报以自动方式从源转发到目的地。从发送主机的角度来看,它仅知道目的地址,而不知道数据报到达最终目的地的路径。对于IP数据报的自动传送,提供了在因特网内部的中间连网节点上运行的IP路由选择协议的和谐共存,IP路由选择协议是通过称作IP路由选择PDU的路由选择数据报与其他网际互连节点共享连网地址信息的每个网际互连节点上的智能机制。每个网际互连节点上的IP路由选择协议创建并维护允许它将进入数据报转发到朝向其最终目的地的路线上的下一个网际互连节点的数据库。
图7给出诸如因特网的网络的图示。在图7的例子中,示出了十一个主机连接到十三个路由器的网络,这些主机在地理位置上是独立的。称作路由器的每个连网节点具有与全部连网节点的一个子集的连接。互连可能不是完全的;也就是,每个路由器可能不直接连接到网络中的每一个其他路由器。作为例子,假定主机1希望将数据报发送到主机9。主机1可以通过将数据报发送到路由器1来以几种方法实现这一点。然后路由器1可以将数据报转发到路由器2,路由器2将该数据报转发到最终目的路由器9,路由器9将其转发到主机9。主机1也可能发送数据报到路由器1,然后路由器1将该数据报转发到路由器11,路由器11将其转发到路由器10,路由器10将其转发到路由器8,最终路由器8可以将该数据报转发到路由器9,路由器9又将其发送到主机9。
很多共存IP路由选择协议共同为路由器1提供信息以确定它将数据报转发到哪个路由器(上面例子中的路由器2或路由器11,并且在因特网的每一个网际互连节点提出相同的问题)以创建非完全互连因特网中的网络。每个路由器创建它通过网际路由选择协议从其他路由器得知的目的网络地址的分层拓扑结构的数据库,该数据库称作路由选择表。根据路由选择表,每个路由器创建称作“转发表”的另一个数据库,它将目的网络地址映射到其接口之一;意味着,如果路由器经由直接连接的接口从主机或者其他路由器获得数据报,则通过检查报头中的目的网络地址并且将它应用于路由选择表,路由器可以确定应该使用本地接口或端口中的哪一个来转发数据报。使用这两个表即路由选择表和转发表,通过检查数据报IP报头并且查询转发表以查找要向其发送数据报的下一个接口,进入网络的数据报因此可以转发到最终目的地。存在两个非常流行的IP路由选择协议BGP和OSPF,它们包括IPv6和MPLS。IPv6是解决地址空间限制的提案。另一方面,MPLS是流线化IP数据报的转发过程的提案。这两个提案的共同主题之一是丢弃IP报头层的任何校验和字段。然而,本发明的基础是发现可以通过如下所述增强校验和功能而获得的显著优点。
图8示出在IP连网节点中接受和转发IP数据报所需的路由器中的硬件。路由器必须首先处理进入分组的IP报头。数据报的外出接口根据进入IP数据报中的进入目的地址来确定。一旦报头得到验证,则数据发送到连网节点中的另一个端口或者连网节点内的路由选择引擎。路由器连网节点的典型架构采用连接到连网节点的多个接口的路由选择引擎800来实现。发往路由选择引擎800的所有IP路由选择协议数据通过所有进入端口转发到路由选择引擎800。路由选择引擎800检查路由选择协议PDU,并且得知各个网络的目的网络地址,然后计算网络地址的外出接口号。目的网络地址和外出接口号形成一个条目到转发表中(如图9A中的转发表904的例子所示)。然后,路由选择引擎800将转发表或其更新发送到每个进入接口,从而指示每个进入报头处理单元(图8中的单元801-804)如何确定每个进入数据报的出去接口。然后,每个进入报头处理单元将验证每个数据报,检查目的地字段,然后在转发表中对目的地进行索引以确定数据报的外出端口号。
现在使用图8的高层连网节点图来详细描述一个示例性过程。假定IP路由选择协议的某些组合,分别附于单元801、802、803和804的另一侧上的路由器分别告知网络地址a、b和c,网络地址c、d和e,网络地址a、f和g以及最后是网络地址h、i和j的可到达性。在该简单例子中,路由选择引擎800知道以输出端口810-840表示的多个出去或者输出端口。路由选择引擎800将根据很多选项之一如成本、中继段计数等决定最佳出去端口以例如到达目的网络地址‘a’和目的网络地址‘c’。对于本例,假定路由选择引擎800选择与端口810的接口来转发所有发往网络地址‘a’的数据报,并且它选择端口820来转发所有发往网络地址‘c’的数据报,则路由选择引擎800将在其上创建图9所示的转发表904。实际上,骨干路由器上的转发表可以扩展至数万条目。图9A中的每个网络地址作为以四个字节表示实际网络地址的四个数字列在括号内。然后,路由选择引擎800将转发表转发到每个输入或进入数据端口,以允许报头处理单元801-804检查所有进入数据报,并且匹配转发表中的目的地址,从而确定相应适当的输出或外出接口端口810、820、830、840。然后,通过交换机805将该数据报发送到输出端口。
回到图7,现在提供本优选实施例如何提供导致高数据讹误的网络内数据路径的快速检测和避开的例子。在本例中,网络700内的链路2正在拾取对在该链路上穿过的分组导致数据讹误的噪声。因此,当主机5向主机8发起数据通信时,数据流有可能通过路径链路1-链路4拾取链路2中的噪声。如果受损数据分组允许从主机5穿过网络700至主机8,则主机8将对接收分组执行校验和,并且确定一些数据分组具有受损数据。然而,由于主机5和主机8没有足够信息来确定受损数据分组通过网络700所采取的路径,因此它们不能明确辨别导致讹误的链路,并且指示网络700避开讹误链路。然而,根据本优选实施例,主机8发送设有校验和失败位632的确认分组622,从而表示所接收的顺序号分组具有数据讹误并且请求网络实现本优选实施例的快速检测和讹误链路避开例程。
根据本优选实施例,当主机5接收到设有校验和失败位632(CKSUM_FAIL)的确认帧622时,主机5将开始在其与主机8正在进行的当前通信会话内传输在其IP报头中设有检查-TCP-校验和(CK_TCP_CKSUM)的所有分组,从而请求所有接收路由器对接收分组执行分组校验和。当接收到设有检查-TCP-校验和位的分组时,主机5将对整个分组执行完整的校验和,而不是仅仅对IP报头执行校验和。在一个优选实施例中,分组校验和通过执行如结合IP报头610和TCP报头605所述的IP报头校验和与TCP有效载荷校验和来执行。在另一个替换实施例中,CK_TCP_CKSUM位扩展至为包括TCP/IP有效载荷在内的整个分组提供校验和值的字段,并且对该组合值执行校验和。
假定链路1没有引入错误,则由路由器5执行的分组校验和将确认分组是良好的,并且将允许路由器5继续根据目的端口对分组进行路由选择。然后,路由器5中的路由选择和转发表将引导链路2上发往主机8的途中的数据分组。当接收到数据分组时,路由器13将检测到检查-TCP-校验和位已被设置,并且将对整个分组执行分组校验和。由于链路2一直在引入噪声,因此由路由器13执行的分组校验和将失败,从而表示主机5与路由器13之间的链路是坏的。然后,路由器13将丢弃受损分组,并且更新维护在设定周期内被检测为讹误的分组数的计数的寄存器。
如图9B所示,根据一个优选实施例,路由器存储器900内的寄存器920记录由其路由器接收的分组的总数,并且寄存器910记录受损接收分组数。寄存器910包括:寄存器912,包含在端口1(CP_PORT 1)上检测的受损分组数的值;寄存器914,包含在端口2(CP_PORT 2)上检测的受损分组数的值;寄存器916,包含在端口3(CP_PORT 3)上检测的受损分组数的值;以及寄存器918,包含在端口4(CP_PORT 4)上检测的受损分组数的值。寄存器920包括:寄存器922,包含在端口1(TP_PORT 1)上接收的数据分组总数的值;寄存器924,包含在端口2(TP_PORT 2)上接收的数据分组总数的值;寄存器926,包含在端口3(TP_PORT 3)上接收的数据分组总数的值;以及寄存器928,包含在端口4(TP_PORT 4)上接收的数据分组总数的值。寄存器910和920周期性地例如每五分钟复位至“0”。
当路由器在其端口之一上接收到分组时,对与该端口相对应的寄存器920中的值增1,并且如果检测到该分组受损,则对与该端口相对应的寄存器910中的值增1。因此,例如,如果路由器13在其输入端口3上连接到链路2,则每次在端口3上接收到数据分组时,存储在寄存器926中的变量将增“1”,另外,每次在端口3上接收到受损分组时,存储在寄存器916中的变量将增“1”。
路由器连续监测特定端口上的受损分组与在该端口上接收的分组总数之比(即CP_PORT_/TP_PORT_)。如果特定端口的比率超过由路由器的管理策略预设的“讹误阈值”,则指示该链路是讹误的。在一个优选实施例中,如果在给定五分组间隔内的受损与接收分组之比超过百分之二十(20%)阈值,则认为该链路是坏的。如果特定端口的受损与接收分组之比不超过预设阈值,则路由器将继续如同平常操作,并且继续使用连接到该端口的链路。
因此,根据本优选实施例,如果特定端口的受损与接收分组之比超过讹误阈值,则路由器认为相关链路正在导致数据讹误,并且将更新其路由选择表以从路由选择中排除该链路。根据路由选择协议的需要,路由器还将路由选择更新发到网络中的其他路由器,从而表示该链路是讹误的并且应该被避开。在一个优选实施例中,利用由OSPF(公开最短路径最先)协议提供的链路状态告知(LSA)来向耦合到端口1-4的其他路由器提供路由选择更新,并且通知避开所识别的受损链路。OSPF是根据最短路径最先或者链路状态算法为IP网络开发的内部网关路由选择协议。路由器使用链路状态算法以根据由每个节点构成的因特网的拓扑结构计算到每个节点的最低路径来将路由选择信息发送到因特网络中的所有节点。每个路由器发送描述其自己链路的状态的路由选择表的那一部分,并且它还发送完整的路由选择结构(拓扑结构)。
回到图7的例子,在根据本发明判定链路2受损之前,从主机5到主机8的重传速率将由于很多受损分组沿着链路1-2-3-4的路径的所需快速重传而看到较大的增长。一旦根据本发明判定链路2正在导致讹误并且应被避开,路由器13就向网络发出路由选择更新,这将导致路由器5在链路5-6-7-8-4上转发数据分组以到达主机8,从而避开受损链路2。通过链路1-5-6-7-8-4的新路径,主机5将看到丢失或受损数据分组的重传速率对于主机5与主机8之间的连接会话开始显著下降。因此,当重传速率降至由管理策略设置的预定级别之下时,主机5则可以通过本优选实施例的过程认为在网络700内检测到坏链路并且避开了它,因此将停止在发送到主机8的数据分组的IP报头中设置CK_TCP_CKSUM选项。
应该理解,本优选实施例比当前路由选择算法和网络提供较大的优点。首先,网络堵塞得到显著的缓解,因为当检测到讹误时在路由器丢弃受损分组,从而消除了受损分组自始至终到接收客户端主机的传播。第二,通过对目标特定数据分组提供一种机制来进行分组校验和计算,增大了在链路上进行错误检测的概率,从而路由选择协议更快地对潜在链路故障作出反应。
现在参照图10,示出了根据本发明优选实施例的在客户端-服务器***中执行的用于指示网络内的数据讹误的过程。当客户端在网络连接上接收数据分组时,过程1000开始于步骤1005。在步骤1010,客户端通过对整个数据分组执行校验和来判定接收数据分组是否是讹误的。如果不是,则过程传到步骤1015,该步骤表示客户端通过发送对CKSUM_FAIL标志进行了复位的分组确认帧来响应数据分组的接收,从而表示接收数据分组在客户端通过了校验和测试。从步骤1015,该过程结束于步骤1022。回到判定块1010,如果接收数据分组被判定为受损,则过程传到步骤1020,其中客户端发送设有CKSUM_FAIL标志的接收分组确认帧,从而表示接收分组没有通过校验和测试,并且数据分组是讹误的。从步骤1020,过程结束于步骤1022。
现在参照图11,示出了根据本发明优选实施例的在客户端-服务器***中执行的用于指示网络内的数据讹误的过程。当客户端接收到设有CKSUM_FAIL标志的分组确认帧时,过程1100开始于步骤1105。该过程传到步骤1130,其中服务器通过将在每个该数据分组的IP报头中设有CK_TCP_CKSUM标志的所有随后数据分组发送到客户端,从而当接收时,请求网络中接收该数据分组的每个路由器对整个分组执行分组校验和。然后,过程传到步骤1135,其中作为用于将丢失或讹误数据分组传送到客户端的TCP快速重传算法的结果,服务器存储发送主机正被要求将数据分组重新发送到客户端主机的比率(“当前重传速率”)。然后,过程传到判定块1140,其中服务器判定客户端的当前重传速率是否已降至存储在服务器中的预定阈值重传速率之下。如果不是,则过程返回到步骤1130,其中将最近当前重传速率存储在服务器中。如果步骤1140中的判定表示当前重传速率降至阈值重传速率之下,则认为当前重传速率中的下降是根据本发明由网络内的路由器检测和避开服务器主机与客户端主机之间的路径内的讹误链路的结果,并且过程传到步骤1045,其中服务器将对CK_TCP_CKSUM进行了复位的随后分组发送到客户端,从而不请求网络中接收到该数据分组的路由器对整个数据分组执行分组校验和。
现在参照图12,示出了根据本发明一个优选实施例的在网络路由器中执行的用于提供快速检测和避开网络内导致高数据讹误的数据路径的过程。过程1200开始于步骤1205,并且传到步骤1210,其中网络内的路由器在给定接口上接收网络连接上的数据分组,并且增加在该接口(TP_PORT_)上接收的总分组数的存储值(存储在寄存器920中)。然后,过程传到判定块1215,其中判定是否设置了接收数据分组的IP报头中的CK_TCP_CKSUM标志。如果不是,则过程传到步骤1220,其中路由器对分组的IP报头执行校验和。然后,过程传到判定块1225,其中判定校验和测试是否通过。如果不是,则过程传到步骤1230,其中路由器丢弃分组,然后过程结束于步骤1235。如果步骤1225上的判定是校验和通过,则过程传到步骤1240,其中数据分组通过网络朝向客户端转发到路径中的下一个路由器(下一个中继段)。其后,过程结束于步骤1235。
回到判定块1215,如果在通过网络接收的数据分组中设置了CK_TCP_CKSUM,则过程传到步骤1245,其中路由器对所接收的整个数据分组执行分组校验和。然后,过程传到判定块1250,其中判定整个数据分组的分组校验和是否通过。如果是,则过程回传到步骤1240,其中数据分组通过网络朝向客户端转发到路径中的下一个中继段。如果步骤1250的判定是分组校验和未通过,则过程传到步骤1255,其中路由器丢弃接收分组。然后,过程传到步骤1260,其中路由器增加在端口(C_PORT_)上接收的检测受损分组数的分类值(存储在寄存器910中)。其后,过程传到判定块1265,其中判定C_PORT_的值是否超过***的讹误阈值。在一个优选实施例中,讹误阈值是一个百分比,并且步骤1265的判定是接收受损分组数与接收总分组数的百分比(C_PORT_/TP_PORT)是否大于讹误阈值百分比。如果步骤1270的判定是否定的,则过程结束于步骤1235。如果步骤1265的判定是肯定的,则过程传到步骤1270,其中路由器更新其转发表以避开该端口上的链路,并且将表示链路讹误的路由选择更新传输到网络,从而更新讹误链路上的所有网络路由器。其后,过程结束于步骤1235。
尽管本发明是参照其优选实施例来具体描述的,但本领域的技术人员应当理解,在不脱离本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。例如,本发明可以利用计算机程序软件、固件或硬件的任意组合来实现。作为实施本发明或构造根据本发明的设备的预备步骤,根据本发明的计算机程序代码(无论是软件或固件)一般将存储在一个或多个机器可读存储介质例如固定(硬盘)驱动器、软盘、光盘、磁带、诸如ROM、PROM的半导体存储器等等中,从而产生根据本发明的产品。该包含计算机程序代码的产品通过直接从存储装置执行代码,通过将代码从存储装置复制到诸如硬盘、RAM等的另一个存储装置中,或者通过传输该代码以进行远程执行来使用。用于实施本发明的方法可以通过组合一个或多个包含该代码的机器可读存储装置与用来执行该代码的适当标准计算机硬件来实施。用于实施本发明的设备可以是一个或多个包含或具有对根据本发明编码的计算机程序的网络访问的计算机和存储***。
Claims (20)
1.一种IP网络中用于检测和避开导致数据讹误的数据链路的方法,所述方法包括以下步骤:
在IP网络内的路由器中接收数据链路上的数据分组,其中,数据分组来源于一个发送者,发往一个接收者,并且包含要对整个数据分组执行校验和的指示;
响应接收到包含要对整个数据分组执行校验和的指示的数据分组,对整个数据分组执行校验和;
响应整个数据分组的校验和失败,修改表示在校验和失败的数据链路上接收的数据分组数的值;以及
如果该值超过路由器的讹误阈值,则执行路由选择更新以避免在该数据链路上传输数据分组。
2.根据权利要求1所述的方法,还包括以下步骤:将指示接收数据分组讹误的分组确认信息从接收者发送到发送者。
3.根据权利要求1所述的方法,还包括以下步骤:在从接收者接收到指示接收数据分组讹误的分组确认信息之后,将数据分组从发送者发送到接收者,其中该数据分组包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示。
4.根据权利要求1所述的方法,还包括以下步骤:确定从发送者到接收者的数据分组的重传速率,并且将数据分组从发送者发送到接收者,其中如果重传速率低于预定阈值,则数据分组不包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示。
5.根据权利要求1所述的方法,还包括以下步骤:
(a)从接收者接收指示接收数据分组讹误的分组确认信息;
(b)在接收到分组确认信息之后,将包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示的数据分组从发送者发送到接收者;
(c)确定从发送者到接收者的数据分组的重传速率;以及
(d)执行步骤(b),直到在步骤(c)判定重传速率小于预定阈值,然后执行步骤(e);
(e)将不包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示的数据分组从发送者发送到接收者。
6.根据权利要求1所述的方法,其中,整个数据分组包括数据分组的IP报头、TCP报头和数据有效载荷。
7.根据权利要求1所述的方法,其中,所述值存储在路由器的寄存器中。
8.根据权利要求1所述的方法,其中,所述指示是设在数据分组的IP报头中的标志。
9.根据权利要求1所述的方法,其中,遵循公开最短路径最先执行路由选择更新。
10.根据权利要求1所述的方法,其中IP网络为TCP/IP网络,并且数据分组来源于TCP发送者,发往TCP接收者。
11.一种用于在IP网络中检测和避开导致数据讹误的数据链路的***,所述***包括:
用于在IP网络内的路由器接收数据链路上的数据分组的装置,其中,数据分组来源于一个发送者,发往一个接收者,并且包含要对整个数据分组执行校验和的指示;
用于响应接收到包含要对整个数据分组执行校验和的指示的数据分组,对整个数据分组执行校验和的装置;
用于响应整个数据分组的校验和失败,修改表示在校验和失败的数据链路上接收的数据分组数的值的装置;以及
用于如果该值超过路由器的讹误阈值,则执行路由选择更新以避免在该数据链路上传输数据分组的装置。
12.根据权利要求11所述的***,还包括用于将指示接收数据分组讹误的分组确认信息从接收者发送到发送者的装置。
13.根据权利要求11所述的***,还包括用于在从接收者接收到指示接收数据分组讹误的分组确认信息之后,将数据分组从发送者发送到接收者的装置,其中该数据分组包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示。
14.根据权利要求11所述的***,还包括用于确定从发送者到接收者的数据分组的重传速率,并且将数据分组从发送者发送到接收者的装置,其中如果重传速率低于预定阈值,则数据分组不包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示。
15.根据权利要求11所述的***,还包括用于执行以下步骤的装置:
(a)从接收者接收指示接收数据分组讹误的分组确认信息;
(b)在接收到分组确认信息之后,将包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示的数据分组从发送者发送到接收者;
(c)确定从发送者到接收者的数据分组的重传速率;以及
(d)执行步骤(b),直到在步骤(c)判定重传速率小于预定阈值,然后执行步骤(e);
(e)将不包含接收发往接收者的途中的数据分组的路由器应对整个数据分组检查数据讹误的指示的数据分组从发送者发送到接收者。
16.根据权利要求11所述的***,其中,整个数据分组包括数据分组的IP报头、TCP报头和数据有效载荷。
17.根据权利要求11所述的***,其中,所述值存储在路由器的寄存器中。
18.根据权利要求11所述的***,其中,所述指示是设在数据分组的IP报头中的标志。
19.根据权利要求11所述的***,其中,遵循公开最短路径最先执行路由选择更新。
20.根据权利要求11所述的***,其中IP网络为TCP/IP网络,并且数据分组来源于TCP发送者,发往TCP接收者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/640,819 | 2003-08-14 | ||
US10/640,819 US7394769B2 (en) | 2003-08-14 | 2003-08-14 | Method, system and article for rapid detection and avoidance of high data corrupting routes within a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1581764A CN1581764A (zh) | 2005-02-16 |
CN1281020C true CN1281020C (zh) | 2006-10-18 |
Family
ID=34136176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100566222A Expired - Fee Related CN1281020C (zh) | 2003-08-14 | 2004-08-13 | 检测和避开网络内高数据讹误路径的方法和*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US7394769B2 (zh) |
CN (1) | CN1281020C (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7570581B2 (en) * | 2004-09-23 | 2009-08-04 | Motorola, Inc. | Dynamic reduction of route reconvergence time |
EP1696637B1 (de) * | 2005-02-28 | 2008-01-02 | Siemens AG | Verfahren zur Reduktion von Datenpaketverlusten beim Aktualisieren einer Adresstabelle |
CN100571202C (zh) * | 2006-01-27 | 2009-12-16 | 华为技术有限公司 | 一种自带路由信息的数据的传送方法及传送*** |
US20080101382A1 (en) * | 2006-10-26 | 2008-05-01 | Bannerjee Dwip N | Efficient method for discovering path mtu for tcp connections |
US8223628B2 (en) * | 2007-01-10 | 2012-07-17 | Lantiq Deutschland Gmbh | Data transmission method, transmitter, receiver, transceiver and transmission system |
US9686045B2 (en) * | 2007-04-04 | 2017-06-20 | Lantiq Beteiligungs-GmbH & Co. KG | Data transmission and retransmission |
ES2436698T3 (es) * | 2007-10-29 | 2014-01-03 | Interdigital Patent Holdings, Inc | Método para detectar un fallo en un radioenlace que transmite a través de un canal especializado o dedicado mejorado en un estado CELL_FACH |
US8693483B2 (en) * | 2007-11-27 | 2014-04-08 | International Business Machines Corporation | Adjusting MSS of packets sent to a bridge device positioned between virtual and physical LANS |
RU2010140488A (ru) | 2008-03-07 | 2012-04-20 | 1. Нокиа Сименс Нетуоркс Ой (FI) | Протоколы для системы передачи с многократным переприемом и централизованным планированием |
US7991750B1 (en) * | 2008-06-10 | 2011-08-02 | Network Appliance, Inc. | Application recovery from network-induced data corruption |
GB2462492B (en) * | 2008-08-14 | 2012-08-15 | Gnodal Ltd | A multi-path network |
CN101420341B (zh) * | 2008-12-08 | 2011-01-05 | 福建星网锐捷网络有限公司 | 嵌入式***的处理器性能测试方法和装置 |
US9154413B2 (en) * | 2012-06-21 | 2015-10-06 | Breakingpoint Systems, Inc. | High-speed CLD-based pipeline architecture |
US9660836B2 (en) | 2014-05-06 | 2017-05-23 | Lattice Semiconductor Corporation | Network topology discovery |
US9590825B2 (en) | 2014-05-09 | 2017-03-07 | Lattice Semiconductor Corporation | Stream creation with limited topology information |
FR3022094B1 (fr) * | 2014-06-06 | 2017-12-08 | Bull Sas | Methode et systeme de controle de flux |
US10078356B2 (en) * | 2015-08-20 | 2018-09-18 | Intel Corporation | Apparatus and method for saving and restoring data for power saving in a processor |
US10320954B2 (en) | 2017-02-03 | 2019-06-11 | Microsoft Technology Licensing, Llc | Diffusing packets to identify faulty network apparatuses in multipath inter-data center networks |
US10651974B2 (en) * | 2017-02-28 | 2020-05-12 | Marvell Asia Pte, Ltd. | Method and apparatus for updating error detection information in packets |
US10361837B2 (en) | 2017-06-16 | 2019-07-23 | Cisco Technology, Inc. | Selective proxy to alleviate adjacent channel interference in full duplex cable network environments |
US11303504B2 (en) | 2020-06-09 | 2022-04-12 | T-Mobile Usa, Inc. | Data link error feedback signaling |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3688877B2 (ja) * | 1997-08-08 | 2005-08-31 | 株式会社東芝 | ノード装置及びラベルスイッチングパスのループ検出方法 |
US6330614B1 (en) | 1998-03-20 | 2001-12-11 | Nexabit Networks Llc | Internet and related networks, a method of and system for substitute use of checksum field space in information processing datagram headers for obviating processing speed and addressing space limitations and providing other features |
US6097697A (en) * | 1998-07-17 | 2000-08-01 | Sitara Networks, Inc. | Congestion control |
US6912196B1 (en) * | 2000-05-15 | 2005-06-28 | Dunti, Llc | Communication network and protocol which can efficiently maintain transmission across a disrupted network |
US7200146B2 (en) * | 2001-08-17 | 2007-04-03 | Intel Corporation | System and method of IP packet forwarding across directly connected forwarding elements |
-
2003
- 2003-08-14 US US10/640,819 patent/US7394769B2/en active Active
-
2004
- 2004-08-13 CN CNB2004100566222A patent/CN1281020C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1581764A (zh) | 2005-02-16 |
US7394769B2 (en) | 2008-07-01 |
US20050036452A1 (en) | 2005-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1281020C (zh) | 检测和避开网络内高数据讹误路径的方法和*** | |
US5519704A (en) | Reliable transport protocol for internetwork routing | |
CN100493035C (zh) | 通过动态设置重组计时器改进网络性能的方法和*** | |
CN1836418B (zh) | 分组重新排序之后改进传输层性能的方法和*** | |
Speakman et al. | PGM reliable transport protocol specification | |
US20070171828A1 (en) | Method of determining a maximum transmission unit value of a network path using transport layer feedback | |
US20080137669A1 (en) | Network of nodes | |
US11057319B2 (en) | System and method for recovery of packets in overlay networks | |
US7283476B2 (en) | Identity negotiation switch protocols | |
US7430164B2 (en) | Path recovery on failure in load balancing switch protocols | |
CN1791106A (zh) | 响应选择确认重发时改进传输控制协议性能的方法和*** | |
US6625773B1 (en) | System for multicast communications in packet switched networks | |
US6700871B1 (en) | Increased throughput across data network interface by dropping redundant packets | |
CN101065677A (zh) | 被配置用于根据规定路由协议输出指定了所连接的活动路径的检测到的属性变化的更新消息的路由器 | |
CN103918304A (zh) | 用于无线通信网络中的多径传输连接的动态子流控制 | |
CN1791073A (zh) | 路由消息分组的***、方法和程序产品 | |
US6611874B1 (en) | Method for improving routing distribution within an internet and system for implementing said method | |
WO2008066815A2 (en) | A method and apparatus for reliable multicasting in wireless relay networks | |
US20050188107A1 (en) | Redundant pipelined file transfer | |
CN1309201C (zh) | 用于网络传输丢失容限的客户端应用控制的方法和*** | |
CN100352239C (zh) | 主机中分组终端的路由器辅助快速处理方法、*** | |
JP2005229575A (ja) | デジタルネットワークにおけるセグメントを基にするリンク層のための誤り制御機構 | |
US7978598B1 (en) | Connection replication | |
JP2006005775A (ja) | ネットワーク性能劣化原因判定方法及び輻輳制御方法 | |
US8451711B1 (en) | Methods and apparatus for redirecting traffic in the presence of network address translation |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061018 |