monarch: a tool to emulate transport protocol flows over the internet at large
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 PresentationTRANSCRIPT
Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large
CISC856 TCP/IP and Upper Layer Protocols Spring 2010
Thank Andreas Haeberlen, Marcel Dischinger, Krishna P. Gummadi and Stefan Sarois for borrowing some slides
Outline How Monarch works How to choose probe PDUs Which protocols can Monarch emulate The sources of inaccuracy An example of implementation Conclusion
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
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
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
Problems How to choose probe PDU(what types of PDUs can be used)?
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
Possible types of probe PDU TCP UDP ICMP echo request ICMP timestamp request Why do we choose these protocols?
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
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
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
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
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.
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
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
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
Problems How to choose probe PDU( what types of PDU can be used)? Which protocols can Monarch emulate? What are sources of inaccuracy?
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)
Which protocols can Monarch emulate?
Some protocols cannot be used ECN
Congestion
experienced!
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.
Problems How to choose probe PDU( what types of PDU can be used)? Which protocols can Monarch emulate? What are sources of inaccuracy?
Direction
Monarch cannot distinguish whether PDU lost occurred on the downstream path or on the upstream path Upstream losses cause additional
retransmissions
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
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?
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?
Implementation Example
Emulating a TCP flow
Emulating a TCP flow
Emulating a TCP flow
Self-diagnosis
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.
Conclusion-application Evaluating different transport protocols Inferring network path properties
Paper to readhttp://www.cis.udel.edu/~amer/856/monarch.pdf
Thank you!
Questions?