1 ee689 lecture 4 review of last lecture udp-based delivery tcp-modifications

27
1 EE689 Lecture 4 • Review of Last Lecture • UDP-based delivery • TCP-modifications

Post on 20-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

1

EE689 Lecture 4

• Review of Last Lecture

• UDP-based delivery

• TCP-modifications

2

End-to-End Congestion

• UDP-based applications should do end-to-end congestion control

• Otherwise -- BW divided unfairly

• -- Loss of Goodput

• TCP-friendly -- enforce TCP-like control

• Hard to enforce TCP-friendly mechanism

• Multiple connections/IP-spoofing get around those mechanisms.

3

UDP-based delivery

• “Nice” Applications will follow end-to-end congestion

• All of the flow control/congestion control reliability to be built into application.

• ALF - Application Level Framing - design principle - advocates application level of transport mechanisms.

4

UDP-based delivery

• Packet-pair: One mechanism for BW estimation

• Send two packets back-to-back, measure the delay between acks

• ACK Compression - Receiving timestamps

• Round robin scheduling /FIFO

• Minimum ack spacing indicates link BW

5

Cyclic UDP

• Developed at UC Berkeley

• Notion of rounds -- data sent in a fixed size time units

• Retransmit data within the round

• Move on to next round if data not received within round

• Apply flow control within the round.

6

Cyclic UDP

• Prioritize packets within round

• Order higher priority packets in front

• CUDP improves chances of delivery of higher priority packets -- retransmissions have higher priority

• NACK - indicate not received packets so far on each packet reception

7

Random vs. Prioritized Loss

Set PerfectChannel

FeedbackControl

PriorityLoss

RandomLoss

A 38.63 34.99 30.46 24.86

B 38.63 34.08 30.29 24.69

C 38.63 36.10 27.64 24.94

8

Cyclic UDP

• Rounds allow timely delivery

• Rounds allow prioritization of current packets

• Application prioritizes within the round

• Uses delay and packet losses for determining available BW

9

Estimating BW

• Loss rate = 1 - bytes recvd/ bytes sent

• Expected loss rate = X

• Expected delay = D1

• If (L > X) EstBW = (1-L)*LtBW/(1+X) else if (meanDelay > D1) EstBW = (1+X)*LtBW*D1/meanDelay else EstBW = (1+X)*LtBW

10

11

Cyclic UDP

• Adapts to Congestion

• Assumes all available BW can be used

• Not clear what happens to competing TCP applications

• Results indicate multiple CUDP flows share available BW

• Loss rate -- scalability ??

12

Stored Media/Live Media

• Stored Media allows buffering of data, can tolerate startup delays

• More buffering -- more chances of overcoming congestion/smoother playout

• Buffering => Longer latencies, not acceptable for interactive applications

• Vxtreme etc. exploit buffering

13

CUDP Summary

• Possible to design adaptive flow control into UDP application

• Allows Timely Delivery and discard of expired packets, prioritization

• Shown to scale against CUDP apps.

• Not clear if more aggressive than TCP

• Not a multiplicative decrease response

14

TCP Modifications

• If TCP congestion/flow control is so good, why not retain it?

• Easy to show that “TCP-friendly”

• Get rid of reliable/in-order delivery mechanisms that get in the way.

• HPF = Heterogeneous Packet Flows

15

HPF

• Allows marking packets high/low priority

• Provides In-order reliable delivery of high priority packets

• Allows low priority packets to be delivered when enough BW available

• If routers support priority, can drop low priority packets ahead of high priority packets

16

HPF Layers

• Application Framing (AF) -- convert frames into packets, packets into frames

• Windowing, Reliability, Timing and Flow-control (WRTF) -- window management, flow control, reliability, deadlines

• Congestion Control (CC) -- congestion response, estimation of RTTs

17

HPF Architecture

18

HPF

19

Another Example

20

HPF Sender Interface

21

HPF Receiver Interface

22

HPF

• Separate the reliable delivery from windowing mechanisms.

• Advance rcv_next pointer based on Reliable packets

• Compute fraction of packets lost as opposed to based on sequence numbers -- a burst of losses doesn’t lead to cwnd being set to 1.

• Multiplicative Decrease/Additive Increase

23

HPF Congestion Control

• If ack_fraction > , cwnd = fi(cwnd), fi = TCP slow start

• If ack_fraction < , cwnd = fd(cwnd), fd = 1/(1/cwnd + 1 - ack_fraction)

= 1 - random loss probability

24

HPF Performance

Protocol High:LowRatio

PacketsDropped

Improve.Vs. TCP

TCP --- 0% ----

HPF 1:0 0% -4.0%

7:3 1.2% 2.2%

5:5 5.1% 16.7%

3:7 5.5% 21.3%

25

HPF Priorities

Protocol High:LowRatio

PacketsDropped

ImproveVs. TCP

TCP ---- 0% ----

HPF 1:0 0% -4.3%

7:3 1.1% 8.0%

5:5 5.3% 29.7%

3:7 5.7% 32.5%

26

HPF - App. Adaptation

AdaptiveVCR

Non-ada.VCR/HPF

AdaptiveVCR/HPF

B Drops 93.0% 6.1% 61.5%

P Drops 24.8% 8.2% 9.3%

I Drops 11.1% 9.2% 12.2%

27

Summary

• UDP-based delivery puts application in charge to do flow control, congestion response etc. -- ALF plus more

• Tedious for every application to implement all the basic mechanisms

• Separate ALF policies and implementation -HPF does this and follows TCP based congestion response