从数据项获得信息的制作方法

文档序号:7993980阅读:122来源:国知局
从数据项获得信息的制作方法
【专利摘要】公开了用于从经由通信网络所传送的数据项的一个或多个报头获得信息的方法和装置,至少一个报头的预定部分根据第一预定义通信协议承载具有第一预定义意义的符号或符号的组合。所述方法包括:检查接收到的数据项的至少一个报头,借此以识别由其预定部分所承载的所述符号或符号的组合;识别所述数据项的报头的至少一个其它部分是否承载有相同的符号或符号的组合;以及在识别出所述数据项的报头的至少一个其它部分承载有相同的符号或符号的组合的情况下,根据第二预定义通信协议来处理所述一个或多个报头中的至少一个报头,所述第二通信协议不同于所述第一通信协议。
【专利说明】从数据项获得信息
【技术领域】
[0001]本发明涉及从经由通信网络所传送的数据项获得信息。更具体地,本发明的方面涉及用于从经由通信网络所传送的数据项的一个或多个报头获得信息的方法和装置。
【背景技术】
[0002]我们通过呈现一些基本概念以帮助对被进一步呈现的机制的理解来开始。
[0003]分组、帧、段、报头以及有效载荷
[0004]数据发送方通常将要被发送的数据分成称为分组的小单元。每个分组都包括报头和承载要被递送的数据的有效载荷。报头包含由有关的通信协议所定义的字段。在分组的有效载荷内,将经常存在另外的报头,它本身封装有另外的有效载荷。例如,由现今的商业网络所承载的大多数分组是所谓的TCP/IP分组,其中TCP是传输控制协议并且IP是网际协议。在这些情况下,网络层IP报头封装从TCP报头开始的传输层有效载荷,TCP报头进而封装其有效载荷。
[0005]类似地,当通过通信链路来传送分组时,它将由针对所讨论的链路的技术的另外的报头来封装。例如,当分组越过以太网链路时,以太网报头被添加来封装IP分组,所述IP分组成为有效载荷。
[0006]针对数据的这些分割的单元的一般术语是协议数据单元(PDU)。在封装的不同层处的PDU通常被赋予不同的名称。在链路、网络和传输层它们被分别称作帧、分组以及段(或数据报)。
[0007]如稍后将理解的那样,本发明的实施方式能够被应用在这些层次中的任一个处(或可能甚至在应用层处,尽管可能在应用层处更易于在不依靠本发明的实施方式的情况下扩展协议)。
[0008]协议澝讲
[0009]有时,新的要求必须被满足,并且能够通过更新通信协议的一部分而不是完全代替它来实现。大多数协议被定义得使得各种字段的某些值未被使用,而是被“保留”以供将来使用。想法是能够通过从这些保留范围让值投入使用来添加新的特征。
[0010]当保留值被投入使用以得到协议的新的变体时,事情通常不像计划的那样进行。在协议被更新之前就建立的现有设备通常意在在它遇到承载保留值之一的分组的情况下采取某个默认动作。然而,当开始使用保留值时,通常发现某些传统设备可能由于以下三个原因而不采取所规定的默认动作:
[0011]-防范安全:某些站点因为潜在的安全威胁而拒绝新样式的分组
[0012]新的分组触发了针对协议的所有可能的将来变体从未被测试过的某个设备中的漏洞
[0013] -针对现状的优化:已针对原有协议被优化的硬件无法处理新的分组。所以必须由软件来处理新的分组,这导致较新的分组的很大一部分被丢弃,因为它们无法被足够快地处理。[0014]因此,新的协议的第一采纳者通常发现任意的设备似乎莫名其妙地崩溃,或者承载新值的分组从未到达它们的目的地,因为设备的某些项错误地丢弃这样的分组(被称作被黑洞(black-holed))。
[0015]结果常常是新的特征未被部署,因为没有公司想要承受将在它们的完美地实现的更新被视为它触发的许多问题(实际上是由于已经被部署的所有其它不正确地实现的设备而导致的问题)的原因时进行的所有支持呼叫的成本。
[0016]示例:TCP时间戳诜项
[0017]为了改进网络性能,研究的一个当前路线是用“线性调频信号(chirps)”发送分组,线性调频信号是成群的数个分组,其中,分组之间的间隙渐进地减小(从而提高每分组的瞬时比特率)。这在下面称为[KuehlewindlO]的论文中被讨论。网络路径的可用带宽对递送的分组之间的间隙设置更低的限制,所以更紧靠在一起发送的分组将建立将在该可用带宽处流尽的队列。因此,通过将递送的分组之间的间隙与发送的分组之间的那些间隙相比较,终端系统能够识别对分组之间的间隙的下限并用其来估计可用带宽。
[0018]这种有前途的技术能够被用在这样的两个计算机之间,即,所述两个计算机已被修改成将适当的时间戳放置在分组上并且将时间戳传回到另一端。然而,这样的改变的广泛部署被对使用新的协议的任何尝试进行干扰的终端系统之间的许多“中间盒”所妨碍。
[0019]一种想法可以是使用TCP中的现有设备来对分组进行时间戳标记(见在下面所参考的[TCP.timestamp])。TCP时间戳在这方面是有用的,因为它被以这样一种方式规定,即,接收方意在将发送方放入时间戳选项字段的任何数传回到发送方而不考虑其意义。
[0020]然而,TCP时间戳 选项被设计成允许发送方测量路径之上的双向延迟,不是线性调频工作所需要的单向延迟。并且,TCP接收方通常每两个分组发送一个肯定应答,并且时间戳设备被设计成测量从当第一分组被发送时到当第二分组的肯定应答被接收到时的延迟。因此,在不变更接收方以及发送方的语义的情况下TCP时间戳无法被用于线性调频。
[0021]最近已提出在发送方与接收方之间协商以变更TCP时间戳的语义以便将其改变意图用于线性调频和其它潜在用途(见[TCP.ts.negotiate])。然而,这种协商产生独特的初始分组,这很可能在中间盒未被具体地写成预期到它的情况下遇到问题(见[TCP.security])。
[0022]对(一个或多个)现有技术的讨论:
[0023]在下面被称为[YourtchenkolI]的互联网草案中所提出的技术涉及一对连接初始化分组的使用,所述一对连接初始化分组中的第一个符合现有标准然而第二个在将使传统接收方混乱的对报头的扩展中使用更新的协议。这种第二初始化分组同样使用不同的校验和算法(checksum algorithm),使得传统接收方将认为它是无效的并且丢弃它。传统接收方接着将第一分组视为唯一的初始化分组。然而,更新的接收方将理解新的校验和算法和新的协议,所以它将能够处理第二初始化分组。它还将理解第一分组。
[0024]美国专利US7342892涉及确认报头字段的重复是错误还是攻击、或者重复是否是安全的。
[0025]非专利参考文件
[0026][KuehlewindlO]:Mirja Kiihlewind (Uni Stuttgart)和 BobBriscoe (BT), “Chirping for Congestion Control-1mplementation Feasibility” InProc.1nt' I Wkshp on Protocols for Future, Large-scale&Diverse NetworkTransports(PFLDNeT' 10)(2010 年 11 月)。
[0027][TCP.timestamp]:V.Jacobson (LBL), R.Braden (ISI)和 D.Borman (CrayResearch), “TCP Extensions for High Performance, ”互联网工程任务组 RFC1323 (1992 年5月)
[0028][TCP.ts.negotiate]:R.Scheffenegger(NetApp)和 M.Kuehlewind (UniStuttgart) “Additional negotiation in the TCP Timestamp Option field during theTCP handshake,,IETF 互联网草案 <draftscheffenegger-tcpm-timestamp-negotiation-01>(2011 年 3 月 14 日)。
[0029][TCP.security]F.Gont (UK CPNI) “Security Assessment of the TransmissionControl Protocol(TCP),,,IETF 互联网草案〈draft-1etf-tcpm-tcp-security-02.txt>(2011 年 I 月 21 日)。
[0030][Yourtchenkoll]:A.Yourtchenko(Cisco), “Introducing TCP Long Options byInvalid Checksum” IETF 互联网草案〈draft-yourtchenko-tcp-loic-00> (2011 年 4 月)

