Lecture 7 Transport Protocols: UDP, TCP EECS 122 University of - - PowerPoint PPT Presentation

lecture 7 transport protocols udp tcp
SMART_READER_LITE
LIVE PREVIEW

Lecture 7 Transport Protocols: UDP, TCP EECS 122 University of - - PowerPoint PPT Presentation

Lecture 7 Transport Protocols: UDP, TCP EECS 122 University of California Berkeley TOC: Transport Protocols Why? Overview UDP TCP Summary EECS 122 Walrand 2 Transport: Why? IP provides a weak, but efficient service model


slide-1
SLIDE 1

Lecture 7 Transport Protocols: UDP, TCP

EECS 122 University of California Berkeley

slide-2
SLIDE 2

EECS 122 Walrand 2

TOC: Transport Protocols

Why? Overview UDP TCP Summary

slide-3
SLIDE 3

EECS 122 Walrand 3

Transport: Why?

IP provides a weak, but efficient service model (best-effort)

Packets can be delayed, dropped, reordered,

duplicated

Packets have limited size (why?)

IP packets are addressed to a host

How to decide which application gets which

packets?

How should hosts send into the network?

Too fast is bad; too slow is not efficient

slide-4
SLIDE 4

EECS 122 Walrand 4

Transport: Overview

Basic Features Illustration Ports UDP TCP Headers

slide-5
SLIDE 5

EECS 122 Walrand 5

Overview: Basic Features

Can provide more reliability, in order delivery, at most once delivery Supports messages of arbitrary length Provide a way to decide which packets go to which applications (multiplexing/demultiplexing) Govern when hosts should send data

slide-6
SLIDE 6

EECS 122 Walrand 6

Overview: Illustration

IP Transport A B C [A | B | p1 | p2 | …] p1 p2 p1 p2 p3 p1 p2 ports Application

HTTP DNS RA

UDP: Not reliable TCP: Ordered, reliable, well-paced

slide-7
SLIDE 7

EECS 122 Walrand 7

Overview: Ports

Need to decide which application gets which packets Solution: map each socket to a port Client must know server’s port Separate 16-bit port address space for UDP and TCP

(src IP, src port, dst IP, dst port) uniquely identifies TCP

connection

Well known ports (0-1023): everyone agrees which services run on these ports

e.g., ssh:22, http:80

  • n UNIX, must be root to gain access to these ports (why?)

ephemeral ports(most 1024-65535): given to clients

e.g. chatclient gets one of these

slide-8
SLIDE 8

EECS 122 Walrand 8

Overview: UDP

User Datagram Protocol minimalistic transport protocol same best-effort service model as IP messages of up to 64KB provides multiplexing/demultiplexing to IP does not provide congestion control advantage over TCP: does not increase end- to-end delay over IP application example: video/audio streaming

slide-9
SLIDE 9

EECS 122 Walrand 9

Overview: TCP

Transmission Control Protocol reliable, in-order, and at most once delivery messages can be of arbitrary length provides multiplexing/demultiplexing to IP provides congestion control and avoidance increases end-to-end delay over IP e.g., file transfer, chat

slide-10
SLIDE 10

EECS 122 Walrand 10

Overview: Headers

IP header used for IP routing, fragmentation, error detection… (we study that when we explore IP) UDP header used for multiplexing/demultiplexing, error detection TCP header used for multiplexing/demultiplexing, flow and congestion control

IP TCP UDP data TCP/UDP data TCP/UDP IP Application Sender data IP TCP UDP Application Receiver data TCP/UDP data TCP/UDP IP data

slide-11
SLIDE 11

EECS 122 Walrand 11

Transport: UDP

Service:

Send datagram from (IPa, Port 1) to (IPb, Port 2) Service is unreliable, but error detection possible

Header:

Source port Destination port 16 31 UDP length UDP checksum Payload (variable)

  • UDP length is UDP packet length

(including UDP header and payload, but not IP header)

  • Optional UDP checksum is over UDP packet

Why have UDP checksum in addition to IP checksum? Why not have just the UDP checksum? Why is the UDP checksum optional?

slide-12
SLIDE 12

EECS 122 Walrand 12

Transport: TCP

Service Steps 3-Way Handshake State Diagram: 1 State Diagram: 2 Header Sliding Window Protocol

slide-13
SLIDE 13

EECS 122 Walrand 13

TCP: Service

Start a connection Reliable byte stream delivery from (IPa, TCP Port 1) to (IPb, TCP Port 2) Indication if connection fails: Reset Terminate connection

slide-14
SLIDE 14

EECS 122 Walrand 14

SYN k SYN n; ACK k+1 DATA k+1; ACK n+1 ACK k+n+1

data exchange

FIN FIN ACK

½ close

FIN FIN ACK

½ close

TCP: Steps

3-way handshake

slide-15
SLIDE 15

EECS 122 Walrand 15

TCP: 3WH

Description Rationale

slide-16
SLIDE 16

EECS 122 Walrand 16

3WH: Description

Goal: agree on a set of parameters: the start sequence number for each side

Starting sequence numbers are random.

Client (initiator) Server SYN, SeqNum = x S Y N a n d A C K , S e q N u m = y a n d A c k = x + 1 ACK, Ack = y + 1 Active Open Passive Open connect() listen() accept() allocate buffer space

slide-17
SLIDE 17

EECS 122 Walrand 17

3WH: Rationale

Three-way handshare adds 1 RTT delay Why?

congestion control: SYN (40 byte) acts as

cheap probe

Protects against delayed packets from other

connection (would confuse receiver)

slide-18
SLIDE 18

EECS 122 Walrand 18

TCP: State Diagram 1

A B SYN SYN + ACK Data + ACK ACK … FIN FIN.ack FIN FIN.ack

