PT(t) can be fetched readily. In a small buffer system, the
phase transition point is in the head part of the buffer. There-
fore, a newly joined peer has to compete chunks above PT(t)
with other peers at its startup stage. However, in a large buffer
system, the phase transition point is in the tail part of the
shared buffer space, then a newly joined peer can choose its
buffer head (initial offset) below PT(t) to avoid competitions
with other peers during its startup stage and therefore be able
to download chucks quickly.
3 Peer startup process and initial offset placement
In this section, we give an outline of P2P live streaming
systems and then introduce the peer startup process and initial
offset placement problem.
3.1 Brief description of P2P live streaming system
A P2P live streaming system uses few content servers to
support a large number of audiences (also called peers). In
this paper, we assume there is only one content server in the
system.
The media content is divided into successive data pieces
(also called chunks) with IDs in ascending order. The content
server injects new chunks into system based on the requests
from peers. The service curve,denotedbys(t), is defined as
the max chunk ID in the system at time t, i.e. the ID of new
chunk injected by the content server at that time (Table 1).
Each peer has a buffer for storing chunks. It employs
buffer-maps (BMs) to abstractly describe how the buffer is
currently filled. A BM consists of an offset, which is the
smallest chunk ID at buffer head (or the current playback
position), and a bitmap, which is a bit sequence recording
the list of chunks that are currently stored in the buffer. In
details, a value of 1 or 0 at the i
th
position of the bitmap
indicates that the chunk with ID=offset+i−1 has or has not
been stored in the buffer. We call the left most position in the
bitmap the buffer head.
BMs are periodically exchanged among neighboring peers.
Base on BMs, peers exchange chunks with each other to fill
their buffers. At the same time, a peer’s buffer is also drained
at a rate roughly equal to the video playback rate. Therefore,
the offset contained in the BM message of a peer keeps
changing. The time sequence of the BM offset values for a
peer is named as the offset curve of the peer. Accordingly, f
p
(t)
represents the offset value of peer p at time t.
There are two types of peers in a P2P system: newly joined
peers and peers who have been online for a long period of
time. Without causing confusion, we use the term “host” to
represent a newly joined peer and use the term “peer” to
represent a peer that has been online for enough long time
when a host joins the system. When a host joins a channel, it
Tabl e 1 Symbols
Symbols Definitions
s(t) Service curve, which represents the ID of the chunk injected
by the content server at time t
f
p
(t) Offset curve of peer p, i.e., the chunk ID at the buffer head of
peer p at time t
L
p
Offset lag of peer p, i.e., the difference between service curve
and offset curve of peer p
L
θ
Lag of initial offset, i.e., the initial difference between service
curve and peer offset curve when a peer joins a channel
L
h
Offset lag of host h, i.e., the difference between service curve
and offset curve of peer h
r Playback rate. R is assumed to be a constant in this paper
τ Offset setup duration for a startup peer (called host), i.e., the
time interval between the time instant when the host joins a
channel to the time instant when it starts to drain its buffer
(i.e. to forward its offset value).
W Difference between the ID of the chunk stored at the buffer
head of a peer and that stored at the buffer tail of the peer
v
p
(t) Playable video at peer p. v
p
(t)=f
p
(t)+V
p
(t)
ξ
p
(t) Scope curve of peer p, i.e., the chunk ID at the buffer tail of
peer p at time t.
W
p
(t) Buffer width of peer p at time t
V
p
(t) Length of playable video, i.e., the length of consecutive “1”
in the peer buffer bitmap from the peer p’sbufferheadat
time t.
f
s
(t) Offset curve of content server
W
s
(t) Buffer width of content server, which is defined as
W
s
(t)=s(t)− f
s
(t)
θ
h
Initial offset, the first chunk requested by a new peer h
θ Initial offset, the first chunk requested by a peer
L
*
Limiting offset lag
L
n
Bounded offset lag. L
n
=s(t)− f
n
(t)asn→ ∞
t
h
Host startup time of host h, which is the instant when host h
starts up
τ
h
Offset setup duration of a host h, which is the time interval
from the host startup time t
h
to the time instant t
off
when
host h starts to drain its buffer
I(n) Reference neighbor peer of host n
β
p
(t)Scopefactorβ
p
(t) for a peer p, which is the ratio of its buffer
width to its offset lag
C(n) Reference neighbor chain for the n
th
joined peer
ΔL
C(n)
The lag difference associated with chain C(n), which is
defined to be the difference between the lag of the last peer
and the first peer in the chain.
E{W|C, t
C
} The average peer buffer width. C is a generic form of chain
C(n)
E{τ |C(n)} The average offset setup duration
α A constant placement coefficient in the Proportional
Placement (PP) scheme
T
sil
The length of the offset silent duration when a host joins a
system. During this period, the host does not advertise any
buffer messages
T
off
The length of initial offset setup duration
BufHeadSvr The minimal chunk ID at the buffer head of content server
BufTailSvr The maximal chunk ID at the buffer tail of content server
140 Peer-to-Peer Netw. Appl. (2015) 8:137–155