LayeredCast - A Hybrid Peer-to-Peer Live Layered
Video Streaming ProtocolPeer-to-Peer overlay networks are an attractive foundation for video streaming. However, live Peer-to-Peer media streaming systems face many challenges such as bandwidth heterogeneity, node churn, and selfish nodes. Although many tree based and mesh based streaming protocols have been proposed, each has its own drawbacks such as unreliability and unfairness in tree based and long startup delay and complex scheduling in mesh based protocols.
In this paper, we propose a new video streaming protocol called LayeredCast main features of which are: 1) Hybrid: Drawbacks of the simple approaches are compensated using a hybrid of mesh and tree overlays. 2) Layered Video: Provides an adaptive scheme to enhance the video quality using a layered video codec for heterogeneous clients. 3) QoS: LayeredCast scheduling aims at moving complexity of Multi-Service network core to the network clients application layer, thus providing better QoS over simple regular networks. LayeredCast's tree network pushes the base layer to all peers while the enhancement layers and missing base layer segments are pulled over a mesh network by peers with extra bandwidth using a new data-driven scheduling scheme. We have evaluated the performance of LayeredCast on an innovative simulation framework. Simulation results verify better performance of LayeredCast in term of decodable video frames over CoolStreaming, especially when network resources are limited.
We used OMNET++ simulator as our simulation foundation.
It is a discreet event modular simulator usually used
for network protocols simulation. Besides, INET package
was used to simulate network protocols. We used the implementations
of physical layer, MAC, IP, and UDP in this
package, which are really close to real implementations. In
the application layer, we have implemented our multicast
protocols where theOverSim framework is used to ease
the implementation of a P2P streaming protocol.
Multicast Manager application, in this layer, manages overlay
independent procedures usually related to buffer management,
inter-overlay interactions, and application independent statistics
generation. At last, there is a camera capable of reading
FGS video traces and the corresponding video player. The
video player is able to create video related statistics according
to the applied video coding.

Simulation Framework
I have done this project as my M.Sc. thesis with the aid of Reza Motamedi under supervision of professor H.R. Rabiee in the Department of Computer Engineering of Sharif University of Technology.
Our contributions in this project are (mine are bold):
- Prepare a challenge based survey on P2P video streaming
- Propose a hybrid live layered video streaming protocol
- A low stretch tree construction algorithm
- Data-aware tree improvement algorithm
- Suggestion based join
- Scheduler based mesh improvement
- Content Aware Scheduler
- Supplier Side: PWF (Pseudo Water Filling)
- Content Aware Bandwidth Allocation
- Receiver Side: Utility Based
- Use of Bipartite Graph Matching to Match Candidate Requested Segments with Potential Providers
- Transmitter Scheduler: Bandwidth Reservation
- Use of Weighted Fair Queues
- Mesh Improvement
- Use of neighbor request histories
- Implementation of a P2P video streaming simulation framework on OMNET+

The Structure of a LayeredCast node
and its connections to other peers Some tutorials
Here, I want to share my experience on OMNET++ that I have got during this project. There are some tips that I could not mention in my thesis document, but they are valuable for people want to work with this simulator and its related frameworks. Besides, it is in according to the purpose of this website which is documenting my experiences and projects.
Note that we have implemented our project on OMNET++ 3. The recent version of OverSim is working on OMNET++ 4; therefore, some tips may not work):
- How to create a project using OverSim?
- How to config multiple simulations for a scenario?
- How did we extract the statistics?
- How to debug a project developed on OMNET++?
- How to import Brite topology for using in OverSim?
- How to export Overlay structure for Graphviz?
- How to export Overlay structure for Pajek?
- How to define a new message type?
Download
- Project Documentation and presentations can be downloaded from here.
- Project codes and simulation framework files:

Simulation Screenshots:
The internal structure of the layered cast nodes having three layers in the applacation layer (Overlays, Multicast Manager, Camera and player).
Internal structure of a node
 Underlay network presentetd by Pajek
|