RTTs were measured in the following way. A client sequentially issued 2000 DNS requests that regarded the same, fictitious domain. We measured the time of calling the ``res_send'' function, implemented inside the system resolver library, and calculated an average of all the results. This test was run using TCP-based and UDP-based queries.
Additionally, to measure the overhead introduced by different policies, we performed the above two tests for both the static name-to-address policy, and the round-robin policy.
Finally, to discover the correspondence between the number of IP addresses returned in a single DNS response and the actual RTT, we ran all the tests on four separate redirector configurations, each responding with a different number of addresses. The results of our tests are summarized in Figure 5.1.
As can be observed, there is a significant difference in RTTs between queries using TCP and UDP: retrieving a DNS response with TCP takes almost 80% more time than doing that with UDP. This difference is probably caused by the cost of establishing a TCP connection.
The overhead introduced by the round-robin policy turned out to be negligible in comparison to total execution time. Similarly, the increase in number of IP addresses returned in a single DNS response results in insignificant growth of the overall RTT.