CN110291765B - 使用网络拓扑将流量本地化 - Google Patents

使用网络拓扑将流量本地化 Download PDF

Info

Publication number
CN110291765B
CN110291765B CN201880011337.9A CN201880011337A CN110291765B CN 110291765 B CN110291765 B CN 110291765B CN 201880011337 A CN201880011337 A CN 201880011337A CN 110291765 B CN110291765 B CN 110291765B
Authority
CN
China
Prior art keywords
peer
nodes
peers
network
traceroute
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
CN201880011337.9A
Other languages
English (en)
Other versions
CN110291765A (zh
Inventor
A·布尔巴
B·T·亨特
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110291765A publication Critical patent/CN110291765A/zh
Application granted granted Critical
Publication of CN110291765B publication Critical patent/CN110291765B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • 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/1063Discovery through centralising entities
    • 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/1072Discovery involving ranked list compilation of candidate peers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

使用网络拓扑将网络流量本地化被提供。针对内容的请求从具有多个对等方的对等(P2P)网络的第一对等方被接收。响应于接收到针对内容的请求,P2P网络中的接收所请求的内容的一个或多个对等方被确定。从第一对等方到预定地址的跟踪路由中的一个或多个节点被确定,该一个或多个节点对于从一个或多个对等方到预定地址的跟踪路由是公共的。一个或多个公共节点根据距第一对等方的跳被排序。至少一个对等方从所排序的一个或多个公共节点被选择以推荐给第一对等方。所选择的至少一个对等方被推荐给第一对等方。第一对等方然后与所推荐的至少一个对等方连接并且接收内容。

Description

使用网络拓扑将流量本地化
技术领域
本申请总体上涉及使用网络拓扑将流量本地化。
背景技术
对等(P2P)内容分发包括从一台用户计算机到另一用户计算机的对等方之间的内容传输。P2P网络通常包括服务器,该服务器保存具有从分发服务器下载的内容的对等方的列表。当P2P用户从分发服务器请求内容时,服务器可以获得具有期望的内容的对等方的地址。服务器向具有内容的请求对等方回复地址的列表。请求对等方可以与列表上的对等方通信以下载内容。
服务器提供的地址的列表可以基于位置、网络测量等,并且可以基于服务器的视点。然而,中央服务器通常无法获得大量的位置信息和其他运营商特定信息。从网络的角度来看,不同对等方的网络位置的有限知识导致业务流是非最优的。这给因特网服务提供商(ISP)之间昂贵的对等连接带来了不必要的负担。这也导致针对终端用户的较长的下载时间。
发明内容
本发明内容被提供用于以以简化的形式介绍在以下具体实施方式部分被进一步描述的一系列概念。本发明内容不意在标识所声明主题的关键特征或必要特征,也不意在帮助确定所声明主题的范围。
方面针对用于使用网络拓扑来用于将流量本地化的自动化的系统、方法和设备。例如,从具有多个对等方的对等(P2P)网络的第一对等方可以接收针对内容的请求。响应于针对内容的请求,P2P网络中包含所请求的内容的一个或多个对等方可以被确定。从第一对等方到内容服务器的跟踪路由中的一个或多个节点可以被确定,该一个或多个节点对于包含所请求的内容的一个或多个对等方的跟踪路由是公共的。公共节点可以被根据距第一对等方的跳距离来排序。来自所排序的一个或多个节点的至少一个节点可以被选择。与被放入短列表的节点相关联的对等方可以被基于其距第一对等方的跳距离来排名。来自所排名的对等方的至少一个对等方可以被选择以被推荐给第一对等方。所选择的至少一个对等方可以被推荐给第一对等方。然后,第一对等方可以与所推荐的对等方连接并且交换内容。
示例被实施为计算机过程、计算系统或作为诸如设备、计算机程序产品或计算机可读介质的制品。根据一个方面,计算机程序产品是计算机存储介质,该计算机存储介质是计算机系统可读的并且编码用于执行计算机过程的指令的计算机程序。
以下附图和描述中阐述了一个或多个方面的详细信息。通过对以下详细描述的阅读和对相关联的附图的回顾,其他特征和优点将是显而易见的。应理解,以下详细描述仅是解释性的,而不是对权利要求的限制。
附图说明
包含在该公开中并且构成该公开的一部分的附图图示了各个方面。
在以下示图中:
图1是示出包括对等(P2P)网络中的组件的示例操作环境的框图;
图2是示出用于收集网络拓扑的示例方法中涉及的一般阶段的流程图;
图3A是P2P网络中的跟踪路由的示图;
图3B是P2P网络中的网络拓扑的示图;
图4是示出用于将流量本地化的示例方法中涉及的一般阶段的流程图;
图5是图示计算设备的示例物理组件的框图;
图6A和图6B是移动计算设备的简化框图;以及
图7是分布式计算系统的简化框图。
具体实施方式
以下详细描述参考附图。在可能的情况下,相同附图标记用于附图中并且以下描述指代相同或相似的要素。虽然示例可以被描述,但是修改、改编和其他实施方式是可能的。例如,可以对附图中图示的要素进行替换、添加或修改,并且可以通过对所公开的方法替换、重新排序或添加阶段来修改在此描述的方法。因此,以下详细描述是非限制性的,而是由所附权利要求定义适当的范围。示例可以采用硬件实施或完全软件实施,或者结合软件和硬件方面实施的形式。因此,以下详细描述不应被视为具有限制意义。
本公开的各方面是针对使用网络拓扑来用于将流量本地化的方法、系统和计算存储介质。在传统的对等(P2P)网络中,对等设备需要与其他对等设备连接以便于数据获取。根据各方面,用于选择最佳对等方以用于数据采集的方法和系统被提供,其中最佳可以被定义为有利于减少网络互联问题和拥塞并且提高采集速度。通过检查网络路由上的设备,本公开的各方面可以生成网络拓扑,并且将流量本地化给附近的设备。对等设备可以通过运行跟踪路由来报告其网络节点。中央服务(例如,对等体标识符)可以收集跟踪路由数据并且通过对在跟踪路由中共享公共节点的设备分组来使用那些数据以选择对等方。通过对多个对等源排序以最小化被遍历的节点数,对等方选择可以进一步被优化。
例如,服务器可以从具有多个对等方的P2P网络的第一对等方接收针对内容的请求。响应于该请求,服务器可以确定P2P网络中包含所请求的内容的一个或多个对等方。从第一对等方到内容服务器的跟踪路由中的一个或多个节点可以被确定,该一个或多个节点对于包含所请求的内容的一个或多个对等方的跟踪路由是公共的。公共节点可以根据距第一对等方的跳距离被排序。来自所排序的一个或多个节点的至少一个节点可以被放入短列表。与被放入短列表的节点相关联的对等方可以基于其距第一对等方的跳距离被排序。来自所排名的对等方的至少一个对等方可以被选择以被推荐给第一对等方。所选择的至少一个对等方可以被推荐给第一对等方。然后,第一对等方可以与所推荐的对等方连接并且接收内容。
图1是示出包括P2P网络100中的组件的示例操作环境的框图。所图示的P2P网络100可以包括多个对等方102A至102H(全体对等方102)。对等方102可以通过提供某些信息来参与P2P网络100。例如,对等方102可能需要同意共享其网络地址并且同意共享存储在上面的内容。对等方102可能进一步需要同意作为P2P网络100一部分的条款和条件。对等方102A到102H中的每个对等方可能具有与其相关联的用户。虽然P2P网络100被示出仅包括8个对等方120,但是对于本领域普通技术人员显而易见的是,参与对等方102的数目通常可以高得多并且可以包括数百和甚至数千个对等方102。
对等方120可以包括P2P应用,该应用可以被用户用于请求内容或与P2P网络100中的其他对等方102连接。P2P应用可以包括本地存储在对等方102上的胖客户端应用或者可以包括,或者可以包括驻留在远程服务器上并且可以通过网络访问的瘦客户端应用(即,web应用)。瘦客户端P2P应用可以被托管在浏览器控制的环境中或者被以浏览器支持的语言编码,并且依赖于公共web浏览器以使P2P应用在对等方102上是执行的。
对等方102可以包括电子计算设备。计算设备可以是平板计算设备;然而,应当理解,计算设备可以是用于执行P2P应用的各种类型的计算设备中的一个(例如,平板计算设备、台式计算机、移动通信设备、膝上型计算机、膝上型/平板混合计算设备、大屏幕多点触摸显示器、游戏设备、智能电视、可穿戴设备,或其他类型的计算设备)。关于图5、图6A、图6B和图7,这些计算设备的硬件被较详细地讨论。
如图1所示,对等方102A到102F可以是第一因特网服务提供商(ISP)106A的客户,而对等方102G和102H可以属于第二ISP 106B。第一ISP 106A的网络可以包括朝向因特网104的聚合网络108,对等方102A-102C可以经由第一节点110A并且对等方102D-102F经由第二节点110B连接到该聚合网络108。第一节点110A和第二节点110B基于是多业务接入节点(MSAN)。虽然P2P网络100被示出为仅包括对等方102A到102F和聚合网络108之间的一个节点,但是对于本领域普通技术人员显而易见的是,对等方102A到102F和聚合网络108之间可以存在多于一个节点。
P2P网络100可以进一步包括服务器112,其可以经由因特网104访问对等方102。服务器112可以是内容服务器或内容分发服务器。服务器112可以包括对等方标识符114。对等方标识符114可以与内容服务器同地协作或者可以位于分离的服务器上。在一个方面,对等方标识符114可以被配置为生成P2P网络100的网络拓扑。如下描述,图2是示出用于生成P2P网络(例如,P2P网络100)的网络拓扑的示例方法中涉及的一般阶段的流程图。
现在参考图2,方法200可以从开始操作202开始,然后前进到操作204,其中跟踪包可以被发送给P2P网络100中的对等方102。跟踪包可以由对等方标识符114发送并且可以从服务器112向对等方102A到102H中的每个对等方行进。跟踪包可以被配置为确定对等方102和服务器112之间的跟踪路由。例如,跟踪包可以确定对等方102和服务器112之间的跟踪路由中的节点的因特网协议(IP)地址。在一个方面,跟踪路由可以指向P2P网络100中的预定地址。预定地址可以由P2P网络100中的管理员确定。跟踪包可以通过跟踪路由中的网络节点,例如网桥,路由器和网关。每次跟踪数据包传递给下一个网络节点时,跳发生。跟踪包可以进一步确定所确定的节点之间的跳距离。跳距离可以根据跳计数或从一个节点向另一个节点行进所花费的时间被确定。在一个方面,跟踪包可以以对等方标识符114或在对等方112处发起。例如,跟踪包可以在对等方102处发起并且可以朝向服务器112行进。在一个方面,跟踪包可以被限制为不暴露跟踪路由上的任何个人识别信息。
在操作204发送跟踪包给对等方102后,方法200可以前进到操作206,其中给内容服务器112的跟踪路由可以被收集。例如,对等方标识符114可以收集P2P网络100中的对等方102A到102F中的每个对等方的跟踪路由。对等方标识符114可以在数据库中收集跟踪路由。所收集的跟踪路由可以包括跟踪路由中的节点的IP地址、节点之间的跳距离、节点上的任何时延等。包含所收集的跟踪路由的数据库可以位于服务器112或对等方标识符114可访问的另一服务器。跟踪路由的示例图示于图3A中。
图3A图示了两个跟踪路由302和跟踪路由304。对等方A102A和服务器112之间的第一跟踪路由302可以包括节点1、节点2、节点3等。对等方B 102B和服务器112之间的第二跟踪路由可以包括节点4、节点3、节点5等。作为示例,跟踪路由302和跟踪路由304可以包括标识信息,诸如节点1、节点2、节点3、节点4和节点5的IP地址。跟踪路由302和跟踪路由304可以进一步包括节点之间的跳距离,上述节点间包括:对等方A到节点1、节点1到节点2、节点2到节点3;对等方B到节点4、节点4到节点3以及节点3到节点5。在一个方面,由跟踪包收集的信息可以由管理员限制。例如,如图3A所图示,跟踪路由可以仅包括跟踪路由中预定数目的节点的标识信息。在另一示例中,跟踪路由可以仅被跟踪到可以包括内容的缓存副本的节点。在又一示例中,跟踪路由可以被限制为不包括任何个人标识信息。
一旦从对等方102到服务器112的跟踪路由在操作206被收集,方法200可以前进到操作208,在其中与所收集的跟踪路由中的节点中的每个节点对应的桶(信息库)可以被生成。例如,对等方标识符114可以确定所收集的跟踪路由中的唯一节点并且创建针对每个节点的桶。在一个方面,对等方标识符114可以限制桶的数目。例如,对等方标识符114可以创建与处于距对等方102预定跳距离的节点对应的桶。例如,对等方标识符114可以创建仅与远离对等方102的第一跳计数和第二跳计数之间(例如,两个跳计数和五个跳计数)的节点对应的桶。在一个方面,预定跳距离可以由P2P网络100的管理员定义。在操作208创建桶之后,方法200可以前进到操作210,在其中多个对等方可以被分类为桶。例如,对等方标识符114可以标识与节点相关联的每个对等方。根据各方面,当节点在从对等方到服务器112的跟踪路由中出现时,对等方可以与节点相关联。当对等方与特定节点相关联时,对等方可以被分类在与该节点对应的桶中。在操作206分类网络拓扑之后,方法200可以在操作298结束。分类的网络拓扑300的示例图示于图3B中。
例如,如图3B所图示,网络拓扑300可以包括对应于桶的第一列308和对应于节点的第二列310。第一列308和第二列310可以各自进一步包括多个行,每行对应于桶和桶的相应节点。例如,如图3B所图示,网络拓扑可以包括桶1、桶2、桶3、桶4和桶5,其与包含在跟踪路由302和跟踪路由304中的节点1、节点2、节点3、节点4和节点5对应。如图3B中进一步图示的,对等方A可以被分类在桶1、桶2和桶3中,并且对等方B可以被分类在桶3、桶4和桶5中。在一个方面,存储在网络拓扑300中的信息可以是被匿名化的。例如,任何个人标识信息可以被从网络拓扑300中移除。虽然网络拓扑300被以表格格式示出于图3B,但是对于本领域普通技术人员显而易见的是,网络拓扑300可以被以其他数据格式分类。
已经关于图1到图3描述了操作环境和生成网络拓扑的方法,图4是使用网络拓扑用于将流量本地化的示例方法400中所涉及的一般阶段的流程图。现在参考图4,方法400可以从开始操作402开始并且前进到操作404,在其中针对内容的请求可以被接收。例如,服务器112可以从P2P网络100中的第一对等方102A接收针对内容的请求。第一对等方102A可以通过P2P应用请求内容。
在操作404从第一对等方102A接收针对内容的请求后,方法400可以前进到操作406,在其中包含所请求的内容的一个或多个对等方102可以被确定。例如,对等方114可以确定已预先下载所请求的内容的P2P网络100中的一个或多个对等方102。在一个方面,一个或多个对等方102可以仅包括所请求的内容的一部分。在一个方面,对等方标识符114可以确定请求内容的一个或多个对等方102。因此,对等方选择可以双向工作。例如,对等方102可以请求具有内容的其他对等方102并且接收内容或者接收内容的一部分。在另一示例中,具有内容的对等方102可以请求需要内容的对等方102并且发送内容或发送部分内容。此外,处于获取内容的过程中的对等方102可以彼此发送和接收内容。
在操作406确定包含所请求的内容的一个或多个对等方102之后,方法400可以前进到操作408,在其中从第一对等方102A到内容服务器112的跟踪路由中的一个或多个节点可以被确定,该一个或多个节点对于包含所请求的内容的一个或多个对等方102的跟踪路由是公共的。例如,对等方标识符114可以在网络拓扑300中执行查找操作并且确定跟踪路由之间公共的一个或多个节点。例如,如果从P2P网络100中的对等方A 102A接收请求,并且确定对等方B 102B包含所请求的信息,则通过在网络拓扑300中执行查找操作,对等方标识符114可以确定节点3是对等方A 102A和对等方B 102B之间的公共节点。
在操作408确定一个或多个公共节点之后,方法400可以前进到操作410,在其中所确定的公共节点可以按照距第一对等方102A的跳距离被排序。例如,对等方标识符114可以确定第一对等方102A和公共节点之间的跳距离。然后对等方标识符114可以基于所确定的跳距离对公共节点排序。在一个方面,对等方标识符114可以按照距第一对等方102A的跳距离的升序或降序对节点排序。
在操作410对公共节点排序之后,方法400可以前进到操作412,在其中来自所排序的公共节点中的至少一个节点可以被放入短列表用于推荐。例如,对等方标识符114可以基于距第一对等方102A的跳距离来将来自公共节点的预定数目的节点放入短列表。将要被放入短列表的预定数目的节点可以由P2P网络管理员或第一对等方102A确定。例如,将要被列入选候选名单的预定数目的节点可以被限制在一个和五个节点之间。在另一示例中,将要被列入选候选名单的预定数目的节点可以被限制在距第一对等方102A的两个或五个跳计数之间。在操作412将至少一个节点放入短列表之后,方法400可以前进到操作414,在其中与被放入短列表的节点相关联的对等方102可以被排名。例如,对等方标识符114可以确定与被放入短列表的节点中的每个节点相关联的对等方102。然后,对等方标识符114可以确定对等方102到第一对等方102A的跳距离。然后,对等方标识符114可以基于所确定的跳距离对对等方102排名。此外,对等方标识符114可以基于所确定的跳距离为对等方102分配优先级或等级。该优先级和等级可以基于若干其他因素而被进一步分配。例如,优先级可以基于可用性、可靠性、网络带宽等被分配。在一个方面,对等方标识符114可以按照距第一对等方102A的跳距离的升序或降序对对等方排序。
在操作414对对等方102优先级排序之后,方法400可以前进到操作416,在其中来自所排名的对等方102的至少一个对等方102可以被选择以被推荐给第一对等方102A。例如,对等方标识符114可以基于与对等方102相关联的优先级或等级来选择预定数目的对等方102。在一个方面,将要被推荐的对等方102的数目可以由服务器112或与第一对等方102A相关联的用户限制。在操作416选择至少一个对等方102以推荐之后,方法400可以前进到操作416,在其中与所选择的至少一个对等方102对应的地址信息可以被发送给第一对等方102A。在一个方面,对等方标识符114可以在将地址信息发送至第一对等方102A之前将地址信息匿名化。在另一方面,第一对等方102A可以直接连接被推荐的对等方102。例如,第一对等方102A可以与被推荐的对等方102通信以建立数据传输会话,在其中所请求的内容或其一部分可以被下载。在一个方面,服务器112和对等方标识符114可以不参与该数据传输会话。在操作418发送地址信息之后,方法400可以在操作498结束。
虽然已经在程序模块的一般上下文中描述了实施方式,该程序模块与在计算机上的操作系统上运行的应用程序共同执行,但是本领域技术人员将认识到,各方面也可以被与其他程序模块结合来实施。通常,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。
在此描述的方面和功能可以经由多种计算系统来操作,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板电脑或平板型计算机,笔记本计算机和膝上型计算机)、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机和大型计算机。
另外,根据一个方面,在此描述的方面和功能在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和检索以及各种处理功能被在分布式计算网络(例如因特网或内联网)上彼此远程地操作。根据一个方面,各种类型的用户界面和信息被经由车载计算设备显示器或经由与一个或多个计算设备相关联的远程显示单元来显示。例如,各种类型的用户界面和信息被显示在墙面上并与之交互,在该墙面上用户界面和各种类型的信息被投影。与实施方式被实践所用的多个计算系统的交互包括击键输入、触摸屏输入、语音或其他音频输入、手势输入,其中相关联的计算设备配备了用于捕获和解释用户手势的检测(例如,相机)功能,以用于控制计算设备的功能等。
图5到图7和相关联的描述提供了在其中示例被实践的各种操作环境的讨论。然而,关于图5至图7所图示的和讨论的设备和系统是出于示例和说明的目的,并且不限制用于实践在此描述的方面的大量计算设备配置。
图5是图示计算设备500的物理组件(例如,硬件)的框图,利用其本公开的示例可以被实践。在基本的配置中,计算设备500可以包括至少一个处理单元502和系统存储器504。根据一个方面,取决于计算设备的配置和类型,系统存储器504可以包括但不限于易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪存或这些存储器的任何组合。根据一个方面,系统存储器504可以包括操作系统505和适合于运行软件应用的一个或多个程序模块506。根据一个方面,系统存储器504可以进一步包括对等应用或对等方标识符114。例如,操作系统505适合于控制计算设备500的操作。此外,各方面可以与图形库、其他操作系统或任何其他应用程序结合实践,并且不限于任何特定应用或系统。该基本配置在图5中由虚线508内的那些组件图示。根据一个方面,计算设备500可以包括附加的特征或功能。例如,根据一个方面,计算设备500可以包括附加的数据存储设备(可移除的和/或不可移除的),例如磁盘、光盘或磁带。这种附加的存储装置在图5中由可移除存储设备509和不可移除存储设备510图示。
如上所述,根据一个方面,若干程序模块和数据文件可以被存储在系统存储器504中。当在处理单元502上执行时,程序模块506(例如,对等程序模块或对等方标识符模块)执行过程,包括但不限于图2中图示的方法200和图4中图示的方法400的一个或多个阶段。根据一个方面,其他程序模块可以根据示例被使用,并且包括诸如电子邮件和联系人应用、文字处理应用、电子表格程序、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等的应用。
根据一个方面,方面可以被在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、使用微处理器的电路或者包含电子元件或微处理器的单芯片中被实践。例如,各方面可以被经由片上系统(SOC)被实践,在该片上系统中图5中所图示的每个或许多组件可以被集成到单个集成电路上。根据一个方面,这种SOC设备包括一个或多个处理单元、图像单元、通信单元、系统虚拟化单元和各种应用功能,所有这些单元都作为单个集成电路被集成(或“烧录”)到芯片基板上。当经由SOC操作时,在此描述的功能可以被经由专用逻辑操作,该专用逻辑与单个集成电路(芯片)上的计算设备500的其他组件集成。根据一个方面,本公开的各方面可以被使用能够执行诸如加、或和非的逻辑运算的其他技术来实践,该其他技术包括但不限于机械、光学、流体和量子技术。此外,方面可以被在通用计算机内或在任何其他电路或系统中实践。
根据一个方面,计算设备500可以包括一个或多个输入设备512,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。根据一个方面,诸如显示器、扬声器、打印机等的(多个)输出设备514也可以被包括。上述设备是示例并且其他设备也可以被使用。根据一个方面,计算设备500可以进一步包括允许与其他计算设备518通信的一个或多个通信连接516。合适的通信连接516的示例可以包括但不限于射频(RF)发射器、接收器和/或收发器电路;通用串行总线(USB)、并行和/或串行端口。
在此使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括用于存储信息的可以被以任何方法或技术实施的易失性或非易失性、可移除或非可移除介质,例如计算机可读指令、数据结构或程序模块。系统存储器504、可移除存储设备509和非可移除存储设备510可以是计算机存储介质示例(即,存储器存储装置)。根据一个方面,计算机存储介质可以包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或可以用于存储信息并且可以由计算设备500访问的任何其他制品。根据一个方面,任何这样的计算机存储介质可以是计算设备500的一部分。计算机存储介质可以不包括载波或其他传播的数据信号。
根据一个方面,通信介质可以收录计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制的调制的数据信号中的其他数据,并且包括任何信息传递介质。根据一个方面,术语“被调制的数据信号”可以描述具有一个或多个特征集或者被以为了在信号中编码信息的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,和诸如声学、射频(RF)、红外的无线介质以及其他无线介质。
图6A和图6B示图示了移动计算设备600,例如,移动电话、智能电话、平板个人计算机,膝上型计算机等,使用这些设备各方面可以被实施。参考图6A,图示了用于实施方面的移动计算设备600的示例。在基本配置中,移动计算设备600可以是具有输入元件和输出元件的手持式计算机。移动计算设备600通常可以包括显示器605和允许用户将信息输入到移动计算设备600中的一个或多个输入按钮610。根据一个方面,移动计算设备600的显示器605用作输入设备(例如,触摸屏显示器)。如果被包括,则可选的侧输入元件615可以进一步允许用户输入。根据一个方面,侧输入元件615可以是旋转开关、按钮或任何其他类型的手动输入元件。在可选的示例中,移动计算设备600可以包含或多或少的输入元件。例如,在一些示例中,显示器605可以不是触摸屏。在可选的示例中,移动计算设备600可以是便携式电话系统,例如蜂窝电话。根据一个方面,移动计算设备600可以包括可选的小键盘635。根据一个方面,可选的小键盘635可以是物理键盘。根据另一方面,可选的小键盘635可以是在触摸屏显示器上生成的“软”键盘。在各个方面,输出元件可以包括用于示出图形用户界面(GUI)的显示器605、视觉指示器620(例如,发光二极管)和/或音频换能器625(例如,扬声器)。在一些示例中,移动计算设备600可以包含用于向用户提供触觉反馈的振动换能器。在另一示例中,移动计算设备600可以包含用于向外部设备发送信号或从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)。在另一示例中,移动计算设备600可以包含用于向外部设备发送信号或从外部设备接收信号的外围设备端口640,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)。
图6B是图示移动计算设备的一个示例的架构的框图。即,移动计算设备600可以包含系统(即,架构)602以实施一些示例。在一个示例中,系统602可以被实施为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些示例中,系统602可以被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
根据一个方面,一个或多个应用程序650可以被加载到存储器662中,并且在操作系统664上运行或与其相关联。应用程序的示例可以包括电话拨号程序、电子邮件程序,个人信息管理(PIM)程序、字处理程序,电子制表程序、因特网浏览器程序、消息程序等。根据一个方面,对等应用和对等方标识符应用可以被加载到存储器662中。系统602还可以包括存储器662内的非易失性存储区域668。非易失性存储区域668可用于存储如果系统602断电的情况下不应丢失的持久信息。应用程序650可以在非易失性存储区域668中使用和存储信息,诸如电子邮件或电子邮件应用使用的其他消息等。同步应用(未示出)也可以驻留在系统602上,并且可以被编程以与驻留在主计算机上的相应的同步应用交互,以使存储在非易失性存储区域668中的信息与存储在主计算机上的相应信息保持同步。应当理解,其他应用可以被加载到存储器662中并且在移动计算设备600上运行。
根据一个方面,系统602可以包括电源670,其可以被实施为一个或多个电池。根据一个方面,电源670可以进一步包括外部电源,例如给电池补充或充电的AC适配器或电动底座。
根据一个方面,系统602可以包括执行发送和接收射频通信的功能的无线电672。无线电672可以经由通信运营商或服务提供商来促进系统602与“外部世界”之间的无线连接。向无线电672和来自无线电672的传输可以被在操作系统664的控制下管理。换言之,由无线电672接收的通信可以经由操作系统664被传播到应用程序650,反之亦然。
根据一个方面,视觉指示器620可以用于提供视觉通知和/或音频接口674以用于经由音频换能器625产生可听通知。在所图示的示例中,视觉指示器620可以是发光二极管(LED)并且音频换能器625可以是扬声器。这些设备可以被直接耦合到电源670,以便当被激活时,即使处理器660和其他组件可能为了节省电池电量而关闭,这些设备仍在通知机制指示的持续时间内保持开启。LED可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口674可以用于向用户提供可听信号并从用户接收可听信号。例如,除了被耦合到音频换能器625之外,音频接口674还可以被耦合到麦克风以接收可听输入,例如以便于电话交谈。根据一个方面,系统602可以进一步包括视频接口676,其使得车载相机630的操作能够记录静止图像、视频流等。
根据一个方面,实施系统602的移动计算设备600可以包括附加特征或功能。例如,移动计算设备600可以包括附加的数据存储设备(可移除的和/或非可移除的),例如磁盘、光盘或磁带。这种附加的存储装置由非易失性存储区域668图示于图6B中。
根据一个方面,如上所述,由移动计算设备600生成的或捕获的和经由系统602存储的数据/信息可以在本地被存储在移动计算设备600上。根据另一方面,数据可以被存储在任意数目的存储介质上,该存储介质可由设备经由无线电672或经由有线连接来访问,该有线连接指移动计算设备600和与移动计算设备600相关联的分离的计算设备之间的连接,例如,分布式计算网络中的服务器计算机,诸如因特网。应当理解,这样的数据/信息可经由移动计算设备600经由无线电672或经由分布式计算网络来访问。类似地,根据一个方面,根据众所周知的数据/信息传送和存储方式(包括电子邮件和协作数据/信息共享系统),这样的数据/信息可以容易地被在计算设备之间传送以用于存储和使用。应了解的是,此类数据/信息可通过移动计算设备600通过无线电672或分布式计算网络访问。同样,根据一个方面,这些数据/信息可以被容易地在计算设备之间传输用于存储和使用。
图7图示了使用如上所述的网络拓扑将流量本地化的系统的体系结构的示例。与对等应用或对等方标识符相关联的所开发、交互或编辑的内容可以被实现存储在不同的通信信道或其他存储类型中。例如,各种文档可以被使用目录服务722、web门户724、邮箱服务726、即时消息接发存储库728或社交网站730来存储。如在此所述,P2P应用和对等方标识符114可以是操作的以使用任何这些类型的系统或类似系统以提供使用网络拓扑将流量本地化。根据一个方面,服务器720可以将流量本地化给客户端705a、705b、705c。作为一个示例,服务器720可以是在web上提供P2P应用的web服务器。服务器720可以通过网络740将web上的流量本地化给客户端705。举例来说,客户端计算设备被实施并且体现在个人计算机705a、平板计算设备705b或者移动计算设备705c中(例如,智能手机)或其他计算设备。客户端计算设备的这些示例中的任何一个设备都可操作以从存储库716获得内容。
例如,根据各方面,参考方法、系统和计算机程序产品的框图和/或操作图示,实施方式被如上描述。框中记录的功能/动作可以不按任何流程图所示的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以被基本上同时执行,或者框有时可以被以相反的顺序执行。
本申请中提供的一个或多个示例的描述和说明不意在以任何方式限制或约束权利要求的范围。本申请中提供的方面、示例和细节被认为足以传达所有权,并且使得其他人能够制造和使用最佳模式。实施方式不应被解释为被限制于本申请中提供的任何方面、示例或细节。无论是被以组合或者单独地示出和描述,各种特征(结构和方法)意在被选择性地包括或省略以产生具有特定特征集合的示例。本领域技术人员在被提供本申请的描述和说明后,可以设想本申请所体现的一般发明构思的较广泛方面范围内的变化、修改和替代实例,该示例不脱离本申请的较广泛的范围。

Claims (19)

1.一种用于将网络流量本地化的方法,所述方法包括:
在内容分发服务器处从包括多个对等方的对等(P2P)网络的第一对等方接收内容请求;
确定所述P2P网络的、具有请求的内容的至少一部分的一个或多个目标对等方;
确定所述第一对等方与预定地址之间的跟踪路由中的一个或多个节点,所述一个或多个节点对于所述一个或多个目标对等方与所述预定地址之间的跟踪路由中的一个或多个节点是公共的;
基于距所述第一对等方的跳距离来对公共的所述一个或多个节点排名;
基于排名的公共的所述一个或多个节点来选择至少一个目标对等方以推荐给所述第一对等方以用于获得请求的所述内容;以及
向所述第一对等方推荐选择的所述至少一个对等方以用于建立P2P连接。
2.根据权利要求1所述的方法,其中确定所述第一对等方与所述预定地址之间的所述跟踪路由中的、对于所述一个或多个目标对等方与所述预定地址之间的所述跟踪路由中的所述一个或多个节点是公共的所述一个或多个节点包括:根据所述P2P网络的网络拓扑确定公共的所述一个或多个节点。
3.根据权利要求2所述的方法,进一步包括:生成所述网络拓扑。
4.根据权利要求3所述的方法,其中生成所述网络拓扑包括:针对所述多个对等方中的每个对等方收集所述跟踪路由,所述跟踪路由包括所述跟踪路由中的节点的地址。
5.根据权利要求4所述的方法,进一步包括:基于所述跟踪路由中的所述节点的所述地址来对所述多个对等方分类。
6.根据权利要求5所述的方法,其中对所述多个对等方分类包括:
创建多个桶,所述多个桶中的每个桶与所述跟踪路由中的所述节点中的唯一节点对应;以及
将所述多个对等方中的每个对等方映射在与在所述跟踪路由中出现的节点对应的桶中。
7.根据权利要求6所述的方法,其中创建所述多个桶包括:将所述多个桶的所述创建限制到与具有距所述多个对等方的、在特定范围的跳计数内的跳距离的多个唯一节点对应的桶。
8.根据权利要求4所述的方法,其中收集包括所述节点的所述地址的所述网络拓扑进一步包括:将所述地址匿名化。
9.根据权利要求1所述的方法,其中选择所述至少一个目标对等方以推荐包括:
基于所述一个或多个目标对等方中的每个目标对等方距所述第一对等方的跳距离来对所述一个或多个目标对等方排名;以及
进一步基于所述排名来选择所述至少一个目标对等方。
10.根据权利要求1所述的方法,其中基于距所述第一对等方的所述跳距离来对公共的所述一个或多个节点排名包括:针对公共的所述一个或多个节点中的每个节点确定距所述第一对等方的所述跳距离,其中所述跳距离基于从公共的所述节点到所述第一对等方的跳距离和行进时间中的至少一项被确定。
11.根据权利要求1所述的方法,其中选择所述至少一个目标对等方以推荐包括:进一步基于可用性、可靠性和网络带宽中的至少一项来选择所述至少一个目标对等方。
12.根据权利要求1所述的方法,其中向所述第一对等方推荐选择的所述至少一个对等方以用于建立所述P2P连接包括:提供选择的所述至少一个对等方的网络地址。
13.一种用于使用包括内容分发服务器的网络拓扑将流量本地化的系统,所述系统包括:
至少一个处理设备;以及
存储指令的至少一个计算机可读数据存储设备,所述指令当由所述至少一个处理设备执行时,使得所述系统:
收集针对对等(P2P)网络的多个设备的网络拓扑;
在所述内容分发服务器处从所述P2P网络中的第一设备接收内容请求;
根据所述网络拓扑确定所述P2P网络中的、具有请求的内容的至少一部分的一个或多个目标设备;
确定所述第一设备与预定地址之间的跟踪路由中的一个或多个节点,所述一个或多个节点对于所述一个或多个目标设备与所述预定地址之间的跟踪路由中的一个或多个节点是公共的;
基于距所述第一设备的跳距离来对公共的所述一个或多个节点排名;
基于排名的公共的所述一个或多个节点来选择至少一个目标设备以推荐给所述第一设备以用于获得请求的所述内容;以及
向所述第一对等方推荐选择的所述至少一个对等方以用于建立P2P连接。
14.根据权利要求13所述的系统,其中所述系统进一步包括与收集所述网络拓扑的所述内容分发服务器相关联的对等方标识符。
15.根据权利要求13所述的系统,其中所述至少一个处理设备进一步被配置为:
创建多个桶,所述多个桶中的桶与节点对应;以及
将所述多个设备中的每个设备映射在与在所述跟踪路由中出现的节点对应的每个桶中。
16.根据权利要求13所述的系统,其中用以推荐给所述第一设备的所述至少一个目标设备进一步基于所述至少一个目标设备距所述第一设备的跳距离从公共的节点被选择。
17.根据权利要求13所述的系统,其中所述预定地址是所述内容分发服务器的地址或包含请求的所述内容的缓存副本的节点的地址中的一个地址。
18.根据权利要求13所述的系统,其中所述内容分发服务器未被包括在所述第一设备与选择的所述至少一个设备之间的所述P2P连接中。
19.一种计算机可读存储设备,包括计算机可读指令,所述计算机可读指令当由处理单元执行时操作以:
生成针对对等(P2P)网络的多个对等方的网络拓扑;
在内容分发服务器处从所述P2P网络的第一对等方接收内容请求;
根据所述网络拓扑确定具有请求的内容的至少一部分的一个或多个目标对等方;
确定所述第一对等方与预定地址之间的跟踪路由中的一个或多个节点,所述一个或多个节点对于所述一个或多个目标对等方与所述预定地址之间的跟踪路由中的一个或多个节点是公共的;
基于距所述第一对等方的跳距离来对公共的所述一个或多个节点排名;
基于排名的公共的所述一个或多个节点来选择至少一个目标对等方以推荐给所述第一对等方以用于获得请求的所述内容;以及
向所述第一对等方推荐选择的所述至少一个对等方以用于建立P2P连接。
CN201880011337.9A 2017-02-10 2018-02-02 使用网络拓扑将流量本地化 Active CN110291765B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/430,176 2017-02-10
US15/430,176 US10587496B2 (en) 2017-02-10 2017-02-10 Localizing traffic using network topology
PCT/US2018/016537 WO2018148106A1 (en) 2017-02-10 2018-02-02 Localizing traffic using network topology

Publications (2)

Publication Number Publication Date
CN110291765A CN110291765A (zh) 2019-09-27
CN110291765B true CN110291765B (zh) 2022-05-03

Family

ID=61231350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880011337.9A Active CN110291765B (zh) 2017-02-10 2018-02-02 使用网络拓扑将流量本地化

Country Status (4)

Country Link
US (1) US10587496B2 (zh)
EP (1) EP3580914B1 (zh)
CN (1) CN110291765B (zh)
WO (1) WO2018148106A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963590B1 (en) * 2018-04-27 2021-03-30 Cisco Technology, Inc. Automated data anonymization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246148B1 (en) * 1995-09-29 2007-07-17 Cisco Technology, Inc. Enhanced network services using a subnetwork of communicating processors
WO2016008784A1 (en) * 2014-07-17 2016-01-21 Hive Streaming Ab Site detection in a communications network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1293063A2 (en) 2000-06-14 2003-03-19 Coreexpress, Inc. Route selection within a network with peering connections
US7536467B2 (en) 2004-04-20 2009-05-19 Microsoft Corporation Peer-to-peer (P2P) mobility system, and method
US20060036762A1 (en) * 2004-08-10 2006-02-16 Sravan Vadlakonda System and method for automatic path generation in a computer network
US7769017B2 (en) 2005-07-26 2010-08-03 Nortel Networks Limited Using reachability information to facilitate peer-to-peer communications
WO2008109166A1 (en) 2007-03-06 2008-09-12 Redback Networks Inc. Peer-to-peer, gaming, and application traffic detection & treatment
US8996723B2 (en) 2007-06-04 2015-03-31 Microsoft Technology Licensing, Llc ISP-aware peer-to-peer content exchange
WO2010090562A1 (en) 2009-02-06 2010-08-12 Telefonaktiebolaget L M Ericsson (Publ) Network aware peer to peer
ES2430345T3 (es) 2009-03-03 2013-11-20 Telefonaktiebolaget L M Ericsson (Publ) Métodos y disposiciones de priorización en una red par a par
EP2278756B1 (en) * 2009-07-02 2016-10-26 Bull S.A.S. Methods and devices for evaluating interconnection efficiency of parallel computer networks based upon static routing schemes
KR101420548B1 (ko) 2009-10-30 2014-07-16 엔이씨 유럽 리미티드 오버레이 네트워크에서 통신 피어들의 선택을 지원하는 방법 및 시스템
US8504682B2 (en) 2009-12-17 2013-08-06 Alcatel Lucent Localization of peer to peer traffic
US9219782B2 (en) 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9374420B2 (en) * 2012-12-14 2016-06-21 Microsoft Technology Licensing, Llc Content source selection in a P2P network
US9705748B2 (en) * 2014-07-17 2017-07-11 Hive Streaming Ab Site detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246148B1 (en) * 1995-09-29 2007-07-17 Cisco Technology, Inc. Enhanced network services using a subnetwork of communicating processors
WO2016008784A1 (en) * 2014-07-17 2016-01-21 Hive Streaming Ab Site detection in a communications network

