Chapter 6: The Transport Layer - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 6: The Transport Layer

Description:

Provide efficient, reliable, cost-effective service to upper ... Three-way handshake. Three-way handshake ... Three-way handshake to solve the problem ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 23
Provided by: muk1
Learn more at: https://www.cs.odu.edu
Category:

less

Transcript and Presenter's Notes

Title: Chapter 6: The Transport Layer


1
Chapter 6 The Transport Layer
  • CS455/555 Spring 2007

2
The Transport Service
  • Provide efficient, reliable, cost-effective
    service to upper layers (application layer)
  • Transport entity---the HW/SW that does the work
    to offer this service
  • Connection-oriented and connectionless service
  • Flow-control is an issue
  • Transport layer adds additional
    reliability/flexibility to the services offered
    by the network layer
  • True end-to-end protocol
  • QoS parameters Specified by a user to the
    transport layer

3
The Transport Service (Cont.)
  • We concentrate on the connection-oriented service
    only in this chapter
  • Transport layer primitives LISTEN (executed by a
    server), CONNECT (by a client), SEND, RECEIVE,
    DISCONNECT (Fig. 6-2)
  • TPDU Transport protocol data units (similar to
    packets at NWL and frames at DLL)
  • Figure 6-4 Establish/disconnect a connection

4
Elements of Transport protocols
  • TL is similar to DLL error-control, sequencing,
    flow-control, etc.
  • How is TL different from DLL? Environments are
    different---single link vs. subnet(s) between the
    two entities.
  • Subnet acts as a storage unit this implies
    that a message may float around and not reach the
    destination in a given time.
  • No addressing needed at DLL TL needs addresses

5
Elements of Transport protocols Cont.)
  • Addressing Transport service access points,
    TSAP (IPlocal port) or AAL-SAP
  • Example of setting up a connection between a user
    process and a time-server on another machine
    (Page 494-496)
  • Concept of name server to match the users
    (clients) with servers
  • TSAP address is generally hierarchical indicating
    the machine and port

6
Establishing a Connection
  • How can a transport entity establish a connection
    with another transport entity?
  • Problems can arise since a network can store,
    lose, and duplicate packets.
  • Example problem If a user has requested for a
    connection, sent a transaction, and requested for
    a disconnection. While the original 3 messages
    were executed correctly, later on duplicates of
    the three may once again at the destination. This
    is a problem.
  • Delayed duplicates is a problem.
  • Solution 1. Assign a connection ID for each
    connection. It is assigned by the requesting
    user. If a server receives an old ID, it
    recognizes it as a duplicate and ignores it.
  • Problem Server has to keep a list of all of the
    earlier connection Ids. What happens if a machine
    crashes and this table is lost?

7
Elements of Transport protocols (Contd.)
  • Restricting the life of a packet in a network
    three ways proposed in the text
  • Tomlinsons solution to memory loss Each host
    should have a clock that does not lose memory
    when system crashes. The clock is a counter that
    is incremented at uniform intervals. The number
    of bits that hold the counter are larger than the
    bits used for a sequence number.
  • Procedure When a connection is set up, the
    initiating host uses the low-order k bits of its
    clock as the initial sequence number (of k
    bits)----so each connection does not start
    numbering their TPDUs from 0 instead they start
    from the number the chosen k-bit sequence number.

8
Elements of Transport protocols (Contd.)
Initial Seq
  • While the clock was used to determine the initial
    seq. , after that the seq is incremented
    sequentially. For example, if it started with seq
    1789, then subsequent TPDUs are given numbers
    1790, 1791, and so on.
  • What happens if a host crashes during a session?
    Does it remember the last sequence already
    allocated to the last TPDU prior to failure? NO.

9
Elements of Transport protocols (Contd.)
  • Why do we want to know the last seq assigned?
    Suppose when the system recovers, the clock is
    1801. But the last seq assigned was 1870. If for
    a new session we start with 1801, then the old
    TPDUs with numbers 1801-1870 may coexist with the
    new 1801-1870 in the network. This causes
    confusion. How do we solve this problem?

10
Elements of Transport protocols (Contd.)
  • Note that the rate at which a clock may advance
    may be smaller than the rate of generating TPDUs.
  • Each TPDU has both the connection and a
    sequence number.
  • Example Assume that the clock advances at the
    rate of 1 tick a second. At t30, a host crashed,
    and the last TPDU sent on connection 5 was with
    seq 80.
  • After recovering, at time t70, it reopens
    connection 5. The clock is now 70. So it starts
    the new connection with seq 70. Subsequenetly it
    sends TPDUs 70-85. The new 80 may clash with the
    old 80 at the destination which treats as them
    duplicates.
  • One solution is for the recovered host to wait
    for T (time-to-live) units of time prior to
    starting a new session. This way all the old
    TPDUs may have exited the network by now. But
    this may be too long time to wait.

