Какие протоколы передачи данных существуют
HTTPQA инженерTCP/IPпротоколы передачи данныхсети
Что проверяют
Ориентируетесь ли вы по уровням и знаете ли, чем проверять каждый.
Как отвечать
Разложите по уровням, иначе получится случайный список.
Транспортный уровень:
- TCP: с установлением соединения, гарантирует доставку и порядок, есть контроль перегрузки. Основа большинства прикладных протоколов;
- UDP: без соединения и без гарантий, зато без задержек на подтверждения. Голос, видео, игры, служба имён;
- QUIC: поверх UDP, со встроенным шифрованием и без блокировки потока при потере пакета. На нём работает HTTP/3.
Прикладной уровень:
- HTTP/1.1, HTTP/2 (бинарный, мультиплексирование в одном соединении, сжатие заголовков), HTTP/3 (поверх QUIC). Плюс TLS, дающий HTTPS;
- WebSocket: постоянное двустороннее соединение, начинается с обычного HTTP-запроса на переключение протокола;
- gRPC: поверх HTTP/2, бинарный формат и строгий контракт;
- AMQP и MQTT: обмен сообщениями, второй заточен под устройства с плохой связью;
- SMTP, IMAP, POP3: почта;
- FTP, SFTP: передача файлов;
- DNS: разрешение имён, обычно поверх UDP;
- SSH: защищённый доступ к машине.
Что из этого нужно тестировщику на практике:
- знать, на чём говорит ваша система, потому что от этого зависит инструмент. HTTP проверяется через Postman и
curl, WebSocket отдельными клиентами, gRPC своими утилитами с описанием контракта; - уметь смотреть трафик: инструменты разработчика в браузере, прокси вроде Charles, а на низком уровне Wireshark;
- понимать, что часть проблем лежит ниже прикладного уровня: не разрешается имя, не устанавливается соединение, не проходит проверка сертификата.
Где спотыкаются
Перечисляют протоколы вперемешку, не разделяя уровни.
Считают HTTPS отдельным протоколом.
Не знают, чем проверять WebSocket и gRPC.
Не умеют отличить проблему сети от ошибки приложения.