CN1801812A - 高性能传输控制协议syn队列的实现 - Google Patents

高性能传输控制协议syn队列的实现 Download PDF

Info

Publication number
CN1801812A
CN1801812A CNA2005101073867A CN200510107386A CN1801812A CN 1801812 A CN1801812 A CN 1801812A CN A2005101073867 A CNA2005101073867 A CN A2005101073867A CN 200510107386 A CN200510107386 A CN 200510107386A CN 1801812 A CN1801812 A CN 1801812A
Authority
CN
China
Prior art keywords
bucket
array
request
internet protocol
datagram
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.)
Pending
Application number
CNA2005101073867A
Other languages
English (en)
Inventor
Y·李
S·索德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1801812A publication Critical patent/CN1801812A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一般地,一方面,本公开内容描述了一种方法,其包含访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果。本方法还包括基于至少一部分确定的散列结果来从第一数组中访问第一存储桶的数组元素,其中不同的数组元素与不同的相应的打开请求对应。本发明还包括将打开请求的条目存储在该存储桶的数组元素中。

Description

高性能传输控制协议SYN队列的实现
技术领域
本发明一般地涉及网络传输,具体地说涉及高性能传输控制协议(TCP)SYN队列的实现。
背景技术
网络使计算机和其它设备能够进行通信。例如,网络可以传送表示视频、音频、电子邮件等的数据。通常,通过网络发送的数据由称为分组的较小消息承载。用类推法,分组很像投入邮箱中的信封。分组通常包括有效载荷和首部。分组的有效载荷类似于信封内的信件。分组的首部很像写在信封上面的信息。首部可以包括帮助网络设备对分组进行适当处理的信息。
为处理复杂的网络通信,多个网络协议(例如“协议栈”)要进于协作。例如,称为传输控制协议(TCP)的传输协议为应用提供建立连接并通过网络传送数据的简单机制。TCP以对这些应用而言透明的方式处理诸如数据重传、适应网络业务拥塞各种通信问题。
为了提供这些服务,TCP基于称为段的分组来进行操作。一般地,TCP段在诸如因特网协议(IP)数据报的较大分组内(通过“封装”)来通过网络传送。IP数据报常常通过诸如以太网帧之类的大得多的分组来进一步加以封装。TCP段的有效载荷承载由应用通过网络发送的数据流的一部分。接收器可以通过重组接收的段来恢复原始的数据流。为了允许重组以及向发送器确认(ACK)接收的数据,TCP将发送的每个字节与一个序号相关联。
在TCP中,使用“三向握手”来建立端点之间的连接。最初,客户机发送打开请求(即,设置在TCP首部内具有同步标记的段)。作为响应,服务器用确认客户机打开请求的SYN/ACK段来应答。最后,客户机确认服务器的响应。
发明内容
根据本发明的第一方面,提供了一种方法,包括:访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果;基于确定的散列结果的至少一部分从第一数组中访问第一存储桶的数组元素,其中第一存储桶的不同数组元素与不同的相应的打开请求对应;以及在该存储桶的数组元素中存储打开请求的条目。
根据本发明的第二方面,提供了一种制造产品,包含用于促使至少一个处理器执行如下步骤的指令:访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果;基于确定的散列结果的至少一部分从第一数组中访问第一存储桶的数组元素,其中第一存储桶的不同数组元素与不同的相应打开请求对应;以及在该存储桶的数组元素中存储打开请求的条目;访问第二因特网协议数据报,该数据报包含具有设定的ACK标志的第二传输控制协议段;至少部分基于第二因特网协议数据报的因特网协议源和目的地址以及第二传输控制协议段的源和目的端口号来确定第二散列结果;基于确定的散列结果的至少一部分来从第一数组中访问一个存储桶的数组元素;以及确定该存储桶中的至少一个数组元素是否与第二传输控制协议段的未决打开请求对应。
根据本发明的第三方面,提供了一种系统,包含:集成在单个集成芯片上的多个核心;以及逻辑,用于:访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果;基于确定的散列结果的至少一部分从第一数组中访问第一存储桶的数组元素,其中第一存储桶的不同数组元素与不同的相应打开请求对应;以及在该存储桶的数组元素中存储打开请求的条目;访问第二因特网协议数据报,该数据报包含具有设定的ACK标志的第二传输控制协议段;至少部分基于第二因特网协议数据报的因特网协议源和目的地址以及第二传输控制协议段的源和目的端口号来确定第二散列结果;基于确定的散列结果的至少一部分来从第一数组中访问一个存储桶的数组元素;以及确定该存储桶的至少一个数组元素是否与第二传输控制协议段的未决打开请求对应。
根据本发明的第四方面,提供了一种制造产品,包含用于促使至少一个处理器执行如下步骤的指令:访问第一存储桶组,第一存储桶组中的各个存储桶存储了传输控制协议(TCP)打开请求标识符数组;以及访问第二存储桶组,第二存储桶组中的各个存储桶存储了TCP打开请求状态数据数组。
附图说明
图1示出使用静态数组实现的SYN队列。
图2示出在SYN队列中执行查找的过程。
图3示出使打开请求中断的过程。
图4示出一个多核心处理器的示例。
图5示出一个网络设备。
具体实施方式
正如上面所述,使用TCP的三向握手建立连接会造成在服务器收到原始打开请求和收到完成连接建立的最终确认之间的一段时间间隔。为了记住这些未决的打开请求,TCP实现通常以具有SYN队列(SYNQ)为特征,SYN队列存储所请求的连接的最小状态数据,直到连接建立完成为止,为该连接建立完整的连接上下文(例如,TCB(传输控制块))。SYNQ随着新的打开请求的到达以及先前的打开请求连接的完成而不断变化。此外,许多系统实现了超时方案,该超时方案从SYNQ中清除在一段时间间隔后未完成握手的打开请求。
高性能TCP系统支持大量的连接建立和拆除(例如,当前每秒成千上万的连接)。实现这种高速率的障碍是与SYNQ查找有关的存储器等待时间。例如,从客户机收到ACK会导致查找SNYQ以尝试将该ACK与先前接收的打开请求作匹配比较。
过去,使用链接表或者具有与每个散列存储桶相关联的链接表的散列表来实现SNYQ。在这种实现方式中,可通过逐节点遍历链接表,直到发现匹配的SYNQ条目或到达链接表终点为止来执行对SYNQ的查找。遍历链接表可能需要许多次存储器访问,当不存在匹配时任务尤其繁重。此外,由于大量的连接打开请求,链接表可能增长得相当长,从而难以遍历。
本公开描述了无需使用链接表采存储和访问SYNQ信息即实现SYNQ的技术,代之以使用一个或多个数组来实现SYNQ。可能的是,这些数组可以是静态的(即,具有固定的预分配的大小的数组)。如下所述,使用数组可以大大减少存储和检索SYNQ条目所需的存储器访问数量。这些技术还可以使使失效的打开请求超时的任务容易。
为了说明,图1示出了使用标记为“主”表102和“从”表106的一对静态数组来实现SYNQ 100的简单示例。主表102存储了标识具有未决打开请求的不同TCP/IP连接的签名(比特序列)。从表106存储了每个未决打开请求的实际的SYNQ状态数据(例如,打开请求的因特网源地址、打开请求的因特网目的地址、由打开请求指定的TCP选项等)。
如图所示,每个数组102、106被分割为一组存储桶,其中给定的存储桶包括一些固定数量的条目。例如,在图1中,主表中的每个存储桶102n包括用于流签名的16个槽104a-104f,而次表106中的每个存储桶106n包括用于打开请求108a-108f的16个槽。如图所示,在主表和次表的存储桶及条目之间存在一对一的关系。也就是说,在主表102和次表106中与特定打开请求相关联的存储桶索引和槽索引是相同的(例如,具有签名104b的打开请求的状态数据被存储在打开请求数据108b中)。可以将分组映射到给定的存储桶,例如,基于对分组首部(或多个首部)中的信息(“元组”)(例如,分组的IP源和目的地址、源和目的端口)的散列运算。散列结果的前m个比特可以提供存储桶索引,而剩余比特构成连接签名。
当接收到打开请求时,该请求被映射到主表102的存储桶102x,并且在该存储桶内查找该请求的签名,以确保该打开请求对此流而言并非已经是未决的。如果在主表的存储桶102x中没有发现匹配的签名(或者在主表102中的匹配签名与在次表106中的匹配打开请求不对应),则该打开请求表示新的请求,于是为该请求分配可用的数组元素,以及将该请求的状态数据存储在存储桶106x内的相应槽中。如果主表的存储桶102x是满的,则可默默地丢弃SYN分组,期望客户机会在存储桶的槽因从SYNQ中删除条目而可用时重新发送该SYN。
当接收到ACK时,SYNQ逻辑试图将该ACK匹配到未决的打开请求。因此,该逻辑确定该ACK段的存储桶102x并搜索存储桶102x以查找匹配该ACK段的签名。如果发现匹配,则ACK表示三向握手的最后阶段并访问该打开请求的相应状态数据108x。由于不同流打开请求的签名可能是相同的(“冲突”),则比较打开请求和ACK分组的元组以确保正确的匹配。如果元组匹配,则将打开请求数据用于完成连接建立并且从SYNQ中释放打开请求条目。否则继续查找主表的存储桶102x。
将多个签名/打开请求收集到单个存储桶中可以减少与访问SYNQ相关的等待时间。例如,不是采用多次访问来漫游链接表,而是可以用单独一个读操作来读取每个存储桶。换句话说,可以一个读操作的代价来快速访问N个流的数据,而不是对每个进行一次读操作。此外,将查找和SYNQ状态数据分到不同的数组中可以加速查找操作。例如,可以将主表102存储在比存储次表106的存储器(例如DRAM)快的存储器(例如SRAM)中。因此,这种实现方式可以在访问较慢存储器以存取实际的打开请求之前快速确定是否存在可能的匹配。
图2示出采用图1所示数组102、106来执行SYNQ查找以将ACK分组与未决打开请求进行匹配比较的示范过程。如图所示,对ACK分组元组进行散列运算150,以得到散列结果。从散列结果中获得主存储桶索引和签名。在读取152由该主存储桶索引标识的主存储桶154之后,在主存储桶的槽内查找156、158分组签名的匹配。如果发现匹配,则读相应的次表存储桶162。如果次表存储桶中相应打开请求的元组与ACK分组的元组匹配166,则查找成功168。否则,可继续在主存储桶中查找匹配签名。如果已经检查了主存储桶的所有槽160并且没有发现匹配的打开请求,则查找失败164。
如图1所示,除了签名104a-104f以外,存储桶102x还可以包括标识每个未决打开请求的超时值的数据。例如,如图所示,主表存储桶102n存储与数组元素104a-104f相关联的打开请求的超时值104g-104u。将这些超时值组织到一个数组中,以便给定打开请求的超时与一系列超时值104g-104u的开始的偏移与相应的打开请求签名与一系列签名值104a-104f的开始的偏移相同。将多个超时值一起组织在存储桶102n中允许以单个操作读取这些值,并允许快速检查许多不同的未决打开请求的超时值。
图3说明使失效的打开请求超时的示范过程。如图所示,该过程可以在给定的存储桶中读取一组超时值160,将每个值与时钟值比较162,并清除已终止的打开请求签名的存储桶。该过程连续运行,围绕数组102逐存储桶循环164,随它的运行清除失效的打开请求。例如,每个时间间隔超时处理可以对存储桶进行块读取。
虽然图1-3描述了示范实施方式,但其它实施方式可有所不同。例如,图1示出类似的静态数组102、106。然而,可以不使用一对类似的数组,而是使用单个数组来存储与未决打开请求相关联的所有数据。此外,虽然图1显示超时值和签名值非连续存储,但是可以将这些值散布在交替的数组元素中。同样,这些仅仅是示例,各种各样的其它变化都是可行的。
上述技术可以在各种各样的设备上实现。例如,图4示出了网络处理器200的示例。所示网络处理器200是Intel因特网交换网络处理器(IXP)。其它网络处理器以不同的设计为特征。
所示网络处理器200的特征是在单个集成半导体芯片上集成多个可编程处理核心202。每个核心202可以是为分组处理定制的精简指令集计算(RISC)处理器。例如,核心202可以不提供通常由通用处理器的指令集提供的浮点或整数除法指令。各个核心202可以提供多个执行线程。例如,核心202可以存储多个程序计数器以及不同线程的其它上下文数据。
网络处理器200还包括经常被编程来执行网络操作中所涉及的“控制面”任务的附加核心处理器210(例如StrongARMXScale或者IntelArchitecture(IA)核心)。但是此核心处理器210也可以处理“数据面”任务。
如图所示,网络处理器200的特征还在于至少一个可以在处理器200和其它网络部件之间传送分组的接口202。例如,处理器200的特征可在于具有交换结构接口202(例如,公共交换接口(CSIX)),该接口允许处理器200发送分组到其它处理器或连接到上述交换结构的电路。处理器200的特征还在于接口202(例如系统分组接口(SPI)接口),此接口允许处理器200与物理层(PHY)和/或链路层设备(例如,MAC或成帧设备)通信。处理器200还包括用于与例如主机或其它网络处理器通信的接口208(如外围部件互连(PCI)总线接口)。
如图所示,处理器200还包括由核心202共享的其它部件,例如散列核心、由若干核心共享的内部暂时存储区以及提供到由若干核心共享的外部存储器访问的存储控制器206、212。SYNQ数组可以存储在不同的存储器中。例如,主表可以存储在静态随机存取存储器(SRAM)中,而次表可以存储在较慢的动态随机存取存储器(DRAM)中。由于使用存储在较快的SRAM中的数据来进行签名比较,因此可以加快查找。
核心202可以通过核心210或者其它共享资源与其它核心202通信。核心202也可以通过直接连接到相邻核心204的相邻寄存器而进行相互通信。各个核心202可以以内容可寻址存储器(CAM)为特征。可替换地,CAM可以是由不同核心202共享的资源。
上述技术可以通过由一个或多个核心202执行的软件来实现。例如,可以对核心202编程来实现分组处理流水线,其中,在一个或多个核心线程上操作的线程执行以太网操作(例如,以太网接收、以太网解封装)、IPv4和/或IPv6操作(例如校验),并且在一个或多个核心上的线程处理诸如上述SYNQ操作的TCP操作。其它线程可以对最后得到的数据流执行应用操作。
图5描述了可以使用上述技术来处理分组的网络设备。如图所示,该设备的特征在于具有通过交换结构310(例如纵横式或共享存储器式交换结构)互连的线卡300(“叶片”)集合。例如,所述交换结构可遵循CSIX或其它诸如HyperTransport、Infiniband、PCI、Packet-Over-SONET、RapidIO、和/或UTOPIA(ATM的通用测试和操作物理层接口)之类的交换结构技术。
各个线卡(例如300a)可以包括一个或多个处理网络连接上通信的物理层(PHY)设备302(例如,光学、有线和无线物理层设备)。这些物理层设备在由不同网络介质传送的物理信号和由数字系统使用的比特(例如若干“0”和“1”)之间进行转换。线卡300还可以包括可以对帧执行诸如检错和/或纠错之类操作的成帧设备(例如,以太网、同步光纤网络(SONET)、高级数据链路(HDLC)成帧器或者其它“层2”设备)304。所示线卡300还可以包括一个或多个网络处理器306,该处理器时通过物理层设备302接收的分组执行分组处理操作,并且通过交换结构310将这些分组引导到提供用以转发分组的出口接口的线卡。可能的是,网络处理器306可以代替成帧设备304执行“层2”任务。
虽然图4和5描述了网络处理器和结合了网络处理器的设备的特定示例,但上述技术可以在各种包括设计不同于所示那些设计的处理器和设备的体系结构中实现。例如,上述技术可以用于TCP卸载引擎(TOE)中。这样的TOE可以集成到IP存储节点、应用(“层7”)负载平衡器或其它设备中。
此外,上述技术可用于处理其它传输层协议、在网络协议栈中其它层中的协议、不同于TCP和IP的协议以及用于处理其它协议数据单元。例如,上述技术可用于处理诸如异步传输模式(ATM)分组(“信元”)或用户数据报协议(UDP)之类的其它面向连接的协议。与以上的用法一样,术语IP同时包含IPv4和IPv6实现。
本文所用术语“电路”包括硬连线电路、数字电路、模拟电路、可编程电路等。可编程电路可以基于配置在制造产品(例如,诸如只读存储器之类的非易失性存储器)上的可执行指令来运行。
其它实施例在所附的权利要求的范围内。

