Csc 600 internetworking with tcp ip
1 / 99

CSC 600 Internetworking with TCP/IP - PowerPoint PPT Presentation

  • Uploaded on

CSC 600 Internetworking with TCP/IP. Unit 3: Transport Layer (Ch. 13, 12) Dr. Cheer-Sun Yang Spring 2001. Introduction. Transmission Control Protocol provides connection-oriented reliable transport services.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'CSC 600 Internetworking with TCP/IP' - kimberly

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Csc 600 internetworking with tcp ip

CSC 600Internetworking with TCP/IP

Unit 3: Transport Layer

(Ch. 13, 12)

Dr. Cheer-Sun Yang

Spring 2001


  • Transmission Control Protocol provides connection-oriented reliable transport services.

  • User Datagram Protocol (UDP) provides connectionless unreliable transport services.

Tcp udp

  • Transmission Control Protocol

    • Connection oriented

    • RFC 793

  • User Datagram Protocol (UDP)

    • Connectionless

    • RFC 768

Reliable vs unreliable
Reliable vs. Unreliable

  • Reliable transport service handles error recovery at the transport level.

  • Unreliable transport service does not provide error recovery at at the transport level.

Connection oriented vs connection less
Connection-oriented vs.Connection-less

  • Connection-oriented service must establish connection between the source and the destination first.

  • Connection-less service does not establish connection first. It simply does store-and-forward.

Properties of the reliable delivery service
Properties of the Reliable Delivery Service

  • Stream orientation - ordered delivery

  • Virtual circuit connection – connection establishment is must prior to segment delivery

  • Buffered transfer – data buffering is needed

  • Unstructured stream – TCP segments may not be as big as a record in a payroll application.

  • Full duplex connection – Connections provided by the TCP/IP stream service allow concurrent transfer in both direction.

Properties of the reliable delivery service1
Properties of the Reliable Delivery Service

  • TCP provides reliable transport service using sliding window protocol as defined in the Data Link Layer Protocol.

Tcp vs the implementation
TCP vs. the Implementation

  • TCP is the communication protocol.

  • TCP is implemented by many venders in software as part of the Operating System.

  • The difference between a protocol and the software that implements it is analogous to the difference between the definition of a programming language and a compiler.

What does tcp specify
What does TCP Specify?

  • Data segment format

  • Timing

  • Meanings of header fields

  • Functions of TCP – also referred to as services provided by TCP

What does tcp not specify
What does TCP not specify?

  • The user interface is not specified.

  • The underlying communication system can be a dialup telephone line, a local area network, a high speed fiber optical network, or a lower speed long haul network.

Tcp services
TCP Services

  • Reliable communication between pairs of processes

  • Across variety of reliable and unreliable networks and internets

  • Two labeling facilities

    • Data stream push

      • TCP user can require transmission of all data up to push flag

      • Receiver will deliver in same manner

      • Avoids waiting for full buffers

    • Urgent data signal

      • Indicates urgent data is upcoming in stream

      • User decides how to handle it

Items passed to ip
Items Passed to IP

  • TCP passes some parameters down to IP

    • Precedence

    • Normal delay/low delay

    • Normal throughput/high throughput

    • Normal reliability/high reliability

    • Security

Tcp header field
TCP Header Field

  • Port Number

    • source and destination port numbers (why source port number?)

    • why not IP addresses?

    • Identifies an application

    • Together with IP address to form an end point

Tcp header field1
TCP Header Field

  • Sequence Number

    • 32 bits long

    • the range of sequence number is 0 <= seq <= 2 32 -1

    • Each sequence number identifies the byte in the stream of data from the sending TCP to the receiving TCP where the first byte of data is located in the segment

    • Initial Sequence Number (ISN) of a connection is set during connection management

1 200 201 400 401 600

segment 1 segment 2 segment 3

(seq = 1) (seq = 201) (seq = 401)

Tcp header field2
TCP Header Field

  • Acknowledgement Nubmer

    • Acknowledgements are piggybacked if there is a segment ready to be sent from the receiver to the sender

    • The acknowledgement segment consists of the next sequence number expected

Tcp header field3
TCP Header Field

  • Header Length

    • Why is this needed ?

