LINUX.ORG.RU

Вышел RFC 9293: Transmission Control Protocol (TCP)

 , , ,


1

2

Более сорока лет назад, а именно, в сентябре 1981 года, был утвержден RFC 793, Transmission Control Protocol. Этот протокол (в то время - стандарт Министерства Обороны США) отвечает за надежную доставку потоков байт между хостами в сетях с коммутацией пакетов. В Интернете, он работает поверх протокола IP как протокол транспортного уровня. Поверх него уже работают протоколы уровня приложений, такие, как HTTP/1.1.

За время существования стандарта TCP в нем были обнаружены различные неоднозначности и недоработки (например, «синдром бестолкового окна»), для исправления которых были приняты новые RFC (например, RFC 1122), уточняющие или частично изменяющие RFC 793. И, конечно же, принимались RFC с изменениями и улучшениями, не ломающие совместимость - например, RFC 1323 (ныне замененный на RFC 7323), описывающий новые опции для повышения производительности TCP на быстрых каналах с большой задержкой.

В итоге для разработчиков, реализующих стеки протоколов TCP/IP (например, для встраиваемых систем), сложилась неприятная ситуация, когда приходится сверяться не с одним документом, а с десятками. В октябре 2013 года была начата работа по переписыванию стандарта TCP со всеми исправлениями в виде одного документа без изменения его смысла. После 35 промежуточных ревизий, 18 августа 2022 года в итоге этой работы был опубликован окончательный документ, RFC 9293, определяющий минимальный набор современных спецификаций для протокола TCP. Необязательные расширения по-прежнему определяются отдельными RFC.

>>> Подробности

★★★★★

Проверено: hobbit ()

syn flood победили?

etwrq ★★★★★
()

Очередное массовое воровство чужого времени ради оправдания комитетом собственного никчёмного существования. Йен Постел снова вертится в гробу.

Хотя, конечно, есть и положительный аспект новости: «без изменения смысла» означает, что эти товарищи адекватно оценивают собственную способность навязать всему миру очередную х-ню, и эта способность равна нулю. И это хорошо, что она равна нулю.

Ещё бы гугл разогнать с их постоянным «совершенствованием» веба. Ну это так, в плане помечтать.

Croco ★★★
()

Слава богу, теперь интернет станет стабильным

Aprel
()
Ответ на: комментарий от vbr

возникают всякие HTTP/3

Они не «возникают», их проталкивает конкретно одна вредоносная жирная контора, состоящая из врагов всего живого. И целью этого проталкивания является исключительно контроль над вебом, причём в основном – тупо исключение независимой разработки браузеров, которое ведёт к присутствию всё той же конторы буквально в каждом enduser’ском устройстве. Любые разговоры о безопасности, эффективности и прочих якобы полезностях – исключительно ширма.

Croco ★★★
()
Ответ на: комментарий от Croco

Но ты ведь можешь написать любое своё приложение с использованием библиотек, реализующих http3

Хотя, с кем я спорю

instant
()
Ответ на: комментарий от instant

Но ты ведь можешь написать любое своё приложение с использованием библиотек, реализующих http3

Осмысленных библиотек, реализующих ЭТО, нет и никогда не будет. А писать очередного бастарда с толпой внешних зависимостей мне не интересно. Впрочем, дело даже не в этом, дело скорее в том, могу ли я написать библиотеку, реализующую http3, если ни одна существующая меня не устраивает (а это именно так и есть и всегда будет так). Так вот, я, наверное, могу, но по вполне очевидным причинам не буду. И никто не будет.

Впрочем, в борьбе с конкуренцией между браузерами этот несчастный http3 – в общем и целом фактор скорее второстепенный (но от этого не менее важный).

А ещё мне очень интересно, как то обстоятельство, что я якобы могу что-то там написать, отменяет фактическую необходимость для пользователей в очередной раз поменять версию браузера.

Croco ★★★
()
Последнее исправление: Croco (всего исправлений: 2)
Ответ на: комментарий от Croco

ну почему же только одна, мозилла не отстаёт в шпионаже и цензуре

InterVi ★★★★
()
Ответ на: комментарий от Croco

их проталкивает конкретно одна вредоносная жирная контора, состоящая из врагов всего живого.

Да вроде Red Hat не занимается разработкой

devl547 ★★★★★
()
Ответ на: комментарий от Croco

не нравится - не пользуй.
можешь использовать вместо TCP протокол SCTP он говорят кручее. и вместо http чегонить другоэ.
#тыжпогромист все сам можешь сделать.

pfg ★★★★★
()

В итоге для разработчиков, реализующих стеки протоколов TCP/IP (например, для встраиваемых систем), сложилась неприятная ситуация, когда приходится сверяться не с одним документом, а с десятками.

RFC 9293, определяющий минимальный набор современных спецификаций для протокола TCP

А я делал свой tcp по rfc 793 + ещё не помню какой для SACK-ов, всё работает без проблем. Так что врут они про то что минимальный набор изменился с 81 года.

firkax ★★★★★
()
Ответ на: комментарий от Croco

Не удержался…

Осмысленных библиотек, реализующих ЭТО, нет и никогда не будет.

Откуда «дровишки»? У Вас crystal ball имеется? ПодЕлитесь?

могу ли я написать библиотеку, реализующую http3, если ни одна существующая меня не устраивает (а это именно так и есть и всегда будет так).

