在网络的内容网关处对乱序数据分组的解析的利记博彩app

文档序号:6143296阅读:137来源:国知局
专利名称:在网络的内容网关处对乱序数据分组的解析的利记博彩app
技术领域
本发明涉及在网关节点处对去往网络的数据分组进行解析,以基于通 过该网关的数据分组的内容来管理网络。
背景技术
通过外部通信链路连接的通用计算机系统和专用设备的网络在商业领 域公知并被广泛利用。网络通常包括有助于计算机系统和设备之间的信息 的通信的一个或多个网络设备。网络节点是通过通信链路连接的网络设 备、计算机或专用设备。端节点是被配置为发起或终结网络上的通信的节 点。中间网络节点有助于端节点之间的数据的通信。一些中间网络节点充当去往网络或特定网络服务提供商的部分网络的网关。这种网关节点(下文中称为网关)不仅转发数据分组,而且为提供 商的网络的管理提供一些其他功能,诸如仅将访问限制到被授权的用户。 另外, 一些中间网络节点充当内容网关。这种内容网关基于相同的两个端 节点之间的数据分组流中的一个或多个数据分组的内容来提供对于网络的 管理功能。内容网关的功能包括评估由不同类型的有效载荷(例如,网 页、文件传送、电子邮件以及音频和视频内容的流传输)引起的流量部 分、基于有效载荷的类型进行路由、以及对于不同类型的有效载荷的不同 收费等。这种内容网关必须解析与相同的两个端节点之间的每个流相关联的若 干数据分组的有效载荷中的数据。解析包括解释一个或多个有效载荷中的 数据。当分组被顺序解析时,这种解析更加迅速和容易,因为至少一些数据的含义取决于它在数据分组流中的位置。诸如传输控制协议(TCP)之 类的若干传输层协议通过在每个数据分组中包括序列号(sequence number)来支持数据分组的排序。当前,内容网关通过存储乱序(out of order)分组直到丢失的分组到 达为止来处理乱序到达的流的数据分组。在数据分组被解析之前不对数据 分组进行转发,以防止提供商的网络资源的未被授权的使用。当丢失的数 据分组被接收时,丢失且乱序数据分组的解析可以继续。然后,这些解析 后的数据分组被转发。这种方法的问题在于,在一些情况下网络吞吐量显 著降低,尤其是在输入流通过不太可靠的接入网络时(这时伴随着频繁丢 掉的分组)。


