Интернет-связь не работает за счет одного большого механизма.
Когда вы открываете сайт, отправляете почту или приложение подключается к серверу, вместе работают несколько правил связи.
Базовая идея для этого — TCP/IP.
В названии TCP/IP есть TCP и IP, но на практике это слово не означает только TCP и IP. Оно используется как название набора коммуникационных протоколов интернета, то есть базовых механизмов связи в целом.
В этой статье TCP/IP рассматривается не как подробная спецификация, а как вход в понимание общей картины интернет-связи.
Что такое TCP/IP
TCP/IP — это базовый набор протоколов, используемый для связи в интернете.
Протокол — это правило связи. Нужны правила о том, как указывать назначение, какими единицами отправлять данные, что делать при потере, в каком формате приложения обмениваются данными.
В TCP/IP связь рассматривают по ролям.
Роль
Основной механизм
Описание
Доставить к назначению
IP
Направляет связь к месту назначения с помощью IP-адреса
Управлять способом доставки
TCP / UDP
Определяет, как отправлять данные и как учитывать надежность или легкость
Разрешать имена
DNS
Ищет IP-адрес, соответствующий доменному имени
Обмениваться между приложениями
HTTP и др.
Передает данные Web-страниц, API и других приложений
Защищать связь
TLS
Шифрует содержимое HTTP и другой связи, помогает защищать от подмены и имитации
Так интернет-связь строится на IP, TCP, UDP и сочетается с DNS, HTTP, TLS и другими механизмами.
IP направляет к назначению
IP означает Internet Protocol.
Центральная роль IP — направлять связь к назначению с помощью IP-адресов. В интернете IP-адреса используются для различения устройств и серверов.
Например, когда браузер связывается с Web-сервером, пакеты в итоге отправляются к IP-адресу назначения. Промежуточные роутеры смотрят, в частности, на IP-адрес назначения и решают, куда отправить пакет дальше.
Однако IP — механизм для направления к назначению, и сам по себе он не гарантирует надежность всей связи.
Один IP недостаточно обрабатывает такие вопросы:
дошли ли данные
пришли ли данные в правильном порядке
нужно ли повторно отправлять потерянные данные
какому приложению внутри одного устройства передать данные
Для этого участвуют TCP, UDP, номера портов и протоколы верхнего уровня.
TCP делает акцент на надежности
TCP означает Transmission Control Protocol.
TCP — механизм, который облегчает точную обработку данных. Он устанавливает соединение с другой стороной, проверяет, дошли ли отправленные данные, повторно отправляет потерянные данные и выстраивает данные в правильном порядке.
Поэтому TCP подходит для связи, где проблема возникает при потере или нарушении порядка данных.
Назначение
Почему подходит TCP
HTTP/1.1 / HTTP/2
Данные Web-страницы нужно получить правильно
Процесс входа
Если часть данных аутентификации потеряется, обработка невозможна
Передача файлов
При потере части файл может повредиться
Отправка почты
Содержимое сообщения нужно доставить правильно
Однако TCP — не механизм, который делает все быстрее. Из-за подтверждений и повторных отправок задержка может увеличиваться в зависимости от состояния сети.
TCP важен там, где надежность важнее минимальной задержки.
UDP делает акцент на легкости и гибкости
UDP означает User Datagram Protocol.
UDP не выполняет на уровне самого протокола установление соединения, подтверждение доставки, управление порядком и повторную отправку так, как TCP. За счет этого он легче и дает приложению больше свободы проектировать нужное управление.
UDP используется там, где важны реальное время и гибкое управление.
Назначение
Почему используется UDP
DNS
Короткие запросы и ответы удобно обрабатывать быстро
Видеозвонки
Иногда важнее быстро доставить текущий звук или изображение, чем идеально дослать старое
Онлайн-игры
Иногда важно часто обновлять текущее состояние с малой задержкой
QUIC / HTTP/3
Поверх UDP добавлены новые механизмы надежности и шифрования
UDP не означает «плохая связь, потому что ей нельзя доверять». UDP сам по себе уменьшает число гарантий и оставляет нужное управление приложению или верхнему механизму.
Существуют механизмы вроде QUIC, которые используют UDP как основу, но самостоятельно реализуют надежность и шифрование.
Номер порта различает приложения
IP-адрес показывает положение другой стороны в сети. Но внутри одного устройства или сервера одновременно работают несколько приложений и сервисов.
Поэтому одного IP-адреса недостаточно, чтобы понять, какому приложению передать связь.
Для этого используются номера портов.
Информация
Роль
Пример
IP-адрес
Показывает, к какому устройству или серверу направляться
IP-адрес Web-сервера
Номер порта
Показывает, какому сервису внутри этого устройства передать связь
443 для HTTPS, 53 для DNS
Протокол связи
Показывает TCP, UDP и т.п.
TCP 443, UDP 53
Например, если на одном сервере работают Web, DNS и почта, их можно различать разными номерами портов.
Даже если TCP и UDP используют один и тот же номер, это разные виды связи. То есть TCP 443 и UDP 443 используют одно число «443», но это не одна и та же связь.
DNS, HTTP и TLS тоже работают поверх TCP/IP
При просмотре сайта связь не завершается только IP, TCP и UDP.
Люди обычно указывают сайт не IP-адресом, а доменным именем. Поэтому сначала DNS ищет IP-адрес, соответствующий доменному имени.
Когда IP-адрес известен, браузер подключается к назначению. Для получения Web-страницы используется HTTP. В HTTPS HTTP-связь защищается TLS.
Механизм
Роль
DNS
Ищет IP-адрес по доменному имени
IP
Переносит пакеты к IP-адресу назначения
TCP / UDP
Обрабатывают способ доставки данных
TLS
Шифрует содержимое связи, проверяет назначение и обнаруживает подмену
HTTP
Обменивается данными Web-страниц и API
Важно, что эти механизмы не конкурируют, а делят роли.
Например, HTTPS — это HTTP, защищенный TLS. И чаще всего ниже него используются TCP или UDP и IP.
Поток при открытии Web-страницы
С точки зрения TCP/IP открытие Web-страницы можно кратко разложить так:
Этап
Что происходит
Связанные механизмы
1
URL интерпретируется
Браузер, HTTP/HTTPS
2
По доменному имени ищется IP-адрес
DNS
3
Связь направляется к IP-адресу назначения
IP, маршрутизация
4
Управляется способ доставки данных
TCP, UDP, QUIC и др.
5
При HTTPS связь защищается
TLS
6
Запрашиваются данные страницы или API
HTTP
7
Полученные данные показываются на экране
Браузер
На практике участвуют кэш, CDN, балансировщики нагрузки, повторное использование существующих соединений и другое. Поэтому не каждый раз все происходит полностью с нуля и строго в одинаковом порядке.
Но как основа полезно думать, что DNS, IP, TCP/UDP, TLS и HTTP выполняют разные роли.
TCP/IP и анонимность
TCP/IP — не механизм анонимизации. Это основа, которая позволяет связи работать в интернете.
Поэтому информация, необходимая для связи, может быть видна на маршруте или стороне назначения.
Информация
Где может быть видна
Внимание для анонимности
IP-адрес источника
Сервер назначения, оборудование на маршруте и др.
Признак сети подключения
IP-адрес назначения
Оборудование на маршруте и др.
Материал для предположения, к какому серверу идет связь
Номер порта
Роутеры, файрволы, журналы связи
Материал для предположения типа связи, например HTTPS, DNS,
Протокол связи
Роутеры, файрволы, журналы связи
Обработка отличается для TCP и UDP
Объем и время связи
Оборудование на маршруте, сервер назначения и др.
Материал для сопоставления с поведением и другими журналами
HTTPS и TLS помогают защищать содержимое связи. Но IP-адрес, объем связи, время связи и отношения с назначением не исчезают полностью.
При размышлении об анонимности нужно разделять содержание связи и внешнюю информацию, необходимую для ее работы.
Итоги
TCP/IP — базовый набор протоколов, благодаря которому работает интернет-связь.
IP направляет связь к назначению с помощью IP-адресов. TCP устанавливает соединение и делает акцент на надежности через подтверждения, повторную отправку и управление порядком. UDP уменьшает число гарантий и делает акцент на легкости и гибкости.
Номера портов используются, чтобы различать, какому приложению или сервису внутри одного устройства или сервера передать связь.
DNS, HTTP и TLS тоже работают поверх TCP/IP и делят роли. При открытии Web-страницы DNS ищет IP-адрес, IP направляет к назначению, TCP или UDP обрабатывает доставку, в HTTPS TLS защищает связь, а HTTP передает содержимое страницы.
TCP/IP — не технология анонимизации. Для работы связи обрабатываются IP-адреса, номера портов, протоколы связи, объем, время и другая информация.
Если понимать эту основу, легче изучать DNS, HTTP/HTTPS, TLS, VPN, , журналы связи и понимать, о каком уровне и о какой информации идет речь.
Связанные инструменты
Public IP Check
WhatIsMyIP
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.