Background Kickass is a transport layer congestion control mechanism. Uses IP fragmentation to enable communication between routers and end points. Designed to operate well alongside TCP. Currently only a proof-of-concept implementation exists.
Project Goals Develop an improved end point implementation of Kickass. – C, Linux kernel programming Provide more reliable and stable implementation of the system. Explore practical improvements that could be made to the design.
Deliverables Compiling and working with existing version (4/21) Full outline of implementation plan in the kernel (5/12) New receiver operating on network testbed (End of quarter)
Background Since the last mile is a common bottle-neck its a reasonable to place a Kickass router as the home router. Implementing Kickass in a manner that would allow easy install would greatly improve usability. DD-WRT offers a convenient Linux-Based method of controlling routers.
Project Goals Implement the Kickass router protocol for DD-WRT open source firmware. – C Explore the challenges of operating Kickass in a wireless environment. – Limited resources, limited computing power
Deliverables Compile current version of DD-WRT and flash to router (4/21) Initial module design for constraints of the router (5/12) Working prototype of Kickass DD-WRT kernel module (End of quarter)
Background Current benchmarks are manual and ad-hoc, requiring significant manual interaction. Improved benchmarks would allow improved further study. – Reproducibility – Variety (i.e. could explore more designs) – Ease-of-use
Project Goals Develop automated benchmark suite to test network performance in different scenarios – C, Python Explore scenarios that would be worth testing (ie explore the strengths and weaknesses of the protocol). Generate various traffic models and evaluate performance.
Deliverables Develop basic outline of benchmarking model (4/21) Develop extensible framework for implementing benchmarking and performance comparisons (5/12) Final system including a handful of working benchmarks (End of Term)
Background Synthoid is a privacy tool which performs automated browsing in order to pollute user ad profiles Currently only implemented in desktop operating systems Would be extremely valuable in mobile (Android in particular)
Project Goals Improve on previous proof of concept. Develop solutions to remaining challenges in the mobile environment. – Power usage – User experience – Data size limitations
Deliverables A tool to perform arbitrary programatic browsing on Android (4/21) Add topic selection and complete browsing patterns (5/12) Working prototype of mobile system (End of Term)
Background Search engines employ high levels of search personalization based on user history. The Synthoid model of generating false history stands to be effective in such a scenario. Search offers fresh challenges (feedback, generating meaningful queries).
Project Goals Develop a system which allows measurement of user profile without explicit information from the search provider. Allow users to audit the profiling done by the search engine. – Improve existing obfuscation techniques. Understand what information is being used about a user.
Deliverables Mechanism to measure differences in search results (4/21) Profile Construction scheme to build the observed profile (5/12) Prototype of the working system (end of term)
Background Modern web services use CDN for traffic delivery Performance from different CDN providers is not transparent How can we evaluate the performance of CDNs? Different web services? Different locations? Different content type? HTTP vs. HTTPS?
Project Goals Focus on HTTP(S) requests CDN performance evaluation over different parameters Locations Edge server selection Unstable environment (high package lost)
Deliverables A tool to record the CDN provider performance Input: HTTP(S) request log Output: CDN provider name, IP, responding time, and etc. Analysis of CDN performance Different locations, time, edge server, etc; Redundant requests to multiple servers;
Milestones Mid-Term: Collecting test data Get testing environment ready PlanetLab End-Term: Analysis results
Background Chromium (Chrome): open source browser Web pages are getting more complex There might be hundreds of requests triggered by a single page; Protocols: DNS, HTTPS, SPDY, WebSockets… How to optimize the web page performance from different scenarios? From laptop/mobile devices? From cable/mobile Internet?
Project Goals Focus on web pages Build the tools for browsers Log the DNS, HTTP(S) performance when loading a web page
Deliverables A Chrome plugin to log web page performance: timing details WProf Runnable browser for Linux/Android Web page performance analysis results Top websites Random websites
Milestones Compiled Chrome for Linux (4/21) Compiled Chrome for Linux (5/12) End-Term: Test data generation Analysis results
Background Accessing mobile Internet (3G/4G) is getting more popular However, TCP is not particular designed for mobile environment: High lost rate Unstable throughput Broken connections
Project Goals Focus on TCP performance under mobile environment Build the tools for TCP analysis Ruby/Python for log analysis Analysis with simulation and real world test What is the main reason for slow mobile performance? Is there an easy way to fix the problem?
Deliverables Tools to analysis TCP performance Scripts for tcpdump Runnable scripts for linux/andriod Ruby/Python/Java Selenium for browser automation
Milestones Scripts for Linux (4/21) Scripts for Android (5/12) End-Term: Test data generation Analysis results