路由器处理组播报文的方法

文档序号:7723897阅读:1052来源:国知局
专利名称:路由器处理组播报文的方法
技术领域
本发明涉及路由器,尤其涉及一种路由器处理组播报文的方法。
背景技术
近年来,随着信息技术的迅猛发展,在因特网上,多媒体业务诸如流媒体、视频会 议和视频点播等网络应用大量增加,使得原来点对点传输的单播方式已经不能适应这类特 殊业务,因为服务器必须为每一个接收者提供一个相同的IP报文复制,这样势必会占用大 量的资源,因此,传输方式为单点对多点的组播技术就会越来越普及,而且发送者同时对多 个接收者传输相同的报文时,只需复制一份相同报文,这样提高了报文的传输效率。为了能够在路由器上转发组播报文,在现有技术中常常采用网络群组管理协议 侦听(Internet Group Management Protocol Snooping, IGMP Snooping)技术,传统的 IGMPSnooping是路由器接收到广域网发送来的组播报文后,将所述报文送往组播报文处理 模块,处理完之后再将所述报文送往局域网,此时IGMP Snooping才会起作用,最后发送到 相应的用户终端。由于此种方式中无论对发往有线用户终端还是无线用户终端的所有组播 报文都要经过组播报文处理模块进行处理,并且所述处理过程是由软件来处理的,所以其 会占用大量的中央处理器资源,导致组播性能不高。

发明内容
有鉴于此,需提供一种路由器处理组播报文的方法,能极大的提升所述路由器的 组播性能。本发明实施方式中的路由器通过包含有多个端口的多个接口与多个有线用户终 端及多个无线用户终端通信,用于发送组播报文到多个用户终端,所述路由器包括媒体访 问控制(Media Access Control,MAC)地址表与组播报文转发表,所述MAC地址表包括多个 组播组及其对应的MAC地址与多个端口号,所述组播报文转发表包括多个组播组的网络协 议(Internet Protocol, IP)地址、组播组及其对应的接口以及与所述接口对应的多个端口 号。本发明实施方式中的路由器处理组播报文的方法包括接收新报文,所述新报文包括目 的MAC地址;根据所述MAC地址表获取所述目的MAC地址所对应的多个端口号;确定所述多 个端口号所对应的端口的类型;若所述多个端口号全部对应有线端口,则根据所述端口号 将所述新报文发送给有线用户终端;若所述多个端口号全部对应无线端口,则将所述新报 文的目的MAC地址转换为目的IP地址;根据所述目的IP地址判断所述新报文是否为组播 报文;若所述新报文为组播报文,则根据所述组播报文转发表获取与所述目的IP地址相对 应的接口 ;及将所述新报文转发到与所述接口相对应的无线用户终端。本发明实施方式所提供的路由器处理组播报文的方法通过将发送给有线用户终 端的报文不经组播报文处理模块处理而直接发送,降低了中央处理器的负荷,从而提高了 路由器的组播性能,尤其提高了发往有线用户终端的组播报文的速度。


图1为本发明一实施方式中带SWITCH ASIC的路由器的应用环境与结构图;图2A为图1所示的路由器中的MAC地址表的示意图;图2B为图1所示的路由器中的组播报文转发表的示意图;图3为本发明一实施方式中路由器处理组播报文的流程图;及图4为图3所示的路由器处理组播报文流程中节点A后的流程图。
具体实施例方式请参阅图1,为本发明一实施方式中带SWITCH ASIC的路由器的应用环境与结构 图。路由器20的上行与组播服务器10通信连接,用于从组播服务器中接收报文。所述组 播服务器用于发送组播报文到路由器,组播报文包括目的MAC地址,用于标识需要接收所 述组播报文的组播组的地址,其中一个组播组对应一个接口,所述接口与需要接收所述组 播报文的多个用户终端对应,所述多个用户终端可以全部为有线用户终端,或者全部为无 线用户终端,还可以包括一部分有线用户终端和一部分无线用户终端。在本实施方式中,所述路由器20包括MAC地址表2020与组播报文转发表2040, 分别存储于SWITCH ASIC 202及组播报文处理模块204中。路由器20的下行包括多个端 口,与有线用户30或无线用户40进行通信,用于发送报文到需要接收所述报文的用户终 端。所述多个端口的类型包括有线端口与无线端口,其中通过有线端口与有线用户终端通 信,通过无线端口与无线用户终端通信。在本实施方式中,路由器20包括交换专用集成电 路(Switch ApplicationSpecific Integrated Circuit, SWITCH ASIC) 202、组播报文处理 模块204、接口模块206及中央处理器208。在本实施方式中,SWITCH ASIC 202是硬件电路。由于在实际应用中,路由器20在 接收到发往无线用户终端的组播报文后,会将其直接送往组播报文处理模块204而不会直 接送往无线局域网(Wireless Local Area Network,WLAN),即路由器20在接收到发往无 线用户终端的组播报文后需进行路由处理而不能通过SWITCH ASIC直接转发。组播报文处 理模块204用于处理不能通过SWITCH ASIC直接转发的报文。路由器20中存放有MAC地址表2020与组播报文转发表2040。在本实施方式中,当 用户终端首次想要加入某一组播组时,首先会发送一个IGMP R印ort报文给相应路由器,其 中所述IGMP R印ort报文包含有用户终端想要加入某一组播组的MAC地址。当SWITCH ASIC 202接收到一个报文时,它会读取所述报文中的目的MAC地址,并在MAC地址表2020中查找 相应的端口号,如果所述MAC地址表2020中有与所述报文的目的MAC地址对应的端口号, 则把所述报文直接发送到与所述端口号相对应的用户终端,如果在所述MAC地址表2020中 找不到相应的端口号,则把所述报文广播到所有端口上。当目的主机对源主机有响应并且 发送回应报文给源主机时,所述路由器会纪录下接收所述响应报文的端口号,这样所述MAC 地址与所述端口号的对应关系就会存储在MAC地址表2020中,下次再接收到所述报文时就 不再需要对所有端口进行广播了。通过这种方式就可以建立所述MAC地址表2020。请参阅图2A,为图1所示的路由器20中的MAC地址表2020的示意图,其是根据 MAC地址建立的并存储于SWITCH ASIC 202中,其中组播组与组播组的MAC地址——对应, 一个组播组的MAC地址可以对应多个端口号,所述端口号既可以对应有线端口,又可以对应无线端口。请参阅图2B,为图1所示的路由器20中的组播报文转发表2040的示意图,其 是根据IP地址建立的并存储于组播报文处理模块204中,其中组播组、组播组的IP地址及 接口 一一对应,每个接口可以包含有多个端口号。请参阅图3,为本发明的路由器处理组播报文的方法流程图。在本实施方式中,所 述方法是通过图1中所示路由器20中的各个模块所完成的。首先,在步骤S300中,路由器20从网络上接收新报文,所述新报文包括需要接收 所述报文的组播组的MAC地址(也即所述报文的目的MAC地址),并同时将所述新报文发往 所述路由器的SWITCH ASIC 202。在步骤S302中,SWITCH ASIC 202根据所述MAC地址表2020获取与所述新报文的 目的MAC地址相对应的多个端口号。在本实施方式中,所述路由器20的SWITCH ASIC 202 存储有MAC地址表2020,所述MAC地址表2020包括组播组的MAC地址与相应发送端口的对
应关系。在步骤S304中,SWITCH ASIC 202确定所述多个端口号所对应的端口的类型。
若所述多个端口号全部对应有线端口,则在步骤S306中,SWITCH ASIC 202通过 所述有线端口将所述新报文发送给有线用户终端30。例如,在本实施方式中,当路由器20 接收新报文的目的MAC地址为组播组1的MAC地址时,根据图2A所示的MAC地址表查找到 所述组播组1包含有Port l,Port 2和Port 3三个端口号,并且这三个端口号都对应有线 端口,则将所述新报文直接发送到与所述三个端口有线相连的用户终端,不需要经过类似 于组播报文处理模块204这样的软件模块来处理。由于本实施方式中SWITCH ASIC 202是 硬件电路,在实际的应用中,硬件结构的处理速度远远大于软件结构的处理速度,所以本发 明通过SWITCH ASIC 202对组播报文进行转发,极大的提高了路由器的组播性能,减少了软 件的处理工作,降低了中央处理器208的负荷,从而极大的提高了路由器对只发往有线用 户终端30的组播报文的处理速度。若所述多个端口号全部对应无线端口,在本实施方式中,由于对发往无线用户终 端的组播报文不能通过SWITCH ASIC硬件电路直接转发,它必须经过组播报文处理模块进 行处理,则在步骤S308中,组播报文处理模块204将所述新报文的目的MAC地址转换为目 的IP地址。组播组是用组播地址来标识的,每个组播地址对应唯一的组播组,在IPV4中是 把范围从224. 0. 0. 0到239. 255. 255. 255的地址分配给组播使用。由于MAC地址是网络第 二层地址,即数据链路层的物理地址,它不能被第三层网络设备如路由器直接识别。所以 在本实施方式中,在判断所述报文是否为组播报文之前,需要通过地址解析协议(Address ResolutionProtocol,ARP)将所述报文的目的MAC地址转换成相应的目的IP地址来进行 判断。若所述多个端口号既对应有线端口又对应无线端口,路由器20处理的方式将在 图4中详细说明。在步骤S310中,组播报文处理模块204根据所述目的IP地址判断所述新报文 是否为组播报文。如果所述报文的目的IP地址不在上述组播地址的范围之内,则在步骤 S316,组播报文处理模块204判断所述新报文不是组播报文,并将所述报文当作单播报文 进行处理,即通过ARP协议将所述报文的目的MAC地址转换成对应的目的IP地址,将所述 报文发往与所述目的IP地址唯一相对应的用户终端。
若所述新报文为组播报文,则在步骤S312中,组播报文处理模块204根据所述组 播报文转发表2040获取目的IP地址所对应的接口。在本实施方式中,首先要根据所述组 播报文的目的IP地址查找相应组播组,再根据所述组播组查找相应接口,最后将所述报文 发送到接口模块中的相应接口。如图2B所示,所述组播报文的目的IP地址存在于所述组 播报文转发表2040中且是组播组3的IP地址时,则根据所述组播报文转发表2040查找与 组播组3的IP地址相对应的组播组3是否存在,若存在则继续查找与组播组3相对应的接 口 1是否存在。在本实施方式中,若没有查找到组播组,则表明所述组播组在所述路由器20 中并不存在,若没有查找到相应接口则表明所述组播报文无法转发,为了减少软件的处理 工作,则将所述组播报文直接丢弃,以提高路由器20的组播性能。在步骤S314中,组播报文处理模块204将所述新报文转发到与所述接口相对应的 无线用户终端40。请参阅图4,为图3所示的路由器处理组播报文流程中节点A后的流程图。在步骤S400中,由于所述多个端口号既对应有线端口又对应无线端口,所以,在 本实施方式中,对于有线端口则通过SWITCH ASIC 202将所述新报文直接发往有线用户终 端30,对于无线端口则通过组播报文处理模块204复制所述新报文。在步骤S402中,组播报文处理模块204将所述复制报文的目的MAC地址转换为 目的IP地址。组播组是用组播地址来标识的,每个组播地址对应唯一的组播组,在IPV4 中是把范围从224. 0. 0. 0到239. 255. 255. 255的地址分配给组播使用。由于MAC地址是 网络第二层地址,即数据链路层的物理地址,它不能被第三层网络设备如路由器直接识别。 所以,在本实施方式中,在判断所述复制报文是否为组播报文之前,需要通过地址解析协议 (AddressResolution Protocol, ARP)将所述报文的目的MAC地址转换成相应的目的IP地 址来进行判断。在步骤S404中,组播报文处理模块204根据所述复制报文的目的IP地址判断所 述复制报文是否为组播报文。如果所述复制报文的目的IP地址不在上述组播地址的范围 之内,则在步骤S416,组播报文处理模块204判断所述复制报文不是组播报文,并将所述复 制报文当作单播报文进行处理,如步骤S416所示,即通过ARP协议将所述报文的目的MAC 地址转换成对应的目的IP地址,将所述报文发往与所述目的IP地址唯一相对应的用户终 端。若所述复制报文为组播报文,则在步骤S406中,组播报文处理模块204根据所述 复制报文的目的IP地址在组播报文转发表中查找相对应的接口。在本实施方式中,首先要 根据所述复制报文的目的IP地址查找相应组播组,再根据所述组播组查找相应接口,最后 将所述复制报文发送到接口模块中的相应接口。如图2B所示,当所述复制报文的目的IP 地址存在于组播报文转发表2040表中且是组播组3的IP地址时,则根据所述组播报文转 发表2040查找与组播组3的IP地址相对应的组播组3是否存在,若存在则继续查找与组 播组3相对应的接口 1是否存在。在本实施方式中,若没有查找到组播组,则表明所述组播 组在所述路由器20中并不存在,若没有查找到相应接口则表明所述组播报文无法转发,为 了减少软件的处理工作,则将所述复制报文直接丢弃,以提高路由器20的组播性能。在步骤S408中,组播报文处理模块204利用网络群组管理协议(Internet GroupManagement Protocol Snooping, IGMP Snooping)侦听组播组并查找相应端口。由于
6在路由器中一个接口往往包含有多个端口,所以在转发组播报文时需要知道发送组播报文 给用户终端的特定端口。在本实施方式中是利用IGMP Snooping技术,IGMP Snooping是通 过侦听用户终端与路由器的间通信的IGMP报文来获得组播组与发送端口的对应关系。当 侦听到用户终端发出的IGMP R印ort报文时,记录下所述用户终端所想要加入的组播组和 接收到所述报文的端口。当所述组播报文发送到所述接口时,就可以根据组播组查找到相 应端口以转发组播报文。由于在实际应用中,一个组播组可能既包含有有线用户又包含有无线用户,也即 所述组播报文既要发送给有线用户终端又要发给无线用户终端。所以,当所述组播报文发 送到所述接口时,需要判断所述接口所包含的每一个相应端口的类型,如步骤S410所示。在步骤S412中,若为有线端口时,由于在步骤S400中发送给有线用户终端30的 组播报文已经通过SWITCH ASIC 202硬件电路直接转发了,为了不影响所述路由器的组播 性能,则将所述复制报文直接丢弃,以提高对组播报文的转发速度。在步骤S414中,若为无线(Wireless)端口时,则将所述复制报文的MAC地址转换 后变成单播报文发送给无线用户终端40。在本实施方式中,先通过ARP协议将所述组播报 文的MAC地址转换成与的相对应的IP地址,再以单播报文的形式将所述报文发送给与所述 IP地址唯一相对应的无线用户终端40。本发明实施方式所提供的路由器处理组播报文的方法通过将发送给有线用户终 端的报文不经组播报文处理模块204的处理而直接发送,降低了中央处理器208的负荷,从 而极大的提高了路由器20的组播性能,尤其提高了发往有线用户终端30的组播报文的速度。
权利要求
一种路由器处理组播报文的方法,所述路由器通过包含有多个端口的多个接口与多个有线用户终端及多个无线用户终端通信,用于发送组播报文到多个用户终端,所述路由器包括媒体访问控制地址表与组播报文转发表,所述媒体访问控制地址表包括多个组播组及其对应的媒体访问控制地址与多个端口号,所述组播报文转发表包括多个组播组的网络协议地址、组播组及其对应的接口以及与所述接口对应的多个端口号,其特征在于,所述路由器处理组播报文的方法包括接收新报文,所述新报文包括目的媒体访问控制地址;根据所述媒体访问控制地址表获取所述目的媒体访问控制地址所对应的多个端口号;确定所述多个端口号所对应的端口的类型;若所述多个端口号全部对应有线端口,则根据所述端口号将所述新报文发送给有线用户终端;若所述多个端口号全部对应无线端口,则将所述新报文的目的媒体访问控制地址转换为目的网络协议地址;根据所述目的网络协议地址判断所述新报文是否为组播报文;若所述新报文为组播报文,则根据所述组播报文转发表获取与所述目的网络协议地址所对应的接口;及将所述新报文转发到与所述接口相对应的无线用户终端。
2.如权利要求1所述的方法,其特征在于,所述方法还包括若所述新报文不是组播报 文,则将所述新报文按单播报文进行处理。
3.如权利要求1所述的方法,其特征在于,所述方法还包括若所述多个端口号既对应 有线端口又对应无线端口,则通过所述有线端口将所述新报文发送给有线用户终端,并同 时复制所述新报文以发送给无线用户终端。
4.如权利要求3所述的方法,其特征在于,将复制报文发送到无线用户终端的步骤还 包括将所述复制报文的目的媒体访问控制地址转换为目的网络协议地址;根据所述复制报文的目的网络协议地址判断所述复制报文是否为组播报文;若所述复制报文为组播报文,则根据所述组播报文转发表查找相应接口,并根据网络 群组管理协议侦听所述组播组并找到相应端口;判断每一个相应端口的类型;及若所述相应端口对应无线端口,则将所述复制报文发送给对应的无线用户终端。
5.如权利要求4所述的方法,其特征在于,所述方法还包括若所述相应端口对应有线 端口,则将所述复制报文丢弃。
6.如权利要求4所述的方法,其特征在于,所述方法还包括若所述复制报文不是组播 报文,则将所述复制报文按单播报文进行处理。
全文摘要
一种路由器处理组播报文的方法,所述路由器包括交换专用集成电路、组播报文处理模块、媒体访问控制地址表、组播报文转发表与中央处理器,所述方法包括接收新报文;根据所述媒体访问控制地址表获取与所述新报文目的媒体访问控制地址所对应的多个端口号;确定所述多个端口号所对应的端口的类型;若所述多个端口号全部对应有线端口,则根据所述端口号将所述新报文发送给有线用户终端;若所述多个端口号全部对应无线端口,则根据所述组播报文转发表获取与所述新报文的目的网络协议地址所对应的接口;将所述新报文转发到与所述接口相对应的无线用户终端。本发明所提供的路由器处理组播报文的方法极大的提高了路由器的组播性能。
文档编号H04L29/12GK101924692SQ20091030308
公开日2010年12月22日 申请日期2009年6月9日 优先权日2009年6月9日
发明者柏杨, 闵振发 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1