CN113141235B - 处理数据的方法和相关装置 - Google Patents

处理数据的方法和相关装置 Download PDF

Info

Publication number
CN113141235B
CN113141235B CN202010076867.0A CN202010076867A CN113141235B CN 113141235 B CN113141235 B CN 113141235B CN 202010076867 A CN202010076867 A CN 202010076867A CN 113141235 B CN113141235 B CN 113141235B
Authority
CN
China
Prior art keywords
sequence number
chip
storage space
memory unit
target 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.)
Active
Application number
CN202010076867.0A
Other languages
English (en)
Other versions
CN113141235A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113141235A publication Critical patent/CN113141235A/zh
Application granted granted Critical
Publication of CN113141235B publication Critical patent/CN113141235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1621Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1832Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability

Landscapes

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

Abstract

本申请提供一种处理数据的方法和相关装置,该方法包括:芯片获取数据流中的多个数据包,该芯片支持多线程,该多线程能够分别处理该多个数据包;该芯片分别对该多个数据包进行原子操作,该原子操作用于更新目标内存单元保存的序列号,该目标内存单元用于保存该数据流中的最新序列号。上述技术方案利用原子操作实现序列号的更新操作。原子操作在执行的过程中不会被打断。因此,该芯片更新目标内存单元保存的序列号的过程不会被打断。另外,利用原子操作实现序列号的更新操作比利用信号量锁实现的性能更高。

Description

