The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] is networking different?
@ 2022-07-03 20:32 Marc Donner
  2022-07-03 20:34 ` [TUHS] " Marc Donner
  2022-07-03 20:57 ` Dan Stromberg
  0 siblings, 2 replies; 6+ messages in thread
From: Marc Donner @ 2022-07-03 20:32 UTC (permalink / raw)
  To: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1467 bytes --]

On June 28 Rob Pike wrote:

"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."

I've been ruminating on the question of whether networks are different from
disks (and other devices).  Here are a couple of observations:

1 - Two different packets may take two different paths from the sender to
the receiver.

1a - The transit time for one packet may vary widely from that of the other.

1b - The two packets may arrive in an order different from the order in
which they were transmitted.

(Note - recently I have been reading Bob Gezelter's monograph [and PhD
dissertation] and I've learned that modern high-performance disk systems
behave more like networks in 1a and 1b.)

2 - A packet may never arrive.

3 - Behavior 2 not a sign of hard failure for networks, whereas it is
generally considered so for other I/O devices.

There is probably more to why networks are weird, but these are some of the
big dissonances that seem to me to make Rob's comment resonate so loudly to
me.

Best,

Marc
=====
nygeek.net
mindthegapdialogs.com/home <https://www.mindthegapdialogs.com/home>

[-- Attachment #2: Type: text/html, Size: 3779 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [TUHS] Re.: is networking different?
@ 2022-07-04 20:09 Paul Ruizendaal via TUHS
  2022-07-04 21:17 ` [TUHS] " ron minnich
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Ruizendaal via TUHS @ 2022-07-04 20:09 UTC (permalink / raw)
  To: The Eunuchs Hysterical Society

> On Sun, Jul 3, 2022 at 1:33 PM Marc Donner wrote:
> 
> I've been ruminating on the question of whether networks are different from
> disks (and other devices).  Here are a couple of observations:

[...]

From my perspective most of these things are not unique to networks, they happen with disks and/or terminals. Only out-of-order delivery seems new. However, in many early networking contexts (Spider/Arpanet/Datakit/UUCP) this aspect was not visible to the host (and the same holds for a single segment ethernet).

To me, in some ways networks are like tty’s (e.g. completing i/o can take arbitrarily long, doing a seek() does not make sense), in other ways they are like disks (raw devices are organised into byte streams, they have a name space). Uniquely, they have two end-points, only one of which is local (but pipes come close).

Conceptually, a file system does two things: (i) it organises raw blocks into multiple files; these are the i-nodes and (ii) it provides a name space; these are directories and the namei routine. A network stack certainly does the first: a raw network device is organised into multiple pipe-like connections; depending on the network, it optionally offers a naming service.

With the first aspect one could refer to any file by “major device number, minor device number, i-node number”. This is not very different from referring to a network stream by “network number, host number, port number” in tcp/ip (and in fact this is what bind() and connect() in the sockets API do), or “switch / host / channel” in Datakit. For disks, Unix offers a clean way to organise the name spaces of multiple devices into a unified whole. How to do this with networks is not so easy, prior to the invention of the file system switch.

Early on (Arpanet Unix), it was tried to incorporate host names into a net directory by name (RFC 681) but this is not scalable. Another way would be to have a virtual directory and include only names for active connections. The simple way would be to use a text version of the numeric name as described above - but that is not much of an improvement. Better to have a network variant of namei that looks up symbolic names in a hosts file or in a network naming service. The latter does not look very performant on the hardware of 40 years ago, but it appears to have worked well on the Alto / PuPs network at Xerox PARC.

With the above one could do

open(“/net/inet/org.tuhs.www:80”, O_RDWR | O_STREAM)

to connect to the TUHS web server, and do

open(“/net/inet/any:80”, O_RDWR | O_STREAM | O_CREAT, 0600)

to create a ‘listening’ (rendez-vous) socket.

Paul













^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-07-05  3:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-03 20:32 [TUHS] is networking different? Marc Donner
2022-07-03 20:34 ` [TUHS] " Marc Donner
2022-07-03 20:57 ` Dan Stromberg
2022-07-03 21:55   ` Richard Salz
2022-07-04 20:09 [TUHS] Re.: " Paul Ruizendaal via TUHS
2022-07-04 21:17 ` [TUHS] " ron minnich
2022-07-04 23:37   ` [TUHS] " Paul Ruizendaal
2022-07-05  3:02     ` John Cowan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).