# Транспортный адаптер Адаптер представляет из себя нечто, способное вести коммуникацию в рамках конкретного транспортного протокола, преобразовывать передаваемый ему произвольный набор байт в форму, приемлимую транспортным протоколом и корректно воспринимаемую другим адаптером того-же вида, а также выполнять обратное преобразование. У каждого транспортного адаптера есть собственное кодовое имя, которое позволяет его однозначно идентифицировать. Транспортный адаптер предоставляет интерфейс для передачи данных в виде блоков, т.е. массивов байт известного размера. У каждого транспортного адаптера есть собственный лимит на максимальный размер блока данных, вне зависимости от того, является-ли низлежащий протокол потоковым. Транспортный адаптер, в силу своей природы, может также обеспечивать дополнительный уровень шифрования и добавлять "шумовые пакеты" в траффик. Адаптеры должны согласовать эти параметры (если нужно) самостоятельно. В рамках базового протокола предписана реализация нескольких адаптеров, реализующих наивные варианты передачи данных по нижележащим протоколам. Предписанных к реализации адаптеров, перечень которых приведён ниже, существует два типа: обязательные и рекомендуемые. Первые обязаны присутствовать в любой реализации, соответствующей спецификации протокола, вторыми допускается пренебречь. ### Обязательные - DumbU: реализует передачу поверх протокола UDP - DumbT: передаёт данные по TCP ### Рекомендуемые - FirstClass: использует для передачи минималистичный сабсет HTTP/1.1 - TrashBox: использует FTP (RFC 959) - TLSimp: использует TLS 1.3 (RFC 8446 и пр.) - Pissle: использует ICMP