Re: nginxQuic: максимальный размер MTU

2023-12-26 Пенетрантность izorkin
Добрый вечер, Сергей

А со стороны сервере как долго сохраняется информация о MTU для текущего
клиента? При новом соединении заново определяется размер?

Вы писали 26 декабря 2023 г., 13:33:11:

> Собственно, причина в этом: клиент (браузер) передаёт максимальный размер
> содержимого датаграммы (max_udp_payload_size), который он готов принимать.
> Повлиять на это со стороны сервера никак нельзя.


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-26 Пенетрантность izorkin
Добрый день, Сергей.
Благодарю за объяснение.
Жалко, что нельзя изменить параметры MTU в браузере.

Вы писали 26 декабря 2023 г., 13:48:52:


> При выборе, как часто выполнять шаги поиска MTU, важно соблюдать баланс
> между временем схождения и нагрузкой на сеть.  Поиск MTU - это такой же
> трафик, поэтому текущий алгоритм старается не нагружать сеть попусту:
> в текущей реализации поиск имеет отложенный старт и каждый шаг поиска
> выполняется с задержкой, иначе это было бы особенно заметно на коротких
> соединениях.  Поэтому, если MTU замерять сразу после установки соединения
> на первом запросе, это может выглядеть так, что поиск работает медленно.
> Но в конечном итоге алгоритм поиска сходится за разумное время, учитывая
> что, как правило, соединение HTTP/3 (как и HTTP/2) повторно используется
> для нескольких (многих) запросов.


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-26 Пенетрантность Sergey Kandaurov

> On 22 Dec 2023, at 11:17, izor...@gmail.com wrote:
> 
> Добрый день, Сергей.
> 
> Удалось ещё немного поэкспериментировать.
> Если использовать браузер, то сперва размер probe mtu составляет 1200,
> а потом увеличивается до 1472.
> Потом проверил через curl, там средний размер пакета составляет чуть
> больше 1200, при скачивании файла только под конец размер пакета доходит
> до 2400-2500. При размере файла чуть меньше 200 кб, где-то пакетов 10
> или меньше превышают 1500. Мне кажется алгоритм работает не слишком быстро.
> Может ли браузер Chrome ограничивать размер QUIC пакетов?
> 

При выборе, как часто выполнять шаги поиска MTU, важно соблюдать баланс
между временем схождения и нагрузкой на сеть.  Поиск MTU - это такой же
трафик, поэтому текущий алгоритм старается не нагружать сеть попусту:
в текущей реализации поиск имеет отложенный старт и каждый шаг поиска
выполняется с задержкой, иначе это было бы особенно заметно на коротких
соединениях.  Поэтому, если MTU замерять сразу после установки соединения
на первом запросе, это может выглядеть так, что поиск работает медленно.
Но в конечном итоге алгоритм поиска сходится за разумное время, учитывая
что, как правило, соединение HTTP/3 (как и HTTP/2) повторно используется
для нескольких (многих) запросов.

> Вы писали 21 декабря 2023 г., 13:36:21:
> 
>> Причины могут быть разные, необязательно тюнинг числа попыток/таймаута
>> может помочь.  Для начала неплохо бы понимать, что происходит в сети.
>> Для этого можно пронаблюдать процесс поиска MTU в debug log,
>> см. строчки "probe mtu" / "ack mtu" для выбранного соединения.
>> Клиентский лимит логгируется в "quic tp max_udp_payload_size".
> 
> 
> -- 
> С уважением,
> Izorkin  mailto:izor...@gmail.com
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Sergey Kandaurov

___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-26 Пенетрантность Sergey Kandaurov

> On 21 Dec 2023, at 16:39, izor...@gmail.com wrote:
> 
> Добрый день, Сергей.
> 
> При запросе через браузер в логах проскакивают такие строки:
> 2023/12/21 14:55:02 [debug] 65503#65503: *154 quic transport parameters 
> parsed ok
> 2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp disable active 
> migration: 0
> 2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp idle_timeout:3
> 2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp 
> max_udp_payload_size:1472

Собственно, причина в этом: клиент (браузер) передаёт максимальный размер
содержимого датаграммы (max_udp_payload_size), который он готов принимать.
Повлиять на это со стороны сервера никак нельзя.

> 2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp max_data:15728640
> 
> 2023/12/21 14:55:03 [debug] 65503#65503: *154 quic path seq:0 send probe 
> mtu:1472 pnum:2 tries:0
> 2023/12/21 14:55:05 [debug] 65503#65503: *154 quic path seq:0 ack mtu:1472
> 
> Происходит только одна попытка проверить значение MTU.

И это правильно, выбор MTU соответствует ограничению сверху:
min(1200 * 2, max_udp_payload_size) = 1472

> 
> Если делать запрос через curl локально с сервера:
> 2023/12/21 14:56:30 [debug] 65925#65925: *208 quic transport parameters 
> parsed ok
> 2023/12/21 14:56:30 [debug] 65924#65924: event timer add: 3: 6:422067499
> 2023/12/21 14:56:30 [debug] 65958#65958: *207 post event 6F782E142608
> 2023/12/21 14:56:30 [debug] 65925#65925: *208 quic tp disable active 
> migration: 0
> 2023/12/21 14:56:30 [debug] 65925#65925: *208 quic tp idle_timeout:6
> 2023/12/21 14:56:30 [debug] 65924#65924: recv: fd:25 -1 of 4096
> 2023/12/21 14:56:30 [debug] 65958#65958: *207 quic 
> ngx_quic_set_encryption_secrets() level:2
> 2023/12/21 14:56:30 [debug] 65925#65925: *208 quic tp 
> max_udp_payload_size:65527
> 
> 2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 send probe 
> mtu:2400 pnum:1 tries:0
> 2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 ack mtu:2400
> 
> 2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 send probe 
> mtu:4800 pnum:45 tries:0
> 2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 ack mtu:4800
> 
> 2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 send probe 
> mtu:9600 pnum:74 tries:0
> 2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 ack mtu:9600
> 
> Получается, что через localhost работает.
> 

Здесь, в отличие от браузера, сurl не имеет подобных ограничений,
поэтому выбор MTU удваивается до фактического ограничения сети.

> В настройках сетевой карты установлено значение MTU 9000, но не понятно 
> откуда берётся
> значение 1472.
> 
> Вы писали 21 декабря 2023 г., 13:36:21:
> 
>> Причины могут быть разные, необязательно тюнинг числа попыток/таймаута
>> может помочь.  Для начала неплохо бы понимать, что происходит в сети.
>> Для этого можно пронаблюдать процесс поиска MTU в debug log,
>> см. строчки "probe mtu" / "ack mtu" для выбранного соединения.
>> Клиентский лимит логгируется в "quic tp max_udp_payload_size".
> 
> 
> -- 
> С уважением,
> Izorkin  mailto:izor...@gmail.com
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Sergey Kandaurov
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-21 Пенетрантность izorkin
Добрый день, Сергей.

Удалось ещё немного поэкспериментировать.
Если использовать браузер, то сперва размер probe mtu составляет 1200,
а потом увеличивается до 1472.
Потом проверил через curl, там средний размер пакета составляет чуть
больше 1200, при скачивании файла только под конец размер пакета доходит
до 2400-2500. При размере файла чуть меньше 200 кб, где-то пакетов 10
или меньше превышают 1500. Мне кажется алгоритм работает не слишком быстро.
Может ли браузер Chrome ограничивать размер QUIC пакетов?

Вы писали 21 декабря 2023 г., 13:36:21:

> Причины могут быть разные, необязательно тюнинг числа попыток/таймаута
> может помочь.  Для начала неплохо бы понимать, что происходит в сети.
> Для этого можно пронаблюдать процесс поиска MTU в debug log,
> см. строчки "probe mtu" / "ack mtu" для выбранного соединения.
> Клиентский лимит логгируется в "quic tp max_udp_payload_size".


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-21 Пенетрантность izorkin
Добрый день, Сергей.

При запросе через браузер в логах проскакивают такие строки:
2023/12/21 14:55:02 [debug] 65503#65503: *154 quic transport parameters parsed 
ok
2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp disable active migration: 0
2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp idle_timeout:3
2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp max_udp_payload_size:1472
2023/12/21 14:55:02 [debug] 65503#65503: *154 quic tp max_data:15728640

2023/12/21 14:55:03 [debug] 65503#65503: *154 quic path seq:0 send probe 
mtu:1472 pnum:2 tries:0
2023/12/21 14:55:05 [debug] 65503#65503: *154 quic path seq:0 ack mtu:1472

Происходит только одна попытка проверить значение MTU.

Если делать запрос через curl локально с сервера:
2023/12/21 14:56:30 [debug] 65925#65925: *208 quic transport parameters parsed 
ok
2023/12/21 14:56:30 [debug] 65924#65924: event timer add: 3: 6:422067499
2023/12/21 14:56:30 [debug] 65958#65958: *207 post event 6F782E142608
2023/12/21 14:56:30 [debug] 65925#65925: *208 quic tp disable active migration: 0
2023/12/21 14:56:30 [debug] 65925#65925: *208 quic tp idle_timeout:6
2023/12/21 14:56:30 [debug] 65924#65924: recv: fd:25 -1 of 4096
2023/12/21 14:56:30 [debug] 65958#65958: *207 quic 
ngx_quic_set_encryption_secrets() level:2
2023/12/21 14:56:30 [debug] 65925#65925: *208 quic tp max_udp_payload_size:65527

2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 send probe 
mtu:2400 pnum:1 tries:0
2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 ack mtu:2400

2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 send probe 
mtu:4800 pnum:45 tries:0
2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 ack mtu:4800

2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 send probe 
mtu:9600 pnum:74 tries:0
2023/12/21 14:56:31 [debug] 65925#65925: *208 quic path seq:0 ack mtu:9600

Получается, что через localhost работает.

В настройках сетевой карты установлено значение MTU 9000, но не понятно откуда 
берётся
значение 1472.

Вы писали 21 декабря 2023 г., 13:36:21:

> Причины могут быть разные, необязательно тюнинг числа попыток/таймаута
> может помочь.  Для начала неплохо бы понимать, что происходит в сети.
> Для этого можно пронаблюдать процесс поиска MTU в debug log,
> см. строчки "probe mtu" / "ack mtu" для выбранного соединения.
> Клиентский лимит логгируется в "quic tp max_udp_payload_size".


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-21 Пенетрантность Sergey Kandaurov

> On 21 Dec 2023, at 13:39, izor...@gmail.com wrote:
> 
> Добрый день, Сергей.
> 
> Проверил через Iperf по протоколу UDP? в итоге размер пакета
> составляет 9002. Получается ограничений со стороны ОС нет.
> 
> Как можно увеличить количество попыток и игнорировать тайм-аут,
> и на время отключить метод двоичного поиска?
> 

Причины могут быть разные, необязательно тюнинг числа попыток/таймаута
может помочь.  Для начала неплохо бы понимать, что происходит в сети.
Для этого можно пронаблюдать процесс поиска MTU в debug log,
см. строчки "probe mtu" / "ack mtu" для выбранного соединения.
Клиентский лимит логгируется в "quic tp max_udp_payload_size".

> Вы писали 19 декабря 2023 г., 0:31:32:
> 
>> PMTUD сейчас реализован так:
>> пробный размер пакета удваивается до первой ошибки или таймаута
>> (3 неудачные попытки), затем уточняется методом двоичного поиска.
> 
>> Фактический размер может быть ограничен link/path mtu,
>> системным лимитом на максимальный размер датаграммы,
>> клиентским транспортным параметром протокола.
> 
> 
> -- 
> С уважением,
> Izorkin  mailto:izor...@gmail.com
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Sergey Kandaurov

___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-21 Пенетрантность izorkin
Добрый день, Сергей.

Проверил через Iperf по протоколу UDP? в итоге размер пакета
составляет 9002. Получается ограничений со стороны ОС нет.

Как можно увеличить количество попыток и игнорировать тайм-аут,
и на время отключить метод двоичного поиска?

Вы писали 19 декабря 2023 г., 0:31:32:

> PMTUD сейчас реализован так:
> пробный размер пакета удваивается до первой ошибки или таймаута
> (3 неудачные попытки), затем уточняется методом двоичного поиска.

> Фактический размер может быть ограничен link/path mtu,
> системным лимитом на максимальный размер датаграммы,
> клиентским транспортным параметром протокола.


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-12-18 Пенетрантность Sergey Kandaurov

> On 16 Nov 2023, at 21:39, izor...@gmail.com wrote:
> 
> Здравствуйте, Sergey.
> 
> Тогда, теоретически размер должен был бы достичь до 9000.
> А у метода DPLPMTUD есть ограничение на размер пакетов и/или количество 
> успешных и неудачных попыток?

PMTUD сейчас реализован так:
пробный размер пакета удваивается до первой ошибки или таймаута
(3 неудачные попытки), затем уточняется методом двоичного поиска.

Фактический размер может быть ограничен link/path mtu,
системным лимитом на максимальный размер датаграммы,
клиентским транспортным параметром протокола.

> 
> Вы писали 16 ноября 2023 г., 20:24:25:
> 
>> Это происходит автоматически посредством DPLPMTUD начиная с версии 1.25.2.
> 
>> Изменения в nginx 1.25.2  15.08.2023
> 
>>*) Добавление: path MTU discovery при использовании HTTP/3.
> 
> 
> -- 
> С уважением,
> Izorkin  mailto:izor...@gmail.com
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru

-- 
Sergey Kandaurov

___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-11-16 Пенетрантность izorkin
Здравствуйте, Sergey.

Тогда, теоретически размер должен был бы достичь до 9000.
А у метода DPLPMTUD есть ограничение на размер пакетов и/или количество 
успешных и неудачных попыток?

Вы писали 16 ноября 2023 г., 20:24:25:

> Это происходит автоматически посредством DPLPMTUD начиная с версии 1.25.2.

> Изменения в nginx 1.25.2  15.08.2023

> *) Добавление: path MTU discovery при использовании HTTP/3.


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: nginxQuic: максимальный размер MTU

2023-11-16 Пенетрантность Sergey Kandaurov

> On 16 Nov 2023, at 21:06, izor...@gmail.com wrote:
> 
> Здравствуйте.
> Между сервером и компьютером настроена сеть с поддержкой MTU 9000. WEB сервер 
> Nginx
> при запросе отдаёт QUIC пакеты максимум в 1534 байта. Можно ли как-то 
> увеличить размер
> пакетов?
> 

Это происходит автоматически посредством DPLPMTUD начиная с версии 1.25.2.

Изменения в nginx 1.25.2  15.08.2023

*) Добавление: path MTU discovery при использовании HTTP/3.

-- 
Sergey Kandaurov

___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


nginxQuic: максимальный размер MTU

2023-11-16 Пенетрантность izorkin
Здравствуйте.
Между сервером и компьютером настроена сеть с поддержкой MTU 9000. WEB сервер 
Nginx
при запросе отдаёт QUIC пакеты максимум в 1534 байта. Можно ли как-то увеличить 
размер
пакетов?


-- 
С уважением,
 Izorkin  mailto:izor...@gmail.com
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru