2 uni-directional TCP connection good?
Yoshihiro Ota
ota at j.email.ne.jp
Tue Mar 24 21:12:12 PDT 2009
On Fri, 20 Mar 2009 01:56:56 -0700
Michael David Crawford <mdc at prgmr.com> wrote:
> Yoshihiro Ota wrote:
>
> > I saw a program that opens 2 TCP connections.
> > One connection is only used for server to client messaging only
> > and the other connection is used only for client to server messaging.
>
>
> > 2. He also said that it would also waste network bandwidth.
>
> You have a two-way communication no matter what you do. But if you
> don't actually use inbound direction, all it gets used for is the
> receipt of ACK packets.
>
> That is, the inbound connection is used to make the data transfer reliable.
>
> If you don't have any payload data on the inbound connection, then the
> outbound connection won't have any ACK packets.
>
> If you're sending payload data, the ACK info can "hitchhike" along with
> the payload packets, thus saving bandwidth. But if you're not sending
> any payload data at all, there will be packets transmitted which contain
> the ACKs and nothing else.
>
> The extra network overhead will be modest if you're sending a lot of
> data all at once, say transferring a large file. But if very little
> data is sent per packet, say individual characters in a telnet
> connection, the overhead would be very high.
So far until this, this was what I had though and learned about TCP connections.
> If you have a single connection with payload data in both directions,
> then the ACKs will almost always ride along with some payload data. The
> only time a packet will contain nothing but an ACK will be when some
> data was transmitted, but none is to be received at the time.
>
> Mike
However, I had forgotten this case. This can explain he even said that
using 2 TCP connection would cut the bandwidth into half. This sounds
like the case he was referring to.
Thanks,
Hiro
More information about the freebsd-hackers
mailing list