This document discusses how peer-to-peer streaming based on network coding can decrease packet jitter. It presents analytical and experimental results showing that network coding reduces jitter by allowing recovery from multiple packet streams, with jitter decreasing as the square root of the number of peer connections. Specifically, simulations and PlanetLab experiments demonstrate that jitter declines closer to theoretical predictions as redundancy from additional peer connections grows.
Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
1. Peer-to-Peer Streaming Based on Network
Coding Decreases Packet Jitter
Riccardo Bernardini, Roberto Cesco Fabbro, Roberto Rinaldo
DIEGM – University of Udine
October 27, 2010
2. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Overview
• Introduction
– Streaming over P2P networks
– P2P with network coding
• The model
• Analytical results
• Experimental results
• Conclusions
1
3. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Streaming over P2P
Why?
• Streaming good quality content to many users in multi-unicast
requires a lot of resources
Required = Content bandwidth × # of users
• Multicast is not always a feasible solution (cross AS)
• In a Peer-to-Peer structure each node brings its own resources
⇓
SCALABLE
2
4. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Streaming over P2P
The drawbacks
A user is not a server
Insufficient upload bandwidth
Can leave at anytime (even suddenly)
Cannot be trusted (poisoning)
3
5. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Streaming over P2P
Chunk-based
• Chunk-based approach
– Inspired to file-sharing P2P systems
– The stream is split in chunks
– Each peer advertises which chunks has (buffer maps)
– Each node asks to other peers the required chunks
– A node sends as many chunks as its bandwidth allows
– For live streaming
∗ Too old chunks useless
∗ Future chunks do not exist
⇒ Some buffering necessary
– More interesting for VOD
4
6. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Streaming over P2P
Stream-based
• Stream-based approach
– As soon as the node receives a packet
∗ Takes linear combinations of the content of the packet (network coding)
∗ Transmits the result (reduced packet)
– The transmitted packets are smaller ⇒ smaller required bandwidth
– A node recovers the content packet by combining the output of different
peers
– The node transmits as soon as it receives a new packet
∗ More stream-oriented
⇒ No buffering necessary
5
7. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Our setup
• We will consider a stream-based approach
• We do not fix a specific network coding, but we suppose that
– The bandwidth of the reduced stream is 1/R of the bandwidth of the
content stream.
– The content packet can be recovered as soon as at R packets are received
– Each peer receives data from N > R peers
• Chunkless approaches that satisfy these requirements exist
– PPETP (http://corallo.sourceforge.org)
– Octoshape
6
8. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Network Coding & Jitter
• The idea
– If N peers send me data. . .
– . . . and I need only the R < N “fastest” packets . . .
– . . . could this have some benefical effect on jitter?
7
9. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Our model
Client
U1
U2
U3
U4
Upper
peers
Streaming
Server
P2P
Newtork
00000
00000
0000000000
00000
00000
00000
11111
11111
1111111111
11111
11111
11111
00000
00000
00000
11111
11111
11111
0000
0000
0000
1111
1111
1111
0000
00
0000
1111
11
1111
0
0
00
0
0
0
00
0
0
0
00
0
00
0
0
11
1
1
1
11
1
1
1
11
1
11
1
1
1
1
0
0
00
0
0
0
00
0
0
0
00
0
00
0
0
11
1
1
1
11
1
1
1
11
1
11
1
1
1
1
0000000000000000000000000011111111111111111111111111
000000
000000
111111
111111
• A packet leaves the server at t = 0
• The n-th upper peer recovers the
packet at t = An
• The reduced version of the n-th up-
per peer needs t = Bn to reach the
node
• The node receives the data from the
n-th upper peer at time Xn = An +Bn
8
10. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Our model
Equivalent
Client
SPLIT
JOIN
Streaming
Server
:
:
Content
packets
Reduced
packets
To the application
(e.g., decoder)
Delay XN
Delay D=OK(X1, ..., XN)
• As soon as a packet is created
it is split in N reduced packets
that leave the server t = 0
• The n-th packet arrives at t = Xn
• The packet is recovered at time
D = OR(X1, . . . , XN)
where OR returns the R-th (in
increasing order) of its argu-
ments.
• σD = jitter “seen” by the node
9
11. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Problem statement
• Hypothesis
– Xn are iid random variables with
∗ Distribution FX
∗ Average mX (expected delay)
∗ Standard deviation σX (basic jitter)
– D = OR(X1, . . . , XN)
• Problem: find mD and σ2
D as function of mX, σ2
X, R and N
Note: The results can be extended to the case where Xn has parametrized
distribution G(x; θn), where θn is a r.v.
10
12. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Analytical results
Reduction to m = 0 and σ2 = 1
• Define
Yn =
Xn − a
b
; C = OR(Y1, . . . , YN)
• The following (almost obvious) equalities hold
mC =
mD − a
b
; σC = σD/b
• Note: The ratio σD/σX (a measure of jitter reduction) depends
only on N, R and the type of Xn (Gaussian, uniform, . . . )
11
13. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Analytical results
Asymptotical results
• D = OR(X1, . . . , XN) is the R-th order statistic of X1, . . . , XN
• Let ρ = N/R be a measure of the “redundancy”
• Keeping ρ constant while letting N → ∞ (under mild hypothesis)
– mD → F−1
X (1/ρ) The delay depends only on ρ
– σD/σX ∼ 1/
√
N The jitter decays as 1/
√
N
12
14. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Simulation results
Simulation results with Xn ∼ N(0, 1)
10
0
10
1
10
2
10
−0.9
10
−0.7
10
−0.5
10
−0.3
10
−0.1
Jitter vs. N in log−log scale
N
Jitter
R=1/5
R=1/4
R=1/2
R=7/10
R=3/4
0 20 40 60 80 100
−1.5
−1
−0.5
0
0.5
1
NMean
R=N/5
R=N/4
R=N/2
R=(7/10) N
R=(3/4) N
13
15. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Experimental results
Setup
−0.05 0 0.05 0.1 0.15
0
5
10
15
20
25
Histogram of peers delay
Delay [s]
Numberofpeers
• PlanetLab network with 101 nodes
• Nodes synchronized with NTP. Error
< 10 ms (interrupt frequency in Linux
kernel)
• Each node sent 1000 packets, 2
packets per second
• Two groups of nodes
– With very small delay (≈ 0.04 s),
comparable with NTP synchro-
nization error. Discarded.
– With delay ≈ 0.1 s.
14
17. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Conclusions
• We analyzed the behaviour of the jitter when a P2P structure
based on network coding is employed
• The jitter is actually reduced
• The σD/σX decays as 1/
√
N, that is, it depends (approximately)
only on the number of peers and not on the redundancy.
16
18. Peer-to-Peer Streaming Based on Network Coding Decreases Packet Jitter
Acknowledgments
This work and the development of PPETP are partially supported by
PRIN Arachne (2008C59JNA), granted by Ministero per l’Universit`a
e la Ricerca Scientifica e
Tecnologica.
17