PowerPoint Presentation - Katholieke Universiteit Leuven by mudoc123

VIEWS: 16 PAGES: 106

									Computer Networks



Transport layer


     Transport layer -- May 2004   1
             Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP




                     Transport layer -- May 2004    2
Layer overview

application
 transport
  network
 data link                network
  physical                data link
              network     physical
              data link
              physical
                           network
                           data link
                           physical          network
                                             data link
                                             physical

                                 network
                                 data link
                                 physical


                                              application
                                               transport
                                                network
                                               data link
                                                physical




              Transport layer -- May 2004                   3
               Layer overview
   Host 1            Transport                       Host 2
                     addresses
Application layer                              Application layer



  Transport entity         TPDU                     Transport entity




                     Network
Network layer                                      Network layer
                     addresses


                     Transport layer -- May 2004                       4
                        Services
 To upper layer
   o efficient, reliable, cost-effective service
   o 2 kinds
       • Connection oriented
       • Connectionless




                          Transport layer -- May 2004   5
                       Services
 needed from network layer
   o packet transport between hosts
   o relationship network <> transport
       • Hosts <> processes
       • Transport service
           – independent network
           – more reliable
       • Network
           – run by carrier
           – part of communication subnet for WANs




                          Transport layer -- May 2004   6
        Simple service: primitives
 Simple primitives:
   o   connect
   o   send
   o   receive
   o   disconnect

 How to handle incoming connection request in
  server process?
   Wait for connection request from client!
   o listen




                       Transport layer -- May 2004   7
         Simple service: primitives
listen        Wait till a process wants a connection
              No TPDU
connect       Try to setup a connection
              Connection Request TPDU
send          Send data packet
              Data TPDU
receive       Wait for arrival of data packet
              No TPDU
disconnect    Calling side breaks up the connection
              Disconnect TPDU



                        Transport layer -- May 2004    8
Simple service: state diagram




           Transport layer -- May 2004   9
Simple service: state diagram




           Transport layer -- May 2004   10
Simple service: state diagram




           Transport layer -- May 2004   11
    Berkeley service primitives
 Used in Berkeley UNIX for TCP
 Addressing primitives:              socket
                                      bind

 Server primitives:                  listen
                                      accept
                                      send + receive
                                      close
 Client primitives:
                                      connect
                                      send + receive
                                      close



                       Transport layer -- May 2004     12
    Berkeley service primitives
socket    create new communication end point

bind      attach a local address to a socket

listen    announce willingness to accept connections; give queue size

accept    block caller until a connection request arrives

connect   actively attempt to establish a connection

send      send some data over the connection

receive   receive some data from the connection

close     release the connection



                               Transport layer -- May 2004              13
             Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP




                     Transport layer -- May 2004    14
