Method for establishing and maintaining a shared view of time in a peer-to-peer network
AssigneeMicrosoft Corporation
InventorsJeremy L. Dewey, Christian Huitema, Xiaohai Zhang
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsJeremy L. Dewey, Christian Huitema, Xiaohai Zhang
Estimating the term…
A shared concept of time, called “graph time,” is agreed upon by all nodes within a graph. Each node maintains its own local delta representative of a difference in the node's system clock and graph time. Upon connecting to a neighbor node in a graph, a node is sent graph time as perceived by the neighbor node. In accordance with an embodiment, the node assumes that the lag time in receiving the graph time from the neighbor node is one-half of the lag time between the request for the connection and the receipt of the graph time. Graph time as sent by the neighbor node is added to one-half of the total delay and the sum is subtracted from the node's system time to calculate the delta for the node requesting connection.
A computer-implemented method for maintaining a shared concept of time between nodes in a graph that comprises a peer to peer, serverless network wherein the nodes are peers on the network, the method comprising:
A computer storage medium having computer-executable instructions for performing a method, the method comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
In which an application is distributed across nodes in the network: peer-to-peer [P2P] networks
In which an application is distributed across nodes in the network: replication or mirroring of data, e.g. scheduling or transport for data…
Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass:…
Digital communication
About 1 year 1 month of term left · ends 3 Dec 2027 (estimated)
The present invention pertains generally to computer networks and, more particularly, to peer-to-peer computer networks.
Enabling group communication is a popular application of computer networks. Groups of people use computer networks to share every kind of digital data from simple text and static images to encoded audio and video and more specialized data that enables real-time collaboration and multi-player games.
In general, a node is an application on a peer-to-peer network, typically identified by an Internet Protocol (IP) address, a port, and a name. A graph is an interconnection of such nodes on a peer-to-peer network. A peer-to-peer network is a simple, small type of network in which each node has the ability for equivalent capabilities and responsibilities. Each node can be a server and each can be a client at the same time. This differs from a client-server architecture in which some computers are dedicated to serving others.
FIG. 1 is a schematic diagram illustrating computers connected by a network;
FIG. 2 is a schematic diagram generally illustrating an exemplary computer system usable to implement an embodiment of the invention;
FIG. 3 is a schematic diagram depicting peers in an example peer-to-peer graph;
Prior to proceeding with a description of the various embodiments of the invention, a description of a computer and networking environment in which the various embodiments of the invention may be practiced is now provided. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, programs include routines, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types. The term “program” as used herein may connote a single program module or multiple program modules acting in concert. The terms “computer” and “computing device” as used herein include any device that electronically executes one or more programs, such as personal computers (PCs), hand-held devices, multi-processor systems, microprocessor-based programmable consumer electronics, network PCs, minicomputers, tablet PCs, laptop computers, consumer appliances having a microprocessor or microcontroller, routers, gateways, hubs and the like. The invention may also be employed in distributed computing environments, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, programs may be located in both local and remote memory storage devices.
Referring now to the drawings, in which like reference numerals represent like parts throughout the several views, an example of a computer networking environment suitable for incorporating aspects of the invention is described with reference to FIG. 1. The example computer networking environment includes several computers 102 communicating with one another over a network 104, represented by a cloud. The network 104 may include many well-known components, such as routers, gateways, hubs, etc. and allows the computers 102 to communicate via wired and/or wireless media. When interacting with one another over the network 104, one or more of the computers 102 may act as clients, servers or peers with respect to other computers 102. Accordingly, the various embodiments of the invention may be practiced on clients, servers, peers or combinations thereof, even though specific examples contained herein may not refer to all of these types of computers.
Referring to FIG. 2, an example of a basic configuration for the computer 102 on which aspects of the invention described herein may be implemented is shown. In its most basic configuration, the computer 102 typically includes at least one processing unit 202 and memory 204. The processing unit 202 executes instructions to carry out tasks in accordance with various embodiments of the invention. In carrying out such tasks, the processing unit 202 may transmit electronic signals to other parts of the computer 102 and to devices outside of the computer 102 to cause some result. Depending on the exact configuration and type of the computer 102, the memory 204 may be volatile (such as RAM), non-volatile (such as ROM or flash memory) or some combination of the two. This most basic configuration is illustrated in FIG. 1 by dashed line 206.