220 likes | 316 Views
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. Overview/Features
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 Overview/Features • USB Tethering System: Android Phone & Linux Computer • Unique: 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 moderately heavyloads • Network Scalable Limitations • Currently Limited to 512 Open Connection: Limited up to three devices • Maximum Cellular throughput ~ 10%
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 (Phone/Router) • Support the major protocols: • TCP, UDP, ICMP • Scalable customizable security features • FAST
Technical specifications Minimum 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/Subscription 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/Dalvik JVM, Android API • Network Protocols: IPv4, TCP, UDP, ICMP • Network Inter: 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/UDP/ICMP Implementation: TCP/UDP/ICMP to Application Converter • Phone Tasks (Chris & Justin) • TCP/UDP/ICMP Implementation: Socket/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: • NO IP Fragmentation • Client connections only TCP Features • TCP Options: MSS Support ~ 1460 byes vs. 536 • Alternatives: Timestamp, SACK, Window Scaling
Design Criteria System Optimization (Phone) • Open Connections Maintained Independent Threads (Thread Pool) • Alternatives: Dynamic Thread Allocation, Single Threaded • Resource Limitation: limited open connections to 512 • Idle Connection lifetime, TCP: 20 seconds, UDP 5 seconds (Limited Connections) • Alternatives: Unlimited lifetime, Very Low lifetime
Network Request User Mode Program Network to Application Conversion Phone Socket/Datagram Time High level design Application to Network Conversion
Interface design Tunnel Interface • Tunnel Driver (Linux 2.6+) • Intercept Internet Traffic • Must be: started, setup/configured, obtained • Dedicated Thread: Non-blocking Read/Writes • Raw Buffers stored into a BufferQueue Phone/Router USB Interface • Android Debugging Bridge Features: • Converts USB signals into a network socket • Phone/Router: Dedicated threads: read into a BufferQueue, processed in respective programs
Router Design: TCP/UDP/ICMP Emulation General • Convert Packets to Simple Commands for phone to process • Convert Simple Commands to Packets for Network Consumption TCP Emulation • ReliabilitytradeoffComplex • Must maintain State diagram: • 3 – Way Handshake (Connection Establishment) • Data Transfer • 4 – Way Handshake (Connection Termination) • Flow Control • Track Sequence Numbers • Sliding Window Sized limited to 40 MSS ~ 57KB UDP/ICMP Emulation • No Reliability, Simple Design • Stateless: Send or Receive Data, phone handles connectivity
Network Traffic Lookup Table IPv4 Header TCP Header Data Command Data Android Device
Results Router • Abstract Tester: • Phone command emulator, allowed testing of the router implementation • ~ 98% of Maximum Data Throughput (Fast Computer) Phone • Thread Pool Model maximum throughput ~ 10% • 512 Open Connections == 512 Open Threads: Dalvkim JVM not efficient • Estimated Support no more than 3 machines Overall • System stable even under heavy loads • No port-mapping correlation, indirectly very secure form of NAT • Very Difficult to debug • Some redundancy between the phone and router
Conclusions Conclusions • Functional system, cellular optimization could lead to great potential • Poor Threading Performance, Android not ready for server level apps • Security Improvements, Network flexibility of the Linux OS Improvements: • Move to a single Super thread for cellular sockets • Possibly port to Windows Server for those interested • Provide an interactive GUI
Acknowledgments Faculty Advisor: Professor Xiang Coordinator: Professor Miller
Source/Destination Computer Router, Kernel Mode WLAN / ETH IPTables (Firewall) TUN Router, User Mode User Mode Program Tunnel Interface Structure
User Mode Program ADB/USB Cell Phone Android Program Internet Phone/Router Interface