Claims (30)

1.一种方法,包括:
访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;
至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果;
基于确定的散列结果的至少一部分从第一数组中访问第一存储桶的数组元素,其中第一存储桶的不同数组元素与不同的相应的打开请求对应;以及
在该存储桶的数组元素中存储打开请求的条目。
2.权利要求1的方法,
进一步包含访问第二因特网协议数据报,该数据报包含具有设定的ACK标志的第二传输控制协议段;
至少部分基于第二因特网协议数据报的因特网协议源和目的地址以及第二传输控制协议段的源和目的端口号来确定第二散列结果;
基于确定的散列结果的至少一部分来从第一数组中访问一个存储桶的数组元素;以及
确定该存储桶的至少一个数组元素是否与第二传输控制协议段的未决打开请求对应。
3.权利要求1的方法,
进一步包含基于确定该存储桶的至少一个数组元素与第二传输控制协议段的未决打开请求对应来释放与该未决打开请求相关的至少一个数组元素。
4.权利要求1的方法,其中所述存储包含存储第一散列结果的至少一部分。
5.权利要求1的方法,其中所述存储桶存储不同的相应打开请求的超时值。
6.权利要求7的方法,还包含基于超时值来清除存储桶中的一个或多个条目。
7.权利要求1的方法,进一步包含:
将条目写在第二数组的相应存储桶中。
8.权利要求7的方法,其中所述条目包含分组的因特网源地址、分组的因特网目的地址和至少一个传输控制协议选项中的至少一个。
9.权利要求7的方法,其中第一数组包含存储在SRAM中的数组并且第二数组包含存储在DRAM中的数组。
10.权利要求1的方法,其中所述确定包含在配置在单个集成芯片上的一组多个处理器核心之一上执行指令。
11.权利要求1的方法,其中所述存储桶包含少于单个读指令可访问的最大字节数量的数据。
12.一种制造产品,包含用于促使至少一个处理器执行如下步骤的指令:
访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;
至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果;
基于确定的散列结果的至少一部分从第一数组中访问第一存储桶的数组元素,其中第一存储桶的不同数组元素与不同的相应打开请求对应;以及
在该存储桶的数组元素中存储打开请求的条目;
访问第二因特网协议数据报,该数据报包含具有设定的ACK标志的第二传输控制协议段;
至少部分基于第二因特网协议数据报的因特网协议源和目的地址以及第二传输控制协议段的源和目的端口号来确定第二散列结果;
基于确定的散列结果的至少一部分来从第一数组中访问一个存储桶的数组元素;以及
确定该存储桶中的至少一个数组元素是否与第二传输控制协议段的未决打开请求对应。
13.权利要求12的产品,
进一步包含基于确定所述存储桶中至少一个数组元素与第二传输控制协议段的未决打开请求对应来释放与该未决打开请求相关的至少一个数组元素的指令。
14.权利要求12的产品,其中要存储的指令包含存储第一散列结果的至少一部分的指令。
15.权利要求12的产品,其中所述存储桶存储不同的相应打开请求的超时值。
16.权利要求15的产品,进一步包含基于超时值来清除存储桶的一个或多个条目的指令。
17.权利要求12的产品,进一步包含:
将条目写在第二数组的相应存储桶中。
18.权利要求17的产品,其中所述条目包含分组的因特网源地址、分组的因特网目的地址和至少一个传输控制协议选项中的至少一个。
19.权利要求17的产品,其中第一数组包含存储在SRAM中的数组并且第二数组包含存储在DRAM中的数组。
20.权利要求12的产品,其中所述存储桶包含少于单个读指令可访问的最大字节数量的数据。
21.一种系统,包含:
集成在单个集成芯片上的多个核心;以及
逻辑,用于:
访问第一因特网协议数据报,该数据报包含表示连接打开请求的第一传输控制协议段;
至少部分基于因特网协议数据报的因特网协议源和目的地址以及第一传输控制协议段的源和目的端口号来确定第一散列结果;
基于确定的散列结果的至少一部分从第一数组中访问第一存储桶的数组元素,其中第一存储桶的不同数组元素与不同的相应打开请求对应;以及
在该存储桶的数组元素中存储打开请求的条目;
访问第二因特网协议数据报,该数据报包含具有设定的ACK标志的第二传输控制协议段;
至少部分基于第二因特网协议数据报的因特网协议源和目的地址以及第二传输控制协议段的源和目的端口号来确定第二散列结果;
基于确定的散列结果的至少一部分来从第一数组中访问一个存储桶的数组元素;以及
确定该存储桶的至少一个数组元素是否与第二传输控制协议段的未决打开请求对应。
22.权利要求21的系统,
进一步包含基于确定所述存储桶的至少一个数组元素与第二传输控制协议段的未决打开请求对应来释放与该未决打开请求相关的至少一个数组元素的逻辑。
23.权利要求21的系统,其中所述存储桶存储不同的相应打开请求的超时值。
24.权利要求21的系统,其中第一数组包含存储在SRAM中的数组并且第二数组包含存储在DRAM中的数据。
25.权利要求21的系统,其中所述存储桶包含少于单个读指令可访问的最大字节数量的数据。
26.一种制造产品,包含用于促使至少一个处理器执行如下步骤的指令:
访问第一存储桶组,第一存储桶组中的各个存储桶存储了传输控制协议(TCP)打开请求标识符数组;以及
访问第二存储桶组,第二存储桶组中的各个存储桶存储了TCP打开请求状态数据数组。
27.权利要求26的产品,其中第一存储桶组中的存储桶和第二存储桶组中的存储桶具有一对一的关系。
28.权利要求26的产品,其中第一存储桶组被存储在与第二存储桶组不同的存储器中。
29.权利要求26的产品,
其中所述标识符包含通过对封装TCP打开请求的因特网协议(IP)数据报执行散列运算而获得的散列结果的一部分;以及
其中与TCP打开请求相关的存储桶的索引由相同散列结果的一部分来标识。
30.权利要求26的产品,
进一步包含访问第一存储桶和第二存储桶以使TCP ACK与先前接收的TCP打开请求匹配的指令。
CNA2005101073867A 2004-12-14 2005-12-13 高性能传输控制协议syn队列的实现 Pending CN1801812A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/013061 2004-12-14
US11/013,061 US20060126640A1 (en) 2004-12-14 2004-12-14 High performance Transmission Control Protocol (TCP) SYN queue implementation

