发明内容
有鉴于此,本申请实施例提供了一种链路监测调度方法、装置、设备及存储介质,以准确的发现网络质量问题的位置,从根本上解决网络质量问题。
主要包括以下几个方面:
第一方面,本申请实施例提供了一种链路监测调度方法,应用于拉流端,该方法包括:
针对推流边缘节点与拉流边缘节点间的每一级第一链路,获取该第一链路的下游节点发送的该第一链路的第一链路质量,其中,所述第一链路质量是由所述下游节点计算得到的,所述推流边缘节点与所述拉流边缘节点间包括至少一个节点,至少一个节点之间通过所述第一链路进行串联;
判断所述第一链路质量是否大于预设阈值;
若所述第一链路质量大于所述预设阈值,向调度中心发送用于表示更换所述下游节点的第一请求和确定出的小于预设个数的第一候选节点,以使所述调度中心从各所述第一候选节点中确定第一替补节点,其中,所述第一候选节点与所述下游节点属于相同的第一节点集群,所述第一节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第一替补节点为节点状态为可用状态的与所述下游节点距离最近的第一候选节点;
根据接收到的所述调度中心发送的所述第一替补节点的地址,将所述下游节点更换为所述第一替补节点。
可选的,该第一链路的第一链路质量是由该第一链路的下游节点对该第一链路上的丢包率及为其设置的权重、重传率及为其设置的权重、码率波动值及为其设置的权重进行加权求和得到的,其中,所述码率波动值是由该第一链路的下游节点根据该第一链路上的码率和预设的标准码率计算得到的。
可选的,所述链路监测调度方法还包括:
针对所述第一节点集群中的每一个第一节点,按照第一预设周期获取第二链路的第二链路质量和第三链路的第三链路质量,其中,所述第二链路为以该第一节点为下游节点的链路,所述第三链路为以该第一节点为上游节点的链路;
按照第二预设周期,判断各所述第一节点中是否存在满足第一预设条件的至少一个第一目标节点,其中,所述第一预设条件为在所述第二预设周期内,所述第一节点的最大第二链路质量的数值小于第一预设数值,且所述第一节点的最大第三链路质量的数值小于第二预设数值,所述最大第二链路质量为所述第一节点的各第二链路质量中最大的第二链路质量,所述最大第三链路质量为所述第一节点的各第三链路质量中最大的第三链路质量,各所述第二链路质量为在各所述第一预设周期获取到的所述第一节点的第二链路质量,各所述第三链路质量为在各所述第一预设周期获取到的所述第一节点的第三链路质量;
若存在至少一个所述第一目标节点,按照与所述第一链路的下游节点的距离从近到远的顺序,从各所述第一目标节点中确定小于所述预设个数的第一候选节点。
第二方面,本申请实施例提供了一种链路监测调度方法,应用于拉流端,该方法包括:
针对拉流端与拉流边缘节点间的第四链路,计算所述第四链路的第四链路质量;
判断所述第四链路质量是否大于预设阈值;
若所述第四链路质量大于所述预设阈值,向调度中心发送用于表示更换所述第四链路的上游节点的第二请求和确定出的小于预设个数的第二候选节点,以使所述调度中心从各所述第二候选节点中确定第二替补节点,其中,所述第二候选节点与所述上游节点属于相同的第二节点集群,所述第二节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第二替补节点为节点状态为可用状态的与所述上游节点距离最近的第二候选节点;
根据接收到的所述调度中心发送的所述第二替补节点的地址,将所述上游节点更换为所述第二替补节点。
可选的,所述计算所述第四链路的第四链路质量,包括:
根据所述第四链路上码率和预设的标准码率,计算所述第四链路上的码率波动值;
对所述第四链路上的丢包率及为其设置的权重、重传率及为其设置的权重、所述码率波动值及为其设置的权重进行加权求和,得到所述第四链路质量。
可选的,所述链路监测调度方法还包括:
针对所述第二节点集群中的每一个第二节点,按照第一预设周期获取第五链路的第五链路质量和第六链路的第六链路质量,其中,所述第五链路为以该第二节点为下游节点的链路,所述第六链路为以该第二节点为上游节点的链路;
按照第二预设周期,判断各所述第二节点中是否存在满足第二预设条件的至少一个第二目标节点,其中,所述第二预设条件为在所述第二预设周期内,所述第二节点的最大第五链路质量的数值小于第一预设数值,且所述第二节点的最大第六链路质量的数值小于第二预设数值,所述最大第五链路质量为所述第二节点的各第五链路质量中最大的第五链路质量,所述最大第六链路质量为所述第二节点的各第六链路质量中最大的第六链路质量,各所述第五链路质量为在各所述第一预设周期获取到的所述第二节点的第五链路质量,各所述第六链路质量为在各所述第一预设周期获取到的所述第二节点的第六链路质量;
若存在至少一个所述第二目标节点,按照与所述第四链路的上游节点的距离从近到远的顺序,从各所述第二目标节点中确定小于所述预设个数的第二候选节点。
第三方面,本申请实施例提供了一种链路监测调度装置,应用于拉流端,所述装置包括:
第一获取模块,用于针对推流边缘节点与拉流边缘节点间的每一级第一链路,获取该第一链路的下游节点发送的该第一链路的第一链路质量,其中,所述第一链路质量是由所述下游节点计算得到的,所述推流边缘节点与所述拉流边缘节点间包括至少一个节点,至少一个节点之间通过所述第一链路进行串联;
第一判断模块,用于判断所述第一链路质量是否大于预设阈值;
第一执行模块,用于若所述第一链路质量大于所述预设阈值,向调度中心发送用于表示更换所述下游节点的第一请求和确定出的小于预设个数的第一候选节点,以使所述调度中心从各所述第一候选节点中确定第一替补节点,其中,所述第一候选节点与所述下游节点属于相同的第一节点集群,所述第一节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第一替补节点为节点状态为可用状态的与所述下游节点距离最近的第一候选节点;
第一更换模块,用于根据接收到的所述调度中心发送的所述第一替补节点的地址,将所述下游节点更换为所述第一替补节点。
可选的,该第一链路的第一链路质量是由该第一链路的下游节点对该第一链路上的丢包率及为其设置的权重、重传率及为其设置的权重、码率波动值及为其设置的权重进行加权求和得到的,其中,所述码率波动值是由该第一链路的下游节点根据该第一链路上的码率和预设的标准码率计算得到的。
可选的,所述链路监测调度装置还包括:
第二获取模块,用于针对所述第一节点集群中的每一个第一节点,按照第一预设周期获取第二链路的第二链路质量和第三链路的第三链路质量,其中,所述第二链路为以该第一节点为下游节点的链路,所述第三链路为以该第一节点为上游节点的链路;
第一筛选模块,用于按照第二预设周期,判断各所述第一节点中是否存在满足第一预设条件的至少一个第一目标节点,其中,所述第一预设条件为在所述第二预设周期内,所述第一节点的最大第二链路质量的数值小于第一预设数值,且所述第一节点的最大第三链路质量的数值小于第二预设数值,所述最大第二链路质量为所述第一节点的各第二链路质量中最大的第二链路质量,所述最大第三链路质量为所述第一节点的各第三链路质量中最大的第三链路质量,各所述第二链路质量为在各所述第一预设周期获取到的所述第一节点的第二链路质量,各所述第三链路质量为在各所述第一预设周期获取到的所述第一节点的第三链路质量;
第一确定模块,用于若存在至少一个所述第一目标节点,按照与所述第一链路的下游节点的距离从近到远的顺序,从各所述第一目标节点中确定小于所述预设个数的第一候选节点。
第四方面,本申请实施例提供了一种链路监测调度装置,应用于拉流端,所述装置包括:
计算模块,用于针对拉流端与拉流边缘节点间的第四链路,计算所述第四链路的第四链路质量;
第二判断模块,用于判断所述第四链路质量是否大于预设阈值;
第二执行模块,用于若所述第四链路质量大于所述预设阈值,向调度中心发送用于表示更换所述第四链路的上游节点的第二请求和确定出的小于预设个数的第二候选节点,以使所述调度中心从各所述第二候选节点中确定第二替补节点,其中,所述第二候选节点与所述上游节点属于相同的第二节点集群,所述第二节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第二替补节点为节点状态为可用状态的与所述上游节点距离最近的第二候选节点;
第二更换模块,用于根据接收到的所述调度中心发送的所述第二替补节点的地址,将所述上游节点更换为所述第二替补节点。
可选的,所述计算模块的配置在用于计算所述第四链路的第四链路质量时,包括:
根据所述第四链路上码率和预设的标准码率,计算所述第四链路上的码率波动值;
对所述第四链路上的丢包率及为其设置的权重、重传率及为其设置的权重、所述码率波动值及为其设置的权重进行加权求和,得到所述第四链路质量。
可选的,所述链路监测调度装置还包括:
第三获取模块,用于针对所述第二节点集群中的每一个第二节点,按照第一预设周期获取第五链路的第五链路质量和第六链路的第六链路质量,其中,所述第五链路为以该第二节点为下游节点的链路,所述第六链路为以该第二节点为上游节点的链路;
第二筛选模块,用于按照第二预设周期,判断各所述第二节点中是否存在满足第二预设条件的至少一个第二目标节点,其中,所述第二预设条件为在所述第二预设周期内,所述第二节点的最大第五链路质量的数值小于第一预设数值,且所述第二节点的最大第六链路质量的数值小于第二预设数值,所述最大第五链路质量为所述第二节点的各第五链路质量中最大的第五链路质量,所述最大第六链路质量为所述第二节点的各第六链路质量中最大的第六链路质量,各所述第五链路质量为在各所述第一预设周期获取到的所述第二节点的第五链路质量,各所述第六链路质量为在各所述第一预设周期获取到的所述第二节点的第六链路质量;
第二确定模块,用于若存在至少一个所述第二目标节点,按照与所述第四链路的上游节点的距离从近到远的顺序,从各所述第二目标节点中确定小于所述预设个数的第二候选节点。
第五方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面和上述第二方面中任一所述的链路监测调度方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面和上述第二方面中任一所述的链路监测调度方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的链路监测调度方法,在目标数据从推流边缘节点传输到拉流端的过程中,针对其经过的推流边缘节点与拉流边缘节点间的每一级第一链路,该第一链路的下游节点计算该第一链路的第一链路质量,并将计算出的第一链路质量发送到拉流端,第一链路质量代表的是在该第一链路上数据包的丢失情况,所以拉流端在得到该第一链路质量后,判断该第一链路质量是否大于预设阈值,若该第一链路质量大于预设阈值,说明该第一链路上的丢包情况严重,需要切换该第一链路,而切换第一链路的方式为更换该第一链路的下游节点,所以拉流端向调度中心发送用于更换该第一链路的下游节点的第一请求,同时向调度中心发送小于预设个数的第一候选节点,各候选节点是拉流端从上述下游节点属于的第一节点集群中确定出来的,调度中心可以优先从各候选节点中确定第一替补节点,相对于调度中心从第一节点集群中确定出第一替补节点的方法,该方法有利于减轻调度中心的工作负担,在调度中心确定出第一替补节点后,将该第一替补节点的地址发送到拉流端,拉流端就可以根据接收到的该第一替补节点的地址,将该第一链路的下游节点更换为该第一替补节点,以实现切换该第一链路的目的;除此之外,本申请还提供了对拉流边缘节点与拉流端之间的第四链路的监测调度,拉流端计算第四链路上的第四链路质量,在第四链路质量大于预设阈值的时候,需要通过更换该第四链路的上游节点的方式完成对第四链路的切换,所以拉流端向调度中心发送用于表示切换该第四链路的上游节点的第二请求,同时向调度中心发送小于预设个数的第二候选节点,以使调度中心可以在接收到第二请求时,从各第二候选节点中确定出第二替补节点,减轻调度中心的工作负担,待调度中心把第二替补节点的地址发送到拉流端后,拉流端就可以根据接收到的第二替补节点的地址将该第四链路的上游节点更换为该第二替补节点,以完成切换第四链路的目的;与现有技术中仅调度拉流端与拉流边缘节点间链路的方法相比,本申请提供的链路监测调度方法不仅可以监测拉流端与拉流边缘节点间第四链路的链路质量,还可以监测推流边缘节点与拉流边缘节点之间的每一条第一链路的链路质量,当第四链路的链路质量变差时,拉流端向调度中心发送用于表示切换该第四链路的上游节的请求,当某一条第一链路的链路质量变差时,拉流端向调度中心发送用于表示切换该第一链路的上游节点的请求,这两种请求均可以明确表示出需要切换的链路及切换该链路的方式,有利于准确的发现网络质量问题的位置,并从根本上解决网络质量问题。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种链路监测调度方法、装置、设备及存储介质,下面通过实施例进行描述。
实施例一
图1示出了本申请实施例一所提供的一种链路监测调度方法的流程图,如图1所示,所述链路监测调度方法应用于拉流端,该方法包括以下步骤:
步骤S101:针对推流边缘节点与拉流边缘节点间的每一级第一链路,获取该第一链路的下游节点发送的该第一链路的第一链路质量,其中,所述第一链路质量是由所述下游节点计算得到的,所述推流边缘节点与所述拉流边缘节点间包括至少一个节点,至少一个节点之间通过所述第一链路进行串联。
具体的,推流边缘节点指的是靠近推流端的用于接收推流端发送上来的数据的服务器,拉流边缘节点指的是靠近拉流端的用于拉流端从中拉取数据流的服务器,推流端指的是进行推流的客户端,拉流端指的是进行拉流的客户端,推流端与拉流端统称为用户端,该用户端包括pc(Personal Computer,个人计算机)网页、pc客户端、H5端、安卓android端、IOS(iPhone operate system,移动操作系统)端等设备端,推流指的是将采集阶段封装好的数据内容传输到服务器的过程,拉流指的是用指定地址拉取服务器中已有的数据内容,目标数据从推流边缘节点传输到拉流边缘节点的过程中经过至少一个节点,所经过的节点均是推流边缘节点与拉流边缘节点之间包括的节点,在此过程中,目标数据从一个节点到另一个节点所经过的链路均是第一链路,所以各节点之间是通过第一链路进行串联的,第一链路的下游节点是该第一链路上数据的接收端,即:该第一链路的数据接收节点,比如:节点A与节点B均是推流边缘节点与拉流边缘节点之间的节点,目标数据从节点A经过第一链路到达节点B,则节点B为该第一链路的下游节点,链路质量指的是在通信过程中对数据包丢失的衡量情况,所以第一链路质量指的是第一链路在通信过程中的数据包丢失情况,第一链路质量越大,则说明在该第一链路上丢包越多。
针对每一个第一链路,该第一链路的下游节点按照预设的周期计算该第一链路的第一链路质量,并在计算出第一链路质量后,将该第一链路质量发送到拉流端,此时,拉流端获取到该第一链路的第一链路质量。
举例说明,图2示出了本申请实施例一所提供的推流端与拉流端之间的完整链路的结构示意图,如图2所示,第一链路A、第一链路B和第一链路C分别是推流边缘节点与拉流边缘节点间的第一级第一链路、第二级第一链路、第三级第一链路,其中,节点a是第一链路A的下游节点,节点b是第一链路B的下游节点,拉流边缘节点是第一链路C的下游节点,推流边缘节点、节点a、节点b和拉流边缘节点通过第一链路进行串联,拉流端分别获取节点a发送的第一链路A的第一链路质量、节点b发送的第一链路B的第一链路质量和拉流边缘节点发送的第一链路C的第一链路质量。
步骤S102:判断所述第一链路质量是否大于预设阈值。
步骤S103:若所述第一链路质量大于所述预设阈值,向调度中心发送用于表示更换所述下游节点的第一请求和确定出的小于预设个数的第一候选节点,以使所述调度中心从各所述第一候选节点中确定第一替补节点,其中,所述第一候选节点与所述下游节点属于相同的第一节点集群,所述第一节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第一替补节点为节点状态为可用状态的与所述下游节点距离最近的第一候选节点。
具体的,针对每一个第一链路,该第一链路的第一链路质量表示的是该第一链路上的数据丢包情况,第一链路质量越大,说明该第一链路上的丢包情况越严重,一般会人为提前设定一个预设阈值来判断丢包情况的严重与否,比如设置预设阈值为0.3,若第一链路质量大于0.3,则说明该第一链路的丢包情况严重,网络质量差,所以在获取到该第一链路的第一链路质量后,需要判断该第一链路质量是否大于预设阈值,若该第一链路质量大于预设阈值,说明该第一链路的丢包情况太严重,网络质量差,不能使用该第一链路来传输数据,需要切换该第一链路,切换该第一链路的实现方式为更换该第一链路的下游节点,所以拉流端需要向调度中心发送一个第一请求,该第一请求用于表示更换该第一链路的下游节点,除此之外,拉流端还需要向调度中心发送确定出来的至少一个第一候选节点,第一候选节点指的是推荐使用的网络节点,调度中心在接收到第一请求时,在各第一候选节点中筛选出第一替补节点,通过上述方法,将第一候选节点的确定工作交由拉流端来进行,有利于减轻调度中心的工作负担,其中,第一候选节点的个数需要小于预设个数。
需要说明的是,第一候选节点是拉流端从第一节点集群中筛选出的除该第一链路的下游节点外的节点,第一候选节点与下游节点属于相同的第一节点集群,第一节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所以第一候选节点在推流端和拉流端之间的各节点中的排列次序与该第一链路的下游节点在推流端和拉流端之间的各节点中的排列次序相同,也就是说,数据从推流端传输到拉流端的过程中,到达第一候选节点时经过的节点数量与到达上述下游节点时经过的节点数量相同,节点状态是可用状态表示的是该第一替补节点是可以进行数据的接收和转发,与第一链路的下游节点的距离由近到远的顺序分别为同地区同运营商、同地区不同运营商、邻近地区相同运营商、邻近地区不同运营商、其他地区相同运营商、其他地区相同运营商,其他地区指的是除同地区和近邻地区之外的其他地区,当至少一个第一候选节点均与该第一链路的下游节点是同地区同运营商的节点,则与该第一链路的下游节点的距离最近的第一候选节点为与该下游节点所在的地理位置距离最近的第一候选节点。
举例说明,目标数据在从推流端到拉流端的传输过程中,先经过推流边缘节点集群中的一个推流边缘节点a,然后经过节点集群M中的一个节点b,然后经过节点集群N中的一个节点c,最后在经过拉流边缘集群中的一个拉流边缘节点d后,到达拉流端,则推流边缘节点集群中的每一个推流边缘节点与推流边缘节点a在推流端和拉流端之间的各节点中的排列次序均为第一次序,节点集群M中的每一个节点与节点b在推流端和拉流端之间的各节点中的排列次序均为第二次序,节点集群N中的每一个节点与节点c在推流端和拉流端之间的各节点中的排列次序均为第三次序,拉流边缘节点集群中的每一个拉流边缘节点与拉流边缘节点d在推流端和拉流端之间的各节点中的排列次序均为第四次序。
步骤S104:根据接收到的所述调度中心发送的所述第一替补节点的地址,将所述下游节点更换为所述第一替补节点。
具体的,调度中心在确定出第一替补节点后,会将第一替补节点的地址发送到拉流端,此时,拉流端接收到调度中心发送的该第一替补节点的地址。
需要说明的是,对于将下游节点更换为第一替补节点的方式,可以根据实际情况进行设定,比如节点A通过第一链路向节点B传输数据,节点B通过第一链路向节点C传输数据,当节点B为需要更换的下游节点时,调度中心发送第一替补节点D的地址至拉流端,拉流端将第一替补节点D的地址发送到节点A,以使节点A将数据传输到第一替补节点D上,并将节点C的地址发送到第一替补节点D上,以使第一替补节点D将数据传输到节点C上,以完成节点B的更换,除此之外,也可以通过调度中心直接控制节点A将数据传输到第一替补节点D上,并控制第一替补节点D将数据传输到节点C上,以完成节点B的更换,关于将下游节点更换为第一替补节点的方式,在此不做具体限定。
在一种可行的实施方案中,上述步骤S101中的该第一链路的第一链路质量是由该第一链路的下游节点对该第一链路上的丢包率及为其设置的权重、重传率及为其设置的权重、码率波动值及为其设置的权重进行加权求和得到的,其中,所述码率波动值是由该第一链路的下游节点根据该第一链路上的码率和预设的标准码率计算得到的。
具体的,该第一链路上的丢包率表示的是该第一链路在第一预设时间段内丢失的数据包的数量占应该发送的数据包的数量的比率,所以该第一链路上的丢包率是根据该第一链路的下游节点在该第一预设时间段内应该接受到的该第一链路的上游节点发送的除重传包之外的其他数据包的目标数量、该第一链路的下游节点在该第一预设时间段内向该第一链路的上游节点发送的NACK(Negative Acknowledgment Packet,否定确认包)的第一数量和该第一链路的下游节点在该第一预设时间段内接收到的该第一链路的上游节点发送的重传包的第二数量计算得到的,具体的计算方式为先计算上述第一数量和上述第二数量的第一差值,然后计算该第一差值和上述目标数量的第一比值,最后将该第一比值作为该第一链路上的丢包率;该第一链路上的重传率表示的是在该第一链路上重传的数据包的数量占应该发送的数据包的数量的比率,所以该第一链路上的重传率是通过计算上述第二数量和上述目标数量的第二比值得到的,计算出的第二比值即该第一链路上的重传率;第一链路上的码率波动值表示的是该第一链路上的码率变化情况,所以该第一链路上的码率波动值是根据确定出的该第一链路上的码率和预设的标准码率计算得到的,具体的计算方式为先计算上述码率和上述标准码率的差值的绝对值,然后计算该绝对值和该标准码率的第三比值,计算得到第三比值即该第一链路上的码率波动值,其中,上述码率为当前时刻的瞬时码率,上述标准码率为预设的目标码率。
需要说明的是,实施上述所有计算操作的主体均是上述第一链路的下游节点。
需要再次说明的是,上述第一链路的上游节点是该第一链路上数据的发送端,即:该第一链路的数据发送节点,比如:节点A与节点B均是推流边缘节点与拉流边缘节点之间的节点,目标数据从节点A经过第一链路到达节点B,则节点A为该第一链路的上游节点,如图2所示,在数据从推流端传输到拉流端的过程中,推流边缘节点是第一链路A的上游节点,节点a是第一链路B的上游节点,节点b是第一链路C的上游节点。
需要再次说明的是,上述步骤S101中的第一链路的第一链路质量的计算方式可以根据实际情况进行设定,比如还可以根据该第一链路上的延时数据或该第一链路上的数据接收帧率来计算该第一链路的第一链路质量。
在一种可行的实施方案中,所述链路监测调度方法还包括以下步骤:
步骤S201:针对所述第一节点集群中的每一个第一节点,按照第一预设周期获取第二链路的第二链路质量和第三链路的第三链路质量,其中,所述第二链路为以该第一节点为下游节点的链路,所述第三链路为以该第一节点为上游节点的链路。
具体的,针对推流端到拉流端之间的每一个节点集群,该节点集群中的每一个节点会按照第一预设周期向拉流端发送其计算出的链路的链路质量,其中,该节点是该链路的下游节点;所以针对步骤S103中的第一链路所属于的第一节点集群,该节点集群中的每一个第一节点会按照第一预设周期向拉流端发送其计算出的第一链路质量,其中,第一节点指的是上述第一节点集群中除上述第一链路的下游节点之外的其他节点。
针对每一个第一节点,以该第一节点为下游节点的第二链路表示的是该第二链路的下游节点为该第一节点,第一节点是该第二链路的数据接受节点,也就是说该第一节点通过该第二链路接受数据,关于第二链路的下游节点的具体说明,参照上述对第一节点的下游节点的说明,在此不再进行赘述,同理,以该第一节点为上游节点的第三链路表示的是该第三链路的上游节点为第一节点,该第一节点是该第三链路的数据发送节点,也就是说该第一节点通过该第三链路发送数据,关于第三链路的上游节点的具体说明,参照上述对第一链路的上游节点的说明,在此不再进行赘述。
拉流端会按照第一预设周期从该第一节点处获取该第一节点计算并发送的上述第二链路的第二链路质量,并按照上述第一预设周期从第三链路的下游节点处获取该第三链路的下游节点计算并发送的该第三链路的第三链路质量,关于第三链路的下游节点的具体说明,参照上述对第一节点的下游节点的说明,在此不再进行赘述。
步骤S202:按照第二预设周期,判断各所述第一节点中是否存在满足第一预设条件的至少一个第一目标节点,其中,所述第一预设条件为在所述第二预设周期内,所述第一节点的最大第二链路质量的数值小于第一预设数值,且所述第一节点的最大第三链路质量的数值小于第二预设数值,所述最大第二链路质量为所述第一节点的各第二链路质量中最大的第二链路质量,所述最大第三链路质量为所述第一节点的各第三链路质量中最大的第三链路质量,各所述第二链路质量为在各所述第一预设周期获取到的所述第一节点的第二链路质量,各所述第三链路质量为在各所述第一预设周期获取到的所述第一节点的第三链路质量。
具体的,第一预设周期小于或等于第二预设周期,所以在每一个第二周期内会获取到至少一个第二链路质量和至少一个第三链路质量,在至少一个第二链路质量中找到最大的第二链路质量,作为第一节点的最大第二链路质量,以及在至少一个第三链路质量中找到最大的第三链路质量,作为第一节点的最大第三链路质量,针对每一个第一节点,在每一个第二预设周期,判断该第一节点是否满足第一预设条件,相当于判断该第一节点的最大第二链路质量的数值是否小于第一预设阈值,且该第一节点的最大第三链路质量的数值是否小于第二预设数值,若该第一节点的最大第二链路质量的数值小于第一预设数值,且该第一节点的最大第三链路质量的数值小于第二预设数值,则说明该第一节点满足第一预设条件,将该第一节点确定为第一目标节点,其中,第一预设数值与第二预设数值可以相同,也可以不相同。
举例说明,将第一节点的最大第二链路质量设为MAX(Rrto1),将第一节点的最大第三链路质量设为MAX(Rrto2),将第一预设数值与第二预设数值均设为0.01,将第二预设周期设为30分钟,当该第一节点为第一目标节点时,该第一节点连续拉流30分钟,或在该30分钟内,MAX(Rrto1)<0.01且MAX(Rrto2)<0.01。
步骤S203:若存在至少一个所述第一目标节点,按照与所述第一链路的下游节点的距离从近到远的顺序,从各所述第一目标节点中确定小于所述预设个数的第一候选节点。
具体的,若存在至少一个第一目标节点,说明在上述步骤S202中可以根据第一预设条件确定出至少一个满足第一预设条件的第一目标节点,由于筛选出的第一候选节点的数量需要小于预设个数,比如,需要筛选出最多三个第一候选节点,则筛选出的第一候选节点的数量需要小于4,所以需要在确定出至少一个第一目标节点时,需要从各所述第一目标节点中确定小于所述预设个数的第一候选节点,若第一目标节点的数量小于预设个数,则各第一目标节点均是第一候选节点,若第一目标节点的数量大于或等于预设个数,则确定各第一目标节点与上述第一链路的下游节点的距离,并按照距离从近到远的顺序对各第一目标节点进行排序,然后将小于预设个数的排序最靠前的第一目标节点确定为第一候选节点。
需要说明的是,关于第一目标节点与上述第一链路的下游节点的距离的具体说明,参照上述对步骤S103的解释中对第一候选节点与第一链路的下游节点的距离的说明,在此不再进行赘述。
需要再次说明的是,若不存在第一目标节点,则不需要向调度中心发送第一候选节点。
在另一种可行的实施方案中,在执行步骤S201后,所述链路监测调度方法还包括:按照第三预设周期,判断各所述第一节点中是否存在满足第三预设条件的至少一个第三目标节点,其中,所述第三预设条件为在所述第三预设周期内,所述第一节点的最大第二链路质量的数值大于第三预设数值,且所述第一节点的最大第三链路质量的数值大于第四预设数值;若存在至少一个所述第三目标节点,按照与所述第一链路的下游节点的距离从小到大的顺序,从各所述第三目标节点中确定小于预设数量的不推荐使用的节点;将各所述不推荐使用的节点发送到所述调度中心。
具体的,上述不推荐使用的节点的确定方式的具体说明,参照上述对步骤S202和步骤S203的说明,在此不再进行赘述,其中,第一预设周期小于或等于第三预设周期,且上述预设数量可以等于上述预设个数,也可以不等于上述预设个数,上述第三预设数值和上述第四预设数值可以相等,也可以不相等。
举例说明,将第一节点的最大第二链路质量设为MAX(Rrto1),将第一节点的最大第三链路质量设为MAX(Rrto2),将第一预设数值与第二预设数值均设为0.35,将第三预设周期设为5分钟,当该第一节点为第一目标节点时,该第一节点连续拉流时间小于5分钟,或在该5分钟内,MAX(Rrto1)>0.35且MAX(Rrto2) >0.35。
在另一种可行的实施方案中,若在步骤S103中,若拉流端向调度中心发送的第一候选节点的数量为0或各第一候选节点的节点状态均不可用,则第一替补节点由所述调度中心按照预设优先级从第一节点集群中筛选得到,其中,从高到低的预设优先级分别为同地区同运营商、同地区不同运营商、邻近地区相同运营商、邻近地区不同运营商、其他地区相同运营商、其他地区相同运营商,其他地区为除上述同地区和上述邻近地区之外的其他地区;除此之外,还可以通过降低上述步骤S103中的第一链路上的码率来改善第一链路质量。
实施例二
图3示出了本申请实施例二所提供的一种链路监测调度方法的流程图,如图3所示,所述链路监测调度方法应用于拉流端,该方法包括以下步骤:
步骤S301:针对拉流端与拉流边缘节点间的第四链路,计算所述第四链路的第四链路质量。
步骤S302:判断所述第四链路质量是否大于预设阈值。
步骤S303:若所述第四链路质量大于所述预设阈值,向调度中心发送用于表示更换所述第四链路的上游节点的第二请求和确定出的小于预设个数的第二候选节点,以使所述调度中心从各所述第二候选节点中确定第二替补节点,其中,所述第二候选节点与所述上游节点属于相同的第二节点集群,所述第二节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第二替补节点为节点状态为可用状态的与所述上游节点距离最近的第二候选节点。
步骤S304:根据接收到的所述调度中心发送的所述第二替补节点的地址,将所述上游节点更换为所述第二替补节点。
具体的,关于步骤S301至步骤S304的具体说明,参照上述对步骤S101至步骤S104的说明,在此不再进行赘述,其中,与上述步骤S101至步骤S104不同的是,在步骤S301中,拉流端是在拉流边缘节点上通过第四链路拉取所需的数据流,数据流在第四链路上的流向是从拉流边缘节点传输至拉流端,所以第四链路的第四链路质量是由拉流端计算出的,除此之外,在步骤S303中,当第四链路质量大于预设阈值时,拉流端向调度中心发送的第二请求用于表示切换第四链路质量的上游节点,以及向调度中心发送的第二候选节点与上述第四链路的上游节点属于相同的第二节点集群,以能实现切换第四链路的目的,使得拉流端更快速准确的接收到数据。
需要再次说明的是,上述第四链路的上游节点具体指的是拉流边缘节点,上述第二候选节点指的是除该第四链路的拉流边缘节点之外的其他拉流边缘节点,上述第二节点集群指的是拉流边缘节点集群。
在一种可行的实施方案中,上述步骤S301可以通过以下步骤实现:
步骤S401:根据所述第四链路上码率和预设的标准码率,计算所述第四链路上的码率波动值。
步骤S401:对所述第四链路上的丢包率及为其设置的权重、重传率及为其设置的权重、所述码率波动值及为其设置的权重进行加权求和,得到所述第四链路质量。
具体的,关于步骤S401和步骤S402中第四链路质量的计算方式的具体说明,参照上述对第一链路质量的计算方式的说明,在此不再进行赘述。
需要说明的是,与上述第一链路质量的计算不同的是,第一链路质量是由该第一链路质量对应的第一链路的下游节点计算出来的,而步骤S401和步骤S402中的第四链路质量是由拉流端计算出来的。
在一种可行的实施方案中,所述链路监测调度方法还包括以下步骤:
步骤S501:针对所述第二节点集群中的每一个第二节点,按照第一预设周期获取第五链路的第五链路质量和第六链路的第六链路质量,其中,所述第五链路为以该第二节点为下游节点的链路,所述第六链路为以该第二节点为上游节点的链路。
步骤S502:按照第二预设周期,判断各所述第二节点中是否存在满足第二预设条件的至少一个第二目标节点,其中,所述第二预设条件为在所述第二预设周期内,所述第二节点的最大第五链路质量的数值小于第一预设数值,且所述第二节点的最大第六链路质量的数值小于第二预设数值,所述最大第五链路质量为所述第二节点的各第五链路质量中最大的第五链路质量,所述最大第六链路质量为所述第二节点的各第六链路质量中最大的第六链路质量,各所述第五链路质量为在各所述第一预设周期获取到的所述第二节点的第五链路质量,各所述第六链路质量为在各所述第一预设周期获取到的所述第二节点的第六链路质量。
步骤S503:若存在至少一个所述第二目标节点,按照与所述第四链路的上游节点的距离从近到远的顺序,从各所述第二目标节点中确定小于所述预设个数的第二候选节点。
具体的,关于步骤S501至步骤S503的具体说明,参照上述对步骤S201至步骤S203的具体说明,在此不再进行赘述。
在另一种可行的实施方案中,在执行步骤S501后,所述链路监测调度方法还包括:按照第三预设周期,判断各所述第二节点中是否存在满足第三预设条件的至少一个第四目标节点,其中,所述第三预设条件为在所述第三预设周期内,所述第二节点的最大第五链路质量的数值大于第三预设数值,且所述第二节点的最大第六链路质量的数值大于第四预设数值;若存在至少一个所述第四目标节点,按照与所述第一链路的下游节点的距离从小到大的顺序,从各所述第四目标节点中确定小于预设数量的不推荐使用的节点;将各所述不推荐使用的节点发送到所述调度中心。
在另一种可行的实施方案中,若在步骤S303中,若拉流端向调度中心发送的第二候选节点的数量为0或各第二候选节点的节点状态均不可用,则第二替补节点由所述调度中心按照预设优先级从第二节点集群中筛选得到,其中,从高到低的预设优先级分别为同地区同运营商、同地区不同运营商、邻近地区相同运营商、邻近地区不同运营商、其他地区相同运营商、其他地区相同运营商,其他地区为除上述同地区和上述邻近地区之外的其他地区;除此之外,还可以通过降低上述步骤S303中的第四链路上的码率来改善第四链路质量。
实施例三
图4示出了本申请实施例三所提供的一种链路监测调度装置的结构示意图,如图4所示,该链路监测调度装置应用于拉流端,该链路监测调度装置包括:
第一获取模块601,用于针对推流边缘节点与拉流边缘节点间的每一级第一链路,获取该第一链路的下游节点发送的该第一链路的第一链路质量,其中,所述第一链路质量是由所述下游节点计算得到的,所述推流边缘节点与所述拉流边缘节点间包括至少一个节点,至少一个节点之间通过所述第一链路进行串联;
第一判断模块602,用于判断所述第一链路质量是否大于预设阈值;
第一执行模块603,用于若所述第一链路质量大于所述预设阈值,向调度中心发送用于表示更换所述下游节点的第一请求和确定出的小于预设个数的第一候选节点,以使所述调度中心从各所述第一候选节点中确定第一替补节点,其中,所述第一候选节点与所述下游节点属于相同的第一节点集群,所述第一节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第一替补节点为节点状态为可用状态的与所述下游节点距离最近的第一候选节点;
第一更换模块604,用于根据接收到的所述调度中心发送的所述第一替补节点的地址,将所述下游节点更换为所述第一替补节点。
在一种可行的实施方案中,第一链路的第一链路质量是由该第一链路的下游节点对该第一链路上的丢包率及为其设置的权重、重传率及为其设置的权重、码率波动值及为其设置的权重进行加权求和得到的,其中,所述码率波动值是由该第一链路的下游节点根据该第一链路上的码率和预设的标准码率计算得到的。
在一种可行的实施方案中,所述链路监测调度装置还包括:
第二获取模块,用于针对所述第一节点集群中的每一个第一节点,按照第一预设周期获取第二链路的第二链路质量和第三链路的第三链路质量,其中,所述第二链路为以该第一节点为下游节点的链路,所述第三链路为以该第一节点为上游节点的链路;
第一筛选模块,用于按照第二预设周期,判断各所述第一节点中是否存在满足第一预设条件的至少一个第一目标节点,其中,所述第一预设条件为在所述第二预设周期内,所述第一节点的最大第二链路质量的数值小于第一预设数值,且所述第一节点的最大第三链路质量的数值小于第二预设数值,所述最大第二链路质量为所述第一节点的各第二链路质量中最大的第二链路质量,所述最大第三链路质量为所述第一节点的各第三链路质量中最大的第三链路质量,各所述第二链路质量为在各所述第一预设周期获取到的所述第一节点的第二链路质量,各所述第三链路质量为在各所述第一预设周期获取到的所述第一节点的第三链路质量;
第一确定模块,用于若存在至少一个所述第一目标节点,按照与所述第一链路的下游节点的距离从近到远的顺序,从各所述第一目标节点中确定小于所述预设个数的第一候选节点。
实施例四
图5示出了本申请实施例四所提供的一种链路监测调度装置的结构示意图,如图5所示,该链路监测调度装置应用于拉流端,该链路监测调度装置包括:
计算模块701,用于针对拉流端与拉流边缘节点间的第四链路,计算所述第四链路的第四链路质量;
第二判断模块702,用于判断所述第四链路质量是否大于预设阈值;
第二执行模块703,用于若所述第四链路质量大于所述预设阈值,向调度中心发送用于表示更换所述第四链路的上游节点的第二请求和确定出的小于预设个数的第二候选节点,以使所述调度中心从各所述第二候选节点中确定第二替补节点,其中,所述第二候选节点与所述上游节点属于相同的第二节点集群,所述第二节点集群中的任意两个节点在推流端和拉流端之间的各节点中的排列次序相同,所述第二替补节点为节点状态为可用状态的与所述上游节点距离最近的第二候选节点;
第二更换模块704,用于根据接收到的所述调度中心发送的所述第二替补节点的地址,将所述上游节点更换为所述第二替补节点。
在一种可行的实施方案中,所述计算模块701的配置在用于计算所述第四链路的第四链路质量时,包括:
根据所述第四链路上码率和预设的标准码率,计算所述第四链路上的码率波动值;
对所述第四链路上的丢包率及为其设置的权重、重传率及为其设置的权重、所述码率波动值及为其设置的权重进行加权求和,得到所述第四链路质量。
在一种可行的实施方案中,所述链路监测调度装置还包括:
第三获取模块,用于针对所述第二节点集群中的每一个第二节点,按照第一预设周期获取第五链路的第五链路质量和第六链路的第六链路质量,其中,所述第五链路为以该第二节点为下游节点的链路,所述第六链路为以该第二节点为上游节点的链路;
第二筛选模块,用于按照第二预设周期,判断各所述第二节点中是否存在满足第二预设条件的至少一个第二目标节点,其中,所述第二预设条件为在所述第二预设周期内,所述第二节点的最大第五链路质量的数值小于第一预设数值,且所述第二节点的最大第六链路质量的数值小于第二预设数值,所述最大第五链路质量为所述第二节点的各第五链路质量中最大的第五链路质量,所述最大第六链路质量为所述第二节点的各第六链路质量中最大的第六链路质量,各所述第五链路质量为在各所述第一预设周期获取到的所述第二节点的第五链路质量,各所述第六链路质量为在各所述第一预设周期获取到的所述第二节点的第六链路质量;
第二确定模块,用于若存在至少一个所述第二目标节点,按照与所述第四链路的上游节点的距离从近到远的顺序,从各所述第二目标节点中确定小于所述预设个数的第二候选节点。
本申请实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供的链路监测调度方法,在目标数据从推流边缘节点传输到拉流端的过程中,针对其经过的推流边缘节点与拉流边缘节点间的每一级第一链路,该第一链路的下游节点计算该第一链路的第一链路质量,并将计算出的第一链路质量发送到拉流端,第一链路质量代表的是在该第一链路上数据包的丢失情况,所以拉流端在得到该第一链路质量后,判断该第一链路质量是否大于预设阈值,若该第一链路质量大于预设阈值,说明该第一链路上的丢包情况严重,需要切换该第一链路,而切换第一链路的方式为更换该第一链路的下游节点,所以拉流端向调度中心发送用于更换该第一链路的下游节点的第一请求,同时向调度中心发送小于预设个数的第一候选节点,各候选节点是拉流端从上述下游节点属于的第一节点集群中确定出来的,调度中心可以优先从各候选节点中确定第一替补节点,相对于调度中心从第一节点集群中确定出第一替补节点的方法,该方法有利于减轻调度中心的工作负担,在调度中心确定出第一替补节点后,将该第一替补节点的地址发送到拉流端,拉流端就可以根据接收到的该第一替补节点的地址,将该第一链路的下游节点更换为该第一替补节点,以实现切换该第一链路的目的;除此之外,本申请还提供了对拉流边缘节点与拉流端之间的第四链路的监测调度,拉流端计算第四链路上的第四链路质量,在第四链路质量大于预设阈值的时候,需要通过更换该第四链路的上游节点的方式完成对第四链路的切换,所以拉流端向调度中心发送用于表示切换该第四链路的上游节点的第二请求,同时向调度中心发送小于预设个数的第二候选节点,以使调度中心可以在接收到第二请求时,从各第二候选节点中确定出第二替补节点,减轻调度中心的工作负担,待调度中心把第二替补节点的地址发送到拉流端后,拉流端就可以根据接收到的第二替补节点的地址将该第四链路的上游节点更换为该第二替补节点,以完成切换第四链路的目的;与现有技术中仅调度拉流端与拉流边缘节点间链路的方法相比,本申请提供的链路监测调度方法不仅可以监测拉流端与拉流边缘节点间第四链路的链路质量,还可以监测推流边缘节点与拉流边缘节点之间的每一条第一链路的链路质量,当第四链路的链路质量变差时,拉流端向调度中心发送用于表示切换该第四链路的上游节的请求,当某一条第一链路的链路质量变差时,拉流端向调度中心发送用于表示切换该第一链路的上游节点的请求,这两种请求均可以明确表示出需要切换的链路及切换该链路的方式,有利于准确的发现网络质量问题的位置,并从根本上解决网络质量问题。
实施例五
本申请实施例还提供了一种计算机设备800,图6示出了本申请实施例五所提供的一种计算机设备的结构示意图,如图6所示,该设备包括存储器801、处理器802及存储在该存储器801上并可在该处理器802上运行的计算机程序,其中,上述处理器802执行上述计算机程序时实现上述链路监测调度方法。
具体地,上述存储器801和处理器802能够为通用的存储器和处理器,这里不做具体限定,当处理器802运行存储器801存储的计算机程序时,能够执行上述链路监测调度方法,解决了现有技术中不能准确的发现网络质量问题的位置,从而不能从根本上解决网络质量问题的问题。
实施例六
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述链路监测调度方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述链路监测调度方法,解决了现有技术中不能准确的发现网络质量问题的位置,从而不能从根本上解决网络质量问题的问题。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。