Chapter 7 – Transport Layer Protocols TCP and UDP SPX and NCP
TCP Characteristics TCP is the acronym for Transmission Control Protocol. TCP is Connection oriented Reliable It is used to carry large amounts of data. It provides services that Internet Protocol (IP) lacks. TCP is defined in Request for Comments (RFC) 793. (www.ietf.org)
TCP Functions Guaranteed delivery Packet acknowledgment Flow control Error detection Error correction
Segmentation Occurs when the Application layer Protocol passes more data to TCP than can fit in a single packet. TCP splits application layer messages into datagram-sized segments and encapsulates each segment with its own header. The collection of segments is called a sequence.
Segmentation (Continue) The destination system reassembles the segments into the original sequence. The segmentation process is completely separate from the network layer fragmentation process.
The TCP Message Format
Port Numbers and Sockets A port number refers to a specific application or process running on a computer. A socket is a combination of a port number and an IP address. The Internet Assigned Numbers Authority (IANA) assigns well-known port numbers to common Internet applications.
Port Numbers and Sockets The most commonly used port numbers are listed in the Services file on computers running TCP/IP. (page 184-185, table 7.1) Clients choose ephemeral (momentary) port numbers at random.
Control Bits Control Bit Function URG ACK PSH RST SYN FIN Indicates that the segment contains urgent data ACK Indicates that the message acknowledges a previously transmitted segment PSH Indicates that the receiving system should forward the message immediately rather than wait for the rest of the sequence RST Resets the TCP connection and discards the segments received so far SYN Synchronizes the Sequence Number values for both systems FIN Terminates a TCP connection
Three-Way Handshake Functions (Establishing a Connection) Verify that both computers are operating and ready to receive data Exchange initial sequence numbers (ISNs) Exchange maximum segment sizes (MSSs) Exchange port numbers
Three-Way Handshake Messages TCP Connection Three-Way Handshake Messages
Transmitting Data Information needed to transmit data: Port number Sequence number MSS
Packet Acknowledgment TCP implements packet acknowledgment by using the Sequence Number and Acknowledgment Number fields. The Sequence Number field specifies the number of bytes transmitted. The Acknowledgment Number field specifies the number of bytes received.
Delayed Acknowledgments TCP systems do not have to individually acknowledge every packet they receive. The frequency of acknowledgment is left up to the individual TCP implementation.
Positive and Negative Acknowledgments With positive acknowledgment with retransmission, TCP systems acknowledge only the number of bytes they have received correctly. With negative acknowledgment, the computer specifies the information that it has not received correctly. All data beginning with the failed segment is retransmitted. Messages that are not acknowledged are retransmitted.
TCP Error Detection TCP provides the only end-to-end error detection for the application layer data. TCP computes a checksum based on The TCP header The application layer information in the TCP Data field A pseudo-header created from some of the fields in the IP header (pseudo-header ensures datagrams are delivered to the correct computer and correct transport layer)
TCP Checksum Value
Flow Control Flow control allows a receiving system to control the transmission rate of the sending system. Each computer has a buffer for storing incoming packets. When a computer transmits too quickly, the buffer on the receiving system can fill up, causing packets to be dropped. TCP uses the Window field in its acknowledgment messages to implement flow control. The Window value indicates how much buffer space the receiving system has available. The sending system is permitted to transmit only the number of bytes specified in the Window field.
Sliding Window Technique
Terminating the Connection
UDP Characteristics UDP is the acronym for User Datagram Protocol. UDP is defined in RFC 768. It is a connectionless protocol. It is used primarily for brief request/reply transactions.
The UDP Message Format
SPX Characteristics SPX is the acronym for Sequenced Packet Exchange. SPX is a connection-oriented protocol. It provides packet acknowledgment and flow control. It is used infrequently by NetWare. Messages are carried in Internet Packet Exchange (IPX) datagrams.
The SPX Message Format
NCP Characteristics NCP is the acronym for NetWare Core Protocol. NCP is used for NetWare file sharing traffic. It is much more frequently used than SPX. Messages are carried in IPX datagrams. NCP requires an acknowledgment for each transmitted message.
The NCP Request Message Format
The NCP Reply Message Format
Chapter Summary TCP UDP Connection-oriented protocol Used to carry relatively large amounts of data Provides guaranteed delivery, packet acknowledgment, flow control, error detection, and error correction UDP Connectionless protocol Essentially a subset of TCP Generates less overhead than TCP does Used primarily for brief transactions consisting of a single request and a single reply
Chapter Summary (Cont.) SPX Connection-oriented protocol Provides packet acknowledgment and flow control, much like TCP NCP Used for NetWare file sharing traffic, among many other functions Used much more frequently than SPX Requires an acknowledgment for each message transmitted