Elements of transport protocols (etp)
 Transport <> Data Link
 Addressing
 Establishing a connection
 Releasing a connection
 Flow control and buffering
 Multiplexing
 Crash recovery




                     Transport layer -- May 2004   15
   etp: Transport <> data link
 Physical channel <> subnet




         Explicit addressing
         Connection establishment
         Potential existence of storage capacity in subnet
         Dynamically varying number of connections
                          Transport layer -- May 2004        16
             etp: Addressing
 TSAP = transport service access point
   o Internet: IP address + local port
   o ATM: AAL-SAPs
 Connection scenario
 Getting TSAP addresses?
 From TSAP address to NSAP address?




                    Transport layer -- May 2004   17
            etp: Addressing
 Connection scenario




                    Transport layer -- May 2004   18
              etp: Addressing
 Connection scenario
  o Host 2 (server)
     • Time-of-day server attaches itself to TSAP 1522
  o Host 1 (client)
     • Connect from TSAP 1208 to TSAP 1522
     • Setup network connection to host 2
     • Send transport connection request
  o Host 2
     • Accept connection request




                         Transport layer -- May 2004     19
              etp: Addressing
 Getting TSAP addresses?
  o Stable TSAP addresses
     • For key services
     • Not for user processes
         – active for a short time
         – number of addresses limited
  o Name servers
     • to find existing servers
     • map service name into TSAP address
  o Initial connection protocol



                        Transport layer -- May 2004   20
                etp: Addressing
 Getting TSAP addresses?
  o Initial connection protocol
       • to avoid many waiting servers  one process server
            – waits on many TSAPs
            – creates requested server




                           Transport layer -- May 2004        21
                 etp: Addressing
 From TSAP address to NSAP address?
   o hierarchical addresses
       • address = <country> <network> <host> <port>
           – Examples: IP address + port
                        Telephone numbers (<> number portability?)
       • Disadvantages:
           – TSAP bound to host!
   o flat address space
       • Advantages:
           – Independent of underlying network addresses
           – TSAP address not bound to host
       • Mapping to network addresses:
           – Name server
           – broadcast

                            Transport layer -- May 2004              22
 etp: Establishing a connection
 Problem: delayed duplicates!
 Scenario:
   o Correct bank transaction
       • connect
       • data transfer
       • disconnect
   o Problem: same packets are received in same order a
     second time!

                         Recognized?


                          Transport layer -- May 2004     23
 etp: Establishing a connection
 Unsatisfactory solutions:
  o throwaway TSAP addresses
      • need unlimited number of addresses?
      • process server solution impossible
   o connection identifier
      • Never reused!
          Maintain state in hosts


 Satisfactory solutions




                         Transport layer -- May 2004   24
 etp: Establishing a connection
 Satisfactory solutions
   o Ensure limited packet lifetime (incl. Acks)
   o Mechanisms
       • prevent packets from looping + bound congestion delay
       • hopcounter in each packet
       • timestamp in each packet
   o Basic assumption


                                   Maximum packet lifetime T
       If we wait a time T after sending a packet all traces
       of it (including Acks) are gone
                           Transport layer -- May 2004           25
 etp: Establishing a connection
 Tomlinson’s method
   o requires: clock in each host
       • Number of bits > number of bits in sequence number
       • Clock keeps running, even when a hosts crashes
   o Basic idea:




           2 identically numbered TPDUs are
           never outstanding at the same time!



                          Transport layer -- May 2004         26
 etp: Establishing a connection
 Tomlinson’s method
        Never reuse a sequence number x within
        the lifetime T for the packet with x
  o Problems to solve
     • Selection of the initial sequence number for a new connection
     • Wrap around of sequence numbers for an active connection
     • Handle host crashes




                                     Forbidden region
                         Transport layer -- May 2004               27
 etp: Establishing a connection
 Tomlinson’s method
   o Initial sequence number
               = lower order bits of clock
   o Ensure initial sequence numbers are always OK
                forbidden region
   o Wrap around
      • Idle
      • Resynchronize sequence numbers




                        Transport layer -- May 2004   28
 etp: Establishing a connection
 Tomlinson - forbidden region




                    Transport layer -- May 2004   29
     etp: Establishing a connection
    Tomlinson – three-way-handshake




No combination of
delayed packets can
cause the protocol to fail




                             Transport layer -- May 2004   30
 etp: Establishing a connection
 Tomlinson – three-way-handshake




                   Transport layer -- May 2004   31
   etp: Releasing a connection
 2 styles:
   o Asymmetric
      • Connection broken when one party hangs up
      • Abrupt!  may result in data loss
   o Symmetric
      • Both parties should agree to release connection
      • How to reach agreement? Two-army problem
      • Solution: three-way-handshake
   o Pragmatic approach
      • Connection = 2 unidirectional connections
      • Sender can close unidirectional connection



                          Transport layer -- May 2004     32
   etp: Releasing a connection
 Asymmetric: data loss




                    Transport layer -- May 2004   33
     etp: Releasing a connection
  Symmetric: two-army-problem


              Simultaneous attack by blue army
              Communication is unreliable




No protocol exists!!

                         Transport layer -- May 2004   34
    etp: Releasing a connection
 Three-way-handshake + timers
   o Send disconnection request
      + start timer RS to resend (at most N times)
               the disconnection request
   o Ack disconnection request
      + start timer RC to release connection




                        Transport layer -- May 2004   35
etp: Releasing a connection




                                             RC




          Transport layer -- May 2004   36
     etp: Releasing a connection


RS




               Transport layer -- May 2004   37
etp: Flow control and buffering
                                Transport                Data link
   connections, lines           many                     few
                                varying                  fixed

   (sliding) window size        varying                  fixed


   buffer management            different sizes?         fixed size




                           Transport layer -- May 2004                38
etp: Flow control and buffering
 Buffer organization




                    Transport layer -- May 2004   39
etp: Flow control and buffering
 Buffer management: decouple buffering from Acks




                       Transport layer -- May 2004   40
etp: Flow control and buffering
 Where to buffer?
  o datagram network  @ sender
  o reliable network
  + Receiver process guarantees free buffers?
       • No: for low-bandwidth bursty traffic
             @ sender
       • Yes: for high-bandwidth smooth traffic
             @ receiver




                           Transport layer -- May 2004   41
etp: Flow control and buffering
 Window size?
  o Goal:
     • Allow sender to continuously send packets
     • Avoid network congestion
  o Approach:
     • maximum window size = c * r
        – network can handle c TPDUs/sec
        – r = cycle time of a packet
     • measure c & r and adapt window size




                         Transport layer -- May 2004   42
                etp: Multiplexing
 Upward: reduce number of network connections to reduce cost
 Downward: increase bandwidth to avoid per connection limits




                             Transport layer -- May 2004        43
            etp: Crash recovery
 recovery from network, router crashes?
   o No problem
       • Datagram network: loss of packet is always handled
       • Connection-oriented network: establish new connection + use
         state to continue service
 recovery from host crash?
   o server crashes, restarts: implications for client?
   Recovery from a layer N crash can only
   o assumptions:
         no state saved at N+1 server
    be •done by layer crashed and only if the
       • no
    higher simultaneous events
            layer retains enough status
   o NOT POSSIBLE
    information.
                           Transport layer -- May 2004             44
            etp: Crash recovery
 Illustration of problem: File transfer:
   o Sender: 1 bit window protocol: states S0, S1
       • packet with seq number 0 transmitted; wait for ack
   o Receiver: actions
       • Ack packet
       • Write data to disk
       • Order?




                              Transport layer -- May 2004     45
          etp: Crash recovery
 Illustration of problem: File transfer




                      Transport layer -- May 2004   46
             Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP




                     Transport layer -- May 2004    47
     Simple transport protocol
 Service primitives:
   o connum = LISTEN (local)
       • Caller is willing to accept connection
       • Blocked till request received
   o connum = CONNECT ( local, remote)
       • Tries to establish connection
       • Returns identifier (nonnegative number)
   o status = SEND (connum, buffer, bytes)
       • Transmits a buffer
       • Errors returned in status
   o status = RECEIVE (connum, buffer, bytes)
       • Indicates caller’s desire to get data
   o status = DISCONNECT (connum)
       • Terminates connection


                               Transport layer -- May 2004   48
     Simple transport protocol
 Transport entity
   o Uses a connection-oriented reliable network
   o Programmed as a library package
   o Network interface
       • ToNet(…)
       • FromNet(…)
       • Parameters:
           – Connection identifier (connum = VC)
           – Q bit: 1 = control packet
           – M bit: 1 = more data packets to come
           – Packet type
           – Pointer to data
           – Number of bytes of data

                           Transport layer -- May 2004   49
     Simple transport protocol
 Transport entity:        packet types

         Network packet                           Meaning

      Call request             Sent to establish a connection

      Call accepted            Response to Call Request

      Clear Request            Sent to release connection

      Clear confirmation       Response to Clear request

      Data                     Used to transport data

      Credit                   Control packet to manage window


                             Transport layer -- May 2004         50
     Simple transport protocol
 Transport entity:    state of a connection

               State                         Meaning

      Idle               Connection not established

      Waiting            CONNECT done; Call Request sent

      Queued             Call Request arrived; no LISTEN yet

      Established

      Sending            Waiting for permission to send a packet

      Receiving          RECEIVE has been done

      Disconnecting      DISCONNECT done locally


                         Transport layer -- May 2004               51
     Simple transport protocol
 Transport entity: code
   o See fig 6-20, p. 514 – 517
   o To read and study at home!
   o Questions?
       • Is it acceptable not to use a transport header?
       • How easy would it be to use another network protocol?




                           Transport layer -- May 2004           52
Example Transport Entity (1)




           Transport layer -- May 2004   53
Example Transport Entity (2)




           Transport layer -- May 2004   54
Example Transport Entity (3)




           Transport layer -- May 2004   55
Example Transport Entity (4)




           Transport layer -- May 2004   56
Example Transport Entity (5)




           Transport layer -- May 2004   57