处理数据的方法和相关装置
本申请要求于2020年01月20日提交中国专利局、申请号为202010065815.3、申请名称为“处理数据的方法和相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及信息技术领域,更具体地,涉及处理数据的方法和相关装置。
背景技术
支持多线程的芯片可以同时获取并处理多个数据包。芯片的存储空间可以包括多个特定的内存单元。该多个特定的内存单元与多个数据流一一对应。该多个特定的内存单元中的每个内存单元用于保存对应的数据流中最新的由所述芯片获取的数据包携带的序列号。
如果该芯片接收到的多个数据包是属于同一个数据流的,那么该芯片运行的多个线程会分别处理该多个数据包。该多个线程中的每个线程都需要根据处理的数据包中携带的序列号更新该数据流对应的特定的内存单元中保存的序列号。该多个线程同时进行序列号更新操作会发生冲突。
发明内容
本申请提供一种处理数据的方法和相关装置,能够避免多个线程同时进行序列号更新操作。
第一方面,本申请实施例提供一种处理数据的方法,该方法包括:芯片获取数据流中的多个数据包,该芯片支持多线程,该多线程能够分别处理该多个数据包;该芯片分别对该多个数据包进行原子操作,该原子操作用于更新目标内存单元保存的序列号,该目标内存单元用于保存该数据流中的最新序列号。
上述技术方案利用原子操作实现序列号的更新操作。原子操作在执行的过程中不会被打断。因此,该芯片更新目标内存单元保存的序列号的过程不会被打断。另外,利用原子操作实现序列号的更新操作比利用信号量锁实现的性能更高。
在一种可能的设计中,该原子操作用于执行以下步骤以更新该目标内存单元保存的序列号:获取第一序列号和第二序列号,该第一序列号为该原子操作处理的数据包携带的序列号,该第二序列号为该目标内存单元当前保存的序列号;比较该第一序列号和该第二序列号的大小;若该第一序列号大于该第二序列号,则将该目标内存单元保存的序列号更新为该第一序列号;若该第一序列号小于或等于该第二序列号,则维持该目标内存单元保存的序列号不变。
在一种可能的设计中,该方法还包括:该芯片将第一存储空间以外的部分或全部用于保存接收指示信息的存储空间清零,该第一存储空间用于保存对应于当前滑动窗口内的序列号对应的接收指示信息,该接收指示信息用于指示是否成功接收到携带有对应的序列号的数据包。
利用上述技术方案,芯片可以使得存储器中保留当前滑动窗口内的序列号对应的接收指示信息。这样可以使得头指针移动端时候所有内存都是初始化好的。
在一种可能的设计中,该芯片将第一存储空间以外的部分或全部存储空间清零,包括:该芯片确定第三序列号,该第三序列号为该目标内存单元保存的序列号;该芯片确定该第三序列号为K个预设值中的一个,K为大于或等于2的正整数;该芯片将第二存储空间清零,其中该第二存储空间为K个存储空间中对应于该第三序列号的存储空间,该第二存储空间保存的接收指示信息对应的序列号不属于该当前滑动窗口内的序列号。
利用上述技术方案,每次清零操作可以只对存储空间中的一部分存储空间进行操作。这样可以降低芯片的负担。
在一种可能的设计中,该第二存储空间保存N个接收指示信息,该N个接收指示信息与N个连续的序列号,N为大于或等于2的正整数,该第二存储空间保存的N个接收指示信息对应的最大序列号SNN与该当前滑动窗口的第一个序列号SN1满足以下关系:SNN=SN1-1。
在一种可能的设计中,该第二存储空间保存的接收指示信息数目N、K与该数据流的最大序列号SNMAX满足以下关系:N=(SNMAX+1)/K。
第二方面,本申请实施例提供一种芯片,该芯片包括逻辑电路和输入/输出接口。该逻辑电路可以与存储器耦合,用于执行存储器中的指令和/或代码,以实现上述第一方面的方法设计中任一种可能的实现方式。
第三方面,本申请实施例还提供一种通信设备,该通信设备中设置有第二方面中的芯片。
第四方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面的方法设计中任意一种可能的实现方式中的方法。
第五方面,本申请实施例提供一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面的方法设计中任意一种可能的实现方式中的方法。
附图说明
图1是802.11CB传输数据包的示意图。
图2是接收端接收数据包的示意图。
图3是根据本申请实施例提供的处理数据的方法的示意性流程图。
图4是用于保存接收指示信息的存储空间的示意图。
图5是用于保存接收指示信息的存储空间的另一种示意图。
图6是根据本申请实施例提供的一种处理数据的方法的示意性流程图。
图7是根据本申请实施例提供的一种芯片的示意性结构图。
图8是一个802.1CB协处理器的示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例中,有时候下标如W1可能会笔误为非下标的形式如W1,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中所称的芯片的存储器可以是集成在芯片内部的存储器(也可以称为片内存储),也可以是设置于芯片外部的存储器(也可以称为片外存储)。
本申请实施例中的芯片可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP)或其他集成芯片。
本申请实施例中的芯片的是支持多线程的芯片。多线程可以由多个物理核实现,也可以由单个物理核实现。
例如,在一些实现方式中,芯片中可以有多个物理核。该多个物理核可以同时处理接收到的数据包。例如,假设芯片中的物理核数目为4。芯片通过输入输出接口获取到4个数据包后,4个物理核可以同时处理4个数据包。4个物理核中的每个物理核可以处理4个数据包中的一个。
又如,在另一些实现方式中,芯片中可能只有一个物理核。但是利用超线程技术可以使得单个物理核实现线程级别的并行计算,从而可以使得单个物理核并行运行多个线程(例如并行运行两个线程、四个线程等)。在此情况下,该芯片可以同时处理多个数据包。例如,如果该芯片中的物理核可以并行运行两个线程,那么该芯片可以同时处理两个数据包。
又如,在另一些实现方式中,芯片中可以有多个物理核。该多个物理核中的每个物理核都可以利用超线程技术实现线程级别的并行运算。例如,芯片中可以有两个物理核。两个物理核中的每个物理核可以同时运行2个线程。在此情况下,该芯片可以同时运行四个线程。该四个线程中的每个线程可以处理一个数据包。因此,该芯片可以同时处理四个数据包。又如,芯片中可以有四个物理核。该四个物理核中的每个物理核可以同时运行2个线程。在此情况下,该芯片可以同时运行八个线程。该八个线程中目的每个线程可以处理一个数据包。因此,该芯片可以同时处理八个数据包。
为了帮助本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的一些概念进行简单介绍。
1,时间敏感网络(Time Sensitive Network,TSN)
TSN是以以太网为基础的新一代网络标准,具有时间同步、延时保护等确保实时性的功能。TSN应用于音频/视频传输、汽车驾驶、工业物联网等领域。
与TSN相关的协议标准包括电气和电子工程师协会(Institute of ElectricalandElectronics Engineers,IEEE)802.1Asbt、IEEE 802.1Qbv、IEEE 802.1CB等。
2,IEEE 802.1CB
TSN中保证高可靠性主要依靠802.1CB标准。IEEE802.1CB标准通过在发送端复制多个不相交路径中的分组并消除多个点处的重复来提高网络的可靠性,使得监听器仅看到一个分组。IEEE802.1CB与IEEE802.1Qca和零拥塞相结合,可在数据包传输中提供最佳的服务质量(quality of service,QoS)。它使用冗余标记(类似于虚拟局域网(virtual localareanetwork,VLAN)标记)中携带的序列编号来复制和消除网络中的重复数据包。
图1是802.11CB传输数据包的示意图。
如图1所示,发送端(也可以称为源端)可以通过路径1和路径2向接收端(也可以称为宿端)发送相同的数据包(packet)。换句话说,发送端可以将同一个数据包通过路径1和路径2分别向接收端发送。如图1所示的中间设备可以是交换机或路由器等。
发送端向接收端发送的数据包中的每个数据包中都包括一个序列号。发送端通过路径1和路径2发送的相同的数据包中携带的序列号是相同的。接收端的存储器中的一部分存储空间可以用于存储T个接收指示信息。T个接收指示信息中的每个接收指示信息与一个序列号对应。接收指示信息用于指示接收端是否成功接收到来自于发送端发送的携带有对应序列号的数据包。
例如,假设0表示未接收,1表示成功接收。若发送端发送的数据包携带的序列号的范围为0至65535,那么T的值可以等于65536。换句话说,接收端的存储器中可以有一个长度为65536比特的存储空间。该存储空间中的每个比特对应于1个序列号。假设该存储空间中的第0个比特对应于序列号0,第1个比特对应于序列号1,第2个比特对应于序列号2,以此类推。若该存储空间中的第0个比特为1,第1个比特为0,则表示接收端成功接收到携带有序列号0的数据包且未接收到携带有序列号1的数据包。
又如,假设00表示未接收,11表示成功接收。若发送端发送的数据包携带的序列号的范围为0至65535,那么T的值可以等于65536×2。换句话说,接收端的存储器中可以有一个长度为131072比特的存储空间。该存储空间中的每两个比特对应于1个序列号。假设该存储空间中的第0个比特和第1个比特对应于序列号0,第2个比特和第3个比特对应于序列号1,第4个比特和第5个比特对应于序列号2,以此类推。若该存储空间中的第0个比特和第1个比特的值为1,第2个比特和第3个比特的值为0,则表示接收端成功接收到携带有序列号0的数据包且未接收到携带有序列号1的数据包。
接收端可以通过窗口控制对数据包的接收。
图2是接收端接收数据包的示意图。
如图2所示的接收端维护的窗口大小可以是8。如图2所示,在T1时刻,在窗口内的序列号为85至92。
假设接收端在T2时刻接收到了序列号为94的数据包,那么窗口向左移动。此时(即T2时刻),在窗口内的序列号为87至94。假设在T1时刻至T2时刻之间接收端并未接收序列号为85的数据包,那么在85被移出窗口之后(即T2时刻之后),接收端在接收到序列号为85的数据包后,可以直接丢弃该数据包。
接收端的存储器中的一个内存单元可以用于保存数据流中的最新序列号。为了便于描述,可以将该内存单元称为目标内存单元。以图2为例,在T1时刻,该目标内存单元中保存的序列号为92。在T2时刻,该目标内存单元中保存的序列号被更新为94。
如上所述,芯片中的多个线程可以同时处理多个数据包。在此情况下,该多个线程中的不同线程在更新目标内存单元中保存的序列号时可能会发生冲突。
例如,假设目标内存单元中保存的序列号是92,线程1处理的数据包的序列号是94,线程2处理的数据包的序列号是97。线程2在T3时刻比较处理的数据包中的序列号和目标内存单元的序列号。根据比较结果,线程2会在T4时刻将目标内存单元中保存的序列号更新为97。线程1在T5时刻比较处理的数据包中的序列号和目标内存单元的序列号。假设T3时刻早于T4时刻,T5时刻位于T3时刻和T4时刻之间。在此情况下,线程1的比较结果应该是将目标内存单元保存的序列号更新为94。根据比较结果,线程1会在T6时刻将目标内存单元的序列号更新为94。若T6时刻晚于T4时刻,则目标内存单元中保存的序列号与芯片实际处理的最新序列号不一致。
本申请实施例提供一种处理数据的方法,可以避免在更新目标内存单元中保存的序列号时发成冲突的情况。
本申请实施例提供的处理数据的方法利用原子操作实现目标内存单元保存的序列号的更新操作。具体地,芯片在获取到数据里的多个数据包后,可以分别对该多个数据包进行原子操作(atomic operation),该原子操作用于更新目标内存单元中保存的序列号。
图3是根据本申请实施例提供的处理数据的方法的示意性流程图。
301,芯片获取数据包1,数据包2,数据包3和数据包4。
该芯片可以分别对数据包1、数据包2、数据包3和数据包4进行原子操作。该芯片对多个数据包进行原子操作的顺序可以是任意的。假设该芯片获取四个数据包的顺序依次为:数据包1、数据包2、数据包3和数据包4。在一些实施例中,该芯片可以按照四个数据包的获取顺序依次对四个数据包进行原子操作。换句话说,该芯片可以按照数据包1、数据包2、数据包3和数据包4的顺序,依次对四个数据包进行原子操作。在另一些实施例中,该芯片可以按照获四个数据包的获取顺序相反的顺序依次对四个数据包进行原子操作。换句话说,该芯片可以按照数据包4、数据包3、数据包2和数据包1的顺序,依次对四个数据包进行原子操作。在另一些实施例中,该芯片可以随机挑选进行原子操作的数据包。例如,该芯片可以按照数据包3、数据包2、数据包4和数据包1的顺序,依次对四个数据包进行原子操作。又如,该芯片可以按照数据包4、数据包2、数据包1和数据包3的顺序,依次对四个数据包进行原子操作。
假设该芯片按照数据包4、数据包2、数据包1和数据包3的顺序,依次对四个数据包进行原子操作。假设数据包4携带的序列号为95、数据包2携带的序列号为93、数据包1携带的序列号为98、数据包3携带的序列号为96。
302,该芯片对数据包4进行原子操作。
该芯片对数据包进行的原子操作可以包括以下步骤:
步骤1,获取数据包携带的序列号(可以称为第一序列号)和该目标内存单元保存的序列号(可以称为第二序列号)。
步骤2,比较该第一序列号和该第二序列号。
步骤3,若该第一序列号大于该第二序列号,则将该目标内存单元保存的序列号更新为该第一序列号;若该第一序列号小于或等于该第二序列号,则维持该目标内存单元保存的序列号不变。
假设在该芯片对数据包4进行原子操作之前,目标内存单元保存的序列号为92。数据包4携带的序列号为95。由于数据包4携带的序列号大于该目标内存单元保存的序列号,该芯片可以将该目标内存单元保存的序列号更新为数据包4携带的序列号,即95。
303,该芯片对数据包2进行原子操作。
在对数据包4进行原子操作之后,该目标内存单元保存的序列号被更新为95。数据包2携带的序列号为93。由于该目标内存单元保存的序列号大于数据包2携带的序列号,该芯片可以将维持该目标内存单元保存的序列号不变。换句话说,该芯片可以不需要改变该目标内存单元保存的序列号。
304,该芯片对数据包1进行原子操作。
在对数据包2进行原子操作之后,该目标内存单元保存的序列号仍为95。数据包1携带的序列号为98。由于数据包1携带的序列号大于该目标内存单元保存的序列号,该芯片可以将该目标内存单元保存的序列号更新为数据包1携带的序列号,即98。
305,该芯片对数据包3进行原子操作。
在对数据包1进行原子操作之后,该目标内存单元保存的序列号被更新为98。数据包3携带的序列号为96。由于该目标内存单元保存的序列号大于数据包3携带的序列号,该芯片可以将维持该目标内存单元保存的序列号不变。换句话说,该芯片可以不需要改变该目标内存单元保存的序列号。
在执行了步骤302至步骤305之后,该目标内存单元保存的序列号为98。
原子操作在执行的过程中不会被打断。因此,该芯片更新目标内存单元保存的序列号的过程不会被打断。
如上所述,接收端的存储器可以保存用于指示接收端是否成功接收到来自于发送端发送的携带有对应序列号的数据包的接收指示信息。
本申请实施例提供的处理数据的方法还可以用于维护保存有接收指示信息的存储空间。具体地,该芯片可以将第一存储空间以外的部分或全部用于保存接收指示信息的存储空间清零。该第一存储空间是用于保存对应于当前滑动窗口内的序列号对应的接收指示信息的存储空间。
下面结合图4和图5对维护存储空间的过程进行详细描述。
发送端会循环使用2X个序列号,X为大于或等于1的正整数。例如,X的值可以为16、10、或者8。发送端发送的数据包中携带的序列号的范围为0至2X-1。换句话说,如果发送端发送的数据包携带序列号为2X-1,那么发送端发送的下一个数据包中携带的序列号为0。
为了便于描述,在图4和图5所示实施例中假设X的取值为10。换句话说,发送端发送的数据包中携带的序列号的范围为0至1023。为了便于描述,图4和图5所示的实施例中假设接收指示信息通过1个比特来表示是否接收到携带有对应序列号的数据包(例如0表示未接收,1表示接收)。在此情况下,存储空间中共用1024个比特用于保存接收指示信息。此外,以下实施例中假设滑动窗口的大小为8。
图4示出了用于保存接收指示信息的存储空间的示意图。如上所述,发送端使用的序列号是循环使用的。因此如图4所示的存储空间的示意图也可以用如图5所示的圆形示意图表示。
如图4和图5所示的0表示用于保存接收指示信息的1024个比特中的第0个比特,1表示该1024个比特中的第1个比特,2表示该1024个比特中的第2个比特,以此类推。
在一些实施例中,该芯片可以将该第一存储空间以外的部分存储空间清零。
例如,在一些实施例中,用于保存接收指示信息的存储空间可以划分为K个存储空间,该K个存储空间与K个预设值一一对应。如果目标内存单元保存的序列号SNN为K个预设值中的一个,那么该芯片可以将K个存储空间中与该预设值对应的存储空间清零。该K个存储空间中的每个存储空间可以保存N个接收指示信息,该N个接收指示信息与N个序列号一一对应。
K为大于或等于2的正整数。假设K的值为4。在此情况下,如图4和图5所示的长度为1024个比特的存储空间可以分为四个存储空间,该四个存储空间中的每个存储空间包括256个比特。为了便于描述,将长度为1024个比特的存储空间称为总存储空间,将四个长度为256个比特的存储空间分别称为第一个存储空间、第二个存储空间、第三个存储空间和第四个存储空间。
第一个存储空间中的256个比特是总存储空间中的第0个比特至第255个比特。第二个存储空间中的256个比特是总存储空间中的第256个比特至第511个比特。第三个存储空间中的256个比特是总存储空间中的第512个比特至第767个比特。第四个存储空间中的256个比特是总存储空间中的第768个比特至第1023个比特。
第一个存储空间中的256个比特与1024个序列号中的前256个序列号一一对应(即0至255)。换句话说,第一个存储空间中的第0个比特用于指示是否成功接收携带有序列号0的数据包,第1个比特用于指示是否成功接收携带有序列号1的数据包,以此类推。
第二个存储空间中的256个比特与序列号256至511一一对应。换句话说,第二个存储空间2中的第0个比特(即总存储空间中的第256个比特)用于指示是否成功接收携带有序列号256的数据包,第1个比特(即总存储空间中的第257个比特)用于指示是否成功接收携带有序列号257的数据包,以此类推。
第三个存储空间中的256个比特与序列号512至767一一对应,换句话说,第三个存储空间中的第0个比特(即总存储空间中的第512个比特)用于指示是否成功接收携带有序列号512的数据包,第1个比特(即总存储空间中的第513个比特)用于指示是否成功接收携带有序列号513的数据包,以此类推。
第四个存储空间中的256个比特与序列号768至1023一一对应。换句话说,第四个存储空间中的第0个比特(即总存储空间中的第768个比特)用于指示是否成功接收携带有序列号768的数据包,第1个比特(即总存储空间中的第769个比特)用于指示是否成功接收携带有序列号769的数据包,以此类推。
该K个预设值中的第i个预设值(i为大于或等于1且小于或等于K的正整数)满足如下关系:
Ki=SNi+Window_size-1,(公式1.1)
其中Ki表示K个预设值中的第i个预设值,SNi表示K个存储空间中的第i个存储空间中的第0个比特在总存储空间中的比特数。Windows-size表示滑动窗口的大小。
在一些实施例中,K个预设值中的第j个预设值与K个存储空间中的第j-1个存储空间对应,j为大于或等于2且小于或等于K的正整数,K个预设值中的第1个预设值与K个存储空间中的第K个存储空间对应。
还以长度为1024的总存储空间,滑动窗口的大小为8,K等于4为例。在此情况下,K个预设值中的第1个预设值至第4个预设值分别为7,263,519和775。该K个预设值中的第1个预设值(即7)对应于第四个存储空间,该K个预设值中的第2个预设值(即263)对应于第一个存储空间,该K个预设值中的第3个预设值(即519)对应于第二个存储空间,该K个预设值中的第4个预设值(即775)对应于第三个存储空间。换句话说,若目标内存单元中的序列号的值为7,则该芯片可以将1024个比特中的第755个比特至第1023个比特清零;若目标内存单元中的序列号的值为263,则该芯片可以将1024个比特中的第0至第255个比特清零;若目标内存单元中的序列号的值为519,则该芯片可以将1024个比特中的第256至第511个比特清零;若目标内存单元中的序列号的值为755,则该芯片可以将1024个比特中的第512至第767个比特清零。
另在一些实施例中,K个预设值中的第p个预设值与K个存储空间中的第p-1个存储空间对应,p为大于或等于3且小于或等于K的正整数,K个预设值中的第1个预设值与K个存储空间中的第K-1个存储空间对应,第2个预设值与K个存储空间中的第K个存储空间对应。
还以长度为1024的总存储空间,滑动窗口的大小为8,K等于4为例。在此情况下,K个预设值中第1个预设值至第4个预设值分别为7,263,519和775。该K个预设值中的第1个预设值(即7)对应于第三个存储空间,该K个预设值中的第2个预设值(即263)对应于第四个存储空间,该K个预设值中的第3个预设值(即519)对应于第一个存储空间,该K个预设值中的第4个预设值(即775)对应于第二个存储空间。换句话说,若目标内存单元中的序列号的值为7,则该芯片可以将1024个比特中的第512至第767个比特清零。若目标内存单元中的序列号的值为263,则该芯片可以将1024个比特中的第755个比特至第1023个比特清零;若目标内存单元中的序列号的值为519,则该芯片可以将1024个比特中的第0至第255个比特清零;若目标内存单元中的序列号的值为755,则该芯片可以将1024个比特中的第256至第511个比特清零。
如果目标内存单元保存的序列号SNN不等于K个预设值中的一个,则该芯片可以不进行清零操作。
又如,在另一些实施例中,该芯片还可以通过以下方式将该第一存储空间以外的部分存储空间清零:如果目标内存单元保存的序列号SNN为Y的正整数倍,那么该芯片可以将第SN1-q×Y+1个比特至第SN1-(q+1)×Y个比特清零。Y可以是大于或等于2的正整数,q可以是大于或等于0的正整数。例如,Y可以等于滑动窗口的大小。SN1表示滑动窗口内的第1个序列号。例如,假设滑动窗口的大小为8,q等于0。若该目标内存单元保存的序列号SNN为92,则该芯片可以不对存储空间进行清零操作;若该目标内存单元保存的序列号SNN为92,则该芯片可以将1024个比特中的第81个比特至第88个比特清零。
在另一些实施例中,该芯片可以将第一存储空间以外的全部存储空间清零。例如,假设目标内存单元中保存的序列号为94,滑动窗口的长度为8。在此情况下,当前滑动窗口内的序列号为87至94。该第一存储空间是包括第87个比特至第94个比特的存储空间。该芯片可以将该1024个比特中除第87个比特至第94个比特以外的比特清零。
图6是根据本申请实施例提供的一种处理数据的方法的示意性流程图。
601,芯片获取数据流中的多个数据包,该芯片支持多线程,该多线程能够分别处理该多个数据包。
602,该芯片分别对该多个数据包进行原子操作,该原子操作用于更新目标内存单元保存的序列号,该目标内存单元用于保存该数据流中的最新序列号。
可选的,在一些实施例中,该原子操作用于执行以下步骤以更新该目标内存单元保存的序列号:获取第一序列号和第二序列号,该第一序列号为该原子操作处理的数据包携带的序列号,该第二序列号为该目标内存单元当前保存的序列号;比较该第一序列号和该第二序列号的大小;若该第一序列号大于该第二序列号,则将该目标内存单元保存的序列号更新为该第一序列号;若该第一序列号小于或等于该第二序列号,则维持该目标内存单元保存的序列号不变。
例如,对于图3所示的步骤302,该第一序列号是95,该第二序列号是92。又如,对于图3所示的步骤303,该第一序列号可以是93,该第二序列号是95。
可选的,在一些实施例中,该方法还包括:该芯片将第一存储空间以外的部分或全部用于保存接收指示信息的存储空间清零,该第一存储空间用于保存对应于当前滑动窗口内的序列号对应的接收指示信息,该接收指示信息用于指示是否成功接收到携带有对应的序列号的数据包。
可选的,在一些实施例中,该芯片将第一存储空间以外的部分或全部存储空间清零,包括:该芯片确定第三序列号,该第三序列号为该目标内存单元保存的序列号;该芯片确定该第三序列号为K个预设值中的一个,K为大于或等于2的正整数;该芯片将第二存储空间清零,其中该第二存储空间为K个存储空间中对应于该第三序列号的存储空间,该第二存储空间保存的接收指示信息对应的序列号不属于该当前滑动窗口内的序列号。
例如,若该第三序列号为7,则第二存储空间可以是1024个比特中的第755个比特至第1023个比特对应的存储空间;若第三序列号为263,则该第二存储空间可以是1024个比特中的第0至第255个比特对应的存储空间。
可选的,在一些实施例中,该第二存储空间保存N个接收指示信息,该N个接收指示信息与N个连续的序列号,N为大于或等于2的正整数,该第二存储空间保存的N个接收指示信息对应的最大序列号SNN与该当前滑动窗口的第一个序列号SN1满足以下关系:SNN=SN1-1。
可选的,在一些实施例中,该第二存储空间保存的接收指示信息数目N、K与该数据流的最大序列号SNMAX满足以下关系:N=(SNMAX+1)/K。
图6所示方法的各个步骤的具体实现方式可以参考上述实施例,为了间接,在此就不再赘述。
图7是根据本申请实施例提供的一种芯片的示意性结构图。如图7所示的芯片700支持多线程,该多线程能够分别处理该多个数据包。芯片700包括输入/输出接口701和逻辑电路702。
输入/输出接口701,用于获取数据流中的多个数据包。
逻辑电路702,用于分别对该多个数据包进行原子操作,该原子操作用于更新目标内存单元保存的序列号,该目标内存单元用于保存该数据流中的最新序列号。
可选的,在一些实施例中,该原子操作用于执行以下步骤以更新该目标内存单元保存的序列号:获取第一序列号和第二序列号,该第一序列号为该原子操作处理的数据包携带的序列号,该第二序列号为该目标内存单元当前保存的序列号;比较该第一序列号和该第二序列号的大小;若该第一序列号大于该第二序列号,则将该目标内存单元保存的序列号更新为该第一序列号;若该第一序列号小于或等于该第二序列号,则维持该目标内存单元保存的序列号不变。
可选的,在一些实施例中,逻辑电路702,还用于将第一存储空间以外的部分或全部用于保存接收指示信息的存储空间清零,该第一存储空间用于保存对应于当前滑动窗口内的序列号对应的接收指示信息,该接收指示信息用于指示是否成功接收到携带有对应的序列号的数据包。
可选的,在一些实施例中,逻辑电路702,具体用于:确定第三序列号,该第三序列号为该目标内存单元保存的序列号;确定该第三序列号为K个预设值中的一个,K为大于或等于2的正整数;将第二存储空间清零,其中该第二存储空间为K个存储空间中对应于该第三序列号的存储空间,该第二存储空间保存的接收指示信息对应的序列号不属于该当前滑动窗口内的序列号。
可选的,在一些实施例中,该第二存储空间保存N个接收指示信息,该N个接收指示信息与N个连续的序列号,N为大于或等于2的正整数,该第二存储空间保存的N个接收指示信息对应的最大序列号SNN与该当前滑动窗口的第一个序列号SN1满足以下关系:SNN=SN1-1。
可选的,在一些实施例中,该第二存储空间保存的接收指示信息数目N、K与该数据流的最大序列号SNMAX满足以下关系:N=(SNMAX+1)/K。
输入/输出接口701和逻辑电路702的具体功能和有益效果,可以参见上述方法部分的具体实现方式,为了简洁,在此就不再赘述。
本申请实施例中的芯片可以是NP也可以是CPU。本申请实施例可以应用于支持IEEE802.1BC的芯片。例如,本申请实施例中的芯片可以是802.1CB协处理器。
图8是一个802.1CB协处理器的示意图。
如图8所示的802.1CB协处理器800中包括多个处理器801。图8所示的处理器也可以称为核(core)。处理器801可以是物理核,也可以是利用超线程技术得到的虚拟核。多个处理器801中的每个处理器可以运行一个线程。换句话说,多个处理器801也可以被认为是处理器800中运行的多个线程。
上述实施例中目标内存单元位于存储器802中。上述实施例中用于保存接收指示信息的内存单元也位于存储器802中。换句话说,存储器802用于保存最新序列号。存储器802还可以用于保存接收指示信息。存储器802可以是802.1CB协处理器内的存储器(即片内存储),也可以是802.1CB协处理器外的存储器(即片外存储)。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种通信设备,该通信设备内设置有上述实施例中的芯片。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种处理数据的方法,其特征在于,包括:
芯片获取数据流中的多个数据包,所述芯片支持多线程,所述多线程能够分别处理所述多个数据包;
所述芯片分别对所述多个数据包进行原子操作,所述原子操作用于更新目标内存单元保存的序列号,所述目标内存单元用于保存所述数据流中的最新序列号;
所述原子操作用于执行以下步骤以更新所述目标内存单元保存的序列号:
获取第一序列号和第二序列号,所述第一序列号为所述原子操作处理的数据包携带的序列号,所述第二序列号为所述目标内存单元当前保存的序列号;
比较所述第一序列号和所述第二序列号的大小;
若所述第一序列号大于所述第二序列号,则将所述目标内存单元保存的序列号更新为所述第一序列号;
若所述第一序列号小于或等于所述第二序列号,则维持所述目标内存单元保存的序列号不变。
2.如权利要求1所述的方法,其特征在于,还包括:
所述芯片将第一存储空间以外的部分或全部用于保存接收指示信息的存储空间清零,所述第一存储空间用于保存对应于当前滑动窗口内的序列号对应的接收指示信息,所述接收指示信息用于指示是否成功接收到携带有对应的序列号的数据包。
3.如权利要求2所述的方法,其特征在于,所述芯片将第一存储空间以外的部分或全部存储空间清零,包括:
所述芯片确定第三序列号,所述第三序列号为所述目标内存单元保存的序列号;
所述芯片确定所述第三序列号为K个预设值中的一个,K为大于或等于2的正整数;
所述芯片将第二存储空间清零,其中所述第二存储空间为K个存储空间中对应于所述第三序列号的存储空间,所述第二存储空间保存的接收指示信息对应的序列号不属于所述当前滑动窗口内的序列号。
4.如权利要求3所述的方法,其特征在于,所述第二存储空间保存N个接收指示信息,所述N个接收指示信息与N个连续的序列号,N为大于或等于2的正整数,
所述第二存储空间保存的N个接收指示信息对应的最大序列号SNN与所述当前滑动窗口的第一个序列号SN1满足以下关系:
SNN=SN1-1。
5.如权利要求3或4所述的方法,其特征在于,所述第二存储空间保存的接收指示信息数目N、K与所述数据流的最大序列号SNMAX满足以下关系:
N=(SNMAX+1)/K。
6.一种芯片,其特征在于,包括:
输入/输出接口,用于获取数据流中的多个数据包,所述芯片支持多线程,所述多线程能够分别处理所述多个数据包;
逻辑电路,用于分别对所述多个数据包进行原子操作,所述原子操作用于更新目标内存单元保存的序列号,所述目标内存单元用于保存所述数据流中的最新序列号;
所述原子操作用于执行以下步骤以更新所述目标内存单元保存的序列号:
获取第一序列号和第二序列号,所述第一序列号为所述原子操作处理的数据包携带的序列号,所述第二序列号为所述目标内存单元当前保存的序列号;
比较所述第一序列号和所述第二序列号的大小;
若所述第一序列号大于所述第二序列号,则将所述目标内存单元保存的序列号更新为所述第一序列号;
若所述第一序列号小于或等于所述第二序列号,则维持所述目标内存单元保存的序列号不变。
7.如权利要求6所述的芯片,其特征在于,所述逻辑电路,还用于将第一存储空间以外的部分或全部用于保存接收指示信息的存储空间清零,所述第一存储空间用于保存对应于当前滑动窗口内的序列号对应的接收指示信息,所述接收指示信息用于指示是否成功接收到携带有对应的序列号的数据包。
8.如权利要求7所述的芯片,其特征在于,所述逻辑电路,具体用于:
确定第三序列号,所述第三序列号为所述目标内存单元保存的序列号;
确定所述第三序列号为K个预设值中的一个,K为大于或等于2的正整数;
将第二存储空间清零,其中所述第二存储空间为K个存储空间中对应于所述第三序列号的存储空间,所述第二存储空间保存的接收指示信息对应的序列号不属于所述当前滑动窗口内的序列号。
9.如权利要求8所述的芯片,其特征在于,所述第二存储空间保存N个接收指示信息,所述N个接收指示信息与N个连续的序列号,N为大于或等于2的正整数,
所述第二存储空间保存的N个接收指示信息对应的最大序列号SNN与所述当前滑动窗口的第一个序列号SN1满足以下关系:
SNN=SN1-1。
10.如权利要求8或9所述的芯片,其特征在于,所述第二存储空间保存的接收指示信息数目N、K与所述数据流的最大序列号SNMAX满足以下关系:
N=(SNMAX+1)/K。
11.一种通信设备,其特征在于,所述通信设备包如权利要求6至10中任一项所述的芯片。
12.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-5中任一项所述的方法。
CN202010076867.0A 2020-01-20 2020-01-23 处理数据的方法和相关装置 Active CN113141235B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2020100658153 2020-01-20
CN202010065815 2020-01-20

