This page contains a list of all the software that were developed at NSL as part of our ongoing research projects. They are organized by project with links to documentation, downloadable source code archives, and Subversion repositories. Unless otherwise specified, all the code released on this page is available under the GPLv3 license. When using our implementations and/or algorithms, please cite the corresponding publications from the project/publications page.



Implementations

MobileTV Testbed

As part of our Mobile TV Networks project, we have implemented a complete end-to-end testbed for DVB-H (Digital Video Broadcast-Handheld) networks. The testbed provides a realistic platform for analyzing various aspects of these networks, including the energy saving achieved by the time slicing mechanism, average channel switching delay, network capacity in terms of number of TV channels that can be broadcast, visual quality of TV channels transmitting different types of video streams, information exchange and interactivity between base station and receivers, among many others. The mobile TV testbed has two parts: a commodity Linux box as the base station and several smart phones as receivers. We have two testbed implementations: (i) FATCAPS base station, and (ii) integrated base station. The former one is based on FATCAPS implementation, while the later one is implemented by us from scratch.



Demo of Burst Transmission in Mobile Multimedia Systems

A software demo that visually illustrates the performance of multiple burst transmission algorithms in mobile multimedia systems. It studies various parameters of each algorithm and their impact on the energy saving of mobile devices as well as the utilization of the wireless bandwidth. The results are based on real traffic traces collected from an operational mobile video streaming system.


pCDN: Peer-assisted Content Distribution Network

This project employs the peer-to-peer (P2P) computing paradigm in designing large-scale content distribution systems. We developed a fully functional and reliable P2P content distribution system, which we call pCDN. pCDN is developed in partnership with the Canadian Broadcasting Corporation (CBC), the largest Internet content provider in Canada. The system is an ongoing project that will provide high-quality multimedia content, support heterogeneous clients, impose minimal load on the expensive inter-ISP links, provide on-demand as well as live streaming services, ensure data integrity, and implement digital rights management, among other features.


pCache: A Proxy Cache for Peer-to-Peer Traffic

As part of our research on modeling and caching of P2P traffic, we have designed and implemented a proxy cache for P2P traffic, which we call pCache. The server is to be deployed by autonomous systems (ASes) or ISPs that are interested in reducing the burden of P2P traffic. Our C++ implementation of pCache has more than 11,000 lines of code. We have rigorously validated and evaluated the performance of pCache as well as its impacts on ISPs and clients. pCache code is released under GPLv3 in two parts: kernel source and application. The Linux kernel consists of all required patches to support transparent proxy, which simplify setting up the required environment. This patched kernel contains code from mainstream Linux kernel, netfilter, tproxy, and layer7switch. The pCache application implements components described above. Moreover, a patched iptables is also provided that takes additional arguments supported by tproxy.



svcAuth

svcAuth is a library for authenticating H.264/SVC video streams. It is released under the GPLv3 license. We have designed an authentication scheme for H.264/SVC streams that supports its full flexibility: it takes into account the coding characteristics of H.264/SVC scalability model and enables verification of all possible substreams. In addition, the proposed scheme is designed for end-to-end authentication of streams. In an end-to-end authentication procedure, a content provider prepares the authenticated video and sends it to receivers, possibly through a third-party Content Delivery Network (CDN) with proxy servers that may need to adapt the flexible video streams. These proxies or any other entity involved in the delivery process do not have to understand our authentication scheme, which is an important advantage.



Socket Direct Protocol (SDP) over PCI Express

In this project we designed and implemented the Socket Direct Protocol (SDP) for PCI Express based fabric. SDP is an efficient data transfer protocol alternative to the TCP that utilizes the advanced features available in high performance interconnects such as direct memory access. Our SDP implementation is designed for PLX PCIe switches and supports only two nodes for now. SDP is compatible with Socket/TCP applications yet provides much better performance. It is developed as a Linux kernel module and has been tested under Redhat Linux 5.7.


  • Developer(s): Ahmed Bu-khamsin (MSc Student, Graduated Fall 2012)
  • Language(s): C
  • More details at project page.


Simulators

PCP: Probabilistic Coverage Protocol

In this project, we consider probabilistic sensing and radio communication models in designing protocols for large-scale sensor networks. Probabilistic models are more realistic in capturing the characteristics of actual sensors than the over-simplified regular disk model.


  • Developer(s): Hossein Ahmadi (M.Sc., Graduated Summer 2007)
  • Language(s): C/C++
  • More details at project page


K-Coverage and its Application to Forest Fire Detection

In this project, we design new algorithms to achieve k-coverage in dense sensor networks. In such networks, covering sensor locations approximates covering the whole area. However, it has been shown before that selecting the minimum set of sensors to activate from an already deployed sensors is NP-hard. We propose an efficient approximation algorithm which achieves a solution of size within a constant factor from the optimal. We are also interested in applying our k-coverage algorithms in designing a wireless sensor network for early detection of forest fires. Forest fires, also known as wild fires, are uncontrolled fires occurring in wild areas and cause significant damage to natural and human resources. Forest fires eradicate forests, burn the infrastructure, and may result in high human death toll near urban areas. In the province of British Columbia alone, there have been 2,590 forest fires during 2006. These burned 131,086 hectares and costed about $156 million. (Source: BC Ministry of Forests and Range.) Wireless sensor networks could help in reducing some of the damages caused by forest fires.


  • Developer(s): Majid Bagheri (M.Sc., Graduated Summer 2007)
  • Language(s): C/C++
  • More details at project page


Live Peer-to-Peer Streaming with Scalable Video Coding and Networking Coding

As part of our research in the area of peer-to-peer video streaming, we have developed a Java-based simulator of a proposed live P2P streaming system that exploits both scalable video coding (SVC) and network coding (NC) to maximize the streaming throughput and handle network dynamics. The proposed system significantly improves the performance of live P2P streaming by addressing many of the challenges impeding current systems. It efficiently utilizes peers resources and easily customizes multimedia content to support receivers with diverse resources and requirements, and quickly adapting to network and peer dynamics.



Efficient Multi-Sender Data Transmission in Swarm-Based Peer-to-Peer Streaming Systems

In this project, we study the problem of scheduling segment transmission in both live and on-demand P2P streaming systems. Our goal is to maximize the perceived video quality by scheduling the segment transmission so that segments that are more critical to video quality improvements are given higher priority to meet their deadlines. We have implemented an event-driven simulator in Java to evaluate the performance of the proposed segment scheduling algorithms. Five scheduling algorithms are implemented in this simulator: rarest-first (RF), min-cost flow (MC) with support for variable-size segments, our proposed unweighted approximation (SSTF) algorithm, our weighted approximation (WSS) algorithm, and optimal (OPT) scheduling using by solving the ILP formulation with the CPLEX ILP solver. The simulator can be used with trace files from the Arizona State University video trace library. A prototype P2P streaming system which incorporates RF, MC, SSTF, and WSS was also implemented for deployment over PlanetLab nodes.


  • Developer(s): Yuanbin Shen (MSc Student, Graduated Summer 2010)
  • Language(s): Java
  • Mode details
  • ReadMe
  • Download Source Code
  • Subversion


Efficient Multimedia Broadcast over Mobile WiMAX Networks

This project studies multimedia services in the emerging WiMAX networks. We look into efficient multimedia broadcast framework over mobile WiMAX networks utilizing the MBS and sleep mode features, in particular, broadcasting multiple scalable video streams to mobile receivers. We study problems like maximizing the quality of video at mobile receivers, minimizing energy consumption at mobile receivers and other related problems. We have implemented a point-to-multipoint WiMAX multimedia broadcast simulator for evaluating our algorithms using actual scalable video traces. For the WiMAX network parameters, we use the 16-QAM modulation scheme with 3/4 convolution turbo coding and 10 MHz channel.