CN108259542B - 资源的传输方法和装置 - Google Patents
资源的传输方法和装置 Download PDFInfo
- Publication number
- CN108259542B CN108259542B CN201611248652.2A CN201611248652A CN108259542B CN 108259542 B CN108259542 B CN 108259542B CN 201611248652 A CN201611248652 A CN 201611248652A CN 108259542 B CN108259542 B CN 108259542B
- Authority
- CN
- China
- Prior art keywords
- terminal
- resource
- target resource
- target
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种资源的传输方法和装置。其中,该方法包括:接收第一终端对目标资源的第一请求,目标资源为资源服务器提供的资源;确定与目标资源对应的终端集合,终端集合包括请求过目标资源的多个终端;在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。本发明解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种资源的传输方法和装置。
背景技术
浏览器本身不支持相互之间直接建立信道进行通信,主要是通过服务器进行中转,比如,需要在客户端甲和客户端乙之间通信,首先需要甲和服务器、乙和服务器之间建立信道,甲给乙发送消息时,甲先将消息发送到甲的服务器上,甲的服务器对甲的消息进行中转传输到乙的服务器,由乙的服务器将消息发送到乙处,反过来也是一样。这样甲与乙之间的一次消息要通过两段信道,通信的效率同时受制于这两段信道的带宽。同时这样的信道并不适合数据流的传输,如何建立浏览器之间的点对点传输,一直困扰着开发者,为了解决上述问题,WebRTC应运而生。
WebRTC是一个开源项目,旨在使得浏览器能为实时通信(RTC)提供简单的接口。利用浏览器提供的即时通信接口,通过一系列的信令,建立一个浏览器与浏览器之间(peer-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器,并且WebRTC可以用于实现流媒体传输,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频等流媒体。
在利用上述的WebRTC组成的资源传输系统进行多媒体信息、文字文件等资源的传输时,需要依赖于CDN服务器的分发,但是随着用户的增加,CDN服务器往往不能及时响应用户的需求,导致了用户获取资源的时延较大,若要提高及时性就需要在传输系统中增加CDN服务器,其成本较高。
针对相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种资源的传输方法和装置,以至少解决相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题。
根据本发明实施例的一个方面,提供了一种资源的传输方法,包括:接收第一终端对目标资源的第一请求,其中,目标资源为资源服务器提供的资源;确定与目标资源对应的终端集合,其中,终端集合包括请求过目标资源的多个终端;在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。
根据本发明实施例的一个方面,还提供了一种资源的传输方法,包括:发送对目标资源的第一请求至预设服务器,其中,目标资源为资源服务器提供的资源;接收预设服务器返回的指示信息,其中,指示信息用于指示终端集合中是否存在缓存有目标资源的第二终端,终端集合包括请求过目标资源的多个终端;在终端集合中存在缓存有目标资源的第二终端的情况下,从第二终端获取目标资源;在终端集合中不存在缓存有目标资源的第二终端的情况下,从资源服务器获取目标资源。
根据本发明实施例的另一方面,还提供了一种资源的传输装置,包括:第一接收单元,用于接收第一终端对目标资源的第一请求,其中,目标资源为资源服务器提供的资源;确定单元,用于确定与目标资源对应的终端集合,其中,终端集合包括请求过目标资源的多个终端;第一指示单元,用于在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;第二指示单元,用于在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。
根据本发明实施例的另一方面,还提供了一种资源的传输装置,包括:第一发送单元,用于发送对目标资源的第一请求至预设服务器,其中,目标资源为资源服务器提供的资源;第二接收单元,用于接收预设服务器返回的指示信息,其中,指示信息用于指示终端集合中是否存在缓存有目标资源的第二终端,终端集合包括请求过目标资源的多个终端;第一获取单元,用于在终端集合中存在缓存有目标资源的第二终端的情况下,从第二终端获取目标资源;第二获取单元,用于在终端集合中不存在缓存有目标资源的第二终端的情况下,从资源服务器获取目标资源。
在本发明实施例中,每个资源对应有一个终端集合,终端集合中的终端进行资源的缓存,在第一终端对目标资源发起第一请求时,可直接从终端集合的终端上获取目标资源,其及时性较好,且不用增加CDN服务器,可以解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题,进而达到了降低资源传输系统的改造成本的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的资源的传输方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的资源的传输方法的流程图;
图3是根据本发明实施例的一种可选的资源的传输方法的流程图;
图4是根据本发明实施例的一种可选的JSEP结构的示意图;
图5是根据本发明实施例的一种可选的资源的传输方法的流程图;
图6是根据本发明实施例的一种可选的资源的传输方法的流程图;
图7是根据本发明实施例的一种可选的资源的传输方法的流程图;
图8是根据本发明实施例的一种可选的资源传输的示意图;
图9是根据本发明实施例的一种可选的资源的传输方装置的示意图;
图10是根据本发明实施例的一种可选的资源的传输方装置的示意图;以及
图11是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术。
JavaScript:一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
CDN:全称是Content Delivery Network,即内容分发网络。
RTMP:是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe MediaServer/Ultrant Media Server/red5等。
JSEP:JavaScript Session Establishment Protocol,JavaScript会话建立协议,是一个信令API,允许开发者构建更强大的应用程序以及增加在信令协议选择上的灵活性。谷歌提供有一个JavaScript库以降低使用该API的复杂性。
NAT:Network Address Translation,网络地址转换,当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
STUN:Simple Traversal of UDP over NATs,NAT的UDP简单穿越,是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间建立UDP通信。
实施例1
根据本发明实施例,提供了一种资源的传输方法的方法实施例。
可选地,在本实施例中,上述资源的传输方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种可选的资源的传输方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,接收第一终端对目标资源的第一请求,目标资源为资源服务器提供的资源;
步骤S204,确定与目标资源对应的终端集合,终端集合包括请求过目标资源的多个终端,且终端集合中的终端允许进行资源的缓存;
步骤S206,在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;
步骤S208,在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。
通过上述步骤S202至步骤S208,每个资源对应有一个终端集合,终端集合中的终端进行资源的缓存,在第一终端对目标资源发起第一请求时,可直接从终端集合的终端上获取目标资源,其及时性较好,且不用增加CDN服务器,可以解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题,进而达到了降低资源传输系统的改造成本的技术效果。
上述的终端集合中的终端为曾经请求过目标资源的终端,该终端可以为PC、手机、平板电脑、媒体播放器等智能设备。
上述的资源可以为静态文件,如文件、图片等,也可以为流文件,如视频流、音乐流等,还可以为其它可以在互联网上传输的资源。
上述的资源服务器可以为目标资源的源服务器,也可以是资源传输网络中的CDN加速节点,或者其它可以提供目标资源的服务器。
上述的方法可以应用于服务器上,如传输系统中的信令服务器。其应用的场景包括文件传输、直播、网络会议等场景。
终端允许通过超文件标记语言HTML进行资源的缓存是指在终端上,终端的浏览器可以通过HTML5提供的接口进行资源的缓存。
在本申请提供的技术方案中,在第一终端与第二终端传输资源时,基于WebRTC技术实现,深度研究了其通信模块,提供了一套针对网络资源的加速解决方案,通过对页面引入一个JS文件,并配置信令服务器,就可以让任何打开页面的终端成为一个存储和上传节点,使得其他终端可以从这个终端节点获取资源,同时可以配合现存的CDN,在较小的改动下,提升资源的访问速度,在资源繁忙的时候,减少资源服务器的压力,减少带宽的消耗。加速的资源除了文件,页面,图片等静态资源外,还提供流媒体的加速,包括点播和直播。方案本身不需要设备安装特定插件,通过基于HTML 5的一些特性,移动端可以具有和PC端一样的特性,通过P2P组网技术,加大了资源的节点数。最后,改进了信令服务器,提供了双向的资源查找,减少CDN的节点,并提升了资源的加载速度。下面结合图2详述本申请的实施例:
在执行步骤S202提供的技术方案前,在接收第一终端对目标资源的第一请求之前,可接收第二终端的第二请求,第二请求用于请求建立第二终端传输资源用的目标信道;创建目标信道,并返回验证信息至第二终端,其中,验证信息为第二终端接入目标信道所使用的信息。通过该目标信道,其它终端可以获取第二终端上缓存的资源。在该信道上进行资源传输时可以通过WebRTC提供的通讯模块实现。
在步骤S204提供的技术方案中,在确定与目标资源对应的终端集合,终端集合包括请求过目标资源的多个终端时,可预先在指令服务器上保存一个第一索引文件,在第一索引文件以资源的索引为Key保存所有请求过该资源的终端的标识信息,这样,即可通过查询第一索引文件确定终端集合中的多个终端。
在指示第一终端从第二终端获取目标资源之前,可根据目标资源的第一索引判断终端集合中是否存在缓存有目标资源的第二终端,第一请求中携带有目标资源的第一索引,终端集合中的终端允许通过超文件标记语言HTML进行资源的缓存。
具体地,根据目标资源的第一索引判断终端集合中是否存在缓存有目标资源的第二终端包括:判断是否存在与目标资源的第一索引关联的标识信息,标识信息为缓存有目标资源的至少一个第二终端的标识,在判断出存在与目标资源的第一索引关联的标识信息的情况下,确定存在缓存有目标资源的第二终端。
如为各个终端创建一个以其标识信息为名字的第二索引文件,在第二索引文件中保存该终端缓存过的资源的第一索引,这样,通过遍历各个终端的第二索引文件,即可确定该终端是否缓存有目标资源。
在步骤S206提供的技术方案中,指示第一终端从第二终端获取目标资源包括:发送指示信息至第一终端,在通过目标信道传输目标资源时,通过WebRTC技术中的通讯组件实现,指示信息用于指示第一终端在与第二终端建立通讯连接之后,通过目标信道接收目标资源,目标信道用于第二终端传输资源。
可选地,在发送指示信息至第一终端之前,在目标资源包括多个子资源的情况下,获取每个子资源的第二索引;发送指示信息至第一终端包括:发送携带有目标资源的每个子资源的第二索引的指示信息至第一终端。
在上述的第二索引文件中,保存有终端所缓存的子资源的第二索引,通过遍历各个第二索引文件,可确定每个子资源的第二索引。
如果在多个终端的第二索引文件中,均存在同一子资源的第二索引,可以将离第一终端较近的那个终端的第二索引文件中该子资源的第二索引发送给第一终端。
在发送指示信息至第一终端之后,为了方便其它终端及时获取资源,可保存第一终端缓存成功的子资源的第二索引至为第一终端创建的索引文件中。
为了与本申请的技术方案相适应,可以对信令服务器进行改进。信令服务器本身是轻量的,信令本身是一种类型的数据,信令机制不仅可以用来交换会话的元数据,也能用来传送应用数据,本质上是一种信息服务,结合前面的叙述,信令服务器也可以充当全局索引服务器。为了达到这一目的,需要对交换的信息的格式做改进,在上述的索引文件中,主要包括如下几部分:资源ID、房间ID、关联页面、健康度、随机链接、是否分片、分片编号。
(1)资源ID:资源的全局标识,可能并不是一个完整的资源,或是某个资源的某一块;
(2)房间ID:资源所属房间,假定同一个资源只在同一个房间内传输,隶属于某一个完整资源的各个资源块都在一个房间内;
(3)资源在哪一个页面请求时被夹在,为资源做辅助标记;
(4)健康度:即资源的分享度,当前有多个客户端在分享此资源,健康度为0的资源则需要从原始资源服务器获得;
(5)随机链接:从分享同一资源的终端中速记抽取一个,生成访问链接,供需要的终端下载,由于分块已经保证足够小,因此假定每一块只能由一个客户提供;
(6)是否分片:如果不是完整资源,此项为1,否则为0;
(7)分片编号:每一个完整的资源具有不通的编号,分片编号的规则为完整资源编号+从01开始的累加序列。
信令服务器全局保存了资源名到资源ID的映射,资源ID到房间ID(即终端集合的ID)的映射。当终端需要某个资源时,会先通过双重映射进入指定的房间,在指定房间内通过信令交换,连接建立,传输数据等一系列操作,完成资源的P2P传输。
在步骤S206或S208提供的技术方案中,在指示第一终端从第二终端获取目标资源或指示第一终端从资源服务器获取目标资源之后,可保存第一终端的标识信息与目标资源的第一索引之间的关联关系。也即将第一终端加入到终端集合中,将第一终端作为一个加速节点,便于其它终端获取第一终端上缓存的资源。
利用本申请提供的技术方案,可在尽量不破坏原有网络结构的前提下,通过增加信令服务器,在客户端页面引入加速JS组件,使得每一个终端都成为资源存储点,基于WebRTC技术簇,利用P2P技术让每一个终端成为资源的加速节点,充分利用网络的上传下载,减少固定CDN节点,减轻CDN节点的带宽压力,且完全基于现代HTML技术,无需任何插件。
根据本发明实施例,提供了一种资源的传输方法的方法实施例。
图3是根据本发明实施例的一种可选的资源的传输方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,发送对目标资源的第一请求至预设服务器,目标资源为资源服务器提供的资源;
步骤S304,接收预设服务器返回的指示信息,指示信息用于指示终端集合中是否存在缓存有目标资源的第二终端,终端集合包括请求过目标资源的多个终端,终端集合中的终端允许进行资源的缓存;
步骤S306,在终端集合中存在缓存有目标资源的第二终端的情况下,从第二终端获取目标资源;
步骤S308,在终端集合中不存在缓存有目标资源的第二终端的情况下,从资源服务器获取目标资源。
通过上述步骤S302至步骤S308,每个资源对应有一个终端集合,终端集合中的终端进行资源的缓存,在第一终端对目标资源发起第一请求时,可直接从终端集合的终端上获取目标资源,其及时性较好,且不用增加CDN服务器,可以解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题,进而达到了降低资源传输系统的改造成本的技术效果。
上述的终端集合中的终端为曾经请求过目标资源的终端,该终端可以为PC、手机、平板电脑、媒体播放器等智能设备。
上述的资源可以为静态文件,如文件、图片等,也可以为流文件,如视频流、音乐流等,还可以为其它可以在互联网上传输的资源。
上述的资源服务器可以为目标资源的源服务器,也可以是资源传输网络中的CDN加速节点,或者其它可以提供目标资源的服务器。
上述的方法可以应用于服务器上,如传输系统中的信令服务器。其应用的场景包括文件传输、直播、网络会议等场景。
终端允许通过超文件标记语言HTML进行资源的缓存是指在终端上,终端的浏览器可以通过HTML5提供的接口进行资源的缓存。
上述的方法可以应用于请求资源的终端侧。
在本申请提供的技术方案中,在第一终端与第二终端传输资源时,基于WebRTC技术实现,深度研究了其通信模块,提供了一套针对网络资源的加速解决方案,通过对页面引入一个JS文件,并配置信令服务器,就可以让任何打开页面的终端成为一个存储和上传节点,使得其他终端可以从这个终端节点获取资源,同时可以配合现存的CDN,在较小的改动下,提升资源的访问速度,在资源繁忙的时候,减少资源服务器的压力,减少带宽的消耗。加速的资源除了文件,页面,图片等静态资源外,还提供流媒体的加速,包括点播和直播。方案本身不需要设备安装特定插件,通过基于HTML 5的一些特性,移动端可以具有和PC端一样的特性,通过P2P组网技术,加大了资源的节点数。最后,改进了信令服务器,提供了双向的资源查找,减少CDN的节点,并提升了资源的加载速度。
在步骤S306提供的技术方案中,在从第二终端获取目标资源之前,可按照指示信息中携带的第二终端的标识信息与第二终端建立通讯连接,以获取第二终端用于传输资源的目标信道的信息;然后通过目标信道接收目标资源。在通过目标信道传输目标资源时,可通过WebRTC技术中的通讯组件实现。
可选地,按照指示信息中携带的第二终端的标识信息与第二终端建立通讯连接包括:在目标资源包括多个子资源的情况下,按照子资源所在的第二终端的标识信息与第二终端建立通讯连接,即多个子资源可能分别存储在多个第二终端上,那么为了获取所有的子资源,那么该第一终端就需要分别与多个第二终端连接,并分别从各个第二终端上获取一个或多个子资源。
可选地,在从第二终端获取目标资源或从资源服务器获取目标资源之后,可按照预设配置(即上述的JS文件)的指示,通过HTML中的缓存组件缓存目标资源。
在按照子资源所在的第二终端的标识信息与第二终端建立通讯连接之后,发送缓存成功的子资源的第二索引至预设服务器,缓存成功的子资源的第二索引保存至为第一终端创建的索引文件中,这样在信令服务器侧就可以利用该第二终端作为一个加速节点为别的终端进行加速。
可选地,在通过HTML中的缓存组件缓存目标资源之后,发送目标资源的第一索引与第一终端的终端标识至预设服务器,目标资源的第一索引与第一终端的终端标识之间的关联关系被预设服务器保存。
为了进一步详述本申请的实施例,下面结合具体的实施方式详述本申请的技术方案:
在网络资源加速的整套方案中,包括信令服务器的构建和终端加速组件的使用。使用时只需在终端引入加速组件(也即预设配置,可以为一个javascript文件),并配置与信令服务器之间的通信即可。配置可选择终端缓存的类型(包括静态文件,流媒体文件等),之后当终端访问过这些资源后,成为资源提供的节点之一。
需要说明的是,WebRTC是一个技术簇,包括网络通信,音频技术和视频技术等。通常用它来快速实现视频通讯服务。本申请的方案将活用其中的通信部分构建P2P网络,终端之间需要交换各自的信息才能连接到一起组成终端集合,这时候要借助信令服务来实现两个或是多个终端之间的协调沟通,由于终端的无状态性,如果信令保存在本地,当页面重载时,信令便会消失,所以需要构建信令服务器来保存信令状态,信令服务器的作用是进行消息转发和保持少量的会话状态。一般使用JSEP结构,如图4所示:
在通过终端内置的服务与云端网络进行信令交换后,浏览器客户端会尝试去连接其他客户端,然后利用WebRTC技术进行资源互通,实际使用中,设备一般会处在一个或多个NAT后面,使用了代理或是防火墙,为了克服无法获取真实的地址,可通过STUN服务器来获取外部网络地址。客户端A和B通过信令服务器构建连接的过程如图5和图6所示:
S502,客户端A初始化连接。
S504,客户端A向信令服务器发送自己的ID、请求令牌Token。
S506,信令服务器生成Token,并生成用客户端A的ID标识的信道,这样既可通过客户端A的ID来对其进行识别。
S508,信令服务器返回Token给客户端A。
S510,客户端A利用Token打开信道在客户端A侧的Socket,并监听信道。
S602,客户端B初始化连接。
S604,客户端B向信令服务器发送客户端B的ID,并请求与客户端A连接。
S606,信令服务器返回信令信息客户端B。
S608,客户端B利用信令信息请求与客户端A建立连接。
S610,客户端A回应请求,并在三次握手后建立与客户端B的连接。
S612,客户端B与客户端A进行信息传输,客户端A将缓存在localStorage中的信息传输至客户端B。
下面以不同类型的资源的共享为例详述本申请的实施例。
静态资源共享
HTML5提供了两种在客户端存储数据的新方法,localStorage和sessionStorage,sessionStorage是针对一个session数据存储,localStorage是没有时间限制的数据存储,localStorage方法存储的数据没有时间限制,第二天、第二周或下一年之后,数据依然可用,本申请即采用该方法进行资源缓存。
借助HTML5的localStorage,终端可以在浏览器缓存更多的资源,通过在加速组件中配置要缓存的文件类型,可以在终端加载到这类型资源时,直接缓存到本地存储,但是缓存到本地的资源是无法直接被其他终端访问到的,需要一台全局资源标识服务器来标记这个资源,才能被其他终端访问到,这个服务器可以是一台CDN服务器,资源共享的流程如图7所示,将这台标识服务器简称全局服务器:
步骤S702,客户端A所在的终端A缓存资源后,告知全局服务器自己所存储的资源名称与自身的连接信息;
步骤S704,全局服务器把这台终端的连接信息加入到资源映射表中;
步骤S706,客户端B所在的终端B请求同样的资源时,全局服务器会把请求定向为终端A的地址;
步骤S708,终端B通过信令服务器与终端A建立连接,由于是双向通信,终端B向终端A请求所需资源,终端A将资源发送给终端B。
在WebRTC中,信道DataChannel所能传输的数据量是有限的,对于较小的文件(小于1M),可以直接进行传输,但是对于更大的文件,则需要在终端A进行拆分传输,并在终端B重组,然后验证文件的有效性和完整性。拆分后需要将文件的属性信息单独分为一个数据块传输,或是由第一个数据块携带传输,由于网络的不确定性,发送是有序发送,接收却无法按序接收,因此需要在接收端设立缓冲区,并在发送端的每一块增加编号。文件重组后,需要使用SHA-1(Secure Hash Algorithm,译作安全散列算法)对传输文件进行完整性认证,保证获取的文件正常可用。
流媒体资源加速
为了应用于移动端,一般流媒体服务都会支持HTML5的<video>标签。提供流媒体服务,点播多是mp4或HLS协议(HTTP Live Streaming,动态码率自适应技术),直播多基于HLS协议。基于mp4的文件点播资源加速流程类似于静态资源共享,在此不再过多赘述,唯一要注意的是,如果想让视频边下载边播放,需要提早将视频的头信息和视频的分片信息发送给接收端,让接收端可以自动优先加载。
对于基于HLS的流媒体,会将源视频切分为多个ts(TS文件是一种媒体的扩展名)片段,并用m3u8文件(为ts片段建立的索引文件)索引这些片段,ts片段切分大小可控,可以将其大小控制在一次传输中完成,非常适合使用本方案来进行加速。
对于这些ts文件的缓存与上传过程类似于静态资源服务器,但是索引的方式略有不同,有以下几点补充说明:
(1)P2P的组网方式是根据资源来区分的,定义观看同一个视频的所有终端为一组,每一个组内的终端两两互相连接,不同组内的客户端不连接,当有新的终端请求某个资源的时候,它已经加入到某一个组中;
(2)在流媒体加速中,终端上传自身资源标识更新的是m3u8这个索引文件,这个索引文件一般在主资源服务器上是全局唯一的,这样可以保证其他终端访问资源时索引内容一致;
(3)通常点播使用的视频文件固定,理论上m3u8也是固定的,在当前的加速模式下,其他终端会频繁修改m3u8文件,会导致文件的不一致,因此,在点播中,会采取二级索引的方式,每一个终端的资源列表会成为一个独立的m3u8文件,然后用视频的主索引文件设置指针指向这些二级索引文件;
(4)在直播时,通常采用类似于TCP滑窗(即滑动窗口协议)的方式更新索引文件,索引文件会不停更新,因此其他终端直接写入m3u8不会出现故障;
(5)视频总的文件大小可能会超过本地缓存的大小,因此需要FIFO的方式丢弃掉最早的缓存文件。
利用本申请的方案部署之后可减少CDN节点,同时提升资源加载速度,最后资源的传输如图8所示,终端不用再像左侧图那样,每次都经过云网络进行资源传输,而是如右侧图所示,可以直接在终端之间进行资源共享。在资源服务器高峰访问时段,终端通过从其他终端结点获取网络资源,来加速资源加载,有效缓解服务阻塞压力,同是越多的终端加入,就会一定程度减少固定的CDN节点。WebRTC是无需插件的,大量的终端原生支持,且支持HTML 5的流媒体加速。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述资源的传输方法的资源的传输方装置。图9是根据本发明实施例的一种可选的资源的传输方装置的示意图,如图9所示,该装置可以包括:第一接收单元92、确定单元94、第一指示单元96以及第二指示单元98。
第一接收单元92,用于接收第一终端对目标资源的第一请求,其中,目标资源为资源服务器提供的资源;
确定单元94,用于确定与目标资源对应的终端集合,其中,终端集合包括请求过目标资源的多个终端;
第一指示单元96,用于在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;
第二指示单元98,用于在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。
需要说明的是,该实施例中的第一接收单元92可以用于执行本申请实施例1中的步骤S202,该实施例中的确定单元94可以用于执行本申请实施例1中的步骤S204,该实施例中的第一指示单元96可以用于执行本申请实施例1中的步骤S206,该实施例中的第二指示单元98可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,每个资源对应有一个终端集合,终端集合中的终端进行资源的缓存,在第一终端对目标资源发起第一请求时,可直接从终端集合的终端上获取目标资源,其及时性较好,且不用增加CDN服务器,可以解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题,进而达到了降低资源传输系统的改造成本的技术效果。
可选地,第一指示单元还用于在指示第一终端从第二终端获取目标资源之前,根据目标资源的第一索引判断终端集合中是否存在缓存有目标资源的第二终端,其中,第一请求中携带有目标资源的第一索引,终端集合中的终端允许通过超文件标记语言HTML进行资源的缓存。
具体是判断是否存在与目标资源的第一索引关联的标识信息,其中,标识信息为缓存有目标资源的至少一个第二终端的标识,在判断出存在与目标资源的第一索引关联的标识信息的情况下,确定存在缓存有目标资源的第二终端。
可选地,第一指示单元还用于发送指示信息至第一终端,其中,指示信息用于指示第一终端在与第二终端建立通讯连接之后,通过目标信道接收目标资源,目标信道用于第二终端传输资源。
上述的第一指示单元包括:获取模块,用于在目标资源包括多个子资源的情况下,获取每个子资源的第二索引;发送模块,用于发送携带有目标资源的每个子资源的第二索引的指示信息至第一终端。
可选地,第一指示单元还包括:保存模块,用于在发送指示信息至第一终端之后,保存第一终端缓存成功的子资源的第二索引至为第一终端创建的索引文件中。
可选地,该装置还包括:请求接收单元,用于接收第二终端的第二请求,其中,第二请求用于请求建立第二终端传输资源用的目标信道;信道创建单元,用于创建目标信道,并返回验证信息至第二终端,其中,验证信息为第二终端接入目标信道所使用的信息。
可选地,还装置还包括:第一保存单元,用于在指示第一终端从第二终端获取目标资源或指示第一终端从资源服务器获取目标资源之后,保存第一终端的标识信息与目标资源的第一索引之间的关联关系。
根据本发明实施例,还提供了一种用于实施上述资源的传输方法的资源的传输方装置。图10是根据本发明实施例的一种可选的资源的传输方装置的示意图,如图10所示,该装置可以包括:第一发送单元1002、第二接收单元1004、第一获取单元1006以及第二获取单元1008。
第一发送单元1002,用于发送对目标资源的第一请求至预设服务器,其中,目标资源为资源服务器提供的资源;
第二接收单元1004,用于接收预设服务器返回的指示信息,其中,指示信息用于指示终端集合中是否存在缓存有目标资源的第二终端,终端集合包括请求过目标资源的多个终端,终端集合中的终端允许通过HTML进行资源的缓存;
第一获取单元1006,用于在终端集合中存在缓存有目标资源的第二终端的情况下,从第二终端获取目标资源;
第二获取单元1008,用于在终端集合中不存在缓存有目标资源的第二终端的情况下,从资源服务器获取目标资源。
需要说明的是,该实施例中的第一发送单元1002可以用于执行本申请实施例1中的步骤S302,该实施例中的第二接收单元1004可以用于执行本申请实施例1中的步骤S304,该实施例中的第一获取单元1006可以用于执行本申请实施例1中的步骤S306,该实施例中的第二获取单元1008可以用于执行本申请实施例1中的步骤S308。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,每个资源对应有一个终端集合,终端集合中的终端进行资源的缓存,在第一终端对目标资源发起第一请求时,可直接从终端集合的终端上获取目标资源,其及时性较好,且不用增加CDN服务器,可以解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题,进而达到了降低资源传输系统的改造成本的技术效果。
可选地,第一获取单元还用于在从第二终端获取目标资源之前,方法还包括:按照指示信息中携带的第二终端的标识信息与第二终端建立通讯连接,以获取第二终端用于传输资源的目标信道的信息;通过目标信道接收目标资源。
需要说明的是,第一获取单元在按照指示信息中携带的第二终端的标识信息与第二终端建立通讯连接时,在目标资源包括多个子资源的情况下,按照子资源所在的第二终端的标识信息与第二终端建立通讯连接。
可选地,第一获取单元还用于在按照子资源所在的第二终端的标识信息与第二终端建立通讯连接之后,发送缓存成功的子资源的第二索引至预设服务器,其中,缓存成功的子资源的第二索引被预设服务器保存至为第一终端创建的索引文件中。
可选地,该装置还包括:第二保存单元,用于在从第二终端获取目标资源或从资源服务器获取目标资源之后,按照预设配置的指示,通过HTML中的缓存组件缓存目标资源。
可选地,该装置还包括:第二发送单元,用于在通过HTML中的缓存组件缓存目标资源之后,发送目标资源的第一索引与第一终端的终端标识至预设服务器,其中,目标资源的第一索引与第一终端的终端标识之间的关联关系被预设服务器保存。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例3
根据本发明实施例,还提供了一种用于实施上述资源的传输方法的服务器或终端。
图11是根据本发明实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图中仅示出一个)处理器111、存储器113、以及传输装置115(如上述实施例中的发送装置),如图11所示,该终端还可以包括输入输出设备117。
其中,存储器113可用于存储软件程序以及模块,如本发明实施例中的方法和装置对应的程序指令/模块,处理器111通过运行存储在存储器113内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器113可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器113可进一步包括相对于处理器111远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置115用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置115包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置115为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器113用于存储应用程序。
处理器111可以通过传输装置115调用存储器113存储的应用程序,以执行下述步骤:接收第一终端对目标资源的第一请求,其中,目标资源为资源服务器提供的资源;确定与目标资源对应的终端集合,其中,终端集合包括请求过目标资源的多个终端;在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。
处理器111还用于执行下述步骤:发送对目标资源的第一请求至预设服务器,其中,目标资源为资源服务器提供的资源;接收预设服务器返回的指示信息,其中,指示信息用于指示终端集合中是否存在缓存有目标资源的第二终端,终端集合包括请求过目标资源的多个终端,终端集合中的终端允许通过HTML进行资源的缓存;在终端集合中存在缓存有目标资源的第二终端的情况下,从第二终端获取目标资源;在终端集合中不存在缓存有目标资源的第二终端的情况下,从资源服务器获取目标资源。
采用本发明实施例,每个资源对应有一个终端集合,终端集合中的终端通过HTML进行资源的缓存,在第一终端对目标资源发起第一请求时,可直接从终端集合的终端上获取目标资源,其及时性较好,且不用增加CDN服务器,可以解决了相关技术中为了提升响应速度对资源传输系统进行改造的成本较高的技术问题,进而达到了降低资源传输系统的改造成本的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行资源的传输方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S11,接收第一终端对目标资源的第一请求,其中,目标资源为资源服务器提供的资源;
S12,确定与目标资源对应的终端集合,其中,终端集合包括请求过目标资源的多个终端;
S13,在终端集合中存在缓存有目标资源的第二终端的情况下,指示第一终端从第二终端获取目标资源;
S14,在终端集合中不存在缓存有目标资源的第二终端的情况下,指示第一终端从资源服务器获取目标资源。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S21,发送对目标资源的第一请求至预设服务器,其中,目标资源为资源服务器提供的资源;
S22,接收预设服务器返回的指示信息,其中,指示信息用于指示终端集合中是否存在缓存有目标资源的第二终端,终端集合包括请求过目标资源的多个终端;
S23,在终端集合中存在缓存有目标资源的第二终端的情况下,从第二终端获取目标资源;
S24,在终端集合中不存在缓存有目标资源的第二终端的情况下,从资源服务器获取目标资源。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (18)
1.一种资源的传输方法,其特征在于,包括:
预先保存第一索引文件,其中,所述第一索引文件以资源的索引为key保存所有请求过所述资源的终端的标识信息;
接收第一终端对目标资源的第一请求,其中,所述目标资源为资源服务器提供的资源;
通过查询所述第一索引文件确定与所述目标资源对应的终端集合,其中,所述终端集合包括请求过所述目标资源的多个终端;
在所述终端集合中存在缓存有所述目标资源的第二终端的情况下,指示所述第一终端从所述第二终端获取所述目标资源;
在所述终端集合中不存在缓存有所述目标资源的所述第二终端的情况下,指示所述第一终端从所述资源服务器获取所述目标资源。
2.根据权利要求1所述的方法,其特征在于,在指示所述第一终端从所述第二终端获取所述目标资源之前,所述方法还包括:
根据所述目标资源的第一索引判断所述终端集合中是否存在缓存有所述目标资源的所述第二终端,其中,所述第一请求中携带有所述目标资源的第一索引,所述终端集合中的终端允许通过超文件标记语言HTML进行资源的缓存。
3.根据权利要求2所述的方法,其特征在于,根据所述目标资源的第一索引判断所述终端集合中是否存在缓存有所述目标资源的所述第二终端包括:
判断是否存在与所述目标资源的第一索引关联的标识信息,其中,所述标识信息为缓存有所述目标资源的至少一个所述第二终端的标识,在判断出存在与所述目标资源的第一索引关联的所述标识信息的情况下,确定存在缓存有所述目标资源的所述第二终端。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,指示所述第一终端从所述第二终端获取所述目标资源包括:
发送指示信息至所述第一终端,其中,所述指示信息用于指示所述第一终端在与所述第二终端建立通讯连接之后,通过目标信道接收所述目标资源,所述目标信道用于所述第二终端传输资源。
5.根据权利要求4所述的方法,其特征在于,
在发送指示信息至所述第一终端之前,所述方法还包括:在所述目标资源包括多个子资源的情况下,获取每个所述子资源的第二索引;
发送指示信息至所述第一终端包括:发送携带有所述目标资源的每个所述子资源的第二索引的所述指示信息至所述第一终端。
6.根据权利要求5所述的方法,其特征在于,在发送指示信息至所述第一终端之后,所述方法还包括:
保存所述第一终端缓存成功的所述子资源的第二索引至为所述第一终端创建的索引文件中。
7.根据权利要求4所述的方法,其特征在于,在接收第一终端对目标资源的第一请求之前,所述方法还包括:
接收所述第二终端的第二请求,其中,所述第二请求用于请求建立所述第二终端传输资源用的所述目标信道;
创建所述目标信道,并返回验证信息至所述第二终端,其中,所述验证信息为所述第二终端接入所述目标信道所使用的信息。
8.根据权利要求1所述的方法,其特征在于,在指示所述第一终端从所述第二终端获取所述目标资源或指示所述第一终端从所述资源服务器获取所述目标资源之后,所述方法还包括:
保存所述第一终端的标识信息与所述目标资源的第一索引之间的关联关系。
9.一种资源的传输方法,其特征在于,包括:
发送对目标资源的第一请求至预设服务器,其中,所述目标资源为资源服务器提供的资源;
接收所述预设服务器返回的指示信息,其中,所述指示信息用于指示终端集合中是否存在缓存有所述目标资源的第二终端,所述终端集合包括请求过所述目标资源的多个终端,所述终端集合是通过查询预先保存的第一索引文件确定的,所述第一索引文件以资源的索引为key保存所有请求过所述资源的终端的标识信息;
在所述终端集合中存在缓存有所述目标资源的第二终端的情况下,从所述第二终端获取所述目标资源;
在所述终端集合中不存在缓存有所述目标资源的所述第二终端的情况下,从所述资源服务器获取所述目标资源。
10.根据权利要求9所述的方法,其特征在于,
在从所述第二终端获取所述目标资源之前,所述方法还包括:按照所述指示信息中携带的所述第二终端的标识信息与所述第二终端建立通讯连接,以获取所述第二终端用于传输资源的目标信道的信息;
从所述第二终端获取所述目标资源包括:通过所述目标信道接收所述目标资源。
11.根据权利要求10所述的方法,其特征在于,按照所述指示信息中携带的所述第二终端的标识信息与所述第二终端建立通讯连接包括:
在所述目标资源包括多个子资源的情况下,按照所述子资源所在的所述第二终端的标识信息与所述第二终端建立通讯连接。
12.根据权利要求11所述的方法,其特征在于,在按照所述子资源所在的所述第二终端的标识信息与所述第二终端建立通讯连接之后,所述方法还包括:
发送缓存成功的所述子资源的第二索引至所述预设服务器,其中,缓存成功的所述子资源的第二索引被所述预设服务器保存至为第一终端创建的索引文件中。
13.根据权利要求9所述的方法,其特征在于,在从所述第二终端获取所述目标资源或从所述资源服务器获取所述目标资源之后,所述方法包括:
按照预设配置的指示,通过HTML中的缓存组件缓存所述目标资源。
14.根据权利要求13所述的方法,其特征在于,在通过HTML中的缓存组件缓存所述目标资源之后,所述方法还包括:
发送所述目标资源的第一索引与第一终端的终端标识至所述预设服务器,其中,所述目标资源的第一索引与所述第一终端的终端标识之间的关联关系被所述预设服务器保存。
15.一种资源的传输装置,其特征在于,包括:
第一接收单元,用于接收第一终端对目标资源的第一请求,其中,所述目标资源为资源服务器提供的资源;
确定单元,用于通过查询预先保存的第一索引文件确定与所述目标资源对应的终端集合,其中,所述终端集合包括请求过所述目标资源的多个终端;
第一指示单元,用于在所述终端集合中存在缓存有所述目标资源的第二终端的情况下,指示所述第一终端从所述第二终端获取所述目标资源;
第二指示单元,用于在所述终端集合中不存在缓存有所述目标资源的所述第二终端的情况下,指示所述第一终端从所述资源服务器获取所述目标资源;
其中,所述装置,还用于预先保存所述第一索引文件,所述第一索引文件以资源的索引为key保存所有请求过所述资源的终端的标识信息。
16.一种资源的传输装置,其特征在于,包括:
第一发送单元,用于发送对目标资源的第一请求至预设服务器,其中,所述目标资源为资源服务器提供的资源;
第二接收单元,用于接收所述预设服务器返回的指示信息,其中,所述指示信息用于指示终端集合中是否存在缓存有所述目标资源的第二终端,所述终端集合包括请求过所述目标资源的多个终端,所述终端集合是通过查询预先保存的第一索引文件确定的,所述第一索引文件以资源的索引为key保存所有请求过所述资源的终端的标识信息;
第一获取单元,用于在所述终端集合中存在缓存有所述目标资源的第二终端的情况下,从所述第二终端获取所述目标资源;
第二获取单元,用于在所述终端集合中不存在缓存有所述目标资源的所述第二终端的情况下,从所述资源服务器获取所述目标资源。
17.一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至8,或权利要求9至14任一项中所述的方法。
18.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至8,或权利要求9至14任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611248652.2A CN108259542B (zh) | 2016-12-29 | 2016-12-29 | 资源的传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611248652.2A CN108259542B (zh) | 2016-12-29 | 2016-12-29 | 资源的传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108259542A CN108259542A (zh) | 2018-07-06 |
CN108259542B true CN108259542B (zh) | 2020-02-07 |
Family
ID=62721396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611248652.2A Active CN108259542B (zh) | 2016-12-29 | 2016-12-29 | 资源的传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108259542B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111200622B (zh) * | 2018-11-16 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种资源传输方法及装置、存储介质 |
CN111526379B (zh) * | 2019-02-03 | 2021-06-29 | 华为技术有限公司 | 数据传输方法和数据传输装置 |
CN110012068B (zh) * | 2019-03-01 | 2022-02-11 | 北京奇艺世纪科技有限公司 | 一种下载控制方法、装置及存储介质 |
CN110413241A (zh) * | 2019-06-18 | 2019-11-05 | 北京世纪超星信息技术发展有限责任公司 | 一种在资源运行时提高缓存速度的方法 |
CN110958648B (zh) * | 2019-11-20 | 2022-04-19 | 珠海格力电器股份有限公司 | 一种资源共享的方法及装置 |
CN111211991B (zh) * | 2019-12-31 | 2022-06-28 | 联想(北京)有限公司 | 一种资产处理方法、系统及终端设备 |
CN111294617A (zh) * | 2020-02-13 | 2020-06-16 | 深圳市云歌人工智能技术有限公司 | 视频播放的方法、装置以及存储介质 |
CN111405685B (zh) * | 2020-02-20 | 2022-04-15 | 北京三快在线科技有限公司 | 网络资源处理方法、装置、射频通信系统及存储介质 |
CN113691438B (zh) * | 2020-05-19 | 2023-05-19 | 腾讯科技(深圳)有限公司 | 即时消息的处理方法、装置、设备及存储介质 |
CN112968959B (zh) * | 2021-02-20 | 2022-11-04 | 网宿科技股份有限公司 | 一种资源请求方法及终端 |
EP4075691B1 (en) | 2021-02-20 | 2024-05-01 | Wangsu Science & Technology Co., Ltd. | Resource requesting method and terminal |
CN113391855A (zh) * | 2021-06-18 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种信息处理方法及装置、存储介质 |
CN115865941A (zh) * | 2023-02-15 | 2023-03-28 | 花瓣云科技有限公司 | 丢包重传方法、分组确定方法、装置、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936891A (zh) * | 2005-09-23 | 2007-03-28 | 腾讯科技(深圳)有限公司 | 一种网络搜索系统及其实现方法 |
WO2009076251A3 (en) * | 2007-12-13 | 2009-11-19 | General Electric Company | Accelerating peer-to-peer content distribution |
CN103023928A (zh) * | 2013-01-11 | 2013-04-03 | 乐视网信息技术(北京)股份有限公司 | 一种p2p节点匹配系统及方法 |
CN103634692A (zh) * | 2013-12-06 | 2014-03-12 | 南京理工大学连云港研究院 | 基于cdn和p2p的混合流媒体视频点播系统 |
CN104967685A (zh) * | 2015-06-25 | 2015-10-07 | 广东德诚网络科技有限公司 | 基于Flash P2P的流媒体多级缓存网络加速方法 |
CN105872044A (zh) * | 2016-03-30 | 2016-08-17 | 华南理工大学 | 基于WebRTC的流媒体多级缓存网络加速系统和方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729273A (zh) * | 2008-10-27 | 2010-06-09 | 中国移动通信集团公司 | 一种流媒体分发系统、方法及装置 |
CN101741869B (zh) * | 2008-11-07 | 2013-04-24 | 华为技术有限公司 | 提供内容的方法和系统 |
CN101938505B (zh) * | 2009-07-01 | 2013-01-30 | 华为技术有限公司 | 一种P2P流媒体数据分发的方法、系统和proxy节点 |
CN102081633A (zh) * | 2009-11-27 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种JavaScript文件的管理方法、装置和系统 |
CN102076023B (zh) * | 2010-10-08 | 2013-01-16 | 电信科学技术研究院 | 缓存空间的分配方法和设备 |
CN103039104B (zh) * | 2011-08-05 | 2015-07-08 | 华为技术有限公司 | 盲检测方法及装置 |
-
2016
- 2016-12-29 CN CN201611248652.2A patent/CN108259542B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936891A (zh) * | 2005-09-23 | 2007-03-28 | 腾讯科技(深圳)有限公司 | 一种网络搜索系统及其实现方法 |
WO2009076251A3 (en) * | 2007-12-13 | 2009-11-19 | General Electric Company | Accelerating peer-to-peer content distribution |
CN103023928A (zh) * | 2013-01-11 | 2013-04-03 | 乐视网信息技术(北京)股份有限公司 | 一种p2p节点匹配系统及方法 |
CN103634692A (zh) * | 2013-12-06 | 2014-03-12 | 南京理工大学连云港研究院 | 基于cdn和p2p的混合流媒体视频点播系统 |
CN104967685A (zh) * | 2015-06-25 | 2015-10-07 | 广东德诚网络科技有限公司 | 基于Flash P2P的流媒体多级缓存网络加速方法 |
CN105872044A (zh) * | 2016-03-30 | 2016-08-17 | 华南理工大学 | 基于WebRTC的流媒体多级缓存网络加速系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108259542A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108259542B (zh) | 资源的传输方法和装置 | |
CN109640348B (zh) | 多业务mec网络架构、多业务数据流的处理方法及装置 | |
US10491657B2 (en) | Network acceleration method, apparatus and device based on router device | |
JP6008467B2 (ja) | コンテンツセントリックネットワーク上のセッションマイグレーション | |
CN106254951B (zh) | 一种视频直播创建方法及其系统、接入设备、管理设备 | |
KR102110421B1 (ko) | 클라이언트 장치에 시청각 컨텐츠를 전달하는 시스템 및 방법 | |
CN104980482A (zh) | 文件发送方法及装置、文件接收方法及装置 | |
US9479607B2 (en) | Content caching and delivering system with traffic of repetitively requested content reduced | |
US9356985B2 (en) | Streaming video to cellular phones | |
CN104093064A (zh) | 在终端设备之间进行视频互动的方法、系统及装置 | |
WO2014154108A1 (zh) | 媒体流的转移方法和用户设备 | |
US20170041422A1 (en) | Method and system for retrieving a content manifest in a network | |
CN103581765A (zh) | 一种报文转发的方法和设备 | |
WO2023103318A1 (zh) | 媒体流传输方法和系统 | |
US20240022520A1 (en) | Network Connection Handoff | |
WO2017113816A1 (zh) | 一种对等网络连接方法及装置 | |
US20140282788A1 (en) | System for controlling video distribution in response to a request on reduced video data traffic and a method therefor | |
CN106027555B (zh) | 一种采用sdn技术改善内容分发网络安全性的方法及系统 | |
US20150074234A1 (en) | Content system and method for chunk-based content delivery | |
EP3079328B1 (en) | Media resource sharing method, shared server and shared system | |
CN116800765A (zh) | P2p点对点数据节流加速实现方法、装置和存储介质 | |
US20130080501A1 (en) | Method for transmitting real-time video data over network | |
US20160285946A1 (en) | Qos improvement method, apparatus, and system | |
CN106657039B (zh) | Portal页面获取方法、无线AP及Portal服务器 | |
CN101764829A (zh) | 浏览器获得网络资源的方法及浏览器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |