CN112737977B - 一种数据包处理方法以及装置 - Google Patents

一种数据包处理方法以及装置 Download PDF

Info

Publication number
CN112737977B
CN112737977B CN202011578250.5A CN202011578250A CN112737977B CN 112737977 B CN112737977 B CN 112737977B CN 202011578250 A CN202011578250 A CN 202011578250A CN 112737977 B CN112737977 B CN 112737977B
Authority
CN
China
Prior art keywords
storage space
ports
port
data packets
data packet
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
CN202011578250.5A
Other languages
English (en)
Other versions
CN112737977A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011578250.5A priority Critical patent/CN112737977B/zh
Publication of CN112737977A publication Critical patent/CN112737977A/zh
Application granted granted Critical
Publication of CN112737977B publication Critical patent/CN112737977B/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

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

Abstract

本申请提供一种数据包处理方法以及装置,该方法包括:接收多个端口中每个端口发送的数据包;根据每个端口发送的数据包的包头信息,将数据包缓存于包头信息对应的存储空间内;在判断出第一存储空间可以调整的情况下,扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包;在判断出第一存储空间不可以调整的情况下,阻止第一存储空间对应的端口继续发送数据包;根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将多个端口中每个端口发送的数据包发送至服务器,以使服务器对多个端口中每个端口发送的数据包进行处理。这样,可以避免各个端口的数据包互相干扰。

Description

一种数据包处理方法以及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种数据包处理方法以及装置。
背景技术
Avalon总线有两种接口Avalon-MM(memory map)和Avalon-ST(stream)。其中Avalon-MM类型的接口信号分为控制信号和数据信号,通过地址读写数据。Avalon-ST接口是一种单向点对点的高速接口,主要针对的是高速数据流的传输,减少数据流处理中的瓶颈。在网口通过Avalon_st接口向服务器host传输数据时,都需要经过缓存空间(First infirst out,FIFO)进行缓存。
对于单端口网口,普通FIFO就可以满足要求。但是对于多端口网口(数据包来自多个端口,端口port编号不同),来自各端口的数据量不同。有的端口数据包多,有的端口数据包少。而且各个端口的数据包优先级也不同。此时在对各个端口数据包进行处理时会出现互相干扰的情况。
发明内容
本申请提供了一种数据包处理方法以及装置,以解决现有技术中,对于多端口网口,在对各个端口的数据包进行处理时会出现互相干扰的情况的问题。
第一方面,本发明提供了一种数据包处理方法,包括:
接收多个端口中每个端口发送的数据包;
根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
可选的,在所述接收多个端口中每个端口发送的数据包的步骤之前,所述方法还包括:
接收所述服务器发送的存储空间配置信息;
根据所述存储空间配置信息,设置所述多个存储空间;
设置所述多个存储空间中每个存储空间的优先级、所述每个存储空间的空间大小、所述每个存储空间的可调整状态。
可选的,在所述根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器的步骤之后,所述方法还包括:
在检测到所述多个存储空间中的第二存储空间内的数据包等待处理的时长超过预设第二阈值的情况下,向所述服务器发送通知消息,以使所述服务器根据所述通知消息终止处理所述多个存储空间中除所述第二存储空间之外的其他存储空间内的数据包,并处理所述第二存储空间内的数据包。
可选的,在所述根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器的步骤之后,所述方法还包括:
检测所述多个端口中每个端口发送的数据包是否完整;
在检测到所述多个端口中的目标端口发送的数据包不完整的情况下,向所述服务器发送中断信号,以使所述服务器根据所述中断信号终止处理所述目标端口发送的不完整数据包。
可选的,在判断出所述第一存储空间可以调整,且扩大了所述第一存储空间的情况下,所述方法还包括:
缩小所述多个存储空间中除所述第一存储空间之外的其他存储空间。
可选的,所述多个存储空间的数量不超过32个。
可选的,所述多个端口为4个端口。
第二方面,本发明还提供了一种数据包处理装置,包括:
接收模块,用于接收多个端口中每个端口发送的数据包;
第一缓存模块,用于根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测模块,用于检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
判断模块,用于在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
第二缓存模块,用于在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
阻止模块,用于在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
发送模块,用于根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
第三方面,本发明还提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机程序时实现第一方面所述的数据包处理方法的步骤。
第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据包处理方法的步骤。
由以上技术方案可知,本发明实施例提供的一种数据包处理方法以及装置,接收多个端口中每个端口发送的数据包;根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。这样,可以自动为来自多个端口中每个端口的数据包分配独立的存储空间。还可以在判断出第一存储空间可以调整的情况下,扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包;或者,在判断出第一存储空间不可以调整的情况下,可以阻止第一存储空间对应的端口继续发送数据包。避免各个端口的数据包互相干扰。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种数据包处理方法的流程图;
图2为本发明提供的一种FIFO的示意图;
图3为本发明提供的一种数据包处理装置的结构图;
图4为本发明提供的一种电子设备的实施例示意图;
图5为本发明提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的***和方法的示例。
参见图1,图1是本发明提供的一种数据包处理方法的流程图。如图1所示,包括以下步骤:
步骤101、接收多个端口中每个端口发送的数据包。
示例性的,如图2所示,为一种FIFO的示意图。在图2中,FIFO包含Avalon接口模块,控制模块,记忆memory模块,解析模块,状态&中断模块。其中,Avalon接口模块包含Avalon_MM接口,Avalon_st sink接口,Avalon_st source接口。
Avalon接口模块的主要功能是连接外设与host,实现控制信号和数据的传输。
可选的,在所述接收多个端口中每个端口发送的数据包的步骤之前,所述方法还包括:
接收所述服务器发送的存储空间配置信息;
根据所述存储空间配置信息,设置所述多个存储空间;
设置所述多个存储空间中每个存储空间的优先级、所述每个存储空间的空间大小、所述每个存储空间的可调整状态。
进一步的,控制模块可以接收服务器发送的存储空间配置信息,并根据存储空间配置信息,设置多个存储空间。还可以设置多个存储空间中每个存储空间的优先级、每个存储空间的空间大小、每个存储空间的可调整状态。即控制模块的主要功能是接收来自host的配置信息,根据host的配置信息对memory模块进行控制。包括FIFO中通道channel的个数、每个channel的空间大小、空间大小是否可以调整、各个channel空间的已满almostfull和已空almost empty的阈值以及各个channel的数据传输的优先级等等。
状态中断模块主要有两个功能:一个是实时监测memory模块各channel的状态,包括各个channel此时的空间占用情况,是否符合空间调整的条件。各个channel中数据包的个数。另一个重要功能是向host发送通知消息/中断信号。当出现错误error情况,即多次收到不完整的数据包,或者当优先级较低的数据包长时间得不到处理时,该状态中断模块会向host发送对应的通知消息/中断信号,host也可以通过配置该状态中断模块屏蔽通知消息/中断信号。
解析模块的主要功能是接收来自Avalon_st sink的各个端口的数据包,并根据包头信息将不同端口的数据包发送到对应的memory channel中。同时根据状态中断模块的状态信息,决定是否阻止端口继续发送数据包。
Memory模块的主要功能是根据host的配置信息,将memory的总空间分成对应的多个channel、决定各个channel的大小、已满full的阈值、已空empty的阈值以及各个channel的优先级等等。
如图2所示,假设外设是一个四端口的网口,分别为端口port1、port2、port3和port4,数据的优先级依次降低。且在实际应用中port1的数据量明显超过其他端口数据量。首先host对FIFO进行配置,将memory的channel个数设置为4,可以将channel1的空间设为256M,优先级设为1(最高);将channel2,channel3,channel4都设为64M,优先级依次设为2、3、4。同时设置memory中各channel的空间大小可以调整。
示例性的,四端口网口开始发送数据包,Avalon_st sink接口可以接收多个端口中每个端口发送的数据包。
步骤102、根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内。
示例性的,所有数据包都带有包头信息,解析模块可以根据每个端口发送的数据包的包头信息,将数据包缓存于包头信息对应的存储空间内。即解析模块可以根据包头信息将来自各个端口的数据包发送到memory对应的channel。
步骤103、检测所述多个端口对应的多个存储空间中每个存储空间的占用状态。
示例性的,memory模块会实时的将各个channel的状态信息发送给状态中断模块。状态中断模块可以检测多个端口对应的多个存储空间中每个存储空间的占用状态。
步骤104、在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整。
示例性的,在检测到多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,可以拉高对应信号线,由解析模块判断第一存储空间是否可以调整。
步骤105、在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包。
示例性的,在判断出第一存储空间可以调整的情况下,可以扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包。
步骤106、在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包。
示例性的,在判断出第一存储空间不可以调整的情况下,解析模块可以将准备好的ready信号拉低,进而阻止第一存储空间对应的端口继续发送数据包。这样,在判断出第一存储空间可以调整的情况下,可以扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包,灵活性更好。
可选的,在判断出所述第一存储空间可以调整,且扩大了所述第一存储空间的情况下,所述方法还包括:
缩小所述多个存储空间中除所述第一存储空间之外的其他存储空间。
进一步的,在判断出第一存储空间可以调整,且扩大了第一存储空间的情况下,可以缩小多个存储空间中除第一存储空间之外的其他存储空间。
步骤107、根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
示例性的,Memory模块接收来自解析模块的数据,根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将多个端口中每个端口发送的数据包发送至服务器,以使服务器对多个端口中每个端口发送的数据包进行处理。各个channel的数据处理顺序是按照优先级进行的,如果优先级高的channel里面的数据没有处理完,那么不会轮到低优先级的channel。
可选的,在所述根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器的步骤之后,所述方法还包括:
在检测到所述多个存储空间中的第二存储空间内的数据包等待处理的时长超过预设第二阈值的情况下,向所述服务器发送通知消息,以使所述服务器根据所述通知消息终止处理所述多个存储空间中除所述第二存储空间之外的其他存储空间内的数据包,并处理所述第二存储空间内的数据包。
进一步的,状态中断模块在检测到多个存储空间中的第二存储空间内的数据包等待处理的时长超过预设第二阈值的情况下,可以向服务器发送通知消息,以使服务器根据通知消息终止处理多个存储空间中除第二存储空间之外的其他存储空间内的数据包,并处理第二存储空间内的数据包。即如果高优先级的channel一直有数据,导致低优先级channel的等待处理时间达到设定的阈值,那么状态中断模块会向host发送通知消息,请求host优先处理低优先级的channel中的数据。这样,可以防止低优先级channel中的数据包长时间得不到处理,使每个channel中的数据包都可以被均衡的处理。
可选的,在所述根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器的步骤之后,所述方法还包括:
检测所述多个端口中每个端口发送的数据包是否完整;
在检测到所述多个端口中的目标端口发送的数据包不完整的情况下,向所述服务器发送中断信号,以使所述服务器根据所述中断信号终止处理所述目标端口发送的不完整数据包。
进一步的,如前所述,状态中断模块可以检测多个端口中每个端口发送的数据包是否完整。在检测到多个端口中的目标端口发送的数据包不完整的情况下,可以向服务器发送中断信号,以使服务器根据中断信号终止处理目标端口发送的不完整数据包。
Host可以通过Avalon_MM接口访问控制模块和状态中断模块,并获取状态信息和配置信息。
可选的,所述多个存储空间的数量不超过32个。
进一步的,上述多个存储空间的数量不超过32个,即FIFO最多可以扩展为32个channel。
可选的,所述多个端口为4个端口。
进一步的,如前所述,多个端口可以为4个端口。
需要说明的是,现有技术中,对于多端口网口(数据包来自多个端口,端口port编号不同),来自各端口的数据量不同。有的端口数据包多,有的端口数据包少。而且各个端口的数据包优先级也不同。此时在对各个端口数据包进行处理时会出现互相干扰的情况。
而在本申请中,可以自动为来自多个端口中每个端口的数据包分配独立的存储空间。还可以在判断出第一存储空间可以调整的情况下,扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包;或者,在判断出第一存储空间不可以调整的情况下,可以阻止第一存储空间对应的端口继续发送数据包。避免各个端口的数据包互相干扰。
由以上技术方案可知,本发明实施例提供的一种数据包处理方法,接收多个端口中每个端口发送的数据包;根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。这样,可以自动为来自多个端口中每个端口的数据包分配独立的存储空间。还可以在判断出第一存储空间可以调整的情况下,扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包;或者,在判断出第一存储空间不可以调整的情况下,可以阻止第一存储空间对应的端口继续发送数据包。避免各个端口的数据包互相干扰。
参见图3,图3是本发明提供的一种数据包处理装置的结构图。如图3所示,数据包处理装置300包括接收模块301、第一缓存模块302、检测模块303、判断模块304、第二缓存模块305、阻止模块306和发送模块307,其中:
接收模块301,用于接收多个端口中每个端口发送的数据包;
第一缓存模块302,用于根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测模块303,用于检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
判断模块304,用于在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
第二缓存模块305,用于在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
阻止模块306,用于在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
发送模块307,用于根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
数据包处理装置300能够实现图1的方法实施例中数据包处理装置实现的各个过程,为避免重复,这里不再赘述。且数据包处理装置300可以实现自动为来自多个端口中每个端口的数据包分配独立的存储空间。还可以在判断出第一存储空间可以调整的情况下,扩大第一存储空间,并继续利用第一存储空间缓存对应的端口发送的数据包;或者,在判断出第一存储空间不可以调整的情况下,可以阻止第一存储空间对应的端口继续发送数据包。避免各个端口的数据包互相干扰。
请参阅图4,图4为本申请实施例提供的电子设备的实施例示意图。
如图4所示,本申请实施例提供了一种电子设备400,包括存储器410、处理器420及存储在存储器410上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:
接收多个端口中每个端口发送的数据包;
根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
在具体实施过程中,处理器420执行计算机程序411时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例中一种数据包处理装置所采用的设备,故而基于本申请实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍,只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
请参阅图5,图5为本申请实施例提供的一种计算机可读存储介质的实施例示意图。
如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现如下步骤:
接收多个端口中每个端口发送的数据包;
根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
在具体实施过程中,该计算机程序511被处理器执行时可以实现图1对应的实施例中任一实施方式。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的数据包处理方法中的流程。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修该或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种数据包处理方法,其特征在于,包括:
接收多个端口中每个端口发送的数据包;
根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
2.如权利要求1所述的方法,其特征在于,在所述接收多个端口中每个端口发送的数据包的步骤之前,所述方法还包括:
接收所述服务器发送的存储空间配置信息;
根据所述存储空间配置信息,设置所述多个存储空间;
设置所述多个存储空间中每个存储空间的优先级、所述每个存储空间的空间大小、所述每个存储空间的可调整状态。
3.如权利要求2所述的方法,其特征在于,在所述根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器的步骤之后,所述方法还包括:
在检测到所述多个存储空间中的第二存储空间内的数据包等待处理的时长超过预设第二阈值的情况下,向所述服务器发送通知消息,以使所述服务器根据所述通知消息终止处理所述多个存储空间中除所述第二存储空间之外的其他存储空间内的数据包,并处理所述第二存储空间内的数据包。
4.如权利要求1所述的方法,其特征在于,在所述根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器的步骤之后,所述方法还包括:
检测所述多个端口中每个端口发送的数据包是否完整;
在检测到所述多个端口中的目标端口发送的数据包不完整的情况下,向所述服务器发送中断信号,以使所述服务器根据所述中断信号终止处理所述目标端口发送的不完整数据包。
5.如权利要求1所述的方法,其特征在于,在判断出所述第一存储空间可以调整,且扩大了所述第一存储空间的情况下,所述方法还包括:
缩小所述多个存储空间中除所述第一存储空间之外的其他存储空间。
6.如权利要求1至5中任一项所述的方法,其特征在于,所述多个存储空间的数量不超过32个。
7.如权利要求6所述的方法,其特征在于,所述多个端口为4个端口。
8.一种数据包处理装置,其特征在于,包括:
接收模块,用于接收多个端口中每个端口发送的数据包;
第一缓存模块,用于根据所述每个端口发送的数据包的包头信息,将所述数据包缓存于所述包头信息对应的存储空间内;
检测模块,用于检测所述多个端口对应的多个存储空间中每个存储空间的占用状态;
判断模块,用于在检测到所述多个存储空间中的第一存储空间的占用状态超过预设第一阈值的情况下,判断所述第一存储空间是否可以调整;
第二缓存模块,用于在判断出所述第一存储空间可以调整的情况下,扩大所述第一存储空间,并继续利用所述第一存储空间缓存对应的端口发送的数据包;
阻止模块,用于在判断出所述第一存储空间不可以调整的情况下,阻止所述第一存储空间对应的端口继续发送数据包;
发送模块,用于根据缓存每个端口发送的数据包的存储空间的优先级,按照优先级从高到低的顺序将所述多个端口中每个端口发送的数据包发送至服务器,以使所述服务器对所述多个端口中每个端口发送的数据包进行处理。
9.一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任一项所述的数据包处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据包处理方法的步骤。
CN202011578250.5A 2020-12-28 2020-12-28 一种数据包处理方法以及装置 Active CN112737977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011578250.5A CN112737977B (zh) 2020-12-28 2020-12-28 一种数据包处理方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011578250.5A CN112737977B (zh) 2020-12-28 2020-12-28 一种数据包处理方法以及装置

Publications (2)

Publication Number Publication Date
CN112737977A CN112737977A (zh) 2021-04-30
CN112737977B true CN112737977B (zh) 2022-05-20

Family

ID=75606244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011578250.5A Active CN112737977B (zh) 2020-12-28 2020-12-28 一种数据包处理方法以及装置

Country Status (1)

Country Link
CN (1) CN112737977B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312188B1 (en) * 2009-12-24 2012-11-13 Marvell International Ltd. Systems and methods for dynamic buffer allocation
CN108011704B (zh) * 2016-11-01 2020-10-09 中芯国际集成电路制造(上海)有限公司 半双工通信装置及其通信方法、半双工通信的装置
CN110581877A (zh) * 2018-06-11 2019-12-17 佛山市顺德区美的电热电器制造有限公司 一种通信方法及其装置、电子设备及可读存储介质
CN110134332B (zh) * 2019-04-28 2022-03-08 平安科技(深圳)有限公司 一种数据存储方法及相关装置
CN111124291B (zh) * 2019-12-09 2023-05-30 北京金山云网络技术有限公司 分布式存储***的数据存储处理方法、装置、电子设备
CN111371704B (zh) * 2020-02-06 2024-03-15 视联动力信息技术股份有限公司 一种数据缓存方法、装置、终端设备和存储介质

Also Published As

Publication number Publication date
CN112737977A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
US8650356B2 (en) Microcontroller with CAN module
US8370558B2 (en) Apparatus and method to merge and align data from distributed memory controllers
US20030074502A1 (en) Communication between two embedded processors
EP3166269B1 (en) Queue management method and apparatus
CN110312283B (zh) 一种信息处理方法及装置
EP0436104A2 (en) FIFO with variable commit pointer
JP2007323098A (ja) 転送処理装置
EP3058684B1 (en) Network interface
CN115481048A (zh) 一种内存***及芯片
US20170024344A1 (en) Method and System for USB 2.0 Bandwidth Reservation
US7802031B2 (en) Method and system for high speed network application
KR100505689B1 (ko) 송수신 흐름에 따라 공유 버퍼 메모리의 할당량을제어하는 송수신 네트워크 제어기 및 그 방법
US5748633A (en) Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
EP2363807A1 (en) Address encryption/rate pacing
CN113157465B (zh) 基于指针链表的消息发送方法及装置
CN112737977B (zh) 一种数据包处理方法以及装置
KR100560277B1 (ko) 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체
CN116055409B (zh) 以太网卡的数据传输方法、装置、网络设备及存储介质
EP1430653B1 (en) Serial communication device with dynamic filter allocation
US9985874B2 (en) Network traffic split among multiple paths
KR20170117326A (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN113498600A (zh) 一种基于PCIe的数据传输方法及装置
CN116208574A (zh) 报文处理方法、装置、电子设备及计算机可读存储介质
CN113170500B (zh) 一种信息传输方法及装置
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备

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