Transport layer -- May 20041 Transport layer Computer Networks.

106
Transport layer -- May 2004 1 Transport layer Computer Networks

Transcript of Transport layer -- May 20041 Transport layer Computer Networks.

Page 1: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 1

Transport layer

Computer Networks

Page 2: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 2

Transport Layer Services

Elements of transport protocol

Simple transport protocol

UDP

Remote Procedure Call (see Distributed Systems)

TCP

Page 3: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 3

Layer overview

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Page 4: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 4

Layer overview

Host 1

Network layer

Application layer

Transport entity

Host 2

Network layer

Application layer

Transport entityTPDU

Transportaddresses

Network addresses

Page 5: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 5

Services To upper layer

o efficient, reliable, cost-effective service

o 2 kinds• Connection oriented

• Connectionless

Page 6: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 6

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

Page 7: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 7

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

Page 8: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 8

Simple service: primitives

listen Wait till a process wants a connection

connect Try to setup a connection

send Send data packet

receive Wait for arrival of data packet

disconnect Calling side breaks up the connection

No TPDU

Connection Request TPDU

Data TPDU

No TPDU

Disconnect TPDU

Page 9: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 9

Simple service: state diagram

Page 10: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 10

Simple service: state diagram

Page 11: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 11

Simple service: state diagram

Page 12: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 12

Berkeley service primitives Used in Berkeley UNIX for TCP Addressing primitives:

Server primitives:

Client primitives:

socket

bind

listen

accept

send + receive

close

connect

send + receive

close

Page 13: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 13

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

Page 14: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 14

Transport Layer Services

Elements of transport protocol

Simple transport protocol

UDP

Remote Procedure Call (see Distributed Systems)

TCP

Page 15: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 15

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

Page 16: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 16

etp: Transport <> data link Physical channel <> subnet

Explicit addressing

Connection establishment

Potential existence of storage capacity in subnet

Dynamically varying number of connections

Page 17: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 17

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?

Page 18: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 18

etp: Addressing Connection scenario

Page 19: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 19

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

Page 20: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 20

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

Page 21: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 21

etp: Addressing Getting TSAP addresses?

o Initial connection protocol• to avoid many waiting servers one process server

– waits on many TSAPs

– creates requested server

Page 22: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 22

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

Page 23: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 23

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?

Page 24: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 24

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

Page 25: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 25

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

If we wait a time T after sending a packet all traces of it (including Acks) are gone

Maximum packet lifetime T

Page 26: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 26

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!

Page 27: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 27

etp: Establishing a connection Tomlinson’s method

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

Never reuse a sequence number x within the lifetime T for the packet with x

Forbidden region

Page 28: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 28

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

Page 29: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 29

etp: Establishing a connection Tomlinson - forbidden region

Page 30: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 30

etp: Establishing a connection Tomlinson – three-way-handshake

No combination of delayed packets can cause the protocol to fail

Page 31: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 31

etp: Establishing a connection Tomlinson – three-way-handshake

Page 32: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 32

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

Page 33: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 33

Asymmetric: data loss

etp: Releasing a connection

Page 34: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 34

Symmetric: two-army-problem

etp: Releasing a connection

Simultaneous attack by blue army

Communication is unreliable

No protocol exists!!

Page 35: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 35

Three-way-handshake + timerso 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

etp: Releasing a connection

Page 36: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 36

etp: Releasing a connection

RC

Page 37: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 37

etp: Releasing a connection

RS

Page 38: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 38

etp: Flow control and buffering

Transport Data link

connections, lines many

varying

few

fixed

(sliding) window size varying fixed

buffer management different sizes? fixed size

Page 39: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 39

etp: Flow control and buffering Buffer organization

Page 40: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 40

etp: Flow control and buffering Buffer management: decouple buffering from Acks

Page 41: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 41

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

Page 42: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 42

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

Page 43: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 43

etp: Multiplexing Upward: reduce number of network connections to reduce cost

Downward: increase bandwidth to avoid per connection limits

Page 44: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 44

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?

o assumptions:• no state saved at crashed server

• no simultaneous events

o NOT POSSIBLE

Recovery from a layer N crash can only

be done by layer N+1 and only if the

higher layer retains enough status

information.

Page 45: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 45

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?

Page 46: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 46

etp: Crash recovery Illustration of problem: File transfer

Page 47: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 47

Transport Layer Services

Elements of transport protocol

Simple transport protocol

UDP

Remote Procedure Call (see Distributed Systems)

TCP

Page 48: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 48

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

Page 49: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 49

Transport entityo Uses a connection-oriented reliable networko Programmed as a library packageo 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

Simple transport protocol

Page 50: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 50

Transport entity: packet types

Simple transport protocol

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

Page 51: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 51

Transport entity: state of a connection

Simple transport protocol

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

Page 52: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 52

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?

Page 53: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 53

Example Transport Entity (1)

Page 54: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 54

Example Transport Entity (2)

Page 55: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 55

Example Transport Entity (3)

Page 56: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 56

Example Transport Entity (4)

Page 57: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 57

Example Transport Entity (5)

Page 58: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 58

Example Transport Entity (6)

Page 59: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 59

Example Transport Entity (7)

Page 60: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 60

Example Transport Entity (8)

Page 61: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 61

Transport Layer Services

Elements of transport protocol

Simple transport protocol

UDP

Remote Procedure Call (see Distributed Systems)

TCP

Page 62: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 62

UDP User Data Protocol

o Datagram service between processes• No connection overhead

o UDP header:• Ports = identification of end points

Page 63: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 63

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?

Page 64: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 64

Transport Layer Services

Elements of transport protocol

Simple transport protocol

UDP

Remote Procedure Call (see Distributed Systems)

TCP

Page 65: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 65

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-orientedo handshaking to get at initial state

full duplex datao bi-directional data flow in same connection

Page 66: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 66

TCP service model … send & receive buffers

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Page 67: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 67

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 exchangeo 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

Page 68: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 68

TCP header

Page 69: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 69

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

Page 70: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 70

TCP header Flags:

o URG: urgent pointer in useo ACK: valid Acknowledgement numbero PSH: receiver should deliver data without delay to usero RST: reset connectiono SYN: used when establishing connectionso FIN: used to release connection

Options:o Maximum payload a host is willing to receiveo Scale factor window sizeo Use selective repeat instead of go back n

Page 71: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 71

TCP connection management Three-way handshake

o Initial sequence number: clock basedo No reboot after crash for T (maximum packet lifetime=120 sec)

o Wrap around?

Connection identificationo Pair of ports of end points

Connection releaseo Both sides are closed separately

o No response to FIN: release after 2*T

o Both sides closed: wait for time 2 * T

Page 72: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 72

TCP connection management

Page 73: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 73

Page 74: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 74

TCP connection managementState 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

Page 75: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 75

TCP transmission policy Window size decoupled from Acks (ex. next slides)

Window = 0 no packets except foro 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

Page 76: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 76

TCP transmission policy

Page 77: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 77

Page 78: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 78

TCP transmission policy Telnet scenario: interactive editor reacting on each

keystroke: One character typed21 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 mseco 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)

Page 79: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 79

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

TCP transmission policy

Page 80: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 80

TCP transmission policy

Page 81: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 81

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

Page 82: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 82

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!

Page 83: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 83

Causes/costs of congestion: scenario

two senders, two receivers

one router, infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

Page 84: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 84

Approaches towards congestion control

end-to-end congestion control:

no explicit feedback from network

congestion inferred from end-system observed loss, delay

approach taken by TCP

Network-assisted congestion control:

routers provide feedback to end systemso single bit indicating

congestion (SNA, ATM)

o explicit rate sender should send at

Two broad approaches towards congestion control:

Page 85: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 85

TCP Congestion Control How to detect congestion? Timeout caused by packet loss: reasons

o Transmission errors

o Packed discarded at congested router

: Rare

Packet loss

Hydraulic example illustrating two limitations for sender!

for wired networks

Page 86: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 86

TCP congestion control

Page 87: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 87

TCP Congestion Control How to detect congestion? Timeout caused by packet loss: reasons

o Transmission errors

o Packed discarded at congested router

: Rare

Packet loss congestion

Approach: 2 windows for sender

Receiver window

Congestion window Minimum of

Page 88: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 88

TCP Congestion Control

end-end control (no network assistance) transmission rate limited by congestion window size, Congwin, over

segments:

w segments, each with MSS bytes sent in one RTT:

throughput = w * MSS

RTT Bytes/sec

Congwin

Page 89: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 89

TCP Congestion Control:

two “phases”o slow start

o congestion avoidance

important variables:o Congwino threshold: defines

threshold between two phases:

• slow start phase

• congestion control phase

“probing” for usable bandwidth: o ideally: transmit as fast as

possible (Congwin as large as possible) without loss

o increase Congwin until loss (congestion)

o loss: decrease Congwin, then begin probing (increasing) again

Page 90: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 90

TCP Slow start

exponential increase (per RTT) in window size (not so slow!)

loss event: timeout (Tahoe TCP) and/or three duplicate ACKs (Reno TCP)

initialize: Congwin = 1for (each segment ACKed) Congwin++until (loss event OR CongWin > threshold)

Slow start algorithmHost A

one segment

RTT

Host B

time

two segments

four segments

Page 91: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 91

TCP Congestion Avoidance

/* slowstart is over */ /* Congwin > threshold */Until (loss event) { every w segments ACKed: Congwin++ }threshold = Congwin/2Congwin = 1perform slowstart

Congestion avoidance

1

1: TCP Reno skips slowstart (fast recovery) after three duplicate ACKs

Page 92: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 92

TCP congestion control

Page 93: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 93

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

Consequenceso Too small: unnecessary retransmissions

o Too large: poor performance Solution: adjust timeout interval based on continuous

measurements of network performance

Page 94: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 94

TCP timer management

Data link layer Transport layer

Page 95: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 95

TCP timer management Algorithm of Jacobson:

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

Timeout = RTT + 4 * D

Page 96: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 96

TCP timer management Algorithm of Jacobson:

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

Timeout = RTT + 4 * D

Page 97: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 97

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

• = 2 T

Page 98: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 98

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

Solution for wireless networks:o Retransmit asap

Wireless: Lower throughput – same loss NO solution

Page 99: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 99

Wireless TCP Heterogeneous networks

Solutions?o Retransmissions can cause congestion in wired network

Page 100: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 100

Wireless TCP Solutions for heterogeneous networks

o Indirect TCP+ 2 homogeneous connections

– violates TCP semantics

Page 101: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 101

Wireless TCP Solutions for heterogeneous networks

o Snooping agent at base station

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

mobile host

Snooping agent

Conges

tion a

lgorit

hm may

be in

voked

Page 102: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 102

Wireless UDP UDP = datagram service loss permitted

no problems?

Programs using UDP expect it to behighly reliable

Wireless UDP: far from perfect!!!

Implications for programs recovering from lost UDP messages

Page 103: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 103

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?

Page 104: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 104

Transactional TCPHow 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

Page 105: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 105

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 TCPo Allow data transfer during setup

o Immediate close of stream

Page 106: Transport layer -- May 20041 Transport layer Computer Networks.

Transport layer -- May 2004 106

Transport layer

Computer Networks