Tcp header field4
TCP Header Field

  • Flags

    • URG - if the URG =1, the following bytes contain an urgent message: seq <= urgent message <= seq + urgent pointer

    • ACK: acknowledgement number is valid

    • PSH:

      • notification from sender to receiver to force the TCP on the receiver side to pass all data received to the application layer

      • Normally sent by the sender when the sender’s buffer is empty so the sender does not wait for more data

    • RST: Reset the connection

    • SYN: synchronization request for the sequence number

    • FIN: Finish flag

Tcp header field5
TCP Header Field

  • Options:

    • End of options: 1 byte

    • NOP: 1 byte

    • Maximum segment size: 4 bytes

    • Window scale factor: 3 bytes

      • increases the TCP window size from 16 bits to 32 bits

      • 1-byte shift count is between 0 and 14

      • used in the connection establishment for window size negotiation

    • Timestamp: 10 bytes

      • sender places a timestamp in a segment

      • receiver places an echo reply

      • this allows the sender to calculate the Round-Trip Time per window

Tcp header field options
TCP Header Field(Options)


End of options



2 4


Window scale


3 3 S

S: shift count

8 10 timestamp timestamp echo reply


Transport layer issues
Transport Layer Issues

  • Addressing

  • Connection establishment

  • Connection termination

  • Flow Control

  • Timeout and retransmission

  • Congestion Control

  • Multiplexing

  • Duplication detection

  • Crash recovery

Tcp mechanisms
TCP Mechanisms

  • Connection establishment

  • Data transfer

  • Send policy

  • Deliver policy

  • Accept policy: in-order, in-window

  • Retransmission policy: first-only, batch, individual

  • Acknowledgement Policy


  • Target user specified by:

    • User identification

      • Usually host, port

        • Called a socket in TCP

      • Port represents a particular transport service (TS) user

    • Transport entity identification

      • Generally only one per host

      • If more than one, then usually one of each type

        • Specify transport protocol (TCP, UDP)

    • Host address

      • An attached network device

      • In an internet, a global internet address

    • Network number

Finding addresses
Finding Addresses

  • Four methods

    • Know address ahead of time

      • e.g. collection of network device stats

    • Well known addresses

    • Name server

    • Sending process request to well known address

Ports connections and endpoints
Ports, Connections, and Endpoints

  • TCP uses the connection, not the protocol port, as its fundamental abstraction; connections are identified by a pair of endpoints, i.e., (, 1069) and (, 25).

  • An endpoint is a pair of integers = (host, port).

  • Because TCP identifies a connection by a pair of endpoints, a given TCP port number can be shared by multiple connections on the same machine.

Connection establishment
Connection Establishment

  • Connection establishment

    • Three way handshake

    • Between pairs of ports

    • One port can connect to multiple destinations

Passive and active opens
Passive and Active Opens

  • A client requests for a connection – an active open request.

  • A server must be waiting for the request for connection – a passive open.

Connection establishment1
Connection Establishment

  • Two way handshake

    • A send SYN, B replies with SYN

    • Lost SYN handled by re-transmission

      • Can lead to duplicate SYNs

    • Ignore duplicate SYNs once connected

  • Lost or delayed data segments can cause connection problems

    • Segment from old connections

    • Start segment numbers fare removed from previous connection

      • Use SYN i

      • Need ACK to include i

      • Three Way Handshake

Two way handshake obsolete data segment
Two Way Handshake:Obsolete Data Segment

Two way handshake obsolete syn segment
Two Way Handshake:Obsolete SYN Segment

Three way handshake examples
Three WayHandshake:Examples

Three way handshake state diagram
Three Way Handshake:State Diagram

Initial sequence number
Initial Sequence Number

  • When a new connection is being established, the SYN flag is turned on. The sequence number field contains the ISN chosen by the host for this connection.

  • The sequence number of the first byte of data sent by the host will be the ISN plus one because the SYN flag consumes a sequence number.

Connection termination
Connection Termination

  • Entity in CLOSE WAIT state sends last data segment, followed by FIN

  • FIN arrives before last data segment

  • Receiver accepts FIN

    • Closes connection

    • Loses last data segment

  • Associate sequence number with FIN

  • Receiver waits for all segments before FIN sequence number

  • Loss of segments and obsolete segments

    • Must explicitly ACK FIN

Data transfer
Data Transfer

  • Data transfer

    • Logical stream of octets

    • Octets numbered modulo 223

    • Flow control by credit allocation of number of octets

    • Data buffered at transmitter and receiver

Send policy
Send Policy

  • If no push or close TCP entity transmits at its own convenience

  • Data buffered at transmit buffer

  • May construct segment per data batch

  • May wait for certain amount of data

Deliver policy
Deliver Policy

  • In absence of push, deliver data at own convenience

  • May deliver as each in order segment received

  • May buffer data from more than one segment

Accept policy
Accept Policy

  • Segments may arrive out of order

  • In order

    • Only accept segments in order

    • Discard out of order segments

  • In windows

    • Accept all segments within receive window

Not listening
Not Listening

  • Reject with RST (Reset)

  • Queue request until matching open issued

  • Signal TS user to notify of pending request

    • May replace passive open with accept

Connection termination1
Connection Termination

  • Connection termination

    • Graceful close

    • TCP users issues CLOSE primitive

    • Transport entity sets FIN flag on last segment sent

    • Abrupt termination by ABORT primitive

      • Entity abandons all attempts to send or receive data

      • RST segment transmitted


  • Either or both sides

  • By mutual agreement

  • Abrupt termination

  • Or graceful termination

    • Close wait state must accept incoming data until FIN received

Side initiating termination
Side Initiating Termination

  • TS user Close request

  • Transport entity sends FIN, requesting termination

  • Connection placed in FIN WAIT state

    • Continue to accept data and deliver data to user

    • Not send any more data

  • When FIN received, inform user and close connection

Side not initiating termination
Side Not Initiating Termination

  • FIN received

  • Inform TS user Place connection in CLOSE WAIT state

    • Continue to accept data from TS user and transmit it

  • TS user issues CLOSE primitive

  • Transport entity sends FIN

  • Connection closed

  • All outstanding data is transmitted from both sides

  • Both sides agree to terminate

Usage of tcpdump
Usage of tcpdump

  • A program called tcpdump on has been installed for monitoring TCP mechanisms.

  • It requires root privilege. So Dr. Kline set up a script called TCPDUMP for us to run tcpdump.

  • For details, see homework sheet.

Output of tcpdump
Output of tcpdump

  • On, each segment sent is printed out twice. It looks odd.

  • TCPDUMP prints out each segment in the following format: source > destination: flags, where the flags represents S(SYN), F(FIN), R(RST), P(PSH), and a dot(.).

  • The sequence numbers are followed by the number of data bytes. For example: 1415531521:1415531521(0) is a segment without data.

Output of tcpdump1
Output of tcpdump

  • Option fields are printed out.

  • MSS - maximum segment size

  • WSCALE: window scale

  • NOP: no operation (used for padding a field length to a multiple of four bytes).

  • <mss 512,nop,wscale 0,nop,nop,timestamp 146647 0>

Flow control
Flow Control

  • Longer transmission delay between transport entities compared with actual transmission time

    • Delay in communication of flow control info

  • Variable transmission delay

    • Difficult to use timeouts

  • Flow may be controlled because:

    • The receiving user can not keep up

    • The receiving transport entity can not keep up

  • Results in buffer filling up

The idea behind sliding windows
The idea Behind Sliding Windows

  • A simple positive acknowledgement protocol wastes a substantial amount of network bandwidth because it must delay sending a new packet until it receives an acknowledgement for the previous packet.

Window size and flow control
Window Size and Flow Control

  • TCP allows the window size to be changed over time.

  • Each ACK, which specifies how many octets have been received, contains a window advertisement that specifies how many additional octets of data the receiver is prepared to receive.

  • It is the receiver’s current buffer size.

Coping with flow control requirements 1
Coping with Flow Control Requirements (1)

  • Do nothing

    • Segments that overflow are discarded

    • Sending transport entity will fail to get ACK and will retransmit

      • Thus further adding to incoming data

  • Refuse further segments

    • Clumsy

    • Multiplexed connections are controlled on aggregate flow