Publications (1)

Publication Number Publication Date
CN1801812A true CN1801812A (zh) 2006-07-12

Family

ID=36181386

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005101073867A Pending CN1801812A (zh) 2004-12-14 2005-12-13 高性能传输控制协议syn队列的实现

Country Status (3)

Country Link
US (1) US20060126640A1 (zh)
CN (1) CN1801812A (zh)
WO (1) WO2006065688A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420771A (zh) * 2011-12-28 2012-04-18 中国科学技术大学苏州研究院 高速网络环境中提高tcp并发连接速度的方法
CN111788817A (zh) * 2018-03-01 2020-10-16 诺基亚技术有限公司 传输控制协议之间的转换

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954038B2 (en) * 2006-12-29 2011-05-31 Intel Corporation Fault detection
JPWO2010032533A1 (ja) * 2008-09-19 2012-02-09 日本電気株式会社 ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法
US8224976B2 (en) * 2008-12-24 2012-07-17 Juniper Networks, Inc. Using a server's capability profile to establish a connection
US8706889B2 (en) 2010-09-10 2014-04-22 International Business Machines Corporation Mitigating connection identifier collisions in a communication network
US10044624B2 (en) * 2012-08-17 2018-08-07 F5 Networks, Inc. Network traffic management using stream-specific QoS bits

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216167B1 (en) * 1997-10-31 2001-04-10 Nortel Networks Limited Efficient path based forwarding and multicast forwarding
US6389468B1 (en) * 1999-03-01 2002-05-14 Sun Microsystems, Inc. Method and apparatus for distributing network traffic processing on a multiprocessor computer
US6453360B1 (en) * 1999-03-01 2002-09-17 Sun Microsystems, Inc. High performance network interface
US6650640B1 (en) * 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
US6483804B1 (en) * 1999-03-01 2002-11-19 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high performance network interface
US6683873B1 (en) * 1999-12-27 2004-01-27 Cisco Technology, Inc. Methods and apparatus for redirecting network traffic
US6973040B1 (en) * 2000-03-13 2005-12-06 Netzentry, Inc. Method of maintaining lists of network characteristics
US20020144004A1 (en) * 2001-03-29 2002-10-03 Gaur Daniel R. Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing
US7327747B2 (en) * 2001-08-30 2008-02-05 Tellabs Operations, Inc. System and method for communicating data using a common switch fabric
US7284272B2 (en) * 2002-05-31 2007-10-16 Alcatel Canada Inc. Secret hashing for TCP SYN/FIN correspondence
US7373663B2 (en) * 2002-05-31 2008-05-13 Alcatel Canada Inc. Secret hashing for TCP SYN/FIN correspondence
US7162740B2 (en) * 2002-07-22 2007-01-09 General Instrument Corporation Denial of service defense by proxy
US7043494B1 (en) * 2003-01-28 2006-05-09 Pmc-Sierra, Inc. Fast, deterministic exact match look-ups in large tables
US7219228B2 (en) * 2003-08-25 2007-05-15 Lucent Technologies Inc. Method and apparatus for defending against SYN packet bandwidth attacks on TCP servers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420771A (zh) * 2011-12-28 2012-04-18 中国科学技术大学苏州研究院 高速网络环境中提高tcp并发连接速度的方法
CN102420771B (zh) * 2011-12-28 2014-05-21 中国科学技术大学苏州研究院 高速网络环境中提高tcp并发连接速度的方法
CN111788817A (zh) * 2018-03-01 2020-10-16 诺基亚技术有限公司 传输控制协议之间的转换