Listen SYN received Established Close Wait Last Ack Closed Closed SYN sent Established FIN Wait-1 FIN Wait-2 Timed Wait Closed (1) (1): A waits in case B retransmits FIN and A must ack again

slide-19
SLIDE 19

EECS 122 Walrand 19

TCP: State Diagram 2

slide-20
SLIDE 20

EECS 122 Walrand 20

TCP: Header

Sequence number, acknowledgement, and advertised window – used by sliding-window based flow control Flags:

SYN, FIN – establishing/terminating a TCP connection ACK – set when Acknowledgement field is valid URG – urgent data; Urgent Pointer says where non-urgent data

starts

PUSH – don’t wait to fill segment RESET – abort connection

Source port Destination port Options (variable) Sequence number Acknowledgement Advertised window Checksum Urgent pointer Flags

HdrLen

4 10 16 31 Payload (variable)

slide-21
SLIDE 21

EECS 122 Walrand 21

TCP: Sliding Window Protocol

Objectives Stop & Wait Go-Back-n

slide-22
SLIDE 22

EECS 122 Walrand 22

SWP: Objectives

Retransmit missing packets

Numbering of packets and ACKs

Do this efficiently

Keep transmitting whenever possible Detect missing ACKs and retransmit quickly

slide-23
SLIDE 23

EECS 122 Walrand 23

SWP: Stop & Wait

ACK DATA Time Sender Receiver

RTT

Send; wait for ack If timeout, retransmit; else repeat Inefficient if TRANS << RTT Inefficient if TRANS << RTT

TRANS

slide-24
SLIDE 24

EECS 122 Walrand 24

SWP: Go-Back-n (GBN)

Definition Illustration without errors Illustration with errors Sliding window rules Sliding window example Observations Round-Trip Timing The question of ACKs

slide-25
SLIDE 25

EECS 122 Walrand 25

GBN: Definition

Transmit up to n unacknowledged packets If timeout for ACK(k), retransmit k, k+1, …

slide-26
SLIDE 26

EECS 122 Walrand 26

GBN: Example without errors

Time n = 9 packets in one RTT instead of 1 Fully efficient

slide-27
SLIDE 27

EECS 122 Walrand 27

GBN: Example with errors

Time

Window size = 3 packets

Sender Receiver

1 2 3 4 5 6 7

Timeout Packet 5

5 6 7

slide-28
SLIDE 28

EECS 122 Walrand 28

GBN: Sliding Window Rules

window = collection of adjacent sequence numbers the size of the collection is the window size Let A be the last ack’d packet of sender without gap; then window of sender = {A+1, A+2, …, A+n} Sender can send packets in its window Let B be the last received packet without gap by receiver, then window of receiver = {B+1,…, B+n} Receiver can accept out of sequence, if in window

slide-29
SLIDE 29

EECS 122 Walrand 29

GBN: Sliding Window Ex.

1 2 3

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

4 5 6 5 6 7

Last ACKed (without gap) Last received (without gap)

7

slide-30
SLIDE 30

EECS 122 Walrand 30

GBN: Observations

With sliding windows, it is possible to fully utilize a link, provided the window size is large enough. Throughput is ~ (w/RTT); Stop & Wait is like w = 1. Sender has to buffer all unacknowledged packets, because they may require retransmission Receiver may be able to accept out-of-order packets, but only up to its buffer limits

slide-31
SLIDE 31

EECS 122 Walrand 31

GBN: Timing

Objective Illustration Adaptation Algorithm

slide-32
SLIDE 32

EECS 122 Walrand 32

Timing: Objective

So, the sender needs to set timers in

  • rder to know when to retransmit a

packet the may have been lost How long to set the timer for?

Too short: may retransmit before data or

ACK has arrived, creating duplicates

Too long: if a packet is lost, will take a long

time to recover (inefficient)

slide-33
SLIDE 33

EECS 122 Walrand 33

Timing: Illustrations

1 1

Timer too long

1 1

Timer too short

1

RTT

slide-34
SLIDE 34

EECS 122 Walrand 34

Timing: Adaptation

The amount of time the sender should wait is about the round-trip time (RTT) between the sender and receiver For link-layer networks (LANs), this value is essentially known For multi-hop WANS, rarely known Must work in both environments, so protocol should adapt to the path behavior Measure successive ack delays T(n) Set timeout = average + 4 deviations

slide-35
SLIDE 35

EECS 122 Walrand 35

Timing: Algorithm

Use exponential averaging:

Time

A(n) = bA(n- 1) + (1 – b)T(n) D(n) = bD(n-1) + (1 – b)|T(n) – A(n)| Timeout(n) = A(n) +4D(n)

Notes:

  • 1. Measure T(n) only for original transmissions
  • 2. Double Timeout after timeout …

Justification: timeout indicates likely congestion; Further retransmissions would make things worse

  • 3. Reset Timeout = A + 4D for new packet and when

receive ACK

slide-36
SLIDE 36

EECS 122 Walrand 36

GBN: The question of ACKs

What exactly should the receiver ACK? Some possibilities:

ACK every packet, giving its sequence number use cumulative ACK, where an ACK for number n

implies ACKS for all k < n

use negative ACKs (NACKs), indicating which

packet did not arrive

use selective ACKs (SACKs), indicating those that

did arrive, even if not in order

slide-37
SLIDE 37

EECS 122 Walrand 37

Transport: Summary

UDP: Multiplex, detect errors TCP: Reliable Byte Stream

3WH; Exchange; Close Reliable transmissions: ACKs… S&W not efficient Go-Back-n What to ACK? (cumulative, …) Timer Value: based on measured RTT

Next: Congestion and Flow Control