一种报文转发方法及路由设备技术

技术编号:20278668 阅读:21 留言:0更新日期:2019-02-02 05:59
本申请实施例提供了一种报文转发方法及路由设备,方法包括:路由设备接收组播报文,并将组播报文存储至相应的缓冲区,组播报文包含该组播报文所在的组播组的标识;路由设备获取组播组对应的多个组播成员;针对多个组播成员中的每个组播成员,路由设备根据组播成员的地址信息以及路由设备连接组播成员的接口的地址信息,构建该组播成员对应的报文二层头部;路由设备根据每个组播成员的报文二层头部与组播报文的数据部分获取发送给每个组播成员的报文,并将报文发送至每个组播成员。本发明专利技术可有效降低缓冲区间的内存拷贝次数和缓冲区资源的占用,提高缓冲区的使用效率,避免缓冲区被组播数据转发堆积占用导致出现的丢包现象。

【技术实现步骤摘要】
一种报文转发方法及路由设备
本申请涉及通信
,具体而言,涉及一种报文转发方法及路由设备。
技术介绍
随着经济持续发展,人们的生活方式随之改变。目前网络已经成为日常生活必需的一部分,海量的网络数据对网络通信设备的数据吞吐量的要求愈加严格。路由器作为通信网络中的重要设备,其数据收发的性能直接决定了所在网络的数据通信的可靠性,路由器的数据收发性能对网络中所承载的业务的正常运行起到了支撑和限制的作用。路由器使用缓冲区(简称buffer)来装载需要收发的报文,当buffer资源没有空闲时,报文就无法进入路由器进行转发,造成数据通信的丢包或者网络中断。因此buffer资源的可用性对于路由器设备的稳定、可靠运行具有至关重要的作用。现有的路由设备作为转发设备转发组播报文时,会根据需要转发到的组播成员的数量,将组播报文拷贝成相应的份数,然后对拷贝生成的副本的二层头部进行对应修改,再将修改之后的副本发送至对应的组播成员,组播报文在buffer中进行拷贝花费的时间较长,buffer被堆积占用,当buffer被消耗完,后续报文会由于没有buffer可用而被丢弃,数据流会因此出现丢包。申请内容有鉴于此,本申请实施例提供了一种报文转发方法及路由设备。第一方面,本申请实施例提供了一种报文转发方法,应用于路由设备,所述方法包括:路由设备接收组播报文,并将所述组播报文存储至缓冲区;所述路由设备获取所述组播报文所在组播组的每个组播成员的信息;所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存;所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,并发送至该组播成员。路由设备接收到组播报文后,可以根据组播报文中的组播组标识获取组播组对应的全部组播成员,路由设备根据全部组播成员中每个组播成员的信息,构建每个组播成员的报文二层头部。然后路由设备可以将每个组播成员的报文二层头部与组播报文的数据部分拼接获取发送给该组播成员的报文,并将报文发给相应的组播成员。由于本实施例通过报文二层头部与原组播报文的数据部分组成即将发送的新报文,不需要根据组播成员的个数对原组播报文进行相同数量的拷贝,有效降低缓冲区间的内存拷贝次数和缓冲区资源的占用,提高了缓冲区的使用效率,避免缓冲区被堆积占用导致出现的丢包现象。在一个可能的设计中,所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存,包括:所述路由设备根据每个组播成员所属的组播组的MAC地址、该组播成员对应的出接口的MAC地址,构成发送给该组播成员的报文的对应的二层头部,并进行缓存。将组播报文发送给组播组中的组播成员,需要获知相应组播成员对应的出接口的MAC地址,因此对于组播组中的每个组播成员,均需要构建其对应的报文二层头部,通过组播成员所属的组播组的MAC地址、该组播成员对应的出接口的MAC地址构建报文二层头部。在一个可能的设计中,所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,包括:所述路由设备根据每个组播成员的报文二层头部的起始地址以及长度、所述组播报文的数据部分的起始地址以及数据部分长度,读取报文二层头部与所述组播报文的数据部分,得到发送给该组播成员的报文。由于组播成员的报文二层头部与组播报文的数据部分在缓冲区中的存储位置通常是不连续的,为了实现两者的拼接,需要获取报文二层头部的起始地址以及该报文二层头部的长度,组播报文的数据部分的起始地址以及数据部分的长度。获取上述数据后,可以通过将上述数据填写在预设格式的报文模板中,从而将两者拼接并封装为新的报文。在一个可能的设计中,所述方法还包括:所述路由设备获取并记录所述组播组对应的组播成员的数量作为报文发送数量;每当所述路由设备将报文发送给一个组播成员,所述路由设备将所述报文发送数量减一。对于组播报文来说,由于需要将该组播报文转发给同一组播组中的全部组播成员,因此,存储该组播报文的缓冲区需要在该组播报文被复用相应的次数后才能被释放,则对组播报文的复用次数的计数便显得较为重要。可以通过每复用一次,便更新还需要被复用多少次的方式来对复用次数进行计数,即通过记录还有多少组播成员需要接收该组播报文的方式进行计数,记录还需要接收该组播报文的组播成员的组播数量。在一个可能的设计中,所述方法还包括:在所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存之后,在所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,并发送至该组播成员之前,所述方法还包括:所述路由设备将存储所述组播报文的缓冲区挂接在预设链表,并对挂接在所述预设链表的缓冲区个数进行计数;若挂接在所述预设链表的缓冲区个数超过预设阈值,遍历挂接在所述预设链表的缓冲区对应的组播报文的报文发送数量;释放报文发送数量为0的组播报文所在的缓冲区。路由设备可以将正在进行转发的组播报文的缓冲区挂接在预设链表,从而实现对正在进行转发动作的缓冲区的计数,此时,挂接在链表上的每个缓冲区对应的组播报文均在各自记录各自对应的组播数量。当挂接在预设链表的缓冲区的数量超过预设阈值之后,再遍历所有挂接的缓冲区,判断每个缓冲区对应的组播报文的组播数量是否为0,并将组播数量为0的组播报文所在的缓冲区释放掉。通过这种方式可以一次性释放多个缓冲区,并且减少检测组播数量是否为0的次数,节省运算资源。第二方面,本申请实施例提供了一种路由设备,所述路由设备包括:报文接收模块,用于接收组播报文,并将所述组播报文存储至相应的缓冲区;组播成员获取模块,用于获取所述组播报文所在组播组的每个组播成员的信息;二层头部构建模块,用于根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存;报文获取模块,用于根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,并发送至该组播成员。路由设备接收到组播报文后,可以根据组播报文中的组播组标识获取组播组对应的全部组播成员,路由设备根据全部组播成员中每个组播成员的信息,构建每个组播成员的报文二层头部。然后路由设备可以将每个组播成员的报文二层头部与组播报文的数据部分拼接获取发送给该组播成员的报文,并将报文发给相应的组播成员。由于本实施例通过报文二层头部与原组播报文的数据部分组成即将发送的新报文,不需要根据组播成员的个数对原组播报文进行相同数量的拷贝,有效降低缓冲区间的内存拷贝次数和缓冲区资源的占用,提高了缓冲区的使用效率,避免缓冲区被堆积占用导致出现的丢包现象。在一个可能的设计中,所述二层头部构建模块用于:根据每个组播成员所属的组播组的MAC地址、该组播成员对应的出接口的MAC地址,构成发送给该组播成员的报文的对应的二层头部,并进行缓存。将组播报文发送给组播组中的组播成员,需要获知相应组播成员对应的出接口的MAC地址,因此对于组播组中的每个组播成员,均需要构建其对应的报文二层头部,通过组播成员所属的组播组的MAC地址、该组播成员对应的出接口的MAC地址构建报文二层头部。在一个可能的设计中,所述报文获取模块用于根据每个组播成员的报文二层本文档来自技高网...