11
Elements of Transport protocols (Contd.)
  • Two-way handshake to set up a connection may not
    work? Suppose A sends a connection set up request
    with an initial seq number. B accepts the request
    and sends a connection acceptance. But is lost on
    the way. Now a duplicate of the original request
    arrives later. B thinks it is a new request and
    sends Acceptance for the new connection also.
    When A receives it, it thinks it is for the 1st
    one. So there is a confusion. Solution Three-way
    handshake.

12
Three-way handshake protocol
  • Each side can start with a different sequenec
    number
  • Host 1 chooses a seq. and sends a CR to host 2.
  • Host 2 sends an ACK with its own seq as well as
    the seq that it received in host 1s request. On
    receiving the ACK, host 1 starts sending data
    along with a piggy backed ACK for host 2s
    message.
  • Duplicate request Suppose a duplicate (delayed)
    CR reaches host 2. It sends an ACK. But when Host
    1receives the duplicate ACK, it rejects it and
    instead sends a REJECT message. Host 2 then
    abandons the connection.
  • Duplicate CR and delayed DATAACK from Host 1 On
    receiving the duplicate CR, host 2 will send an
    ACK for the old CR. When Host 1 receives it, it
    will send a REJECT.
  • Claim No combination of CR, CA, or other TPDUs
    can cause the protocol to fail.

13
Releasing a Connection
  • Asymmetric release (any one releasing breaks a
    connection) vs. symmetric release (treats the
    connection as two separate unidirectional
    connections)
  • Asymmetric When a host disconnects and stops
    sending, it should still be ready to receive
    TPDUs until the host gets the disconnect message
  • Symmetric Both should agree to disconnect? No
    such algorithm exists to reach consensus in a
    faulty environment.
  • Example The two-army problem

14
Releasing a connection (Cont.)
  • Three-way handshake to solve the problem in most
    cases
  • Host 1 sends DR Host 2 sends DR in return host
    1 sends an ACK and releases the connection when
    host 2 gets ACK, it too releases the connection.
  • In case the ACK is lost, host2 timesout and
    releases the connection.
  • In case the original DR from host 1 to host 2 is
    lost, host 1 times-out and retransmits.
  • Sometimes host 1 may have to several DRs and
    finally just disconnect after several attempts.

15
Flow-control and buffering
  • Flow-control is between the two hosts
  • At the data link layer, the flow-control is only
    between a DL at one node and all its neighbors.
    Generally, there are only a few of them.
  • At the transport layers, a host may be running
    several programs needing several transport
    connections. Thus, buffer allocation is an issue.
  • A network layer ACK does not imply transport
    layer ACK.
  • The sender should buffer a TPDU until it is
    assured that it has reached the destination host.
  • Variable length TPDUs (unlike fixed length data
    frames)

16
Flow-control and buffering
  • Source buffering vs. destination buffering
  • Low-BW bursty output Source buffering
  • File transfer and other high-bandwidth traffic
    Destination buffering
  • Buffers could be allocated per connection or
    collectively for all connections running between
    two hosts
  • Necessary to deal with dynamic buffer
    allocation---unlike DLL
  • Separate buffer space from ACK (this unlike DLL)
    See Fig 6-16

17
Flow-control and buffering
  • Each host should send control TPDUs with ACK and
    buffer allocation periodically to prevent
    deadlocks (in case earlier allocations are lost)
  • Another constraint is link capacity---we will
    discuss it later.
  • Upward multiplexing and downward multiplexing

18
Crash Recovery
  • Lost datagrams, disconnected VCs
  • Host (e.g. server) crashes---cannot be made
    transparent to higher layers
  • Truly End-to-end ACK???

19
A SIMPLE TRANSPORT PROTOCOL
  • TL Primitives
  • connumLISTEN(local)
  • connum CONNECT(local,remote)
  • statusSEND(connum, buffer, bytes)
  • statusRECEIVE(connum, buffer, bytes)
  • statusDISCONNECT(connum)
  • Interaction with the network layer to_net, and
    from_net calls
  • Packet types CALL REUQUEST, CALL ACCEPTED, CLEAR
    REQUEST, CLEAR CONFIRMATION, DATA, CREDIT

20
INTERNET TRANSPORT PROTOCOLS
  • TCP---Connection-oriented
  • UDP---connectionless
  • The chapters focus is on TCP
  • TCP---Transmission Control Protocol
  • Reliable end-to-end byte stream over an
    unreliable internetwork

21
TCP Service Model
  • End points Sockets
  • Socket number host IP 16-bit port number local
    to host
  • Connections are identified by the socket pairs at
    both ends
  • All TCP connections are full-duplex and
    point-to-point
  • Byte stream and not message stream
  • If an application wants TCP to send data
    immediately (I.e., not wait for other data to
    come), it can use a PUSH flag
  • URGENT data flag

22
A SIMPLE TRANSPORT PROTOCOL
  • Each transport connection is always in one of
    seven states
  • IDLE
  • WAITING
  • QUEUED
  • ESTABLISHED
  • SENDING
  • RECEIVING
  • DISCONNECTING
  • State transitions occur when a primitive is
    executed, a packet arrives, or the timer expires
  • State transition table Fig 6-21 (Page 523)
  • See Figure 6-21
Write a Comment
User Comments (0)
About PowerShow.com