Peer Locality

Locate which ISP and which IP subnet nodes are in and prioritize traffic to these "closer" nodes.

Why?

Intra-ISP traffic is much cheaper for ISPs, making it possible to both limit the economical impact of the distribution platform and possibly provide better speeds for users (by putting less strain on the back-bone infrastructure).

What?

Let nodes discover which IP block and ISP they are part of. This information should then be spread to other nodes. This can be done in two ways:

  1. Register in a DHT both under IP block and ISP ID
  2. Add this information to the buddycast protocol to gossip about it

How?

Based on globally available WHOIS information, the external IP address of a node is resolved to the IP address block and registered ISP information. Note that nodes will only resolve themselves first time they're on a new IP address (or at least not often), so this should not put unnecessary strain on any servers.

When node information has been discovered (using either gossip, DHT or a combination), nodes can be preferred by the swarming protocol (modify bartercast?). This means that as long as there is nothing to loose for the client, it will "play nice" with ISPs. If there is not enough capacity available, or if nodes are very few within a network, swarming will be performed as usual.

If the WHOIS information is bad for some ISPs, this should only have an effect on the ISP itself. If we can test and show that this works properly, ISPs would benefit from updating and maintaining WHOIS information.

Current state

  • WHOIS database resolves have been implemented. Should work for any IP address (does a two-step resolve if outside of the US).
  • No integration with Tribler has been done yet