Протоколы и модель TCP/IP
| English | Русский |
|---|---|
| protocol/ˈprəʊtəkɒl/ | протокол |
| TCP/ˌtiː siː ˈpiː/ | TCP |
| UDP/ˌjuː diː ˈpiː/ | UDP |
| modularity/ˌmɒdjʊˈlærɪti/ | модульность |
| link layer/lɪŋk ˈleɪə/ | канал передачи данных |
| abstraction/əbˈstrækʃn/ | абстракцией |
| application layer/ˌæplɪˈkeɪʃn ˈleɪə/ | прикладной уровень |
| transport layer/ˈtrænspɔːt ˈleɪə/ | транспортный уровень |
| port numbers/pɔːt ˈnʌmbəz/ | номера портов |
| internet layer/ˈɪntənet ˈleɪə/ | сетевой уровень |
| packets/ˈpækɪts/ | пакеты |
| IP address/ˌaɪ ˈpiː əˈdres/ | IP-адрес |
| routers/ˈruːtəz/ | маршрутизаторы |
| MAC addresses/mæk əˈdresɪz/ | MAC-адреса |
| connection-oriented/kəˈnekʃn ˈɔːrɪəntɪd/ | ориентированный на соединение |
| connectionless/kəˈnekʃənləs/ | без соединения |
| layering/ˈleɪərɪŋ/ | уровневая архитектура |
Двухсловное сообщение, с которого начался интернет
- 29 октября 1969 года студент UCLA напечатал слово LOGIN на машине в Стэнфорде, буква за буквой, а коллега по телефону подтверждал каждую из них. После L и O система дала сбой.
- Проблема была не в проводе. Это было связано с тем, что две машины, построенные разными компаниями, не имели согласованных правил о том, что означает байт, когда говорить или что делать, когда что-то теряется.
- Все последующее было лишь записью этих правил. Протокол — это соглашение, а интернет — это набор таких соглашений.
- Этот урок объясняет, почему существуют протоколы, почему они слоисты, четыре слоя TCP/IP и различие между TCP и UDP.
Что определяет протокол
- Протокол — это набор правил для связи устройств. Обе стороны должны следовать одним и тем же правилам, иначе сигналы одной стороны будут бессмысленны для другой.
- Он определяет формат данных, где находятся адреса и где начинается полезная нагрузка; порядок сообщений, кто говорит первым и когда отправлять подтверждение; значение каждого сообщения; временные рамки, таймауты и повторные передачи; и что делать при ошибке.
- Без него связь полностью невозможна, подобно тому, как два человека без общего языка не могут общаться.

Правила, согласованные заранее обеими сторонами
Сетевой протокол — это:
Протокол определяет формат, порядок, смысл, временные характеристики и обработку ошибок сообщений — обе стороны должны быть согласны.
Что определяет протокол? Выберите все подходящие варианты.
Формат, порядок, смысл, временные характеристики и обработка ошибок. Скорость кабеля — это свойство оборудования, а не соглашения.
Почему протоколы имеют многоуровневую структуру
- Сетевое взаимодействие слишком сложно для одного набора правил, поэтому оно разделено на слои, каждый из которых выполняет одну конкретную задачу и взаимодействует только со слоем выше и слоем ниже. Реализация представляет собой стек.
- Модульность: один слой можно заменить, не затрагивая остальные, поэтому замена Ethernet на Wi-Fi не влияет на работу слоев выше канального уровня.
- Стандартизация: оборудование от разных производителей совместимо, поскольку интерфейсы каждого слоя согласованы. Абстракция: программист, пишущий веб-приложение, не заботится о том, как нижние слои обрабатывают данные.

