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