TCP/IP Protocol Suite 1 Chapter 12 Upon completion you will be able to: Transmission Control Protocol Be able to name and understand the services offered by TCP Understand TCPs flow and error control and congestion control Be familiar with the fields in a TCP segment Understand the phases in a connection-oriented connection Understand the TCP transition state diagram Be able to name and understand the timers used in TCP Be familiar with the TCP options Objectives
TCP/IP Protocol Suite 2 Figure 12.1 TCP/IP protocol suite
TCP/IP Protocol Suite TCP SERVICES We explain the services offered by TCP to the processes at the application layer. The topics discussed in this section include: Process-to-Process Communication Stream Delivery Service Full-Duplex Communication Connection-Oriented Service Reliable Service
TCP/IP Protocol Suite 4 Figure 12.2 Stream delivery
TCP/IP Protocol Suite 5 Figure 12.3 Sending and receiving buffers
TCP/IP Protocol Suite 6 Figure 12.4 TCP segments
TCP/IP Protocol Suite TCP FEATURES To provide the services mentioned in the previous section, TCP has several features that are briefly summarized in this section. The topics discussed in this section include: Numbering System Flow Control Error Control Congestion Control
TCP/IP Protocol Suite 8 The bytes of data being transferred in each connection are numbered by TCP. The numbering starts with a randomly generated number. Note:
TCP/IP Protocol Suite 9 Suppose a TCP connection is transferring a file of 5000 bytes. The first byte is numbered What are the sequence numbers for each segment if data is sent in five segments, each carrying 1000 bytes? Example 2 Solution The following shows the sequence number for each segment: Segment 1 Sequence Number: 10,001 (range: 10,001 to 11,000) Segment 2 Sequence Number: 11,001 (range: 11,001 to 12,000) Segment 3 Sequence Number: 12,001 (range: 12,001 to 13,000) Segment 4 Sequence Number: 13,001 (range: 13,001 to 14,000) Segment 5 Sequence Number: 14,001 (range: 14,001 to 15,000)
TCP/IP Protocol Suite 10 The value in the sequence number field of a segment defines the number of the first data byte contained in that segment. Note:
TCP/IP Protocol Suite 11 The value of the acknowledgment field in a segment defines the number of the next byte a party expects to receive. The acknowledgment number is cumulative. Note:
TCP/IP Protocol Suite SEGMENT A packet in TCP is called a segment A packet in TCP is called a segment The topics discussed in this section include: FormatEncapsulation
TCP/IP Protocol Suite 13 Figure 12.5 TCP segment format
TCP/IP Protocol Suite 14 Figure 12.6 Control field
TCP/IP Protocol Suite 15 I Table 12.2 Description of flags in the control field
TCP/IP Protocol Suite 16 Figure 12.7 Pseudoheader added to the TCP datagram
TCP/IP Protocol Suite 17 The inclusion of the checksum in TCP is mandatory. Note:
TCP/IP Protocol Suite 18 Figure 12.8 Encapsulation and decapsulation
TCP/IP Protocol Suite A TCP CONNECTION TCP is connection-oriented. A connection-oriented transport protocol establishes a virtual path between the source and destination. All of the segments belonging to a message are then sent over this virtual path. A connection-oriented transmission requires three phases: connection establishment, data transfer, and connection termination. The topics discussed in this section include: Connection Establishment Data Transfer Connection Termination Connection Reset
TCP/IP Protocol Suite 20 Figure 12.9 Connection establishment using three-way handshaking
TCP/IP Protocol Suite 21 Figure Data transfer
TCP/IP Protocol Suite 22 Figure Connection termination using three-way handshaking
TCP/IP Protocol Suite FLOW CONTROL Flow control regulates the amount of data a source can send before receiving an acknowledgment from the destination. TCP defines a window that is imposed on the buffer of data delivered from the application program. The topics discussed in this section include: Sliding Window Protocol Silly Window Syndrome
TCP/IP Protocol Suite 24 Figure Sliding window
TCP/IP Protocol Suite 25 A sliding window is used to make transmission more efficient as well as to control the flow of data so that the destination does not become overwhelmed with data. TCPs sliding windows are byte oriented. Note:
TCP/IP Protocol Suite 26 What is the value of the receiver window (rwnd) for host A if the receiver, host B, has a buffer size of 5,000 bytes and 1,000 bytes of received and unprocessed data? Example 3 Solution The value of rwnd = 5,000 1,000 = 4,000. Host B can receive only 4,000 bytes of data before overflowing its buffer. Host B advertises this value in its next segment to A.
TCP/IP Protocol Suite 27 What is the size of the window for host A if the value of rwnd is 3,000 bytes and the value of cwnd is 3,500 bytes? Example 4 Solution The size of the window is the smaller of rwnd and cwnd, which is 3,000 bytes.
TCP/IP Protocol Suite CONGESTION CONTROL Congestion control refers to the mechanisms and techniques to keep the load below the capacity. The topics discussed in this section include: Network Performance Congestion Control Mechanisms Congestion Control in TCP
TCP/IP Protocol Suite 29 Figure Router queues
TCP/IP Protocol Suite 30 Figure Slow start, exponential increase
TCP/IP Protocol Suite 31 Figure Congestion avoidance, additive increase