CN114553886A - 数据传输方法和通信装置 - Google Patents
数据传输方法和通信装置 Download PDFInfo
- Publication number
- CN114553886A CN114553886A CN202011249398.4A CN202011249398A CN114553886A CN 114553886 A CN114553886 A CN 114553886A CN 202011249398 A CN202011249398 A CN 202011249398A CN 114553886 A CN114553886 A CN 114553886A
- Authority
- CN
- China
- Prior art keywords
- end node
- data
- time
- message
- send
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 351
- 238000000034 method Methods 0.000 title claims abstract description 118
- 238000004891 communication Methods 0.000 title claims abstract description 86
- 230000003111 delayed effect Effects 0.000 claims abstract description 225
- 238000012545 processing Methods 0.000 claims description 108
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 80
- 238000007726 management method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000135164 Timea Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- 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/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据传输方法和通信装置,该方法可应用于对等式P2P网络中的数据传输或者数据分发场景,该方法包括:第一端节点向第二端节点发送延迟传输信息;该延迟传输信息指示该第一端节点向该第二端节点延迟发送第一数据的时间信息;该第一端节点确定第二端节点接受延迟传输信息时,通过延迟向第二端节点发送第一数据的方式,缓解自身负载量,可以解决大规模并发数据请求造成的网络拥塞问题;或者,该第一端节点确定第二端节点拒绝延迟传输信息时,取消传输第一数据,可以减少数据的冗余传输,并减轻自身负载。
Description
技术领域
本申请涉及数据传输领域,尤其涉及一种数据传输方法和通信装置。
背景技术
对等式网络(Peer to Peer,P2P)是无中心服务器、依靠用户群(peers)交换信息的互联网体系。它的作用在于,减低以往网络传输中的端节点,以降低数据丢失的风险。与有中心服务器的中央网络系统(对应于集中式架构)不同,对等式网络的每个用户端既是一个端节点,也有服务器的功能。在对等式网络中,用户(即终端)之间可以直接通信、共享资源、协同工作,终端资源能够被充分利用起来。
与集中式架构相比,基于P2P传输技术的分步式架构可以避免单点故障、避免三角路由,实现更高的可靠性和更好的可扩展性,且更容易部署。当前采用的一种基于P2P传输技术的分布式传输方案如下:请求端节点向邻居端节点广播数据请求,当多个数据源端节点(即存储有该数据请求对应的数据的端节点)收到该数据请求时,会同时发送数据给请求端节点。在该传输方案中,会导致数据的冗余传输,增加网络负担。因此,需要研究如何减少数据的冗余传输以降低网络负载的传输方案。
发明内容
本申请实施例公开了一种数据传输方法和通信装置,能减少数据的冗余传输以降低网络负载的传输方案。
第一方面,本申请实施例提供了一种数据传输方法,该方法包括:第一端节点向第二端节点发送延迟传输信息;所述延迟传输信息指示所述第一端节点将向所述第二端节点发送第一数据的第一时间信息;所述第一端节点确定所述第二端节点接受所述延迟传输信息;所述第一端节点根据所述第一时间信息在目标时间向所述第二端节点发送所述第一数据,所述目标时间为根据所述第一时间信息确定;或者,所述第一端节点确定所述第二端节点拒绝所述延迟传输信息,所述第一端节点取消传输所述第一数据。
所述第一时间信息可以是一个时间点(对应于绝对时间),也可以是一个时长(对应于相对时间)。例如,第一时间信息为第一端节点预估的向第二端节点发送第一数据的时间点(即一个时刻)。又例如,第一时间信息为一个时长,该时长为第二端节点接收到延迟传输信息的时刻(对应于第一端节点发送延迟传输信息的时刻)与第一端节点向该第二端节点发送第一数据的时刻之间的时长。所述目标时间可以是根据所述第一时间信息确定的待向所述第二端节点发送所述第一数据的时间点。所述第一端节点确定所述第二端节点接受所述延迟传输信息可理解为所述第一端节点确定所述第二端节点同意所述第一端节点向所述第二端节点发送所述第一数据。所述第一端节点确定所述第二端节点拒绝所述延迟传输信息可理解为所述第一端节点确定所述第二端节点拒绝所述第一端节点向所述第二端节点发送所述第一数据。第一端节点确定第二端节点接受或者拒绝,具体可以表现为第一端节点按照预设的交互策略判断第二端节点是接受还是拒绝传输延迟信息,如,具体可以表现为,接收到第二端节点发送的拒绝消息则认为拒绝了所述传输延迟信息,接收到第二端节点发送的通知消息通知已接收或者明确告知同意接收,则认为接受了所述传输延迟信息。也可以是其他的策略,比如,预设时间内没有接收到来自第二端节点的响应消息则认为第二端节点接受所述传输延迟信息,或者也可以预设时间内没有接收到来自第二端节点的响应消息则认为第二端节点拒绝所述传输延迟信息,具体策略可以根据方案的实现来具体设定第一端节点确定第二端节点接受还是拒绝的判断逻辑。第一端节点在确定第二端节点拒绝第一端节点发送第一数据的情况下,取消传输该第一数据,可以减少数据的冗余传输。第一端节点在确定第二端节点接受第一端节点发送第一数据的情况下,延迟向该第二端节点发送第一数据,可以减轻负载,并提高资源利用率。
本申请实施例中,第一端节点在确定第二端节点接受延迟传输信息的情况下,在目标时间向第二端节点发送第一数据,可以减轻负载;第一端节点在确定第二端节点拒绝延迟传输信息的情况下,取消传输第一数据;可以减少数据的冗余传输,并减轻自身负载。
在一种可能的实现方式中,所述第一端节点取消传输所述第一数据之前,所述方法还包括:所述第一端节点创建向所述第二端节点发送所述第一数据的发送任务;所述第一端节点取消传输所述第一数据包括:所述第一端节点取消所述发送任务。
所述第一端节点取消所述发送任务可以是所述第一端节点删除所述发送任务。可选的,所述第一端节点在接收来自所述第二端节点的数据请求之后,创建向所述第二端节点发送所述第一数据的发送任务,所述数据请求用于获取所述第一数据。也就是说,第一端节点在接收到来自第二端节点的一个数据请求之后,就会创建向该第二端节点发送该数据请求所请求的数据的发送任务;该第一端节点在确定该第二端节点拒绝延迟传输信息的情况下,取消该发送任务;其中,该延迟传输信息指示该第一端节点向该第二端节点发送该数据请求所请求的数据的时间信息。在该实现方式中,第一端节点在接收到一个数据请求之后,创建发送该数据请求所请求的数据的发送任务;如果确定不发送该数据请求所请求的数据,则删除该发送任务,否则,执行该发送任务(即发送该数据请求所请求的数据)。应理解,在该实现方式中,第一端节点只要接收到数据请求,就创建发送给该数据请求所请求的数据的发送任务,即接收到数据请求默认创建发送给该数据请求所请求的数据的发送任务。
在该实现方式中,第一端节点在接收到数据请求之后,就创建发送该数据请求所请求的数据的发送任务,而不是在发送该数据之前再创建该发送任务;可以更快地发送数据。
在一种可能的实现方式中,所述第一端节点取消传输所述第一数据包括:所述第一端节点不创建向所述第二端节点发送所述第一数据的发送任务。
在该实现方式中,第一端节点在确定第二端节点接受延迟传输信息之后,创建并执行向所述第二端节点发送所述第一数据的发送任务。第一端节点确定第二端节点拒绝延迟传输信息之后,不创建向所述第二端节点发送所述第一数据的发送任务。也就是说,第一端节点确定发送某数据(对应于接受延迟传输信息)之后,才创建发送该数据的发送任务,这样可以减少创建发送任务的操作。
在该实现方式中,第一端节点确定第二端节点拒绝延迟传输信息,该第一端节点不创建向该第二端节点发送第一数据的发送任务,可以减少创建发送任务的操作。
在一个可能的实现方式中,所述第一端节点确定所述第二端节点接受所述延迟传输信息包括:所述第一端节点接收来自所述第二端节点的第一消息,所述第一消息为所述第二端节点在接收到所述延迟传输信息后发送;所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据。应理解,第一指示信息可以为明确的指示同意第一端节点发送第一数据的内容,第一指示信息可以是其他约定好的表示同意的指示消息,例如第一指示消息可以是确认接收消息,当第一端节点接收到的第一消息中包括确认延迟传输信息被接收的消息即认为是指示第二端节点同意第一端节点发送第一数据。
所述第一消息可以是确认消息,例如确认字符(acknowledge character,ACK),该确认消息表示接受所述延迟传输信息;也可以是同意消息,该同意消息表示同意第一端节点发送所述第一数据,例如端节点之间约定的一种消息;也可以是其他类型的指示消息,用于指示第一端节点发送所述第一数据,例如包括第一数据的确认发送时间、第二端节点的标识等内容的指示消息。第一数据的确认发送时间可以是第二端节点指示的第一端节点发送第一数据的时间。
在该实现方式中,第一端节点根据第一消息可快速、准确地确定第二端节点接受延迟传输信息。
在一个可能的实现方式中,所述第一端节点确定所述第二端节点接受所述延迟传输信息包括:所述第一端节点在发送所述延迟传输信息后的第一时长内未接收到来自所述第二端节点的第三消息的情况下,确定所述第二端节点接受所述延迟传输信息;所述第三信息中包括第三指示信息,所述第三指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
所述第三消息可以是否认消息,例如否认字符(negative acknowledge,NACK),该否认消息表示拒绝所述延迟传输信息;也可以是拒绝消息,该拒绝消息表示拒绝第一端节点发送所述第一数据,例如端节点之间约定的一种消息;也可以是其他类型的指示消息,用于指示第一端节点不发送所述第一数据,例如包括延迟传输信息的标识、第二端节点的标识等内容的指示消息。应理解,第三消息中可以包括指示第二端节点拒绝第一端节点发送第一数据的内容,第三消息也可以是一种端节点间约定的一种消息,即第三消息中不必明确包含拒绝第一端节点发送第一数据的内容。
在该实现方式中,第一端节点不需要第二端节点发送消息就能确定该第二端节点接受延迟传输信息,可以减少信令消耗,实现简单。
在一个可能的实现方式中,所述第一端节点确定所述第二端节点拒绝所述延迟传输信息包括:所述第一端节点接收来自所述第二端节点的第二消息,所述第二消息为所述第二端节点在接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
所述第二消息可以是否认消息,例如NACK,该否认消息表示拒绝所述延迟传输信息;也可以是拒绝消息,该拒绝消息表示拒绝第一端节点发送所述第一数据,例如端节点之间约定的一种消息;也可以是其他类型的指示消息,用于指示第一端节点不发送所述第一数据,例如包括延迟传输信息的标识、第二端节点的标识等内容的指示消息。应理解,第二消息中的第二指示信息可以为包括指示拒绝第一端节点发送第一数据的内容,第二指示信息也可以是一种端节点间约定的一种信息内容,即第二消息中不必明确包含指示拒绝第一端节点发送第一数据的内容。
在该实现方式中,第一端节点根据第二消息可快速、准确地确定第二端节点拒绝延迟传输信息。
在一个可能的实现方式中,所述第一端节点确定所述第二端节点拒绝所述延迟传输信息包括:所述第一端节点在发送所述延迟传输信息后的第二时长内未接收到来自所述第二端节点的第四消息的情况下,确定所述第二端节点拒绝所述延迟传输信息;所述第四信息中包括第四指示信息,所述第四指示信息用于指示所述第二端节点同意所述第一端节点发送所述第一数据。
所述第四消息可以是确认消息,例如ACK,该确认消息表示接受所述延迟传输信息;也可以是同意消息,该同意消息表示同意第一端节点发送所述第一数据,例如端节点之间约定的一种消息;也可以是其他类型的指示消息,用于指示第一端节点发送所述第一数据,例如包括第一数据的确认发送时间、第二端节点的标识等内容的指示消息。第一数据的确认发送时间可以是第二端节点指示的第一端节点发送第一数据的时间。
在该实现方式中,第一端节点不需要第二端节点发送消息就能确定该第二端节点拒绝延迟传输信息,可以减少信令消耗。
在一个可能的实现方式中,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
第二端节点可根据数据凭证验证所述第一端节点的身份,避免恶意端节点的干扰,提高安全性。在该实现方式中,延迟传输信息为一个数据凭证,通过该数据凭证可验证第一端节点的身份,能够提高数据传输的安全性。
在一个可能的实现方式中,在第一端节点向第二端节点发送延迟传输信息之前,所述方法还包括:所述第一端节点根据负载量,确定第一延迟时间信息;所述第一延迟时间信息根据所述负载量获得;所述第一端节点根据所述第一延迟时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第一延迟时间信息获取。
所述负载量可以是所述第一端节点当前待发送的数据量,例如位于发送队列中的数据的数据量。所述第一延迟时间信息可以是一个时长,也可以是一个时间点。所述第一端节点根据负载量,确定第一延迟时间信息可以是所述第一端节点根据负载量,预估发送所述第一数据的时间点,得到所述第一延迟时间信息,所述第一延迟时间信息指示该时间点;还可以是所述第一端节点根据负载量,计算延迟时长,得到所述第一延迟时间信息;其中,所述第一延迟时间信息为该延迟时长,即第一端节点发送第一数据的时刻与当前时刻(即确定第一延迟时间信息的时刻)之间的时长。
在该实现方式中,根据负载量可较准确地确定第一延迟时间信息。
在一个可能的实现方式中,所述第一端节点根据负载量,确定第一延迟时间信息的计算方式如下:
其中,rt1为第一延迟时间信息,i表示第一端节点,j表示第二端节点,f和f′为端节点i(即第一端节点)的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量(即当前待发送的数据量),UBi是端节点i的发送带宽(即向其他端节点发送数据的带宽),Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。
在该实现方式中,可准确地计算出第一延迟时间信息。
在一个可能的实现方式中,所述第一端节点根据负载量,确定第一延迟时间信息包括:所述第一端节点在存储有所述第一数据且所述负载量大于负载阈值的情况下,根据所述负载量确定所述第一延迟时间信息。
在该实现方式中,在负载量大于负载阈值时,延迟发送第一数据;可以有效减少负载。
在一个可能的实现方式中,在第一端节点向第二端节点发送延迟传输信息之前,所述方法还包括:所述第一端节点根据第二时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第二时间信息获取;所述第二时间信息为预估的所述第一端节点获得所述第一数据的时间信息。
所述第二时间信息可以是所述第一端节点预估的从其他端节点接收到所述第一数据的时间。举例来说,第一端节点接收到某个端节点发送的指示向该第一端节点发送第一数据的时间信息,该第一端节点可根据该时间信息预估从该端节点接收到第一数据的第二时间信息。所述第一端节点根据第二时间信息,生成所述延迟传输信息可以是:所述第一端节点根据所述第二时间信息,确定第二延迟时间信息;所述第一端节点根据所述第二延迟时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第二延迟时间信息获取。
所述第一端节点在未存储有所述第一数据的情况下,根据所述第二时间信息,确定第二延迟时间信息。所述第二时间信息可以为所述第一端节点预估(或获取)的所述第一端节点获得所述第一数据的时间点;也可以是预估(或获取)的当前时刻至所述第一端节点接收到所述第一数据的时刻之间的时长。所述第二延迟时间信息可以为所述第一端节点根据所述第二时间信息预估(或计算)的发送第一数据的时间点;也可以是所述第一端节点根据所述第二时间信息预估(或计算)的发送第一数据的延迟时长,即第一端节点发送第一数据的时刻与当前时刻之间的时长。
在该实现方式中,第一端节点根据第二时间信息可以较准确地预估发送第一数据的时间。
在一个可能的实现方式中,所述第一端节点根据第二时间信息,确定第二延迟时间信息的计算公式如下:
其中,rt2为第二延迟时间信息,rt[i-1]为预估的当前时刻至所述第一端节点获得所述第一数据的时刻之间的时长,i表示第一端节点,j表示第二端节点,f和f′为端节点i的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量,UBi是端节点i的发送带宽,Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。应理解,rt[i-1]可理解为第一端节点确定第二延迟时间信息的时刻与第一端节点接收到第一数据的时刻之间的时长。
在该实现方式中,既考虑获得第一数据的时刻,又考虑了当前负载,可准确地计算出第二延迟时间信息。
在一个可能的实现方式中,所述方法还包括:所述第一端节点接收用于获取第二数据的数据请求;所述第一端节点在未存储有所述第二数据且未待获得所述第二数据的情况下,拒绝所述数据请求。
拒绝所述数据请求可以是忽略所述数据请求,即不针对所述数据请求做任何操作;也可以是向发送数据请求的端节点发送指示第一端节点拒绝所述数据请求的指示信息。
在该实现方式中,第一端节点在未存储有第二数据且未待获得第二数据的情况下,拒绝数据请求;可以减少不必要的操作。
在一个可能的实现方式中,所述未存储有所述第二数据且未待获得所述第二数据的情况包括;未存储有所述第二数据且未存储有第一数据凭证;所述第一数据凭证为除任意端节点待向所述第一端节点发送所述第二数据的凭证。
在该实现方式中,可准确、快速地确定是否待获得第二数据。
在一个可能的实现方式中,所述第一端节点在参考时间,开始监测是否具备向所述第二端节点发送所述第一数据的条件,所述参考时间为所述延迟传输信息指示的所述第一端节点向所述第二端节点发送第一数据的时间点;若所述第一端节点具备向第二端节点发送所述第一数据的条件,则在所述参考时间(对应于目标时间)向所述第二端节点发送所述第一数据;若所述第一端节点不具备向所述第二端节点发送所述第一数据的条件,继续监测所述第一端节点是否具备向所述第二端节点发送所述第一数据的条件,并在所述第一端节点具备向所述第二端节点发送所述第一数据的条件时(对应于所述目标时间)向所述第二端节点发送所述第一数据。举例来说,第一端节点在达到参考时间(一个时间点)时,开始监测第一端节点的端节点负载;在第一端节点的端节点负载小于负载阈值的目标时间开始向第一端节点发送所述第一数据。
为了避免第一端节点在参考时间时不具备向第二端节点发送上述第一数据的条件,第一端节点可在具备向第二端节点发送第一数据的条件时向第二端节点发送第一数据,可以保证数据传输的可靠性。
第二方面,本申请实施例提供了一种数据传输方法,该方法包括:第二端节点发送第一消息,所述第一消息为接收到延迟传输信息后发送,所述延迟传输消息为第一端节点发送的,所述延迟传输信息指示所述第一端节点将向所述第二端节点发送第一数据的第一时间信息,所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据;或者,所述第二端节点发送第二消息,所述第二消息为接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
所述第一消息可以是确认消息,例如ACK,该确认消息表示接受所述延迟传输信息;也可以是同意消息,该同意消息表示同意第一端节点发送所述第一数据,例如端节点之间约定的一种消息;也可以是其他类型的指示消息,用于指示第一端节点发送所述第一数据,例如包括第一数据的确认发送时间、第二端节点的标识等内容的指示消息。第一数据的确认发送时间可以是第二端节点指示的第一端节点发送第一数据的时间。
所述第二消息可以是否认消息,例如NACK,该否认消息表示拒绝所述延迟传输信息;也可以是拒绝消息,该拒绝消息表示拒绝第一端节点发送所述第一数据,例如端节点之间约定的一种消息;也可以是其他类型的指示消息,用于指示第一端节点不发送所述第一数据,例如包括延迟传输信息的标识、第二端节点的标识等内容的指示消息。应理解,第二消息中可以包括指示拒绝第一端节点发送第一数据的内容,第二信息也可以是一种端节点间约定的一种消息,即第二消息中不必明确包含拒绝第一端节点发送第一数据的内容。
应理解,第二端节点在根据延迟传输信息,确定第一端节点不能及时提供第一数据时,发送第二消息,可以避免第一端节点向其发送数据,减少数据的冗余传输;在根据延迟传输信息,确定第一端节点能及时提供第一数据时,发送第一消息,可以快速获得第一数据,数据获取效率较高。
本申请实施例中,第二端节点根据延迟传输信息发送第一消息,能够较快地获取所需的数据;根据延迟传输信息发送第二消息,能够减少数据的冗余传输。
在一个可能的实现方式中,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
在该实现方式中,第二端节点可利用数据凭证验证第一端节点的身份,提高安全性。
在一个可能的实现方式中,所述第二端节点发送所述第一消息之前,所述方法还包括:当所述第一端节点的信用值大于第三端节点的信用值,所述第二端节点确定发送所述第一消息;所述第三端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
所述第一端节点可同意一个或者多个端节点向其发送第一数据。举例来说,当第二端节点同意某个端节点向其发送第一数据之后,可继续同意其他端节点向其发送第一数据。在一种可能的实现方式中,第二端节点在已同意至少一个端节点(例如第三端节点)向其发送第一数据的情况下,第二端节点可根据第一端节点和该至少一个端节点的信用值,确定是否发送第一消息,即是否同意第一端节点向其发送第一数据。在一个可能的实现方式中,所述第二端节点确定发送所述第一消息之后,向所述第三端节点发送第五消息;所述第五消息中包括第三指示信息,所述第三指示信息用于指示所述第二端节点拒绝所述第三端节点发送所述第一数据;这样避免第三端节点发送第一数据。应理解,第二端节点可以不通知第三端节点取消传输第一数据,即不向第三端节点发送所述第五消息。在该实现方式中,所述第二端节点确定发送所述第一消息之后,等待所述第一端节点向其发送所述第一数据,不再等待所述第三端节点向其发送所述第一数据。对于第二端节点来说,相当于仅同意第一端节点向其发送第一数据。
一个端节点的信用值越大,表明该端节点按照约定发送数据的概率越高。在该实现方式中,第二端节点可比较第一端节点的信用值和第三端节点的信用值,当该第一端节点的信用值大于该第三端节点的信用值,就确定发送第一消息。也就是说,第二端节点仅判断第一端节点的信用值是否大于第三端节点的信用值就能确定是否发送第一消息。当第一端节点的信用值大于第三端节点的信用值,第二端节点确定发送第一消息可理解为第二端节点同意信用值更高的第一端节点向其发送第一数据,以便提高获得第一数据的概率。
在一个可能的实现方式中,所述第二端节点发送所述第一消息之前,所述方法还包括:当所述第一端节点的信用值大于第三端节点的信用值,且所述第一端节点的信用值与所述第三端节点的信用值之差大于信用阈值,所述第二端节点确定发送所述第一消息;所述第三端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
所述信用阈值可以为一个大于0的实数,可根据实际情况设置。第二端节点可先判断第一端节点的信用值是否大于第三端节点的信用值;当第一端节点的信用值大于第三端节点的信用值,再判断第一端节点的信用值与第三端节点的信用值之差是否大于信用阈值。第二端节点可判断第一端节点的信用值与第三端节点的信用值之差是否大于信用阈值,若是,则确定发送所述第一消息。第一端节点的信用值与第三端节点的信用值之差是指第一端节点的信用值减去第三端节点的信用值,得到的信用值。第二端节点可先判断第一端节点的信用值与第三端节点的信用值之差的绝对值是否大于信用阈值;若是,再判断第一端节点的信用值是否大于第三端节点的信用值;当第一端节点的信用值大于第三端节点的信用值,确定发送第一消息。应理解,第二端节点的处理机制可以是先判断第一端节点的信用值和第三端节点的信用值的大小,再判断这两个信用值的差值;还可以是先判断这两个信用值的差值,再判断这两个信用值的大小。
在该实现方式中,第一端节点选择信用值较高的端节点向其发送第一数据,可以提高获取第一数据的可靠性。
在一个可能的实现方式中,所述第二端节点发送所述第一消息之前,所述方法还包括:当第一时间早于第二时间,所述第二端节点确定发送所述第一消息;所述第一时间为第一端节点待向所述第二端节点发送所述第一数据的时间,所述第二时间为第四端节点待向所述第二端节点发送所述第一数据的时间,所述第四端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。所述第四端节点可以是所述第三端节点,也可以是其他端节点。
所述第一时间可以为所述第二端节点根据所述第一时间信息获得,所述第二时间可以为根据第三时间信息获得,所述第三时间信息为来自所述第四端节点的指示所述第四端节点向所述第二端节点发送第一数据的时间信息。举例来说,第二端节点接受来自第四端节点的第一延迟传输信息,该第一延迟传输信息指示第四端节点向第二端节点发送第一数据的第三时间信息,该第二端节点根据该第三时间信息获得第二时间。应理解,第二端节点获得第一时间和第二时间的方式相似。第二端节点在同意第四端节点向其发送第一数据之后,当第一端节点待向其发送第一数据的第一时间早于第四端节点待向其发送第一数据的第二时间时,确定发送第一消息(即同意第一端节点向其发送第一数据);可以更快地接收到第一数据。
在一个可能的实现方式中,所述当第一时间早于第二时间,所述第二端节点确定发送所述第一消息包括:当所述第一端节点的信用值与所述第四端节点的信用值的差值的绝对值小于信用阈值,且所述第一时间早于所述第二时间,确定发送所述第一消息。
第二端节点可先判断所述第一时间是否早于所述第二时间,再判断所述第一端节点的信用值与所述第四端节点的信用值的差值的绝对值是否小于信用阈值;还可以先判断所述第一端节点的信用值与所述第四端节点的信用值的差值的绝对值是否小于信用阈值,再判断所述第一时间是否早于所述第二时间。
在该实现方式中,第二端节点在第一端节点的信用值和第四端节点的信用值之差的绝对值小于信用阈值时,确定接受发送时间更早的第一端节点,可以更快地获得所需的第一数据。
在一个可能的实现方式中,所述当所述第一端节点的信用值与所述第四端节点的信用值的差值的绝对值小于信用阈值,且所述第一时间早于所述第二时间,确定发送所述第一消息之前,所述方法还包括:所述第二端节点在存储有所述第四端节点待向所述第二端节点发送所述第一数据的数据凭证的情况下,获取所述第四端节点的信用值。
应理解,若第二端节点未存储有任意端节点向第二端节点发送第一数据的数据凭证,则第二端节点可以直接接受第一端节点向其发送第一数据,不需要获取任意端节点的信用值。第二端节点通过查询是否存储有待向第二端节点发送第一数据的凭证,可以减少获取端节点的信用值的操作。
在一个可能的实现方式中,所述第二端节点发送第一消息之前,所述方法还包括:所述第二端节点在未存储有任一端节点待向所述第二端节点发送所述第一数据的凭证的情况下,确定发送所述第一消息。
在该实现方式中,第二端节点可以及时通知第一端节点向其发送第一数据。
在一个可能的实现方式中,所述第二端节点发送第二消息之前,所述方法还包括:当所述第一端节点的信用值不大于第五端节点的信用值,所述第二端节点确定发送所述第二消息;所述第五端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
在该实现方式中,第一端节点选择信用值较高的端节点向其发送第一数据,可以提高获取第一数据的可靠性。
在一个可能的实现方式中,所述第二端节点发送第二消息之前,所述方法还包括:当所述第一端节点的信用值不大于第五端节点的信用值,且所述第一端节点的信用值与所述第三端节点的信用值之差的绝对值大于信用阈值,所述第二端节点确定发送所述第二消息;所述第五端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
所述信用阈值可以为一个大于0的实数,可根据实际情况设置。第二端节点可先判断第一端节点的信用值是否不大于第五端节点的信用值;当第一端节点的信用值不大于第五端节点的信用值,再判断第一端节点的信用值与第五端节点的信用值之差的绝对值是否大于信用阈值。第二端节点可先判断第一端节点的信用值与第五端节点的信用值之差的绝对值是否大于信用阈值;若是,再判断第一端节点的信用值是否不大于第五端节点的信用值;当第一端节点的信用值不大于第五端节点的信用值,确定发送第一消息。应理解,第二端节点的处理机制可以是先判断第一端节点的信用值和第五端节点的信用值的大小,再判断这两个信用值的差值;还可以是先判断这两个信用值的差值,再判断这两个信用值的大小。
在一个可能的实现方式中,所述第二端节点发送第二消息之前,所述方法还包括:当第一时间不早于第三时间,确定发送所述第二消息;所述第一时间为所述第一端节点待向所述第二端节点发送所述第一数据的时间,所述第三时间为第六端节点待向所述第二端节点发送所述第一数据的时间,所述第六端节点为所述第二端节点同意的待向所述第二端节点发送所述第一数据的端节点。
所述第一时间可以为所述第二端节点根据所述第一时间信息获得,所述第四时间可以为根据第四时间信息获得,所述第四时间信息为来自所述第六端节点的指示所述第六端节点向所述第二端节点发送第一数据的时间信息。举例来说,第二端节点接受来自第六端节点的第二延迟传输信息,该第二延迟传输信息指示第六端节点向第二端节点发送第一数据的第四时间信息,该第二端节点根据该第四时间信息获得第三时间。应理解,第二端节点获得第一时间和第三时间的方式相似。
可以理解,第一时间不早于第三时间表明第一端节点向第二端节点发送第一数据的时间晚于第六端节点向第二端节点发送第一数据的时间,第二端节点确定发送第二消息;可以避免数据冗余传输。
在一个可能的实现方式中,当第一时间不早于第三时间,确定发送所述第二消息包括:当所述第一端节点的信用值与所述第六端节点的信用值的差值的绝对值小于信用阈值,且所述第一时间不早于所述第三时间,确定发送所述第二消息。
第二端节点可先判断所述第一时间是否早于所述第三时间,再判断所述第一端节点的信用值与所述第六端节点的信用值的差值的绝对值是否小于信用阈值;还可以先判断所述第一端节点的信用值与所述第六端节点的信用值的差值的绝对值是否小于信用阈值,再判断所述第一时间是否早于所述第三时间。
在该实现方式中,第二端节点可更快地接收到第一数据。
在一个可能的实现方式中,在第二端节点接收来自第一端节点的延迟传输信息之后,所述方法还包括:所述第二端节点在目标时间段内接收到来自所述第一端节点的所述第一数据的情况下,提高所述第一端节点的信用值;所述目标时间段为根据所述第一时间信息获得;所述第二端节点在所述目标时间段内未接收到来自所述第一端节点的所述第一数据的情况下,降低所述第一端节点的信用值。
所述目标时间段的起始时间可以为所述第二端节点根据所述第一时间信息预估的接收来自所述第一端节点的所述第一数据的最早时间;所述目标时间段的终止时间可以为所述第二端节点根据所述第一时间信息预估的接收来自所述第一端节点的所述第一数据的最晚时间。例如,第一时间信息为第一端节点向第二端节点发送第一数据的时间点,目标时间段的起始时间为该时间点,该目标时间段的终止时间为该时间点之后某个时长(可根据实际场景来设置,例如100ms)的时间点。若第二端节点在目标时间段内接收到来自所述第一端节点的所述第一数据,则第二端节点认为第一端节点按约定时间向其发送第一数据,因此可提高第一端节点的信用值。若第二端节点在目标时间段内未接收到来自所述第一端节点的所述第一数据,则第二端节点认为第一端节点未按约定时间向其发送第一数据,因此可降低第一端节点的信用值。
在该实现方式中,第二端节点根据第一端节点是否及时向其提供数据来更新第一端节点的信用值,使得第二端节点能够及时、准确地更新第一端节点的信用值。
在一个可能的实现方式中,所述第一端节点的信用值满足如下公式:
credit=1/(1+exp(θ-2θr));
其中,credit表示第一端节点(对应于被请求端节点)的信用值,θ是根据实际需求设置的值,例如默认为8,以使得credit的取值范围介于0和1之间;r是第一端节点履行协议的比例,即第一端节点按约定时间(即按时)向第二端节点发送数据的次数与第二端节点接受第一端节点的数据凭证(对应于延迟传输信息)的次数的比例。在实际应用中,第二端节点可及时更新r,以便于及时更新第一端节点的信用值。应理解,若第二端节点在目标时间段内接收到来自所述第一端节点的所述第一数据,则表明第一端节点按约定时间(即按时)向第二端节点发送数据的次数增加(对应于r增大)。因此,第一端节点可采用上述公式更新第一端节点的信用值,即提高第一端节点的信用值。若第二端节点在目标时间段内未接收到来自第一端节点的第一数据,则表明第一端节点未按约定时间(即未按时)向第二端节点发送数据的次数增加(对应于r减小)。因此,第一端节点可采用上述公式更新第一端节点的信用值,即降低第一端节点的信用值。
所述第一端节点履行协议的比例满足如下公式:
r=(nsuccess+1)/(ntotal+1);
其中,ntotal为第二端节点接受第一端节点的数据凭证(对应于延迟传输信息)的次数,nsuccess为第二端节点记录的第一端节点按约定时间发送数据的次数。
在该实现方式中,第二端节点根据第一端节点是否按约定时间发送数据的情况,更新第一端节点的信用值,以便于利用后续根据该第一端节点的信用值更快地获得所述的数据。
第三方面,本申请实施例提供一种通信装置,包括:收发模块,用于向第二端节点发送延迟传输信息;所述延迟传输信息指示第一端节点向所述第二端节点发送第一数据的第一时间信息;处理模块,用于确定所述第二端节点接受所述延迟传输信息;所述处理模块,还用于根据所述第一时间信息通过所述收发模块在目标时间向所述第二端节点发送所述第一数据,所述目标时间为根据所述第一时间信息确定;或者,所述处理模块,用于确定所述第二端节点拒绝所述延迟传输信息,取消传输所述第一数据。
在一个可能的实现方式中,所述处理模块,还用于创建向所述第二端节点发送所述第一数据的发送任务;所述处理模块,具体用于取消所述发送任务。
在一个可能的实现方式中,所述处理模块,具体用于不创建向所述第二端节点发送所述第一数据的发送任务。
在一个可能的实现方式中,所述处理模块,具体用于在所述收发模块接收来自所述第二端节点的第一消息的情况下,确定所述第二端节点接受所述延迟传输信息,所述第一消息为所述第二端节点在接收到所述延迟传输信息后发送;所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据。
在一个可能的实现方式中,所述处理模块,具体用于在所述收发模块发送所述延迟传输信息后的第一时长内所述收发模块未接收到来自所述第二端节点的第三消息的情况下,确定所述第二端节点接受所述延迟传输信息;所述第三信息中包括第三指示信息,所述第三指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
在一个可能的实现方式中,所述处理模块,具体用于在所述收发模块接收来自所述第二端节点的第二消息的情况下,确定所述第二端节点拒绝所述延迟传输信息,所述第二消息为所述第二端节点在接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
在一个可能的实现方式中,所述处理模块,具体用于在所述收发模块发送所述延迟传输信息后的第二时长内所述收发模块未接收到来自所述第二端节点的第四消息的情况下,确定所述第二端节点拒绝所述延迟传输信息;所述第四信息中包括第四指示信息,所述第四指示信息用于指示所述第二端节点同意所述第一端节点发送所述第一数据。
在一个可能的实现方式中,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
在一个可能的实现方式中,所述处理模块,还用于根据负载量,确定第一延迟时间信息;根据所述第一延迟时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第一延迟时间信息获取,所述第一延迟时间信息根据所述负载量获得。
在一个可能的实现方式中,所述处理模块根据负载量,确定第一延迟时间信息的计算方式如下:
其中,rt1为第一延迟时间信息,i表示第一端节点,j表示第二端节点,f和f′为端节点i(即第一端节点)的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量(即当前待发送的数据量),UBi是端节点i的发送带宽(即向其他端节点发送数据的带宽),Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。
在一个可能的实现方式中,所述处理模块,具体用于在所述第一端节点存储有所述第一数据且所述负载量大于负载阈值的情况下,根据所述负载量确定所述第一延迟时间信息。
在一个可能的实现方式中,所述处理模块,还用于根据第二时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第二时间信息获取;所述第二时间信息为预估的所述第一端节点获得所述第一数据的时间信息。
在一个可能的实现方式中,所述处理模块,具体用于根据所述第二时间信息,确定第二延迟时间信息;根据所述第二延迟时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第二延迟时间信息获取。
在一个可能的实现方式中,所述处理模块根据第二时间信息,确定第二延迟时间信息的计算公式如下:
其中,rt2为第二延迟时间信息,rt[i-1]为预估的当前时刻至所述第一端节点获得所述第一数据的时刻之间的时长,i表示第一端节点,j表示第二端节点,f和f′为端节点i的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量,UBi是端节点i的发送带宽,Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。
在一个可能的实现方式中,所述收发模块,还用于接收用于获取第二数据的数据请求;所述处理模块还用于在未存储有所述第二数据且未待获得所述第二数据的情况下,拒绝所述数据请求。
在一个可能的实现方式中,所述未存储有所述第二数据且未待获得所述第二数据的情况包括;未存储有所述第二数据且未存储有第一数据凭证;所述第一数据凭证为除任意端节点待向所述第一端节点发送所述第二数据的凭证。
关于第三方面或各种可能的实施方式所带来的技术效果,可参考对于第一方面或相应的实现方式的技术效果的介绍。
第四方面,本申请实施例提供一种通信装置,包括:收发模块,用于接收来自第一端节点的延迟传输信息,所述延迟传输信息指示所述第一端节点向第二端节点发送第一数据的第一时间信息;所述收发模块,还用于发送处理模块生成的第一消息,所述第一消息为接收到所述延迟传输信息后发送,所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据;或者,所述收发模块,还用于发送处理模块生成的第二消息,所述第二消息为接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
在一个可能的实现方式中,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
在一个可能的实现方式中,所述处理模块,还用于当所述第一端节点的信用值大于第三端节点的信用值,确定发送所述第一消息;所述第三端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
在一个可能的实现方式中,所述处理模块,还用于当所述第一端节点的信用值大于第三端节点的信用值,且所述第一端节点的信用值与所述第三端节点的信用值之差大于信用阈值,确定发送所述第一消息;所述第三端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
在一个可能的实现方式中,所述处理模块,还用于当第一时间早于第二时间,确定发送所述第一消息;所述第一时间为第一端节点待向所述第二端节点发送所述第一数据的时间,所述第二时间为第四端节点待向所述第二端节点发送所述第一数据的时间,所述第四端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
在一个可能的实现方式中,所述处理模块,具体用于当所述第一端节点的信用值与所述第四端节点的信用值的差值的绝对值小于信用阈值,且所述第一时间早于所述第二时间,确定发送所述第一消息。
在一个可能的实现方式中,所述处理模块,还用于在存储有所述第四端节点待向所述第二端节点发送所述第一数据的数据凭证的情况下,获取所述第四端节点的信用值。
在一个可能的实现方式中,所述处理模块,还用于在未存储有任一端节点待向所述第二端节点发送所述第一数据的凭证的情况下,确定发送所述第一消息。
在一个可能的实现方式中,所述处理模块,还用于当所述第一端节点的信用值不大于第五端节点的信用值,确定发送所述第二消息;所述第五端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
在一个可能的实现方式中,所述处理模块,还用于当所述第一端节点的信用值不大于第五端节点的信用值,且所述第一端节点的信用值与所述第三端节点的信用值之差的绝对值大于信用阈值,所述第二端节点确定发送所述第二消息;所述第五端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
在一个可能的实现方式中,所述处理模块,还用于当第一时间不早于第三时间,确定发送所述第二消息;所述第一时间为所述第一端节点待向所述第二端节点发送所述第一数据的时间,所述第三时间为第六端节点待向所述第二端节点发送所述第一数据的时间,所述第六端节点为所述第二端节点同意的待向所述第二端节点发送所述第一数据的端节点。
在一个可能的实现方式中,所述处理模块,具体用于当所述第一端节点的信用值与所述第六端节点的信用值的差值的绝对值小于信用阈值,且所述第一时间不早于所述第三时间,确定发送所述第二消息。
在一个可能的实现方式中,所述处理模块,还用于在目标时间段内接收到来自所述第一端节点的所述第一数据的情况下,提高所述第一端节点的信用值;所述目标时间段为根据所述第一时间信息获得;在所述目标时间段内未接收到来自所述第一端节点的所述第一数据的情况下,降低所述第一端节点的信用值。
在一个可能的实现方式中,所述第一端节点的信用值满足如下公式:
credit=1/(1+exp(θ-2θr));
其中,credit表示第一端节点(对应于被请求端节点)的信用值,θ是根据实际需求设置的值,例如默认为8,以使得credit的取值范围介于0和1之间;r是第一端节点履行协议的比例,即第一端节点按约定时间(即按时)向第二端节点发送数据的次数与第二端节点接受第一端节点的数据凭证(对应于延迟传输信息)的次数的比例。
所述第一端节点履行协议的比例满足如下公式:
r=(nsuccess+1)/(ntotal+1);
其中,ntotal为第二端节点接受第一端节点的数据凭证(对应于延迟传输信息)的次数,nsuccess为第二端节点记录的第一端节点按约定时间发送数据的次数。
关于第四方面或各种可能的实施方式所带来的技术效果,可参考对于第二方面或相应的实现方式的技术效果的介绍。
第五方面,本申请提供一种通信装置,该通信装置包括处理器,该处理器用于执行存储器所存储的计算机执行指令,以使所述通信装置执行上述第一方面或第一方面的任意可能的实现方式所示的方法。
本申请实施例中,在执行上述方法的过程中,上述方法中有关发送延迟传输信息(即报文)、发送第一数据、发送第一消息(以下统称为信息)的过程,可以理解为基于处理器的指令进行输出信息的过程。在输出信息时,处理器将该信息输出给收发器,以便由收发器进行发射。该信息在由处理器输出之后,还可能需要进行其他的处理,然后到达收发器。类似的,处理器接收输入的信息时,收发器接收该信息,并将其输入处理器。更进一步的,在收发器收到该信息之后,该信息可能需要进行其他的处理,然后才输入处理器。
基于上述原理,示例性的,例如,发送延迟传输信息可以理解为基于处理器的指示输出该延迟传输信息。又例如,发送第一消息可以理解为基于处理器的指令发送该第一消息等。
对于处理器所涉及的发送和/或接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则可以一般性的理解为基于处理器的指令输出。
在实现过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器等。例如,处理器还可以用于执行存储器中存储的程序,当该程序被执行时,使得该通信装置执行如上述第一方面或第一方面的任意可能的实现方式所示的方法。
在一种可能的实现方式中,存储器位于上述通信装置之外。
在一种可能的实现方式中,存储器位于上述通信装置之内。
本申请实施例中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可能被集成于一起。
在一种可能的实现方式中,通信装置还包括收发器,该收发器,用于接收报文或发送报文等。
第六方面,本申请提供一种通信装置,该通信装置包括处理器,该处理器可以用于执行存储器所存储的计算机执行指令,以使所述通信装置执行上述第二方面或第二方面的任意可能的实现方式所示的方法。
本申请实施例中,关于处理器的具体说明可参考上述第五方面的描述,这里不再详述。
在实现过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器等。例如,处理器还可以用于执行存储器中存储的程序,当该程序被执行时,使得该通信装置执行如上述第二方面或第二方面的任意可能的实现方式所示的方法。
在一种可能的实现方式中,存储器位于上述通信装置之外。
在一种可能的实现方式中,存储器位于上述通信装置之内。
本申请实施例中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可能被集成于一起。
在一种可能的实现方式中,通信装置还包括收发器,该收发器,用于接收报文或发送报文。
第七方面,本申请提供一种通信装置,该通信装置包括处理电路和接口电路,该接口电路用于获取数据或输出数据;处理电路用于执行如上述第一方面或第一方面的任意可能的实现方式所示的相应的方法。
第八方面,本申请提供一种通信装置,该通信装置包括处理电路和接口电路,该接口电路用于获取数据或输出数据;处理电路用于执行如上述第二方面或第二方面的任意可能的实现方式所示的相应的方法。
第九方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第十方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
第十一方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机代码,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第十二方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机代码,当其在计算机上运行时,使得上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
第十三方面,本申请提供一种计算机程序,该计算机程序在计算机上运行时,上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第十四方面,本申请提供一种计算机程序,该计算机程序在计算机上运行时,上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
第十五方面,本申请提供一种通信系统,该通信系统包括第一端节点(对应于被请求端节点)和第二端节点(对应于请求端节点),该第一端节点可以用于执行上述第一方面或第一方面的任意可能的实现方式所示的方法,该第二端节点可以用于执行上述第二方面或第二方面的任意可能的实现方式所示的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1A为本申请实施例提供的一种分布式网络的示意图;
图1B为本申请实施例提供的另一种分布式网络的示意图;
图2为本申请实施例提供的另一种分布式网络的示意图;
图3A为本申请实施例提供的一种数据分发网络的示意图;
图3B为本申请实施例提供的另一种数据分发网络的示意图;
图4为本申请实施例提供的一种数据传输方法流程图;
图5为本申请实施例提供的另一种数据传输方法流程图;
图6为本申请实施例提供的另一种数据传输方法流程图;
图7为本申请实施例提供的一种第一端节点和第二端节点之间通信使用的报文格式的示例的示意图;
图8为本申请实施例提供的另一种数据传输方法流程图;
图9为本申请实施例提供的另一种数据传输方法流程图;
图10为本申请实施例提供的一种通信装置的结构示意图;
图11为本申请实施例提供的另一种通信装置的结构示意图;
图12为本申请实施例提供的另一种通信装置的结构示意图;
图13为本申请实施例提供的一种通信装置的结构示意图;
图14为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
以下将详细介绍本申请涉及的网络架构。
图1A为本申请实施例提供的一种分布式网络的示意图。图1A中的每个圆表示一个端节点,两个端节点之间的连线表示这两个端节点之间的通信链路,图1A中的分布式网络可以是一种无中心组网的对等式网络(peer to peer,P2P),每个端节点既可以从其他端节点得到服务(例如获取数据),也可以向其他端节点提供服务(例如发送数据)。图1A中的分布式网络可视为一种分布式存储架构。图1A中的端节点可以是手机、平板电脑、台式电脑、笔记本电脑、智能电视、网络附属存储(Network Attached Storage,NAS)、智能家居设备、穿戴设备等具备数据收发和数据存储功能的设备。在一些可能的实施例中,图1A中的所有端节点之间可以共享存储,每个端节点使用全网唯一的端节点标识(peer identifier,PID)进行标识,例如基于互联网协议地址(internet protocol,IP)地址的哈希(hash)值;存储的内容数据以全网唯一的内容标识(content identifier,CID)进行标识,例如基于内容名/文件名hash获得。
未来的移动互联网架构,将重点基于实际社会联系建立的朋友圈,例如:家人,在同一家庭网路中出现;同事,在同一公司工作;游客,在同一地点旅行;圈友,感兴趣同一话题。基于朋友圈人与人之间互动匹配的无中心架构网络将成为趋势,应用场景为畅联、微网(welink)、智慧课堂等场景。因此研究图1A中的分布式网络下的数据传输具有重要意义。
图1B为本申请实施例提供的另一种分布式网络的示意图。图1B中的分布式网络采用客户端/服务器(client/server,C/S)结构,该分布式网络包括至少两个作为服务器的端节点以及多个作为客户端的端节点,图1B中仅以一个2个作为服务器的端节点(服务器1和服务器2)和4个作为客户端(客户端1、客户端2、客户端3、客户端4)的端节点为例。在图1B中的分布式网络下,每个客户端可向至少两个服务器请求获取同一内容数据。在一些实施例中,服务器存储的内容数据以CID进行标识,例如基于内容名/文件名hash获得;每个客户端(对应于端节点)使用PID进行标识,例如基于IP地址的哈希(hash)值。客户端/服务器的结构是目前主流的网络架构,在该网络架构中当大量客户端同时从服务器获取数据时,一部分客户端需要等待较长时间,因此需要研究能提高客户端获取数据效率的方案。本申请中的分布式网络可视为数据分发网络。
下面介绍附图介绍一些分布式网络下的数据传输方案。
方案1:基于网状拉动(mesh-pull)的方式进行数据传递,每个端节点(对应于请求端节点)向邻居端节点发起数据获取请求,邻居端节点收到数据获取请求后,如果邻居端节点(对应于数据源端节点)的本地存储有数据获取请求所请求的数据则回传相应数据给请求端节点。本申请中,若两个端节点之间具备通信链路,则这两个端节点互为邻居端节点;数据源端节点是指能提供请求端节点所请求的数据的端节点,即向请求端节点提供数据的端节点;请求端节点是指向其他端节点请求任意数据的端节点,即发送数据获取请求的端节点;被请求端节点是指接收到请求端节点的数据获取请求的端节点,即被请求的端节点。若一个被请求端节点能向某个请求端节点提供该请求端节点所请求的数据,对于该请求端节点来说,该被请求端节点为数据源端节点;若该被请求端节点不能提供该个请求端节点所请求的数据,对于该请求端节点来说,该被请求端节点不为数据源端节点。
在方案1中,数据源端节点会公平对待所有请求端节点的数据获取请求,并且按照先入先出(first input first output,FIFO)的顺序依次向各请求端节点发送相应的内容数据。
在方案1中,由于数据源端节点(例如移动终端)的带宽和/或数据发送能力有限,容易导致数据发送过程中,数据源端节点被拥塞。应理解,当数据源端节点向请求端节点发送大文件(即数据量较大的文件)和/或接收到的数据获取请求较多时,会导致数据源端节点因向一部分请求端节点发送数据消耗的时间过长,而阻塞了向另一部分请求端节点发送数据的状况。图2为本申请实施例提供的另一种分布式网络的示意图。图2中,201表示数据源端节点,202表示多个请求端节点(即向数据源端节点请求数据的端节点)。图2的左侧图展示的是多个请求端节点向数据源端节点请求数据(对应于大规模数据获取请求)的场景,图2的右侧图展示的是数据源端节点发送拥塞的场景。
另外,在方案1中,为了保证可靠性,请求端节点会通常向邻居端节点广播数据获取请求,当存在多个邻居端节点拥有数据获取请求所请求的数据时,均会发送数据给请求端节点。可见,采用方案1会导致冗余传输,增加网络负担。
方案2:以新发布的文件(即内容数据)为对象提前建立好数据分发树,如图3A所示,按照提前建立好的数据分发树进行数据分发。图3A为本申请实施例提供的一种数据分发网络的示意图。图3A中,数据分发网络包括:数据源端节点301、数据源端节点301的多个子端节点302以及该多个子端节点302的多个子端节点303;其中,每个端节点302表示从数据源端节点301获取数据以及在从数据源端节点301获取数据之后向其子端节点提供数据的端节点,每个端节点303表示从端节点302获取数据的端节点。图3A中,端节点302可视为端节点301的子端节点,任意端节点303可视为某个端节点302的子端节点。在方案2中,当任一端节点302从端节点301获取数据之后,该任一端节点302可以作为数据源端节点为其子端节点(对应于端节点303)提供数据。应理解,方案2中,数据传输任务由多个端节点共同完成,端节点301不需要处理大规模的数据获取请求,因此可以均衡网络负载,减少重复请求以及冗余传输。然而,方案2存在抗毁性差(即可靠性低)的缺陷,一旦数据分发树中某个端节点发生故障或者与其父端节点断开连接,会导致连接在该端节点下的所有子端节点接收不到数据,如图3B所示。图3A可视为一个数据分发数,每个端节点为分发树中的一个端节点。图3B为本申请实施例提供的另一种数据分发网络的示意图。图3B可视为图3A中的一个端节点3022(任一个端节点302)发生故障或者与其父端节点301断开连接之后的网络。如图3B所示,端节点3022发生故障或者与其父端节点301断开连接之后,连接在该数据端节点3022下的所有子端节点接收不到数据。另外,方案2在移动设备的组网模式下缺点更加明显,由于各个端节点的接入及断开相比固定端节点频繁,更容易发生树中的父端节点退出,导致其子端节点接收不到数据,或者要频繁重新进行树形结构重建,网络开销较大。
本申请提供了可靠性高并能够避免数据冗余传输的数据传输方案。本申请提供的数据传输方案的主要原理如下:被请求端节点(对应于第一端节点)可以根据自身负载,决定是否延迟发送接收到的数据获取请求所请求的数据以及在延迟发送接收到的数据获取请求所请求的数据时预估向请求端节点发送数据的发送时间(例如预计发送时间),请求端节点根据接收到的各个被请求端节点提供的预计发送时间和自身存储或获得的信用值,选择接收合适的被请求端节点的内容数据。下面结合附图介绍本申请实施例提供的数据传输方案。
图4为本申请实施例提供的一种数据传输方法流程图。如图4所示,该方法包括:
401、第一端节点向第二端节点发送延迟传输信息。
上述延迟传输信息指示上述第一端节点向上述第二端节点发送第一数据的第一时间信息。上述第一时间信息可以是一个时间点(对应于绝对时间),也可以是一个时长(对应于相对时间),还可以是一个时间段。例如,第一时间信息为第一端节点预估的向第二端节点发送第一数据的时间点(即一个时刻)。又例如,第一时间信息为一个时长,该时长为第二端节点接收到延迟传输信息的时刻(对应于第一端节点发送延迟传输信息的时刻)与第一端节点向该第二端节点发送第一数据的时刻之间的时长。若第一时间信息为一个时间点,第一端节点实际向第二端节点发送第一数据的时间点与该时间点之间的时长小于一个阈值,例如100ms、10ms等。若第一时间信息为一个时间段,第一端节点在该时间段内向第二端节点发送第一数据,该时间段的起始时刻可理解为第一端节点预估的最早向第二端节点发送第一数据的时刻,该时间段的截止时刻可理解为第二端节点预估的最晚向第二端节点发送第一数据的时刻。举例来说,当前时刻为参考时间点,第一端节点预估延迟100ms向第二端节点发送第一数据,第一时间信息表示100ms,第二端节点解析延迟传输信息确定大概在接收到该延迟传输信息(对应于参考时间点)之后的100ms可接收到第一数据。
在一些实施例中,上述第一端节点和上述第二端节点可以为同一分布式网络(例如移动分布式网络)中的任意两个不同的端节点,还可以是包括多个端节点的对等式网络中的任意两个端节点。移动分布式网络可以是指包括多个移动设备(例如手机、笔记本电脑等)的网络。在一些实施例中,上述第一端节点可以是客户端/服务器结构中作为服务器的端节点,上述第二端节点可以是客户端/服务器结构中作为客户端的端节点。
在一些实施例中,上述延迟传输信息为一个数据凭证,通过上述数据凭证指示上述第一端节点向上述第二端节点发送上述第一数据的上述第一时间信息;上述数据凭证还用于验证上述第一端节点的身份。第二端节点可根据数据凭证验证上述第一端节点的身份,避免恶意端节点的干扰,提高安全性。
在一些实施例中,第一端节点在向第二端节点发送延迟传输信息之前,还可接收来自上述第二端节点的数据获取请求,上述数据获取请求用于获取第一数据;步骤401的一种可能的实现方式是:第一端节点响应于数据获取请求,向第二端节点发送延迟传输信息。
402、第一端节点确定第二端节点接受延迟传输信息。
步骤402一种可能的实现方式如下:上述第一端节点接收来自上述第二端节点的第一消息,上述第一消息为上述第二端节点在接收到上述延迟传输信息后发送;上述第一消息中包括第一指示信息,上述第一指示信息指示上述第二端节点同意上述第一端节点发送上述第一数据。应理解,第一消息中可以包括指示同意第一端节点发送第一数据的内容,第一信息也可以是一种端节点间约定的一种消息,即第一消息中不必明确包含指示同意第一端节点发送第一数据的内容。
步骤402另一种可能的实现方式如下:上述第一端节点在发送上述延迟传输信息后的第一时长内未接收到来自上述第二端节点的第三消息的情况下,确定上述第二端节点接受上述延迟传输信息;上述第三信息中包括第三指示信息,上述第三指示信息用于指示上述第二端节点拒绝上述第一端节点发送上述第一数据。上述第一时长可以是10ms、30ms、100ms、1s、3s等,应理解,第一端节点可根据实际情况配置第一时长。
403、第一端节点根据第一时间信息在目标时间向上述第二端节点发送第一数据。
上述目标时间可以为根据上述第一时间信息确定的发送上述第一数据的时间点。在一种可能的实现方式中,上述第一时间信息为目标时间(即第一端节点发送第一数据的时间点)。在一种可能的实现方式中,上述第一时间信息为一个时长,上述目标时间为第一端节点根据该时长得到的一个时间点。举例来说,第一端节点发送延迟传输信息的时刻为第一时刻,第二时间信息为目标时长(一个时长),目标时间为第二时刻,该第二时刻在第一时刻之后且该第二时刻和该第一时刻之间的时长为该目标时长。在一种可能的实现方式中,上述第一时间信息为一个时间段,目标时间包含于该时间段,该时间段的起始时间为上述第一端节点预估的最早向第二端节点发送第一数据的时间点,该时间段的终止时间为预估的最晚向第二端节点发送第一数据的时间。
在一些实施例中,第一端节点可根据第一时间信息确定发送第一数据的参考时间(可理解为最早可能发送第一数据的时间点);然后,开始监测是否具备向上述第二端节点发送上述第一数据的条件,上述参考时间可以为上述延迟传输信息指示的上述第一端节点向上述第二端节点发送第一数据的时间点;若上述第一端节点具备向第二端节点发送上述第一数据的条件,则在上述参考时间(对应于目标时间)向上述第二端节点发送上述第一数据;若上述第一端节点不具备向上述第二端节点发送上述第一数据的条件,继续监测上述第一端节点是否具备向上述第二端节点发送上述第一数据的条件,并在上述第一端节点具备向上述第二端节点发送上述第一数据的条件时(对应于目标时间)向上述第二端节点发送上述第一数据。举例来说,第一端节点在达到参考时间(一个时间点)时,开始监测第一端节点的负载量;在第一端节点的负载量小于负载阈值的目标时间开始向第一端节点发送上述第一数据。
在一个可能的实现方式中,上述第一消息还包括上述第一数据的确认发送时间(对应于目标时间),上述确认发送时间可以是第二端节点指示的第一端节点发送第一数据的时间,步骤402可替换为:第一端节点根据上述第一消息在标定时间向上述第二端节点发送第一数据,上述标定时间为根据上述第一消息获取。举例来说,第一消息中包括指示第一端节点发送第一数据的标定时间(即确认发送时间),第一端节点根据该第一消息在该标定时间向第二端节点发送第一数据。在一个实施例中,第一时间信息为一个时间点,标定时间为该时间点之后的一个时间点。
步骤402和步骤403可替换为:404、第一端节点确定上述第二端节点拒绝上述延迟传输信息,上述第一端节点取消传输上述第一数据。
第一端节点确定上述第二端节点拒绝上述延迟传输信息一种可能的实现方式如下:上述第一端节点接收来自上述第二端节点的第二消息,上述第二消息为上述第二端节点在接收到上述延迟传输信息后发送;上述第二消息中包括第二指示信息,上述第二指示信息用于指示上述第二端节点拒绝上述第一端节点发送上述第一数据。
第一端节点确定上述第二端节点拒绝上述延迟传输信息另一种可能的实现方式如下:上述第一端节点在发送上述延迟传输信息后的第二时长内未接收到来自上述第二端节点的第四消息的情况下,确定上述第二端节点拒绝上述延迟传输信息;上述第四信息中包括第四指示信息,上述第四指示信息用于指示上述第二端节点同意上述第一端节点发送上述第一数据。上述第二时长可以是10ms、30ms、100ms、1s等,应理解,第一端节点可根据实际情况配置第二时长。
在一种可能的实现方式中,上述第一端节点取消传输上述第一数据之前,执行如下操作:上述第一端节点创建向上述第二端节点发送上述第一数据的发送任务;上述第一端节点取消传输上述第一数据可以是:上述第一端节点取消上述发送任务。上述第一端节点取消上述发送任务可以是上述第一端节点删除上述发送任务。在该实现方式中,第一端节点在接收到一个数据请求之后,创建发送该数据请求所请求的数据的发送任务;如果确定不发送该数据请求所请求的数据,则删除该发送任务,否则,执行该发送任务。
在一种可能的实现方式中,上述第一端节点取消传输上述第一数据可以是:上述第一端节点不创建向上述第二端节点发送上述第一数据的发送任务。在该实现方式中,第一端节点确定发送某数据(对应于接受延迟传输信息)之后,才创建发送该数据的发送任务,这样可以减少创建发送任务的操作。
本申请实施例中,第一端节点在不能立即向第二端节点发送第一数据时,向第二端节点发送延迟传输信息以指示其预估的待向第二端节点发送第一数据的第一时间信息;第一端节点在确定该第二端节点拒绝延迟传输信息的情况下,取消传输第一数据;第一端节点在确定该第二端节点接受延迟传输信息的情况下,向第二端节点发送第一数据。举例来说,第二端节点向多个端节点发送了用于获取第一数据的数据获取请求,该多个端节点分别向该第二端节点发送了针对该数据获取请求的反馈信息,每个反馈信息包括该多个端节点中的一个端节点预估的向第二端节点发送第一数据的时间信息;该第二端节点根据来自该多个端节点的反馈信息,选择接受该多个端节点中的第一端节点向其发送第一数据;第一端节点向第二端节点发送第一数据,该多个端节点中除第一端节点之外的端节点不向第二端节点发送第一数据(对应于取消传输第一数据)。在该举例中,对于该多个端节点中除第一端节点之外的任一端节点来说,该任一端节点在确定该第二端节点拒绝该任一端节点向第二端节点发送上述第一数据的情况下,取消传输第一数据,可以避免数据的冗余传输,并减轻自身负载。对于第二端节点来说,它可以从该多个端节点中选择一个端节点(例如最早向其发送第一数据的端节点)向其发送第一数据,可靠性强,并能及时接收到第一数据(即减少等待时间)。在该举例中,该多个端节点中的一个端节点或者部分端节点向第二端节点发送第一数据,至少一部分端节点不需要向第二端节点发送第一数据,可以避免数据的冗余传输。应理解,当网络负载较重时,第二端节点可以选择负载较轻的端节点向其发送所需内容,均衡了分布式网络中传输数据时的端节点负载,提高了获取数据的效率,也降低了网络负载。
本申请实施例中,第一端节点在确定该第二端节点接受延迟传输信息的情况下,在目标时间向第二端节点发送第一数据,可以减轻负载;第一端节点在确定第二端节点拒绝延迟传输信息的情况下,取消传输第一数据;可以减少数据的冗余传输,并减轻自身负载。
图5为本申请实施例提供的另一种数据传输方法流程图。图5中的方法流程是对图4中的方法流程的细化和完善。如图5所示,该方法包括:
501、第一端节点接收来自第二端节点的第一数据获取请求。
上述第一数据获取请求用于获取第一数据。上述第一数据获取请求可包含上述第二端节点的用户标识符PID、上述第一数据的内容标识符CID。在一些实施例中,第一端节点接收第二端节点通过广播或组播方式发送的第一数据获取请求。
502、第一端节点根据负载量,确定第一延迟时间信息。
上述第一延迟时间信息可以是一个时长(例如当前时刻距离发送第一数据的时刻的时长),也可以是一个时间点(例如预估的发送第一数据的时间点)。在一些实施例中,第一延迟时间信息为第一延迟时长,上述第一延迟时长与上述负载量正相关,上述负载量为第一端节点当前待发送的数据量。步骤502一种可能的实现方式如下:第一端节点在存储有上述第一数据且负载量大于负载阈值的情况下,根据负载量,确定第一延迟时间信息。上述负载阈值可以是根据实际需求设置的一个阈值,例如20MB、100MB、1GB等。如果第一端节点的负载量大于负载阈值,则表示第一端节点无法立即发送第一数据给第二端节点(对应于请求端节点),需要延迟发送第一数据(即第二端节点请求的内容数据)给第二端节点。第一端节点根据负载量,计算向第二端节点发送第一数据的延迟发送时间(repayment time)的一种可选的计算方式如下:
其中,rt1表示第一端节点向第二端节点发送第一数据的延迟发送时间(一个时长),i表示第一端节点,j表示第二端节点,f和f′为端节点i的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量(即当前待发送的数据量),UBi是端节点i的发送带宽,Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。在一种可能的方式中,上述第一延迟时间信息为上述延迟发送时间。在该方式中,第一端节点根据负载量,计算向第二端节点发送第一数据的延迟发送时间即确定第一延迟时间信息。在另一种可能的方式中,第一端节点可以根据延迟发送时间和当前时刻得到第一延迟时间信息(一个时间点)。当前时刻可以是获得延迟发送时间的时刻。举例来说,第一端节点确定当前时刻之后的延迟发送时间(rt1)的时间点(对应于预估的发送第一数据的时间点)为第一延迟时间信息。
503、第一端节点根据上述第一延迟时间信息,生成延迟传输信息。
上述第一时间信息为根据上述第一延迟时间信息获取。在一种可能的实施例中,上述第一延迟时间信息是一个时间点(例如预估的发送第一数据的时间点),上述第一时间信息为该时间点。在一种可能的实施例中,上述第一延迟时间信息是一个时长(例如当前时刻距离发送第一数据的时刻的时长),上述第一时间信息为该时长。
在一种可能的实施例中,上述延迟传输信息为一个数据凭证,通过上述数据凭证指示上述第一端节点向上述第二端节点发送上述第一数据的上述第一时间信息;上述数据凭证还用于验证上述第一端节点的身份。
步骤502和步骤503可替换为如下操作:第一端节点在未存储有上述第一数据且待获得上述第一数据的情况下,根据上述第二时间信息,确定第二延迟时间信息,上述第二时间信息为预估的上述第一端节点获得上述第一数据的时间信息;上述第一端节点根据上述第二延迟时间信息,生成上述延迟传输信息;上述第一时间信息为根据上述第二延迟时间信息获取。上述第二时间信息可以为上述第一端节点预估(或获取)的上述第一端节点获得上述第一数据的时间点;也可以是预估(或获取)的当前时刻至上述第一端节点接收到上述第一数据的时刻之间的时长。上述第二延迟时间信息可以为上述第一端节点根据上述第二时间信息预估(或计算)的发送第一数据的时间点;也可以是上述第一端节点根据上述第二时间信息预估(或计算)的发送第一数据的延迟时长,即第一端节点发送第一数据的时刻与当前时刻之间的时长。上述第一端节点待获得上述第一数据的情况可以是:上述第一端节点存储有某个端节点待向上述第一端节点发送上述第一数据的数据凭证;其中,该数据凭证可指示该端节点向第二端节点发送上述第一数据的时间(对应于第二时间信息)。应理解,第一端节点若存在其他端节点待向其发送第一数据的数据凭证,可根据该数据凭证以及负载量,预估向第二端节点发送第一数据的延迟发送时间(即延迟发送时长)。可选的,第一端节点根据第二时间信息,计算(对应于预估)向第二端节点发送第一数据的延迟发送时间(一个时长)的计算方式如下:
其中,rt2为向第二端节点发送第一数据的延迟发送时间,rt[i-1]为第一端节点预估的当前时刻至上述第一端节点获得上述第一数据的时刻之间的时长,i表示第一端节点,j表示第二端节点,f和f′为端节点i的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量,UBi是端节点i的发送带宽,Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。应理解,rt[i-1]可理解为第一端节点计算rt2的时刻与第一端节点接收到第一数据的时刻之间的时长。在一种可能的方式中,上述第二延迟时间信息为根据第二时间信息计算得到的延迟发送时间(即rt2)。在该方式中,第一端节点根据第二时间信息,计算向第二端节点发送第一数据的延迟发送时间即确定第二延迟时间信息。在另一种可能的方式中,第一端节点可以根据延迟发送时间和当前时刻得到第二延迟时间信息(一个时间点)。当前时刻可以是获得延迟发送时间的时刻。举例来说,第一端节点确定当前时刻之后的延迟发送时间(rt2)的时间点(对应于预估的发送第一数据的时间点)为第二延迟时间信息。
504、第一端节点向第二端节点发送延迟传输信息。
步骤504的实现方式可与步骤401的实现方式相同。
505、第一端节点确定上述第二端节点接受上述延迟传输信息。
步骤505的实现方式可与步骤402的实现方式相同。
506、第一端节点根据上述第一时间信息在目标时间向上述第二端节点发送上述第一数据。
上述目标时间为根据上述第一时间信息确定。步骤505的实现方式可与步骤403的实现方式相同。
步骤505和步骤506可替换为:507、第一端节点确定上述第二端节点拒绝上述延迟传输信息,上述第一端节点取消传输上述第一数据。步骤507的实现方式可与步骤404的实现方式相同。
在一些实施例中,第一端节点还可执行如下操作:第一端节点接收第二数据获取请求(对应数据请求),上述第二数据获取请求用于获取第二数据;上述第一端节点在未存储有上述第二数据且未待获得上述第二数据的情况下,拒绝上述第二数据获取请求。举例来说,第一端节点接收到第二端节点(或者其他端节点)的第二数据获取请求,第一端节点拒绝上述第二数据获取请求可以是第一端节点取消传输第二数据。上述未存储有上述第二数据且未待获得上述第二数据的情况包括;未存储有上述第二数据且未存储有第一数据凭证;上述第一数据凭证为任意端节点待向上述第一端节点发送上述第二数据的凭证。上述第一端节点未存储有上述第二数据且未待获得上述第二数据可理解为第一端节点短时间内不能获得第二数据。上述第一端节点在未存储有上述第二数据且未待获得上述第二数据的情况下,拒绝上述第二数据获取请求;以便发送数据获取请求的端节点从除第一端节点之外的端节点获取第二数据,能够提高获取第二数据的速度,并减少第一端节点的负载。
在一些实施例中,第一端节点还可执行如下操作:第一端节点接收来自某个端节点的第三数据获取请求,上述第三数据获取请求用于获取第三数据;上述第一端节点在存储有上述第三数据且当前的负载量不大于负载阈值的情况下,立即向该端节点发送上述第三数据。也就是说,第一端节点在负载量小于负载阈值时,可立即向其他端节点发送相应的数据。
本申请实施例中,第一端节点在负载量较大时向第二端节点发送指示延迟向第二端节点发送第一数据的延迟传输信息;可以减少数据的冗余传输,以便减轻自身负载。
图6为本申请实施例提供的另一种数据传输方法流程图。图6中的方法流程是对图4和图5中的方法流程的细化和完善。如图6所示,该方法包括:
601、第一端节点接收来自第二端节点的第一数据获取请求。
上述第一数据获取请求用于获取第一数据。步骤601的实现方式可与步骤501的实现方式相同。
602、第一端节点查询是否存储有第一数据。
若存储有第一数据,执行步骤603;若未存储有第一数据,执行步骤609。
603、第一端节点判断负载量是否大于负载阈值。
若是,执行步骤604;若否,执行步骤608。
604、第一端节点根据负载量,确定第一延迟时间信息。
步骤604的实现方式可与步骤502的实现方式相同,这里不再详述。
605、第一端节点向第二端节点发送延迟传输信息。
上述延迟传输信息指示上述第一端节点向上述第二端节点发送第一数据的第一时间信息。上述延迟传输信息可以是一个数据凭证,该数据凭证还用于验证第一端节点的身份。图7为本申请实施例提供的一种第一端节点和第二端节点之间通信使用的报文格式的示例的示意图。如图7所示,第一端节点和第二端节点之间通信使用的报文格式(例如延迟传输信息)包括:用户标识符(peer ID)、内容标识符(content ID)、消息类型(messagetype)、长度(length)字段、预计发送时间(repayment time)以及内容数据字段。示例性的,用户标识符占用128比特位,内容标识符占用128比特位;消息类型占用16比特位;长度字段占用16比特位;预计发送时间(对应于第一时间信息)为32位字节;内容数据字段。数据封装时,根据消息类型,决定需要包括哪些字段;例如第一数据获取请求中没有预计发送时间rt字段和内容数据字段;数据凭证(例如延迟传输信息)中,不必包括内容数据字段。
可选的,考虑到分布式网络中,存在不支持此特性的终端设备,与支持此特性的终端设备混合组网的情况;请求端节点(例如第二端节点)可在数据请求(例如第一数据获取请求)中携带是否支持“延迟发送”其请求的内容数据(例如第一数据)的能力信息,以及是否接收过内容提供者(例如第一端节点)的rt信息(例如延迟传输信息),来维护网络中支持此特性的终端设备和不支持此特性的终端设备信息,以便于被请求端节点(例如第一端节点)在发送数据时,可以优先发送给支持此特性的终端设备;避免内容传输多份导致的传输冗余。
606、第一端节点判断第二端节点是否接受延迟传输信息。
若是,执行步骤607;若否,执行步骤611。
607、第一端节点判断是否达到第一时间。
上述第一时间为第一端节点向上述第二端节点发送第一数据的时间(对应于第一时间信息)。若是,执行步骤608;若否,继续执行步骤607。应理解,若未达到第一时间,需继续等待,直到到达第一时间,即继续执行步骤607。在一些实施例中,第一时间为一个时间点,判断是否到达第一时间可以是判断是否到达这个时间点。在一些实施例中,第一时间为一个时间段,判断是否到达第一时间可以是判断是否到达该第一时间的起始时刻。
608、第一端节点向第二端节点发送第一数据。
应理解,第一端节点在第一时间向第二端节点发送第一数据是一种理想的情况,这需要在达到第一时间时第一端节点具备足够的资源用于向第二端节点发送第一数据。在实际应用中,第一端节点可能会在第一时间之后,向第二端节点发送第一数据。
609、第一端节点查询是否存储有其他端节点向第一端节点提供第一数据的数据凭证。
若是,执行步骤610;若否,执行步骤611。
610、第一端节点根据第二时间信息,确定第二延迟时间信息。
上述第二时间信息为预估的上述第一端节点获得上述第一数据的时间信息。
611、第一端节点忽略第一数据获取请求。
如果第一端节点不存在其他端节点的数据凭证,则可以忽略第二端节点的第一数据获取请求。可选的,第一端节点可以发送一个指示第一端节点不存在第一数据的响应消息给第二端节点。
从整个分布式网络(包括多个请求端节点和多个被请求端节点)的角度来看,请求端节点(例如第二端节点)可以选择一个负载较轻的端节点向其发送所需内容,均衡了分布式网络中传输数据时的端节点负载,提高了获取数据的效率,也降低了网络负载;被请求端节点(例如第一端节点)在负载较重时可延迟向请求端节点发送数据,并且在确定请求端节点接受其延迟发送的情况下才发送,可以减少数据的冗余传输。
本申请实施例中,第一端节点在当前负载较重时向第二端节点发送指示延迟向第二端节点发送第一数据的延迟传输信息,在负载较轻时立即向该第二端节点发送第一数据;可以减少数据的冗余传输,提高传输效率。
前述实施例介绍了被请求端节点(即第一端节点)在数据传输方案中执行的操作,下面介绍请求端节点(即第二端节点)在数据传输方案中执行的操作。
图8为本申请实施例提供的另一种数据传输方法流程图。如图8所示,该方法包括:
801、第二端节点接收来自第一端节点的延迟传输信息。
步骤801与步骤401相对应。上述延迟传输信息指示上述第一端节点向上述第二端节点发送第一数据的第一时间信息。在一些实施例中,上述延迟传输信息为一个数据凭证,通过上述数据凭证指示上述第一端节点向上述第二端节点发送上述第一数据的上述第一时间信息;上述数据凭证还用于验证上述第一端节点的身份。在一些实施例中,上述第一端节点和上述第二端节点可以为同一分布式网络(例如移动分布式网络)中的任意两个不同的端节点,还可以是包括多个端节点的对等式网络中的任意两个端节点。在一些实施例中,上述第一端节点可以是客户端/服务器结构中作为服务器的端节点,上述第二端节点可以是客户端/服务器结构中作为客户端的端节点。
802、第二端节点发送第一消息。
上述第一消息为接收到上述延迟传输信息后发送,上述第一消息中包括第一指示信息,上述第一指示信息指示上述第二端节点同意上述第一端节点发送上述第一数据。
在一种可能的实现方式中,第二端节点在执行步骤802之前可执行如下操作:上述第二端节点在上述第一端节点的信用值与第三端节点的信用值之差大于上述信用阈值的情况下,确定发送上述第一消息。上述第二端节点在上述第一端节点的信用值与第三端节点的信用值之差是指上述第一端节点的信用值减去上述第三端节点的信用值得到的信用值。信用阈值可以为根据实际需求设置的一个阈值,例如0.2、0.25、0.3等,信用值的取值范围介于0和1之间。在一些实施例中,延迟传输信息可以为第一端节点待向第二端节点发送上述第一数据的数据凭证,第二端节点在存储有第三端节点待向上述第二端节点发送上述第一数据的数据凭证时,可以比较第一端节点和第三端节点的信用值,选择接受信用较高的数据凭证。也就是说,如果第二端节点的本地未存储第一数据,但该第二端节点的本地存储有待向第二端节点发送第一数据的其他端节点的数据凭证,则比较两个数据凭证,选择接受信用较高的端节点的数据凭证。举例来说,延迟传输信息为第一端节点待向第二端节点发送第一数据的数据凭证,第二端节点存储有第三端节点待向第二端节点发送第一数据的数据凭证,第二端节点在第一端节点的信用值与第三端节点的信用值之差大于信用阈值的情况下,确定接受第一端节点的数据凭证(即延迟传输信息)。又举例来说,延迟传输信息为第一端节点待向第二端节点发送第一数据的数据凭证,第二端节点存储有多个端节点待向第二端节点发送第一数据的多个数据凭证,第二端节点比较第一端节点的信用值与该多个端节点中信用值最高的参考端节点的信用值,若第一端节点的信用值与该参考端节点的信用值之差大于信用阈值,则确定接受第一端节点的数据凭证。在该实现方式中,第一端节点选择信用值较高的端节点向其发送第一数据,可以提高获取第一数据的可靠性。
在另一种可能的实现方式中,第二端节点在执行步骤802之前可执行如下操作:上述第二端节点在上述第一端节点的信用值与第四端节点的信用值的差值的绝对值小于信用阈值,且上述第一时间早于上述第二时间的情况下,确定发送上述第一消息;上述第四端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点,上述第一时间为第一端节点待向上述第二端节点发送上述第一数据的时间,上述第二时间为上述第四端节点待向上述第二端节点发送上述第一数据的时间。可选的,第二端节点在存储有上述第四端节点待向上述第二端节点发送上述第一数据的凭证的情况下,获取上述第四端节点的信用值。应理解,如果第二端节点未存储有其他端节点待向上述第二端节点发送上述第一数据的数据凭证,那么直接接受延迟传输信息就行,因此需要查询是否存储有其他端节点待向上述第二端节点发送上述第一数据的数据凭证,以便于能更快的接收到第一数据。在一些实施例中,延迟传输信息可以为第一端节点待向第二端节点发送上述第一数据的数据凭证,第二端节点在存储有第四端节点待向上述第二端节点发送上述第一数据的数据凭证时,先比较第一端节点的信用值和第四端节点的信用值,在第一端节点的信用值与第四端节点的信用值之差的绝对值不大于信用阈值时,选择向第二端节点发送第一数据的时间较早的数据凭证,例如保留来自第一端节点的数据凭证,并删除第四端节点的数据凭证。在一些实施例中,第一端节点的数据凭证(即延迟传输信息)和第四端节点的数据凭证均携带一个延迟发送时间(对应于第一时间信息),第二端节点可选择接受延迟发送时间较早的数据凭证。举例来说,第一端节点的数据凭证(即延迟传输信息)指示第一端节点向上述第二端节点发送第一数据的第一时间(对应于第一时间信息),第二端节点存储的第四端节点的数据凭证指示第四端节点向上述第二端节点发送第一数据的第二时间,第二端节点在第一端节点的信用值与第四端节点的信用值之差的绝对值不大于信用阈值且该第一时间早于该第二时间的情况下,确定接受第一端节点的数据凭证。在该实现方式中,第二端节点在第一端节点的信用值和第四端节点的信用值之差的绝对值小于信用阈值时,确定接受发送时间更早的第一端节点,可以更快地获得所需的第一数据。
在又一种可能的实现方式中,第二端节点在执行步骤802之前可执行如下操作:上述第二端节点在未存储有任一端节点待向上述第二端节点发送上述第一数据的凭证的情况下,确定发送上述第一消息。在该实现方式中,第二端节点可以及时通知第一端节点向其发送第一数据。
步骤802可替换为:803、第二端节点发送第二消息,上述第二消息为接收到上述延迟传输信息后发送;上述第二消息中包括第二指示信息,上述第二指示信息用于指示上述第二端节点拒绝上述第一端节点发送上述第一数据。
在一种可能的实现方式中,第二端节点在执行步骤803之前可执行如下操作:上述第二端节点在上述第一端节点的信用值与第五端节点的信用值之差的绝对值不大于上述信用阈值且上述第一端节点的信用值小于上述第五端节点的信用值的情况下,确定发送上述第二消息;上述第五端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点。上述信用阈值可以为大于0的实数。在该实现方式中,第一端节点选择信用值较高的端节点向其发送第一数据,可以提高获取第一数据的可靠性。
在另一种可能的实现方式中,第二端节点在执行步骤803之前可执行如下操作:上述第二端节点根据上述第一端节点的信用值与第六端节点的信用值之差,以及第一时间和第三时间,确定发送上述第二消息;上述第六端节点为上述第二端节点同意的待向上述第二端节点发送上述第一数据的端节点,上述第一时间为上述第一端节点待向上述第二端节点发送上述第一数据的时间,上述第三时间为上述第六端节点待向上述第二端节点发送上述第一数据的时间。上述第二端节点根据上述第一端节点的信用值与第六端节点的信用值之差,以及第一时间和第三时间,确定发送上述第二消息可以是:上述第二端节点在上述第一端节点的信用值与上述第六端节点的信用值之差的绝对值不大于信用阈值且上述第一时间不早于上述第三时间的情况下,确定发送上述第二消息。
在该实现方式中,综合考虑端节点的信用值和发送第一数据的时间来选择接受哪个端节点发送第一数据,可以兼顾获得第一数据的速度和可靠性。
在另一种可能的实现方式中,第二端节点在执行步骤803之前可执行如下操作:第二端节点在存储有上述第一数据的情况下,确定发送上述第二消息。在该实现方式中,第二端节点不需要第一端节点向其发送第一数据,可以避免第一端节点向其发送第一数据。
本申请实施例中,第二端节点根据延迟传输信息发送第一消息,能够较快地获取所需的数据;根据延迟传输信息发送第二消息,能够减少数据的冗余传输。
图8中的方法流程是以第二端节点为例,介绍请求端节点执行的方法流程。应理解,在包括多个请求端节点(例如第二端节点)和多个被请求端节点(例如第一端节点)的分布式网络中,一个请求端节点(例如第二端节点)可接受多个被请求端节点中能较快(例如最快)向其提供数据的一个或至少两个被请求端节点向其提供数据,并拒绝其他被请求端节点向其提供数据;这样请求端节点可更快的获取所需数据,被请求端节点可避免数据的冗余传输。举例来说,第二端节点向多个被请求端节点(对应于第一端节点)发送第一数据获取请求,该第一数据获取请求用于获取第一数据;M个被请求端节点(包括第一端节点)接收到该第一数据获取请求,并向该第二端节点发送数据凭证,每个被请求端节点发送的数据凭证指示每个被请求端节点向该第二端节点发送第一数据的时间,M为大于1的整数;该第二端节点可根据多个数据凭证选择(对应于接受)从该M个被请求端节点中选择一个被请求端节点(例如最快向其提供第一数据的端节点或者信用值最高的端节点)向其提供第一数据;被第二端节点选择的被请求端节点向该第二端节点提供第一数据,其他被请求端节点不向该第二端节点发送第一数据。从整个分布式网络来看,多个被请求端节点中的一个端节点或者部分端节点向请求端节点提供请求端节点请求的数据,其他被请求端节点不向请求端节点提供数据。应理解,请求端节点可选择端节点负载较低的被请求端节点向其提供数据,因此可以均衡各被请求端节点的端节点负载,降低网络负载。
本申请实施例中,第二端节点确定接受或者拒绝第一端节点向其发送第一数据,能够更快地获取所需的数据,并降低网络负载。
图9为本申请实施例提供的另一种数据传输方法流程图。图9中的方法流程是对图8中的方法流程的细化和完善。如图9所示,该方法包括:
901、第二端节点向第一端节点发送第一数据获取请求。
上述第一数据获取请求用于获取第一数据。
902、第二端节点接收来自第一端节点的目标数据凭证。
上述目标数据凭证可以为上述延迟传输信息,上述目标数据凭证指示上述第一端节点向上述第二端节点发送上述第一数据的上述第一时间信息;上述数据凭证还用于验证上述第一端节点的身份。
903、第二端节点判断是否已存储有第一数据。
若是,执行步骤910;若否,执行步骤904。
904、第二端节点查询是否存储有第二数据凭证。
若是,执行步骤905;若否,执行步骤908。上述第二数据凭证为第四端节点待向上述第一端节点发送上述第二数据的凭证。为提高资源利用率,杜绝冗余发送,请求端节点(例如第二端节点)在信用度较高场景(例如家庭网络)中仅保留一个数据凭证,即仅向一个端节点请求数据。为提高可靠性,请求端节点(例如第二端节点)在信用度较低场景(例如家庭网络)中保留多个指示延迟发送同一数据的数据凭证,即接受多个端节点请求向其提供同一数据。
905、第二端节点获取第一端节点的信用值和第四端节点的信用值。
906、第二端节点判断第一端节点的信用值和第四端节点的信用值之差的绝对值是否大于信用阈值。
若是,执行步骤907;若否,执行步骤909。
907、第二端节点判断第一端节点的信用值是否大于第四端节点的信用值。
若是,执行步骤908;若否,执行步骤910。
908、第二端节点确定接受目标数据凭证。
在一些实施例中,第二端节点在确定接受目标数据凭证之后,可根据目标数据凭证指示的第一时间信息重启内容定时器,等待第一端节点发送数据。举例来说,第二数据凭证指示第四端节点向第二端节点发送第一数据的延迟时长3s,第二端节点在确定接受第二数据凭证之后,启动内容定时器;第一时间信息为第一端节点向第二端节点发送第一数据的延迟时长2s,第二端节点在确定接受目标数据凭证之后,重启内容定时器(从0开始定时或者从2s开始定时),以便于确定第一端节点是否及时发送第一数据,进而更新第一端节点的信用值或者重新请求第一数据。在第二端节点存储有第二数据凭证(即已接受第二数据凭证)时,第二端节点接受目标数据凭证可理解为:第二端节点更新第一数据对应的数据凭证。在一些实施例中,第二端节点在接受目标数据凭证之后,其他端节点向第二端节点发送第一数据的数据凭证被删除。第二端节点可更新数据凭证,以便于更快地获取所需的数据。
可选的,当请求端节点(即第二端节点)确定接受或拒绝目标数据凭证时,可以选择使用ACK/NACK消息机制来表示接受或者拒绝目标数据凭证。可选的,第二端节点也可以通过ACK+超时的方式表示接受或者拒绝目标数据凭证。例如,第一端节点发送目标数据凭证后,如果在30ms内收到来自第二端节点的ACK消息(对应第一消息),则表示第二端节点接受了目标数据凭证,则第一端节点可在目标时间到来时发送第一数据;反之,若未收到ACK消息则表示第二端节点拒绝目标数据凭证,第一端节点不必向第二端节点发送第一数据。可选的,第二端节点还可以通过NACK+超时的方式表示接受或者拒绝目标数据凭证。例如,第一端节点发送数据目标凭证后,如果在30ms内未收到来自第二端节点的NACK消息,则表示第二端节点接受了目标数据凭证,则第一端节点可在目标时间到来时发送第一数据;反之,若收到NACK,则表示第二端节点拒绝目标数据凭证,第一端节点不必发送第一数据。可选的,第二端节点也可以使用NACK+ACK方式。例如,第一端节点发送目标数据凭证后,如果在30ms内收到来自第二端节点的NACK消息(对应于第二消息),则表示第二端节点拒绝了目标数据凭证;如果在30ms内收到了来自第二端节点的ACK消息(对应于第一消息),则表示第二端节点接受了目标数据凭证,第一端节点在第一时间到来时发送第一数据;若第一端节点未收到ACK消息和NACK消息,则视为丢包,可根据缺省配置,不发送第一数据。
909、第二端节点判断第一时间是否早于第二时间。
上述第一时间为上述第一端节点待向上述第二端节点发送上述第一数据的时间,上述目标数据凭证指示上述第一时间(对应于第一时间信息)。上述第二时间为上述第四端节点待向上述第二端节点发送上述第一数据的时间,上述第二数据凭证指示上述第二时间。若是,执行步骤908;若否,执行步骤910。
910、第二端节点忽略目标数据凭证。
本申请实施例中,第二端节点可先比较第一端节点的信用值C和第四端节点的信用值C’的差值,如果C跟C’的差值小于信用阈值r,但目标数据凭证V对应的预计发送时间rt(即第一时间)大于第二数据凭证V’对应的预计发送时间rt’(即第二时间),则忽略目标数据凭证V,保留第二数据凭证V’,原V’对应rt’的定时器不变,以等待数据发送。示例性的,此处rt’可以为V’对应的第四端节点发送第一数据的剩余等待时间。
911、第二端节点判断在第一参考时间段内是否接收到第一数据。
上述第一参考时间段(对应于目标时间段)可以为包括上述目标数据凭证指示的第一时间(一个时间点)在内的一段时间,也可以是目标数据凭证指示的时间段。举例来说,目标数据凭证携带的第一时间信息为第一时间(一个时间点),第二端节点接受目标数据凭证,第一参考时间段为包括第一时间在内的一段时间。又举例来说,目标数据凭证携带的第一时间信息指示第一时间(一个时间段),第二端节点接受目标数据凭证,第一参考时间段为该第一时间。在一些实施例中,第二端节点在接受一个数据凭证之后,可启动内容定时器,进而确认是否在约定时间内(对应于第一参考时间点)接收到对应的数据。若是,执行步骤912;若否,执行步骤913。
912、第二端节点提高发送第一数据的端节点的信用值。
举例来说,第二端节点接受第一端节点的目标数据凭证,即接受第一端节点在第一时间向第二端节点发送第一数据,若第二端节点在第一参考时间段内接收到来自第一端节点的第一数据,则提高第一端节点的信用值。
913、第二端节点判断在第二参考时间段内是否接收到第一数据。
上述第二参考时间段在上述第一参考时间段之后且与上述第一参考时间段不交叠。第一参考时间段和第二参考时间段均为连续的时间段,且上述第二参考时间段的起始时间点不早于第一参考时间段的结束时间点。举例来说,第一参考时间段为第三时间点(起始时间点)至第四时间点(结束时间点),第二参考时间段为第五时间点(起始时间点)至第六时间点(结束时间点),第五时间点不早于第四时间点。若是,执行步骤914,若否,执行步骤915。
在一些实施例中,第二端节点接受第一端节点的目标数据凭证,第二端节点在发送第一数据(一个数据块)之后,第一端节点和第二端节点已经建立了一个通信连接,由第一端节点(即数据发送方)作为父端节点,第二端节点(即数据接收方)作为子端节点,第一端节点可默认下一个数据块的传输基于已建立的连接。第二端节点在接收完一个数据块(例如第一数据)之后,继续向已建立连接的端节点请求数据;若数据提供方退出网络,第二端节点在等待一个预设时长(例如200ms)之后,将抛弃该离线端节点,重新寻找数据提供者(即提供数据的端节点),继续向数据提供者请求数据,直至接收完全部数据。
914、第二端节点降低发送第一数据的端节点的信用值。
举例来说,第二端节点接受第一端节点的目标数据凭证,即接受第一端节点在第一时间向第二端节点发送第一数据,若第二端节点在第一参考时间段内未接收到来自第一端节点的第一数据且在第二参考时间段内接收到来自第一端节点的第一数据,则降低第一端节点的信用值。
915、第二端节点发送第四数据获取请求。
上述第四数据获取请求用于获取第一数据。第二端节点在第二参考时间段未接收到第一数据时,重新请求第一数据。
本申请实施例中,一方面,第二端节点结合各端节点的信用值和/或预计发送数据的时间,选择接受其中一个端节点向其提供数据,可以提高数据获取效率和可靠性;另一方面,根据被请求端节点是否及时向其提供数据更新被请求端节点的信用值,以便于后续选择接受信用值较高的端节点的数据凭证。
前面分别描述了被请求端节点(例如第一端节点)和请求端节点(例如第二端节点)实现的数据传输方法。在实际应用中,一个通信装置可以仅执行被请求端节点(例如第一端节点)执行的操作,即仅作为被请求端节点;也可以仅执行请求端节点(例如第二端节点)执行的操作,即仅作为请求端节点;还可以既执行被请求端节点(例如第一端节点)执行的操作又执行请求端节点(例如第二端节点)执行的操作,即既作为被请求端节点又作为请求端节点。举例来说,第一端节点可以作为被请求端节点向第二端节点提供第一数据,也可以作为请求端节点向其他端节点请求数据。又举例来说,第二端节点可以作为请求端节点向第一端节点请求第一数据,也可以作为被请求端节点向其他端节点提供数据。
请求端节点(例如第二端节点)在确定是否接受被请求端节点向其提供数据(即是否接受被请求端节点的数据凭证)时,可参考被请求端节点的信用值,这就需要请求端节点可准确地评估各被请求端节点的信用值。下面介绍请求端节点管理被请求接的信用值的方法。
信用评估是用来评估分布式网络中的被请求端节点的信用值。为了防止恶意端节点破坏分布式网络中正常的数据交互,并且能够选择网络状况较好的网络端节点进行数据交互。分布式网络中的每个端节点都需要评估与自己交互端节点的信用值。每个端节点的信用值是请求端节点确定是否接受此端节点的数据凭证的重要参考。下面以第二端节点管理第一端节点的信用值为例,介绍每个端节点如何评估与自己交互的端节点的信用值。
可选的,分布式网络中端节点的信用值计算方法如下:
credit=1/(1+exp(θ-2θr)) (3);
其中,credit表示第一端节点(对应于被请求端节点)的信用值,θ是根据实际需求设置的值,例如默认为8,以使得credit的取值范围介于0和1之间;r是第一端节点履行协议的比例,即第一端节点按预约时间(也称按时)向第二端节点发送数据的次数与第二端节点接受第一端节点的数据凭证的次数的比例。
第一端节点履行协议的比例满足如下公式:
r=(nsuccess+1)/(ntotal+1) (4);
其中,ntotal为第二端节点接受第一端节点的数据凭证的次数,nsuccess为第二端节点记录的第一端节点按预约时间(对应于第一参考时间段)发送数据的次数。
进一步的,每个端节点在本地创建一个账本,用于记录并维护与自己交互的端节点的信用值。第二端节点的本地账本的结构示例如下表1所示。
表1
示例性的,本地账本可包括5个信息:端节点的身份标识peer id、第二端节点接受第一端节点的数据凭证的次数、第一端节点按时发送数据的次数、履约比例r和信用值credit。
当请求端节点接收到某个被请求端节点的数据凭证后,可以在本地账本中寻找该被请求端节点的记录,如果没有记录则可新建该被请求端节点的credit记录。
若请求端节点的本地账本中存在被请求端节点的记录,则可直接使用该被请求端节点的信用值,与其他端节点的信用值进行比较,以决策确定接受哪个被请求端节点的数据凭证,并在账本中修改对应端节点的数据凭证接受次数。
举例来说,请求端节点可根据接受数据凭证指示的延迟发送时间rt,启动定时器,以等待接收所需内容数据,如果数据被按时发送(即定时器未到期),则在账本中修改对应端节点的数据按时发送次数,例如将数据按时发送次数加1,并重新计算履约比例和信用值;如果定时器到期时,请求端节点未接收到被请求端节点发送的所需数据,则根据更新后的数据凭证次数接受次数,更新履约比例r以及信用值credit。
特别是,如果请求端节点接收到被请求端节点直接(立即)发送所需内容,则将该被请求端节点的数据按时发送次数加1。
前面以第二端节点管理第一端节点的信用值为例,介绍了端节点如何评估与自己交互的端节点的信用值的方案。对于一个端节点来说,它评估的与自己交互的被请求端节点的信用值是其否接受此被请求端节点的数据凭证的重要参考。也就是说,请求端节点评估的与自己交互的被请求端节点的信用值可帮助请求端节点选择从合适的端节点(例如合法且运行状况良好的端节点)接收数据,提升了分布式网络的安全性和鲁棒性。
本申请实施例考虑存在恶意端节点的不可信场景,请求端节点根据各被请求端节点的信用值选择接受哪个被请求端节点的数据凭证,提高了系统的抗毁性。另外,本申请采用了mesh-pull的分布式数据分发架构,适用于端节点动态的移动分布式网络。举例来说,本申请实施例提供的数据传输方案适用于多个终端进行文件、高清视频分享的场景。例如在1+8+N(手机+穿戴式设备+物联网设备)生态的局域网或者教育局域网下多终端之间的文件、高清视频分享。
下面介绍实现前述实施例中的数据传输方法的通信装置的结构示意图。图10为本申请实施例提供的一种通信装置的结构示意图。图10中的通信装置可以是前述实施例中的第一端节点。如图10所示,通信装置100包括:
收发模块1001,用于向第二端节点发送延迟传输信息;上述延迟传输信息指示第一端节点向上述第二端节点发送第一数据的第一时间信息;
处理模块1002,用于确定上述第二端节点接受上述延迟传输信息;
收发模块1001,还用于根据上述第一时间信息通过收发模块1001在目标时间向上述第二端节点发送上述第一数据,上述目标时间为根据上述第一时间信息确定;
或者,处理模块1002,用于确定上述第二端节点拒绝上述延迟传输信息,取消传输上述第一数据。
在一种可能的实现方式中,处理模块1002,还用于创建向上述第二端节点发送上述第一数据的发送任务;处理模块1002,具体用于取消上述发送任务。
在一个可能的实现方式中,处理模块1002,具体用于不创建向上述第二端节点发送上述第一数据的发送任务。
在一种可能的实现方式中,处理模块1002,具体用于在收发模块1001接收来自上述第二端节点的第一消息的情况下,确定上述第二端节点接受上述延迟传输信息;上述第一消息为上述第二端节点在接收到上述延迟传输信息后发送;上述第一消息中包括第一指示信息,上述第一指示信息指示上述第二端节点同意上述第一端节点发送上述第一数据。
图10中的收发模块1001可以是一个模块,也可以是两个独立的模块。举例来说,收发模块1001由一个收发器实现。又举例来说,收发模块1001包括发送模块和接收模块,发送模块的功能由发送器实现,收发模块的功能由接收器实现。
在一个可能的实现方式中,处理模块1002,具体用于在收发模块1001发送上述延迟传输信息后的第一时长内收发模块1001未接收到来自上述第二端节点的第三消息的情况下,确定上述第二端节点接受上述延迟传输信息;上述第三信息中包括第三指示信息,上述第三指示信息用于指示上述第二端节点拒绝上述第一端节点发送上述第一数据。
在一个可能的实现方式中,处理模块1002,具体用于在收发模块1001接收来自上述第二端节点的第二消息的情况下,确定上述第二端节点拒绝上述延迟传输信息,上述第二消息为上述第二端节点在接收到上述延迟传输信息后发送;上述第二消息中包括第二指示信息,上述第二指示信息用于指示上述第二端节点拒绝上述第一端节点发送上述第一数据。
在一个可能的实现方式中,处理模块1002,具体用于在收发模块1001发送上述延迟传输信息后的第二时长内收发模块1001未接收到来自上述第二端节点的第四消息的情况下,确定上述第二端节点拒绝上述延迟传输信息;上述第四信息中包括第四指示信息,上述第四指示信息用于指示上述第二端节点同意上述第一端节点发送上述第一数据。
在一个可能的实现方式中,上述延迟传输信息为一个数据凭证,通过上述数据凭证指示上述第一端节点向上述第二端节点发送上述第一数据的上述第一时间信息;上述数据凭证还用于验证上述第一端节点的身份。
在一个可能的实现方式中,处理模块1002,还用于根据负载量,确定第一延迟时间信息;根据上述第一延迟时间信息,生成上述延迟传输信息;上述第一时间信息为根据上述第一延迟时间信息获取,上述第一延迟时间信息根据上述负载量获得。
在一个可能的实现方式中,上述处理模块根据负载量,确定第一延迟时间信息的计算方式如下:
其中,rt1为第一延迟时间信息,i表示第一端节点,j表示第二端节点,f和f′为端节点i(即第一端节点)的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量(即当前待发送的数据量),UBi是端节点i的发送带宽(即向其他端节点发送数据的带宽),Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。
在一个可能的实现方式中,处理模块1002,具体用于在存储有上述第一数据且上述负载量大于负载阈值的情况下,根据上述负载量确定上述第一延迟时间信息。
在一个可能的实现方式中,处理模块1002,还用于根据第二时间信息,生成上述延迟传输信息;上述第一时间信息为根据上述第二时间信息获取;上述第二时间信息为预估的上述第一端节点获得上述第一数据的时间信息。
在一个可能的实现方式中,处理模块1002,具体用于根据上述第二时间信息,确定第二延迟时间信息;根据上述第二延迟时间信息,生成上述延迟传输信息;上述第一时间信息为根据上述第二延迟时间信息获取。
在一个可能的实现方式中,处理模块1002根据第二时间信息,确定第二延迟时间信息的计算公式如下:
其中,rt2为第二延迟时间信息,rt[i-1]为预估的当前时刻至上述第一端节点获得上述第一数据的时刻之间的时长,i表示第一端节点,j表示第二端节点,f和f′为端节点i的文件资源,size(f)为第一数据的数据量,size(f′)为第一端节点正在处理的队列的数据量,UBi是端节点i的发送带宽,Di,j为端节点i和端节点j之间的数据传输时延,此参数一般影响较小,可作为可选参数。
在一个可能的实现方式中,收发模块1001,还用于接收用于获取第二数据的数据请求;处理模块1002还用于在未存储有上述第二数据且未待获得上述第二数据的情况下,拒绝上述数据请求。
在一个可能的实现方式中,上述未存储有上述第二数据且未待获得上述第二数据的情况包括;未存储有上述第二数据且未存储有第一数据凭证;上述第一数据凭证为除任意端节点待向上述第一端节点发送上述第二数据的凭证。
图11为本申请实施例提供的另一种通信装置的结构示意图。图11中的通信装置可以是前述实施例中的第一端节点。如图11所示,通信装置110包括:
通信模块1101,用于接受和/或发送报文。例如接收第一数据获取请求(可称为内容请求报文)、发送延迟传输信息(可理解为内容请求报文的响应消息)、接收其他端节点的数据凭证(对应于其他端节点发送此内容的预计时间)等。
报文处理模块1102,用于解析接收到的报文,或者构造需要发送的报文。例如,解析内容请求报文(即第一数据获取请求),解析接收到的第一响应或第二响应,构造延迟传输信息等。此外,该模块负责将解析后的消息内容交付给其他模块处理,例如收到内容请求报文后根据负载状况确定如何响应内容请求报文、收到数据凭证后确认如何处理等。
内容请求处理模块1103,用于在接收到内容请求报文后,向内容管理模块确认是否存在此内容数据报文所请求的内容数据;若存在,则向负载检测模块获取本端节点的当前端节点负载,根据负载情况决定是及时发送内容数据,还是延迟发送内容数据,并负责计算延迟发送时间,以便将数据凭证发送给请求端节点;若请求端节点接受该数据凭证,则将该数据凭证传输给数据凭证管理模块处理。
内容管理模块1104,用于管理本地存储的内容数据,并且当收到数据凭证管理模块的延迟发送内容数据的时间到的指示时,发送对应的内容数据给请求端节点。
负载检测模块1105,用于监测当前端节点负载,当内容请求处理模块获取端节点负载时,将当前端节点负载发送给内容请求处理模块。
数据凭证管理模块1106,用于存储本端节点相关内容数据的数据凭证(对应内容数据的预计发送时间),当内容请求处理模块生成了新的数据凭证后,发送给该模块进行存储,并且根据预计发送时间启动定时器,以便触发对应的内容数据发送。还用于存储接收到的其他端节点的数据凭证,当内容请求处理模块请求是否存在跟任一内容数据相对应的数据凭证时,根据内容标识确定,如果存在,将其他端节点的数据凭证处理后发送给内容请求处理模块。
应理解,通信模块1101对应于图10中的收发模块1001,报文处理模1102、内容请求处理模块1103、内容管理模块1104、负载检测模块1105以及数据凭证管理模块1106均对应于图10中的处理模块1002。图11中的结构可以视为图10中的结构的进一步细化。图10和图11中的通信装置可以是终端设备,例如手机、平板电脑、台式电脑等,也可以是服务器。
图12为本申请实施例提供的另一种通信装置的结构示意图。图12中的通信装置可以是前述实施例中的第二端节点。如图12所示,通信装置120包括:
收发模块1201,用于接收来自第一端节点的延迟传输信息;上述延迟传输信息指示第一端节点向上述第二端节点发送第一数据的第一时间信息;
收发模块1201,还用于发送处理模块1202生成的第一消息,上述第一消息为接收到上述延迟传输信息后发送,上述第一消息中包括第一指示信息,上述第一指示信息指示上述第二端节点同意上述第一端节点发送上述第一数据;
或者,收发模块1201,还用于发送处理模块1202生成的第二消息,上述第二消息为接收到上述延迟传输信息后发送;上述第二消息中包括第二指示信息,上述第二指示信息用于指示上述第二端节点拒绝上述第一端节点发送上述第一数据。
在一个可能的实现方式中,上述延迟传输信息为一个数据凭证,通过上述数据凭证指示上述第一端节点向上述第二端节点发送上述第一数据的上述第一时间信息;上述数据凭证还用于验证上述第一端节点的身份。
在一个可能的实现方式中,处理模块1202,还用于当上述第一端节点的信用值大于第三端节点的信用值,确定发送上述第一消息;上述第三端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点。
在一个可能的实现方式中,处理模块1202,还用于当上述第一端节点的信用值大于第三端节点的信用值,且上述第一端节点的信用值与上述第三端节点的信用值之差大于信用阈值,确定发送上述第一消息;上述第三端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点。
在一个可能的实现方式中,处理模块1202,还用于当第一时间早于第二时间,确定发送上述第一消息;上述第一时间为第一端节点待向上述第二端节点发送上述第一数据的时间,上述第二时间为第四端节点待向上述第二端节点发送上述第一数据的时间,上述第四端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点。
在一个可能的实现方式中,处理模块1202,具体用于当上述第一端节点的信用值与上述第四端节点的信用值的差值的绝对值小于信用阈值,且上述第一时间早于上述第二时间,确定发送上述第一消息。
在一个可能的实现方式中,处理模块1202,还用于在存储有上述第四端节点待向上述第二端节点发送上述第一数据的数据凭证的情况下,获取上述第四端节点的信用值。
在一个可能的实现方式中,处理模块1202,还用于在未存储有任一端节点待向上述第二端节点发送上述第一数据的凭证的情况下,确定发送上述第一消息。
在一个可能的实现方式中,处理模块1202,还用于当上述第一端节点的信用值不大于第五端节点的信用值,确定发送上述第二消息;上述第五端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点。
在一个可能的实现方式中,处理模块1202,还用于当上述第一端节点的信用值不大于第五端节点的信用值,且上述第一端节点的信用值与上述第三端节点的信用值之差的绝对值大于信用阈值,上述第二端节点确定发送上述第二消息;上述第五端节点为上述第二端节点同意的向上述第二端节点发送上述第一数据的端节点。
在一个可能的实现方式中,处理模块1202,还用于当第一时间不早于第三时间,确定发送上述第二消息;上述第一时间为上述第一端节点待向上述第二端节点发送上述第一数据的时间,上述第三时间为第六端节点待向上述第二端节点发送上述第一数据的时间,上述第六端节点为上述第二端节点同意的待向上述第二端节点发送上述第一数据的端节点。
在一个可能的实现方式中,处理模块1202,具体用于当上述第一端节点的信用值与上述第六端节点的信用值的差值的绝对值小于信用阈值,且上述第一时间不早于上述第三时间,确定发送上述第二消息。
在一个可能的实现方式中,处理模块1202,还用于在目标时间段内接收到来自上述第一端节点的上述第一数据的情况下,提高上述第一端节点的信用值;上述目标时间段为根据上述第一时间信息获得;在上述目标时间段内未接收到来自上述第一端节点的上述第一数据的情况下,降低上述第一端节点的信用值。
图13为本申请实施例提供的一种通信装置的结构示意图。图13中的通信装置可以是前述实施例中的第二端节点。如图13所示,通信装置130包括:
通信模块1301,用于接受和发送报文。例如,发送内容请求报文(对应于第一数据获取请求)、发送第一响应或第二响应、接收其他端节点发送的内容数据(例如第一数据)、接收其他端节点的针对内容请求报文的数据凭证(例如延迟传输信息)等。
报文处理模块1302:用于解析接收到的报文,或者构造需要发送的报文。例如构造内容请求报文,构造第一响应或第二响应,解析延迟传输信息等。此外,该模块负责将解析后的消息内容交付给其他模块处理,例如收到内容数据后交予内容管理模块处理、收到数据凭证后交于数据凭证管理模块确定如何响应等。
内容管理模块1303,用于管理和维护本地的内容数据,包括接收到的源数据端节点的内容数据;根据本端节点的上层需要,触发报文处理模块,向外部端节点发送内容请求报文。根据接收到的所需内容数据的数据凭证,启动定时器,确认是否在规定的时间内接收到对应的内容数据,以便告知信用管理模块更新对应端节点的信用值;以及决策是否需要重新触发内容请求报文。
数据凭证管理模块1304,用于维护并管理本端节点相关内容的数据凭证(对应内容数据的预计发送时间);当通信模块1301接收到新的数据凭证后,发送给该模块进行处理,该模块根据从信用管理模块获得的对应端节点的信用值,确定接收或者拒绝此数据凭证,并且告知内容管理模块,所需内容数据预计到达的时间,以便内容管理模块监控是否能在规定的时间内接收到对应的内容数据。
信用管理模块1305,用于维护管理与之通信的端节点的信用值,并提供给数据凭证管理模块,决策接受/拒绝对应端节点的数据凭证。
应理解,通信模块1301对应于图12中的收发模块1201,报文处理模1302、内容管理模块1303、数据凭证管理模块1304以及信用管理模块1305均对应于图12中的处理模块1202。图13中的结构可以视为图12中的结构的进一步细化。图10和图11中的通信装置可以是终端设备,例如手机、平板电脑、台式电脑等,也可以是网络设备。
应理解,通信装置中的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个模块可以为单独设立的处理元件,也可以集成在终端的某一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由处理器的某一个处理元件调用并执行以上各个模块的功能。此外各个模块可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如网络处理器或中央处理器(英文:central processing unit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digital signal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field-programmable gate array,简称:FPGA)等。
图14为本申请实施例提供的一种通信装置的结构示意图。图14中的通信装置可以是上述第一端节点,也可以是第二端节点。
如图14所示。该通信装置140包括至少一个处理器1420,用于实现本申请实施例提供的方法中第一端节点的功能;或者,用于实现本申请实施例提供的方法中第二端节点的功能。该通信装置140还可以包括收发器1410。收发器1410用于通过传输介质和其他设备/装置进行通信。处理器1420利用收发器1410收发数据和/或信令,并用于实现上述方法实施例中的方法。
可选的,通信装置140还可以包括至少一个存储器1430,用于存储程序指令和/或数据。存储器1430和处理器1420耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1420可能和存储器1430协同操作。处理器1420可能执行存储器1430中存储的程序指令。该至少一个存储器中的至少一个可以包括于处理器中。
本申请实施例中不限定上述收发器1410、处理器1420以及存储器1430之间的具体连接介质。本申请实施例在图14中以存储器1430、处理器1420以及收发器1410之间通过总线1440连接,总线在图14中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
可理解,在通信装置140为第一端节点时,收发器1410实现收发模块1001的功能,处理器1420实现处理模块1002的功能。或者,在通信装置140为第一端节点时,收发器1410实现通信模块1101的功能,处理器1420实现报文处理模1102、内容请求处理模块1103、内容管理模块1104、负载检测模块1105以及数据凭证管理模块1106的功能。在通信装置140为第二端节点时,收发器1410实现收发模块1201的功能,处理器1420实现处理模块1202的功能。或者,在通信装置140为第二端节点时,收发器1410实现通信模块1301的功能,处理器1420实现报文处理模1302、内容管理模块1303、数据凭证管理模块1304以及信用管理模块1305的功能。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机代码,当计算机代码在计算机上运行时,使得计算机执行上述实施例的方法。
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机代码或计算机程序,当该计算机代码或计算机程序在计算机上运行时,使得上述实施例中的数据传输方法被执行。
本申请还提供一种通信系统,包括上述第一端节点和上述第二端节点。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以上述权利要求的保护范围为准。
Claims (32)
1.一种数据传输方法,其特征在于,包括:
第一端节点向第二端节点发送延迟传输信息;所述延迟传输信息指示所述第一端节点将将向所述第二端节点发送第一数据的第一时间信息;
所述第一端节点确定所述第二端节点接受所述延迟传输信息;
所述第一端节点根据所述第一时间信息在目标时间向所述第二端节点发送所述第一数据,所述目标时间为根据所述第一时间信息确定;或者,所述第一端节点确定所述第二端节点拒绝所述延迟传输信息,所述第一端节点取消传输所述第一数据。
2.根据权利要求1所述的方法,其特征在于,
所述第一端节点确定所述第二端节点接受所述延迟传输信息包括:
所述第一端节点接收来自所述第二端节点的第一消息,所述第一消息为所述第二端节点在接收到所述延迟传输信息后发送;
所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据。
3.根据权利要求1所述的方法,其特征在于,所述第一端节点确定所述第二端节点拒绝所述延迟传输信息包括:
所述第一端节点接收来自所述第二端节点的第二消息,所述第二消息为所述第二端节点在接收到所述延迟传输信息后发送;
所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
5.根据权利要求1至4任一项所述的方法,其特征在于,在第一端节点向第二端节点发送延迟传输信息之前,所述方法还包括:
所述第一端节点根据负载量,确定第一延迟时间信息;所述第一延迟时间信息根据所述负载量获得;
所述第一端节点根据所述第一延迟时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第一延迟时间信息获取。
6.根据权利要求5所述的方法,其特征在于,所述第一端节点根据负载量,确定第一延迟时间信息包括:
所述第一端节点在存储有所述第一数据且所述负载量大于负载阈值的情况下,根据所述负载量确定所述第一延迟时间信息。
7.根据权利要求1至4任一项所述的方法,其特征在于,在第一端节点向第二端节点发送延迟传输信息之前,所述方法还包括:
所述第一端节点根据第二时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第二时间信息获取;所述第二时间信息为预估的所述第一端节点获得所述第一数据的时间信息。
8.一种数据传输方法,其特征在于,包括:
第二端节点发送第一消息,所述第一消息为接收到延迟传输信息后发送,所述延迟传输消息为第一端节点发送的,所述延迟传输信息指示所述第一端节点将向所述第二端节点发送第一数据的第一时间信息,所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据;
或者,所述第二端节点发送第二消息,所述第二消息为接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
9.根据权利要求8所述的方法,其特征在于,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
10.根据权利要求8或9所述的方法,其特征在于,所述第二端节点发送所述第一消息之前,所述方法还包括:
当所述第一端节点的信用值大于第三端节点的信用值,所述第二端节点确定发送所述第一消息;所述第三端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
11.根据权利要求8或9所述的方法,其特征在于,所述第二端节点发送所述第一消息之前,所述方法还包括:
当第一时间早于第二时间,所述第二端节点确定发送所述第一消息;所述第一时间为第一端节点待向所述第二端节点发送所述第一数据的时间,所述第二时间为第四端节点待向所述第二端节点发送所述第一数据的时间,所述第四端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
12.根据权利要求8或9所述的方法,其特征在于,所述第二端节点发送第二消息之前,所述方法还包括:
当所述第一端节点的信用值不大于第五端节点的信用值,所述第二端节点确定发送所述第二消息;所述第五端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
13.根据权利要求8或9所述的方法,其特征在于,所述第二端节点发送第二消息之前,所述方法还包括:
当第一时间不早于第三时间,确定发送所述第二消息;所述第一时间为所述第一端节点待向所述第二端节点发送所述第一数据的时间,所述第三时间为第六端节点待向所述第二端节点发送所述第一数据的时间,所述第六端节点为所述第二端节点同意的待向所述第二端节点发送所述第一数据的端节点。
14.根据权利要求10至13任一项所述的方法,其特征在于,在第二端节点接收来自第一端节点的延迟传输信息之后,所述方法还包括:
所述第二端节点在目标时间段内接收到来自所述第一端节点的所述第一数据的情况下,提高所述第一端节点的信用值;所述目标时间段为根据所述第一时间信息获得;
所述第二端节点在所述目标时间段内未接收到来自所述第一端节点的所述第一数据的情况下,降低所述第一端节点的信用值。
15.一种通信装置,其特征在于,包括:
收发模块,用于向第二端节点发送延迟传输信息;所述延迟传输信息指示第一端节点向所述第二端节点发送第一数据的第一时间信息;
处理模块,用于确定所述第二端节点接受所述延迟传输信息;根据所述第一时间信息指示所述收发模块在目标时间向所述第二端节点发送所述第一数据,所述目标时间为根据所述第一时间信息确定;或者,所述处理模块,用于确定所述第二端节点拒绝所述延迟传输信息,取消传输所述第一数据。
16.根据权利要求15所述的通信装置,其特征在于,
所述处理模块,具体用于在所述收发模块接收来自所述第二端节点的第一消息的情况下,确定所述第二端节点接受所述延迟传输信息,所述第一消息为所述第二端节点在接收到所述延迟传输信息后发送;所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据。
17.根据权利要求15所述的通信装置,其特征在于,
所述处理模块,具体用于在所述收发模块接收来自所述第二端节点的第二消息的情况下,确定所述第二端节点拒绝所述延迟传输信息,所述第二消息为所述第二端节点在接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
18.根据权利要求15至17任一项所述的通信装置,其特征在于,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
19.根据权利要求15至18任一项所述的通信装置,其特征在于,
所述处理模块,还用于根据负载量,确定第一延迟时间信息;所述第一延迟时间信息根据所述负载量获得;根据所述第一延迟时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第一延迟时间信息获取。
20.根据权利要求19所述的通信装置,其特征在于,
所述处理模块,具体用于在所述第一端节点存储有所述第一数据且所述负载量大于负载阈值的情况下,根据所述负载量确定所述第一延迟时间信息。
21.根据权利要求15至18任一项所述的通信装置,其特征在于,
所述处理模块,还用于根据第二时间信息,生成所述延迟传输信息;所述第一时间信息为根据所述第二时间信息获取;所述第二时间信息为预估的所述第一端节点获得所述第一数据的时间信息。
22.一种通信装置,其特征在于,包括:
收发模块,用于接收来自第一端节点的延迟传输信息,所述延迟传输信息指示所述第一端节点向第二端节点发送第一数据的第一时间信息;
所述收发模块,还用于发送第一消息,所述第一消息为接收到所述延迟传输信息后发送,所述第一消息中包括第一指示信息,所述第一指示信息指示所述第二端节点同意所述第一端节点发送所述第一数据;或者,所述收发模块,还用于发送第二消息,所述第二消息为接收到所述延迟传输信息后发送;所述第二消息中包括第二指示信息,所述第二指示信息用于指示所述第二端节点拒绝所述第一端节点发送所述第一数据。
23.根据权利要求22所述的通信装置,其特征在于,所述延迟传输信息为一个数据凭证,通过所述数据凭证指示所述第一端节点向所述第二端节点发送所述第一数据的所述第一时间信息;所述数据凭证还用于验证所述第一端节点的身份。
24.根据权利要求22或23所述的通信装置,其特征在于,还包括:
处理模块,用于当所述第一端节点的信用值大于第三端节点的信用值,确定发送所述第一消息;所述第三端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
25.根据权利要求22或23所述的通信装置,其特征在于,还包括:
处理模块,用于当第一时间早于第二时间,确定发送所述第一消息;所述第一时间为第一端节点待向所述第二端节点发送所述第一数据的时间,所述第二时间为第四端节点待向所述第二端节点发送所述第一数据的时间,所述第四端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
26.根据权利要求22或23所述的通信装置,其特征在于,还包括:
处理模块,用于当所述第一端节点的信用值不大于第五端节点的信用值,确定发送所述第二消息;所述第五端节点为所述第二端节点同意的向所述第二端节点发送所述第一数据的端节点。
27.根据权利要求22或23所述的通信装置,其特征在于,还包括:
处理模块,用于当第一时间不早于第三时间,确定发送所述第二消息;所述第一时间为所述第一端节点待向所述第二端节点发送所述第一数据的时间,所述第三时间为第六端节点待向所述第二端节点发送所述第一数据的时间,所述第六端节点为所述第二端节点同意的待向所述第二端节点发送所述第一数据的端节点。
28.根据权利要求24至27任一项所述的通信装置,其特征在于,
所述处理模块,还用于在目标时间段内接收到来自所述第一端节点的所述第一数据的情况下,提高所述第一端节点的信用值;所述目标时间段为根据所述第一时间信息获得;在所述目标时间段内未接收到来自所述第一端节点的所述第一数据的情况下,降低所述第一端节点的信用值。
29.一种通信装置,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述通信装置执行如权利要求1-7任一项所述的方法。
30.一种通信装置,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述通信装置执行如权利要求8-14任一项所述的方法。
31.一种计算机可读存储介质,其特征在于,包括所述计算机可读存储介质用于存储指令,当所述指令被执行时,使如权利要求1-7任一项所述的方法被实现。
32.一种计算机可读存储介质,其特征在于,包括所述计算机可读存储介质用于存储指令,当所述指令被执行时,使如权利要求8-14任一项所述的方法被实现。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249398.4A CN114553886A (zh) | 2020-11-10 | 2020-11-10 | 数据传输方法和通信装置 |
PCT/CN2021/129299 WO2022100546A1 (zh) | 2020-11-10 | 2021-11-08 | 数据传输方法和通信装置 |
EP21891071.9A EP4231607A4 (en) | 2020-11-10 | 2021-11-08 | DATA TRANSMISSION METHOD AND COMMUNICATION DEVICE |
US18/314,342 US20230275962A1 (en) | 2020-11-10 | 2023-05-09 | Data transmission method and communication apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249398.4A CN114553886A (zh) | 2020-11-10 | 2020-11-10 | 数据传输方法和通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114553886A true CN114553886A (zh) | 2022-05-27 |
Family
ID=81600804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011249398.4A Pending CN114553886A (zh) | 2020-11-10 | 2020-11-10 | 数据传输方法和通信装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230275962A1 (zh) |
EP (1) | EP4231607A4 (zh) |
CN (1) | CN114553886A (zh) |
WO (1) | WO2022100546A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151187A1 (en) * | 2003-01-31 | 2004-08-05 | Lichtenstein Walter D. | Scheduling data transfers for multiple use requests |
CN102421140A (zh) * | 2010-09-28 | 2012-04-18 | 华为技术有限公司 | 网关数据传输方法、装置和系统 |
CN103716136A (zh) * | 2013-12-23 | 2014-04-09 | 上海网达软件股份有限公司 | 一种数据传送方法及系统 |
CN103731809A (zh) * | 2012-10-15 | 2014-04-16 | 华为技术有限公司 | 数据发送方法、接收方法及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7903556B2 (en) * | 2005-11-03 | 2011-03-08 | Hewlett-Packard Development Company, L.P. | Method of controlling data transfers between nodes in a computer system |
CN106413107B (zh) * | 2015-07-28 | 2019-10-18 | 华为技术有限公司 | 一种控制信号发送、接收方法及设备 |
JP6455939B2 (ja) * | 2016-09-27 | 2019-01-23 | 株式会社デンソーテン | 通信方法 |
EP3577880B1 (en) * | 2017-02-03 | 2021-04-07 | Telefonaktiebolaget LM Ericsson (Publ) | Deferring a transmission of a message |
-
2020
- 2020-11-10 CN CN202011249398.4A patent/CN114553886A/zh active Pending
-
2021
- 2021-11-08 WO PCT/CN2021/129299 patent/WO2022100546A1/zh unknown
- 2021-11-08 EP EP21891071.9A patent/EP4231607A4/en active Pending
-
2023
- 2023-05-09 US US18/314,342 patent/US20230275962A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151187A1 (en) * | 2003-01-31 | 2004-08-05 | Lichtenstein Walter D. | Scheduling data transfers for multiple use requests |
CN102421140A (zh) * | 2010-09-28 | 2012-04-18 | 华为技术有限公司 | 网关数据传输方法、装置和系统 |
CN103731809A (zh) * | 2012-10-15 | 2014-04-16 | 华为技术有限公司 | 数据发送方法、接收方法及设备 |
CN103716136A (zh) * | 2013-12-23 | 2014-04-09 | 上海网达软件股份有限公司 | 一种数据传送方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4231607A1 (en) | 2023-08-23 |
US20230275962A1 (en) | 2023-08-31 |
EP4231607A4 (en) | 2023-10-18 |
WO2022100546A1 (zh) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7978631B1 (en) | Method and apparatus for encoding and mapping of virtual addresses for clusters | |
KR101837871B1 (ko) | 종단간 m2m 서비스 계층 세션 | |
US9392081B2 (en) | Method and device for sending requests | |
US11765584B2 (en) | Message processing method and system, and user plane function device | |
US20150237525A1 (en) | Traffic Shaping and Steering for a Multipath Transmission Control Protocol Connection | |
JP2018512645A (ja) | メッセージバスサービスディレクトリ | |
EP3100471A1 (en) | Context-aware and proximity-aware service layer connectivity management | |
TW201006272A (en) | Method and apparatus for maintaining communications connections over a distributed wireless network | |
WO2018219148A1 (zh) | 一种管理传输网切片的方法、装置及系统 | |
WO2012006595A2 (en) | Transparent proxy architecture for multi-path data connections | |
US9621412B2 (en) | Method for guaranteeing service continuity in a telecommunication network and system thereof | |
WO2012151994A1 (zh) | 资源下载方法、装置及系统 | |
US20150127837A1 (en) | Relay apparatus and data transfer method | |
Nour et al. | NNCP: A named data network control protocol for IoT applications | |
Park et al. | Smart base station-assisted partial-flow device-to-device offloading system for video streaming services | |
US9553790B2 (en) | Terminal apparatus and method of controlling terminal apparatus | |
WO2018113504A1 (zh) | 一种用户面锚点选择方法及装置 | |
JP2007524258A (ja) | モバイルピアツーピアネットワーク構築 | |
CN105656978A (zh) | 一种资源共享方法及装置 | |
CN104660550A (zh) | 一种在多服务器之间进行会话迁移的方法 | |
WO2013023479A1 (zh) | 负荷分担方法、装置和系统 | |
CN110063050B (zh) | 一种业务调度方法及系统 | |
CN114553886A (zh) | 数据传输方法和通信装置 | |
CN108449281B (zh) | 网络流量协同卸载方法及协同卸载控制器 | |
Zhu et al. | Content-oriented transport protocol |
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 |