2 uni-directional TCP connection good?
Yoshihiro Ota
ota at j.email.ne.jp
Sun Mar 22 20:53:02 PDT 2009
On Fri, 20 Mar 2009 13:24:09 +0000 (GMT)
Robert Watson <rwatson at FreeBSD.org> wrote:
>
> On Fri, 20 Mar 2009, Yoshihiro Ota wrote:
>
> > 1. With TCP connections, only sender side can detect some communication
> > issues passively if happened. By using two connections, you lost that
> > ability by your self. I agree on this one.
>
> Could you expand a bit on this point? While the connection creation process
> (usually) asymmetric, once the connection is built it's essentially the same
> state machine on both sides of the connection, and socket semantics with
> respect to the state machine are effectively identical. Application on both
> sides should be able to detect disconnect, monitor connection state using
> TCP_INFO, etc.
What I meant was that there were cases when a receiver could not tell weather
no data was coming or communication was interrupted. Once connection is
established, a route is available between a server and a client. Let's say
this route is broken for some reasons, i.e. someone unplugged a cable or
a firewall started dropping or rejecting between these server and client,
a sender may not notice as soon as it happens but at least, a sender knows
a massages was not delivered right. On the other hand, receiver side does
not have any idea that a message delivery failure has happened at all or
for a while unless using heartbeat messages in upper layer. KEEP_ALIVE option
seems to be implementation dependent such that you cannot assure TCP
connection availability for every minute.
Thanks,
Hiro
More information about the freebsd-hackers
mailing list