本发明涉及网络传输
技术领域:
,尤其涉及一种流媒体最优路由分发方法。
背景技术:
:随着智能手机的快速普及,智能手机上的应用也发生了爆炸式的发展;其中,越来越多的应用具有了语音和视频通话的功能。语音、视频等流媒体的传输对网络传输的质量要求较高,传输时延、丢包率、网络抖动等对用户体验有着明显影响。但是,中国不同地区的网络发展情况很不一样,2G/3G/4G、wifi、光纤、DSL等各种接入技术长期共存,大小网络设备提供商和运营商混杂,导致不同地区、或者同一地区不同用户的网络质量有较大差异。因此,在复杂的网络环境下,能为基于IP的音视频通信系统提供一条低延时、低丢包率和最少网络抖动的最优路由显得尤为重要。现有技术中通过最优路径转发流媒体的方案一般从两方面考虑,即应用接入端和服务端的中转服务器,将两者的网络质量进行综合分析和考量,选出一条第一应用接入端与第二应用接入端之间的最优转发路径。但是,上述方法包含多个步骤,会带来较大时延,不利于实时业务。整个过程需要第一应用接入端、第二应用接入端、目标中转服务器实时配合,才能得到第一、第二探测信号,进而得到最终结果,整个过程涉及环节过多,任何一个环节失败,都将导致结果不准确、可靠性不佳的问题。并且,单次探测过程太短,探测结果具有很大随机性,无法体现网络真实性(例如,探测时可能网络状况不错,但在流媒体传输时,出现网络丢包严重的情况),这样最优路径的选择效果也就不稳定。因此,需要一种流媒体最优路由分发方法,能简化最优路由获取的逻辑,实现减少时延、提高系统可靠性的目的;并且能充分考虑到网络的稳定性,实时反映网络状况,降低丢包率,稳定最优路径的选择效果。技术实现要素:鉴于上述分析,本发明旨在提供一种流媒体最优路由分发方法,用以解决现有路由优化方法时延大、丢包严重、结果不准确、可靠性不佳的问题。本发明的目的主要是通过以下技术方案实现的:提供一种流媒体最优路由分发方法,包括以下步骤:S1、应用控制服务器接收流媒体消费端的流媒体传输请求;S2、应用控制服务器从流媒体传输请求和后台数据库中获取流媒体源端IP、流媒体消费端IP,以及流媒体标识和流媒体传输的时间点;S3、应用控制服务器根据流媒体源端IP、流媒体消费端IP,以及流媒体标识和流媒体传输的时间点数据生成最优路由请求,并发送给选路服务器;S4、选路服务器根据最优路由请求,查询内部数据库,获得最优路由信息,其是一个或多个流媒体中转服务器的地址,并将最优路由信息返回给应用控制服务器;S5、应用控制服务器发送控制信令给最优路由信息中的流媒体中转服务器,以预备流媒体中转所需要的链路和资源;流媒体中转服务器的数量根据链路时延确定,取时延最小的链路;S6、应用控制服务器将流媒体消费端的流媒体传输请求及最优路由信息发送给流媒体源端,流媒体源端建立流媒体传输链路,通过最优路由进行流媒体传输。其中,步骤S4中选路服务器的内部数据库是通过收集网络数据、计算最优路由并保存计算结果建立的。上述网络数据的收集包括三种数据源的数据收集:流媒体源端和流媒体消费端IP到流媒体中转服务器IP间的网络数据收集、流媒体中转服务器IP之间的网络数据收集、以及实际流媒体中转过程中的数据收集。网络数据的收集具体包括以下步骤:获取网络质量数据,将网络质量数据上报给选路服务器,并保存在内部数据库中。上述最优路由的计算包括:接收上报的网络质量数据;选路服务器通过计算分析收集到的数据,得到最优路由,并保存收集的数据和计算结果。其中,数据的计算分析方法是由选路服务器对所有保存的历史数据进行大数据分析和深度挖掘,并利用机器学习算法对保存的最优路由进行持续地动态修正。最优路由的计算结果将分三种形式保存:两个应用端IP之间的最优路由;两个IP段之间的最优路由;两个运营商地理位置之间的最优路由。步骤S4中,选路服务器查询内部数据库,获得最优路由信息的步骤进一步包括:从IP数据库中精确查找流媒体源端IP和流媒体消费端IP的最优路由信息,如果查找到则直接将最优路由返回给应用控制服务器;如果没有找到,那么先将流媒体源端IP和流媒体消费端IP转换成IP段,然后在IP段数据库中查找相应的最优路由信息,如果查找到则直接将最优路由返回给应用控制服务器;如果没有找到,那么再将流媒体源端IP和流媒体消费端IP转换成运营商地理位置信息,然后在运营商地理位置数据库中查找相应最优路由信息。本发明有益效果如下:通过应用控制服务器将流媒体源端IP、流媒体消费端IP及传输时间点发送到选路服务器,再由选路服务器返回最优路径即可获取最优路由;而最优路径的计算和查询则是在选路服务器中完成,其中利用深度学习方式,通过正反馈机制,基于历史数据和当前收集的数据,在后台不断保存和修正最优路由。这样,最优路由的计算过程和获取过程分离,能够简化最优路由获取的逻辑,减少时延,并提高系统可靠性;同时上述计算过程能够充分考虑到网络稳定性,降低丢包率,稳定最优路径的选择效果。本发明的其他特征和优点将在随后的说明书中阐述,并且部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。图1为流媒体最优路由分发方法的示意图;图2为应用端IP到流媒体中转服务器IP之间的网络数据收集过程的示意图;图3为流媒体中转服务器IP间网络数据收集过程的示意图;图4为实际流媒体中转过程中数据收集过程的示意图。具体实施方式下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。本发明具体实施例提供了一种流媒体最优路由分发方法,如附图1所示,包括以下具体步骤:步骤S1、应用控制服务器接收流媒体消费端(应用端A)的流媒体传输请求;步骤S2、应用控制服务器从所述请求以及后台数据库中获取流媒体源端(应用端B)IP、流媒体消费端(应用端A)IP,以及流媒体标识和流媒体传输的时间点;步骤S3、应用控制服务器根据流媒体源端IP(应用端B)、流媒体消费端IP(应用端A),以及流媒体标识和流媒体传输的时间点数据生成最优路由请求,发送给选路服务器;步骤S4、选路服务器根据所述最优路由请求,查询内部数据库,获得最优路由信息,其是一个或多个流媒体中转服务器的地址,并将最优路由信息返回给应用控制服务器;其中,内部数据库通过以下子步骤建立:子步骤S41、收集网络数据;子步骤S42、计算最优路由;子步骤S43、保存计算结果。所述子步骤S41网络数据的收集包括以下三种数据源的数据收集:应用端(表示流媒体源端和流媒体消费端)IP到流媒体中转服务器IP间的网络数据收集、流媒体中转服务器IP之间的网络数据收集、以及实际流媒体中转过程中的数据收集。所述应用端IP到流媒体中转服务器IP之间的网络数据收集过程如下:如附图2所示,应用端将流媒体传输的通信请求发送给选路服务器,请求流媒体中转服务器列表;选路服务器选择流媒体中转服务器,将这些服务器的IP,以IP列表的形式返回给应用端;应用端对列表中的IP进行探测,获取应用端到每个流媒体中转服务器之间的时延、丢包、探测时间戳等网络质量数据;应用端将探测到的数据上报到选路服务器,选路服务器将探测数据保存在内部数据库中。其中,所述应用端的探测和数据上报过程可以由应用端周期性进行;也可以由外部条件触发,如选路服务器主动通知应用端触发网络探测;或者用户手动操作应用端触发网络探测。所述流媒体中转服务器IP间的网络数据收集过程如下:如附图3所示,系统中部署的流媒体中转服务器互相之间进行网络探测,并将得到的时延、丢包、探测时间戳等网络质量数据上报给选路服务器,选路服务器将所述探测数据保存在内部数据库中。所述实际流媒体中转过程中的数据收集过程如下:如附图4所示,在对某一路流媒体数据进行中转的过程中,应用端和流媒体中转服务器收集媒体数据的传输质量,包括两个数据包间的时延、数据丢包情况、数据乱序情况、探测时间戳等网络质量数据;当该路流媒体数据传输结束时,应用端和流媒体中转服务器将收集得到的数据提交给选路服务器,选路服务器将收集到的数据保存在内部数据库中。所述子步骤S42最优路由的计算包括:选路服务器接收三种数据源上报的网络质量数据(网络质量数据格式如表1所示);选路服务器利用实时计算框架,将收集到的数据进行计算分析,得到任意两个应用端IP之间的最优路由(即所应经过的一个或多个流媒体中转服务器IP,格式如表2所示),并保存收集的数据和最优路由计算结果。其中,实时计算框架可以是Kafka和Spark等组成的开源的实时计算分析框架。上述计算分析方法是由选路服务器对所有保存的历史数据进行大数据分析和深度挖掘,并利用机器学习算法对保存的最优路由进行动态修正。具体地,在不同的时段会有不同的网络质量,这样某些应用端IP之间的最优路由在不同时段需要动态的进行修正调整。因此,大数据分析和挖掘的主要目的是根据不同时段的历史数据,找出网络质量和时间的相关性,进一步得出哪些应用端IP之间的最优路由在哪些时段需要进行调整。上述计算过程是持续进行的,保存每次的计算结果,并不断地进行修正。因此,最优路由的获取过程只依赖于计算过程所保存的结果,与计算过程本身无关。这样,简化了最优路由获取的逻辑。源IP10.11.22.33源IP类型应用端IP目标IP10.33.44.55目标IP类型流媒体中转服务器IP平均时延100毫秒丢包率1%乱序率1%起始时间戳Xxxxxx结束时间戳Xxxxxx表1表2所述子步骤S43计算结果的保存进一步包括:将计算结果数据保存在数据库中,供应用控制服务器请求查询。由于最优路由的请求和最优路由的计算是两个独立的过程,那么有可能最优路由计算结果中找不到所请求的应用端IP,从而无法提供相应的最优路由信息。为了解决这种情况,最优路由的计算结果将分三种形式保存:1)两个应用端IP(流媒体源端和流媒体消费端)之间的最优路由;2)两个IP段之间的最优路由;3)两个运营商地理位置之间的最优路由。具体包括以下步骤:1、将源应用端IP(流媒体源端)、目标应用端(流媒体消费端)IP及两个IP间的最优路由信息保存到IP数据库中;2、将源应用端IP转换成已有的IP段,将目标应用端IP转换成已有的IP段,将这两个IP段信息和最优路由信息保存在IP段数据库中;3、将源应用端IP转换成运营商地理位置,将目标应用端IP转换成运营商地理位置,将这两个运营商地理位置信息和最优路由信息保存在运营商地理位置数据库中。其中,在系统启用之前会建立基础数据库,所述基础数据库中包含ip及运营商地理位置信息;但如果系统启用之前没有获取到这些基础数据,那么运作初期将无法保证最优路由,随着系统运行,所累积数据越多,路由也将逐渐优化。步骤S4中选路服务器根据最优路由请求中的IP和时间点,查询内部数据库,获得最优路由信息(一个或多个流媒体中转服务器的地址)进一步包括以下步骤:从IP数据库中精确查找两个应用端IP(流媒体源端IP和流媒体消费端IP)的最优路由信息,如果查找到则直接将最优路由返回给应用控制服务器;如果没有找到,那么先将两个应用端IP转换成IP段,然后在IP段数据库中查找相应的最优路由信息,如果查找到则直接将最优路由返回给应用控制服务器;如果没有找到,那么再将两个应用端IP转换成运营商地理位置信息,然后在运营商地理位置数据库中查找相应最优路由信息,从而完成路由信息的获取。本发明具体实施例中,请求查询最优媒体路由的过程和计算最优媒体路由的过程是分开的,是两个独立的步骤。最优路由计算的过程(包括网络信息的收集,整理,计算等)可以由单独的系统来完成。当应用来请求两个IP之间的最优路由时,其最优路由的信息已经保存在数据库中了,直接查询就能获取到,不涉及到任何计算的过程。这样分开带来的好处是:获取最优路由变得非常简单,减少时延(只是数据库查询的时延)。而且计算最优路由的过程可以单独出来进行迭代优化,并且不会影响最优路由的获取。步骤S5、应用控制服务器发送控制信令给最优路由信息中的流媒体中转服务器(1,2),使流媒体中转服务器(1,2)预备流媒体中转所需要的链路和资源,其中流媒体中转服务器的数量根据链路时延确定,取时延最小的链路,并不局限于图1中表示的两个流媒体中转服务器;步骤S6、应用控制服务器将流媒体传输请求及最优路由信息发送给流媒体源端(应用端B),流媒体源端建立流媒体传输链路,通过最优路由进行流媒体传输。综上所述,本发明实施例提供了一种流媒体最优路由分发方法,将最优路由的计算过程和获取过程分离。其中,获取过程只需应用控制服务器将流媒体源端IP、流媒体消费端IP及传输时间点发送到选路服务器,再由选路服务器返回最优路径即可;这样简化了最优路由获取的逻辑,减少了时延,并提高了系统可靠性。此外,最优路由的计算过程是利用深度学习方式,通过正反馈机制,基于历史数据和当前收集的数据,在后台不断保存和修正最优路由,而不是采用单次探测的方式,因此能够充分考虑到网络的稳定性、降低丢包率、稳定最优路径的选择效果。本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域:
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。当前第1页1 2 3