在附图的图形中通过示例而不是限制示出了本发明,并且相同的标号表示相同的元件,其中图l示出了具有内容网关的示例网络;图2示出了示例有序数据分组(sequenced data packet);图3示出了使用有效的选择性确认的示例数据流; 图4A示出了与其上的解析会干扰选择性确认的内容网关有关的示例 数据流;图4B示出了与其上的解析能较好地支持选择性确认的内容网关有关 的示例数据流;图5示出了用于在内容网关上进行解析的高级别方法;以及 图6示出了本发明的实施例可以在其上实现的计算机系统。
具体实施方式
描述了用于在内容网关上解析乱序数据分组的技术。在以下描述中, 出于说明的目的,阐述了大量具体细节以提供对本发明的全面理解。然 而,对于本领域技术人员很明显的是,本发明可以在没有这些具体细节的 情况下实施。在其他实例中,以框图形式示出了公知的结构和设备,以避 免对本发明的不必要的模糊。下面在接入网络和提供商的网络之间的内容网关处接收、并利用TCP 选择性确认选项(SACK)确认的可靠流的TCP数据分组的情况下,描述若干实施例。然而,本发明不限于这种情况。在其他实施例中, 一个或多 个内容网关被置于相同或不同网络或子网络之间,该相同或不同网络或子 网络在存在或不存在SACK的情况下未被确认的不可靠流或被确认的可靠 流中、使用相同或不同协议的有序数据分组。
1.0综述
在一组实施例中, 一种方法包括在网络的本地节点处接收来自源节 点、去往目的地节点的由多个有序数据分组组成的流中的有序数据分组。 本地节点将对该流进行解析,以确定该流中的用于描述该流的特定数据以 用于网络管理。基于有序数据分组中的序列数据,确定该有序数据分组在 该流中是否顺序错误(乱序的)。如果确定该有序数据分组顺序错误,则 在解析该有序数据分组之前向目的地节点转发该有序数据分组。该顺序错 误的有序数据分组还在本地节点处被存储用于随后进行解析。
在各种其他实施例中, 一种装置或软件被配置为执行以上方法的一个
或多个步骤。
2.0网络综述
网络节点之间的通信通常通过交换离散的数据分组来实现。根据一个 或多个公知的、新的或仍在开发的协议,在数据分组中交换信息。在这种 情况下,协议包括定义节点如何基于通信链路上发送的信息来相互作用的
一组规则。每个分组一般包括l]与特定协议相关联的头部信息,2]跟随 头部信息且包含可以独立于那个特定协议而被处理的信息的有效载荷信 息。在一些协议中,分组包括3]在有效载荷之后、指示有效载荷信息的 结束的尾部信息。头部包括协议使用的信息,诸如分组的源、它的目的 地、有效载荷的长度以及其他特性。通常,用于特定协议的有效载荷中的 数据包括与用于信息交换的不同层的细节相关联的用于不同协议的头部和 有效载荷。用于特定协议的头部可以指示包含在其有效载荷中的下一个协 议的类型。有效载荷中的一般较高层的协议被认为密封在较低层协议中。 包括在横穿多个异构网(诸如,互联网)的分组中的头部一般包括物理
8(第1层)头部、数据链路(第2层)头部、互联网(第3层)头部以及
传输(第4层)头部,如开放系统互连(OSI)参考模型所定义的。OSI参 考模型在由Radia Perlman于1999年9月出版的题为"Interconnections Second Edition"的参考书的1.1节中有更加详细的描述,这一部分通过引 用结合于此,如同在这里进行了完全阐述一样。
数据链路头部提供定义一个网络节点和相邻节点之间的特定通信链路 的信息。互联网头部提供定义计算机网络内的源和目的地地址的信息。特 别地,路径可以跨越多个物理链路。可以根据互联网协议(IP)来对互联 网头部进行格式化,其中,互联网协议指定了逻辑路径的端点处的源和目 的地节点的IP地址。所以,分组可以沿着它的逻辑路径从节点"跳"到节 点,直到它到达分配给存储在分组的互联网头部中的目标IP地址的端节点 为止。在每跳之后,如果必要的话,可以对分组的数据链路头部中的源或 目的地地址进行更新。然而,当分组在网络中被从链路传送到链路时,源 和目的地IP地址一般保持不变。IP有效载荷通常包括用于应用的数据 (第7层头部和有效载荷)。
路由器和交换机是确定采用哪个或哪些通信链路来支持通过网络的数 据分组的进展的网络设备。基于互联网头部(第3层)中的信息确定采用 哪些链路的网络节点被称为路由器。
计算机进程交互的客户端一服务器模型被广泛知晓和使用。根据客户 端一服务器模型,客户端进程发送包括请求的消息给服务器进程,服务器 进程通过提供服务进行响应。服务器进程还可以向客户端进程返回具有响 应的消息。通常,客户端进程和服务器进程在被称为主机的不同计算机设 备上运行,并且使用用于网络通信的一个或多个协议经由网络进行通信。 术语"服务器"传统上被用于指提供服务的进程,或进程在其上运行的主 计算机。类似地,术语"客户端"传统上被用于指作出请求的进程,或进 程在其上运行的主计算机。如本文中所使用的,术语"客户端"和"服务 器"指进程而不是主计算机,除非从上下文可以明了的以外。另外,由于 可靠性、可测量性以及冗余性的原因(不限于这些原因),由服务器执行 的进程可以被分解为在多个主机(有时称为等级)上运行的多个服务器。图1示出了具有内容网关160的示例网络100。网络100包括接入网 络102a和各种子网络102b。端节点120a和端节点120b (下文中统称为端 节点120)被连接至接入网络102a。在一些实施例中,接入网络102a是无 线接入网络。端节点120的用户请求在各种子网络102b上可用的资源。
各种子网络102b包括内容网关160、认证、授权和计费(AAA)服务 器114和收费服务器(billing server) 180、以及其他服务器170a、服务器 170b、服务器170c、服务器170d (下文中统称为服务器170)。在一些实 施例中,子网络102b是被称为较大的提供商网络(未示出)的围墙花园 (walled garden)的部分。围墙花园存有为其支付了费用的特殊内容,并 且收费取决于内容类型和所检索的数量。接入网络102a上的一个或多个中 间节点被如图所示地直接连接或通过较大的提供商网络(未示出)间接连 接至内容网关160。诸如远程用户拨号认证系统(RADIUS)之类的AAA 服务器114被内容网关160用来验证在网关160处接收的数据分组的用 户,并且是从在网关160处接收的数据分组解析出的一些数据的接收者。 收费服务器180被内容网关160用来确定在网关160处接收的数据分组的 用户的帐户,并且是从在网关160处接收的数据分组解析出的一些数据的 接收者,诸如关于所获取的资源的数据(诸如用户请求的有效载荷的位 置、数量和类型)。解析后的数据被收费服务器180用来向用户收取对于 用户所获取的资源的费用。服务器170提供用户期望的各种资源,诸如网 页、数据文件、电子邮件、音频、视频和游戏资源。
尽管出于说明的目的,图1图示出了特定数目和类型的网络102a、 102b、端节点120、网关160和服务器170,但是在其他实施例中,网络 包括相同的、更多或更少的端节点和服务器以及相同或更多的内容网关 160和其他网关。
图2示出了示例有序数据分组230。在图2中,有序数据分组是TCP 分组。TCP数据分组具有IP数据报230,该IP数据报包括IP头部232和 IP有效载荷238。 IP有效载荷238包括TCP数据分组的TCP部分。TCP 部分包括TCP头部242和TCP有效载荷248。 TCP头部包括TCP序列字 段244。 TCP序列字段244保存指示每个数据分组在流中的唯一序列号,
10其中,序列号单调变化以指示数据分组在流中的固有顺序。例如,在TCP
中,序列字段244指示包括当前数据分组的、被发送的八位字节(添加有流的任意起始值)的总数。八位字节是8个二进制位(比特),也称为字节。
在所示出的实施例中,TCP有效载荷包括指示第一超文本传输协议(HTTP)事务251a的结束和不同的HTTP事务251b的开始的第7层数据。HTTP用于传输万维网页。通过解析TCP有效载荷(IP数据报230的第7层部分),内容网关160能够确定两个HTTP事务251a和251b之间的差别,向收费服务器180报告这个信息,以及使得收费服务器180相应地对用户收费。
尽管出于说明目的,字段244、 251a和251b被图示为特定次序的IP数据报230的连续部分,但是在其他实施例中, 一个或多个字段部分244、 251a和251b被以不同排列设置。
TCP提供了多个数据分组中的每个的可靠数据流。由于每个所发送的分组都被接收者确认,所以该流是可靠的。TCP分组被序列字段244中的数据表示的序列号唯一地标识和排序。接收者节点通过报告所接收的数据分组的序列号来确认数据分组的接收。根据选择性确认选项(SACK),一个确认消息可以被用来确认多个所发送的分组。这减少了对于宝贵的网络带宽和接收者节点上的处理能力的使用。根据SACK,来自接收者的确认消息列出了自从前一个确认消息开始所接收的分组的序列号。发送者可以从所确认的序列号的列表确定是否有任何分组丢失,并且再次发送丢失的数据分组。发送节点保存每个所发送的分组的备份,至少直到对于该分组的确认被接收到为止。SACK在互联网工程任务组(IETF)的请求注解
(RFC) 2018中,以及在互联网域ietf.org处的目录/rfc/中的其他RFC中有所描述。RFC 2018可在该目录中的名为rfc2018.txt的文件中得到。题为
"TCP Selective Acknowledgement Options"的RFC 2018的全部内容通过引用被结合于此,就像在这里完全公开了一样。
图3示出了使用有效的选择性确认(SACK)的示例数据流。图3是示出在TCP会话期间交换的TCP数据分组的序列的时序图。在图3中,
ii时间向下增长。在特定时间,在特定的TCP服务器310 (例如,运行作为
内容服务器170c的TCP服务器)和特定的TCP客户端380 (例如,运行作为端节点120a的TCP客户端)之间交换TCP数据分组。通信节点由垂直框表示。数据分组由水平框表示;并且数据分组的传播方向由表示数据分组的框上的箭头指示。尽管出于说明目的示出了特定数目的TCP数据分组,但是在其他实施例中,更多或更少的TCP数据分组被在TCP服务器310和TCP客户端380之间交换。
在最早的图示时间处,具有第一序列数据(由符号#1指示)的TCP数据分组331被从TCP服务器310发送。客户端380处的TCP数据分组331的到达由数据分组331的箭头与表示TCP客户端380的框相交的交叉指示。根据SACK, TCP数据分组331的到达没有被立即确认。相反,在经过了某个时间、或接收了某个数量的数据、或跳过了期望的序列号(以最早发生的为准)之后,发送确认。出于说明目的,假设在0.5秒、或接收了 64000字节或跳过了期望的序列号(以最早发生的为准)之后,发送SACK消息。
注意,序列号单调增加,但是通常不是逐-"递增。相反,序列号通常增长每个数据分组中发送的字节数目。另外,序列号不是一般在固定的第--数量处开始,而是在随机选择的数目开始,从而使得不同的流使用不同的序列号。出于说明目的,这里用符号弁l、 #2、 #3等来表示连续的序列号。然而,应该理解,由这些符号表示的序列号不同于跟随在标记#后的数字。
在下一个时间,具有第二序列数据(由符号#2指示)的第二 TCP数据分组332被从TCP服务器310发送。由于某些原因,第二 TCP数据分组332没有到达TCP客户端380,如没有与表示TCP客户端380的框相交的数据分组332的箭头所指示的。
在下一个连续时间,具有第三序列数据(由符号#3指示)的第三TCP数据分组333被从TCP服务器310发送。由于由符号#2指示的期望序列号已经被跳过,所以对于确认的条件被满足。所以,TCP服务器在确认序列#1和#3的接收的数据分组351中发送SACK消息。这向TCP服务器310通知具有序列#2的TCP数据分组332还没有被接收。
为了避免过度反应,TCP服务器310并不立即再次发送丢失的分组(例如,具有序列#2的分组),因为其可能已经被TCP服务器380接收但顺序错误。相反,TCP服务器等待重发的适当时机。在一些方法中,TCP服务器等待预定的相对较长的重传时间。在快速重发模式中,TCP服务器一直等到重复相同的丢失序列号的多个确认被接收为止,或者重传时间已经期满为止(以最先发生的为准)。指示相同的丢失数据分组的确认的数目可被配置。
出于说明目的,假设在三个确认消息指示数据分组没有被接收到之后重发丢失的数据分组。在这个实施例中,在连续时间,从TCP服务器310发送具有第四序列数据(由符号#4指示)的第四TCP数据分组334和具有第五序列数据(由符号#5指示)的第五TCP数据分组335。由于由符号#2指示的期望序列号还没有在TCP客户端380处被接收到,所以对于确认的条件被满足。所以,TCP服务器在确认序列#1、 #3和糾的接收的数据分组352中发送SACK消息,并在确认序列#1、 #3、斜以及#5的接收的数据分组353中发送SACK消息。
数据分组351、 352和353中的多个确认消息使得TCP服务器310在重传时间期满之前执行快速重发。所以,TCP服务器310再次发送作为具有TCP序列#2的数据分组336的未确认的数据分组。该过程继续,如省略号390所示的其他数据分组所指示。
服务器310在由该服务器发送的确认数据中提供所请求的服务,该所请求的服务通常至少部分地基于客户端如何作出响应。例如,如果在用于332的重传定时器期满之前数据分组331和333被确认,则服务器不会由于分组确认的缺失而施加诸如"慢速启动"之类的TCP拥塞控制算法。防止服务器拥塞控制使得数据速率被保持为高于使用TCP拥塞控制算法时的情况。
3.0解析乱序分组
当中间网络节点解析有序数据分组时,由于任何原因,对于乱序分组的处理可能消极地影响TCP客户端380处的操作效率以及服务器310和客户端380之间的带宽的使用。由解析TCP数据分组的当前方法造成的这种消极影响在图4A中示出。
图4A示出了与内容网关420有关的示例数据流,其中内容网关420上的解析会干扰依赖于选择性确认(SACK)的TCP拥塞控制算法。图4A是示出在TCP会话期间交换的TCP数据分组的序列的时序图。在图4A中,时间向下增加。在特定时间,通过居间内容网关420 (诸如内容网关160)在特定TCP服务器410 (例如,用于内容服务器170c的TCP服务器)和特定TCP客户端480 (例如,运行作为端节点120a的TCP客户端)之间发送TCP数据分组。尽管出于说明目的示出了特定数目的TCP数据分组,但是在其他实施例中,在TCP服务器410和TCP客户端480之间可交换更多或更少的TCP数据分组。图4A中的从TCP服务器410发送的TCP数据分组类似于图3中的由TCP服务器310发送的那些。
在最早的图示时间,具有第一序列数据(由符号#1指示)的TCP数据分组431a被从TCP服务器410发送。如与表示网关420的框相交的数据分组431a的箭头的交叉所指示的,TCP数据分组431a到达内容网关420。内容网关420解析TCP分组431a中的有效载荷,并在具有第一序列数据(序列#1)的TCP数据分组431b中向TCP客户端480转发数据。根据依赖于SACK的TCP延迟确认算法,TCP数据分组431的到达没有被立即确认。相反,在经过某个时间、或已经接收到某个数量的数据、或跳过了期望的序列号(以最早发生的为准)之后,确认被发送。出于说明目的,假设以下内容在0.5秒、或者在接收到64000字节、或者跳过了期望的序列号之后(以最早发生的为准)之后,发送TCP SACK消息。
在下一时间,具有第二序列数据(由符号#2指示)的第二 TCP数据分组432被从TCP服务器410发送。由于某些原因,第二 TCP数据分组432没有到达内容网关420,如没有与表示网关420的框相交的数据分组432的箭头所指示的。
在下一个连续时间,具有第三序列数据(由符号#3指示)的第三TCP数据分组433a被从TCP服务器410发送,并且到达内容网关420。内容网关420识别出这些数据分组顺序错误并且不能被解析。该数据分组被存储
在网关420处,而不被转发至TCP客户端480。
在下一个连续时间,具有第四序列数据(由符号斜指示)的第四TCP 数据分组434a和具有第五序列数据(由符号#5指示)的第五TCP数据分 组435被从TCP服务器310发送。这两个最后的TCP数据分组在内容网 关420处被接收。网关420识别出这些数据分组也是乱序(序列#2也丢 失)的并且也不能被解析。这些数据分组被存储在网关420处,而不被转 发至TCP客户端480。
然后,对于确认的条件被满足。例如,自从在TCP客户端480处数据 分组431b的接收开始,0.5秒己经期满。所以,TCP服务器在仅确认序列 弁l的接收的数据分组441a中发送TCP SACK消息。内容网关420解析 TCP分组441a中的有效载荷,并在TCP数据分组441b (该分组是确认序 列#1的TCP SACK )中向TCP服务器410转发数据。
如上所述,服务器410提供所请求的服务的速率通常至少部分地基于 在该服务器发送的确认数据中该客户端如何响应。由于数据分组432被服 务器重发并且客户端没有通过重传超时对其进行确认,所以服务器可以发 起将消极地影响连接数据速率的诸如"慢启动"之类的拥塞控制算法。相 对于图3中图示的过程,网络效率被消极影响。
TCP SACK分组441b的接收向TCP服务器410通知分别具有序列 #2、 #3、糾和#5的TCP数据分组432、 433a、 434a和435在TCP客户端 480处没有被接收。同样为了防止过度反应,TCP服务器410不立刻重发 丢失的分组,而是等到重复相同的丢失序列号的多个确认被接收或者重传 时间期满(以最早发生的为准)为止。在图4A中,发送丢失的数据分组 432之后的重传时间由时间间隔412指示。由于网关420没有转发其他分 组,所以没有从TCP客户端480接收其他确认。所以,TCP服务器410等 待,直到在重发丢失的数据分组之前由时间间隔412指示的相对较长的重 传时间期满为止。
在重传时间间隔412之后,TCP服务器410再次发送作为具有TCP序 列#2的数据分组436a、具有TCP序列#3的TCP数据分组437、以及随后的具有TCP序列#4和#5的数据分组(以及其后跟随的由省略号491指示 的任何其他TCP数据分组)的未确认的数据分组。
如与表示网关420的框相交的数据分组436a的箭头的交叉所指示的, TCP数据分组436a到达内容网关420。内容网关420确定其不是乱序的, 因为在序列#2之前不存在期望的序列号。所以,内容网关420解析TCP 分组436a中的有效载荷,并在具有序列#2的TCP数据分组436b中向 TCP客户端480转发数据。所存储的数据分组433a、 434a和435不再是乱 序的,所以它们也可以被网关420解析并被转发至TCP客户端480。例 如,所存储的具有序列#3的数据分组433a被作为具有序列弁3的TCP数据 分组433b解析并转发。所存储的具有序列糾的数据分组434a被作为具有 序列#4的TCP数据分组434b解析并转发。如省略号492所指示的,所存 储的具有序列#5的数据分组435被解析并转发。
注意,TCP服务器410可以转发具有序列#3的TCP数据分组437和 已经被存储在内容网关420处并且不被需要的其他数据分组(例如,由省 略号491指示的具有序列#4和序列#5的数据分组)。TCP服务器410上的 处理和由这种重传消耗的带宽浪费了网络资源,并且进一歩对这种由网关 420进行解析的方法产生了消极影响。
根据所示出的实施例,内容网关至少转发一些有序数据分组(在它们 被解析之前),并存储这些有序数据分组以用于在丢失的数据分组最终被 接收吋随后进行解析。这大大降低了对于网关上的解析的消极影响,并且 在图4B中被示出。
图4B示出了与内容网关有关的示例数据流,该内容网关上的解析能 更好地支持加速的选择性确认。图4B是示出在TCP会话期间交换的TCP 数据分组的序列的时序图。在图4B中,时间向下增加。在特定时间,通 过居间内容网关420 (诸如内容网关160)在特定TCP服务器410 (例 如,用于内容服务器170c的TCP服务器)和特定TCP客户端480 (例 如,运行作为端节点120a的TCP客户端)之间发送TCP数据分组。尽管 出于说明目的示出了特定数目的TCP数据分组,但是在其他实施例中,可 以在TCP服务器410和TCP客户端480之间交换更多或更少的TCP数据
16分组。图4B中的从TCP服务器410发送的TCP数据分组类似于图3中的 由TCP服务器310发送的那些和图4A中的由TCP服务器410发送的那 扭。
在最早的图示时间,具有第一序列数据(由符号#1指示)的TCP数 据分组451a被从TCP服务器410发送。如与表示网关420的框相交的数 据分组451a的箭头的交叉所指示的,TCP数据分组451a到达内容网关 420。内容网关420解析TCP分组451a中的有效载荷,并在具有第一序列 数据(序列#1)的TCP数据分组451b中向TCP客户端480转发数据。根 据SACK, TCP数据分组451b的到达没有被立即确认。相反,在经过某 个时间、或者已经接收某个数量的数据、或者跳过期望的序列号(以最先 发生的时间为准)之后,确认被发送。出于说明的目的,假设在0.5秒或 者接收到64000字节或者跳过期望的序列号(以最先发生的为准)之后, 发送SACK消息。
在下一个时间,具有第二序列数据(由符号#2指示)的第二 TCP数 据分组452被从TCP服务器410发送。由于某些原因,如没有与表示网关 420的框相交的数据分组452的箭头所指示的,第二 TCP数据分组452没 有到达内容网关420。
在下一个连续时间,具有第三序列数据(由符号#3指示)的第三TCP 数据分组453a被从TCP服务器410发送并在内容网关420处被接收。网 关420识别出这个数据分组顺序错误并且不能被解析。与先前网关进行的 处理不同,数据分组被存储在网关420处,并被作为具有序列#3的TCP 数据分组453b转发至TCP客户端480。
然后,在TCP客户端480处对于确认的条件被满足,因为由符号#2 指示的期望的序列数据已经被跳过。所以,TCP服务器在确认序列#1和#3 的接收的数据分组461a中发送TCP SACK消息。内容网关420解析TCP 分组461a中的有效载荷,并在作为确认序列#1和#3的TCP SACK的TCP 数据分组461b中向TCP服务器410转发数据。
大约在TCP SACK数据分组461a被接收的同时,具有第四序列数据 (由符号#4指示)的第四TCP数据分组454a被从TCP服务器410发送并在内容网关420处被接收。网关420识别出这个数据分组也是顺序错误的 (序列#2仍是丢失的)并且也不能被解析。与图4A中的先前网关进行的 处理不同,该数据分组被存储在网关420处,并且也被作为具有序列#4的 TCP数据分组454b转发至TCP客户端480。
TCP数据分组461b的接收向TCP服务器410通知仅有具有序列#2 的TCP数据分组452还没有在TCP客户端480处被接收。同样为了防止 过度反应,TCP服务器410不立刻重发丢失的分组,而是等到重复相同的 丢失序列号的多个确认被接收或者重传时间期满(以最先发生的时间为 准)为止。
当数据分组454b被TCP客户端480接收时,对于确认的条件被再次 满足,因为由符号#2指示的期望的序列数据还没有被接收。所以,TCP服 务器在确认序列#1、 #3和糾的接收的数据分组462a中发送TCP SACK消 息。内容网关420解析TCP分组462a中的有效载荷,并在作为确认序列 #1 、 #3和糾的TCP SACK的TCP数据分组462b中向TCP服务器410转 发数据。
大约在TCP SACK数据分组462a被接收的同时,具有第五序列数据 (由符号#5指示)的第五TCP数据分组455a被从TCP服务器410发送, 并在内容网关420处被接收。网关420识别出这个数据分组也是顺序错误 的(序列#2仍丢失)并且也不能被解析。与图4A中的先前网关进行的处 理不同,这个数据分组被存储在网关420处,但是仍被作为具有序列#5的 TCP数据分组455b转发至TCP客户端480。
TCP数据分组462b的接收第二次向TCP服务器410通知仅有具有 序列#2的TCP数据分组452还没有在TCP客户端480处被接收。
当数据分组455b被TCP客户端480接收时,对于确认的条件再次被 满足,因为由符号#2指示的期望的序列数据仍没有被接收。所以,TCP服 务器在确认序列弁l、 #3、 #4和#5的接收的数据分组463a中发送TCP SACK消息。内容网关420解析TCP分组463a中的有效载荷,并在作为 确认序列弁l、 #3、 #4和#5的TCP SACK的TCP数据分组463b中向TCP 服务器410转发数据。大约在TCP SACK数据分组463a被接收的同时,具有第六序列数据 (由符号#6指示)的第六TCP数据分组456a被从TCP服务器410发送, 并在内容网关420处被接收。网关420识别出这个数据分组也是乱序的 (序列#2仍是丢失的)并且也不能被解析。这个数据分组被存储在网关 420处,并且也被作为具有序列#6的TCP数据分组456b转发至TCP客户 端480。当数据分组456b被TCP客户端480接收时,对于确认的条件被 再次满足,因为由符号#2指示的期望的序列数据还没有被接收。所以, TCP服务器在确认序列糾、#3、 #4、 #5和#6的接收的数据分组464a中发 送TCP SACK消息。
TCP数据分组463b的接收第三次向TCP服务器410通知仅有具有 序列#2的TCP数据分组452还没有在TCP客户端480处被接收。
根据快速重发模式,现在TCP服务器410再次发送作为具有TCP序 列#2的数据分组457a的未确认的数据分组。TCP数据分组457a到达内容 网关420。内容网关420确定其不是乱序的,因为在序列#2之前不存在丢 失的序列。所以,内容网关420解析TCP分组457a中的有效载荷,并在 具有序列#2的TCP数据分组457b中向TCP客户端480转发数据。所存储 的数据分组453a、 454a、 455a和456a不再是乱序的,所以它们也可以被 网关420解析,而不需要被转发至TCP客户端480,因为它们在更早的时 候被转发。来自TCP客户端480的进一歩响应的适当处理和收费是基于数 据分组457a、 453a、 454a、 455a和456a的完全解析确定的。值得注意, 这些所存储的乱序分组在序列号中可以具有额外间隙。在这种情况下,解 析继续进行,直到所存储的分组的序列号中的下一个间隙为止。
大约在同时,对于确认的条件在TCP客户端480处被再次满足。所 以,TCP客户端480在确认直到序列#6的接收的由省略号494指示的数据 分组中发送SACK消息。内容网关420解析这些确认中的有效载荷,并在 确认直到序列#6的序列号的由省略号493指示的TCP数据分组中向TCP 服务器410转发数据。
数据分组的进一歩交换也由省略号493和494指示。如上所述,使用 TCP服务器410的服务器在由TCP服务器发送的确认数据中提供所请求的
19服务,该所请求的服务通常至少部分地基于客户端如何响应。由于数据分
组451b、 453b和454b被以适时方式确认并且由于"TCP快速重发"使得 452a被像数据分组457a—样迅速重发,所以(例如,图4A中图示的持续 时间412的)重传定时器没有期满并且拥塞控制没有被调用。相对于图 4A中图示的过程,网络效率没有受到消极影响。
注意,TCP服务器410没有像图4A中图示的流程中所作的那样重发 具有序列#3、斜、弁5和弁6的TCP数据分组。来自TCP服务器410的这种 重传处理所需的处理和带宽资源不再被浪费,所以进一步的消极影响可以 被避免。另外,客户端利用TCP快速重发算法,而不是等待超时才重发序 列#2。
在一些实施例中,不在内容网关处进行解析而被转发的数据量被限制 以禁止协同操作的TCP客户端和TCP服务器之间的欺骗性的TCP通信。 这种协同操作的TCP客户端和TCP服务器可以通过同意在它们的通信中 跳过早期的序列号尝试在内容网关处规避收费。跳过的序列号将中断网关 处的解析(和依赖于这种解析的收费),但是不会阻止TCP分组的转发。
为了限制这种协同操作的益处,在某些最大数量的数据被转发之后或 者在某些最大数量的时间流逝之后,在不接收丢失的有序数据分组的情况 下,欺骗性的TCP端节点、内容网关停止转发。该最大数量由用于使用内 容网关的子网络的网络管理者确定。例如,在0.6秒以及66000字节被转 发之后,TCP客户端应该已经接收到若干SACK,并且己经重发了具有丢 失的序列号的数据分组。如果没有,则指示是欺骗性的协同操作。所以, 在一些实施例中,在0.6秒之后或者在66000字节之后(以最先发生的为 准),转发被停止。
在一些实施例中,在SACK被要求之前,时间或数据的数量或它们二 者的数量在早期数据分组中被协商或指示。在一些实施例中,所协商的值 被用来确定在不进行解析的情况下将要转发的数据的最大数量。为了防止 协同操作的端节点协商一个过高的值,在某些实施例中,如果其大于网络 管理者设置的一些预先确定的值,则所协商的数量不被使用。
在一些实施例中,不论所协商的数量如何,数据分组都在不进行解析的情况下被转发,直到足够的SACK数据分组在内容网关处被从TCP客
户端接收并被内容网关转发后的小段时间已触发TCP服务器的重发为止。 在一些实施例中,不论所协商的数量如何,在内容网关处从TCP服务器接 收到足够的SACK数据分组之后,仅有来自客户端的一个额外数据分组在 不进行解析的情况下被转发。在一些实施例中,考虑到网关420和TCP服 务器410之间的通信并不是完美的,允许一个或多个额外的数据分组或确 认。本领域普通技术人员能够通过实验确定有多少额外的确认或数据分组 应该被允许以防止不是由欺骗性的行为导致的转发的过于频繁的中止。
网络管理者能够通过合理实验来确定不经过解析而进行转发的最大数 量。网络管理者通过转发乱序分组来平衡网络操作的效率和丢失对于协同 操作的欺骗性端节点的收入的危险。
4.0内容网关处的方法
图5示出了用于在诸如内容网关160之类的内容网关上进行解析的高 级别方法500。尽管出于说明目的,图5中的歩骤被以特定次序示出,但 是在其他实施例中, 一个或多个步骤可以以不同的次序、在时间上重叠 地、或者串行或并行地执行,或者一个或多个歩骤可以被省略或被添加, 或者在一些方式的组合中被改变。
在步骤502中,接收指示将要转发的乱序分组的最大数目的数据。可 以使用任何方法来接收这个数据。例如,在各种实施例中,该数据被作为 默认值包括在软件指令中,被作为来自本地或远程节点上的网络管理者的 人工输入而接收,被从本地文件或数据库中检索出来,或者被响应于查询 或主动从网络上的不同节点发送,或者该数据被使用这些方法中的一些结 合而接收。在一些实施例中,步骤502被省略。例如,在用户可信或使用 其他机制来阻止欺骗的实施例中,歩骤502被省略。
出于说明目的,假设在步骤502期间接收的数据指示以下事项中的哪 项最先出现就触发快速重发0.5秒;或者64000个未解析的字节被转 发;或者在充分确认之后有限数目的数据分组已经被接收。
在其他实施例中,网络管理者通过实验确定什么最大量具有平衡良好的网络性能和从未被解析并可能是欺骗性的数据分组的容许转发的期望结 果的作用。
在步骤510中,接收对于特定流的有序数据分组。例如,在步骤510
期间,接收TCP数据分组451a。
在步骤520中,确定数据分组是否顺序错误,例如,确定刚接收的数 据分组中的序列号是否晚于下一个期望的序列号。如果不是,则控制传递 到步骤580。
在步骤580,出于任何目的,像现有技术的内容网关一样正常对数据 分组进行解析并进行转发。例如,TCP数据分组451被解析用于收费目 的。然后,控制传递到步骤582。
在步骤582中,确定具有接下来的期望序列号的任何数据分组是否被 存储。如果没有,则控制回传到步骤510,以接收该流的下一个数据分 组。如果是,则控制传递到歩骤584,以解析具有下一个序列值的数据分 组,但不对其进行转发(其在被存储时已经被转发)。然后控制回传到歩 骤582。
例如,当在步骤510中接收到具有丢失的序列号#2的TCP数据分组 457a时,在歩骤580中该数据分组被解析并转发。在歩骤582中,确定具 有下一个序列#3的数据分组被存储;并且控制传递到歩骤584以解析所存 储的具有序列#3的TCP数据分组453a。在歩骤582,确定具有下一个序 列糾的数据分组被存储;并且控制回传到步骤584,以解析所存储的具有 序列糾的TCP数据分组454a。这个循环重复,直到没有被存储的数据分 组或者所存储的下一个数据分组超过了下一个期望的序列号为止;然后控 制传递到步骤510以接收由省略号493指示的TCP数据分组。在一些实施 例中,在解析之后将所存储的数据分组标记为删除。如果不是下一个期望 序列号的数据分组被存储,则该分组不被解析,但被保留在存储器中用于 在跳过的分组被接收时进行解析。
如果在步骤520中确定在步骤510中接收的数据分组顺序错误,则控 制传递到步骤530。在步骤530,数据分组被存储用于随后进行解析。然 后控制传递到步骤540。
22在步骤540,确定将要转发的最大数量的乱序分组是否已经被转发。 如果是,则不转发该分组,并且控制传递到步骤510,以接收该流的下一 个有序数据分组。
可以使用任何方法来确定将要转发的最大数量是否已经被转发。在所
示出的实施例中,确定从第一个乱序分组被转发开始是否经过了 0.5秒、 或者如果当前数据分组被转发是否有超过64000个字节将被转发、或者是 否接收了充分确认之后的有限数目的数据分组,以触发快速重发。如果这 些条件没有一个被满足,则控制传递到步骤550。
例如,当接收到TCP数据分组453a时,还没有转发乱序数据分组, 并且用于流逝的时间的计数器还没有开始,所以控制传递到步骤550。
在步骤550,数据分组被转发。例如,TCP数据分组453a被作为TCP 数据分组453b转发。
在步骤560,所转发的数量增加。例如,时钟计数器被初始化,并且 所转发的比特数目增加了数据分组453a的大小。然后,控制传回步骤 510,以接收该流的下一个有序数据分组。
在一些实施例中,步骤540和560被省略。例如,在用户可信或利用 其他机制来阻止欺骗的实施例中,步骤540和步骤560被省略。
5.0实现机制一硬件综述
图6示出了可以在其上实现本发明的实施例的计算机系统600。使用 在诸如路由器设备之类的网络元件上运行的一个或多个计算机程序来实现 优选实施例。所以,在这个实施例中,计算机系统600是路由器。
计算机系统600包括用于在计算机系统600的内部和外部部件之间传 递信息的诸如总线610之类的通信机制。信息被表示为可测量现象的物理 信号, 一般为电压,但是在其他实施例中,包括诸如磁、电磁、压力、化 学、分子原子和量子相互作用之类的现象。例如,北和南磁场、或者零和 非零电压表示二进制位(比特)的两个状态(0, 1) 。 二进制位序列组成 了被用于表示特性的数目或编码的数字数据。总线610包括很多平行的信 息导体,从而信息在耦合至总线610的设备中间被迅速传输。用于处理信息的一个或多个处理器602与总线610相耦合。处理器602对信息执行一 组操作。该组操作包括从总线610获取信息和将信息放置在总线610上。 该组操作一般还包括比较两个或两个以上的信息单元、移动信息单元的位 置、以及通过诸如加法或乘法来结合两个或两个以上信息单元。将被处理 器602执行的操作序列组成了计算机指令。
计算机系统600还包括耦合至总线610的存储器604。诸如随机存取 存储器(RAM)或其他动态存储设备之类的存储器604存储包括计算机指 令在内的信息。动态存储器允许这里存储的信息被计算机系统600改变。 RAM允许存储在被称为存储器地址的位置处的信息单元独立于相邻地址 处的信息而被存储和检索。存储器604还可以被处理器602用来在计算机 指令的执行期间存储暂态值。计算机系统600还包括耦合至总线610的、 用于存储不会被计算机系统600改变的包括指令在内的静态信息的只读存 储器(ROM) 606或其他静态存储设备。耦合至总线610的还有即使在计 算机系统600被关闭或者断电时也会继续存在的用于存储包括指令在内的 信息的磁盘或光盘。
在这里使用的术语"计算机可读介质"指参与向处理器602提供包括 用于执行的指令在内的信息的任何介质。这种介质可以采取很多形式,包 括但不限于非易失性介质、易失性介质以及传输介质。非易失性介质包括 例如存储设备608之类的光盘或磁盘。易失性介质包括例如动态存储器 604。传输介质包括例如同轴电缆、铜线、光缆、以及在没有电线或缆线 的情况下通过空间传播的波(包括无线电、光学和红外波在内,诸如声波 和电磁波)。在传输介质上传送的信号在这里被称为载波。
计算机可读介质的常见形式包括例如软盘、软磁盘、硬盘、磁带或任 何其他磁介质、光盘ROM (CD-ROM)、数字视频盘(DVD)或任何其 他光介质、穿孔卡、纸带、或具有孔洞图样的任何其他物理介质、RAM、 可编程ROM (PROM)、可擦除PROM (EPROM) 、 FLASH-EPROM、 或任何其他存储器芯片或盒式磁带、载波或任何其他计算机可以从其进行 读取的介质。
包括指令在内的信息被从诸如具有键盘(该键盘包含由人类用户操作的字母数字键)或传感器的终端之类的外部终端612提供给总线610,以 供处理器使用。传感器检测其邻近区域中的状况,并将这些检测转变为与
用于表示计算机系统600中的信息的信号相兼容的信号。主要用于与人类 交互的耦合至总线610的终端612的其他外部部件包括用于呈现图像的显 示设备(诸如阴极射线管(CRT)、液晶显示器(LCD)或等离子屏幕) 以及用于控制呈现在显示器上的小光标图像的位置并发布与呈现在终端 612的显示器上的制图元素相关联的命令的定位设备(诸如鼠标、跟踪球 或光标方向键)。在一些实施例中,终端612被省略。
计算机系统600还包括耦合至总线610的通信接口 670的一个或多个 实例。通信接口 670向诸如打印机、扫描仪、外部磁盘以及终端612之类 的以它们自身的处理器进行操作的各种外部设备提供双向通信耦合。计算 机系统600中运行的硬件或软件提供终端接口或基于特性的命令接口,从 而外部命令可以被给到计算机系统。例如,通信接口 670可以是串行端口 或者并行端口 ,诸如RS-232或RS-422接口或者个人计算机上的通用串行 总线(USB)。在一些实施例中,通信接口 670是综合业务数字网 (ISDN)卡或数字用户线路(DSL)卡或向相应类型的电话线路提供信息 通信连接的电话调制器。在一些实施例中,通信接口 670是将总线610上 的信号转换为用于同轴电缆上的通信连接的信号或者转换为用于光缆上的 通信连接的光信号的线缆调制解调器。作为另一个示例,通信接口 670可 以是局域网(LAN)卡,以提供到诸如以太网之类的兼容LAN的数据通 信连接。也可以实现无线链路。对于无线链路,通信接口 670发送和接收 承载诸如数字数据的信息流的电的、声学的、或者电磁的信号(包括红外 和光信号在内)。这些信号是载波的示例。
在所示出的实施例中,诸如专用集成电路(IC) 620的专用硬件被耦 合至总线610。专用硬件被配置为执行为专门目的而执行的操作,这些操 作不能被处理器602足够快地执行。专用IC的示例包括用于生成图像进 行显示的图形加速器卡、用于加密和解密网络上发送的消息的密码板、语 音识别、以及去往特定外部设备的接口,诸如重复执行在硬件中被更有效 地执行的一些复杂的操作序列的机器人臂和医学扫描装备。在一个或多个有形介质中编码的逻辑包括计算机指令和专用硬件中的一个或它们二者。
在所示出的用作路由器的计算机中,计算机系统600包括作为用于在
网络上交换信息流的专用硬件的交换系统630。交换系统630 —般包括诸 如通信接口 670之类的多个通信接口,用于耦合到多个其他设备。 一般而 言,每个耦合是与连接至诸如所阐述的实施例中的本地网络680中的其他 设备或附接到本地网络680的其他设备的网络链路632的耦合,其中具有 其自身的处理器的各种外部设备连接至该本地网络680。在一些实施例 中,输入接口或输出接口或者它们二者被连接至一个或多个外部网络元件 中的每一个。尽管三个网络链路632a、 632b和632c被包括在所阐述的实 施例中的网络链路632中,但是在其他实施例中,更多或更少的链路被连 接至交换系统630。网络链路632 —般通过一个或多个网络向使用或处理 信息的其他设备提供信息通信。例如,网络链路632b可以通过本地网络 680向由互联网服务提供商(ISP)操作的主计算机682或设备684提供连 接。ISP设备684又通过现在统称为互联网690的公用的、世界范围分组 交换通信网络的网络来提供数据通信服务。连接至互联网的计算机(称为 服务器692)响应于在互联网上接收的信息而提供服务。例如,服务器 692提供用于交换系统630的路由信息。
交换系统630包括被配置为执行与在网络680的元件中传递信息(包 括传递沿着一条网络链路,例如632a接收的信息,作为相同或不同网络链 路,例如632c上的输出)相关联的交换功能。交换系统630根据预先确定 的协议和公知的惯例将在输入接口上到达的信息量交换到输出接口 。在一 些实施例中,交换系统630包括其自身的处理器和存储器,以在软件中执 行一些交换功能。在一些实施例中,交换系统630依赖于处理器602、存 储器604、 ROM606、存储设备608或一些结合来在软件中执行一个或多 个交换功能。例如,与执行特定协议的处理器604协同操作的交换系统 630可以确定在链路632a上的输入接口上到达的数据分组的目的地并利用 链路632c上的输出接口将其发送到正确的目的地。目的地可以包括主机 682、服务器692、连接至本地网络680或互联网690的其他终端设备、或 本地网络680或互联网690中的其他路由和交换设备。本发明涉及使用计算机系统600来实现本文中描述的技术。根据本发
明的一个实施例,这些技术由计算机系统响应于执行存储器604中包含的 一个或多个序列的一个或多个指令的处理器602而执行。这些指令(也称 为软件和程序编码)可以被从诸如存储设备608之类的另一个计算机可读 介质读入存储器604中。包含在存储器604中的指令序列的执行使得处理 器602执行本文中描述的方法步骤。在替代实施例中,诸如专用集成电路 620和交换系统630中的电路之类的硬件可以替代软件而被用来执行本发 明,或者可以被与软件结合来执行本发明。所以,本发明的实施例不限于 硬件和软件的任何具体结合。
通过诸如接口 670之类的通信接口在网络链路632和其他网络上传送 的信号(该信号承载去往和来自计算机系统600的信息)是示例形式的载 波。计算机系统600可以通过网络链路632和诸如接口 670之类的通信接 口,经由其中的网络689、 690来发送和接收包括程序编码在内的信息。 在使用互联网690的示例中,服务器692通过交换系统630中的通信接 口,传送由从计算机600通过互联网690、 ISP设备684、本地网络680和 网络链路632b发送的消息所请求的用于特定应用的程序编码。所接收的 数据在被接收时可以由处理器602或交换系统630执行,或者可以被存储 在存储设备608或者其他非易失性存储器或者它们二者中用于随后执行。 这样,计算机系统600可以以载波的形式获取应用程序编码。
在向处理器602承载一个或多个序列的指令或数据或它们二者以用于 执行时将会涉及各种形式的计算机可读介质。例如,指令和数据最初可以 被承载在诸如主机682之类的远程计算机的磁盘上。远程计算机将指令和 数据装载到它的动态存储器中,并使用调制解调器在电话线路上发送指令 和数据。计算机系统600本地的调制解调器接收电话线路上的指令和数 据,使用红外发射机将指令和数据转换为红外信号,其中,载波充当网络 链路632b。充当交换系统630中的通信接口的红外探测器接收红外信号中 承载的指令和数据,并将代表这些指令和数据的信息放置到总线610上。 总线610将信息承载到存储器604,然后处理器602使用利用指令发送的 一些数据来从存储器604检索并执行指令。在处理器602或交换系统603执行之前或之后,在存储器604中接收的指令和数据可以可选地被存储在
存储设备608上。 6.0扩展和替代
在前述说明书中,参考具体实施例描述了本发明。但是显然,在不脱 离本发明的更宽的精神和范围的条件下可以对本发明进行各种修改和改 变。因此,说明书和附图应该被认为是说明性的而不是限制性的意义。
权利要求
1.一种方法,包括以下步骤在网络的本地节点接收来自源节点、去往目的地节点的多个有序数据分组中的有序数据分组,其中所述本地节点将对所述有序数据分组进行解析以确定用于描述所述多个有序数据分组的所述多个有序数据分组中的特定数据以用于网络管理;基于所述有序数据分组中的序列数据确定所述有序数据分组在所述多个有序数据分组中是否顺序错误;以及如果确定所述有序数据分组顺序错误,则执行以下步骤在解析所述有序数据分组之前向所述目的地节点转发所述有序数据分组,并且在所述本地节点处存储所述有序数据分组以用于随后进行解析。
2. 根据权利要求1所述的方法,其中所述方法还包括接收指示将要转发的乱序数据的最大数量的数据;以及所述转发的歩骤还包括以下步骤确定所述多个有序数据分组中的已转发的数据量,其屮所述已转发的数据数量是自从接收到所述多个有序数据分组中的最早的乱序数据分组开始已转发的数据量;确定所述已转发的数据量是否小于所述最大数量,以及仅在所述已转发的数据量小于所述最大数量的情况下,执行在解析所述有序数据分组之前向所述目的地节点转发所述有序数据分组的步骤。
3. 根据权利要求2所述的方法,其中所述将要转发的乱序数据的最大数量基于对于未被描述用于网络管理的有序数据分组的容限。
4. 根据权利要求1所述的方法,其中所述本地节点是所述网络的内容感知网关节点。
5. 根据权利要求1所述的方法,其中所述有序数据分组是传输控制协议(TCP)数据分组。
6. 根据权利要求5所述的方法,其中所述多个有序数据分组是TCP会话。
7. 根据权利要求1所述的方法,其中所述本地节点将对所述多个有序数据分组进行解析,以确定用于确定对于所述源节点的用户、所述目的地节点的用户或它们二者的收费数量的所述多个有序数据分组中的特定数据。
8. 根据权利要求1所述的方法,确定所述有序数据分组是否顺序错误的步骤还包括确定在所述有序数据分组之前的所述多个有序数据分组中的期望数据分组是否还没有在所述本地节点处被接收。
9. 一种设备,包括用于接收来自源节点、去往目的地节点的多个有序数据分组中的有序数据分组的装置,其中所述设备将对所述有序数据分组进行解析以确定用于描述所述多个有序数据分组的所述多个有序数据分组中的特定数据以用于网络管理;用于基于所述有序数据分组中的序列数据确定所述有序数据分组在所述多个有序数据分组中是否顺序错误的装置;以及用于在确定所述有序数据分组顺序错误的情况下对所述有序数据分组进行处理的装置,包括用于在解析所述有序数据分组之前向所述目的地节点转发所述有序数据分组的装置,以及用于在所述设备处存储所述有序数据分组以用于随后进行解析的装置。
10. 根据权利要求9所述的设备,其中所述设备还包括用于接收指示将要转发的乱序数据的最大数量的数据的装置;以及所述用于转发的装置还包括用于确定所述多个有序数据分组中的已转发的数据量的装置,其中所述已转发的数据数量是自从接收所述多个有序数据分组中的最早的乱序数据分组开始已转发的数据量;用于确定所述己转发的数据量是否小于所述最大数量的装置,以及用于仅在所述已转发的数据量小于所述最大数量的情况下执行在对所述有序数据分组进行解析之前向所述目的地节点转发所述有序数据分组的步骤的装置。
11. 根据权利要求IO所述的设备,其中所述将要转发的乱序数据的最大数量基于对于未被描述用于网络管理的有序数据分组的容限。
12. 根据权利要求9所述的设备,其中所述设备被配置为所述网络的内容感知网关节点。
13. —种设备,包括网络接口,被配置为用于与分组交换网交换数据分组;编码在一个或多个有形介质中、并且在被执行时可操作来执行以下步骤的逻辑接收来自源节点、去往目的地节点的多个有序数据分组中的有序数据分组,其中所述设备将对所述多个有序数据分组进行解析以确定用于描述所述多个有序数据分组的所述多个有序数据分组中的特定数据以用于网络管理;确定所述有序数据分组在所述多个有序数据分组中是否顺序错误;以及如果确定所述有序数据分组顺序错误,则执行以下歩骤在解析所述有序数据分组之前向所述目的地节点转发所述有序数据分组,以及在所述设备处存储所述有序数据分组以用于随后进行解析。
14. 根据权利要求13所述的设备,其中所述逻辑在被执行时,还可操作来执行接收指示将要转发的乱序数据的最大数量的数据的步骤;并且所述转发歩骤还包括确定所述多个有序数据分组中的已转发的数据量,所述已转发的数据量是自从接收到所述多个有序数据分组中的最早的乱序数据分组开始已转发的数据量;确定所述已转发的数据量是否小于所述最大数量,以及仅在所述己转发的数据量小于所述最大数量的情况下,执行在解析所述有序数据分组之前向所述目的地节点转发所述有序数据分组的步骤。
15. 根据权利要求14所述的设备,其中所述将要转发的乱序数据的最大数量基于对于未被描述用于网络管理的有序数据分组的容限。
16. 根据权利要求13所述的设备,其中所述设备被配置为所述网络的内容感知网关节点。
17. 根据权利要求13所述的设备,其中所述有序数据分组是传输控制协议(TCP)数据分组。
18. 根据权利要求17所述的设备,其中所述多个有序数据分组是TCP会话。
19. 根据权利要求13所述的设备,其中所述设备将对所述多个有序数据分组进行解析以确定用于确定对于所述源节点的用户、所述目的地节点的用户或对它们二者的收费数量的所述多个有序数据分组中的特定数据。
20. 根据权利要求13所述的设备,所述确定所述有序数据分组是否顺序错误的步骤还包括确定在所述有序数据分组之前的所述多个有序数据分组中的期望数据分组是否还没有在所述本地节点处被接收。
全文摘要
在一个实施例中,一种方法包括在网络的本地节点处接收来自源节点、去往目的地节点的由多个有序数据分组组成的流中的有序数据分组。本地节点将对该流进行解析以描述该流用于网络管理。基于有序数据分组中的序列数据,确定有序数据分组在该流中是否顺序错误。如果确定有序数据分组顺序错误,则在对有序数据分组进行解析之前向目的地节点转发该有序数据分组。该顺序错误的有序数据分组也被存储在本地节点处用于随后进行解析。
文档编号G01R31/08GK101663590SQ200880012699
公开日2010年3月3日 申请日期2008年4月16日 优先权日2007年4月20日
发明者克里斯托弗·奥鲁尔克, 汉波尔托·塔瓦里斯, 沃尔特·狄克逊, 罗伯特·巴茨, 罗伯特·麦凯 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1