Coping with flow control requirements 2
Coping with Flow Control Requirements (2)

  • Use fixed sliding window protocol

    • See chapter 7 for operational details

    • Works well on reliable network

      • Failure to receive ACK is taken as flow control indication

    • Does not work well on unreliable network

      • Can not distinguish between lost segment and flow control

  • Use credit scheme

Credit scheme
Credit Scheme

  • Greater control on reliable network

  • More effective on unreliable network

  • Decouples flow control from ACK

    • May ACK without granting credit and vice versa

  • Each octet has sequence number

  • Each transport segment has seq number, ack number and window size in header

Use of header fields
Use of Header Fields

  • When sending, seq number is that of first octet in segment

  • ACK includes AN=i, W=j

  • All octets through SN=i-1 acknowledged

    • Next expected octet is i

  • Permission to send additional window of W=j octets

    • i.e. octets through i+j-1

Unreliable network service
Unreliable Network Service

  • E.g.

    • internet using IP,

    • frame relay using LAPF

    • IEEE 802.3 using unacknowledged connectionless LLC

  • Segments may get lost

  • Segments may arrive out of order

Ordered delivery
Ordered Delivery

  • Segments may arrive out of order

  • Number segments sequentially

  • TCP numbers each octet sequentially

  • Segments are numbered by the first octet number in the segment

Retransmission strategy
Retransmission Strategy

  • Segment damaged in transit

  • Segment fails to arrive

  • Transmitter does not know of failure

  • Receiver must acknowledge successful receipt

  • Use cumulative acknowledgement

  • Time out waiting for ACK triggers re-transmission

Timer value
Timer Value

  • Fixed timer

    • Based on understanding of network behavior

    • Can not adapt to changing network conditions

    • Too small leads to unnecessary re-transmissions

    • Too large and response to lost segments is slow

    • Should be a bit longer than round trip time

  • Adaptive scheme

    • May not ACK immediately

    • Can not distinguish between ACK of original segment and re-transmitted segment

    • Conditions may change suddenly

Tcp timers
TCP Timers

  • Retransmission Timer: started during a transmission. A timeout causes a retransmission.

  • Persist Timer: ensures that window size information is transmitted even if no data is transmitted.

  • Keepalive Timer: detects crashes on the other end of connection.

  • Other Timers: delay ACK timer, timeout of connection setup, abort timeout, 2MSL(Maximum Segment Lifetime) timeout(closing timeout).

Acknowledgement policy
Acknowledgement Policy

  • Immediate

  • Cumulative

Congestion control
Congestion Control

  • RFC 1122, Requirements for Internet hosts

  • Retransmission timer management

    • Estimate round trip delay by observing pattern of delay

    • Set time to value somewhat greater than estimate

    • Simple average

    • Exponential average

    • RTT Variance Estimation (Jacobson’s algorithm)

Congestion control avoidance
Congestion Control Avoidance

  • TCP must remember the size of the receiver’s window. To control congestion, TCP maintains a second limit, called the congestion window limit, that is used to restrict data flow to less than the receiver’s buffer size.

  • Multiplicative Decrease Congestion Avoidance: To estimate congestion window size, TCP assumes that most datagram loss comes from congestion and

Congestion control avoidance1
Congestion Control Avoidance

  • Upon loss of a segment, the sender reduces the congestion window by half. For those segments tha remain in the allowed window, backoff retransmission timer exponentially.

  • Slow Start: When congestion ends, increase the congestion window exponentially until it reaches the receiver’s window limit.

  • The term slow start is a misnomer since the congestion window grows exponentially.

Congestion control1
Congestion Control

  • Slow start

    • awnd = MIN[credit, cwnd]

    • Start connection with cwnd=1

    • Increment cwnd at each ACK, to some max

  • Dynamic windows sizing on congestion

    • When a timeout occurs

    • Set slow start threshold to half current congestion window

      • ssthresh=cwnd/2

    • Set cwnd = 1 and slow start until cwnd=ssthresh

      • Increasing cwnd by 1 for every ACK

    • For cwnd >=ssthresh, increase cwnd by 1 for each RTT

Response to congestion
Response to Congestion

  • How can a router avoid global congestion?

    • Tail drop: if the input queue is fulled when a datagram arrives, discard the datagram.

    • Random Early Discard(RED)


  • A router uses two threshold values to mark positions in the queue: Tmin and Tmax. The general operation of RED can be described by three rules that determine the disposition of each arriving datagram:

    • if the queue currently contains fewer than Tmin datagrams, add the new datagram to the queue.

    • If the queue contains more than Tmax datagrams, discard the new datagram.

    • If the queue contains between Tmin and Tmax datagrams, randomly discard the datagram according to a probability p.

Timeout and retransmit
Timeout and Retransmit

  • TCP maintains queue of segments transmitted but not acknowledged

  • TCP will retransmit if not ACKed in given time

  • Measurements of round trip times vary dramatically over time.

Exponential rto backoff
Exponential RTO Backoff

  • Since timeout is probably due to congestion (dropped packet or long round trip), maintaining a constant RTT is not a good idea

  • RTT increased each time a segment is re-transmitted

Timeout and retransmit1
Timeout and Retransmit

  • Adaptive retransmission algorithm(RFC 793)

RTT =  * old RTT + (1 - ) * new Round Trip Sample

RTO =  * RTT (usually  = 2)

Use of exponential averaging
Use of Exponential Averaging

Responding to high variance in delay jacobson s algorithm
Responding to High Variance in Delay - Jacobson’s Algorithm

DIFF = Sample - old RTT

smoothed RTT = old RTT + * DIFF

mean deviation = old mean deviation +  (|DIFF| - old mean deviation)

RTO = smoothed RTT +  * mean deviation

 : between 0 and 1

 : inverse of a power of 2

 : inverse of a power of 2

Karn s algorithm
Karn’s Algorithm

  • If a segment is re-transmitted, the ACK arriving may be:

    • for the first copy of the segment, then RTT longer than expected

    • for second copy, then RTT shorter than expected

  • No way to tell

  • Do not measure RTT for re-transmitted segments

  • Calculate backoff when re-transmission occurs

  • Use backoff RTO until ACK arrives for segment that has not been re-transmitted

Silly window syndrome
Silly Window Syndrome

  • A problem occurs when the sender and the receiver operate at different speeds.

  • When the receiving application reads an octet of data from a full buffer, one octet of space becomes available. The TCP on the receiver generates a segment the inform the sender that 1 octet is available.

  • The sender sends out a segment of one byte.

  • This results in a series of small data segment - silly window syndrome (SWS).

Silly window syndrome avoidance nagle algorithm
Silly Window Syndrome Avoidance-Nagle Algorithm

  • Receiver-side avoidance : delay acknowledgement

  • Sender-side avoidance: delay transmission adaptively.


  • Multiple users employ same transport protocol

  • User identified by port number or service access point (SAP)

  • May also multiplex with respect to network services used

    • e.g. multiplexing a single virtual X.25 circuit to a number of transport service user

      • X.25 charges per virtual circuit connection time

Duplication detection
Duplication Detection

  • If a segment is lost and retransmitted, no confusion will result.

  • If, however, an ACK is lost, one or more segments will be retransmitted and, if they arrive successfully, the receiver must be able to recognizes duplicates.

Duplication detection1
Duplication Detection

  • Duplicate received prior to closing connection

    • Receiver assumes ACK lost and ACKs duplicate

    • Sender must not get confused with multiple ACKs

    • Sequence number space large enough to not cycle within maximum life of segment

  • Duplicate received after closing connection

Crash recovery
Crash Recovery

  • After restart all state info is lost

  • Connection is half open

    • Side that did not crash still thinks it is connected

  • Close connection using persistence timer

    • Wait for ACK for (time out) * (number of retries)

    • When expired, close connection and inform user

  • Send RST i in response to any i segment arriving

  • User must decide whether to reconnect

    • Problems with lost or duplicate data


  • User datagram protocol

  • RFC 768

  • Connectionless service for application level procedures

    • Unreliable

    • Delivery and duplication control not guaranteed

  • Reduced overhead

  • e.g. network management (Chapter 19)

Udp uses
UDP Uses

  • Inward data collection

  • Outward data dissemination

  • Request-Response

  • Real time application

Recommended reading
Recommended Reading

  • Comer: chapter 12, chapter 13

  • Stallings: chapter 17

  • RFCs