
HAPPY EYEBALLS PDF
The original manuscript in the PDF form is available at: References The presentation video and slides are available at. This work was presented within the IPv6 working group at the RIPE 66 meeting. We want to run this test on a large-scale measurement platform to develop a more comprehensive picture to help improve the algorithm. We noticed several cases where the algorithm does not select the best route and instead hampers the user experience. We have performed a preliminary study on evaluating the effectiveness of happy eyeballs. It has native IPv4 and IPv6 connectivity via the German Research Network Conclusion The measurement agent is a server located at the University of Braunschweig. Mean time and its standard deviations to establish TCP connections to a list of web services. We also measured the margin by which happy eyeballs is inhibiting the fastest available route by comparing the slowness of a happy eyeballed winner to that of the loser.įig 1. We noticed, that a 300ms advantage leaves a dual-stacked host only 1% chance to prefer a IPv4 route even though it may be significantly faster than IPv6. It appears that an application never uses IPv6 using Teredo except when IPv4 connectivity is broken. The initial results show higher connection times and variations over IPv6 as shown in Figure 1 below (you can click on the image to enlarge it). We run happy on our internal test-bed of multiple measurement agents with different flavours of connectivity ranging from native IPv4, native IPv6, IPv6 tunnel broker endpoints, Teredo and tunnelled IPv4. We use the Alexa top 1M list as input to prepare a top 100 dual-stacked service names list. The initially performed service name resolution is not accounted in the connection establishment elapsed time. The tool enforces a small delay between concurrent connect(.) calls to avoid bursty TCP SYN traffic. It uses non-blocking connect(.) calls to concurrently establish connections to all endpoints of a service and measures the elapsed time. We have developed happy, a simple TCP happy eyeballs probing tool that conforms to the definition of our metric. The input parameter of the metric is a (IP address, port number) tuple and the output is the connection establishment time, typically measured in microseconds. The methodology also helps examine the impact of tunnelling mechanisms employed by early adopters. We have defined a metric that uses the TCP connection establishment times as a parameter to measure the algorithm’ effectiveness. However, instead of waiting for a timeout, it waits for 300ms, after which it must initiate another TCP connect(.) to an endpoint with a different address family and start a competition to pick the one that completes first.

The algorithm recommends that a host, after resolving the service name, tries a TCP connect(.) to the first endpoint.

The degraded user experience can be subverted by implementing the happy eyeballs algorithm. The order can dramatically reduce the application’s responsiveness when IPv6 connectivity is broken. The function getaddrinfo(.) resolves a service name to a list of endpoints in an order that prioritises an IPv6-upgrade path. We study the effectiveness of the happy eyeballs algorithm. The happy eyeballs algorithm for instance, provides recommendations to application developers to help prevent bad user experience in situations where IPv6 connectivity is broken. The IETF has developed solutions that promote a healthy IPv4 and IPv6 co-existence.
