CN1926834A - 加速的tcp(传输控制协议)栈处理 - Google Patents

加速的tcp(传输控制协议)栈处理 Download PDF

Info

Publication number
CN1926834A
CN1926834A CNA2004800425504A CN200480042550A CN1926834A CN 1926834 A CN1926834 A CN 1926834A CN A2004800425504 A CNA2004800425504 A CN A2004800425504A CN 200480042550 A CN200480042550 A CN 200480042550A CN 1926834 A CN1926834 A CN 1926834A
Authority
CN
China
Prior art keywords
driver
tcp
groupings
data
networking component
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
Application number
CNA2004800425504A
Other languages
English (en)
Other versions
CN1926834B (zh
Inventor
A·瓦苏德文
D·贝尔
D·明图尔恩
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 CN1926834A publication Critical patent/CN1926834A/zh
Application granted granted Critical
Publication of CN1926834B publication Critical patent/CN1926834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Abstract

在一个实施例中,提出一种方法。该实施例的方法提出在网络组件上接收已从网络接收到一个或多个分组的指示;该网络组件通知TCP-A(传输控制协议-加速的)驱动程序已接收到该一个或多个分组;TCP-A驱动程序为上述一个或多个分组的至少其中之一执行分组处理;并且TCP-A驱动程序执行一个或多个操作,上述操作导致数据移动模块将该一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。

Description

加速的TCP(传输控制协议)栈处理
技术领域
本发明的实施例涉及加速的TCP(传输控制协议)栈处理。
背景技术
联网已经成为计算机系统的一个整体部分。但是由于可能与处理协议栈相关的开销而尚未充分利用网络带宽上的进步。开销可能由于计算机系统中使用主处理器的核心处理模块来执行如数据移动的慢速存储器存取功能、以及与未命中主处理器高速缓存的数据存取有关的主处理器停滞而导致的瓶颈所致。协议栈系指可以执行以处理网络上发送的分组的一组过程和程序,其中分组可以符合指定的协议。例如,可以使用TCP/IP栈来处理TCP/IP(传输控制协议/因特网协议)分组。
减少开销的一种方法是将协议栈处理分区。例如,可以将TCP/IP栈卸载到TCP/IP卸载引擎(下文称为“TOE”)。在TOE中,可以将整个TCP/IP栈卸载到I/O子系统的如MAC(媒体访问控制)组件的联网组件,如NIC(网络接口卡)。但是,TOE可能因为与这些连接相关的存储环境相关的存储要求而不可伸缩以支持大量的连接。
附图简介
在附图中,以示例而非限制的形式图示了本发明的一些实施例,其中相似的引用号系指相似的组件,其中:
图1图示一个网络。
图2图示根据一个实施例的系统。
图3是图示根据一个实施例的方法的流程图。
图4是图示根据另一个实施例的方法的流程图。
详细说明
下文所述的实施例仅为说明性目的,决不意味着限制本发明的实施例。由此,在可能详细地描述示例或可能提供示例的列表的情况下,应该理解这些示例不视为穷举性的,并且不将本发明的实施例限制于所述和/或所图示的示例。
图1图示本发明的实施例可以在其中操作的网络100。网络100可以包括许多节点102A、...、102N,其中节点102A、...、102N的每一个可以经通信媒体104以通信方式耦合到一起。如本文所使用的,“以通信方式耦合”的组件表示这些组件能够经有线(例如铜导线)或无线(例如射频)方式彼此通信。节点102A、...、102N可以经可对一个或多个分组编码的媒体104传送和接收一个或多个信号的集合。
如本文所使用的,“分组”表示可以由从至少一个发送方传送到至少一个接收方的一个或多个信号编码的一个或多个符号和/或值的序列。如本文所使用的,“通信媒体”表示可以用以发射和/或接收电磁辐射的物理实体。通信媒体104可以包括例如一个或多个光缆和/或电缆,虽然许多备选也是可能的。例如,通信媒体104可以包括节点102A、...、102N可用于以无线方式传送和/或接收一个或多个信号的集合的空中和/或真空。
在网络100中,一个或多个节点102A、...、102N可以包括一个或多个中间站,例如一个或多个集线器、交换机和/或路由器;作为附加或作为备选,节点102A、...、102N的其中一个或多个可以包括一个或多个端点站。而且作为附加或作为备选,网络100可以包括一个或多个未示出的中间站,并且媒体104可以以通信方式将节点102A、...、102N的至少其中一些和这些中间站的其中一个或多个耦合在一起。当然,许多备选方式也是可能的。
节点102A、...、102N的至少其中之一可以包括系统200,如图2所示。系统200可以包括主处理器202、主存储器204、总线206和芯片组208。(系统200可以包括多于一个主处理器202、主存储器204、总线206和芯片组208,或其他类型的处理器、存储器和总线;但是前者仅为论述的简明而图示,并非意味着限制本发明的实施例。)主处理器202、主存储器204、总线206和芯片组208可以包括在单个电路板上,例如包括在系统主板218上。
主处理器202可以包括与其他系统单元接口的核心处理模块和其他支持模块。例如,支持模块可以包括与系统200上的存储控制器通信的总线单元。主处理器202可以包括例如可从本主题申请的受让人购买到的IntelPentium微处理器。当然备选地,在不背离本发明的实施例的情况下,主处理器202也可以包括另一种类型的微处理器,例如非本主题申请的受让人制造和/或可从其购买到的微处理器。
主处理器202可以以通信方式耦合到芯片组208。芯片组208可以包括主桥/集线器系统,该系统可以将主处理器202和主存储器204彼此耦合并且耦合到总线206。芯片组208还可以包括I/O桥/集线器系统(未示出),该系统可以将主桥/总线系统耦合到总线206。芯片组208可以包括一个或多个集成电路芯片,如可从本主题申请的受让人购买到的集成电路芯片组中选择的那些(例如图形存储器和I/O控制器集线器芯片组),虽然还可以或备选地使用其他的一个或多个集成电路芯片。
总线206可以包括符合PCI特殊兴趣组(PCI Special InterestGroup,Portland,Oregon,U.S.A.)提供的外设组件互连(PCI)本地总线规范、修订版2.2(Peripheral Component Interconnect(PCI)Local BusSpecification,Revision 2.2,December 18,1998)的总线(下文称为“PCI总线”)。或者,总线106可以包括符合PCI-X规范修订版1.0a(PCI-X Specification Rev.1.0a,July 24,2000)的总线(下文称为“PCI-X总线”)或符合PCI-E规范修订版PCI-E(PCI-E Specification Rev.PCI-E)的总线(下文称为“PCI-E总线”),如均为上述PCI特殊兴趣组(PCI Special Interest Group,Portland,Oregon,U.S.A.)提供的“PCI特殊兴趣组的PCI快速基本规范”修订版1.0a中所规定的。备选地,总线106可以包括其他类型和配置的总线系统。
系统200还可以包括电路216。电路216可以包括一个或多个电路以执行本文描述的如TCP-A(传输控制协议-加速的)驱动程序(driver)222和/或网络组件212所执行的一个或多个操作。电路216可以是硬连线的,以便执行一个或多个操作,和/或可以执行机器可执行指令来执行这些操作。例如,电路216可以包括可存储机器可执行指令226的存储器236,机器可执行指令226可以由电路216执行来执行这些操作。代之被包括在主处理器202中或芯片组208中,可以将电路216的一些或全部包括在电路卡(未示出)和/或其他结构、系统中,和/或可以例如包括在主板218中的装置中,和/或以通信方式耦合到总线206,以及可以与系统200中的一个或多个其他组件交换数据和/或命令。电路216可以包括例如一个或多个数字电路、一个或多个模拟电路、一个或多个状态机、可编程电路和/或一个或多个ASIC(专用集成电路)。
系统200还可以包括一个或多个存储器,以存储能够由例如电路216的电路执行的机器可执行指令226和/或能够被存取、操作和/或操纵的数据。例如,上述一个或多个存储器可以包括主存储器204或存储器236。一个或多个存储器204、236可以例如包括只读海量存储器、随机存取计算机可读存储器和/或一种或多种其他类型的机器可读存储器。电路216执行程序指令226和/或存取、操作和/或操纵数据可以促使例如电路216执行本文中如系统200中的多种硬件和/或软件组件执行的操作的一些或全部。
例如,机器可执行指令226可以包括用于应用程序218的一组指令、用于操作系统220的一组指令、用于TCP-A驱动程序222的一组指令和/或用于DMA驱动程序224的一组指令。在一个实施例中,主处理器202的电路216可以执行用于TCP-A驱动程序222、DMA驱动程序224和操作系统220的机器可执行指令226。机器可执行指令226可以在存储器中由例如主处理器202中的电路216执行和/或一般地由电路216执行。
参考图2的系统200,图3的流程图中图示了根据一个实施例的方法。该方法开始于框300,并进入框302,其中网络组件212可以接收已从网络100接收到一个或多个分组228(仅示出一个)的指示。每个分组228可以包括报头230和有效负载232。对于每个分组228,网络组件212可以从分组228中分离出报头230和有效负载232,并将每个230、232登记到一个或多个登记缓冲器214A、214B。在一个实施例中,可以将报头230登记到如登记缓冲器214A的第一缓冲器,并且可以将有效负载232登记到如登记缓冲器214B的第二缓冲器。上述一个或多个分组228可以包括在一个或多个组中,可以经连接来传送和/或接收分组228的每个组。可以响应来自例如应用程序218的读数据请求来接收一个或多个分组228。
“应用程序”系指使用网络的一个或多个程序。应用程序318可以包括例如web浏览器、电子邮件服务应用程序、文件服务应用程序或数据库应用程序。结合读数据请求,应用程序218可以指定应用程序218可以访问所请求的数据所在的目的地读缓冲器214C。结合传送数据请求,应用程序218可以将要传送的数据写到源缓冲器214D。
“网络组件”系指I/O(输入/输出)子系统上可以处理经网络发送和/或接收的一个或多个分组的硬件和/或软件的任何组合。在一个实施例中,I/O子系统238可以包括例如NIC(网络接口卡),并且网络组件212可以包括例如作为联网协议的开放系统互连(OSI)模型中所定义的数据链路层的MAC(媒体访问控制)层。OSI模型是由(位于1 rue de Varembe,Case postale 56 CH-1211 Geneva 20,Switzerland的)国际标准化组织(ISO)定义的。
如本文所用的“连接”系指便于网络上的第一节点与该网络上的第二节点之间的通信的逻辑路径。连接可便于第一节点与第二节点之间的一个或多个事务处理的通信。“事务处理”系指发送或接收数据的请求,例如它可以由例如系统200的系统上的如应用程序218的应用程序发起。每个连接可以与一个协议环境相关联。如本文所使用的,“协议环境”系指有关连接的信息。例如,该信息可以包含上次发送/接收的分组的序列号和可用存储器的数量。
在框304,网络组件212可以通知TCP-A驱动程序:一个或多个分组228已经到达。在一个实施例中,网络组件212可以根据中断调节(interrupt moderation)方案通过通知操作系统220来通知TCP-A驱动程序222。中断调节方案系指可以对应于网络组件212接收到的每n个分组产生一个中断的情况。由此,如果网络组件212接收到n个或更多分组,则网络组件212可以通知操作系统220接收到分组。同样地,如果网络212接收到少于n个分组,则网络组件212可以等待直到接收到更多分组,才通知操作系统220。在一个实施例中,操作系统220然后可以通知TCP-A驱动程序222准备处理分组。
在框306中,TCP-A驱动程序222可以对一个或多个分组的至少其中一个执行分组处理。可以由TCP-A驱动程序222执行分组处理,从登记缓冲器214A检索报头230,分析报头230以确定与当前连接相关联的协议环境,并执行TCP协议符合。TCP协议符合可以包括:例如验证接收到的分组的序列号,以确保该分组在通信节点之间商定的编号范围内;验证有效负载大小,以确保该分组在通信节点之间商定的大小范围内;确保报头结构符合协议;以及确保时间戳在期望的时间范围内。
TCP-A驱动程序222可以在完成当前报头的处理之前提取下一个待处理的报头。这可以确保在TCP-A驱动程序222准备对下一个报头执行TCP处理之前,该下一个报头在主处理器的高速缓存(未示出)中是可用的,由此减少主处理器停滞。该方法可以继续到框308。
在一个实施例中,TCP-A驱动程序222还可以判断在执行分组处理之前是否要加速与分组相关联的连接。TCP-A驱动程序222可以加速选择连接。选择连接可以包括例如使用期限长或包括大数据的连接。如果TCP-A驱动程序222确定要加速网络连接,则TCP-A驱动程序222可以如框306所述的执行分组处理。如果TCP-A驱动程序222确定不加速网络连接,则方法可以继续到框318。
在框308,TCP-A驱动程序222可以判断放置于登记缓冲器214B中的一个或多个有效负载232是否已准备好用于放置。如果例如已成功处理对应的报头,并已指定读缓冲器(如读缓冲器214C),则有效负载232可准备好用于放置。如果在框308,有效负载232尚未准备好用于放置,则方法可以继续到框310。在一个实施例中,TCP-A驱动程序222可以随时判断是否有一个或多个有效负载232准备好用于放置。例如,如果判断有效负载232尚未准备好用于放置,则TCP-A驱动程序222可以等待一段时间再次执行此判断。例如在因为不存在读缓冲器214C,而无法放置有效负载232的情况下,TCP-A驱动程序222可以备选地或附加地随时向操作系统220指示有效负载232的存在已就绪准备放置。操作系统220然后可以指定缓冲器或可以要求应用程序218指定缓冲器。如果有一个或多个有效负载已就绪准备放置,则方法可以继续到框310。
在框310,TCP-A驱动程序222可以判断例如在登记缓冲器214A中是否对于当前中断的n个分组中还有分组228要处理。如果还有分组228要处理,则方法返回到框306。如果不再有分组228,以及先前尚未放置一个或多个分组288,以及已准备好用于放置,则方法可以继续到框312。如果不再有分组228要处理,以及没有先前的分组288要放置,则方法继续到框314。
在框312,TCP-A驱动程序222可以执行一个或多个操作,上述操作导致数据移动模块将一个或多个对应的有效负载放置到如读缓冲器214C的读缓冲器中。如本文所使用的,“数据移动模块”系指不使用主处理器(如主处理器202)的核心处理模块而将数据从源移动到目的地的模块。数据移动模块可以包括例如下文所述的DMA引擎。
在一个实施例中,例如TCP-A驱动程序222可以向DMA驱动程序224发送请求,并且DMA驱动程序224可以与DMA引擎210一起调度请求,以将一个或多个有效负载232从登记缓冲器214B写到读缓冲器214C。在另一个实施例中,TCP-A驱动程序222可以直接对DMA引擎210编程以将一个或多个有效负载232从登记缓冲器214B写到读缓冲器214C。DMA驱动程序224可以是单独的驱动程序,或是如TCP-A驱动程序222的一些其他驱动程序的一部分。而不是作为芯片组208的一部分,DMA引擎210可以是主处理器202的支持模块。使用DMA引擎来放置数据,主处理器202可以免除执行数据移动的开销,此开销可能使主处理器202以远比核心处理模块速度慢的存储器速度运行。DMA引擎210调度之后,该方法可以返回到框310,以判断是否还有其他分组228要处理。
在框314,TCP-A驱动程序222可以判断对于当前中断是否有任何未决的DMA完成。或者,TCP-A驱动程序222可以随时查找DMA完成。如本文所使用的“未决的完成”系指请求的完成。在一个实施例中,未决的完成系指请求DMA引擎210写一个或多个有效负载232的完成。如果在框314,对于当前中断有一个或多个未决的DMA完成,则方法可以继续到框316。如果在框314,对于当前中断没有未决的DMA完成,则方法可以继续到框318。
在框316,TCP-A驱动程序222可以执行其他任务。其他任务可以包括查找后续中断的更多分组,设置DMA引擎210以在当前中断的最后一个排队的任务完成时发出中断,或如传送数据的其他内务处理,以及执行TCP定时器相关任务。
在框318,TCP-A驱动程序222可以将控制传递回操作系统220。如果一个或多个分组228仍未被处理,则操作系统220可以通知TCP驱动程序(未示出)而非TCP-A驱动程序222,其中TCP驱动程序可以通过执行分组处理并使用主处理器202的核心处理模块来执行数据传输,以执行TCP栈处理。如果所有分组228都已处理,则操作系统220等待下一次中断。
该方法可以结束于框320。
图4图示了根据另一个实施例的方法。
该方法开始于框400,并继续到框402,其中操作系统220可以从应用程序218接收请求,以传送放置在缓冲器214D中的数据234。操作系统220可以对数据234执行初步检查。初步检查可以包括例如获取相关的协议环境。例如在TCP/IP连接中,协议环境可以包括用于标识分组的次序的分组序列号、存储数据所用的缓冲器的缓冲器地址以及用于重发的定时器/时间戳信息。
在框404中,操作系统220可以通知TCP-A驱动程序222有数据234要从缓冲器214D传送。
在框406中,TCP-A驱动程序222可以执行促使数据234被传送到网络组件212的一个或多个操作。例如,这些一个或多个操作可以包括TCP-A驱动程序222对DMA引擎210编程,以将数据234从源缓冲器214D传送到网络组件212。或者,TCP-A驱动程序222可以将缓冲器排队到网络组件212,如排队的缓冲器214E,其中网络组件212可以改为从排队的缓冲器214E读数据234。可以由例如应用程序218指定源缓冲器214D,以及可以由例如网络组件212指定排队的缓冲器214E。
在一个实施例中,如果数据小,则TCP-A驱动程序222可以对DMA引擎210编程以传送数据,以及如果数据大,则TCP-A驱动程序222可以对缓冲器排队,如排队的缓冲器214E。如本文所使用的,“对缓冲器排队”表示通知组件有它可以访问数据的缓冲器。例如,确认接收到分组的TCP确认分组通常可以是相对较小的分组,并且通过TCP-A驱动程序222对DMA引擎210编程以传送数据234而被TCP-A驱动程序222发送到网络组件212。又如,经网络发送大文件的存储应用程序可能相对较大,并且因此可以通过将缓冲器214E排队来由TCP-A驱动程序222将该存储应用程序发送到网络组件212。
在框408,响应接收到数据,网络组件212可以通过对数据分组化来创建用于传送的一个或多个分组。在一个实施例中,网络组件212可以通过对数据执行分段来对数据分组化。“分段”系指将数据拆分成更小的片段来用于传送。在一个实施例中,网络组件212可以包括MAC,并且分段可以称为大发送卸载,其中可以创建MAC帧用于经网络传送数据234。网络组件212可以从TCP-A驱动程序222直接接收数据或通过访问排队的缓冲器214E来接收数据。
该方法可以结束于框410。此后,操作系统220可以将完成通知发送到应用程序218。而且,可以将源缓冲器214D返回到应用程序218,并且应用程序可以将该缓冲器用于其他目的。
可以以如下形式提出本发明的一些实施例,例如作为可以包含其上存储机器可执行指令的一个或多个机器可读媒介的计算机程序产品,当所述机器可执行指令被例如计算机、计算机的网络或其他电子设备的一个或多个机器执行时,可以促使所述一个或多个机器执行根据本发明的实施例的操作。机器可读媒体可以包括但是不限于软盘、光盘、CD-ROM(压缩只读存储器)和磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦写可编程只读存储器)、EEPROM(电可擦写可编程只读存储器)、磁卡或光卡、闪速存储器或适于存储机器可执行指令的其他类型的媒介/机器可读媒体。
而且,本发明的实施例还可以作为计算机程序产品下载,其中所述程序可以通过载波中包含和/或调制的一个或多个数据信号或经通信链路(例如调制解调器和/或网络连接)的其他传播媒体的方式从远程计算机(例如服务器)被传输到请求计算机(例如客户机)。因此,如本文所使用的,机器可读媒体可以但并非一定包括此类载波。
总结
因此,在一个实施例中,一种方法可以包括在网络组件上接收从网络已接收到一个或多个分组的指示;该网络组件通知TCP-A(传输控制协议-加速的)驱动程序已接收到该一个或多个分组;TCP-A驱动程序为该一个或多个分组的至少其中之一执行分组处理;以及TCP-A驱动程序执行一个或多个操作,上述操作导致数据移动模块将一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
本发明的实施例可以大大地减少可能因使用主处理器的核心处理模块所致的TCP/IP处理开销。使用如DMA引擎的数据移动模块将数据从一个缓冲器移动到另一个缓冲器来加速TCP/IP处理。因为可以使用DMA引擎绕过主处理器的核心处理模块,所以可以避免慢速存储器存取速度。而且,对主处理器执行的TCP/IP处理可以比TOE处理好地进行伸缩,因为环境的数量不受TOE存储器的限制。
在上文说明书中,本发明是参考其特定实施例来描述的。但是,显然在不与这些实施例背离的前提下可以进行多种修改和更改。因此,本说明书和附图应视为说明性意义而非限定性意义。

