组播报文转发方法和设备的制造方法

文档序号:8285148阅读:1715来源:国知局
组播报文转发方法和设备的制造方法
【技术领域】
[0001]本发明涉及网络通信技术,特别涉及组播报文转发方法和设备。
【背景技术】
[0002]在IPv6组播转发流程中,从组播源端到目的端所经过的各个链路可能具有不同的最大传输单元(MTU: Maxi mum Transmiss1n Unit),当组播数据报文的长度大于链路MTU时,如果能在组播源端将组播数据报文按照所有链路MTU中的最小值进行分片,就可以减轻介于组播源端与目的端之间的路由转发设备的处理压力,合理利用网络资源。然而要达到这种效果,关键在于如何从组播源端到目的端的链路中发现MTU取值最小的链路。这里,为便于描述,将从组播源端到目的端的链路中MTU取值最小的链路称为路径最大传输单元(PMTU:Path Maximum Transmiss1n Unit)。
[0003]参见图1,图1为现有PMTU发现的组网示意图。如图1所示,主机A为组播组A(该组播组A的组播组地址224.1.2.3)的组播源,主机C为组播组A的组播接收者,也即目的端。当作为组播源的主机A向组播组地址224.1.2.3.发送组播数据报文时,在初始按照自身允许的MTU(取值为1500)对待发送的组播数据报文进行分片并发送。
[0004]路由转发设备(Router)A至C任一设备接收到组播数据报文时,执行以下步骤:
[0005]依据接收的组播数据报文的组播组IP地址在本地路由表项中确定用于转发该组播数据报文的接口;
[0006]比较该确定的用于转发该组播数据报文的接口支持的MTU值与接收的组播数据报文的长度;
[0007]如果前者大于或者等于后者,则通过该确定的用于转发该组播数据报文的接口转发该组播数据报文;比如,图1中,R0UterA接收到组播数据报文时,依据组播数据报文的组播组IP地址224.1.2.3在本地路由表项中确定用于转发该组播数据报文的接口为本地以太口(ethl),并且,发现ethl支持的MTU值为1500,正好等于接收的组播数据报文的长度1500,则通过ethl继续转发该接收的组播数据报文。
[0008]如果前者小于后者,则丢弃该接收的组播数据报文,并向组播源返回一个互联网控制信息协议版本 6 (ICMPv6:1nternet Control Managemet Protocol Vers1n 6)规定的ICMPv6差错报文(其实质用于通知数据报文过大),其中包含了该接口的MTU。比如,图1中,Router B接收到组播数据报文时,依据组播数据报文的组播组IP地址224.1.2.3在本地路由表项中确定本地用于转发该组播数据报文的接口为本地以太口 eth2,并且,发现eth2支持的MTU值为1350,小于接收的组播数据报文的长度1500,则丢弃接收的组播数据报文,并向组播源端发送ICMPv6差错报文,ICMPv6差错报文携带了 eth2支持的MTU值1350ο
[0009]当组播源端收到ICMPv6差错报文后,将按照报文中所携带的MTU值即1350重新对组播数据报文进行分片并发送。如此反复,直到目的端(主机C)收到发送的组播数据报文。
[0010]可以看出,现有PMTU发现流程中,需要每一路由转发设备执行上述步骤,会增加路由转发设备的转发压力,并且,也会延长从组播源端到目的端的链路中发现MTU取值最小的链路的时间。

【发明内容】

[0011]本发明提供了组播报文的转发方法和设备,以减缓路由转发设备的压力,缩短从组播源端到目的端的链路中发现MTU取值最小的链路的时间。
[0012]本发明提供的技术方案包括:
[0013]一种组播报文的转发方法,该方法应用于路由转发设备,包括:
[0014]接收组播数据报文,
[0015]判断本地是否存在与所述组播数据报文携带的组播组地址对应的组播表项,
[0016]如果是,依据本地存在的与所述组播组地址对应的组播表项中的出接口转发所述组播数据报文;
[0017]如果否,丢弃所述组播数据报文,在本地建立与所述组播组地址对应的组播表项,将本地已记录的对应所述组播组地址的接口作为出接口添加至该建立的组播表项,在添加的出接口个数等于I时,将该添加的出接口支持的最大传输单元MTU值、以及所述组播组地址携带在设定的通知报文中发送给所述组播组地址对应的组播源,在添加的出接口个数大于I时,将该添加的各个出接口支持的MTU值中取值最小的MTU值、以及所述组播组地址携带在设定的通知报文中发送给所述组播源。
[0018]一种组播报文的转发方法,该方法应用于组播源,包括:
[0019]在向组播组地址发送组播数据报文时,识别本地是否已记录与所述组播组地址对应的最大传输单元MTU值,如果是,依据记录的与所述组播组地址对应的MTU值对待发送的组播数据报文分片并发送,如果否,依据自身支持的MTU值对待发送的组播数据报文分片并发送;
[0020]接收路由转发设备发送的通知报文,判断本地是否记录与所述通知报文携带的组播组地址对应的MTU值,如果是,在本地记录的与所述通知报文携带的组播组地址对应的MTU值大于所述通知报文携带的MTU值时,将本地记录的与所述通知报文携带的组播组地址对应的MTU值更新为所述通知报文携带的MTU值,依据更新后的MTU值重新对待发送的组播数据报文进行分片并发送,如果否,将所述通知报文携带的组播组地址和MTU值对应记录至本地,并依据所述通知报文携带的MTU值重新对所述待发送的组播数据报文进行分片并发送。
[0021]一种组播报文的转发设备,该设备应用于路由转发设备,包括:
[0022]接收单元,用于接收组播数据报文;
[0023]判断单元,用于判断本地是否存在与所述组播数据报文携带的组播组地址对应的组播表项,
[0024]处理单元,用于在所述判断单元的判断结果为是时,依据本地存在的与所述组播组地址对应的组播表项中的出接口转发所述组播数据报文;以及,
[0025]在所述判断单元的判断结果为否时,丢弃所述组播数据报文,在本地建立与所述组播组地址对应的组播表项,将本地已记录的对应所述组播组地址的接口作为出接口添加至该建立的组播表项,在添加的出接口个数等于I时,将该添加的出接口支持的最大传输单元MTU值、以及所述组播组地址携带在设定的通知报文中发送给所述组播组地址对应的组播源,在添加的出接口个数大于I时,将该添加的各个出接口支持的MTU值中取值最小的MTU值、以及所述组播组地址携带在设定的通知报文中发送给所述组播源。
[0026]一种组播报文的转发设备,该设备应用于作为组播源的主机设备,包括:
[0027]发送单元,用于在向组播组地址发送组播数据报文时,识别本地是否已记录对应所述组播组地址的最大传输单元MTU值,如果是,依据记录的对应所述组播组地址的MTU值对待发送的组播数据报文分片并发送,如果否,依据自身支持的MTU值对待发送的组播数据报文分片并发送;
[0028]接收单元,用于接收路由转发设备发送的通知报文;
[0029]判断单元,用于判断本地是否记录与所述通知报文携带的组播组地址对应的MTU值;
[0030]处理单元,用于在所述判断单元的判断结果为是时,且在本地记录的与所述通知报文携带的组播组地址对应的MTU值大于所述通知报文携带的MTU值时,将本地记录的与所述通知报文携带的组播组地址对应的MTU值更新为所述通知报文携带的MTU值,并触发所述发送单元依据更新后的MTU值重新对所述待发送的组播数据报文进行分片并发送,以及,在所述判断单元的判断结果为否时,在本地对应记录所述通知报文携带的组播组地址和MTU值,并触发所述发送单元依据所述通知报文携带的MTU值重新对所述待发送的组播数据报文进行分片并发送。
[0031]由以上技术方案可以看出,本发明中,当路由转发设备接收到组播数据报文时,判断本地是否存在与组播数据报文携带的组播组地址对应的组播表项,当判断出本地存在与所述组播组地址对应的组播表项时,可以直接利用本地存在的与所述组播组地址对应的组播表项中的出接口转发组播数据报文即可,不用再查找路由,比较路由出接口与组播数据报文的长度,显然减缓路由转发设备的压力,并且,通过判断本地不存在与所述组播数据报文携带的组播组地址对应的组播表项时执行的步骤可以看出,本地存在的与所述组播组地址对应的组播表项中的出接口是基于MTU取值最小的链路发现的,这显然缩短了从组播源到目的端链路中发现MTU取值最小的链路的时间。
【附图说明】
[0032]图1为现有PMTU发现的组网示意图;
[0033]图2为本发明提供的方法流程图;
[0034]图3为本发明提供的实施例示意图;
[0035]图4为本发明提供的设备结构图;
[0036]图5为本发明提供的另一设备结构图。
【具体实施方式】
[0037]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0038]本发明提供的方法优化了现有PMTU发现流程,相比于现有PMTU发现流程,能够减缓路由转发设备的压力,缩短从组播源端到目的端链路中发现MTU取值最小的链路的时间。
[0039]下面通过图2对本发明提供的方法进行描述;
[0040]参见图2,图2为本发明提供的方法流程图。如图2所示,该流程可包括以下步骤:
[0041]步骤201,组播源在向组播组地址发送组播数据报文时,识别本地是否已记录对应所述组播组地址的MTU值,如果是,依据本地记录的对应所述组播组地址的MTU值对待发送的组播数据报文分片并发送,如果否,依据自身支持的MTU值对待发送的组播数据报文分片并发送。
[0042]步骤202,路由转发设备接收到组播数据报文时执行以下步骤203至步骤205。
[0043]这里,路由转发设备接收的组播数据报文是经过组播源端分片的组播数据报文。
[0044]步骤203,判断本地是否存在与组播数据报文携带的组播组地址对应的组播表项,如果是,执行步骤204,如果否,执行步骤205。
[0045]作为本发明的一个实施例,步骤203中,可以以组播数据报文携带的组播组地址为关键字在本地
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1