<div dir="ltr"><div><div><div><div>Hi,<br><br></div>Thanks for the response.<br><br></div>Would like to know what happens in the following scenario,<br><br></div>Client sets its initial congestion window size to be very small and requests for a large data. It updates the window size everytime when it gets exhausted with a small increment (so send_timeout wont happen as writes happens always but in a very small amount). In this case won't the connection remain until the server flushes all the data to the client which has very less window size? <br><br></div><div>If the client opens many such connections with many streams, each requesting for a very large data, then won't it cause DOS?<br><br></div><div>Thanks,<br></div><div>Sharan<br></div><div><br> <br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 19, 2016 at 5:28 PM, Valentin V. Bartenev <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Friday 19 August 2016 17:06:41 Sharan J wrote:<br>
> Hi,<br>
><br>
> Would like to know what timeouts should be configured to mitigate slow read<br>
> attack in HTTP/2.<br>
><br>
<br>
</span>A quote from the commit:<br>
<br>
 | Now almost all the request timeouts work like in HTTP/1.x connections, so<br>
 | the "client_header_timeout", "client_body_timeout", and "send_timeout" are<br>
 | respected. These timeouts close the request.<br>
<br>
and the documentation links:<br>
<br>
<a href="http://nginx.org/r/client_header_timeout" rel="noreferrer" target="_blank">http://nginx.org/r/client_<wbr>header_timeout</a><br>
<a href="http://nginx.org/r/client_body_timeout" rel="noreferrer" target="_blank">http://nginx.org/r/client_<wbr>body_timeout</a><br>
<a href="http://nginx.org/r/send_timeout" rel="noreferrer" target="_blank">http://nginx.org/r/send_<wbr>timeout</a><br>
<span class=""><br>
<br>
> Referred -><br>
> <a href="https://trac.nginx.org/nginx/changeset/4ba91a4c66a3010e50b84fc73f05e84619396885/nginx?_ga=1.129092111.226709851.1453970886" rel="noreferrer" target="_blank">https://trac.nginx.org/nginx/<wbr>changeset/<wbr>4ba91a4c66a3010e50b84fc73f05e8<wbr>4619396885/nginx?_ga=1.<wbr>129092111.226709851.1453970886</a><br>
><br>
> Could not understand what you have done when all streams are stuck on<br>
> exhausted connection or stream windows. Please can you explain me the same.<br>
</span>[..]<br>
<br>
Each stream has its own timeout configured by the directives mentioned above.<br>
If there's no progress on a stream during one of these timeouts then the stream<br>
is closed.<br>
<br>
  wbr, Valentin V. Bartenev<br>
<br>
______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a><br>
</blockquote></div><br></div>