Claims (26)

1.一种方法,包括:
在网络组件上接收已从网络接收到一个或多个分组的指示;
所述网络组件通知TCP-A(传输控制协议-加速的)驱动程序所述一个或多个分组已到达;
TCP-A驱动程序为所述一个或多个分组的至少其中之一执行分组处理;以及
所述TCP-A驱动程序执行一个或多个操作,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
2.如权利要求1所述的方法,还包括响应在网络组件上接收已从所述网络接收到一个或多个分组的指示,所述网络组件:
将所述一个或多个分组的每一个分成报头和有效负载;以及
将所述报头和有效负载的每一个登记到一个或多个登记缓冲器。
3.如权利要求2所述的方法,其特征在于,所述TCP-A驱动程序通过处理所述报头的每一个来执行分组处理,所述方法还包括在完成当前报头的处理之前提取所述一个或多个报头的下一个报头。
4.如权利要求1所述的方法,其特征在于,所述执行一个或多个操作包括向数据移动模块驱动程序发送请求,以将所述一个或多个对应的有效负载写入到所述读缓冲器,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
5.如权利要求1所述的方法,其特征在于,所述TCP-A驱动程序执行一个或多个操作包括对所述数据移动模块编程,以将所述一个或多个对应的有效负载写入到所述读缓冲器,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
6.如权利要求1所述的方法,其特征在于,所述数据移动模块包括DMA(直接存储器存取)引擎。
7.如权利要求6所述的方法,其特征在于,所述DMA引擎驻留在芯片组上。
8.如权利要求6所述的方法,其特征在于,所述DMA引擎作为支持模块驻留在主处理器上。
9.如权利要求1所述的方法,还包括:
在操作系统上接收请求以经所述网络传送数据;
所述操作系统通知所述TCP-A驱动程序有数据要传送;
所述TCP-A驱动程序执行导致所述数据被传送到所述网络组件的一个或多个操作;
响应接收到所述数据,所述网络组件通过对所述数据分组化来创建用于传送的一个或多个分组;以及
所述网络组件经所述网络传送所述一个或多个分组。
10.一种设备,包括:
网络组件,能够:
在网络组件上接收已从网络接收到一个或多个分组的指示;以及
通知TCP-A(传输控制协议-加速的)驱动程序所述一个或多个分组已到达;以及
TCP-A驱动程序,能够:
为所述一个或多个分组的至少其中之一执行分组处理;以及
所述TCP-A驱动程序执行一个或多个操作,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
11.如权利要求10所述的设备,还包括操作系统,它能够:
接收请求以经所述网络传送数据;以及
通知所述TCP-A驱动程序所述数据随时可传送;
其中:
所述TCP-A驱动程序能够执行导致所述数据被传送到所述网络组件的一个或多个操作;以及
所述网络组件能够:
响应接收到所述数据,通过对所述数据分组化来创建用于传送的一个或多个分组;以及
经所述网络传送所述一个或多个分组。
12.如权利要求10所述的设备,其特征在于,响应在网络组件上接收已从所述网络接收到一个或多个分组的指示,所述网络组件还能够:
将所述一个或多个分组的每一个分成报头和有效负载;以及
将所述报头和有效负载的每一个登记到一个或多个登记缓冲器。
13.如权利要求12所述的设备,其特征在于,所述TCP-A驱动程序通过处理所述报头的每一个来执行分组处理,以及所述TCP-A驱动程序还能够在完成当前报头的处理之前提取所述一个或多个报头的下一个报头。
14.一种系统,包括:
具有DMA(直接存储器存取)引擎的芯片组,所述芯片组以通信方式耦合到处理器的TCP-A(传输控制协议-加速的)驱动程序和网络组件;
所述网络组件,能够:
接收已从网络接收到一个或多个分组的指示;以及
通知所述TCP-A(传输控制协议-加速的)驱动程序所述一个或多个分组已到达;以及
所述处理器的TCP-A驱动程序,能够:
为所述一个或多个分组的至少其中之一执行分组处理;以及
执行一个或多个操作,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
15.如权利要求14所述的系统,还包括所述处理器的操作系统,它能够:
接收请求以经所述网络传送数据;以及
通知所述TCP-A驱动程序所述数据随时可传送;
其中:
所述TCP-A驱动程序能够执行导致所述数据被传送到网络组件的一个或多个操作;以及
所述网络组件能够:
响应接收到所述数据,通过对所述数据分组化来创建用于传送的一个或多个分组;以及
经所述网络传送所述一个或多个分组。
16.如权利要求14所述的系统,其特征在于,响应在网络组件上接收已从所述网络接收到一个或多个分组的指示,所述网络组件还能够:
将所述一个或多个分组的每一个分成报头和有效负载;以及
将所述报头和有效负载的每一个登记到一个或多个登记缓冲器。
17.如权利要求16所述的系统,其特征在于,所述TCP-A驱动程序通过处理所述报头的每一个来执行分组处理,以及所述TCP-A驱动程序还能够在完成当前报头的处理之前提取所述一个或多个报头的下一个报头。
18.一种具有其上存储的指令的机器可读媒体,所述指令被机器执行时导致如下操作:
在网络组件上接收已从网络接收到一个或多个分组的指示;
所述网络组件通知TCP-A(传输控制协议-加速的)驱动程序所述一个或多个分组已到达;
TCP-A驱动程序为所述一个或多个分组的至少其中之一执行分组处理;以及
所述TCP-A驱动程序执行一个或多个操作,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
19.如权利要求18所述的机器可读媒体,其特征在于,响应在网络组件上接收已从所述网络接收到一个或多个分组的指示,所述指令还导致:
将所述一个或多个分组的每一个分成报头和有效负载;以及
将所述报头和有效负载的每一个登记到一个或多个登记缓冲器。
20.如权利要求19所述的机器可读媒体,其特征在于,所述TCP-A驱动程序通过处理所述报头的每一个来执行分组处理,所述指令还导致在完成当前报头的处理之前提取所述一个或多个报头的下一个报头。
21.如权利要求18所述的机器可读媒体,其特征在于,导致执行一个或多个操作的指令还导致向数据移动模块驱动程序发送请求,以将所述一个或多个对应的有效负载写入到所述读缓冲器,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
22.如权利要求18所述的机器可读媒体,其特征在于,导致所述TCP-A驱动程序执行一个或多个操作的指令还导致对所述数据移动模块编程,以将所述一个或多个对应的有效负载写入到所述读缓冲器,所述一个或多个操作导致数据移动模块将所述一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
23.如权利要求18所述的机器可读媒体,其特征在于,所述数据移动模块包括DMA(直接存储器存取)引擎。
24.如权利要求24所述的机器可读媒体,其特征在于,所述DMA引擎驻留在芯片组上。
25.如权利要求24所述的机器可读媒体,其特征在于,所述DMA引擎作为支持模块驻留在主处理器上。
26.如权利要求18所述的机器可读媒体,所述指令还导致:
在操作系统上接收请求以经所述网络传送数据;
所述操作系统通知所述TCP-A驱动程序有数据要传送;
所述TCP-A驱动程序执行导致所述数据被传送到所述网络组件的一个或多个操作;
响应接收到所述数据,所述网络组件通过对所述数据分组化来创建用于传送的一个或多个分组;以及
所述网络组件经所述网络传送所述一个或多个分组。
CN2004800425504A 2004-03-31 2004-06-29 加速的tcp(传输控制协议)栈处理 Active CN1926834B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/815,895 2004-03-31
US10/815,895 US7783769B2 (en) 2004-03-31 2004-03-31 Accelerated TCP (Transport Control Protocol) stack processing
PCT/US2004/021015 WO2005104486A1 (en) 2004-03-31 2004-06-29 Accelerated tcp (transport control protocol) stack processing

