I agreed with Greg that it's bad to give the user a broken feature,
especially for a complex feature like networking.

On Wed, Oct 13, 2021 at 10:51 AM Gregory Nutt <spudan...@gmail.com> wrote:

> Similarly, I have also advocated the option to disable READ AHEAD
> buffering.  A stack that cannot buffer a packet is not reliable:  If the
> read operation is not in place and waiting for an incoming packet, then the
> packet will be dropped dropped in that case.  Pretty hard to design a
> reliable stack with that kind of behavior.
>
> Again, the counter argument for retaining the option to disable READ AHEAD
> buffering (as with WRITE buffering) is only because it would prevent
> minimum systems that cannot afford a pool of IOBs.
>
> Is it better to have a quality network stack?  Or a small but unreliable
> stack?
>
> On Tue, Oct 12, 2021 at 8:35 PM Gregory Nutt <spudan...@gmail.com> wrote:
>
> > For people that need some background, this Wikipedia article may be
> > helpful:  https://en.wikipedia.org/wiki/TCP_delayed_acknowledgment.  The
> > SPLIT packet change is intended to work around issues when the unbuffered
> > send is used with a peer that supports RFC 1122.
> >
> > In the unbuffered send case, the send operation blocks until the packet
> is
> > sent and ACKed.  Per RFC 1122, the peer may delay sending the ACK for up
> to
> > 500 Msec.  So the performance of the unbuffered send is abysmal when
> > sending to an RFC 1122 client.
> >
> > The split basically breaks each TCP send into two packets.  RFC 1122 does
> > *require* that an ACK be sent after two packets are received.  If you are
> > seeing different behavior, then those peers are not conforming to RFC
> > 1122.  Perhaps there is some other standard.
> >
> > I think that the unbuffered send logic is generally very bad and I have
> > suggested removing it in the past.  The buffered send performance is much
> > better.  We decided to retain the unbuffered send only because it does
> use
> > less memory since no write buffering is required.
> >
> > I am not 100% sure of this, but I still think that it would be better to
> > remove the unbuffered TCP send logic rather than remove the packet split
> > logic.  I don't see how removing the split makes the unbuffered send
> > better.  It does not fix anything and certainly breaks the RFC 1122 case.
> > The unbuffered TCP send behavior is bad without the split and, according
> to
> > your PR, it is also bad with the split.  But my feeling is not strong so
> > just take that as my 2 cents worth.
> >
> > Greg
> >
> > On Tue, Oct 12, 2021 at 8:10 PM Takashi Yamamoto
> > <yamam...@midokura.com.invalid> wrote:
> >
> >> hi,
> >>
> >> i submitted a PR to remove NET_TCP_SPLIT.
> >> https://github.com/apache/incubator-nuttx/pull/4660
> >>
> >> i'm posting this here because a feature removal should be reviewed by
> >> wider audience.
> >> especially, if you are relying on it, please speak up.
> >>
> >
>

Reply via email to