Sunday, February 19, 2017

The internet as we (don't) know it

In an older post (dec. 2012) i described how a connection can be established between two IPv4 hosts sitting behind various types of NAT/CGN connections, based on whether said NAT/CGNs are UPnP-enabled, or they are BEHAVE-compliant, or they are [a variation of] BEHAVE non-compliant, with the hidden assumption that the CGNs follow the IETF recommendation and are set up with "paired" address pooling.

Well, fast forward four years, and a new study (sept. 2016) on the state of IPv4 CGNs apparently proves my hidden assumption wrong: specifically, despite IETF's strong recommendation for setting up "paired" address pooling on CGNs, many (~20%) internet service providers, including high-profile ISPs spanning all geographical regions, seem to ignore this recommendation and they choose to set up "arbitrary" address pooling on their CGN gateways (see "NAT pooling behavior" at page 11 in said study).

The problem with arbitrary address pooling is that it significantly impairs on the ability to connect two hosts when one+ host is sitting behind an arbitrary address pooling CGN: specifically, in this situation not only is a relaying host (peer) needed, but said relay must have a public IPv4 address (which in practice means it has to sit behind a single layer of UPnP-enabled NAT), and this type of IPv4 internet connection is already extremely scarce (estimates for 2016 vary between 1% and 5%) and it will only get scarcer by the day.

From the P2P OS perspective, the numbers revealed by the above-mentioned study translate into having a much larger number of hosts that will require a public IP (or a single-layer UPnP-enabled NAT) relaying host than previously estimated; in fact, if indeed ~20%+ of the CGNs that will be deployed in the future will have arbitrary address pooling then my current P2P OS networking scheme will simply not be able to accommodate most of such hosts (i.e. hosts sitting behind arbitrary address pooling CGNs).

In conclusion, although the current IPv4 technology (including the CGN technology) allows for an IPv4 internet which can support a self-sustaining p2p network, many ISPs, including high-profile ISPs, chose to go against the IETF recommendations, and by doing so they put in severe jeopardy the future of any and all IPv4-based p2p networks. In this context, a new analysis is now required to see if/how the current trend of deploying arbitrary address pooling CNGs can be accommodated by P2P OS via a [new type of] connection that can handle arbitrary address pooling CGNs.