CN114615219B - 网络接口装置、电子装置以及网络接口装置的操作方法 - Google Patents
网络接口装置、电子装置以及网络接口装置的操作方法 Download PDFInfo
- Publication number
- CN114615219B CN114615219B CN202011334164.XA CN202011334164A CN114615219B CN 114615219 B CN114615219 B CN 114615219B CN 202011334164 A CN202011334164 A CN 202011334164A CN 114615219 B CN114615219 B CN 114615219B
- Authority
- CN
- China
- Prior art keywords
- packet
- network
- interface device
- network packets
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 239000000872 buffer Substances 0.000 claims description 99
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 230000008707 rearrangement Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了网络接口装置、电子装置以及网络接口装置的操作方法。网络接口装置耦接主机,主机包含储存电路。网络接口装置包含互相耦接之封包接收电路及处理电路。封包接收电路用来接收多个网络封包。处理电路执行以下步骤:(A)解析网络封包,以得到网络封包之多个顺序编号;(B)基于顺序编号排序网络封包以产生重新排序信息;(C)将重新排序信息附加于网络封包的其中之一,并产生封包顺序信息,或是产生包含重新排序信息之封包顺序信息;(D)在储存电路中储存封包顺序信息;以及(E)发送中断至主机。封包接收电路或处理电路于处理电路发送中断之前将网络封包储存至储存电路。
Description
技术领域
本申请是关于无线网络,尤其是关于网络接口装置及其操作方法。
背景技术
图1为现有电子装置10的功能框图。电子装置10包含主机110及网络接口装置120。主机110通过网络接口装置120接收网络封包。主机110是硬件及软件的组合,用来实现电子装置10的主要功能。网络接口装置120用来接收网络封包,并且将收到的网络封包提供给主机110。
当网络接口装置120传送给主机110的网络封包没有按照发送的顺序排列时(例如某些网络封包因为重新传送而较晚被网络接口装置120收到),主机110必须先重新排序(reorder)这些网络封包后才能对这些网络封包进行进一步的处理(例如,将网络封包传送到开放式***互联模型(Open System Interconnection Model,OSI模型)的上层)。然而,重新排序网络封包会增加主机的负担,使主机的效能降低。
发明内容
鉴于先前技术之不足,本申请之一目的在于提供网络接口装置、包含该网络接口装置之电子装置,及网络接口装置的操作方法。
本申请公开一种网络接口装置。网络接口装置耦接主机,主机包含储存电路。网络接口装置包含封包接收电路以及处理电路。封包接收电路用来接收多个网络封包。处理电路耦接封包接收电路,用来执行以下步骤:(A)解析网络封包,以得到网络封包之多个顺序编号;(B)基于顺序编号排序网络封包以产生重新排序信息;(C)将重新排序信息附加于网络封包的其中之一,并产生封包顺序信息,或是产生包含重新排序信息之封包顺序信息;(D)在储存电路中储存封包顺序信息;以及(E)发送中断至主机。封包接收电路或处理电路于处理电路发送中断之前将网络封包储存至储存电路。
本申请另公开一种电子装置,包含主机及网络接口装置。主机包含储存电路及处理器。储存电路用来储存缓存列表及多个网络封包,其中缓存列表列出多个缓存地址。处理器用来产生或更新缓存列表。网络接口装置耦接主机,包含封包接收电路及处理电路。封包接收电路用来接收网络封包。处理电路耦接封包接收电路,用来执行以下步骤:(A)解析网络封包,以得到网络封包之多个顺序编号;(B)基于顺序编号排序网络封包以产生重新排序信息;(C)将重新排序信息附加于网络封包的其中之一,并产生封包顺序信息,或是产生包含重新排序信息之封包顺序信息;(D)在储存电路中储存封包顺序信息;以及(E)发送中断至主机。主机响应于中断读取封包顺序信息,并且基于封包顺序信息存取储存电路以读取网络封包。
本申请还公开一种网络接口装置的操作方法。网络接口装置耦接主机,主机包含储存电路。网络接口装置的操作方法包含:接收多个网络封包;解析网络封包,以得到网络封包之多个顺序编号;基于顺序编号排序网络封包以产生重新排序信息;将重新排序信息附加于网络封包的其中之一,并产生封包顺序信息,或是产生包含重新排序信息之封包顺序信息;储存网络封包至储存电路;在储存电路中储存封包顺序信息;以及发送中断至主机。
有关本申请的特征、实作与功效,兹配合图式作实施例详细说明如下。
附图说明
图1为现有电子装置的功能框图;
图2为本申请电子装置之一实施例的功能框图;
图3A至图3J为本申请的储存电路的部分储存内容及封包信息的实施例;
图4A至图4B为本申请发明网络接口装置的操作方法之一实施例的流程图;
图5为本申请之网络封包的数据安排的一实施例的示意图;
图6为本申请网络接口装置之处理电路的一实施例的功能框图;
图7为本申请网络接口装置之处理电路的另一实施例的功能框图;
图8示出多个网络封包及产生中断的时间点;以及
图9为本申请的储存电路的部分储存内容及封包信息的另一实施例。
具体实施方式
以下说明内容之技术用语系参照本技术领域之习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语之解释系以本说明书之说明或定义为准。
本申请之公开内容包含网络接口装置、包含该网络接口装置之电子装置,及网络接口装置的操作方法。由于本申请之网络接口装置及电子装置所包含之部分组件单独而言可能为已知组件,因此在不影响该装置实施例之充分公开及可实施性的前提下,以下说明对于已知组件的细节将予以节略。此外,本申请之网络接口装置的操作方法的部分或全部流程可以是软件及/或固件之形式,并且可借由本申请之网络接口装置或其等效装置来执行,在不影响该方法实施例之充分公开及可实施性的前提下,以下方法实施例之说明将着重于步骤内容而非硬件。
图2为本申请电子装置20之一实施例的功能框图。电子装置20包含互相耦接的主机200及网络接口装置300。举例来说,电子装置20可以是计算机(例如桌面计算机、笔记本电脑、平板计算机)、可携式电子装置(例如笔记本电脑、平板计算机、手机)或无线存取点(wireless access point, WAP)。网络接口装置300用来接收网络封包,而主机200则负责处理这些网络封包。主机200包含处理器210及储存电路220(例如动态随机存取内存)。储存电路220包含封包缓存区222、缓存列表储存区224、缓存使用状态储存区226以及封包顺序信息储存区228。网络接口装置300包含互相耦接的处理电路310以及封包接收电路320。封包接收电路320包含缓冲电路322。网络接口装置300可以是电子装置20的网络适配器(Network Interface Card, NIC)或网络接口芯片。封包接收电路320例如是Wifi媒体访问控制接收卸除引擎(Wifi MAC RX Offload Engine)。
处理器210与储存电路220互相耦接。处理器210可以是具有程序执行能力的电路或电子组件,例如中央处理器、微处理器、微处理单元、数字信号处理器,或其等效电路。储存电路220储存多个程序代码或程序指令,处理器210借由执行这些程序代码或程序指令来实现电子装置20的主要功能。
图3A至图3J为本申请的储存电路220的部分储存内容及封包信息的实施例。封包缓存区222包含用来储存网络封包的多个封包缓存(buffer,即储存空间或内存空间)。缓存列表414储存于缓存列表储存区224中,缓存列表414列出封包缓存区222中一些封包缓存的地址。缓存使用状态416储存于缓存使用状态储存区226中,缓存使用状态416记录封包缓存区222的封包缓存的使用状态。图4A至图4B为本申请网络接口装置的操作方法之一实施例的流程图,包含以下的步骤。
步骤S510:主机200的处理器210在储存电路220(更明确地说,封包缓存区222)配置至少一个封包缓存,并且产生一个缓存列表414。如图3A所示,缓存列表414列出16个缓存地址ADDR=0x100~0x1600(分别对应于索引IND=0~15),而缓存使用状态416记录缓存列表414所列之缓存地址ADDR所对应之封包缓存的使用状态。写入指标Pw由处理器210控制,指到最新配置的封包缓存,而读取指针Pr由处理电路310控制,指到最近一个被使用的地址。
步骤S515:处理器210更新缓存使用状态416。如图3A所示,因为处理器210在步骤S510配置对应于索引IND=0~15等16个封包缓存,所以写入指针Pw指到索引IND=15。
步骤S520:网络接口装置300的处理电路310复制部分的缓存使用状态416到重新排列缓存(reorder buffer)422。如图3A所示,重新排列缓存422列出索引IND=0~5等6个封包缓存。在将索引IND=0~5等6个封包缓存被复制到重新排列缓存422之后,处理电路310控制读取指针Pr指到索引IND=5(缓存使用状态416中已复制到重新排列缓存422的缓存地址ADDR以删除线表示)。
步骤S522:网络接口装置300的处理电路310从重新排列缓存422中决定一当前缓存地址424。当前缓存地址424对应于缓存列表414所列出之封包缓存的其中之一,如图3A所示,当前缓存地址424为0x100(即缓存列表414中对应于索引IND=0的地址)。
在一些实施例中,重新排列缓存422及当前缓存地址424可以被省略;在此情况下,处理电路310直接以读取指针Pr所指之地址作为当前缓存地址424,换言之,处理电路310直接基于读取指针Pr的位置来决定当前缓存地址424。
步骤S525:封包接收电路320接收网络封包,并且将收到的网络封包储存在缓冲电路322。
步骤S530:处理电路310解析网络封包,以得到封包信息426。如图3A所示,封包信息426记录索引IND、封包的顺序编号SeqNo以及封包的来源装置编号STANo。由同一个装置(例如计算机或手机)所发出的网络封包具有相同的来源装置编号STANo。在图3A的实施例中,索引IND=0的网络封包的顺序编号SeqNo为0x00(即第0个封包),且来源装置编号STANo=0。以下的说明以网络封包皆来自于同一个装置(来源装置编号STANo=0)为例,但本申请不以此为限。
步骤S535:处理电路310将封包信息426储存于处理电路310的储存电路(图未示)中。
步骤S540:网络接口装置300将缓冲电路322中的网络封包储存至主机200的储存电路220的当前缓存地址424所对应的封包缓存中。在一些实施例中,封包接收电路320直接将暂存于缓冲电路322中的网络封包写入封包缓存区222。在其他的实施例中,处理电路310从缓冲电路322读取网络封包,然后将该网络封包写入封包缓存区222。
步骤S545:网络接口装置300的处理电路310更新缓存使用状态416、重新排列缓存422及当前缓存地址424。在缓存地址ADDR=0x100的封包缓存被使用后(在步骤S540被存入网络封包后),处理电路310执行以下的操作:(1)基于读取指针Pr的位置在缓存使用状态416中读取一个缓存地址ADDR(即索引IND=6之缓存地址ADDR=0x700),然后更新读取指针Pr的位置;(2)将已被使用的缓存地址ADDR(即0x100)从重新排列缓存422中移除,并且将刚读取的缓存地址ADDR(即0x700)复制到重新排列缓存422中;以及(3)根据重新排列缓存422的内容更新当前缓存地址424,即,从重新排列缓存422中选取其中一个缓存地址ADDR(例如最小的缓存地址ADDR)作为当前缓存地址424。更新后的缓存使用状态416、重新排列缓存422及当前缓存地址424如图3B所示。
步骤S550:处理电路310判断封包信息426的笔数是否达到阈值且没有遗失的封包。举例来说,假设阈值为4,则当封包信息426中数据的笔数大于等于4,且封包信息426中的顺序编号SeqNo为连续,则处理电路310执行步骤S560(图4B),否则执行步骤S555。
步骤S555:处理电路310判断是否经过默认时间(即,是否发生逾时)。处理电路310基于一计时器或计数器执行步骤S555。当步骤S555的判断为否,则流程回到步骤S522以继续接收下一个网络封包。当步骤S555的判断为是(即发生逾时),处理电路310执行步骤S560。
如图3A之封包信息426所示,由于暂存的封包信息的笔数尚未达到阈值(假设阈值为4)且还没有经过默认时间,所以处理电路310又执行3次的步骤S525至S555,以分别接收顺序编号SeqNo为0x02、0x03及0x01的3个网络封包(分别储存于缓存地址ADDR=0x200、0x300及0x400,缓存使用状态416、重新排列缓存422、当前缓存地址424及封包信息426的变化如图3B至图3D所示)。如图3D所示,此时暂存的封包信息的笔数已达到阈值(假设阈值为4)且没有遗失的封包(没有遗失的封包意谓封包信息426中的封包的顺序编号SeqNo为连续(即0x00至0x03)),因此处理电路310判断步骤S550为是,而往下执行步骤S560。
步骤S560:网络接口装置300的处理电路310基于封包信息426排序已收到的网络封包以产生重新排序信息428。处理电路310基于任意的排序算法及顺序编号SeqNo可以得知索引IND=0~3等4个网络封包的顺序为索引IND=0、3、1及2。在图3E的实施例中,处理电路310在重新排序信息428记下顺序编号SeqNo=0x00之网络封包的索引IND=0及来源装置编号STANo=0。
步骤S565:网络接口装置300的处理电路310将重新排序信息428附加于已收到的网络封包的其中之一,并产生封包顺序信息(第一实施例),或是,处理电路310产生封包顺序信息,封包顺序信息包含重新排序信息428(第二实施例)。
在第一实施例中,处理电路310将重新排序信息428附加于重新排序信息428所列出之网络封包的其中之一。在图3E的例子中,处理电路310将重新排序信息428附加于索引IND=0之网络封包(例如附加于网络封包的最前面或任意位置)。在第一实施例中,封包顺序信息可以不包含重新排序信息428。在第一实施例中,附有重新排序信息428之网络封包被储存于目标缓存地址,且封包顺序信息包含该目标缓存地址,及/或对应于该目标缓存地址之索引IND。以图3E的重新排序信息428为例,目标缓存地址为0x100,因此封包顺序信息储存「0x100」(即储存缓存地址ADDR)及/或「0」(即储存索引IND)。
步骤S570:网络接口装置300的处理电路310在储存电路220的封包顺序信息储存区228中储存封包顺序信息。
步骤S575:网络接口装置300的处理电路310发送中断至主机200以通知主机200网络封包已准备就绪(即处理器210可以开始处理这些网络封包)。
步骤S580:网络接口装置300的处理电路310重置计时器或计数器,例如将计时器或计数器归零。
步骤S585:主机200的处理器210响应于中断从封包顺序信息储存区228中读取封包顺序信息,并且基于封包顺序信息存取储存电路220的封包缓存区222以读取网络封包。
若处理电路310在步骤S585中执行第一实施例,则,在步骤S585中,处理器210先读取附有重新排序信息428的网络封包,以取得重新排序信息428,再基于重新排序信息428读取其他的网络封包。以图3E为例,处理器210依据封包顺序信息的指示(索引IND=0及/或目标缓存地址=0x100)从缓存地址ADDR=0x100读取附有重新排序信息428的网络封包。因为目前的重新排序信息428只列出一个网络封包(即对应于索引IND=0的网络封包),所以处理器210在本次的步骤S585中只读取缓存地址ADDR=0x100的网络封包。
若处理电路310在步骤S585中执行第二实施例,则,在步骤S585中,处理器210读取封包顺序信息后可以立即取得重新排序信息428,然后基于重新排序信息428读取网络封包。
图3F至图3J接续于图3E之后,以下以图3F至图3J所示之例子来进一步讨论图4A及图4B的流程。
如图3F所示,处理器210在封包缓存区222中配置缓存地址ADDR=0x1700的封包缓存,并且更新缓存列表414(将对应于索引IND=0的缓存地址ADDR更新为0x1700)(步骤S510),然后更新缓存使用状态416(控制写入指标Pw移到第一列,并且在索引IND的字段及缓存地址ADDR的字段中分别写入「0」及「0x1700」)(步骤S515)。
如图3G所示,处理电路310基于封包信息426产生重新排序信息428(即,根据顺序编号SeqNo决定接下来的一个或多个索引IND或缓存地址ADDR)(步骤S560)、将重新排序信息428附加于索引IND=3之网络封包(即储存于缓存地址ADDR=0x400之网络封包)(步骤S565)、在储存电路220的封包顺序信息储存区228中储存封包顺序信息(指示索引IND=3及/或目标缓存地址=0x400)(步骤S570),以及发送中断(步骤S575)。然后处理器210执行步骤S585以读取封包顺序信息以及基于封包顺序信息读取储存于缓存地址ADDR=0x400的网络封包。
如图3H所示,处理器210在封包缓存区222中配置缓存地址ADDR=0x1800的封包缓存,并且更新缓存列表414(将索引IND=3的缓存地址ADDR更新为0x1800)(步骤S510),然后更新缓存使用状态416(控制写入指标Pw移到下一列,并且在索引IND的字段及缓存地址ADDR的字段中分别写入「3」及「0x1800」)(步骤S515)。
如图3I所示,一方面,网络接口装置300的处理电路310执行两次步骤S522至步骤S555以接收索引IND=4及5等两个网络封包,然后基于封包信息426产生重新排序信息428(步骤S560)、将重新排序信息428附加于索引IND=1、2或4之网络封包(步骤S565)、在储存电路220的封包顺序信息储存区228中储存封包顺序信息(如果处理电路310将重新排序信息428附加于索引IND=1之封包,则目标缓存地址为0x200(对应于索引IND=1);如果处理电路310将重新排序信息428附加于索引IND=2之封包,则目标缓存地址为0x300(对应于索引IND=2);如果处理电路310将重新排序信息428附加于索引IND=4之封包,则目标缓存地址为0x500(对应于索引IND=4))(步骤S570),以及发送中断(步骤S575)。
继续参考图3I,另一方面,处理器210响应于中断执行步骤S585以读取封包顺序信息,并且基于封包顺序信息读取储存于缓存地址ADDR=0x200、0x300或0x500的网络封包。在图3I的例子中,由于重新排序信息428包含3个索引IND,所以处理器210在读取储存于目标缓存地址的网络封包之后,会基于重新排序信息428继续读取另外两个网络封包。举例来说,如果处理电路310将重新排序信息428附加于索引IND=1之封包,则处理器210在读取缓存地址ADDR=0x200的网络封包之后会便会取得重新排序信息428,然后处理器210基于重新排序信息428继续读取缓存地址ADDR=0x300及0x500的网络封包。
如图3J所示,一方面,网络接口装置300的处理电路310复制部分的缓存使用状态416(即索引IND=10,缓存地址ADDR=0x1100)到重新排列缓存422(步骤S520)。另一方面,处理器210在封包缓存区222中配置3个封包缓存(因为处理器210在前一次的步骤S585中读取分别对应到索引IND=1、2及4等3个网络封包,),并且更新缓存列表414(将索引IND=1、2及4的缓存地址ADDR分别更新为0x1900、0x2000及0x2100)(步骤S510),然后更新缓存使用状态416(控制写入指标Pw往下移动3列,分别在索引IND的字段写入「1」、「2」及「4」,以及分别在缓存地址ADDR的字段写入「0x1900」、「0x2000」及「0x2100」)(步骤S515)。
重复执行图4A及图4B的步骤,电子装置20即可接收及处理更多的网络封包。
图5示出本申请之网络封包的数据安排的一实施例的示意图。网络封包610为附有重新排序信息的网络封包,而网络封包620为未附有重新排序信息的网络封包。在本例中重新排序信息被安排在网络封包的头部,然而,重新排序信息亦可被安排在网络封包的中段或尾部。
图6示出本申请网络接口装置300之处理电路310的一实施例的功能框图。处理电路310包含计算电路311、内存312以及重新排序模块313。计算电路311可以是具有程序执行能力的电路或电子组件,例如中央处理器、微处理器、微处理单元、数字信号处理器,或其等效电路。内存312储存多个程序代码或程序指令,计算电路311借由执行这些程序代码或程序指令来实现处理电路310的部分功能。
在一些实施例中,重新排序模块313用来执行步骤S530以及更新缓存使用状态416(即部分的步骤S545),而计算电路311执行步骤S520、S522、S535、S540、部分的S545、S550、S555、S560、S565、S570、S575以及S580。
在一些实施例中,计算电路311得到重新排序信息428后(步骤S560),将重新排序信息428提供给重新排序模块313,重新排序模块313再执行步骤S565、S570及S575。
在一些实施例中,重新排序模块313可以由电路(例如逻辑电路)实作。本技术领域具有通常知识者可以根据以上的讨论来实现重新排序模块313,故不再赘述。
图7示出本申请网络接口装置300之处理电路310的另一实施例的功能框图。处理电路310包含计算电路316及内存317。计算电路316可以是具有程序执行能力的电路或电子组件,例如中央处理器、微处理器、微处理单元、数字信号处理器,或其等效电路。内存317储存多个程序代码或程序指令,计算电路316借由执行这些程序代码或程序指令来实现处理电路310的功能。
关于步骤S555,以下配合图8有进一步的讨论。图8示出9个网络封包801(顺序编号SeqNo为0x00至0x03、0x05至0x08及0x10),顺序编号SeqNo为0x04及0x09的网络封包遗失。计算电路311于时间点t1曾发出中断,然后重复执行步骤S522至S555直到于时间点t2发生逾时(即步骤S555的判断为是)。在时间点t1至t2之间,网络接口装置300共收到顺序编号SeqNo为0x03、0x05、0x06及0x07等4个网络封包801,但没有收到顺序编号SeqNo为0x04的网络封包。由于已逾时,所以即使有遗失的网络封包,网络接口装置300仍然执行步骤S560以产生重新排序信息428,以及执行步骤S575以在时间点t2发出中断。处理器210在接下来的步骤S585响应该中断从储存电路220中阅读顺序编号SeqNo为0x03、0x05、0x06及0x07等4个网络封包。然而,因为有遗失的网络封包,所以该重新排序信息428指示顺序编号SeqNo不连续的网络封包,即,指示顺序编号SeqNo为0x03、0x05、0x06及0x07等4个网络封包。
在一些实施例中,缓存列表414、缓存使用状态416、重新排列缓存422、当前缓存地址424、封包信息426及重新排序信息428只包含缓存地址ADDR但不包含索引IND,或是以相对应的缓存地址ADDR取代索引IND。在此情况下,图3I的内容变成如图9所示的内容,而前述之操作中与索引IND有关的部分皆以相对应的缓存地址ADDR取代。
综上所述,本申请的网络接口装置300具有重新排序网络封包的功能,如此一来,主机200不需要耗费运算资源来重新排序网络封包。再者,因为网络接口装置300将网络封包储存于主机200的储存电路220,所以网络接口装置300可以节省内存(例如缓冲电路322)的用量。
请注意,前揭图标中,组件之形状、尺寸、比例以及步骤之顺序等仅为示意,系供本领域技术人员了解本申请之用,非用以限制本申请。
虽然本申请之实施例如上所述,然而这些实施例并非用来限定本申请,本领域技术人员可依据本申请之明示或隐含之内容对本申请之技术特征施以变化,凡此种种变化均可能属于本申请所寻求之专利保护范畴,换言之,本申请之专利保护范围须视本说明书之申请专利范围所界定者为准。
Claims (10)
1.一种网络接口装置,耦接一主机,该主机包含一储存电路,该网络接口装置包含:
一封包接收电路,用来接收多个网络封包;以及
一处理电路,耦接该封包接收电路,用来执行以下步骤:
(A)解析所述多个网络封包,以得到所述多个网络封包之多个顺序编号;
(B)基于所述多个顺序编号排序所述多个网络封包以产生一重新排序信息;
(C)将该重新排序信息附加于所述多个网络封包的其中之一,并产生一封包顺序信息,或是产生包含该重新排序信息之该封包顺序信息;
(D)在该储存电路中储存该封包顺序信息;以及
(E)发送一中断至该主机;
其中,该封包接收电路或该处理电路于该处理电路发送该中断之前将所述多个网络封包储存至该储存电路。
2.根据权利要求1所述的网络接口装置,其中该储存电路储存一缓存列表及一缓存使用状态,该缓存列表列出多个缓存地址,该缓存使用状态记录所述多个缓存地址所对应之多个缓存的一使用状态。
3.根据权利要求2所述的网络接口装置,其中该网络接口装置基于该缓存使用状态将所述多个网络封包储存至该储存电路,该处理电路包含:
一重新排序模块,耦接于该封包接收电路,用来执行步骤(A),以及更新该缓存使用状态;
一内存,用来储存多个程序指令或程序代码;以及
一计算电路,耦接该重新排序模块及该内存,用来执行所述多个程序指令或程序代码以执行步骤(B)至步骤(E)。
4.根据权利要求2所述的网络接口装置,其中该重新排序信息包含所述多个缓存地址的至少其中一者。
5.根据权利要求2所述的网络接口装置,其中该缓存列表包含对应于所述多个缓存地址的多个索引,且该重新排序信息包含对应于所述多个缓存地址的至少其中一者的该索引。
6.根据权利要求2所述的网络接口装置,其中当所述多个网络封包的其中之一附有该重新排序信息时,该封包顺序信息包含一目标缓存地址或对应于该目标缓存地址之一索引,且附有该重新排序信息之该网络封包系储存于该目标缓存地址。
7.根据权利要求1所述的网络接口装置,其中当所述多个网络封包的其中之一附有该重新排序信息时,该封包顺序信息不包含该重新排序信息。
8.根据权利要求1所述的网络接口装置,其中该处理电路还执行以下步骤:
(F)当逾时发生时,执行步骤(B)至步骤(E),其中该重新排序信息指示顺序编号不连续的所述多个网络封包。
9.一种电子装置,包含:
一主机,包含:
一储存电路,用来储存一缓存列表及多个网络封包,其中该缓存列表列出多个缓存地址;以及
一处理器,用来产生或更新该缓存列表;以及
一网络接口装置,耦接该主机,包含:
一封包接收电路,用来接收所述多个网络封包;以及
一处理电路,耦接该封包接收电路,用来执行以下步骤:
(A)解析所述多个网络封包,以得到所述多个网络封包之多个顺序编号;
(B)基于所述多个顺序编号排序所述多个网络封包以产生一重新排序信息;
(C)将该重新排序信息附加于所述多个网络封包的其中之一,并产生一封包顺序信息,或是产生包含该重新排序信息之该封包顺序信息;
(D)在该储存电路中储存一封包顺序信息;以及
(E)发送一中断至该主机;
其中,该主机响应于该中断读取该封包顺序信息,并且基于该封包顺序信息存取该储存电路以读取所述多个网络封包。
10.一种网络接口装置的操作方法,该网络接口装置耦接一主机,该主机包含一储存电路,该操作方法包含:
接收多个网络封包;
解析所述多个网络封包,以得到所述多个网络封包之多个顺序编号;
基于所述多个顺序编号排序所述多个网络封包以产生一重新排序信息;
将该重新排序信息附加于所述多个网络封包的其中之一,并产生一封包顺序信息,或是产生包含该重新排序信息之该封包顺序信息;
储存所述多个网络封包至该储存电路;
在该储存电路中储存该封包顺序信息;以及
发送一中断至该主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011334164.XA CN114615219B (zh) | 2020-11-24 | 2020-11-24 | 网络接口装置、电子装置以及网络接口装置的操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011334164.XA CN114615219B (zh) | 2020-11-24 | 2020-11-24 | 网络接口装置、电子装置以及网络接口装置的操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114615219A CN114615219A (zh) | 2022-06-10 |
CN114615219B true CN114615219B (zh) | 2024-03-08 |
Family
ID=81856797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011334164.XA Active CN114615219B (zh) | 2020-11-24 | 2020-11-24 | 网络接口装置、电子装置以及网络接口装置的操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114615219B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1389798A (zh) * | 2002-06-26 | 2003-01-08 | 威盛电子股份有限公司 | 网络连接装置及应用其上的数据封包转移方法 |
CN1852047A (zh) * | 2005-10-14 | 2006-10-25 | 华为技术有限公司 | 无线网络控制器对基站发送的数据进行重排序的方法 |
KR20090110371A (ko) * | 1999-07-09 | 2009-10-21 | 말리부 네트웍스, 인코퍼레이티드 | Tcp/ip 패킷-중심 와이어리스 전송 시스템 아키텍처 |
CN107992331A (zh) * | 2016-11-14 | 2018-05-04 | 上海兆芯集成电路有限公司 | 处理器及操作处理器的方法 |
CN108370354A (zh) * | 2015-12-22 | 2018-08-03 | 捷德货币技术有限责任公司 | 用于将发送数据从发送器转移到用于处理发送数据的接收器的方法和用于执行该方法的装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10764781B2 (en) * | 2016-05-03 | 2020-09-01 | Qualcomm Incorporated | Systems and methods for reordering data received from a plurality of radio access technologies (RATs) |
CN108234550B (zh) * | 2016-12-14 | 2020-06-12 | ***通信有限公司研究院 | 一种信息发送方法、信息接收方法及pdcp实体 |
-
2020
- 2020-11-24 CN CN202011334164.XA patent/CN114615219B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090110371A (ko) * | 1999-07-09 | 2009-10-21 | 말리부 네트웍스, 인코퍼레이티드 | Tcp/ip 패킷-중심 와이어리스 전송 시스템 아키텍처 |
CN1389798A (zh) * | 2002-06-26 | 2003-01-08 | 威盛电子股份有限公司 | 网络连接装置及应用其上的数据封包转移方法 |
CN1852047A (zh) * | 2005-10-14 | 2006-10-25 | 华为技术有限公司 | 无线网络控制器对基站发送的数据进行重排序的方法 |
CN108370354A (zh) * | 2015-12-22 | 2018-08-03 | 捷德货币技术有限责任公司 | 用于将发送数据从发送器转移到用于处理发送数据的接收器的方法和用于执行该方法的装置 |
CN107992331A (zh) * | 2016-11-14 | 2018-05-04 | 上海兆芯集成电路有限公司 | 处理器及操作处理器的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114615219A (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113746893B (zh) | 一种基于fpga的智能网卡数据转发方法、***及终端 | |
CN108600053B (zh) | 一种基于零拷贝技术的无线网络数据包捕获方法 | |
RU2617388C2 (ru) | Способ, терминал и электронное устройство для обработки документа электронной книги | |
TWI763131B (zh) | 網路介面裝置、包含該網路介面裝置之電子裝置,及網路介面裝置的操作方法 | |
US20160266948A1 (en) | Queued Messages Processing Method and Apparatus, Method and Apparatus for Controlling Messages to be Enqueued | |
EP3771169A1 (en) | Message processing method and related device | |
US20220058118A1 (en) | Garbage Data Scrubbing Method, and Device | |
US11096177B2 (en) | Operation mode switching method and user equipment | |
US20230214354A1 (en) | Method and Device for Local Random Readahead of File in Distributed File System | |
WO2023201987A1 (zh) | 请求处理方法、装置、设备及介质 | |
WO2022062524A1 (zh) | 内存管理方法、装置、设备和存储介质 | |
CN111538694B (zh) | 一种用于网络接口支持多链接和重传的数据缓存方法 | |
WO2022127873A1 (zh) | 实现网络芯片高速调度的方法、设备及存储介质 | |
WO2023035427A1 (zh) | 基于fifo存储器的信息生成方法、装置、设备及介质 | |
CN108090018A (zh) | 数据交换方法及*** | |
CN114615219B (zh) | 网络接口装置、电子装置以及网络接口装置的操作方法 | |
CN117591023A (zh) | 一种基于硬件卸载的分散聚集列表查询写入读取方法及装置 | |
CN116016313A (zh) | 一种流表老化控制方法、***、设备及可读存储介质 | |
CN114338529A (zh) | 五元组规则匹配方法及装置 | |
CN113609041A (zh) | 一种数据传输方法及*** | |
CN112732176A (zh) | 基于fpga的ssd访问方法及装置、存储***及存储介质 | |
WO2020124609A1 (zh) | 一种处理芯片、方法及相关设备 | |
CN116431356B (zh) | 一种基于智能网卡的云网络缓存加速方法与*** | |
CN116540951B (zh) | 存储器、数据存取方法、存储装置及存储介质 | |
CN116828436B (zh) | 一种基于FPGA的WiFi通信*** |
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 |