Example Transport Entity (6)




           Transport layer -- May 2004   58
Example Transport Entity (7)




           Transport layer -- May 2004   59
Example Transport Entity (8)




           Transport layer -- May 2004   60
             Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP




                     Transport layer -- May 2004    61
                             UDP
 User Data Protocol
  o Datagram service between processes
      • No connection overhead
   o UDP header:
      • Ports = identification of end points




                           Transport layer -- May 2004   62
                         UDP
 Some characteristics
   o Supports broadcasting, multicasting
     (not in TCP)
   o Packet oriented
     (TCP gives byte stream)
   o Simple protocol




   o Why needed above IP?


                        Transport layer -- May 2004   63
             Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP




                     Transport layer -- May 2004    64
            TCP service model
 point-to-point
   o one sender, one receiver
 reliable, in-order byte stream
   o no message/packet boundaries
 pipelined & flow controlled
   o window size set by TCP congestion and flow control
     algorithms
 connection-oriented
   o handshaking to get at initial state
 full duplex data
   o bi-directional data flow in same connection

                        Transport layer -- May 2004       65
          TCP service model
…
 send & receive buffers




                    Transport layer -- May 2004   66
                   TCP protocol
 Three-way handshake to set up connections
 Every byte has its own 32-bit sequence number
   o Wrap around
   o 32-bit Acks; window size in bytes
 Segment = unit of data exchange
   o 20-byte header + options + data
   o Limits for size
       • 64Kbyte
       • MTU, agreed upon for each direction
   o Data from consecutive writes may be accumulated in a single
     segment
   o Fragmentation possible
 Sliding window protocol
                            Transport layer -- May 2004            67
TCP header




  Transport layer -- May 2004   68
                    TCP header
 source & destination ports (16 bit)
 sequence number (32 bit)
 Acknowledgement number (32 bit)
 Header length (4 bits) in 32-bit words
 6 flags (1 bit)
 window size (16 bit): number of bytes the sender is
  allowed to send starting at byte acknowledged
 checksum (16 bit)
 urgent pointer (16 bit) : byte position of urgent data


                      Transport layer -- May 2004      69
                  TCP header
 Flags:
   o URG: urgent pointer in use
   o ACK: valid Acknowledgement number
   o PSH: receiver should deliver data without delay to user
   o RST: reset connection
   o SYN: used when establishing connections
   o FIN: used to release connection
 Options:
  o Maximum payload a host is willing to receive
  o Scale factor window size
  o Use selective repeat instead of go back n

                        Transport layer -- May 2004        70
  TCP connection management
 Three-way handshake
   o Initial sequence number: clock based
   o No reboot after crash for T (maximum packet lifetime=120 sec)
   o Wrap around?
 Connection identification
  o Pair of ports of end points
 Connection release
  o Both sides are closed separately
  o No response to FIN: release after 2*T
  o Both sides closed: wait for time 2 * T

                           Transport layer -- May 2004           71
TCP connection management




         Transport layer -- May 2004   72
Transport layer -- May 2004   73
TCP connection management
         State                            Description

Closed           No connection is active or pending
Listen           The server is waiting for an incoming call
SYN rcvd         A connection request has arrived; wait for ACK
SYN sent         The application has started to open a connection
Established      The normal data transfer state
FIN wait 1       The application has said it is finished
FIN wait 2       The other side has agreed to release
Timed wait       Wait for all packets to die off
Closing          Both sides have tried to close simultaneously
Close wait       The other side has initiated a release
Last Ack         Wait for all packets to die off


                          Transport layer -- May 2004               74
      TCP transmission policy
 Window size decoupled from Acks (ex. next slides)
 Window = 0  no packets except for
  o Urgent data
  o 1 byte segment to send Ack & window size
 Incoming user data may be buffered
   o May improve performance: less segments to send
 Ways to improve performance:
  o Delay acks and window updates for 500 msec
  o Nagle’s algorithm
  o Silly window syndrome

                      Transport layer -- May 2004     75
TCP transmission policy




        Transport layer -- May 2004   76
Transport layer -- May 2004   77
       TCP transmission policy
 Telnet scenario: interactive editor reacting on each
  keystroke: One character typed
    21 byte segment or 41 byte IP packet
    (packet received) 20 byte segment with Ack
    (editor has read byte) 20 byte segment with window update
    (editor has processed byte; sends echo) 21 byte segment
    (client gets echo) 20 byte segment with Ack
 Solutions:
   o delay acks + window updates for 500 msec
   o Nagle’s algorithm:
        •   Receive one byte from user; send it in segment
        •   Buffer all other chars till Ack for first char arrives
        •   Send other chars in a single segment
        •   Disable algorithm for X-windows applications (do not delay sending
            of mouse movements)
                                Transport layer -- May 2004                  78
       TCP transmission policy
 Silly window syndrome
   o Problem:
       • Sender transmits data in large blocks
       • Receiver reads data 1 byte at a time
   o Scenario: next slide
   o Solution:
       • Do not send window update for 1 byte
       • Wait for window update till
           – Receiver can accept MTU
           – Buffer is half empty




                              Transport layer -- May 2004   79
TCP transmission policy




        Transport layer -- May 2004   80
       TCP transmission policy
 General approach:
   o Sender should not send small segments
        • Nagle: buffer data in TCP send buffer
    o Receiver should not ask for small segments
        • Silly window: do window updates in large units




                              Transport layer -- May 2004   81
  Principles of Congestion Control
Congestion:
 informally: “too many sources sending too much data too
  fast for network to handle”
 different from flow control!
   = end-to-end issue!
 manifestations:
   o lost packets (buffer overflow at routers)
   o long delays (queue-ing in router buffers)
 a top-10 problem!




                         Transport layer -- May 2004        82
    Causes/costs of congestion: scenario

 two senders, two
  receivers
 one router, infinite
  buffers
 no retransmission



                                                        large delays
                                                         when congested
                                                        maximum
                                                         achievable
                                                         throughput
                         Transport layer -- May 2004              83
Approaches towards congestion control
Two broad approaches towards congestion control:
 end-to-end congestion            Network-assisted
   control:                         congestion control:
  no explicit feedback from       routers provide feedback
   network                            to end systems
  congestion inferred from            o single bit indicating
   end-system observed loss,              congestion (SNA, ATM)
   delay                               o explicit rate sender
  approach taken by TCP                  should send at



                       Transport layer -- May 2004             84
      TCP Congestion Control
 How to detect congestion?
 Timeout caused by packet loss: reasons
   o Transmission errors : Rare for wired networks
   o Packed discarded at congested router

                          Packet loss



       Hydraulic example illustrating two limitations
       for sender!


                        Transport layer -- May 2004     85
TCP congestion control




        Transport layer -- May 2004   86
       TCP Congestion Control
   How to detect congestion?
   Timeout caused by packet loss: reasons
     o Transmission errors : Rare
     o Packed discarded at congested router

                            Packet loss  congestion


        Approach: 2 windows for sender
                 Receiver window
Minimum of      Congestion window

                         Transport layer -- May 2004   87
         TCP Congestion Control
 end-end control (no network assistance)
 transmission rate limited by congestion window size, Congwin, over
   segments:




            Congwin


 w segments, each with MSS bytes sent in one RTT:
                               w * MSS
               throughput =            Bytes/sec
                                RTT

                              Transport layer -- May 2004              88
      TCP Congestion Control:
 “probing” for usable                two “phases”
  bandwidth:                            o slow start
   o ideally: transmit as fast as       o congestion avoidance
     possible (Congwin as large as
                                    important variables:
     possible) without loss
                                      o Congwin
   o increase Congwin until loss
     (congestion)                     o threshold: defines
                                        threshold between two
   o loss: decrease Congwin, then
                                        phases:
     begin probing (increasing)
                                          • slow start phase
     again
                                                • congestion control phase




                          Transport layer -- May 2004                        89
                  TCP Slow start
                                                      Host A   Host B
Slow start algorithm




                                                RTT
 initialize: Congwin = 1
 for (each segment ACKed)
      Congwin++
 until (loss event OR
        CongWin > threshold)
  exponential increase (per RTT)
   in window size (not so slow!)
  loss event: timeout (Tahoe
                                                                        time
   TCP) and/or three duplicate
   ACKs (Reno TCP)

                             Transport layer -- May 2004                 90
     TCP Congestion Avoidance

Congestion avoidance
/* slowstart is over   */
/* Congwin > threshold */
Until (loss event) {
  every w segments ACKed:
     Congwin++
  }
threshold = Congwin/2
Congwin = 1
                   1
perform slowstart
1: TCP Reno skips slowstart (fast
recovery) after three duplicate ACKs
                               Transport layer -- May 2004   91
TCP congestion control




        Transport layer -- May 2004   92
       TCP timer management
 How long should the timeout interval be?
  o Data link: expected delay predictable
  o Transport: different environment; impact of
       • Host
       • Network (routers, lines)
     unpredictable
 Consequences
  o Too small: unnecessary retransmissions
   o Too large: poor performance
 Solution: adjust timeout interval based on continuous
  measurements of network performance
                           Transport layer -- May 2004    93
TCP timer management




 Data link layer                                 Transport layer


                   Transport layer -- May 2004                     94
     TCP timer management
 Algorithm of Jacobson:
                                   Timeout = RTT + 4 * D
  o RTT = best current estimate of the round-trip time
  o D   = mean deviation (cheap estimator of the standard
    variance)
  o 4?
      • Less than 1% of all packets come in more than 4 standard
        deviations late
      • Easy to compute




                          Transport layer -- May 2004              95
      TCP timer management
 Algorithm of Jacobson:
                                         Timeout = RTT + 4 * D
   o RTT =  RTT + (1 -) M                   = 7/8
         M = last measurement of round-trip time


   o D       =  D + (1 - ) RTT - M
 Karn’s algorithm: how handle retransmitted segments?
  o Do not update RTT for retransmitted segments
  o Double timeout



                             Transport layer -- May 2004   96
      TCP timer management
 Other timers:
  o Persistence timer
      • Problem: lost window update packet when window is 0
      • Sender transmits probe; receivers replies with window size
   o Keep alive timer
      • Check whether other side is still alive if connection is idle for a
        long time
      • No response: close connection
   o Timed wait
      • Make sure all packets are died off when connection is closed
      • =2T



                            Transport layer -- May 2004                  97
         Wireless TCP & UDP
 Transport protocols
   o Independent of underlying network layer
   o BUT: carefully optimized for wired networks
   o Assumption:
       • Packet loss caused by congestion
       • Invalid for wireless networks: always loss of packets
 Congestion algorithm:
  o Timeout ( = congestion)  slowdown
       Wireless: Lower throughput – same loss  NO solution

 Solution for wireless networks:
   o Retransmit asap
                           Transport layer -- May 2004           98
                Wireless TCP
 Heterogeneous networks




 Solutions?
   o Retransmissions can cause congestion in wired network

                       Transport layer -- May 2004       99
                Wireless TCP
 Solutions for heterogeneous networks
   o Indirect TCP
      + 2 homogeneous connections
      – violates TCP semantics




                        Transport layer -- May 2004   100
                   Wireless TCP
 Solutions for heterogeneous networks
   o Snooping agent at base station




                                                  Snooping
                                                  agent
      •   Cashes segments for mobile host
      •   Retransmits segment if ack is missing
      •   Removes duplicate acks
      •   Generates selective repeat requests for segments originating at
          mobile host

                             Transport layer -- May 2004               101
              Wireless UDP
 UDP = datagram service  loss permitted
            no problems?

 Programs using UDP expect it to be
     highly reliable
 Wireless UDP: far from perfect!!!


 Implications for programs recovering from lost
  UDP messages


                     Transport layer -- May 2004   102
          Transactional TCP
 How to implement RPC?
  o On top of UDP?
  o Yes if
     • Request and reply fit in a single packet
     • Operations are idempotent
  o Otherwise
     • Reimplementation of reliability


  o On top of TCP?




                          Transport layer -- May 2004   103
               Transactional TCP
How to implement RPC?
 On top of UDP?
    o Yes if
        • Request and reply fit in a single
          packet
        • Operations are idempotent
    o Otherwise
        • Reimplementation of reliability
 On top of TCP?
   o Unattractive because of connection
     set up
 Solution: transactional TCP


                                Transport layer -- May 2004   104
Transactional TCP
     How to implement RPC?
      On top of UDP?
          o Problems withreliability
      On top of TCP?
        o Overhead of connection set up
      Solution: transactional TCP
        o Allow data transfer during setup
        o Immediate close of stream




     Transport layer -- May 2004             105
Computer Networks



Transport layer


     Transport layer -- May 2004   106

								
To top