ZIGZAG: An Efficient Peer-to-Peer Scheme for Media Streaming Duc A. Tran, Kien A. Hua, Tai Do University of Central Florida INFOCOM Twenty-Second Annual Joint Conference of the IEEE Computer and Communications Societies. Chu Yi-Cheng
Outline Issues of Peer-to-Peer Streaming Application-layered Structure Administrative Organization Multicast Tree Apply the Mechanism Control Protocol Join and Departure of a Client Split and Merge of Clusters Experiment Results Conclusion
Issues of Peer-to-Peer Streaming Bound the end-to-end delay Deal with unpredictable users’ behavior Efficient use of network resources
Administrative Organization Cluster size: for any positive constant k in the bound [ k, 3k ] L H-1 L H-2 L H-3 L 0 S Head
Multicast Tree -- Terms used Subordinate: Non-head peers of cluster headed by X Foreign head: Clustermates of X, X is the head of the peer at layer j-1 Foreign subordinate: Subordinates of clustermates Foreign cluster: Clusters of clustermates
Multicast Tree -- Definition Concept: Receive content from foreign heads instead of its head. Rules: If a peer isn’t at its highest layer, it cannot has a link. A peer at its highest layer can only link to its foreign head. The server links to each of its subordinates.
Example of Multicast Tree Bound node degree to O((3k-1)*(3k-1)+(3k-1)) = O(k 2 ) Bound tree height to O(H) = (log k N) k = 4, H (number of layers) = 3
Control Protocol Maintain the positions and connections in the multicast tree and the administrative organization. Periodically communicate with: Clustermates - Subordinates: (position, degree) set of X - Head: (foreign cluster head, degree to foreign cluster) list of X Parent - Reachable(X): exist a path from X to a layer-0 peer - Addable(X): X is reachable, and the cluster size of the layer-0 peer is in [k, 3k-1] Children Y - Receive Reachable(Y i ), Addable(Y i ) from children. For a peer which highest layer is j, Worst case: need O((j+1)*(3k-1)) + O(k 2 ) = O(k*log k N) Amortized worst-cast:
Control Protocol (cont.) Node 2: send (2, 6) to 1, 3, 4 send {(1, 3), (3, 3)} list to head 4 send Reachable(2)=1, Addable(2)=1 to parent S receive Reachable(), Addable() from children k = 4, H (number of layers) = 3, size bound in [4,12]
Client Join
Client Join (cont.) join request Join overhead: O(max degree × height of multicast tree) = O(k*log k N)
Client Departure 1. Peer X fail 2. Aware of failure of X (i). Parent of X delete link of X. (ii). Head of children of X select new parent with minimum degree for them. (iii). Subordinates of X at layer 0~j-1 adapt new head X’ selected from layer 0. Failure recovery overhead: O(children number) + O(1) + O(1) = O(degree) = O(k 2 ) Should be O(k*log k N) considering control overhead of X’ XX’ X X X”L j+1 LjLj L j-1 L0L0 Z
Split overhead: step 2: step 4: O(degree of Y) = O(k 2 ) => O(k 2 ) 1.Split into U, V, where X U with 2. Delete links of layer j-1 whose parent and head are in different clusters in layer j. 3. Choose new parents other than X for Select head Y of cluster V with minimum degree. (i). Choose new parent for children of Y. (ii). Place Y into layer j+1 and link to X”. Split Operation U X X”L j+2 L j+1 LjLj L j-1 X’ V
Merge Operation Merge overhead: step 2: O(2*(3k-1)) step 3: O(degree) = O(k 2 ) => O(k 2 ) 1. Choose new head between X, Y which are heads of two sets being merged. (may use larger degree one) 2. Delete link from parent of lost head at layer j+1, and remove the node. 3. Select new parent of non-head members in U+V. 4. Delete links point to the same cluster at layer j Select new parent different from the new head with minimum degree.
Experiment Results -- Failure free 3240 node-transit-stub 2000 clients K=5
Experiment Results -- Failure free (2)
Experiment Results -- Failure free (3)
Experiment Result -- Failure recovery
Experiment Result -- NICE comparison NICE: Adapt hierarchical peer clusters, but always receive content from head.
Conclusion With O(logN) tree height, O(k 2 ) nodes degree, the scheme maintains relative short end-to- end delay. Obtain control overhead to O(k 2 ) on average. Join a client can be accomplished within O(logN) downward relay. Departure a client cost O(k 2 ). Use merge, split to maintain efficient use of the network need O(k 2 ) periodically invoked.