The surprising complexity of TCP/IP checksums in the network stack Henning Brauer