TCP / IP over audio

    Developer Chris Christopher (Chris Christopher) has published a fairly detailed instruction on how to raise the communication channel between computers using speakers. You can send TCP / IP and UDP packets “over the air”, even if the computers do not have communication equipment.

    The author used standard laptops and open source software, including the gnuradio program. He says that the easiest way is to download a ready - made LiveDVD image of the Gnuradio distribution (a version of Ubuntu with gnuradio already installed).

    You also need to download the patch for gnuradio from Github and install it from the root. The patch modifies the gnuradio packet encoder and decoder to support variable-size packets.

    The signal encoding / decoding algorithm as a whole is depicted in this diagram , and the author explains each step: creating a virtual network interface; translating packets from the virtual NIC into a byte stream for processing by the packet encoder, which adds the packet preamble, header and checksum.

    The GFSK modulator performs frequency modulation (FSK) by superimposing bits on an analog carrier, as shown in the first illustration.

    In the modulator, you can specify how many samples to transmit for each character (9 by default): the higher this value, the better the signal-to-noise ratio, that is, the transmission will become more resistant to interference.

    In the next step, the FIR filter (a filter with a finite impulse response) transmits an audio signal at a given frequency. For example, 19 kHz. At the last stage, a special unit converts the signal into an acceptable stream for an audio card.

    The receiving unit performs all the described operations in the reverse order, although there are several additional blocks: one amplifies the signal from the microphone a specified number of times, and the second filters the sound at a given frequency range so as not to let extraneous noise from the microphone into the demodulator.

    The author says that with such a scheme it is possible to establish a duplex transmission channel when laptops transmit information to each other at different frequencies.

    The operation of the test audio channel TCP / IP at a frequency of 23 kHz is shown in the video below. Chris Christopher also offers a lookPCAP file with recording of all packets, indicating delays and baud rate, screenshot .

    Also popular now: