In order to send the packets onwards with a DTN option header the standard sockets library could not be used.
Raw sockets were used to send the packets, this allows the userland code to control the DTN header but also requires
the software to calculate the packet routing and link layer addressing as well.