Четыре уровня, каждый со своей задачей
Преимущество разделения сети на уровни заключается в:
У каждого уровня одна задача и четкий интерфейс, поэтому (например) Ethernet можно заменить на Wi-Fi, не затрагивая более высокие уровни.
Четыре уровня TCP/IP
| Уровень | Назначение | Примеры |
|---|---|---|
| прикладной уровень | сервисы для пользовательских приложений и протоколы, которые они используют | HTTP, FTP, SMTP, IMAP |
| транспортный уровень | доставка «от узла к узлу» между процессами, идентифицируемыми по номерам портов | TCP, UDP |
| сетевой уровень | пересылка пакетов между хостами с использованием IP-адресов; маршрутизируется маршрутизаторами | IP |
| канальный уровень | передача битов по одной физической линии связи, инкапсуляция в кадры с использованием MAC-адресов MAC | Ethernet, Wi-Fi |
- Сетевой уровень не гарантирует доставку данных. Это задача транспортного уровня, и только при использовании протокола TCP.
Нажмите на четыре уровня модели TCP/IP
Изучите каждый уровень. Данные проходят ВНИЗ по стеку при отправке (каждый уровень добавляет свой заголовок) и вверх при получении — любой уровень можно заменить, не затрагивая остальные.
Соотнесите каждый уровень TCP/IP с его функцией.
Прикладной = пользовательские протоколы; Транспортный = доставка через TCP/UDP; Интернет = маршрутизация через IP; Канальный = биты на физической среде.
Интернет-уровень (IP) гарантирует доставку каждого пакета.
IP пересылает пакеты, но не гарантирует доставку. Надежность обеспечивается выше него, протоколом TCP, а UDP специально обходится без нее.
Разбор примера: передача сообщения через интернет
- Опишите, что происходит на каждом уровне, когда браузер запрашивает страницу у сервера.
- Прикладной: браузер формирует HTTP-запрос на нужную страницу.
- Транспортный: TCP разбивает данные на сегменты, добавляет номера портов и обеспечивает подтверждение получения, а также повторную передачу потерянных данных.
- Сетевой: IP добавляет к каждому пакету исходный и целевой IP-адреса, а маршрутизаторы пересылают его прыжками (hop by hop) через сети.
- Канальный: на каждом прыжке пакет упаковывается в кадр с MAC-адресами и передается по кабелю или радиоканалу. На сервере слои последовательно снимаются в обратном порядке.
Расставьте уровни TCP/IP в порядке от программы пользователя до провода.
Каждый уровень оборачивает вышестоящий; на приемной стороне они распаковываются в обратном порядке.
TCP и UDP
- TCP является ориентированным на соединение: он сначала устанавливает соединение, гарантирует доставку всех данных в правильном порядке, повторяет отправку потерянных пакетов и управляет потоком данных. Надежен, но требует дополнительных ресурсов и времени. Используется в HTTP, HTTPS, SMTP и FTP.
- UDP является неориентированным на соединение: он отправляет данные и забывает об этом, без подтверждений, без сохранения порядка и без повторной передачи. Минимальные накладные расходы, нет никаких гарантий.
- UDP используется для прямой трансляции, DNS и онлайн-игр, где скорость важнее надежности: повторная передача кадра видео придет позже момента, когда он был нужен, поэтому его лучше пропустить, чем ждать.

Гарантированная и медленная, или быстрая, но без гарантий
Чем TCP отличается от UDP?
TCP устанавливает соединение и обеспечивает надежную, упорядоченную доставку (с накладными расходами); UDP работает по принципу «выстрелил и забыл».
TCP ориентирован на соединение и гарантирует упорядоченную, полную доставку (с накладными расходами), тогда как UDP работает по принципу «выстрелил и забыл» — быстрее, но без гарантии доставки.
Поэтому UDP подходит для прямого вещания, игр и DNS, а TCP используется для файлов, электронной почты и защищенных веб-страниц, где каждый байт должен быть доставлен.
Трансляция видео в прямом эфире использует ____, потому что скорость важнее повторной передачи потерянных пакетов.
Повторно переданный кадр прибыл бы после момента, когда он был нужен, поэтому его проще отбросить, чем ждать. Гарантии TCP оправданы затратами для страниц оплаты.
Разбор примера: выбор транспортного протокола
- Компания транслирует спортивное событие в прямом эфире и продает билеты через веб-страницу. Какой транспортный протокол использовать для каждого случая и почему?
- Прямая трансляция: UDP. Потерянный кадр становится бесполезным к моменту возможной повторной отправки, поэтому скорость и минимальная задержка важнее полноты, и зритель предпочтет потерять кадр, чем увидеть зависание изображения.
- Страница билетов: TCP. Каждый байт платежа и бронирования должен быть доставлен исправным и в правильном порядке, поэтому подтверждения и повторные передачи оправдывают свои накладные расходы.
- Назовите протокол, затем укажите свойство данных, которое определяет этот выбор.
Потерянные баллы
- Протокол — это набор правил, а не программа или кабель. Назовите как минимум две вещи, которые он определяет.
- Преимущество многоуровневой структуры заключается в модульности, стандартизации и абстракции, а не в скорости работы.
- IP не гарантирует доставку; это делает TCP. Не присваивайте сетевому уровню надежность.
- UDP не является «хуже». Он выбирается там, где скорость важнее надежности, и ответ должен указывать, какой тип данных имеет в виду.
Вы поняли
- Протокол — это согласованные правила формата, порядка следования, смысла, временных меток и обработки ошибок, соблюдаемые обеими сторонами.
- Протоколы образуют стек из слоев, обеспечивая модульность, стандартизацию и абстракцию.
- Слои TCP/IP: прикладной (HTTP, SMTP), транспортный (TCP, UDP, номера портов), сетевой (IP-адреса, маршрутизаторы), канальный (Ethernet, Wi-Fi, MAC-адреса).
- TCP ориентирован на соединение, обеспечивает порядок и надежность; UDP не ориентирован на соединение, без гарантий, используется для стриминга, DNS и игр.