# HG changeset patch
# User Roman Arutyunyan <arut@nginx.com>
# Date 1690461509 -14400
# Thu Jul 27 16:38:29 2023 +0400
# Node ID 0d12ada84c168c62e9bae847af2725641da583d0
# Parent 2fd16fc76920ef0b8ea2fa64858934e38c4477c5
QUIC: always add ACK frame to the queue head.
Previously it was added to the tail as all other frames. However, if the
amount of queued data is large, it could delay the delivery of ACK, which
could trigger frames retransmissions and slow down the connection.
diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c
--- a/src/event/quic/ngx_event_quic_output.c
+++ b/src/event/quic/ngx_event_quic_output.c
@@ -1175,7 +1175,9 @@ ngx_quic_send_ack(ngx_connection_t *c, n
frame->u.ack.range_count = ctx->nranges;
frame->u.ack.first_range = ctx->first_range;
- ngx_quic_queue_frame(qc, frame);
+ ngx_queue_insert_head(&ctx->frames, &frame->queue);
+
+ frame->len = ngx_quic_create_frame(NULL, frame);
return NGX_OK;
}
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel