The use of multimedia streaming applications such as live video streaming, live webinars, video conferencing, remote presentation etc. is increasing at a very high rate. These applications are highly bandwidth intensive and account for most of the network traffic across internet. This gives rise to need for efficient utilization of network resources. This can be achieved in two ways. Firstly, decreasing the size of video to be transferred over networks and secondly by avoiding redundant repeated traffic over the network which can be achieved using proper multicasting techniques. The use of multicasting techniques increases the scalability the application to much higher level and thus it is on this line our group decided to restrict our research area for our final year project.
Now, even multicasting can be done in two ways, using IP Multicast Infrastructure or Application Level Multicasting. IP Multicast Infrastructure is the most efficient way to implement multicast communication. However its large scale deployment is very difficult due to various technical and non-technical reasons. Some of them being infrastructure update and upgrade costs are very high, increased overheads and complexities at the routers for group management, monitoring and controlling data traffic across networks becomes difficult, suffers from reliability and congestion control issues as it is vulnerable to flooding attacks without complex network management etc. Application Level Multicasting(ALM) is an alternative multicasting solutio, wherein multicast functionality is implemented in application layer i.e. at the end hosts instead of network routers. ALM provides the following advantages over other techniques like, it is cost-efficient, easily deployable, highly scalable, group management is easier, monitoring and controlling data traffic across networks is easier, can better adapt to changing dynamics of the network etc. Doing this research, our group decided to further narrow down our research scope and focus just on ALM techniques and build our project around these focus area. In this way, we ended up making up a Live Video Streaming Application using an ALM technique that was also designed by our group.
Now before designing our own ALM technique, we did research on existing techniques which basically could be divided in two types: tree first and mesh first, each having its own pros and cons. While designing our technique we tried to converge the pros of the two types while avoiding cons of either. To do this we introduced the concepts of sub-streams. By doing so, we improve the capability of system to gracefully handle leaving of network nodes in between or abrupt failure of network nodes. We implement this concept by designing our entire application in three modules: server module, client module and bandwidth test module.
The whole working of our project, our concept, our research is explained in the project document which can be found here.
Alternatively, you can view the presentation which does the samehere.
Moving on to the screenshots of our application in action.
That’s it. Hope you like one more of my cool stuff. Signing off.
(Project Made by: Ankit Deliwala, Ashish Bagade, C V Sashank, Girish Patil, Ritesh Bhatkar)