Publications (2)

Publication Number Publication Date
CN113141235A CN113141235A (zh) 2021-07-20
CN113141235B true CN113141235B (zh) 2022-07-22

Family

ID=76809331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010076867.0A Active CN113141235B (zh) 2020-01-20 2020-01-23 处理数据的方法和相关装置

Country Status (1)

Country Link
CN (1) CN113141235B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113594077B (zh) * 2021-07-22 2024-03-08 重庆双芯科技有限公司 一种多级芯片串联系统芯片定位方法及多级芯片串联系统
CN115499393B (zh) * 2022-09-02 2024-05-07 深圳市楠菲微电子有限公司 一种基于网络接口芯片的tcp连接报文处理方法
CN117255055B (zh) * 2023-11-15 2024-02-23 新华三技术有限公司 报文转发方法、装置及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996958A (zh) * 2006-12-30 2007-07-11 华为技术有限公司 保证报文顺序的方法和装置
CN101471784A (zh) * 2007-12-29 2009-07-01 北京天融信网络安全技术有限公司 一种实现ipsec抗重放攻击的方法
CN101854302A (zh) * 2010-05-27 2010-10-06 中兴通讯股份有限公司 报文保序方法及系统
CN102156700A (zh) * 2010-02-12 2011-08-17 华为技术有限公司 数据库的访问方法、装置及系统
CN105303307A (zh) * 2015-10-16 2016-02-03 北京京北方信息技术有限公司 一种分配工作任务的方法及装置
CN105868031A (zh) * 2016-03-24 2016-08-17 车智互联(北京)科技有限公司 一种数据传输装置和方法
CN107515795A (zh) * 2017-09-08 2017-12-26 北京京东尚科信息技术有限公司 基于队列的多任务并行数据处理方法、装置、介质和设备
CN107977232A (zh) * 2017-10-24 2018-05-01 上海华为技术有限公司 一种数据处理方法、数据处理电路和网络设备
CN108491276A (zh) * 2018-03-26 2018-09-04 武汉斗鱼网络科技有限公司 函数调用管理方法及装置
CN108959032A (zh) * 2018-06-29 2018-12-07 北京金山安全软件有限公司 一种服务器业务指标的实时监视方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080107039A1 (en) * 2006-11-02 2008-05-08 Marios Hadjieleftheriou Method and Apparatus for Estimating Dominance Norms of a Plurality of Signals
US10031886B2 (en) * 2016-02-17 2018-07-24 International Business Machines Corporation Remote direct memory access-based method of transferring arrays of objects including garbage data

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996958A (zh) * 2006-12-30 2007-07-11 华为技术有限公司 保证报文顺序的方法和装置
CN101471784A (zh) * 2007-12-29 2009-07-01 北京天融信网络安全技术有限公司 一种实现ipsec抗重放攻击的方法
CN102156700A (zh) * 2010-02-12 2011-08-17 华为技术有限公司 数据库的访问方法、装置及系统
CN101854302A (zh) * 2010-05-27 2010-10-06 中兴通讯股份有限公司 报文保序方法及系统
CN105303307A (zh) * 2015-10-16 2016-02-03 北京京北方信息技术有限公司 一种分配工作任务的方法及装置
CN105868031A (zh) * 2016-03-24 2016-08-17 车智互联(北京)科技有限公司 一种数据传输装置和方法
CN107515795A (zh) * 2017-09-08 2017-12-26 北京京东尚科信息技术有限公司 基于队列的多任务并行数据处理方法、装置、介质和设备
CN107977232A (zh) * 2017-10-24 2018-05-01 上海华为技术有限公司 一种数据处理方法、数据处理电路和网络设备
WO2019080852A1 (zh) * 2017-10-24 2019-05-02 华为技术有限公司 一种数据处理方法、数据处理电路和网络设备
CN108491276A (zh) * 2018-03-26 2018-09-04 武汉斗鱼网络科技有限公司 函数调用管理方法及装置
CN108959032A (zh) * 2018-06-29 2018-12-07 北京金山安全软件有限公司 一种服务器业务指标的实时监视方法、装置及电子设备

Also Published As

Publication number Publication date
CN113141235A (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
CN113141235B (zh) 处理数据的方法和相关装置
US7646780B2 (en) System for reordering sequenced based packets in a switching network
US8000324B2 (en) Pipeline architecture of a network device
US8228908B2 (en) Apparatus for hardware-software classification of data packet flows
US7095739B2 (en) Reliable multicast communication
US7827182B1 (en) Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations
US6721800B1 (en) System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets
EP1662725B1 (en) Cut-through switching in a network device
US8923299B2 (en) Segmentation and reassembly of network packets
US20060179071A1 (en) Preventing aliasing of compressed keys across multiple hash tables
US11005785B2 (en) Segmentation and reassembly of network packets for switched fabric networks
TWI652623B (zh) 用於後援處理器單元的資訊查找請求處理或異常封包處理之方法及裝置
US6961808B1 (en) Method and apparatus for implementing and using multiple virtual portions of physical associative memories
US10091074B2 (en) Hardware acceleration architecture for signature matching applications for deep packet inspection
US8085766B2 (en) S-flow in a network device
US9912581B2 (en) Flow inheritance
US10148532B2 (en) Leader state transition compression mechanism to efficiently compress DFA based regular expression signatures
US20180063296A1 (en) Data-division control method, communication system, and communication apparatus
US20230105937A1 (en) Systems and methods for seamless reset for seamless redundancy of tsn/detnet
US20180316609A1 (en) Packet Batch Processing with Graph-Path Based Pre-Classification
US10592299B2 (en) Computation node device, parallel computer system, and control method for computation node device
US7051259B1 (en) Methods and apparatus for communicating time and latency sensitive information
EP3942751B1 (en) Method and system for processing network traffic using expanded labels
US20230396545A1 (en) Token-Based Networking Data Plane Protocol And Token Processing Engine
WO2022186856A1 (en) Token-based networking data plane protocol and token processing engine

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