Publications (2)

Publication Number Publication Date
CN1926834A true CN1926834A (zh) 2007-03-07
CN1926834B CN1926834B (zh) 2012-07-04

Family

ID=34958272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800425504A Active CN1926834B (zh) 2004-03-31 2004-06-29 加速的tcp(传输控制协议)栈处理

Country Status (10)

Country Link
US (9) US7783769B2 (zh)
EP (1) EP1730919B1 (zh)
JP (1) JP4452742B2 (zh)
KR (1) KR100810771B1 (zh)
CN (1) CN1926834B (zh)
AT (1) ATE426987T1 (zh)
DE (1) DE602004020273D1 (zh)
HK (1) HK1094291A1 (zh)
TW (1) TWI280018B (zh)
WO (1) WO2005104486A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121125B2 (en) 2004-03-31 2012-02-21 Intel Corporation Accelerated TCP (transport control protocol) stack processing
CN111163121A (zh) * 2019-11-19 2020-05-15 核芯互联科技(青岛)有限公司 一种超低延时高性能的网络协议栈处理方法及系统

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447795B2 (en) * 2001-04-11 2008-11-04 Chelsio Communications, Inc. Multi-purpose switching network interface controller
US7305493B2 (en) * 2002-11-27 2007-12-04 Intel Corporation Embedded transport acceleration architecture
US7461173B2 (en) * 2004-06-30 2008-12-02 Intel Corporation Distributing timers across processors
US7404192B2 (en) * 2004-08-03 2008-07-22 International Business Machines Corporation Apparatus, system, and method for isolating a storage application from a network interface driver
US7561573B2 (en) * 2005-03-23 2009-07-14 Fujitsu Limited Network adaptor, communication system and communication method
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7616563B1 (en) 2005-08-31 2009-11-10 Chelsio Communications, Inc. Method to implement an L4-L7 switch using split connections and an offloading NIC
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US8447898B2 (en) * 2005-10-28 2013-05-21 Microsoft Corporation Task offload to a peripheral device
US7664898B2 (en) * 2006-02-01 2010-02-16 Broadcom Method and system for efficient framing on addressed buses
US7623450B2 (en) * 2006-03-23 2009-11-24 International Business Machines Corporation Methods and apparatus for improving security while transmitting a data packet
US7478212B2 (en) 2006-03-28 2009-01-13 Intel Corporation Techniques to transfer information between memory regions
US9948533B2 (en) 2006-07-10 2018-04-17 Solarflare Communitations, Inc. Interrupt management
US8489761B2 (en) * 2006-07-10 2013-07-16 Solarflare Communications, Inc. Onload network protocol stacks
US9686117B2 (en) 2006-07-10 2017-06-20 Solarflare Communications, Inc. Chimney onload implementation of network protocol stack
US7787453B2 (en) * 2006-08-03 2010-08-31 Broadcom Corporation Network interface controller with receive side scaling and quality of service
US20080086575A1 (en) * 2006-10-06 2008-04-10 Annie Foong Network interface techniques
US7844753B2 (en) * 2006-11-13 2010-11-30 Intel Corporation Techniques to process integrity validation values of received network protocol units
JP5496464B2 (ja) * 2007-04-16 2014-05-21 三星電子株式会社 仮想化環境での安全なシステム保護装置および方法
US8689288B2 (en) * 2007-04-16 2014-04-01 Samsung Electronics Co., Ltd. Apparatus and method for protecting system in virtualized environment
US8935406B1 (en) 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US8589587B1 (en) * 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US8060644B1 (en) 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US8103785B2 (en) * 2007-12-03 2012-01-24 Seafire Micros, Inc. Network acceleration techniques
TWI356304B (en) * 2008-04-21 2012-01-11 Ralink Technology Corp Network device of processing packets efficiently a
US8838782B2 (en) * 2008-09-19 2014-09-16 Nec Corporation Network protocol processing system and network protocol processing method
US7996548B2 (en) 2008-12-30 2011-08-09 Intel Corporation Message communication techniques
US8645596B2 (en) * 2008-12-30 2014-02-04 Intel Corporation Interrupt techniques
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US8788782B2 (en) * 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US8738863B2 (en) 2009-09-25 2014-05-27 Intel Corporation Configurable multi-level buffering in media and pipelined processing components
US20110228674A1 (en) * 2010-03-18 2011-09-22 Alon Pais Packet processing optimization
US8526363B2 (en) * 2010-01-13 2013-09-03 Sony Corporation Method and system for transferring data between wireless devices
US8654784B2 (en) * 2010-03-11 2014-02-18 Microsoft Corporation Multi-stage large send offload
US8327047B2 (en) 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US8327103B1 (en) * 2010-06-28 2012-12-04 Emc Corporation Scheduling data relocation activities using configurable fairness criteria
US20120102136A1 (en) * 2010-10-21 2012-04-26 Lancaster University Data caching system
KR20120071244A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 이동통신 시스템의 패킷 데이터 전송 장치 및 방법
US8869171B2 (en) 2010-12-23 2014-10-21 Mellanox Technologies Ltd. Low-latency communications
US20120226827A1 (en) * 2011-03-02 2012-09-06 Qualcomm Incorporated Mechanism for Performing SDIO Aggregation and Conveying SDIO Device Status to the Host Software
US9124541B2 (en) * 2011-06-30 2015-09-01 Cisco Technology, Inc. Zero copy acceleration for session oriented protocols
US8924501B2 (en) * 2011-11-30 2014-12-30 Red Hat Israel, Ltd. Application-driven shared device queue polling
DE112012006148B4 (de) * 2012-03-28 2023-02-23 Intel Corporation Verfahren, Vorrichtung und Maschinenlesbares Medium zur gemeinsamen Benutzung von Puffern für Verarbeitungselemente bei einem Netzwerkgerät
US9973335B2 (en) * 2012-03-28 2018-05-15 Intel Corporation Shared buffers for processing elements on a network device
US10452869B2 (en) * 2014-05-07 2019-10-22 Infineon Technologies Ag Systems and methods for processing and verifying data using signatures
WO2016069492A1 (en) * 2014-10-27 2016-05-06 Citrix Systems, Inc. Input devices in high latency networks
CN105516122B (zh) * 2015-12-03 2019-03-15 网宿科技股份有限公司 具有分等级配置的加速策略的网络传输加速方法和系统
CN109842511B (zh) * 2017-11-28 2022-07-08 网宿科技股份有限公司 一种tcp性能参数的确定方法及系统
US10938680B2 (en) 2018-01-23 2021-03-02 Arista Networks, Inc. Accelerated network traffic sampling using a network chip
US10756989B2 (en) * 2018-01-23 2020-08-25 Arista Networks, Inc. Accelerated network traffic sampling for a non-accelerated line card
US10965555B2 (en) 2018-01-23 2021-03-30 Arista Networks, Inc. Accelerated network traffic sampling using an accelerated line card
CN110958213B (zh) 2018-09-27 2021-10-22 华为技术有限公司 处理tcp报文的方法、toe组件以及网络设备
US20200133909A1 (en) * 2019-03-04 2020-04-30 Intel Corporation Writes to multiple memory destinations
US10848424B2 (en) * 2019-03-26 2020-11-24 Wipro Limited Method and system for improving switching capacity of software-based switches in access networks
US11956311B2 (en) * 2020-06-29 2024-04-09 Marvell Asia Pte Ltd Method and apparatus for direct memory access of network device
EP4248326A1 (en) * 2020-11-20 2023-09-27 Telefonaktiebolaget LM Ericsson (publ) Method and system for efficient input/output transfer in network devices

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US697042A (en) * 1901-04-24 1902-04-08 Ver Chininfabriken Zimmer & Co Ges Mit Beschraenkter Haftung Cinnamic ether of cinchona alkaloids.
JP2753294B2 (ja) 1988-12-23 1998-05-18 株式会社日立製作所 パケット輻輳制御方法およびパケット交換装置
US5109318A (en) 1990-05-07 1992-04-28 International Business Machines Corporation Pluggable electronic circuit package assembly with snap together heat sink housing
EP0574140A1 (en) 1992-05-29 1993-12-15 Hewlett-Packard Company Network adapter which places a network header and data in separate memory buffers
JP3435736B2 (ja) 1992-06-30 2003-08-11 株式会社日立製作所 通信制御装置
JP3473975B2 (ja) 1993-09-08 2003-12-08 株式会社日立製作所 ネットワークシステムおよびネットワークにおける通信方法
EP0657824A1 (en) 1993-11-05 1995-06-14 Advanced Micro Devices, Inc. Apparatus for Ethernet packet reception
US5663952A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Checksum generation circuit and method
US6072798A (en) * 1995-11-01 2000-06-06 Whittaker Corporation Network access communication switch
US6373846B1 (en) * 1996-03-07 2002-04-16 Lsi Logic Corporation Single chip networking device with enhanced memory access co-processor
US7237036B2 (en) 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6389479B1 (en) 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6314100B1 (en) 1998-03-26 2001-11-06 Emulex Corporation Method of validation and host buffer allocation for unmapped fibre channel frames
US6389532B1 (en) * 1998-04-20 2002-05-14 Sun Microsystems, Inc. Method and apparatus for using digital signatures to filter packets in a network
US6438604B1 (en) 1998-10-05 2002-08-20 Canon Kabushiki Kaisha Digital video network interface
US6111747A (en) 1998-10-19 2000-08-29 Dell Usa, L.P. Universal retention apparatus
US6389468B1 (en) 1999-03-01 2002-05-14 Sun Microsystems, Inc. Method and apparatus for distributing network traffic processing on a multiprocessor computer
JP2000332817A (ja) 1999-05-18 2000-11-30 Fujitsu Ltd パケット処理装置
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard
US6621828B1 (en) * 1999-12-01 2003-09-16 Cisco Technology, Inc. Fused switch core and method for a telecommunications node
US6684321B1 (en) * 2000-01-04 2004-01-27 Advanced Micro Devices, Inc. Unified memory architecture for use by a main processor and an external processor and method of operation
JP3596400B2 (ja) * 2000-01-21 2004-12-02 日本電気株式会社 Dnsサーバフィルタ
US6675200B1 (en) * 2000-05-10 2004-01-06 Cisco Technology, Inc. Protocol-independent support of remote DMA
US6986046B1 (en) 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
US6925085B1 (en) * 2000-06-07 2005-08-02 Advanced Micro Devices, Inc. Packet classification using hash key signatures generated from interrupted hash function
US7089344B1 (en) 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
US6717917B1 (en) * 2000-06-09 2004-04-06 Ixia Method of determining real-time data latency and apparatus therefor
CN1488104A (zh) 2001-01-31 2004-04-07 国际商业机器公司 控制数据处理系统间经由存储器的数据流的方法和装置
GB2372115A (en) 2001-02-08 2002-08-14 Mitel Semiconductor Ltd Direct memory access controller
US7149817B2 (en) * 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US7274706B1 (en) * 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
US6694410B1 (en) * 2001-04-30 2004-02-17 Lsi Logic Corporation Method and apparatus for loading/storing multiple data sources to common memory unit
US7287649B2 (en) * 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
US7301900B1 (en) * 2001-05-24 2007-11-27 Vixs Systems Inc Method and apparatus for hub-based network access via a multimedia system
US7227870B2 (en) 2001-11-20 2007-06-05 Broadcom Corporation Systems including packet interfaces, switches, and packet DMA circuits for splitting and merging packet streams
US7055085B2 (en) 2002-03-07 2006-05-30 Broadcom Corporation System and method for protecting header information using dedicated CRC
US7164675B2 (en) 2002-03-27 2007-01-16 Intel Corporation Telephony data to host streaming via a computer interface
US7181531B2 (en) * 2002-04-30 2007-02-20 Microsoft Corporation Method to synchronize and upload an offloaded network stack connection with a network stack
ATE473574T1 (de) * 2002-05-03 2010-07-15 Cedar Point Communications Inc Kommunikation vermittlungs architektur
US6751709B2 (en) * 2002-05-15 2004-06-15 Sun Microsystems, Inc. Method and apparatus for prefetching objects into an object cache
US7487264B2 (en) 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US7142540B2 (en) * 2002-07-18 2006-11-28 Sun Microsystems, Inc. Method and apparatus for zero-copy receive buffer management
US7299266B2 (en) 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
GB0221464D0 (en) 2002-09-16 2002-10-23 Cambridge Internetworking Ltd Network interface and protocol
US7460473B1 (en) * 2003-02-14 2008-12-02 Istor Networks, Inc. Network receive interface for high bandwidth hardware-accelerated packet processing
US7012918B2 (en) 2003-03-24 2006-03-14 Emulex Design & Manufacturing Corporation Direct data placement
US7502826B2 (en) 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
US20040225748A1 (en) 2003-05-09 2004-11-11 Chong Huai-Ter Victor Systems and methods for deleting transactions from multiple fast data streams
JP2005012526A (ja) * 2003-06-19 2005-01-13 Mitsumi Electric Co Ltd 通信方法、通信装置、及び、それを用いたゲームシステム、並びに、ゲームコントローラ
US7366092B2 (en) * 2003-10-14 2008-04-29 Broadcom Corporation Hash and route hardware with parallel routing scheme
US7864806B2 (en) 2004-01-06 2011-01-04 Broadcom Corp. Method and system for transmission control packet (TCP) segmentation offload
US7668165B2 (en) 2004-03-31 2010-02-23 Intel Corporation Hardware-based multi-threading for packet processing
US7783769B2 (en) 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
GB0409331D0 (en) 2004-04-27 2004-06-02 Ibm Recovery from MSS change
US20060075142A1 (en) 2004-09-29 2006-04-06 Linden Cornett Storing packet headers
US20060153215A1 (en) 2004-12-20 2006-07-13 Linden Cornett Connection context prefetch
US7836220B2 (en) 2006-08-17 2010-11-16 Apple Inc. Network direct memory access
US8762476B1 (en) 2007-12-20 2014-06-24 Qurio Holdings, Inc. RDMA to streaming protocol driver

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121125B2 (en) 2004-03-31 2012-02-21 Intel Corporation Accelerated TCP (transport control protocol) stack processing
US8238360B2 (en) 2004-03-31 2012-08-07 Intel Corporation Header replication in accelerated TCP (transport control protocol) stack processing
US9602443B2 (en) 2004-03-31 2017-03-21 Intel Corporation Header replication in accelerated TCP (transport control protocol) stack processing
US10015117B2 (en) 2004-03-31 2018-07-03 Intel Corporation Header replication in accelerated TCP (transport control protocol) stack processing
CN111163121A (zh) * 2019-11-19 2020-05-15 核芯互联科技(青岛)有限公司 一种超低延时高性能的网络协议栈处理方法及系统

