IPoXP: Internet Protocol over Xylophone Players

Posted by sgeiger

sgeiger's picture

IPoXP: Internet Protocol over Xylophone Players

Group: Just Stuart, at the moment.  But looking for other people!

Objective

Implement a fully IP-compliant network connection between two Arduinos using xylophones, with human operators transmitting hexadecimal characters between Arduinos by striking designated mallets.  In doing so, create a human-computer interface at the most basic level of the Internet and make visible, audible, and tangible the protocological nature of computer-computer interaction.

Background

At the most fundamental level, the Internet is a protocol called, simply enough, Internet Protocol (IP). As a protocol, IP is a socio-technical agreement that defines how bits of information are to be circulated.  IP is specifically built to be agnostic -- and even blind -- to how those bits are shuffled around. IP has been implemented over a number of interfaces: electrical signals through standardized wires (Ethernet, DSL, Firewire), audio links (modems), wireless radio signals (Wi-fi, Wi-max), and infrared (IRDA). Enterprising individuals have even repurposed existing links, and built devices which send IP traffic through domestic power lines, ham radio channels, and USB cables.  With a properly configured interface and operating system, the application does not know -- and does not need to know -- the logistics of what is known as the physical layer. The web browser or chat client simply sends/receives data to/from the operating system’s network stack. To date, network interfaces are typically designed for high speed, reliability, and throughput, and the dominant paradigm of network computing seeks to automate as much of the lower levels as possible. 

Previous work

The main inspiration of this project is the humorous RFC 1149, A Standard for the Transmission of IP Datagrams on Avian Carriers [1]. One of many April Fools’ Day submissions, the document defines a specification for transmitting IP packets using homing pigeons. This implementation remained unused for 11 years, until 2001, when the Bergen Linux User Group set up two computers, three miles apart, each with a virtual TAP/TUN point-to-point interface, a printer, and a scanner. [2] They initiated a ping request on one computer, which printed out a sheet of paper containing a hexadecimal representation of each ICMP ping request packet. They taped the paper to the leg of a pigeon, which flew to the other site, and was removed and scanned by human operators. After scanning and OCRing the packet, the TAP/TUN daemon decoded the packet and placed it in the network stack, which then delivered an ICMP ping reply packet to the printer. In all, nine packets were sent and only four were returned, with a latency of 3000-6000 seconds.

Implementation

Two Arduinos are connected via USB/serial link to two laptops running Linux, one with access to the Internet and one without. Based on software released by the Bergen Linux User Group for IPoAC, a TAP/TUN daemon and virtual network interface will be created to communicate with the local Arduino over serial. When a packet is to be sent, the daemon will convert it into a hexadecimal format and light up the corresponding xylophone key. When the user strikes the key, the local Arduino will sense that a character was submitted and request another hexadecimal character from the daemon, lighting up another key. When the packet is finished, there will be an ‘End of File’ key used to signal sent to indicate there are no more characters in the packet. If the user strikes the wrong key, this EOF key can also be hit to end the packet early, which will generate a malformed packet, a manageable error in any modern network stack.

For receiving packets, each xylophone key will be directly connected to a corresponding sensor on the other Arudino, in a manner to be determined. When the Arduino senses an incoming character, it transmits it over serial to the TAP/TUN daemon. When the daemon receives an EOF signal, it will assemble the packet and place it in the Linux networking stack. The computer connected to the Internet will have the Arduino-based TAP/TUN interface bridged with a wi-fi interface connected to the network, so packets can travel to and from the rest of the Internet. 

Efficiency and Output

Assuming a human user can strike two keys every second, and that one hexadecimal key contains four bits of information (a ‘nibble’), the interface would have a rate of 8 baud, or one byte per second. IP headers, which must be sent with every packet, are 20 bytes, and the smallest packet, an ICMP ping request or reply, is 32 bytes. Thus, it would take a user approximately one minute to transmit a ping request, and another minute for a reply to be sent. To perform all the DNS and HTTP requests and responses necessary to download the front page of the English-language Wikipedia would involve about 260 packets with an average size of 387 packets, for a total of around 100,000 bytes. This would take approximately 28 hours on a standard IPoXP interface.

Extensions and Alternatives

With a two-row 26 key xylophone, extra keys can be used for regularly-occurring elements of IP packets, particularly the header.  Instead of 8 keys used to send a MAC and/or IP address -- which must be transmitted with every packet -- there could be dedicated source and destination keys which effectively compress 8 bytes over a 1 byte channel. In fact, the top keys can be exclusively used to transmit header data and the lower keys used for the payload, demonstrating to the user the two-part structure of IP packets and the constituent elements of IP headers.

An alternative implementation method is to use humans placing marbles on tracks instead of humans striking xylophones connected by sensors. This method would not just make a network connection tangible, but also make the bits tangible as well, and it would be easier for the local Arduino to detect when the user has submitted a bit and is to receive a new bit.

Discussion

The field of Human-Computer Interaction generally prioritizes the computer-human relationship in studying computer-mediated interaction: computers are mediators between humans who wish to interact with other humans, and most interventions aim at improving the link between the user and their computer.  Inverting this traditional framework, this project situates the human at the center of the most basic link between two computers. In this network link, the Internet becomes both tangible and audible, and the often overlooked infrastructure of the Internet is likewise 'inverted' [3] and made visible.  

This project is inspired by the much celebrated "Tangible Bits" framework [4], but instead of seeking to represent bits in matter in order to improve the user experience, IPoXP makes Internet traffic artifically taxing on the user.  This is done in order to force the user to experience both the dissonances and congruences between the protocological mode of interaction which occurs between computers and the symbolic mode of interaction which occurs between humans.  The IPoXP link is, like all networks, a socio-technical 'imbroglio' [5] of human and technological actors, comprised of a temporarily stabilized assemblage of metal and plastic, operating systems and device drivers, lights and sounds, wires and electrons, as well as two human operators, who work to make their hands move in agreement with the instructions of their network interface, striking xylophone keys when instructed in order to transmit a half-bit of data.  

References

 

[1] http://www.faqs.org/rfcs/rfc1149.html

[2] http://www.blug.linux.no/rfc1149/

[3] Star, S.L. and Bowker, G. (2000). Sorting Things Out: Classification and Its Consequences. Cambridge, MA: The MIT Press.

[4] Ishii, H. and Ullmer, B. (1997.) "Tangible bits: towards seamless interfaces between people, bits and atoms." In Proceedings of the SIGCHI conference on Human factors in computing systems (CHI '97), Steven Pemberton (Ed.). ACM, New York, NY, USA, 234-241. 

[5] Latour, B. (1999).  Pandora's Hope: Essays on the Reality of Science Studies. Cambridge, MA: Harvard University Press.

IPoXP stack flow diagram
IPoXP overview diagram
IPoXP key and sensor sketch
0
Your rating: None