Also Published As

Publication number Publication date
US20060126640A1 (en) 2006-06-15
WO2006065688A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
EP1832085B1 (en) Flow assignment
US8015392B2 (en) Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets
US9264366B2 (en) Method and apparatus for processing received network packets on a network interface for a computer
US8782199B2 (en) Parsing a packet header
US7472156B2 (en) Transferring control of a TCP connection between devices
CN101044737B (zh) 分组合并
US20050021558A1 (en) Network protocol off-load engine memory management
CN1801812A (zh) 高性能传输控制协议syn队列的实现
US20070136495A1 (en) TCP/IP offload network interface device
US20120202529A1 (en) Intelligent Network Interface System and Method for Accelerated Protocol Processing
JP2003308262A (ja) ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法
CN113891396B (zh) 数据包的处理方法、装置、计算机设备和存储介质
US20050188070A1 (en) Vertical perimeter framework for providing application services
US7069561B1 (en) Method and system for communication between application programs and a network
US20050169169A1 (en) Determination of an endpoint association from a transport address
KR20030091244A (ko) 네트워크 프로세서에서 다양한 개수의 포트들을 처리하기위한 방법
Huang et al. EIPv6: A reduced IPv6 protocol stack for embedded systems
JP2002077256A (ja) ハードウェアによるコネクション管理システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060712