3 ms·
> my laptop could just make a request to Service X on AWS I was looking for the "just" that handwaves away the complexity and I was not disappointed. How do y
by wpietri 4y ago
> my laptop could just make a request to Service X on AWS
I was looking for the "just" that handwaves away the complexity and I was not disappointed.
How do you imagine your laptop expressing a request in a way that it makes it through to the right machine? Doing a traceroute to amazon.com, I count 26 devices between me and it. How will those devices know which physical connection to pass the request over? Remember that some of them will be handling absurd amounts of traffic, so your scheme will need to work with custom silicon for routing as well as doing ok on the $40 Linksys home unit. What are you imagining that would be so much more efficient that it's worth the enormous switching costs?
I also have questions about your notion of "centralization". Are you saying that Google, Microsoft, and other cloud vendors should just... give up and hand their business to AWS? Is that also true for anybody who does hosting, including me running a server at home? If so, I invite you to read up on the history of antitrust law, as there are good reasons to avoid a small number of people having total control over key economic sectors.
- dopylitty 4y ago> How do you imagine your laptop expressing a request in a way that it makes it through to the right machine? Doing a traceroute to amazon.com, I count 26 devices between me and it. How will those devices know which physical connection to pass the request over? That's my whole point. You're thinking of it from an IP perspective where there are individual devices in some chain and they all need to autonomously figure out a path from my laptop to AWS. The reality is every device between me and AWS is owned by my ISP. They know exactly which physical path ahead of time will get a message from my laptop to AWS. So why waste all the time on the IP abstraction? > I also have questions about your notion of "centralization". Are you saying that Google, Microsoft, and other cloud vendors should just... give up and hand their business to AWS? AWS is just an example. Realistically a huge amount of traffic on the internet is going to 6 places and my ISP already has direct physical connections to those places. Maintaining this complex and byzantine abstraction to figure out how to get a message from my laptop to compute in those companies' infrastructure should not be necessary. And in general the more important part is within AWS' (or Microsoft's or enterprise X's) network why waste time on IP when the network owner knows exactly which host every compute process is running on? Instead of thinking of an enterprise network as a set of autonomous hosts that need to figure out a path between each other think of it as a set of processes running on the same OS (the virtual infrastructure). Linux doesn't need to do BGP to figure out how to connect two processes so why does your network?
- scarmig 4y ago> The reality is every device between me and AWS is owned by my ISP. They know exactly which physical path ahead of time will get a message from my laptop to AWS. Neither of these are true in general. And suppose AWS (or GCP, or Azure, or Cloudflare...) decides to add a new POP. How do they broadcast to your ISP and all the other ISPs in the world how exactly to send datagrams to it?
- deleted 4y ago[deleted]
- error503 4y ago> That's my whole point. You're thinking of it from an IP perspective where there are individual devices in some chain and they all need to autonomously figure out a path from my laptop to AWS. The reality is every device between me and AWS is owned by my ISP. They know exactly which physical path ahead of time will get a message from my laptop to AWS. So why waste all the time on the IP abstraction? IP is concrete, not abstract. Whatever the form the network takes, when you make a request, your ISP is going to have a make a decision on how to route it over their physical assets to get it to the desired destination. Unless you are talking about your ISP provisioning a physical circuit directly between you and Amazon, with no multiplexing and no equipment on it, you are going to have those hops whether you use IP to choose the route or not. That is not really negotiable, or you're not describing a network (or something even remotely viable) at all. Maybe that path is invisible to you, but it exists. And in fact, in many or even most carrier networks, this is abstracted in much the way that you describe within that particular network using MPLS. But this approach doesn't scale to the scope of the Internet, requires all edge devices have complete knowledge of every necessary path in the network, and makes inter-networking more difficult because every endpoint and its end-to-end path to every other needs to be shared and synchronized. This is actually more complex, and much more brittle, than the current implementation. And for what? I still have yet to understand what advantage you think would be gained here. Right now, if you want to talk to s3, you send a packet to s3, and your ISP does all the 'complex and byzantine' work. What do you care how they do it? Ignoring the long tail is also silly. FAANG might represent a majority of traffic on the Internet, but the long tail is huge, and you can't just hand-wave it away like that. Enabling it is what makes the Internet what it is, and if your proposal doesn't account for it, it's dead in the water. > And in general the more important part is within AWS' (or Microsoft's or enterprise X's) network why waste time on IP when the network owner knows exactly which host every compute process is running on? Knowing that is the easy part. You still need to figure out a path and actually route the packets along it. You still need to deal with path selection, load balancing, fault tolerance, and synchronizing any necessary state. You still need devices along the path to know what to do with a packet they receive, somehow. It turns out that hop-by-hop routing is an efficient and viable way to accomplish this. > Instead of thinking of an enterprise network as a set of autonomous hosts that need to figure out a path between each other think of it as a set of processes running on the same OS (the virtual infrastructure). Linux doesn't need to do BGP to figure out how to connect two processes so why does your network? Because the 'network' you describe is not a network? It's processes running on the same machine? This is not analogous at all to a large distributed network like the Internet.