CN106233694A - 在计算设备中利用添加的头部管理序列值 - Google Patents
在计算设备中利用添加的头部管理序列值 Download PDFInfo
- Publication number
- CN106233694A CN106233694A CN201580022060.6A CN201580022060A CN106233694A CN 106233694 A CN106233694 A CN 106233694A CN 201580022060 A CN201580022060 A CN 201580022060A CN 106233694 A CN106233694 A CN 106233694A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- segmentation
- computer
- length value
- 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.)
- Granted
Links
Classifications
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种数据处理方法包括:从客户端计算机接收包括第一客户端序列值的第一握手消息分段;向服务器计算机发送包括第二客户端序列值的第二握手消息分段,第二客户端序列值等于第一客户端序列值减去添加的数据长度值;接收第三握手消息分段,发送第四握手消息分段,并且确定到客户端计算机和服务器计算机的连接已经达到建立状态;接收包括第一数据长度值的第一数据分段;形成第二数据分段,该第二数据分段包括:来自第一数据分段的有效载荷数据、大小等于添加的数据长度值的添加的数据、以及等于第一数据长度值和添加的数据长度值之和第二数据长度值;向服务器计算机发送第二数据分段。
Description
技术领域
本公开总地涉及使用传输控制协议(TCP)的诸如交换机和路由器之类的互联网设备。本公开更具体地涉及用于在传输过程中当头部或者其他数据被添加到分组时管理序列值的技术。
背景技术
本部分描述的方法是可以进行的方法,但是不一定是以前已经想到或者进行的方法。因此,除非有相反的指示,否则不应该认为本部分描述的方法仅仅由于包括在本部分中而作为现有技术。
互联网服务的提供商(称为服务提供商)已经与诸如路由器和交换机之类的互联网设备的供应商一起,开发出了向穿过服务提供商网络中的路由器和交换机的分组添加头部和头部数据的能力。例如,假定客户端计算机通过互联网服务提供商(ISP)被耦合到内容服务器计算机,并且ISP网络具有插在客户端计算机和内容服务器之间的逻辑分组通信路径中的大量路由器和/或交换机。在一些情形中,当ISP从向内容服务器请求内容的客户端计算机接收到分组时,ISP可以在路由器或交换机之一处插入能够被内容服务器计算机辨认的一个或多个头部和头部值。基于ISP和内容服务器计算机的所有者/运营者之间的服务条款,不同等级的服务可以由ISP网络中的其他元件或者由内容服务器计算机基于所添加的头部中的值提供给客户端计算机。
在ISP网络中沿着路径向分组添加头部具有不要求ISP存储网络中的状态数据的优点。但是,向分组添加头部会增加在客户端计算机与服务器计算机之间传送的字节的总数目;因此,添加头部具有以下缺点:需要改变客户端计算机和内容服务器计算机在传输控制协议(TCP)的标准规定下保持的序列值,因为这些序列值反映了被交换的字节的数目。
在一种方法中,在客户端计算机和内容服务器计算机之间传送的每个消息在添加头部后将需要修改分组头部中的TCP序列值,即使后续消息不会招致任何其他后续修改时也是如此。结果,修改每个后续消息的方法将需要大量的处理资源。还需要存储一些形式的状态数据,这些状态数据指示哪些流具有包括需要序列号管理的添加的头部的分组。在对流的相对少量的分组执行实质动作、并且对该流的绝大多数分组仅执行计费操作的线速互联网元件中实现这种方法是不切实际的,因为这将不必要地使这样的设备减速。
发明内容
所附权利要求可以作为对本发明的总结。
附图说明
在附图中:
图1示出了其中实施例可被使用的网络情境。
图2示出了在计算设备中利用添加的头部来管理序列值的处理的一个实施例。
图3示出了在计算设备中利用添加的头部来管理序列值的处理的另一实施例。
图4示出了在一种示例实施方式中客户端、DPI、以及服务器之间的示例消息流。
图5示出了可以通过其来使用实现方式的计算机系统。
具体实施方式
在下面的描述中,出于说明的目的给出了大量具体细节,以提供对本发明的透彻理解。但是,将显而易见的是,本发明可以在没有这些具体细节的情况下实施。在其他实例中,以框图形式示出了公知结构和设备,以避免不必要地模糊本发明。
1.概述
在一个实施例中,本公开提供了一种数据处理方法,包括:从客户端计算机接收包括第一客户端序列值的第一握手消息分段;向服务器计算机发送包括第二客户端序列值的第二握手消息分段,该第二客户端序列值等于第一客户端序列值减去添加的数据长度值;从客户端计算机接收第三握手消息分段,向服务器计算机发送第四握手消息分段,并且确定到客户端计算机和服务器计算机的连接已经达到建立状态;从客户端计算机接收包括第一数据长度值的第一数据分段;形成第二数据分段,该第二数据分段包括:来自第一数据分段的有效载荷数据、大小等于添加的数据长度值的添加的数据、以及等于第一数据长度值和添加的数据长度值之和的第二数据长度值;向服务器计算机发送第二数据分段;其中,该方法是使用一个或多个计算设备执行的。
在另一实施例中,本公开提供了一种数据处理方法,包括:从客户端计算机接收包括第一客户端TCP序列号的第一TCP SYN分段;向服务器计算机发送包括第二客户端TCP序列号的第二TCP SYN分段,该第二客户端TCP序列号等于第一客户端TCP序列号减去添加的数据长度值;接收第一TCP SYN ACK数据分段,发送第二TCP SYN ACK数据分段,并且确定到客户端计算机和服务器计算机的连接已经达到建立状态;从客户端计算机接收包括数据长度值的第一TCP数据分段;形成第二TCP数据分段,该第二TCP数据分段包括:来自第一TCP数据分段的有效载荷数据、长度等于添加的数据长度值的添加的数据、以及等于第一有效载荷数据长度值和添加的数据长度值之和的第二数据长度值;向服务器计算机发送第二TCP数据分段;其中,该方法是使用一个或多个计算设备执行的。
在又一实施例中,本公开提供了一种计算机系统,包括:一个或多个处理器;交换系统,该交换系统被耦合到一个或多个处理器并且被配置为:在入口接口上接收数据分组,从多个可用出口接口中确定要在其上向目的地转发数据分组的出口接口,并且在该出口接口上转发数据分组;一个或多个非瞬态计算机可读存储介质,它们被耦合到一个或多个处理器并且存储一个或多个指令序列,该一个或多个指令序列在被一个或多个处理器执行时使得:从客户端计算机接收包括第一客户端序列值的第一握手消息分段;向服务器计算机发送包括第二客户端序列值的第二握手消息分段,该第二客户端序列值等于第一客户端序列值减去添加的数据长度值;从客户端计算机接收第三握手消息分段,向服务器计算机发送第四握手消息分段,并且确定到客户端计算机和服务器计算机的连接已经达到建立状态;从客户端计算机接收包括第一数据长度值的第一数据分段;形成第二数据分段,该第二数据分段包括:来自第一数据分段的有效载荷数据、大小等于添加的数据长度值的添加的数据、以及等于第一数据长度值和添加的数据长度值之和的第二数据长度值;向服务器计算机发送第二数据分段。
可以使用对流的相对少量的分组执行实质动作、并且对该流的绝大多数分组执行计费操作的线速互联网元件来实现一个实施例。示例是可以从加利福尼亚州圣何塞市的思科系统公司商购的思科服务控制引擎(Cisco Service Control Engine,SCE)。可以使用插入在网络消息流中的其他设备之间的路由器、交换机、其他互联网元件、以及其他计算设备实现来其他实施例。
任何这样的实施例可以被实现为终结到客户端计算机的第一连接并且终结到内容服务器计算机的第二连接的代理设备;但是,代理操作和/或使用两个连接或者双边拼接的连接并不是强制性的。因此,可以在以下任意情形中实现这些实施例:在该情形中计算设备已经被配置为接收数据集,通过向数据集添加或者从数据集移除头部数据、载荷数据、或者其他数据并且在本地使用修改后的数据集或者将修改后的数据集转发到其他位置来修改数据集。实际上,这里的方法的优点在于,它们不要求从代理盒到客户端计算机以及到服务器计算机的双向代理或者双边连接的拼接。
2.结构和功能示例
图1示出了其中实施例可以被使用的网络情境。客户端计算机102被耦合到服务提供商网络104中的网络设备106,网络设备106还被耦合到内容服务器计算机110。客户端计算机102广泛地代表诸如个人计算机、工作台、平板电脑、智能电话、或者服务器计算机之类的可能需要来自内容服务器计算机110的内容的任何计算设备。服务提供商网络104代表一个或多个局域网、广域网、互联网等的任意组合,并且一般代表互联网服务提供商(ISP)。网络设备106可以是诸如分组数据路由器或者交换机之类的互联网架构的任意单元。内容服务器计算机110广泛地代表容宿或者可以访问对客户端计算机102有用的内容的任何计算机。内容服务器计算机110可以与网站、视频服务、音乐商店、文档服务、或者向客户端计算机或者终端用户计算机提供内容的任何其他形式的服务相关联。
网络设备106容宿消息修改逻辑108。在一个实施例中,消息修改逻辑108被配置为实现在本部分中结合图2、图3、图4进一步描述的技术。在一个实施例中,消息修改逻辑108可以包括一个或多个计算机程序、其他软件元件、数字逻辑、和/或被如此配置的其他功能单元。在实施例中,消息修改逻辑108可以形成网络设备106的操作系统(例如,可从加利福尼亚州圣何塞市的思科系统公司商购的Cisco ISO Software)或者使用该操作系统来容宿的应用的一部分。
在一个实施例中,消息修改逻辑108被配置为执行对于在客户端计算机102和内容服务器计算机110之间传送的消息中的序列值的修改和管理,如本文中进一步描述的。例如,在一个实施例中,客户端计算机102和内容服务器计算机110使用诸如TCP/IP上的HTTP之类的互联网协议、使用包含具有TCP序列号的TCP分段的IP分组进行通信。
在这种实施例中,如图1中所示,客户端计算机102可以形成并发送承载特定值的TCP序列号(由X表示)的消息120。在实施例中,消息修改逻辑108被配置为拦截消息120,因为网络设备106在逻辑上被插在客户端计算机102和内容服务器计算机110之间。在一些实施例中,网络设备106被配置为在该网络设备处终结TCP连接、以及与内容服务器计算机110相关联的第二TCP连接,从而充当代理。在其他实施例中,网络设备不终结连接,但是可以默默地或者“混杂地”观察客户端计算机和服务器计算机之间的TCP/IP流量,并且在途中修改消息。
在任何这样的情况下,消息修改逻辑108被配置为通过减小等于将被添加到消息的字节数的指定值Y来修改消息120的序列号;所以,在网络设备106处,消息120被变换为具有等于X减Y的序列号的消息122。消息122被转发给内容服务器110,或者相同的序列号被用在到内容服务器的代理连接以及后续通信中。
图2示出了在计算设备中利用添加的头部来管理序列值的处理的一个实施例。
在块202,该处理接收指定目的地信息的消息或者请求。在一个实施例中,该消息包括HTTP POST请求或者HTTP GET请求,但是其他实施例可以使用其他种类的消息。特定种类的消息并不是关键。在各种实施例中,用在该处理中的目的地信息可以包括TCP/IP分组的互联网协议(IP)头部中的目的地端口值和目的地网络地址、和/或统一资源定位符(URL)。例如,HTTP请求中的URL可以指定客户端计算机正试图访问的特定内容资源。
在块204,基于目的地信息,该处理确定目的地信息中标识的目的地是否与分组修改操作相关联。在各种实施例中,分组修改操作可以包括添加分组、移除分组、或者执行其他修改。在一个实施例中,实现图2的处理的计算设备存储、或者可以访问存储目的地信息到分组修改信息的映射的数据存储库或者其他计算设备。例如,所存储的映射可以包括URL和键值的列表,用信号表示头部是否将被添加、特定有效载荷值是否将被添加、或者是否执行其他分组操控操作的标记值或者其他指示符。
在一个实施例中,如果块204的测试为真,则控制转移到块206。如果块204的测试为假,则可选地控制最终转移到块212,这将在下面讨论。
在块206,基于随后将被添加的头部值的指定或者预定长度修改在协议握手序列期间提出的序列值。例如,在TCP的情况中,客户端在TCP三向握手对话期间传送的TCP SYN分段中提出的TCP序列号被修改。修改后的序列值被确定为客户端所提出的序列号减去稍后将被添加的头部的已知长度:
deviceProposedSeqNo=sourceProposedSeqNo-lenOfAddedHeader
在块208,基于已经确定的分组修改操作修改消息。例如,HTTP GET请求或者POST请求可以被修改,以添加一个或多个新HTTP头部和头部值。结果,修改后的消息被创建并被存储在主存储器中或者被以其他方式临时存储。
在块210,该处理计算修改后的消息的一个或多个头部校验和值。一个或多个头部校验和值可以被更新到该消息中。下游接收节点将接收附加载荷,如同其是从发送节点发送的一样;因此,接收服务器计算机不能确定消息是否已经被修改,除非修改后的头部或者数据明确指示该消息已被代理。
然后,与同一流有关的其他分组、分段、或者消息不需要修改。相反,客户端计算机和内容服务器计算机可以根据传统的联网协议进行通信。实际上,这里的解决方案的一个优点在于:客户端计算机和内容服务器计算机处的协议实施方式(例如,每个位置中的TCP栈软件)不需要为了与这里的技术兼容或者互操作而进行修改。
在一个实施例中,在块212,具有指定长度的假头部(dummy header)可以被添加。例如,当特定消息不需要添加实质性的新头部的服务区分或者其他特殊处理并且至少允许序列值的一致性补偿时,块212的方法是适当的。换言之,在块212的方法中,即使在不需要具有实质性的值的头部的情况下,该处理也总是对序列值进行补偿。
图3示出了在计算设备中利用添加的头部来管理序列值的处理的另一实施例。在块302,该处理从客户端计算机接收包括第一客户端序列值的第一握手消息分段。第一握手消息分段可以是例如,TCP SYN分段。
在块304,该处理向服务器计算机发送包括第二客户端序列值的第二握手消息分段,第二客户端序列值等于第一客户端序列值减去添加的数据长度值。在一个示例方法中,第二握手消息分段也可以是TCP SYN分段。与现有方法不同,块304包括:通过根据添加的数据长度值的大小减小客户端序列值,来修改在来自客户端的分段中接收的客户端序列值,其中该添加的数据长度值表示该处理在随后的操作中将添加的数据量。
在块306,该处理从客户端计算机接收第三握手消息分段,向服务器计算机发送第四握手消息分段,并且确定到客户端计算机和服务器计算机的连接已经达到建立状态。在一个示例方法中,第三握手消息分段和第四握手消息分段可以是TCP SYN ACK分段。
在块308,该处理从客户端计算机接收包括第一数据长度值的第一数据分段。该第一数据分段可以是TCP数据分段。
在块310,该处理形成第二数据分段,该第二数据分段包括:来自第一数据分段的有效载荷数据、大小等于添加的数据长度值的添加的数据、以及等于第一数据长度值和添加的数据长度值之和的第二数据长度值。第二数据分段还可以包括TCP数据分段,其中已经通过加回该添加的数据长度值对在块308从客户端计算机接收的DLEN数据长度值进行修改。
在块312,该处理向服务器计算机发送第二数据分段。
图4示出了在一种示例实现方式中客户端计算机、网络设备、以及服务器计算机之间的示例消息流。在图4的示例中,消息流400包括经修改的消息流450和未修改的消息流460。在这种情境下,“经修改”意味着不符合TCP下的传统用途,并且“未修改”意味着遵循标准TCP协议。图4假定客户端正在传达对于保存在服务器处的内容的请求,并且DPI在网络拓扑中在逻辑上位于客户端和服务器之间。消息在离散的时刻被传送;最早的消息在图4的顶部,时间随着图中的竖线向下移动而增加。
在块402,客户端计算机102通过发送其中的客户端序列号(在图4中由CSeq表示)被设置为第一指定值(图中表示为X)的TCP SYN分段,来开始与服务器计算机110的消息会话。该指定值X不是关键的,并且将在使用本技术的每个会话中变化。
在消息404,网络设备106代表客户端计算机102将TCP SYN分段向前发送给服务器计算机110。然而,与标准TCP协议中使用的过程不同,在消息404中,客户端序列号值被设置为X-Y,其中,X是在消息402中从客户端接收的序列号值,Y是DPI稍后将插入到数据有效载荷中的添加的头部中的字节的数目。向消息中插入字节或者添加头部的目的不是关键的,这些实施例可以出于任何技术目的或者商业目的而支持该功能。客户端计算机102没有被通知客户端序列号值X-Y已经被发送给服务器计算机110,并且它不必这样做。
在消息406,服务器利用TCP SYN ACK分段进行应答,在TCP SYN ACK分段中客户端序列号值CSeq被确认为X-Y,并且服务器序列号值(在图4中由SSeq表示)被指定为Z。指定值Z不是关键的,并且将在使用这里的技术的每个会话中变化。
在消息408,网络设备106利用其中的CSeq为X、SSeq为Z的TCP SYN ACK分段对客户端计算机102进行应答。
在消息410,客户端通过发送其中的CSeq为X、SSeq为Z的TCP SYN ACK分段来提供确认。
在消息412,网络设备106向服务器计算机110发送其中的CSeq为X-Y、SSeq为Z的TCP SYN ACK分段。此时,三向握手完成,并且两个TCP连接已经达到建立(ESTABLISHED)状态。
在消息414,客户端发送具有长度为数据长度值(DLEN)中所指示的A字节的长度的数据载荷、被设置为X的CSeq、以及被设置为Z的SSeq的TCP DATA分段。当然,A可以是高达网络已经建立的最大准许数据有效载荷值的任意值。
在消息416,网络设备106将其中的CSeq为X-Y、SSeq为Z的TCP DATA分段向前发送给服务器计算机110。DPI还插入Y字节的头部或者数据载荷数据,并且假定DLEN为A+Y之和。因此,被发送给服务器计算机110的TCP DATA分段包括客户端提供的数据、以及网络设备106已经插入的添加的数据。另外,网络设备106已经将DLEN和CSeq值修改为反映Y字节的添加。然而,已经添加Y字节的事实不需要以某种方式向服务器计算机110或者客户端服务器102明确宣布。
在消息418,服务器计算机110向网络设备106传送其中的客户端序列号已经被更新为X+A之和、并且SSeq为Z的TCP DATA分段。
在消息420,网络设备106发送其中的CSeq为X与Z之和并且SSeq为Z的TCP DATA分段。
然后,客户端和服务器可以相同的方式交换TCP DATA分段,而无需进一步修改协议或者序列号值,如箭头430、440所指示的。
使用这种方法,网络设备106可以被配置为默默地向来自客户端计算机102并且被定向到服务器计算机110的消息插入头部数据或有效载荷数据,而无需管理保存在客户端计算机102处的CSeq值或保存在服务器计算机110处的SSeq值。具体地,网络设备106不需要向客户端计算机102或服务器计算机110通知以下内容:网络设备将向客户端和服务器交换的TCP分段的头部或者有效载荷插入数据。
另外,不需要修改实现TCP的服务器计算机110或者客户端计算机102处的操作系统、网络栈、或者其他软件。相反,客户端计算机102和服务器计算机110处的TCP实现方式可以保持不修改,并且可以根据标准进行操作。网络设备106是非标准TCP操作中涉及的唯一功能单元,并且通过默默地将客户端序列号减小网络设备随后在传输中将插入到DATA分段中的字节的数目来解决本公开中所标识的问题。
实施例不要求流的所有分组都到达客户端计算机102和内容服务器计算机110之间的网络104中的网络设备106。相反,如果网络104中的所有设备都被配置有这里描述的能力,并且使用相同的指定长度的添加头部,则这里描述的流中的一个消息、分组、或者分段可以到达一个设备,并且其他消息、分组、或者分段可以到达另一设备,而不会不利地影响这里的处理的操作。
实施例提供了以下的显著优点:不需要管理标识哪些消息、分段、或者分组将经受头部修改,而哪些消息、分段、或者分组不经受头部修改的状态数据。另外,不需要向每个分组、分段、或者消息的序列号添加指定的添加的头部长度值。反而,握手和数据交换中所涉及的第一部分分组的序列号被减小了添加的头部长度;然后,后续分组的序列号不需要任何修改。
3.硬件概述
根据一个实施例,这里描述的技术是由一个或多个专用计算设备实现的。这些专用计算设备可以被硬连线来执行这些技术,或者可以包括被持久地编程为执行这些技术的诸如一个或多个专用集成电路(ASIC)或者现场可编程门阵列(FPGA)之类的数字电子器件,或者可以包括被编程以根据固件、存储器、其他存储设备、或者组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以结合具有实现这些技术的定制编程的定制的硬连线逻辑、ASIC、或者FPGA。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备、或者组合硬连线和/或程序逻辑来实现这些技术的任何其他设备。
例如,图5是示出可以在上面实现本发明实施例的计算机系统500的框图。计算机系统500包括总线502或者用于传送信息的其他通信机制、以及与总线502耦合并且用于处理信息的硬件处理器504。硬件处理器504可以是例如,通用微处理器。
计算机系统500还包括耦合到总线502的、用于存储将由处理器504执行的指令和信息的诸如随机存取存储器(RAM)或者其他动态存储设备之类的主存储器506。主存储器506还可以用于存储由处理器504执行的指令的执行过程中的临时变量或者其他中间信息。这些指令在被存储在处理器504可访问的非瞬态存储介质中时,使得计算机系统500成为被定制为执行这些指令中指定的操作的专用机。
计算机系统500还包括耦合到总线502的、用于存储供处理器504使用的静态信息和指令的只读存储器(ROM)508或者其他静态存储设备。存储设备510(例如磁盘或者光盘)被提供并且被耦合到总线502,以用于存储信息和指令。
计算机系统500可以经由总线502被耦合到用于向计算机用户显示信息的诸如阴极射线管(CRT)之类的显示器512。包括字母数字和其他键的输入设备514被耦合到总线502,以用于向处理器504传送信息和命令选择。另一类型的用户输入设备是用于向处理器504传送方向信息和命令选择并且用于控制显示器512上的光标移动的光标控制设备516,例如,鼠标、轨迹球、或者光标方向键。这种输入设备一般具有第一轴(例如,x)和第二轴(例如,y)两个轴中的两个自由度,这允许该设备指定平面中的位置。
计算机系统500可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件、和/或程序逻辑来实现这里描述的技术,这些定制的硬连线逻辑、一个或多个ASIC或FPGA、和/或程序逻辑与计算机系统500结合起来使得计算机系统500成为专用机或者将计算机系统500编程为专用机。根据一个实施例,这里描述的技术由计算机系统500响应于处理器504执行主存储器506中包含的一个或多个指令的一个或多个序列而被执行。这些指令可以被从诸如存储设备510的另一存储介质读入主存储器506。主存储器506中包含的指令序列的执行使得处理器504执行这里描述的处理步骤。在可选的实施例中,可以使用硬连线电路来代替软件指令,或者可以将硬连线电路与软件指令结合使用。
这里使用的术语“存储介质”是指存储促使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如,诸如存储设备510之类的光盘或磁盘。易失性介质包括诸如主存储器506之类的动态存储器。存储介质的通用形式包括例如,软盘、柔性盘、硬盘、固态驱动器、磁带、或者任何其他磁数据存储介质、CD-ROM、任何其他光数据存储介质、具有孔洞图案的任何物理介质、RAM、PROM、以及EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或者存储盒。
存储介质不同于传输介质,但是可以与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜线、以及光纤,将包括总线502的线缆包括在内。传输介质还可以采取声波或者光波的形式,例如在无线电波和红外数据通信期间生成的声波或光波。
各种形式的介质可以被用于将一个或多个指令的一个或多个序列运载到处理器504供执行。例如,这些指令最初可以被承载在远程计算机的磁盘或者固态驱动器上。远程计算机可以将这些指令加载到其动态存储器中,并且使用调制解调器在电话线上发送这些指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并使用红外发射器将该数据变换为红外信号。红外检测器可以接收红外信号中所承载的数据,并且适当的电路可以将数据放置在总线502上。总线502将数据承载到主存储器506,处理器504从主存储器506取回指令并执行这些指令。主存储器506接收的指令可以可选地在被处理器504执行之前或之后被存储在存储设备510上。
计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到网络链路520的双向数据通信,该网络链路520被连接到本地网络522。例如,通信接口518可以是综合服务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或者提供到相应类型的电话线的数据通信连接的调制解调器。作为另一示例,通信接口518可以是提供到兼容的LAN的数据通信连接的局域网(LAN)卡。无线链路也可以被实现。在任何这样的实现方式中,通信接口518发送并接收承载代表各种类型的信息的数字数据流的电、电磁、或者光信号。
网络链路520一般通过一个或多个网络提供到其他数据设备的数据通信。例如,网络链路520可以通过局域网522提供到主机计算机524、或者由互联网服务提供商(ISP)526操作的数据装备的连接。ISP 526继而通过现在被统称为“互联网”的世界范围分组数据通信网528提供数据通信服务。本地网络522和互联网528二者都使用承载数字数据流的电、电磁、或者光信号。承载来自以及去往计算机系统500的数字数据的、通过各种网络的信号以及网络链路520上的、通过通信接口518的信号是传输媒介的示例形式。
计算机系统500可以通过一个或多个网络、网络链路520、以及通信接口518发送消息并接收包括程序代码在内的数据。在互联网示例中,服务器530可以通过互联网528、ISP526、本地网络522、以及通信接口518发送针对应用程序的请求代码。
接收到的代码在被处理器504接收到时由处理器504执行,和/或被存储在存储设备510或者其他非易失性存储设备中以供稍后执行。
在前面的说明中,已经参考随着实现方式的不同而不同的大量具体细节描述了本发明的实施例。因此,本说明书和附图将被看做是说明性的而非限制性的意义。本发明的范围的以及申请人期望作为本发明的范围的唯一且排他性的指示符是以权利要求的被发布的特定形式从本申请发布的权利要求的字面和等同范围,包括任何后续修正。
Claims (25)
1.一种数据处理方法,包括:
从客户端计算机接收包括第一客户端序列值的第一握手消息分段;
向服务器计算机发送包括第二客户端序列值的第二握手消息分段,所述第二客户端序列值等于所述第一客户端序列值减去添加的数据长度值;
从所述客户端计算机接收第三握手消息分段,向所述服务器计算机发送第四握手消息分段,并且确定到所述客户端计算机和所述服务器计算机的连接已经达到建立状态;
从所述客户端计算机接收包括第一数据长度值的第一数据分段;
形成第二数据分段,该第二数据分段包括:来自所述第一数据分段的有效载荷数据、大小等于所述添加的数据长度值的添加的数据、以及等于所述第一数据长度值和所述添加的数据长度值之和的第二数据长度值;
向所述服务器计算机发送所述第二数据分段;
其中,所述方法是使用一个或多个计算设备执行的。
2.如权利要求1所述的方法,包括:
从所述客户端计算机接收第三数据分段,该第三数据分段包括大于所述第一数据长度值、所述添加的数据长度值、以及第三数据长度值之和的第三客户端序列值;
在不修改所述第三客户端序列值的情况下向所述服务器计算机发送所述第三数据分段;
针对所述客户端计算机的多个不同数据分段重复权利要求2所述的接收和发送处理多次。
3.如权利要求1所述的方法,其中,所述第一握手消息分段是传输控制协议(TCP)同步(SYN)分段。
4.如权利要求3所述的方法,其中,所述第二握手消息分段是TCPSYN ACK分段。
5.如权利要求1所述的方法,其中,所述方法是使用在网络拓扑中逻辑上位于所述客户端计算机和所述服务器计算机之间的路由器来执行的。
6.如权利要求1所述的方法,还包括:
接收所述第一握手消息分段中的目的地信息;
确定所述目的地信息是否指示与分组修改操作相关联的目的地;
仅响应于确定所述目的地信息指示与分组修改操作相关联的目的地,而执行权利要求1的其他操作。
7.如权利要求6所述的方法,其中,所述目的地信息是URL。
8.如权利要求6所述的方法,还包括:
响应于确定所述目的地信息不与执行分组修改操作相关联,而向代理的有效载荷数据分段添加假头部。
9.如权利要求6所述的方法,其中,所述添加的数据是新HTTP头部。
10.一种数据处理方法,包括:
从客户端计算机接收包括第一客户端TCP序列号的第一TCP SYN分段;
向服务器计算机发送包括第二客户端TCP序列号的第二TCP SYN分段,所述第二客户端TCP序列号等于所述第一客户端TCP序列号减去添加的数据长度值;
接收第一TCP SYN ACK数据分段,发送第二TCP SYN ACK数据分段,并且确定到所述客户端计算机和所述服务器计算机的连接已经达到建立状态;
从所述客户端计算机接收包括数据长度值的第一TCP数据分段;
形成第二TCP数据分段,该第二TCP数据分段包括:来自所述第一TCP数据分段的有效载荷数据、长度等于所述添加的数据长度值的添加的数据、以及等于所述第一有效载荷数据长度值和所述添加的数据长度值之和的第二数据长度值;
向所述服务器计算机发送所述第二TCP数据分段;
其中,所述方法是使用一个或多个计算设备执行的。
11.如权利要求10所述的方法,包括:
从所述客户端计算机接收第三TCP数据分段,该第三TCP数据分段包括大于所述第一数据长度值、所述添加的数据长度值、以及第三数据长度值之和的第三客户端TCP序列值;
在不修改所述第三客户端序列值的情况下向所述服务器计算机发送所述第三TCP数据分段;
针对所述客户端计算机的多个不同TCP数据分段重复权利要求1所述的接收和发送处理多次。
12.如权利要求10所述的方法,其中,所述方法是使用在网络拓扑中逻辑上位于所述客户端计算机和所述服务器计算机之间的路由器来执行的。
13.如权利要求10所述的方法,还包括:
接收所述第一TCP SYN分段中的目的地信息;
确定所述目的地信息是否指示与分组修改操作相关联的目的地;
仅响应于确定所述目的地信息指示与分组修改操作相关联的目的地,而执行权利要求11的其他操作。
14.如权利要求13所述的方法,其中,所述目的地信息是URL。
15.如权利要求13所述的方法,还包括:
响应于确定所述目的地信息不与执行分组修改操作相关联,而向所述第二TCP数据分段添加假头部。
16.如权利要求13所述的方法,其中,所述添加的数据是新HTTP头部。
17.一种计算机系统,包括:
一个或多个处理器;
交换系统,该交换系统被耦合到所述一个或多个处理器,并且被配置为在入口接口上接收数据分组,从多个可用出口接口中确定用于向目的地转发所述数据分组的出口接口,并且在所述出口接口上转发所述数据分组;
一个或多个非瞬态计算机可读存储介质,所述一个或多个非瞬态计算机可读存储介质耦合到所述一个或多个处理器并且存储一个或多个指令序列,所述一个或多个指令序列在被所述一个或多个处理器执行时使得执行:
从客户端计算机接收包括第一客户端序列值的第一握手消息分段;
向服务器计算机发送包括第二客户端序列值的第二握手消息分段,所述第二握手消息分段等于所述第一客户端序列值减去添加的数据长度值;
从所述客户端计算机接收第三握手消息分段,向所述服务器计算机发送第四握手消息分段,并且确定到所述客户端计算机和所述服务器计算机的连接已经达到建立状态;
从所述客户端计算机接收包括第一数据长度值的第一数据分段;
形成第二数据分段,该第二数据分段包括:来自所述第一数据分段的有效载荷数据、大小等于所述添加的数据长度值的添加的数据、以及等于所述第一数据长度值和所述添加的数据长度值之和的第二数据长度值;
向所述服务器计算机发送所述第二数据分段。
18.如权利要求17所述的计算机系统,包括在被执行时使得执行以下处理的指令序列:
从所述客户端计算机接收包括第三客户端序列值的第三数据分段,该第三客户端序列值大于所述第一数据长度值、所述添加的数据长度值、以及第三数据长度值之和;
在不修改所述第三客户端序列值的情况下,向所述服务器计算机发送所述第三数据分段;
针对所述客户端计算机的多个不同数据分段,重复权利要求2所述的接收和发送处理多次。
19.如权利要求17所述的计算机系统,其中,所述第一握手消息分段是传输控制协议(TCP)同步(SYN)分段。
20.如权利要求19所述的计算机系统,其中,所述第二握手消息分段是TCP SYN ACK分段。
21.如权利要求17所述的计算机系统,包括在网络拓扑中逻辑上位于所述客户端计算机和所述服务器计算机之间的路由器。
22.如权利要求17所述的计算机系统,包括在被执行时使得执行以下处理的指令序列:
接收所述第一握手消息分段中的目的地信息;
确定所述目的地信息是否指示与分组修改操作相关联的目的地;
仅响应于确定所述目的地信息指示与分组修改操作相关联的目的地,而执行权利要求1的其他操作。
23.如权利要求22所述的计算机系统,包括在被执行时使得所述目的地信息是URL的指令序列。
24.如权利要求22所述的计算机系统,包括在被执行时使得执行以下处理的指令序列:响应于确定所述目的地信息不与执行分组修改操作相关联,而向代理的有效载荷数据分段添加假头部。
25.如权利要求22所述的计算机系统,其中,所述添加的数据是新HTTP头部。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN491KO2014 | 2014-04-25 | ||
IN491/KOL/2014 | 2014-04-25 | ||
US14/309,454 US9848067B2 (en) | 2014-04-25 | 2014-06-19 | Managing sequence values with added headers in computing devices |
US14/309,454 | 2014-06-19 | ||
PCT/US2015/024930 WO2015164079A1 (en) | 2014-04-25 | 2015-04-08 | Managing sequence values with added headers in computing devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106233694A true CN106233694A (zh) | 2016-12-14 |
CN106233694B CN106233694B (zh) | 2019-07-12 |
Family
ID=54335923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580022060.6A Active CN106233694B (zh) | 2014-04-25 | 2015-04-08 | 在计算设备中利用添加的头部管理序列值 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9848067B2 (zh) |
EP (1) | EP3135016B1 (zh) |
CN (1) | CN106233694B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11036438B2 (en) | 2017-05-31 | 2021-06-15 | Fmad Engineering Kabushiki Gaisha | Efficient storage architecture for high speed packet capture |
US11392317B2 (en) | 2017-05-31 | 2022-07-19 | Fmad Engineering Kabushiki Gaisha | High speed data packet flow processing |
US11128740B2 (en) * | 2017-05-31 | 2021-09-21 | Fmad Engineering Kabushiki Gaisha | High-speed data packet generator |
US10990326B2 (en) | 2017-05-31 | 2021-04-27 | Fmad Engineering Kabushiki Gaisha | High-speed replay of captured data packets |
US10423358B1 (en) | 2017-05-31 | 2019-09-24 | FMAD Engineering GK | High-speed data packet capture and storage with playback capabilities |
US11533372B2 (en) * | 2021-03-31 | 2022-12-20 | Google Llc | Proxyless protocol |
CN115022252B (zh) * | 2022-05-31 | 2024-04-09 | 青岛海信移动通信技术有限公司 | 一种配置传输数据包最大长度的方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1011244A2 (en) * | 1998-12-16 | 2000-06-21 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US20020059428A1 (en) * | 1998-11-10 | 2002-05-16 | Netscaler, Inc. | Internet client-server multiplexer |
US6976085B1 (en) * | 2001-11-20 | 2005-12-13 | Cisco Technology, Inc. | Methods and apparatus for inserting data into a communications session |
US20070025374A1 (en) * | 2005-07-28 | 2007-02-01 | Third Brigade, Inc. | TCP normalization engine |
US20070283429A1 (en) * | 2006-05-30 | 2007-12-06 | A10 Networks Inc. | Sequence number based TCP session proxy |
CN101147376A (zh) * | 2005-02-04 | 2008-03-19 | 诺基亚公司 | 降低tcp洪泛攻击同时节省无线网络带宽的装置、方法和计算机程序产品 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7801978B1 (en) * | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US7607062B2 (en) * | 2002-03-25 | 2009-10-20 | Akamai Technologies, Inc. | System for fast recovery from losses for reliable data communication protocols |
US7277963B2 (en) * | 2002-06-26 | 2007-10-02 | Sandvine Incorporated | TCP proxy providing application layer modifications |
US7987271B1 (en) | 2002-08-12 | 2011-07-26 | Cisco Technology, Inc. | Methods and apparatus for inserting content within a content page |
GB2417389B (en) * | 2004-08-18 | 2007-10-31 | Wecomm Ltd | Transmitting data |
US7675854B2 (en) * | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US8151323B2 (en) * | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
US8489670B1 (en) * | 2006-12-26 | 2013-07-16 | Akamai Technologies, Inc. | Reducing TCP connection establishment time in an overlay network |
FR2954029B1 (fr) * | 2009-12-14 | 2012-07-13 | Canon Kk | Procede de transmission de paquets d'un flux de donnees bidirectionnel passager, dispositif gestionnaire, produit programme d'ordinateur et moyen de stockage correspondants |
US8463887B2 (en) * | 2009-12-23 | 2013-06-11 | Citrix Systems, Inc. | Systems and methods for server surge protection in a multi-core system |
KR20140052703A (ko) * | 2012-10-25 | 2014-05-07 | 삼성전자주식회사 | 프록시 서버를 이용한 웹 서비스 가속 방법 및 장치 |
US9154468B2 (en) * | 2013-01-09 | 2015-10-06 | Netronome Systems, Inc. | Efficient forwarding of encrypted TCP retransmissions |
US20140258465A1 (en) * | 2013-03-11 | 2014-09-11 | Cisco Technology, Inc. | Identification of originating ip address and client port connection to a web server via a proxy server |
US9219781B2 (en) * | 2013-04-06 | 2015-12-22 | Citrix Systems, Inc. | Systems and methods for GSLB preferred backup list |
US9055100B2 (en) * | 2013-04-06 | 2015-06-09 | Citrix Systems, Inc. | Systems and methods for HTTP-Body DoS attack prevention with adaptive timeout |
US9577892B2 (en) * | 2013-04-06 | 2017-02-21 | Citrix Systems, Inc. | Systems and methods for providing monitoring in a cluster system |
US9319476B2 (en) * | 2013-05-28 | 2016-04-19 | Verizon Patent And Licensing Inc. | Resilient TCP splicing for proxy services |
WO2015164079A1 (en) | 2014-04-25 | 2015-10-29 | Cisco Technology, Inc. | Managing sequence values with added headers in computing devices |
-
2014
- 2014-06-19 US US14/309,454 patent/US9848067B2/en active Active
-
2015
- 2015-04-08 CN CN201580022060.6A patent/CN106233694B/zh active Active
- 2015-04-08 EP EP15717392.3A patent/EP3135016B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020059428A1 (en) * | 1998-11-10 | 2002-05-16 | Netscaler, Inc. | Internet client-server multiplexer |
EP1011244A2 (en) * | 1998-12-16 | 2000-06-21 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6976085B1 (en) * | 2001-11-20 | 2005-12-13 | Cisco Technology, Inc. | Methods and apparatus for inserting data into a communications session |
CN101147376A (zh) * | 2005-02-04 | 2008-03-19 | 诺基亚公司 | 降低tcp洪泛攻击同时节省无线网络带宽的装置、方法和计算机程序产品 |
US20070025374A1 (en) * | 2005-07-28 | 2007-02-01 | Third Brigade, Inc. | TCP normalization engine |
US20070283429A1 (en) * | 2006-05-30 | 2007-12-06 | A10 Networks Inc. | Sequence number based TCP session proxy |
Also Published As
Publication number | Publication date |
---|---|
EP3135016B1 (en) | 2018-03-21 |
US20150312384A1 (en) | 2015-10-29 |
CN106233694B (zh) | 2019-07-12 |
US9848067B2 (en) | 2017-12-19 |
EP3135016A1 (en) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106233694A (zh) | 在计算设备中利用添加的头部管理序列值 | |
US10652367B2 (en) | Reducing network latency | |
US6799220B1 (en) | Tunneling management messages over a channel architecture network | |
CN102546800B (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
US9356863B2 (en) | Communications over multiple protocol interfaces in a computing environment | |
CN109522462B (zh) | 一种基于区块链的云查询方法、装置、设备及存储介质 | |
CN109040227A (zh) | 基于区块链的业务请求响应方法、装置和计算机设备 | |
US11025738B2 (en) | Systems and methods for determining a destination location for transmission of packetized data in a network system based on an application server attribute | |
US11108671B2 (en) | Systems and methods for processing network traffic using dynamic memory | |
CN109088820A (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN104618365B (zh) | 协议报文处理方法、装置及终端 | |
CN104092627B (zh) | 带宽调整方法及装置 | |
CN107026878A (zh) | 订阅消息的发布方法及装置 | |
US9871666B2 (en) | Intermediate unicast network and method for multicast data networks | |
CN109417507A (zh) | 部分延迟的报文访问 | |
CN109379179A (zh) | 用于更新数字证书的方法和装置 | |
CN105245464A (zh) | 一种基于安卓系统的网络加速方法 | |
CN105281944B (zh) | 网络协议地址的设定方法及服务管理系统 | |
CN106331051A (zh) | 文件传输方法和系统以及接收文件装置、发送文件装置 | |
CN109450952A (zh) | 加密数据通讯方法、装置以及电子设备 | |
WO2015164079A1 (en) | Managing sequence values with added headers in computing devices | |
JP2007259137A (ja) | パケット転送装置、パケット転送方法、及びプログラム | |
CN116112197A (zh) | 认证信息传输方法、认证信息传输系统、存储介质和设备 | |
CN108173673A (zh) | 一种路由器子网设备的远程维护方法、装置及设备 | |
JPWO2016103568A1 (ja) | パケット処理装置、方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |