网络带宽检测方法、装置及网络设备与流程

文档序号:12038779阅读:212来源:国知局
网络带宽检测方法、装置及网络设备与流程
本发明涉及通信技术领域,尤其涉及网络带宽检测方法、装置及网络设备。

背景技术:
随着网络设备的不断更新,网络具有越来越高的网络带宽,但网络延迟的存在极大地影响了网络带宽的利用率,为了充分利用网络带宽,需要采用高效且受网络延迟影响较小的网络带宽检测方法,以便根据检测结果获取的网络带宽,调节网络设备发送数据的速率。现有技术中,可以采用双端检测方式检测网络带宽,该检测方式先由发送端网络设备以预定速率R向接收端网络设备发送测量包,接收端网络设备记录接收到的测量包的到达时间,并根据记录的到达时间绘出延迟曲线,当根据延迟曲线检测到R高于网络带宽,从而造成传输链路拥塞时,接收端网络设备将检测结果反馈至发送端网络设备,发送端网络设备根据策略调整R的大小并再次发送测量包,直至接收端网络设备根据绘出的延迟曲线确认链路无拥塞,从而检测出调整后的R近似于网络带宽。发明人在对现有技术的研究过程中发现,现有网络带宽检测方法,需要发送端网络设备与接收端网络设备共同进行检测,并且当发送端网络设备首次发送测量包的速率R高于网络带宽时,可能需要发送端网络设备多次调整速率R并发送测量包才能由接收端网络设备检测出网络带宽,因此检测时间较长,且检测过程需要占用大量网络资源。

