分片报文的最后一片_一种处理分片报文的方法及装置与流程

b1745aafcd8b827b8b4b337505b09921.gif

本申请涉及但不限于通信领域,尤指一种处理分片报文的方法及装置。

背景技术:

对复杂的网络环境,整个环境的组网可能包括了很多台设备,由于每台设备只能知道本设备的MTU(Maximum Transmission Unit,最大传输单元)值,而无法获取路径上其他设备的MTU值的大小(IPV6(Internet Protocol Version 6,互联网协议的第六版)有PMTU(路径MTU),但也必须支持按最小MTU进行分片),这时需要路由器具备分片功能;在多核业务板(GSU)上面做分片重组功能,有可以方便布署、功能可裁减、性能可裁减等方面优点。但是由于多核业务板(GSU)一般为多核处理器,报文虽然是按照先后顺序到达各个CPU(中央处理器)的,但是不能保证每个CPU的处理速度一样,因此不能保证先到的报文先被处理完,从而分片后的报文会产生乱序的情况。这样,报文到达重组设备的时候也会产生乱序。

技术实现要素:

本发明实施例提供一种处理分片报文的方法及装置,以克服多核业务板分片使报文产生乱序的问题。

本发明实施例提供了一种处理分片报文的方法,适用于多核业务处理系统,包括:

当接收到的报文大于预配置的最大传输单元的值时,对所述报文进行分片;

发送分片后的最后一片报文时,判断排在所述报文前的报文是否已发送,如未发送,则缓存所述最后一片报文,如已发送,则发送所述最后一片报文。

可选地,所述对所述报文进行分片前,还包括:接收所述报文,当确定所述报文大于预配置的最大传输单元的值时,给所述报文打上序列号;

所述对所述报文进行分片后,还包括:将所述序列号复制给所述最后一片报文;

发送所述最后一片报文之前,还包括:剥掉所述序列号。

可选地,所述对所述报文进行分片前,还包括:

给所述报文打上指示由多核处理器进行分片的分片标记。

可选地,所述对所述报文进行分片包括:

轮询各个中央处理器CPU,按所述序列号的顺序将所述报文发送给空闲CPU进行分片处理。

本发明实施例提供一种处理分片报文的装置,包括:

分片模块,当接收到的报文大于预配置的最大传输单元的值时,对所述报文进行分片;

发送模块,用于发送分片后的最后一片报文时,判断排在所述报文前的报文是否已发送,如未发送则缓存所述最后一片报文,如已发送,则发送所述最后一片报文。

可选地,所述装置还包括:

接收模块,用于接收所述报文,当确定所述报文大于预配置的最大传输单元的值时,给所述报文打上序列号后,输出给所述分片模块;

所述分片模块,对所述报文进行分片后还用于:将所述序列号复制给所述最后一片报文;

所述发送模块,发送所述最后一片报文之前还用于:剥掉所述序列号。

可选地,所述接收模块,将所述报文输出给所述分片模块之前还用于,给所述报文打上指示由多核处理器进行分片的分片标记。

可选地,所述分片模块,对所述报文进行分片包括:轮询各个中央处理器CPU,按所述序列号的顺序将所述报文发送给空闲CPU进行分片处理。

综上,本发明实施例提供一种处理分片报文的方法及装置,可以克服现有技术中存在的多核业务板分片会产生乱序的问题。该方法通过线卡在报文上送多核业务板分片之前为报文打上序列号,并通过序列号控制最后一片分片报文的顺序来保证整个报文的时序。

附图说明

图1为本发明实施例的一种处理分片报文的方法的流程图;

图2为本发明实施例的一种处理分片报文的装置的示意图;

图3为本发明实施例的工作原理的基本架构图;

图4为本发明实施例的基本工作流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本发明实施例提供的一种处理分片报文的方法,如图1所示,包括以下步骤:

步骤11、当接收到的报文大于预配置的最大传输单元的值时,对所述报文进行分片;

步骤12、发送分片后的最后一片报文时,判断排在所述报文前的报文是否已发送,如未发送,则缓存所述最后一片报文,如已发送,则发送所述最后一片报文。

图2为本发明实施例的一种处理分片报文的装置的示意图,如图2所示,本实施例的装置包括:

分片模块,当接收到的报文大于预配置的最大传输单元的值时,对所述报文进行分片;

发送模块,用于发送分片后的最后一片报文时,判断排在所述报文前的报文是否已发送,如未发送则缓存所述最后一片报文,如已发送,则发送所述最后一片报文。

可选地,本实施例的装置还可以包括:

接收模块,用于接收所述报文,当确定所述报文大于预配置的最大传输单元的值时,给所述报文打上序列号后,输出给所述分片模块;

所述分片模块,对所述报文进行分片后还用于:将所述序列号复制给所述最后一片报文;

所述发送模块,发送所述最后一片报文之前还用于:剥掉所述序列号。

可选地,所述接收模块,将所述报文输出给所述分片模块之前还用于,给所述报文打上指示由多核处理器进行分片的分片标记。

可选地,所述分片模块,对所述报文进行分片包括:轮询各个中央处理器CPU,按所述序列号的顺序将所述报文发送给空闲CPU进行分片处理。

以下以实施例对本申请的方法进行详细的说明。

图3为本发明实施例的多核业务板报文分片的基本架构图。本实施例的硬件模块部分包括:设备的主控板、多核处理板和线卡。图3中,R-CPU是主控板MPU上面的CPU,L-CPU就是线卡上的CPU。其中,主控板需要OAM进行将需要分片的报文上送多核处理板的命令配置。

图4为本发明实施例的处理分片报文的流程图,本实施例包括以下步骤:

步骤100、telnet(远程登陆)到设备OAM(Operation Administration Management,运行管理维护)(命令配置)界面配置接口的MTU(最大传输单元)值;

需要在OAM界面上配置接口MTU,主控板将配置的接口MTU的值A下发到线卡的FTM(Forwarding Table Manage,转发表管理),FTM获取接口MTU,Np(Network Processor,网络处理器)(PFU上的网络处理器)从FTM读取配置值A,Np获取接口MTU。

需要在OAM界面上配置需上送多核业务板的分片标记,FTM获取需上送多核业务板的分片标记,Np获取需上送多核业务板的分片标记;

步骤101、Np判断当接收到报文的大小B是否大于接口MTU值A,若不大于,则直接发送,若大于,则转步骤102;

Np判断当接收到报文的大小B大于接口MTU值A时,给所述报文打上指示由多核处理器进行分片的分片标记,然后转步骤102。

步骤102、Np将报文打上序列号上送多核业务板进行处理;

在PFU(Packet Forwarding Unit,线卡功能子单元)(PFU为报文进来的板卡,上面有接口卡)上面给报文打序列号,并将报文上送给多核业务板(多核业务板不是报文进来的板卡,报文进来后再送给多核业务板进行处理)。

步骤103、多核业务处理板轮询CPU,将先到的报文发送给空闲CPU进行处理;

多核业务版收到报文后,轮询各CPU,判断是否有空闲CPU,若有空闲CPU,则将先到达并打上序列号的报文给空闲的CPU进行处理,如果所有CPU都忙,则等待一个等待周期后继续轮询;

步骤104、CPU收到报文后,根据接口配置MTU对报文进行分片,并将序列号复制给mf=0的最后一片报文,将分片后的报文发给多核业务板;

步骤105、多核业务板将分片后的报文发给Np;

步骤106、Np收到的报文判断mf值,如mf值等于1的直接转发,如mf等于0,则转步骤107;

步骤107、判断前一个序列号的mf=0的报文是否发送;若未发送,则放在缓存区等待,等一个时间周期,再进行判断,待前一个序列号的mf=0的报文发送之后,才从缓存队列中取出发送;如已经发送,则剥掉序列号发送。

采用本发明实施例所述方法,与相关技术相比,取得了很大的进步,多核业务板处理分片报文的优势可以多个cpu并行处理业务,增加整机的处理效率和性能,但是多cpu处理分片业务必然会出现乱序的情况,由于重组报文时,只有最后一片报文到达目的地才会进行重组,因此只需要控制最后一片mf=0的报文就可以保序,而mf=0的报文往往是所有分片报文里面最小的,只处理最后一片报文,不会过多增加设备的负担。

本发明实施例还提供了一种计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令被执行时实现所述处理分片报文的方法。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值