[О блоге]
[наверх]
[пред]
[2023-11-11 12:30:43+03:00]
[88ce198f30f60b4201e7ccc142d9942fa8104412]
Темы: [bsd][netperf]
TCP Fast Open
https://lwn.net/Articles/508865/
https://blog.apnic.net/2021/07/05/tcp-fast-open-not-so-fast/
https://en.wikipedia.org/wiki/TCP_Fast_Open
https://datatracker.ietf.org/doc/html/rfc7413
https://github.com/bradleyfalzon/tcp-fast-open/
Пока читал про всякие AQM, ECN (6588786a31b2cbec545beeecf1232338609ff9ce),
то обратил внимание на TCP Fast Open. Название то слышал, но думал что это
какая-нибудь опция внутри TCP и поэтому не вчитывался. Оказалось что штука
интересная: сервер, при обычном TCP рукопожатии, может отправить клиенту
некую криптографически аутентифицированную cookie, которую клиент позже,
при установке нового соединения, может предъявить вместе с данными, а
сервер ответить тоже данными не дожидаясь третьего пакета рукопожатия от
клиента. Выходит настоящий 0RTT.
FreeBSD, судя по man-ам и ядру это поддерживает. Надо будет поиграться.
Хотя и требуются небольшие изменения в программы. Go вообще ничего про
него не знает, но нашёл какой-то репозиторий, где, явно выставляя опции
для сокета, включают всё это. Если совмещать с TLS 1.3 session
resumption, а то и его early data, то по RTT это становится как QUIC.
# sysctl net.inet.tcp.fastopen.ccache_list
net.inet.tcp.fastopen.ccache_list:
Local IP address Remote IP address Port MSS Disabled Cookie
127.0.0.1 127.0.0.1 22222 16344 No 19f2ad06c2e26754
Тут не IPv6, потому что тестовая утилитка не понимала его, на коленках
кем-то сделана.
[оставить комментарий]