Ответ
TCP/IP (Transmission Control Protocol / Internet Protocol) — это набор (стек) сетевых протоколов, лежащий в основе современного интернета. Он определяет правила, по которым данные разбиваются на пакеты, адресуются, передаются, маршрутизируются и собираются на целевом устройстве.
Два ключевых протокола в стеке:
- IP (Internet Protocol): Отвечает за адресацию и маршрутизацию пакетов. Это протокол без установления соединения (ненадёжный), который доставляет пакеты от источника к получателю на основе IP-адресов.
- TCP (Transmission Control Protocol): Работает поверх IP и обеспечивает надёжную, упорядоченную и проверенную на ошибки доставку данных. Перед обменом данными устанавливает соединение через «трёхстороннее рукопожатие» (SYN, SYN-ACK, ACK).
Знание для тестировщика: Понимание TCP/IP критично для тестирования сетевых приложений, анализа трафика (например, в Wireshark), диагностики проблем с подключением, тестирования API (большинство REST/SOAP поверх HTTP, который, в свою очередь, использует TCP).
Пример, как это влияет на тесты:
- Проверка таймаутов: Если тест падает из-за
ConnectionTimeout, это может быть проблема на уровне TCP (сеть перегружена, сервер не отвечает на SYN). - Нагрузочное тестирование: Необходимо понимать, как ваше приложение управляет множеством TCP-соединений.
- Мокирование: При мокировании сетевого сервиса вы, по сути, эмулируете поведение стека TCP/IP на уровне приложения.