发明内容
本发明实施例提供了一种优化分配带宽的点播方法和装置,用于优化带宽分配,提高用户在线播放速度。
一方面,本发明实施例提供了一种优化分配带宽的点播方法,该方法包括:在播放器启动时通过传输控制端加入局域网组播组;利用所述局域网组播组通过组播技术查询局域网内的资源节点中是否有需要点播的音视频文件;优先与具有所述音视频文件的局域网内资源节点建立内网连接以获取数据进行点播。
优选的,本发明实施例中在播放器启动时通过传输控制端加入局域网组播组包括:由传输控制端在播放器启动时向路由器申请加入局域网组播组;所述路由器判断局域网内是否已经局域网组播组:若是,则所述路由器将请求终端加入局域网中已有的局域网组播组;若否,则所述路由器创建一局域网组播组,并将请求终端加入新创建的局域网组播组。
优选的,本发明实施例中利用所述局域网组播组查询局域网内的资源节点中是否有需要点播的音视频文件包括:确定需要点播的音视频文件的标识;传输控制端向所述局域网组播组发送查询消息查询局域网内的资源节点是否有所述标识的音视频文件;所述局域网组播组复制所述查询消息并向组内所有资源节点发送所述查询消息;传输控制端接收具有所述音视频文件的资源节点返回的资源连接信息。
优选的,本发明实施例的方法还包括:利用所述传输控制终端从外网获取需要点播的音视频文件。
优选的,本发明实施例中利用所述传输控制终端从外网获取需要点播的音视频文件包括:确定需要点播的音视频文件的标识;向外网的用户跟踪服务器查询P2P网络内是否有所述标识的音视频文件资源的节点;接收所述用户跟踪服务器返回的P2P资源节点列表;根据所述P2P资源节点列表,逐一连接列表中的节点,从这些节点中获取需要点播的音视频文件数据。
优选的,本发明实施例中当根据所述P2P列表资源从外网获取需要点播的音视频文件时,方法还包括:向所述局域网组播组发送智能限速报文;所述局域网组播组复制所述智能限速报文并向组内所有资源节点发送所述智能限速报文;收到所述智能限速报文的资源节点根据预设方案进行限速调整。
优选的,本发明实施例中收到所述智能限速报文的资源节点根据预设方案进行限速调整包括:收到所述智能限速报文的资源节点判断当前有无点播请求:若无点播请求则丢弃所述智能限速报文;若有点播请求则进一步判断所述点播请求是否正在播放:若所述点播请求未在播放,则将下载速度调整为a%进行限速;若所述点播请求正在播放,则进一步判断正在播放的音视频文件当前下载的数据是否足够播放n时长时间:若够播放n时长时间,则将下载速度调整为b%进行限速,否则将下载速度调整为正好满足播放需求对应的速度,即播放码率的速度;其中a、b、n为大于零的正数,且a<b。
另一方面,本发明实施例还提供了一种优化分配带宽的点播装置,包括:组播组加入单元,用于在播放器启动时通过传输控制端加入局域网组播组;查询单元,用于利用所述局域网组播组通过组播技术查询局域网内的资源节点中是否有需要点播的音视频文件;点播单元,用于优先与具有所述音视频文件的局域网内资源节点建立内网连接以获取数据进行点播。
优选的,本发明实施例中查询单元包括:标识确定模块,用于确定需要点播的音视频文件的标识;查询模块,用于利用传输控制端向所述局域网组播组发送查询消息查询局域网内的资源节点是否有所述标识的音视频文件;接收模块,用于接收具有所述音视频文件的资源节点返回的资源连接信息。
优选的,本发明实施例中装置还包括:外网资源获取单元,用于利用所述传输控制终端从外网获取需要点播的音视频文件。
优选的,本发明实施例中外网资源获取单元包括:标识确定模块,用于确定需要点播的音视频文件的标识;查询模块,用于向外网的用户跟踪服务器查询P2P网络内是否有所述标识的音视频文件资源的节点;接收模块,用于接收所述用户跟踪服务器返回的P2P资源节点列表;获取模块,用于根据所述P2P资源节点列表,逐一连接列表中的节点,从这些节点中获取需要点播的音视频文件数据。
优选的,本发明实施例的装置还包括:限速单元,用于当传输控制端接收到来自同一组播组内的合法限速报文时,限制本点播装置对网络带宽的使用。
本发明实施例中用户在线点播时,可以利用组播技术优先从局域网资源节点中下载音视频文件,由于局域网内数据传输速率远高于外网速率,因此不但提高了用户的点播速度,还减少了对路由出口带宽的占用。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明实施例提供的一种优化分配带宽的点播方法流程示意图,需要指出的是,本实施例是从需要进行点播的终端侧进行的描述,该方法包括如下步骤:
S101:在播放器启动时通过传输控制端加入局域网组播组。
在本实施例中,传输控制端隶属于播放器,其可以为播放器的后台运行程序。局域网组播组是应用组成员关系协议(Internet Group ManagementProtocol,IGMP)的组播技术,该协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉组播路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现网络成员关系的收集与维护。而在本实施例中,播放器启动时就会使该播放器所隶属的终端加入该局域网组播组。
作为本发明的一个实施例,如图2所示,该步骤S101可以包括如下子步骤:
S1011:由传输控制端在播放器启动时向路由器申请加入局域网组播组;
S1012:路由器判断局域网内是否已经局域网组播组,若是,则进入步骤S1013,若否,则进入步骤S1014;
S1013:路由器将请求终端加入局域网中已有的局域网组播组;
S1014:路由器创建一局域网组播组,并将请求终端加入新创建的局域网组播组。
S102:利用上述局域网组播组通过组播技术查询局域网内的资源节点中是否有需要点播的音视频文件。
由于组播技术在发送者和每一个接收者之间实现了点对多点的网络连接,因此如果一个发送者同时需要给多个接收者传输相同的数据,也只需要发送一份数据包。在本实施例中,利用局域网组播组来查询音视频文件,则请求终端只需要发送一次查询请求即可。
作为本发明的一个实施例,如图3所示,该步骤S102可以包括如下子步骤:
S1021:确定需要点播的音视频文件的标识;这里的标识可以通过文件识别信息算法生成,比如hash算法等。
S1022:传输控制端向所述局域网组播组发送查询消息查询局域网内的资源节点是否有所述标识的音视频文件;
S1023:所述局域网组播组复制所述查询消息并向组内所有资源节点发送所述查询消息;
局域网组播组内的资源节点在收到该查询消息后,首先会判断该资源节点本地是否有该标识的音视频文件,若没有,则丢弃该查询消息报文,若有,则向请求终端返回资源连接信息,该资源连接信息比如可以为该资源节点的IP和端口等信息。
S1024:接收具有所述音视频文件的资源节点返回的资源连接信息。
S103:优先与具有所述音视频文件的局域网内资源节点建立内网连接以获取数据进行点播。
如果请求终端收到上述资源连接信息,则根据该资源连接信息优先与该局域网内的资源节点建立用户数据包协议(User Datagram Protocol,UDP)或者传输控制协议(Transmission Control Protocol,TCP)连接,然后请求终端的播放器可以从该资源节点上下载需要点播的音视频文件并进行播放。
作为本发明的一个实施例,若请求终端未收到局域网内的资源节点返回的资源连接信息,即局域网内资源节点没有请求终端所需要的音视频文件时,请求终端的播放器也可以利用传输控制终端从外网获取需要点播的音视频文件,具体来说,如图4所示,从外网获取需要点播的音视频文件可以包括如下子步骤:
S401:确定需要点播的音视频文件的标识;
S402:向外网的用户跟踪服务器查询P2P网络内是否有该标识的音视频文件资源的节点;
用户跟踪服务器在收到该查询请求后,会解析出发出该查询请求的终端的IP地址,然后再检索P2P网络内的资源节点,最后将具有该音视频文件资源的资源节点信息形成一P2P资源节点列表并发送给请求终端。
S403:接收用户跟踪服务器返回的P2P资源节点列表;
S404:根据P2P资源节点列表从外网获取需要点播的音视频文件。
本发明实施例中用户在线点播时,可以利用组播技术优先从局域网资源节点中下载音视频文件,由于局域网内数据传输速率远高于外网速率,因此不但提高了用户的点播速度,还减少了对路由出口带宽的占用。
如图5所示为本发明实施例提供的另一种优化分配带宽的点播方法流程示意图,该方法包括如下步骤:
S501:根据P2P资源节点列表从外网获取需要点播的音视频文件。
需要指出的是,在该步骤之前,请求终端已经在播放器启动时加入了局域网组播组,具体的加入方法可以参见前述实施例步骤S101的描述。该步骤是由于局域网组播组内的资源节点中没有该请求终端所需要点播的音视频文件,因此需要根据P2P资源节点列表从外网获取需要点播的音视频文件。
S502:向局域网组播组发送智能限速报文。
如果请求终端在点播过程中需要更多的带宽时,可以向其加入的局域网组播组发送该智能限速报文,通过该局域网组播组内其他节点的限速来保证请求终端带宽的分配。
S503:局域网组播组复制智能限速报文并向组内所有资源节点发送智能限速报文。
S504:收到智能限速报文的资源节点根据预设方案进行限速调整。
作为本发明的一个实施例,该步骤的预设放啊比如可以包括:所述智能限速报文的资源节点判断当前有无点播请求,即判断是否占用出口带宽:若无点播请求则丢弃所述智能限速报文;若有点播请求则进一步判断所述点播请求是否正在播放:若所述点播请求未在播放,则将下载速度调整为a%进行限速;若所述点播请求正在播放,则进一步判断正在播放的音视频文件当前下载的数据是否足够播放n时长时间:若够播放n时长时间,则将下载速度调整为b%进行限速,否则将下载速度调整为正好满足播放需求对应的速度,即播放码率的速度;其中a、b、n为大于零的正数,且a<b。
可见,若多个局域网用户在同一时刻需要对外下载数据的情况下,出口带宽有限,通过本发明可以实现对局域网内部的智能限速,优化分配每个用户对出口带宽的占用,最大化满足各用户的流畅点播需求。
下面例举一具体实例对上述实施例进行进一步的描述:
假设一局域网组播组内具有用户A、用户B、用户C、用户D……用户N,其中用户B具有标识A文件30%的资源数据。此时用户A请求点播标识A文件,局域网组播组向用户B,用户C,用户D…以及用户N发送组播查询消息,用户C,用户D…以及用户N没有资源数据,则丢弃查询报文。用户B则将自己的连接信息返回给用户A。用户A根据网络情况采用UDP或者TCP协议将用户B的30%资源数据下载到本地并播放。在用户B继续HashA文件的播放时,用户A同步将用户B下载的资源数据由内网传输至用户A。对于同步以后的资源数据用户A用户由外网的P2P网络下载。
此时,用户B停止了HashA文件的播放,并开始HashB文件的点播,且用户B向局域网组播组发送智能限速报文,局域网组播组将智能限速报文复制并分发给其它所用节点,用户A,用户C,用户D…以及用户N。
收到报文的节点用户A,用户C,用户D…以及用户N分别进行限速调整:当前没有点播的用户C丢弃智能限速报文;有点播请求的但没有正在播放的用户D,则将下载速度调整为30%限速;对于用户A,有点播请求并正在播放,且当前下载的数据是否够文件播放3-5分钟的,则对下载作50%的限速;对于用户A,如果当前下载的数据不够文件播放3-5分钟,则将现在速度调整至保证正常播放的码率速度。这样,请求智能限速的节点用户B在当前网络环境下可以获得最优带宽。
如图6所示为本发明实施例提供的一种优化分配带宽的点播装置的结构示意图,该点播装置包括组播组加入单元610、查询单元620和点播单元630。
组播组加入单元610用于在播放器启动时通过传输控制端加入局域网组播组。
具体来说,是由组播组加入单元610向路由器发出组播组加入请求,然后由路由器进行具体操作:路由器判断局域网内是否已经局域网组播组,若是,则路由器将请求终端加入局域网中已有的局域网组播组;若否,则路由器创建一局域网组播组,并将请求终端加入新创建的局域网组播组。
查询单元620用于利用局域网组播组通过组播技术查询局域网内的资源节点中是否有需要点播的音视频文件。
作为本发明的一个实施例,如图7所示,查询单元620可以包括:标识确定模块621、查询模块622和接收模块623。
标识确定模块621用于确定需要点播的音视频文件的标识。这里的标识可以通过文件识别信息算法生成,比如hash算法等。
查询模块622用于利用传输控制端向局域网组播组发送查询消息查询局域网内的资源节点是否有上述标识的音视频文件。局域网组播组会复制查询消息并向组内所有资源节点发送该查询消息,局域网组播组内的资源节点在收到该查询消息后,首先会判断该资源节点本地是否有该标识的音视频文件,若没有,则丢弃该查询消息报文,若有,则向请求终端返回资源连接信息。
接收模块623用于接收具有上述音视频文件的资源节点返回的资源连接信息。
点播单元630用于优先与具有上述音视频文件的局域网内资源节点建立内网连接以获取数据进行点播。
本发明实施例中用户在线点播时,可以利用组播技术优先从局域网资源节点中下载音视频文件,由于局域网内数据传输速率远高于外网速率,因此不但提高了用户的点播速度,还减少了对路由出口带宽的占用。
如图8所示为本发明实施例提供的另一种优化分配带宽的点播装置的结构示意图,该点播装置包括组播组加入单元810、查询单元820、点播单元830、外网资源获取单元840和限速单元850,其中组播组加入单元810、查询单元820、点播单元830和图6对应实施例中相类似,在此不再赘述。
外网资源获取单元840用于利用传输控制终端从外网获取需要点播的音视频文件。外网资源获取单元840在局域网组播组内的资源节点没有上述音视频文件时,可以从外网获取该音视频文件。
作为本发明的一个实施例,如图9所示,外网资源获取单元840可以包括:标识确定模块841、查询模块842、接收模块843和获取模块844。
标识确定模块841用于确定需要点播的音视频文件的标识。
查询模块842用于向外网的用户跟踪服务器查询P2P网络内是否有所述标识的音视频文件资源的节点。
接收模块843用于接收用户跟踪服务器返回的P2P资源节点列表。
获取模块844用于根据所述P2P资源节点列表从外网获取需要点播的音视频文件。点播单元830还用于播放获取模块844从外网获取的音视频文件。
限速单元850用于当传输控制端接收到来自同一组播组内的合法限速报文时,限制本点播装置对网络带宽的使用。具体的限速过程可以参见前述实施例的描述,在此不再赘述。
本发明实施例中用户在线点播时,可以利用组播技术优先从局域网资源节点中下载音视频文件,由于局域网内数据传输速率远高于外网速率,因此不但提高了用户的点播速度,还减少了对路由出口带宽的占用。另外本发明实施例通过局域网组播组,使得局域网内各个节点根据智能限速组播消息进行自适应的智能限速调整,从而请求智能限速的节点在当前网络环境下可以获得最优带宽,并使尽可能多的节点能够同时流畅点播。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。