Computer Networks CMSC 417 Spring 2020 Topic Transport

  • Slides: 24
Download presentation
Computer Networks CMSC 417 : Spring 2020 Topic: Transport Layer Protocols (UDP, TCP) (Textbook

Computer Networks CMSC 417 : Spring 2020 Topic: Transport Layer Protocols (UDP, TCP) (Textbook chapter 5) Nirupam Roy Tu-Th 2: 00 -3: 15 pm CSI 1115

TCP Seq no. and ACK no. 2

TCP Seq no. and ACK no. 2

Flow Control: TCP Sliding Window 3

Flow Control: TCP Sliding Window 3

Motivation for Sliding Window • Stop-and-wait is inefficient – Only one TCP segment is

Motivation for Sliding Window • Stop-and-wait is inefficient – Only one TCP segment is “in flight” at a time – Especially bad for high “delay-bandwidth product” bandwidth 4 delay

Revisiting “delay X bandwidth”

Revisiting “delay X bandwidth”

Revisiting “delay X bandwidth” 6

Revisiting “delay X bandwidth” 6

Revisiting “delay X bandwidth” 7

Revisiting “delay X bandwidth” 7

Revisiting “delay X bandwidth” Consider two-way delay or round-trip delay 8

Revisiting “delay X bandwidth” Consider two-way delay or round-trip delay 8

Revisiting “delay X bandwidth” Sender Receiver Packe t Round-trip delay ACK Time 9

Revisiting “delay X bandwidth” Sender Receiver Packe t Round-trip delay ACK Time 9

Performance of rdt 3. 0 – an implementation of stop-and-wait r rdt 3. 0

Performance of rdt 3. 0 – an implementation of stop-and-wait r rdt 3. 0 works, but performance stinks r ex: 1 Gbps link, 15 ms prop. delay, 8000 bit packet: m m m U sender: utilization – fraction of time sender busy sending 1 KB pkt every 30 msec -> 33 k. B/sec thruput over 1 Gbps link network protocol limits use of physical resources! Transport Layer 3 -10

rdt 3. 0: stop-and-wait operation sender receiver first packet bit transmitted, t = 0

rdt 3. 0: stop-and-wait operation sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R RTT first packet bit arrives last packet bit arrives, send ACK arrives, send next packet, t = RTT + L / R Transport Layer 3 -11

A problem in rdt 3. 0 Transport Layer 3 -12

A problem in rdt 3. 0 Transport Layer 3 -12

Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-tobe-acknowledged pkts m m range of sequence

Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-tobe-acknowledged pkts m m range of sequence numbers must be increased buffering at sender and/or receiver r Two generic forms of pipelined protocols: go-Back-N, selective repeat Transport Layer 3 -13

Pipelining: increased utilization sender receiver first packet bit transmitted, t = 0 last bit

Pipelining: increased utilization sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R RTT first packet bit arrives last packet bit arrives, send ACK last bit of 2 nd packet arrives, send ACK last bit of 3 rd packet arrives, send ACK arrives, send next packet, t = RTT + L / R Increase utilization by a factor of 3! Transport Layer 3 -14

Some Pipelining Protocols Go-back-N: overview r sender: up to N un. ACKed pkts in

Some Pipelining Protocols Go-back-N: overview r sender: up to N un. ACKed pkts in pipeline r receiver: only sends cumulative ACKs m doesn’t ACK pkt if there’s a gap r sender: has timer for oldest un. ACKed pkt m Selective Repeat: overview r sender: up to N un. ACKed packets in pipeline r receiver: ACKs individual pkts r sender: maintains timer for each un. ACKed pkt m if timer expires: retransmit only un. ACKed packet if timer expires: retransmit all un. ACKed packets Transport Layer 3 -15

Revisiting “delay X bandwidth” Sender Receiver Round-trip delay Time 17

Revisiting “delay X bandwidth” Sender Receiver Round-trip delay Time 17

Stop-and-wait Timeout Sender Sliding Window Receiver Packe t ACK Time 18

Stop-and-wait Timeout Sender Sliding Window Receiver Packe t ACK Time 18

Sliding Window: Lost Packet/ACK 19

Sliding Window: Lost Packet/ACK 19

How to ACK? Cumulative ACK: ACK the largest in-sequence packet received. What will be

How to ACK? Cumulative ACK: ACK the largest in-sequence packet received. What will be ACK sequence if the receive sequence is: 5, 7, 8, 6 ? ACK: 5, 5, 5, 8 20

Sliding Window • Allow a larger amount of data “in flight” – Allow sender

Sliding Window • Allow a larger amount of data “in flight” – Allow sender to get ahead of the receiver – … though not too far ahead

Sliding Window • Allow a larger amount of data “in flight” – Allow sender

Sliding Window • Allow a larger amount of data “in flight” – Allow sender to get ahead of the receiver – … though not too far ahead Sending process TCP Last byte written Last byte ACKed Last byte sent 23 Receiving process TCP Last byte read Next byte expected Last byte received

Receiver Buffering • Receive window size – Amount that can be sent without acknowledgment

Receiver Buffering • Receive window size – Amount that can be sent without acknowledgment – Receiver must be able to store this amount of data • Receiver tells the sender the window – Tells the sender the amount of free space left Window Size Data ACK’d 24 Outstanding Un-ack’d data Data OK to send Data not OK to send yet

Sender buffer Receiver buffer

Sender buffer Receiver buffer

Sender buffer Receiver buffer What if the Advertised. Window is zero? >> Periodically send

Sender buffer Receiver buffer What if the Advertised. Window is zero? >> Periodically send 1 byte packets. Advertised. Window = Max. Rcv. Buffer – ((Next. Byte. Expected-1) – Last. Byte. Read) Effective. Window = Advertised. Window (Last. Byte. Sent – Last. Byte. ACKed)