一种Hello报文的生成方法及装置的制作方法

文档序号:7693723阅读:342来源:国知局
专利名称:一种Hello报文的生成方法及装置的制作方法
技术领域
本发明涉及计算机与通信技术领域,尤其涉及一种Hello报文的生成方法及装置。
背景技术
互联网工程任务组(IETF, The Internet Engineering Task Force )是一个+〉 散的、自律的、志愿的民间学术组织,成立于1985年底,其主要任务是负责互 联网相关技术规范的研发和制定。请求注解(RFC, Request For Comments)是由 IETF制定的无限制分发的正式文档。每一份RFC文档都有唯一的编号来标识。路由器是一种连接多个网络或网段、具有路由功能的网络设备。路由 (Routing)是根据IP地址把报文从数据源穿过网络传递到目的地的行为。路 由有单播路由和多播路由之分,单播路由的接收者只有一个,网络上的路由器 对单播数据报文只转发不复制;多播路由的接收者可能有多个,网络上的路由 器接收到数据报文可能要复制多份并进行转发。路由协议是实现路由算法的协议,通常用于路由器之间分享路由信息。同 样,路由协议有单播路由协议和多播路由协议之分。反向路径转发(RPF, Reverse-PathForwarding)是一种用于多播路由选择的技术。当多播数据包到达 路由器时,路由器作RPF检查,以决定转发或抛弃该数据包。RPF检查的过程 如下检查数据包的源IP地址,以确定该数据包经过的接口是否在从源到此 的路径上;若数据包是从可返回源主机的接口上到达,则RPF检查成功,转发 该数据包,否则RPF纟企查失败,抛弃该数据包。协议无关多# -密集冲莫式(PIM-DM, Protocol Independent Multicast-Dense Mode)是一种多播路由协议,它使用由任意的单播路由协议产生的路由表执行反向路径转发(RPF)检查,故称为协议无关多播;又因为这个协议主要被 设计用于小型的局域网络,所以称为密集才莫式。PIM-DM由RFC 3973定义。 根据RFC 3973,运行PIM-DM协议的路由器周期性的发送Hello报文,用以发 现邻接的PIM-DM路由器,这个时间间隔被称为Hello间隔(Hello Interval )。 Hello间隔是一个大小为0-65535整数,并且可以手动配置。支持PIM-DM的 路由器互相之间形成邻居关系。如图1所示,图中路由器A和路由器B互相 是PIM-DM邻居关系。每一个PIM-DM Hello报文都有一个老化时间选项。接收到该Hello报文 的路由器根据老化时间值,以确定该PIM-DM路由器的在邻居表中的活跃时 间。例如,假如路由器A发出的Hello报文上的老化时间字段为105秒,路由 器B从收到路由器A发出的Hello报文的那一刻起开始计时,如果在105秒内 没有再次收到路由器A的Hello报文,则认为路由器A已经不存在,会从 PIM-DM邻居表中删除掉路由器A。由于PIM-DM Hello报文中的老化时间选项只有2个字节(4比特),因此, PIM-DM Hello报文的老化时间的最大值是65535,超过这个最大值,就会出现 老化时间溢出,PIM-DM邻居路由器无法正确的接收到Hello报文,从而导致 PIM-DM邻居删除,与该邻居相关的PIM-DM多播路由表项也要删除。这样一 来,就有可能造成多播数据流无法正常转发,导致各种业务(例如视频会议等) 中断。发明内容本发明实施例提供一种Hello报文的生成方法及装置,用以解决现有技术 中Hello报文老化时间溢出的问题。一种Hello才艮文的生成方法,该方法包括确认Hello报文的老化时间大于老化时间最大值时,将Hello报文的老化时 间设置为老化时间最大值;根据设置的Hello报文的老化时间生成Hello报文。一种Hello报文的生成装置,该装置包括获取单元、设置单元和生成单元, 其中,所述获取单元,用于获取Hello报文的老化时间;所述设置单元,用于判断Hello报文的老化时间是否大于老化时间最大值, 如果是,将当前Hello报文的老化时间设置为老化时间最大值,否则,将当前 Hello报文的老化时间设置为获取的Hello报文的老化时间;所述生成单元,才艮据设置的Hello报文的老化时间生成Hello报文。一种路由器,包括如上所述的Hello报文的生成装置,其中,所述Hello报文的生成装置,用于生成Hello报文。Hello报文的老化时间设置为老化时间最大值;根据设置的Hello报文的老化时 间生成Hello报文。本发明实施例可以避免PIM-DM路由器发送出去的Hello报文 老化时间溢出的情况。采用本发明实施例提供的方案,可以避免由于PIM-DM Hello发送时间间隔过大造成邻居被删除,以及由此带来的多播数据流和正常业 务中断的情况。


