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