Кратко

  • Редакция 03 — активный Internet-Draft, а не RFC и не свидетельство реализации, внедрения или совместимости.
  • Каждая сторона объявляет максимальный внутренний открытый текст, который готова принять; значение направлено и не резервирует память.
  • Меньше заголовков не означает автоматически меньше пакетов, ниже задержку или завершённое сообщение приложения.
  • Увеличение записи меняет учёт использования AEAD и требует пересмотра срока жизни ключа.

Разрешённая оболочка — только первый чек

TLS 1.3 и DTLS 1.3 обычно ограничивают внутренний открытый текст значением 2^14 + 1 октетов. Проект large_record_size_limit предлагает диапазон от 64 до 2^30 - 256. Он позволяет защитить больше данных одной записью и потенциально реже повторять заголовок.

Это свойство формата, а не готовый показатель сервиса. Для результата нужны выбранный размер, успешная аутентификация, сборка верхнего уровня, разбор, авторизация и действие приложения. Согласованное разрешение может вообще не использоваться; принятая запись может оказаться частью незавершённого сообщения.

Правильная воронка считает отдельно соединения с объявлением, фактически отправленные большие записи, аутентифицированные записи, собранные сообщения и принятые операции. Один зелёный статус стирает причины отказа и завышает достижение.

У каждого направления свой предел

Механизм не выбирает общий максимум. Клиент сообщает, сколько готов принять от сервера; сервер сообщает предел для приёма от клиента. Значения могут различаться.

Сторона вправе отправить запись больше собственного объявленного приёмного значения, если она не превышает предел другой стороны. Единственное поле «размер TLS» теряет субъект обещания и способно пометить допустимую отправку как нарушение либо скрыть настоящее превышение.

Событие должно сохранять соединение, роль, направление, локальную политику, отправленное и полученное объявления, фактическую внутреннюю длину. Направление — часть смысла числа.

Объявление остаётся потолком, а не целью. Отправитель может выбрать меньшую запись ради задержки, памяти, перегрузки или ритма приложения.

Рукопожатие не резервирует память

Большое объявление не означает отдельный непрерывный буфер такого же размера на каждое соединение. Реализация может применять пулы, потоковую обработку, глобальные квоты и обратное давление. И наоборот, успешная максимальная запись на одном соединении не доказывает устойчивость при тысячах медленных незавершённых записей.

Модель мощности включает шифротекст, состояние AEAD, удерживаемый открытый текст, padding, сборку верхнего уровня, очереди и отмену. Испытание должно позволять множеству отправителей начать крупные единицы и медленно их завершать. Именно длительность и параллельность состояний часто определяют риск.

Максимум проекта — граница синтаксиса, не производственная рекомендация. Рабочее значение выводится из класса нагрузки, аллокатора, планировщика и поведения при перегрузке.

Padding тоже расходует предел

Внутренний открытый текст TLS 1.3 включает тип содержимого и может содержать padding. Полезная нагрузка, которая помещалась сама, после добавления padding способна превысить объявленное значение.

Политики приложения, приватности и TLS должны считать одну и ту же единицу. Журналу нужны полная длина, версия политики и направление, но не секретное содержимое. Нельзя смешивать байты приложения, внутренний текст, шифротекст и сетевые байты.

Значение ниже 64 или выше 2^30 - 256 вызывает фатальный illegal_parameter. Это свидетельство неверного согласования, а не право молча округлить число и продолжить.

TLS закрывает соединение, DTLS обычно отбрасывает

Для TLS запись сверх применимого предела требует фатального record_overflow. Упорядоченное соединение завершается. Несовпадение политик может оборвать длительную сессию.

В DTLS чрезмерную датаграмму следует отбросить и не следует отвечать фатальным предупреждением. Потери входят в модель датаграмм, а разрушительный ответ на потенциально враждебный ввод способен усилить отказ в обслуживании.

Мониторинг должен различать протокол, эпоху, направление, длину, предел, действие и предупреждение. Отсутствие предупреждения в DTLS может быть правильным поведением; то же отсутствие в TLS требует расследования.

Запись, пакет и сообщение — разные границы

Проект стремится сократить повторный overhead и в некоторых сценариях больших сообщений DTLS избежать фрагментации верхнего уровня. Он не утверждает, что каждая запись равна сообщению приложения.

Сообщение может занимать несколько записей, одна запись может содержать данные нескольких верхних единиц, а транспорт способен разбить большую TLS-запись на множество сегментов. Меньше записей не доказывает меньше пакетов, меньше повторной передачи или атомарную доставку.

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

Экономия заголовка может увеличить ожидание

Приложение обычно получает доверенный открытый текст после аутентификации всей записи. Чем больше единица, тем дольше может пройти от первого байта до этого момента. При потерях возрастает время в очереди и стоимость повторной передачи.

Проект не обещает меньшую задержку. Следует измерять распределение размеров, время до аутентификации, пребывание в очереди, память на соединение, число частичных записей и завершение приложения. Улучшение среднего throughput может сопровождаться ухудшением хвостовой задержки интерактивного трафика.

Высокий разрешённый потолок не мешает отправлять небольшие записи. Это может быть осознанной политикой для управляющих данных.

Криптографический бюджет считает работу

Границы AEAD зависят от конструкции, числа вызовов и объёма защищённых данных. Для AES-GCM важно количество блоков. Проект корректирует расчёт для больших записей через фактор, связанный с LargeRecordSizeLimit / 2^14, и более точный блочный учёт, где он нужен.

Если поднять потолок, сохранив старый порог KeyUpdate только в записях, контроль перестаёт представлять прежний расход. Нужны набор шифров, направление, эпоха ключа, аутентифицированные байты или консервативная оценка блоков, число записей и событие ротации.

Это не тезис о небезопасности больших записей. Это требование согласовать доказательство с разрешённой оболочкой. Успешное рукопожатие не удостоверяет модель срока жизни ключа.

Поэтапное внедрение сохраняет обратный путь

Начинать следует со значений существенно ниже синтаксического максимума и поднимать их по классам нагрузки. Испытания охватывают асимметричные пределы, медленных отправителей, потери, максимальный padding, множество частичных записей и сообщения по обе стороны границы записи.

TLS и DTLS проверяются отдельно. Снижение настройки действует на новые согласования и не переписывает состояние уже установленных соединений. План возврата включает дренирование, совместимость, ключевую политику и различение отсутствия поддержки у peer от локального отключения.

Руководящий отчёт показывает отдельные чеки: конфигурацию, направленное объявление, фактический размер, аутентификацию, ресурсы, бюджет ключа, сборку и результат. Тогда экономию заголовков можно оценить, не выдавая её за готовый уровень сервиса.

Источники и границы

Зафиксированный пакет включает редакцию 03 с официальной карточкой, историей и ссылками; группу TLS; TLS 1.3 и проект обновления; DTLS 1.3; прежнее расширение ограничения записи; DTLS/SCTP; MLS; QUIC; требования AEAD; наборы AES-GCM и реестр TLS IANA.

Эти источники устанавливают текст протокола и реестра. Они не доказывают поставленную реализацию, внедрение, совместимость, рост производительности, экономию памяти, снижение задержки, инцидент, атаку или результат приложения. Вступительный отчёт — сконструированный пример.

Источники