proxawdl
proxawdl copied to clipboard
Tunnels a regular TCP connection through an AWDL link by exploiting the NetService API
proxAWDL
Tunnels a regular TCP connection (e.g., iperf) through an AWDL link by exploiting the NetService API. ~~Workaround because Apple prevents regular sockets from listening or connecting to awdl0.~~ As an alternative, there is a special XNU socket option SO_RECV_ANYIF to allow sending/receiving via AWDL:
#define SO_RECV_ANYIF 0x1104 /* unrestricted inbound processing */
Usage
Frist compile with Xcode.
Then, on the server, run
./proxawdl
and start the TCP server listening on localhost, e.g., iperf -s -p 22222.
On the client, run
./proxawdl client
and start the TCP client connecting to localhost, e.g., iperf -c -p 22222.
Limitations
-
hardcoded TCP ports
-
does not multiplex TCP connections which means that applications using multiple TCP connections will probably not function properly
Our Papers
- Milan Stute, David Kreitschmann, and Matthias Hollick. One Billion Apples’ Secret Sauce: Recipe for the Apple Wireless Direct Link Ad hoc Protocol. In The 24th Annual International Conference on Mobile Computing and Networking (MobiCom ’18), October–November 2018, New Delhi, India. DOI.
Contact
- Milan Stute (email, web)
Credits
- CocoaAsyncSocket to handle local TCP connections (as static dependency)