Files
VanderSchueren_218708_2017.pdf
Open access - Adobe PDF
- 3.77 MB
Details
- Supervisors
- Faculty
- Degree label
- Abstract
- Networked applications interact with the TCP/IP stack through the socket API. Over the years, the computing environment in which this API is being used has dramatically changed and many extensions have been added. In this thesis, we propose and implement TCPSnitch, an open-source software that collects detailed traces of the interactions between networked applications and the TCP/IP stack and sends them to a publicly available database, tcpsnitch.org, exposing various statistics. We collect about 5 M API calls made by more than 130 Linux and Android applications on 24 K sockets. Our analysis reveals that the socket API usage in the wild differs greatly from textbook usage. Many Internet sockets do not exchange data, many API calls are redundant and many calls use tiny data buffers. On Android, UDP sockets are mainly used as a shortcut to retrieve information about the network configuration using ioctl() and most applications use various socket options even if the Java API does not expose them directly. TCPSnitch and the associated dataset are publicly available.