Also Published As

Publication number Publication date
US9602443B2 (en) 2017-03-21
TW200533131A (en) 2005-10-01
US20050238019A1 (en) 2005-10-27
EP1730919A1 (en) 2006-12-13
EP1730919B1 (en) 2009-03-25
CN1926834B (zh) 2012-07-04
US20050223133A1 (en) 2005-10-06
KR100810771B1 (ko) 2008-03-06
US20130201998A1 (en) 2013-08-08
US8121125B2 (en) 2012-02-21
US7525967B2 (en) 2009-04-28
ATE426987T1 (de) 2009-04-15
WO2005104486A1 (en) 2005-11-03
US20180159803A1 (en) 2018-06-07
US7788391B2 (en) 2010-08-31
US7783769B2 (en) 2010-08-24
US10015117B2 (en) 2018-07-03
US20060072564A1 (en) 2006-04-06
US8929381B2 (en) 2015-01-06
US20050223134A1 (en) 2005-10-06
US20150085873A1 (en) 2015-03-26
US8238360B2 (en) 2012-08-07
US20150326509A1 (en) 2015-11-12
JP4452742B2 (ja) 2010-04-21
DE602004020273D1 (de) 2009-05-07
KR20070002037A (ko) 2007-01-04
JP2007528074A (ja) 2007-10-04
HK1094291A1 (en) 2007-03-23
TWI280018B (en) 2007-04-21
US20050223128A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
CN1926834A (zh) 加速的tcp(传输控制协议)栈处理
US6757746B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
EP1868093B1 (en) Method and system for a user space TCP offload engine (TOE)
US6246683B1 (en) Receive processing with network protocol bypass
US20080126564A1 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US8131881B2 (en) Completion coalescing by TCP receiver
US6760304B2 (en) Apparatus and method for receive transport protocol termination
US20080059686A1 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US20050120360A1 (en) RDMA completion and retransmit system and method
CN1138385C (zh) 提高数据流量的方法和装置
US6885673B1 (en) Queue pair wait state management in a host channel adapter
US7643502B2 (en) Method and apparatus to perform frame coalescing
US20040030754A1 (en) High-speed file server
JP2000067017A (ja) デ―タ通信方法及びデ―タ通信装置
US7478137B1 (en) Lightweight messaging with and without hardware guarantees

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