技术实现要素:
本发明实施例中提供了网络带宽检测方法、装置及网络设备,用以解决现有技术中检测网络带宽时间较长,且需要占用大量网络资源的问题。为解决上述问题,本发明实施例提供的技术方案如下:第一方面,提供一种网络带宽检测方法,所述方法包括:第一网络设备分别以第一速率向第二网络设备发送多组探测报文,以使所述第一网络设备与所述第二网络设备之间设置的路由设备和所述第二网络设备中的每个设备接收到一组探测报文;所述第一网络设备接收所述每个设备根据接收到的探测报文的数量返回的失效报文;所述第一网络设备根据所述每个设备返回的失效报文的数量计算所述第一网络设备与所述第二网络设备之间每段链路的链路带宽;所述第一网络设备根据所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽。结合第一方面,在第一方面的第一种可能的实现方式中,所述第一网络设备分别以第一速率向第二网络设备发送多组探测报文,包括:第一网络设备为所述每个设备生成一组网络控制报文协议ICMP探测报文,所述每个设备的一组ICMP探测报文中的生存时间TTL字段的值设置为与所述设备对应的链路的链路编号一致,所述设备对应的链路为所述设备与所述设备的上一跳设备之间的链路;第一网络设备分别以第一速率向所述第二网络设备发送为所述每个设备生成的一组ICMP探测报文。结合第一方面,或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一网络设备根据所述每个设备返回的失效报文的数量计算所述第一网络设备与所述第二网络设备之间每段链路的链路带宽,包括:所述第一网络设备将向所述每个设备发送的一组探测报文的数量减去所述设备返回的失效报文的数量,获得所述设备对应的链路上的丢失报文数量;将所述丢失报文数量除以所述发送的一组探测报文的数量后与所述第一速率相乘,得到第一乘积,将所述第一速率与所述第一乘积的差值确定为所述设备对应的链路的链路带宽。结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一网络设备根据所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽,包括:所述第一网络设备从所述每段链路的链路带宽中获得最小的链路带宽,将所述最小的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一网络设备根据所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽,包括:所述第一网络设备从所述每段链路的链路带宽中获得最小的链路带宽;所述第一网络设备为所述最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的所述一组探测报文中包含的报文数量大于所述第一设备已接收到的所述第一网络设备发送的一组探测报文中包含的报文数量;所述第一网络设备向所述第一设备发送所述重新生成的一组探测报文;所述第一网络设备接收所述第一设备根据接收到的探测报文的数量返回的第一失效报文;所述第一网络设备将根据所述第一失效报文的数量计算的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。第二方面,提供一种网络带宽检测装置,所述装置包括:发送单元,用于分别以第一速率向第二网络设备发送多组探测报文,以使所述第一网络设备与所述第二网络设备之间设置的路由设备和所述第二网络设备中的每个设备接收到一组探测报文;接收单元,用于接收所述每个设备根据接收到的探测报文的数量返回的失效报文;计算单元,用于根据所述接收单元接收到的所述每个设备返回的失效报文的数量计算所述第一网络设备与所述第二网络设备之间每段链路的链路带宽;确定单元,用于根据所述计算单元计算的所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽。结合第二方面,在第二方面的第一种可能的实现方式中,所述发送单元包括:探测报文生成子单元,用于为所述每个设备生成一组网络控制报文协议ICMP探测报文,所述每个设备的一组ICMP探测报文中的生存时间TTL字段的值设置为与所述设备对应的链路的链路编号一致,所述设备对应的链路为所述设备与所述设备的上一跳设备之间的链路;探测报文发送子单元,用于分别以第一速率向所述第二网络设备发送为所述每个设备生成的一组ICMP探测报文。结合第二方面,或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述计算单元包括:丢失报文计算子单元,用于将向所述每个设备发送的一组探测报文的数量减去所述设备返回的失效报文的数量,获得所述设备对应的链路上的丢失报文数量;链路带宽确定子单元,用于将所述丢失报文数量除以所述发送的一组探测报文的数量后与所述第一速率相乘,得到第一乘积,将所述第一速率与所述第一乘积的差值确定为所述设备对应的链路的链路带宽。结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定单元,具体用于从所述每段链路的链路带宽中获得最小的链路带宽,将所述最小的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述确定单元包括:最小带宽获得子单元,用于从所述每段链路的链路带宽中获得最小的链路带宽;探测报文重生子单元,用于为所述最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的所述一组探测报文中包含的报文数量大于所述第一设备已接收到的所述第一网络设备发送的一组探测报文中包含的报文数量;探测报文重发子单元,用于向所述第一设备发送所述重新生成的一组探测报文;失效报文接收子单元,用于接收所述第一设备根据接收到的探测报文的数量返回的第一失效报文;网络带宽确定子单元,用于将根据所述第一失效报文的数量计算的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。第三方面,提供一种网络设备,所述网络设备作为与第二网络设备通信的第一网络设备,包括:总线,以及通过所述总线连接的网络接口、发送器、接收器和处理器,所述网络接口,用于连接网络中的路由设备;所述发送器,用于通过所述网络接口分别以第一速率向第二网络设备发送多组探测报文,以使所述第一网络设备与所述第二网络设备之间设置的路由设备和所述第二网络设备中的每个设备接收到一组探测报文;所述接收器,用于接收所述每个设备根据接收到的探测报文的数量返回的失效报文;所述处理器,用于根据所述每个设备返回的失效报文的数量计算所述第一网络设备与所述第二网络设备之间每段链路的链路带宽,并根据所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽。结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器,还用于为所述每个设备生成一组网络控制报文协议ICMP探测报文,所述每个设备的一组ICMP探测报文中的生存时间TTL字段的值设置为与所述设备对应的链路的链路编号一致,所述设备对应的链路为所述设备与所述设备的上一跳设备之间的链路;所述发送器,具体用于通过所述网络接口分别以第一速率向所述第二网络设备发送为所述每个设备生成的一组ICMP探测报文。结合第三方面,或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器,具体用于将向所述每个设备发送的一组探测报文的数量减去所述设备返回的失效报文的数量,获得所述设备对应的链路上的丢失报文数量,将所述丢失报文数量除以所述发送的一组探测报文的数量后与所述第一速率相乘,得到第一乘积,将所述第一速率与所述第一乘积的差值确定为所述设备对应的链路的链路带宽。结合第三方面,或第三方面的第一种可能的实现方式,或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器,具体用于从所述每段链路的链路带宽中获得最小的链路带宽,将所述最小的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。结合第三方面,或第三方面的第一种可能的实现方式,或第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器,还用于从所述每段链路的链路带宽中获得最小的链路带宽,为所述最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的所述一组探测报文中包含的报文数量大于所述第一设备已接收到的所述第一网络设备发送的一组探测报文中包含的报文数量;所述发送器,还用于通过所述网络接口向所述第一设备发送所述重新生成的一组探测报文;所述接收器,还用于接收所述第一设备根据接收到的探测报文的数量返回的第一失效报文;所述处理器,还用于将根据所述第一失效报文的数量计算的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。本发明实施例中,第一网络设备分别以第一速率向第二网络设备发送多组探测报文,以使第一网络设备与第二网络设备之间设置的路由设备和第二网络设备中的每个设备接收到一组探测报文,接收每个设备根据接收到的探测报文的数量返回的失效报文,根据每个设备返回的失效报文的数量计算第一网络设备与第二网络设备之间每段链路的链路带宽,并根据每段链路的链路带宽确定第一网络设备与第二网络设备之间的网络带宽。本发明实施例只需要在第一网络设备侧部署网络带宽检测功能,且无需第二网络设备对第一网络设备发出的每个数据包都进行响应,因此有效缩短了网络带宽的检测时间,节省了网络资源;并且,由于采用本发明实施例还可以检测到每段链路的链路带宽,因此提高了网络带宽的检测精度。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为应用本发明实施例的一个网络架构示意图;图2为本发明网络带宽检测方法的一个实施例流程图;图3为本发明网络带宽检测方法的另一个实施例流程图;图4为本发明网络带宽检测方法的另一个实施例流程图;图5为本发明实施例的一个应用场景示意图;图6为本发明网络带宽检测装置的实施例框图;图7为本发明网络设备的实施例框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例中,第一网络设备与第二网络设备之间的传输路径上设置有多个路由设备,即第一网络设备与第二网络设备之间的传输路径由多段链路组成,假设第一网络设备、第二网络设备或第一网络设备与第二网络设备之间的每个路由设备都是一个网络节点,则所谓链路就是从一个网络节点到相邻网络节点的一段传输路径,该传输路径上没有其他的网络节点。参见图1,为本发明实施例的一个网络架构示意图:图1中,第一网络设备与第二网络设备之间有m个路由设备,第一网络设备与路由设备1之间的链路为链路1,即链路1为路由设备1对应的链路,同理,路由设备1与路由设备2之间的链路为链路2,以此类推,路由设备m-1与路由设备m之间的链路为链路m,路由设备m与第二网络设备之间的链路为链路m+1。本发明实施例通过检测每段链路的链路带宽以获得第一网络设备与第二网络设备之间的网络带宽,下面结合具体实施例进行详细说明。参见图2,为本发明网络带宽检测方法的一个实施例流程图:步骤201:第一网络设备分别以第一速率向第二网络设备发送多组探测报文,以使第一网络设备与第二网络设备之间设置的路由设备和第二网络设备中的每个设备接收到一组探测报文。本发明实施例中,第一网络设备和第二网络设备可以具体为网络中的主机设备,或者交换机,或者路由器等。结合图1,假设第一网络设备预先获知了第一网络设备与第二网络设备之间设置的路由设备的数量m时,则可以为m个路由设备和第二网络设备中的每个设备生成一组探测报文并发送生成的一组探测报文,即共生成m+1组探测报文;如果第一网络设备未获知第一网络设备与第二网络设备之间设置的路由设备的数量m时,则可以根据网络类型生成n组探测报文,n的数量大于m+1,以保证每个路由设备和第二网络设备都可以接收到一组探测报文,例如,对于城域网,可以设置n为10,对于异地网络,则可以设置n为15左右。具体的,第一网络设备可以为包括第二网络设备和所有路由设备在内的每个设备生成一组网络控制报文协议(InternetControlMessageProtocol,ICMP)探测报文,每个设备的一组ICMP探测报文中的生存时间(TimeToLive,TTL)字段的值设置为与该设备对应的链路的链路编号一致,该设备对应的链路为该设备与该设备的上一跳设备之间的链路,结合图1可知,例如,第一网络设备为路由设备2生成的一组ICMP探测报文的TTL设置为路由设备2对应的链路2的编号,即TTL为2,然后第一网络设备分别以第一速率向第二网络设备发送为每个设备生成的一组ICMP探测报文,该第一速率为预设的速率,通常可以将第一速率设置为高于网络的实际带宽的速率。本实施例中,第一网络设备可以将ICMP探测报文混合在向第二网络设备发送的数据报文中进行发送,此时发送ICMP探测报文的第一速率与数据报文的发送速率一致。本实施例中,ICMP是传输控制协议/因特网互联协议(TCP/IP,TransmissionControlProtocol/InternetProtocol)的一个子协议,可以用于在IP主机、路由器之间传递控制消息。本实施例中,ICMP探测报文可以具体为Ping报文。TTL字段是ICMP探测报文头部的字段,用来设置报文在网络中经过网络设备转发的次数,即ICMP探测报文每经过一个路由设备转发时,该路由设备会先将该ICMP探测报文头部的TTL字段的值减1,然后再转发到下一跳路由设备,当ICMP探测报文头部的TTL字段的值为0时,则路由设备丢弃该ICMP探测报文,并且返回与所丢弃ICMP探测报文数量一致的失效报文,即路由设备返回的失效报文的数量反映了该路由设备实际接收到的ICMP探测报文的数量。步骤202:第一网络设备接收每个设备根据接收到的探测报文的数量返回的失效报文。步骤203:第一网络设备根据每个设备返回的失效报文的数量计算第一网络设备与第二网络设备之间每段链路的链路带宽。具体的,第一网络设备可以将向包括第二网络设备和所有路由设备在内的每个设备发送的一组探测报文的数量减去所述每个设备返回的失效报文的数量,获得所述设备对应的链路上的丢失报文数量,将丢失报文数量除以发送的一组探测报文的数量后与第一速率相乘,得到第一乘积,将第一速率与第一乘积的差值确定为所述设备对应的链路的链路带宽。步骤204:第一网络设备根据每段链路的链路带宽确定第一网络设备与第二网络设备之间的网络带宽。可选的,第一网络设备可以从每段链路的链路带宽中获得最小的链路带宽,将最小的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。可选的,第一网络设备也可以从每段链路的链路带宽中获得最小的链路带宽,为最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的一组探测报文中包含的报文数量大于第一设备已接收到的第一网络设备发送的一组探测报文中包含的报文数量,向第一设备发送重新生成的一组探测报文,接收第一设备根据接收到的探测报文的数量返回的第一失效报文,并将根据第一失效报文的数量计算的链路带宽确定为第一网络设备与第二网络设备之间的网络带宽。这种实现方式在通过最小的链路带宽获得了可以表示网络带宽的链路后,通过提高向该链路对应的网络设备发送的探测报文的数量,进一步提高网络带宽的测量精度。由上述实施例可见,该实施例只需要在第一网络设备侧部署网络带宽检测功能,且无需第二网络设备对第一网络设备发出的每个数据包都进行响应,因此有效缩短了网络带宽的检测时间,节省了网络资源;并且,由于采用本发明实施例还可以检测到每段链路的链路带宽,因此提高了网络带宽的检测精度。参见图3,为本发明网络带宽检测方法的另一个实施例流程图,该实施例示出了通过最小链路带宽确定网络带宽的检测过程:步骤301:第一网络设备为第一网络设备与第二网络设备之间设置的路由设备和第二网络设备中的每个设备生成一组ICMP探测报文,每个设备的一组ICMP探测报文中的TTL字段的值设置为与该设备对应的链路的链路编号一致。结合图1,假设第一网络设备预先获知了第一网络设备与第二网络设备之间设置的路由设备的数量m时,则第一网络设备可以为路由设备1到路由设备m的m个路由设备以及第二网络设备分别生成一组ICMP探测报文,共m+1组ICMP探测报文,每一组ICMP探测报文中包含的报文数量可以一致,其中,路由设备1对应链路1,因此将为路由设备1生成的一组ICMP探测报文中的TTL字段设置为1,路由设备2对应链路2,因此将为路由设备2生成的一组ICMP探测报文中的TTL字段设置为2,以此类推,将为路由设备m生成的一组ICMP探测报文中的TTL字段设置为m,将为第二网络设备生成的一组ICMP探测报文中的TTL字段设置为m+1。步骤302:第一网络设备分别以第一速率向第二网络设备发送为每个设备生成的一组ICMP探测报文。本实施例中,第一速率为预设的速率,通常可以将第一速率设置为高于网络的实际带宽的速率。本实施例中,第一网络设备可以将ICMP探测报文混合在向第二网络设备发送的数据报文中进行发送,此时发送ICMP探测报文的第一速率与数据报文的发送速率一致。步骤303:第一网络设备接收每个设备根据接收到的探测报文的数量返回的失效报文。本实施例中,TTL字段是ICMP探测报文头部的字段,用来设置报文在网络中经过网络设备转发的次数,即ICMP探测报文每经过一个路由设备转发时,该路由设备会先将该ICMP探测报文头部的TTL字段的值减1,然后再转发到下一跳路由设备,当ICMP探测报文头部的TTL字段的值为0时,则路由设备丢弃该ICMP探测报文,并且返回与所丢弃ICMP探测报文数量一致的失效报文,即路由设备返回的失效报文的数量反映了该路由设备实际接收到的ICMP探测报文的数量;结合图1,m个路由设备中的每个路由设备返回的失效报文可以具体为TTL失效报文,第二网络设备返回的失效报文可以具体为ICMP响应报文。步骤304:第一网络设备根据每个设备返回的失效报文的数量计算第一网络设备与第二网络设备之间每段链路的链路带宽。结合图1,假设第一速率为P,则如果链路i(i为1至m之间的自然数)的链路带宽Pi>P或Pi=P,则对于路由设备i所接收到的所有初始设置TTL=i的ICMP探测报文,都将返回TTL失效报文,且这些TTL失效报文都会被第一网络设备接收;如果链路i的链路带宽Pi<P,则对于路由设备i所接收到的所有初始设置TTL=i的ICMP探测报文,会有大约t个ICMP探测报文因网络拥塞排队而被丢弃,其中,N为每一组ICMP探测报文中包含的报文数量,对于这t个ICMP探测报文则无TTL失效报文返回,因此第一网络设备接收到的TTL失效报文的数量将会少于所发送的TTL=i的ICMP探测报文的数量,因此第一网络设备可以根据统计接收到的TTL失效报文的数量n就可以估算出该段链路的链路带宽Pi,如下式所示:步骤305:第一网络设备从每段链路的链路带宽中获得最小的链路带宽,将该最小的链路带宽确定为第一网络设备与第二网络设备之间的网络带宽。结合图1,第一网络设备计算出m个链路的链路带宽后,通过比较从中选择一个最小的链路带宽作为第一网络设备与第二网络设备之间的网络带宽,该最小的链路带宽所在的链路也可以称为第一网络设备与第二网络设备之间的紧张链路。本发明实施例可以应用在广域网(WideAreaNetwork,WAN)中,WAN的一种典型应用场景为,本地主机需要通过WAN将大量数据发送到异地服务器,如图5所示,由于WAN带宽资源有限,因此可以通过应用本发明实施例对WAN的网络带宽进行检测,从而根据网络带宽检测结果确定出紧张链路,对数据发送速率进行调整,以便充分利用WAN的网络带宽。由上述实施例可见,该实施例只需要在第一网络设备侧部署网络带宽检测功能,且无需第二网络设备对第一网络设备发出的每个数据包都进行响应,因此有效缩短了网络带宽的检测时间,节省了网络资源;并且,由于采用本发明实施例还可以检测到每段链路的链路带宽,因此提高了网络带宽的检测精度。参见图4,为本发明网络带宽检测方法的另一个实施例流程图,该实施例示出了通过重新向最小链路带宽对应的路由设备发送探测报文,从而进一步精确检测网络带宽的过程:步骤401:第一网络设备分别以第一速率向第二网络设备发送多组探测报文,以使第一网络设备与第二网络设备之间设置的路由设备和第二网络设备中的每个设备接收到一组探测报文。本发明实施例中,第一网络设备和第二网络设备可以具体为网络中的主机设备,或者交换机,或者路由器等。结合图1,假设第一网络设备预先获知了第一网络设备与第二网络设备之间设置的路由设备的数量m时,则可以为m个路由设备和第二网络设备中的每个设备生成一组探测报文并发送生成的一组探测报文,即共生成m+1组探测报文;如果第一网络设备未获知第一网络设备与第二网络设备之间设置的路由设备的数量m时,则可以根据网络类型生成n组探测报文,n的数量大于m+1,以保证每个路由设备和第二网络设备都可以接收到一组探测报文,例如,对于城域网,可以设置n为10,对于异地网络,则可以设置n为15左右。其中,第一网络设备可以为包括第二网络设备和所有路由设备在内的每个设备生成一组ICMP探测报文,每个设备的一组ICMP探测报文中的TTL字段的值设置为与所述设备对应的链路的链路编号一致,所述设备对应的链路为所述设备与所述设备的上一跳设备之间的链路,然后第一网络设备分别以第一速率向第二网络设备发送为每个设备生成的一组ICMP探测报文。本实施例中,第一网络设备可以将ICMP探测报文混合在向第二网络设备发送的数据报文中进行发送,此时发送ICMP探测报文的第一速率与数据报文的发送速率一致,该ICMP探测报文可以具体为Ping报文。结合图1,例如,第一网络设备生成m+1组Ping报文,每一组Ping报文包含N个报文,第一网络设备以预定速率P向第二网络设备发送数据,则第一网络设备可以同时以预定速率P向各个路由设备和第二网络设备发送m+1组Ping报文。其中,第一组Ping报文的TTL设为1,第二组Ping报文的TTL设为2,依次类推,第m组Ping报文的TTL设为m,第m+1组Ping报文的TTL设为m+1。每一组Ping报文每经过一个路由设备,TTL值减1,当TTL=0时,路由设备会将Ping报文丢弃,并向第一网络设备返回一个失效报文;其中,m个路由设备中的每个路由设备返回的失效报文可以具体为TTL失效报文,第二网络设备返回的失效报文可以具体为ICMP响应报文。其中,N的取值可以根据需要设置,N的取值越大,则网络带宽的检测精度越高。步骤402:第一网络设备接收每个设备根据接收到的探测报文的数量返回的失效报文。本发明实施例中,TTL字段是ICMP探测报文头部的字段,用来设置报文在网络中经过网络设备转发的次数,即ICMP探测报文每经过一个路由设备转发时,该路由设备会先将该ICMP探测报文头部的TTL字段的值减1,然后再转发到下一跳路由设备,当ICMP探测报文头部的TTL字段的值为0时,则路由设备丢弃该ICMP探测报文,并且返回与所丢弃ICMP探测报文数量一致的失效报文,即路由设备返回的失效报文的数量反映了该路由设备实际接收到的ICMP探测报文的数量。步骤403:第一网络设备根据每个设备返回的失效报文的数量计算第一网络设备与第二网络设备之间每段链路的链路带宽。本发明实施例中,结合图1,针对每一组Ping报文,第一网络设备可以根据接收到的路由设备返回的TTL失效报文的数目,确定每一段链路的链路带宽,如下式:上式中,i表示链路的链路号,Pi表示第i段链路的链路带宽,P表示预先设置的第一速率,N表示每一组Ping报文所包含的报文数量,n表示网络设备i返回的TTL失效报文的数量。下面用一个具体的例子来说明链路带宽的计算过程:假设第一网络设备与第二网络设备之间有四个路由设备,网络的往返时间(RoundTripTime,RTT)为1s(秒),报文以一个高于网络实际带宽的速度10MB/s发送。测试时间为4s,这4s中一共发送40个Ping报文,这些Ping报文分为4组,每组Ping报文的TTL字段的值分别为1、2、3、4。4s测试时间结束后,针对每一组Ping报文,假设第一网络设备接收到的TTL失效报文的数量如下表1所示:表1Ping报文分组编号1234TTL字段值1234Ping报文数量N10101010TTL失效报文数量n10877结合上表1,对于TTL=1的一组Ping报文,丢失报文数量t=10-10=0,因此链路1的链路带宽对于TTL=2的一组Ping报文,丢失报文数量t=10-8=2,因此链路2的链路带宽对于TTL=3的一组Ping报文,丢失报文数量t=10-7=3,因此链路3的链路带宽对于TTL=4的一组Ping报文,丢失报文数量t=10-7=3,因此链路4的链路带宽步骤404:第一网络设备从每段链路的链路带宽中获得最小的链路带宽。根据步骤403中的计算结果可知,链路3及链路4的链路带宽最小,为7MB/s。因此可以将链路3确定网络中的紧张链路,即链路3为网络中链路带宽最小的一段链路。由此可以在后续的测量中增加向链路3对应的路由设备发送的一组Ping报文的数量,从而提高测量精度。步骤405:第一网络设备为最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的一组探测报文中包含的报文数量大于第一设备已接收到的第一网络设备发送的一组探测报文中包含的报文数量。由步骤404可知,链路3的链路带宽最下,因此第一网络设备可以重新为链路3对应的路由设备生成一组Ping报文,并将该组Ping报文的TTL字段的值设置为3,为了更加准确地测量网络带宽,上述重新生成的一组Ping报文中的报文数量可以尽可能大,例如,报文数量为100或1000等。步骤406:第一网络设备向第一设备发送重新生成的一组探测报文。步骤407:第一网络设备接收第一设备根据接收到的探测报文的数量返回的第一失效报文。步骤408:第一网络设备将根据第一失效报文的数量计算的链路带宽确定为第一网络设备与第二网络设备之间的网络带宽。本步骤中,第一网络设备根据第一失效报文的数量计算链路带宽的过程与步骤403中的描述一致,在此不再赘述。需要说明的是,应用本发明网络带宽检测实施例,不但可以根据检测出的网络带宽进行数据发送速率调节外,还可以将带宽检测程序植入到路由设备中,以使路由设备可以获取网络中的不同链路的链路带宽,并据此进行路由选择,从而避免网络拥塞。由上述实施例可见,该实施例只需要在第一网络设备侧部署网络带宽检测功能,且无需第二网络设备对第一网络设备发出的每个数据包都进行响应,因此有效缩短了网络带宽的检测时间,节省了网络资源;并且,由于采用本发明实施例还可以检测到每段链路的链路带宽,因此提高了网络带宽的检测精度。另外,上述实施例初步确定出紧张链路后,可以通过再次向该紧张链路对应的路由设备发送一组探测报文,以提高网络带宽检测精度。与本发明网络带宽检测方法的实施例相对应,本发明还提供了网络带宽检测装置及网络设备的实施例。参见图6,为本发明网络带宽检测装置的实施例框图:该网络带宽检测装置包括:发送单元610、接收单元620、计算单元630和确定单元640。其中,发送单元610,用于分别以第一速率向第二网络设备发送多组探测报文,以使所述第一网络设备与所述第二网络设备之间设置的路由设备和所述第二网络设备中的每个设备接收到一组探测报文;接收单元620,用于接收所述每个设备根据接收到的探测报文的数量返回的失效报文;计算单元630,用于根据所述接收单元620接收到的所述每个设备返回的失效报文的数量计算所述第一网络设备与所述第二网络设备之间每段链路的链路带宽;确定单元640,用于根据所述计算单元630计算的所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽。在一个可选的实现方式中,所述发送单元610可以包括(图6中未示出):探测报文生成子单元,用于为所述每个设备生成一组网络控制报文协议ICMP探测报文,所述每个设备的一组ICMP探测报文中的生存时间TTL字段的值设置为与所述设备对应的链路的链路编号一致,所述设备对应的链路为所述设备与所述设备的上一跳设备之间的链路;探测报文发送子单元,用于分别以第一速率向所述第二网络设备发送为所述每个设备生成的一组ICMP探测报文。在另一个可选的实现方式中,所述计算单元630可以包括(图6中未示出):丢失报文计算子单元,用于将向所述每个设备发送的一组探测报文的数量减去所述设备返回的失效报文的数量,获得所述设备对应的链路上的丢失报文数量;链路带宽确定子单元,用于将所述丢失报文数量除以所述发送的一组探测报文的数量后与所述第一速率相乘,得到第一乘积,将所述第一速率与所述第一乘积的差值确定为所述设备对应的链路的链路带宽。在另一个可选的实现方式中,所述确定单元640,可以具体用于从所述每段链路的链路带宽中获得最小的链路带宽,将所述最小的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。在另一个可选的实现方式中,所述确定单元640可以包括(图6中未示出):最小带宽获得子单元,用于从所述每段链路的链路带宽中获得最小的链路带宽;探测报文重生子单元,用于为所述最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的所述一组探测报文中包含的报文数量大于所述第一设备已接收到的所述第一网络设备发送的一组探测报文中包含的报文数量;探测报文重发子单元,用于向所述第一设备发送所述重新生成的一组探测报文;失效报文接收子单元,用于接收所述第一设备根据接收到的探测报文的数量返回的第一失效报文;网络带宽确定子单元,用于将根据所述第一失效报文的数量计算的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。参见图7,为本发明网络设备的实施例框图:该网络设备作为与第二网络设备通信的第一网络设备,包括:总线710,以及通过所述总线710连接的网络接口720、发送器730、接收器740和处理器750。其中,所述网络接口720,用于连接网络中的路由设备;所述发送器730,用于通过所述网络接口720分别以第一速率向第二网络设备发送多组探测报文,以使所述第一网络设备与所述第二网络设备之间设置的路由设备和所述第二网络设备中的每个设备接收到一组探测报文;所述接收器740,用于接收所述每个设备根据接收到的探测报文的数量返回的失效报文;所述处理器750,用于根据所述每个设备返回的失效报文的数量计算所述第一网络设备与所述第二网络设备之间每段链路的链路带宽,并根据所述每段链路的链路带宽确定所述第一网络设备与所述第二网络设备之间的网络带宽。在一个可选的实现方式中:所述处理器750,还可以用于为所述每个设备生成一组网络控制报文协议ICMP探测报文,所述每个设备的一组ICMP探测报文中的生存时间TTL字段的值设置为与所述设备对应的链路的链路编号一致,所述设备对应的链路为所述设备与所述设备的上一跳设备之间的链路;所述发送器730,可以具体用于通过所述网络接口720分别以第一速率向所述第二网络设备发送为所述每个设备生成的一组ICMP探测报文。在另一个可选的实现方式中:所述处理器750,可以具体用于将向所述每个设备发送的一组探测报文的数量减去所述设备返回的失效报文的数量,获得所述设备对应的链路上的丢失报文数量,将所述丢失报文数量除以所述发送的一组探测报文的数量后与所述第一速率相乘,得到第一乘积,将所述第一速率与所述第一乘积的差值确定为所述设备对应的链路的链路带宽。在另一个可选的实现方式中:所述处理器750,可以具体用于从所述每段链路的链路带宽中获得最小的链路带宽,将所述最小的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。在另一个可选的实现方式中:所述处理器750,还可以用于从所述每段链路的链路带宽中获得最小的链路带宽,为所述最小的链路带宽对应的第一设备重新生成一组探测报文,重新生成的所述一组探测报文中包含的报文数量大于所述第一设备已接收到的所述第一网络设备发送的一组探测报文中包含的报文数量;所述发送器730,还还用于通过所述网络接口720向所述第一设备发送所述重新生成的一组探测报文;所述接收器740,还可以用于接收所述第一设备根据接收到的探测报文的数量返回的第一失效报文;所述处理器750,还可以用于将根据所述第一失效报文的数量计算的链路带宽确定为所述第一网络设备与所述第二网络设备之间的网络带宽。由上述实施例可见,第一网络设备分别以第一速率向第二网络设备发送多组探测报文,以使第一网络设备与第二网络设备之间设置的路由设备和第二网络设备中的每个设备接收到一组探测报文,接收每个设备根据接收到的探测报文的数量返回的失效报文,根据每个设备返回的失效报文的数量计算第一网络设备与第二网络设备之间每段链路的链路带宽,并根据每段链路的链路带宽确定第一网络设备与第二网络设备之间的网络带宽。本发明实施例只需要在第一网络设备侧部署网络带宽检测功能,且无需第二网络设备对第一网络设备发出的每个数据包都进行响应,因此有效缩短了网络带宽的检测时间,节省了网络资源;并且,由于采用本发明实施例还可以检测到每段链路的链路带宽,因此提高了网络带宽的检测精度。本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1