CN105939293A - 一种skb回收方法及装置 - Google Patents

一种skb回收方法及装置 Download PDF

Info

Publication number
CN105939293A
CN105939293A CN201610044885.4A CN201610044885A CN105939293A CN 105939293 A CN105939293 A CN 105939293A CN 201610044885 A CN201610044885 A CN 201610044885A CN 105939293 A CN105939293 A CN 105939293A
Authority
CN
China
Prior art keywords
skb
available
message
chained list
descriptor
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
CN201610044885.4A
Other languages
English (en)
Other versions
CN105939293B (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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201610044885.4A priority Critical patent/CN105939293B/zh
Publication of CN105939293A publication Critical patent/CN105939293A/zh
Application granted granted Critical
Publication of CN105939293B publication Critical patent/CN105939293B/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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种SKB回收方法及装置,所述方法应用在多核网络设备中,所述方法包括:判断预设SKB链表中是否有可用的SKB;确定有可用的SKB时,获取所述可用的SKB;基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符;将所述报文的描述符发送给网络加速模块;当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。应用本申请实施例,大大减轻了CPU的处理压力,从而确保CPU正常发包,解决网络设备无法正常发送报文的问题。

Description

一种SKB回收方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种SKB回收方法及装置。
背景技术
SKB(Struct sk_buff,套接字缓存)是一种网络模块代码中重要的数据结构,CPU可以根据其指向的地址封装报文。现有技术中,配置有网络加速模块的网络设备向外发送报文时,CPU可以向内核申请SKB,并根据所述SKB指向的地址封装报文,当网络加速模块将所述报文发送到网络设备的硬件接口后,会生成回收消息并发送给CPU,所述CPU在接收到所述回收消息后,将所述SKB回收到内核中。在多核网络设备中,通常会单独设置一个CPU用于处理回收消息,由于需要处理所有的回收消息,所以该CPU异常繁忙,该CPU会将无法及时处理的回收消息缓存在缓存队列中。当缓存队列存满时,将无法接收所述网络加速模块发送的回收消息。如果其他CPU持续发包,大量的回收消息将缓存在所述网络加速模块的缓存队列中,若所述网络加速模块的缓存队列也存满,就会导致其他CPU无法发包,进而进入恶性循环,导致网络设备无法正常发送报文。
发明内容
有鉴于此,本申请提供一种SKB回收方法及装置,以解决现有技术中网络设备无法正常发送报文的问题。
具体地,本申请是通过如下技术方案实现的:
本申请提供一种SKB回收方法,所述方法应用在多核网络设备中,包括:
判断预设SKB链表中是否有可用的SKB;
确定有可用的SKB时,获取所述可用的SKB;
基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符;
将所述报文的描述符发送给网络加速模块;
当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。
可选的,所述回收所述可用的SKB到所述预设SKB链表中,包括:
回收所述可用的SKB到预设SKB链表尾部,并更新所述SKB的回收时间。
可选的,所述判断预设SKB链表中是否有可用的SKB,包括:
判断所述预设SKB链表头部的SKB的回收时间与当前时间的时间差是否大于等于时间阈值;
当大于等于所述时间阈值时,确定所述预设SKB链表头部的SKB为可用的SKB。
可选的,所述方法还包括:
确定没有可用的SKB时,向内核申请SKB,并根据所述SKB指向的地址进行报文封装。
可选的,所述预设SKB链表中SKB的数量大于等于所述网络加速模块能够缓存描述符的最大数量。
本申请还提供一种SKB回收装置,所述装置应用在多核网络设备中,包括:
SKB判断单元,用于判断预设SKB链表中是否有可用的SKB;
SKB获取单元,用于确定有可用的SKB时,获取所述可用的SKB;
报文封装单元,用于基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符;
描述符发送单元,用于将所述报文的描述符发送给网络加速模块;
SKB回收单元,用于当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。
可选的,所述SKB回收单元具体用于回收所述可用的SKB到预设SKB链表尾部,并更新所述SKB的回收时间。
可选的,所述SKB判断单元包括:
时间判断子单元,用于判断所述预设SKB链表头部的SKB的回收时间与当前时间的时间差是否大于等于时间阈值;
确定可用子单元,用于当大于等于所述时间阈值时,确定所述预设SKB链表头部的SKB为可用的SKB。
可选的,所述装置还包括:
SKB申请单元,用于确定没有可用的SKB时,向内核申请SKB,并根据所述SKB指向的地址进行报文封装。
可选的,所述预设SKB链表中SKB的数量大于等于所述网络加速模块能够缓存描述符的最大数量。
应用本申请实施例,网络设备中的CPU可以判断预设SKB链表中是否有可用的SKB,在确定有可用的SKB时,获取所述可用的SKB,所述CPU可以基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符,在将所述报文的描述符发送给网络加速模块后,若接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息,则回收所述可用的SKB到所述预设SKB链表中,整个过程,CPU无需处理回收消息,大大减少了CPU的处理压力,从而可以确保CPU正常发包,解决网络设备无法正常发送报文的问题。
附图说明
图1是现有技术中SKB回收的示意图;
图2是本申请一示例性实施例示出的一种SKB回收方法的流程图;
图3是本申请一示例性实施例示出的一种SKB回收装置的硬件结构图;
图4是本申请一示例性实施例示出的一种SKB回收装置的框图;
图5是本申请一示例性实施例示出的另一种SKB回收装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,其为现有技术中SKB回收的示意图。
图1示出了网络设备内部SKB回收的示意图。其中,网络设备可以是防火墙、路由器等设备,包括多核CPU、网络加速模块以及硬件接口等,所述硬件接口通常为网络接口,可以连接网线,使得所述网络设备可以对外通信,所述网络加速模块可以作为一个硬件模块单独存在,也可以与所述多核CPU集成在一个芯片中,本申请对此不做限制。
现有技术中,网络设备在向外发送报文时,CPU会根据向内核申请得到的SKB指向的地址封装报文,在封装完毕后,可以生成携带有所述报文地址的第一描述符以及携带有所述SKB地址的第二描述符,并将所述第一描述符和所述第二描述符发送到网络加速模块,所述网络加速模块可以在根据所述报文地址将所述报文发送到硬件接口后,发送携带有所述SKB地址的回收消息给该CPU,该CPU可以根据所述回收消息中的SKB地址回收所述SKB。
目前,网络设备通常会单独设置一个CPU用于处理回收消息,如图1所示,可以将CPU n设置为处理回收消息的CPU,当其他CPU持续构造报文并发送第一描述符和第二描述符给网络加速模块时,CPU n需要处理大量的回收消息,会异常繁忙,CPU n会将无法及时处理的回收消息缓存在缓存队列中,当缓存队列存满时,将无法接收所述网络加速模块发送的回收消息。如果CPU1至CPUn-1持续发包,大量的回收消息将缓存在所述网络加速模块的缓存队列中,当所述网络加速模块的缓存队列存满后,将无法接收CPU1至CPUn-1发送的第一描述符和第二描述符,从而进入恶性循环,降低网络设备发送报文的效率,导致网络设备无法正常发送报文。
为解决现有技术问题,本申请提供一种SKB回收方法以及对应的装置。该方法应用在多核网络设备上。所述多核网络设备向外发送报文时,会在预设SKB链表中获取一个可用的SKB,根据所述SKB指向的地址封装报文,构造带有所述报文地址的描述符,在将所述描述符发送到网络加速模块后,无需等待网络加速模块将所述报文发送到硬件接口,在确定所述描述符已经保存到所述网络加速模块的缓存队列时,即可回收所述SKB到所述预设SKB链表。在这个过程中,网络加速模块无需发送回收消息给CPU,因此CPU也无需处理回收消息,大大减轻了CPU的处理压力,从而可以确保CPU正常发包,解决网络设备无法正常发送报文的问题。
下面结合附图对本申请提供的一种SKB回收方法及装置进行说明。
参见图2,为本申请一种SKB回收方法的一个实施例流程图,该实施例从网络设备的CPU侧进行描述,包括以下步骤:
步骤201:判断预设SKB链表中是否有可用的SKB,确定有可用的SKB时,执行步骤202;确定没有可用的SKB时,执行步骤206。
在本实施例中,管理人员可以预先设置由一定数量的SKB组成的SKB链表,CPU在向外发包时,会先判断所述预设SKB链表中是否有可用的SKB,确定有可用的SKB时,执行步骤202;确定没有可用的SKB时,执行步骤206。
其中,所述预设SKB链表中SKB的数量可以大于等于网络加速模块能够缓存的描述符的最大数量,以确保CPU在封装报文时,可以在预设SKB链表中查找到可用的SKB。
步骤202:获取所述可用的SKB。
在本实施例中,确定所述网络设备的预设SKB链表中有可用的SKB时,获取所述SKB链表中可用的SKB。
步骤203:基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符。
在本实施例中,SKB可以作为指针指向网络设备内存中的某段地址,CPU可以在SKB指向的地址中进行报文封装。当CPU获取到可用的SKB时,可以在所述可用的SKB指向的地址中,写入需要与外界通信的数据信息,进而封装成报文保存在所述地址中,其中,所述报文可以是HTTP(HyperText TransferProtocol,超文本传输协议)报文、TCP(Transmission Control Protocol,传输控制协议)报文等。
一般来说,所述CPU在基于所述可用的SKB指向的地址进行报文封装后,可以构造所述报文的描述符,其中,所述报文的描述符主要包括所述报文的存储地址和长度,其大小通常为64bit。
步骤204:将所述报文的描述符发送给网络加速模块。
在本实施例中,CPU可以将所述报文的描述符发送给网络加速模块,所述网络加速模块可以根据所述描述符中的地址获取所述报文,并将获取到的报文发送给硬件接口。
步骤205:当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。
在本实施例中,所述网络加速模块在接收到CPU发送的所述报文的描述符后,一般来说,会先将所述报文的描述符保存到其缓存队列中,并返回缓存成功消息到所述CPU,当所述CPU接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,即可以回收所述可用的SKB到所述预设SKB链表中。
在另一个例子中,若网络加速模块的缓存队列占满,则无法缓存所述报文的描述符,所述网络加速模块将返回缓存失败消息到所述CPU,当所述CPU接收到所述网络加速模块针对所述报文的描述符返回的缓存失败消息后,同样可以回收所述可用的SKB到所述预设SKB链表中,此时,所述CPU可以清空所述可用的SKB指向的地址中保存的报文。由于本次报文没有成功发送,CPU可以重新执行步骤201,从预设SKB链表中获取可用的SKB,并进行报文封装的过程。
其中,所述缓存成功消息和所述缓存失败消息都可以用字符表示,比如:字符1表示缓存成功;字符0表示缓存失败。
步骤206:向内核申请可用的SKB,并根据所述可用的SKB进行报文封装。
在本实施例中,当所述预设SKB链表中没有可用的SKB时,可以使用传统的实现方式,先向内核申请一个SKB,再根据所述SKB进行报文封装,并在封装完毕后,生成携带有所述报文地址的第一描述符以及携带有所述SKB地址的第二描述符发送给网络加速模块。由此可见,所述网络设备可以同时应用两种方式回收SKB。
可选的,在本实施例中,可以为所述预设SKB链表中的SKB与内核中的SKB设置不同的标识,在上述步骤202中,获取到可用的SKB后,可以进一步根据所述SKB中携带的标识确认所述SKB是否为预设SKB链表中的SKB,若是预设SKB链表中的SKB,则继续执行步骤203。若不是预设链表中的SKB,则可以采用现有技术中提供的方法构造第一描述符以及第二描述符,并将所述第一描述符和所述第二描述符发送给网络加速模块,后续根据网络加速模块发送的回收消息回收所述SKB到内核中。
应用上述实施例,CPU在确定预设SKB链表中存在可用的SKB时,获取所述可用的SKB,根据所述可用的SKB构造描述符并发送到网络加速模块,在接收到所述网络加速模块基于所述描述符返回的缓存成功消息后,即可回收所述可用的SKB到所述预设SKB链表,由于所述网络加速模块无需再发送回收消息给CPU,因此CPU也无需处理回收消息,大大减轻了CPU的处理压力,从而确保CPU正常发包,解决网络设备无法正常发送报文的问题。
在本申请的另一个实施例中,由于CPU不需要再等待所述网络加速模块将所述报文发送到硬件接口,就可以回收所述可用的SKB,因此在所述可用的SKB被回收到所述预设SKB链表时,所述报文可能尚未被网络加速模块成功发送到硬件接口,为确保报文能够成功发送,可以为预设SKB链表中的各SKB配置回收时间,所述回收时间表示所述SKB在上次使用后被回收到所述预设SKB链表中的时间。当所述可用的SKB的回收时间与当前时间的时间差大于等于时间阈值时,表示所述网络加速模块可以有充足的时间将所述报文发送到硬件接口,可以确定所述SKB可用,因此可以获取所述SKB,并根据所述SKB指向的地址封装报文。
其中,所述预设SKB链表中各SKB回收时间的初始值可以为设备初始化的时间,CPU在获取可用SKB进行报文封装后,可以在将该SKB回收到所述预设SKB链表时,更新所述SKB的回收时间。在另一个例子中,所述预设SKB链表中各SKB的初始值也可以为0或者为空,CPU在获取可用SKB进行报文封装后,可以在将该SKB回收到所述预设SKB链表时,填写上所述SKB的回收时间。所述时间阈值可以根据本设备上各CPU的处理性能来设置。
一般来说,CPU在获取预设SKB链表中可用的SKB时,通常可以获取所述预设SKB链表头部的SKB,在回收时,将该SKB回收到所述预设SKB链表的尾部,因此在前述步骤201中,CPU可以先判断所述预设SKB链表头部的SKB的回收时间与当前时间的时间差是否大于等于所述时间阈值,若大于等于所述时间阈值,则确定有可用的SKB,执行步骤202,并在步骤205中接收到网络加速模块返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表的尾部,并更新所述可用的SKB的回收时间。如果接收到网络加速模块返回的缓存失败消息,则可以回收所述可用的SKB到所述预设SKB链表的头部,无需更新所述可用的SKB的回收时间。若所述预设SKB链表头部的SKB的回收时间与当前时间的时间差小于所述时间阈值,则确定没有可用的SKB,执行步骤206。
应用上述实施例,由于CPU在接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,就可以回收所述可用的SKB,因此所述CPU可以在获取SKB时,判断所述预设SKB链表头部的SKB的回收时间是否大于等于时间阈值,并在大于等于时间阈值时,确定该SKB可用,确保所述网络加速模块有足够的时间将上一次根据该SKB封装的报文发送到硬件接口,提高网络设备发送报文的成功率。
与上述SKB回收方法实施例相对应,本申请还提供了一种SKB回收装置的实施例。
本申请一种SKB回收装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请一种SKB回收装置所在设备的一种硬件结构图,除了图3所示的处理器、硬件接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
参考图4,是本申请一种SKB回收装置的一个实施例框图,所述装置可以应用在前述图3所示的网络设备上,所述SKB回收装置400可以包括:SKB判断单元410、SKB获取单元420、报文封装单元430、描述符发送单元440、SKB回收单元450和SKB申请单元460。参见图5,所述SKB判断单元410还可以包括:时间判断子单元411和确认可用子单元412。
其中,SKB判断单元410,用于判断预设SKB链表中是否有可用的SKB;
SKB获取单元420,用于确定有可用的SKB时,获取所述可用的SKB;
报文封装单元430,用于基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符;
描述符发送单元440,用于将所述报文的描述符发送给网络加速模块;
SKB回收单元450,用于当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。
可选的,所述SKB回收单元450具体用于回收所述可用的SKB到预设SKB链表尾部,并更新所述SKB的回收时间。
时间判断子单元411,用于判断所述预设SKB链表头部的SKB的回收时间与当前时间的时间差是否大于等于时间阈值;
确定可用子单元412,用于当大于等于所述时间阈值时,确定所述预设SKB链表头部的SKB为可用的SKB。
SKB申请单元460,用于确定没有可用的SKB时,向内核申请SKB,并根据所述SKB指向的地址进行报文封装。
可选的,所述预设SKB链表中SKB的数量大于等于所述网络加速模块能够缓存描述符的最大数量。
有上述实施例可见,CPU可以先判断所述预设SKB链表中是否有可用的SKB,在确定存在可用的SKB时,获取所述可用的SKB,根据所述可用的SKB构造描述符并发送到网络加速模块,在接收到所述网络加速模块基于所述描述符返回的缓存成功消息后,即可回收所述可用的SKB到所述预设SKB链表,由于所述网络加速模块无需再发送回收消息给CPU,因此CPU也无需处理回收消息,大大减轻了CPU的处理压力,从而确保CPU正常发包,解决网络设备无法正常发送报文的问题。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种套接字缓存SKB回收方法,其特征在于,所述方法应用在多核网络设备中,包括:
判断预设SKB链表中是否有可用的SKB;
确定有可用的SKB时,获取所述可用的SKB;
基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符;
将所述报文的描述符发送给网络加速模块;
当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。
2.根据权利要求1所述的方法,其特征在于,所述回收所述可用的SKB到所述预设SKB链表中,包括:
回收所述可用的SKB到预设SKB链表尾部,并更新所述SKB的回收时间。
3.根据权利要求2所述的方法,其特征在于,所述判断预设SKB链表中是否有可用的SKB,包括:
判断所述预设SKB链表头部的SKB的回收时间与当前时间的时间差是否大于等于时间阈值;
当大于等于所述时间阈值时,确定所述预设SKB链表头部的SKB为可用的SKB。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定没有可用的SKB时,向内核申请SKB,并根据所述SKB指向的地址进行报文封装。
5.根据权利要求1所述的方法,其特征在于,
所述预设SKB链表中SKB的数量大于等于所述网络加速模块能够缓存描述符的最大数量。
6.一种SKB回收装置,其特征在于,所述装置应用在多核网络设备中,包括:
SKB判断单元,用于判断预设SKB链表中是否有可用的SKB;
SKB获取单元,用于确定有可用的SKB时,获取所述可用的SKB;
报文封装单元,用于基于所述可用的SKB指向的地址进行报文封装,并构造所述报文的描述符;
描述符发送单元,用于将所述报文的描述符发送给网络加速模块;
SKB回收单元,用于当接收到所述网络加速模块针对所述报文的描述符返回的缓存成功消息后,回收所述可用的SKB到所述预设SKB链表中。
7.根据权利要求6所述的装置,其特征在于,所述SKB回收单元具体用于回收所述可用的SKB到预设SKB链表尾部,并更新所述SKB的回收时间。
8.根据权利要求7所述的装置,其特征在于,所述SKB判断单元包括:
时间判断子单元,用于判断所述预设SKB链表头部的SKB的回收时间与当前时间的时间差是否大于等于时间阈值;
确定可用子单元,用于当大于等于所述时间阈值时,确定所述预设SKB链表头部的SKB为可用的SKB。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
SKB申请单元,用于确定没有可用的SKB时,向内核申请SKB,并根据所述SKB指向的地址进行报文封装。
10.根据权利要求6所述的装置,其特征在于,
所述预设SKB链表中SKB的数量大于等于所述网络加速模块能够缓存描述符的最大数量。
CN201610044885.4A 2016-01-22 2016-01-22 一种skb回收方法及装置 Active CN105939293B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610044885.4A CN105939293B (zh) 2016-01-22 2016-01-22 一种skb回收方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610044885.4A CN105939293B (zh) 2016-01-22 2016-01-22 一种skb回收方法及装置

Publications (2)

Publication Number Publication Date
CN105939293A true CN105939293A (zh) 2016-09-14
CN105939293B CN105939293B (zh) 2019-01-22

Family

ID=57153169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610044885.4A Active CN105939293B (zh) 2016-01-22 2016-01-22 一种skb回收方法及装置

Country Status (1)

Country Link
CN (1) CN105939293B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106572036A (zh) * 2016-11-09 2017-04-19 杭州迪普科技股份有限公司 一种套接字缓存skb管理方法及装置
CN107257329A (zh) * 2017-05-31 2017-10-17 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法
CN107315622A (zh) * 2017-06-19 2017-11-03 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN108595270A (zh) * 2018-04-27 2018-09-28 新华三信息安全技术有限公司 一种内存资源的回收方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789959B (zh) * 2009-12-30 2013-05-08 北京天融信科技有限公司 一种多核系统中的skb重用方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789959B (zh) * 2009-12-30 2013-05-08 北京天融信科技有限公司 一种多核系统中的skb重用方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姚崎等: ""面向多核处理器的 Linux 网络报文缓冲区重用机制研究"", 《通信学报》 *
苏绥平: ""基于 Linux 系统的高性能报文捕获技术"", 《科技创新导报》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106572036A (zh) * 2016-11-09 2017-04-19 杭州迪普科技股份有限公司 一种套接字缓存skb管理方法及装置
CN107257329A (zh) * 2017-05-31 2017-10-17 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法
CN107257329B (zh) * 2017-05-31 2019-10-01 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法
CN107315622A (zh) * 2017-06-19 2017-11-03 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN107315622B (zh) * 2017-06-19 2020-05-12 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN108595270A (zh) * 2018-04-27 2018-09-28 新华三信息安全技术有限公司 一种内存资源的回收方法及装置

Also Published As

Publication number Publication date
CN105939293B (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
WO2017067391A1 (zh) 虚拟机的数据共享方法及装置
EP1581875B1 (en) Using direct memory access for performing database operations between two or more machines
CN105939293A (zh) 一种skb回收方法及装置
WO2000049507A1 (en) Method and apparatus for extending the range of the universal serial bus protocol
CN106034084A (zh) 一种数据传输方法及装置
CN111026324B (zh) 转发表项的更新方法及装置
CN105389120A (zh) 支持通过活动消息的rma api
CN111314480A (zh) 负载自适应跨平台文件传输协议及其分布式服务实现方法
CN103365810A (zh) 在c.a.n.总线上减少闪速存储装置编程时间的方法和设备
CN105610730A (zh) Cpu与网络设备之间的消息交互方法及系统
CN105933325A (zh) 一种基于NFSoRDMA的内核态RPC通信加速方法
US10305772B2 (en) Using a single work item to send multiple messages
CN110247926A (zh) 一种交互方法和系统
WO2019190859A1 (en) Efficient and reliable message channel between a host system and an integrated circuit acceleration system
CN108063809B (zh) 机器设备数据采集方法以及采集系统
CN105357148A (zh) 避免网络交换芯片输出报文乱序的方法及系统
CN106294225A (zh) 一种数据读取方法、对端设备及控制器
US9769093B2 (en) Apparatus and method for performing InfiniBand communication between user programs in different apparatuses
WO2022111326A1 (zh) 一种数据传输方法、装置、电子设备和存储介质
WO2019015487A1 (zh) 一种数据重传处理方法、rlc实体和mac实体
US7324438B1 (en) Technique for nondisruptively recovering from a processor failure in a multi-processor flow device
CN113746647B (zh) 数据传输方法、节点、电子设备及可读存储介质
CN109034768B (zh) 财务调拨方法、装置、计算机设备和存储介质
CN111865884B (zh) 一种报文处理方法、装置及设备
CN105959344A (zh) 一种Web推送方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant after: Hangzhou Dipu Polytron Technologies Inc

Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant before: Hangzhou Dipu Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant