Re: [tcpm] Question on RFC6298, Managing the RTO Timer and additional lost pakets in Recovery state

Ingemar Johansson S <[email protected]> Thu, 10 Mar 2016 13:22:04 +0000
Newsgroups gmane.network.end2end
Message-ID <[email protected]>
--===============2071240620==
Content-Language: en-US
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
	micalg=SHA1; boundary="----=_NextPart_000_01FD_01D17AD8.373EEB50"

------=_NextPart_000_01FD_01D17AD8.373EEB50
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hi Yuchung, thanks for the help

I seem to have gotten the RFC6937 (PRR) behavior in place.  Currently I =
don't see much gain with PRR, one possible reasons is that AQMs in LTE =
are typically a bit on the "bufferbloated" side as too low drop =
thresholds easily causes links be underutilized. The effect of this is =
that when  a loss event occurs, there will be enough data in the RLC =
queue to transmit even though the congestion window is cut in half =
immediately. There could still be benefits with PRR in terms of less =
RTO.

I believe then that I am getting closer to a good Linux TCP model in our =
simulator.=20
I still have one particular behavior that I don't really understand, I =
am almost 100% sure that the error is on my side

Thanks for the ref to the sigcomm paper, I seem to have missed it.

/Ingemar

> -----Original Message-----
> From: Yuchung Cheng [mailto:[email protected]]
> Sent: den 5 mars 2016 16:53
> To: Ingemar Johansson S
> Cc: [email protected]; Michael Welzl; [email protected]; end2end-
> [email protected]
> Subject: Re: [tcpm] Question on RFC6298, Managing the RTO Timer and
> additional lost pakets in Recovery state
>=20
> Linux implements RFC6937 not RFC6675 to adjust cwnd in fast recovery.
> Specifically it reduces cwnd gradually toward ssthresh as packets are =
being
> delivered. if inflight, aka pipe, drops below ssthresh, it tries to =
slow start
> toward ssthresh, provided no additional packets are lost. The last =
condition
> was added recently and I had a presentation last meeting:
> https://www.ietf.org/proceedings/94/slides/slides-94-tcpm-7.pdf
>=20
> btw, Linux may adjust RTO by taking RTT samples from newly SACK =
blocks,
> which is not standardized. It mitigates issues when RTT continues to =
raise
> during recovery in LTE networks (see figure 15 in
> http://web.eecs.umich.edu/~zmao/Papers/lte_sigcomm13.pdf)
>=20
> On Sat, Mar 5, 2016 at 7:18 AM, Ingemar Johansson S
> <[email protected]> wrote:
> >
> > Hi
> >
> > Thanks for the response, and thank Michael as well, guess I need to =
read
> RFC5681 and RFC6675 again.
> >
> > The line of reasoning seen from an application perspective actually =
helps to
> put the puzzle together for me.
> > Also I understand now that case 2 below necessitates an RTO, atleast =
with
> TCP. I guess QUIC may be different in this respect as it retransmitted
> segments have a new transport sequence number ?.
> >
> > /Ingemar
> >
> > > -----Original Message-----
> > > From: [email protected] [mailto:[email protected]]
> > > Sent: den 3 mars 2016 15:32
> > > To: Ingemar Johansson S
> > > Cc: [email protected]; [email protected]
> > > Subject: Re: [tcpm] Question on RFC6298, Managing the RTO Timer =
and
> > > additional lost pakets in Recovery state
> > >
> > >
> > > > It says quote =E2=80=9C(5.3) When an ACK is received that =
acknowledges new
> > > > data, restart the retransmission timer so that it will expire
> > > > after RTO seconds (for the current value of RTO).=E2=80=9D
> > > >
> > > > What is the definition of new data ?. The strict interpretation =
is
> > > > when SND.UNA advances, but it can also be that the highest =
SACKed
> > > > sequence number increases. The former case it is more likely =
that
> > > > RTO happens.
> > >
> > > Seems like something we should have nailed down in the spec at =
some
> > > point after SACK became widely prevalent.  Alas.
> > >
> > > I think "new data" can be interpreted as "cumulative ACK =
advances".
> > >
> > > The spirit of (5.3) is that as long as the connection is making
> > > progress---from an application perspective---we can keep the RTO =
at
> > > arms length and so we just keep re-arming it.  But, once we have a
> > > stall---or even an indication that we might stall---because a =
packet
> > > has been lost then we stop pushing the RTO off.
> > >
> > > > The second question is Linux related. Given that a lost packet
> > > > puts the stack in Recovery state, the congestion window reduces
> > > > one step as an effect on this. What happens if additional =
packets
> > > > are lost when in Recovery state. I guess the congestion window
> > > > should decrease more or ?.
> > >
> > > First, this is a more generic answer, I have no idea what linux =
does.
> > >
> > > I can't tell which of two cases you are talking about here.  Let's
> > > say you send
> > > 20 packets into the network in some window.  Now, the cases ...
> > >
> > > (1) We lose packets 1, 5, 13 and 17.  I.e., multiple packets are
> > >     lost from a single transmission window.  So, retransmitting
> > >     packet 1 puts us in recovery and causes congestion control
> > >     action.  I believe that the fact that packets 5, 13 and 17 are
> > >     also lost does not mean we should react to congestion again.
> > >     E.g., RFC 6675 calls for a single CC response regardless of =
how
> > >     many packets are lost from a window of data.
> > >
> > > (2) We lose packets 1, 5, 13 and 17 and also the retransmit of
> > >     packet 17.  So, we lose 4 packets from the first single
> > >     transmission window.  This triggers one CC response.  But, the
> > >     retransmit of packet 17 is from a subsequent transmission
> > >     window, indicating that perhaps we haven't yet done enough to
> > >     relieve the congestion.  Conservativeness would likely suggest
> > >     that in this case, yes, we should take another CC action.
> > >
> > >     And, e.g., RFC 6675 forces this second CC action by being =
unable
> > >     to cope with lost retransmissions.  Rather, in this case we =
fall
> > >     back to the RTO which means another CC response.  I am not
> > >     claiming RFC 6675 is the right approach here.  Just noting =
what
> > >     some spec does.  We left it this way because we didn't feel =
that
> > >     the complexity of dealing with this case was really generally
> > >     worth it.  But, one could envision a different algorithm =
making
> > >     a different choice.
> > >
> > > I hope that helps!
> > >
> > > allman
> > >
> > >
> > > --
> > > http://www.icir.org/mallman/
> > >
> > >
> >
> > _______________________________________________
> > tcpm mailing list
> > [email protected]
> > https://www.ietf.org/mailman/listinfo/tcpm

------=_NextPart_000_01FD_01D17AD8.373EEB50--

--===============2071240620==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
end2end-interest mailing list
[email protected]
http://mailman.postel.org/mailman/listinfo/end2end-interest
Contact [email protected] for assistance.

--===============2071240620==--