Is the TCP checksum over the payload?

view story

http://serverfault.com – I was somehow convinced that the TCP checksum was a header checksum (similar to the IP checksum), but I'm now having doubts reading the Wikipedia article: The checksum field is the 16 bit one's complement of the one's complement sum of all 16-bit words in the header and text. This seems a little crazy to me that the TCP checksum, which is placed in the header (as opposed to a footer), depends upon bytes sent after the header. This is a hindrance to hardware optimised TCP. Essentially, this nullifies "cut-through" architectures that would start sending the TCP header before knowing the (HowTos)