270 likes | 405 Views
Streaming in Peer-to-peer Networks. 2002/1/2. Outline. The problem Assumption Network model / Node Construction Flood-broadcast Tail-broadcast Leave-broadcast Simulation Future work. The Problem.
E N D
Streaming in Peer-to-peer Networks 2002/1/2
Outline • The problem • Assumption • Network model / Node • Construction • Flood-broadcast • Tail-broadcast • Leave-broadcast • Simulation • Future work
The Problem • Given a graph G = (V,E) with order-vertexes and a distinguished source vertex s, we find a way to connect all the vertexes without violating the order, which means we have to connect the smaller order vertexes before the larger ones. • Constraints: • Minimize the maximum of order-difference • Minimize the sum of order-difference • Minimize the construction cost
1 1 1 1 2 2 2 2 4 4 4 4 6 6 6 6 3 3 3 3 5 5 5 5 An Example 1 2 2 1 Step 1 Step 2 Step 3 Step 4 MAX:2SUM:1+2+2 Order-difference: ID – Max(Children’s ID)
Assumption • Without messages, all nodes knows nothing about other nodes’ condition except the paths to connect to its neighbor nodes. • Only in-stream nodes can actively tell other nodes to join the stream. • If a node receives a message, it can directly response the message or forward the message to its neighbors according to the message’s TTL attribute.
Network Model • Distributing n nodes across a Cartesian coordinate grid. • The edge probability function is ,where d(u,v) is the Euclidean distance, L is the maximum possible distance between two nodes.
Node • A node has following attributes: • (x,y) • Neighbor nodes’ ID • ID (also used as joined order) • Stream parent ID • Stream child IDs (order-difference) • Message parent ID • Message TTL • The sent messages number
Construction • The ways to connect all the nodes: • Flood-broadcast • Tail-broadcast • Leave-broadcast
1 1 2 2 4 4 6 6 3 3 5 5 Flood-broadcast • Every node in the stream can broadcast messages to all its neighbor nodes.
1 1 1 2 2 2 4 4 4 6 6 6 3 3 3 5 5 5 Tail-broadcast • Only the lastly in-stream nodes can broadcast messages. Tail-1 case Tail-2 case
1 1 2 2 4 4 6 6 3 3 5 5 Leaves-broadcast • Only the non-child nodes can broadcast messages.
Leaves-broadcast Vs. Tail-broadcast (1) • Tail-broadcast has local problem and does not spread well. • Leaves-broadcast has a trend to result in a tree graph but at the same time occurs larger maximum and sum of order-difference.
Leaves-broadcast Vs. Tail-broadcast (2) Tail-broadcast j 1 n-1 n … i n+1 Leave-broadcast j 1 n-1 n … i n+1
How to Simulation (1) • Main loop:for i = 1 to NUM_OF_NODES do ResetMessageParent() SetBroadcastNodes(BROADCASTWAY) SetInStream()
How to Simulation (2) • ResetMessageParent(): • Reset every node’s message server to null (clear history) • To avoid broadcasting messages back
How to Simulation (3) • SetBroadcastNodes(BROADCASTWAY): • To setup which nodes to broadcast messages to others. • BROADCASTWAY: • Flood-broadcast • Leaves-broadcast • Tail-broadcast
How to Simulation (4) • SetInStream(): • To set the node which wants to join the movie into the chaining stream • Select a parent node to join
How to Simulation (5) • Node’s function: • BroadcastMessage() • ReceiveMessage() • ResponseMessage()
How to Simulation (6) • BroadcastMessage(): • If the node is set to broadcast message, the node call this function to broadcast messages to all its neighbor nodes.
How to Simulation (7) • ReceiveMessage(): • If a node receive a message, it first store the message server’s ID, and see if it want to join the movie. • If a node want to join the movie, it stores the stream parent ID. • If not, it looks the TTL field and compare the value received last time to determine if it need to broadcast messages forward.
How to Simulation (8) • ResponseMessage(): • A node can determine which movie server to connect with if it had received messages before.
Simulation Result (1) Flood-broadcast
Simulation Result (2) Leaves-broadcast
Simulation Result (3) Tail-3-broadcast
Future Work • Other construction ways • Different graph, ex: hierarchical graph • History messages