【技术实现步骤摘要】
一种报文转发方法、装置、设备和介质
[0001]本专利技术涉及报文转发
,尤其涉及一种报文转发方法、装置、设备和介质。
技术介绍
[0002]当前对报文的转发需要经过传统路由器、防火墙、无线产品等网络设备,网络设备上挂载有很多业务,对报文进行业务处理后再进行转发,这些业务包括部分无法采用硬件执行的业务,例如流量识别、应用层报文信息解析和地址转换(Network Address Translation Application Level Gateway,NAT ALG)业务等。不能采用硬件进行处理业务的报文要转发给网络设备的控制面,控制面将报文发送给转发面进行业务处理。
[0003]为了执行上述无法采用硬件执行的业务,在网络设备中采用了软件转发的架构执行业务,但软件转发的架构依赖对中央处理器(Central Processing Unit,CPU)、高速缓冲存储器(Cache)和内存等硬件资源的占用,对每个报文进行转发时均需要消耗硬件资源,当有大量的报文需要转发时,会加大对硬件资源的消耗并造成报文转发的延时。
[0004]现有的网络设备采用了流水线进行报文转发,如图1所示为一种流水线的示意图,一个流水线包括接收(Rx)、业务处理(Forward)、分发(Dispatch)和发送(Tx)共四个任务。具体的,通过网卡驱动接收到报文后,对报文进行解析后确定出报文的类型,对解析后的报文进行业务处理,其中包括应用识别、路由选择、目标互联网协议(Internet Protocol,IP)地址转换等路由前业务, ...
【技术保护点】
【技术特征摘要】
1.一种报文转发方法,应用于网络设备包括的多核中央处理器CPU中,所述CPU中还包括与所述网络设备包括的每个网卡对应的流水线,每条流水线包括接收任务、第一业务处理任务、第二业务处理任务、分发任务和发送任务,其特征在于,所述方法包括:从任务调度序列中获取待调度任务;确定所述待调度任务是否是所述待调度任务携带的第一流水线标识对应的第一流水线的发送任务;若确定所述待调度任务是所述第一流水线的发送任务,则调用所述待调度任务从所述待调度任务的滑动窗口获取待处理报文集合并发送;若确定所述待调度任务不是所述第一流水线的发送任务,则调用所述待调度任务处理所述待处理报文集合中的报文,将处理完的报文加入所述第一流水线的下一个任务的滑动窗口,将所述第一流水线的下一个任务加入所述任务调度序列中;将所述待调度任务更新为所述调度序列中所述待调度任务的下一个任务,执行所述从任务调度序列中获取待调度任务的步骤。2.根据权利要求1所述的方法,其特征在于,所述将所述第一流水线的下一个任务加入所述任务调度序列中之后,所述方法还包括:确定所述待调度任务是否是所述第一流水线的接收任务;若确定所述待调度任务是所述第一流水线的接收任务,则将所述待调度任务保留在所述任务调度序列中;若确定所述待调度任务不是所述第一流水线的接收任务,则从所述任务调度序列中移除所述待调度任务。3.根据权利要求1所述的方法,其特征在于,若所述待调度任务为所述第一流水线的第二业务处理任务,所述待调度任务的滑动窗口包括隧道业务的报文,则调用所述待调度任务处理所述待处理报文集合中的报文之后,所述方法还包括:将处理完的隧道业务的报文发送到隧道逻辑网卡;通过所述隧道逻辑网卡接收到所述处理完的隧道业务的报文后,将所述处理完的隧道业务的报文加入所述第一流水线的接收任务的滑动窗口内。4.根据权利要求1
‑
3任一所述的方法,其特征在于,若每条流水线包括共用同一接收任务的至少两条子流水线,所述待调度任务是所述第一流水线的接收任务,则将处理完的报文加入所述第一流水线的下一个任务的滑动窗口,包括:针对每个处理完的报文,执行:根据当前处理完的报文的选定特征信息进行流散列计算;根据计算结果从所述第一流水线的至少两条子流水线的第一业务处理任务中选取一个第一业务处理任务;将所述当前处理完的报文的加入选取的第一业务处理任务的滑动窗口中。5.一种报文转发装置,其特征在于,所述装置包括:获取模块,用于从任务调度序列中获取待调度任务;确定模块,用于确定所述待调度任务是否是所述待调度任务携带的第一流...
【专利技术属性】
技术研发人员:林振彬,
申请(专利权)人:锐捷网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。