170 likes | 317 Views
BlueTorrent: P2P Application Using Bluetooth. Sewook Jung and Alex Chang Network Research Lab. UCLA. Outline. Problem Statement Measurement Setup Hardware Software Experiments Simulation Conclusion. Problem Statement.
E N D
BlueTorrent: P2P Application Using Bluetooth Sewook Jung and Alex Chang Network Research Lab. UCLA
Outline • Problem Statement • Measurement Setup • Hardware • Software • Experiments • Simulation • Conclusion
Problem Statement • Recently, in PerCom’07, we have describe the possibility of Bluetooth-based content sharing • Sharing small size audio/video ad files (<10MB) • Through digital billboards on the street with BT-APs. • Motivation • High penetration rate of Bluetooth devices (cell phones and PDA) – energy efficient • Mobile user must go/stop/wait for full download • The bandwidth of AP is limited • The server range of AP is short (less than 10 meters) • Due to obstacles (humans), channel is error-prone • Goal: provide an “effective” content sharing mechanism for Bluetooth users
Measurement Setup- Hardware Part • Laptops • Dell Latitude D610 Pentium M 770 (2.00GHz) 512MB RAM • PDA – iPaq 3870 • 206MHz StrongArm processor • 64MB RAM, 32MB Flash ROM • Built-in bluetooth – v1.1 CSR • Bluetooth Dongles • http://www.holtmann.org/linux/bluetooth/features.html • Belkin F8T003v – v1.1 CSR • Belkin F8T013V – v2.0EDR Broadcom • Belkin F8T012V – v2.0EDR Broadcom (Class 1) • Kensington 33348 – v2.0EDR Broadcom • Bluetake BT009Si – v1.2 – Silicon Wave
S/W specification • Basic measurement tool • Platform: BlueZ v3.7, C language • Master: • hci_inquiry() and discover peers • Check COD (class of device) of each peer • Try to connect a peer through L2CAP sockets • Send dummy data to the slave node • Slave: • Initially, inquiry scan mode • Setup a server (listen) for a potential connection • If there’s a connection, start receiving data
S/W specification • P2P-Mode • Two parts: peer discovery, connection • AP as a master node • Laptop/PDA periodically change their roles • Random role selection: 1) startup 2) after connection reset • Master: hci_inquiry() + connect() (How long?) • Slave: listen() (fixed) MASTER MASTER SLAVE SLAVE Time hci_inquiry() Connect Listen (inq-scan) Application Layer T_inq CONNECT_TIMEOUT ACCEPT_TIMEOUT = T_inq_scan Tperiod Connect: if there’s a node to connect
S/W specification • Usage() • -r role: master, slave, p2p • -d send size : size in bytes to send in each send api call (<64KB) • -o pageto : page timeout - 1 slot = 0.625 ms, eg : 8000 slots = 5000 ms • -s inquiry scan window/interval (unit=slot) e.g., 18:512 <=> 11ms:320ms • -p page scan window/interval (unit=slot) e.g., 18:512 <=> 11ms:320ms • -t packet type: DM3 DM5 DH3 DH5 HV2 HV3 EDR: 2-DH3 2DH5 3-DH3 3-DH5 • -c class of device: 24bit Hex code: 3e0100 • -i inquiry length (unit 1.28s): 5 <=> 5*1.28s • -a accept timeout (unit 1s): eg. 10s • -l log level: default (2) verborse, 1 concise • Sample Data • INFO: Log level, timestamp, I(info), TPL, LQ, RSSI, AFH(2:non, 1:yes, 0:no) • DATA: Log level, timestamp, D(data), received data (for 0.5s), total data received so far • Ex) • 1 1164157164.44 D 12000 9518400 • 1 1164157164.48 I 2 136 0 2 • 1 1164157164.73 I 2 137 0 2 • 1 1164157165.6 D 12000 9530400 • With this program, we also need to use hcidump • hcidump data |grep dlen | awk '{"date +%s" | getline D; print D, $9; close("date +%s")}'
Experiment Setup • Experiment #1 • Ackerman union • Experiment #2 • Various places in UCLA • BT Dongles (somehow all different chipmakers) • BT 1.1 CSR (class 2) • BT 1.2 Silicon Wave (class 2) • BT 2.0 Broadcom (class 1 & 2)
Experiment #1 • Real environment test. • Ackerman Union • Speed 1 m/s (5 meter marks) • Use stop-watch • BT 1.1 1.1 • BT 2.0 2.0 master slave 60M
Experiment #1 • Real Env. Result BT 1.1 1.1 BT 2.0 2.0
Experiment #2 • Distributed BT discovery • Scan software cooperatively discover and connect peers passing by! • usage: ./scan <mode:1/2> <inq len: n*1.28s> • mode 1: compact print, 2: verbose print • inq len: how man inquiries? (1.28s ea) • ex) ./scan 1 8 • Log Format: • Log, Timestamp, BDADDR, COD, LMP Version, Company #, Readable COD • Example: • 1 6362.35 00:0F:DE:4B:5A:20 520204 1.1 37 Phone Cellular • 1 6363.64 00:0B:0D:0C:53:34 211112 1.2 11 - - • 1 6370.13 00:16:FE:90:77:F0 3e0100 2.0 10 Computer Uncategorized • 1 6371.33 00:02:C7:09:7E:23 120112 1.1 10 Computer Handheld • 1 6372.93 08:00:46:E0:17:C5 3e0100 1.2 10 Computer Uncategorized • 1 6373.30 00:0A:3A:53:27:28 211111 1.1 10 - - • 1 6373.48 D 00:0A:3A:53:27:28 211111 (D: Duplicated) • Many devices allow to create connections w/o authentication.. (security implication..)
Experiment #2: Scanning Results • Nov 29/30 scanning inside the campus • Bruin walk, student center (Ackerman), library • 402 distinct devices found • 75% (300 devices) allow connections • No authentication at all!! • General over various devices • Bluetooth LMP version information was read from remote devices (after connection) • LMP version is almost equivalent to Bluetooth version • Makers: CSR, Broadcom, Philips, TI, Qualcomm, Silicon Wave, Errison, Nokia BT LMP version distribution
Design/Implementation of BT • Data sharing with coding schemes • Network coding • Rateless coding (digital fountain) • Energy-efficient P2P mode • Initially nodes are all scan mode (slave) • APs are all MASTERS. • Nodes in scan mode can be connected to the AP, and they turn on P2P mode • These P2P nodes can in turn activate other peers • Inquiry/Scan intervals are dynamically adjusted if there’s not enough contacts • i.e., less contacts, more inquiry scan (slave) • Thus, P2P mode is only activated nearby AP (i.e., social orbit-style; or bazaar concept)
Simulations- Protocol setting • Inquiry • Every Bluetooth Node has a alternately do inquiry and inquiry scan • AP always do inquiry • Connection • When Inquiry node founds the other node, it connects found node • Inquiry node becomes master node and inquiry scan node becomes slave node • If connection is not helpful (there is no data to transfer for both direction), master disconnects connection • If connection is disconnected, master connects other nodes which are detected by inquiry
Simulations- Protocol setting • Data Transfer • Normal Data Transfer • Exchange segment map (shows list of current segments) • make Helpful data list • Randomly choose one segment from Helpful data list • Network Coding Data Transfer • Encode Code Block • Transfer Code Block • If received Code Block is helpful, decode received Code Block • Rateless Coding Data Transfer • Encode Code Block beforehand • make Helpful data list • Randomly choose one segment from Helpful data list • Disconnection
Conclusion • We characterize and measure the Bluetooth-based content sharing system • Show that P2P in mobile environments is feasible. (download several mega bytes for EDR, and 0.5M) • We also showed that understanding characteristics of different BT versions and their compatibility is important • To maximize the performance in a dynamic environment we presented/evaluated • Coding techniques • Adaptive p2p mode