Also Published As

Publication number Publication date
WO2018148106A1 (en) 2018-08-16
CN110291765A (zh) 2019-09-27
EP3580914B1 (en) 2021-03-24
US20180234332A1 (en) 2018-08-16
EP3580914A1 (en) 2019-12-18
US10587496B2 (en) 2020-03-10

Similar Documents

Publication Publication Date Title
US10862951B1 (en) Real-time display of multiple images
US8046411B2 (en) Multimedia sharing in social networks for mobile devices
CA3064266C (en) Social media platform enabling multiple social media aliases
US10270666B2 (en) Displaying and navigating implicit and explicit enterprise people relationships
US20150248410A1 (en) Discovering enterprise content based on implicit and explicit signals
US20180124155A1 (en) Network-based group communication and file sharing system
TW201535257A (zh) 識別訊息執行緒之間的關係
US10075838B2 (en) Smart discovery of wireless receivers
CN108028857A (zh) 智能通知
US20230325947A1 (en) Automatic analysis of digital messaging content method and apparatus
US10250531B2 (en) Bot monitoring
CN110291765B (zh) 使用网络拓扑将流量本地化
US20140289307A1 (en) Method for transmitting data between electronic devices
US20160124964A1 (en) Methods for uploading and ranking photographs
US11888956B2 (en) Paginated data transfer techniques
CN107113557A (zh) 一种信息处理方法及装置
JP6688018B2 (ja) 情報共有サーバ及びプログラム
US11886913B2 (en) Decentralized data platform
CN117413504A (zh) 基于共享的增强现实内容服务系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant