Could this be a trait, with a packet() method, so that things like TCP sockets could implement it?