CN108599907A - 网络接口控制器 - Google Patents

网络接口控制器 Download PDF

Info

Publication number
CN108599907A
CN108599907A CN201810295222.9A CN201810295222A CN108599907A CN 108599907 A CN108599907 A CN 108599907A CN 201810295222 A CN201810295222 A CN 201810295222A CN 108599907 A CN108599907 A CN 108599907A
Authority
CN
China
Prior art keywords
verification
module
network interface
interface controller
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810295222.9A
Other languages
English (en)
Other versions
CN108599907B (zh
Inventor
惠志强
王晶洋
邵尉
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.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
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 Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201810295222.9A priority Critical patent/CN108599907B/zh
Priority to US16/141,985 priority patent/US10771364B2/en
Publication of CN108599907A publication Critical patent/CN108599907A/zh
Priority to US16/159,719 priority patent/US11082318B2/en
Priority to US16/364,204 priority patent/US10735290B2/en
Application granted granted Critical
Publication of CN108599907B publication Critical patent/CN108599907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • 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/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Landscapes

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

Abstract

本发明提供一种网络接口控制器,包括接收模块、边界判定模块、第一校验和计算模块及第二校验和计算模块。接收模块接收数据包,其中数据包包括第一层协议的域段及第二层协议的域段。边界判定模块对数据包进行边界判定操作以生成边界信息,其中边界信息包括第二层协议的域段的长度和边界指示信号。第一校验和计算模块在接收到第二层协议的域段的长度后,完成对应于第一层协议的域段的第一校验和的计算。第二校验和计算模块在收到边界指示信号后,开始计算对应于第二层协议的域段的第二校验和。

Description

网络接口控制器
技术领域
本发明是有关于一种网络接口控制器,且特别是有关于一种对数据包进行校验和计算的网络接口控制器。
背景技术
请参照图1,其是已知的一主机内部硬件示意图。如图1所示,一般的主机可包括中央处理单元(central processing unit,CPU)、北桥(north bridge,NB)、南桥(southbridge,SB)及动态随机存取存储器(dynamic random access memory,DRAM)等存储单元,其中,北桥和南桥可能会集成于同一芯片组(chipset)。SB可包括通用串行总线(universalserial bus,USB) 及网络接口控制器(network interface controller,NIC)等硬件,其中,网络接口控制器可对其接收到的数据(例如,从其他主机传来的“IP+TCP”数据包或“IP+UDP”数据包)进行处理。
以图2为例,其是NIC及其相关传输接口的示意图。在图2中,NIC包括了核心(core)模块及悬置(suspend)模块,可对其接收到的、经由物理层(physical layer,PHY)模块及数模转换(PAD)模块处理后的、通过接收端总线(RX bus)传输的、来自其他主机的数据进行处理。例如,NIC可校验其所接收的数据是否有误。
为了提升NIC所接收的数据包的可靠度,数据包中一般会存在一个校验和域段(segment),用以让收发的双方能够据以验证数据包的正确性。NIC 在接收到每个数据包之后皆需对其进行校验,例如,利用校验和域段来验证数据包是否可靠。但在现有技术下,NIC在对数据包中的有效载荷进行校验和的计算后才对虚拟首部进行校验和的计算(此过程会一直占用校验和计算模块),然后,再将校验和结果上报给上层硬件模块(例如,接收端状态机)。这样,校验和的计算会一直占用NIC的资源,造成NIC不能及时地对接收下一个数据包,更不能及时和准确地对下一个数据包进行校验和的计算。因此,若能提升校验和域段中校验和的计算效率的话,势必能提升NIC对数据包整体的校验效率和接收的及时性。
发明内容
有鉴于此,本发明提出一种网络接口控制器,其可在接收到以太数据包中的虚拟首部时,以边接收边对虚拟首部进行校验和运算的方式,可以提前进行校验和的计算。藉此,可提高对整个数据包进行校验和计算的效率,从而提升NIC对数据包整体的校验和接收的及时性。
本发明提供一种网络接口控制器,包括接收模块、边界判定模块、第一校验和计算模块及第二校验和计算模块。接收模块,接收数据包,其中数据包包括第一层协议的域段及第二层协议的域段。边界判定模块,对数据包进行边界判定操作以生成边界信息,其中边界信息包括第二层协议的域段的长度和边界指示信号。第一校验和计算模块,耦接边界判定模块,在接收到第二层协议的域段的长度后,完成对应于第一层协议的域段的第一校验和的计算。第二校验和计算模块耦接边界判定模块,在收到边界指示信号后,开始计算对应于第二层协议的域段的第二校验和。
基于上述,本发明提出的网络接口控制器可利用额外设置的第一校验和计算模块来计算对应于第一层协议的域段的第二数据的第一校验和,从而能够以较佳的效率得到数据包的验证结果。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是已知的一主机内部硬件示意图。
图2是NIC及其相关传输接口的示意图。
图3A是本发明之一实施例的NIC示意图。
图3B是图3A的NIC运作示意图。
图4是依据图3A及图3B图示的信号时序的一个示意图。
图5A是本发明之一实施例的NIC示意图。
图5B是图5A的NIC运作示意图。
图6是依据图5A及图5B图示的信号时序的示意图。
具体实施方式
请参照图3A及图3B,其中图3A是本发明之一实施例的NIC示意图,而图3B是图3A的NIC运作示意图。如图3A所示,NIC 300包括拼接模块310 及校验和模块320。在一实施例中,拼接模块310及校验和模块320可设置于一接收端中,该接收端可设置在图2的悬置模块中。这样,当嵌入了该NIC 的主机处于休眠状态或低功耗状态下,该NIC中的接收端仍能工作,如对接收到的数据包进行校验,但本发明不限于此。此外,该接收端也可以设置在核心模块中。在一实施例中,图2的悬置模块可包括媒体访问控制(medium access control,MAC)模块,而拼接模块310及校验和模块320可设置于 MAC模块中的接收端中。更详细而言,该媒体访问控制模块可以是一千兆比特媒体访问控制GMAC(gigabit MAC)模块。在一些实施例中,网络接口控制器可能集成在一芯片组中,也可以嵌入在一主机中,其中,该主机是指可进行网络通信的电子设备,例如,笔记本计算机。在一实施例中,网络接口控制器可以是一网络适配器(Network Interface Card,NIC,一般也可称之为“网卡”),更详细而言,可以是一千兆比特网络适配器(Gigabit Network Interface Card,GNIC),但本发明不限于此。以下即搭配图3B作进一步的说明。
请参照图3B,由于GMII所传输数据的位宽(bit width)为8比特,而后续在计算校验和时是以2字节(即,16比特)为单位进行,因此拼接模块310 自一网络接口,例如从千兆比特媒体独立接口(gigabit media independent interface,GMII)取得第一数据D1后,可将第一数据D1拼接为第二数据 D2,但本发明不限于此。例如,当网络接口的位宽为2字节时,网络接口控制器也可能不包括拼接模块310,又如,校验和模块320也可不以2字节为单位进行计算校验和。
在本实施例中,第一数据D1可来自于一以太数据包,而此以太数据包可依NIC 300所使用的通信协议而具有不同的格式,具体说明如下。
在其他实施例中,前述网络接口控制器还可包括地址解析模块。当网络接口控制器接收到以太数据包时,地址解析模块可提取此以太数据包中的以太目的地址域段,并将此以太目的地址域段与嵌入了该网络接口控制器的一主机的本地地址(例如是MAC地址)比较。当以太目的地址不匹配于主机的本地地址时,地址解析模块可忽略以太数据包。相反地,当以太目的地址匹配于主机的本地地址时,网络接口控制器将接收以太数据包中的多个第一数据D1,并将多个第一数据D1转发予拼接模块310。
在一实施例中,以太数据包中的第二层协议的域段可包括于第一层协议的有效载荷(payload)中。亦即,第二层协议为第一层协议的上层协议。举例而言,第一层协议可为互联网协议(Internet protocol,IP),例如IP第四版(IPV4)或IP第六版(IPV6)。此外,第二层协议为传输控制协议 (transmission control protocol,TCP)或用户数据包协议(userdatagram protocol,UDP)。因应于IP/TCP及IP/UDP这两种传输方式,其对应的以太数据包也具有不同的格式,而以下的表1及表2即为两个例示性的格式。
表1(IPV6+TCP)
表2(IPV6+UDP)
如以上所标示的,表1及表2分别是在不具有扩展首部(extension header)情况下的“IPV6+TCP”及“IPV6+UDP”的数据包格式,而其中各个域段的意思可参照IEEE 802.3规格书的内容,表格中也保留原文以利查找,而其个别的具体意涵在此不另赘述。
如表1所示,表1包括了第一层协议(即,IP)的域段及第二层协议(即, TCP)的域段,其中TCP的域段包括于IP的有效载荷中。相似地,表2亦包括了第一层协议(即,IP)的域段及第二层协议(即,UDP)的域段,其中 UDP的域段包括于IP的有效载荷中。为便于说明,以下皆以TCP作为第二层协议的实例,而本领域技术人员应可基于以下教导相应地推得以UDP作为第二层协议的相关实施方式。
在拼接模块310将多个第一数据D1(其位宽例如是8比特)拼接为第二数据D2(其位宽例如是16比特)之后,校验和模块320可接续计算对应于 TCP域段的第二数据D2的校验和(即,载荷校验和,是对TCP首部及TCP有效载荷域段中的数据进行校验和的计算结果)。并且,在得到载荷校验和之后,校验和模块320可再将此载荷校验和与下表3所示的虚拟首部(pseudo header)的内容进行累加运算,以得到验证结果,而此验证结果可指出网络接口控制器是否已正确地接收以太数据包(若验证结果皆为0即代表已正确接收以太数据包,否则即代表未正确接收以太数据包,或接收到的以太数据包有误)。
表3(虚拟首部)
在一实施例中,校验和模块320可先将第二数据D2中对应于表1中的“Source IPAd”(来源IP地址)、“Des IP Ad”(目的IP地址)及“NxtHeader” (下一首部域段)等域段的内容分别填入(即,套用至)表3中的“来源IP 地址”、“目的IP地址”及“下一首部”中。接着,校验和模块320可在计算出“上层协议域段的长度”的内容之后,将其填入表3。在不同的实施例中,由于计算“上层协议域段的长度”内容即可得知IP域段及TCP域段之间的边界,故其相关的计算操作可称为边界判定操作,但可不限于此。
在一实施例中,假设校验和模块320所考虑的是“IPV6+TCP”的数据包格式,且其中不具有扩展首部的话,则“上层协议的域段的长度”可参考表1而直接从第二数据D2中取得。具体而言,在不具有扩展首部的情况下,IP的有效载荷长度即为TCP(即,IP的上层协议)的域段长度,而校验和模块320 可直接从第二数据D2中对应于表1的“Payload Length”的域段取得IP的有效载荷长度,并可接续将其填入表3的“上层协议的域段的长度”中。亦即,校验和模块320可直接以IP的有效载荷的长度作为TCP的域段的长度。
在另一实施例中,假设校验和模块320所考虑的是具有一或多个扩展首部的“IPV6+TCP”的数据包格式(如下表4所示),则校验和模块320可将IP 的有效载荷的长度减去各扩展首部的长度来计算TCP的域段长度。
表4
请参照上表4,其例如是包括两种扩展首部的“IPV6+TCP”的数据包格式。相似于先前实施例,表4中的各个域段的意思可参照IEEE 802.3规格书的内容,在此不另赘述。
在表4的例子中,校验和模块320可从第二数据D2中对应于表4的“PayloadLength”的域段取得IP的有效载荷长度,并以其减去各扩展首部的长度来计算TCP的域段的长度,其细节可参照IEEE 802.3规格书,在此不另赘述。
在依据上述教导计算出“上层协议域段的长度”的内容之后,校验和模块320可生成一边界指示信号,并相应地将“上层协议域段的长度”的内容填入表 3。
在将所需的内容皆填入表3之后,校验和模块320可将表3的内容与TCP 首部及TCP有效载荷的校验和(即,载荷校验和)相加,以得到验证结果。在一实施例中,计算载荷校验和的过程例如包括:(1)TCP首部及TCP有效载荷对应的第二数据D2以16比特(即,2字节)为单位进行分组;(2)计算的过程就是对这些16比特的二进制数进行带循环进位的加法,即相加之后如果最高位有进位的话循环进到最低位上(1的补码和运算);(3)累加之后,所得的结果再取反码,即可得到TCP首部及TCP有效载荷的校验和。
接着,校验和模块320可将表3的内容以16比特(即,2字节)为单位与TCP首部及TCP有效载荷的校验和再累加以计算验证结果。
由上可知,校验和模块320将先计算TCP首部及TCP有效载荷的校验和,再将此校验和与虚拟首部的内容累加以得到验证结果。假设虚拟首部的长度为40个字节,则将虚拟首部累加至载荷校验和的过程将至少耗时20个周期 (以每个周期累加2字节为例)。在实际应用中,两个相邻的数据包之间的最小间隔为12个周期,而此种作法在对一数据包进行验证时,网络接口可能会已经开始接收下一个数据包,造成NIC接收数据包及对数据包进行校验处理的整体效率较低。以下搭配图4进行进一步说明。
请参照图4,其是依据图3A及图3B图示的信号时序的一个示意图。如图4所示,在计算TCP首部及TCP有效载荷的校验和之后,将接着进入虚拟首部累加阶段(即,将虚拟首部累加至前述校验和的阶段),而其时间的长度取决于虚拟首部的长度,且将会一直占用计算校验和的相关硬件。
由于以太数据包之间的最小间距是96比特时间,在1G模式下,此间距即为12周期。然而,在使用IPV6的情况下,虚拟首部相加阶段至少需要20 个周期,而除去帧检查序列(frame check sequence,FCS)阶段(即,循环冗余检查(cyclic redundancy check,CRC)校验,需要4个周期,覆盖整个以太数据包的校验)之后,至少还需要16个周期来完成计算,这样会造成一个以太数据包结束约16个周期之后,才能向前述接收端中的接收端状态机等上层组件回报验证结果。在线速的情况下,上报验证结果的时间点已经进到了下一个以太数据包的传输阶段,这样会影响到下一个以太数据包的传输效率,也会使得传输控制逻辑变得相对复杂。
有鉴于此,本发明实施例另提出一种NIC,其可由特定的硬件预先计算虚拟首部的第一校验和,并在得到TCP首部及TCP有效载荷的校验和(下称第二校验和)之后直接将第一校验和与第二校验和进行运算,以得到验证结果。换言之,本发明实施例提出的NIC不需等到计算出第二校验和之后再将虚拟首部的内容累加至第二校验和,本发明提前开始计算虚拟首部的校验和,可缩短得到验证结果的时间,并提升效率。以下将进行详细说明。
请参照图5A及图5B,其中图5A是本发明之一实施例的NIC示意图,而图5B是图5A的NIC运作示意图。如图5A所示,NIC 500包括接收模块510、边界判定模块524、第一校验和计算模块526及第二校验和计算模块528。在本实施例中,接收模块510、边界判定模块524、第一校验和计算模块526及第二校验和计算模块528可设置于图2悬置模块的GMAC模块的接收端中,以在收到数据包P1时相互配合以进行所需的校验和计算。此外,在一实施例中,边界判定模块524集成在第一校验和计算模块526内部。
在一实施例中,NIC 500更包括一拼接模块522,用以将从接收模块510 所接收的8比特位宽的第一数据D1拼接成16比特位宽的第二数据D2,第一校验和计算模块526及第二校验和计算模块528基于16比特位宽的第二数据 D2分别计算第一校验和及第二校验和。值得注意的是,前述位宽仅为举例,本发明并不限于此。此外,如果接收模块510的位宽与第一校验和计算模块 526及第二校验和计算模块528相同,则NIC 500可以不包括拼接模块522。拼接模块522将第一数据D1(其位宽例如是8比特)拼接为第二数据D2(其位宽例如是16比特)。边界判定模块524连接拼接模块522,对第二数据D2 进行边界判定操作以生成边界信息IS,其中边界判定操作用以判定IP的域段及TCP的域段之间的边界,边界信息IS包括上层协议域段的长度L及边界指示信号S。关于拼接模块522所进行的拼接操作及边界判定模块524所进行的边界判定操作可参照先前实施例中的教示,在此不再赘述。在上述实施例中,边界判定模块524耦接在拼接模块522之后,但本发明不限于此,例如,在一实施例中,边界判定模块524可耦接在接收模块510之后,在拼接模块522之前,在另一实施例中,拼接模块522和边界判定模块524可集成在一个模块中。
第一校验和计算模块526耦接边界判定模块524,并在接收到从边界判定模块524传来的上层协议域段的长度L后,完成对应于IP协议的域段(对应于图5A中的第二数据D2)的第一校验和的计算。
需要注意的是,在一实施例中,第一校验和计算模块526直接从IP协议的域段中提取虚拟首部的相关域段(包括来源IP地址、目的IP地址及下一首部域段等)后即可开始进行第一校验和的计算。例如,当第一校验和计算模块526提取来源IP地址的一固定长度(例如2字节)的数据后,便开始以 2字节为单位进行第一校验和计算。也就是说,第一校验和计算模块526每当提取到固定长度(例如2字节)的相关域段数据时,便计算该固定长度(例如2字节)数据的校验和,再与第一校验和计算模块526中包括的一寄存器 (图未图示)中暂存的第一校验和的中间结果相累加,并将最终计算出来的第一校验和暂存于该寄存器。在一实施例中,第一校验和计算模块526更包括前述寄存器,当第一校验和计算模块526计算完成第一校验和后,将第一校验和暂存至该寄存器,当第二校验和计算模块528完成第二校验和的计算时,基于计算出的第二校验和及已暂存的第一校验和得出最后的校验结果。
在一实施例中,在边界判定模块524取得可填入表3的内容之后,第一校验和计算模块526可直接基于从边界判定模块524传来的上层协议域段的长度L和暂存的第一校验和的中间结果(对应于IP的域段)计算出最终的第一校验和,亦即,基于虚拟首部所算出的第一校验和。
之后,连接于拼接模块522的第二校验和计算模块528在收到从边界判定模块524传来的边界指示信号S后开始计算对应于TCP的域段的第二数据 D3的第二校验和。亦即,第二校验和计算模块528可计算TCP首部及TCP有效载荷(对应于图5A中的第二数据D3)的第二校验和。
接着,当第二校验和计算模块528完成第二校验和的计算时,第二校验和计算模块528基于第二校验和及从第一校验和计算模块526接收的第一校验和进行运算,以得到数据包P1的验证结果,并将此验证结果上报予接收端中的接收端状态机。在一实施例中,第二校验和计算模块528可将第一校验和及第二校验和进位后再求反以得到验证结果。在一实施例中,第二校验和计算模块528可从一寄存器获取第一校验和计算模块526计算完成的第一校验和。
图6是依据图5A及图5B图示的信号时序的示意图。如图6所示,在取得虚拟首部的部分相关域段(例如2字节)之后,第一校验和计算模块526 即可据以进行第一校验和的计算。也就是说,第一校验和计算模块526开始计算第一校验和的时间点早于第二校验和计算模块528开始计算第二校验和的时间点。之后,在第二校验和计算模块528计算出TCP首部及TCP有效载荷的第二校验和之后,仅需花费长度为1个周期的虚拟首部相加阶段即可依据第一校验和及第二校验和而得到验证结果。如图6所示,第二校验和计算模块528在RX总线接收完校验和有效载荷区域的数据(包括TCP首部和TCP 有效载荷)以完成第二校验和的计算后的下一个周期即得到该校验和的验证结果。
换言之,相较于图4所示的虚拟首部相加阶段(其长度至少需16个周期),图6中的虚拟首部相加阶段所耗费的时间缩短至只需1个周期。在此情况下,数据包P1的验证结果可以在数据包P1传输完成之前得到,而不会占用到下一数据包的时间。如此一来,所得到的验证结果可以随其他的数据包信息一同上报给上层(例如,接收端的状态机),从而达到提升传输效率的目的。
综上所述,本发明提出的NIC可透过额外的校验和计算模块预先计算虚拟首部的第一校验和。在此情况下,在得到TCP首部及TCP有效载荷的第二校验和之后,仅需花费1个周期即可依据第一校验和与第二校验和得到验证结果。换言之,本发明实施例提出的NIC不需等到计算出第二校验和之后再将虚拟首部的内容累加至第二校验和,因而可缩短得到验证结果的时间,并提升效率。并且,由于数据包的验证结果可以在数据包传输完成之前得到,因此不会因占用下一数据包的时间而影响下一数据包的传输情形。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求保护范围所界定者为准。
【符号说明】
300、500:NIC
310:拼接模块
320:校验和模块
510:接收模块
522:拼接模块
524:边界判定模块
526:第一校验和计算模块
528:第二校验和计算模块
D1:第一数据
D2、D3:第二数据
IS:边界信息
P1:数据包
L:长度
S:边界指示信号。

Claims (17)

1.一种网络接口控制器,包括:
接收模块,接收一数据包,其中该数据包包括第一层协议的域段及第二层协议的域段;
边界判定模块,对该数据包进行边界判定操作以生成边界信息,其中该边界信息包括该第二层协议的域段的长度和边界指示信号;
第一校验和计算模块,耦接该边界判定模块,在接收到该第二层协议的域段的该长度后,完成对应于该第一层协议的域段的第一校验和的计算;以及
第二校验和计算模块,耦接该边界判定模块,在收到该边界指示信号后,开始计算对应于该第二层协议的域段的第二校验和。
2.如权利要求1所述的网络接口控制器,其中该第二校验和计算模块在完成该第二校验和的计算时,基于该第二校验和及从该第一校验和计算模块接收的该第一校验和进行运算,以得到对该数据包的校验结果。
3.如权利要求2所述的网络接口控制器,其中该第二校验和计算模块在完成该第二校验和的计算后的一个周期得到该校验结果。
4.如权利要求2所述的网络接口控制器,其中该网络接口控制器还包括接收端状态机,用于接收该校验结果。
5.如权利要求1所述的网络接口控制器,其中该边界判定模块集成在该第一校验和计算模块内部。
6.如权利要求1所述的网络接口控制器,其中该第一校验和计算模块开始计算该第一校验和的时间点早于该第二校验和计算模块开始计算该第二校验和的时间点。
7.如权利要求1所述的网络接口控制器,其中该第一校验和计算模块更直接从该第一层协议的域段提取多个相关域段计算该第一校验和。
8.如权利要求7所述的网络接口控制器,其中该相关域段包括该第一层协议的来源IP地址、该第一层协议的目的IP地址及下一首部域段。
9.如权利要求1所述的网络接口控制器,其中该第一校验和计算模块每当提取到固定长度的该相关域段时,计算该固定长度的该相关域段的校验和,并与该第一校验和的中间结果累加。
10.如权利要求9所述的网络接口控制器,其中该第一校验和计算模块包括寄存器,用以在该第一校验和的计算过程中暂存该第一校验和的该中间结果。
11.如权利要求1所述的网络接口控制器,其中该网络接口控制器还包括拼接模块,用以将从该接收模块所接收的至少第一数据拼接成第二数据,其中该第一数据为该数据包的一部分,其中该第二数据的位宽大于该第一数据的位宽。
12.如权利要求11所述的网络接口控制器,其中所述第一及第二校验和计算模块基于该第二数据分别计算该第一及第二校验和。
13.如权利要求1所述的网络接口控制器,其中该第一层协议为互联网协议(Internetprotocol,IP),且该第二层协议的域段包括于该第一层协议的域段的第一有效载荷中。
14.如权利要求1所述的网络接口控制器,其中该第二层协议为传输控制协议或用户数据包协议。
15.如权利要求1所述的网络接口控制器,其中该第一校验和计算模块基于虚拟首部计算该第一校验和,其中,该虚拟首部包括该第一层协议的来源IP地址、目的IP地址、下一首部域段及该第二层协议的域段的该长度,其中,该第二层协议的域段的该长度是由该边界判定模块计算而来。
16.如权利要求1所述的网络接口控制器,其中该接收模块、该边界判定模块、该第一校验和计算模块及该第二校验和计算模块集成在一悬置模块中。
17.如权利要求1所述的网络接口控制器,其中该数据包通过一千兆比特媒体独立接口传给该接收模块。
CN201810295222.9A 2018-03-27 2018-03-30 网络接口控制器 Active CN108599907B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810295222.9A CN108599907B (zh) 2018-03-30 2018-03-30 网络接口控制器
US16/141,985 US10771364B2 (en) 2018-03-27 2018-09-26 Network interface controller
US16/159,719 US11082318B2 (en) 2018-03-27 2018-10-15 Network interface controller
US16/364,204 US10735290B2 (en) 2018-03-27 2019-03-26 Network device for processing various types of requests

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810295222.9A CN108599907B (zh) 2018-03-30 2018-03-30 网络接口控制器

Publications (2)

Publication Number Publication Date
CN108599907A true CN108599907A (zh) 2018-09-28
CN108599907B CN108599907B (zh) 2021-03-02

Family

ID=63624436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810295222.9A Active CN108599907B (zh) 2018-03-27 2018-03-30 网络接口控制器

Country Status (1)

Country Link
CN (1) CN108599907B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116455991A (zh) * 2023-06-13 2023-07-18 珠海星云智联科技有限公司 隧道封装报文校验和计算方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101091318A (zh) * 2003-12-11 2007-12-19 国际商业机器公司 数据传输错误校验
CN103532668A (zh) * 2013-10-12 2014-01-22 成都阜特科技股份有限公司 一种确保tcp通信数据完整及正确的方法
US20150100861A1 (en) * 2013-10-07 2015-04-09 Electronics And Telecommunications Research Institute Apparatus and method for calculating transmission control protocol checksum
CN107273213A (zh) * 2017-06-27 2017-10-20 联想(北京)有限公司 一种计算控制方法、网卡及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101091318A (zh) * 2003-12-11 2007-12-19 国际商业机器公司 数据传输错误校验
US20150100861A1 (en) * 2013-10-07 2015-04-09 Electronics And Telecommunications Research Institute Apparatus and method for calculating transmission control protocol checksum
CN103532668A (zh) * 2013-10-12 2014-01-22 成都阜特科技股份有限公司 一种确保tcp通信数据完整及正确的方法
CN107273213A (zh) * 2017-06-27 2017-10-20 联想(北京)有限公司 一种计算控制方法、网卡及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116455991A (zh) * 2023-06-13 2023-07-18 珠海星云智联科技有限公司 隧道封装报文校验和计算方法及相关装置
CN116455991B (zh) * 2023-06-13 2023-08-22 珠海星云智联科技有限公司 隧道封装报文校验和计算方法及相关装置

Also Published As

Publication number Publication date
CN108599907B (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
US8495257B2 (en) Network direct memory access
US8447884B1 (en) Methods for mapping virtual addresses to physical addresses in a network device and systems thereof
CN109491905A (zh) 前端测试方法、装置及电子设备
US6728929B1 (en) System and method to insert a TCP checksum in a protocol neutral manner
US9253062B2 (en) Byte by byte received data integrity check
CN108462642B (zh) 基于fpga的udp/ip硬件协议栈及实现方法
CN101599053B (zh) 支持多种传输协议的串行接口控制器及控制方法
US20030046418A1 (en) Method and system for verifying the hardware implementation of TCP/IP
CN102918513B (zh) 用于启用确定性接口的方法、装置和系统
KR20050057698A (ko) 체크섬을 생성하는 장치 및 방법
CN108123775A (zh) 传输数据包的方法和设备
US10771364B2 (en) Network interface controller
US7453879B1 (en) Method and apparatus for determining the landing zone of a TCP packet
CN108599907A (zh) 网络接口控制器
CN110248379A (zh) 无线局域网中基站的性能测试方法及装置
CN106569967A (zh) 双列直插式存储器模块固态硬盘片上系统及模拟方法
US20090285207A1 (en) System and method for routing packets using tags
US7134070B2 (en) Checksum determination
US20080126609A1 (en) Method for improved efficiency and data alignment in data communications protocol
CN110191028A (zh) 可软件定义的互连设备的测试装置、系统及方法
CN106789440B (zh) 一种ip包包头检测方法及装置
CN108282454A (zh) 用于使用内联模式匹配加速安全检查的装置、系统和方法
CN114301991A (zh) 通信方法、设备、系统及计算机可读存储介质
CN203708283U (zh) 基于fpga的网络数据卡
JPH11317783A (ja) ヘッダ処理装置とそのヘッダ処理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

CP03 Change of name, title or address