Очень сильные утверждения.

вот, я, наверное, могу

Теоретически - наверное да. Но мы отдаём себе отчёт в количестве необходимых трудозатрат?

но по вполне очевидным причинам не буду.

Ловко съехали.

И никто не будет.

Сильное утверждение.

что я якобы могу что-то там написать

Утащил к себе в «шедевральные цитаты». Это же «прелесть» просто…

bugfixer ★★★★★
()
Ответ на: комментарий от firkax

Суть в том, что понятие «минимального набора» меняется. Ты сделал свой TCP и он в каких-то случаях у тебя заработал (да ты сам пишешь, что взял два RFC). Отлично. Но чтобы использовать твою реализацию повсюду и для всего - надо реализовать ещё пару RFC.

Теперь же ты можешь не шариться по десятку документов и сразу видеть, что тебе действительно надо реализовать, чтобы можно было использовать более-менее повсеместно.

agentgoblin
()
Ответ на: комментарий от vbr

Любой достаточно долго просуществовавший протокол поверх udp, начинает реализовывать половину TCP, причём криво и убого.

Другое дело, что это происходит не от хорошей жизни. У TCP своих проблем хватает.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от devl547

тащемта это не красношляпку. а копрорацию бабла. на букву «Г»

mumpster ★★★★★
()
Ответ на: комментарий от allter149

Я так думаю они решили, что единый документ, по которому можно сразу делать реализацию - удобнее. В т.ч. возможно там устранены мелкие неточности и разночтения между стандартами. Надо читать и сравнивать.

А так, как ты предлагаешь, уже делали с протоколом SIP: https://www.rfc-editor.org/rfc/rfc5411.html A Hitchhiker’s Guide to the Session Initiation Protocol (SIP). На сегодняшний день категорически устарело (хотя даёт базу), потому что напилили вагон и тележку новых стандартов, часть из которых вроде как обязательна к реализации. По моим подсчётам, которые я делал в 2021-м году, уже тогда было 257 стандартов на сам протокол SIP (это включая всякие опциональности и устарелости).

agentgoblin
()
Ответ на: комментарий от Croco

Ахаха, пишешь талмуд по программированию годами, наконец родил, опубликовал, а тут какой-то гугл выпустил новый стандарт, и все, труды устарели)

goingUp ★★★★★
()
Ответ на: комментарий от agentgoblin

Я всё же не согласен про «минимальный набор». Второй rfc я мог и не брать, но без него у tcp начинает скакать пинг при небольших потерях пакетов, в играх неудобно. А в 80-е годы просто про игры никто не думал и скачущий пинг не мешал. Сама же логика работы протокола с тех пор не изменилась и tcp по изначальному стандарту будет везде 100% работать. Да, он скорее всего будет тормозить на гигабит+ скоростях, но это не «сломался».

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Так я тебе и говорю, что понятие «минимального набора» видимо поменялось. Т.е. ты считаешь, что минимальный набор - это TCP без того второго RFC, а они считают, что тот второй нынче обязателен, потому что кругом стриминг, игры и прочее.

Да, он скорее всего будет тормозить на гигабит+ скоростях, но это не «сломался».

Ну вот а они считают, что сломался. 21 век, новые правила.

agentgoblin
()
Ответ на: комментарий от Croco

Ты прочитай сначала то, что там написано, а потом уже говори про комитеты. Обычный технический документ, который собрал воедино то, что уже давно было написано.

This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.

gns ★★★★★
()
Ответ на: комментарий от agentgoblin

В полном объёме «SIP по RFC» живёт сейчас исключительно в Kamailio и OpenSIPS. В более популярном софте и особенно железках могут на кучу вещей забить, от которых потом Kamailio ведёт себя странно, а админ пишет к нему костыли.

yu-boot ★★★★
()
Ответ на: комментарий от yu-boot

В полном объёме «SIP по RFC» живёт сейчас исключительно в Kamailio и OpenSIPS.

Исключительно сомневаюсь насчёт полноты реализации (если мы говорим о количестве поддерживаемых стандартов). Но базовые RFC там реализованы очень точно, это да, коммерческие свичи таким похвастаться не могут.

agentgoblin
()
Ответ на: комментарий от agentgoblin

Тут хвастаться как-бы на практике нечем. Понадобилось стыкануться с дебильным оператором, у которого станция про record-route не знает вообще. У них железная логика - с астером точка-точка работает, дальше ничо не знаем. И начинается от костылей «по месту» до реализации руками этого «как в астериске», чтобы всякие BYE и ACK роутились как надо всегда и везде.

Камаилья дико эстетичная, производительная/нежручая, стабильная, дико кастомизируемая, но от таких вот вещей иногда руки опускаются просто. Ну и регулярные накаты пользователей на разработчиков на тему «запилите уже модулем всеядный b2bua» как-бы намекают.

yu-boot ★★★★
()

Технические писатели - недооцененная роль в индустрии. Я считаю, что им надо поставить памятник во всех столицах мира. И минимальную пенсию назначить.

seiken ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Да кого волнует это криво и убого когда свою реализацию поверх udp можно поменять по необходимости или по велению пятки левой ноги, а как поменять что-то в ядерной реализации tcp? Только через комитет, rfc, потом ядерный код, потом он попадёт на клиентские тачки. Это десятилетия

cobold ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.