CN101262446A - 一种Hello报文的生成方法及装置 - Google Patents
一种Hello报文的生成方法及装置 Download PDFInfo
- Publication number
- CN101262446A CN101262446A CNA2008101045254A CN200810104525A CN101262446A CN 101262446 A CN101262446 A CN 101262446A CN A2008101045254 A CNA2008101045254 A CN A2008101045254A CN 200810104525 A CN200810104525 A CN 200810104525A CN 101262446 A CN101262446 A CN 101262446A
- Authority
- CN
- China
- Prior art keywords
- hello packet
- ageing time
- ageing
- maximum
- hello
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种Hello报文的生成方法及装置,通过确认Hello报文的老化时间大于老化时间最大值时,将Hello报文的老化时间设置为老化时间最大值;根据设置的Hello报文的老化时间生成Hello报文。本发明实施例可以避免PIM-DM路由器发送出去的Hello报文老化时间溢出的情况。采用本发明实施例提供的方案,可以避免由于PIM-DM Hello发送时间间隔过大造成邻居被删除,以及由此带来的多播数据流和正常业务中断的情况。
Description
技术领域
本发明涉及计算机与通信技术领域,尤其涉及一种Hello报文的生成方法及装置。
背景技术
互联网工程任务组(IETF,The Internet Engineering Task Force)是一个松散的、自律的、志愿的民间学术组织,成立于1985年底,其主要任务是负责互联网相关技术规范的研发和制定。请求注解(RFC,Request For Comments)是由IETF制定的无限制分发的正式文档。每一份RFC文档都有唯一的编号来标识。
路由器是一种连接多个网络或网段、具有路由功能的网络设备。路由(Routing)是根据IP地址把报文从数据源穿过网络传递到目的地的行为。路由有单播路由和多播路由之分,单播路由的接收者只有一个,网络上的路由器对单播数据报文只转发不复制;多播路由的接收者可能有多个,网络上的路由器接收到数据报文可能要复制多份并进行转发。
路由协议是实现路由算法的协议,通常用于路由器之间分享路由信息。同样,路由协议有单播路由协议和多播路由协议之分。反向路径转发(RPF,Reverse-Path Forwarding)是一种用于多播路由选择的技术。当多播数据包到达路由器时,路由器作RPF检查,以决定转发或抛弃该数据包。RPF检查的过程如下:检查数据包的源IP地址,以确定该数据包经过的接口是否在从源到此的路径上;若数据包是从可返回源主机的接口上到达,则RPF检查成功,转发该数据包,否则RPF检查失败,抛弃该数据包。
协议无关多播-密集模式(PIM-DM,Protocol Independent Multicast-DenseMode)是一种多播路由协议,它使用由任意的单播路由协议产生的路由表执行反向路径转发(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报文的老化时间生成Hello报文。本发明实施例可以避免PIM-DM路由器发送出去的Hello报文老化时间溢出的情况。采用本发明实施例提供的方案,可以避免由于PIM-DMHello发送时间间隔过大造成邻居被删除,以及由此带来的多播数据流和正常业务中断的情况。
附图说明
图1为现有技术中PIM-DM Hello报文的发送路由器关系示意图;
图2为PIM-DM Hello报文的结构示意图;
图3为本发明实施例1的主要实现原理流程图;
图4为本发明实施例2的主要实现原理流程图;
图5为本发明实施例提供装置的结构示意图;
图6为本发明实施例提供装置中获取单元31的结构示意图;
图7为本发明实施例提供装置中设置单元32的结构示意图。
具体实施方式
本发明实施例中,在PIM-DM Hello报文生成的时候,判断设定的老化时间是否大于老化时间的最大值,如果是,将PIM-DM Hello报文的老化时间设置为最大值;否则,保留设定的老化时间。
由于PIM-DM Hello报文的老化时间不是孤立存在时,而是与PIM-DMHello报文的发送时间间隔成一定比例,这里所述的发送时间间隔和老化时间的比例也是可以预先设定的。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
如图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报文老化时间选项,其选项值为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-DMHello报文老化时间大于65535的情况。由于PIM-DM Hello报文老化时间只有2字节(4比特),所以该数值无法在Hello报文上正确传送,只能传送低位的2字节(4比特),可能导致收到Hello报文的路由器上的PIM-DM邻居老化时间不对。
例如,在图1中,在路由器A上配置PIM-DM Hello发送时间间隔为1 9000,PIM-DM Hello报文老化时间是19000*3.5=66500,超过了PIM-DM Hello报文老化时间的范围。66500的1 6进制是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的主要实现原理流程如下:
步骤11,确认PIM-DM Hello报文的老化时间大于老化时间最大值时,将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
由于I*3.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 Hello报文发送时间间隔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报文的路由器不会由于老化时间超时将邻居删除掉。
相应地,本发明实施例还提供了一种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报文老化时间溢出的情况。采用本发明实施例提供的方案,可以避免由于PIM-DM Hello发送时间间隔过大造成邻居被删除,以及由此带来的多播数据流和正常业务中断的情况。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1、一种Hello报文的生成方法,其特征在于,该方法包括:
确认Hello报文的老化时间大于老化时间最大值时,将Hello报文的老化时间设置为老化时间最大值;
根据设置的Hello报文的老化时间生成Hello报文。
2、如权利要求1所述的方法,其特征在于,所述确认Hello报文的老化时间大于老化时间最大值,包括:
获取Hello报文的发送时间间隔以及发送时间间隔和老化时间的比例,得到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报文的发送时间间隔以及发送时间间隔和老化时间的比例;
所述计算子单元,用于计算当前Hello报文的老化时间。
8、如权利要求6或7所述的装置,其特征在于,所述设置单元进一步包括判断子单元和设置子单元,其中,
所述判断子单元,用于判断Hello报文的老化时间是否大于老化时间最大值,并将判断结果发送给所述设置子单元;
所述设置子单元,用于在确定出Hello报文的老化时间大于老化时间最大值时,将当前Hello报文的老化时间设置为老化时间最大值,否则,将当前Hello报文的老化时间设置为获取的Hello报文的老化时间。
9、一种路由器,其特征在于,包括如权利要求6所述的Hello报文的生成装置,其中,
所述Hello报文的生成装置,用于生成Hello报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101045254A CN101262446A (zh) | 2008-04-21 | 2008-04-21 | 一种Hello报文的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101045254A CN101262446A (zh) | 2008-04-21 | 2008-04-21 | 一种Hello报文的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101262446A true CN101262446A (zh) | 2008-09-10 |
Family
ID=39962656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101045254A Pending CN101262446A (zh) | 2008-04-21 | 2008-04-21 | 一种Hello报文的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101262446A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010048812A1 (zh) * | 2008-10-30 | 2010-05-06 | 华为技术有限公司 | 提高组播转发可靠性的方法和装置 |
CN101958840A (zh) * | 2010-10-18 | 2011-01-26 | 中兴通讯股份有限公司 | 报文表项创建方法和装置、组播数据流转发方法和装置 |
CN102064956A (zh) * | 2010-09-30 | 2011-05-18 | 中兴通讯股份有限公司 | 老化时间的调整方法及系统、调制解调器 |
CN105939209A (zh) * | 2015-12-30 | 2016-09-14 | 杭州迪普科技有限公司 | 处理邻居表项的方法及装置 |
CN104660439B (zh) * | 2013-11-25 | 2018-10-02 | 华为技术有限公司 | 会话表项老化时间的设置方法及装置 |
CN110166178A (zh) * | 2019-05-28 | 2019-08-23 | 武汉思创易控科技有限公司 | 一种基于广播通讯的可靠传输方法、存储介质和终端 |
-
2008
- 2008-04-21 CN CNA2008101045254A patent/CN101262446A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010048812A1 (zh) * | 2008-10-30 | 2010-05-06 | 华为技术有限公司 | 提高组播转发可靠性的方法和装置 |
CN101394358B (zh) * | 2008-10-30 | 2011-06-15 | 华为技术有限公司 | 提高组播转发可靠性的方法和装置 |
CN102064956A (zh) * | 2010-09-30 | 2011-05-18 | 中兴通讯股份有限公司 | 老化时间的调整方法及系统、调制解调器 |
WO2012041080A1 (zh) * | 2010-09-30 | 2012-04-05 | 中兴通讯股份有限公司 | 老化时间的调整方法及系统、调制解调器 |
CN102064956B (zh) * | 2010-09-30 | 2015-05-13 | 中兴通讯股份有限公司 | 老化时间的调整方法及系统、调制解调器 |
CN101958840A (zh) * | 2010-10-18 | 2011-01-26 | 中兴通讯股份有限公司 | 报文表项创建方法和装置、组播数据流转发方法和装置 |
CN101958840B (zh) * | 2010-10-18 | 2014-09-10 | 中兴通讯股份有限公司 | 报文表项创建方法和装置、组播数据流转发方法和装置 |
CN104660439B (zh) * | 2013-11-25 | 2018-10-02 | 华为技术有限公司 | 会话表项老化时间的设置方法及装置 |
CN105939209A (zh) * | 2015-12-30 | 2016-09-14 | 杭州迪普科技有限公司 | 处理邻居表项的方法及装置 |
CN105939209B (zh) * | 2015-12-30 | 2019-08-06 | 杭州迪普科技股份有限公司 | 处理邻居表项的方法及装置 |
CN110166178A (zh) * | 2019-05-28 | 2019-08-23 | 武汉思创易控科技有限公司 | 一种基于广播通讯的可靠传输方法、存储介质和终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7580368B2 (en) | Packet distribution control method | |
JP4825696B2 (ja) | パケット中継装置 | |
CN101291240B (zh) | 一种组播流传输方法和系统 | |
US20120120954A1 (en) | Method and apparatus for tracing a multicast flow | |
WO2012003743A1 (zh) | 组播流量的转发方法及装置 | |
WO2006081750A1 (fr) | Méthode de processus de filtrage de source multidiffusion | |
CN104253759A (zh) | 报文转发方法、装置及系统 | |
CN101262446A (zh) | 一种Hello报文的生成方法及装置 | |
CN101252529A (zh) | 一种组播报文的转发方法和设备 | |
KR101344015B1 (ko) | PIM―SSM을 이용하는 네트워크에서 Join 메시지부하 조절 시스템 및 방법 | |
WO2010111956A1 (zh) | 一种组播转发路径收敛的方法和系统 | |
EP2652919B1 (en) | Method for group-based multicast with non-uniform receivers | |
US7609656B2 (en) | Bridge device, method of controlling bridge device, and control program | |
CN104901893A (zh) | 组播流量保护方法及装置 | |
WO2017201750A1 (zh) | 组播数据处理方法、装置及系统 | |
JP2006074132A (ja) | マルチキャスト通信方法及びゲートウェイ装置 | |
CN101610200B (zh) | 组播路由的切换方法及装置 | |
CN102843303B (zh) | Pim中的组播报文处理方法及装置 | |
WO2016061931A1 (zh) | 用户设备进行组播路径追踪的方法及系统 | |
CN102394813B (zh) | 一种组播路由表项管理方法和路由器 | |
CN105429878A (zh) | 一种创建pim-sm spt的方法 | |
WO2014199924A1 (ja) | 制御装置、通信システム、中継装置の制御方法及びプログラム | |
CN104283796A (zh) | 一种组播分发树建立方法和装置 | |
WO2015032337A1 (zh) | 一种优化pim-sm组播路由建立的方法 | |
CN100542142C (zh) | 转变三层网络设备接口状态的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C57 | Notification of unclear or unknown address | ||
DD01 | Delivery of document by public notice |
Addressee: Jing Pengxin Document name: the First Notification of an Office Action |
|
DD01 | Delivery of document by public notice |
Addressee: Zhou Jian Document name: Notification of Passing Examination on Formalities |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080910 |