Welcome! Log In Create A New Profile

Advanced

Re: HTTP2 window update and priority

Muhui Jiang
May 10, 2016 10:14AM
Hi

>You've misread the source code. HTTP/2 windows are handled in
>ngx_http_v2_send_chain(), which is only called for response body
>data.

when the window is blocked, Nginx logs that the headers frame has been sent
out, however I cannot receive any response headers. The same client tried
on h2o and I can receive the response headers.

>The prioritization has effect when there is concurrency for
>connection. In your case from nginx point of view there was
>only one stream in processing at any moment. The previous
>stream was completed before the new one has been received.

Let me explain my strategy in detail. I used some requests(stream id 1-15)
to consume the window (65535) And then block the window without sending any
window update frame(I have sent a very large stream update before). Then I
send the next 6 streams with different priorities. At this moment, the 6
streams should be blocked. Nginx should have enough time to handle the
priority. Then I send a very large window update frame, but nginx will
process the stream one by one with no priority observation. What I want to
say is, only when the file is really large then the priority can be
observed. But I have give enough time to Nginx by block the request. Nginx
should handle the priority though the file is really small. If you need
more information, please tell me. Many Thanks

Best Regards
Muhui Jiang

2016-05-10 21:15 GMT+08:00 Valentin V. Bartenev <vbart@nginx.com>:

> On Monday 09 May 2016 21:27:31 Muhui Jiang wrote:
> > Hi
> >
> > According to my view on the source code of Nginx 1.9.15, I noticed some
> > observation below:
> >
> > 1. when there is no enough window, nginx won't send back the response
> > frame, though according to the log, nginx said it has sent the headers
> > frame out, but client won't receive it. This is not right according to
> RFC
> > 7540 because window update will only limit the data frames
> >
>
> You've misread the source code. HTTP/2 windows are handled in
> ngx_http_v2_send_chain(), which is only called for response body
> data.
>
>
>
> > 2.when there is no enough window, nginx will first store the request in
> the
> > queue, when it received a window update, nginx will start fetch the
> streams
> > stored in the queue use ngx_queue_head within a while loop(line 2161 in
> > ngx_http_v2.c). I noticed the stream order I got is the same as the
> sending
> > order with no relationship of the dependency tree, then nginx will create
> > the corresponding data frames according to the stream order. But I
> noticed
> > whether nginx will put the frame into the output queue depends on the
> > value of wev->ready, here a problem is that I noticed when the request
> > files is big, the wev->ready is set 0, only when this happens, the
> priority
> > mechanism can work otherwise the frame will be sent out directly with no
> > dependency observation. I am still confused on how does nginx implement
> the
> > priority. Could you please give me some suggestions.
> >
> > A failed priority mechanism example debug log:
> > https://github.com/valour01/LOG/blob/master/example.log
>
> The prioritization has effect when there is concurrency for
> connection. In your case from nginx point of view there was
> only one stream in processing at any moment. The previous
> stream was completed before the new one has been received.
>
> wbr, Valentin V. Bartenev
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

HTTP2 window update and priority

Muhui Jiang May 09, 2016 09:28AM

Re: HTTP2 window update and priority

Valentin V. Bartenev May 10, 2016 09:16AM

Re: HTTP2 window update and priority

Muhui Jiang May 10, 2016 10:14AM

Re: HTTP2 window update and priority

Valentin V. Bartenev May 10, 2016 10:34AM

Re: HTTP2 window update and priority

Muhui Jiang May 10, 2016 11:12AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 147
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready