Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

collect very coarse client location in usage DB #8

Open
warner opened this issue Apr 4, 2018 · 1 comment
Open

collect very coarse client location in usage DB #8

warner opened this issue Apr 4, 2018 · 1 comment

Comments

@warner
Copy link
Collaborator

warner commented Apr 4, 2018

For the same reasons as magic-wormhole/magic-wormhole-mailbox-server#7, I'm thinking of running the client IP address through the MaxMind geolocation DB and recording the country code in the Usage DB. The idea is to figure out (very roughly) where the relay traffic is coming from and use that to decide where to place the relay, to reduce user latency.

The current Transit Relay runs on a Linode box, probably in texas (I just picked the default), but if traffic increases and I want to find a cheaper option, I might move it to a Scaleway box. These are ARM servers with fairly slow CPUs (which we don't really need for the transit relay anyways), and unmetered bandwidth, but they're also based in Europe. Before making that switch, I'd want to get a sense for how much it might slow people down.

I don't think the transit phase of the file-transfer protocol is too latency-sensitive: it's TCP, so it'll fill the pipe as best it can, it might just take an extra few seconds to ramp up the window size to max capacity. But it could add an extra second to a relay-assisted transfer, if the connection-establishment packets take longer to get delivered.

@warner
Copy link
Collaborator Author

warner commented Jul 17, 2019

I'd also be kind of interested in knowing when the two sides used the same externally-visible IP address. That would tell us about network conditions where the two sides are probably on the same LAN, but were unable to make a direct connection for some reason. Basically I'd like to guide the NAT/hole-punching work, but I'm not sure what information would be most useful for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant