| TCP | UDP | ICMP | IGMP |   | |
| IP | ARP | RARP | |||
| 6 | TCP |
| 17 | UDP |
| Version (4 bit) | Header length (4 bit) | Type of service (8 bit) | Total Length (16 bit) | ||||
| Time to live (8 bit) | flags (3 bit) | Fragment offset (13 bit) | |||||
| Source IP address (32 bit) | |||||||
| Destination IP address (32 bit) | |||||||
| [ Options (if any -- see header length) ] | |||||||
| Data (see total length for size) | |||||||
| Source port number (16 bit) | Destination port number (16 bit) |
| UDP Length (16 bit) | UDP checksum (16 bit) |
| Data (if any) | |
| Source port number (16 bit) | Destination port number (16 bit) | ||||||||||||||
| Sequence number (32 bit) | |||||||||||||||
| Acknowledgement number (32 bit) | |||||||||||||||
| Header length (4 bit) | Reserver (6 bit) | URG | ACK | PSH | RST | SYN | FIN | Window size (16 bit) | |||||||
| TCP checksum (16 bit) | Urgent pointer (16 bit) | ||||||||||||||
| Options (if any) | |||||||||||||||
| Data | |||||||||||||||