Experimental evaluation of TCP-L June 5, 2003 Stefan Alfredsson Karlstad University.

21
Experimental evaluation of TCP-L June 5, 2003 Stefan Alfredsson Karlstad University

Transcript of Experimental evaluation of TCP-L June 5, 2003 Stefan Alfredsson Karlstad University.

Experimental evaluation of TCP-L

June 5, 2003

Stefan AlfredssonKarlstad University

Outline

● Motivation● TCP-L● Experiment environment● Experiment results● Future work

Motivation (I)● We want to improve the performance of

TCP over unreliable wireless networks● Unreliability is due to the nature of radio

communication (i.e. fading, interference, path loss), and causes bit errors

● Bit errors are reduced with modulation, coding, link level retransmissions

● TCP was designed for wired links, so losses due to bit errors are interpreted as sign of congestion, leading to bad performance

Van Jacobson's Congestion Control

"Packets get lost for two reasons: they are damaged in transit, or the network is congested and somewhere on the path there was insufficient buffer capacity. On most network paths, loss due to damage is rare (<< 1%) so it is probable that a packet loss is due to congestion in the network."

[Jacobson88, Congestion Avoidance and Control]

Motivation (II)● Idea from the PRTP protocol: Some

applications do not need full reliability, and may tolerate errors to an extent– Make use of damaged data instead of

doing retransmissions– Improves performance by avoiding falsely

triggered congestion control– Improve spectral efficiency by avoiding

retransmissions of mostly identical data– Receiver will accept and acknowledge data

as if it was received correctly

TCP-L (I)

● Receiver-only modification of TCP to accept segments with bit errors

● Application knows if it can accept errors, and informs the TCP-L stack accordingly

● Experiments have been performed which show large gains in throughput performance compared to regular TCP

TCP-L (II) - recovery overview

TCP-L (III)

● TCP checksum is used to detect errors, but location is unknown (hdr vs payload)

● By examining the TCP header and making some assumptions, the sensitive part is narrowed from 20 byte to 4

● After header recovery, data is delivered to application which then has to deal with potential errors in the datastream

Legend: blue fields are constant, orange fields "dont care"Assumptions:● Options are not used (contant header length)● Only packets with data are handled (affects RST, SYN)● Traffic is assumed to flow mainly to the receiver● Ack seq is cumulative – reset to the last correctly received ack no.● URG must be handled by appl, and is mostly used for terminal traffic● Adv. Window can be "calculated". PSH + FIN is safe to reset to zero

Improving the recovery

● "Soft information" means feedback from link layer about decoding process

● Use soft info to get a hint of where errors are located, how severe they are

● How hard should we try to recover?● Can give a hint of how badly a packet is

damaged – appl could then set levels of acceptable damage

Experiment Environment

sender <=> gateway <=> receiver

● Gateway emulates last hop of wireless link– Limits bandwidth, increases delay– Creates errors in packets

Error Creation

● Gateway uses a modified version of FreeBSD/dummynet

● It is configured with a "loss pattern", which is XOR'ed with the packets

● Loss pattern is generated offline and fed to dummynet at setup time.

Experiment parameters (I)

● Parameters set to emulate ”generic” wireless links

● Link is defined by bandwidth and delay parameters (”link profile”)

● Bit error distribution depends on coding and interleaving; for these experiments, independent and random bit errors are used (”loss profile”)

● Different TCP MTU’s have been used to see if/how this affects throughput

Experiment parameters (II)

● Two link profiles were used;– 384kbit/s, 70ms delay– 2Mbit/s, 30ms delay

● Five loss profiles were used;– Bit error rates ranging from 10-7 … 10-5

– => 0-10 percent packet errors● Two MTU sizes were used

– 576 and 1500 bytes

Results; 384kbit/s, MTU 576

5.00 k

10.00 k

15.00 k

20.00 k

25.00 k

30.00 k

35.00 k

40.00 k

45.00 k

0 5e-06 1e-05 1.5e-05 2e-05 2.5e-05

Th

rou

gh

pu

t (B

ps)

Bit Error Rate

TCP-L vs TCP, 384kb/s

TCP-L, MTU 576TCP, MTU 576

~10%

~4.5%

~2.9%

~2.0%

Results; 384kbit/s, MTU 1500

5.00 k

10.00 k

15.00 k

20.00 k

25.00 k

30.00 k

35.00 k

40.00 k

45.00 k

50.00 k

0 5e-06 1e-05 1.5e-05 2e-05 2.5e-05

Th

rou

gh

pu

t (B

ps)

Bit Error Rate

TCP-L vs TCP, 384kb/s

TCP-L, MTU 1500TCP, MTU 1500

Results; 2Mbit/s, MTU 576

0.00

50.00 k

100.00 k

150.00 k

200.00 k

250.00 k

0 5e-06 1e-05 1.5e-05 2e-05 2.5e-05

Th

rou

gh

pu

t (B

ps)

Bit Error Rate

TCP-L vs TCP, 2Mbit/s

TCP-L, MTU 576TCP, MTU 576

Results; 2Mbit/s, MTU 1500

0.00

50.00 k

100.00 k

150.00 k

200.00 k

250.00 k

0 5e-06 1e-05 1.5e-05 2e-05 2.5e-05

Th

rou

gh

pu

t (B

ps)

Bit Error Rate

TCP-L vs TCP, 2Mbit/s

TCP-L, MTU 1500TCP, MTU 1500

Future Work: short term

● Present TCP-L paper at IST Mobile Summit 2003 next week

● Examine why some experiments performed very poorly (120 sec timeout?)

● Determine the impact of burstiness factor

Future Work: longer term

● Integrating soft information to improve decoding

● Experiment with a real applications – JPEG2000?

● Compare to other TCP versions (Westwood?)

● Handle IP header as well?● Persuade link manufacturer to export

soft info and pass damaged data ;)● Run with scheduler/emulator from

Uppsala

Questions?