BGP消息的发送方法及装置制造方法及图纸

技术编号:17798329 阅读:25 留言:0更新日期:2018-04-25 21:51
本申请提供一种BGP消息的发送方法及装置,其中,该方法包括:将用于存放待发送的BGP消息的队列划分为两个以上子队列,其中,每一个子队列用于存放携带对应类型的BGP路由的BGP消息;当需要发布BGP路由时,确定该BGP路由的类型,将携带该BGP路由的BGP消息存放到该类型对应的子队列中;按照第一调度算法,对各个子队列进行调度,发送当前调度的子队列中的BGP消息。

【技术实现步骤摘要】
BGP消息的发送方法及装置
本申请涉及网络通信
,特别涉及一种BGP消息的发送方法及装置。
技术介绍
BGP(BorderGatewayProtocol,边界网关协议)是一种用于AS(AutonomousSystem,自治系统)之间的动态路由协议。在现有技术中,两台路由设备在建立了BGP邻居关系之后,需要通过Update消息相互发布BGP路由,从而使得对端路由设备可以根据这些BGP路由来进行数据流转发。如图1所示,路由设备R1在与路由设备R2建立了BGP邻居关系之后,将携带有需要发布给路由设备R2的BGP路由的Update消息存放到相应队列中,以便发送给路由设备R2。后续,路由设备R1又与路由设备R3建立了BGP邻居关系,路由设备R1又会将携带有需要发布给路由设备R3的BGP路由的Update消息存放到该队列中,以便发送给路由设备R3。
技术实现思路
有鉴于此,本申请提供一种BGP消息的发送方法及装置。具体地,本申请是通过如下技术方案实现的:一方面,提供了一种BGP消息的发送方法,该方法包括:将用于存放待发送的BGP消息的队列划分为两个以上子队列,其中,每一个子队列用于存放携带对应类型的BGP路由的BGP消息;当需要发布BGP路由时,确定该BGP路由的类型,将携带该BGP路由的BGP消息存放到该类型对应的子队列中;按照第一调度算法,对各个子队列进行调度,发送当前调度的子队列中的BGP消息。另一方面,还提供了一种BGP消息的发送装置,该装置包括:划分单元,用于将用于存放待发送的BGP消息的队列划分为两个以上子队列,其中,每一个子队列用于存放携带对应类型的BGP路由的BGP消息;存放单元,用于当需要发布BGP路由时,确定该BGP路由的类型,将携带该BGP路由的BGP消息存放到该类型对应的子队列中;调度发送单元,用于按照第一调度算法,对各个子队列进行调度,发送当前调度的子队列中的BGP消息。通过本申请的以上技术方案,预先将用于存放待发送的BGP消息的队列划分为多个子队列,每一个子队列用于存放携带对应类型的BGP路由的BGP消息,这样,当需要发布BGP路由时,可以根据该BGP路由的类型,将携带有该BGP路由的BGP消息存放到对应的子队列中,在进行队列调度时,按照某一种调度算法对各个子队列进行调度,并发送当前调度的子队列中的BGP消息。从而,通过使用一种简单的多队列调度机制,可以区分不同类型的BGP路由的调度发送顺序,可以将需要尽快发布的BGP路由及时发送出去,从而使得对端设备能够及时接收到这些BGP路由,进而及时根据这些BGP路由转发数据流。附图说明图1是一种网络架构示意图;图2是本申请一示例性实施例示出的BGP消息的发送方法的流程图;图3是本申请一示例性实施例示出的Update消息的发送方法的流程图;图4是本申请一示例性实施例示出的路由设备的硬件结构示意图;图5是本申请一示例性实施例示出的BGP消息的发送装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在BGP中,发送BGP消息的路由器称为BGP发言者(BGPSpeaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP发言者。当BGP发言者收到来自其它AS的新路由信息时,如果该路由信息比当前已知路由信息更优、或者当前还没有该路由信息,它就会把这条路由信息发布给本AS内所有其它BGP发言者。相互交换消息的BGP发言者之间互称对等体(Peer)。BGP有5种消息类型:Open(打开)、Update(更新)、Notification(通告)、Keepalive(保活)和Route-refresh(路由刷新)。其中,Update消息用于在BGP对等体之间交换路由,它既可以发布可达路由,也可以撤销不可达路由。Route-refresh消息用于要求BGP对等体重新发送指定地址族的路由信息。请参见图1,由于用于存放需要发送的BGP消息的队列单一,需要发送给路由设备R2和路由设备R3的Update消息存放在同一队列中,因此,当路由设备R1的CPU(CentralProcessingUnit,中央处理单元)的负荷较大时,CPU可能会花费较长的时间才能处理完需要发送给路由设备R2的Update消息,之后才能开始处理需要发送给路由设备R3的Update消息,这样,路由设备R1没有及时将BGP路由发布给路由设备R3,导致路由设备R3没有及时接收到这些BGP路由,进而无法及时根据这些BGP路由转发数据流。为了解决现有技术中当路由设备的CPU负荷较大时无法及时将BGP路由发布出去的问题,本申请以下实施例中提供了一种BGP消息的发送方法,该方法可以由BGP发言者或BGP对等体来执行。另外,由于BGP的5种消息类型中,只有Update消息和Route-refresh消息可以携带BGP路由,因此,本申请以下实施例中的BGP消息指代的是Update消息和/或Route-refresh消息。如图2所示,本申请实施例的BGP消息的发送方法包括以下步骤:步骤S101,将用于存放待发送的BGP消息的队列划分为N个子队列,其中,每一个子队列用于存放携带对应类型的BGP路由的BGP消息;其中,N为不小于2的正整数。步骤S102,当需要发布BGP路由时,确定该BGP路由的类型,将携带该BGP路由的BGP消息存放到该类型对应的子队列中;步骤S103,按照第一调度算法,对各个子队列进行调度,发送当前调度的子队列中的BGP消息。目前比较常用的队列调度算法主要有:SP(StrictPriority,严格优先级)调度算法和基于权重的调度算法等。下面分别对上述队列调度算法进行简单介绍。SP调度算法:不同的队列具有不同的优先级,严格按照优先级由高到低的顺序,优先调度较高优先级的队列,当较高优先级的队列为空时,再调度较低优先级的队列。基于权重的调度算法:每一个队列具有对应的权重,按照对应的权重依次对各个队列进行调度,例如,队列0~队列3的调度权重依次为1:2:3:4,则,在调度队列0时从队列0中取出1个消息,在调度队列1时从队列1中取出2个消息,在调度队列2时从队列2中取出3个消息,在调度队列3时从队列3本文档来自技高网...
BGP消息的发送方法及装置

【技术保护点】
一种边界网关协议BGP消息的发送方法,其特征在于,所述方法包括:将用于存放待发送的BGP消息的队列划分为两个以上子队列,其中,每一个子队列用于存放携带对应类型的BGP路由的BGP消息;当需要发布BGP路由时,确定该BGP路由的类型,将携带该BGP路由的BGP消息存放到该类型对应的子队列中;按照第一调度算法,对各个子队列进行调度,发送当前调度的子队列中的BGP消息。

【技术特征摘要】
1.一种边界网关协议BGP消息的发送方法,其特征在于,所述方法包括:将用于存放待发送的BGP消息的队列划分为两个以上子队列,其中,每一个子队列用于存放携带对应类型的BGP路由的BGP消息;当需要发布BGP路由时,确定该BGP路由的类型,将携带该BGP路由的BGP消息存放到该类型对应的子队列中;按照第一调度算法,对各个子队列进行调度,发送当前调度的子队列中的BGP消息。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将两个以上子队列划分到一个子队列组中;按照第二调度算法,对所述子队列组中的各个子队列进行调度。3.根据权利要求2所述的方法,其特征在于,所述第一调度算法为以下之一:严格优先级SP调度算法、基于权重的调度算法;所述第二调度算法为以下之一:SP调度算法、基于权重的调度算法。4.根据权利要求2所述的方法,其特征在于,所述第一调度算法为SP调度算法,所述第二调度算法为基于权重的调度算法;则,划分得到的子队列为优先级由高到低的第一子队列、第二子队列、以及第三子队列至第六子队列,其中,第三子队列至第六子队列的优先级相同;所述将两个以上子队列划分到一个子队列组中,包括:将第三子队列至第六子队列划分到一个子队列组中;所述将携带该BGP路由的BGP消息存放到该类型对应的子队列中,包括:在确定该BGP路由的团体属性属于预设团体属性时,将携带该BGP路由的BGP消息存放到第一子队列中;在确定该BGP路由为聚合路由时,将携带该BGP路由的BGP消息存放到第二子队列中;在确定该BGP路由为本地路由时,将携带该BGP路由的BGP消息存放到第三子队列中;在确定该BGP路由为外部路由时,将携带该BGP路由的BGP消息存放到第四子队列中;在确定该BGP路由的掩码属于第一掩码区间时,将携带该BGP路由的BGP消息存放到第五子队列中;在确定该BGP路由的掩码属于第二掩码区间时,将携带该BGP路由的BGP消息存放到第六子队列中。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述BGP消息为更新Update消息或路由刷新Rou...

【专利技术属性】
技术研发人员:吴文汪亮晁岳磊
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1