Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site allegra.UUCP Path: utzoo!linus!genrad!mit-eddi!mit-vax!eagle!allegra!jdd From: jdd@allegra.UUCP Newsgroups: net.bugs.4bsd Subject: Networking Lossage in 4.1c Design Message-ID: <1620@allegra.UUCP> Date: Thu, 30-Jun-83 22:30:21 EDT Article-I.D.: allegra.1620 Posted: Thu Jun 30 22:30:21 1983 Date-Received: Fri, 1-Jul-83 06:25:30 EDT Organization: Bell Labs, Murray Hill Lines: 26 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