One of the reasons I'm not a networking expert may be relevant here. With networks, I never found an abstraction to hang my hat on. Unlike with file systems and files, or even Unix character devices, which provide a level of remove from the underlying blocks and sectors and so on, the Unix networking interface always seemed too low-level and fiddly, analogous to making users write files by managing the blocks and sectors themselves. It could be all sockets' fault, but when I hear networking people talk about the protocols and stacks and routing and load shedding and ....my ears droop. I know it's amazing engineering and all that, but why aren't we allowed to program the I/O without all that fuss? What makes networks so _different_? A telling detail is that the original sockets interface had send and recv, not read and write. From day 1 in Unix land at least, networking was special, and it remains so, but I fail to see why it needs to be.
It just seems there has to be a better way. Sockets are just so unpleasant, and the endless nonsense around network configuration doubly so.
Rhetorical questions. I'm not asking or wanting an answer. I'm happy to remain a greenhorn, oblivious to the wonder.
To adapt a reference some may recognize, I just want to read 5 terabytes.
-rob