Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!ACC.ARPA!art From: art@ACC.ARPA Newsgroups: comp.protocols.tcp-ip Subject: RE: Re: Call queueing Message-ID: <8809090642.AA03357@ucbvax.Berkeley.EDU> Date: 8 Sep 88 17:20:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Organization: The Internet Lines: 23 >Why does this connection queue have to be handled by the kernel? Why couldn't >the application just open and initialise for listening (not in the BSD syscall >sense) as many transport endpoints as it's queue needs to be long? > >Opinions, anybody? At least for BSD, the kernel will not allow more than one listening socket to be bound to a particular local endpoint address, but the server wants to be able to open multiple connections which refer to the same local endpoint address. To deal with this, the kernel accepts multiple connections and queues them at the listening socket. When an accept system call is issued, an open connection is associated with a new socket which is then returned to the user. One can think of the new socket a "clone" of the listening socket. To allow multiple listening sockets to be bound to the same endpoint address opens up a bunch of ambiguity problems. (TCP doesn't know if identical services are available on all those sockets) Art Berggreen art@acc.arpa ------