基于路由信息协议的路由更新方法和设备的制造方法_3

文档序号:9372003阅读:来源:国知局
49]本步骤中,路由器A通过端口 Al接收路由器B发送的首路由更新报文组,该首路由更新报文组包含一个路由更新报文,路由更新报文中携带一条路由表项,路由器A根据该路由表项更新本地路由表,并根据该路由更新报文计算单个路由更新报文处理时间和路由器B发送路由更新报文的最大发送速率,计算步骤为:
[0050]路由器A确定自身当前可用缓存空间,假设为8K,确定保存路由器B发送来的路由更新报文所需的缓存空间,假设为512B,将确定出的当前可用缓存空间8K与保存单个路由更新报文所需的缓存空间512B的商16确定为路由器B发送路由更新报文的最大发送速率;
[0051]路由器A计算处理接收到的该路由更新报文所需的时间,假设为1ms,确定单个路由更新报文处理时间为1ms。
[0052]步骤304:路由器A发送携带计算出的最大发送速率和单个路由更新报文处理时间的路由更新请求报文给路由器B,该路由更新请求报文的协商标志位为协商已完成。
[0053]本步骤中,路由器A将计算出的最大发送速率与单个路由更新报文处理时间携带于路由更新请求报文中发送给路由器B,并将路由更新请求报文的协商标志位置为1,表示协商已完成。
[0054]步骤305:路由器B通过端口 BI接收携带计算出的最大发送速率和单个路由更新报文处理时间的路由更新请求报文。
[0055]步骤306:路由器B发送路由更新报文组给路由器A,启动延时定时器。
[0056]本步骤中,路由器B根据路由更新请求报文携带的最大发送速率16发送包含16个路由更新报文的路由更新报文组给路由器A,这16个路由更新报文各自分别携带I条未发送的路由表项,发送路由更新报文组后,路由器B将这16个路由更新报文携带的16条路由表项标记为已发送,同时启动延时定时器,定时周期为路由更新报文组的发送周期,该发送周期为路由器B实际发送的路由更新报文组包含的路由更新报文个数16与路由更新请求报文携带的单个路由更新报文处理时间Ims的乘积,即16ms。
[0057]步骤307:路由器A通过端口 Al接收路由器B发送的路由更新报文组,根据该路由更新报文组携带的路由表项更新本地路由表。
[0058]步骤308:路由器B的延时定时器超时,判断是否存在未发送的路由表项,如果是,返回执行步骤306,否则执行步骤309。
[0059]本步骤中,当路由器B的延时定时器超时后,路由器B判断本地是否还存在未发送给路由器A的路由表项,如果是,则返回执行步骤306,再次发送包含16个路由更新报文的路由更新报文组给路由器A,这16个路由更新报文各自分别携带I条未发送的路由表项,发送路由更新报文组后,路由器B将这16个路由更新报文携带的16条路由表项标记为已发送,同时重启延时定时器,定时周期为16ms ;如果路由器B本地所有的路由表项均已标记为已发送,则执行步骤309。
[0060]步骤309:路由器B结束向路由器A同步本地路由表。
[0061]更进一步地,步骤304中路由器A将最大发送速率和单个路由更新报文处理时间携带于路由更新请求报文中发送给路由器B后,实时监测自身CPU的使用率,当自身CPU使用率增加或减少预设值后,例如CPU使用率增加或减少10%,则路由器A重新计算单个路由更新报文处理时间和路由器B发送路由更新报文的最大发送速率,计算方法与步骤303中计算方法相同,在此不再赘述。之后将重新计算得到的最大发送速率和单个路由更新报文处理时间携带于路由更新请求报文中发送给路由器B,使得路由器B根据最新的路由更新请求报文中携带的最大发送速率和单个路由更新报文处理时间确定自身实际的路由更新报文发送速率和路由更新报文组的发送周期。
[0062]当路由器B结束向路由器A同步本地路由表后,启动定时器,假设为30s,当30s后定时器超时,路由器B取消本地1000条路由表项的已发送标记,全部更新为未发送,并根据当前协商的最大发送速率和单个路由更新报文处理时间确定自身路由更新报文发送速率和路由更新报文组的发送周期,向路由器A同步路由表项。
[0063]本实施例中,通过在路由器A上启动自动协商路由更新报文的最大发送速率和单个路由更新报文处理时间,使得路由器B根据协商出的最大发送速率和单个路由更新报文处理时间有规律的向路由器A发送路由更新报文,这样保证了路由器A在能力范围之内处理路由器B发来的路由更新报文,避免了同时接收大量路由更新报文导致CPU繁忙的情况出现,有效提高了路由设备的性能和网络带宽的利用率。
[0064]针对上述方法,本发明还公开一种路由设备,图4为本发明实施例中路由设备的结构图,如图4所示,该设备为接收第二路由设备发送的路由更新报文的第一路由设备时,该设备包括:
[0065]计算模块401,用于根据接收到的第二路由设备发来的单个路由更新报文计算单个路由更新报文处理时间和所述第二路由设备发送路由更新报文的最大发送速率。
[0066]发送模块402,用于将计算出的所述最大发送速率和单个路由更新报文处理时间携带于路由更新请求报文中发送给所述第二路由设备,使得所述第二路由设备周期性发送路由更新报文组给所述第一路由设备进行第一路由设备本地路由表的更新,所述路由更新报文组包含的路由更新报文个数不大于所述最大发送速率,所述路由更新报文组的发送周期不小于所述第二路由设备实际发送的路由更新报文组包含的路由更新报文个数与所述单个路由更新报文处理时间的乘积。
[0067]计算模块401根据接收到的第二路由设备发来的单个路由更新报文计算单个路由更新报文处理时间和所述第二路由设备发送路由更新报文的最大发送速率时,进一步用于:
[0068]确定所述第一路由设备自身当前可用缓存空间以及保存所述单个路由更新报文所需的缓存空间,将所述当前可用缓存空间与所述保存单个路由更新报文所需的缓存空间的商向下取整确定为所述最大发送速率;
[0069]计算处理所述单个路由更新报文所需的时间,将所述处理所述单个路由更新报文所需的时间确定为单个路由更新报文处理时间。
[0070]计算模块401根据接收到的第二路由设备发来的单个路由更新报文计算单个路由更新报文处理时间何所述第二路由设备发送路由更新报文的最大发送速率之前,
[0071]发送模块402还用于,发送携带初始发送速率的路由更新请求报文给所述第二路由设备;
[0072]该设备还包括接收模块403,用于接收所述第二路由设备根据所述携带初始发送速率的路由更新请求报文回应的首路由更新报文组,所述首路由更新报文组包含的路由更新报文个数与所述初始发送速率相同。
[0073]发送模块402发送的携带初始发送速率的路由更新请求报文的协商标志位为协商未完成,使得所述第二路由设备仅发送首路由更新报文组给接收模块403。
[0074]发送模块402发送携带所述最大发送速率和单个路由更新报文处理时间的路由更新请求报文的协商标志位为协商已完成,使得所述第二路由设备周期性发送路由更新报文组给接收模块403,发送周期不小于所述第二路由设备实际发送的路由更新报文组包含的路由更新报文个数与所述单个路由更新报文处理时间的乘积。
[0075]计算模块401还用于:
[0076]计算出所述最大发送速率和单个路由更新报文处理时间后,实时监测所述第一路由设备自身中央处理
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1