Difference between revisions of "Software"
(3 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
--> | --> | ||
* [https://cs-git-research.cs.surrey.sfu.ca/nsl/MobileVideo/DVB-H/tree/master/code/testbed/trunk Browse source code (Login required)] | * [https://cs-git-research.cs.surrey.sfu.ca/nsl/MobileVideo/DVB-H/tree/master/code/testbed/trunk Browse source code (Login required)] | ||
+ | |||
=== Demo of Burst Transmission in Mobile Multimedia Systems === | === Demo of Burst Transmission in Mobile Multimedia Systems === | ||
Line 29: | Line 30: | ||
* [[TestApplet | Online Demo (Java Applet)]] | * [[TestApplet | Online Demo (Java Applet)]] | ||
--> | --> | ||
+ | |||
=== Demo for Hybrid Multicast-Unicast Streaming in Mobile Multimedia Systems === | === Demo for Hybrid Multicast-Unicast Streaming in Mobile Multimedia Systems === | ||
Line 34: | Line 36: | ||
An interactive software demo that visually illustrates the performance of our hybrid unicast-multicast streaming algorithm in mobile multimedia systems. | An interactive software demo that visually illustrates the performance of our hybrid unicast-multicast streaming algorithm in mobile multimedia systems. | ||
It considers multiple cells that can form single frequency networks (SFNs). It analyzes the impact on the service ratio and energy saving when the hybrid streaming algorithm is used. Different user distributions and video popularity functions can be used. | It considers multiple cells that can form single frequency networks (SFNs). It analyzes the impact on the service ratio and energy saving when the hybrid streaming algorithm is used. Different user distributions and video popularity functions can be used. | ||
− | |||
* '''Developer(s):''' Bahaa Mansour | * '''Developer(s):''' Bahaa Mansour | ||
Line 42: | Line 43: | ||
* Sample input file can be found [http://nsl.cs.sfu.ca/projects/nfsg/input.txt here] | * Sample input file can be found [http://nsl.cs.sfu.ca/projects/nfsg/input.txt here] | ||
--> | --> | ||
+ | |||
=== pCDN: Peer-assisted Content Distribution Network === | === pCDN: Peer-assisted Content Distribution Network === | ||
Line 52: | Line 54: | ||
* [[pCDN:Installation | Installation instructions]] | * [[pCDN:Installation | Installation instructions]] | ||
* [[pCDN:Release|Latest Released Version]] | * [[pCDN:Release|Latest Released Version]] | ||
+ | <!-- | ||
* Subversion | * Subversion | ||
* ''Bug Tracking and Feature Suggestion System at: [http://nsl.cs.sfu.ca/bug/ Bugzilla]. | * ''Bug Tracking and Feature Suggestion System at: [http://nsl.cs.sfu.ca/bug/ Bugzilla]. | ||
+ | --> | ||
Line 59: | Line 63: | ||
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 [http://www.gnu.org/licenses/gpl-3.0.txt 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 [http://www.kernel.org/ mainstream Linux kernel], [http://www.netfilter.org/ netfilter], [http://www.balabit.com/support/community/products/tproxy/ tproxy], and [http://www.linux-l7sw.org/ layer7switch]. The pCache application implements components described above. Moreover, a patched iptables is also provided that takes additional arguments supported by [http://www.balabit.com/support/community/products/tproxy/ tproxy]. | 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 [http://www.gnu.org/licenses/gpl-3.0.txt 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 [http://www.kernel.org/ mainstream Linux kernel], [http://www.netfilter.org/ netfilter], [http://www.balabit.com/support/community/products/tproxy/ tproxy], and [http://www.linux-l7sw.org/ layer7switch]. The pCache application implements components described above. Moreover, a patched iptables is also provided that takes additional arguments supported by [http://www.balabit.com/support/community/products/tproxy/ tproxy]. | ||
− | |||
* '''Language(s):''' C/C++ | * '''Language(s):''' C/C++ | ||
Line 68: | Line 71: | ||
** pCache Snapshot [[media:pCache-0.0.1.tgz | pCache-0.0.1.tgz]] | ** pCache Snapshot [[media:pCache-0.0.1.tgz | pCache-0.0.1.tgz]] | ||
** iptables (patched for additional arguments) [[media:iptables-1.4.0rc1.tgz | iptables-1.4.0rc1.tgz]] | ** iptables (patched for additional arguments) [[media:iptables-1.4.0rc1.tgz | iptables-1.4.0rc1.tgz]] | ||
− | * | + | ** [https://cs-git-research.cs.surrey.sfu.ca/nsl/P2P/p2pCache/tree/master/code/trunk Browse source code (Login required)] |
=== Detection of SIP Botnets === | === Detection of SIP Botnets === | ||
A botnet is a group of compromised computers (called ''bots'') controlled by remote attackers to perform various malicious activities and launch cyber attacks. Botnets can be deployed on top of different protocols, one of which is the Session Initiation Protocol (SIP). SIP is widely used to initiate voice over IP, and it has been adopted by the telecommunications standards bodies to be the signaling protocol for mobile telecommunication core networks. Botnets deployed over the SIP present a serious threat for the Internet. We designed and implemented an online detection system which can detect SIP botnets at early stages even before they initiate any malicious activities. The system does not rely on the structure of the Command and Control channel of the bonnet. Thus, it works for centralized and distributed botnets. In addition, our system does not use the contents of the SIP messages, which makes it not limited to specific botnet implementations. | A botnet is a group of compromised computers (called ''bots'') controlled by remote attackers to perform various malicious activities and launch cyber attacks. Botnets can be deployed on top of different protocols, one of which is the Session Initiation Protocol (SIP). SIP is widely used to initiate voice over IP, and it has been adopted by the telecommunications standards bodies to be the signaling protocol for mobile telecommunication core networks. Botnets deployed over the SIP present a serious threat for the Internet. We designed and implemented an online detection system which can detect SIP botnets at early stages even before they initiate any malicious activities. The system does not rely on the structure of the Command and Control channel of the bonnet. Thus, it works for centralized and distributed botnets. In addition, our system does not use the contents of the SIP messages, which makes it not limited to specific botnet implementations. | ||
− | |||
* '''Developer(s):''' Mohammad Al-Kurbi | * '''Developer(s):''' Mohammad Al-Kurbi | ||
* '''Language(s):''' Java | * '''Language(s):''' Java | ||
+ | <!-- | ||
* [http://nsl.cs.sfu.ca/projects/sip-botnet/sip-botnet.tar.gz Download Source Code] | * [http://nsl.cs.sfu.ca/projects/sip-botnet/sip-botnet.tar.gz Download Source Code] | ||
+ | --> | ||
* Other requirements: [http://www.opensips.org openSIPS], [http://www.mysql.com MySQL], [https://www.snort.org Snort], and [http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5342244 autosip] | * Other requirements: [http://www.opensips.org openSIPS], [http://www.mysql.com MySQL], [https://www.snort.org Snort], and [http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5342244 autosip] | ||
+ | <!-- | ||
* Experiments guidelines can be found [http://nsl.cs.sfu.ca/projects/sip-botnet/Experiment-Guidelines.pdf here] | * Experiments guidelines can be found [http://nsl.cs.sfu.ca/projects/sip-botnet/Experiment-Guidelines.pdf here] | ||
+ | --> | ||
Line 85: | Line 91: | ||
svcAuth is a library for authenticating H.264/SVC video streams. It is released under the [http://www.gnu.org/licenses/gpl-3.0.txt 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. | svcAuth is a library for authenticating H.264/SVC video streams. It is released under the [http://www.gnu.org/licenses/gpl-3.0.txt 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. | ||
− | |||
* '''Developer(s):''' Kianoosh Mokhtarian (MSc Student, Graduated Summer 2009) | * '''Developer(s):''' Kianoosh Mokhtarian (MSc Student, Graduated Summer 2009) | ||
* '''Language(s):''' Java | * '''Language(s):''' Java | ||
* More details at [[Security_of_Scalable_Multimedia_Streams | project page]]. An introduction to svcAuth can be found [[svcAuth | here]]. | * More details at [[Security_of_Scalable_Multimedia_Streams | project page]]. An introduction to svcAuth can be found [[svcAuth | here]]. | ||
+ | <!-- | ||
* [http://nsl.cs.sfu.ca/projects/svcAuth/readme.txt ReadMe] | * [http://nsl.cs.sfu.ca/projects/svcAuth/readme.txt ReadMe] | ||
* [http://nsl.cs.sfu.ca/resources/svcAuth.tar.gz Download Source Code] | * [http://nsl.cs.sfu.ca/resources/svcAuth.tar.gz Download Source Code] | ||
* Subversion | * Subversion | ||
+ | --> | ||
Line 98: | Line 105: | ||
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. | 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) | * '''Developer(s):''' Ahmed Bu-khamsin (MSc Student, Graduated Fall 2012) | ||
* '''Language(s):''' C | * '''Language(s):''' C | ||
* More details at [[pcie_sdp | project page]]. | * More details at [[pcie_sdp | project page]]. | ||
− | |||
− | |||
= '''Simulators '''= | = '''Simulators '''= | ||
Line 111: | Line 115: | ||
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. | 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) | * '''Developer(s):''' Hossein Ahmadi (M.Sc., Graduated Summer 2007) | ||
Line 118: | Line 121: | ||
* ''Implementation of the Probabilistic Coverage Protocol (PCP) in NS-2'' | * ''Implementation of the Probabilistic Coverage Protocol (PCP) in NS-2'' | ||
+ | <!-- | ||
** [http://nsl.cs.sfu.ca/projects/wsn/PCP-NS-README ReadMe] | ** [http://nsl.cs.sfu.ca/projects/wsn/PCP-NS-README ReadMe] | ||
** [http://nsl.cs.sfu.ca/projects/wsn/pcp-ns.tar.gz Download Source Code] | ** [http://nsl.cs.sfu.ca/projects/wsn/pcp-ns.tar.gz Download Source Code] | ||
** Subversion | ** Subversion | ||
− | + | --> | |
* ''Implementation of the Probabilistic Coverage Protocol (PCP) in C++'' | * ''Implementation of the Probabilistic Coverage Protocol (PCP) in C++'' | ||
+ | <!-- | ||
** [http://nsl.cs.sfu.ca/projects/wsn/PCP-SenSim-README ReadMe] | ** [http://nsl.cs.sfu.ca/projects/wsn/PCP-SenSim-README ReadMe] | ||
** [http://nsl.cs.sfu.ca/projects/wsn/PCP-SenSim.tar.gz Download Source Code] | ** [http://nsl.cs.sfu.ca/projects/wsn/PCP-SenSim.tar.gz Download Source Code] | ||
** Subversion | ** Subversion | ||
+ | --> | ||
Line 131: | Line 137: | ||
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. | 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) | * '''Developer(s):''' Majid Bagheri (M.Sc., Graduated Summer 2007) | ||
Line 138: | Line 143: | ||
* ''Implementation of the Centralized Randomized K-Coverage Protocols (RKC) in C++'' | * ''Implementation of the Centralized Randomized K-Coverage Protocols (RKC) in C++'' | ||
+ | <!-- | ||
** [http://nsl.cs.sfu.ca/projects/wsn/rkc_readme.txt ReadMe] | ** [http://nsl.cs.sfu.ca/projects/wsn/rkc_readme.txt ReadMe] | ||
** [http://nsl.cs.sfu.ca/projects/wsn/rkc-1.4.zip Download Source Code] | ** [http://nsl.cs.sfu.ca/projects/wsn/rkc-1.4.zip Download Source Code] | ||
** Subversion | ** Subversion | ||
− | + | --> | |
* ''Implementation of the Decentralized Randomized K-Coverage Protocols (DRKC) in C++'' | * ''Implementation of the Decentralized Randomized K-Coverage Protocols (DRKC) in C++'' | ||
+ | <!-- | ||
** [http://nsl.cs.sfu.ca/projects/wsn/drkc_readme.txt ReadMe] | ** [http://nsl.cs.sfu.ca/projects/wsn/drkc_readme.txt ReadMe] | ||
** [http://nsl.cs.sfu.ca/projects/wsn/drkc-1.6.zip Download Source Code] | ** [http://nsl.cs.sfu.ca/projects/wsn/drkc-1.6.zip Download Source Code] | ||
** Subversion | ** Subversion | ||
+ | --> | ||
Line 151: | Line 159: | ||
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. | 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. | ||
− | |||
* '''Developer(s):''' Shabnam Mirshokraie (MSc Student) | * '''Developer(s):''' Shabnam Mirshokraie (MSc Student) | ||
* '''Language(s):''' Java | * '''Language(s):''' Java | ||
+ | <!-- | ||
* More details | * More details | ||
* [http://nsl.cs.sfu.ca/projects/nc-svc/readme.txt ReadMe] | * [http://nsl.cs.sfu.ca/projects/nc-svc/readme.txt ReadMe] | ||
* [http://nsl.cs.sfu.ca/projects/nc-svc/nc-svc.tar.gz Download Source Code] | * [http://nsl.cs.sfu.ca/projects/nc-svc/nc-svc.tar.gz Download Source Code] | ||
* Subversion | * Subversion | ||
+ | --> | ||
Line 170: | Line 179: | ||
(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 | (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. | 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) | * '''Developer(s):''' Yuanbin Shen (MSc Student, Graduated Summer 2010) | ||
* '''Language(s):''' Java | * '''Language(s):''' Java | ||
+ | <!-- | ||
* Mode details | * Mode details | ||
* [http://nsl.cs.sfu.ca/projects/schedule/ReadMe.txt ReadMe] | * [http://nsl.cs.sfu.ca/projects/schedule/ReadMe.txt ReadMe] | ||
* [http://nsl.cs.sfu.ca/projects/schedule/schedule.tar.gz Download Source Code] | * [http://nsl.cs.sfu.ca/projects/schedule/schedule.tar.gz Download Source Code] | ||
* Subversion | * Subversion | ||
+ | --> | ||
Line 183: | Line 193: | ||
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. | 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. | ||
− | |||
* '''Developer(s):''' Somsubhra Sharangi (MSc Student) | * '''Developer(s):''' Somsubhra Sharangi (MSc Student) | ||
* '''Language(s):''' Java | * '''Language(s):''' Java | ||
* Mode details at [[wimax | project page]] | * Mode details at [[wimax | project page]] | ||
+ | <!-- | ||
* [http://nsl.cs.sfu.ca/projects/streamWiMAX/ReadMe.txt ReadMe] | * [http://nsl.cs.sfu.ca/projects/streamWiMAX/ReadMe.txt ReadMe] | ||
* [http://nsl.cs.sfu.ca/projects/streamWiMAX/sharangi.tar.gz Download Source Code] | * [http://nsl.cs.sfu.ca/projects/streamWiMAX/sharangi.tar.gz Download Source Code] | ||
* Subversion | * Subversion | ||
+ | --> |
Latest revision as of 23:07, 8 August 2021
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.
- Developer(s): Cheng-Hsin Hsu (PhD Student, Graduated Fall 2009)
- Language(s): C/C++
- More details at project page.
- Browse source code (Login required)
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.
- Developer(s): Somsubhra Sharangi
- Language(s): Java
- More details at project page.
Demo for Hybrid Multicast-Unicast Streaming in Mobile Multimedia Systems
An interactive software demo that visually illustrates the performance of our hybrid unicast-multicast streaming algorithm in mobile multimedia systems. It considers multiple cells that can form single frequency networks (SFNs). It analyzes the impact on the service ratio and energy saving when the hybrid streaming algorithm is used. Different user distributions and video popularity functions can be used.
- Developer(s): Bahaa Mansour
- Language(s): Java
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.
- Language(s): Java and C/C++
- More details at project page. An overview of pCDN and its features can be found in this white paper.
- Installation instructions
- Latest Released Version
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.
- Language(s): C/C++
- More details at project page
- A brief description of each component is given in the pCache overview page.
- Download Source Code
- Linux Kernel linux-2.6.23.tgz
- pCache Snapshot pCache-0.0.1.tgz
- iptables (patched for additional arguments) iptables-1.4.0rc1.tgz
- Browse source code (Login required)
Detection of SIP Botnets
A botnet is a group of compromised computers (called bots) controlled by remote attackers to perform various malicious activities and launch cyber attacks. Botnets can be deployed on top of different protocols, one of which is the Session Initiation Protocol (SIP). SIP is widely used to initiate voice over IP, and it has been adopted by the telecommunications standards bodies to be the signaling protocol for mobile telecommunication core networks. Botnets deployed over the SIP present a serious threat for the Internet. We designed and implemented an online detection system which can detect SIP botnets at early stages even before they initiate any malicious activities. The system does not rely on the structure of the Command and Control channel of the bonnet. Thus, it works for centralized and distributed botnets. In addition, our system does not use the contents of the SIP messages, which makes it not limited to specific botnet implementations.
- Developer(s): Mohammad Al-Kurbi
- Language(s): Java
- Other requirements: openSIPS, MySQL, Snort, and autosip
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.
- Developer(s): Kianoosh Mokhtarian (MSc Student, Graduated Summer 2009)
- Language(s): Java
- More details at project page. An introduction to svcAuth can be found here.
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
- Implementation of the Probabilistic Coverage Protocol (PCP) in NS-2
- Implementation of the Probabilistic Coverage Protocol (PCP) in C++
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
- Implementation of the Centralized Randomized K-Coverage Protocols (RKC) in C++
- Implementation of the Decentralized Randomized K-Coverage Protocols (DRKC) in C++
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.
- Developer(s): Shabnam Mirshokraie (MSc Student)
- Language(s): Java
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
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.
- Developer(s): Somsubhra Sharangi (MSc Student)
- Language(s): Java
- Mode details at project page