12.07.2015 Views

Implementation of a Peer-to-Peer Multiplayer Game with ... - DVS

Implementation of a Peer-to-Peer Multiplayer Game with ... - DVS

Implementation of a Peer-to-Peer Multiplayer Game with ... - DVS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

scenarios <strong>with</strong> millions <strong>of</strong> users, there is no formal pro<strong>of</strong> on how reliable they are on intermittent oreven catastrophic network failures. And second, though many problems can be formulated using thehash table interface, there are still many problems that cannot be solved (efficiently) that way. Oneexample is full text search in text documents that are distributed in the network. For peer-<strong>to</strong>-peer gamesthere are some other issues, especially concerning performance, that make DHTs suboptimal as thecommunication infrastructure <strong>of</strong> fast-paced games.2.1.2 BubbleS<strong>to</strong>rmAddressing some <strong>of</strong> the issues <strong>of</strong> DHTs mentioned before, BubbleS<strong>to</strong>rm [34] has been developed. BubbleS<strong>to</strong>rmis a unstructured peer-<strong>to</strong>-peer system providing exhaustive search in a probabilistic fashion.Unstructured means that the peers are not connected following some system <strong>of</strong> routing tables, but completelyrandom, thus building a random graph. Unlike in DHTs, nodes do not have IDs nor is data routed<strong>to</strong> certain deterministic places. BubbleS<strong>to</strong>rm distributes both data and queries randomly in the network.With a certain probability, which depends on the replication fac<strong>to</strong>r and can be predetermined, a queryand a matching date meet at some node (the rendezvous node) which then can respond <strong>to</strong> the query.This allows for complex queries like full-text search, as the rendezvous node has the full document <strong>to</strong> besearched on.AlgorithmBubbleS<strong>to</strong>rm’s <strong>to</strong>pology is a random multigraph, allowing self-loops and multi-edges. Nodes choosethe number <strong>of</strong> connections (node degree) based on their bandwidth capabilities; each edge has aboutthe same traffic because <strong>of</strong> the random selection <strong>of</strong> forwarding edges. To keep existing nodes’ degreesunchanged when nodes join, the new nodes connect between pairs <strong>of</strong> previously connected nodes, sothat both existing nodes do not need an additional connection. Accordingly, leaving nodes re-connecttheir neighbors. The first node <strong>of</strong> a network starts <strong>with</strong> a self-loop. Desired node degrees have <strong>to</strong> bemultiples <strong>of</strong> two, but single broken connections are not repaired. Only when there are two <strong>of</strong> them, twonew connections are created using the join procedure. Before becoming a peer, nodes join as clients.Clients are served through their connecting peer but do not provide any services <strong>to</strong> the network. Aftersome time, clients become peers. This reduces churn and pro<strong>to</strong>col overhead <strong>with</strong> short-lived nodes,which in this system never need <strong>to</strong> become peers.To achieve a certain rendezvous probability, data and queries have <strong>to</strong> be spread in the network <strong>with</strong> acertain density. Thus, for calculating the number <strong>of</strong> necessary replicas, it is necessary <strong>to</strong> know the size<strong>of</strong> the network. Therefore, BubbleS<strong>to</strong>rm runs a pro<strong>to</strong>col for measuring global system state, includingthe number <strong>of</strong> nodes, the sum <strong>of</strong> node degrees and the sum <strong>of</strong> squared node degree <strong>of</strong> all nodes in thenetwork. The fully decentralized gossip pro<strong>to</strong>col [35] needs O(log(n)) rounds <strong>to</strong> calculate the necessaryvalues and is run constantly <strong>to</strong> keep information up-<strong>to</strong>-date.For BubbleS<strong>to</strong>rm, it is necessary <strong>to</strong> control the precise number <strong>of</strong> replicas <strong>of</strong> data and queries. This isdone efficiently by bubblecasts. Bubblecasts combine random walks <strong>with</strong> flooding. While flooding is fast<strong>with</strong> an exponentially growing number <strong>of</strong> reached nodes, the <strong>to</strong>tal number <strong>of</strong> reached nodes can onlybe controlled inaccurately via the messages’ time-<strong>to</strong>-live value. In contrast <strong>to</strong> that, bubblecasts forwardeach message only <strong>to</strong> a fixed number (the bubblecast split fac<strong>to</strong>r; default: 2) <strong>of</strong> neighbors (randomsubset) in each hop. The desired number <strong>of</strong> replicas (the bubble size) is specified as the weight <strong>of</strong> thebubblecast messages. On each hop, the forwarding node decreases the weight by 1 (for the one copyhe received) and distributes the remaining weight over the forwarded messages (as long as there isremaining weight).To ensure that a datum-query-pair meets at at least one node <strong>with</strong> a given probability, the bubblesizes must be set accordingly. The BubbleS<strong>to</strong>rm paper derives the formula qd = c 2 n, where q and d14 2.1 <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Infrastructure

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!