具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明分片报文接收处理方法实施例一的流程图,本实施例在接收到分片报文时,可以直接获知该分片报文是否为长报文,如图1所示,该方法可以包括:
步骤101、获取待接收的分片报文的长度,并检测当前用于存储分片报文的缓存空间的剩余缓存容量。
本发明以下各实施例以应用到防火墙的接口板上为例进行说明。接口板可以通过多个输入端口接收网络上的分片报文。
在接口板通过输入端口接收到分片报文时,可以通过分片报文头中的长度信息,获知该分片报文的长度。
接口板要对接收到的分片报文进行缓存重组并转发,由此接口板有一缓存空间,用于将接收到的分片报文进行缓存。在接口板通过输入端口接收到分片报文时,接口板检测当前的缓存空间所剩余的缓存容量。
上述获取待接收的分片报文的长度的步骤和检测当前用于存储分片报文的缓存空间的剩余缓存容量的步骤之间并没有顺序限制。
步骤102、若根据分片报文的长度获知分片报文为长报文,则根据剩余缓存容量和预设的第一阈值,对分片报文进行处理;第一阈值为允许接收长报文的剩余缓存容量的最小值,长报文为报文长度超过预设长度的分片报文。
根据待接收的分片报文的长度可以判断出该分片报文是长报文或者该分片报文是短报文;当分片报文的分片报文长度超过预设长度时,该分片报文为长报文,否则为短报文。其中,在不同的应用环境下,上述的预设长度可以不同,该预设长度可以是根据应用环境配置的。
当待接收的分片报文为长报文时,根据当前的剩余缓存容量和预设的第一阈值的关系,对分片报文进行处理;当剩余缓存空间容量不小于第一阈值时,则接收并缓存该分片报文;当剩余缓存空间容量小于第一阈值时,就丢弃该分片报文,因为此时如果还缓存该分片报文,则可能会造成缓存耗尽和网络拥堵。当待接收到的分片报文为短报文时,是否接收并缓存该短报文就不受当前剩余缓存空间容量和第一阈值的关系的影响,而只要当前的缓存空间还有容量,就都接收并缓存该短报文。
本实施例提供的分片报文接收处理方法,首先根据从每个端口接收到的分片报文的长度判断该分片报文是否为长报文,当该分片报文为长报文时,根据剩余缓存空间容量和阈值,判断是否缓存该分片报文,本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
图2为本发明分片报文接收处理方法实施例二的流程图,在本发明方法实施例一的基础上,如图2所示,该方法可以包括:
步骤201、接口板获取通过输入端口待接收的分片报文的长度,并检测当前用于存储分片报文的缓存空间的剩余缓存容量。
步骤202、根据步骤201获取到的分片报文的长度,接口板获知该分片报文是否为长报文,并且将步骤201中检测到的当前的剩余缓存容量与第一阈值进行比较。
步骤203、若在步骤202中获知该分片报文为长报文,且当前的剩余缓存容量不小于第一阈值,则接口板开始接收并缓存该分片报文;然后执行步骤206。
步骤204、若在步骤202中获知该分片报文为长报文,且当前的剩余缓存容量小于第一阈值,则接口板丢弃该分片报文。
步骤205、若在步骤202中获知该分片报文为短报文,只要当前的剩余缓存容量大于零,则接口板就直接接收并缓存该分片报文。
步骤206、接口板检测当前的剩余缓存容量。
在接收并缓存长报文的过程中,接口板可以动态的检测当前的剩余缓存容量。
步骤207、接口板将步骤206检测到的当前的剩余缓存容量与预设的第二阈值进行比较,若剩余缓存容量不小于第二阈值,则执行步骤208,若剩余缓存容量小于第二阈值,则执行步骤209。
其中,第二阈值可以为接收并缓存长报文的过程中,允许接收长报文的剩余缓存容量的最小值,在具体应用过程中,第二阈值可以等于第一阈值,也可以小于第一阈值。
步骤208、接口板继续接收并缓存该分片报文。
在接口板继续接收并缓存该分片报文的过程中,仍然执行步骤206和步骤207,直至将该分片报文接收完全或者将该分片报文丢弃。
步骤209、接口板停止接收该分片报文,并且丢弃已经存入缓存空间的部分分片报文。
当此时剩余缓存容量小于第二阈值时,接口板已经接收并缓存该分片报文的一部分,所以此时除了停止从输入端口接收该分片报文,还要将缓存空间中已经存储的该分片报文的部分数据进行删除。
本实施例提供的分片报文接收处理方法,根据从每个端口接收到的分片报文的长度和剩余缓存空间容量的大小,判断是否缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量不小于第一阈值时,缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量小于第一阈值时,丢弃该分片报文;本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比;并且本实施例在接收并缓存长报文的过程中,还可以再检测当前的剩余缓存容量,若当前的剩余缓存容量不小于第二阈值,则继续接收该长报文,若当前的剩余缓存容量小于第二阈值,则停止接收该长报文,并将已接收的长报文丢弃,由此在增强了接收长报文能力的同时,更有效的避免了网络拥堵。
图3为本发明分片报文接收处理方法实施例三的流程图,本实施例在接收分片报文时,对接收到的分片报文数据进行累计,以获得接收到的分片报文数据的长度,如图3所示,该方法可以包括:
步骤301、在接收分片报文的过程中,获得分片报文的已接收数据的长度,并且检测用于存储分片报文的缓存空间的剩余缓存容量。
接口板通过多个输入端口接收分片报文,在接收分片报文的过程中,对该分片报文的已接收到的数据进行累计,实时的获得该分片报文的已接收数据的长度。
接口板要对接收到的分片报文进行缓存重组并转发,由此接口板有一缓存空间,用于将接收到的分片报文进行缓存。在接口板通过输入端口接收分片报文时,接口板动态的检测当前的缓存空间所剩余的缓存容量。
上述获取待接收的分片报文的长度的步骤和检测当前用于存储分片报文的缓存空间的剩余缓存容量的步骤之间并没有顺序限制。
步骤302、若根据已接收数据的长度获知分片报文为长报文,则根据剩余缓存容量和预设的第三阈值,对分片报文进行处理;第三阈值为允许接收长报文的剩余缓存容量的最小值,长报文为报文长度超过预设长度的分片报文。
若已接收数据的长度超过预设长度,则可以判断出该分片报文为长报文。其中,在不同的应用环境下,上述的预设长度可以不同,该预设长度可以是根据应用环境配置的。
当判断出该分片报文为长报文时,根据当前的剩余缓存容量和预设的第三阈值的关系,对分片报文进行处理;当剩余缓存空间容量不小于第三阈值时,则继续接收并缓存该分片报文;当剩余缓存空间容量小于第三阈值时,就丢弃该分片报文,因为此时如果还缓存该分片报文,则可能会造成缓存耗尽和网络拥堵。当已接收数据的长度未超过预设长度时,是否接收并缓存该分片报文就不受当前剩余缓存空间容量和第三阈值的关系的影响,而只要当前的缓存空间还有容量,就都接收并缓存该报文。
本实施例提供的分片报文接收处理方法,首先根据从每个端口接收到的分片报文的长度判断该分片报文是否为长报文,当该分片报文为长报文时,根据剩余缓存空间容量和第三阈值,判断是否缓存该分片报文,本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
图4为本发明分片报文接收处理方法实施例四的流程图,在本发明方法实施三的基础上,如图4所示,该方法可以包括:
步骤401、接口板通过多个输入端口接收分片报文。
步骤402、在通过输入端口接收分片报文的过程中,接口板获得分片报文的已接收数据的长度,并且检测用于存储分片报文的缓存空间的剩余缓存容量。
其中,接口板可以动态的检测缓存空间的剩余缓存容量。
步骤403、接口板将步骤402中获得的已接收数据的长度与预设长度进行比较,并且将步骤402中检测到的当前的剩余缓存容量与第三阈值进行比较。
步骤404、若在步骤403中获知已接收数据的长度大于预设长度,且当前的剩余缓存容量不小于第三阈值,则接口板继续接收并缓存分片报文。
在接口板继续接收并缓存分片报文的过程中,仍然执行步骤402和步骤403,直至将该分片报文接收完全或者将该分片报文丢弃。
步骤405、若在步骤403中获知已接收数据的长度大于预设长度,且当前的剩余缓存容量小于第三阈值,则接口板停止接收分片报文,并且丢弃已经存入缓存空间的已接收数据。
当此时剩余缓存容量小于第三阈值时,接口板已经接收并缓存该分片报文的一部分,所以此时除了停止从输入端口接收该分片报文,还要将缓存空间中已经存储的该分片报文的部分数据进行删除。
步骤406、若在步骤403中获知已接收数据的长度小于或等于预设长度,则只要当前的剩余缓存容量大于零,接口板就继续接收并缓存该分片报文。
本实施例提供的分片报文接收处理方法,根据从每个端口接收到的分片报文的长度和剩余缓存空间容量的大小,判断是否缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量不小于第三阈值时,缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量小于第三阈值时,丢弃该分片报文;本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
下面结合图5进一步详细说明图4所示的方法实施例,图5为本发明分片报文接收处理方法实施例五的示意图,参见图5,该方法具体可以包括:
接口板接收从多个输入端口输入的分片报文,并将该分片报文存储到接口板的缓存空间;
分端口报文长度寄存器动态的计算各自对应的输入端口当前已接收到的分片报文的长度,并锁存该长度;分端口报文长度寄存器可以是一组寄存器,其数量由输入端口的数量决定;
分端口报文链表首指针寄存器存储各自对应的输入端口当前接收到的分片报文的链表的第一个指针地址;分端口报文链表首指针寄存器也可以是一组寄存器,其数量由输入端口的数量决定;
缓存阈值寄存器将预先配置的阈值锁存起来;该预先配置的阈值用于跟当前剩余的缓存容量进行比较;
缓存剩余量计数器持续检测当前缓存空间的剩余缓存容量,并锁存该剩余缓存容量的监控结果;
比较器将当前的剩余缓存容量与阈值进行比较;
如果剩余缓存容量不足时,释放队列信息生成模块从分端口报文长度寄存器中,找出已接收数据大于长报文预设长度的分片报文,将该分片报文已接收的长度和该分片报文的链表的第一个指针地址一起存入释放队列,并标记为丢弃分片报文;如果剩余缓存容量充足时,在接收完成一个分片报文时,释放队列信息生成模块将接收的分片报文长度和该分片报文的链表的第一个指针地址存入释放队列,并标记为正常分片报文;
释放队列存储正常分片报文和直接丢弃分片报文的分片报文信息;该分片报文信息包括分片报文的长度、分片报文的链表的第一个指针地址和分片报文状态标记,该分片报文状态标记表示分片报文是丢弃分片报文或者是正常分片报文;
链表队列储存分片报文的链表地址,该链表地址与分片报文存储在缓存空间中的地址相对应;
包处理模块根据从释放队列中得到的分片报文信息和链表队列中的链表地址,将缓存空间中存储的正常分片报文进行重组并输出,将缓存空间中存储的丢弃分片报文丢弃并停止接收该丢弃分片报文。
本实施例提供的分片报文接收处理方法,根据从每个端口接收到的分片报文的长度和剩余缓存空间容量的大小,判断是否缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量不小于阈值时,缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量小于阈值时,丢弃该分片报文;本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图6为本发明分片报文接收处理装置实施例一的结构图,如图6所示,该装置包括:第一获取模块61和第一处理模块63。
第一获取模块61用于获取待接收的分片报文的长度,并检测当前用于存储分片报文的缓存空间的剩余缓存容量。第一处理模块63用于若根据分片报文的长度获知分片报文为长报文,则根据剩余缓存容量和预设的第一阈值,对分片报文进行处理;第一阈值为允许接收长报文的剩余缓存容量的最小值,长报文为报文长度超过预设长度的分片报文。
本实施例中的各模块的工作原理和工作流程,参见本发明各方法实施例中的描述,在此不再赘述。
本发明实施例的分片报文接收处理装置,首先根据第一获取模块获取到的从每个端口接收到的分片报文的长度,判断该分片报文是否为长报文,当该分片报文为长报文时,第一处理模块根据第一获取模块检测到的剩余缓存空间容量和预设的第一阈值时,判断是否缓存该分片报文,本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
图7为本发明分片报文接收处理装置实施例二的结构图,在本发明装置实施例一的基础上,如图7所示,该装置中的第一处理模块63具体可以包括:第一处理单元631和第二处理单元633;该装置还可以包括:检测模块65、缓存模块67和丢弃模块69。
第一处理单元631用于若根据分片报文的长度获知分片报文为长报文,且剩余缓存容量不小于第一阈值,则开始接收并缓存分片报文。第二处理单元633用于若根据分片报文的长度获知分片报文为长报文,且剩余缓存容量小于第一阈值,则丢弃分片报文。
检测模块65用于检测剩余缓存容量。缓存模块67用于若检测模块65检测到的剩余缓存容量不小于预设的第二阈值,则继续接收并缓存分片报文。丢弃模块69用于若检测模块65检测到的剩余缓存容量小于第二阈值,则停止接收分片报文,并且丢弃已经存入缓存空间的部分分片报文。
本实施例中的各模块的工作原理和工作流程,参见本发明各方法实施例中的描述,在此不再赘述。
本实施例提供的分片报文接收处理装置,根据第一获取模块获取到的从每个端口接收到的分片报文的长度和剩余缓存空间容量的大小,判断是否缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量不小于预设的第一阈值时,缓存模块缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量小于第一阈值时,丢弃模块丢弃该分片报文;本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比;并且本实施例在接收并缓存长报文的过程中,还可以通过检测模块检测当前的剩余缓存容量,若当前的剩余缓存容量不小于第二阈值,则继续接收该长报文,若当前的剩余缓存容量小于第二阈值,则停止接收该长报文,并将已接收的长报文丢弃,由此在增强了接收长报文能力的同时,更有效的避免了网络拥堵。
图8为本发明分片报文接收处理装置实施例三的结构图,如图8所示,该装置包括:第二获取模块81和第二处理模块83。
第二获取模块81用于在接收分片报文的过程中,获得分片报文的已接收数据的长度,并且检测用于存储分片报文的缓存空间的剩余缓存容量。第二处理模块83用于若根据已接收数据的长度获知分片报文为长报文,则根据剩余缓存容量和预设的第三阈值,对分片报文进行处理;第三阈值为允许接收长报文的剩余缓存容量的最小值,长报文为报文长度超过预设长度的分片报文。
本实施例中的各模块的工作原理和工作流程,参见本发明各方法实施例中的描述,在此不再赘述。
本发明实施例的分片报文接收处理装置,首先根据第二获取模块获取到的从每个端口接收到的分片报文的长度,判断该分片报文是否为长报文,当该分片报文为长报文时,第二处理模块根据第二获取模块获取到的剩余缓存空间容量和预设的第三阈值时,判断是否缓存该分片报文,本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
图9为本发明分片报文接收处理装置实施例四的结构图,在本发明装置实施例三的基础上,如图9所示,该装置中的第二处理模块83具体可以包括:缓存单元831和丢弃单元833。
缓存单元831用于若根据已接收数据的长度获知分片报文为长报文,且剩余缓存容量不小于第三阈值,则继续接收并缓存分片报文。丢弃单元833用于若根据已接收数据的长度获知分片报文为长报文,且剩余缓存容量小于第三阈值,则停止接收分片报文,并且丢弃已经存入缓存空间的已接收数据。
本实施例中的各模块的工作原理和工作流程,参见本发明各方法实施例中的描述,在此不再赘述。
本实施例提供的分片报文接收处理装置,根据第二获取模块获取到的从每个端口接收到的分片报文的长度和剩余缓存空间容量的大小,第二处理模块判断是否缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量不小于阈值时,缓存单元缓存该分片报文;当该分片报文为长报文,剩余缓存空间容量小于阈值时,丢弃单元丢弃该分片报文;本发明实施例增强接收长报文的能力,使得接收过程更加灵活,从而提高了正确接收长报文的概率,避免网络拥堵,并提高产品的性能价格比。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。