On Sun, Jun 26, 2022 at 09:57:17AM +1000, Rob Pike wrote:
One of the things we liked about Datakit was that the
computer didn't have
to establish the connection before it could reject the call, unlike TCP/IP
where all validation happens after the connection is made.
Nor does TCP, one can send a RST to a SYN, and reject the call before it is
established. That would then look to the caller just like a non listening
endpoint, unless one added data with the RST.
So this is really just a consequence of the sockets API, and the current implementations.
I've a vague recall of folks suggesting ways to expose that facility via the sockets
layer, possibly using setsockopt(), but don't know if anyone ever did it.
As I recall that TCP capability was actually exposed via the TLI/XTI API,
and (for some STREAMS based TCP stacks) it did function. Although I may be
thinking of embedded STREAMS TCP stacks, not unix based stacks.
Or by 'connection' are you referring to an end-to-end packet delivery,
and that Datakit allowed a closer switch to reject a call before the packet
got to the far end?
DF