Restarting Idle Connections
Yongmin Cho
yongmincho82 at gmail.com
Tue Feb 2 00:59:32 UTC 2016
I think, This implementation is right.
Thank you for the quick reply. :-)
On Fri, Jan 29, 2016 at 01:58:50PM -0800, hiren panchasara wrote:
> On 01/29/16 at 01:51P, hiren panchasara wrote:
> > On 01/29/16 at 01:38P, Yongmin Cho wrote:
> > > Hi, all.
> > >
> > > I have an opinion about net.inet.tcp.initcwnd_segments.
> > > You know, snd_cwnd is restarted transmission after a long idle
> > > period(Current RTO).
> > > And, All of congestion control algorithm is using newreno_after_idle
> > > function after a long idle period.
> > > But, The newreno_after_idle function is not using initcwnd_segments.
> > > I think, The initcwnd_segments should be used in newreno_after_idle
> > > function, If the newreno_after_idle is called.
> > > I referred to rfc6928.
> > >
> > > Please check my opinion.
> >
> > You are absolutely right. We (FreeBSD) adopted initcwnd to be 10
> > segments but never bothered to update newreno_after_idle() function to
> > reflect that in calculating cwnd after idle period. Though the comments
> > in that function clearly says:
> > "The restart window is the initial window or the last CWND, whichever is
> > smaller."
> >
> > I think we should make following change to accommodate it:
> >
> > diff --git a/sys/netinet/cc/cc_newreno.c b/sys/netinet/cc/cc_newreno.c
> > index 97ec35f..5210a45 100644
> > --- a/sys/netinet/cc/cc_newreno.c
> > +++ b/sys/netinet/cc/cc_newreno.c
> > @@ -166,6 +166,10 @@ newreno_after_idle(struct cc_var *ccv)
> > *
> > * See RFC5681 Section 4.1. "Restarting Idle Connections".
> > */
> > + if (V_tcp_initcwnd_segments)
> > + rw = min(V_tcp_initcwnd_segments * CCV(ccv, t_maxseg),
> > + max(2 * CCV(ccv, t_maxseg),
> > + V_tcp_initcwnd_segments * 1460));
> - if (V_tcp_do_rfc3390)
> + else if (V_tcp_do_rfc3390)
>
> But you get the idea. :-)
>
> Cheers,
> Hiren
> > rw = min(4 * CCV(ccv, t_maxseg),
> > max(2 * CCV(ccv, t_maxseg), 4380));
> >
> > Any inputs?
> >
> > Cheers,
> > Hiren
>
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2
> >
> > iQF8BAABCgBmBQJWq97WXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
> > ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNEUyMEZBMUQ4Nzg4RjNGMTdFNjZGMDI4
> > QjkyNTBFMTU2M0VERkU1AAoJEIuSUOFWPt/lf38H/2mwyoYYc0ag1MVE1uzhZ0rL
> > K2KTnjZnXFuAw6FLgmUtgNw1ykWD2IjhTmNmzTw03KPmQuKj+FyZUHg78hu4kA/l
> > CbaiIO+1EHw9+aT+2yzZgK5yZLdTIF873sBoCdPWUP826WLjhPuxVox0CPOWzhw1
> > XuoSOLYZjsTGysdoMA3AyLOB+ESEC4V1Blf5SocdJPDF0y1Cpes3E6HuXxfix3ee
> > kj9bKCZL9jU8DAGZHdT9WwF8qfxqRjzhlOUtzY+3pBxglzXPzlhaxS0mGX/W23Jr
> > MHS9NleAh6M0Ot5M8X8WlXxvwqQdfssKAB3m9JIoTxldbqPRjKOhKALcoG8pqHo=
> > =TCcb
> > -----END PGP SIGNATURE-----
>
More information about the freebsd-transport
mailing list