CN100421417C - Tcp卸载的系统和方法 - Google Patents

Tcp卸载的系统和方法 Download PDF

Info

Publication number
CN100421417C
CN100421417C CNB038203502A CN03820350A CN100421417C CN 100421417 C CN100421417 C CN 100421417C CN B038203502 A CNB038203502 A CN B038203502A CN 03820350 A CN03820350 A CN 03820350A CN 100421417 C CN100421417 C CN 100421417C
Authority
CN
China
Prior art keywords
buffer
tcp
grouping
inner elastomeric
memory
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.)
Expired - Fee Related
Application number
CNB038203502A
Other languages
English (en)
Other versions
CN1679282A (zh
Inventor
尤里·埃尔朱
弗兰克·凡
史蒂夫·林赛
斯科特·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.)
Broadcom Corp
Zyray Wireless Inc
Original Assignee
Zyray Wireless Inc
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 Zyray Wireless Inc filed Critical Zyray Wireless Inc
Publication of CN1679282A publication Critical patent/CN1679282A/zh
Application granted granted Critical
Publication of CN100421417C publication Critical patent/CN100421417C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • 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/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • 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/12Protocol engines
    • 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/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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
    • 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/166IP fragmentation; TCP segmentation

Abstract

本发明中,在TEEC上接收输入TCP分组,并由所述TEEC处理所述输入分组的至少一部分一次,而不必由所述TEEC进行任何重组和/或重发。至少一部分所述输入TCP分组可缓存在所述TEEC的至少一个内部弹性缓存器中。所述内部弹性缓存器可包括接收内部弹性缓存器和/或发送内部弹性缓存器。因此,至少一部分所述输入TCP分组可缓存在所述接收内部弹性缓存器中。至少一部分所述处理过的输入分组可放进一个主机存储器的一部分中,以便由主机处理器或CPU进行处理。此外,至少一部分所述处理过的输入TCP分组可DMA传送到所述所述主机存储器的一部分中。

Description

TCP卸载的系统和方法
技术领域
本发明涉及TCP数据和相关的TCP信息的处理。更具体地说,涉及TCP/IP
卸载的方法和系统。
背景技术
传输控制协议/因特网协议(TCP/IP)是一种已广泛用于通信的协议。传统的网络接口卡(NIC)一般包含适于对从传输介质接收到的分组信息进行处理的专用处理器或加速器。在示范性的网络接口卡中,数据的接收包括在数据被拷贝到终端目标站例如应用程序缓存器之前,在多数通信层中的分组数据处理。但是,在TCP段中通信的分组数据的接收、缓存、处理和存储会消耗接收器中大量的主机处理能力和存储器带宽。由于当今的高速通信系统已约有吉(G)比特的速度,因此这些传统的网络接口卡是低效的并且无法处理这种高速通信。
TCP分段是一种可允许处理非常小的TCP部分以便将其卸载到网络接口卡(NIC)中的技术。因此,支持TCP分段的NIC并不真正包含整个传输控制处理卸载引擎。相反,支持TCP分段的NIC只具有将出站的TCP块分段成具有物理介质可支持的大小的分组的能力。每个出站TCP块小于允许的TCP窗体大小。例如,支持TCP分段的以太网接口卡可将4KB的TCP数据块分段成3个以太网分组。最大的以太网分组的大小为1518个字节,其中包括报头和报尾CRC。
支持TCP分段的设备跟踪某个TCP状态信息,比如与卸载NIC正分段的数据相关的TCP序列号。但是,支持TCP分段的设备不会跟踪任何与入站业务量相关的状态信息、或者任何与支持TCP应答或流控制相关的状态信息。在已建立的状态中支持整个TCP卸载的NIC负责处理TCP流控制和负责处理输入TCP应答,以及产生输入数据的出站TCP应答。
TCP分段可视为TCP卸载的一个子集。TCP分段允许协议堆栈或操作系统将还没有分段成单个TCP分组的TCP数据块形式的信息传输到设备驱动器。数据块可为4K字节或16K字节。与设备驱动器相关联的网络适配器可获得TCP数据块、将得到的TCP数据块分段成1518字节的以太网分组,以及更新每个按递增方式创建的分组中的某些字段。例如,网络适配器可通过使每个分组的TCP序列号递增,更新每个TCP分组相应的TCP序列号。在另一个示例中,每个分组的IP识别(IP ID)字段和标志字段也将得到更新。TCP分段的一个局限性在于TCP分段仅可在小于TCP窗体大小的数据块上进行。这是由于实现TCP分段的设备不会影响到TCP流控制。因此,实现TCP流控制的设备只控制出站TCP分组的分段。
TCP分段设备不检查输入的分组,同样地不会影响流控制。任何接收到的应答分组被传输到主机进行处理。因此,用于流控制的应答分组不由TCP分段设备处理。而且,TCP分段设备不执行拥塞控制或流启动,并且不计算或修改任何传回到操作系统和/或主系统处理器的变量。
TCP分段的另一局限性在于TCP分段跟踪的信息只是与TCP数据生命期相关的信息。例如,TCP分段设备可跟踪TCP分段的数量,但不跟踪TCP应答(ACK)的数量。因此,TCP分段设备只跟踪与相应TCP数据相关的信息的最小子集。这就限制了TCP分段设备的能力和/或功能。TCP分段的还有一个局限性是TCP分段设备不会将TCP处理的信息传回到操作系统和/或主处理器。由于没有这种反馈,因此便限制了可由操作系统和/或主系统处理器实现的TCP处理。
与TCP分段相关联的其它局限性在2003年8月29日提交的美国专利申请号为________(代理人档案号为No.13785US02)的专利申请中进行阐述,本专利中以之作为参考。
由于TCP段的处理会消耗大量的主机处理能力和存储器带宽,为减轻主机资源的消耗,可从主机卸载一些TCP处理,如图1所示。图1说明了传统的卸载系统。参考图1,系统可包括CPU 10、存储控制器20、主机存储器30、主机接口40、网路接口卡(NIC)50和以太网60。NIC 50包括TCP卸载引擎(TOE)70、发送帧缓存器80和接收帧缓存器90。CPU 10与存储控制器20相连。存储控制器20分别与主机存储器30和主机接口40相连。主机接口40通过TOE 70与NIC 50相连。TOE 70分别与发送帧缓存器80、接收帧缓存器90和以太网60相连。
工作时,由NIC50接收来自以太网60的输入帧。TOE70在接收帧缓存器90中处理并存储帧。当主机存储器30中的缓存器可用并且已存储了足够多的帧时,TOE70接收存储在接收缓存器90中的帧,并通过主机接口40和存储控制器20将帧传输到主机存储器30。由主机输出的帧先传输到TOE70,然后由TOE70将它们存储在发送帧缓存器80中。传输时,TOE70取回存储在发送帧缓存器80中的帧,并通过以太网60传输这些帧。对于高速网络比如10G比特/秒的以太网(GbE)而言,附加的数据拷贝会增加计算机或主机的存储子系统上不必要的负担。大多数商业购得的服务器或主计算机的存储子系统成为了瓶颈,由此而妨碍了系统支持高数据速率比如10G比特的网络业务量。因为当今大多数应用软件中使用的TCP/IP协议在传输协议中占主导地位,因此它将有利地用于减轻处理过程的负担,以实现例如与同等机器通信时可升级的低级CPU的使用。
TCP/IP在IP层采用报文服务。在路由器或开关拥塞的正常操作环境下,IP报文可能会被丢弃,从而导致通向接收器时的报文流中存在一个“洞”。因此,接收器将以无序的方式接收报文。分组丢失还会导致,例如其它较少次数的传输误差。处理这一问题常用的方法是缓存成功接收的报文,同时等待以得到丢失的报文或从发送源重发的报文。重发可由发送器或接收器触发。在假设为高性能配置的情况下,TCP协议允许每次连接的完整报文TCP窗口从发送器闪式传输到接收器。例如报文可包含64K字节数据。许多应用软件采用由大量接收器支持的TCP连接,例如1000到100000个TCP连接。在更高网络速度比如1G比特/秒或更高时,每当出现了报文丢失便将会为丢弃或耗尽输送管或一部分接收的数据流而使得网络变得低效。因为拥塞窗口大小减少,并且它必须要逐渐增加窗口直到其大小等于接收器的公开窗口大小为止,因此TCP带宽探测方法比如可能在连接启动时或检测到拥塞时触发的缓慢起动和/或避免拥塞会导致耗费宝贵的时间,故而它是低效的。因此,典型的TCP实现留出大缓存比如64MB到6.4GB的缓存来处理这些问题。使用大缓存来重组TCP/IP数据或IP片断。根据连接带宽和TCP连接上网络延时的乘积确定缓存器深度。因此这一结构易受LAN或WAN配置的影响,在这点上,用于高延时WAN配置的介质带宽的缓存器要比用于低延时高速LAN配置的介质带宽的多。
图1中说明的TCP卸载结构也称为存储和转发的方法。它增加用来存储NIC50的缓存器80和90中数据的等待时间,以管理缓存器80和90、按顺序检索缓存器80和90外部的信息,并将它们传输到主存储器30。在接收期间,接收的分组可存储在接收帧缓存器90中,并在其中进行处理。当分组以无序方式到达时,不是丢弃先前接收到的相关分组,而是缓存接收的分组,直到接收到丢失的分组为止。随后重组或重新排序接收到的丢失分组和无序分组。接着,处理组合或重新排序的分组,以确定这些分组应该放于主机系统上的什么位置中。一旦确定了组合分组的放置,便将该组合的分组传送到主机,分组在主机中存储以便用于处理。这一分别缓存、处理、重组或重新排序、处理和放置要求大量的存储器,并消耗大量的处理资源。
类似需要考虑的事项同样适用于发送侧。TCP发送器维护拥有所有作为TCP“窗口”部分传输的数据的发送帧缓存器80。一旦远端应答接收到数据,发送器释放发送帧缓存器80,TCP窗口边缘移到右侧。发送帧缓存器80的大小与接收帧缓存器90的大小相似,因为没有被应答的未解决的数据在缓存器中,因此万一远端接收器没有接收到一个或多个报文,则允许发送器进行重新传输。与接收侧类似,它也是存储和转发结构。
此外,对于这一领域的普通技术人员来说,通过将这样的系统和如参考附图在本申请的其余部分中所阐述的本发明一些方面进行比较,常规和传统方法的局限性和缺点将是显而易见的。
发明内容
本发明包括TCP卸载的系统和方法上。所述系统可包括一个主机,所述主机包括主机存储器和与主机相连的网络接口卡(NIC)。所述NIC包括至少一个TCP使能的以太网控制器(TEEC)。所述TEEC包括至少一个内部弹性缓存器。因此,TEEC包括接收内部弹性缓存器和/或发送内部弹性缓存器。TEEC可配置成处理输入TCP分组一次,而不用进行任何重组。因此,TEEC可处理输入的TCP数据分组一次,并临时缓存内部弹性缓存器中至少一部分输入TCP分组,而不用将TCP分组数据与从同一流的相邻分组中的TCP数据进行组合。至少一部分输入TCP分组可暂时在接收内部弹性寄存器中缓存。在一些类似的方式中,至少一部分要传输的TCP分组可暂时缓存在发送内部弹性缓存器中。
TEEC适于将至少一部分输入TCP分组数据放到一个主机存储器的至少一部分中。通过执行单一拷贝操作,TEEC便可至少将输入TCP分组的数据部分放到主机存储器中可用的缓存器的最高层。TEEC可将至少一部分处理过的输入TCP分组DMA传送到一个主机存储器的至少一部分中。TEEC还可将至少一部分处理过的输入TCP分组放到主机存储器中的主机缓存器中,以便进行重组。TEEC可以是其中集成了至少一个内部弹性缓存器的单芯片。因此,接收内部弹性缓存器和发送内部弹性缓存器都集成在TEEC中。
卸载TCP处理的方法可包括在TEEC上接收输入TCP分组并由TEEC将至少一部分输入分组处理一次,而不需要通过TEEC进行任何重组或重发。可将至少一部分输入TCP分组缓存在TEEC的至少一个内部弹性缓存器中。内部弹性缓存器可包括一个接收内部弹性缓存器和/或一个发送内部弹性缓存器。可将至少一部分输入TCP分组缓存在接收内部弹性缓存器中。可将至少一部分处理过的输入TCP分组放在主机存储器的一部分中。因此,通过执行单一拷贝操作,可将至少一部分处理过的输入TCP分组放在主机存储器中可用的缓存器的最高层中。可将至少一部分处理过的输入TCP分组DMA传送到主机存储器的一部分中。
根据本发明的一个方面,在内部弹性缓存器中临时缓存的TCP分组不包括用于重组的分组和用于重发的分组。可由主机处理器或CPU将一部分处理过的输入TCP分组放在位于主机存储器中的主机缓存器中,以便进行处理。TEEC可以是含有至少一个内部弹性缓存器的单芯片。而且,接收内部弹性缓存器和接收内部弹性缓存器均可集成在此芯片中。
本发明的另一实施例还提供了一种机器可读存储装置,其上存储了含有至少一个用于提供TCP卸载的代码部分的计算机程序。所述至少一个代码部分可由机器执行,使得机器可执行以上所描述的TCP卸载的步骤。
根据以下描述和附图,将更清楚地明白本发明的这些和其它优点、方面和创新特征以及其中所示实施例的细节。
附图说明
图1示出一个了传统TCP卸载系统。
图2是根据本发明的实施例可用于以流过方式处理TCP/IP报文的示范性系统的框图。
图3示出了本发明一个实施例中TCP卸载系统的一个示范性接收系统。
图4示出了本发明一个实施例中IPv4的IP报文报头。
图5示出了本发明一个实施例中IPv6的IP报文报头。
图6是本发明中TCP报头格式的实施例。
图7示出了本发明一个实施例中示范性有效负荷选择。
图8A示出一个芯片组,其中TEEC是一个单芯片或单芯片的一部分。
图8B示出了本发明一个实施例中包括图8A中的TEEC和专用元组和/或内容存储器的NIC。
图9示出了本发明一个实施例中可将输入分组数据绘制和拷贝到主机常驻缓存器或缓存器组中的一个系统。
图10示出了本发明中的一个示范性的发送路径。
图11示出了本发明中的一个示范性的帧接收步骤的流程图。
图12示出了本发明中的一个示范性接收系统实施例的框图。
图13是本发明一个实施例中接收系统的示范性实施例的框图。
图14是本发明一个实施例中接收系统的示范性实施例的框图。
具体实施方式
本发明包括TCP卸载的系统和方法。该方法中可包括在TEEC上接收输入TCP分组,并由TEEC将至少一部分输入TCP分组处理一次,而不需要通过TEEC进行任何重组或重发。可将至少一部分输入TCP分组缓存在TEEC的至少一个内部弹性缓存器中。内部弹性缓存器包括一个接收内部弹性缓存器和/或一个发送内部弹性缓存器。因此,可将至少一部分输入TCP分组缓存在接收内部弹性缓存器中。可将至少一部分处理过的输入分组放置到主机存储器的一部分中。因此,通过执行单一拷贝操作,便可将至少一部分处理过的输入TCP分组放置在主机存储器中可用的缓存器的最高层中。而且,可将至少一部分处理过的输入TCP分组DMA传递到主机存储器的一部分中。
根据本发明的一个实施例,可将无序的TCP分组存储在小的内部弹性缓存器中。弹性缓存器可以是例如64KB的片内分组缓存器,该缓存器用于提供与例如用于分组重排序、重组和/或重发的多兆字节存储器相反的弹性。根据本发明的各种实施例的弹性缓存器一般可通过NIC临时缓存至少一部分输入TCP分组至其中。此外,根据本发明的一个实施例的NIC将不包括用来重排序或重组无序TCP分组或IP段的专用存储器。而且,根据本发明的一个实施例,NIC将不包括用来分组重发和/或分组重组的大TOE专用存储器。因此,不需要由TCP使能的以太网控制器(TEEC)进行分组重组和/或分组重发缓存。
传输控制协议/因特网协议(TCP/IP)是网络和基于因特网数据传输的主要协议。TCP/IP的使用已经超出了应用到应用通信和基于文件存储比如网络文件系统(NFS)和公共网络文件系统(CIFS)的范围,而扩展到基于块的网络存储比如因特网小型计算机系统接口(iSCSI)。TCP/IP还可用来在传输层采用远程DMA(RDMA)协议进行聚类/进程间通信(IPC)。
以有线速度的处理TCP/IP会完全耗尽例如1GHz处理器。使用TCP使能以太网控制器(TEEC)可提供例如以下优点中的一个或多个:降低的主机CPU使用,例如,从当运行TCP/IP应用软件的大约100%减少到少于大约10%;更少的数据拷贝;以及更少的中断和内容转换,这些都将为应用软件的处理释放主机CPU和系统。这些优点在更高速时变得更加明显。从系统的角度来看,使用TEEC NIC可提供比使用专用处理器或其基本部件和其相关的TCP处理系统进行处理更好的投资回报(ROI),即使有些的平均卖价(ASP)费用高于通常的GbENIC也如此。也
本发明的某些方面可提供通过为TEEC的发送路径和接收路径提供最小量存储器,以流过方式来处理TCP/IP报文。现有卸载系统采用的各种缓存、处理、重组或重新排序、处理和放置的方法,例如图1,在接收和发送侧需要大量的存储器和消耗大量的处理资源。但是,根据本发明的一个实施例和参考图2,发送弹性缓存器280和接收弹性缓存器290按提供的流过设计方式操作。因此,TEEC270的发送弹性缓存器280和接收弹性缓存器290适于临时缓存接收分组,并用于提供弹性以适应例如以太网接口与计算机的主机接口如PCI接口之间的可变数据速率。因此,TEEC 270和其相关的接收弹性缓存器290可以这样操作,使得接收到的分组在接收弹性缓存器290中临时缓存,在主机存储器30中处理和放置。这一流过处理不需要接收弹性缓存290中无序分组的重组或重新排序。因此,使由现有的卸载系统所采用的各种缓存、处理、重组或重新排序、处理和放置的方法对处理和放置而言减少到最小。
根据本发明的一个方面,TEEC 270不需要用来组合和/或重新排序在IP层处分段的IP分组的专用存储器。因此,在TEEC缓存中不存储、重新排序和/或组合无序的TCP分组。因此,NIC可包括其中集成了至少一个内部弹性缓存器的单芯片,它没有用于分组重发、分组重组和分组重新排序的内部缓存器或与外部缓存器的接口。
图2是根据本发明的一个实施例,以流过方式处理TCP/IP报文的示范性系统的框图。参照图2,本系统可包括例如CPU210、存储控制器220、主机存储器230、主机接口240、网络接口卡(NIC)250和以太网260。虽然举例说明了例如CPU 210和以太网260,但是本发明并不局限于此,并且可以使用例如任何类型的处理器和任何类型数据链层或物理介质。NIC250可包括例如TEEC 270、发送弹性缓存器280和接收弹性缓存器290。发送弹性缓存280和接收弹性缓存器290可以是内部弹性缓存器。
虽然举例说明的是以太网260的控制器,但是TEEC270可以是任何类型数据链路层或任何类型的物理介质的控制器。在本发明的一个实施例中,TEEC270可实现TOE的至少一些功能。主机接口240可以是例如周边元件扩展接口(PCI)、PCI-X、ISA、SCSI或另一类型总线。存储控制器230可分别与CPU 220、存储器230和主机接口240相连。主机接口240可通过TEEC270与NIC250相连。最后,TEEC270可与以太网260相连。
运行中,在接收侧,NIC250从以太网260中接收分组或帧。通常,TEEC270例如会解析和处理报头,并且将接收到的分组临时缓存到接收弹性缓存器290的特定位置中。因此,TEEC可“闪式”处理每个输入分组。例如基于控制信息、报头信息和/或有效负载信息以及接收到的分组可确定和/或断定放置信息。一旦确定了接收到的分组的放置信息,TEEC 270便可将接收到的分组传输到主机,在主机中将接收到的分组存储在主机存储器230中以便进行处理。
在本发明的一个方面中,至少一部分接收到的分组通过TEEC270进行处理并在接收弹性缓存器290中进行排列。将接收到分组的排列部分从接收弹性缓存器290DMA传输到主机存储器230。因此,TEEC270可包括适当的DMA硬件和/或代码,它适于将接收到的分组通过主机接口240从接收弹性缓存器290直接传输到主机存储器230。因此,可将分组在以太网260电缆上传输、“闪式”处理和在接收弹性缓存器290中临时缓存。由于在NIC 250中进行“闪式”处理和临时缓存,因此在NIC 250上不进行分组的重组或重新排序。
在本发明的另一方面中,本系统还可处理如可在例如帧延时或帧丢失期间出现的无序帧。例如,TEEC270可管理漏洞或漏洞组,直到接收到正确的数据为止。在发送路径上,可在NIC250的发送弹性缓存器280中进行传输。因此,传输到以太网接口的TCP数据可从主机存储器230传输,并在发送弹性缓存器280中临时缓存。TEEC270可完成“闪式”传输。TEEC270可从主机中取到传输TCP数据,在发送弹性缓存器中临时缓存取到的数据然后为传输处理数据。通过格式化以及附加更高级协议报头和错误校正代码,将数据构建到一个或多个以太网分组中。传输之后,数据可在例如TEEC 270所拥有的主机上保留。在本发明的一个方面中,没有拷贝的分组或突出的TCP传输数据本地存储在TEEC 270上,以助于重发。因此,TEEC 270可适于通过从主机存储器230中再次取得数据以及在发送弹性缓存器280中临时缓存取得的数据,以助于重发,。一旦数据得到远端对等体的应答,发送器的主机缓存器便可对于它们的原所有者比如应用软件或ULP所利用。
根据本发明,在接收侧,不像图1中的TOE 70,TEEC 270没有用来重新排序TCP业务量以处理例如无序接收的TCP段的专用外部存储器。而且,TEEC270不适于重组或重新排序无序接收的TCP段。然而,TEEC 270可适于处理无序段,而不需利用外部专用存储器,也不需在将TCP段DMA传送到主机存储器230中之前重新排序帧。在本发明的另一方面中,TEEC 270使用的内部存储器比传统的TOE 70使用的存储器小。这中由TEEC 270使用的更小的内部存储器提供了弹性,并可例如用来计算“闪式”处理时的内部延时。TEEC 270的更小的内部存储器也可在缓存接收到的含有不足的放置信息的帧时提供弹性。考虑到TEEC 270的更小的存储器的大小,因此它不会被用来缓存分组,在其它情况下,该分组可在没有得到应答(ACK)时便被重发。
在本发明的某些方面中,主机存储器230可用来例如重组接收业务量或用于传输行为和转发行为。这样对于TEEC 270而言便消除了拥专用外部存储器的必要。例如,这样可减少以下部分中的一个或多个:成本、复杂性、覆盖域和能量消耗。另外,这样可消除或降低带宽延时乘积相关性。主机存储器30一般比任何经济可行地附加于TEEC的存储器更大并且更容易扩展。当启动应用软件和TCP时,它也可因为是数据源和目的地而体现了机器缓存数据能力的限制。同时它也可体现了单块软件堆栈的限制。
本发明的某一实施例与传统的卸载引擎相比还提供了虚拟的无缓存和简化的缓存结构。在此方面,虽然不是真正的无缓存设计,但是在与图1中的传统TOE 70相比时,TEEC 270内部存储器的大小是相当小的。这些结构设计用于维护小量的存储器比如TEEC 270上的FIFO。对于FIFO来说,FIFO将提供弹性并代替了TEEC或NIC上专用外部存储器的需要。因此,这可有助于TCP段的“闪式”处理。段的“闪式”处理可视为是可移动TCP段的“单触式方法”,例如在正在处理协议层时将TCP段移入可用缓存的最高层。例如,因为L5或更高的应用缓存器的使用可节省额外的拷贝处理步骤,所以层5(L5)或更高的应用缓存器可提供比专用L4TCP缓存器或普通的L4TCP缓冲器更好的性能。它还可消除或减少例如在发送路径上使用任何中间缓存器的需要。
在TEEC的“单触式”处理期间,TEEC的虚拟无缓存器结构或简化的缓存器结构可扩展到特定TEEC所支持的相同高度的处理水平。如果可向TEEC系统提供缓存信息和协议解析信息,则数据可直接放置在L5或更高的缓存器中。虚拟无缓存器或简化的缓存器结构可支持并行操作,如TCP层2(L2)、层4(L4)和层5(L5)之间的灵活转换。
在本发明的一方面中,不像许多传统的TOE设备,TEEC 75可作为纯以太网控制器并提供整套L2服务。TEEC 75还可作为纯TEEC,或者可例如有在L2上的一些业务量,如非TCP以太网业务量,以及在L4上的一些业务量。对于L2业务量而言,可提供L2服务,比如以太网地址对照和CRC计算。对于L4业务量,可提供另外的服务包括例如设备上的TCP/IP处理。TEEC 75还可作为纯L5或更高的使能控制器。任一处理级还可用于经过TEEC 75的不同连接的任一组合中。为了有助于硬件对它的管理,业务量混合上没有限制,也不需要外部软件干涉。根据本发明的一些实施例只针对L4服务。这种TCP/IP处理的创新方法不需要依赖以太网,并可应用于任何其它的L1/L2接口。
图12、图13和图14均为说明根据本发明的一个实施例的接收系统的实施例的框图。参照图12-14,在每个所示的实施例中,可采用管道处理,并且可将信息分到两条通路中:控制处理通路和数据移动通路。参照图12,以太网与第一处理元件300相连。第一处理元件300可提供例如L1/L2处理。可解析输入信息,而且至少一部分输入信息可通过处理元件310和DMA引擎320引入到控制处理通路。输入信息的另一部分例如有效负荷数据,可通过存储元件330和DMA引擎320引入到数据移动通路中。
处理元件310还可处理来自处理元件300的所接收的控制信息。在一个实施例中,处理元件310可适于执行L4/L5或更高级的处理。例如记录在本地存储器340中的内容信息可由处理元件310进行访问。处理元件310可得到记录在本地存储器340中的内容信息,以及从先前的处理元件300中接收的控制信息,并在将合并的信息传输到DMA引擎320之前处理并合并信息。在将数据或合并的信息直接存储到一个或多个主机缓存器中之前,DMA引擎320可将控制通路中的控制信息与存储在存储元件330中的数据合并。
图13和图14还显示了根据本发明其它多级配置。具体而言,图13显示了多个控制处理级,每个控制级都能访问内容信息。内容信息可包括与TCP连接状态有关的TCP连接的信息,该信息通常包括用来表现TCP连接特征的连接状态信息。图14显示了多个控制处理级和存储级。虽然图14中只显示了单个内容部分,但是可将多个处理元件与各个内容部分或共同的内容部分相连。在其它结构中,级间处理元件可与存储级相连,存储级中的数据是处理数据和/或对应于数据控制信息中的因子。
图3说明了根据本发明的实施例的TCP卸载系统的示范性接收系统。输入帧可经受L2比如包括如地址过滤、帧有效性校验和错误监测的以太网处理。不像普通的以太网控制器,处理的下一级可包括例如L3比如IP处理,以及L4比如TCP处理。TEEC可减少主机CPU的利用率和存储器带宽,例如通过处理硬件上的业务量卸载TCP/IP连接。TEEC可监测例如输入分组属于的协议。如果协议是TCP,则TEEC可监测分组是否与卸载的TCP连接对应,例如,可由TEEC保存的至少一些TCP状态信息的连接。一旦连接与分组或帧关联,则可达到任何处理的更高级比如L5或更高。如果分组与一卸载的连接对应,则TEEC可引导帧的数据有效负荷部分的数据移动。可根据结合帧内的方向信息的连接状态信息来确定有效负荷数据的目标位置。例如目标位置可以是主机存储器。最后,TEEC可更新它的内部TCP和连接状态的更高级,并可根据它的内部连接状态得到主机缓存器地址和长度。
接收系统结构可包括例如控制通路处理和数据移动引擎。如图3上面部分所示的控制通路上的系统组件可用以处理不同的处理级,这些处理级用于完成例如具有最大的灵活性和最高的效率以及最大的目标有线速度的L3/L4或更高级的处理。级处理的结果包括例如一个或个多分组识别卡(PID_C),它可提供可承载与帧有效负荷数据相关的信息的控制结构。当在不同的块中处理分组时,这可在TEEC中产生。图3下部所示的数据移动系统可将帧的有效负荷数据部分从例如片内分组缓存器向前移动并在完成了控制处理时,将其移动到直接存储器存取(DMA)引擎,并随后移动到经由处理而选择的主机缓存器中。
接收系统可完成例如以下操作中的一个或多个:解析TCP/IP报头;将帧与端到端TCP/IP连接相关联;取得TCP连接内容;处理TCP/IP报头;确定报头/数据边界;将数据映射到主机缓存器;以及将数据通过DMA引擎传送到这些缓存器中。报头可在片内被处理或经由DMA引擎被传送到主机中。
分组缓存器是接收系统结构中的一块。它用于与例如在传统的L2NIC中所采用的先入先出(FIFO)数据结构相同的用途,或用来存储更高级的业务量以便进行其它处理。
接收系统中的分组缓存器并不局限于单一的实例。当执行完控制通路处理时,数据通路可根据例如协议要求,一次或多次存储数据处理级之间的数据。
图11是本发明一个实施例中帧接收的示范性步骤的流程图。参照图3和图11,在步骤100中,NIC50可从例如以太网60中接收帧。在步骤110中,帧解析器可解析帧,例如,找出L3和L4报头。帧解析器可处理L2的报头,将其带到L3的报头上,例如IP版本4(IPv4)的报头或IP版本6(IPv6)的报头。IP报头版本字段可确定帧是否承载了IPv4报文或IPv6报文。图4说明了根据本发明的一个实施例的IPv4的IP报文。图5说明根据本发明的一个实施例的IPv6的IP报文。例如,如果IP报头版本字段承载的值为4,则该帧可承载IPv4报文。如果,例如,IP报头版本字段承载的值为6,则该帧可承载IPv6报文。可提取IP报头字段,因此得到例如IP源(IP SRC)地、IP目标(IP DST)地址和IPv4报头“协议”字段或IPv6的“下一报头”。如果IPv4的“协议”报头字段或IPv6的“下一报头”报头字段承载的值为6,则随后的报头可以是TCP报头。将解析的结果添加到PID_C中,PID_C与TEEC内部的分组一起传播。
随后,以与传统现成的软件堆栈中的处理相似的方式处理余下的IP。实现可随嵌入式处理器固件或可能速度快点的专用的有限状态机或处理器和状态机的混合的使用而而变化。实现可随,例如通过一个或多个处理器、状态机或混合的多个处理级而改变。IP处理可包括例如提取与如长度、有效性、分段等相关的信息。还可解析和处理所定位的TCP的报头。图6是说明根据本发明的一个实施例的TCP报头格式的图。TCP报头的解析可提取与例如源端口和目的端口相关的信息。
TCP处理可分为多个附加处理级。在步骤120中,帧与端到端的TCP/IP连接相关联。在一个实施例中,在L2处理后,本发明可提供验证TCP校验和。例如通过以下5元组来唯一地确定端到端连接:IP源地址(IP SRC addr)、IP目的地址(IP DST addr)、IP协议之上的L4协议(例如,TCP、UDP或其它高层协议)、TCP源端口数量(TCP SRC)和TCP目的端口数量(TCP DST)。在选择相关的IP地址的情况下,该处理可适用于IPv4或IPv6。
作为步骤110中帧解析的结果,可完全提取出5元组,并可在PIC中得到。关联硬件将接收5元组与存储TEEC中的5元组列表进行比较。TEEC保留元组表示列表,例如,先前操作的卸载连接或TEEC管理的卸载连接。存储联合信息使用的存储器资源对于片内和片外可选是高成本的。因此,可能不是所有的联合信息都驻留在芯片上。使用高速缓冲存储器存储芯片上最活跃的连接。如果发现相匹配,则TEEC管理有匹配5元组的特定TCP/IP连接。
图7根据本发明的一个实施例,说明了示范性的有效负荷选择。当不匹配时,则根据例如一个或更多卸载方案选择、依据本发明的图7中说明的实施例,管理TCP连接。
使用嵌入式处理器固件,或可能速度快点的专用、有限状态机,或处理器和状态机的混合,TCP处理执行大不相同。执行会随着通过一个或多个处理器、状态机或混合的多个处理级而不同。TCP处理可包括,例如,提取与如长度、有效性、分段等相关的信息。还可解析和处理所定位的TCP的报头。图6是根据本发明的一个TCP报头的实施例。
随后,以与传统现成的软件堆栈中的处理相似的方式进行任何更高级的处理,比如L5及更高级处理。实现可随嵌入式处理器固件或可能速度快点的专用的有限状态机或处理器和状态机的混合的使用而有所变化。实现会随通过一个或多个处理器、状态机或混合的多个处理级而变。更高级的处理可包括例如提取例如与帧有关的安全信息、放置信息和缓存管理信息。更高级的处理并不仅限于这些操作。
参照图7,选项A包括单块软件堆栈和硬件堆栈。硬件堆栈提供了例如对于所有通过硬件堆栈处理的帧和那些通过单块集成电路软件堆栈管理的帧的标准L2帧处理。硬件堆栈向某些连接提供了例如更高级的卸载服务,而单块软件堆栈向其它连接提供了例如更高级的卸载服务器。当不匹配时,硬件可假设单块软件堆栈管理连接。但是,这不排除保留与例如TEEC内或利用适合连接的软件驱动的特定TCP连接相关的统计数字,以便将来从单块软件堆栈卸载到硬件堆栈中。后台任务会占用大多数使用过的连接,并在硬件堆栈上将连接推入卸载状态。
同样参照图7,选项B包括单块软件堆栈、软件卸载堆栈和硬件堆栈。硬件堆栈提供了,例如,对所有通过硬件堆栈处理的帧和那些通过软件堆栈管理的帧的标准L2帧处理。硬件堆栈例如向某些连接提供更高级的卸载服务。软件卸载堆栈例如向另一组连接提供更高级的卸载服务,而单块软件堆栈例如向另一组连接提供了更高级的卸载服务。当在硬件堆栈中不匹配时,硬件还检查看软件卸载堆栈是否管理连接。当软件卸载堆栈中管理连接时,可将帧转发到软件卸载堆栈,该堆栈可在处理连接的同时维护准备用于硬件卸载的数据结构。统计数字可一直保留在这些连接中。如果连接被确定是高使用率的,则它可被直接卸载到硬件。如果软件卸载堆栈不能处理该连接,则可将该连接传递到单块软件堆栈。软件卸载堆栈如硬件堆栈一样可处理帧。因此,从单块软件堆栈的角度,硬件堆栈和软件卸载堆栈的结合可处理所有已经卸载的连接。
在步骤130中,TCP连接内容可从如内容存储器中取得。内容信息包括如在存储数据的主机中用来处理帧和缓存信息的TCP变量。图8A-B根据本发明,说明了一些元组存储位置和/或内容信息示范性实施例。除了片内存储器,可使用外部存储器资源扩充容量。
图8A说明了示范性芯片组,其中TEEC是一单芯片或单芯片的一部分。TEEC 75可从位于主机存储器30中的元组和/或内容缓存器中取得元组和/或内容信息。TEEC75还可从与芯片集55相连的专用元组和/或内容存储器35中取得元组和/或内容信息。
图8B根据本发明的一个实施例,说明了NIC,它包括例如图8A的TEEC和专用元组和/或内容存储器。TEEC 75可从位于主机存储器30中的元组和/或内容缓存器中取得元组和/或内容信息。TEEC 75还可专用元组和/或内容存储器35中取得元组和/或内容信息,存储器35同样在NIC 50上并与TEEC 75相连。
在步骤140中,处理TCP/IP报头。将数据从帧解析器移动到帧缓存器,实现一些IP和TCP帧的有效检查例如IPv4报头校验和与TCP校验和。在PID_C中登记结果。TCP/IP报头,将从内容存储器中取得的内容和至今在PID_C中产生的信息提供给接收器处理块,此处理块包括一个或多个处理器和/或有限状态机。接收器处理块可利用例如内容信息来完善对于帧的附加TCP/IP处理,这种处理包括例如更新TCP状态变量或重新设置RFC 79中所述的定时器。接收器处理块还可使用部分由先前存储在PID_C中的帧解析器和联合块提供的结果。如果处理实现没有错误,则数据可被映射到主机缓存器用来存储。数据在主机存储器的缓存器中成功存储后,接收器处理块可为连接传输发送侧将来传输的TCP应答信号。
在步骤150中,可确定报头/数据的边界。控制路径中的处理结果可确定作为报头处理的分组部分和作为数据或有效负荷处理的分组部分之间的边界。虽然可将数据移到主机缓存器中,报头会被TEEC耗尽或移到单独的主机缓存器中以统计、调试或进一步的处理。
在步骤160中,属于特定5元组连接的接收到分组中的数据可映射到为那个特定连接分配的主机常驻缓存器中。分配的缓存器已经通过应用软件或协议处理层(例如TCP层)预分配。在一个示例中,分配的缓存器是临时缓存器。图9根据本发明的实施例,说明了可将输入分组数据映射和复制到主机常驻缓存器或缓存器组中的系统实施例。在一个示例中,TEEC可直接将数据复制到主机缓存器中,而最初不需要保留位于NIC上的数据。
主机可通过使用描述每个有例如主机存储器的物理地址和字节长度的缓存器的列表结构来描述缓存器。主机还可以其它方式来描述缓存器,例如通过页表结构。TEEC可读取缓存器信息,并可构造输入分组的TCP序列号和主机缓存器之间的映射。特定的TCP序列号可被映射到例如特定缓存器的初始点或特定缓存器的一些偏移量中。当缓存器被分配到卸载连接,可初始化映射。当接收到分组,根据例如长度和TCP序列号,将分组与缓存器映射信息比较。根据比较,一个分组可被映射到一个或多个缓存器中。依次对DMA引擎发出一个或多个指令,以将分组数据移入主机缓存器或缓存器中。
TEEC可将在TCP报头分组中传送的TCP序列号的第一有效负荷字节映射到TEEC的主机常驻缓存器中的偏移量。在步骤170中,TEEC可将TCP段数据直接存放入主机缓存器,例如,TCP缓存器和预置应用软件缓存器。TCP数据可在例如主机存储器中重新组合,而不需要在TEEC上局部复制。它还可节省在主机上复制数据、保留完全的CPU周期和保存存储器子系统中的带宽。因此,可支持零复制操作。
当TCP连接被卸载到TEEC时,它可包括例如象RCV_NXT映射的支撑物、下一个期望字节的TCP序列号、特定的主机基地址和缓存器中的偏移量。当每次多个字节被TCP接收并认可时,调节变量RCV_NXT。对应于RCV_NXT的缓存地址是缓存器[I],NXT_addr,并将其调节为指向第一缓存器中可用的第一字节。当将缓存加入到现有列表的尾部时,将可用缓存器调到最大。当缓存器完全耗尽时,通过缓存器所有者将缓存器返回主机用来消耗。当缓存器返回到主机时,因为PUSH位在输入TCP段中进行设置,调节RCV_NXT映射使其指向下一个缓存器的第一字节。当每次耗尽列表并且新的缓存器分配给卸载的TCP连接时,可重复此行为。
先卸载连接然后分配缓存器。映射任一TCP段到主机缓存器的处理可由计算它的TCP序列号和RCV_NXT值之间的增量(例如差值)开始。然后将增量加入基值,偏移量加入第一缓存器(例如缓存器[I].NXT_addr)。如果增量超出第一缓存器的长度,那么加入第二缓存器的长度。持续此处理直到在缓存器中建立TCP序列号映射。计算可考虑例如预置缓存器的变量大小。然后TEEC确定识别的缓存器是否对整个TCP段有足够的存储空间或段是否溢出到下一个缓存器。根据决定和计算结果,一系列DMA命令以接收的TCP段、主机地址和长度中偏移量产生。当帧中数据需要在超出TEEC拥有的当前列表的缓存器中存储时,TEEC要么放弃帧并不对同等TCP应答,要么临时存储直到能从主机得到另一缓存器。
对于接收的TCP段,如以下部分的说明执行一个或多个处理地址。在一个实施例中,当TCP序列空间限制大约为232-1字节时,TCP序列空间的操作是取模32。但是,可实现其它多模结构。
根据本发明,以下伪代码描述了将数据从TCP段移到缓存器列表处理的实施例。为了简化,处理PUSH位或在当前缓存器列表中没有空间的代码被省略。
1./*检查TCP序列号范围(TCP有效负荷的第一字节的TCP Seq#,最后字节的TCP序列#)是否在RCV窗口(在RCVNXT和RCVNXT+TCP窗之间)内*/
1A./*如果复制帧(之前已接收了所有的字节)则丢弃该帧*/
if TCP Sequence#of last Byte<RCVNXT then drop frame
1B.check that RCVNXT<TCP Sequence#of first Byte<(RCVNXT+TCP window)
1C.check that RCVNXT<TCP Sequence#of last Byte<(RCVNXT+TCP window)
1D./*如果之前已接收了一些字节,则不复制这些字节*/
if TCP Sequence#of first Byte<RCVNXT then TCP Sequence#offirst Byte=RCVNXT;
2./*找到缓存器列表中正确的输入项*/
Segment Length=TCP Sequence#of last byte of TCP payload-TCPSequence#of first byte;
/*增量保持TCP序列号的差异到帧的第一字节的位置。它也是缓存器空间到应当用于存储它的第一字节之间的距离*/
Delta=(TCP-Sequence#of first Byte-RCV NXTfrom context)
/*支撑物增量*/
i=0;/*用于动态指向对应于RCVNXT的缓存器*/
*/主机缓存器列表中的一些字节。缓存器[0]可能已经使用。需要算出剩下的*/
if(Delta<(Host Buffer List.Buffer[0].length-(Host BufferList.Buffer[0].NXTAddr-Host Buffer List.Buffer[0].Phy~Addr)))
{Delta+=(Host-Buffer List.Buffer[0].NXTAddr-Host Buffer List.Buffer[0].Phy~Addr);
I else{Delta-=(Host-Buffer-List.Buffer[0].length-(HostBuffer List.Buffer[0].NXTAddr-Host Buffer List.Buffer[0].Phy~Addr));
5.Do while{Delta-Host-Buffer-List.Buffer[i].length>0}{Delta-=Host Buffer List.Buffer[i].length;j++;};}
6./*变量i指向第一缓存器后的第i个缓存器,其中数据公布应当在此处开始。增量为此缓存器中的偏移量*/
7.Bytes to DMA=Segment length;
8./*DMA到第一缓存器中,DMA数据语法(来自地址,发往地址,长度)*/
DMA Data(TCP Sequence of first byte,Host Buffer List.Buffer[i].Phy~Address+Delta,Host Buffer List.Buffer[i].length-Delta)
10./*判断缓存器满具有以下语法(所写的第一字节,长度),并且如果是满的话,则返回结果1*/
if(buff full=is buffer-Full(Host Buffer List.Buffer[i].Phy~Address+Delta,Host Buffer List.Buffer[i].length-Delta))thenreturn buffer to owner();
11.BytestoDMA-=HostBufferList.Buffer[i].length-Delta;
/*已经DMA到第一缓存器中的字节*/
12.StartTCPSeq=TCP Sequence of first byte+(Host Buffer List.Buffer[i].length-Delta);
/*如果需要的话DMA到下一缓存器中*/
13.Dowhile{BytestoDMA>0}
14.{
if(Bytes to DMA>Host Buffer List.Buffer[i].Length)DMA data(StartTCPSeq,HostBufferList.Buffer[i].Phy~Address,Host BufferList.Buffer[i].Length)
else DMA data(StartTCPSeq,Host BufFer List.Buffer[i].PhyAddress,BytestoDMA);
BytestoDMA-=HostBufferList.Buffer[i].length;
Start TCP Seq+=Host Buffer List.Buffer[i].length i++;
If i>maxbuffers then goto no more buffers;
当缓存器沿着TCP窗口移动到右侧消耗时,可更新基值序列号和主机缓存器信息列表。
图10根据本发明的一个实施例,说明了典型的发送路径。TEEC可包括例如物理层(PHY)180、MAC层190、报头构造器200、内容预取210、定时器220,、传输处理器230,数据和控制块240、应答块250、调度程序260和DMA引擎270。其组成连接在图10中说明。定时器220可包括例如TCP状态码传输和传输定时器。调度程序260适于例如开窗和/或传输判决。DMA引擎270可包括例如XSUM块280或其它数据特定处理。这个可包括将数据插入到由主机提供的数据,并计算CRC值。数据处理并不仅限于这些功能。
在发送路径上,支持L4和更高级可包括附加的复杂度和功能。传输可包括执行例如一个或多个以下功能:安排传输流、通过DMA传输数据、取得内容、传输处理、增加L5或更高级和TCP/IP报头,以及适当的添加到所有这些报头域中、提供定时器、以及L2传输。
调度程序260可确定下一个服务流。调度程序260还可处理多路L2和L4和更高级的业务量。对于L4和更高级的业务量,安排特定TCP/IP流的传输判决可根据例如以下因素中的一个或多个:主机侧传输有效数据;比如当远端TCP连接已经关闭TCP窗口时的远端缓存器状态;防止以太网介质上TCP连接的大量潜在的时间竞争造成资源缺乏;来自接收侧的有效性的TCP应答;转发代表TCP连接信息的需要;以及从主机传输到TEEC中流优先级或服务质量(QoS)信息。
利用一些或所有以上确定的信息或其它信息,调度程序260可取下一个流传输。调度程序260可从内容信息中取出指向下一个主机常驻缓存器的指针。调度程序还可260给DMA引擎270编程以得到数据和存储数据,例如在弹性缓存器281中。虽然显示了弹性缓存器281,但是根据本发明不同的实施例,本发明并不限于此,并且可利用片内FIFO缓存器或其它适当的存储器或缓存器设备存储数据。
DMA引擎270可从主机缓存器或缓存器将数据传输到例如片内、发送侧FIFO缓存器。可在正传输的数据上计算IP校验和(IPv4)和TCP校验和。计算的实现与数据移动同时进行。更高级数据处理可在此集进行。
例如通过内容预取210从中央内容源取得流内容。访问中央内容源可增加它的所有用户中的同步机械装置的有效性,以保证数据的完整性和一致性。在非期望执行冲突最小时,同步机械装置非常有效。选择流的内容可被提供给传输处理器230,比如CPU和/或有限状态机(FSM)。
传输处理器230适于例如执行TCP/IP和更高级的代码、更新内容和产生TCP/IP和更高级报头变量以取代报头。可存储更新的内容。此级的处理可由一个或多个包括一个或多个处理器、状态机或混合处理器的级来实现。
报头构造器200可使用传输处理器230产生的报头变量,可产生TCP/IP和更高级报头,并可将TCP/IP和更高级报头附加到数据前以传输。使用部分从DMA引擎270得到的校验和结果,报头构造器200可确定校验和域,并可将他们放置到各个报头。传输处理并不仅限于此特定数量级处理,并可进行不同级的最佳处理。
定时器220可由传输处理器230提供,并更新未来的定时器事件列表。当L4和更高级的处理完成时,L2处理和传输可遵循传统的以太网控制器的一般执行步骤。
重发事件类似于标准传输,除了例如可从如前所述的主机缓存器或其它临时控制缓存器中取得的要重发的数据之外。可计算这一数据的地址。主机缓存器地址的计算会更加复杂。接收路径部分描述的同一映射功能可用于重发TCP序列号范围。一旦确定了缓存器地址,便会进行以上描述的余下的传输处理。
本发明的一个或多个实施例可具有以下所述优点中的一个或多个。
印脚的减少使得能够不需要外部存储器单片执行。印脚减少可提供与传统非卸载以太网控制器相似大小,因此可允许在受限于LAN部件实时状态分配的服务器和客户机的母板上集成。换句话说,可用来解决母板上网络(LOM)应用软件。这是客户机和服务器不断紧缩形式因素的有利面。
由于可不必与外部存储器接口,因此该解决方案的成本可以降低。不仅可节省外部存储器的成本,而且TEEC也可变得更便宜。可不需要或减少对可接口存储器和用于I/O缓存器的机器的需要,便可驱动此机器。同时,这可允许具有更少的管脚和更高的性能的更小封装。
功率和热量考虑可能是对于数据中心的发展的基本抑致因素。通过消除或简化外部存储器,TEEC可降低其功耗。由于要耗散的热量较少,因此可提供更紧凑的服务器。
可节约与数据的临时缓存相关联的延时。一些应用如分布式数据库、聚类、高性能计算机(HPC)、服务质量(QoS)应用以及其它应用可得益于大量节约的延时。
可能没有存储器和TEEC的速度耦合。当外部存储器附加到TEEC的结构上时,该存储器的速度和宽度可能会影响内部结构。此影响对于更改的有线速度来说甚至更大。由于没有可能进行外部连接,因此大大简化了内部结构。
这可减少由NIC上TEEC所用的存储器,只用传统的FIFO缓存器用于匹配有线、缺少内部处理以及主机总线速度。这种结构的存储器需求不可通过若干连接来扩展,并且可能对LAN或WAN配置不敏感。成本和大小受带宽距离乘积的影响较少,这种问题在大型(环球)快速网络中可能会更加恶化。
因此,本发明可实现于硬件、软件或硬件和软件的组合。本发明可以集中方式实现于一个计算机系统中,或以分布的方式实现于分布在几个互连接的计算机系统之间的不同单元中。任何种类的计算机系统或其适于实施这里所述的方法的装置均是适合的。硬件和软件的典型组合可以是带有计算机程序的通用计算机系统,该程序在加载并被执行时,可控制所述计算机系统,使得它可实施这里所述的方法。
本发明的一些部分还可嵌入到计算机程序产品当中,该产品包括了实现这里所述的方法的所有特征,并且在载入计算机系统时可实施这些方法。本文中的计算机程序意指用任何语言、代码或注释的指令集的任何表达,这些指令用于使系统具有信息处理能力,以便或者直接或者在结合了以下二者之后执行特定功能:a)转换为另一种语音代码或注释;b)用不同的材料形式进行复制。
虽然本发明是参考特定实施例进行描述的,但对于本领域的技术人员而言,在不背离本发明的范围的情况下,可进行各种等效变化并可用等效物替代。此外,在不背离本发明范围的情况下,可进行多种修改,以适应特定条件或本发明示教的内容。
因此,本发明不限于所公开的特定实施例,本发明将包括落于权利要求范围中的所有的实施例。

Claims (24)

1. 一种用于卸载TCP处理的系统,所述系统包括:
一个主机;
一个连接到所述主机的网络接口卡,所述网络接口卡包括,
一个TCP使能的以太网控制器,所述以太网控制器包括,
至少一个内部弹性缓存器,其中所述以太网控制器处理一个输入TCP分组一次,并将至少一部分所述输入TCP分组临时缓存到所述内部弹性缓存器中,所述处理在没有重组的情况下发生。
2. 根据权利要求1所述的系统,其特征在于,所述至少一个内部弹性缓存器包括接收内部弹性缓存器和发送内部弹性缓存器中的至少一个。
3. 根据权利要求2所述的系统,其特征在于,当所述至少一个内部弹性缓存器包括接收内部弹性缓存器时,所述输入TCP分组的所述至少一部分被临时缓存在所述接收内部弹性缓存器中。
4. 根据权利要求2所述的系统,其特征在于,当所述至少一个内部弹性缓存器包括发送内部弹性缓存器时,要被传输的一个TCP分组的至少一部分被临时缓存在所述发送内部弹性缓存器中。
5. 根据权利要求1所述的系统,其特征在于,所述以太网控制器将至少一部分所述输入TCP分组数据放进一个主机存储器的至少一部分中。
6. 根据权利要求1所述的系统,其特征在于,所述网络接口卡只利用所述至少一个内部弹性缓存器来临时缓存所述输入TCP分组的所述至少一部分。
7. 根据权利要求1所述的系统,其特征在于,无序的TCP分组不在以太网控制器缓存器中进行存储、重新排序和重组中的至少一个操作。
8. 根据权利要求1所述的系统,其特征在于,所述网络接口卡不需要专用的存储器来对失序的TCP分组重新排序。
9. 根据权利要求1所述的系统,其特征在于,所述网络接口卡不需要专用的存储器来组合并重新排序在IP层分段上的IP分组。
10. 根据权利要求1所述的系统,其特征在于,所述以太网控制器通过执行单一拷贝操作,至少将来自所述输入TCP分组的数据放进一个主机存储器中可得的缓存器的最高层中。
11. 根据权利要求1所述的系统,其特征在于,所述以太网控制器将至少一部分处理过的输入TCP分组DMA传送到一个主机存储器的至少一部分中。
12. 根据权利要求1所述的系统,其特征在于,所述网络接口卡不需要一个TOE专用存储器以用于分组重发和分组重组中的至少一个。
13. 根据权利要求1所述的系统,其特征在于,所述以太网控制器将至少一部分处理过的输入TCP分组放进一个主机存储器的主机缓存器中,以便进行重组。
14. 根据权利要求1所述的系统,其特征在于,所述以太网控制器包括一个单芯片,其中集成了所述至少一个内部弹性缓存器。
15. 根据权利要求1所述的系统,其特征在于,所述以太网控制器包括一个单芯片,其中集成了所述至少一个内部弹性缓存器,并且没有用于进行分组重发、分组重组和分组重新排序中的至少一种的内部缓存器和外部缓存器接口。
16. 一种用于卸载TCP处理的方法,所述方法包括:
在以太网控制器上接收输入TCP分组;
通过所述以太网控制器将至少一部分所述输入分组处理一次而不进行重组;以及
将所述输入TCP分组的所述至少一部分临时缓存于所述以太网控制器的至少一个内部弹性缓存器中。
17. 根据权利要求16所述的方法,其特征在于,所述至少一个内部弹性缓存器包括接收内部弹性缓存器和发送内部弹性缓存器中的至少一个。
18. 根据权利要求17所述的方法,其特征在于,当所述至少一个内部弹性缓存器包括接收内部弹性缓存器时,所述方法还包括在所述接收内部弹性缓存器中临时缓存所述输入TCP分组的所述至少一部分的步骤。
19. 根据权利要求16所述的方法,其特征在于,还包括将至少一部分处理过的输入分组放进一个主机存储器的至少一部分中。
20. 根据权利要求16所述的方法,其特征在于,所述放置步骤还包括通过执行单一拷贝操作,将至少一部分处理过的输入TCP分组放进一个主机存储器中可得的缓存器的最高层。
21. 根据权利要求16所述的方法,其特征在于,还包括将至少一部分处理过的输入TCP分组DMA传送到一个主机存储器的至少一部分中。
22. 根据权利要求16所述的方法,其特征在于,将多个分组临时缓存在所述至少一个内部弹性缓存器中不是为了重组和重发中的至少一个。
23. 根据权利要求16所述的方法,其特征在于,还包括将至少一部分处理过的输入TCP分组放进主机存储器的主机缓存器中,以便进行处理。
24. 根据权利要求16所述的方法,其特征在于,所述以太网控制器包括一个单芯片,其中集成了所述至少一个内部弹性缓存器。
CNB038203502A 2002-08-30 2003-08-29 Tcp卸载的系统和方法 Expired - Fee Related CN100421417C (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US40716502P 2002-08-30 2002-08-30
US60/407,165 2002-08-30
US40861702P 2002-09-06 2002-09-06
US60/408,617 2002-09-06
US45626003P 2003-03-20 2003-03-20
US45626503P 2003-03-20 2003-03-20
US60/456,260 2003-03-20
US60/456,265 2003-03-20

Publications (2)

Publication Number Publication Date
CN1679282A CN1679282A (zh) 2005-10-05
CN100421417C true CN100421417C (zh) 2008-09-24

Family

ID=31982589

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038203502A Expired - Fee Related CN100421417C (zh) 2002-08-30 2003-08-29 Tcp卸载的系统和方法

Country Status (5)

Country Link
US (4) US7346701B2 (zh)
EP (1) EP1537695B1 (zh)
CN (1) CN100421417C (zh)
DE (1) DE60326361D1 (zh)
WO (1) WO2004021627A2 (zh)

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US8180928B2 (en) * 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7016354B2 (en) * 2002-09-03 2006-03-21 Intel Corporation Packet-based clock signal
US7181544B2 (en) * 2002-09-03 2007-02-20 Intel Corporation Network protocol engine
US20040044796A1 (en) * 2002-09-03 2004-03-04 Vangal Sriram R. Tracking out-of-order packets
US20040049580A1 (en) * 2002-09-05 2004-03-11 International Business Machines Corporation Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
KR100802619B1 (ko) * 2002-11-07 2008-02-13 엘지전자 주식회사 무선 링크 제어 프로토콜에 따르는 수신기에서의 알엘씨데이터 수신 윈도우 처리 방법
US9015467B2 (en) 2002-12-05 2015-04-21 Broadcom Corporation Tagging mechanism for data path security processing
US7587587B2 (en) * 2002-12-05 2009-09-08 Broadcom Corporation Data path security processing
KR100449806B1 (ko) * 2002-12-23 2004-09-22 한국전자통신연구원 네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기위한 네트워크-스토리지 연결 장치
US7324540B2 (en) 2002-12-31 2008-01-29 Intel Corporation Network protocol off-load engines
US7542465B2 (en) * 2003-03-28 2009-06-02 Broadcom Corporation Optimization of decoder instance memory consumed by the jitter control module
US7272672B1 (en) * 2003-04-01 2007-09-18 Extreme Networks, Inc. High speed bus with flow control and extended burst enhancements between sender and receiver wherein counter is maintained at sender for free buffer space available
US8417852B2 (en) * 2003-06-05 2013-04-09 Nvidia Corporation Uploading TCP frame data to user buffers and buffers in system memory
US8285881B2 (en) * 2003-09-10 2012-10-09 Broadcom Corporation System and method for load balancing and fail over
US7912979B2 (en) * 2003-12-11 2011-03-22 International Business Machines Corporation In-order delivery of plurality of RDMA messages
US8572289B1 (en) * 2003-12-19 2013-10-29 Nvidia Corporation System, method and computer program product for stateless offloading of upper level network protocol operations
US7864806B2 (en) * 2004-01-06 2011-01-04 Broadcom Corp. Method and system for transmission control packet (TCP) segmentation offload
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7562158B2 (en) * 2004-03-24 2009-07-14 Intel Corporation Message context based TCP transmission
US20050281262A1 (en) * 2004-06-17 2005-12-22 Zur Uri E Method and system for supporting read operations for iSCSI and iSCSI chimney
US7573895B2 (en) * 2004-06-24 2009-08-11 Intel Corporation Software assisted RDMA
US20050286527A1 (en) * 2004-06-28 2005-12-29 Ivivity, Inc. TCP segment re-ordering in a high-speed TOE device
US7764709B2 (en) * 2004-07-07 2010-07-27 Tran Hieu T Prioritization of network traffic
US7533176B2 (en) * 2004-07-14 2009-05-12 International Business Machines Corporation Method for supporting connection establishment in an offload of network protocol processing
US7493427B2 (en) * 2004-07-14 2009-02-17 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
US7930422B2 (en) * 2004-07-14 2011-04-19 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
US7769905B1 (en) * 2004-08-13 2010-08-03 Oracle America, Inc. Adapting network communication to asynchronous interfaces and methods
US7761608B2 (en) * 2004-09-01 2010-07-20 Qlogic, Corporation Method and system for processing markers, data integrity fields and digests
US7826470B1 (en) * 2004-10-19 2010-11-02 Broadcom Corp. Network interface device with flow-oriented bus interface
US20060101090A1 (en) * 2004-11-08 2006-05-11 Eliezer Aloni Method and system for reliable datagram tunnels for clusters
US7739424B2 (en) * 2005-04-18 2010-06-15 Integrated Device Technology, Inc. Packet processing switch and methods of operation thereof
WO2006119773A1 (en) * 2005-05-13 2006-11-16 Ipblaze A/S Method and system for data packet processing
US7760741B2 (en) * 2005-05-18 2010-07-20 International Business Machines Corporation Network acceleration architecture
US7924848B2 (en) * 2005-05-18 2011-04-12 International Business Machines Corporation Receive flow in a network acceleration architecture
US8037154B2 (en) * 2005-05-19 2011-10-11 International Business Machines Corporation Asynchronous dual-queue interface for use in network acceleration architecture
US7733875B2 (en) * 2005-05-19 2010-06-08 International Business Machines Corporation Transmit flow for network acceleration architecture
US20060274787A1 (en) * 2005-06-07 2006-12-07 Fong Pong Adaptive cache design for MPT/MTT tables and TCP context
US20070002853A1 (en) * 2005-06-30 2007-01-04 Anil Vasudevan Snoop bandwidth reduction
US8064459B2 (en) * 2005-07-18 2011-11-22 Broadcom Israel Research Ltd. Method and system for transparent TCP offload with transmit and receive coupling
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7639715B1 (en) 2005-09-09 2009-12-29 Qlogic, Corporation Dedicated application interface for network systems
US7912060B1 (en) 2006-03-20 2011-03-22 Agere Systems Inc. Protocol accelerator and method of using same
US7610444B2 (en) * 2005-09-13 2009-10-27 Agere Systems Inc. Method and apparatus for disk address and transfer size management
US20070204076A1 (en) * 2006-02-28 2007-08-30 Agere Systems Inc. Method and apparatus for burst transfer
US8521955B2 (en) 2005-09-13 2013-08-27 Lsi Corporation Aligned data storage for network attached media streaming systems
US8218770B2 (en) * 2005-09-13 2012-07-10 Agere Systems Inc. Method and apparatus for secure key management and protection
US7461214B2 (en) * 2005-11-15 2008-12-02 Agere Systems Inc. Method and system for accessing a single port memory
US7599364B2 (en) * 2005-09-13 2009-10-06 Agere Systems Inc. Configurable network connection address forming hardware
US8660137B2 (en) * 2005-09-29 2014-02-25 Broadcom Israel Research, Ltd. Method and system for quality of service and congestion management for converged network interface devices
US20070162639A1 (en) * 2005-11-30 2007-07-12 Chu Hsiao-Keng J TCP-offload-engine based zero-copy sockets
US20070136481A1 (en) * 2005-12-13 2007-06-14 Dierks Herman D Jr Method for improved network performance using smart maximum segment size
US20070189231A1 (en) * 2006-02-14 2007-08-16 Chang Li F Method and system for implementing a bufferless HARQ processor
US8635388B2 (en) 2006-03-31 2014-01-21 Broadcom Corporation Method and system for an OS virtualization-aware network interface card
US7817652B1 (en) * 2006-05-12 2010-10-19 Integrated Device Technology, Inc. System and method of constructing data packets in a packet switch
US8194662B2 (en) * 2006-06-08 2012-06-05 Ilnickl Slawomir K Inspection of data
US8112534B2 (en) * 2006-07-26 2012-02-07 Dell Products L.P. Apparatus and method for remote power control
EP1885098B1 (en) 2006-08-04 2011-04-06 Canon Kabushiki Kaisha Communication apparatus and communication control method
GB0621774D0 (en) * 2006-11-01 2006-12-13 Level 5 Networks Inc Driver level segmentation
KR100996704B1 (ko) * 2006-11-06 2010-11-25 삼성전자주식회사 버퍼 크기 정보의 전송 방법
US9794378B2 (en) 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
US20080120426A1 (en) * 2006-11-17 2008-05-22 International Business Machines Corporation Selective acceleration of transport control protocol (tcp) connections
GB0706134D0 (en) * 2007-03-29 2007-05-09 Nokia Oyj A modular device component
US8935406B1 (en) 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US7925795B2 (en) * 2007-04-30 2011-04-12 Broadcom Corporation Method and system for configuring a plurality of network interfaces that share a physical interface
US8060644B1 (en) * 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US8589587B1 (en) 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US7929439B1 (en) * 2007-10-02 2011-04-19 Sandia Corporation Multiple network interface core apparatus and method
US20090106436A1 (en) * 2007-10-23 2009-04-23 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for offload processing
US7965714B2 (en) * 2008-02-29 2011-06-21 Oracle America, Inc. Method and system for offloading network processing
JP5094482B2 (ja) * 2008-03-07 2012-12-12 キヤノン株式会社 処理装置及びその処理方法
JP5049834B2 (ja) * 2008-03-26 2012-10-17 株式会社東芝 データ受信装置、データ受信方法およびデータ処理プログラム
US7944946B2 (en) 2008-06-09 2011-05-17 Fortinet, Inc. Virtual memory protocol segmentation offloading
US8341262B2 (en) * 2008-11-07 2012-12-25 Dell Products L.P. System and method for managing the offload type for offload protocol processing
TWI378688B (en) * 2009-02-10 2012-12-01 Ralink Technology Corp Method and apparatus for preloading packet headers and system using the same
US8880716B2 (en) * 2009-05-08 2014-11-04 Canon Kabushiki Kaisha Network streaming of a single data stream simultaneously over multiple physical interfaces
US8396960B2 (en) * 2009-05-08 2013-03-12 Canon Kabushiki Kaisha Efficient network utilization using multiple physical interfaces
US8325601B2 (en) * 2009-05-08 2012-12-04 Canon Kabushiki Kaisha Reliable network streaming of a single data stream over multiple physical interfaces
WO2010145709A1 (en) * 2009-06-18 2010-12-23 Telefonaktiebolaget Lm Ericsson (Publ) Data flow in peer-to-peer networks
US8356109B2 (en) 2010-05-13 2013-01-15 Canon Kabushiki Kaisha Network streaming of a video stream over multiple communication channels
US8560502B2 (en) * 2010-07-02 2013-10-15 Exact Solutions, Inc. Method and a system for replaying database workload with transactional consistency
JP5609584B2 (ja) * 2010-08-30 2014-10-22 富士通株式会社 シェーピング装置及び方法
US8472469B2 (en) 2010-09-10 2013-06-25 International Business Machines Corporation Configurable network socket aggregation to enable segmentation offload
WO2012038829A2 (en) * 2010-09-23 2012-03-29 Marvell Israel (M.I.S.L.) Ltd. Low latency first-in-first-out (fifo) buffer
CN102111403B (zh) * 2010-12-17 2014-05-21 曙光信息产业(北京)有限公司 一种用于高速获取tcp连接数据的方法和设备
CN102075416B (zh) * 2010-12-17 2014-07-30 曙光信息产业(北京)有限公司 一种软硬件结合实现tcp连接数据缓存的方法
CN102082688B (zh) * 2010-12-17 2014-08-13 曙光信息产业(北京)有限公司 一种软硬件结合实现tcp乱序缓冲区管理的方法
US9092426B1 (en) 2011-01-03 2015-07-28 Applied Micro Circuts Corporation Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing
US20120213118A1 (en) * 2011-02-18 2012-08-23 Lindsay Steven B Method and system for network interface controller (nic) address resolution protocol (arp) batching
US8694618B2 (en) 2011-04-13 2014-04-08 Microsoft Corporation Maximizing data transfer through multiple network devices
US8627412B2 (en) 2011-04-14 2014-01-07 Microsoft Corporation Transparent database connection reconnect
US9131001B2 (en) 2011-09-27 2015-09-08 Qualcomm Incorporated Systems and method for reduced power wireless communication
US9164913B1 (en) * 2012-04-16 2015-10-20 Qlogic, Corporation Method and system for offloading copy on write operations
US8848741B2 (en) 2012-06-21 2014-09-30 Breakingpoint Systems, Inc. High-speed CLD-based TCP segmentation offload
US8824508B2 (en) * 2012-06-21 2014-09-02 Breakingpoint Systems, Inc. High-speed CLD-based TCP assembly offload
CN103546424A (zh) * 2012-07-10 2014-01-29 华为技术有限公司 一种tcp数据传输方法、tcp卸载引擎及系统
US9155046B2 (en) * 2012-09-12 2015-10-06 Intel Corporation Optimizing semi-active workloads
CN103414714B (zh) * 2013-08-07 2017-02-15 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备
US9363209B1 (en) * 2013-09-06 2016-06-07 Cisco Technology, Inc. Apparatus, system, and method for resequencing packets
US10764168B1 (en) * 2013-09-30 2020-09-01 Amazon Technologies, Inc. Adjusting communications parameters based on known characteristics
GB201321148D0 (en) * 2013-11-29 2014-01-15 Bridgeworks Ltd Data transfer
US10110518B2 (en) 2013-12-18 2018-10-23 Mellanox Technologies, Ltd. Handling transport layer operations received out of order
US10885583B2 (en) * 2013-12-19 2021-01-05 Chicago Mercantile Exchange Inc. Deterministic and efficient message packet management
WO2015150975A1 (en) * 2014-04-02 2015-10-08 Strato Scale Ltd. Remote asymmetric tcp connection offload over rdma
CN104601484B (zh) * 2015-01-20 2017-10-31 电子科技大学 一种tcp卸载引擎的发送单元
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US10148570B2 (en) 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US9985903B2 (en) * 2015-12-29 2018-05-29 Amazon Technologies, Inc. Reliable, out-of-order receipt of packets
US10079919B2 (en) 2016-05-27 2018-09-18 Solarflare Communications, Inc. Method, apparatus and computer program product for processing data
US10148576B2 (en) * 2016-07-28 2018-12-04 Fortinet, Inc. Network processing unit (NPU) integrated layer 2 network device for layer 3 offloading
US10516710B2 (en) * 2017-02-12 2019-12-24 Mellanox Technologies, Ltd. Direct packet placement
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US10367750B2 (en) 2017-06-15 2019-07-30 Mellanox Technologies, Ltd. Transmission and reception of raw video using scalable frame rate
US10637828B2 (en) * 2017-09-17 2020-04-28 Mellanox Technologies, Ltd. NIC with stateful connection tracking
US10547553B2 (en) 2017-09-17 2020-01-28 Mellanox Technologies, Ltd. Stateful connection tracking
CN107579929B (zh) * 2017-09-18 2021-12-03 郑州云海信息技术有限公司 一种可靠连接通信队列对的设置方法、系统及相关装置
US10560357B2 (en) 2017-11-28 2020-02-11 Marvell World Trade Ltd. Distributed checksum calculation for communication packets
US11444890B2 (en) * 2018-01-28 2022-09-13 Drivenets Ltd. Method and device for improving bandwidth utilization in a communication network
US11025690B2 (en) * 2018-02-05 2021-06-01 Avago Technologies International Sales Pte. Limited Audio-video (AV) packet delivery over a local area network
US10673994B2 (en) * 2018-03-29 2020-06-02 Marvell International Ltd. Network packet generator employing multiple header templates and configurable hardware registers
US10469633B2 (en) 2018-03-29 2019-11-05 Marvell World Trade Ltd. Low-latency pipeline for media-to-ethernet frame packaging
CN110830381B (zh) 2018-08-10 2021-10-26 华为技术有限公司 拥塞控制方法及相关设备
CN111277602B (zh) * 2020-01-23 2023-07-11 奇安信科技集团股份有限公司 网络数据包的识别处理方法、装置、电子设备及存储介质
CN114143268B (zh) * 2021-10-25 2024-02-06 航天恒星科技有限公司 基于tcp的报文接收方法及装置、电子设备及存储介质
US11622004B1 (en) 2022-05-02 2023-04-04 Mellanox Technologies, Ltd. Transaction-based reliable transport

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0905938A2 (en) * 1997-09-25 1999-03-31 Hewlett-Packard Company Hardware checksum assist for network protocol stacks
US20020091844A1 (en) * 1997-10-14 2002-07-11 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands

Family Cites Families (409)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2031231A (en) * 1934-03-29 1936-02-18 Manville D Smith Collapsible wire article
US4333020A (en) * 1979-05-23 1982-06-01 Motorola, Inc. MOS Latch circuit
FR2494465B1 (fr) * 1980-11-14 1987-02-13 Epd Engineering Projectdevelop Ordinateur de poche
US4395774A (en) * 1981-01-12 1983-07-26 National Semiconductor Corporation Low power CMOS frequency divider
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
JPS57159192A (en) * 1981-03-27 1982-10-01 Hitachi Ltd Audio packet exchange system
US4445051A (en) * 1981-06-26 1984-04-24 Burroughs Corporation Field effect current mode logic gate
US4433378A (en) * 1981-09-28 1984-02-21 Western Digital Chip topography for MOS packet network interface circuit
US4449248A (en) * 1982-02-01 1984-05-15 General Electric Company Battery saving radio circuit and system
JPS5968072A (ja) * 1982-10-13 1984-04-17 Sharp Corp 機能変換用小形電子機器
US4599526A (en) * 1983-05-13 1986-07-08 At&T Bell Laboratories Clocked latching circuit
US4590550A (en) * 1983-06-29 1986-05-20 International Business Machines Corporation Internally distributed monitoring system
US4519068A (en) * 1983-07-11 1985-05-21 Motorola, Inc. Method and apparatus for communicating variable length messages between a primary station and remote stations of a data communications system
US4760571A (en) * 1984-07-25 1988-07-26 Siegfried Schwarz Ring network for communication between one chip processors
US4737975A (en) * 1984-09-18 1988-04-12 Metrofone, Inc. Programmable system for interfacing a standard telephone set with a radio transceiver
FR2573211B1 (fr) * 1984-11-09 1986-12-12 Labo Electronique Physique Comparateur synchronise
US4680787A (en) * 1984-11-21 1987-07-14 Motorola, Inc. Portable radiotelephone vehicular converter and remote handset
GB8521159D0 (en) * 1985-08-23 1985-10-02 Pa Consulting Services Two-way radio communications system
US4721866A (en) * 1985-11-21 1988-01-26 Digital Equipment Corporation CMOS current switching circuit
US4817054A (en) * 1985-12-04 1989-03-28 Advanced Micro Devices, Inc. High speed RAM based data serializers
US4807282A (en) * 1985-12-30 1989-02-21 International Business Machines Corp. Programmable P/C compatible communications card
JPH06105884B2 (ja) * 1986-05-06 1994-12-21 日本電気株式会社 無線電話システム
FR2598531B1 (fr) 1986-05-06 1990-07-27 Montane Ioan Methode et dispositif d'interconnection d'un microcontroleur multifonction avec un programme externe
US4850009A (en) * 1986-05-12 1989-07-18 Clinicom Incorporated Portable handheld terminal including optical bar code reader and electromagnetic transceiver means for interactive wireless communication with a base communications station
US5239662A (en) * 1986-09-15 1993-08-24 Norand Corporation System including multiple device communications controller which coverts data received from two different customer transaction devices each using different communications protocols into a single communications protocol
US4717838A (en) * 1986-11-14 1988-01-05 National Semiconductor Corporation High input impedance, high gain CMOS strobed comparator
US4727309A (en) * 1987-01-22 1988-02-23 Intel Corporation Current difference current source
US4821034A (en) * 1987-02-06 1989-04-11 Ancor Communications, Inc. Digital exchange switch element and network
KR910008738B1 (ko) * 1987-02-20 1991-10-19 닛본 덴기 가부시기가이샤 밧데리 절약 채널 스캔 기능을 갖고 있는 휴대용 무선 송수신기
US4817115A (en) * 1987-02-27 1989-03-28 Telxon Corporation Encoding and decoding system for electronic data communication system
US4777657A (en) * 1987-04-01 1988-10-11 Iss Engineering, Inc. Computer controlled broadband receiver
US4791324A (en) * 1987-04-10 1988-12-13 Motorola, Inc. CMOS differential-amplifier sense amplifier
US4804954A (en) * 1987-04-30 1989-02-14 Motorola, Inc. Battery saving method for portable communications receivers
US5249302A (en) * 1987-10-09 1993-09-28 Motorola, Inc. Mixed-mode transceiver system
US4970406A (en) * 1987-12-30 1990-11-13 Gazelle Microcircuits, Inc. Resettable latch circuit
US4806796A (en) * 1988-03-28 1989-02-21 Motorola, Inc. Active load for emitter coupled logic gate
US5055660A (en) * 1988-06-16 1991-10-08 Avicom International, Inc. Portable transaction monitoring unit for transaction monitoring and security control systems
JP2583578B2 (ja) * 1988-07-01 1997-02-19 三菱電機株式会社 ポケット電話機
US5117501A (en) * 1988-08-08 1992-05-26 General Electric Company Dynamic regrouping in a trunked radio communications system
US5087099A (en) * 1988-09-02 1992-02-11 Stolar, Inc. Long range multiple point wireless control and monitoring system
US4916441A (en) * 1988-09-19 1990-04-10 Clinicom Incorporated Portable handheld terminal
JP2805767B2 (ja) * 1988-09-26 1998-09-30 日本電気株式会社 無線送受信機
US4894792A (en) * 1988-09-30 1990-01-16 Tandy Corporation Portable computer with removable and replaceable add-on modules
US5008879B1 (en) * 1988-11-14 2000-05-30 Datapoint Corp Lan with interoperative multiple operational capabilities
US4995099A (en) * 1988-12-01 1991-02-19 Motorola, Inc. Power conservation method and apparatus for a portion of a predetermined signal
US5025486A (en) * 1988-12-09 1991-06-18 Dallas Semiconductor Corporation Wireless communication system with parallel polling
GB2226475A (en) * 1988-12-23 1990-06-27 Philips Electronic Associated Power economising in multiple user radio systems
US5150361A (en) * 1989-01-23 1992-09-22 Motorola, Inc. Energy saving protocol for a TDM radio
US5128938A (en) * 1989-03-03 1992-07-07 Motorola, Inc. Energy saving protocol for a communication system
US5839051A (en) 1989-03-17 1998-11-17 Technophone Limited Host radio telephone to directly access a handset NAM through a connecter without requiring the handset controller to be employed
US6014705A (en) 1991-10-01 2000-01-11 Intermec Ip Corp. Modular portable data processing terminal having a higher layer and lower layer partitioned communication protocol stack for use in a radio frequency communications network
US5428636A (en) 1993-05-03 1995-06-27 Norand Corporation Radio frequency local area network
US5680633A (en) 1990-01-18 1997-10-21 Norand Corporation Modular, portable data processing terminal for use in a radio frequency communication network
US5247656A (en) * 1989-06-01 1993-09-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling a clock signal
US5029183A (en) * 1989-06-29 1991-07-02 Symbol Technologies, Inc. Packet data communication network
GB2234371A (en) * 1989-07-07 1991-01-30 Inmos Ltd Clock generation
US4969206A (en) * 1989-07-18 1990-11-06 Phyle Industries Limited Portable data collection device with RF transmission
US4964121A (en) * 1989-08-30 1990-10-16 Motorola, Inc. Battery saver for a TDM system
DE3929351C1 (zh) * 1989-09-04 1990-10-11 Siemens Ag, 1000 Berlin Und 8000 Muenchen, De
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5121408A (en) * 1989-10-16 1992-06-09 Hughes Aircraft Company Synchronization for entry to a network in a frequency hopping communication system
AU6721890A (en) 1989-11-03 1991-05-31 Microcom Systems, Inc. Method and apparatus for effecting efficient transmission of data
US5128935A (en) * 1989-11-08 1992-07-07 National Semiconductor Corporation Byte-wide repeat filter
EP0500794A4 (en) 1989-11-22 1993-02-03 David C. Russell Computer control system
US5153878A (en) * 1989-12-11 1992-10-06 Motorola Inc. Radio data communications system with diverse signaling capability
US5055659A (en) * 1990-02-06 1991-10-08 Amtech Technology Corp. High speed system for reading and writing data from and into remote tags
JPH0810995Y2 (ja) * 1990-02-08 1996-03-29 沖電気工業株式会社 自動車電話機用アダプタ
ES2078513T3 (es) 1990-03-03 1995-12-16 Cedardell Ltd Sistema de comunicaciones.
GB2241851A (en) * 1990-03-09 1991-09-11 Philips Electronic Associated Optimising transmitter power in a communications system
US5041740A (en) * 1990-04-30 1991-08-20 Motorola, Inc. Parallel clocked latch
JPH0414314A (ja) * 1990-05-08 1992-01-20 Toshiba Corp ソース電極結合形論理回路
US5179666A (en) 1990-06-07 1993-01-12 Unisys Corporation Block oriented peripheral device interface
US5115151A (en) * 1990-06-08 1992-05-19 Western Digital Corporation Triple comparator circuit
US5363121A (en) 1990-06-29 1994-11-08 International Business Machines Corporation Multiple protocol communication interface for distributed transaction processing
US5079452A (en) * 1990-06-29 1992-01-07 Digital Equipment Corporation High speed ECL latch with clock enable
US5253248A (en) 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
US5090025A (en) * 1990-07-24 1992-02-18 Proteon, Inc. Token ring synchronization
US5584048A (en) 1990-08-17 1996-12-10 Motorola, Inc. Beacon based packet radio standby energy saver
US5119502A (en) * 1990-08-30 1992-06-02 Telefonaktiebolaget L M Ericsson Periodic system ordered rescan in a cellular communication system
JP2646831B2 (ja) * 1990-10-25 1997-08-27 日本電気株式会社 選択呼出受信機
US5181200A (en) * 1990-10-29 1993-01-19 International Business Machines Corporation Handoff method and apparatus for mobile wireless workstation
US5265270A (en) * 1990-10-31 1993-11-23 Motorola, Inc. Method and apparatus for providing power conservation in a communication system
US5179721A (en) * 1990-11-05 1993-01-12 Motorola Inc. Method for inter operation of a cellular communication system and a trunking communication system
AU655219B2 (en) 1990-11-26 1994-12-08 Motorola, Inc. Method and apparatus for paging in a communication system
US5230084A (en) * 1990-12-06 1993-07-20 Motorola, Inc. Selective call receiver having extended battery saving capability
JP2530060B2 (ja) * 1991-01-17 1996-09-04 株式会社東芝 通信制御装置
US5329192A (en) * 1991-01-17 1994-07-12 Industrial Technology Research Institute High speed CMOS current switching circuit
US5297144A (en) * 1991-01-22 1994-03-22 Spectrix Corporation Reservation-based polling protocol for a wireless data communications network
US5265238A (en) * 1991-01-25 1993-11-23 International Business Machines Corporation Automatic device configuration for dockable portable computers
US5081402A (en) * 1991-02-22 1992-01-14 Comfortex Corporation Low power consumption wireless data transmission and control system
US5134347A (en) * 1991-02-22 1992-07-28 Comfortex Corporation Low power consumption wireless data transmission and control system
US5152006A (en) * 1991-02-25 1992-09-29 Motorola, Inc. Receiver controller method and apparatus
EP0503207B1 (en) * 1991-03-13 1997-06-18 International Business Machines Corporation Adaptation device and method for efficient interconnection of data processing devices and networks
CA2040234C (en) * 1991-04-11 2000-01-04 Steven Messenger Wireless coupling of devices to wired network
US5249220A (en) * 1991-04-18 1993-09-28 Rts Electronics, Inc. Handheld facsimile and alphanumeric message transceiver operating over telephone or wireless networks
JP2930257B2 (ja) 1991-04-22 1999-08-03 株式会社東芝 携帯可能電子装置
US5149992A (en) * 1991-04-30 1992-09-22 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University MOS folded source-coupled logic
US5162674A (en) * 1991-05-10 1992-11-10 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Current-steering CMOS logic family
WO1992021195A1 (en) * 1991-05-13 1992-11-26 Omnipoint Corporation Dual mode transmitter and receiver
US5940771A (en) 1991-05-13 1999-08-17 Norand Corporation Network supporting roaming, sleeping terminals
US5394436A (en) 1991-10-01 1995-02-28 Norand Corporation Radio frequency local area network
US6374311B1 (en) 1991-10-01 2002-04-16 Intermec Ip Corp. Communication network having a plurality of bridging nodes which transmit a beacon to terminal nodes in power saving state that it has messages awaiting delivery
US5123029A (en) * 1991-06-21 1992-06-16 International Business Machines Corporation Broadcast-initiated bipartite frame multi-access protocol
GB9114808D0 (en) * 1991-07-09 1991-08-28 Philips Electronic Associated Information transmission system
US5293639A (en) * 1991-08-09 1994-03-08 Motorola, Inc. Reduction of power consumption in a portable communication unit
US5241542A (en) * 1991-08-23 1993-08-31 International Business Machines Corporation Battery efficient operation of scheduled access protocol
US5361397A (en) 1991-08-26 1994-11-01 Motorola, Inc. Communication device and system capable of automatic programmable energizing
US5216295A (en) * 1991-08-30 1993-06-01 General Instrument Corp. Current mode logic circuits employing IGFETS
US5392023A (en) 1991-09-06 1995-02-21 Motorola, Inc. Data communication system with automatic power control
US5390206A (en) 1991-10-01 1995-02-14 American Standard Inc. Wireless communication system for air distribution system
US5274666A (en) * 1991-10-16 1993-12-28 Telephonics Corporation Wireless communication system
GB2261798B (en) * 1991-11-23 1995-09-06 Dowty Communications Ltd Packet switching networks
US5861881A (en) 1991-11-25 1999-01-19 Actv, Inc. Interactive computer system for providing an interactive presentation with personalized video, audio and graphics responses for multiple viewers
JP2571655B2 (ja) 1991-11-27 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロトコル変換機構、交換ネットワーク及びコンピュータ・システム
US5440560A (en) 1991-12-24 1995-08-08 Rypinski; Chandos A. Sleep mode and contention resolution within a common channel medium access method
US5196805A (en) * 1992-01-31 1993-03-23 Motorola, Inc. Distributed differential amplifier arrangement
US5301196A (en) * 1992-03-16 1994-04-05 International Business Machines Corporation Half-speed clock recovery and demultiplexer circuit
US5304869A (en) * 1992-04-17 1994-04-19 Intel Corporation BiCMOS digital amplifier
DE69330981T2 (de) 1992-04-20 2002-06-27 3Com Corp Vorrichtung zur Netzmittelerweiterung auf entfernte Netzwerke
US5744366A (en) 1992-05-01 1998-04-28 Trustees Of The University Of Pennsylvania Mesoscale devices and methods for analysis of motile cells
EP0648404B1 (en) * 1992-06-29 1998-11-25 Elonex Technologies, Inc. Modular notebook computer
US5974508A (en) 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
DE59205707D1 (de) 1992-09-18 1996-04-18 Siemens Ag Integrierte Pufferschaltung
EP0590818A3 (en) 1992-10-02 1994-05-11 Nat Semiconductor Corp Ecl-to-bicmos/cmos translator
US5579487A (en) 1992-10-02 1996-11-26 Teletransaction, Inc. Portable work slate computer with multiple docking positions for interchangeably receiving removable modules
US5432932A (en) 1992-10-23 1995-07-11 International Business Machines Corporation System and method for dynamically controlling remote processes from a performance monitor
JPH06162782A (ja) 1992-11-17 1994-06-10 Hitachi Ltd 半導体集積回路装置
US5289055A (en) * 1992-11-17 1994-02-22 At&T Bell Laboratories Digital ECL bipolar logic gates suitable for low-voltage operation
US5426637A (en) 1992-12-14 1995-06-20 International Business Machines Corporation Methods and apparatus for interconnecting local area networks with wide area backbone networks
US5619650A (en) 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
US5373149A (en) 1993-02-01 1994-12-13 At&T Bell Laboratories Folding electronic card assembly
US5406643A (en) 1993-02-11 1995-04-11 Motorola, Inc. Method and apparatus for selecting between a plurality of communication paths
AU690099B2 (en) 1993-03-04 1998-04-23 Telefonaktiebolaget Lm Ericsson (Publ) Modular radio communications system
WO1994022220A1 (en) 1993-03-24 1994-09-29 Apple Computer, Inc. Differential- to single-ended cmos converter
US5630061A (en) 1993-04-19 1997-05-13 International Business Machines Corporation System for enabling first computer to communicate over switched network with second computer located within LAN by using media access control driver in different modes
US5796727A (en) 1993-04-30 1998-08-18 International Business Machines Corporation Wide-area wireless lan access
US6067408A (en) * 1993-05-27 2000-05-23 Advanced Micro Devices, Inc. Full duplex buffer management and apparatus
US5444763A (en) 1993-06-17 1995-08-22 Research In Motion Limited Translation and connection device for radio frequency point of sale transaction systems
US5459412A (en) 1993-07-01 1995-10-17 National Semiconductor Corporation BiCMOS circuit for translation of ECL logic levels to MOS logic levels
US5418837A (en) 1993-07-30 1995-05-23 Ericsson-Ge Mobile Communications Inc. Method and apparatus for upgrading cellular mobile telephones
US5406615A (en) 1993-08-04 1995-04-11 At&T Corp. Multi-band wireless radiotelephone operative in a plurality of air interface of differing wireless communications systems
US5473607A (en) 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
FI97517C (fi) 1993-09-06 1996-12-27 Nokia Mobile Phones Ltd Pakettidatan siirto digitaalisessa solukkoverkossa
US5548238A (en) 1993-10-01 1996-08-20 Cirrus Logic Inc. Low power high speed CMOS current switching circuit
US5640399A (en) 1993-10-20 1997-06-17 Lsi Logic Corporation Single chip network router
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5887187A (en) 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5914955A (en) 1993-10-20 1999-06-22 Lsi Logic Corporation Switched network hub on a chip
US5668809A (en) 1993-10-20 1997-09-16 Lsi Logic Corporation Single chip network hub with dynamic window filter
US5544222A (en) 1993-11-12 1996-08-06 Pacific Communication Sciences, Inc. Cellular digtial packet data mobile data base station
US5510748A (en) 1994-01-18 1996-04-23 Vivid Semiconductor, Inc. Integrated circuit having different power supplies for increased output voltage range while retaining small device geometries
US5437329A (en) 1994-01-25 1995-08-01 Baker Hughes Incorporated Method and apparatus for activation of furnace slag base cement
US5805927A (en) 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース
US5420529A (en) 1994-05-19 1995-05-30 Northern Telecom Limited Current steering switch and hybrid BiCMOS multiplexer with CMOS commutation signal and CML/ECL data signals
CA2124745C (en) 1994-05-31 2001-11-20 Brian D. Gerson High-speed cmos pseudo-ecl output driver
US5714904A (en) 1994-06-06 1998-02-03 Sun Microsystems, Inc. High speed serial link for fully duplexed data communication
US5465060A (en) 1994-06-10 1995-11-07 International Business Machines Corporation Fast edge triggered self-resetting CMOS receiver with parallel L1/L2 (Master/Slave) latch
JP2713167B2 (ja) 1994-06-14 1998-02-16 日本電気株式会社 比較器
US5600267A (en) 1994-06-24 1997-02-04 Cypress Semiconductor Corporation Apparatus for a programmable CML to CMOS translator for power/speed adjustment
IT1271667B (it) 1994-07-14 1997-06-04 Italtel Spa Metodo ed apparecchiatura per la gestione in tempo reale delle risorse in una rete privata virturale in tecnica atm
FR2723282B1 (fr) 1994-07-29 1996-09-13 Alcatel Telspace Procede d'entrelacement et de desentrelacement de trames sdh et systeme correspondant
US5488319A (en) 1994-08-18 1996-01-30 International Business Machines Corporation Latch interface for self-reset logic
JP2630272B2 (ja) 1994-08-25 1997-07-16 日本電気株式会社 半導体集積回路
US5521530A (en) 1994-08-31 1996-05-28 Oki Semiconductor America, Inc. Efficient method and resulting structure for integrated circuits with flexible I/O interface and power supply voltages
US5541994A (en) 1994-09-07 1996-07-30 Mytec Technologies Inc. Fingerprint controlled public key cryptographic system
JP2600619B2 (ja) 1994-09-28 1997-04-16 日本電気株式会社 電流モード論理回路
FR2725573B1 (fr) 1994-10-11 1996-11-15 Thomson Csf Procede et dispositif pour le controle de congestion des echanges sporadiques de paquets de donnees dans un reseau de transmission numerique
US5502719A (en) 1994-10-27 1996-03-26 Hewlett-Packard Company Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US5519695A (en) 1994-10-27 1996-05-21 Hewlett-Packard Company Switch element for fiber channel networks
US5619497A (en) 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5857075A (en) 1995-01-11 1999-01-05 Sony Corporation Method and integrated circuit for high-bandwidth network server interfacing to a local area network
US5588000A (en) 1995-03-27 1996-12-24 Emulex Corporation Apparatus for reordering data frames within an interface device
US5603051A (en) 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
JPH08335860A (ja) 1995-06-08 1996-12-17 Mitsubishi Electric Corp 差動ラッチ回路
US5798658A (en) 1995-06-15 1998-08-25 Werking; Paul M. Source-coupled logic with reference controlled inputs
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
EP0763915B1 (en) * 1995-09-18 2006-03-08 Kabushiki Kaisha Toshiba Packet transfer device and method adaptive to a large number of input ports
KR0179842B1 (ko) 1995-09-27 1999-04-01 문정환 전류원회로
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5887167A (en) * 1995-11-03 1999-03-23 Apple Computer, Inc. Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system
US5831985A (en) 1995-11-09 1998-11-03 Emc Corporation Method and apparatus for controlling concurrent data transmission from multiple sources in a channel communication system
JP3149759B2 (ja) 1995-11-17 2001-03-26 日本電気株式会社 ラッチ回路
US5754549A (en) 1995-12-05 1998-05-19 International Business Machines Corporation Inexpensive two-way communications switch
US5909127A (en) 1995-12-22 1999-06-01 International Business Machines Corporation Circuits with dynamically biased active loads
US5640356A (en) 1995-12-29 1997-06-17 Cypress Semiconductor Corp. Two-stage differential sense amplifier with positive feedback in the first and second stages
US5793225A (en) 1996-01-02 1998-08-11 Pmc-Sierra, Inc. CMOS SONET/ATM receiver suitable for use with pseudo ECL and TTL signaling environments
US6373846B1 (en) 1996-03-07 2002-04-16 Lsi Logic Corporation Single chip networking device with enhanced memory access co-processor
US5724361A (en) * 1996-03-12 1998-03-03 Lsi Logic Corporation High performance n:1 multiplexer with overlap control of multi-phase clocks
US5689644A (en) 1996-03-25 1997-11-18 I-Cube, Inc. Network switch with arbitration sytem
JP3047808B2 (ja) 1996-03-28 2000-06-05 日本電気株式会社 フリップフロップ回路
US5742604A (en) 1996-03-28 1998-04-21 Cisco Systems, Inc. Interswitch link mechanism for connecting high-performance network switches
GB2311880A (en) 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5831662A (en) * 1996-04-04 1998-11-03 Hughes Electronics Corporation Near on-demand digital information delivery system and method using signal fragmentation and sequencing to reduce average bandwidth and peak bandwidth variability
US5841989A (en) * 1996-04-08 1998-11-24 Apple Computer, Inc. System and method for efficiently routing data packets in a computer interconnect
US5828653A (en) 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US6122191A (en) 1996-05-01 2000-09-19 Cypress Semiconductor Corporation Semiconductor non-volatile device including embedded non-volatile elements
US5802258A (en) 1996-05-03 1998-09-01 International Business Machines Corporation Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure
US5748631A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5821809A (en) 1996-05-23 1998-10-13 International Business Machines Corporation CMOS high-speed differential to single-ended converter circuit
US5767699A (en) 1996-05-28 1998-06-16 Sun Microsystems, Inc. Fully complementary differential output driver for high speed digital communications
US5878028A (en) * 1996-06-06 1999-03-02 Advanced Micro Devices, Inc. Data structure to support multiple transmit packets for high performance
US5859881A (en) 1996-06-07 1999-01-12 International Business Machines Corporation Adaptive filtering method and apparatus to compensate for a frequency difference between two clock sources
US5778414A (en) 1996-06-13 1998-07-07 Racal-Datacom, Inc. Performance enhancing memory interleaver for data frame processing
US5680038A (en) 1996-06-20 1997-10-21 Lsi Logic Corporation High-swing cascode current mirror
US5893150A (en) 1996-07-01 1999-04-06 Sun Microsystems, Inc. Efficient allocation of cache memory space in a computer system
US5802576A (en) 1996-07-01 1998-09-01 Sun Microsystems, Inc. Speculative cache snoop during DMA line update
US5870394A (en) * 1996-07-23 1999-02-09 Northern Telecom Limited Method and apparatus for reassembly of data packets into messages in an asynchronous transfer mode communications system
US5811995A (en) * 1996-08-02 1998-09-22 Advanced Micro Devices, Inc. Circuit for switching between different frequency clock domains that are out of phase
US5893153A (en) 1996-08-02 1999-04-06 Sun Microsystems, Inc. Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control
US5848251A (en) 1996-08-06 1998-12-08 Compaq Computer Corporation Secondary channel for command information for fibre channel system interface bus
US5991817A (en) 1996-09-06 1999-11-23 Cisco Systems, Inc. Apparatus and method for a network router
US5903176A (en) 1996-09-04 1999-05-11 Litton Systems, Inc. Clock circuit for generating a high resolution output from a low resolution clock
US6209020B1 (en) 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US5859669A (en) 1996-11-26 1999-01-12 Texas Instruments Incorporated System for encoding an image control signal onto a pixel clock signal
US5829025A (en) 1996-12-17 1998-10-27 Intel Corporation Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
US20020103988A1 (en) 1996-12-18 2002-08-01 Pascal Dornier Microprocessor with integrated interfaces to system memory and multiplexed input/output bus
GB2320592B (en) 1996-12-20 2002-02-13 Thomson Multimedia Sa Updating software in a microprocessor controlled appliance
US6025746A (en) 1996-12-23 2000-02-15 Stmicroelectronics, Inc. ESD protection circuits
US6111859A (en) 1997-01-16 2000-08-29 Advanced Micro Devices, Inc. Data transfer network on a computer chip utilizing combined bus and ring topologies
US6266797B1 (en) 1997-01-16 2001-07-24 Advanced Micro Devices, Inc. Data transfer network on a computer chip using a re-configurable path multiple ring topology
US5908468A (en) 1997-10-24 1999-06-01 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a multiple traffic circle topology
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
JP3508085B2 (ja) 1997-04-25 2004-03-22 日本プレシジョン・サーキッツ株式会社 D型フリップフロップ回路
US5991305A (en) 1997-02-14 1999-11-23 Advanced Micro Devices, Inc. Integrated multiport switch having independently resettable management information base (MIB)
US6061351A (en) 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US6118776A (en) 1997-02-18 2000-09-12 Vixel Corporation Methods and apparatus for fiber channel interconnection of private loop devices
US6026075A (en) 1997-02-25 2000-02-15 International Business Machines Corporation Flow control mechanism
US5892922A (en) 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
JP3681497B2 (ja) 1997-03-05 2005-08-10 株式会社ルネサステクノロジ フリップフロップ回路、シフトレジスタ回路、直列−並列変換回路、並列−直列変換回路およびラッチ回路
JP3715066B2 (ja) 1997-03-25 2005-11-09 三菱電機株式会社 電流モードロジック回路
US6356944B1 (en) 1997-03-31 2002-03-12 Compaq Information Technologies Group, L.P. System and method for increasing write performance in a fibre channel environment
JP3060987B2 (ja) 1997-03-31 2000-07-10 日本電気株式会社 クロック同期式フリップフロップ回路
US5974518A (en) * 1997-04-10 1999-10-26 Milgo Solutions, Inc. Smart buffer size adaptation apparatus and method
GB9707349D0 (en) 1997-04-11 1997-05-28 Univ Waterloo A dynamic current mode logic family
JP3063721B2 (ja) 1997-04-30 2000-07-12 日本電気株式会社 トポロジー情報交換装置及びプログラムを記録した機械読み取り可能な記録媒体
US5945847A (en) 1997-05-20 1999-08-31 Lucent Technologies Distributed amplifier logic designs
GB9711788D0 (en) 1997-06-06 1997-08-06 Northern Telecom Ltd Method and interface for connecting communication traffic between narrowband and broadband networks
JP3134810B2 (ja) 1997-06-09 2001-02-13 日本電気株式会社 帯域制御方法および帯域制御方式
US5978849A (en) 1997-06-13 1999-11-02 International Business Machines Corporation Systems, methods, and computer program products for establishing TCP connections using information from closed TCP connections in time-wait state
US5945863A (en) 1997-06-18 1999-08-31 Applied Micro Circuits Corporation Analog delay circuit
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US5961631A (en) 1997-07-16 1999-10-05 Arm Limited Data processing apparatus and method for pre-fetching an instruction in to an instruction cache
US6008670A (en) 1997-08-19 1999-12-28 Hewlett-Packard Differential CMOS logic family
US6194950B1 (en) 1997-08-28 2001-02-27 Lucent Technologies Inc. High-speed CMOS multiplexer
US5974049A (en) * 1997-08-29 1999-10-26 International Business Machines Corporation Internet protocol assists for high performance LAN connections
JPH11103303A (ja) 1997-09-26 1999-04-13 Sony Corp ネットワーク資源予約制御方法および装置、受信端末、送信端末、並びに中継装置
US6014041A (en) 1997-09-26 2000-01-11 Intel Corporation Differential current switch logic gate
US6037841A (en) 1997-10-07 2000-03-14 Applied Micro Circuits Corporation Impedance matched CMOS transimpedance amplifier for high-speed fiber optic communications
US6687758B2 (en) 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6389479B1 (en) 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6427173B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6061747A (en) 1997-10-16 2000-05-09 Lsi Logic Corporation System for sending data from-and-to a computer monitor using a high speed serial line
US6424624B1 (en) 1997-10-16 2002-07-23 Cisco Technology, Inc. Method and system for implementing congestion detection and flow control in high speed digital network
US5977800A (en) 1997-10-20 1999-11-02 Vlsi Technology, Inc. Differential MOS current-mode logic circuit having high gain and fast speed
US6002279A (en) 1997-10-24 1999-12-14 G2 Networks, Inc. Clock recovery circuit
US5937169A (en) * 1997-10-29 1999-08-10 3Com Corporation Offload of TCP segmentation to a smart adapter
US6185185B1 (en) 1997-11-21 2001-02-06 International Business Machines Corporation Methods, systems and computer program products for suppressing multiple destination traffic in a computer network
US6151662A (en) 1997-12-02 2000-11-21 Advanced Micro Devices, Inc. Data transaction typing for improved caching and prefetching characteristics
US6188339B1 (en) 1998-01-23 2001-02-13 Fuji Photo Film Co., Ltd. Differential multiplexer and differential logic circuit
US6178159B1 (en) 1998-03-02 2001-01-23 Lucent Technologies Inc. Available bit rate flow control algorithms for ATM networks
FI107657B (fi) 1998-03-11 2001-09-14 Nokia Mobile Phones Ltd Kytkentä differentiaalisen aktiivikomponentin impedanssin säätämiseksi
US6202129B1 (en) 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6272551B1 (en) * 1998-04-08 2001-08-07 Intel Corporation Network adapter for transmitting network packets between a host device and a power line network
US6279035B1 (en) 1998-04-10 2001-08-21 Nortel Networks Limited Optimizing flow detection and reducing control plane processing in a multi-protocol over ATM (MPOA) system
US6324181B1 (en) 1998-04-16 2001-11-27 3Com Corporation Fibre channel switched arbitrated loop
US6349098B1 (en) 1998-04-17 2002-02-19 Paxonet Communications, Inc. Method and apparatus for forming a virtual circuit
US6037842A (en) 1998-04-21 2000-03-14 Applied Micro Circuits Corporation Complementary metal-oxide semiconductor voltage controlled oscillator (CMOS VCO)
US6098064A (en) 1998-05-22 2000-08-01 Xerox Corporation Prefetching and caching documents according to probability ranked need S list
GB2337905B (en) 1998-05-28 2003-02-12 3Com Technologies Ltd Buffer management in network devices
US6765901B1 (en) 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
US6904519B2 (en) 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US6141705A (en) 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6222380B1 (en) 1998-06-15 2001-04-24 International Business Machines Corporation High speed parallel/serial link for data communication
US20020089353A1 (en) 1998-07-13 2002-07-11 Abdellatif Bellaouar Current mode logic gates for low-voltage high-speed applications
US6094074A (en) 1998-07-16 2000-07-25 Seiko Epson Corporation High speed common mode logic circuit
US6496481B1 (en) 1998-07-16 2002-12-17 Industrial Technology Research Institute Data transfer method for wire real-time communications
US6064626A (en) 1998-07-31 2000-05-16 Arm Limited Peripheral buses for integrated circuit
US6223239B1 (en) 1998-08-12 2001-04-24 Compaq Computer Corporation Dual purpose apparatus, method and system for accelerated graphics port or system area network interface
US6215497B1 (en) 1998-08-12 2001-04-10 Monolithic System Technology, Inc. Method and apparatus for maximizing the random access bandwidth of a multi-bank DRAM in a computer graphics system
US6114843A (en) 1998-08-18 2000-09-05 Xilinx, Inc. Voltage down converter for multiple voltage levels
US6411621B1 (en) 1998-08-21 2002-06-25 Lucent Technologies Inc. Apparatus, method and system for an intermediate reliability protocol for network message transmission and reception
US6396832B1 (en) 1998-09-04 2002-05-28 3Com Corporation Method and apparatus for optimizing a switched arbitrated loop for maximum access fairness
US6463092B1 (en) 1998-09-10 2002-10-08 Silicon Image, Inc. System and method for sending and receiving data signals over a clock signal line
WO2000021247A1 (fr) * 1998-10-05 2000-04-13 Fujitsu Limited Dispositif a tampons pour paquets
US6111425A (en) 1998-10-15 2000-08-29 International Business Machines Corporation Very low power logic circuit family with enhanced noise immunity
US6459681B1 (en) 1998-11-13 2002-10-01 Sprint Communications Company L.P. Method and system for connection admission control
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
JP3510507B2 (ja) 1998-11-27 2004-03-29 Necマイクロシステム株式会社 ラッチ回路
US6301668B1 (en) * 1998-12-29 2001-10-09 Cisco Technology, Inc. Method and system for adaptive network security using network vulnerability assessment
US6597689B1 (en) 1998-12-30 2003-07-22 Nortel Networks Limited SVC signaling system and method
US6347337B1 (en) * 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US6631134B1 (en) 1999-01-15 2003-10-07 Cisco Technology, Inc. Method for allocating bandwidth in an optical network
US6707818B1 (en) 1999-03-17 2004-03-16 Broadcom Corporation Network switch memory interface configuration
US6269427B1 (en) 1999-03-18 2001-07-31 International Business Machines Corporation Multiple load miss handling in a cache memory system
US6345301B1 (en) 1999-03-30 2002-02-05 Unisys Corporation Split data path distributed network protocol
KR100382851B1 (ko) 1999-03-31 2003-05-09 인터내셔널 비지네스 머신즈 코포레이션 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
US6614791B1 (en) 1999-05-11 2003-09-02 Nortel Networks Limited System, device, and method for supporting virtual private networks
US6335933B1 (en) 1999-05-21 2002-01-01 Broadcom Homenetworking, Inc. Limited automatic repeat request protocol for frame-based communication channels
US6232844B1 (en) 1999-05-28 2001-05-15 Vitesse Semiconductor Corporation Controlled orthogonal current oscillator with ranging
US6785239B1 (en) * 1999-06-01 2004-08-31 Cisco Technology, Inc. Reducing delays in a communication network using a re-fragmentation pipeline
US6081162A (en) 1999-06-17 2000-06-27 Intel Corporation Robust method and apparatus for providing a digital single-ended output from a differential input
US6911855B2 (en) 1999-06-28 2005-06-28 Broadcom Corporation Current-controlled CMOS circuit using higher voltage supply in low voltage CMOS process
US6424194B1 (en) 1999-06-28 2002-07-23 Broadcom Corporation Current-controlled CMOS logic family
US6897697B2 (en) 1999-06-28 2005-05-24 Broadcom Corporation Current-controlled CMOS circuit using higher voltage supply in low voltage CMOS process
US6477646B1 (en) 1999-07-08 2002-11-05 Broadcom Corporation Security chip architecture and implementations for cryptography acceleration
US6449656B1 (en) * 1999-07-30 2002-09-10 Intel Corporation Storing a frame header
US7159030B1 (en) 1999-07-30 2007-01-02 Intel Corporation Associating a packet with a flow
US6427169B1 (en) 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
US6788704B1 (en) 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
US6332179B1 (en) 1999-08-19 2001-12-18 International Business Machines Corporation Allocation for back-to-back misses in a directory based cache
US6650636B1 (en) * 1999-08-27 2003-11-18 Tachyon, Inc. Transmission and reception of TCP/IP data over a wireless communication channel
US6631351B1 (en) 1999-09-14 2003-10-07 Aidentity Matrix Smart toys
US6785262B1 (en) * 1999-09-28 2004-08-31 Qualcomm, Incorporated Method and apparatus for voice latency reduction in a voice-over-data wireless communication system
US6496199B1 (en) 1999-10-01 2002-12-17 Koninklijke Philips Electronics N.V. Method for storing and retrieving data that conserves memory bandwidth
US6349365B1 (en) 1999-10-08 2002-02-19 Advanced Micro Devices, Inc. User-prioritized cache replacement
US6859435B1 (en) 1999-10-13 2005-02-22 Lucent Technologies Inc. Prevention of deadlocks and livelocks in lossless, backpressured packet networks
EP1912124B8 (en) * 1999-10-14 2013-01-09 Bluearc UK Limited Apparatus and system for implementation of service functions
US6438651B1 (en) 1999-11-01 2002-08-20 International Business Machines Corporation Method, system, and program for managing requests to a cache using flags to queue and dequeue data in a buffer
US6570884B1 (en) * 1999-11-05 2003-05-27 3Com Corporation Receive filtering for communication interface
US6564267B1 (en) 1999-11-22 2003-05-13 Intel Corporation Network adapter with large frame transfer emulation
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
US6788686B1 (en) 1999-11-30 2004-09-07 Lucent Technologies Inc. Method of maintaining packet order in multipath transmission systems having non-uniform traffic splitting
JP3482996B2 (ja) 1999-12-03 2004-01-06 日本電気株式会社 Atmスイッチ
US6862296B1 (en) 1999-12-21 2005-03-01 Lsi Logic Corporation Receive deserializer circuit for framing parallel data
US6606321B1 (en) 1999-12-29 2003-08-12 3Com Corporation Method of establishing MPOA shortcut virtual channel connections
AU2001231040A1 (en) 2000-01-20 2001-07-31 Mci Worldcom, Inc. Intelligent policy server system and method for bandwidth control in an atm network
US6757291B1 (en) 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
JP3730471B2 (ja) * 2000-02-14 2006-01-05 富士通株式会社 パケット転送装置
US6775693B1 (en) * 2000-03-30 2004-08-10 Baydel Limited Network DMA method
US6721280B1 (en) * 2000-04-19 2004-04-13 Qualcomm Incorporated Method and apparatus for voice latency reduction in a voice-over-data wireless communication system
US6714985B1 (en) * 2000-04-28 2004-03-30 Cisco Technology, Inc. Method and apparatus for efficiently reassembling fragments received at an intermediate station in a computer network
US6658599B1 (en) 2000-06-22 2003-12-02 International Business Machines Corporation Method for recovering from a machine check interrupt during runtime
US6751235B1 (en) * 2000-06-27 2004-06-15 Intel Corporation Communication link synchronization method
CN1200368C (zh) * 2000-08-18 2005-05-04 清华大学 一种将tcp用于不可靠传输网络的局域重传方法
US6636947B1 (en) 2000-08-24 2003-10-21 International Business Machines Corporation Coherency for DMA read cached data
US6633936B1 (en) 2000-09-26 2003-10-14 Broadcom Corporation Adaptive retry mechanism
US6816932B2 (en) 2000-10-06 2004-11-09 Broadcom Corporation Bus precharge during a phase of a clock signal to eliminate idle clock cycle
US6538486B1 (en) 2000-10-11 2003-03-25 Lucent Technologies Inc. Latch chain having improved sensitivity
US7035255B2 (en) 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US6333651B1 (en) * 2000-12-01 2001-12-25 Exar Corporation Second order digital jitter attenuator
US20020085562A1 (en) 2000-12-13 2002-07-04 International Business Machines Corporation IP headers for remote direct memory access and upper level protocol framing
US20020078265A1 (en) 2000-12-15 2002-06-20 Frazier Giles Roger Method and apparatus for transferring data in a network data processing system
US20020118692A1 (en) * 2001-01-04 2002-08-29 Oberman Stuart F. Ensuring proper packet ordering in a cut-through and early-forwarding network switch
US20020089927A1 (en) 2001-01-11 2002-07-11 Fischer Michael A. System and method for synchronizing data trasnmission across a variable delay interface
US7149817B2 (en) 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US6665759B2 (en) 2001-03-01 2003-12-16 International Business Machines Corporation Method and apparatus to implement logical partitioning of PCI I/O slots
US6636859B2 (en) * 2001-04-05 2003-10-21 International Business Machines Corporation Method and system for reassembling fragmented datagrams utilizing a plurality of concurrently accessible reassembly queues
US20020149400A1 (en) 2001-04-16 2002-10-17 Namik Kocaman Low voltage differential to single-ended converter
US7913261B2 (en) 2001-05-02 2011-03-22 nCipher Corporation, Ltd. Application-specific information-processing method, system, and apparatus
US6738874B2 (en) 2001-05-02 2004-05-18 Layer N Networks, Inc. Controller architecture and strategy for small discontiguous accesses to high-density memory devices
US6766389B2 (en) 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking
JP4573470B2 (ja) 2001-06-08 2010-11-04 富士通株式会社 伝送装置及びそのフロー制御方法
US7318146B2 (en) 2001-06-19 2008-01-08 Micron Technology, Inc. Peripheral device with hardware linked list
US7155542B2 (en) * 2001-06-27 2006-12-26 Intel Corporation Dynamic network interface with zero-copy frames
US6741603B2 (en) * 2001-07-09 2004-05-25 Overture Networks, Inc. Use of a circular buffer to assure in-order delivery of packets
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7020716B2 (en) 2001-08-31 2006-03-28 Adaptec, Inc. Method and system for verifying the hardware implementation of TCP/IP
WO2003021443A1 (en) 2001-08-31 2003-03-13 Adaptec, Inc. Systems and methods for implementing host-based security in a computer network
US20030046330A1 (en) 2001-09-04 2003-03-06 Hayes John W. Selective offloading of protocol processing
US7953093B2 (en) * 2001-09-06 2011-05-31 Broadcom Corporation TCP/IP reordering
US6976205B1 (en) 2001-09-21 2005-12-13 Syrus Ziai Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources
US7124198B2 (en) 2001-10-30 2006-10-17 Microsoft Corporation Apparatus and method for scaling TCP off load buffer requirements by segment size
US6845403B2 (en) 2001-10-31 2005-01-18 Hewlett-Packard Development Company, L.P. System and method for storage virtualization
US20030105977A1 (en) 2001-12-05 2003-06-05 International Business Machines Corporation Offload processing for secure data transfer
US7180895B2 (en) * 2001-12-31 2007-02-20 3Com Corporation System and method for classifying network packets with packet content
US7644188B2 (en) 2002-02-25 2010-01-05 Intel Corporation Distributing tasks in data communications
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
AU2002359688A1 (en) 2002-03-15 2003-09-29 Adaptec, Inc. Method and apparatus for direct data placement over tcp/ip
US20030185220A1 (en) * 2002-03-27 2003-10-02 Moshe Valenci Dynamically loading parsing capabilities
EP1357721A3 (en) 2002-04-16 2004-07-14 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7007103B2 (en) 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
US7181531B2 (en) 2002-04-30 2007-02-20 Microsoft Corporation Method to synchronize and upload an offloaded network stack connection with a network stack
US7627693B2 (en) 2002-06-11 2009-12-01 Pandya Ashish A IP storage processor and engine therefor using RDMA
US7397788B2 (en) 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7660316B2 (en) 2002-07-02 2010-02-09 Emulex Design & Manufacturing Corporation Methods and apparatus for device access fairness in fibre channel arbitrated loop systems
US7664018B2 (en) 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
US7630300B2 (en) 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking in fibre channel arbitrated loop systems
US7382790B2 (en) 2002-07-02 2008-06-03 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop systems
US7142540B2 (en) * 2002-07-18 2006-11-28 Sun Microsystems, Inc. Method and apparatus for zero-copy receive buffer management
US7515612B1 (en) 2002-07-19 2009-04-07 Qlogic, Corporation Method and system for processing network data packets
US6968358B2 (en) 2002-07-25 2005-11-22 International Business Machines Corporation Method and apparatus for network communication card memory management
US7480312B2 (en) 2002-08-19 2009-01-20 Tehuti Networks Ltd. Network traffic accelerator system and method
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US8631162B2 (en) 2002-08-30 2014-01-14 Broadcom Corporation System and method for network interfacing in a multiple network environment
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US7397800B2 (en) 2002-08-30 2008-07-08 Broadcom Corporation Method and system for data placement of out-of-order (OOO) TCP segments
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US7283522B2 (en) 2002-09-27 2007-10-16 Sun Microsystems, Inc. Method and apparatus for offloading message segmentation to a network interface card
US6874054B2 (en) 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
EP1460804B1 (en) 2003-03-20 2008-10-22 Broadcom Corporation System and method for handling out-of-order frames (fka reception of out-of-order tcp data with zero copy service)
EP1460806A3 (en) 2003-03-20 2006-03-22 Broadcom Corporation System and method for network interfacing in a multiple network environment
US7400639B2 (en) 2003-08-07 2008-07-15 Intel Corporation Method, system, and article of manufacture for utilizing host memory from an offload adapter
US7562158B2 (en) 2004-03-24 2009-07-14 Intel Corporation Message context based TCP transmission
US7813360B2 (en) 2005-01-26 2010-10-12 Emulex Design & Manufacturing Corporation Controlling device access fairness in switched fibre channel fabric loop attachment systems
US7586850B2 (en) 2005-02-23 2009-09-08 Emulex Design & Manufacturing Corporation Prevention of head of line blocking in a multi-rate switched Fibre Channel loop attached system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0905938A2 (en) * 1997-09-25 1999-03-31 Hewlett-Packard Company Hardware checksum assist for network protocol stacks
US20020091844A1 (en) * 1997-10-14 2002-07-11 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands

Also Published As

Publication number Publication date
US20110246662A1 (en) 2011-10-06
US7849208B2 (en) 2010-12-07
WO2004021627A2 (en) 2004-03-11
US8677010B2 (en) 2014-03-18
EP1537695A4 (en) 2008-02-27
EP1537695A2 (en) 2005-06-08
US20110040891A1 (en) 2011-02-17
DE60326361D1 (de) 2009-04-09
EP1537695B1 (en) 2009-02-25
WO2004021627A3 (en) 2004-09-16
US7346701B2 (en) 2008-03-18
US20080151922A1 (en) 2008-06-26
US20040042483A1 (en) 2004-03-04
CN1679282A (zh) 2005-10-05

Similar Documents

Publication Publication Date Title
CN100421417C (zh) Tcp卸载的系统和方法
US7912064B2 (en) System and method for handling out-of-order frames
US6768992B1 (en) Term addressable memory of an accelerator system and method
CN104011696B (zh) 用于隐式存储器注册的显式流控制
US7089289B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
TWI332150B (en) Processing data for a tcp connection using an offload unit
US7447230B2 (en) System for protocol processing engine
US6799200B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system
US6434620B1 (en) TCP/IP offload network interface device
US6751665B2 (en) Providing window updates from a computer to a network interface device
US20050286526A1 (en) Optimized algorithm for stream re-assembly
US20040133713A1 (en) Method and system for data placement of out-of-order (OOO) TCP segments
CN110109852A (zh) 硬件实现tcp_ip协议的系统及方法
US7441179B2 (en) Determining a checksum from packet data
WO2006065688A1 (en) High performance transmission control protocol (tcp) syn queue implementation
CN106302426A (zh) 一种基于fpga的带重发机制的udp协议栈实现方法
TWI237970B (en) Packet-based clock signal
CN100484136C (zh) 网络协议引擎
CN114138707A (zh) 一种基于fpga的数据传输系统
CN116708318A (zh) 基于硬件可编程交换机的tcp连接聚合方法及系统

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080924

Termination date: 20170829