Monarch can also be used for measurement studies. For example, it is now much easier to study emerging access networks such as broadband and cellular networks because it is no longer necessary to recruit a large number of users in these networks. Finally, Monarch can be used to test new and existing implementations of transport protocols over a variety of Internet links. The more link types a protocol is tested on, the more likely it is that bugs can be discovered and fixed.
monarch [-m mode] [-o packetTraceFile] [-k kernelTraceFile] [-M pathMTU] [-z transferSizeKB] [-b bufferSizeKB] [-i interface] [-t traceType] [-c captureMethod] [-p probeType] host:portThe following command-line options are always available:
-m mode | Specifies how Monarch should operate. In flow mode, Monarch emulates a TCP flow, whose size can be controlled with the -z option. In standalone mode, Monarch captures packets sent and received by another application. The default is flow. | ||
-p probeType | Specifies the packet type Monarch should use as probes. Currently supported are: tcp-ack, udp-data, icmp-echo and icmp-timestamp. Not all hosts respond to all probe types. | ||
-o traceFile | Tells Monarch to write a packet trace to the specified file. The type of output can be controlled with the -t option. | ||
-t traceType | Selects one of two trace formats: mout, Monarch's own packet trace format, and pcap, a standard format that can be read by standard tools such as tcpdump. The default is mout. | ||
-c captureMethod | If the netfilter method is selected, Monarch uses libipq and the Linux kernel's Netfilter framework to capture packets. The tun method uses the TUN/TAP framework instead, and the planetlab method is for use with PlanetLab slices. Note that not all probe types are available with all capture methods. | ||
-M pathMTU | If this option is used, Monarch will patch the MSS option in TCP packets and thus force the flow to use the specified MTU. The default is 1500 bytes. | ||
-i interface | Specifies the network interface for sending probes and receiving responses. |
-k traceFile | Tells Monarch to write traces of certain TCP variables, such as congestion window and slowstart threshold, to the specified file. Monarch produces two traces, one for the TCP sender and one for the TCP receiver. | ||
-z sizeKB | Specifies the length of the emulated TCP flow. | ||
-b sizeKB | Tells Monarch to explicitly set the size of the kernel's send and receive buffers to the specified value, using the SO_SNDBUF and SO_RCVBUF socket options. If the option is not specified, Monarch uses the kernel's default values. |
People
Andreas Haeberlen
Marcel Dischinger
Prateek Singhal
Krishna P. Gummadi
Stefan Saroiu