Happy eyeballs

221 views
Skip to first unread message

Mikio Hara

unread,
Aug 27, 2013, 6:37:48 AM8/27/13
to golang-dev
Hi,

Does anyone have an interest in fixing issue 5267: Dial does not try
all resolved addresses?

net: implement minimal Happy Eyeballs connection setup for TCP
https://codereview.appspot.com/12416043/

Happy Eyeballs
http://en.wikipedia.org/wiki/Happy_Eyeballs

I think CL 12416043 is ready for Go 1.2 but only a few days remaining
until featured stuff freeze and the patch contains API change, so I'd
like to hear what do you think about this, go/no-go?

Thanks.


Note:

What about the implementation of this patch?

RFC 6555 describes a simple example algorithm that uses timer-based
fallback but this patch doesn't take it. Instead, the patch uses the
technique known as Happ{y,ier} Eyeballs as described in the following
slide deck.

Analysing Dual Stack Behaviour and IPv6 Quality
http://www.potaroo.net/presentations/2012-04-17-dual-stack-quality.pdf

The patch runs two goroutines and closes the loser connection. That
means that it consumes extra resources per happy eyeballs dial.

Is the patch really useful?

Well... that's the point. It fixes issue 5267 and works well in small
environment but not sure what happens on the wildnet, at the
intermediaries such as HTTP/SSL proxies.

Measuring the Effectiveness of Happy Eyeballs
https://ripe66.ripe.net/presentations/263-ripe66-happy-slides.pdf

Does the patch make anything bad, wrong or make us mad (simply SYN floods) ?

No. (when users understand what the Dial API does under the hood)
Yes. (but it's already been existed as the dual IP stack issue)

Is this a start or an end?

Testing Eyeball Happiness
http://tools.ietf.org/html/rfc6556

Happier Eyeballs
http://tools.ietf.org/html/draft-baker-happier-eyeballs-00.html

Happy Eyeballs Extension for Multiple Interfaces
http://tools.ietf.org/html/draft-ietf-mif-happy-eyeballs-extension-02

It will last as long as the Dial API takes a DNS registered name as
its argument.

Rob Pike

unread,
Aug 27, 2013, 8:58:54 AM8/27/13
to Mikio Hara, golang-dev
What's next in networking? Joyful spleens? Ebullient elbows? Raving
kneecaps perhaps.

It may be great technology (by definition, all network technology is),
but the name is something else.

-rob

Kyle Lemons

unread,
Aug 27, 2013, 4:34:16 PM8/27/13
to Mikio Hara, golang-dev
The only thing that is missing from my quick browse through the CL is documentation that explains what is going on and provides guidance ("use tcp4 or tcp6") for avoiding the happy eyeballs behavior (e.g. when you don't want synflooding).



--

---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Mikio Hara

unread,
Aug 28, 2013, 4:50:05 AM8/28/13
to Kyle Lemons, golang-dev
Thanks both of you for your comments.
I changed the CL description and updated doc on Dial.
Reply all
Reply to author
Forward
0 new messages