Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large Andreas Haeberlen Marcel Dischinger MPI for Software Systems, Rice University MPI for Software Systems ahae@mpi-sws.mpg.de mdischin@mpi-sws.mpg.de Krishna P. Gummadi Stefan Saroiu MPI for Software Systems University of Toronto gummadi@mpi-sws.mpg.de stefan@cs.toronto.edu This paper proposes Monarch, a novel tool that accurately 1. INTRODUCTION emulates transport protocol flows from an end host con- Despite a large body of work on designing new transport trolled by its user to any other Internet host that responds protocols, such as TCP Vegas [8], TCP Nice [47], TFRC [11], to simple TCP, UDP, or ICMP packet probes. Since many or PCP [3], evaluating these protocols on the Internet at Internet hosts and routers respond to such probes, Monarch large has proved difficult. Current approaches require the can evaluate transport protocols, such as TCP Reno, TCP protocols to be deployed at both endpoints of an Internet Vegas, and TCP Nice, over a large and diverse set of Inter- path. In practice, this restricts the evaluation of transport net paths. Current approaches to evaluating these protocols protocols to studies conducted over research testbeds, such need control over both end hosts of an Internet path. Conse- as PlanetLab [35], RON [2], or NIMI [34]. Unfortunately, quently, they are limited to a small number of paths between these testbeds are limited in their scale and they are not nodes in testbeds like PlanetLab, RON or NIMI. Monarch’s representative of the many heterogeneous network environ- ability to evaluate transport protocols with minimal support ments that constitute the Internet. from the destination host enables many new measurement In this paper, we propose Monarch, a tool that emulates studies. We show the feasibility of using Monarch for three transport protocol flows from an end host controlled by its example studies: (a) understanding transport protocol be- user to any other Internet host that responds to TCP, UDP, havior over network paths that are less explored by the re- or ICMP packet probes. Since many Internet hosts and search community, such as paths to cable and DSL hosts, (b) routers respond to such probes, researchers can use Monarch investigating the relative performance of different transport to evaluate transport protocols in large-scale experiments protocol designs, such as TCP Vegas and TCP Reno, and over a diverse set of Internet paths. By requiring control (c) testing protocol implementations under a wide range of of just one of the two end hosts of a path, Monarch enables experimental conditions. protocol evaluation on an unprecedented scale, over millions of Internet paths. Categories and Subject Descriptors Monarch is based on a key observation about how trans- C.4 [Computer Systems Organization]: Performance port protocols typically work: a sender transfers data to a of Systems; C.2.2 [Computer Systems Organization]: receiver at a rate determined by the latency and loss charac- Computer-Communication Networks—Network Protocols; teristics observed by data and acknowledgment packets ex- C.2.5 [Computer Systems Organization]: Computer- changed between the two endpoints. Monarch uses generic Communication Networks—Local and Wide-Area Networks TCP, UDP, or ICMP probes and responses to emulate this packet exchange between a local sender and a remote re- General Terms ceiver. We discuss which transport protocols can and cannot be emulated by Monarch in Section 2.4. Experimentation, Measurement, Performance Monarch is accurate because it relies on direct online mea- surements. For every packet transmission in its emulated Keywords flow, Monarch sends an actual probe packet of the same size to the receiver and interprets the response packet as Emulation, transport protocols, network measurement an incoming acknowledgment. Thus, the emulated flows are subjected to a wide range of conditions affecting real net- work paths, including congestion, delays, failures, or router Permission to make digital or hard copies of all or part of this work for bugs. However, as Monarch controls only one end host, personal or classroom use is granted without fee provided that copies are it can estimate the conditions of the round-trip path but not made or distributed for profit or commercial advantage and that copies not the one-way paths. Despite this limitation, our evalu- bear this notice and the full citation on the first page. To copy otherwise, to ation shows that packet-level traces of flows emulated with republish, to post on servers or to redistribute to lists, requires prior specific Monarch closely match those of actual network transfers. permission and/or a fee. IMC’06, October 25–27, 2006, Rio de Janeiro, Brazil. Monarch enhances the state of the art in transport pro- Copyright 2006 ACM 1-59593-561-4/06/0010 ...$5.00. tocol evaluation. Today researchers can use controlled envi-
Local host Remote host Local host Remote host Local host Local host Data (1 Probe (1 TCP TCP TCP 500) 500) Sender Sender Receiver Monarch 0) se (40) ACK (4 Respon Data (1 Probe (1 Response (40) Probe (1500) 500) 500) Data (1500) ACK (40) 0) se (40) ACK (4 Respon Data (1 Probe (1 500) 500) Data (1 Probe (1 500) 500) 0) ons e (40) TCP ACK (4 Res p Receiver 0) se (40) ACK (4 Respon Remote host Remote host (a) (b) (c) (d) Figure 1: The Monarch packet exchange: In a normal TCP flow, large data packets flow in one direction and small acknowledgment packets in the other (a). Monarch emulates this by using large probe packets that elicit small responses (b). While in a normal flow, sender and receiver are on different hosts (c), Monarch colocates them on the same host and interposes between them (d). The numbers in parentheses are packet lengths in bytes. ronments like network emulators [46,48] or testbeds [2,34,35] that elicit small responses (Figure 1b). To emulate a TCP for a systematic analysis of protocol behavior. Monarch flow, Monarch creates both a TCP sender and a TCP re- complements these tools by providing live access to a real ceiver on the same local host, but interposes between them network path. This enables experiments with emerging net- (see Figure 1d). Whenever the sender transmits a packet, work infrastructures, such as broadband networks, for which Monarch captures it and instead sends a probe packet of emulators and testbeds are not yet widely available. Fur- the same size to the remote host. As soon as it receives a ther, it naturally captures the complex protocol interac- response from the remote host, Monarch forwards the cap- tions with the different configurations of networks and traffic tured packet to the receiver. Packets in the reverse direction workloads that exist in deployed systems. from the TCP receiver to the TCP sender are forwarded di- In addition to capturing the behavior of transport proto- rectly. cols, Monarch has several benefits. Researchers can measure The sizes of Monarch’s probe and response packets match and gain insight into the properties of network environments those of TCP’s data and acknowledgment packets, and they less explored by the community. For example, evaluating a are transmitted over the same Internet paths. As a result, transport protocol over cable and DSL can provide much the sender observes similar round-trip times, queuing de- needed insight into the properties of broadband networks. lays, and loss rates for its packet transmissions. Because Further, software developers can test or debug the perfor- Monarch uses online measurements as opposed to analytical mance and reliability of protocol implementations. These models of the network, the characteristics of flows emulated tests can uncover bugs, performance bottlenecks, or poor by Monarch closely match those of real TCP flows. design decisions in the transport protocol. In our simplified description above, we made several as- The rest of the paper is organized as follows. We present sumptions. For example, we assumed that probe packets the design of Monarch in Section 2, then we discuss relevant can be matched uniquely to their response packets, that ar- implementation details in Section 3 and evaluate Monarch’s bitrary Internet hosts would respond to probe packets, and accuracy in Section 4. In Section 5, we discuss three that an accurate emulation of round-trip (rather than one- new measurement studies enabled by Monarch. Finally, way) packet latencies and losses is sufficient for an accurate we present related work in Section 6 and summarize our emulation of transport protocols. Later in this section, we conclusions in Section 7. discuss how widely these assumptions hold in the Internet at large. 2. DESIGN Monarch’s output is a packet trace similar to the output of tcpdump. Based on this trace, we can infer network path This section focuses on the design of Monarch. We start properties, such as packet round-trip times, and transport with an overview of how Monarch emulates transport pro- protocol characteristics, such as throughput. We show a tocols. Later, we discuss a variety of probing mechanisms particularly interesting use of this trace in Section 3.3 – Monarch can use, the number of Internet paths it can mea- Monarch can analyze its output to detect errors in its own sure, the types of transport protocols it can emulate, and emulated flows. the factors that affect its accuracy. 2.2 What types of probes can Monarch use? 2.1 How does Monarch work? Monarch can use several types of probe packets to em- In a typical transport protocol, such as TCP, a sender ulate transport flows. It is useful to have multiple probe on one host sends large data packets to a receiver on an- types to choose from because not all hosts respond to all other host, and the receiver responds with small acknowl- probes. To be accurate, Monarch needs 1) the remote host edgment packets (Figure 1a). Monarch emulates this packet to respond to every probe packet it receives, 2) a way to exchange by sending large probe packets to the remote host match responses with their corresponding probes, and 3)
the sizes of the probe and response packets to be similar to Type of Host those of the data and acknowledgment packets of a regular Broadband Academic Router flow. Monarch currently supports the following four types of probes: TCP ACK 7.2 % 13.4 % 69.6 % • TCP: Monarch’s probe packet is a variable-sized TCP ICMP TsReq 18.0 % 4.9 % 63.0 % acknowledgment (ACK) sent to a closed port on the ICMP EchoReq 25.0 % 8.9 % 89.3 % remote host. The remote host responds with a small, fixed size TCP reset (RST) packet. According to the UDP Packet 7.4 % 4.1 % 7.3 % TCP standard [45], the sequence number of the RST Any probe 28.4 % 18.1 % 90.3 % packet is set to the acknowledgment number of the probe packet header, which enables Monarch to match probes with responses. Table 1: Fraction of Internet hosts responding to Monarch probes: We used three different categories with • UDP: Monarch sends a variable sized UDP packet 1,000 hosts each: hosts in commercial broadband ISPs, to a closed port on the remote host, which responds hosts in academic and research environments, and Internet with a small, fixed-size ICMP ‘port unreachable’ mes- routers. sage. The response packet contains the first eight bytes of the probe packet, including the IPID field of the probe packet headers [37]. By setting unique IPIDs in its probe packets, Monarch can match probes with Monarch flow. We sent probes to three types of hosts: end responses. hosts in commercial broadband ISPs, end hosts in academic and research networks, and Internet routers. We selected • ICMP echo request: Monarch sends a variable-sized end hosts in broadband and academic networks from a 2001 ICMP echo request (‘ping’) packet to the remote host, trace of peers participating in the Gnutella file-sharing sys- which answers with a similarly sized ICMP echo re- tem [41]. We used DNS names to select hosts belonging ply packet [37]. The response packet has the same se- to major DSL/cable ISPs and university domains in North quence number field in its header as the probe packet, America and Europe. For example, we classified a host as enabling Monarch to match probes with responses. a BellSouth DSL host if its DNS name is of the form adsl- *.bellsouth.net. We discovered Internet routers by running • ICMP timestamp request: Monarch sends an traceroute to the end hosts in broadband and academic ICMP timestamp request message to the remote networks. host, which answers1 with a small, fixed size ICMP Table 1 presents our results. We probed 1,000 hosts in timestamp reply packet [37]. The response packet has each of the three host categories. Overall, more than 18% of the same sequence number field in its headers as the the academic hosts, 28% of the broadband hosts, and over probe packet, enabling Monarch to match probes with 90% of the routers responded to at least one of the four types responses. of probes. While this may seem like a small percentage, there are millions of hosts in the Internet, and it should be These probes and responses differ in their suitability for easy to find thousands of suitable hosts for an experiment. evaluating transport protocols. For example, TCP and UDP We believe that the primary reason for the large difference probes allow the probe packet sizes to be varied, even as in the response rates between routers and other end hosts is the response packet sizes are held fixed between 40 and 60 the low availability of the end hosts. Unlike routers, many bytes. They are well suited to match the sizes of data and end hosts are often offline2 and disconnected from the In- acknowledgment packets for many variants of the popular ternet. Moreover, our end hosts were selected from a trace TCP protocol, such as Reno, Vegas, and NICE. On the other collected five years earlier. In contrast, the router list was hand, the ICMP echo responses are of the same size as their generated from traceroutes conducted only a few weeks be- probes. Consequently, they are better suited for evaluating fore this experiment. transport flows where data flows in both directions. Using very conservative estimates, our results suggest that 2.3 How many Internet hosts respond to Monarch can evaluate transport protocols to at least 18% of Monarch probes? Internet hosts, and to at least 7% of hosts when restricted to TCP probes only. This shows that Monarch can evalu- In theory, Monarch could emulate a transport flow to any ate transport protocols over a diverse set of Internet paths, remote host running a TCP/IP implementation, since the several orders of magnitude larger than what current re- protocol standards require a response to each of the probes search testbeds can provide. For example, we used Monarch presented above. In practice, however, many hosts are either to measure paths to tens of thousands of hosts in over 200 offline or behind NATs and firewalls that block or rate-limit commercial cable and DSL ISPs worldwide. In contrast, re- incoming probe packets. search testbeds like PlanetLab have a very small number of We conducted a simple experiment to estimate the frac- broadband hosts. tion of Internet hosts that can be used as endpoints of a 1 Govindan and Paxson [13] observed that some routers use 2 a ‘slow path’ for generating ICMP timestamp responses, To estimate the effect of host unavailability, we probed the which introduces additional delays. Hence, these probes set of end hosts that responded to our probes for a second should be used with caution. We use TCP probes when- time after a few weeks. Only 67% of the hosts responded ever possible. again, suggesting the high impact of end host unavailability.
Protocol Usable? Sender Receiver Proxy TCP BIC [49], TCP Nice [47], TCP Vegas [8], thread thread thread Monarch 1 6 4 5 TCP Westwood [22], Highspeed TCP [10], TCP/IP Scalable TCP [19], Fast TCP [17], PCP [3] Yes Netfilter Raw socket SACK [24], FACK [23], Window scaling [15] Linux Local Network driver Kernel host RAP [39], TFRC [11] 3 2 ECN [38], XCP [18] No # Action Packet Source Destination Table 2: Supported protocols: Monarch can be used to 1 Sender transmits packet Data localIP remoteIP evaluate many, but not all, transport protocols. Proxy intercepts packet, 2 Probe localIP remoteIP saves it, and transmits a probe 3 Remote responds Response remoteIP localIP 2.4 What transport protocols can Monarch 4 Proxy forwards saved packet Data remoteIP localIP emulate? to the receiver 5 Receiver sends ACK ACK localIP remoteIP Monarch emulates transport protocols based on real-time, Proxy forwards ACK directly 6 ACK remoteIP localIP online measurements of packet latencies and losses. Hence, to the sender any transport protocol where the receiver feedback is limited to path latencies and losses can be emulated. As shown Figure 2: Sequence of packet exchanges in Monarch im- in Table 2, this includes many variants of the widely used plementation: Monarch consists of a TCP sender, a TCP TCP protocol, a number of protocol extensions, and several receiver, and a proxy. The proxy uses Netfilter to interpose streaming protocols. between the sender and the receiver. It applies network ad- However, Monarch cannot emulate transport protocols dress translation to create the illusion that the remote host that require the receiver to relay more complex information is the other endpoint of the flow. about the network to the sender. For example, Monarch cannot emulate TCP with explicit congestion notification (ECN) [38] because it would require the remote host to echo back the congestion experienced (CE) bit to the Monarch with a single ACK packet. In contrast, in a Monarch flow, host. We are not aware of any type of probe that could be the receiver responds to every probe packet, which typi- used for this purpose. Similarly, Monarch cannot be used cally doubles the number of packets flowing on the reverse to evaluate protocols like XCP [18] that require changes to path. However, because the response packets are small, this existing network infrastructure. difference is likely to affect only flows experiencing severe Monarch currently emulates transport flows in the down- congestion on the upstream path. stream direction, i.e. connections in which data flows from When Monarch is used on a path that contains middle- the Monarch host to the remote host. This mimics the typ- boxes such as NATs or firewalls, the probes may be answered ical usage pattern in which an end host downloads content by the middleboxes rather than the end host. However, the from an Internet server. Emulating data flows in the up- middleboxes are often deployed close to the end host, and so stream direction from the remote host to the Monarch host the resulting loss of fidelity tends to be small. For example, requires a small probe packet that elicits a large response Monarch probes to many commercial cable/DSL hosts are packet. We have not yet found a probe packet that has this answered by the modems that are one hop away from the property. end host; however, the network paths to them include the ‘last mile’ cable or DSL links. 2.5 What factors affect Monarch’s accuracy? Monarch is based on round-trip (rather than one-way) 3. IMPLEMENTATION estimates of packet latencies and losses. When packets are lost or reordered, Monarch cannot distinguish whether these In this section, we first present the details of our imple- events occurred on the downstream path, i.e. from the sender mentation of Monarch, which runs as a user-level application to the remote host, or on the upstream path, i.e. from the on unmodified Linux 2.4 and 2.6 kernels. We then describe remote host to the sender. While this could cause Monarch how our implementation allows us to test complete, unmod- ified implementations of transport protocols in the Linux flows to behave differently than regular TCP flows, our eval- uation in Section 4 shows that both these events occur rarely kernel as well as the ns-2 simulator [30]. Finally, we discuss in practice and even when they do occur, they tend to have the self-diagnosis feature of our implementation. In particu- a limited effect on Monarch’s accuracy. For example, up- lar, we show how Monarch can detect potential inaccuracies stream packet loss and reordering affect less than 15% of all in its emulated flows by an offline analysis of its output. flows. Further, Monarch has a built-in self-diagnosis mech- anism that can detect most of such inaccuracies using an 3.1 Emulating a TCP flow offline analysis. Nevertheless, Monarch is not suitable for Our Monarch implementation uses three threads: A environments where upstream loss and reordering events oc- sender and a receiver, which perform a simple TCP trans- cur frequently. fer, as well as a proxy, which is responsible for intercepting Another source of differences between Monarch and TCP packets and handling probes and responses. The proxy also flows is the delayed ACK feature. With delayed ACKs, TCP records all packets sent or received by Monarch and writes data packets received in close succession are acknowledged them to a trace file for further analysis.
To emulate a flow to remoteIP, Monarch uses the Net- lation and live emulation experiments. More details about filter [29] framework in the Linux kernel. First, the proxy this feature are available at the Monarch web site [27]. sets up a Netfilter rule that captures all packets to and from that remote address. Next, it creates a raw socket for send- ing packets to the remote host. Finally, the sender thread 3.3 Self-diagnosis attempts to establish a TCP connection to remoteIP, and Monarch is capable of diagnosing inaccuracies in its own the packet exchange shown in Figure 2 takes place. emulated flows based on an analysis of its output. As we dis- As usual, the sender begins by sending a SYN packet to cussed earlier, the two primary factors that affect Monarch’s remoteIP (step 1). The proxy intercepts this packet, stores accuracy are its inability to distinguish loss and reordering of it in a local buffer, and sends a similarly-sized probe packet packets on the upstream and the downstream paths, i.e., the to the remote host (step 2). The remote host responds with paths from the receiver to the sender and vice-versa. These a packet that is also intercepted by the proxy (step 3). The events are difficult to detect on-line, but their presence can proxy then looks up the corresponding packet in its buffer, be inferred after the emulation is finished. Monarch runs modifies its destination IP address, and forwards it to the a self-diagnosis test after each emulation, which either con- receiver (step 4). The receiver responds with a SYN/ACK firms the results or lists any events that may have affected packet that is captured by the proxy (step 5). The proxy the accuracy. then modifies its source IP address and forwards the packet back to the sender (step 6). Figure 2 also shows the details of 3.3.1 Detecting upstream loss and reordering Monarch’s packet address modifications among the sender, Monarch’s self-diagnosis uses the IP identifier (IPID) field the receiver, and the proxy. in the IP headers of the response packets to distinguish be- All further packet exchanges are handled in a similar man- tween upstream and downstream events. Similar to prior ner. If a packet transmitted to remoteIP is lost, its re- techniques [6, 21], Monarch’s self-diagnosis relies on the fact sponse is never received by the proxy, and the correspond- that many Internet hosts increment the IPID field by a fixed ing buffered packet is never forwarded to the local receiver. number (typically one) for every new packet they create. Similarly, reordering of packets sent to the remote host re- However, Monarch’s analysis is more involved, as it cannot sults in the buffered packets being forwarded in a different send any active probes of its own and so must extract the order. During long transfers, Monarch reclaims buffer space information from a given trace. by expiring the oldest packets. The output from Monarch includes a packet trace similar 3.3.2 Impact of upstream loss and reordering to the output of tcpdump. In addition, it also logs how state Upstream packet loss and reordering events affect differ- variables of the protocol vary over time. For example, our ent transport protocols in different ways. For example, TCP current implementation records TCP state variables, such Reno is more strongly influenced by packet loss than packet as congestion window, the slowstart threshold, and the re- reordering. Even a single upstream packet loss confused as transmission timeout, via a standard interface of the Linux a downstream packet loss causes TCP Reno to retransmit kernel. The source code of our Monarch implementation is the packet and halve its future sending rate. On the other available from the Monarch web site [27]. hand, only packet reordering on a large magnitude can trig- ger retransmissions that affect future packet transmissions in a significant way. Self-diagnosis tries to estimate the impact of upstream 3.2 Testing unmodified transport protocol im- loss and reordering on Monarch flows. This impact analysis plementations depends on the specific transport protocol being emulated. Our proxy implementation is completely transparent While we focus on the analysis we developed for TCP Reno, to our TCP sender and TCP receiver. This is critical to similar analysis techniques can be developed for other pro- Monarch’s ability to test unmodified, complex protocol tocols. Our impact analysis for TCP Reno labels a flow as implementations in the Linux kernel. Further, since both inaccurate if it sees an upstream packet loss or significant the sender and the receiver run locally, we can easily upstream packet reordering that causes packet retransmis- evaluate the effect of different parameter choices on the sion. It confirms all Monarch traces that see no upstream sender and receiver for a given transport protocol. For packet loss and no significant upstream packet reordering. example, Monarch can be used to test the sensitivity of We note that confirmation of a Monarch trace by our TCP Vegas [8] to the different settings of its α and β analysis does not imply that the trace is accurate for all parameters over paths to different hosts in the Internet. We usage scenarios. It merely suggests that the trace is likely can also run implementations of different TCP protocols to be accurate for many uses. For example, a Monarch trace simultaneously to understand how the protocols compete that suffers only minor reordering would be confirmed. Such with each other. As we show in Section 5.3, this ability a trace would be accurate with respect to its throughput, to test protocol implementations under a wide range of latency, or packet loss characteristics, but not with respect experimental conditions can be used by protocol develop- to its reordering characteristics. ers to discover errors that affect the performance of their implementations. 3.3.3 Output Since it is a common practice among researchers to test After detecting upstream events and analyzing their im- new transport protocols using the ns-2 simulator [30], we pact, Monarch broadly classifies the result of an emulation added a special interface to Monarch that allows it to con- as either confirmed, inaccurate, or indeterminate. We il- nect directly to ns-2. Thus, researchers can conveniently lustrate the decision process in Figure 3, and we discuss it use a single ns-2 code base for both their controlled simu- below:
PlanetLab Broadband Router Confirmed IPIDs Yes All upstream Yes Upstream No Significant No events upstream Sender nodes 4 4 4 usable? losses? identified? reordering? No No Yes Yes Receiver nodes 356 4,805 697 Indeterminate Inaccurate Successful measurements 12,166 15,642 2,776 Figure 3: Self-diagnosis in Monarch: The result is con- Table 3: Traces used for our Monarch evaluation: For firmed only if no known sources of inaccuracy are present. each trace, we used geographically dispersed sender nodes in Seattle (WA), Houston (TX), Cambridge (MA), and Saarbrücken (Germany). • Indeterminate: Results in this category do not con- tain enough information for Monarch to distinguish upstream events (loss or reordering) from downstream 4. EVALUATION events in all cases. This can happen when downstream In this section, we present three experiments that evaluate losses and upstream losses occur very close together, Monarch’s ability to emulate transport protocol flows. First, or when the IPIDs in the response packets are unus- we evaluate the accuracy of its emulated flows, i.e., we ver- able because the remote host randomizes them, or sets ify how closely the characteristics of Monarch flows match the field to zero. those of actual TCP flows. Second, we identify the major • Inaccurate: Monarch warns that its results could be factors and network conditions that contribute to inaccu- inaccurate when it detects any upstream packet losses, racies in Monarch’s emulations, and show that Monarch’s or when the observed upstream packet reordering is self-diagnosis can accurately quantify these factors. Third, significant. we characterize the prevalence of these factors over the In- ternet at large. • Confirmed: In all other cases, Monarch has not de- tected any upstream losses or significant reordering 4.1 Methodology events. Therefore, it confirms its output. Evaluating Monarch’s accuracy over the Internet at scale 3.3.4 Rate-limited responses is difficult. To evaluate Monarch, we need to compare its emulated flows to real transport flows over the same Inter- In addition to the loss and reordering analysis, Monarch net paths. Unfortunately, generating real transport flows also scans the entire trace for long sequences of packet losses requires control over both end hosts of an Internet path. to identify hosts that rate-limit their responses. For exam- In practice, this would limit our evaluation to Internet ple, in our measurements, we observed that some hosts stop testbeds, such as PlanetLab. We deal with this limitation sending responses after a certain number of probes, e.g. af- using the following three-step evaluation: ter 200 TCP ACKs, which could be due to a firewall some- where on the path. This pattern is easy to distinguish from 1. In Section 4.2, we evaluate Monarch over the Plan- packet drops due to queue overflows because in the latter etLab testbed. We generate both Monarch flows and case, packet losses alternate with successful transmissions. real TCP flows, identify potential sources of error, and However, it is hard to distinguish losses due to path failures study how they affect accuracy. from end host rate-limiting. 3.4 Usage concerns and best practices 2. In Section 4.3, we show that Monarch’s offline self- diagnosis can accurately detect these errors from its As is the case with using many active measurement tools, own traces. large-scale experiments using Monarch can raise potential security concerns. Internet hosts and ISPs could perceive 3. In Section 4.4, we use this self-diagnosis capability to Monarch’s traffic as hostile and intrusive. To address this estimate the likelihood of error in Monarch measure- concern, Monarch includes a custom message in the payload ments over a wide variety of Internet paths. of every probe packet. We use the message to explain the goals of our experiment, and to provide a contact e-mail ad- dress. We have conducted Monarch measurements to several 4.1.1 Data collection thousand end hosts and routers in the Internet in hundreds We used Monarch to emulate transport flows over three of commercial ISPs over a period of seven months without types of Internet paths: (a) paths to PlanetLab nodes, (b) raising any security alarms. paths to Internet hosts located in commercial broadband Another cause of concern is with using Monarch to send ISPs, and (c) paths to Internet routers. Table 3 shows large amounts of traffic to a remote host. This can be of statistics about the three datasets we gathered. All mea- great inconvenience to remote hosts on broadband networks surements involved 500kB data transfers. The TCP senders that use a per-byte payment model for traffic, where any were located in four geographically distributed locations, unsolicited traffic costs the host’s owner real money. To three (Seattle, Houston and Cambridge) in the U.S. and mitigate this concern, we only measure hosts in broadband one (Saarbrücken) in Germany, while the receivers included ISPs that offer flat rate payment plans. In addition, we PlanetLab nodes, broadband hosts, and Internet routers. never transfer more than a few dozen megabytes of data to While gathering the PlanetLab dataset, we controlled both any single Internet host. endpoints of the Internet paths measured, so we generated Finally, we would like to point out that Monarch flows both Monarch and normal TCP flows. In the other two compete fairly with ongoing Internet traffic as long as the datasets we only controlled one endpoint, so we generated emulated transport protocols are TCP-friendly. only Monarch flows.
DSL Cable Ameritech BellSouth BTOpen PacBell Qwest SWBell Charter Chello Comcast Roadrunner Rogers World Company AT&T BellSouth BT AT&T Qwest AT&T Charter UPC Comcast TimeWarner Rogers Group Comm. Region S+SW SE USA UK S+SW W USA S+SW USA Holland USA USA Canada USA USA USA Hosts 214 242 218 342 131 1,176 210 295 856 997 124 Measured Offered 384K, 256K, 384K, 256K, 384K, 384K, 128K, BWs 1.5M, 3M, 1.5M, 3M, 2M 1.5M, 1.5M, 1.5M, 3M 1M, 3M, 4-8M 5M, 8M 1M, 3M, (bps) 6M 6M 3M, 6M 3M, 6M 3M, 6M 8M 6M Table 4: Broadband trace statistics: The statistics are broken down by ISP; offered BWs refers to the access link capacity advertised on the ISPs’ web sites. Our PlanetLab measurements used 356 PlanetLab nodes times of packets in the Monarch flow are almost indistin- world-wide as receivers. To each PlanetLab node, we con- guishable from those in the TCP flow. ducted five data transfers using Monarch interspersed with Next, we examine how TCP protocol state variables five normal TCP transfers in close succession3 , for a total of change during the flows. Figure 4(b) shows a plot of the ten data transfers from the each of the senders in Seattle, congestion window (CWND) and the retransmission time- Houston, Cambridge, and Saarbrücken. We ran tcpdump on out (RTO) for both flows. This information is recorded in both the sending and the receiving node to record packet Monarch’s output trace using the TCP INFO socket option. transmissions in either direction. The CWND plot shows the typical phases of a TCP flow, Our Broadband measurements used 4,805 cable and DSL such as slowstart and congestion avoidance. Both flows end hosts in 11 major commercial broadband providers in went through these phases in exactly the same way. The North America and Europe. The list of broadband ISPs we TCP variables of the Monarch flow closely match those of measured is shown in Table 4. We selected these hosts by the actual TCP flow, suggesting a highly accurate Monarch probing hosts measured in a previous study of Napster and emulation. Gnutella [41]. For each host that responded, we used its Next, we compare the properties of aggregate data from DNS name to identify its ISP. all our PlanetLab traces. We begin by comparing the num- Our Router measurements used 1, 000 Internet routers we ber of packets sent and received in the Monarch flows and discovered by running traceroute to hosts in the broadband their corresponding TCP flows. Figure 5 shows the relative data set. Only 697 of these routers responded to Monarch’s difference for each direction, using the number of packets probe packets. in the TCP flow as a basis. 65% of all flow pairs sent the These three datasets are available at the Monarch web same number of packets; the difference is less than 5% of the site [27]. packets for 93% of all flow pairs. This is expected because (a) both Monarch and TCP use packets of the same size, 4.2 Accuracy over PlanetLab and (b) both flows transfer the same 500kB of data. More- In this section, we compare the behavior of Monarch flows over, when we compare only flows with no packet losses, the to TCP flows on Internet paths to PlanetLab nodes. We fo- difference disappears entirely (not shown). This suggests cus on two different aspects. First, we investigate whether that packet losses account for most of the inaccuracies in the packet-level characteristics of the emulated flows closely the number of packets sent. match those of TCP flows. For this, we analyze the sizes and Figure 5 shows a substantial difference in the number of transmission times of individual packets. Second, we com- packets received in the upstream direction. This is due to pare their higher-level flow characteristics, such as through- delayed ACKs: TCP flows acknowledge several downstream put and overall loss rate. packets with a single upstream packet, while Monarch flows contain one response packet for every probe. However, ac- 4.2.1 Packet-level characteristics knowledgment packets are small (typically 40 bytes), and we will show later that this additional traffic has little impact Monarch emulates transport protocol flows at the gran- on high-level flow characteristics, such as throughput. ularity of individual packet transmissions. In this section, Finally, we repeat our analysis of packet transmission we compare the packet-level characteristics of Monarch and times on a larger scale, across all PlanetLab traces. Our TCP flows to show that they closely match in terms of num- goal is to check whether the rates and times at which ber of packets, sizes of packets, packet transmission times, packets are transmitted are similar for TCP and Monarch and evolution of important protocol state variables. flows. We begin by comparing two flows on a single Internet We compare the times taken to transfer 10%, 30%, 50%, path: one emulated with Monarch and one actual TCP flow. 70%, and 90% of all bytes in the 500kB transfer. Fig- Figure 4(a) shows the times when individual data segments ure 6 shows the difference between times taken to complete were transmitted. The graph shows that the transmission Monarch and TCP traces relative to the TCP traces. The 3 error stays small for every part of the transfer, suggesting We also ran the Monarch and TCP flows concurrently, and that packets are sent out at similar rates during the flows’ compared them. The results were similar to those we ob- tained when we ran Monarch and TCP alternately in close lifetimes. succession. Hence, we show only results from the latter.
400 25 3000 CWND TCP 350 2500 RTO (milliseconds) 20 CWND (packets) Segment number 300 CWND Monarch 2000 250 15 200 1500 10 150 1000 100 RTO Monarch RTO TCP 5 500 Monarch 50 TCP 0 0 0 0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 Time (seconds) Time (seconds) (a) (b) Figure 4: Comparison between typical Monarch and TCP flows: The figures show when each segments was sent (a) and how the congestion window and the retransmission timeout evolved over time (b). The plots for Monarch and TCP are so close that they are almost indistinguishable. 1 1 10% Packets sent Packets received 0.8 0.8 30% Fraction of flows Fraction of flows 50% 0.6 0.6 90% 70% 0.4 0.4 0.2 0.2 0 0 0% 25% 50% 75% 100% -100% -75% -50% -25% 0% 25% 50% 75% 100% Relative error Relative error Figure 5: Traffic generated by Monarch and TCP: Rel- Figure 6: Progress of TCP and Monarch flows: Relative ative difference between the number of packets sent and error of the time it took to complete a certain fraction of the received, shown as cumulative distributions. Positive val- transfer between pairs of TCP and Monarch flows, shown ues indicate that Monarch sent/received more packets than as a cumulative distribution. TCP. the throughput of the TCP flow by less than 5%, which is To summarize, we find that Monarch and TCP flows a good match. However, not all these differences are due to match with respect to several packet-level characteristics, inaccuracies in Monarch. Figure 8 also shows the through- including the number and sizes of packets sent, the evolution put differences between two consecutive TCP flows along of important protocol state variables, and the transmission the same paths. The two plots are similar, suggesting that times of individual segments. the dominant cause of these differences is unstationarity in the network, e.g., fluctuations in the amount of competing 4.2.2 Flow-level characteristics traffic. In this section, we investigate whether Monarch and TCP Thus, while packet losses can cause Monarch to under- traces are similar with respect to several high-level flow char- estimate the throughput in general, their impact is fairly acteristics, such as throughput, round-trip times, queueing small, often smaller than the impact of the unstationarity delay, and packet loss. in network path properties during the course of the flow. Throughput: Figure 7 shows the cumulative distribu- Latency: Next, we focus on the latencies and delays ex- tions of the throughput for Monarch and TCP flows. While perienced by packets during Monarch and TCP flows. We the lines for Monarch and TCP match well, Monarch flows compute three types of packet latencies or round-trip times tend to have a slightly lower throughput than TCP flows. (RTT): minimum RTT, maximum RTT, and queueing delay. The figure also shows a second pair of lines, which uses only To remove outliers, we take the maximum RTT to be the flows without packet losses and retransmissions. Interest- 95th percentile of all packet RTTs, and compute the queue- ingly, these lines show almost no difference between Monarch ing delay as the difference between maximum and minimum and TCP. This suggests that the small errors in Monarch’s RTTs. Figures 9 shows the difference in the estimates of throughput estimates might be due to packet losses. RTTs between Monarch and TCP traces, as a percentage of To quantify this error, Figure 8 shows the relative TCP estimates. We also show how estimates from successive throughput difference in pairs of consecutive Monarch and measurements of TCP flows differ from each other. TCP flows, using TCP’s throughput as a base (recall that There are two take-away points from Figure 9. First, we took ten measurements on each path, alternating be- Monarch’s estimates of minimum and maximum RTT tween Monarch and real TCP flows). In over 50% of the closely match the TCP estimates. In fact, Monarch’s errors flow pairs, the throughput of the Monarch flow differs from are indistinguishable from the variation observed in the
1 1 min. RTT (Monarch vs. TCP) 0.8 0.8 min. RTT (TCP vs. TCP) Fraction of flows Fraction of flows Monarch (all) Queueing Delay 0.6 0.6 (Monarch vs. TCP) TCP (all) Monarch (no retransmissions) 0.4 0.4 Queueing Delay TCP (no retransmissions) (TCP vs. TCP) 0.2 0.2 max. RTT (Monarch vs. TCP) max. RTT (TCP vs. TCP) 0 0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 -100% -75% -50% -25% 0% 25% 50% 75% 100% Throughput (Kbps) Relative error Figure 7: Throughput comparison between Monarch Figure 9: Relative RTT difference between successive and TCP flows: The cumulative distributions are very TCP and Monarch flows: The error in extremely small, close; if only flows without packet retransmissions are con- except for the queueing delay. Queueing delay was generally sidered, the distributions are indistinguishable. low in the PlanetLab trace, which is why even small varia- tions lead to big relative errors. 1 1 0.8 Fraction of flows 0.8 TCP Monarch Fraction of flows 0.6 0.6 0.4 0.4 Monarch vs. TCP 0.2 TCP vs. TCP 0.2 0 -100% -75% -50% -25% 0% 25% 50% 75% 100% 0 0% 1% 2% 3% 4% 5% Relative error Packet retransmissions Figure 8: Relative throughput error between pairs of TCP and Monarch flows, and between pairs of TCP Figure 10: Retransmissions per flow for Monarch and flows: The error is similar, which suggests that its primary TCP: Monarch shows more retransmissions because it must cause is unstationarity in the network, and not a problem retransmit packets for losses in both upstream and down- with the Monarch emulation. stream directions, while TCP needs to retransmit only pack- ets lost on the downstream. estimates between successive TCP measurements along the same paths. This points to the efficiency of our Monarch must retransmit packets for losses in both upstream and implementation; despite the additional packet processing downstream directions, while TCP needs to retransmit only overhead in our interposing proxy, we add negligible over- packets lost on the downstream, due to cumulative acknowl- head to the packet latencies. Second, queueing delays edgments. show a much larger variation or unstationarity over time Summary: Our analysis shows that Monarch can accu- compared to minimum and maximum RTTs. The reason rately emulate TCP flows with respect to flow-level proper- for these large relative differences is that the absolute values ties such as throughput, latency, and queueing delay. How- are very low. Over 76% of queueing delay estimates are ever, Monarch’s inability to distinguish between upstream below 10 milliseconds. Hence, even a small 1-millisecond and downstream packet loss causes it to over-estimate packet variation corresponds to a 10% difference. loss. The impact of this inaccuracy is limited to the small Packet loss: Finally, we investigate the loss rates in the fraction of flows that see upstream packet loss. flows. We note that both Monarch and TCP senders re- transmit packets that they perceive to be lost, which might 4.3 Reliability of self-diagnosis be different from the packets that were actually lost. For In the previous section, we showed that the primary source example, TCP might mistake massive packet reordering for of inaccuracy in a Monarch emulation is upstream packet a loss and trigger a retransmission. Our interest here is in loss. In this section, our goal is to show that Monarch’s self- the perceived loss rates of these flows, so we use the packet diagnosis feature (Section 3.3) can reliably detect upstream retransmission rate for loss rate. packet loss, and thus, warn the user of potential inaccura- Figure 10 shows cumulative distributions of retransmis- cies. sion rates for both Monarch and TCP flows. 75% of all We tested this feature on the Monarch flows in our Plan- Monarch flows and 88% of all TCP flows do not contain any etLab trace. For each flow, we compared the tcpdump traces retransmissions and therefore do not perceive packet loss. from the sender and the receiver to determine how many Thus, packet retransmissions do not affect a majority of packets had actually been lost on the downstream and the both Monarch and TCP flows. Of the flows that do contain upstream. Then we compared the results to the output of retransmissions, Monarch shows a clearly higher retransmis- Monarch’s self-diagnosis for that flow; recall that this uses sion rate than TCP. This is expected because Monarch flows only the sender-side trace.
1 Unkown (inferred) detected. This includes the 15.8% (24.9%) of the traces that 0.96 contained only minor reordering errors that would not have Fraction of flows changed the number of duplicate ACKs, and therefore would 0.92 Upstream (measured) not have affected any packet transmissions. Only 7.2% of the Upstream (inferred) broadband traces were reported as inaccurate; for the router 0.88 Downstream (measured) traces, the fraction was only 5.9%. 0.84 Downstream (inferred) We conclude that a majority of our flows to Internet hosts Total (inferred, measured) did not suffer from upstream packet loss or significant re- 0.8 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% ordering, the two primary sources of inaccuracy in Monarch. This suggests that Monarch can be used to accurately em- Loss rate ulate TCP flows to a large number of Internet hosts. More- Figure 11: Self-diagnosis is accurate: The number of over, our results show that the IPID-based self-diagnosis is downstream and upstream losses inferred by Monarch’s self- applicable in most cases. 4.5 Summary diagnosis matches the actual measurements. Only a small number of losses cannot be classified as either downstream or upstream. In this section, we showed that Monarch is accurate: its emulated TCP flows behave similarly to real TCP flows with Result Broadband Router respect to both packet-level and flow-level metrics. We also showed that the most important source of error in Monarch’s Confirmed 13,168 84.2 % 2,317 83.5 % flows is upstream packet loss, and that this can be reliably Inaccuracte 1,130 7.2 % 164 5.9 % detected by Monarch’s built-in self-diagnosis. Further, our examination of large sets of Monarch flows to various Inter- Indeterminate 1,344 8.6 % 295 10.6 % net hosts, including hundreds of routers and thousands of Traces total 15,642 100.0 % 2,776 100.0 % broadband hosts, revealed that less than 10% of these flows suffer from upstream packet loss. From this, we conclude that Monarch can accurately emulate TCP flows to a large Table 5: Monarch is accurate over real Internet paths: number of Internet hosts. In the majority of the flows, self-diagnosis did not detect any inaccuracies. Note that even when an inaccuracy is reported, its impact on flow-level metrics such as throughput 5. APPLICATIONS may be quite small. Monarch’s ability to evaluate transport protocol designs over large portions of the Internet enables new measurement studies and applications. We used Monarch to conduct three Figure 11 shows the results. Self-diagnosis could not dis- different types of measurement experiments. In this section, tinguish between all upstream and downstream losses (see we describe these experiments and present some preliminary Section 3.3) for a very small number of flows (less than 2%). results from them to illustrate their potential benefits. In these cases, Monarch printed a warning. For the majority of flows for which self-diagnosis could infer the loss rates, the 5.1 Evaluating different transport protocols measured and the inferred loss rates match extremely well in both upstream and downstream directions. As expected, New transport protocol designs [3, 10, 47, 49] continue to the total loss rate plots are identical. be proposed as the Internet and its workloads change over We conclude that Monarch’s self-diagnosis can reliably time. However, even extensive simulation-based evaluations detect the major source of inaccuracy in an emulated flow. face skepticism whether their results would translate to the real world. The resulting uncertainty around how well these 4.4 Accuracy over the Internet at large protocols would compete with existing deployed protocols In the previous two sections, we showed that upstream hinders their actual deployment. With Monarch, researchers loss is the most important source of inaccuracies in Monarch can evaluate their new protocol designs over actual Internet emulations, and that Monarch’s self-diagnosis can reliably paths. detect the presence of upstream loss. Our goal in this section We used Monarch to compare three different TCP conges- is to show that upstream losses are rare even when Monarch tion control algorithms implemented 4 in the Linux 2.6.16.11 is used over real Internet paths. kernel: NewReno [12], BIC [49], and Vegas [8]. In our We ran Monarch’s self-diagnosis over our two Internet experiment, we emulated 500kB data transfers from a lo- traces; the first trace consists of 15, 642 flows to 4, 805 broad- cal machine to several hosts in broadband (cable and DSL) band hosts, and the second trace contains 2, 776 flows to 697 ISPs, using each of the three congestion control algorithms Internet routers. Table 5 summarizes our results. About in turn.5 We examined the traces generated by Monarch for 10% of the traces could not be analyzed by Monarch. In the differences in protocol behavior. broadband dataset, 7.1% of the traces did not contain usable Figure 12 shows the difference between the algorithms IPIDs (8.3% in the router dataset), and 1.5% (2.3%) con- over a single, but typical path. The graphs show how the tained a loss that could not be classified as either upstream congestion window (CWND) and the round-trip time (RTT) or downstream. In either of these cases, self-diagnosis was 4 Note that the Linux implementation of TCP protocols may aborted immediately. differ significantly from their reference implementation or Overall, 84.2% of the broadband traces and 83.5% of the their standard specification. router traces were confirmed by self-diagnosis because nei- 5 In Linux 2.6 kernels, it is possible to switch between differ- ther upstream losses nor significant reordering errors were ent TCP congestion control algorithms at runtime.
500 100 500 100 500 100 RTT RTT 400 80 400 80 400 80 RTT (milliseconds) RTT (milliseconds) RTT (milliseconds) CWND (packets) CWND (packets) CWND (packet) 300 60 300 60 300 60 RTT CWND CWND CWND 200 40 200 40 200 40 100 20 100 20 100 20 0 0 0 0 0 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Time (seconds) Time (seconds) Time (seconds) (a) (b) (c) Figure 12: Comparing the performance of different TCP protocols over an Internet path between a host in Germany and a host in the BTOpenWorld DSL network: variation of packet round-trip times (RTT) and the congestion window (CWND) over the duration of a flow using (a) NewReno, (b) BIC, and (c) Vegas. The steep drops in RTT and CWND values are due to packet losses. Compared to Reno, BIC shows higher RTTs and losses, while Vegas shows lower RTTs and losses. evolve over the duration of the transfer. All flows begin in Figure 13 shows the distribution of throughput for flows the slow-start phase, where the CWND increases rapidly un- to different cable and DSL ISPs. The throughput plots for til the flow loses a packet and enters the congestion avoid- the DSL ISPs jump sharply at 256Kbps, 384Kbps, 512Kbps ance phase. The TCP NewReno graph shows that the RTT and 1Mbps. These data rates roughly correspond to the link increases from 44ms at the beginning to well over 300ms be- speeds advertised by these ISPs (see Table 4), which indi- fore it loses a packet. This suggests the presence of a long cates that our transfers were able to saturate the access link, router queue at the congested link on this broadband Inter- which is likely to be the bottleneck. However, the through- net path. TCP BIC, which has been adopted as the default put for cable flows do not exhibit similar jumps, even though TCP protocol by Linux since kernel version 2.6.7, shows a cable ISPs advertise discrete link speeds as well. This sug- similar pattern but ramps up the congestion window much gests that DSL flows and cable flows may be limited by faster after each loss, which results in even higher queueing different factors; access link capacities seem to affect DSL delays and packet losses. In contrast to NewReno and BIC, flows to a greater extent than cable flows. Vegas enters a stable state with a round-trip time of about Overall, our experiment demonstrates how Monarch can 100ms without suffering a single loss. be used to infer properties of network paths that have proven Our experiment shows that TCP BIC, the default conges- difficult to measure in the past. Previous studies of broad- tion control algorithm in Linux, exhibits the worst perfor- band hosts [20] required control over both endpoints, and mance both in terms of packet delay and packet loss. This consequently were limited to a small number of broadband is not particularly surprising because BIC is designed for paths. Internet paths that have a high bandwidth-delay product. In contrast, our measurement path includes a broadband 5.3 Testing complex protocol implementations link with relatively low bandwidth. However, since many Modern transport protocols (e.g. TCP NewReno with fast hosts today use broadband Internet connections, it might retransmit and recovery) are so complex that it is often dif- be important to improve BIC’s performance over broadband ficult to implement them correctly. While program analysis networks. techniques [28] could help debug functionally incorrect im- Our Monarch results, while preliminary, show the impor- plementations, it is important to test the performance of tance of understanding the behavior of new protocols over a these protocols in the real world to find performance prob- variety of real network paths before deploying them widely. lems. Monarch is particularly useful for testing protocols because it can run complete and unmodified protocol imple- mentations. 5.2 Inferring network path properties We used Monarch to emulate TCP flows to several differ- Monarch can be used to infer properties of network paths ent types of hosts, including broadband hosts and academic that have received relatively little attention by the research hosts. In this process, we discovered bugs in the Linux TCP community, such as paths to end hosts in commercial cable stack that tend to manifest themselves frequently over cer- and DSL networks. For this study, we analyzed the Broad- tain types of Internet paths. For example, we found that band trace described in Section 4.1. This trace contains the Linux 2.6.11 implementation of Fast Recovery [12] can Monarch flows to 4,805 broadband hosts in 11 major ca- cause the congestion window to collapse almost entirely, in- ble and DSL networks in North America and Europe. Our stead of merely halving it. This problem can severely reduce analysis inferred several path properties, such as through- throughput, and it occurs repeatedly over paths to DSL or put, round-trip times, queueing delays, loss, and reordering. cable hosts. While a detailed characterization of these properties is be- The purpose of Fast Recovery is to allow the TCP sender yond the scope of this paper, we present some initial results to continue transmitting while it waits for a retransmitted about the overall throughput of these flows and discuss their segment to be acknowledged. Linux uses a variant known potential implications. as rate halving [43], which transmits one new segment for
You can also read