150 likes | 289 Vues
This project, conducted by students at the University of Michigan - Dearborn, presents a comprehensive system overview of a USB tethering solution that enables an Android device to send and receive network traffic within a small LAN. The design is scalable, supporting multiple machines with customizable security features. It operates on unmodified Android devices and Linux computers, maintaining high performance under heavy loads. The system meets key design requirements and incorporates established networking protocols while ensuring reliability and flexibility.
E N D
Christopher Bednarz Justin Jones Prof. Xiang ECE 4986 Fall 2011 http://code.google.com/p/alt-hs/ Android Home Network Department of Electrical and Computer Engineering University of Michigan Dearborn
System Overview Key Features • USB Tethering System: Android Phone & Linux Computer • Scalable for a network configuration • Support for multiple machines • Permanent Network Solution • Easy on the phone • Customizable Security Features • No modifications to Android Phone & Linux Computer • Android 1.5+ Achievements • Fully functional under heavy loads • Network Scalable • No Starvation Limitations • Currently Limited to 512 Open Connection: Limited up to three devices • Maximum Single Request throughput ~ 10%, wide load ~ 40%
Technical problem & Requirements Technical Problem Provide a flexible, secure, and reliable system that enables an Android device to send and receive network traffic for a small LAN Design Requirements • Unmodified Android Device and Linux Computer • Routing capable • USB Interface • Support the major protocols: • TCP, UDP, ICMP • Scalable customizable security features • High-speed
Technical specifications Minimum Operating System Specifications • Routing Computer: 1GHz, 64 MB Ram, 64 MB Space, Linux 2.6, NICs, USB 2.0, switch (optional) • Android Device: 64MB Ram, 20 MB Storage, Android 1.5+, Data / Tethering Services Performance Specifications • Maximum cellular throughput: 95% • Maintain enough connectivity for up to 4 machines • Fully Functional, Stable System Standards • Router Development: POSIX C API: Threading, Sockets, Portability • Phone Development: Java, Android/Dalvik API • Network Protocols: IPv4, TCP, UDP, ICMP • Network Interfaces: IEEE 802.11, IEEE 802.3 (Ethernet), USB 2.0
subsystems • Interface Tasks (Chris) • Tunnel to Router Interface: Hook Traffic into router program • Phone to Router USB Interface: Controlled Socket link between phone and router • Router Tasks (Chris) • TCP Implementation: TCP to Application Converter • UDP/ICMP Implementation: UDP/ICMP to Application Converter • Phone Tasks (Chris & Justin) • TCP Implementation: Socket Channel Connection • UDP/ICMP Implementation: Datagram Channel Connection • Integration (Chris) • Debugging, Validation & Verification • Optimization
Design Criteria Internet/Transport Features • Protocol Selection: IPv4, TCP, UDP, ICMP • Alternatives: IPv6, DCCP, SCTP, RSVP, ECN, etc. • Constraints: • IP Fragmentation • ICMP message types • Client connections only TCP Features • TCP Options: MSS • Alternatives: Timestamp, SACK, Window Scaling
Design Criteria System Optimization (Phone) • Open Connections Maintained Single SuperThread • Alternatives: Dynamic Thread Allocation, Thread Pool • Idle Connection lifetime, TCP: 20 seconds, UDP 5 seconds • Alternatives: Unlimited lifetime, Very Low lifetime • USB interface dedicated thread • Constraints: limited open connections to 512
Test Results of each subsystem, overall Results and performacnes, compare with specs, list those that were not met