【发明内容】

[0031]根据本发明的第一方面,提供了一种从经由通信网络所传送的数据项的一个或多个报头获得信息的方法,至少一个报头的预定部分根据第一预定义通信协议承载具有第一预定义意义的符号或符号的组合,所述方法包括:
[0032]检查接收到的数据项的至少一个报头,借此以识别由其预定部分所承载的所述符号或符号的组合;
[0033]识别所述数据项的报头的至少一个其它部分是否承载有相同的符号或符号的组合;以及
[0034]在识别出所述数据项的报头的至少一个其它部分承载有相同的符号或符号的组合的情况下,根据第二预定义通信协议来处理所述一个或多个报头中的至少一个报头,所述第二通信协议不同于所述第一通信协议。
[0035]优选的实施方式涉及针对所讨论的数据项的仅一个报头正被执行的这样一种方法,在这种情况下所述方法可以被定义如下:
[0036]一种从经由通信网络所传送的数据项的报头获得信息的方法,报头的预定部分根据第一预定义通信协议承载有具有第一预定义意义的符号或符号的组合,所述方法包括:
[0037]检查接收到的数据项的至少一个报头,借此以识别由其预定部分所承载的所述符号或符号的组合;
[0038]识别所述数据项的报头的至少一个其它部分是否承载有相同的符号或符号的组合;以及[0039]在识别出所述数据项的报头的至少一个其它部分承载有相同的符号或符号的组合的情况下,根据第二预定义通信协议来处理所述一个或多个报头中的至少一个报头,所述第二通信协议不同于所述第一通信协议。
[0040]将理解的是,根据特定协议处理报头可以涉及或者可以被认为是涉及根据协议的语义来解释报头并且相应地处理报头,以便从它获得信息。[0041]将理解的是,符号例如可以是数字、字母、非字母数字字符或这些中的任一个的组合。例如,这可以取决于数据项的类型、报头的类型、适用的通信协议以及其它因素。在许多通信协议中,符号被称为码点,其中的每一个都可以是二进制、十进制、十六进制或其它这样的编号系统中的单位数或多位数。每个码点或其它这样的符号都可以根据特定协议具有特定意义。对于每个来说没有必要具有不同的意义-在一些协议中,两个或更多个符号可以分配相同的意义。
[0042]根据优选的实施方式,根据第二预定义通信协议来处理所述一个或多个报头中的所述至少一个报头的步骤可以包括:根据所述第二预定义通信协议通过将所述符号或符号的组合的所述识别的实例中的至少一个解释为具有第二预定义意义来处理所述符号或符号的组合的所识别的实例中的至少一个,所述第二意义不同于所述第一意义。
[0043]根据优选的实施方式,所述符号或符号的组合的所述第一预定义意义可以是:应该根据所述第一预定义通信协议来处理在所述至少一个报头中的一个或多个预定数据字段中所承载的数据;并且所述符号或符号的组合的所述第二预定义意义可以是:应该根据所述第二预定义通信协议来处理在所述至少一个报头中的所述一个或多个预定数据字段中所承载的数据。
[0044]根据优选的实施方式,通信网络可以是诸如分组网络的数字网络。
[0045]至 少一个报头的预定部分可以包括数据项的报头中的一个或多个字段或字段的部分。另选地,预定部分可以包括数据项的报头中的一个或多个子报头或子报头的部分。在这点上,将理解的是,子报头可以是在特定上下文(例如,诸如TCP时间戳)内被称为“选项报头”的报头。另选地,预定部分可以包括数据项中的一个或多个“选项”字段。“预定部分”的其它版本是可能的。
[0046]根据优选的实施方式,所讨论的数据项可以包括或者被包含在网际协议分组中。另选地或附加地,所讨论的数据项可以包括或者被包含在传输控制协议段中。
[0047]根据优选的实施方式,第一和/或第二预定义通信协议可以与时间戳相关。
[0048]根据优选的实施方式,所述符号或符号的组合的所述第一预定义意义可以是:应该根据允许确定往返时间的现有通信协议来处理在所述一个或多个预定数据字段中所承载的数据;和/或所述符号或符号的组合的所述第二预定义意义可以是:应该根据允许确定单程时间的第二预定义通信协议来处理在所述一个或多个预定数据字段中所承载的数据。应该注意的是,“单程时间”也被称为“单向延迟”。
[0049]根据优选的实施方式,所述方法可以进一步包括在没有识别出所述数据项的报头的其它部分承载有相同的符号或符号的组合的情况下,根据所述第一预定义通信协议来处理所述至少一个报头。
[0050]根据本发明的第二方面,提供了一种从经由通信网络所传送的数据项的一个或多个报头获得信息的装置,至少一个报头的预定部分根据第一预定义通信协议承载有具有第一预定义意义的符号或符号的组合,所述装置包括:
[0051]报头读取器模块,其能够检查接收到的数据项的至少一个报头,借此以识别由其预定部分所承载的所述符号或符号的组合;
[0052]处理器模块,其能够识别所述数据项的报头的至少一个其它部分是否承载有相同的符号或符号的组合;以及在识别出所述数据项的报头的至少一个其它部分承载有相同的符号或符号的组合的情况下,根据第二预定义通信协议来处理所述一个或多个报头中的至少一个报头,所述第二通信协议不同于所述第一通信协议。
[0053]关于第一方面上面所参考的各种选项和优选的实施方式关于第二方面也是适用的。
[0054]根据优选的实施方式,该构思是为了发送方将先前尚未被预期为重复的广泛接受的协议选项进行重复。这样的重复因此能够作为向接收方指示重复字段中的一个或两者应该用新的语义加以解释的隐蔽信号。注意,仅协议选项的类型被重复,而未必是可以具有不同值的所有参数。
[0055]理解新的协议的接收方将被布置成检测重复并且以适当的方式来解释重复字段的已修改的语义。
[0056]尚未被更新成理解新的协议的接收方将读取第一出现,对其进行动作,接着读取第二出现并且对其进行动作,依此类推,最可能不用通知它已经处理过类似的选项。(短语“不用通知”在这里在这样的接收方的行为不受这样的重复影响的意义上被使用。)
[0057]重复字段能够被布置成使得,当被尚未被更新成理解新的协议的接收方处理时,即使尚不理解新的协议语义,所处理的最后字段也将实现所希望的和安全的结果。
[0058]然 而,注意,存在原有软件中的变化将导致不可预见的结果的风险。例如:
[0059]-一种类型的软件可能在使用诸值中的任一个之前读入所有协议字段,使仅第二重复字段被使用
[0060]-另一类型可能在读取它之后使用每个值,使两个重复值被一个接一个地使用。
[0061]优选的实施方式的目标是能够阻止实现已被建立来仅对已知协议有效的有问题的中间盒,使得它们将干扰新近引入的协议选项。通过仅仅重复广泛识别的协议选项,这样的中间盒将一般地仅仅读完选项的列表并且不“通知”一个选项是重复的。对于它们而言,“新的协议”分组报头将可与原有分组报头区分。因此很可能的是,用于引入新的协议语义的这样一种方法将不命中在这些有问题的中间盒上具有漏洞和安全检查的问题。
[0062]应该注意的是,Yourtchenko的构思(上面讨论)不将重复它本身的存在用作第二分组具有新的语义的信号。即使第一格式丢失了第二分组也具有更新的接收方能够识别的不同格式,然而传统接收方将认为它是无效的。如果第二分组不被理解则第一分组仅仅被作为后备发送。虽然Yourtchenko的构思使用(一般地)与第一分组相关的第二分组,但是本发明的第一实施方式在特定数据单元(即特定分组、段、数据报等)内重复协议字段。
[0063]由发明人认为是最紧密相关的公开内容一般地将协议字段的重复检测为错误或攻击,不作为有意的协议扩展。
[0064]对复制或重复协议字段的使用的其它参考尚未被发现用于协议扩展的目的。对报头字段复制涉及到确立重复是错误还是攻击或者重复是否是安全的唯一参考例如是美国专利 US7342892。
【专利附图】

【附图说明】
[0065]现将参考附图对本发明的优选的实施方式进行描述,在附图中:
[0066]图1 (a)指示TCP报头如何可以包括重复的TCP时间戳选项(TSopt)报头;
[0067]图1 (b)示出涉及更新的发信方㈧与传统的应答方⑶之间的交互的TCP时间戳选项顺序图;
[0068]图1 (c)示出根据优选的实施方式进行操作、涉及更新的发信方(A)与更新的应答方(B)之间的交互的TCP时间戳选项顺序图;
[0069]图2示出在其中经由网络接口卡Ai和Bi在传输端点At与Bt之间传递数据单元的场景中的TCP时间戳选项顺序图;
[0070]图3是指示如何可以针对根据优选的实施方式操作的接收方处的接收从分组读取时间戳值的流程图;以及
[0071]图4是指示在将分组发送到根据优选的实施方式操作的接收方时如何可以写入时间戳回传应答的流程图。
【具体实施方式】
[0072]参考附图,将对根据优选的实施方式的方法进行描述,所述方法可以被用来促进新的协议的增量式部署而不引起或者提高诸如在新的协议被部署时常常发生的上面所描述的那些问题的类型的可能性。
[0073]为了示出如何实现第二 /多个TCP时间戳选项(TSopt)的使用的示例,我们将首先提供关于TCP和TSopt的一些背景知识。 [0074]采用TCP的可靠传输
[0075]TCP提供可靠的数据传输。那意味着每当分组在链路上丢失时,TCP确保该数据将被重传。为了检测丢失,TCP接收方对于成功地接收到的分组发送肯定应答。每个分组在报头中承载序列号以区分数据。而且,TCP报头具有用来标记肯定应答的ACK标志和用来对在接收方侧的下一个预期的序列号进行指示的肯定应答号字段。(为了减少网络负荷和计算负荷,TCP接收方将通常仅对于每第二分组发送肯定应答,并因此在一个ACK分组中确认两个分组的数据。这些被称作延迟的ACK。)
[0076]TCP连梓律立
[0077]TCP是面向连接的协议。在能够发送任何数据之前,两个通信端点需要同意建立连接。出于这种目的,TCP端点将发送没有任何有效载荷/数据的初始TCP分组,仅承载将通过设置同步(SYN)标志来指示连接的开始的报头。同意建立这种连接的TCP接收方将用没有有效载荷/数据的另一 TCP分组进行应答。为了确认SYN分组的接收并且指示新的连接的开始,接收方将ACK标志和SYN标志设置在这个分组的报头中。在能够发送任何数据之前,发起方(初始SYN分组的发送方)将需要发送又一个分组,该分组没有有效载荷/数据、具有设置来完成这种三方握手的ACK标志。
[0078]TCP 诜项
[0079]除特定的一组固定字段和标志(例如SYN、ACK或序列号字段)之外,可以将可选的字段分配给TCP报头。每个TCP选项都必须具有指示选项的类型的选项种类(I个字节)字段。除类型O和I以外的所有TCP选项都必须具有指示选项报头的长度(包括类型和长度)的选项长度(I个字节)字段。剩余的字节能够被用于任何选项数据,以使得能实现附加的TCP功能性。
[0080]TCP 时间戳诜项(TSopt)
[0081]TCP时间戳选项是具有类型8和长度10的一个特定TCP选项。TSopt保持称作TS值(TSval)字段和TS回传应答(TSecr)字段的两个4字节字段。TSopt旨在被用来估计连接的往返时间(RTT)。这以以下方式完成:主机A将在它发送段时的时间戳记录放入TSval字段并且主机B将这个值(或未确认的段的最初的值)拷贝到它返回给主机A的下一个ACK分组的TSecr字段中。时间戳选项字段由两个半连接在两个方向(A至B和B至A)上使用,因此主机B将时间戳放入ACK的TSval字段中以记录它发送ACK的时间。当主机A接收到ACK分组时,它能够将它所发送的时间戳的回传与当前时间相比较,因而估计RTT而不需保持关于它何时发送分组的任何记录。对于TCP中的初始SYN分组,当没有接收到先前的时间戳时,TSecr字段将是零。
[0082]报告使用TSopt报头的重复所接收到的时间
[0083]一方面,如果TCP主机想要测量RTT,则它能够使用规则的TSopt。它接着将原始的标准选项报头添加到每个分组的TCP报头。
[0084]另一方面,如果TCP主机需要测量单向延迟以及RTT,则它能够通过在一个TSopt报头中报告发送时间戳并且在附加的TSopt报头中报告接收时间戳来避免引入新的协议的问题。主机A将添加另一 TSopt报头,但是与TCP时间戳标准原先的规定不同地使用TSval字段和TSecr字段中的一个。这意味着主机A将会仍然将选项种类字段设置为类型8,并且该选项将仍然具有10个字节的长度,但是附加的TSopt报头的TSecr字段将承载附加的接收时间戳。我们将使用后缀_r和-S来区分相应的接收和发送时间戳(见图1(a))。因此我们将附加的接收时间戳字段称为TSecr-r。
[0085]当主机B接收到具有两个或更多个TSopt报头的段时,存在两种可能的结果:
[0086]结果1:主机B 尚未被更新成知道使用了具有不同的语义的重复的TSopt(图1(b))。因此主机B将假定所有报头是规则的TSopt,并且存储TSval字段中的一个以回传。哪一个字段将被存储将取决于实施方式,但是最可能的是,如果另一 TSopt报头到达,则较早的值将简单地被覆盖。
[0087]结果2:主机B知道具有不同语义的多个TSopt的使用并且知道附加的TSopt的语义(图1 (C))。对于已标准化的TSopt,主机B将在传出TSecr-s中正确地回传传入TSval-s。对于接收时间戳,主机B将插入第二 TSopt,在所述第二 TSopt中TSecr-r字段保持记录了触发了主机B以发送目前分组的数据分组的到达时间的时间戳。当主机A得到这些时间戳时,它能够将在原始TSopt的TSecr字段中的初始发送时间戳与在重复的报头的TSval字段中的接收时间戳相比较。如果主机A和B的时钟被同步,则主机A能够估计单向延迟。无论时钟是否被同步,主机A都能够监视单向延迟与例如对于拥塞控制来说通常足够的其它测量样本相比的演进。
[0088]因此,RTT计算以原先规定的方式使用发送时间戳,然而主机能够使用接收时间戳来测量它所发送的分组的单向延迟(OWD)。我们现在使用图1 (c)的协议顺序图中的时间戳来给出相关的计算的示例。
[0089]当SYN/ACK在时间t4处到达主机A时,主机A使用到达分组中的TSecr-s值tl来计算
[0090]RTT = t4-tl0
[0091]主机A同样还能够使用到达分组中的TSecr-r值t2来计算
[0092]OffD = t2-tl0[0093]当ACK在时间t6处到达主机B时,主机B能够类似地计算:
[0094]RTT = t6-t3 ;
[0095]OffD = t4_t3。
[0096]附加的TSopt报头不必一定出现在原始报头之前或之后的任何特定位置处,但是我们建议让原始TSopt作为最新位置,因为最可能的是非更新的主机将回传这一个。
[0097]在重复必须立即被视为这样的信号,即,第一字段具有与在它单独发生时不同的语义的信号情况下,优化是合理的。在没有这种优化的情况下,没有字段能够被处理直到每个字段已被读取以检查是否存在任何重复为止。采用这种优化,下一个字段的类型一被读取,字段就能够被处理。
[0098]与用于发送时间戳的TSopt不同,接收时间戳TSopt不严格地需要用于两个时间戳的空间。然而,用于接收时间戳的TSopt应该模仿发送时间戳字段的长度,以便减少中间盒拒绝它的机会。
[0099]在附加的TSopt报头中的明显冗余的TSval字段似乎被浪费了。然而,它在专门的接收时间戳硬件可用在网络接口卡(NIC)中情况下被利用得很好。这在图2中被图示,其中每个分组都在两个传输端点At与Bt之间被发送,但是它们通过相应的网络接口卡Ai和Bi (其中的每一个都提供硬件时间戳标记设备)被转发。
[0100]作为示例,我们将集中于在图2中在时间t5处发送的SYN/ACK分组。这个分组在时间t7处到达主机A的网络接口卡(NIC),所以NIC将接收时间戳值t7戳记(stamp)至IjTSval-r字段中。当这个分组到达主机A的传输功能(At)时,它读取两个TSecr值(TSecr-r=t3并且TSecr-s = tl)并且在针对如上面已经定义的RTT和OWD的计算机中使用它们。在时间t9处,当主机A发送由这个分组所触发的ACK时,它分别将两个传入值TSval-r和TSval-s拷贝到两个传出值TSecr-r和TSecr-s中,并且它将发送时间戳t9戳记到TSval-s上。当这个分组进而到达主机B的NIC时,它将接收时间til戳记到TSval-r字段中,并且像之前一样重复读取和交换时间戳的过程。
[0101]如果传输功能指示它(通过对适当的应用程序接口(API)的调用)则NIC仅对传入分组进行时间戳标记。接着,传输功能机械地遵循相同的读取和交换动作,而不必在分组到达时读取系统时钟给时间戳。如果传输功能不指示NIC添加接收时间戳,则它忽略传入TSval-r字段并且测量每个分组通过读取系统时钟所接收到的时间,接着将这个时间写入下一传出分组的TSecr-r字段。
[0102]采用初始TCP SYN分组,两个时间戳选项的TSecr需要为零,以便不破坏语义。如果发送方想要确保在连接开始能够得到正确的RTT估计,则即使稍后在会话中并非所有TSopt报头需要保持相同的时间戳,TSval在初始SYN的两个选项报头中的两次出现也应保持相同有效的时间戳。这是因为如果相应的接收方被更新成理解重复的报头,则发送方将通常不知道先验。
[0103] 如果发送方发送具有不止一个TSopt的初始SYN分组并且未得到SYN/ACK响应,则发送方将在特定时间段之后重试。随着下一个SYN分组发送方不应该使用任何重复TSopt报头。如果发送方已发送了具有多个TSop报头的SYN但是SYN/ACK承载仅一个TSopt报头,则发送方不应该再发送附加的TSopt报头。替代地,它应该仅发送具有原始语义的一个报头。[0104]迄今为止所描述的实施方式添加一个附加的时间戳选项。如果不同的实施方式需要原始TCP选项报头的空间的两倍以上,则诸如传统上已被使用仅一次的TCP时间戳选项的报头可以被重复一次以上,每个重复都潜在地暗示不同的语义。
[0105]图3和图4中的流程图规定了主机如何将时间戳值TSval从传入分组中的重复报头读取到存储器阵列TS[i]中(见图3)。接着,当它发送以下传出分组时,只要更多的值存在于该存储的阵列中,它就将更多的时间戳选项字段添加到传出分组并且将来自该阵列的值写入它们的TSecr字段(见图4)。最后在图4中,它将当前时间写入最后的时间戳选项的发送时间戳值TSval-s。
[0106]现将对第二实施方式进行描述。在网际协议的版本6 (IPv6)的定义中,如果IPv6分组被另一外部IPv6报头封装(隧穿),则不存在规定新定义的逐跳(hop-by-hop)选项报头应该被拷贝到外部报头的设备。定义IPv6逐跳选项报头如何被隧道端点处理的有关IETF规范[RFC2473]仅说与是否将IPv6逐跳选项报头拷贝到外部报头相关的决定取决于隧道端点的配置。因此,如果现有的隧道端点遇到具有它不识别的新的选项报头的分组,则没有要求它将这种新定义的报头拷贝到外部报头的机制。该第二实施方式通过使用报头重复的构思来确保新定义的IPv6选项报头将被拷贝到隧道的外部报头来解决这个问题。
[0107]超大包(jumbogram) IPv6逐跳选项报头在它被IPv6隧道端点封装时总是被拷贝到外部。超大包选项报头包括C2(十六进制)的I字节选项类型、具有值4(意指4个字节)的I字节选项长度字段以及用来规定超大包的尺寸的4字节字段。我们提出,如果新的逐跳选项报头被要求在隧穿而不是在定义新的逐跳选项报头时被拷贝到外层,则具有选项类型C2(超大包)的第二报头能够被添加到IPv6分组。考虑到迄今为止一直没有需要,不大可能的是,任何现有的IPv6路由器包括针对重复选项类型的任何检查。因此,重复超大包报头应该将现有的IPv6隧道端点愚弄成将重复的超大包报头拷贝到外部。用于读取超大包字段的值的软件非 常很可能在没有意识到它已经读取一个超大包报头的情况下读取第二个超大包报头,并且接着仅将它读取的最后值用作超大包的尺寸。
[0108]如果需要4个字节以上的选项报头,则具有选项类型C2的更多报头能够被添加多次。即使选项类型C2被原先规定为具有超大包报头的语义,几乎最后复制的超大包报头也能够被赋予与超大包无关的新定义的语义。
[0109]已被更新成理解这些重复的超大包选项报头的IPv6路由器将包括代码以便对从选项类型C2开始的任何逐跳选项报头进行计数,并且以用适当的语义按顺序作用于每一个。例如,新的标准可以规定:
[0110]-在分组中具有选项类型C2的最后报头具有超大包报头的语义;
[0111]-在分组中具有选项类型C2的倒数第二报头具有语义Y;
[0112]-在这之前具有选项类型C2的报头具有语义X,等等,
[0113]其中语义X和Y将在相关的新的标准中被定义。
【权利要求】
1.一种从经由通信网络所传送的数据项的一个或多个报头获得信息的方法,至少一个报头的预定部分根据第一预定义通信协议承载具有第一预定义意义的符号或符号的组合,所述方法包括: 检查接收到的数据项的至少一个报头,借此以识别由其预定部分所承载的所述符号或符号的组合; 识别所述数据项的报头的至少一个其它部分是否承载有相同的符号或符号的组合;以及 在识别出所述数据项的报头的至少一个其它部分承载有相同的符号或符号的组合的情况下,根据第二预定义通信协议来处理所述一个或多个报头中的至少一个报头,所述第二通信协议不同于所述第一通信协议。
2.根据权利要求1所述的方法,其中根据第二预定义通信协议来处理所述一个或多个报头中的所述至少一个报头的所述步骤包括:根据所述第二预定义通信协议通过将所述符号或符号的组合的所述识别的实例中的至少一个解释为具有第二预定义意义来处理所述符号或符号的组合的所识别的实例中的所述至少一个,所述第二意义不同于所述第一意义。
3.根据权利要求1或2所述的方法,其中,所述符号或符号的组合的所述第一预定义意义是:应该根据所述第一预定义通信协议来处理在所述至少一个报头中的一个或多个预定数据字段中所承载的数据;并且所述符号或符号的组合的所述第二预定义意义是:应该根据所述第二预定义 通信协议来处理在所述至少一个报头中的所述一个或多个预定数据字段中所承载的数据。
4.根据前述权利要求中的任一项所述的方法,其中,所述通信网络是诸如分组网络这样的数字网络。
5.根据前述权利要求中的任一项所述的方法,其中,所述至少一个报头的预定部分包括所述数据项的报头中的一个或多个字段或字段的部分。
6.根据前述权利要求中的任一项所述的方法,其中,所述至少一个报头的预定部分包括所述数据项的报头中的一个或多个子报头或子报头的部分。
7.根据前述权利要求中的任一项所述的方法,其中,所述预定部分包括所述数据项中的一个或多个“选项”字段。
8.根据前述权利要求中的任一项所述的方法,其中,所述数据项包括网际协议分组。
9.根据前述权利要求中的任一项所述的方法,其中,所述数据项包括传输控制协议段。
10.根据前述权利要求中的任一项所述的方法,其中,所述第一预定义通信协议和/或所述第二预定义通信协议与时间戳相关。
11.根据前述权利要求中的任一项所述的方法,其中,所述符号或符号的组合的所述第一预定义意义是:应该根据允许确定往返时间的现有通信协议来处理在所述一个或多个预定数据字段中所承载的数据;和/或所述符号或符号的组合的所述第二预定义意义是:应该根据允许确定单程时间的第二预定义通信协议来处理在所述一个或多个预定数据字段中所承载的数据。
12.根据前述权利要求中的任一项所述的方法,所述方法包括:在没有识别出所述数据项的报头的其它部分承载有相同的符号或符号的组合的情况下,根据所述第一预定义通信协议来处理所述至少一个报头。
13.—种从经由通信网络所传送的数据项的一个或多个报头获得信息的装置,至少一个报头的预定部分根据第一预定义通信协议承载有具有第一预定义意义的符号或符号的组合,所述装置包括: 报头读取器模块,其能够检查接收到的数据项的至少一个报头,借此以识别由其预定部分所承载的所述符号或符号的组合; 处理器模块,其能够识别所述数据项的报头的至少一个其它部分是否承载有相同的符号或符号的组合;以及在识别出所述数据项的报头的至少一个其它部分承载有相同的符号或符号的组合的情况下,根据第二预定义通信协议来处理所述一个或多个报头中的至少一个报头,所述第二通信协议不同于所述第一通信协议。
14.根据权利要求13所述的装置,其中,所述处理器模块还能够在没有识别出所述数据项的报头的其它部分承载有相同的符号或符号的组合的情况下,根据所述第一预定义通信协议来处理所述至少一个报头。
15.根据权利要求13或14所述的装置,其能够执行根据权利要求1至12中的任一项所述的方法。
【文档编号】H04L29/06GK104025550SQ201280065545
【公开日】2014年9月3日 申请日期:2012年12月20日 优先权日:2011年12月30日
【发明者】M·坤勒温德, 罗伯特·约翰·布里斯科 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1