Sunday, March 27, 2011

TCP Packet Structure


TCP Packets

Each TCP (Transmission Control Protocol) packet consists of a header followed by a data field.  The header length can vary between 20 and 60 bytes, and the total size of the packet can be up to 65535 bytes.  Actually, many systems cannot handle packets as large as the protocol allows, and a working maximum size is 576 bytes.

TCP HeaderData
The header must have 5 words (of 32 bits each) of defined contents, and may have up to 10 more words of optional information.

012345678910111213141516171819202122232425262728293031
Source PortDestination Port
Sequence Number
Acknowledgement Number
Data OffsetReservedFlagsWindow
ChecksumUrgent Pointer
OptionsPadding

Source Port

  • The (software) port number of the source host.

Destination Port

  • The (software) port number of the destination host.

Sequence Number

  • The sequence number of the first data octet in this segment.  (Not used when the SYN flag is set.)

Acknowledgement Number

  • The sequence number of the next data octet to be sent by the source.  This field is used when the ACK flag is set.

Data Offset

  • The number of 32 bit words in the TCP Header.

Reserved

  • These bits should be set to 0.

Flags

012345
URGACKEOLRSTSYNFIN
URG
The Urgent Pointer field is significant
ACK
The Acknowledgement field is significant
EOL
End of Letter
RST
Reset the connection
SYN
Synchronize sequence numbrers
FIN
No more data from the sender

Window

  • The maximum number of octets which the sender will accept.

Checksum

  • This checksum covers both the header and data portion of the TCP packet.

Urgent Pointer

  • Points to the first urgent data byte in the packet.

Options (Variable Length, 0-44 bytes)

  • Used to specify various TCP options.

Padding

As required to make the header length a multiple of 32 bits.

No comments:

Post a Comment