android home network
Post on 12-Jan-2016
23 Views
Preview:
DESCRIPTION
TRANSCRIPT
ANDROID HOME NETWORK
Christopher Bednarz
Justin Jones
Prof. Xiang
ECE 4986 Fall 2011
http://code.google.com/p/alt-hs/
Department of Electrical and Computer Engineering
University of Michigan Dearborn
SYSTEM OVERVIEWOverview/Features USB Tethering System: Android Phone & Linux Computer Unique: Scalable for a network configuration
Support for multiple machines Permanent Network Solution
Easy on the phoneCustomizable 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 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
1. Unmodified Android Device and Linux Computer
2. Routing capable
3. USB Interface (Phone/Router)
4. Support the major protocols: TCP, UDP, ICMP
5. Scalable customizable security features
6. FAST
TECHNICAL SPECIFICATIONSMinimum 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
Interface Tasks (Chris)Tunnel to Router Interface: Hook Traffic into router
programPhone 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 & VerificationOptimization
SUBSYSTEMS
DESIGN CRITERIA
Internet/Transport FeaturesProtocol Selection: IPv4, TCP, UDP, ICMP
○ Alternatives: IPv6, DCCP, SCTP, RSVP, ECN, etc.Constraints:
○ NO IP Fragmentation○ Client connections only
TCP FeaturesTCP Options: MSS Support ~ 1460 byes vs. 536
○ Alternatives: Timestamp, SACK, Window Scaling
DESIGN CRITERIASystem Optimization (Phone)
Open Connections Maintained Independent Threads (Thread Pool)○ Alternatives: Dynamic Thread Allocation, Single
ThreadedResource Limitation: limited open connections to
512Idle 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
Application to Network Conversion
HIGH LEVEL DESIGN
INTERFACE DESIGNTunnel Interface Tunnel Driver (Linux 2.6+)
Intercept Internet TrafficMust 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
General Convert Packets to Simple Commands for phone to process Convert Simple Commands to Packets for Network Consumption
TCP Emulation Reliability tradeoff Complex 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
ROUTER DESIGN: TCP/UDP/ICMP EMULATION
Network Traffic
TCP Header
IPv4 Header
Data
Lookup Table
Android Device
Command
Data
PHONE DESIGN
RESULTSRouter 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
QUESTIONS
BACKUP
Router Abstract Tester
Simplified VHL Design
Tunnel Interface Structure
Source/Destination Computer
WLAN / ETH
Router, Kernel Mode
User Mode Program
TUN
Router, User Mode
IPTables (Firewall)
Phone/Router Interface
User Mode Program
ADB/USB
Android Program
Internet
Cell Phone
top related