CN1377548A - 解析分组头标 - Google Patents

解析分组头标 Download PDF

Info

Publication number
CN1377548A
CN1377548A CN00813564A CN00813564A CN1377548A CN 1377548 A CN1377548 A CN 1377548A CN 00813564 A CN00813564 A CN 00813564A CN 00813564 A CN00813564 A CN 00813564A CN 1377548 A CN1377548 A CN 1377548A
Authority
CN
China
Prior art keywords
grouping
characteristic
resolver
zero
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN00813564A
Other languages
English (en)
Inventor
U·埃祖尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1377548A publication Critical patent/CN1377548A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • 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]
    • 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/22Parsing or analysis of headers
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Abstract

接收含有头标的分组(140)。头标指示至少一个与协议栈的层相关的特性。利用网络控制器(52)解析分组以提取该特性,并由网络控制器(52)将一个句柄传给该协议栈以指示特性。计算机系统(50)能够执行协议栈软件来提取分组特性,且设备(50)可包含接口(90)和电路(98)。接口(90)能适于接收分组,电路(98)能适于解析头标来提取特性而不必引起计算机(50)执行软件,并基于提取特性处理分组。

Description

解析分组头标
背景
本发明涉及解析分组头标。
参考图1,服务器12通过在依据网络协议的网络18上传输信息分组8或信息帧而与客户机10通信。例如,网络协议可以是传输控制协议/互联网协议(TCP/IP),因此,客户机10和服务器12能够分别实现例如象TCP/IP栈17和19这样的协议栈。对于客户机10(举例),TCP/IP栈17概念性地将客户机的软件和硬件协议功能划分成5个分级的层16(按分级的顺序列出):应用层16a(最高层)、传输层16b、网络层16c、数据链路层16d和物理层16e(最低层)。
更具体而言,物理层16e典型包括通过产生和接收指示组成分组8的比特的信号(在网线9上)来建立与网络18的物理通信的硬件(如网络控制器)。物理层16e识别比特而不识别分组,因为数据链路层16d完成了后一功能。按照这种方式,数据链路层16d就传输目的而言通常既是软件层也是硬件层,它能使客户机10把要传输的数据打包成分组8。再例如,为了接收分组8,数据链路层16d可以使客户机10通过测定入分组8是否基本符合预定格式,以及分组数据是否遵循循环冗余校验(CRC)码或分组的其他纠错码来确定入分组8的完整性。数据链路层16d还能实现地址过滤。
网络层16c典型为软件层,其负责分组8在网络18上的路由。按照这种方式,网络层16c典型地使客户机10来分配和解码互联网协议(IP)地址,该地址标识了耦合于网络18的实体,如客户机10和服务器12。传输层16b典型为软件层,其负责象两端点间可靠的数据传输这种工作,并能使用分组8的序列化、差错控制和一般流量控制来实现它。传输层16b可以使客户机10实现例如象TCP协议或用户数据报协议(UDP)这类特定的协议。应用层16a典型包含在执行时引起客户机10产生和接收分组8数据的网络应用。
参考图2,典型分组8可包含一个IP头标20,其指示了例如象分组8的源和目的IP地址这类信息。分组8可包含一个安全头标23,其指示分组8的安全协议(如IPSec协议)及其属性,分组8还可包含一个具体针对所用传输协议的传输协议头标22(如TCP或UDP协议头标)。例如,TCP协议头标可指出一个TCP目的端口和一个TCP源端口,它们唯一标识用于引起客户机10和服务器12传输并接收分组8的应用。分组8还可包含一个数据部分24,其内容由源应用提供;还可包含一个用于加密目的的尾部26。
参考图3,例如,TCP协议头标22a可包含一个指示TCP源端口地址的字段30和一个指示TCP目的端口地址的字段32。TCP协议头标22a的另一个字段34可指示一个用于将收到的相关流的分组连接在一起的序号。具有相同IP地址、传输层端口地址和安全属性的分组8都是同一个流的组成部分,而序号(下文所述的)则指出了某一个分组8在流中的次序。
按照这种方式,即使流的数据字节被分成流的不同分组8,该数据字节也能按顺序被进行编号。为了实现这一点,TCP协议头标22a的字段34可指示一个用以标识下一分组8的第一个字节号的序号。因此,如果某个分组8中最后一个数据字节具有的字节号为“1000”,那么此分组8的序号就是“1001”,由此指出流的下一个分组8的第一个字节。
TCP协议头标22a可包含一个指示头标22a长度的字段38、一个指示头标22a中字节校验和的字段44和一个指示控制与状态标志的字段40。例如,字段40可指出分组8是某个流的第一个还是最后一个分组8。再例如,字段40能够指出某个分组8是否携带了用于“握手”目的的确认信息。按照这种方式,确认分组典型地不(但可以)包含数据,并且流的接收端在其收到来自发送端的预定数目分组(例如2)之后发送一个确认分组。按照这种方式,发送端对确认分组的接收表示预定数目的分组被成功发送。TCP协议头标22a还可包含一个用以指示发送端在收到确认分组前所发送的最大字节数(被称为“窗口”)的字段43,该确认分组至少指出其中某些字节是被成功接收的。还可能存在其他字段,如校验和字段44和紧急指针字段42。紧急指针字段42指出从放置紧急数据的当前序号开始的偏移量。
例如,当客户机10的处理器执行有关传输层16b和网络层16c的软件时,该软件典型引起客户机10对协议头标22所指示的信息进行解析以便于分组8的额外处理。不过,软件的执行可能会引入阻碍分组8在客户机10和服务器12之间通信的时延。
因此不断存在解决上述一个或多个问题的需要。
简述
在本发明的一种实施方案中,一种供计算机系统使用的方法包括接收含有头标的分组。头标指示至少一种与协议栈的层相关的特性。利用网络控制器解析分组以提取该特性,并将此句柄(handle)从网络控制器开始进行传递以指示该特性。
在另一种实施方案中,采用了一种供计算机系统使用的设备,该计算机系统能执行协议栈软件以提取至少一个分组特性。该设备包括一个接口和一个电路。接口适于接收分组,且分组包含一个指明特性的头标。电路适于解析头标以提取分组特性而不必使计算机执行软件,并基于提取特性处理分组。
仍根据另一种实施方案,计算机系统包括一个处理器和一个外围设备。处理器适于执行网络堆栈的软件以提取分组的至少一个特性。分组含有指明此特性的头标。外围设备适于接收分组并对头标加以解析以提取特性。外围设备还适于基于提取特性至少局部地处理分组。
附图简述
图1是依据现有技术的一种计算机网络的示意图。
图2是图1所示网络上所传输的分组的示意图。
图3是关于图2分组协议头标的举例说明。
图4是依据本发明一种实施方案的计算机系统的示意图。
图5是图4网络控制器的示意图。
图6是对存储于图5网络控制器存储器中的流多元组的举例说明。
图7是依据本发明一种实施方案来说明分组数据传送的示意图。
图8是依据现有技术来说明分组数据在网络堆栈的层之间传送的示意图。
图9是说明通过图5网络控制器的接收解析器来解析分组数据的流程图。
图10和12是依据本发明的一种实施方案来说明图5网络控制器的零复制解析器操作的流程图。
图11是说明依据本发明一种实施方案的图5网络控制器操作的状态图。
详细描述
参考图4,按照本发明的一种计算机系统的实施方案50包含一个网络控制器52(如局域网(LAN)控制器),其通过至少一条网线53与其他网络计算机系统传送信息分组。与传统网络控制器不同的是,网络控制器52适合执行那些由处理器54(如中央处理单元(CPU))典型实现的功能,该处理器执行网络协议栈(如TCP/IP栈)中的一个或多个软件层(如网络层和传输层)。例如,这些功能可包括解析入分组头标以获取通过软件层的执行而被典型提取的(分组的)特性。
这些特性可依次标识一个将接收分组数据的应用。在这一语境下,术语“应用”通常指的是其中一个协议层(例如层1、2、3或4)上的某个用户。由于此标识是通过网络控制器52完成的,所以网络控制器52(而不是堆栈的软件层)能直接控制分组数据向有关该应用的某个缓冲器(在系统存储器56中)的传输。这样安排的结果是,网络控制器52和系统存储器56之间的数据传输可花费更少的时间并更有效地利用存储器空间,如下文进一步所述。
参考图5,网络控制器52可包含例如象接收路径92这种硬件来执行处理从网络接收的分组的功能。例如,接收路径92可包含一个接收解析器98,其用来解析每个分组的头标以提取该分组的特性,例如把某个流与该分组联系起来的特性。由于接收路径92可接收来自许多不同流的入分组,因此接收路径92可以包含一个存储器100,其存储着被称为流多元组140的条目。每个流多元组140唯一地标识一个将被网络控制器52解析的流。如下文进一步所述,可通过处理器执行驱动程序57来改变流多元组140所标识的流。
接收解析器98可按以下方式使用这个存储的流多元组140。首先,接收解析器98可与存储器100交互来对来自入分组的解析信息和流多元组140进行比较,以确定此进入流是否为流多元组140所标识的其中一个流,即接收解析器98确定是否出现“流多元组命中”。如果出现流多元组命中,接收解析器98便可以解析有关这个流的分组,并且(控制器52的)其他电路也可以基于这个被检测的流处理分组,如下文进一步所述。
还参考图6,每个流多元组140可含有标识某个流特性的字段。例如,在某些实施方案中,至少其中一个流多元组140能够和例如传输控制协议(TCP)、用户数据报协议(UDP)或实时传输协议相关联。流多元组140可包含一个指出互联网协议(IP)目的地址(即用来接收分组的计算机系统地址)的字段142;一个指出IP源地址(即用来发送分组的计算机系统地址)的字段144;一个指出TCP目的端口(即引起分组产生的应用地址)的字段146;一个指出TCP源端口(即接收分组的应用地址)的字段148;一个指出分组的安全/认证属性的字段150;以及一个安全参数索引(SPI)字段152,其可被计算机系统50用来标识一个安全的流。其他流多元组140可相关于其他网络协议,例如象用户数据报协议(UDP)。
在某些实施方案中,接收解析器98可使用流多元组140的一个子集来标识某个流。例如,在某些实施方案中,接收解析器98可以用字段142、150和152来标识流多元组命中。如下文进一步所述,字段142、144、146和148可被用来标识特殊类型的流,如零复制流。
以上对特殊网络协议的参考仅是作为示例,并非想限制本发明的范围。额外的流多元组140可被存储在存储器100中,而现有的流多元组140可通过处理器54执行驱动程序57而被从存储器100中删除。在某些实施方案中,存储器100还可存储信息字段141。每个字段141可相关于某个流多元组140,并能指出例如(为网络协议栈)对流进行标识的处理器和指向系统存储器56中某个缓冲器的指针,如下文进一步所述。
如果接收解析器98识别相关于入分组的流(通过流多元组140),则接收路径92可进一步处理该分组。在某些实施方案中,接收解析器98能够(向网络控制器52的其它电路,以及最终向网络协议栈)指示对相关于某个分组的流的识别及其他所检测的关于该分组的属性。
如果接收解析器98未识别流,则接收路径92通过外部元件互联(PCI)接口130将入分组传给计算机系统50的网络协议栈(如TCP/IP栈)的软件层进行处理。PCI规范可从The PCI Speical InterestGroup,Portland,Oregon 97214(PCI专业组,波特兰,俄勒冈97214)获得。可使用其他总线接口代替PCI接口130来将网络控制器52接口到PCI总线以外的其他总线上。在某些实施方案中,计算机系统50可执行一种提供至少部分协议栈的某些层(如网络和传输层)的操作系统。
在某些实施方案中,即使接收解析器98识别流,在接收路径92进一步处理入分组52之前还需要额外信息。例如,认证/加密引擎102可以基于由入分组的IP安全头标所指示的信息对该分组的数据部分进行认证和/或解密。按照这种方式,如果IP安全头标指出入分组的数据部分已被加密,那么引擎102可能需要密钥来对数据部分进行解密。
为了向引擎102提供密钥,网络控制器52可包含一个密钥存储器104,其存储着例如可能由不同相关的流索引的不同密钥。额外密钥可通过处理器执行驱动程序57而被存储在密钥存储器104中,现有密钥可通过处理器执行驱动程序57而被从密钥存储器104中删除。按照这种方式,如果引擎102确定某一解密密钥没有存储在密钥存储器104中,则该引擎102可以为该密钥向驱动程序57(见图4)提交一个请求(通过PCI接口130)。按照这种方式,当处理器54执行驱动程序57时就能引起处理器54提供密钥以响应请求,并与PCI接口130交互以将此密钥存入密钥存储器104中。在某些实施方案中,如果密钥无法获得(即密钥无法通过驱动程序57获得或者没有存在密钥存储器104中),则引擎102不对分组的数据部分进行解密。作为替换,PCI接口130将加密的数据存在系统存储器56的预定位置上(见图4),以便协议栈中的一层或多层软件能被执行用来解密入分组的数据部分。
解析完以后,网络控制器52对分组的处理可包括旁路执行与网络协议栈相关的一个或多个软件层。例如,接收路径92可包含一个零复制解析器110,其通过PCI接口130能够将有关分组的数据复制到与应用层相关的存储缓冲器304中(见图7)。按照这种方式,一个应用可以有一个或多个用于接收分组数据的相关缓冲器。操作系统在虚拟地址空间中产生和维护缓冲器304,并且操作系统为每个缓冲器304保留了多个4千字节(KB)的物理页面。操作系统还将每个缓冲器304与某个应用联系起来,以便该应用能够使用存在缓冲器304中的数据。
如下文所述,为实现分组数据从网络控制器52向缓冲器304的直接传输,操作系统使得处理器54(向网络控制器52)提供一个指向其中某一缓冲器304的指针。被指示的缓冲器304可以是应用为其专用而分配的缓冲器,或者是由操作系统传给网络控制器52用来和其中一个预定的、将被提供零复制服务的流联系起来的缓冲器。在后一种情况下,操作系统随后将缓冲器重新映射成应用的虚拟地址空间。零复制解析器110利用这种流句柄将帧与零复制缓冲器联系起来,并将数据直接复制到那个缓冲器中。上述关于将数据传至缓冲器304的安排可与利用中间缓冲器(相关于数据链路和/或传输层的)来从网络控制器向应用层缓冲器传送分组数据的传统安排相对照,正如下文所述的。
参考图8,例如,典型网络控制器300不直接将分组数据传至缓冲器304,因为典型网络控制器300不对入分组进行解析以获取标识流或目的应用的信息。作为替换,典型网络控制器300将分组的数据部分传给与数据链路层相关的分组缓冲器302。与缓冲器304相比,每个缓冲器302可具有近似(例如)1518字节的大小范围,也就是近似某个分组数据的大小范围。接下来,传输层的执行(由处理器54进行)将数据与适当的应用联系起来,并使数据从缓冲器302被传到缓冲器304。
回过来参考图7,与上述传统安排相比,网络控制器52可使用零复制解析器110来旁路缓冲器302,并将分组的数据部分直接复制到适当的缓冲器304中。要实现这一点,零复制解析器110(见图5)可以接收来自上述从头标提取TCP目的端口信息的接收解析器98的、一个关于(例如)TCP目的端口的指示。TCP(或其他层4协议,如RTP)目的端口唯一地标识了将要接收数据的应用,并因此为分组数据标识了适当的缓冲器304。除了向缓冲器304传送数据部分以外,零复制解析器110能够处理网络控制器52和协议栈之间的控制问题,并能处理入分组丢失的情况,如下所述。
零复制解析器可以使用流语境存储器112来存储流语境字段113,该字段指出了某个将在其中执行零复制的流。每个语境字段113可以和一个信息字段115(也存储在流语境存储器112中)联系起来,该字段指示了例如有关由流语境字段113指出的各种流的句柄以及其他信息,例如象地址信息。
参考图5,除上述组件以外,接收路径92还可包含一个或多个先入先出(FIFO)存储器106来临时存储通过接收路径92的入分组。校验和引擎108(属于接收路径92)可耦合于FIFO存储器106和PCI接口130之间以验证含在分组中的校验和。
可通过PCI接口130将接收路径92接口到PCI总线72上。PCI接口130可包含一个模拟的直接存储器存取(DMA)引擎131,其目的是用来将分组的数据部分直接传至缓冲器304或302(当未使用零复制时)。按照这种方式,零复制解析器110可用由DMA引擎131模拟的预定数目(例如16)的DMA通道之一将数据传到适当的缓冲器304中。在某些实施方案中,每个通道都可能相关于某个特定的缓冲器304。然而在某些实施方案中,当协议栈(而不是零复制解析器110)被用于传送分组的数据部分时,DMA引擎131可使用较小数目的通道(例如1)来进行这些传输。
在某些实施方案中,接收路径92可包含额外电路,如串行到并行转换电路96,当从网线53收到分组时,其可以接收来自网络接口90的串行比特流。按照这种方式,转换电路96将比特组成字节并将这些字节提供给接收解析器98。网络接口90可被耦合用来产生并接收去往/来自网线53的信号。
除了接收路径92以外,网络控制器52可包含其他的例如象传输路径94这样的硬件电路来向网络发送外出分组。在传输路径94中,网络控制器52可包含一个传输解析器114,其被耦合到PCI接口130上用来接收来自计算机系统50的出分组数据并形成分组上的头标。为了实现这一点,在某些实施方案中,传输解析器114在头标存储器116中存储着预定流的头标。由于某个流的头标可能指示相当多数量的相同信息(如端口和IP地址),因此传输解析器114可为每个出分组略加修改所存储的头标,并将修改后的头标组装到出分组中。例如,传输解析器114可以从头标存储器116中取回属于某个流的头标,然后对头标进行解析以便将(例如)序号和确认号这样的信息添加到出分组的头标中。校验和引擎120可以为出分组的IP和网络头标计算校验和并将此校验和加到分组中。
传输路径94还可包含一个认证与加密引擎126,其可以对出分组的数据进行加密和/或认证。按照这种方式,通过相关于某个流的密钥可以对该流的所有分组进行加密和/或认证,不同流的密钥可存储在密钥存储器124中。在某些实施方案中,新的密钥添加到密钥存储器124中,而现有密钥则可借助于控制分组字段,利用通过传输路径94传送的信息被修改或删除。传输路径94还可包含一个或多个FIFO存储器122用以同步通过传输路径94的分组流。为了对出分组数据进行串行传输,可以将并行到串行转换电路128耦合到FIFO存储器122上以取回准备要传输的分组。一旦被串行化,电路128便可将数据传给网络接口90以便经网线53进行传输。
在某些实施方案中,接收解析器98和零复制解析器110例如可包含一个或多个状态机、计数器和定时器来为每个入分组执行下列功能。在下文中,假设所描述的某个流是一个零复制流。不过在某些实施方案中,该流可以是也可以不是零复制流。参考图9,接收解析器98能够解析(方块200)每个入分组的头标。根据所解析的信息,接收解析器98能够确定此分组是否需要认证或解密,如菱形块201中所示。
如果需要认证或加密,那么接收解析器98可利用关于头标的解析信息来确定(菱形块216)是否出现了流多元组命中。如果没有发生,接收解析器98将控制传给完成分组结尾校验的零复制解析器110,如方块202中所述。否则,接收解析器98确定密钥存储器104中的相关密钥是否可用,如菱形块220所述。如果该密钥可用,则接收解析器98在向可执行分组零复制(如方块202中所示)的零复制解析器110传递控制之前便可开始进行如方块218中所示的分组认证和/或解密。如果密钥不可用,则接收解析器98可将控制传给零复制解析器110以执行零复制操作,如方块202中所示。
执行完零复制操作(方块202)以后,零复制解析器110可执行分组结尾校验,如方块204所示。在这些校验中,接收解析器98可执行与数据链路层典型相关的校验。例如,接收解析器98能够保证分组指示正确的以太网MAC地址、无循环冗余校验(CRC)错误发生、无接收状态错误(如冲突、超速、最小/最大帧长错误)发生,并且帧长大于最小字节数(如64)。接收解析器98可执行与网络层典型相关的校验。例如,接收解析器98能够校验IP分组头标的大小、计算IP头标的校验和、确定所计算的IP头标的校验和是否与IP头标所指示的校验和一致、确保分组指示正确的IP目的地址并确定此IP是否指明了所识别的网络协议(如TCP或UDP协议)。接收解析器98还可执行与通过处理器执行软件所实现的有关传输层的功能典型相关的校验。例如,接收解析器98能够确定协议头标的大小是否在预先规定的范围之内,能够计算协议头标的校验和,并且能够决定是否设置被称为ACK、URG、PSH、RST、FIN的标记和/或SYN标记。如果设置了PSH标记,则接收解析器98可将此事件指示给驱动程序。如果设置了RST、FIN或SYN标记,则接收解析器98可以将控制交给传输层。如果是发出ACK标记,则接收解析器98可与驱动程序57或传输路径94交互来传输确认分组,如下文进一步所述。
完成校验以后,零复制解析器110便能够确定(菱形块205)数据链路层是否发生了可导致分组不能用的错误。如果是这种情况,则零复制解析器110可以收回(方块205)驱动程序为分组分配的存储器,收回(方块207)为分组的零复制分配的存储器,并重新设置(方块209)与该分组有关的DMA通道(由DMA引擎131模拟的)。否则,零复制解析器110将为该协议栈来编辑一个错误统计堆栈。
参考图10,零复制解析器110可执行下列功能来执行零复制操作。首先,零复制解析器110可以确定存储数据的存储器地址,如下文进一步所述。然后,零复制解析器110可以确定(菱形决258)分组是否丢失,若是,则零复制解析器110为丢失的分组保留(菱形块260)存储器空间。随后,零复制解析器110执行(方块262)零复制操作将分组复制到存储器56中。
其次,零复制解析器110可更新对该流的接收分组计数(方块264)。然后零复制解析器110根据流中被接收的分组数决定是否到了向分组发送端回传确认分组的时间(菱形块266)。按照这种方式,如果该计数超过了预定的数目,则接收解析器98可以(依赖于某种实施方案)通知(方块268)驱动程序57(见图4)或通知(方块270)传输解析器114需要传输一个确认分组。因此,在后一种情况中,由于不需要来自应用层中数据部分的数据,所以传输解析器114适于产生确认分组。接收解析器98从方块268或270迁移至菱形块200(见图9)以检验另一个接收的分组。在确认分组被传输之后,接收解析器98可以将对于该流的已接收分组计数清零。
图11说明了接收路径92的按每个流的状态图,该图说明以同步方式进行的从堆栈到网络控制器52的控制传递。在网络协议栈相关的软件掌控对分组进行的解析和处理时,接收路径92处于空闲状态。不过,在某些实施方案中,尽管传输层能够通过处理器54执行对分组进行最初处理,但随后处理的控制可被传递给网络控制器52。按照这种方式,通过驱动程序57的执行,处理器54可与PCI接口130交互用以将接收路径92置于监视状态。
在监视状态下,接收解析器98检验与预定流相关的入分组的完整性(如流多元组140所示)并如上所述,指示检验结果。对于每个需要监视的预定流,存储器100可以存储一个有关这个流的信息字段141。例如,信息141能够指出向该网络堆栈指示某流的句柄、TCP序列号(例如)和到适当的网络层缓冲器302的指针(当未使用零复制时)。如果接收解析器98需要到另一缓冲器302的指针,那么接收解析器98可通知驱动程序57(处于获取下一个缓冲器1状态),该驱动程序进而提供到下一个缓冲器302的指针,作为响应,接收解析器98可以更新相关字段141。获取下一个缓冲器1状态与缓冲器304有关,且被用于当使用零复制时的情况。这种状态机和这种特殊的状态迁移在某些实施方案中不能使用。堆栈还可以告诉网络控制器52从序号X或大于X和从相应于该X的存储器地址Y开始进行零复制,从而取消了此同步过程。
如果零复制解析器98(通过使用流语境指示113)检测到来自某个流的分组将要进行零复制,网络控制器52则迁移到零复制状态。在零复制状态下,零复制解析器98利用与每个零复制流相关的信息字段115来标识信息,例如传给网络堆栈的句柄(用于标识流)和到适当的应用缓冲器304的指针。如果需要到另一缓冲器304的指针,那么零复制解析器98从驱动程序57那里请求另一个指针。作为响应,驱动程序57(处于获取下一个缓冲器2状态)将指针的表示传给网络控制器52以便为零复制解析器110所用。在其他实施方案中,应用或堆栈的职责是为零复制流提供足够的缓冲器。在某些实施方案中,倘若网络控制器52用尽缓冲器,那么网络控制器52使用基于软件的接收程序。零复制解析器110作为响应可以更新信息字段115。
在某些实施方案中,驱动程序57能够引起处理器54退出监视状态或零复制状态而返回到空闲状态。驱动程序57能够引起处理器54与PCI接口131交互以向/从存储器112中添加/删除某个流语境指示113,还能使处理器54向/从流存储器100中添加/删除某个流多元组140。
参考图12,在执行零复制操作过程中,零复制解析器可执行下列功能将分组数据直接传送给缓冲器304。首先,零复制解析器110能够确定是否需要在零复制解析器110和与网络协议栈的层(如数据链路层和传输层)相关的软件执行之间同步传输控制。在这种语境中,术语“同步”通常是指为了确定其中一个实体(堆栈或零复制解析器110)从另一个实体取回控制并开始将数据传至缓冲器304处的一个迁移点而在堆栈和零复制解析器110之间进行的通信。不进行同步就不能检测到丢失的分组。因此,当控制从堆栈传到解析器110时(反之亦然),可能需要发生同步,如方块254所述。
因此,一种可能需要同步的情况是在零复制解析器110最初接管直接将数据部分传至缓冲器304功能的时候。按照这种方式,如果零复制解析器110确定(菱形块250)当前分组是零复制解析器110处理的第一个分组,则解析器110对分组存储进行同步,如方块254所述。否则,零复制解析器110将确定(菱形块252)是否有错误发生,如下所述。例如,为了确定迁移发生的时间,零复制解析器110可不断监视由驱动程序57有选择地设置的比特的状态。另一种需要同步的情况是在零复制解析器110将分组数据复制到缓冲器304时有错误发生的时候。例如,由于这个错误,堆栈可在零复制解析器110收回控制前临时恢复对传输的控制。因此,如果零复制解析器110确定(菱形块252)有错误发生,则零复制解析器110可迁移到方块254。
同步可以以多种方式发生。例如,零复制解析器110可将预定的代码插入到某个分组状态信息内,用以向堆栈指明由零复制解析器110处理后续分组的传输。堆栈可以完成同样的操作。
某个流的入分组有时可被无顺序地接收。这可能会产生问题,因为零复制解析器110能够将来自顺序分组的数据一个接一个地存入某个缓冲器304中。例如,分组号“267”可能在分组号“266”之前被接收,如果分组号“267”的数据在分组号“265”的数据之后被立即存储,这就可能会引起问题。为了避免这种情况发生,在某些实施方案中,零复制解析器110可以在某个缓冲器304中为丢失的分组数据保留一块区域308(见图7),如方块260所示(见图11)。为了确定丢失分组的大小(由此确定要保留的存储器空间的量),零复制解析器110可以使用由序列中相邻分组所指明的序号。按照这种方式,该序号指出下一个连续分组的字节号。因此,对于上述实例,分组号“265”和“267”所指示的确认号可被用来确定区域308的边界。
零复制解析器110随后与PCI接口130交互来建立适当的DMA通道,以执行分组数据到适当缓冲器304的零复制(步骤262)。零复制解析器110通过接收解析器98提供的目的端口来确定适当的缓冲器304。
回过来参考图4,除网络控制器52以外,计算机系统50可包含一个耦合于主机总线58的处理器54。在这个语境中,术语“处理器”例如通常可以表示一个或多个中央处理单元(CPU)、微控制器或微处理器(如X86微处理器、奔腾微处理器或高级RISC控制器(ARM))。此外,短语“计算机系统”可以表示任何类型的基于处理器的系统,例如该系统可包括台式计算机、膝上型计算机、仪表或机顶盒。因此,本发明并不受限于所描述的计算机系统50,而是计算机系统50只是本发明众多实施方案中其中一种
实施方案的一个实例。
主机总线58可通过桥或存储集线器60耦合到加速图形端口(AGP)总线62上。在Accelerated Graphics Port InterfaceSpecification,Revision 1.0,published in July 31,1996,by IntelCorporation of Santa Clara,California(加速图形端口接口规范,版本1.0,1996年7月31日出版,英特尔公司,Santa Clara,加利福尼亚)中对AGP作了详细描述。例如,AGP总线62可被耦合到控制指示器65的视频控制器64上。存储集线器60还可将AGP总线62和主机总线58耦合到存储总线61上。存储总线61又可被耦合到系统存储器56上,该系统存储器例如可存储缓冲器304和驱动程序57的一个副本。
存储集线器60还可被耦合到(通过集线器链路66)另一个桥,或者说是输入/输出(I/O)集线器68上,该集线器68耦合于I/O扩展总线70和PCI总线72。I/O集线器68还可耦合到如CD-ROM驱动器82和硬盘驱动器84。例如,I/O扩展总线70可耦合到I/O控制器74上,该控制器控制着软盘驱动器76的操作并接收来自键盘78和鼠标80的输入数据。
其他实施方案也在下列权利要求的范围之内。例如,除网络控制器以外的外围设备也能实现上述技术。还可以使用其他的网络协议和其他协议栈。
尽管本发明只相对有限数量的实施方案公开,但本领域中那些得益于本公开内容的技术人员将会理解还存在大量的改进方案和由此而改变的方案。希望附加的权利要求能覆盖在本发明的精神与范围之内的所有改进和变化。

Claims (20)

1.一种供计算机系统使用的方法,包括:
接收含有头标的分组,该头标表明了与协议栈的层相关的至少一种特性;
使用网络控制器解析分组以提取上述至少一个特性;以及
传递来自网络控制器的一个句柄以指示上述至少一个特性。
2.权利要求1的方法,其中传递过程包括:
向协议栈的另一个层传递该句柄。
3.权利要求1的方法,其中所述的至少一个特性包括:
相关于某个应用程序的端口号。
4.权利要求1的方法,其中该层包括数据链路层。
5.权利要求1的方法,其中所述的至少一个特性包括:
分组类型。
6.权利要求1的方法,其中该句柄将分组和流联系起来。
7.权利要求1的方法,进一步包括:
根据上述至少一个特性有选择地传输确认分组。
8.权利要求1的方法,进一步包括:
根据上述至少一个特性把与分组有关的数据存入应用执行所使用的存储器区域中。
9.权利要求1的方法,其中该层包括传输层。
10.权利要求1的方法,其中接收动作包括:
接收来自网络的分组。
11.权利要求1的方法,进一步包括:
判定对于该分组某个安全密钥是否可用;以及
根据此判定处理分组。
12.权利要求11的方法,其中处理动作包括:
解密分组数据。
13.权利要求11的方法,其中处理动作包括:
加密分组数据。
14.权利要求11的方法,进一步包括:
使用上述至少一个特性来检验该分组的完整性。
15.一种供计算机系统使用的设备,该计算机系统能执行协议栈软件以提取分组的至少一个特性,该设备包括:
一个适于接收分组的接口,该分组含有一个指示上述至少一个特性的头标;以及
一个电路,其适于:
解析头标以提取该分组的上述至少一个特性而不引起计算机系统执行软件,以及
根据提取的特性处理分组。
16.权利要求15的设备,其中所述的至少一个特性包括:
相关于某个应用程序的端口号。
17.权利要求15的设备,其中所述的至少一个特性包括:
相关于该分组的安全属性。
18.权利要求15的设备,其中所述的至少一个特性包括:
分组类型。
19.权利要求15的设备,其中电路还进一步适于:
使用上述至少一个特性来将分组和流联系起来。
20.权利要求15的设备,其中电路还进一步适于:
判定对于该分组某个安全密钥是否可用;以及
进一步根据此判定处理分组。
CN00813564A 1999-07-30 2000-06-16 解析分组头标 Pending CN1377548A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/364,096 US6427169B1 (en) 1999-07-30 1999-07-30 Parsing a packet header
US09/364096 1999-07-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100090573A Division CN100479437C (zh) 1999-07-30 2000-06-16 解析分组头标的方法和计算机系统

Publications (1)

Publication Number Publication Date
CN1377548A true CN1377548A (zh) 2002-10-30

Family

ID=23432993

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2006100090573A Expired - Fee Related CN100479437C (zh) 1999-07-30 2000-06-16 解析分组头标的方法和计算机系统
CN00813564A Pending CN1377548A (zh) 1999-07-30 2000-06-16 解析分组头标

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2006100090573A Expired - Fee Related CN100479437C (zh) 1999-07-30 2000-06-16 解析分组头标的方法和计算机系统

Country Status (6)

Country Link
US (1) US6427169B1 (zh)
EP (1) EP1203478A2 (zh)
CN (2) CN100479437C (zh)
AU (1) AU5746600A (zh)
CA (1) CA2380319C (zh)
WO (1) WO2001010096A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100369012C (zh) * 2005-08-19 2008-02-13 英业达股份有限公司 计算机通信接口传输控制码解析方法及系统
CN1894924B (zh) * 2003-12-19 2011-06-08 英特尔公司 用于组合分组的方法、装置、系统和产品
CN102427446A (zh) * 2004-11-16 2012-04-25 英特尔公司 分组合并

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US7042898B2 (en) 1997-10-14 2006-05-09 Alacritech, Inc. Reducing delays associated with inserting a checksum into a network message
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US8621101B1 (en) * 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US7237036B2 (en) * 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6658480B2 (en) 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
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
US6807581B1 (en) 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6256620B1 (en) * 1998-01-16 2001-07-03 Aspect Communications Method and apparatus for monitoring information access
US6298356B1 (en) * 1998-01-16 2001-10-02 Aspect Communications Corp. Methods and apparatus for enabling dynamic resource collaboration
US7664883B2 (en) 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
US6714964B1 (en) * 1999-11-12 2004-03-30 Mimeo.Com System, method and recordable medium for printing services over a network
US7095519B1 (en) * 1999-11-12 2006-08-22 Mimeo.Com, Inc. System, method and recordable medium for uploading documents over a network
US8281237B1 (en) 1999-11-12 2012-10-02 Mimeo.Com, Inc. System, method and recordable medium for printing services over a network and graphical user interface
US6999424B1 (en) 2000-01-24 2006-02-14 Ati Technologies, Inc. Method for displaying data
US6763390B1 (en) 2000-01-24 2004-07-13 Ati Technologies, Inc. Method and system for receiving and framing packetized data
US7366961B1 (en) 2000-01-24 2008-04-29 Ati Technologies, Inc. Method and system for handling errors
US8284845B1 (en) 2000-01-24 2012-10-09 Ati Technologies Ulc Method and system for handling data
US6785336B1 (en) 2000-01-24 2004-08-31 Ati Technologies, Inc. Method and system for retrieving adaptation field data associated with a transport packet
US6804266B1 (en) 2000-01-24 2004-10-12 Ati Technologies, Inc. Method and apparatus for handling private data from transport stream packets
US6778533B1 (en) 2000-01-24 2004-08-17 Ati Technologies, Inc. Method and system for accessing packetized elementary stream data
US6885680B1 (en) 2000-01-24 2005-04-26 Ati International Srl Method for synchronizing to a data stream
US6988238B1 (en) 2000-01-24 2006-01-17 Ati Technologies, Inc. Method and system for handling errors and a system for receiving packet stream data
US7437428B1 (en) * 2000-02-16 2008-10-14 Microsoft Corporation System and method for transferring data over a network
US6920110B2 (en) * 2001-02-14 2005-07-19 Microsoft Corporation System and method for transferring data over a network
US7000034B2 (en) * 2000-03-02 2006-02-14 Agere Systems Inc. Function interface system and method of processing issued functions between co-processors
US6988235B2 (en) * 2000-03-02 2006-01-17 Agere Systems Inc. Checksum engine and a method of operation thereof
JP2001285400A (ja) * 2000-03-29 2001-10-12 Kddi Corp トラヒック統計情報収集方法
US7054279B2 (en) * 2000-04-07 2006-05-30 Broadcom Corporation Method and apparatus for optimizing signal transformation in a frame-based communications network
US6674805B1 (en) 2000-05-02 2004-01-06 Ati Technologies, Inc. System for controlling a clock signal for synchronizing a counter to a received value and method thereof
KR100358518B1 (ko) * 2000-07-03 2002-10-30 주식회사 지모컴 임베디드 하드웨어와 범용 컴퓨터가 결합된 방화벽 시스템
US7165175B1 (en) * 2000-09-06 2007-01-16 Widevine Technologies, Inc. Apparatus, system and method for selectively encrypting different portions of data sent over a network
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6720074B2 (en) * 2000-10-26 2004-04-13 Inframat Corporation Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof
US7095945B1 (en) 2000-11-06 2006-08-22 Ati Technologies, Inc. System for digital time shifting and method thereof
US7039717B2 (en) * 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
EP1233346A1 (de) * 2001-02-14 2002-08-21 Micronas GmbH Netzwerk-Co-Prozessor für Kraftfahrzeuge
US20020181507A1 (en) * 2001-06-01 2002-12-05 Jones Clifton T. System and method of incremental parsing
US7860120B1 (en) 2001-07-27 2010-12-28 Hewlett-Packard Company Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US20030023739A1 (en) * 2001-07-28 2003-01-30 Lan Ngoc Vu System and method for multi-tier multi-casting over the Internet
US20030121835A1 (en) * 2001-12-31 2003-07-03 Peter Quartararo Apparatus for and method of sieving biocompatible adsorbent beaded polymers
US7421515B2 (en) * 2002-01-17 2008-09-02 Hewlett-Packard Development Company, L.P. Method and system for communications network
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US20030185220A1 (en) * 2002-03-27 2003-10-02 Moshe Valenci Dynamically loading parsing capabilities
US20030195973A1 (en) * 2002-04-11 2003-10-16 Raymond Savarda Methods, systems, and computer program products for processing a packet with layered headers using a data structure that positionally relates the layered headers
DE60229885D1 (de) * 2002-04-17 2008-12-24 Nokia Corp Verfahren und netzwerkeinrichtung zur synchronisation von durch einen router gerouteten datenbankdaten
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US9479464B1 (en) * 2002-08-27 2016-10-25 Hewlett Packard Enterprise Development Lp Computer system and network interface with hardware based packet filtering and classification
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
WO2004021626A2 (en) * 2002-08-30 2004-03-11 Broadcom Corporation System and method for handling out-of-order frames
US7551575B1 (en) 2002-11-05 2009-06-23 Marvell Israel (M.I.S.L.) Ltd. Context-switching multi channel programmable stream parser
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
US20050060420A1 (en) * 2003-09-11 2005-03-17 Kovacevic Branko D. System for decoding multimedia data and method thereof
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US7899913B2 (en) 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7957379B2 (en) 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US7903687B2 (en) 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US7586936B2 (en) 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US20060221953A1 (en) * 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US7881332B2 (en) * 2005-04-01 2011-02-01 International Business Machines Corporation Configurable ports for a host ethernet adapter
US7606166B2 (en) * 2005-04-01 2009-10-20 International Business Machines Corporation System and method for computing a blind checksum in a host ethernet adapter (HEA)
US7508771B2 (en) * 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)
US7577151B2 (en) * 2005-04-01 2009-08-18 International Business Machines Corporation Method and apparatus for providing a network connection table
US7706409B2 (en) 2005-04-01 2010-04-27 International Business Machines Corporation System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA)
US7492771B2 (en) 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
TWI283977B (en) * 2005-12-16 2007-07-11 Ind Tech Res Inst Adaptive interrupts coalescing system with recognizing minimum delay packets
CN100576822C (zh) 2006-08-23 2009-12-30 上海贝尔阿尔卡特股份有限公司 无线通信网络中的数据传输及解析方法及其装置
WO2008057974A2 (en) * 2006-11-02 2008-05-15 Ocean Broadband Networks, Inc. Passive optical network system management
US7843919B2 (en) * 2008-03-20 2010-11-30 International Business Machines Corporation Ethernet virtualization using a network packet alteration
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
WO2009130906A1 (ja) * 2008-04-25 2009-10-29 パナソニック株式会社 通信装置及び通信方法
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
CN101958838B (zh) * 2010-10-14 2012-08-22 联动优势科技有限公司 数据访问方法及装置
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US8929373B2 (en) * 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8713234B2 (en) 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US9282173B2 (en) 2012-02-17 2016-03-08 Viavi Solutions Inc. Reconfigurable packet header parsing
CZ303954B6 (cs) * 2012-04-17 2013-07-10 CESNET, zájmové sdruzení právnických osob Zapojení pro rychlou analýzu hlavicek paketu prenásených po datové sbernici
US9614891B1 (en) * 2013-09-23 2017-04-04 Amazon Technologies, Inc. Assembling communications based on captured packets
US20170099119A1 (en) * 2015-10-02 2017-04-06 Samsung Electronics Co., Ltd. Signalling of checksum for 802.11 mac headers
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
DE69125756T2 (de) * 1990-06-29 1997-12-18 Digital Equipment Corp Verfahren und Einrichtung zur Entschlüsselung eines Informationspakets mit einem modifizierbaren Format
US5235644A (en) * 1990-06-29 1993-08-10 Digital Equipment Corporation Probabilistic cryptographic processing method
US5500860A (en) * 1991-06-14 1996-03-19 Digital Equipment Corporation Router using multiple hop redirect messages to enable bridge like data forwarding
US5228083A (en) * 1991-06-28 1993-07-13 Digital Equipment Corporation Cryptographic processing in a communication network, using a single cryptographic engine
GB9326476D0 (en) * 1993-12-24 1994-02-23 Newbridge Networks Corp Network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1894924B (zh) * 2003-12-19 2011-06-08 英特尔公司 用于组合分组的方法、装置、系统和产品
CN102427446A (zh) * 2004-11-16 2012-04-25 英特尔公司 分组合并
CN102427446B (zh) * 2004-11-16 2015-01-14 英特尔公司 分组合并
US10652147B2 (en) 2004-11-16 2020-05-12 Intel Corporation Packet coalescing
CN100369012C (zh) * 2005-08-19 2008-02-13 英业达股份有限公司 计算机通信接口传输控制码解析方法及系统

Also Published As

Publication number Publication date
CN1819555A (zh) 2006-08-16
CA2380319C (en) 2005-11-01
WO2001010096A3 (en) 2001-08-30
AU5746600A (en) 2001-02-19
EP1203478A2 (en) 2002-05-08
CA2380319A1 (en) 2001-02-08
WO2001010096A2 (en) 2001-02-08
CN100479437C (zh) 2009-04-15
US6427169B1 (en) 2002-07-30

Similar Documents

Publication Publication Date Title
CN100479437C (zh) 解析分组头标的方法和计算机系统
US7159030B1 (en) Associating a packet with a flow
US6728265B1 (en) Controlling frame transmission
CN102427446B (zh) 分组合并
US6449656B1 (en) Storing a frame header
US8255600B2 (en) Method and system for interlocking data integrity for network adapters
US6728929B1 (en) System and method to insert a TCP checksum in a protocol neutral manner
US7298746B1 (en) Method and system for reassembling and parsing packets in a network environment
US7653754B2 (en) Method, system and protocol that enable unrestricted user-level access to a network interface adapter
US20130007296A1 (en) Zero Copy Acceleration for Session Oriented Protocols
EP2629459A2 (en) Avionics full-duplex switched ethernet network
CN101053234A (zh) 精确有限自动机(dfa)处理
JP4743894B2 (ja) データ・パケットを伝送しながらセキュリティを改良するための方法及び装置
CA2687695C (en) Method and system for detecting data modification within computing device
JPH11143845A (ja) ネットワークノード間のメッセージ送信用システム及び方法
CN1406351A (zh) 快速分组过滤与处理系统、装置及方法
JP2006325054A (ja) Tcp/ip受信処理回路及びそれを具備する半導体集積回路
CN1921394A (zh) 基于自治系统互联关系的真实IPv6源地址验证方法
CN1826768A (zh) 利用动态资源分配进行的大规模排队的可扩展方法
RU2708031C1 (ru) Способ отправки передаваемых данных от передающего устройства к приемному устройству для обработки передаваемых данных, а также средство для осуществления способа
US20110258444A1 (en) Network Controller Decryption
CN1961559A (zh) 校验数据完整性
WO2020146910A1 (en) System and method for accelerating iscsi command processing
EP1049292A2 (en) System and method for network monitoring
CN1223137C (zh) 验证数据安全传输的方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1050600

Country of ref document: HK