-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add net.TCPConnection & remove TCPIPConnection
This adds a new TCP client connection actor which replaces the older TCPIPConnection actor. It improves on the old implementation through the addition of DNS resolution and Happy Eyeballs (RFC6555). While not super complex it is non-trivial compared to the old connection actor and so there are probably bugs lurking. More test cases are needed. Right now we do a rather aggressive Happy Eyeballs where we instantly connect both to IPv4 and IPv6. This effectively doubles the resources consumed, fds on our end and more on the server side. While the RFC allows for this, the recommendation is to have a slight delay for the IPv4 side, like I think Chrome does 300ms or so. We can look into that. Added net.is_ipv4() and net.is_ipv6() as well. Originally had ideas about just adding this and letting the older TCPIPConnection remain but as we've made backwards incompatible changes anyway, it's just easier to replace it right away.
- Loading branch information
Showing
11 changed files
with
342 additions
and
75 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.