|  | 9.1 | The TCP/IP Protocol Suite
| 9.1.4 | TCP and UDP segment format
The TCP segment contains the following fields: source port -- the number of the calling port destination port -- the number of the called port sequence number -- the number used to ensure correct sequencing of the arriving data acknowledgment number -- the next expected TCP octet HLEN -- the number of 32-bit words in the header reserved -- set to 0 code bits -- the control functions (e.g.setup and termination of a session) window -- the number of octets that the sender is willing to accept checksum -- the calculated checksum of the header and data fields urgent pointer -- indicates the end of the urgent data option -- one currently defined: maximum TCP segment size data -- upper-layer protocol data Application layer protocols must provide for reliability if necessary. UDP uses no windowing or acknowledgments. It is designed for applications that do not need to put sequences of segments together. As you can see in Figure , a UDP header is relatively small. Protocols that use UDP include the following: TFTP SNMP Network File System (NFS) Domain Name System (DNS)