CN116800767A - 移动对等设备之间的分块文件传送 - Google Patents

移动对等设备之间的分块文件传送 Download PDF

Info

Publication number
CN116800767A
CN116800767A CN202210391844.8A CN202210391844A CN116800767A CN 116800767 A CN116800767 A CN 116800767A CN 202210391844 A CN202210391844 A CN 202210391844A CN 116800767 A CN116800767 A CN 116800767A
Authority
CN
China
Prior art keywords
amount
determining
time
communication range
packet
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
Application number
CN202210391844.8A
Other languages
English (en)
Inventor
L.格里芬
P-Y.奇邦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Red Hat
Original Assignee
Red Hat
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Red Hat filed Critical Red Hat
Publication of CN116800767A publication Critical patent/CN116800767A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/46Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开的实施例提供了用于在移动环境中文件的对等共享的技术。响应于进入第二设备的通信范围内,处理设备可以确定第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量。可以确定在与第二设备的传送窗口期间可以在第一和第二设备之间传送的数据量。可以将第一和第二设备的包清单进行比较以确定需要更新的第一设备的包的集合。可以基于在送窗口期间可以在第一设备与第二设备之间传送的数据量,从第二设备接收包的集合中的第一包的多个块。

Description

移动对等设备之间的分块文件传送
技术领域
本公开的各方面涉及文件(例如,包、固件更新)的对等传送,并且更具体地,涉及在对等设备可以是移动的和/或在有限时间段内通信的环境中的文件的对等传送。
背景技术
分块文件传送服务(CFTS),也称为分块文件编码,是一种流数据传送机制,其中数据流被划分为一系列非重叠的“块”。每个块彼此独立地发送和接收。在任何给定时间,发送器和接收器两者都不需要知道当前正在处理的块之外的数据流。CFTS可以在诸如移动物联网(IoT)域之类的环境中使用,其中共享相同配置、策略和身份存储的IoT设备群可能希望彼此共享各种包和对其的更新。
附图说明
通过参考结合附图进行的以下描述,可以最好地理解所描述的实施例及其优点。在不脱离所描述的实施例的精神和范围的情况下,这些附图决不限制本领域技术人员可以对所描述的实施例进行的形式和细节上的任何改变。
图1A是示出根据本公开的一些实施例的示例系统的框图。
图1B是示出根据本公开的一些实施例的示例系统的框图,其中系统的设备处于运动中。
图2A是示出根据本公开的一些实施例的在运动中的两个设备之间的对等分块文件传送的框图。
图2B是示出根据本公开的一些实施例的在运动中的两个设备之间的对等分块文件传送的框图
图2C是示出根据本公开的一些实施例的在运动中的两个设备之间的对等分块文件传送的框图
图3是示出根据本公开的一些实施例的由第一设备请求包的块的框图,第一设备已经为该包的块接收了一些块。
图4是根据本公开的一些实施例的用于在运动中的两个设备之间的对等分块文件传送的方法的流程图。
图5是根据本公开的一些实施例的在运动中的两个设备之间的对等分块文件传送期间优先考虑包的方法的流程图。
图6是根据本公开的一些实施例的可以执行本文所描述的一个或多个操作的示例计算设备的框图。
具体实施方式
例如,移动IoT环境中的设备可以包括包管理器,当到包储存库(例如, RPM或Yum储存库)的出站互联网连接(或其他适当的连接)可用时,包管理器可以推断在相应设备上运行的包的最新版本,并从包储存库拉取对应的更新。然而,在其中设备中的每一个(例如,道路上的车辆)处于运动中的环境中,这样的出站连接可能不容易和/或始终可用。
在运动中并且需要对等通信来接收文件/更新的设备上的文件传送可能是困难的,因为设备可能没有在相同的物理空间中(例如,在彼此的通信范围内)足够长的时间来完成所需文件的传送。这种场景的一个示例涉及在道路上运动的车辆,其中车辆以相对高的速度移动,并因此具有狭窄的窗口,在该窗口内便于文件的传送。当设备在时间或速度任一者上受到带宽约束(例如,因为它们被如此活跃地使用)以及相对于计算资源(计算带宽)受到约束时,这个问题可能会加剧。另外,某些包可能被频繁地更新(例如,利用补丁更新、错误修复等),从而导致设备上的软件在这样的场景中迅速地变得过时。
本公开通过提供在使用CFTS的移动环境中的文件的对等共享技术来解决上述和其他缺陷。更具体地,本公开的实施例可以利用处理设备来响应于进入第二设备的通信范围内而确定第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量。可以基于两个计算设备的速度和方向来进行该确定。响应于确定第二设备将保持在与第一设备的通信范围内达至少阈值时间量,可以确定在第二设备将保持在与第一设备的通信范围内的最小时间量期间可以从第二设备传送到第一设备的数据量。可以对第一设备和第二设备中的每一个的可用通信带宽和可用计算带宽进行该确定。可以将第一设备的包清单与第二设备的包清单进行比较以确定需要更新的第一设备的包的集合。基于在最小时间量期间可以从第二设备传送到第一设备的数据量,可以从第二设备接收第一设备的包的集合中的第一包的多个块。与正常的加窗技术不同,本公开的实施例不仅基于带宽而且还基于速度和方向来提供块大小的动态计算,以确定两个计算设备何时将不再处于通信范围内以及在该时间之前可以传送什么。
图1是示出示例系统100的框图。如图1所示,系统100包括计算设备 110、120、130和140。计算设备110-140可以经由网络150彼此耦合(例如,可以操作地耦合、通信地耦合、可以彼此通信数据/消息)。网络150可以是共有网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN)) 或其组合。在一个实施例中,网络150可以包括有线或无线基础设施,其可以由一个或多个无线通信系统提供,该一个或多个无线通信系统诸如与网络 150连接的WiFiTM热点和/或可以使用各种数据处理装备、通信塔(例如,蜂窝塔)等实施的无线载波系统。网络150可以承载计算设备110-140之间的通信(例如,数据、消息、分组、帧等)。计算设备110-140中的每一个可以包括硬件,诸如处理设备115A(例如,处理器、中央处理单元(CPU)存储器115B(例如,随机存取存储器(RAM)、存储设备(例如,硬盘驱动(HDD)、固态驱动(SSD)等)和其他硬件设备(例如,声卡、视频卡等)。存储设备可以包括能够存储数据的永久存储。永久存储可以是本地存储单元或远程存储单元。永久存储可以是磁存储单元、光存储单元、固态存储单元、电子存储单元(主存储器)或类似的存储单元。永久存储装置还可以是单片/单个设备或设备的分布式集合。存储器115B(以及计算设备120-140中的每一个的对应存储器)可以包括对等分块文件传送软件模块(未示出),该对等分块文件传送软件模块可以由处理设备115A运行以执行本文所描述的某些功能。
图1和其他附图可以使用相同的附图标记来标识相同的元件。附图标记之后的字母(诸如“110A”)指示文本具体指具有该特定附图标记的元件。文本中没有后续字母的附图标记(诸如“110”)指附图中带有该附图标记的任何或所有元件。
计算设备110-140中的每一个可以包括具有可编程处理器的任何合适类型的计算设备或机器,包括例如服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、机顶盒、车辆等。在一些示例中,计算设备110-140 可以包括单个机器或可以包括多个互相连接的机器(例如,在集群中被配置的多个服务器)。计算设备110-140可以由共同的实体/组织实施,或者可以由不同的实体/组织实施。例如,计算设备120可以由第一公司/社团操作,而计算设备130可以由第二公司/社团操作。计算设备110-140可以各自运行或包括操作系统(OS)(图中未示出),如下面更详细地讨论的。计算设备110-140 的OS可以管理其他组件(例如,软件、应用等)的运行和/或可以管理对其相应计算设备的硬件(例如,处理器、存储器、存储设备等)的访问。
在一些实施例中,计算设备110-140可以形成域。域可以包括共享相同配置、策略和身份存储的一组设备。共享属性允许域内的设备彼此知道并一起操作。计算设备110-140可以全部是作为表示例如物联网(IoT)设备群的域的一部分的个体设备。
如本文所讨论的,计算设备110-140可以表示各种场景中的任何场景中的各种不同设备。尽管关于计算设备110-140中的每一个是道路上的车辆(并且系统100表示联网的车辆的集合)描述了本公开的实施例,但是计算设备 110-140中的每一个可以表示任何适当的设置/场景中的任何适当的设备。例如,计算设备110-140中的每一个可以表示办公室环境中的智能电话(或其他移动计算设备)。
图1B示出了根据本公开的实施例系统100,系统100促进文件的设备到设备传输和共享。计算设备110-140中的每一个可以运行相应的CFTS 110B- 140B,其可以将文件(例如,包或固件更新)划分为定义的大小的块,并且可以存储和重建已经被划分为块的文件。计算设备110-140中的每一个还可以运行称为设备清单列表(DLS)110A-140A的相应服务,其可以维护在计算设备上运行的包和每个包的版本的列表(以下称为包清单)。当到包储存库的出站互联网连接(或其他适当的连接)可用于计算设备时,该计算设备的DLS 可以推断在计算设备上运行的包的最新版本,并从包储存库拉取更新。然而,在计算设备110-140中的每一个包括道路上的车辆的场景中,这样的出站连接可能很少可用,并因此在这样的场景中,计算设备的DLS可能不能够依赖于来自包储存库的包的源包和更新。
如在图1B中可以看到的,计算设备110-140(车辆)中的每一个以不同的方向和速度运动。当两个计算设备(例如,110和120)彼此接近时,它们可以进入通信范围。通信范围可以被定义为两个计算设备可以在其内发现彼此、打开彼此之间的通信信道并且交换数据的范围(例如,首先,每个计算设备的相应DLS可以比较它们的包清单,然后随后每个计算设备可以基于它们的包清单的比较使用CFTS来彼此交换文件,如本文进一步详细讨论的)。
在进入彼此的通信范围时,计算设备110和120可以参与握手过程。握手过程使得计算设备110和120能够基于预定义的阈值时间量(以下称为“通信范围持续时间阈值”)来确定它们是否将在通信范围内保持足够长的时间以交换可观的数据量。可观的数据量(以及因此,通信范围持续时间阈值)可以基于多个因素。例如,如果系统100的计算设备至少不能比较包清单并确定其中一个计算设备是否运行过时的包,或者如果它们不能比较包清单,确定其中一个计算设备是否运行过时的包,并且在计算设备将处于通信范围内的时间内传送一定数量的包块,则它们可能不希望参与任何数据传送活动。因此,可以基于比较包清单并确定计算设备中的一个是否运行过时包所需的时间量(即,可观的数据量)来设置通信范围持续时间阈值。
作为握手过程的一部分,计算设备110和120中的每一个可以向另一个通知其速度和方向。在一些实施例中,计算设备110和120中的每一个还可以向另一个通知它们的可用通信带宽(如本文进一步详细讨论的)。计算设备 110和120中的每一个可以从车载诊断/遥测硬件/软件获得它们相应的速度/ 方向/带宽信息。因为计算设备110和120中的一个或两个可能突然加速和/或改变方向,所以难以知道计算设备110和120将保持在通信范围内的实际时间量。因此,计算设备110和120中的每一个可以基于它们的当前速度和方向来确定它们将处于通信范围内的最小时间量,并且确定它们将处于通信范围内的最小时间量是否处于或高于通信范围持续时间阈值。如果计算设备110 和120将不保持在通信范围内达至少阈值时间量,则它们将不参与进一步的通信(即,将不继续比较包或传送任何块或其部分)。
在一些实施例中,当确定是否继续进行进一步通信时,计算设备110和 120中的每一个还可以考虑其他计算设备的可用通信带宽。例如,如果计算设备110确定其将保持在与计算设备120的通信范围内达至少通信范围持续时间阈值时间量,但是计算设备120的可用带宽太低而不允许交换可观的数据量,则计算设备110可以避免参与与计算设备120的进一步通信。
在确定计算设备110和120将保持在通信范围内的最小时间量处于或高于通信范围持续时间阈值时间量时,计算设备110和120的CFTS 110B和 120B可以基于可用通信带宽和计算带宽来分别确定在与计算设备110和120 将处于通信范围内的最小时间量相对应的窗口(下文中称为传送窗口)中可以传送多少数据。计算设备110和120中的每一个(分别经由CFTS 110B和 120B)可以共享关于它们可用的各种通信链路的可用带宽的信息,以便利用两个计算设备可用的最高带宽链路。例如,计算设备110可以具有包括蓝牙链路的多个通信链路,并且可以确定(例如,从轮询车载诊断硬件/软件)其蓝牙链路是可用的最高带宽链路。然而,计算设备120上的蓝牙链路可以被关闭(或者可以具有很少至没有可用带宽)。以这种方式,计算设备110和120 可以比较它们的通信链路中的每一个的可用带宽,以基于它们两者可用的最高带宽链路来确定可用通信带宽。存在可以影响可用带宽的许多因素,包括例如,一个或多个计算设备不是支持5G的(例如,不具有5G通信链路),一个或多个设备的WiFiTM芯片是不可操作的,一个或多个设备穿过蜂窝覆盖黑点,以及一个或多个设备的某些通信链路被广泛用于其他目的等。
另外,每个计算设备110和120(分别经由CFTS 110B和120B)可以提供关于它们的可用计算带宽的信息,这也可以受到许多考虑。例如,计算设备110可以使导航软件运行,并且因此受到CPU约束,从而限制其可以提供以传送数据的CPU资源量。基于可用通信带宽和可用计算带宽,计算设备110 和120可以确定它们可以在传送窗口内传送的数据量。
在确定可以传送的数据量时,每个计算设备110和120的相应DLS 110A 和120A可以比较它们的包清单并确定它们正在执行的任何包是否过时。更具体地,每个DLS 110A和120A可以比较它们的包清单以识别共有包。针对计算设备110和120两者共有的每个包,相应的DLS然后可以计算在其相应的计算设备上运行的版本与在另一计算设备上运行的版本之间的差异,以确定版本的任何差异以及它们是否运行那些包的过时版本。
图2A-2C示出了根据本公开的实施例的文件的设备到设备传输和共享的示例。如图2A所示,计算设备110和120可以在道路上以相反方向驾驶时彼此接近。图2A还示出了计算设备110(的主机OS)包括的包A、P、T、E和 R以及每个包的版本号,以及计算设备120(的主机OS)包括的包A、P、T、 E和R以及每个包的版本号。当计算设备110和120彼此接近时,它们可以进入通信范围并运行本文讨论的握手过程。更具体地,计算设备110可以通知计算设备120计算设备110正在东北方向上以10英里每小时(MPH)行进,并且从计算设备120接收计算设备120正在西南方向上以15MPH行进的指示。基于该信息,计算设备110可以确定其将处于与计算设备120的通信范围内的最小时间量(传送窗口)是四秒。在图2A-2C的示例中,通信范围持续时间阈值可以是2.5秒,并且因此计算设备110可以确定因为传送窗口超过通信范围持续时间阈值,所以其将处于与计算设备120的通信范围内达足够的时间来交换可观的数据量。
然后,计算设备110可以基于如本文所讨论的可用通信带宽和计算带宽来确定(经由其CFTS 110A)可以在四秒传送窗口中传送多少数据。关于通信带宽,计算设备110可以共享关于其可用通信链路中的每一个的带宽信息。在图2A-2C的示例中,计算设备110的蓝牙通信链路当前可以用于媒体流,并且因此可以不具有显著的可用带宽,而计算设备110的5G链路可以具有显著的可用带宽。因此,计算设备110可以发送其蓝牙链路具有有限带宽以及指示其可用带宽/传送速度的指示,以及其5G通信链路(由例如5G通信芯片提供)具有显著的可用带宽(例如,80%)以及指示其可用带宽/传送速度的指示。因此,如果计算设备110经由其5G通信链路具有10Gb/s的最大传送速度,则其当前可以能够使用其5G通信链路以8Gb/s(对照如果其具有其 5G通信链路的100%的可用带宽则为10Gb/s)传送文件。计算设备110可以从计算设备120接收计算设备120的所有通信链路(包括5G和蓝牙)具有显著的可用带宽(例如,80%或更多)以及每个通信链路的可用带宽的指示。因此,计算设备110可以确定5G通信链路是最合适的/提供最高带宽,并且选择5G通信链路以用于比较文件/传送块。
计算设备110还可以基于其当前计算负载来确定其计算带宽。在图2A- 2C的示例中,计算设备110当前可以运行导航软件,同时还促进媒体流服务。因此,计算设备110可以确定其具有其百分之五十的计算带宽可用,并且可以将该信息提供给计算设备120。计算设备110还可以从计算设备120接收计算设备120具有计算设备120百分之一百的计算带宽可用的指示。基于可用通信带宽和可用计算带宽,计算设备110和120可以确定它们可以在四秒传送窗口内交换的数据量。在图2A的示例中,计算设备110(经由CFTS 110B) 可以确定其可以交换2兆字节(MB)的数据,这足以比较其包清单以及在四秒传送窗口期间接收价值1.8MB的块。
因为计算设备110的DLS 110A当前不知道计算设备110具有过时的包,所以在确定可以在传送窗口期间传送的数据量时,计算设备110可以利用其相应的DLS 110A来将计算设备110的包清单与DLS 120A的包清单进行比较,并且确定其正在运行的任何包是否不是该包的最新版本。如图2A所示, DLS 110A可以确定其正在运行包A和T的过时版本,因为DLS110A正在分别运行那些包的版本1和2,而计算设备120正在分别运行那些包的版本2 和3。在一些实施例中,当DLS 110A不知道其具有过时的包时,DLS 110A 可以仅将其包清单与另一计算设备的包清单进行比较。
应当注意,在一些场景中,计算设备110可以确定其仅可以在传送窗口期间传送足够的数据以比较包清单并确定其正在运行的任何包是否过时。在这种情景下,计算设备110(经由DLS 110A)仍然可以比较包清单并确定其正在运行的任何包是否过时。以这种方式,计算设备110可以防止经由其进入与后续计算设备的通信范围来执行包清单比较过程的需要(因为计算设备 110现在知道其具有过时的包)。例如,在进入与后续计算设备的通信范围时,计算设备110(在完成握手过程时)可以直接请求其已经基于其与计算设备 120的DLS120A的先前包清单比较而确定计算设备110需要的包/版本。以这种方式,计算设备110可以将(在与该后续计算设备的传送窗口期间)可以传送的所有数据专用于与其所需的包/版本相对应的块的传送。
如果所讨论的后续计算设备具有计算设备110需要的任何包/版本,则其可以开始发送与这些包/版本相对应的块,如本文进一步详细讨论的。另外,在DLS 110A知道其具有过时的包(例如,来自先前的握手过程)的情景下,其可以立即请求并开始传送与其需要更新的包的任何更加新的版本而不是特定版本相对应的块。例如,在进入与不具有计算设备110正在寻找的包A的版本(版本2)但具有甚至更加新的版本(例如,包A的版本4)的后续计算设备的通信范围时,计算设备110可以立即开始传送与包A的版本4相对应的块。在一些实施例中,计算设备110可以继续尝试完成正在传送过程中的包A的版本(在该示例中为版本2),而不是请求包括A的任何较新版本的块。在其他实施例中,对特定版本的块的请求可以是可配置的。例如,计算设备110可以继续尝试接收其已经在预设时间量内接收到一些块的包的版本的块,然后开始请求与任何更多的最新版本相对应的块。
继续图2A的示例,计算设备110可以在包清单比较之后的四秒传送窗口中剩余的时间期间接收1.8MB的块,其可以与包A版本2的块1-3和包T 版本3的块1相对应。在相关块的传送时,计算设备110和120可以终止它们的连接(假设它们将不再处于彼此的通信范围内),并且计算设备110可以继续等待进入与另一计算设备的通信范围,从该另一计算设备获得包A版本 2和包T版本3的剩余部分。应当注意,计算设备110的CFTS 110B请求包 A和T两者的块,然而这不是必需的,并且CFTS 110B可以优先考虑其为哪个包请求块,如本文进一步详细讨论的。例如,CFTS 110B可以确定在传送窗口期间可以为包A传送的块的最高数量高于为包B传送的块的最高数量,并且可以仅请求与包A相对应的块。
现在参考图2B,在终止其与计算设备120的连接之后的某个时间点,计算设备110可以进入与计算设备140的通信范围,计算设备140可以具有包 A、P、T、E和R,包括包A(版本2)和T(版本3)的更新版本。因为计算设备110已经知道其不具有包A和T的最新版本,所以在完成握手过程 (并且确定其与计算设备140的传送窗口处于或高于通信范围持续时间阈值) 时,其可以立即请求与包A(版本2)和/或T(版本3)相对应的块的传送。
在一些实施例中,当计算设备110具有过时的多个包时,其可以优先考虑最接近完全传送和/或可以在当前窗口内完全传送的一个或多个包。在图2B 的示例中,计算设备110可以优先考虑包A而不是请求与包A(此时完成 50%)和T(此时完成25%)相对应的块,因为包A已经完成50%并且仅请求与包A相对应的块。以这种方式,计算设备110可以防止部分完成的包在不可用时消耗存储器。尽管上述示例被描述为优先考虑单个包,但是计算设备110可以基于各种度量优先考虑任何适当数量的过时包。在一些实施例中,计算设备110可以基于其完成水平来优先考虑将请求的块的包的最高百分比 (例如,前10%、前30%)。在其他实施例中,计算设备110可以基于包的完成水平(例如,前3个最完整的包)和/或基于哪些包可以在当前窗口期间完成来优先考虑设定数量的包。在其他实施例中,计算设备110可以基于包的重要性来优先考虑包。例如,如果包T对于计算设备110的功能更关键,则计算设备110可以在包T请求块时优先考虑包T(即使包A在传送过程中更远)。在一些实施例中,可以使用任何适当的技术来并行化多个块的传送。
在图2B的示例中,计算设备110的CFTS 110A可以优先考虑包A,因为包A最接近完成并且可以在当前窗口中完成。CFTS 110A可以确定其已经接收了包A的版本2的多少,并且请求在偏移量X开始的下一个逻辑块,其中偏移量X是其接收的先前块,偏移量X是如图3所示的块3。CFTS 110B 可以如上所述确定在传送窗口期间可以传送的数据量(利用计算设备140),并且请求与在传送窗口期间可以传送的数据量(在图3中示出为Y)相对应的多个块(从偏移X开始)的传送。如图3所示,CFTS 110A可以请求与X+Y 相对应的多个块。
现在参考图2C,在终止其与计算设备140的连接之后的某个时间点,计算设备110可以进入与计算设备130的通信范围,计算设备130可以具有与计算设备110类似的包清单,除了其具有比计算设备110更最新的版本(版本4)的包T。因为计算设备110的DLS 110A知道计算设备110具有过时的包(此时仅有包T),所以计算设备110可以具有立即(在完成握手过程时) 请求与包T的版本3、包T的版本4相对应的块的传送或者等待直到计算设备110遇到其已经在传送过程中的具有包T的版本3的另一计算设备的选项。如果计算设备110(经由CFTS 110B)请求与包T的版本3相对应的块的传送,则计算设备130可以拒绝这样的请求,因为计算设备130不具有包T的版本3。如果计算设备110(通过CFTS 110B)请求传送与包T的版本4相对应的块,则计算设备110可以确定其当前具有多少(没有),并且请求包T的版本4的多个块,这些块与所确定的可以在传送窗口期间利用计算设备130 传送的数据量相对应。
与正常的加窗技术不同,本公开的实施例不仅基于带宽而且还基于速度和方向来提供块大小的动态计算,以确定两个计算设备何时将不再处于通信范围内以及在该时间之前可以传送什么。
图4是根据本公开的一些实施例的用于促进在运动中的设备之间的文件的对等分块传送的方法400的流程图。方法400可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法 400可以由计算设备(例如,图1B和2A-2C中所示的计算设备110)执行。
同时参考图2A-2C,计算设备110和120可以在道路上以相反方向驾驶的同时彼此接近。图2A还示出了计算设备110(的主机OS)包括的包A、 P、T、E和R以及每个包的版本号,以及计算设备120(的主机OS)包括的包A、P、T、E和R以及每个包的版本号。在框405处,当计算设备110和 120彼此接近时,它们可以进入通信范围并运行本文所讨论的握手过程。更具体地,计算设备110可以通知计算设备120计算设备110正在东北方向上以 10英里每小时(MPH)行进,并且从计算设备120接收计算设备120正在西南方向上以15MPH行进的指示。基于该信息,计算设备110可以确定其将处于与计算设备120的通信范围内的最小时间量(传送窗口)是四秒。在图2A- 2C的示例中,通信范围持续时间阈值可以是2.5秒,并且因此计算设备110 可以确定因为传送窗口超过通信范围持续时间阈值,所以它将处于与计算设备120的通信范围内达足够的时间来交换可观的数据量。
在框410处,计算设备110然后可以基于如本文所讨论的可用通信带宽和计算带宽来确定(经由其CFTS 110A)在四秒传送窗口中可以传送多少数据。关于通信带宽,计算设备110可以共享关于其可用通信链路中的每一个的带宽信息。在图2A-2C的示例中,计算设备110的蓝牙通信链路当前可以用于媒体流,并且因此可以不具有显著的可用带宽,而计算设备110的5G链路可以具有显著的可用带宽。因此,计算设备110可以发送其蓝牙链路具有有限带宽(以及指示其可用带宽)的指示,以及其5G通信芯片具有显著可用带宽(以及指示其可用带宽)的指示。计算设备110可以从计算设备120接收所有计算设备120的通信链路(包括5G和蓝牙)具有显著可用带宽(以及每个通信链路的可用带宽)的指示。因此,计算设备110可以确定5G通信链路是最合适的/提供最高带宽,并且选择5G通信链路以用于比较文件/传送块。
计算设备110还可以基于其当前计算负载来确定其计算带宽。在图2A- 2C的示例中,计算设备110当前可以运行导航软件,同时还促进媒体流服务。因此,计算设备110可以确定其具有其百分之五十的计算带宽可用,并且可以将该信息提供给计算设备120。计算设备110还可以从计算设备120接收计算设备120具有计算设备120百分之百的计算带宽可用的指示。基于可用通信带宽和可用计算带宽,计算设备110和120可以确定它们可以在四秒传送窗口内交换的数据量。在图2A的示例中,计算设备110(经由CFTS 110B) 可以确定其可以交换2兆字节(MB)的数据,这足以比较其包清单以及在四秒传送窗口期间接收价值1.8MB的块。
在框415处,因为计算设备110的DLS 110A当前不知道计算设备110 具有过时的包,所以在确定可以在传送窗口期间传送的数据量时,计算设备 110可以利用其相应的DLS110A来将其包清单与DLS 120A的包清单进行比较,并且确定其正在执行的任何包是否不是该包的最新版本。如图2A所示,DLS 110A可以确定它正在用完包A和T的过时版本,因为它分别运行那些包的版本1和2,同时计算设备120分别运行那些包的版本2和3。在一些实施例中,当DLS 110A不知道它具有过时的包时,DLS 110A可以仅将其包清单与另一计算设备的包清单进行比较。
应当注意,在一些场景中,计算设备110可以确定其仅可以在传送窗口期间传送足够的数据以比较包清单并确定其正在运行的任何包是否过时。在这种情景下,计算设备110(经由DLS 110A)仍然可以比较包清单并确定其正在运行的任何包是否过时。以这种方式,计算设备110可以防止经由其进入与后续计算设备的通信范围来执行包清单比较过程的需要(因为计算设备 110现在知道其具有过时的包)。例如,在进入与后续计算设备的通信范围时,计算设备110(在完成握手过程时)可以直接请求其已经基于其与计算设备 120的DLS120A的先前包清单比较而确定计算设备110需要的包/版本。以这种方式,计算设备110可以将(在与该后续计算设备的传送窗口期间)可以传送的所有数据专用于与其所需的包/版本相对应的块的传送。
如果所讨论的后续计算设备具有计算设备110需要的任何包/版本,则其可以开始发送与这些包/版本相对应的块,如本文进一步详细讨论的。另外,在DLS 110A知道其具有过时的包(例如,来自先前的握手过程)的情景下,其可以立即请求并开始传送与其需要更新的包的任何更加新的版本而不是特定版本相对应的块。例如,在进入与不具有计算设备110正在寻找的包A的版本(版本2)但具有甚至更加新的版本(例如,包A的版本4)的后续计算设备的通信范围时,计算设备110可以立即开始传送与包A的版本4相对应的块。计算设备110可以继续尝试完成正在传送过程中的包A的版本(在该示例中为版本2)。
继续图2A的示例,在框420处,计算设备110可以在包清单比较之后的四秒传送窗口中剩余的时间期间接收1.8MB的块,其可以与包A版本2的块 1-3和包T版本3的块1相对应。在相关块的传送时,计算设备110和120可以终止它们的连接(假设它们将不再处于彼此的通信范围内),并且计算设备 110可以继续等待进入与另一计算设备的通信范围,从该另一计算设备获得包A版本2和包T版本3的剩余部分。应当注意,计算设备110的CFTS 110B请求包A和T两者的块,然而这不是必需的,并且CFTS 110B可以优先考虑其为哪个包请求块,如本文进一步详细讨论的。例如,CFTS 110B可以确定在传送窗口期间可以为包A传送的块的最高数量高于为包B传送的块的最高数量,并且可以仅请求与包A相对应的块。
在一些实施例中,当确定是否继续进行进一步通信时,计算设备110和 120中的每一个还可以考虑其他计算设备的可用带宽。例如,如果计算设备 110确定其将保持在与计算设备120的通信范围内达至少通信范围持续时间阈值时间量,但是计算设备120的可用带宽太低而不允许交换可观的数据量。
图5是根据本公开的一些实施例的在运动中的设备之间的包的对等分块传送期间优先考虑包的方法500的流程图。方法500可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法500可由计算设备(例如,图2A到3中所示的计算设备110)执行。
同时参考图2B,在终止其与计算设备120的连接之后的某个时间点,在框505处,计算设备110可以进入与计算设备140的通信范围,计算设备140 可以具有包A、P、T、E和R,包括包A(版本2)和T(版本3)的更新的版本。在框510处,计算设备110可以确定其已经知道其不具有包A和T的最新版本,以及在完成握手过程(并且确定其与计算设备140的传送窗口处于或高于通信范围持续时间阈值)时,计算设备110可以立即请求与包A(版本2)和/或T(版本3)相对应的块的传送,并且跳过执行其包清单与计算设备140的包清单的比较。
在框515处,当计算设备110具有过时的多个包时,其可以基于最接近被完全传送和/或可以在当前窗口内被完全传送的过时包来确定要优先考虑的一个或多个过时包。在图2B的示例中,计算设备110可以优先考虑包A而不是请求与包A(此时完成50%)和T(此时完成25%)相对应的块,,因为包A已经完成50%并且仅请求与包A相对应的块。以这种方式,计算设备 110可以防止部分完成的包在不可用时消耗存储器。尽管上述示例被描述为优先考虑单个包,但是计算设备110可以基于各种度量优先考虑任何适当数量的过时包。在一些实施例中,计算设备110可以基于其完成水平来优先考虑将请求的块的包的最高百分比(例如,前10%、前30%)。在其他实施例中,计算设备110可以基于包的完成水平(例如,前3个最完整的包)和/或基于哪些包可以在当前窗口期间完成来优先考虑设定数量的包。在其他实施例中,计算设备110可以基于包的重要性来优先考虑包。例如,如果包T对于计算设备110的功能更关键,则计算设备110可以在包T请求块时优先考虑包T (即使包A在传送过程中更远)。
在图2B的示例中,计算设备110的CFTS 110A可以优先考虑包A,因为包A最接近完成并且可以在当前窗口中完成。CFTS 110A可以确定其已经接收了包A的版本2的多少,并且请求在偏移量X处开始的下一个逻辑块,其中偏移量X是其接收的先前块,偏移量X是如图3所示的块3。CFTS 110B 可以如上所述确定在传送窗口期间可以传送的数据量(利用计算设备140),并且请求与在传送窗口期间可以传送的数据量(在图3中示出为Y)相对应的多个块(从偏移X开始)。如图3所示,CFTS 110A可以请求与X+Y相对应的多个块。
图6示出了计算机系统600的示例形式中的机器的图形表示,在该计算机系统600内,指令的集合用于使机器执行本文所讨论的用于按需生成包的差值的任何一种或多种方法论。
在替代实施例中,机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网或互联网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器、集线器、接入点、网络访问控制设备或能够运行指定该机器要采取的动作的指令(顺序的或以其他方式)的集合的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被视为包括单独或联合运行一个(或多个) 指令的集合以执行本文所讨论的任何一种或多种方法论的机器的任何集合。在一个实施例中,计算机系统600可以表示服务器。
示例性计算机系统600包括经由总线630彼此通信的处理设备602、主存储器604(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)、静态存储器606(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备618。在本文所描述的各种总线上提供的任何信号可以与其它信号进行时间复用,并且在一个或多个共有总线上提供。附加地,电路组件或块之间的互连可以被示出为总线或单个信号线。总线中的每一个可以替代地是一个或多个单信号线,并且单信号线中的每一个可以替代地是总线。
计算设备600还可以包括可以与网络620通信的网络接口设备608。计算设备600还可以包括视频显示单元610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备612(例如,键盘)、光标控制设备614 (例如,鼠标)和声信号生成设备616(例如,扬声器)。在一个实施例中,视频显示单元610、字母数字输入设备612和光标控制设备614可以组合成单个组件或设备(例如,LCD触摸屏)。
处理设备602表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其他指令集的处理器、或实施指令集的组合的处理器。处理设备602还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列 (FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备602被配置为运行对等文件传送指令625,以用于执行本文所讨论的操作和步骤。
数据存储设备618可以包括机器可读存储介质628,其上存储有体现本文所描述的功能的任何一种或多种的方法论中的一个或多个对等文件传送指令625(例如,软件)的集合。对等文件传送指令625还可以在由计算机系统 600运行期间完全或至少部分地驻留在主存储器604内或处理设备602内;主存储器604和处理设备602也构成机器可读存储介质。对等文件传送指令 625还可以经由网络接口设备608在网络620上发送或接收。
机器可读存储介质628还可以用于存储执行如本文所描述的用于对象分析/验证事件发布的方法的指令。虽然机器可读存储介质628在示例性实施例中被示出为单个介质,但是术语“机器可读存储介质”应当被视为包括存储一个或多个指令的集合的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁存储介质(例如,软盘);光学存储介质(例如,CD- ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPROM);闪存;或适合于存储电子指令的另一类型的介质。
示例1是一种方法,包括:响应于进入第二设备的通信范围内,确定第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量;响应于确定第二设备将保持在与第一设备的通信范围内达至少阈值时间量,确定在与第二设备的传送窗口期间能够从第二设备传送到第一设备的数据量;由处理设备将第一设备的包清单与第二设备的包清单进行比较,以确定需要更新的第一设备的包的集合;以及基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备接收用于第一设备的包的集合中的第一包的多个块。
示例2是根据示例1所述的方法,其中与第二设备的传送窗口与第二设备将保持在与第一设备的通信范围内的最小时间量相对应,该方法还包括:将该包的集合中的在与第二设备的传送窗口期间可以传送最高数量的块的包确定为第一包;以及基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备请求第一包的多个块。
示例3是根据示例1所述的方法,还包括:基于第一和第二设备中的每一个的速度以及第一和第二设备中的每一个正在移动的方向来确定与第二设备的传送窗口。
示例4是根据示例3所述的方法,其中,基于第一设备和第二设备中的每一个的可用通信带宽以及第一设备和第二设备中的每一个的可用计算带宽来确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量。
示例5是根据示例4所述的方法,还包括:基于可用于第一设备和第二设备中的每一个的最高带宽通信链路来确定第一设备和第二设备中的每一个的可用通信带宽;以及基于第一设备和第二设备中的每一个的当前计算负载来确定第一设备和第二设备中的每一个的可用计算带宽。
示例6是根据示例1所述的方法,还包括:响应于进入第三设备的通信范围内,确定第三设备是否将保持在与第一设备的通信范围内达至少阈值时间量;以及响应于确定第三设备将保持在与第一设备的通信范围内达至少阈值时间量:确定为第一包接收的先前块;以及基于所接收的先前块和在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以从第三设备传送到第一设备的数据量,从第三设备请求第一包的额外数量的块。
示例7是根据示例1所述的方法,其中,确定在最小时间量期间可以从第二设备传送到第一设备的数据量是使用分块文件传送服务(CFTS)来执行的。
示例8是一种系统,包括:存储器;以及处理设备,该处理设备可操作地耦合到该存储器,该处理设备:响应于进入第二设备的通信范围内,确定第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量;响应于确定第二设备将保持在与第一设备的通信范围内达至少阈值时间量,确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量;将第一设备的包清单与第二设备的包清单进行比较,以确定需要更新的第一设备的包的集合;以及基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备接收第一设备的包的集合中的第一包的多个块。
示例9是根据示例8所述的系统,其中,与第二设备的传送窗口与第二设备将保持在与第一设备的通信范围内的最小时间量相对应,并且其中,处理设备还:将包的集合中的在与第二设备的传送窗口期间可以传送最高数量的块的包确定为第一包;以及基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备请求第一包的多个块。
示例10是根据示例8所述的系统,其中,处理设备还:基于第一设备和第二设备中的每一个的速度以及第一设备和第二设备中的每一个正在移动的方向来确定与第二设备的传送窗口。
示例11是根据示例10所述的系统,其中,处理设备基于第一设备和第二设备中的每一个的可用通信带宽以及第一设备和第二设备中的每一个的可用计算带宽来确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量。
示例12是根据示例11所述的系统,其中,处理设备还:基于可用于第一设备和第二设备中的每一个的最高带宽通信链路来确定第一设备和第二设备中的每一个的可用通信带宽;以及基于第一设备和第二设备中的每一个的当前计算负载来确定第一设备和第二设备中的每一个的可用计算带宽。
示例13是根据示例8所述的系统,其中,处理设备还:响应于进入第三设备的通信范围内,确定第三设备是否将保持在与第一设备的通信范围内达至少阈值时间量;以及响应于确定第三设备将保持在与第一设备的通信范围内达至少阈值时间量:确定为第一包接收的先前块;以及基于所接收的先前块和在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以从第三设备传送到第一设备的数据量,从第三设备请求第一包的额外数量的块。
示例14是根据示例8所述的系统,其中,处理设备使用分块文件传送服务(CFTS)来确定在最小时间量期间可以从第二设备传送到第一设备的数据量。
示例15是一种非暂时性计算机可读介质,其上存储有指令,该指令在由处理设备运行时使处理设备:响应于进入第二设备的通信范围内,确定第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量;响应于确定第二设备将保持在与第一设备的通信范围内达至少阈值时间量,确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量;由处理设备将第一设备的包清单与第二设备的包清单进行比较,以确定需要更新的第一设备的包的集合;以及基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备接收第一设备的包的集合中的第一包的多个块。
示例16是根据权利要求15所述的非暂时性计算机可读介质,其中,与第二设备的传送窗口与第二设备将保持在与第一设备的通信范围内的最小时间量相对应,并且其中,处理设备还:将包的集合中的在与第二设备的传送窗口期间可以传送最高数量的块的包确定为第一包;以及基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备请求第一包的多个块。
示例17是根据权利要求15所述的非暂时性计算机可读介质,其中,处理设备还:基于第一设备和第二设备中的每一个的速度以及第一设备和第二设备中的每一个正在移动的方向来确定与第二设备的传送窗口。
示例18是根据权利要求17所述的非暂时性计算机可读介质,其中,处理设备基于第一设备和第二设备中的每一个的可用通信带宽以及第一设备和第二设备中的每一个的可用计算带宽来确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量。
示例19是根据权利要求18所述的非暂时性计算机可读介质,其中,处理设备还:基于可用于第一设备和第二设备中的每一个的最高带宽通信链路来确定第一设备和第二设备中的每一个的可用通信带宽;以及基于第一设备和第二设备中的每一个的当前计算负载来确定第一设备和第二设备中的每一个的可用计算带宽。
示例20是根据权利要求15所述的非暂时性计算机可读介质,其中,处理设备还:响应于进入第三设备的通信范围内,确定第三设备是否将保持在与第一设备的通信范围内达至少阈值时间量;以及响应于确定第三设备将保持在与第一设备的通信范围内达至少阈值时间量:确定为第一包接收的先前块;以及基于所接收的先前块和在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以从第三设备传送到第一设备的数据量,从第三设备请求第一包的额外数量的块。
示例21是根据权利要求15所述的非暂时性计算机可读介质,其中,处理设备使用分块文件传送服务(CFTS)来确定在最小时间量期间可以从第二设备传输到第一设备的数据量。
示例22是一种系统,包括:存储器;以及可操作地耦合到该存储器的处理设备,该处理设备:响应于进入第二设备的通信范围内,确定第二设备将保持在与第一设备的通信范围内的最小时间量;响应于确定最小时间量等于或大于阈值时间量,确定第一设备的过时的包的集合;确定在最小时间量期间可以从第二设备传送到第一设备的数据量;及从第二设备接收第一设备的包的集合中的一个或多个包中的每一个的多个块。
示例23是根据示例22所述的系统,其中,处理设备还:响应于确定最小时间量不等于或大于阈值时间量,终止与第二设备的通信。
示例24是根据示例22所述的系统,其中,为了确定第一设备的过时的包的集合,处理设备:将第一设备的包清单与第二设备的包清单进行比较;识别第一设备与第二设备共有的包;以及针对第一设备和第二设备共有的包中的每个包,确定在第一设备上运行的包的版本与在第二设备上运行的包的版本是否存在差异。
示例25是根据示例22所述的系统,其中,为了确定在最小时间量期间可以从第二设备传送到第一设备的数据量,处理设备:基于可用于第一设备和第二设备中的每一个的最高带宽通信链路来确定第一设备和第二设备中的每一个的可用通信带宽;基于第一设备和第二设备中的每一个的当前计算负载来确定第一设备和第二设备中的每一个的可用计算带宽;以及基于可用计算带宽和可用通信带宽来确定在最小时间量期间可以从第二设备传送到第一设备的数据量。
示例26是根据示例22所述的系统,其中,处理设备还:响应于进入第三设备的通信范围内,确定第三设备将保持在与第一设备的通信范围内的最小时间量是否超过阈值时间量;响应于确定第三设备将保持在与第一设备的通信范围内的最小时间量超过阈值时间量,确定为第一设备的包的集合中的一个或多个包中的每一个接收的先前块;以及基于所接收的先前块以及在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以从第三设备传送到第一设备的数据量,从第三设备请求第一设备的包的集合中的一个或多个包中的每一个的额外数量的块。
示例27是根据示例26所述的系统,其中,处理设备还:将包的集合中的在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以传送最高数量的块的包确定为第一设备的包的集合中的一个或多个包。
示例28是根据示例22所述的系统,其中,为了确定在最小时间量期间可以从第二设备传送到第一设备的数据量,处理设备将利用分块文件传送服务(CFTS)。
示例29是一种方法,包括:响应于进入第二设备的通信范围内,确定第二设备将保持在与第一设备的通信范围内的最小时间量;响应于确定最小时间量等于或大于阈值时间量,确定第一设备的过时的包的集合;确定在最小时间量期间可以从第二设备传送到第一设备的数据量;以及从第二设备接收第一设备的包的集合中的一个或多个包中的每一个的多个块。
示例30是根据示例29所述的方法,还包括:响应于确定最小时间量不等于或大于阈值时间量,终止与第二设备的通信。
示例31是根据示例29所述的方法,其中确定第一设备的过时的包的集合包括:将第一设备的包清单与第二设备的包清单进行比较;识别第一设备和第二设备共有的包;以及针对第一设备和第二设备共有的每个包,确定在第一设备上运行的包的版本与在第二设备上运行的包的版本是否存在差异。
示例32是根据示例29所述的方法,其中,确定在最小时间量期间可以从第二设备传送到第一设备的数据量包括:基于可用于第一设备和第二设备中的每一个的最高带宽通信链路来确定第一设备和第二设备中的每一个的可用通信带宽;基于第一设备和第二设备中的每一个的当前计算负载来确定第一设备和第二设备中的每一个的可用计算带宽;以及基于可用计算带宽和可用通信带宽,确定在最小时间量期间可以从第二设备传送到第一设备的数据量。
示例33是根据示例29所述的方法,还包括:响应于进入第三设备的通信范围内,确定第三设备将保持在与第一设备的通信范围内的最小时间量是否超过阈值时间量;响应于确定第三设备将保持在与第一设备的通信范围内的最小时间量超过阈值时间量,确定为第一设备的包的集合中的一个或多个包中的每一个接收的先前块;及基于所接收的先前块及在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以从第三设备传送到第一设备的数据量,从第三装备请求第一设备的包的集合中的一个或多个包中的每一个的额外数量的块。
示例34是根据示例33所述的方法,还包括:其中,处理设备还:将包的集合中的在第三设备将保持在与第一设备的通信范围内的最小时间量期间可以传送最高数量的块的包确定为第一设备的包的集合中的一个或多个包。
示例35是根据示例29所述的方法,其中,确定在最小时间量期间可以从第二设备传输到第一设备的数据量是使用分块文件传送服务(CFTS)来执行的。
示例36是一种装置,包括:用于响应于进入第二设备的通信范围内,确定第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量的部件;用于响应于确定第二设备将保持在与第一设备的通信范围内达至少阈值时间量,确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量的部件;用于将第一设备的包清单与第二设备的包清单进行比较以确定需要更新的第一设备的包的集合的部件;以及用于基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备接收第一设备的包的集合中的第一包的多个块的部件。
示例37是根据示例36所述的装置,其中,与第二设备的传送窗口与第二设备将保持在与第一设备的通信范围内的最小时间量相对应,该装置还包括:用于将包的集合中的在与第二窗口的传送窗口期间可以传送最高数量的块的包确定为第一包的部件;以及用于基于在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量,从第二设备请求第一包的多个块的装置。
示例38是根据示例36所述的装置,还包括:用于基于第一和第二设备中的每一个的速度以及第一和第二设备中的每一个正在移动的方向来确定与第二设备的传送窗口的部件。
示例39是根据示例38所述的设备,其中,基于第一设备和第二设备中的每一个的可用通信带宽以及第一设备和第二设备中的每一个的可用计算带宽来确定在与第二设备的传送窗口期间可以从第二设备传送到第一设备的数据量。
示例40是根据示例39所述的装置,还包括:用于基于可用于第一设备和第二设备中的每一个的最高带宽通信链路来确定第一设备和第二设备中的每一个的可用通信带宽的部件;以及用于基于第一设备和第二设备中的每一个的当前计算负载来确定第一设备和第二设备中的每一个的可用计算带宽的部件。
前面的描述阐述了许多具体细节,诸如具体系统、组件、方法等的示例,以便提供对本公开的若干实施例的良好理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本公开的至少一些实施例。在其他情况下,没有详细描述或以简单的框图格式呈现公知的组件或方法,以避免不必要地模糊本公开。因此,所阐述的具体细节仅仅是示例性的。特定实施例可以与这些示例性细节不同,并且仍然被认为在本公开的范围内。
附加地,一些实施例可以在分布式计算环境中实践,其中机器可读介质存储在多于一个计算机系统上和/或由多于一个计算机系统运行。另外,在计算机系统之间传送的信息可以通过连接计算机系统的通信介质拉取或推送。
所要求保护的主题的实施例包括但不限于本文描述的各种操作。这些操作可以由硬件组件、软件、固件或其组合来执行。
尽管以特定顺序示出和描述了本文的方法的操作,但是可以改变每个方法的操作的顺序,使得某些操作可以以相反的顺序执行,或者使得某些操作可以至少部分地与其他操作同时执行。在另一实施例中,不同操作的指令或子操作可以是间歇或交替的方式。
本发明的所示实施方式的上述描述(包括摘要中描述的内容)并不旨在穷举或将本发明限制于所公开的精确形式。虽然出于说明性目的在本文中描述了本发明的具体实施方式和示例,但是如相关领域的技术人员将认识到的,在本发明的范围内的各种等同修改是可能的。词语“示例”或“示例性”在本文中用于表示用作示例、实例或说明。本文中被描述为“示例”或“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。相反,词语“示例”或“示例性”的使用旨在以具体的方式呈现概念。如本申请中所使用的,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文中清楚得出,否则“X包括A或B”旨在表示任何自然的包含性排列。也就是说,如果X包括A;X包括B;或者X包括A和B两者,则在任何前述情况下满足“X包括A或B”。另外,本申请和所附权利要求中使用的冠词“一(a)”和“一(an)”通常应被解释为表示“一个或多个”,除非另有说明或从上下文中清楚地指向单数形式。此外,贯穿全文使用术语“实施例”或“一个实施例”或“实施方式”或“一个实施方式”并不旨在表示相同的实施例或实施方式,除非如此描述。此外,如本文所使用的术语“第一”、“第二”、“第三”、“第四”等意指作为在不同元件之间进行区分的标签,并且可以不一定具有根据它们的数字标记的序数含义。
应当理解,上述公开的和其他特征和功能的变体或其替代方案可以组合到其他不同的系统或应用中。本领域技术人员可以后续进行各种目前未预见或未预期的替代、修改、变化或改进,这些也旨在由所附权利要求书所涵盖。权利要求可以涵盖硬件、软件或其组合中的实施例。

Claims (20)

1.一种方法,包括:
响应于进入第二设备的通信范围内,确定所述第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量;
响应于确定所述第二设备将保持在与所述第一设备的通信范围内达至少所述阈值时间量,确定在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的数据量;
由处理设备将所述第一设备的包清单与所述第二设备的包清单进行比较,以确定需要更新的所述第一设备的包的集合;以及
基于在与所述第二设备的所述传送窗口期间可以从所述第二设备传送到所述第一设备的所述数据量,从所述第二设备接收所述第一设备的包的集合中的第一包的多个块。
2.根据权利要求1所述的方法,其中,与所述第二设备的传送窗口与所述第二设备将保持在与所述第一设备的通信范围内的最小时间量相对应,所述方法还包括:
将所述包的集合中的在与所述第二设备的传送窗口期间可以传送最高数量的块的包确定为所述第一包;以及
基于在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的所述数据量,从所述第二设备请求所述第一包的所述多个块。
3.根据权利要求1所述的方法,还包括:
基于所述第一设备和所述第二设备中的每一个的速度以及所述第一设备和所述第二设备中的每一个正在移动的方向来确定与所述第二设备的传送窗口。
4.根据权利要求3所述的方法,其中,基于所述第一设备和所述第二设备中的每一个的可用通信带宽以及所述第一设备和所述第二设备中的每一个的可用计算带宽来确定在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的所述数据量。
5.根据权利要求4所述的方法,还包括:
基于可用于所述第一设备和所述第二设备中的每一个的最高带宽通信链路来确定所述第一设备和所述第二设备中的每一个的可用通信带宽;以及
基于所述第一设备和所述第二设备中的每一个的当前计算负载来确定所述第一设备和所述第二设备中的每一个的可用计算带宽。
6.根据权利要求1所述的方法,还包括:
响应于进入第三设备的通信范围内,确定所述第三设备是否将保持在与所述第一设备的通信范围内达至少所述阈值时间量;以及
响应于确定所述第三设备将保持在与所述第一设备的通信范围内达至少所述阈值时间量:
确定为所述第一包接收的先前块;以及
基于所接收的所述先前块及在所述第三设备将保持在与所述第一设备的通信范围内的最小时间量期间可以从所述第三设备传送到所述第一设备的数据量,从所述第三设备请求所述第一包的额外数量的块。
7.根据权利要求1所述的方法,其中,确定在所述最小时间量期间可以从所述第二设备传送到所述第一设备的所述数据量是使用分块文件传送服务(CFTS)来执行的。
8.一种系统,包括:
存储器;以及
处理设备,所述处理设备可操作地耦合到所述存储器,所述处理设备:
响应于进入第二设备的通信范围内,确定所述第二设备将保持在与第一设备的通信范围内的最小时间量;
响应于确定所述最小时间量等于或大于阈值时间量,确定所述第一设备的过时的包的集合;
确定在所述最小时间量期间可以从所述第二设备传送到所述第一设备的数据量;以及
从所述第二设备接收所述第一设备的包的集合中的一个或多个包中每一个的多个块。
9.根据权利要求8所述的系统,其中,所述处理设备还:
响应于确定所述最小时间量不等于或大于所述阈值时间量,终止与所述第二设备的通信。
10.根据权利要求8所述的系统,其中,为了确定所述第一设备的过时的包的集合,所述处理设备:
将所述第一设备的包清单与所述第二设备的包清单进行比较;
识别所述第一设备和所述第二设备共有的包;以及
针对所述第一设备和所述第二设备共有的所述包中的每个包,确定在所述第一设备上运行的所述包的版本与在所述第二设备上运行的所述包的版本是否存在差异。
11.根据权利要求8所述的系统,其中,为了确定在所述最小时间量期间可以从所述第二设备传送到所述第一设备的所述数据量,所述处理设备:
基于可用于所述第一设备和所述第二设备中的每一个的最高带宽通信链路来确定所述第一设备和所述第二设备中的每一个的可用通信带宽;
基于所述第一设备和所述第二设备中的每一个的当前计算负载来确定所述第一设备和所述第二设备中的每一个的可用计算带宽;以及
基于所述可用计算带宽和所述可用通信带宽,确定在所述最小时间量期间可以从所述第二设备传送到所述第一设备的所述数据量。
12.根据权利要求8所述的系统,其中,所述处理设备还:
响应于进入第三设备的通信范围内,确定所述第三设备将保持在与所述第一设备的通信范围内的最小时间量是否超过所述阈值时间量;
响应于确定所述第三设备将保持在与所述第一设备的通信范围内的所述最小时间量超过所述阈值时间量,确定为所述第一设备的包的集合中的一个或多个包中的每一个接收的先前块;以及
基于所接收的所述先前块及在所述第三设备将保持在与所述第一设备的通信范围内的所述最小时间量期间可以从所述第三设备传送到所述第一设备的数据量,从所述第三设备请求所述第一设备的包的集合中的一个或多个包中的每一个的额外数量的块。
13.根据权利要求12所述的系统,其中,所述处理设备还:
将所述包的集合红的在所述第三设备将保持在与所述第一设备的通信范围内的所述最小时间量期间可以传送最高数量的块的包确定为所述第一设备的包的集合中的一个或多个包。
14.根据权利要求8所述的系统,其中,为了确定在所述最小时间量期间可以从所述第二设备传送到所述第一设备的所述数据量,所述处理设备将利用分块文件传送服务(CFTS)。
15.一种非暂时性计算机可读介质,其上存储有指令,所述指令在由处理设备运行时使所述处理设备:
响应于进入第二设备的通信范围内,确定所述第二设备是否将保持在与第一设备的通信范围内达至少阈值时间量;
响应于确定所述第二设备将保持在与所述第一设备的通信范围内达至少所述阈值时间量,确定在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的数据量;
由所述处理设备将所述第一设备的包清单与所述第二设备的包清单进行比较,以确定需要更新的所述第一设备的包的集合;以及
基于在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的所述数据量,从所述第二设备接收所述第一设备的包的集合中的第一包的多个块。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,与所述第二设备的传送窗口与所述第二设备将保持在与所述第一设备的通信范围内的最小时间量相对应,并且其中,所述处理设备还:
将所述包的集合中的在与所述第二设备的传送窗口期间可以传送最高数量的块的包确定为所述第一包;以及
基于在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的所述数据量,从所述第二设备请求所述第一包的多个块。
17.根据权利要求15所述的非暂时性计算机可读介质,其中,所述处理设备还:
基于所述第一设备和所述第二设备中的每一个的速度以及所述第一设备和所述第二设备中的每一个正在移动的方向来确定与所述第二设备的传送窗口。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述处理设备基于所述第一设备和所述第二设备中的每一个的可用通信带宽以及所述第一设备和所述第二设备中的每一个的可用计算带宽,确定在与所述第二设备的传送窗口期间可以从所述第二设备传送到所述第一设备的数据量。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述处理设备还:
基于可用于所述第一设备和所述第二设备中的每一个的最高带宽通信链路来确定所述第一设备和所述第二设备中的每一个的可用通信带宽;以及
基于所述第一设备和所述第二设备中的每一个的当前计算负载来确定所述第一设备和所述第二设备中的每一个的可用计算带宽。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,所述处理设备还:
响应于进入第三设备的通信范围内,确定所述第三设备是否将保持在与所述第一设备的通信范围内达至少所述阈值时间量;以及
响应于确定所述第三设备将保持在与所述第一设备的通信范围内达至少所述阈值时间量:
确定为所述第一包接收的先前块;以及
基于所接收的所述先前块和在所述第三设备将保持在与所述第一设备的通信范围内的最小时间量期间可以从所述第三设备传送到所述第一设备的数据量,从所述第三设备请求所述第一包的额外数量的块。
CN202210391844.8A 2022-03-14 2022-04-14 移动对等设备之间的分块文件传送 Pending CN116800767A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/694,232 2022-03-14
US17/694,232 US20230291787A1 (en) 2022-03-14 2022-03-14 Chunked file transfer among mobile peer devices

Publications (1)

Publication Number Publication Date
CN116800767A true CN116800767A (zh) 2023-09-22

Family

ID=81449080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210391844.8A Pending CN116800767A (zh) 2022-03-14 2022-04-14 移动对等设备之间的分块文件传送

Country Status (3)

Country Link
US (1) US20230291787A1 (zh)
EP (1) EP4247015A1 (zh)
CN (1) CN116800767A (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US20160142862A1 (en) * 2011-10-17 2016-05-19 Google Inc. Techniques for effectuating a near-field communication session
US9674735B2 (en) * 2015-09-22 2017-06-06 Veniam, Inc. Systems and methods for managing connectivity in a network of moving things
JP2018156606A (ja) * 2017-03-21 2018-10-04 東芝メモリ株式会社 通信制御装置、通信制御方法およびコンピュータプログラム
US11340884B2 (en) * 2019-06-20 2022-05-24 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for distributing updates
DE112020003766T5 (de) * 2019-08-08 2022-07-07 Intel Corporation Linkleistungsprognose und Medienstreaming-Technologien
US11509733B2 (en) * 2019-08-29 2022-11-22 Qualcomm Incorporated Determining a location context of a device

Also Published As

Publication number Publication date
EP4247015A1 (en) 2023-09-20
US20230291787A1 (en) 2023-09-14

Similar Documents

Publication Publication Date Title
US20180295034A1 (en) Techniques for analytics-driven hybrid concurrency control in clouds
US8024450B1 (en) System and method for remote administration of computer network
US20200059353A1 (en) Data fetching in data exchange networks
CN109905871B (zh) 用于实现对等无线连接的系统和方法
US11231952B2 (en) Systems and methods for end user experience based migration of user workloads across a computer cluster
US9628567B2 (en) Methods and systems for efficient discovery of devices in a peer-to-peer network
US11671881B2 (en) Procedures for interaction between the radio controller and the subordinated base station
US20150067022A1 (en) Network based software agent to allow dynamic resource access
Garrocho et al. D2D pervasive communication system with out-of-band control autonomous to 5G networks: project and evaluation of a middleware for networking and content exchange to D2D communication without human interaction
US20210157683A1 (en) Method, device and computer program product for managing data backup
US11683707B2 (en) Citizen broadband radio service (CBRS) network performance while taking into account privacy preferences
US11190620B2 (en) Methods and electronic devices for data transmission and reception
WO2022116797A1 (zh) Sim卡选择方法、装置、终端及存储介质
CN116800767A (zh) 移动对等设备之间的分块文件传送
US10949095B2 (en) Method, network adapters and computer program product using network adapter memory to service data requests
US11343654B2 (en) Apparatus and method for sharing content
EP3479550B1 (en) Constraint based controlled seeding
US20150289148A1 (en) Content delivery architecture
EP4359977A1 (en) Proxy services for controlling the persistency, utilization, & dissemination of information provided to a service worker
US20210144217A1 (en) Service communication proxy apparatus and method
Ayaz et al. Data management platform for smart orchestration of decentralized and heterogeneous vehicular edge networks
CN107707620B (zh) 处理io请求的方法及装置
US20230229429A1 (en) Per-host delta-difference generation in update management systems
US11461284B2 (en) Method, device and computer program product for storage management
CN114125034B (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