Networking Lossage in 4.1c Design

jdd at allegra.UUCP jdd at allegra.UUCP
Fri Jul 1 12:30:21 AEST 1983


Well, if we're talking 4.1c lossage in net.bugs.4bsd, here's a great one:

In the design of the TCP Internet protocols, a channel is uniquely specified
by the 4-tuple:

	(machine-a, port-a, machine-b, port-b)

The same port number on the same machine can be associated with any number
of connections so long as the other machine and/or the other port differ.
This is the definition; this is reality.

Now the way the Internet domain is mapped onto the 4.1c networking
apparatus, one uses the "bind" system call to bind a socket to a particular
AF_INET port number.  \Unfortunately/, "bind" fails if any other socket is
currently bound to that port number on that machine!

I discovered this restriction when I tried to port a distributed program
that opened several TCP channels, reusing the same local port numbers on
each machine.  This is allowed by the Internet standard but not by 4.1c.

This is more a design flaw than a bug, since it's hard to imagine how to fix
it in the context of the 4.1c name-binding mechanism.  

Cheers,
John ("My Fingers Can't Type Any More") DeTreville
Bell Labs, Murray Hill



More information about the Comp.bugs.4bsd.ucb-fixes mailing list