Сжатие и восстановление записи
Все записи сжаты с использованием алгоритма сжатия, определенным состоянием текущей сессии. Всегда имеется активный алгоритм сжатия; однако в исходный момент он определен как CompressionMethod.null. Алгоритм сжатия преобразует структуру TLSPlaintext в структуру TLSCompressed. Функции сжатия инициализируются информацией по умолчанию при переходе соединения в активное состояние.
Должно использоваться сжатие без потерь, а длина содержимого не может стать больше чем 1024 байт. Если функция восстановления встречает фрагмент TLSCompressed.fragment, длина которого окажется больше 214 байт, она должна выдать уведомление о фатальной ошибке преобразования.
Struct | { ContentType type; | /* то же самое, что и TLSPlaintext.type */ | |
ProtocolVersion version; | /* то же самое, что и TLSPlaintext.version */ | ||
uint16 length; | |||
opaque fragment[TLSCompressed.length]; | |||
} TLSCompressed; |
length | Длина (в байтах) следующего TLSCompressed.fragment. Длина не должна превосходить 214 + 1024. |
Fragment | Сжатая форма TLSPlaintext.fragment. |
Операция CompressionMethod.null является идентификационной; ни одно из полей не изменено.
Функции декомпрессии (восстановления) отвечают за то, что внутренний буфер не будет переполнен при обработке сообщения.