图1为现有技术中PIM-DMHello报文的发送路由器关系示意图;图2为PIM-DM Hello才艮文的结构示意图;图3为本发明实施例1的主要实现原理流程图;图4为本发明实施例2的主要实现原理流程图;图5为本发明实施例提供装置的结构示意图;图6为本发明实施例提供装置中获取单元31的结构示意图;图7为本发明实施例提供装置中设置单元32的结构示意图。具体实施例方式
本发明实施例中,在PIM-DM Hello才艮文生成的时候,判断设定的老化时 间是否大于老化时间的最大值,如杲是,将PIM-DM Hello报文的老化时间设 置为最大值;否则,保留设定的老化时间。
由于PIM-DM Hello报文的老化时间不是孤立存在时,而是与PIM-DM Hello报文的发送时间间隔成一定比例,这里所述的发送时间间隔和老化时间 的比例也是可以预先设定的。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方 式及其对应能够达到的有益效果进行详细的阐述。
如图2,为PIM-DM的Hello才艮文的格式。其中,
版本对于PIM-DM,版本为2。
类型对于PIM-DM Hello报文,类型为0 。
保留忽略。
检验和对整个PIM-DM报文的检验和,检验方法与IP报文的校验方法 相同,即对整个PIM-DM报文中的每个16比特进行二进制反码求和。
选项类型对于PIM-DM,目前有用的选项类型有5种,这里只介绍Hello 报文老化时间(Hello Hold time )选项。对于PIM-DM Hello老化时间选项,其 类型为1。
选项长度对于Hello报文老化时间选项,其选项长度为2。
选项值对于Hello ^JL老化时间选项,其选项值为0 - 65535的一个整数。
根据RFC 3973的^见定
1) PIM-DM Hello报文老化时间默认是Hello发送时间间隔的3.5倍;
2) PIM-DM Hello发送时间间隔是可配置的;
3) PIM-DM Hello报文老化时间在报文中占2字节(4比特),所以范围是 0-65535, 65535为Hello报文老化时间的最大值。
所以当PIM-DM Hello发送时间间隔配置的足够大时,会造成PIM-DM
7Hello报文老化时间大于65535的情况。由于PIM-DM Hello l艮文老化时间只有 2字节(4比特),所以该数值无法在Hello报文上正确传送,只能传送低位的 2字节(4比特),可能导致收到Hello报文的路由器上的PIM-DM邻居老化时 间不对。
例如,在图1中,在3各由器A上配置PIM-DM Hello发送时间间隔为19000 , PIM-DM Hello报文老化时间是19000 * 3.5 = 66500,超过了 PIM-DM Hello报 文老化时间的范围。66500的16进制是0X103C4,由于PIM-DM Hello报文老 化时间只有2字节(4比特),所以该数值无法在Hello才艮文上正确传送,只能 传送低位的2字节(4比特),也就是0X03C4 ( 10进制是964 )。这样一来, 收到该Hello报文的路由器B会认为路由器A的老化时间是964,而路由器A 会在1900秒以后发送第二个Hello报文。所以,在收到下一个Hello报文之前, 路由器B就会将路由器A从PIM-DM邻居表中删除掉。
如图3所示,本发明实施例1的主要实现原理流程如下
步骤ll,确认PIM-DMHello报文的老化时间大于老化时间最大值时,将 PIM-DM Hello报文的老化时间设置为老化时间最大值。
这里的老化时间最大值就是PIM-DM Hello报文可以正确传送的老化时间 的最大值,也就是65535。
获取PIM-DM Hello报文的老化时间的方法,可以通过首先获取Hello报 文的发送时间间隔以及发送时间间隔和老化时间的比例,计算得到Hello报文 的老化时间。这里的Hello报文的发送时间间隔可以预先设定,并可以根据需 要更改。发送时间间隔和老化时间的比例也可以根据需要设定或更改。 一般的 默认发送时间间隔和老化时间的比例为3.5,也就是说,Hello才艮文的老化时间 是发送时间间隔的3.5倍。
在获得Hello报文的老化时间后,需要比较获取的Hello报文的老化时间 与老化时间最大值,当确认获取的Hello报文的老化时间大于老化时间最大值 时,将Hello报文的老化时间设置为老化时间最大值,也就是65535。否则,保留获取的Hello报文的老化时间。具体方案如下假设PIM-DM Hello发送时间间隔为I, PIM-DM Hello老化 时间为H,老化时间与发送时间间隔的比例为默认值3.5,老化时间最大值为 X。根据RFC 3973,H = I * 3.5由于P3.5可能超过X,所以要将上述公式改为 H = MIN[I * 3.5, X]意思是取X和I * 3.5之间的较小值。根据RFC 3973,当收到的Hello报文 中老化时间为65535时,认为该邻居永不超时老化。如果用户在某台路由器上 配置了一个足够大的Hello发送时间间隔,使得Hello报文老化时间甚至大于 65535 (不老化时间),那么其他PIM-DM路由器收到该路由器的Hello报文时 就不超时。当然,在计算得到Hello报文的老化时间大于老化时间最大值时,还可以根 据实际需要将Hello报文的老化时间设置为小于老化时间最大值的其它数值, 只要能够保障邻居路由器可以正确接收Hello报文即可。步骤12,根据设置的Hello报文老化时间生成Hello报文。 将设置得到的Hello报文的老化时间填入Hello报文中相应的选项,生成 完整的Hello报文。本实施例提供的方法,在发送PIM-DM Hello报文的时候,老化时间就不 会溢出了 ,可以保证收到Hello报文的路由器不会由于老化时间超时将邻居删 除掉。如图4所示,本发明实施例2的主要实现原理如下 步骤21 ,准备发送PIM-DM Hello报文。这里,需要将PIM-DM Hello报文中除老化时间选项外的其余选项全部填 写完毕,并获取当前设定的PIM-DM Hello报文发送时间间隔I,并获取老化时 间与发送时间间隔的比例,这里,设定老化时间与发送时间间隔的比例为默认值3,5。
步骤22,判断PIM-DM Hello报文发送时间间隔I乘以3.5之后是否大于 65535,如果是,执行步骤23,否则,执行步骤24。
这里的PIM-DM Hdlo报文发送时间间隔I乘以3.5即是当前设定的老化时 间,65535为老化时间最大值。判断PIM-DM Hello才艮文发送时间间隔I乘以 3.5之后是否大于65535 ,也就是判断当前设定的老化时间是否大于老化时间最 大值。
步骤23,将当前的老化时间选项H设置为老化时间最大值65535,执行步 骤25。
当然,还可以根据实际需要将Hello报文的老化时间设置为小于老化时间 最大值65535的其它数值,只要能够保障邻居路由器可以正确接收Hello报文 即可。
步骤24,保留当前的老化时间作为老化时间选项H,执行步骤25. 步骤25,根据H值,生成PIM-DM Hello报文。
本实施例中,通过判断当前设定的老化时间是否大于老化时间最大值,并 根据判断结果分别设定老化时间选项,避免了老化时间溢出的问题,可以保证
相应地,本发明实施例还提供了一种Hello报文生成装置,如图5所示, 该装置包括获取单元31、设置单元32和生成单元33,具体如下 获取单元31,用于获取Hello报文的老化时间;
设置单元32,用于判断Hello报文的老化时间是否大于老化时间最大值, 如果是,将当前Hello报文的老化时间设置为老化时间最大值,否则,将当前 Hello报文的老化时间设置为获取的Hello报文的老化时间;
生成单元33,根据设置的Hello报文的老化时间生成Hello报文。 较佳地,如图6所示,上述实施例中的获取单元31进一步包括获取子单 元311和计算子单元312,具体如下获取子单元311,用于获取Hello报文的发送时间间隔以及发送时间间隔 和老化时间的比例;
计算子单元312,用于计算当前Hello报文的老化时间。
较佳地,如图7所示,上述实施例中的设置单元32进一步包括判断子单 元321和设置子单元322,具体如下
判断子单元321,用于判断Hello报文的老化时间是否大于老化时间最大 值,并将判断结果发送给设置子单元322;
设置子单元322,用于在确定出Hello报文的老化时间大于老化时间最大 值时,将当前Hello报文的老化时间设置为老化时间最大值,否则,将当前Hello 报文的老化时间设置为获取的Hello报文的老化时间。
上述实施例提供的Hello报文生成装置,可以应用于支持PIM-DM协议的 路由器、交换机等网络连接设备中,用于生成PIM-DM协议所需的Hello报文 消息。
出的情况。采用本发明实施例提供的方案,可以避免由于PIM-DM Hello发送 时间间隔过大造成邻居被删除,以及由此带来的多播数据流和正常业务中断的 情况。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
ii
权利要求
1、一种Hello报文的生成方法,其特征在于,该方法包括确认Hello报文的老化时间大于老化时间最大值时,将Hello报文的老化时间设置为老化时间最大值;根据设置的Hello报文的老化时间生成Hello报文。
2、 如权利要求l所述的方法,其特征在于,所述确认Hello报文的老化时 间大于老化时间最大值,包括比较并确定Hello报文的老化时间是否大于老化时间最大值。
3、 如权利要求2所述的方法,其特征在于,当确认Hello报文的老化时间 小于等于老化时间最大值时,将Hello报文的老化时间设置为当前得到的所述 老化时间。
4、 如权利要求2所述的方法,其特征在于,所述Hello报文的发送时间间 隔预先设定并能够根据需要调整;所述发送时间间隔和老化时间的比例预先设 定并能够根据需要调整。
5、 如权利要求1~3任一所述的方法,其特征在于,所述老化时间最大值 根据所述Hello报文中老化时间选项的字节长度设定。
6、 一种Hello报文的生成装置,其特征在于,该装置包括获取单元、设置 单元和生成单元,其中,所述获取单元,用于获取Hello报文的老化时间;所述设置单元,用于判断Hello报文的老化时间是否大于老化时间最大值, 如果是,将当前Hello报文的老化时间设置为老化时间最大值,否则,将当前 Hello报文的老化时间设置为获取的Hello报文的老化时间;所述生成单元,根据设置的Hello报文的老化时间生成Hello报文。
7、 如权利要求6所述的装置,其特征在于,所述获取单元进一步包括获取子单元和计算子单元,其中,和老化时间的比例;所述计算子单元,用于计算当前Hello才艮文的老化时间。
8、 如权利要求6或7所述的装置,其特征在于,所述设置单元进一步包 括判断子单元和设置子单元,其中,所述判断子单元,用于判断Hello报文的老化时间是否大于老化时间最大 值,并将判断结果发送给所述设置子单元;所述设置子单元,用于在确定出Hello报文的老化时间大于老化时间最大 值时,将当前Hello报文的老化时间设置为老化时间最大值,否则,将当前Hello 报文的老化时间设置为获取的Hello报文的老化时间。
9、 一种路由器,其特征在于,包括如权利要求6所述的Hello报文的生成 装置,其中,所述Hello报文的生成装置,用于生成Hello报文。
全文摘要
本发明公开了一种Hello报文的生成方法及装置,通过确认Hello报文的老化时间大于老化时间最大值时,将Hello报文的老化时间设置为老化时间最大值;根据设置的Hello报文的老化时间生成Hello报文。本发明实施例可以避免PIM-DM路由器发送出去的Hello报文老化时间溢出的情况。采用本发明实施例提供的方案,可以避免由于PIM-DM Hello发送时间间隔过大造成邻居被删除,以及由此带来的多播数据流和正常业务中断的情况。
文档编号H04L12/18GK101262446SQ20081010452
公开日2008年9月10日 申请日期2008年4月21日 优先权日2008年4月21日
发明者柯国栋 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1