monarch: a tool to emulate transport protocol flows over the internet at large

33
Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large Fan Yang [email protected] CISC856 TCP/IP and Upper Layer Protocols Spring 2010 Thank Andreas Haeberlen, Marcel Dischinger, Kris hna P. Gummadi and Stefan Sarois for borrowing s ome slides

Upload: egan

Post on 21-Mar-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large. CISC856 TCP/IP and Upper Layer Protocols Spring 2010. Fan Yang [email protected]. Thank Andreas Haeberlen, Marcel Dischinger, Krishna P. Gummadi and Stefan Sarois for borrowing some slides. Outline. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large

Fan [email protected]

CISC856 TCP/IP and Upper Layer Protocols Spring 2010

Thank Andreas Haeberlen, Marcel Dischinger, Krishna P. Gummadi and Stefan Sarois for borrowing some slides

Page 2: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Outline How Monarch works How to choose probe PDUs Which protocols can Monarch emulate The sources of inaccuracy An example of implementation Conclusion

Page 3: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Internet

How Monarch works

Standard TCP

TCP-PDU(1480 bytes)

ACK TCP-PDU(20 bytes)

TCPReceiver

TCPSender

Internet

TCPSender

TCPReceiver

Host underour control

Host underour control

Page 4: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

InternetInternet

How Monarch worksTCPSender

TCPReceiver

Standard TCP Monarch

probe-PDU (1480 bytes)Response PDU,20 bytes

TCP-PDU (1480 bytes)

TCPSender

TCPReceiver

Internet host(not under our

control)

Host under our control

Page 5: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

InternetInternet

How Monarch works

Standard TCP Monarch

Probe packets Responsepackets

Data packets

TCPSender

TCPReceiver

?TCPReceiver

TCPSender

Big

pack

ets

Smal

l pac

kets

Big

pack

ets

Smal

l pac

kets

Path is stressed in the same way Similar throughput, delay, loss, etc

Page 6: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Problems How to choose probe PDU(what types of PDUs can be used)?

Page 7: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

How to choose the probe PDU? The probe PDUs should be responded to by most hosts There should be a way to match the response PDUs to the corresponding probe PDUs Size of probe PDUs and response PDUs should be similar to that of the regular flows

Page 8: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Possible types of probe PDU TCP UDP ICMP echo request ICMP timestamp request Why do we choose these protocols?

Page 9: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Internet

Possible types of probe PDU(TCP)

TCP probe

An ACK TCP-PDU to a closed port(1480 bytes)

RST TCP-PDU(20 bytes)

TCPReceiver

Monarch

Host underour control

Remote host

Page 10: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Possible types of probe PDU(TCP) Most hosts should respond to TCP-PDU The sequence number of the RST PDU is equal to the acknowledgment number of the probe ACK PDU

Page 11: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Internet

Possible types of probe PDU(UDP)

UDP probe

A UDP-PDU to a closed port(1480 bytes)

ICMP-PDUport unreachable(32 bytes)

UDPReceiver

Monarch

Host underour control

Remote host

Page 12: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Possible types of probe PDU(UDP) Most hosts should respond to UDP-PDU ICMP-PDU will include the IP-PCI of the probe, we can match the probe and the response by the IPid field

Page 13: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

TCP probe and UDP probe TCP and UDP probes allow the probe PDU size to be varied, while the response packet size is held fixed between 20 and 72 bytes. They are well suited to match the sizes of the data and acknowledgement PDUs for many variants of the popular TCP protocol.

Page 14: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Internet

Possible types of probe PDU(ICMP)

ICMP probe

ICMP echo PDU

ICMP-PDU echo PDUsize is similar with the request

ICMPReceiver

Monarch

Host underour control

Remote host

Page 15: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Possible types of probe PDU(ICMP) Most hosts should respond to ICMP-PDU The ICMP echo reply has the same sequence number field in ICMP-PCI as the ICMP echo request

Page 16: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

ICMP probe The ICMP echo responses are of the same size as their probes, so they are better suited for evaluating transport flows where data flows in both directions

Page 17: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Problems How to choose probe PDU( what types of PDU can be used)? Which protocols can Monarch emulate? What are sources of inaccuracy?

Page 18: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Which protocols can Monarch emulate? Any transport protocol where the receiver feedback is limited to path latencies and losses can be emulated

TCP variations (Tahoe, Reno, NewReno, Vegas, SACK) PCP(Probe Control Protocol) RAP(Rate Adaptation Protocol) TFRC(TCP-Friendly Rate Control)

Page 19: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Which protocols can Monarch emulate?

Some protocols cannot be used ECN

Congestion

experienced!

Page 20: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Which protocols can Monarch emulate? Monarch currently emulates transport flows in the downstream direction

i.e. connections in which data flows from the Monarch host to the remote host. Emulating data flows in the upstream direction from the remote host to the Monarch host requires a small probe packet that elicits a large response packet.

We have not yet found a probe packet that has this property.

Page 21: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Problems How to choose probe PDU( what types of PDU can be used)? Which protocols can Monarch emulate? What are sources of inaccuracy?

Page 22: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Direction

Monarch cannot distinguish whether PDU lost occurred on the downstream path or on the upstream path Upstream losses cause additional

retransmissions

Page 23: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Self-diagnosis

Monarch uses IPIDs to find potential inaccuracies When a flow has completed, it is classified as:

Confirmed: No upstream loss or upstream reordering Inaccurate: Upstream loss or upstream reordering Indeterminate: Not enough information to self-diagnose

ID 17ID 18

ID 17ID 19

Page 24: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Delayed ACKs With delayed ACKs, TCP receiver ACK two TCP-PDUs by a single ACK PDU. In contrast, in a Monarch flow, the receiver responds to every probe PDU, which typically doubles the number of PDUs flowing on the reverse path. Is delayed ACKs really an important source of inaccuracy?

Page 25: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Firewalls or NATs When Monarch is used on a path that contains middleboxes such as NATs or firewalls, the probes may be answered by the middleboxes rather than the end host. Is firewalls or NATs really an important source of inaccuracy?

Page 26: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Implementation Example

Emulating a TCP flow

Page 27: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Emulating a TCP flow

Page 28: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Emulating a TCP flow

Page 29: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Self-diagnosis

Page 30: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Conclusion-advantages Monarch enables transport protocols to

be evaluated in realistic environments Monarch is highly accurate

the emulated flows closely resemble TCP flows in terms of throughput, loss rate, queueing delay, and several other characteristics.

Monarch enables protocols to be evaluated on an unprecedented scale, over millions of Internet paths.

Page 31: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Conclusion-application Evaluating different transport protocols Inferring network path properties

Page 32: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Paper to readhttp://www.cis.udel.edu/~amer/856/monarch.pdf

Page 33: Monarch: A Tool to Emulate  Transport Protocol Flows  over the  Internet at Large

Thank you!

Questions?