Name
Header Length
Synopsis
Identifies the size of the TCP header, in 32-bit multiples.
- Size
Four bits.
- Notes
The primary purpose of this field is to inform the recipient where the data portion of the TCP segment starts. Due to space constraints, the value of this field uses 32-bit multiples. Thus, 20 bytes is the same as 160 bits, which would be shown here as 5 (5 × 32 bits = 160 bits = 20 bytes). Since each of the header’s mandatory fields are fixed in size, the smallest this value can be is 5.
If all of the bits in this field were “on,” the maximum value would be 15. Thus, a TCP header can be no larger than 60 bytes (15 × 32 bits = 480 bits = 60 bytes).
Note that TCP does not define “total length” like UDP does, but rather only defines “header length,” like IP. In order to determine the amount of data contained in a segment, the destination system must calculate the entire length of the IP datagram (as described in Total Packet Length in Chapter 2), and then subtract the size of the TCP header from that value. The resulting value provides both the number of bytes of data stored in this segment and the starting position for the data.
- Capture Sample
In the capture shown in Figure 7.22, the Header Length field shows the size of the TCP header as hexadecimal 6 which indicates that the TCP header is 24 bytes long. Although the default size is only 20 bytes, this segment contains some TCP options, which are making it a little bit larger than normal.
Figure 7.22. The Header Length field- See Also ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access