CN1926834A - 加速的tcp(传输控制协议)栈处理 - Google Patents
加速的tcp(传输控制协议)栈处理 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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]
-
- 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/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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
Abstract
在一个实施例中,提出一种方法。该实施例的方法提出在网络组件上接收已从网络接收到一个或多个分组的指示;该网络组件通知TCP-A(传输控制协议-加速的)驱动程序已接收到该一个或多个分组;TCP-A驱动程序为上述一个或多个分组的至少其中之一执行分组处理;并且TCP-A驱动程序执行一个或多个操作,上述操作导致数据移动模块将该一个或多个分组的至少其中之一的一个或多个对应的有效负载放置到读缓冲器中。
Description
技术领域
本发明的实施例涉及加速的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可以包括例如可从本主题申请的受让人购买到的IntelPentium微处理器。当然备选地,在不背离本发明的实施例的情况下,主处理器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驱动程序执行导致所述数据被传送到所述网络组件的一个或多个操作;
响应接收到所述数据,所述网络组件通过对所述数据分组化来创建用于传送的一个或多个分组;以及
所述网络组件经所述网络传送所述一个或多个分组。
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)
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)
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)
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 |
-
2004
- 2004-03-31 US US10/815,895 patent/US7783769B2/en active Active
- 2004-06-29 WO PCT/US2004/021015 patent/WO2005104486A1/en not_active Application Discontinuation
- 2004-06-29 DE DE602004020273T patent/DE602004020273D1/de active Active
- 2004-06-29 KR KR1020067020469A patent/KR100810771B1/ko active IP Right Grant
- 2004-06-29 AT AT04756431T patent/ATE426987T1/de not_active IP Right Cessation
- 2004-06-29 EP EP04756431A patent/EP1730919B1/en not_active Not-in-force
- 2004-06-29 JP JP2007502782A patent/JP4452742B2/ja active Active
- 2004-06-29 CN CN2004800425504A patent/CN1926834B/zh active Active
- 2004-06-30 TW TW093119637A patent/TWI280018B/zh not_active IP Right Cessation
- 2004-10-25 US US10/973,790 patent/US7788391B2/en active Active
- 2004-12-30 US US11/027,719 patent/US8121125B2/en active Active
-
2005
- 2005-05-26 US US11/140,092 patent/US8238360B2/en active Active
- 2005-06-28 US US11/170,294 patent/US7525967B2/en not_active Expired - Fee Related
-
2007
- 2007-02-02 HK HK07101283.7A patent/HK1094291A1/xx not_active IP Right Cessation
-
2012
- 2012-08-06 US US13/567,126 patent/US8929381B2/en not_active Expired - Lifetime
-
2014
- 2014-12-01 US US14/557,020 patent/US9602443B2/en not_active Expired - Lifetime
-
2015
- 2015-07-17 US US14/803,006 patent/US10015117B2/en active Active
-
2017
- 2017-12-05 US US15/832,195 patent/US20180159803A1/en not_active Abandoned
Cited By (5)
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 |