《一种实现报文重传的方法和网络设备.pdf》由会员分享,可在线阅读,更多相关《一种实现报文重传的方法和网络设备.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102769577 A (43)申请公布日 2012.11.07 C N 1 0 2 7 6 9 5 7 7 A *CN102769577A* (21)申请号 201210298602.0 (22)申请日 2012.08.21 H04L 12/56(2006.01) H04L 1/18(2006.01) H04L 1/16(2006.01) (71)申请人迈普通信技术股份有限公司 地址 610041 四川省成都市高新区九兴大道 16号迈普大厦 (72)发明人杜云飞 (74)专利代理机构北京德琦知识产权代理有限 公司 11018 代理人阎敏 宋志强 (54) 发明名称 。
2、一种实现报文重传的方法和网络设备 (57) 摘要 本发明提出一种实现报文重传的方法和网络 设备,其中方法包括:A、设置重传次数和重传时 间间隔的对应关系;设置重传列表,所述重传列 表的组织结构为二维数组;B、根据重传报文的重 传次数和所述对应关系确定重传时间间隔,根据 重传时间间隔确定该重传报文在重传列表中的位 置,将该重传报文保存在重传列表的所述位置中; C、如果收到确认(ACK)消息,则将所述ACK消息对 应的重传报文删除;如果在重传时间间隔超时时 没有收到重传报文对应的ACK消息,则发送所述 重传报文,将所述重传报文从重传列表中删除,并 将所述重传报文的重传次数加1,重新执行步骤 B。本。
3、发明能够在网络拥塞的情况下,减少重传本 身对网络带宽的占用,避免网络拥塞的进一步加 剧。 (51)Int.Cl. 权利要求书2页 说明书5页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 5 页 附图 2 页 1/2页 2 1.一种实现报文重传的方法,其特征在于,所述方法包括: A、设置重传次数和重传时间间隔的对应关系;设置重传列表,所述重传列表的组织结 构为二维数组; B、根据重传报文的重传次数和所述对应关系确定重传时间间隔,根据重传时间间隔确 定该重传报文在重传列表中的位置,将该重传报文保存在重传列表的所述位置中; C、如果收到确认ACK。
4、消息,则将所述ACK消息对应的重传报文删除;如果在重传时间间 隔超时时没有收到重传报文对应的ACK消息,则发送所述重传报文,将所述重传报文从重 传列表中删除,并将所述重传报文的重传次数加1,重新执行步骤B。 2.根据权利要求1所述的方法,其特征在于,所述重传次数和重传时间间隔的对应关 系为: R(1)=Rmin R(i+1)=Min(KR(i),Rmax),i=1;其中, R(i)表示重传次数为i时对应的重传时间间隔; K为预先设置的常数; Rmin表示初始重传时间间隔; Rmax表示最大重传时间间隔; Min表示取两个参数中的最小值。 3.根据权利要求2所述的方法,其特征在于,所述步骤A还包。
5、括:设置轮询周期,所述 轮询周期等于Rmax除以重传列表的行数; 步骤B中所述根据重传时间间隔确定重传报文在重传列表中的位置,将重传报文保存 在重传列表的所述位置中的方式为: 根据下式计算重传报文所在的行数:其中, row表示重传报文所在的行数; index表示轮询索引,所述index的初始值为0,每经过一个轮询周期则计算(index+1) modS,将计算得到的值作为index的当前值;其中,S表示重传列表的行数; interval表示重传时间间隔; Cyc表示轮询周期; S表示重传列表的行数; 根据上述计算结果将重传报文保存在所述重传列表的相应行中。 4.根据权利要求3所述的方法,其特征在。
6、于,步骤C中判断重传时间间隔超时的方式 为:轮询周期到期时,查找重传列表中行数等于(index+1)modS的重传报文,则查找到的重 传报文的重传时间间隔超时。 5.一种实现报文重传的网络设备,其特征在于,所述网络设备包括: 设置模块,用于设置重传次数和重传时间间隔的对应关系;还用于设置重传列表,所述 重传列表的组织结构为二维数组; 保存模块,用于根据重传报文的重传次数和所述对应关系确定重传时间间隔,根据重 传时间间隔确定该重传报文在重传列表中的位置,将该重传报文保存在重传列表的所述位 置中; 权 利 要 求 书CN 102769577 A 2/2页 3 重传模块,用于收到确认ACK消息时,将。
7、所述ACK消息对应的重传报文删除;还用于在 重传时间间隔超时时没有收到重传报文对应的ACK消息时,发送所述重传报文,将所述重 传报文从重传列表中删除,并将所述重传报文的重传次数加1,指示保存模块重新确定重传 报文的位置并保存重传报文。 6.根据权利要求5所述的网络设备,其特征在于,所述设置模块设置的重传次数和重 传时间间隔的对应关系为: R(1)=Rmin R(i+1)=Min(KR(i),Rmax),i=1;其中, R(i)表示重传次数为i时对应的重传时间间隔; K为预先设置的常数; Rmin表示初始重传时间间隔; Rmax表示最大重传时间间隔; Min表示取两个参数中的最小值。 7.根据权。
8、利要求6所述的网络设备,其特征在于,所述设置模块还设置轮询周期,所述 轮询周期等于Rmax除以重传列表的行数; 所述保存模块根据重传时间间隔确定重传报文在重传列表中的位置,将重传报文保存 在重传列表的所述位置中的方式为: 根据下式计算重传报文所在的行数:其中, row表示重传报文所在的行数; index表示轮询索引,所述index的初始值为0,每经过一个轮询周期则计算(index+1) modS,将计算得到的值作为index的当前值;其中,S表示重传列表的行数; interval表示重传时间间隔; Cyc表示轮询周期; S表示重传列表的行数; 根据上述计算结果将重传报文保存在所述重传列表的相应。
9、行中。 8.根据权利要求7所述的网络设备,其特征在于,所述重传模块判断重传时间间隔超 时的方式为:轮询周期到期时,查找重传列表中行数等于(index+1)modS的重传报文,则查 找到的重传报文的重传时间间隔超时。 权 利 要 求 书CN 102769577 A 1/5页 4 一种实现报文重传的方法和网络设备 技术领域 0001 本发明涉及网络传输技术领域,尤其涉及一种实现报文重传的方法和网络设备。 背景技术 0002 在网络传输技术中,为了保证传输的正确性和完整性,需要对一些报文进行重传。 以动态路由协议为例,动态路由协议(尤其是链路状态路由协议)通常采用重传确认技术, 在路由交换网络设备上。
10、广泛运用,能够保证动态路由协议路由学习的正确性及完整性。 0003 重传确认技术是通过在网络设备间传递确认(ACK)报文来完成的,当网络设备发 送路由更新(update)报文时,发送后会将该update报文加入到本地重传列表中。当收到 来自邻居设备的ACK报文时再将update报文从重传列表中删除;如果一定时间内没有收 到来自邻居设备的ACK,则认为邻居设备没有收到该update报文,即会重传该update报文 给邻居设备。重传将每间隔一定时间(重传时间间隔)发生一次,直到收到对应的ACK时再 将update报文从重传列表中删除。当网络存在拥塞时,网络中传输报文的时延增加,同样 的,updat。
11、e报文和ACK报文的传输时延也将增大,导致网络设备无法及时收到update报文 和ACK报文,从而导致update报文重传。报文重传会额外消耗部分网络带宽,而过多的重 传将会进一步加剧网络的拥塞。 0004 可见,现有的报文重传技术是在没有收到ACK报文的情况下按照固定的重传间隔 重新发送报文,这种方式在网络拥塞的情况下会浪费网络带宽,并会进一步加剧网络的拥 塞。 发明内容 0005 本发明提出了一种实现报文重传的方法,能够在网络拥塞的情况下,减少重传本 身对网络带宽的占用,避免网络拥塞的进一步加剧。 0006 本发明还提出一种网络设备,能够在网络拥塞的情况下,减少重传本身对网络带 宽的占用,。
12、避免网络拥塞的进一步加剧。 0007 本发明的技术方案是这样实现的: 0008 一种实现报文重传的方法,包括: 0009 A、设置重传次数和重传时间间隔的对应关系;设置重传列表,所述重传列表的组 织结构为二维数组; 0010 B、根据重传报文的重传次数和所述对应关系确定重传时间间隔,根据重传时间间 隔确定该重传报文在重传列表中的位置,将该重传报文保存在重传列表的所述位置中; 0011 C、如果收到ACK消息,则将所述ACK消息对应的重传报文删除;如果在重传时间间 隔超时时没有收到重传报文对应的ACK消息,则发送所述重传报文,将所述重传报文从重 传列表中删除,并将所述重传报文的重传次数加1,重新。
13、执行步骤B。 0012 一种实现报文重传的网络设备,包括: 0013 设置模块,用于设置重传次数和重传时间间隔的对应关系;还用于设置重传列表, 说 明 书CN 102769577 A 2/5页 5 所述重传列表的组织结构为二维数组; 0014 保存模块,用于根据重传报文的重传次数和所述对应关系确定重传时间间隔,根 据重传时间间隔确定该重传报文在重传列表中的位置,将该重传报文保存在重传列表的所 述位置中; 0015 重传模块,用于收到ACK消息时,将所述ACK消息对应的重传报文删除;还用于在 重传时间间隔超时时没有收到重传报文对应的ACK消息时,发送所述重传报文,将所述重 传报文从重传列表中删除。
14、,并将所述重传报文的重传次数加1,指示保存模块重新确定重传 报文的位置并保存重传报文。 0016 可见,本发明提出的实现报文重传的方法和网络设备能够控制每个报文独立重 传,从而减少重传次数,在网络拥塞的情况下减少重传本身对网络带宽的占用,避免网络拥 塞的进一步加剧。 附图说明 0017 图1为本发明的重传方法示意图; 0018 图2为本发明的重传列表轮询机制示意图; 0019 图3为本发明提出的网络设备的结构示意图。 具体实施方式 0020 本发明提出一种报文重传方法,为每一个重传报文设置一个重传时间间隔,可以 根据每一个重传报文的重传次数动态调整重传时间间隔;设置一个二维数组作为重传列 表;。
15、根据重传时间间隔和当前的轮询索引计算重传报文在重传列表中的位置,将重传报文 保存到相应的位置中;对重传列表进行定时轮询,当检查到重传时间间隔超时的重传报文 时,将该重传报文发送出去,增加其重传次数并重新计算重传时间间隔,改变重传报文在重 传列表中的位置,等待下一次重传。如果重传间隔超时前收到重传报文对应的确认(ACK)消 息,则将该重传报文从重传列表中删除。 0021 本发明提出的实现报文重传的方法包括: 0022 A、设置重传次数和重传时间间隔的对应关系;设置重传列表,所述重传列表的组 织结构为二维数组; 0023 B、根据重传报文的重传次数和所述对应关系确定重传时间间隔,根据重传时间间 隔。
16、确定该重传报文在重传列表中的位置,将该重传报文保存在重传列表的所述位置中; 0024 C、如果收到ACK消息,则将所述ACK消息对应的重传报文删除;如果在重传时间间 隔超时时没有收到重传报文对应的ACK消息,则发送所述重传报文,将所述重传报文从重 传列表中删除,并将所述重传报文的重传次数加1,重新执行步骤B。 0025 上述步骤A中,设置重传次数和重传时间间隔的对应关系,为每一个报文设置重 传时间间隔,根据重传次数动态调整重传时间间隔; 0026 具体地,为每个报文设置重传时间间隔(interval),该重传时间间隔初始值设置 为一个默认值(例如:5秒),同时为每个报文记录重传次数(numbe。
17、r)。使用一种指数退避方 法,根据重传次数动态调整重传时间间隔,具体方式为: 0027 R(1)=Rmin 说 明 书CN 102769577 A 3/5页 6 0028 R(i+1)=Min(KR(i),Rmax),当i=1时; 0029 R(i):表示第i次重传时的重传时间间隔; 0030 K为预先设置的常数,表示本次重传时间间隔是上一次的K倍; 0031 Rmin:表示初始重传时间间隔; 0032 Rmax:表示最大重传时间间隔; 0033 Min:表示一个函数,取两个参数中的最小值。 0034 可见,每个报文的重传时间间隔会随着重传次数的增加不断增大,为了避免重传 时间间隔无限制增大,。
18、为重传时间间隔设置了最大值。 0035 进一步地,定义轮询索引(index)和轮询周期,轮询周期等于Rmax除以重传列表 的行数;index的初始值为0,每经过一个轮询周期则计算(index+1)modS(其中S表示重传 列表的行数),将计算得到的值作为index的当前值。 0036 上述步骤B中,重传报文保存在重传列表中,重传列表是一个二维数组;根据下式 计算重传报文所在的行数: 0037 其中, 0038 row表示重传报文所在的行数; 0039 index表示轮询索引; 0040 interval表示重传时间间隔; 0041 Cyc表示轮询周期; 0042 表示下取整; 0043 mod。
19、表示取模; 0044 S表示重传列表的行数。 0045 当多个重传报文计算得到的在重传列表中的行数row相同时,将这些报文顺序加 入到重传列表中行数为row的行中,报文所在的列数为column。如表1为本发明提出的重 传列表组织结构示意表。 0046 0047 表1 0048 网络设备不断产生新的重传报文,并采用上述方式将重传报文保存在重传列表 中。然后等待重传报文对应的ACK消息,如果收到ACK消息则从重传列表中删除该重传报 文;否则,如果重传时间间隔超时时仍然没有收到ACK消息,则发送该重传报文,并重新计 说 明 书CN 102769577 A 4/5页 7 算重传时间间隔后将该重传报文重。
20、新加入到重传列表的对应位置。如图1所示,本发明方 法中的重传方法包括: 0049 步骤101:根据重传报文的重传次数计算该重传报文的重传时间间隔; 0050 步骤102:根据重传时间间隔和轮询索引计算该重传报文在重传列表中的位置, 保存该重传报文; 0051 步骤103:判断是否收到重传报文对应的ACK消息,如果收到,则从重传列表中删 除该重传报文;否则执行步骤104; 0052 步骤104:当重传报文的重传时间间隔超时时,发送该重传报文,将该重传报文的 重传次数加1,重新执行步骤101。 0053 上述步骤104中,采用轮询机制判断重传报文的重传时间间隔是否超时,具体地, 对重传列表的轮询机。
21、制设置一个轮询周期,轮询周期为固定值(例如:2秒),为重传列表设 置轮询索引index,每一个轮询周期到期后,遍历重传列表中行数(row)与(index+1)modS 相同的行(其中,S为重传列表的行数),如果存在重传报文则说明该重传报文的重传时间间 隔超时。遍历完成后,计算(index+1)modS,将计算得到的值作为index的当前值,进入下 一个轮询周期。如图2为本发明的重传列表轮询机制示意图,每经过一个轮询周期,网络设 备则遍历重传列表中的一行;例如,重传列表的行数为M时,网络设备依次遍历第1行、第2 行、,直至第(M-1)行,之后重新返回第0行,继续进行遍历。 0054 如果在一个轮。
22、询周期内遍历到重传报文,则说明这些重传报文的重传时间间隔已 经超时,需要将这些报文重传出去,并将其重传次数加1。重传完成后,需要删除该重传报 文,重新计算该重传报文的位置并将其加入到重传列表中,因此需要根据当前重传次数使 用指数退避方法重新计算重传时间间隔,根据重传时间间隔将重传报文重新加入到重传列 表中。 0055 当收到ACK消息时,在重传列表中查找对应的重传报文,查找到后将该重传报文 从重传列表中删除,不再重传该报文,同时将该报文的重传次数清零,至此该报文的重传已 经完成。 0056 本发明还提出一种实现报文重传的网络设备,如图3为本发明提出的网络设备的 结构示意图,包括: 0057 设。
23、置模块301,用于设置重传次数和重传时间间隔的对应关系;还用于设置重传 列表,所述重传列表的组织结构为二维数组; 0058 保存模块302,用于根据重传报文的重传次数和所述对应关系确定重传时间间隔, 根据重传时间间隔确定该重传报文在重传列表中的位置,将该重传报文保存在重传列表的 所述位置中; 0059 重传模块303,用于收到ACK消息时,将所述ACK消息对应的重传报文删除;还用 于在重传时间间隔超时时没有收到重传报文对应的ACK消息时,发送所述重传报文,将所 述重传报文从重传列表中删除,并将所述重传报文的重传次数加1,指示保存模块重新确定 重传报文的位置并保存重传报文。 0060 上述设置模。
24、块301设置的重传次数和重传时间间隔的对应关系为: 0061 R(1)=Rmin 0062 R(i+1)=Min(KR(i),Rmax),i=1;其中, 说 明 书CN 102769577 A 5/5页 8 0063 R(i)表示重传次数为i时对应的重传时间间隔; 0064 K为预先设置的常数; 0065 Rmin表示初始重传时间间隔; 0066 Rmax表示最大重传时间间隔; 0067 Min表示取两个参数中的最小值。 0068 上述设置模块301还设置轮询周期,所述轮询周期等于Rmax除以重传列表的行 数; 0069 上述保存模块302根据重传时间间隔确定重传报文在重传列表中的位置,将重传。
25、 报文保存在重传列表的所述位置中的方式为: 0070 根据下式计算重传报文所在的行数:其中, 0071 row表示重传报文所在的行数; 0072 index表示轮询索引,所述index的初始值为0,每经过一个轮询周期则计算 (index+1)modS,将计算得到的值作为index的当前值;其中,S表示重传列表的行数; 0073 interval表示重传时间间隔; 0074 Cyc表示轮询周期; 0075 S表示重传列表的行数; 0076 根据上述计算结果将重传报文保存在所述重传列表的相应行中。 0077 上述重传模块303判断重传时间间隔超时的方式为:轮询周期到期时,查找重传 列表中行数等于(。
26、index+1)modS的重传报文,则查找到的重传报文的重传时间间隔超时。 0078 综上可见,本发明提出的实现报文重传的方法和网络设备能够针对每一个报文设 置一个重传时间间隔,使重传时间间隔随重传次数增加而增大,减小报文重传的频率,从而 减少报文重传的数量,防止在网络拥塞的情况下重传报文使拥塞进一步加剧。 0079 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。 说 明 书CN 102769577 A 1/2页 9 图1 图2 说 明 书 附 图CN 102769577 A 2/2页 10 图3 说 明 书 附 图CN 102769577 A 10 。