CN102113352B - 移动通信节点之间的内容发现和传送的方法 - Google Patents

移动通信节点之间的内容发现和传送的方法 Download PDF

Info

Publication number
CN102113352B
CN102113352B CN200980131158XA CN200980131158A CN102113352B CN 102113352 B CN102113352 B CN 102113352B CN 200980131158X A CN200980131158X A CN 200980131158XA CN 200980131158 A CN200980131158 A CN 200980131158A CN 102113352 B CN102113352 B CN 102113352B
Authority
CN
China
Prior art keywords
node
file
nodes
content
data structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200980131158XA
Other languages
English (en)
Other versions
CN102113352A (zh
Inventor
G·F·奥谢
T·C·策恩
A·罗姆斯特姆
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102113352A publication Critical patent/CN102113352A/zh
Application granted granted Critical
Publication of CN102113352B publication Critical patent/CN102113352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

常常要求移动通信节点之间的内容发现和内容传输,例如,以同步安装在车辆上的卫星导航设备、步行者手持式个人数字助理及其他移动通信节点的地图,交通热点信息。在一实施例中,使用以特定方式设计的并使用单个数据包发送的数据结构的内容发现过程使得节点能标识要传输的文件,而同时使开销保持得较低。在一实施例中,使用第一和第二数据结构,每个数据结构都是由关于要同步的文件的子集的稍微不同的信息构成的。在另一实施例中,使用单个基于树的数据结构。还描述了在两个移动通信节点之间传输数据的过程。

Description

移动通信节点之间的内容发现和传送的方法
背景 
诸如车辆中的卫星导航设备或个人导航设备之类的移动通信节点,由步行者携带的个人数字助理和由正在旅行的人用户携带的移动电话通常需要存储内容。例如,在卫星导航设备的情况下,内容可以是地图、公路建设位置、安全相机位置、兴趣点位置、地标位置和类似的信息。取决于移动通信节点的类型和涉及的应用,特定内容将变化。 
通常,由这样的移动通信节点所需的内容需要被更新并分发到节点本身。一个选项是安排移动通信节点在每当需要内容时从网络基础结构下载内容,而并非将内容存储在移动通信节点本地。然而,这样的按需系统产生非常大的通信成本。 
另一选项是将内容存储在移动通信设备本地。在移动设备具有足够的存储器资源的情况下,这是切实可行的。然而,需要不断地更新信息以保持新鲜,还需要以对用户友好的简单、可靠、快速且成本有效的方式将新内容传播到许多这样的移动通信设备。 
用于汽车中的卫星导航设备是已知的,它们提供蓝牙(商标)连通性,以允许设备连接到也在车辆中的移动电话。以此方式,卫星导航设备能够通过使用移动电话的蜂窝网络的数据服务连接到因特网来从因特网数据中心获取内容。然而,此方法依赖于蜂窝电话网络来进行内容分发。不同的组织控制对蜂窝网络基础结构的访问,使得需要与那些不同的组织协商才能进行访问。此外,还在不同的区域使用不同的蜂窝技术,使得可能需要对移动设备进行硬件定制,以便用于那些不同的区域。还可能在网络的不同的地理区域实施不同的收费计划,使得最终用户很可能会发现他们无意中比预期的增加了更大的账单。 
用于汽车上的卫星导航设备也是已知的,它们经由FM无线电信道或 基于卫星的分发接收从网络基础结构广播的内容。此方法在其中覆盖可用的地理区域起作用,虽然这样的覆盖通常是受限的。基于FM的解决方案提供低比特率,并且限于可以获得许可证并安装基础结构的城市和地区。基于卫星的解决方案可以支持高得多的比特率,但是要求昂贵的基础结构投资。 
下面所描述的各实施例不限于解决移动通信节点之间的已知内容发现和传送过程的任何或全部缺点的实现。 
概述 
下面呈现了本发明的简要概述,以便向读者提供基本理解。本概述不是本发明的详尽概述,并且不标识本发明的关键/重要元素,也不描述本发明的范围。其唯一的目的是以简化形式呈现此处所公开的一些概念,作为稍后呈现的更详细的描述的序言。 
常常需要移动通信节点之间的内容发现和内容传输,例如,以同步安装在车辆上的卫星导航设备、步行者手持式个人数字助理及其他移动通信节点的地图、交通热点信息等。在一实施例中,使用以特定方式设计并使用单个数据包发送的数据结构的内容发现过程使得节点能标识要传输的文件,而同时使开销保持得较低。在一个实施例中,使用第一和第二数据结构,每个数据结构都是由关于要同步的文件的子集的稍微不同的信息构成的。在另一实施例中,使用单个基于树的数据结构。还描述了用于在两个移动通信节点之间传输数据的过程。 
通过结合附图参考以下详细描述,可更易于领会并更好地理解许多附带特征。 
附图描述 
根据附图阅读以下详细描述,将更好地理解本发明,在附图中: 
图1是通信网络的示意图; 
图2是通信节点处的方法的框图; 
图3是另一通信节点处的方法的框图; 
图4是作为动态高速缓存中的文件的内容发现过程的一部分的通信节点处的方法的框图; 
图5是作为动态高速缓存中的文件的内容发现过程的另一部分的通信节点处的方法的框图; 
图6是内容发现过程中的节点之间的消息交换的消息序列图表; 
图7是作为固定高速缓存中的文件的内容发现过程的一部分的方法的框图; 
图8是内容发现过程中的节点之间的消息交换的消息序列图表; 
图9是节点处用于内容传输的方法的框图; 
图10是另一节点处用于内容传输的方法的框图; 
图11示出了其中可以实现通信网络节点的实施例的示例性基于计算的设备。 
在各个附图中使用相同的附图标记来指代相同的部件。 
详细描述 
下面结合附图提供的详细描述旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。 
虽然本示例此处被描述为和示为是在包括安装在车辆上的卫星导航设备的汽车网络中实现的,但是,所描述的系统是作为示例而不是限制来提供的。如本领域技术人员将理解的,本发明示例适用于应用在各种不同类型的具有移动通信网络节点的通信网络中。 
术语“数据包”被用来指代具有头部和有效负载的消息数据结构。头部被配置为保留诸如地址细节之类的控制信息。有效负载被配置为保留一个或多个内容块。每一个块都是诸如文件或其他信息项之类的内容片段的部分。每一个块都具有指示块将被配置为构成内容片段的顺序的序列标识 符。 
如上文所提及的,内容常常本地存储在移动通信设备中。然而,需要不断地更新信息以使其保持新鲜,且还需要以对用户友好的简单、可靠、快速且成本有效的方式将新内容散布到许多这样的移动通信设备。内容可以是任何类型的信息,并且可包括图像、列表、地图、数值信息、文本信息,且还包括诸如操作系统更新之类的控制信息或用于控制移动通信节点本身的其他指令或在移动通信节点上提供的任何软件应用程序。内容可以作为文件或作为任何其他形式的信息来存储。 
此处所描述的方法适合用于对等或流行的内容分发系统中,由此移动通信节点能够直接向彼此传输内容(即,无需经由诸如基站之类的静态网络基础结构节点来发送内容)。许多现有的对等内容分发系统被设计成与固定通信节点一起使用,且不适合在通信节点移动的情况下使用,或者效率非常低。当通信节点正在移动时,连接周期常常短暂,大约几秒。例如,在节点与安装在机动车辆或其他车辆上的卫星导航设备形成整体或由步行者携带的情况下。除短暂之外,连接质量通常也较差,且现有的对等内容分发系统在设计时没有考虑到这些。另一因素是,与固定网络基础结构相比,移动通信节点通常具有有限的处理资源。这是现有的对等内容分发协议通常没有考虑的另一特征。 
图1是作为内容分发云100的成员的多个移动通信网络节点101的示意图。每一个移动节点101可以是能够使用无线接口与一个或多个其他移动节点101进行通信的任何合适的设备。即,移动节点可以彼此不同,并包括不同的硬件和软件应用程序,只要它们能够使用任何合适的无线接口彼此进行通信。无线接口可以是诸如如IEEE 802.11标准所定义的WiFi之类的短距离无线接口或任何其他合适的无线接口。例如,也可以使用蓝牙(商标)、IEEE 802.15.4/Zigbee。每一个移动节点101都具有用于存储从其他移动节点中的一个或多个分发的内容的存储器。可以任选地提供静态信息站102。这是具有使用无线接口与移动节点101进行通信的功能的静态或固定通信网络节点。对移动节点101和任何静态信息站节点102中的全 部设置了合适的通信协议软件以实现此处所描述的方法。 
可以使用静态信息站102来将内容播种到内容分发云100中。静态信息站可以访问要通过云分发的全部内容或仅内容的子集。当移动节点101和静态信息站102靠近时,移动节点被安排成与信息站102同步。例如,静态信息站可以是家庭网络的一部分。在该情况下,移动通信节点101可以是,例如,PDA,而每当用户返回到他或她的家时,PDA可以被安排成将内容与家庭网络中的静态信息站同步。替换地,可以在公共停车场提供静态信息站,以使得安装在车辆上的移动节点能够在使用停车场的过程中将内容与该静态信息站同步。 
在一个示例中,需要分发表示要分发的内容的一组文件,f。每一个文件具有任何合适的类型的用密码签名的文件证书。例如,文件证书包括文件SHA1散列、版本号、文件的文本名称以及指示一组文件的任选标志。如本领域内已知的,可以使用离线认证机构(CA)来提供公钥基础结构(PKI)。例如,可以给每一个设备提供CA的公钥。每一个文件都可以与被称为文件的所有者的单个内容提供商相关联,且一般而言,只有所有者才能够生成文件的新版本。当更新文件时,要求新证书带有新文件散列和增大的版本号。一般而言,预期版本号会单调地增大,如此,给定同一个文件的两个证书,任何设备都能够确定哪一个是最新的。 
每一个文件都可以具有与它相关联的此处称为文件标识符和实例标识符的两个文件标识符。文件标识符可以是例如与内容所有者的公钥串接在一起的文本文件名的SHA-1散列。实例标识符与文件和版本相关联,且可以是文件证书的SHA-1散列。通过比较文件标识符,可使节点能确定它们共同拥有的文件组,且通过比较实例标识符,可使节点能检查它们是否具有相同的文件版本。 
每一个节点都具有用于进行内容分发的一组文件,并能够向该组中添加或从该组中删除文件。对该组的文件的选择可以作为用户输入的结果,或者也可以是以任何合适的方式控制的自动化过程。此组文件可以被视为存储在每一个节点上的动态高速缓存中。 
当两个节点101,102相遇时,这些节点上的通信协议允许这些节点同步,以使得指定的文件的较新的版本在节点之间传输(如果可用的话)。可以使用文件证书和PKI基础结构或以任何其他合适的方式来验证所传输的内容。 
如上文所提及的,在节点与安装在机动车辆或其他车辆中的卫星导航设备形成整体或由步行者携带的情况下,有特定的挑战。要求节点物理邻近以便传输内容。至少有两个因素会影响此动作,支持内容分发系统的车辆的比率和所需的内容的流行度。同样,如果一个节点不太可能不久就遇到带有相同文件的另一节点,则一部分所传输的文件的价值较低。 
当两个节点101进入彼此的无线通信范围时,它们需要快速而有效地建立连接,且还需要标识需要在节点101之间传输的一个或多个文件。可以使用用于在节点之间建立连接的任何合适的方法,诸如802.11协议系列的自组织(ad-hoc)模式。每一个节点都被配置成每隔一定时间间隔广播信标消息。 
在优选实施例中,建立连接的过程基于如上文所提及的802.11协议系列的自组织(ad-hoc)模式。通常,每隔100毫秒,802.11网络内的一个节点发出其当前SSID和BSSID。当一个节点启动时,它进入安静状态,并进行预定义信道列表的主动扫描,以发现它可以加入的网络的(SSID,BSSID)对。为进行主动扫描,节点在每一个信道上传送探针请求。当一个节点接收到探针请求时,如果它相信它是被用信标指示的最后节点,则它用包含SSID,BSSID对的探针响应作出响应。如果发现了被内容分发云使用的SSID,那么,该节点进入已加入状态,并将此信息发信号通知到该节点所连接到的操作系统。 
节点保持在已加入状态,只要每隔指定的秒数都能接收到一个或多个信标。例如,这可以每隔3秒或每隔1秒进行一次。如果没有接收到信标,那么,节点如上文所描述的使用探针请求进行扫描。例如,每秒地发送探测请求,且如果在10秒内没有发现其他节点,则该节点进入安静状态,并向操作系统发送已断开连接的信号。 
对于移动节点,如上文所提及的,用于连通性的时间窗口非常小。迅速地发现节点以最大化此窗口十分重要。可以修改自组织(ad-hoc)模式802.11过程的各种默认计时器和参数,以缩短节点发现时间。此外,还可以修改自组织(ad-hoc)模式过程,以确保实现如上文所描述的有源探测,而并非进行被动扫描。例如,当一个节点从已加入状态变换到安静状态时,可以频繁地执行主动扫描,而没有任何睡眠过程。同样,节点可以保持在已加入状态,只要每隔1秒地接收到一个或多个信标,如果这种情况未能发生,就会立即触发断开连接。 
802.11协议的自组织(ad-hoc)模式包括了信标抑制过程,此处认识到,该过程可能会对通信范围内的节点的发现时间造成负面影响。当一个节点由于无意中听到针对其当前SSID的另一信标而停止发送信标时,会发生信标抑制。如此,此处所描述的方法使用显式的广告过程,藉此内容分发云中的每一个节点都反复地广播宣告其存在的广告。例如,每隔k毫秒地广播广告,其中,k大约是100毫秒或任何其他合适的值。以此方式,在k毫秒之后,内容分发云中的在彼此的通信范围内的所有节点都将发现彼此。 
如上文所提及的,移动节点可能只有十分短的机会窗口,约为几秒,用于交换内容。因此,希望标识需要利用尽可能少的通信往返行程进行传输的文件。往返行程是将消息从源节点发送到目的地节点以及源节点从目的地节点接收到应答所需的时间。该过程还需要是稳健的,因为消息可能会由于移动节点之间的连接质量差而导致容易丢失。术语“源节点”是指通信网络的一个节点,该节点被配置为将存储在该节点上的内容传送到通信网络中的另一节点。术语“目的地节点”是指通信网络的一个节点,该节点被配置为接受从通信网络中的另一节点传送的内容。通信网络的单个节点可以既作为源节点又作为目的地节点来操作。 
现在将参考图2的框图来描述诸如图1的内容分发云100之类的通信网络中的源节点处的方法。此方法包括从源节点广播广告。在通信网络中的目的地节点接收这些广告,并可以使用它们来标识需要利用很少的往返 行程传输的文件(如下面参考图3所描述的)。此外,两个节点还能够有效地确定它们共同拥有哪些文件以及哪一个节点具有最新的版本(如下面参考图3所描述的)。这种类型的过程可以称为动态内容的内容发现过程。 
源节点访问(图2的框200)其存储了用于内容分发的文件的动态高速缓存。如上文所提及的,每一个文件都具有名称、版本和公钥。对于每一个文件,源节点生成两个标识符(框201)。基于文件的名称和公钥,为文件生成文件标识符。基于文件的名称、公钥和版本,为文件生成实例标识符。源节点还根据文件和每一个文件的实例标识符生成全局标识符(参见图2的框202)。即,每个动态高速缓存都只有一个全局标识符。源节点将全局标识符以及关于其动态高速缓存中的文件的总数的信息嵌入到广告消息中(图2的框203)。如上文所描述的,源节点反复地广播广告(框204)。 
目的地节点接收(图3的框300)广告,如在图2的框204广播的广告。目的地节点任选地检查(框301)在其动态高速缓存中它是否具有比广告发送者更少的文件。它使用接收到的广告中关于源节点动态高速缓存中的文件的数量的信息来执行此项动作。 
进行此任选检查是为了减少完成关于在两个节点之间共同拥有哪些文件以及哪一个节点具有这些文件中的每一个文件的最新版本的协商所需的消息的数量。在其动态高速缓存中具有最少数量的文件的节点开始该过程,以便减少消息的数量。该过程是可行的,无需进行框301中的检查,在该情况下,广告不需要包括关于适当节点的动态高速缓存中保留的文件的数量的信息。 
如果目的地节点的动态高速缓存中的文件比源节点的文件少,则目的地节点执行如图3所示的过程。否则,目的地节点继续广播广告(框302)。 
为了判断是否要与源节点交换文件,目的地节点将其全局标识符与接收到的广告中的全局标识符进行比较(框303)。如果发现了区别,那么,源节点和目的地节点具有不同的内容文件。节点任选地被配置为存储源节点的地址以及它们完全与其交换了它们的动态高速缓存内容的任何源节点 的全局标识符(框304)。这防止对于已经被同步的节点不必要地进行内容发现过程。 
接下来进行用于判定共同保留了哪些动态缓存文件以及哪个节点具有这些文件的最新版本(框305)。下面将参考图4和5比较详细地描述此过程。使用任何合适的内容传输过程,例如,IP上的TCP或任何其他合适的基于数据包的内容传输过程,传输已标识的文件(框306)。在同步之后,接收到的广告中的源节点的地址和全局标识符任选地存储在目的地节点上(框307)。 
因为节点的动态高速缓存中的文件组可以是任意大的,并且因为在数据包的有效负载中可以传输的数据量是有限的,因此,难以以有效的方式实现内容发现过程。为了寻址,使用这些数据结构来在节点之间传输关于动态高速缓存中的文件的数据,且这些数据结构被以特定方式设计,以便能简单而有效地实现内容发现过程。 
在特定示例中,数据结构基于Bloom(布隆)过滤器。然而,不一定要使用Bloom过滤器。可以使用能以使得数据结构可被用于确定特定文件是否是一组已编码的文件的成员而不会提供错误否定的方式编码文件组成员资格的任何合适的数据结构。在B.Bloom所著的“Space/time trade-offs in hash coding with allowable errors(具有容许差错的散列编码中的空间/时间权衡)”(ACM通信,13(7):422-426,1970)中详细描述了Bloom过滤器。 
Bloom过滤器包括某一长度的比特阵列,其中,对于给定集的每一个项目,对于j个散列函数的给定集合中的所有散列函数,hashj(item)th(散列j(项目)th)比特被置位。为了检查集合中是否存在一项目,检查每一个hashj(item)th,且如果每一比特都被置位,那么,bloom过滤器被视为包含该项目。Bloom过滤器不会产生错误否定,但是,它们可以产生错误肯定。一般而言,在可以在给定长度的Bloom过滤器中编码的项目的数量与错误肯定的概率之间有折衷。 
在某些实施例中,使用了完全的Bloom过滤器,其中,在Bloom过滤 器中编码了动态高速缓存中的所有文件的文件标识符。然而,在其他实施例中,使用部分Bloom过滤器,其中只编码了文件标识符的子集。例如,头1000个或头500个文件标识符。 
在特定实施例中,提供了带有阵列长度18288比特的bloom过滤器,该过滤器被安排成与数据包有效负载的大小相同。通过使用由Mitzenmacher(M.Mitzenmacher.压缩bloom过滤器.IEEE/ACM关于联网的学报,10(5),2002)给出的启发式法,使用12个散列函数,每部分Bloom过滤器地编码1000个文件标识符。这会产生0.0154%的错误肯定概率。然而,使用这些特定Bloom过滤器参数不是不可缺少的。 
现在将参考图4、5和6描述用于确定要在两个节点A和B之间传输的适当文件的协商方案。图4和5的过程更详细地描述了在图3的框305中的高层所描述的过程。假设节点B是在其动态高速缓存中有较少文件的节点(虽然如上文所提及的,这不是必需的)。 
节点B从节点A接收广告602。广告包括如上文所提及的全局标识符,并且任选地包括关于A的动态高速缓存中的文件的数量的细节。通过使用此信息,B能够确定它在其动态高速缓存中具有较少的文件,以及在A与B之间需要传输至少一个文件。 
节点B还生成第一数据结构,并将其发送到节点A。此第一数据结构由动态高速缓存处指定的文件组的文件标识符构成(图4的框400)。指定的文件组可以是动态高速缓存中的文件的子集,或者也可以是所有那些文件。上文参考图2描述了文件标识符。 
节点B还生成第二数据结构,并将其发送到节点A。此第二数据结构由相同的文件的实例标识符构成(图4的框401)。上文参考图2描述了实例标识符。 
节点B创建第一和第二数据结构并在消息603中将它们发送到节点A(参见图6)。在一个示例中,此消息是包括两部分Bloom过滤器(都使用可用比特的一半)的全帧(或数据包)。第一部分Bloom过滤器是从B的头500个本地文件的文件标识符生成的。第二部分Bloom过滤器是从B 的头500个本地文件的实例标识符生成的。 
设备A从B接收第一数据结构和第二数据结构,并继续以进行图5的框501和502所描述的检查。参考图5,节点A从节点B接收第一和第二数据结构(框500)。对于其动态高速缓存中的每一个文件,节点A检查该文件的文件标识符是否被包括在第一数据结构中(框501)。如果包括,则就第二数据结构中是否没有该文件的实例标识符进行检查(框502)。如果如此,则选择该文件作为两个节点共享的,但是带有不同的版本文件(错误肯定的情况除外)(框503)。在该情况下,向B发送包括所选文件的细节的数据结构(框504)。然后,A通过发送由A中的所有文件的文件标识符构成的全帧大小的部分bloom过滤器(消息604)来对B作出响应,文件标识符被表示在从B接收到的第一数据结构中,但是,认为不被表示在从B接收到的第二数据结构中。全帧大小的部分Bloom过滤器是由A发送到B的。 
B从A接收全帧大小的部分Bloom过滤器,并比较B上存在的文件的高速缓存,以确定那些文件中的哪些被表示在全帧大小的部分Bloom过滤器中。对于每一个这样的文件,B发送(605)包含B的文件版本以及A判定是向B推该文件还是从B拉该文件所依据的其他文件信息的文件信息记录(消息606)。接着发生批量内容传输过程607,并且对于下一已标识的文件608重复该过程。 
再次参考图4,节点B从节点A接收数据结构,该数据结构包括组中两个节点共享但是带有不同的版本的所有已标识文件的细节(框402)。对于每一个已标识文件,节点B将文件信息记录发送到节点A(框403),并从A接收推或拉该文件的请求(框404)。然后,进入内容传输过程,以传输文件(框405),并且对每一个已标识文件重复此过程,如图4所示的。可以使用任何合适的内容传输过程。 
在图6中概述了图4和5的方法,图6表示了节点A 600,以及B 601和在这些节点之间发送的消息。箭头的方向指示发送消息的方向,而页面上箭头的相对位置指示消息在时间上的顺序。 
可以对方法进行各种修改。例如,部分Bloom过滤器可以由任何合适的预先指定数目个随机或以任何其他合适的方式选择的本地文件构成。在另一示例中,代替使用两个部分Bloom过滤器,可以使用单个Bloom过滤器来编码第一和第二数据结构两者的数据。即,第一和第二数据结构可以是整体的。 
在特定示例中,动态高速缓存dd中的每一个文件i都具有文件名fnamei和16比特版本versioni以及与它相关联的其所有者的公钥pki。通过使用SHA-1散列函数H,节点为dd中的每一个文件i生成两个唯一性160比特标识符: 
File Identifieri=H(concat(fnamei,pki))(文件标识符i=H(concat(文件名I,pki)))以及Instance identifieri=H(concat(fnamei,pki,versioni))(实例标识符i=H(concat(文件名 i,pki,版本i)))。 
为dd中的按文件标识符排序的所有n个文件生成表示dd的全部内容的单个160比特散列密钥:Global Identifier=H(concat(InstanceIdentifier1,Instance Identifier2,…,Instance Identifiern))(全局标识符=H(concat(实例标识符1、实例标识符2、…实例标识符n)))。在另一实施例中,可以使用散列链接生成全局标识符。全局标识符是使用一致排序生成的,以使得带有相同文件和版本的两个节点能具有相同的全局标识符。可以使用任何合适的排序,只要一致地使用即可。每一设备都在其周期性的广告中嵌入其全局标识符。如此,任何设备都可以将其160比特全局标识符与另一设备(刚才听到了其广告)的全局标识符进行比较,并快速地确定这些设备是否具有相同或不同的内容文件。因为全局标识符只占用20个字节,因此,周期性的广告保持很小。 
通信网络中的每一个节点也可以在固定内容高速缓存中保持固定的内容文件。预计固定内容在所有节点上存在,且固定内容的示例可以是操作系统文件。 
现在将参考图7描述固定内容发现的过程的示例。每一个节点都生成 用于嵌入在广告中的信息,并如现在所描述的,广播此广告。节点将其固定文件分组为2k个组(框700)。例如,对于每一个固定文件,取文件标识符的k比特前缀(如上文参考图2所描述的)。此文件标识符可以是内容提供商公钥和文件的文本名称的散列。将具有相同前缀的所有文件都被放进一个组中。可以选择k的值,以使得每一个组平均具有m个文件,例如,m=16,k=4。这会产生2k个组,表示为g0到g2k。如此使用文件标识符,以使得文件独立于它们的版本被分组。 
对于每一个组,由节点上的处理器自动地生成组散列(框701)。对于每一个文件,通过取文件证书的散列来创建实例标识符。然后,使用每一个组中的文件的实例标识符值对这些文件进行排序,且通过散列链接,来生成组散列。即,递归地散列每一个实例标识符,例如,H(IdFile4,H(IdFile3,H(IdFile2,H(IdFile1))))。其中,H表示散列函数。 
然后,使用节点处的处理器自动地创建Merkle树(框702)。在R.Merkle的A digital signature based on a conventional encryption function(基于常规加密函数的数字签名)(在Crypto′87,1987中)中详细描述了Merkle树。Merkle树的每一行是通过取来自前一行的对并将它们散列在一起来生成。组散列值是树的叶子,并根据它们的k比特前缀被排序。对于空组,使用空值令牌。Merkle树的根是整个固定文件集的唯一性散列,由所使用的k的值来参数化。任何节点都可以通过比较相同的k值的根散列来确定它们的固定集是否相同。如果根散列不同,那么,节点具有不同的内容。在信标(框703)和广播(框704)中包括了根散列和k的值。 
如果一节点检测到其根散列不同于另一节点的根散列,则它执行递归过程,以确定在两个节点处的固定高速缓存中哪些文件不同。现在将参考图8对此进行描述。 
节点A 800广播由节点B 801接收的广告802。节点B 801处的处理器自动地检查广告中的根散列是否不同于节点B的本地根散列(框803)。如果是,则节点B处的处理器选择节点B的Merkle树的第j层,并在数据包804中将其发送到节点A。第j层是基于被通信协议使用的数据包的 有效负载大小来选择的。例如,如此选择Merkle树的第j层,以使得2j*20<有效负载大小。在节点A处,处理器自动地检查805其本地Merkle树的第j层中的哪些散列不同于在数据包804中接收到的那些散列。对于那些不同的散列,节点A使用数据包806将其本地Merkle树的相关联子树层发送到节点B。然后,节点B检查其本地Merkle树的该子树层中的哪些散列不同于在数据包806中接收到的那些散列。它基于那些不同的散列来选择其本地Merkle树的相关联子树层,并使用数据包808将该子树层发回到节点A。重复此过程,直到可以将可能不同的组的集合的全部散列放进一个数据包中。在某些实施例中,将两个组放入一个数据包中,从而使所需的数据包的数量低一些,且这会影响m的值的选择。 
这提供了有效地允许一个节点利用较低开销检测不同的文件的非常有效的算法。例如,在使用2304字节的有效负载大小的一实现中,可以将115个散列装入单个数据包中。在此情况下,当m=16时,组具有57个以上的文件的可能性较低。(当m=16时,单个组具有56个条目或更多的概率是10-15。在此情况下,仅Merkle树的一个层需要交换,以便发现不同的文件,其中,固定集中的文件的数量少于大致3650个。如此,该过程能够在几个消息中迅速而有效地标识不同的文件。 
可以向固定文件高速缓存中添加文件并从其中删除文件。添加文件会影响单个组,并且该文件被映射到单个组。可以对已删除的文件保持永久性记录。对文件进行分组可以在添加或删除一个或多个文件的情况下有效地确定需要哪些组。例如,这样进行分组,以使得当添加一个文件时,只影响单个组。然后,如果添加两个文件,每一个文件被添加在不同的组中,则可以有效地确定哪两个组已被影响。在发现了第一不同的文件之后,不需要重复内容发现过程。 
一旦使用上文所描述的方法检测到固定文件高速缓存中的不同的文件,就可以使用任何合适的内容传输过程来在两个节点之间传输该文件。例如,可以使用IP上的TCP,或任何其他合适的基于数据包的内容传输过程。 
在某些实施例中,现在将参考图9和10描述与此处所描述的方法一起使用的内容传输过程。此内容传输过程利用每一个节点预先知道要传输的文件的大小的能力。例如,在图6的过程中,文件大小信息对于当前具有该文件的节点是已知的,并该信息作为文件信息记录的一部分被发送到其他节点(图6的消息605)。在图8的过程中,将接收已标识文件的最新版本的节点要么从其他节点请求文件大小信息,要么向它自动地发送该信息。 
图9是通信网络中的源节点处的方法的框图。源节点可以是图1的通信节点中的任一个,且它也可以作为目的地节点来操作。 
源节点具有访问(框901)要传输到目的地节点的文件或其他内容片段的输入。源节点包括任何合适的类型的处理器,该处理器被安排成将文件或其他内容片段拆分为块(参见框902),其中,一个块具有预先指定的大小。处理器为每一个块创建具有一个比特的发送矢量(参见框903),且此矢量被初始化,例如,以使得每个比特都具有零值。 
当初始化了发送矢量时,该矢量中的所有比特都被视为被复位。然后,发生将块发送到目的地节点的过程(参见图9的框904)。对于发送矢量中的任何复位的比特,处理器被配置为将与该复位的比特相对应的块发送到目的地节点。对于块,重复此过程,且当发送矢量中的所有比特都被置位时结束(框905)。在此过程中,如果从目的地节点接收到接收矢量(框906),则使用该接收矢量代替发送矢量。在下文中参考图10更详细地描述了接收矢量。当发送块时,它们可以构成例如数据包,且一个或多个块构成一个数据包的有效负载,并且数据包具有包括诸如源节点和目的地节点的细节之类的控制信息的头部。 
图10是目的地节点处的方法的框图。目的地节点访问关于要传输的数据块的数量的信息(图10的框1001)。以任何合适的方式获取此信息。例如,源节点和目的地节点之间的连接可能已经建立,且源节点可以将此信息提供给目的地节点。目的地节点包括处理器,该处理器被安排成为要传输的每一个块创建具有一个比特的接收矢量(图10的1002)。初始化接收矢量,以便每一个比特都被视为被复位。 
如上文所提及的,源节点和目的地节点之间的连接已经建立,且目的地节点针对数据包监视该连接。如果接收到块,则目的地节点上的处理器被安排成置位接收矢量中的相关联比特,并监视该矢量中的置位的比特的数量(图10的框1003)。 
如果置位比特的数量已增大了阈值比例(图10的框1006),那么,目的地节点将其接收矢量发送给源节点(图10的框1007)。阈值比例可以是50%或任何其他合适的阈值。而且,处理器任选地被安排成如果在目的地节点上接收到重复的块,则将接收矢量发送到源节点(图10的框1004和1007)。当接收矢量中的所有比特都被置位时,过程结束(框1005)。 
通过使用如此处所描述的接收矢量,需要发送的确认数据包的数量是较低的。这里的确认数据包是那些发送接收矢量的数据包。这就提高了效率并减轻对通信网络资源的压力。例如,目的地节点不需要每n个数据包就发送接收矢量的副本。它可以基于接收到的数据包的函数来发送其接收比特矢量的副本。例如,每当目的地节点发送接收矢量时,它都能够记录置位的比特的数量。当置位比特的数量增大50%(或其他合适的阈值比例)时,这会触发对接收矢量的发送。而且,如果目的地节点获得预定义的数量的重复的数据包,例如,一个,则它会触发对接收矢量的发送。以此方式,协议生成包含接收矢量信息的O(logk)个数据包(其中,k是传输文件所需的数据包的数量)。例如,要在带有30%的丢失率的链路上传输1MB文件,所发送的接收矢量数据包的数量少于完成传输所需的数据包的总数的1%。此外,在目的地节点处接收到的重复的数据包的数量将接近于零。而且,如果文件传输被中断,且需要利用相同或者不同的通信网络节点来恢复,则目的地节点能够提供接收矢量,且传输过程从那一点开始。 
还要注意,如果源节点和目的地节点之间的连接具有高丢失率,并且这会导致包含接收矢量的数据包被丢弃,那么,恢复是快速的。这是因为包含接收矢量的另一数据包将立即被发送。结果,该过程是稳健的。 
接收矢量通常是能够放入单个数据包中的大小。在一个非常大的文件要从源节点传输到目的地节点的情况下,不可能将接收矢量放入单个数据 包中。在此情况下,源节点可以将文件分解或拆分为一个或多个部分,并使用此处所描述的过程来分开地发送这些部分中的每一部分。一旦接收到所有部分,目的地节点就可以重构原始较大的文件。 
在现在将参考图5所描述的另一实施例中,源节点和目的地节点是具有用于连接彼此的无线网络接口控制器的移动通信设备。节点具有有限的计算能力。源节点和目的地节点可以使用基于IEEE 802.11系列标准中所定义的那些通信协议的通信协议以自组织(ad hoc)模式彼此直接接口(如图5中的箭头503所表示的)。在此实施例中,源节点和目的地节点之间的通信链路是短暂的,并是有损耗的。例如,源节点和目的地节点与行驶中的汽车500中的卫星导航设备501集成在一起。 
例如,在此实施例中,节点包括带有集成的无线网络接口控制器的卫星导航设备。节点被安排成使用如上文所描述的图2到6的方法来执行每一个节点处的动态高速缓存中的文件的内容发现。节点被安排成使用诸如IP上的TCP之类的任何合适的协议或使用上文参考图9和10所描述的过程来执行内容传输。在使用上文参考图9和10所描述的过程的情况下,不需要使用IP。替代地,可以使用结合到所有数据包中的头部里的节点的MAC地址来标识节点。以此方式,不需要检测和管理重复的IP地址或使用地址解析协议(ARP)。而且,还可以利用无线网络接口控制器可以支持的全帧大小。这会减少每个数据包的开销,并且使得能实现更高的实际吞吐量(goodput)。 
在评估中,在包括两辆汽车的小型车辆试验台上进行许多实验。对于所有实验,在每一辆汽车中安装了带有Netgear(商标)WAG511 PCMCIA卡(该卡使用Atheros(商标)ar5212芯片集)的运行Windows 
Figure BPA00001309981800171
XP SP2的膝上型计算机。计算802.11天线的两种可能的配置:在基本的情况下,在后置物架上放置了膝上型计算机,与将安装便携式卫星导航设备的高度一致。在第二种情况下,通过在每一小汽车的顶棚安装膝上型计算机来将天线放置在小汽车外部。为了最小化来自部署在家庭的其他无线网络的干扰,使用在5.4GHz频带上操作的802.11a。另外,两个膝上型计算机都配 备有GPS接收器,以记录它们的相应的位置和速度。在实验中,每台膝上型计算机都被配置成使用经修改以确保快速的链路层发现的Atheros(商标)Reference(参考)驱动程序。对于每一个实验,两台膝上型计算机在它们的dd中都具有相同50个文件条目。其中一台膝上型计算机具有每一文件的稍晚的版本,且每一文件的大小都是10MB。当两个设备形成连接时,它们使用前面所描述的内容发现算法来确定要传输的文件。为了传输文件,考虑了两个配置:TCP和Broadside(侧面)。TCP:在此配置中,使用了标准的未经修改的Windows XP SP2 TCP/IP堆栈,且使用配置有1500字节的标准MTU的TCP来传输文件。为了动态地消除将IP地址指派到膝上型计算机的开销,我们向每一台膝上型计算机静态地配置了非冲突的IP地址。Broadside:在此配置中,TCP/IP堆栈被禁用,使用参考图9和10所描述的数据传输协议。这意味着,不需要向每一台膝上型计算机指派IP地址,并且数据传输被配置成使用2304字节的最大帧大小。实验是在英国剑桥的街道进行的。为了增大结果中的置信度,所有实验都是在同一天进行的,每一个实验紧接着进行5次,从而试图确保所有实验都是以相同车辆速度进行的。为了取得可重复性,在我们的实验中只使用了一辆行驶的小汽车,而第二辆汽车停在路边。行驶的小汽车全程作为数据源,向静止的小汽车传输。对于每一个实验,进行了5遍。每一遍的持续时间都不同,因此对于每一遍,通过膝上型计算机之间的连通性的持续期来规范化已实现的实际吞吐量,以提供以每秒字节数计的实际吞吐量。基于此实际吞吐量度量,对该5遍进行排序,且选择达成了中值的那一遍,以在随后进行交叉比较。位置接近于剑桥市中心,但是,由于地方交通限制通行方案,只有适量的过境交通。该地区具有很密集的典型的十九世纪欧洲城镇中心开发的建筑物,并有典型的狭窄马路,马路两侧排列着两层带阳台的房屋。沿着马路的一侧或两侧停满了一排汽车,没有足够的空间让两辆汽车在相反的方向通过,因此实施了单行规则,并限速。这就在最接近点将我们的小汽车的速度限制在10和15英里/小时之间。结果表明,TCP实现差不多1兆字节/秒的合理的实际吞吐量,对于内部和外部天线都是如此。Broadside使用内 部天线比TCP好1.61倍,而在使用外部天线的情况下,则好1.85倍。在下表中示出了连接时间和实际吞吐量的字节总数。 
    时间   实际吞吐量
  TCP内部   15.594   15,294,708
  Broadside内部   13.797   21,915,440
  TCP外部   28.172   25,731,072
  Broadside外部   26.765   45,301,480
图11示出了可以实现为计算和/或电子设备中的任何形式的,且其中可以实现此处所描述的通信节点中的任何通信节点的实施例的示例性基于计算的设备1100的各种组件。例如,设备1100可以是PDA、膝上型计算机、用于车辆中的卫星导航设备或其他合适的基于计算的设备。
基于计算的设备1100包括一个或多个输入1108,它们是用于接收媒体内容的任何合适的类型,因特网协议(IP)输入,或其他输入。设备还包括无线天线1111和无线网络接口控制器1105。 
基于计算的设备1100还包括一个或多个处理器1106,这些处理器1106可以是微处理器、控制器或任何其他合适的类型的用于处理计算可执行指令的处理器,用以控制设备的操作,以便与另一节点进行通信,发现该节点上的内容,并传输该节点上的内容。可以在基于计算的设备上提供包括操作系统1102的平台软件或任何其他合适的平台软件,以允许应用程序软件1110在设备上执行。 
计算机可执行指令可以使用诸如存储器1101之类的任何计算机可读介质来提供。存储器是诸如随机存取存储器(RAM)之类的任何合适的类型,诸如磁性或光存储设备、硬盘驱动器或CD、DVD或其他磁盘驱动器之类的任何类型的磁盘存储设备。也可以使用闪存、EPROM或EEPROM。 
还提供了诸如到与基于计算的设备形成整体或与基于计算的设备进行通信的显示器1107的音频和/或视频输出之类的输出1109。显示系统可以提供图形用户界面,或任何合适的类型的其他用户界面,虽然这不是必需 的。 
此处所使用的术语“计算机”是指带有处理能力以使得它可以执行指令的任何设备。本领域的技术人员将认识到,这样的处理能力被集成到许多不同的设备中,因此,术语“计算机”包括PC、服务器、移动电话、个人数字助理和许多其他设备。 
此处所描述的方法可以通过有形存储介质上的计算机可读形式的软件来执行。软件可以适合于在并行处理器或串行处理器上执行,以便方法步骤可以以任何合适的顺序或同时实现。 
这承认,软件可以是有价值的,单独地可交换的商品。旨在包含在“哑的”或标准硬件上运行或控制这些硬件的软件以执行所希望的功能。还旨在包含“描述”或定义硬件的配置的软件,诸如HDL(硬件描述语言)软件,用于设计硅芯片或用于配置通用的可编程芯片,以执行所希望的功能。 
本领域技术人员会认识到,用于存储程序指令的存储设备可分布在网络上。例如,远程计算机可以存储被描述为软件的进程的示例。本地或终端计算机可以访问远程计算机并下载软件的一部分或全部以运行程序。替换地,本地计算机可以根据需要下载软件的片段,或在本地终端上执行一些软件指令,并在远程计算机(或计算机网络)上执行一些软件指令。本领域的技术人员还将认识到,通过利用本领域的技术人员已知的传统技术,软件指令的全部,或一部分可以通过诸如DSP、可编程逻辑阵列等等之类的专用电路来实现。 
对本领域技术人员显而易见的是,此处给出的任何范围或设备值可以被扩展或改变,而不会丢失寻求的效果。 
可以理解,上文所描述的益处和优点可以涉及一个实施例或可以涉及若干实施例。各实施例不仅限于解决任何或全部所陈述的问题的那些实施例或具有任何或全部所陈述的益处和优点的那些实施例。进一步可以理解,对“一”项目的引用是指那些项目中的一个或多个。 
此处所描述的方法的步骤可以在适当的情况下以任何合适的顺序,或同时实现。另外,在不偏离此处所描述的主题的精神和范围的情况下,可 以从任何一个方法中删除个体框。上文所描述的任何示例的各方面可以与所描述的其他示例中的任何示例的各方面相结合,以构成进一步的示例,而不会丢失寻求的效果。 
此处使用了术语“包括”旨在包括已标识的方法的框或元件,但是这样的框或元件不包括排它性列表,且方法或设备可以包含额外的框或元件。 
可以理解,上文对优选实施例的描述是只作为示例给出的,本领域的技术人员可以作出各种修改。上面的说明、示例和数据提供了对本发明的示例性实施例的结构和使用的完整的描述。虽然上文以一定的详细度或参考一个或多个个体实施例描述了本发明的各实施例,但是,在不偏离本发明的精神或范围的情况下,本领域的技术人员可以对所公开的实施例作出很多更改。 

Claims (7)

1.一种在具有存储了需要与通信网络(100)中的至少一个其他节点(101)同步的多个文件的存储器(1101)的通信网络节点(101)处的方法,包括:
自动地生成包括第一数据结构的数据包(603)并将其发送(400)到其他节点,该第一数据结构是使用所述多个文件的文件名和公钥来形成的;
自动地生成使用所述多个文件的文件名、公钥和版本号形成的第二数据结构,并将其发送(401)到其他节点;
从所述其他节点接收(402)包括具有所述多个文件中存在于在该其他节点处的存储器中的带有不同的版本号的任何已标识文件的细节的数据结构的数据包。
2.如权利要求1所述的方法,其特征在于,所述第一和第二数据结构两者都在所述数据包中发送。
3.如权利要求1所述的方法,其特征在于,所述第一数据结构和第二数据结构基于Bloom过滤器。
4.如权利要求1所述的方法,其特征在于,所述第一和第二数据结构是使用仅关于所述多个文件的一部分的信息来形成的。
5.如权利要求1所述的方法,其特征在于,还包括执行内容传送过程(607)以使已标识文件中的每一个与其他节点同步。
6.如权利要求1所述的方法,其特征在于,包括从其他节点接收广告(300),所述广告是包括全局标识符的数据包,以及基于所述广告中的全局标识符与所述节点的全局标识符的比较判断是否进行(301)对所述第一数据结构和第二数据结构的发送。
7.如权利要求6所述的方法,其特征在于,每个全局标识符是使用所述存储器中的每个文件的文件标识符和实例标识符来形成的,所述文件标识符是使用每个文件的文件名和公钥形成的,而所述实例标识符是使用每个文件的文件名、公钥和版本号形成的。
CN200980131158XA 2008-07-31 2009-07-20 移动通信节点之间的内容发现和传送的方法 Active CN102113352B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/183,460 US8103718B2 (en) 2008-07-31 2008-07-31 Content discovery and transfer between mobile communications nodes
US12/183,460 2008-07-31
PCT/US2009/051176 WO2010014452A2 (en) 2008-07-31 2009-07-20 Content discovery and transfer between mobile communications nodes

Publications (2)

Publication Number Publication Date
CN102113352A CN102113352A (zh) 2011-06-29
CN102113352B true CN102113352B (zh) 2013-12-25

Family

ID=41609425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980131158XA Active CN102113352B (zh) 2008-07-31 2009-07-20 移动通信节点之间的内容发现和传送的方法

Country Status (4)

Country Link
US (2) US8103718B2 (zh)
EP (2) EP2308247B1 (zh)
CN (1) CN102113352B (zh)
WO (1) WO2010014452A2 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8649276B2 (en) * 2008-07-31 2014-02-11 Microsoft Corporation Content transfer
US8103718B2 (en) 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8321949B1 (en) * 2008-08-29 2012-11-27 Adobe Systems Incorporated Managing software run in a computing system
US8667479B2 (en) * 2009-01-19 2014-03-04 Telefonaktiebolaget L M Ericsson (Publ) Mobile specialized software code updated
US8958354B2 (en) * 2009-03-13 2015-02-17 Qualcomm Incorporated Wireless access point beacon messaging
US8996568B2 (en) * 2009-07-14 2015-03-31 Qualcomm Incorporated Methods and apparatus for efficiently processing multiple keyword queries on a distributed network
JP5536891B2 (ja) * 2009-09-01 2014-07-02 エヌイーシー ヨーロッパ リミテッド ネットワークのモニタリング方法およびモニタリング機能を含むネットワーク
EP3940533A1 (en) 2009-09-08 2022-01-19 Abbott Diabetes Care, Inc. Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device
US20110149086A1 (en) 2009-12-23 2011-06-23 Winbush Iii Amos Camera user content synchronization with central web-based records and information sharing system
US8542636B2 (en) * 2010-01-04 2013-09-24 Lili Qiu Vehicular content distribution
US8942377B2 (en) * 2010-02-12 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Trust discovery in a communications network
US20110231547A1 (en) * 2010-03-18 2011-09-22 Yang Ju-Ting Search methods applied to a personal network gateway in converged personal network service systems and related converged personal network service systems and mobile devices
US8478934B2 (en) 2010-07-19 2013-07-02 Lsi Corporation Managing extended RAID caches using counting bloom filters
KR101170882B1 (ko) * 2010-08-12 2012-08-03 팅크웨어(주) 관심지점 표시장치 및 방법
US8589350B1 (en) 2012-04-02 2013-11-19 Axcient, Inc. Systems, methods, and media for synthesizing views of file system backups
US10284437B2 (en) 2010-09-30 2019-05-07 Efolder, Inc. Cloud-based virtual machines and offices
US8954544B2 (en) 2010-09-30 2015-02-10 Axcient, Inc. Cloud-based virtual machines and offices
US9705730B1 (en) 2013-05-07 2017-07-11 Axcient, Inc. Cloud storage using Merkle trees
US9235474B1 (en) 2011-02-17 2016-01-12 Axcient, Inc. Systems and methods for maintaining a virtual failover volume of a target computing system
US8924360B1 (en) 2010-09-30 2014-12-30 Axcient, Inc. Systems and methods for restoring a file
WO2012087188A1 (en) * 2010-12-20 2012-06-28 Telefonaktiebolaget L M Ericsson (Publ) Searching in peer to peer networks
KR20120091605A (ko) * 2011-02-09 2012-08-20 주식회사 팬택 멀티 무선통신 방식을 지원하는 단말기 및 이를 이용한 데이터 통신 방법
US8548961B2 (en) 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
JP5982572B2 (ja) * 2012-07-18 2016-08-31 ケイティー コーポレーションKt Corporation 無線lanシステムで能動検索方法
US9785647B1 (en) 2012-10-02 2017-10-10 Axcient, Inc. File system virtualization
US9852140B1 (en) 2012-11-07 2017-12-26 Axcient, Inc. Efficient file replication
US9400800B2 (en) * 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9185148B1 (en) 2012-12-17 2015-11-10 Google Inc. Methods and systems for efficient discovery of devices in a peer-to-peer network
US9361302B1 (en) * 2013-03-04 2016-06-07 Emc Corporation Uniform logic replication for DDFS
US9292153B1 (en) 2013-03-07 2016-03-22 Axcient, Inc. Systems and methods for providing efficient and focused visualization of data
US9397907B1 (en) 2013-03-07 2016-07-19 Axcient, Inc. Protection status determinations for computing devices
US9215075B1 (en) 2013-03-15 2015-12-15 Poltorak Technologies Llc System and method for secure relayed communications from an implantable medical device
CN103200267A (zh) * 2013-04-11 2013-07-10 天脉聚源(北京)传媒科技有限公司 一种文件管理的方法和系统
JP6201438B2 (ja) * 2013-06-06 2017-09-27 富士通株式会社 コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム
JP2015108927A (ja) * 2013-12-04 2015-06-11 日本電気株式会社 情報処理装置、データ同期方法及びプログラム
US10616328B2 (en) 2014-08-27 2020-04-07 Hewlett-Packard Development Company, L.P. Updating files between computing devices via a wireless connection
WO2017079652A1 (en) * 2015-11-05 2017-05-11 Pulsifer Allen Cryptographic transactions system
US10606810B2 (en) 2017-01-09 2020-03-31 Splunk Inc. Clustered search head configurations synchronization with bloom filter
US10678803B2 (en) 2017-04-28 2020-06-09 Splunk Inc. Single point of dispatch for management of search heads in a hybrid cloud deployment of a query system
US10579607B2 (en) 2017-04-28 2020-03-03 Splunk Inc. Single point of dispatch for hybrid cloud deployment for indexer clusters
US10956278B2 (en) 2017-04-28 2021-03-23 Splunk Inc. Intelligent captain selection for disaster recovery of search head cluster
US20190313224A1 (en) * 2018-04-10 2019-10-10 GM Global Technology Operations LLC Automated vehicle systems and control logic for smart data exchanges using enhanced bloom filters
US11499838B2 (en) * 2019-10-25 2022-11-15 Here Global B.V. Method, system, and computer program product for providing traffic data
CN111444163B (zh) * 2020-03-25 2023-09-22 汉海信息技术(上海)有限公司 一种地图数据管理以及电子地图回滚的方法及装置
CN111429724B (zh) * 2020-04-23 2022-02-15 安徽大学 一种交通数据去重获取方法
US20210364308A1 (en) * 2020-05-20 2021-11-25 Here Global B.V. Traffic-aware route encoding using a probabilistic encoding data
CN112822270B (zh) * 2021-01-07 2022-12-23 广州虎牙科技有限公司 一种网络系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100336351C (zh) * 2001-06-15 2007-09-05 诺基亚有限公司 选择同步数据

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466992B2 (en) * 1994-12-07 2002-10-15 Next Computer, Inc. Method for providing stand-in objects
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US6681370B2 (en) * 1999-05-19 2004-01-20 Microsoft Corporation HTML/XML tree synchronization
US6959384B1 (en) * 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US20040168174A1 (en) * 2000-03-08 2004-08-26 Baker Tyler Foley System for object cloing and state synchronization across a network node tree
US6505200B1 (en) * 2000-07-06 2003-01-07 International Business Machines Corporation Application-independent data synchronization technique
US20030172135A1 (en) * 2000-09-01 2003-09-11 Mark Bobick System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks
US7272613B2 (en) * 2000-10-26 2007-09-18 Intel Corporation Method and system for managing distributed content and related metadata
US7249156B2 (en) * 2000-12-07 2007-07-24 Lg Electronics Inc. Method of providing a file transfer service through a mobile communication network
US6920477B2 (en) * 2001-04-06 2005-07-19 President And Fellows Of Harvard College Distributed, compressed Bloom filter Web cache server
US7320011B2 (en) * 2001-06-15 2008-01-15 Nokia Corporation Selecting data for synchronization and for software configuration
US7363384B2 (en) * 2001-07-11 2008-04-22 Sony Computer Entertainment America Inc. Selection of content in response to communication environment
WO2003021838A2 (en) * 2001-08-28 2003-03-13 Telefonaktiebolaget Lm Ericsson (Publ) Multicast group management in telecommunication networks
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
CN1992724B (zh) * 2002-04-03 2012-05-09 株式会社Ntt都科摩 管理服务器和终端单元
US20040044774A1 (en) * 2002-09-04 2004-03-04 Ruchi Mangalik System for providing content sharing and method therefor
US7369868B2 (en) * 2002-10-30 2008-05-06 Sony Ericsson Mobile Communications Ab Method and apparatus for sharing content with a remote device using a wireless network
US7254608B2 (en) * 2002-10-31 2007-08-07 Sun Microsystems, Inc. Managing distribution of content using mobile agents in peer-topeer networks
CA2507529C (en) * 2002-11-27 2011-03-08 Research In Motion Limited Data transfer from a host server via a tunnel server to a wireless device, and associating a temporary ipv6 address with a temporary ipv4 address for communicating in an ipv4 wireless network with the device
US7743022B2 (en) * 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
GB2403868A (en) * 2003-06-30 2005-01-12 Nokia Corp Content transfer
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050108368A1 (en) * 2003-10-30 2005-05-19 Aditya Mohan Method and apparatus for representing data available in a peer-to-peer network using bloom-filters
US7162502B2 (en) * 2004-03-09 2007-01-09 Microsoft Corporation Systems and methods that synchronize data with representations of the data
US7849135B2 (en) * 2004-04-09 2010-12-07 At&T Mobility Ii Llc Sharing content on mobile devices
US7613881B2 (en) * 2004-06-08 2009-11-03 Dartdevices Interop Corporation Method and system for configuring and using virtual pointers to access one or more independent address spaces
US20050275566A1 (en) * 2004-06-14 2005-12-15 Nokia Corporation System and method for transferring content
WO2006020658A1 (en) * 2004-08-09 2006-02-23 Johnny Yau Method and apparatus for ad hoc mesh routing
US7450603B2 (en) * 2004-08-31 2008-11-11 General Motors Corporation System and methods of wireless vehicle to vehicle data sharing
US20060080032A1 (en) * 2004-09-07 2006-04-13 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
WO2006031921A2 (en) * 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
US7885622B2 (en) * 2004-10-27 2011-02-08 Chestnut Hill Sound Inc. Entertainment system with bandless tuning
US7941167B2 (en) * 2005-03-31 2011-05-10 Microsoft Corporation Mobile device synchronization based on proximity to a data source
US7984018B2 (en) * 2005-04-18 2011-07-19 Microsoft Corporation Efficient point-to-multipoint data reconciliation
US20070296805A1 (en) * 2006-06-21 2007-12-27 Sony Ericsson Mobile Communications Ab Mobile content sharing
US7613770B2 (en) * 2006-06-30 2009-11-03 Microsoft Corporation On-demand file transfers for mass P2P file sharing
US20080016160A1 (en) * 2006-07-14 2008-01-17 Sbc Knowledge Ventures, L.P. Network provided integrated messaging and file/directory sharing
WO2008051052A1 (en) * 2006-10-26 2008-05-02 Samsung Electronics Co., Ltd. Method of synchronizing information shared between a plurality of universal plug and play devices and apparatus therefor
EP2203836A4 (en) * 2007-09-12 2014-11-05 Digital Fountain Inc GENERATING AND COMMUNICATING SOURCE IDENTIFICATION INFORMATION TO ENABLE RELIABLE COMMUNICATIONS
US8103718B2 (en) 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100336351C (zh) * 2001-06-15 2007-09-05 诺基亚有限公司 选择同步数据

Also Published As

Publication number Publication date
EP2942721B1 (en) 2017-03-22
EP2308247A4 (en) 2014-12-24
US20120072478A1 (en) 2012-03-22
EP2308247B1 (en) 2017-10-11
CN102113352A (zh) 2011-06-29
US8103718B2 (en) 2012-01-24
US8402087B2 (en) 2013-03-19
WO2010014452A2 (en) 2010-02-04
EP2942721A1 (en) 2015-11-11
US20100030840A1 (en) 2010-02-04
EP2308247A2 (en) 2011-04-13
WO2010014452A3 (en) 2010-04-22

Similar Documents

Publication Publication Date Title
CN102113352B (zh) 移动通信节点之间的内容发现和传送的方法
Grassi et al. VANET via named data networking
CN1642144B (zh) 用于无线移动自组网的信息传播方法和设备
Mershad et al. Finding a STAR in a Vehicular Cloud
Palazzi et al. Delay-bounded data gathering in urban vehicular sensor networks
CN1732640A (zh) 移动基站的wlan通信系统和方法
Dietzel et al. In-network aggregation for vehicular ad hoc networks
US20090146838A1 (en) Communication System for Data Acquisition from Remote Devices Applicable for AMR
US8649276B2 (en) Content transfer
Cardenas et al. A low-cost and low-power messaging system based on the LoRa wireless technology
JP2016521949A (ja) ファウンテンコードを中継するための次数低減および次数条件付き結合
JP2014501469A (ja) アプリケーション識別子の割当
US20090059823A1 (en) System and method of edge caching when communicating data
EP4190114A1 (en) Method and system for dynamic wireless connection management
Mershad et al. Crown: Discovering and consuming services in vehicular clouds
Piran et al. A novel routing algorithm for vehicular sensor networks
US20070053333A1 (en) Method and apparatus for sharing desired information among wireless transmit/receive units
Gerla et al. Vehicular networks: Applications, protocols, and testbeds
Alinani et al. Real-time push-based data forwarding for target tracking in vehicular named data networking
JP4015925B2 (ja) 車両搭載装置及び車両追跡システム
Volovikov et al. Mobile encounter networks and their applications
CN1528073A (zh) 利用信标的交感数据传送
Pariyarath et al. Efficient Privacy-Preserving Authentication using Blockchain for VANET
Kumar et al. Security and privacy issues in recent emerging wireless networks
Pessoa et al. On the Analysis of Content Dissemination through Real Vehicular Boards

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.