1 / 22

Android Home Network

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

kert
Download Presentation

Android Home Network

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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 heavy loads • Network Scalable Limitations • Currently Limited to 256 Open Connection: Limited up tofour devices • Maximum Cellular throughput ~ 50%

  3. 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

  4. 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

  5. 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

  6. 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

  7. Design Criteria System Optimization (Phone) • Open Connections Maintained Single Connection Manager Thread • Alternatives: Dynamic Thread Allocation, Thread Pool • Resource Limitation: limited open connections to 256 • Idle Connection lifetime, TCP: 20 seconds, UDP 5 seconds (Limited Connections) • Alternatives: Unlimited lifetime, Very Low lifetime

  8. Network Request User Mode Program Network to Application Conversion Phone Socket/Datagram Time  High level design Application to Network Conversion

  9. 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

  10. 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

  11. Network Traffic Lookup Table IPv4 Header TCP Header Data Command Data Android Device

  12. Phone design General • Pre-allocated Thread Pool: limit allocation overhead • Maintain a table that stores state/connection information • Timers maintained to eliminate idle connections Emulation • TCP • Non-blocking Socket Channel • Data had to wait until ACK command • Persist timer held, in case of potential deadlock • UDP: Non-blocking Datagram Channel • ICMP: isReachable • Received data appended the data received command • If no command ready or data not on channel, thread sleeps to allow other threads to be processed • Phone notifies router of any errors, and flushes commands from the failed connection (sync to router)

  13. 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 ~ 50% • Limited throughput utilizing Java/Dalvik sockets/datagram 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

  14. Conclusions Conclusions • Functional system, cellular optimization could lead to great potential • Performance limited by Java socket/datagram implementation • Security Improvements, Network flexibility of the Linux OS Improvements: • Possibly port to Windows Server for those interested • Provide an interactive GUI

  15. Acknowledgments Faculty Advisor: Professor Xiang Coordinator: Professor Miller

  16. Questions

  17. backup

  18. Router Abstract Tester

  19. Simplified VHL Design

  20. Source/Destination Computer Router, Kernel Mode WLAN / ETH IPTables (Firewall) TUN Router, User Mode User Mode Program Tunnel Interface Structure

  21. User Mode Program ADB/USB Cell Phone Android Program Internet Phone/Router Interface

More Related