US20100005171A1 - Method and system for transmitting data in a computer network - Google Patents

Method and system for transmitting data in a computer network Download PDF

Info

Publication number
US20100005171A1
US20100005171A1 US12/350,105 US35010509A US2010005171A1 US 20100005171 A1 US20100005171 A1 US 20100005171A1 US 35010509 A US35010509 A US 35010509A US 2010005171 A1 US2010005171 A1 US 2010005171A1
Authority
US
United States
Prior art keywords
content
network
service
method
query
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.)
Abandoned
Application number
US12/350,105
Inventor
Alan Arolovitch
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.)
Zephyrtel Inc
Original Assignee
PeerApp Ltd
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
Priority to US1957608P priority Critical
Application filed by PeerApp Ltd filed Critical PeerApp Ltd
Priority to US12/350,105 priority patent/US20100005171A1/en
Assigned to PEERAPP LTD. reassignment PEERAPP LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AROLOVITCH, ALAN
Publication of US20100005171A1 publication Critical patent/US20100005171A1/en
Assigned to PEERAPP SOLUTIONS, INC. reassignment PEERAPP SOLUTIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PEERAPP LTD.
Assigned to ZEPHYRTEL, INC. reassignment ZEPHYRTEL, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: PEERAPP SOLUTIONS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • H04L67/1004Server selection in load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements or protocols for real-time communications
    • H04L65/40Services or applications
    • H04L65/4069Services related to one way streaming
    • H04L65/4084Content on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • H04L67/1061Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks involving node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/16Service discovery or service management, e.g. service location protocol [SLP] or Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/42Protocols for client-server architectures

Abstract

