ANT : A System for Audio Signaling Based NAT Traversal Ashish Patro Yadi Ma Fatemah Panahi Jordan Walker Suman Banerjee Department of Computer Sciences University of Wisconsin-Madison Jan 8, 2011 COMSNETS 2011 Outline Problem Overview of ANT Component Details Evaluation Summary Jan 8, 2011 COMSNETS 2011 Typical NAT scenario Jan 8, 2011 COMSNETS 2011 Typical NAT scenario Problem : Setting up a direct connection between NATed clients across different LANs. Jan 8, 2011 COMSNETS 2011 Scenario Cellular Phones Client B Client A Laptop Jan 8, 2011 COMSNETS 2011 Goal Create a direct end to end connection between any 2 NATed clients. Use no third party intermediate node. Can be used as a building block by applications. e.g. : Direct Transfer of Large Files, Chat etc. Jan 8, 2011 COMSNETS 2011 Issues Identify internal and external IP/port information. Common Solutions : Modify router configuration (Port Mapping), use external relay servers etc. Cumbersome for lay users to deal with NAT traversal Jan 8, 2011 COMSNETS 2011 Solution?? ANT…. A system for Audio signaling based NAT Traversal. Uses an ordinary phone connection as an “out of band” mechanism for NAT traversal. Jan 8, 2011 COMSNETS 2011 Outline Problem Overview of ANT Component Details Evaluation Summary Jan 8, 2011 COMSNETS 2011 ANT in action Client B Client A Step 1 : Setup a phone connection. Jan 8, 2011 COMSNETS 2011 ANT in action Client B Client A Step 1 : Setup a phone connection. Jan 8, 2011 COMSNETS 2011 ANT in action Client B Client A Step 1 : Setup a phone connection. Jan 8, 2011 COMSNETS 2011 ANT in action Internal IP:Port : 10.0.0.3:6000 NAT Router Configuration Info :External IP:Mapped port : 128.32.12.3:54678 Client B Client A Step 2 : A obtains configuration information for NAT traversal from its UPnP enabled router. Jan 8, 2011 COMSNETS 2011 ANT in action NAT Router 10101001…… Client B Client A Step 3 : A encodes configuration data into audio signals. Jan 8, 2011 COMSNETS 2011 ANT in action NAT Router Client B Client A Step 4 : Sound is transferred from A’s laptop to A’s phone, then from B’s phone to B’s laptop. Jan 8, 2011 COMSNETS 2011 ANT in action NAT Router Client B Client A Step 4 : Sound is transferred from A’s laptop to A’s phone, then from B’s phone to B’s laptop. Jan 8, 2011 COMSNETS 2011 ANT in action NAT Router Client B Client A Step 4 : Sound is transferred from A’s laptop to A’s phone, then from B’s phone to B’s laptop. Jan 8, 2011 COMSNETS 2011 ANT in action NAT Router Client B Client A 10101001…… Step 5 : B decodes audio, corrects errors and gets the data back. Jan 8, 2011 COMSNETS 2011 ANT in action NAT Router NAT Router Client B Client A Step 6 : Setup a direct Peer to Peer (P2P) connection. Jan 8, 2011 COMSNETS 2011 Outline Problem Overview of ANT Component Details Evaluation Summary Jan 8, 2011 COMSNETS 2011 ANT Components Port Mapping at Client A. Encoding/decoding audio signals. Synchronizing encoder/decoder. Noise filtering. Error Correction. Jan 8, 2011 COMSNETS 2011 NAT Traversal NATed machines can only make outgoing connections directly. NAT traversal requires internal-external IP/Port Mapping. UPnP helps here. Jan 8, 2011 COMSNETS 2011 UPnP for NAT traversal Standard interface and widely available in Internet Gateway Devices (IGD) for the purpose of mapping ports to clients. Retrieves the external IP address device. Can add/remove port mappings. We use Java Library for UPnP to create a port mapping for ANT. Jan 8, 2011 COMSNETS 2011 Data to Audio Conversion Modulate binary data to audio signals. Keying techniques ASK : Amplitude Shift Keying PSK : Pulse Shift Keying FSK : Frequency Shift Keying We use a technique analogous to FSK. Jan 8, 2011 COMSNETS 2011 Audio Frequencies Human audible frequency range : 20Hz to 20,000Hz. Laptop soundcards work well between 800Hz to 9000Hz. Phone soundcards work well between 1000Hz to 4000Hz. We used the range 1200Hz – 3100Hz. Jan 8, 2011 COMSNETS 2011 Encoding Scheme We group consecutive bits into symbols. Use 1 unique frequency per symbol. Symbol Size = N bits. Unique frequencies required = 2N. Jan 8, 2011 COMSNETS 2011 Encoding Scheme ------- 1200Hz ------- 1230Hz . . . ------- 8820Hz ------- 8850Hz Symbol Size : 8 bits e.g. : 1001011 256 frequencies Jan 8, 2011 COMSNETS 2011 Encoding Scheme ------- 1200Hz ------- 1230Hz . . . ------- 8820Hz ------- 8850Hz Symbol Size : 8 bits e.g. : 1001011 256 frequencies Requires a band of 7650 Hz for 256 unique frequencies separated by 30 Hz. Jan 8, 2011 COMSNETS 2011 Encoding Scheme ------- 1200Hz ------- 1250Hz . . . ------- 1900Hz ------- 1950Hz Symbol Size : 4 bits e.g. : 1001 16 frequencies Easily fits within the frequency band available. Jan 8, 2011 COMSNETS 2011 Synchronization Problem : - Detect start and end of the audio transmission. Jan 8, 2011 COMSNETS 2011 Synchronization Problem : - Detect start and end of the audio transmission. Solution : - Use a preamble/postamble for each transmission. Jan 8, 2011 COMSNETS 2011 Synchronization Detect start of transmission. Similar to “preamble” in wireless networks. Also used to infer timing information. 2 synchronization frequencies for start. 1 synchronization frequency for end. Jan 8, 2011 COMSNETS 2011 Synchronization Jan 8, 2011 COMSNETS 2011 Synchronization Jan 8, 2011 COMSNETS 2011 Synchronization Jan 8, 2011 COMSNETS 2011 Synchronization Jan 8, 2011 COMSNETS 2011 Distinguish Consecutive Symbols Consecutive symbols can be same. Need to distinguish between them. One solution : Use a separation beep. Problem : Halves the data rate. Jan 8, 2011 COMSNETS 2011 Distinguish Consecutive Symbols Our Solution : Use two non-overlapping frequency bands. Transmit consecutive symbols in alternating bands. Much easier to decode symbols. ANT uses two separate bands of 16 frequencies (< 2000 Hz). Jan 8, 2011 COMSNETS 2011 Decoding Audio Symbols Synchronization to detect start of transmission. Fast Fourier Transform (FFT) on captured audio samples. Noise Filtering : Discard noise away from relevant frequencies (F – 15Hz to F + 15Hz) and below certain amplitude. Jan 8, 2011 COMSNETS 2011 Error Correction Handle errors/erasures during transmission/reception. ANT uses Forward Error Correction (FEC). FEC avoids a back-channel. ANT uses Reed-Solomon codes in GF(16). Jan 8, 2011 COMSNETS 2011 Putting the pieces together… Use UPnP to setup a port mapping at Client A. Client A transmits mapping via the out-ofband audio channel to Client B. Client B decodes audio signals to obtain mapping. Client B connects to Client A. Jan 8, 2011 COMSNETS 2011 Putting the pieces together… NAT Router NAT Router Client B Client A Jan 8, 2011 COMSNETS 2011 Other applications of ANT Password Transfer. Product Key exchange. Jan 8, 2011 COMSNETS 2011 Outline Problem Overview of ANT Component Details Evaluation Summary Jan 8, 2011 COMSNETS 2011 Evaluation Tested ANT with a variety of devices (laptops, phones). Environments No or Light Noise : Quiet Conference Room. Medium Noise : Offices, homes. Heavy Noise : Compute Lab (Background noise). Jan 8, 2011 COMSNETS 2011 Experiment 1 Clients A and B are in quiet environments. Used different combinations of phones. Tested ANT 4-6 times for each combination. Reported the overall success rate. Jan 8, 2011 COMSNETS 2011 Results : Experiment 1 Jan 8, 2011 COMSNETS 2011 Results : Experiment 1 - ANT performed really well in the presence of little or no noise. - Failures occurred due to a bad speaker in the Sony phone. Jan 8, 2011 COMSNETS 2011 Experiment 2 First client is a heavy noise environment. Second client in a light/medium noise environment. Jan 8, 2011 COMSNETS 2011 Results : Experiment 2 Jan 8, 2011 COMSNETS 2011 Results : Experiment 2 - Errors/erasures caused by noise cause a few failures. - Success rate still above 66% in all cases. Jan 8, 2011 COMSNETS 2011 Experiment 3 (Speak Test) Human speakers present near laptop with 4 scenarios : Scenario Client A Client B Scenario 1 (S1) Speaking with soft voice Quiet, no/light background noise Scenario 2 (S2) Speaking with loud voice Quiet, no/light background noise Scenario 3 (S3) Speaking with soft voice Quiet, heavy background noise Scenario 4 (S4) Speaking with loud voice Quiet, heavy background noise Jan 8, 2011 COMSNETS 2011 Results : Experiment 3 Jan 8, 2011 COMSNETS 2011 Results : Experiment 3 - Human voice causes some problems for ANT. - 2-3 attempts enough to establish a connection in most cases. Jan 8, 2011 COMSNETS 2011 Playing Background Music… Cause major problems to ANT. Music generates a vast range of frequencies. Interferes with ANT by inserting spurious symbols into audio transmissions. Causes problems for the decoder. Jan 8, 2011 COMSNETS 2011 Outline Problem Overview of ANT Component Details Evaluation Summary Jan 8, 2011 COMSNETS 2011 Summary UPnP is easily available and provides a standard interface for port mapping. Short Audio transmission (few seconds). Out-of-band audio mechanism for NAT traversal works well is most scenarios. Can also use audio mechanism for short, robust and secure data transmissions. Jan 8, 2011 COMSNETS 2011 ANT Demo. A demo video demonstrating ANT is available at :http://www.cs.wisc.edu/wings/projects/ant Link also available in the paper. Jan 8, 2011 COMSNETS 2011 Thank you. Questions ? Jan 8, 2011 COMSNETS 2011