Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large Fan Yang 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) TCP Receiver TCP Sender Internet TCP Sender TCP Receiver Host under our control
Internet How Monarch works TCP Sender TCP Receiver Standard TCP Monarch probe-PDU (1480 bytes) Response PDU, 20 bytes TCP-PDU (1480 bytes) TCP Sender TCP Receiver Internet host (not under our control) Host under our control
Internet How Monarch works Standard TCP Monarch Probe packets Response packets Data packets TCP Sender TCP Receiver ? TCP Sender Big packets Small packets Big packets Small packets 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) TCP Receiver Monarch Host under our 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-PDU port unreachable (32 bytes) UDP Receiver Monarch Host under our 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 PDU size is similar with the request ICMP Receiver Monarch Host under our 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 17 ID 18 ID 17 ID 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
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 read
Thank you! Questions?