An optimization service discovery method for optimizing data transmission by multi-session applications, includes: receiving an optimization service lookup query from one of a plurality of user clients in a network, each of said user clients executing a multi-session application; and identifying an optimization service and responding to the query with a network address of one or more servers providing said optimization service.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims priority from U.S. Provisional Patent Application Ser. No. 61/019,576, filed on Jan. 7, 2008, entitled DATA TRANSMISSION IN PEER-TO-PEER NETWORKS, which is hereby incorporated by reference.
  • BACKGROUND
  • The present application relates generally to transmission of data such as, e.g., media content, over computer networks such as, e.g., the Internet. Traditionally, Internet content is delivered through a client-server approach, where a client (such as, e.g., a personal computer) retrieves a content object from server (such as, e.g., a Web server) in a single download session.
  • Content Delivery Networks (CDNs) have been used to improve the traditional client-server method of content delivery by placing the content object in a variety of network locations and directing the client to particular servers, depending on network locality, network cost, network conditions, server load, and other factors. Once a session between the client and a server has been established, the client-server applications are generally limited in their ability to work around session throughput degradation or failure. Furthermore, the use of single session to deliver the content limits the throughput that can be achieved by the application.
  • These drawbacks of the client-server architecture are particularly significant in the context of delivery of high-quality media over Internet. Online media applications commonly involve delivery of very large content objects over an extended period of time, or have high throughput requirements.
  • Thus, content delivery systems are available that use dynamic selection of content sources and multiple sessions to work around the above problems.
  • Use of a multi-session approach delegates content sourcing logic to the client application and allows these applications to adapt to changing session throughput, to recover from session failures, to maximize content delivery throughput using several concurrent sessions.
  • Peer-to-peer (P2P) applications are one example of such application architecture. P2P applications are a class of network applications where each network member, or peer, is capable of sending and receiving data directly from other members of the network. Each such peer establishes a number of sessions to its counterparts in parallel, tearing and setting up multiple sessions throughout an application session.
  • It is not uncommon for P2P networks to scale to very large number of participating peers, exceeding the scale of the traditional CDNs by 2-3 orders of magnitude. The scale of storage and bandwidth resources that P2P networks leverage enables delivery of very large content objects to a large number of subscribers.
  • There are several known types of P2P networks. The so-called open P2P networks rather than use dedicated servers located in datacenters or in network aggregation points, leverage voluntarily participating Internet subscribers to deliver content. As a result, peers continuously join and leave the P2P network, creating statistical availability of content sources within a network.
  • Commercial P2P networks can complement peer-based delivery with client-server delivery through their own datacenters or commercial CDNs to improve data transfer service levels.
  • Yet another type of P2P network leverages always-on IP-connected consumer electronics devices that are connected to the Internet such as, e.g., IP set-top boxes.
  • In addition to the P2P applications, where each client is capable of being a server as well, the same multi-session approach has been adopted by non-P2P applications that use multiple sessions to dedicated servers to retrieve content.
  • The success of the multi-session applications, mainly P2P, has led to significant increases in bandwidth consumption globally in the last decade where Internet Service Providers (ISPs) are bearing the bulk of cost associated with these applications.
  • It is common for the multi-session content applications to optimize content source selection and session throughput in accordance with various application algorithms, (e.g., minimum session throughput for video streaming applications, “tit-for-tat”, “rarest-piece-first” etc.), leading to improved application performance, fault tolerance, and reduction of content delivery costs.
  • At the same time, these applications generally do not align content sourcing and bandwidth allocation decisions with the ISP network environment they operate in, including bandwidth provisioning, network peering and transit arrangements, bandwidth consumption by other applications, etc. This misalignment can lead to network congestion in various parts of the ISP network, on one hand, and suboptimal performance of the multi-session applications, on the other hand. There is thus a need for comprehensive management infrastructure for the multi-session applications that would optimize the application performance through improved usage of network resources and manage utilization of these resources by the applications.
  • BRIEF SUMMARY OF EMBODIMENTS OF THE INVENTION
  • In accordance with one or more embodiments of the invention, an optimization service discovery method is provided for optimizing data transmission by multi-session applications. The method includes: receiving an optimization service lookup query from one of a plurality of user clients in a network, each of said user clients executing a multi-session application; and identifying an optimization service and responding to the query with a network address of one or more servers providing said optimization service.
  • In accordance with one or more embodiments of the invention, a method of providing a network prioritization optimization service for delivery of content to one of a plurality of user clients in a network is provided. The method comprises: receiving a query for content source prioritization from one of a plurality of user clients in a network, each of said user clients executing a multi-session application; and responding to the query with an identification and network addresses of a set of content sources and an order of priority of the content sources.
  • Various embodiments of the invention are provided in the following detailed description. As will be realized, the invention is capable of other and different embodiments, and its several details may be capable of modifications in various respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature and not in a restrictive or limiting sense, with the scope of the application being indicated in the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagrammatic representation of components of a system in accordance with one or more embodiments of the invention.
  • FIG. 2 is a diagrammatic representation of components of a system in accordance with one or more embodiments of the invention.
  • FIG. 3 is a flow chart illustrating a method in accordance with one or more embodiments of the invention.
  • DETAILED DESCRIPTION
  • In accordance with various embodiments of the invention, a plurality of services are provided that optimize multi-session application performance, and help manage utilization of network resources. These services as described in further detail below include (a) caching and acceleration service, (b) content origination service, (c) network prioritization service, (d) peer discovery service, (e) bootstrapping service for distributed networks, (f) QOS arbitration service, and (g) NAT traversal service.
  • (a) Caching and Acceleration
  • A content cache identifies a data query originated by an application running in same network. If the requested data item is stored in the cache, it responds to the query, delivering the requested data item or portion of it. Otherwise, it arranges to have the data item to become stored in the cache, so that it can respond to subsequent queries for the same content item, or portion of it.
  • Caching eliminates repetitive transfer of popular content items or its portions across congested or expensive parts of the service provider network, e.g., international transit links, or upstream last-mile links in cable provider networks.
  • Use of a caching infrastructure results in reduction of network congestion and accelerated data delivery rates because the cache is situated near-by, achieving localization of content delivery and prevents the data delivered from cache from traversing congested or constrained network links.
  • The caching infrastructure may comprise highly available IP-enabled devices, e.g., one or more dedicated servers, IP-enabled set-top boxes, or other always-on IP nodes, or combination of the above The acceleration resulting from caching commonly improves quality of experience (QoE) of end users, by improving reliability of content delivery and supporting delivery of higher quality content
  • (b) Content Origination
  • Content origination involves placement of a content object from temporary location into permanent storage, based on one or more network-based storage nodes. Upon completion of the placement, the content origin service becomes the source of the content object for all parties interested in retrieval of it and can respond to queries related to the content stored in it. The temporary location can be a subscriber's PC or other IP-connected device, e.g., in case of user-generated video content, e-mail etc., or an external dedicated server.
  • The content origination service may implement replication of content across multiple nodes in the network to achieve locality of delivery, to that achieved by the caching service, as described above.
  • The persistent storage nodes comprising the content origin service may include, e.g., dedicated servers, IP-enabled set-top boxes, or other highly available IP-enabled devices with storage capabilities.
  • A difference between content origination and caching is that placement of content in the former case takes place without regard for subscribers' demand, and in case of absence of requested content object or part of it, in the content origin server, unlike cache, it does not fall back on other content sources to serve the request.
  • (c) Network Prioritization
  • An important part of each multi-session application is determining where to retrieve the content from. Furthermore, in case of P2P applications, each application node is generally at liberty to choose where to send the content to as well.
  • The content source selection may take into account the rate of past contribution by each peer in case of P2P, portion of content item available at each peer and wider availability of that portion, as well as additional application-specific peer characteristics.
  • The network prioritization service can provide a way to adjust these decisions in accordance with service provider priorities. The priorities may reflect network distance between the client application and content source, an administrative network policy that the service provider would like to enforce, or actually enforce on their networks, cost related to data transfer between client application and the content source, network capacity provisioning or a combination of the above.
  • The network prioritization service can re-prioritize the content sources known to the application, based on the above ISP's priorities, or expose these priorities in an abstract form, allowing the multi-session application to re-prioritize its own sources.
  • The network prioritization can be requested directly by the ISP subscriber's application, or by a server-side application component (e.g., Bittorrent tracker) on subscriber's behalf.
  • The peer selection informed by network prioritization allows peers to connect to more advantageous content sources faster, improving data delivery rates.
  • The network prioritization policies that take into account location of the content sources can also improve locality of the data transfer, decreasing network congestion and delivery costs incurred by the service providers.
  • The network policy can reflect arbitrary definition of administrative costs of network resources, or automatic definition of costs based on monitoring of network congestion and network faults, or a combination of both.
  • Thus, the network policy exposed through the network prioritization service can help service providers to route the traffic around particular a network area in the event of a network fault.
  • The prioritization infrastructure can expose static priorities, applicable to all application nodes, or adaptive priorities that take into account specific application node location in the network.
  • The network policy can change depending on time of day, so that, e.g., batch delivery applications can take advantage of additional network resources available in off-peak hours or varying networking costs. The resulting policy can reflect a policy of single service provider, or single third party, or an aggregation of multiple service providers and/or third parties.
  • In particular, a priority of connection between peer A and peer B could be affected by service provider of peer A, service provider of peer B, any intermediate service provider linking between service providers of peers A and B, or any combination of the above.
  • (d) Peer Discovery
  • Generally, every node in a multi-session application uses one or more application-specific methods to discover content sources to connect to. Thus, Bittorrent clients can use tracker-based peer discovery, tracker-less peer discovery (DHT), peer exchange, and passive peer collection.
  • The peer discovery service acts as a complementary source of application content source discovery for multi-session applications.
  • The service records and collates information about user clients that are connected to it, and shares this information or subset of it with other user clients connecting to it, similarly to how indexing servers operate in P2P applications (e.g., a Bittorrent tracker, Donkey server etc.).
  • The peer discovery service can further expand a list of known content sources by pro-actively retrieving lists of peers through peer exchange mechanisms, if available, and by querying global peer discovery sources, such as trackers and distributed hash table (DHT) networks.
  • The peer discovery service may further use pre-assembled set of dedicated content servers (e.g. CDN servers) or employ other mechanisms for discovery of available dedicated content source The peer discovery service can optimize the peer collection process through collecting the peer information for most popular items only, or on the other hand, for least popular items that have least amount of content sources.
  • (e) Bootstrapping for Distributed Networks
  • Several peer-to-peer applications make use of fully distributed peer-to-peer networks for search and/or retrieval of content (e.g. Bittorrent DHT, Kademlia etc.). Such distributed networks usually bootstrap the process by connecting the previously contacted nodes first.
  • The bootstrapping service provides faster initialization by providing an always-on well-known node that can be used by P2P clients to connect to the distributed network.
  • (f) QoS Arbitration
  • The QoS arbitration service allows application to negotiate better class of service at an ISP-based Quality of Service (QoS) infrastructure, used to prioritize some classes of traffic over other and allocate network resources for authorized applications on demand. The QoS infrastructure types include last-mile QoS (e.g., PCMM and TR-59), transparent Layer7 DPI bandwidth management, and router-based DiffServ QoS etc.
  • The QoS arbitration service provides an efficient way for QoS infrastructure to classify and manage multiple sessions created by multi-session applications using advanced application-level classification, including, but not limited to, differentiation based on identity and type of content object, type of multi-session application or service, user identity and more, all in cooperative fashion. Thus, QoS infrastructure type lacking deep packet inspection (DPI) Layer7 classification capabilities, may offer such capabilities through use of the QoS arbitration service Furthermore, DPI-based bandwidth management devices may now differentiate content applications based on content identity, e.g. between open and commercial flavors of same P2P application.
  • The QoS arbitration service enables secure negotiation of improved service levels for authorized content applications, across all sessions created by the multi-session applications. The arbitration service communicates with the content application on one hand, and inline QoS elements on the other, providing secure clearance of service level for multiple sessions created by the application.
  • The content applications making use of the QoS arbitration service, may use custom L3/L4 identifiers, such as outbound ports, or embed custom L7 tokens into the session (e.g., HTTP cookies or Bittorrent extension field values), to enable scalable and granular classification of all application sessions. Furthermore, the inline QoS elements may authenticate particular sessions and/or tokens through communication with the arbitration infrastructure.
  • (g) NAT Traversal
  • One very common form of residential Internet use is the home network, where several computers connect to Internet through a router or firewall that performs a network address translation (NAT), mapping all computers in the home network to one public IP address.
  • In the case of peer-to-peer applications, the NAT setup makes it difficult to create a connection to a peer located inside the home network from the outside. The NAT traversal limitations bar multiple peers from contributing to the peer-to-peer network, decreasing overall efficiency of the network. Personal and enterprise firewalls are another common cause of the same.
  • The NAT traversal infrastructure element (or rendezvous point) serves as a forwarder of data between peers in P2P network, enabling 100% success of inter-peer connection setup. All peers behind NAT device or firewall open a connection to the designated rendezvous point, which then accepts connections on their behalf, forwarding the data between the peers. The peers making use of the rendezvous point may advertise rendezvous point IP address as their address in peer-to-peer networks. The rendezvous point may act as full proxy, transferring actual data between NAT peers, or facilitate opening of connection, when the connection can be opened in one direction but not the other.
  • In accordance with one or more embodiments of the invention, a method of optimization of data transfer for multi-session applications is provided that combines at least two types of services (a) to (g), as described above.
  • In accordance with one or more embodiments, a system is provided for optimization of data transmission to multi-session applications, which includes at least one server designed and configured to provide at least two of services from (a) to (g), as described above.
  • In accordance with one or more embodiments, the system resides in a single or multiple service provider networks, or in dedicated hosting location.
  • In accordance with one or more embodiments, a part of the server comprising the system resides in a single or multiple service provider networks, while other parts reside outside of such network(s) in dedicated hosting location(s).
  • In accordance with one or more embodiments, the system provides services (a) to (g), as described above, for one type of multi-session application.
  • In accordance with one or more embodiments, the system can provide services (a) to (g), as described above for multiple applications.
  • In accordance with one or more embodiments, the system can utilize an application-specific protocol or protocols to discover and deliver the services (a) to (g), or use the common protocol for all applications making use of the system.
  • In accordance with one or more embodiments, the system is a part of a multi-session application and/or peer-to-peer network.
  • In accordance with one or more embodiments, a multi-session application can make use of the system through service discovery process and subsequent utilization of the service.
  • In accordance with one or more embodiments, the service discovery process makes use of common naming scheme and/or protocol for all or part of above services from (a) to (g).
  • In accordance with one or more embodiments, the service discovery and utilization of the services can occur by peers in peer-to-peer networks, to optimize their data transfer sessions.
  • In accordance with one or more embodiments, services can be utilized by the server-side application components, such as trackers, indexing servers, application management servers etc., or other peers, on behalf of other peers in the network.
  • In accordance with one or more embodiments, the system may enforce conditional access to one or more services, based on multi-session application type or protocol, content item requested, subscriber information, geographical or network location of the party requesting service, password or other form of authorization token etc, or additional type of conditional policy, or combination of the above.
  • In accordance with one or more embodiments, the system can condition access to one service on previous use of other services. For example, the system can help mediate service level at inline QoS devices only if particular peer made use of peer selection and caching services first.
  • Methods and systems in accordance with various embodiments of the invention can provide for optimization and network management of multi-session content applications, which can be used to help improve key performance indicators of these applications, reduce congestion in different parts of service provider network and control utilization of bandwidth resources by these applications. Such key performance indicators can include, depending on the type of content application, the time that it takes to retrieve a single content object or guaranteed sustained throughput.
  • As used herein, the term “user client” generally refers to a computer or other IP-connected device, and includes, but is not limited to, personal computers (PCs), personal digital assistants (PDAs), smartphones, set-top boxes, IP-enabled television sets, consumer network storage appliances, and telephones having computer capabilities.
  • As used herein, the term “content server” generally refers to a computer or other IP-connected device with attached storage that is capable of responding to queries for content objects and is preferably provisioned to be highly available.
  • As used herein, the term “content object” generally refers to an identifiable content or data item, which can be in a form of file or stream of data.
  • As used herein, the term “multi-session application” generally refers to a software program operating on a user client that is capable of using more than one session to receive and/or send content object.
  • As used herein, the term “peer-to-peer application” generally refers to a multi-session application that is capable of both receiving and sending a content object to other peer-to-peer applications.
  • As used herein, the term “server-side application component” generally refers to software program providing application-specific network services to multiple user clients that operate particular type of multi-session application, and includes, but is not limited to, peer-to-peer indexing servers, Bittorrent trackers, and eDonkey servers.
  • As used herein, the term “optimization service” generally refers to a set of one or more distinct and separately addressable servers that together provide a distinct set of functionality that can be invoked by user clients and/or server-side application components and/or other optimization services within the system.
  • As used herein, the term “QoS device” includes, but is not limited to, QoS-capable core router or network switch, supporting quality of service (QoS) based on DiffServ standard, deep packet inspection (DPI) bandwidth management device, broadband aggregation router supporting Packet Cable MultiMedia (PCMM) framework, or any other network element capable of differentiating various types of Internet traffic and prioritizing one type over another.
  • As used herein, the term “service locator” generally refers to a component of the systems described herein that is responsible for lookup of optimization service network address by user clients and/or server-side application components and/or other optimization services.
  • As used herein, the term “content source” generally refers to at least one peer-to-peer application and/or content server.
  • As used herein, the terms “optimize,” “optimal,” “optimization,” and any variations thereof, generally refer to improving performance and efficiency, and are not intended to necessarily indicate any maximum or minimum values.
  • In accordance with one or more embodiments, several optimization services are combined to help optimize various aspects of multi-session application operation, either separately or through combination of several such optimization services.
  • Specifically, the optimization services of the system may help accelerate content delivery by placing and/or caching content closer to the client applications, and/or by improving session throughput through selection of content sources that take into account network conditions, network capacity and existing network policies, and/or by reducing time that it takes for a client application to connect to the network, and/or by helping the client application discover additional content sources, and/or by increasing number of sessions that can result in data throughput, increasing overall session throughput, and/or by guaranteeing minimum throughput or class of service for sessions established by the application, using network equipment providing quality-of-service (QoS) services.
  • Furthermore, the optimization services of the system can help manage utilization of bandwidth resources and reduce associated network costs incurred by the multi-session applications, by directing these applications to retrieve content from particular application content sources, while optionally avoiding other application content sources, and/or by directing the client applications to retrieve content from caches and/or origin servers, that are part of the system.
  • The decision to direct the client application to particular application content source and/or cache and/or origin server may take into account the following aspects of content delivery: topological network locality, cost of links between client application and content source, network congestion of the links between client application and content source, compliance with network management policies, alignment with network provisioning and capacity allocation.
  • Furthermore, the system may be used to optimize retrieval of content by the client application situated on a particular network, and/or content retrieval by client applications situated outside of a network from client applications situated on that network.
  • Referring now to the drawings, FIG. 1 illustrates a system 200 for optimization of data transmission by multi-session applications. According to one or more embodiments, the system includes a plurality of user clients 11 (11 a, 11 b, 11 c, 11 x, 11 y, 11 z) operating in respective networks 90, 100. Each user client 11 operates a multi-session application for implementing queries for content objects and, in case of peer-to-peer applications, providing response to such queries.
  • According to one or more embodiments of the invention, the system includes several distinct pluralities of multi-session applications, of different type, e.g. peer-to-peer applications running on user clients of IP set-top box type 11 d, 11 e, 11 f and 11 g, together with an application server-side component 10 b, all located in network 90; user client 11 c located in network 90 and content servers 21 (21 a, 21 b and 21 c) in a dedicated network 110; user clients 11 a, 11 b, 11 x, 11 y and 11 z, running peer-to-peer application and an application server-side component 10 a.
  • According to one or more embodiments of the invention, the system 200 includes a plurality of dedicated content servers 21 (21 a, 21 b, 21 c), operating in a dedicated network 110 (e.g. CDN, hosting provider network or other datacenter), capable of responding to queries for content objects, originated by user clients 11.
  • One or more embodiments of the invention are directed to optimization service discovery. A user client 11 a sends a service look-up query to service locator 50. The service locator 50 responds to the query with a network address of one or more servers, comprising a requested optimization service 51 (51 a-g).
  • According to some embodiments, the service locator 50 responds with an address of an optimization service 57 following successful authentication and/or authorization of requesting user clients 11 and/or server-side application component 10 and/or optimization service 51. The authorization performed by the service locator may take into account a variety of factors, including, but not limited to, network address of the requesting party, type of multi-session application used, type of optimization service request, time of day, load of service locator and/or optimization services, as well as any combination of the above.
  • In accordance with one or more embodiments, the service locator 50 may choose to return network addresses of only some of the servers comprising the requested optimization service. The selection may take into account a variety of factors, including load balancing algorithms, actual current load of the servers, network distance and/or network cost between the servers and user client 11 requesting the service, availability of the servers, administrative policy, time of day, as well as any combination of the above.
  • In accordance with one or more embodiments, the service locator 50 is implemented using network infrastructure elements existing independently of the system, including, but not limited to Domain Naming System (DNS) servers, Lightweight Directory Access Protocol (LDAP) servers.
  • In accordance with one or more embodiments, the service locator 50 is implemented using one of or more accepted standards for discovery of network services, such as Common Object Request Broker Architecture (CORBA), RESTful Web Services, and Web Services based on Simple Object Access Protocol (SOAP).
  • In accordance with one or more embodiments, the service locator 50 is implemented using network infrastructure elements existing independently of the system 200, including, but not limited to Domain Naming System (DNS) servers, Lightweight Directory Access Protocol (LDAP) servers.
  • The user client 11 is then connected to at least one optimization service 57.
  • In accordance with one or more embodiments, the system 200 may contain only some types of the optimization services. In this case, the service locator 50 returns an error response for queries trying to discover optimization services unavailable in particular instance of system 200.
  • FIGS. 2 and 3 illustrate a method 210 and system for managing bandwidth utilized by multi-session application 11 a in accordance with one or more embodiments of the invention.
  • The method 210 optionally includes the step of optimization service discovery by multi-session application 11 a, using service locator 50.
  • The method 210 includes step 211 of multi-session application 11 sending a query 300 to network prioritization optimization service 51 c and receiving a response 301 from it.
  • According to some embodiments of this invention, the query 300 includes a list and/or lists of addresses of content sources known to the multi-session application, and the response 301 includes the list of content sources 310 in order of priority and/or with explicit priority attached to each content source.
  • Alternatively or additionally, the query 300 may include a request for a list 311 of addresses of Internet subnets, listed by priority, and the response 301 includes such list. The list 311 may use IP network addresses together with network masks (e.g. 1.1.1.0/24) and/or autonomous system numbers (ASNs) to define the Internet subnets.
  • According to some further embodiments of this invention, the response 301 may alternatively or additionally include a list of content sources addresses 312 that were previously unavailable to the multi-session application, including, but not limited to addresses of user clients that operate peer-to-peer applications, content servers 21 located in a dedicated network 110 or content servers 52 comprising caching optimization service 51 a and/or content origin service 51 b.
  • According to some further embodiments of this invention, the network prioritization optimization service can use peer discovery optimization service to produce list 312.
  • According to some further embodiments of this invention, the priorities indicated in response 301 are comprised of a sets of priorities, where each priority has validity period attached to it; the validity period may be indicated as time of day, day of week, calendar date, time offset from now, or any combination of the above.
  • According to further embodiments of this invention, the step 211 involves sending the query from the multi-session application 11 a via server-side application component 10 a.
  • The method 210 further includes step 212 of the multi-session application 11 establishing sessions to the content sources taking into account the priority indicated in the response 301, e.g., user client 11 b located on the same network 90, and/or content server 51 a, that is part of caching optimization service 50 a, and/or user client 11 y located outside of network 90, and/or content servers 21 a located in dedicated network 110 outside of network 90.
  • The priority returned by the network optimization service in response 301 may indicate a ban on connecting to particular content sources.
  • According to some embodiments of this invention, the multi-session application 11 sets up sessions to content sources in strict compliance with the priority indicated in the response 301.
  • Alternatively, the multi-session application 11 a may combine the priorities indicated in the response 301 with additional application-specific parameters and, optionally, overrule a ban on connecting to particular content sources.
  • The method 210 further includes an optional step 213 of the multi-session application sending a query for a content object or part of it, to at least one of the content servers 52 a and 52 b that comprise caching optimization service, as specified in the response 301.
  • The method 210 further includes step 214 of content server 52 a checking whether the content object or portion of it referenced in query 302 is stored in the storage of content server 52 a.
  • Further, in case of step 214 resulting in failure to locate content object or portion of it in the storage of content server 52 a, method 210 includes a step 215 of content server 52 a sending a query 302 for the content object or portion of it to, and receiving response from one or more content sources, including, but not limited to, other peer-to-peer application 11 b, located in same network with the content server 52 a, peer-to-peer application 11 z, located in other network 100, and/or other content server 52 b that is part of the caching optimization service 51 a, and/or content server 52 c that is part of content origination optimization service 51 b, and/or content server 21 a located in a dedicated server network 110.
  • According to some embodiments of this invention, the caching content server 52 a may send queries for parts of the content object or the portion of it, as requested in the query 302 to multiple content sources, in series and/or in parallel.
  • According to some embodiments of this invention, the caching content server 52 a may contact the server-side application component 10 a for purposes of discovery of new content sources.
  • According to some embodiments of this invention, the content server 51 a may apply network priority as provided by network prioritization optimization service 51 c, to the selection of content sources, as described in step 212.
  • Method 210 optionally includes step 216 where the caching content server 52 a may send queries for portions of the same content object referenced in query 302 that are not part of the portions of this object requested in query 302.
  • According to some embodiments of this invention, as part of step 216, the caching content server 52 a may send queries for content objects or portions of them that are associated with the content object requested in query 302, including, but not limited to, content objects that are known to belong to same group of content objects, to same multi-session application, content objects referred to by the content object requested in query 302 (e.g., query 302 containing request for HTML or XML document, containing references to additional content objects, such as images, video files, application objects, script objects, stylesheets and more).
  • Further, the method 210 includes a step 217 of content server storing the responses to queries sent to one or more content sources, as part of steps 215 and 216, in the storage of content server 52 a.
  • According to some embodiments of this invention, the step 217 is subject to application of algorithm that takes into account several factors, including, but not limited to identity and/or type and/or size of content object referenced in query 302, type of multi-session application 11 a, time of day, known level demand for the content object, available storage capacity of content server 52 a, current load of content server 52 a and more.
  • Further, method 210 includes a step 218 of content server 52 a responding to the query for content object, as described in step 213 above, by way of sending response 303 to the client user 11 a.
  • The response 303 may contain denial of the query 302, due to unavailability of the requested content object or part of it in the local storage of content server 52 a, and/or based on administrative policy of content server 52 a, and/or due to inability of content server 52 a to retrieve the requested content object or part of it from content sources that are permitted by the network optimization service 51 c and/or due to inability of retrieve the request content item from any content source known to content server 52 a.
  • Otherwise, the response 303 includes the requested content object or part of it, to the user client 11 a, as requested in query 302
  • According to some embodiments of this invention, the response 303 may contain redirection of user client 11 a to one or more content source, including but not limited to other content server 52 b that is part of caching optimization service 51 a, and/or content server 52 c that is part of content origination optimization service 51 b and/or dedicated content server 21 a located in network 110, and/or user clients 11 running peer-to-peer applications.
  • Method 210 further includes an optional step 219 of user client 11 a sending a query 304 to QoS arbitration service 51 f for allocation of class-of-service and receiving a response 304 from it.
  • The query 304 may include various details, including type of class-of-service requested and/or definition of content source types that the class-of-service is requested for and/or network address of content source and/or type of protocol used.
  • The types of class-of-service requested as part of query 304 include, but are not limited to, “low throughput, low latency”, “high throughput”, minimum guaranteed throughput, maximum guaranteed throughput, the least priority service (the so-called “scavenger” type of service), set throughput for set period of time in the beginning of session etc.
  • This step optionally includes an intermediate step 201 of the QoS arbitration service discovery through service locator 50 a.
  • The response 305 contains denial or grant of the request contained in query 304.
  • According to some embodiments of this invention, the decision of granting or denying the preferred class-of-service is conditioned on user client 11 contacting the network prioritization optimization service 51 c prior to that, and additionally or alternatively contacting the caching optimization service 51 a, and additionally on denial of request for content object by the caching optimization service.
  • The response 305 granting the class-of-service returns an application marker, including, but not limited to TCP or UDP source port, DiffServ control point (DSCP) value, HTTP cookie, Bittorrent extension field value or other application-level marker that can be used by the multi-session application to mark the preferred sessions differently from regular sessions.
  • According to some embodiments of this invention, the marker itself may include encoding of the requested class-of-service.
  • According to further embodiments of this invention, the marker can include a cryptographic token, that is optionally has validity for a limited time after response 305 is transmitted to user client 11 a, protecting against re-use of the application marker by user client 11 a or other user clients beyond use authorized by QoS arbitration service 51 f, based on service requested in query 304.
  • Method 210 further includes step 220 of mark-up of sessions that the multi-session applications desires to receive a preferred class-of-service, for example session between user client 11 a, located in network 90 and user client 11 x located in network 100.
  • Method 210 further includes step 221 of classification of the marked sessions, performed by QoS device 60 a located in or next to the data path between user client 11 a and user client 11 x, as sessions that require change of default class-of-service.
  • The session classification can be performed by QoS device 60 a, based on Layer7 detection of custom application marker, and additionally and alternatively, based on analysis of Layer3 and/or Layer4 headers of the packets comprising the session.
  • Further, method 210 includes an optional intermediate step 222 of QoS device 60 a sending a query 306 to the QoS arbitration service 51 f, to which the QoS arbitration service 51 f sends a response 307, confirming or denying the preferred class-of-service.
  • The query 306 may include type of protocol used by user client 11 a to retrieve content, IP address and port of user client 11 a, IP address and port of requested content source and, optionally, value of separate application marker, extracted by QoS device 60 a from the session, as well administrative policy of QoS device 60 a and/or network congestion information available to QoS device 60 a.
  • According to some embodiments of this invention, in case of QoS device 60 a being part of PCMM framework, the QoS arbitration service 51 f may act as an PCMM application manager.
  • According to some embodiments of this invention, the QoS arbitration service 51 f may reject or allow the query 306, depending on priorities defined for IP addresses by network prioritization service 51 c.
  • Further, method 210 includes step 223 of QoS device 60 a granting or denying the class-of-service requested by user client 11 a, or, alternatively, granting another class-of-service.
  • QoS device 60 a may decide on granting or denying the class-of-service, based on a variety of factors, including, but not limited to, administrative policy and/or network address of content source 11 x and/or network address of user client 11 a, and/or congestion on any part of the data path between 11 a and 11 x and/or taking into account response 307 of QoS arbitration service 51 f, as described in step 222 above.
  • It is to be understood that although the invention has been described above in terms of particular embodiments, the foregoing embodiments are provided as illustrative only, and do not limit or define the scope of the invention. Various other embodiments, including but not limited to the following, are also within the scope of the claims. For example, elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions.
  • The techniques described above may be implemented, e.g., in hardware, software, firmware, or any combination thereof. The techniques described above may be implemented in one or more computer programs executing on a programmable computer including a processor, a storage medium readable by the processor (including, e.g., volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code may be applied to input entered using the input device to perform the functions described and to generate output. The output may be provided to one or more output devices.
  • Each such computer program may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor. Method steps of the invention may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output.
  • Having described preferred embodiments of the present invention, it should be apparent that modifications can be made without departing from the spirit and scope of the invention.
  • Method claims set forth below having steps that are numbered or designated by letters should not be considered to be necessarily limited to the particular order in which the steps are recited.

Claims (22)

1. An optimization service discovery method for optimizing data transmission by multi-session applications, comprising:
receiving an optimization service lookup query from one of a plurality of user clients in a network, each of said user clients executing a multi-session application; and
identifying an optimization service and responding to the query with a network address of one or more servers providing said optimization service.
2. The method of claim 1 further comprising authenticating or authorizing said one of the plurality of user clients prior to responding to the query.
3. The method of claim 1 wherein responding to the query with a network address comprises responding to the query with network addresses of only some of the servers providing the optimization service.
4. The method of claim 3 wherein said some of the servers are selected based on load balancing algorithms, actual current load of the servers, network distance and/or network cost between the servers and the user client requesting the service, availability of the servers, administrative policy, or time of day.
5. The method of claim 1 wherein said multi-session applications include different types of multi-session applications.
6. A method of providing a network prioritization optimization service for delivery of content to one of a plurality of user clients in a network, the method comprising:
receiving a query for content source prioritization from one of a plurality of user clients in a network, each of said user clients executing a multi-session application; and
responding to the query with an identification and network addresses of a set of content sources and an order of priority of the content sources.
7. The method of claim 6 wherein said query identifies addresses of content sources known to the requesting user client.
8. The method of claim 6 wherein said query requests addresses of content sources.
9. The method of claim 6 wherein said set of content sources includes content sources that were previously unavailable to the multi-session application of the requesting user client.
10. The method of claim 6 wherein said set of content sources is identified using a peer discovery optimization service.
11. The method of claim 6 further comprising establishing sessions to said set of content sources in accordance with said order of priority.
12. The method of claim 6 further comprising sending a query for a content object to a caching optimization service.
13. The method of claim 12 further comprising determining if the content object or part thereof exists on a content server, and if so, transmitting the content object or part thereof existing on the content server to the user client.
14. The method of claim 12 further comprising determining if the content object or part thereof exists a content server, and if not, transmitting one or more queries for the content object to one or more content sources and storing responses on the content server.
15. The method of claim 12 further comprising prefetching associated content objects at a content server with not requested by a user client.
16. The method of claim 6 further comprising performing an optimization service lookup in response to a query from one of a plurality of user clients to identify said network prioritization optimization service.
17. The method of claim 6 further comprising identifying said set of content sources using a peer discovery optimization service.
18. The method of claim 6 further comprising receiving the query via a server-side application component.
19. The method of claim 6 wherein said order of priority of the content sources identifies a ban on one or more content sources.
20. The method of claim 6 further comprising receiving a request at a QoS arbitration service for allocation of class of service, and denying or granting said request.
21. The method of claim 6 wherein said content sources comprise different types of sources and said order of priority is based on the type of content source.
22. An QoS arbitration service method for allocation of class of service by multi-session applications, comprising:
receiving a request for allocation of class of service from one of a plurality of user clients in a network, each of said user clients executing a multi-session application; and
denying or granting said request.
US12/350,105 2008-01-07 2009-01-07 Method and system for transmitting data in a computer network Abandoned US20100005171A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US1957608P true 2008-01-07 2008-01-07
US12/350,105 US20100005171A1 (en) 2008-01-07 2009-01-07 Method and system for transmitting data in a computer network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/350,105 US20100005171A1 (en) 2008-01-07 2009-01-07 Method and system for transmitting data in a computer network
US14/457,531 US20150163296A1 (en) 2008-01-07 2014-08-12 Method and system for transmitting data in a computer network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/457,531 Continuation US20150163296A1 (en) 2008-01-07 2014-08-12 Method and system for transmitting data in a computer network

Publications (1)

Publication Number Publication Date
US20100005171A1 true US20100005171A1 (en) 2010-01-07

Family

ID=40853447

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/350,105 Abandoned US20100005171A1 (en) 2008-01-07 2009-01-07 Method and system for transmitting data in a computer network
US14/457,531 Pending US20150163296A1 (en) 2008-01-07 2014-08-12 Method and system for transmitting data in a computer network

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/457,531 Pending US20150163296A1 (en) 2008-01-07 2014-08-12 Method and system for transmitting data in a computer network

Country Status (3)

Country Link
US (2) US20100005171A1 (en)
EP (1) EP2248038A4 (en)
WO (1) WO2009089291A1 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327412A1 (en) * 2008-06-25 2009-12-31 Viasat, Inc. Methods and systems for peer-to-peer app-level performance enhancing protocol (pep)
US20100057909A1 (en) * 2008-08-27 2010-03-04 Satyam Computer Services Limited System and method for efficient delivery in a multi-source, multi destination network
US20100138555A1 (en) * 2008-12-01 2010-06-03 At&T Corp. System and Method to Guide Active Participation in Peer-to-Peer Systems with Passive Monitoring Environment
US20100191805A1 (en) * 2009-01-28 2010-07-29 Wei Lu Content associative caching method for web applications
US20120072604A1 (en) * 2009-05-29 2012-03-22 France Telecom technique for delivering content to a user
US8185612B1 (en) 2010-12-30 2012-05-22 Peerapp Ltd. Methods and systems for caching data communications over computer networks
US20120173740A1 (en) * 2010-12-29 2012-07-05 Anjini Shukla Method and apparatus of performing peer-to-peer communication establishment
US20120311678A1 (en) * 2010-01-26 2012-12-06 Nec Corporation Content delivery system, content delivery method, application server system, user equipment, and recording medium
US20140053252A1 (en) * 2012-08-14 2014-02-20 Opera Solutions, Llc System and Method for Secure Document Distribution
US8705356B2 (en) * 2008-12-23 2014-04-22 Centurylink Intellectual Property Llc Transparent network traffic inspection
US8769617B2 (en) 2008-12-23 2014-07-01 Centurylink Intellectual Property Llc Network user usage profiling
US8887214B1 (en) 2011-07-07 2014-11-11 Cisco Technology, Inc. System and method for unified metadata brokering and policy-based content resolution in a video architecture
US20150026352A1 (en) * 2012-03-09 2015-01-22 Interdigital Patent Holdings, Inc. Method and system for cdn exchange interconnection
US20170373967A1 (en) * 2016-06-28 2017-12-28 International Business Machines Corporation Initiating an action based on a determined navigation path data structure
US10021429B1 (en) * 2017-07-18 2018-07-10 Wowza Media Systems, LLC Selection of a content source based on performance data
US10212624B1 (en) 2014-05-10 2019-02-19 Google Llc Systems and methods for running network egress links with small buffers at a high utilization
US10225340B2 (en) 2010-12-30 2019-03-05 Zephyrtel, Inc. Optimizing data transmission between a first endpoint and a second endpoint in a computer network
US10601775B1 (en) * 2011-02-01 2020-03-24 Palo Alto Networks, Inc. Blocking download of content

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397106B2 (en) * 2015-06-09 2019-08-27 Fastly, Inc. Mobile conditions aware content delivery network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005040A1 (en) * 2001-06-29 2003-01-02 Puneet Kukkal Providing uninterrupted media streaming using multiple network sites
US20030140159A1 (en) * 1995-12-12 2003-07-24 Campbell Roy H. Method and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems
US20040148344A1 (en) * 2003-11-19 2004-07-29 Serenade Systems Content distribution architecture
US20060212584A1 (en) * 2005-03-15 2006-09-21 Qian Xiang Shi Ji (Beijing) Technology Development Co. Ltd. Method and system for accelerating downloading of web page content by a peer-to-peer network
US20070198726A1 (en) * 2000-10-12 2007-08-23 Peerapp Ltd. Method and system for accelerating receipt of data in a client to client network
US20080005349A1 (en) * 2004-04-16 2008-01-03 Utstarcom Distributed multimedia streaming system
US20080281908A1 (en) * 2007-05-08 2008-11-13 Riverbed Technology, Inc. Hybrid segment-oriented file server and wan accelerator

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US20030228869A1 (en) * 2002-06-07 2003-12-11 Albert Chow Providing mobility in a distributed end-to-end packet/cell/frame network
DE10331305A1 (en) * 2003-07-10 2005-02-17 Siemens Ag Communication system, peer-to-peer message filtering computer and method for processing a peer-to-peer message
US20050177624A1 (en) * 2004-02-11 2005-08-11 Alio, Inc. Distributed System and Methodology for Delivery of Media Content to Clients having Peer-to-peer Connectivity
KR100784385B1 (en) * 2005-08-10 2007-12-11 삼성전자주식회사 System and method of arbitrating requests for a shared resource
US8626949B2 (en) * 2007-09-27 2014-01-07 Microsoft Corporation Intelligent network address lookup service
US7747777B2 (en) * 2007-11-30 2010-06-29 Cisco Technology, Inc. Optimizing network resources usage within an administrative boundary

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030140159A1 (en) * 1995-12-12 2003-07-24 Campbell Roy H. Method and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems
US20070198726A1 (en) * 2000-10-12 2007-08-23 Peerapp Ltd. Method and system for accelerating receipt of data in a client to client network
US20030005040A1 (en) * 2001-06-29 2003-01-02 Puneet Kukkal Providing uninterrupted media streaming using multiple network sites
US20040148344A1 (en) * 2003-11-19 2004-07-29 Serenade Systems Content distribution architecture
US20080005349A1 (en) * 2004-04-16 2008-01-03 Utstarcom Distributed multimedia streaming system
US20060212584A1 (en) * 2005-03-15 2006-09-21 Qian Xiang Shi Ji (Beijing) Technology Development Co. Ltd. Method and system for accelerating downloading of web page content by a peer-to-peer network
US20080281908A1 (en) * 2007-05-08 2008-11-13 Riverbed Technology, Inc. Hybrid segment-oriented file server and wan accelerator

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417766B2 (en) * 2008-06-25 2013-04-09 Viasat, Inc. Methods and systems for peer-to-peer app-level performance enhancing protocol (PEP)
US20090327412A1 (en) * 2008-06-25 2009-12-31 Viasat, Inc. Methods and systems for peer-to-peer app-level performance enhancing protocol (pep)
US20100057909A1 (en) * 2008-08-27 2010-03-04 Satyam Computer Services Limited System and method for efficient delivery in a multi-source, multi destination network
US8086692B2 (en) * 2008-08-27 2011-12-27 Satyam Computer Services Limited System and method for efficient delivery in a multi-source, multi destination network
US20100138555A1 (en) * 2008-12-01 2010-06-03 At&T Corp. System and Method to Guide Active Participation in Peer-to-Peer Systems with Passive Monitoring Environment
US8959243B2 (en) * 2008-12-01 2015-02-17 At&T Intellectual Property Ii, L.P. System and method to guide active participation in peer-to-peer systems with passive monitoring environment
US8705356B2 (en) * 2008-12-23 2014-04-22 Centurylink Intellectual Property Llc Transparent network traffic inspection
US9635117B2 (en) 2008-12-23 2017-04-25 Centurylink Intellectual Property Llc Network user usage profiling
US10154105B2 (en) 2008-12-23 2018-12-11 Centurylink Intellectual Property Llc Network user usage profiling
US9300550B2 (en) 2008-12-23 2016-03-29 Centurylink Intellectual Property Llc Network user usage profiling
US9160642B2 (en) 2008-12-23 2015-10-13 Centurylink Intellectual Property Llc Network user usage profiling
US9794361B2 (en) 2008-12-23 2017-10-17 Centurylink Intellectual Property Llc Network user usage profiling
US8769617B2 (en) 2008-12-23 2014-07-01 Centurylink Intellectual Property Llc Network user usage profiling
US20100191805A1 (en) * 2009-01-28 2010-07-29 Wei Lu Content associative caching method for web applications
US8793307B2 (en) * 2009-01-28 2014-07-29 Blue Coat Systems, Inc. Content associative caching method for web applications
US20120072604A1 (en) * 2009-05-29 2012-03-22 France Telecom technique for delivering content to a user
US20120311678A1 (en) * 2010-01-26 2012-12-06 Nec Corporation Content delivery system, content delivery method, application server system, user equipment, and recording medium
US10367893B1 (en) * 2010-12-29 2019-07-30 Open Invention Network Llc Method and apparatus of performing peer-to-peer communication establishment
US9560141B2 (en) * 2010-12-29 2017-01-31 Open Invention Network, Llc Method and apparatus of performing peer-to-peer communication establishment
US20120173740A1 (en) * 2010-12-29 2012-07-05 Anjini Shukla Method and apparatus of performing peer-to-peer communication establishment
US10484497B2 (en) 2010-12-30 2019-11-19 Zephyrtel, Inc. Methods and systems for caching data communications over computer networks
US8990354B2 (en) 2010-12-30 2015-03-24 Peerapp Ltd. Methods and systems for caching data communications over computer networks
WO2012092602A3 (en) * 2010-12-30 2012-12-27 Peerapp Ltd. Methods and systems for caching data communications over computer networks
CN103597471A (en) * 2010-12-30 2014-02-19 皮尔爱普有限公司 Methods and systems for caching data communications over computer networks
WO2012092602A2 (en) * 2010-12-30 2012-07-05 Peerapp Ltd. Methods and systems for caching data communications over computer networks
US10225340B2 (en) 2010-12-30 2019-03-05 Zephyrtel, Inc. Optimizing data transmission between a first endpoint and a second endpoint in a computer network
EP2659401A4 (en) * 2010-12-30 2017-07-19 Peerapp, Ltd. Methods and systems for caching data communications over computer networks
US8185612B1 (en) 2010-12-30 2012-05-22 Peerapp Ltd. Methods and systems for caching data communications over computer networks
US10601775B1 (en) * 2011-02-01 2020-03-24 Palo Alto Networks, Inc. Blocking download of content
US9960928B1 (en) 2011-07-07 2018-05-01 Cisco Technology, Inc. System and method for topic-based eventing for flexible system management
US8887214B1 (en) 2011-07-07 2014-11-11 Cisco Technology, Inc. System and method for unified metadata brokering and policy-based content resolution in a video architecture
US9374619B2 (en) 2011-07-07 2016-06-21 Cisco Technology, Inc. System and method for enabling pairing of a companion device with a mate device for performing a companion device
US20150026352A1 (en) * 2012-03-09 2015-01-22 Interdigital Patent Holdings, Inc. Method and system for cdn exchange interconnection
US20140053252A1 (en) * 2012-08-14 2014-02-20 Opera Solutions, Llc System and Method for Secure Document Distribution
US10212624B1 (en) 2014-05-10 2019-02-19 Google Llc Systems and methods for running network egress links with small buffers at a high utilization
US20170373967A1 (en) * 2016-06-28 2017-12-28 International Business Machines Corporation Initiating an action based on a determined navigation path data structure
US20180183707A1 (en) * 2016-06-28 2018-06-28 International Business Machines Corporation Initiating an action based on a determined navigation path data structure
US10298965B2 (en) 2017-07-18 2019-05-21 Wowza Media Systems, LLC Selection of a content source based on performance data
US10021429B1 (en) * 2017-07-18 2018-07-10 Wowza Media Systems, LLC Selection of a content source based on performance data

Also Published As

Publication number Publication date
EP2248038A1 (en) 2010-11-10
WO2009089291A1 (en) 2009-07-16
US20150163296A1 (en) 2015-06-11
EP2248038A4 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
US9756124B1 (en) Content delivery network referral
Adhikari et al. Measurement study of Netflix, Hulu, and a tale of three CDNs
US9734472B2 (en) Request routing utilizing cost information
US10356144B1 (en) Reassigning source peers
Fayazbakhsh et al. Less pain, most of the gain: Incrementally deployable icn
US20170310779A1 (en) Facilitating content accessibility via different communication formats
Baid et al. Comparing alternative approaches for networking of named objects in the future Internet
Dannewitz et al. Network of information (netinf)–an information-centric networking architecture
Zhang et al. Unreeling Xunlei Kankan: Understanding hybrid CDN-P2P video-on-demand streaming
US10277500B2 (en) Application-layer traffic optimization service endpoint type attribute
US8694675B2 (en) Generalized dual-mode data forwarding plane for information-centric network
US8321578B2 (en) Systems and methods for network virtualization
Choi et al. A survey on content-oriented networking for efficient content delivery
US10084720B2 (en) Application-layer traffic optimization service spanning multiple networks
Chai et al. Curling: Content-ubiquitous resolution and delivery infrastructure for next-generation services
Jacobson et al. Networking named content
US20140059198A1 (en) Request routing management based on network components
US9548874B2 (en) Selecting a content delivery network
Seedorf et al. Application-layer traffic optimization (ALTO) problem statement
JP5746688B2 (en) System and method for converting unicast client requests to multicast client requests
US8793400B2 (en) Management of inter-provider peer-to-peer based feature network
US7920572B2 (en) Modifying operation of peer-to-peer networks based on integrating network routing information
Ren et al. TopBT: A topology-aware and infrastructure-independent BitTorrent client
Koponen et al. A data-oriented (and beyond) network architecture
US20160191608A1 (en) System and method for anonymous addressing of content on network peers and for prvate peer-to-peer file sharing

Legal Events

Date Code Title Description
AS Assignment

Owner name: PEERAPP LTD., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AROLOVITCH, ALAN;REEL/FRAME:022881/0915

Effective date: 20090623

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: PEERAPP SOLUTIONS, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PEERAPP LTD.;REEL/FRAME:044017/0731

Effective date: 20170915

AS Assignment

Owner name: ZEPHYRTEL, INC., TEXAS

Free format text: CHANGE OF NAME;ASSIGNOR:PEERAPP SOLUTIONS, INC.;REEL/FRAME:046783/0980

Effective date: 20180622