【技术保护点】
1.一种报文转发方法,其特征在于,应用于路由设备,所述方法包括:路由设备接收组播报文,并将所述组播报文存储至缓冲区;所述路由设备获取所述组播报文所在组播组的每个组播成员的信息;所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存;所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,并发送至该组播成员。

【技术特征摘要】
1.一种报文转发方法,其特征在于,应用于路由设备,所述方法包括:路由设备接收组播报文,并将所述组播报文存储至缓冲区;所述路由设备获取所述组播报文所在组播组的每个组播成员的信息;所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存;所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,并发送至该组播成员。2.根据权利要求1所述的方法,其特征在于,所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存,包括:所述路由设备根据每个组播成员所属的组播组的MAC地址、该组播成员对应的出接口的MAC地址,构成发送给该组播成员的报文的对应的二层头部,并进行缓存。3.根据权利要求1或2所述的方法,其特征在于,所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,包括:所述路由设备根据每个组播成员的报文二层头部的起始地址以及长度、所述组播报文的数据部分的起始地址以及数据部分长度,读取报文二层头部与所述组播报文的数据部分,得到发送给该组播成员的报文。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述路由设备获取并记录所述组播组对应的组播成员的数量作为报文发送数量;每当所述路由设备将报文发送给一个组播成员,所述路由设备将所述报文发送数量减一。5.根据权利要求4所述的方法,其特征在于,在所述路由设备根据每个组播成员的信息,构建对应发送给该组播成员的报文二层头部并进行缓存之后,在所述路由设备根据每个组播成员对应的报文二层头部与所述组播报文的数据部分获取发送给该组播成员的报文,并发送至该组播成员之前,所述方法还包括:所述路由设备将存储所述组播报文的缓冲区挂接在预设链表,并对挂接在所述预设链表的缓冲区个数进行计数;若挂接在所述预设链表...

【专利技术属性】
技术研发人员:孙琳洋
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1