7 ms·
Many early protocols were designed under the basic assumption that any two hosts on a network could initiate connections to each other. This was, after all, the
by jcrawfordor 5y ago
Many early protocols were designed under the basic assumption that any two hosts on a network could initiate connections to each other. This was, after all, the fundamental concept around which early computer networks were designed... as networks of equal peers.
Unfortunately, this assumption has failed the test of time, as the "peer to peer" nature of computer networks has been fundamentally degraded due to widespread adoption of a more strict client-server model. Today, it is mostly not true that any two internet hosts can intiate connections with each other, and while seldom phrased this way the reality is so deeply embedded in our understanding of the internet that protocols designed under this assumption, while common, seem absurd. There are numerous reasons for this that range from security concerns to IPv4 exhaustion to the simple practicalities of the way that computer networks entered widespread usage.
We should all wonder: is it a good thing that we have abandoned the peer to peer nature of networks?
- rasengan 5y agoIt is not good. Hopefully IPv6 is adopted globally soon.
- spookthesunset 5y agoIPv6 only ensures each device has a globally unique IP address. It does not ensure there is a firewall between one of those devices and their ISP. NAT’s might go away under IPv6 but firewall policies with “default deny inbound connections” will almost certainly not.
- ThalesX 5y agoI think there are efforts underway to build a more p2p internet. I've been trying to find the time to build some small experiment using https://hypercore-protocol.org/ https://hypercore-protocol.org/ (no affiliation).
- jcrawfordor 5y agoThere are many protocols which are "logically" P2P, but actually using the network in a P2P fashion is a different matter and much more difficult. Hypercore, for example, uses a "distributed hole-punching" architecture in which clients that want to communicate with each other discover each other using a DHT and then preemptively send UDP traffic to each other in order to cause NAT appliances on both ends to create connection tracking entries. Unfortunately this assumes that the DHT is up and running to serve as a "meet-me" point for these nodes to know about each other in the first place. In order for this to happen a DHT member needs to "bootstrap" by... contacting a "bootstrap node" which is basically a special centralized Hyperswarm server with a conventional DNS address and capability to accept inbound connections. This possibly surprising fact, that at the core of the P2P distributed system there is a centralized client-server service that provides the initial discovery information to begin participating, is pretty much universal to P2P systems because of the limitations the internet imposes. Removing this requirement would require a significantly more P2P-architected internet that allowed, for example, participation in arbitrary multicast groups from residential ISPs. There are both theoretical and practical (but mostly practical) challenges to doing this. In other words, the way the internet works, the only real way to begin to participate in a P2P internet protocol is to connect to a centralized service to provide initial peer hints. This is commonly referred to as an "introducer" or "bootstrap node" or "peer helper" or other terms depending on the P2P system. Hypercore and the Hyperswarm P2P network it relies on are actually unusually advanced in how much they minimize the need for an introducer, to the extent that a Hyperswarm node can completely forget about the introducer (it could go down) after initial setup and it will probably continue to work okay although there is a probabilistically small risk of a split-brain scenario. Older P2P protocols like Bittorrent and Tor have a greater dependency on centralized introducers and cannot operate without them even after initial startup (with caveats such as Bittorrent's support for Kademlia DHT, the same underlying DHT protocol used by Hyperswarm, which is in use by some Bittorrent nodes but not all for various reasons). For hypercore specifically the introducers are bootstrap1.hyperdht.org through bootstrap3.hyperdht.org. These are basically hardcoded into your client.
- ngcc_hk 5y agoNot totally true as peer to peer can use a decentralised protocol to find peer. Is there a “centralised” server under Bitcoin? Or is it you can bootstrapping even manually then the peer to peer network can go ahead to find more peer … The problem of “centralisation” is not due to the need of finding peer. It is in the edge. You control the isp you control all. See China. How to break this edge issue … very hard.
- jjav 5y ago> Unfortunately, this assumption has failed the test of time I can't agree that it has failed the test of time. Peer to peer is still the superior solution to nearly every problem. What happened is that the Internet became commercialized and now profit runs everything. Centralized solutions are better at: injecting advertising, tracking users, requiring subcriptions, ensuring lock-in and preventing interoperability. None of these are good qualities for anyone involved, except the company making the profit. But these companies now rule the internet, so they hate peer to peer.
- ngcc_hk 5y agoTotally agreed. Just hope the peer 2 peer survived for the time to come. Internet promised of decentralization is not realized. But still we can dream. As long as we can, peer2peer will come.
- jjav 5y ago> Internet promised of decentralization is not realized. Just to point out, it was realized. In the early days everyone ran their services (SMTP, NNTP, later HTTP, finger, telnet, etc, etc) locally in a 100% distributed fashion. It's just that then the commercial interests showed up and ruined everything with centralization, ads, spam, tracking.
- kazen44 5y agoit is mainly the web that has been commercialized. Getting acces to the internet (AKA, getting an IP block and routes to connect to others) has always been sort of centralized, mainly because ip blocks need to be handed out from a single source of truth to prevent ip address collisions. Still, the peer to peer nature of interconnecting still exists, there is no hierachical information source which defines routes across the internet. This is all decentralized and done by doing peering between parties with BGP (And other routing protocols). Doing this yourself is possible, although rather hard and niche for a consumer. But getting an AS number is doable, and getting an IPV6 block is even easier. IPv4 is hard to come by though..
- 5y ago