I think that we should not provide broken features unless they are experimental 

-----Original Message-----
From: Xiang Xiao <xiaoxiang781...@gmail.com> 
Sent: den 14 oktober 2021 10:49
To: dev@nuttx.apache.org
Subject: Re: NET_TCP_SPLIT removal

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://urldefense.com/v3/__https://en.wikipedia.org/wiki/TCP_delaye
> > d_acknowledgment__;!!JmoZiZGBv3RvKRSx!tialRaWS8SoruDjFpeabVMLOKhTRX0ZmTGHapT0vQAy6pb66jXy7suu4AR6CokSoPw$
> >  .  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://urldefense.com/v3/__https://github.com/apache/incubator-nut
> >> tx/pull/4660__;!!JmoZiZGBv3RvKRSx!tialRaWS8SoruDjFpeabVMLOKhTRX0ZmT
> >> GHapT0vQAy6pb66jXy7suu4AR6OGCrEqw$
> >>
> >> 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