ГлавнаяАкадемияОсновы умного дома → TCP/IP и сетевые протоколы

TCP/IP и сетевые протоколы

Урок 4 · Основы умного дома · 30 мин · theory

Введение в стек протоколов TCP/IP

Для успешной работы с современным оборудованием для умного дома, которое все чаще использует сетевые технологии, инженеру необходимо понимать базовые принципы организации компьютерных сетей. Основой всех современных локальных сетей и глобальной сети Интернет является стек протоколов TCP/IP. Это набор правил и соглашений, который позволяет различным устройствам, от контроллеров до смартфонов, обмениваться данными.

Представьте TCP/IP как многоуровневую систему доставки почты. Чтобы ваше письмо дошло до адресата в другой стране, оно проходит несколько этапов: вы пишете письмо (данные), кладете его в конверт с адресом (упаковка), почтовая служба выбирает маршрут (доставка), и, наконец, местный почтальон приносит его по адресу. TCP/IP работает по схожему принципу, разделяя сложную задачу передачи данных на четыре управляемых уровня.

> ℹ️ Информация: Для инженера умного дома важно понимать именно практическую модель TCP/IP, так как все сетевые настройки устройств (IP-адрес, маска, шлюз) напрямую относятся к ее уровням Internet и Transport.

Четырехуровневая модель TCP/IP

  • Канальный уровень (Link Layer): Это самый низкий уровень, отвечающий за физическую передачу данных по проводам или по воздуху. Он определяет, как биты (0 и 1) кодируются в электрические сигналы, радиоволны или световые импульсы. Протоколы этого уровня, такие как Ethernet и Wi-Fi, не знают ничего о конечных устройствах или маршрутах, их задача — просто передать кадр данных следующему устройству в локальной сети. Каждое сетевое устройство на этом уровне имеет уникальный физический MAC-адрес.
  • Сетевой уровень (Internet Layer): Этот уровень отвечает за глобальную адресацию и маршрутизацию пакетов данных через множество сетей. Именно здесь работает протокол IP (Internet Protocol). Он добавляет к данным "конверт" — IP-заголовок, в котором указаны IP-адрес отправителя и получателя. Устройства этого уровня (маршрутизаторы) читают эти адреса и принимают решение, куда направить пакет дальше, чтобы он достиг своей цели, даже если она находится на другом конце света.
  • Транспортный уровень (Transport Layer): Этот уровень обеспечивает связь между конкретными программами на устройствах-отправителе и получателе. Он управляет потоком данных и гарантирует их целостность. Два ключевых протокола этого уровня — TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). TCP обеспечивает надежную доставку с подтверждением, а UDP — быструю, но без гарантий. Для идентификации программ используются порты.
  • Прикладной уровень (Application Layer): Это самый верхний уровень, с которым напрямую взаимодействуют пользовательские приложения. Протоколы этого уровня определяют формат сообщений для конкретных задач: HTTP для веб-страниц, FTP для передачи файлов, SMTP для электронной почты, и, что наиболее важно для нас, MQTT и Modbus TCP для систем автоматизации.
  • Сравнение с моделью OSI

    Иногда в литературе упоминается семиуровневая модель OSI (Open Systems Interconnection). Она более детализирована и академична, но на практике стек TCP/IP стал промышленным стандартом благодаря своей простоте и эффективности. Модель TCP/IP объединяет несколько уровней OSI в один. Для инженера-практика достаточно уверенного понимания четырехуровневой модели.

    Роль стека TCP/IP в умном доме колоссальна: он объединяет контроллеры, датчики, панели управления, IP-камеры и облачные сервисы в единую, взаимодействующую экосистему. Без этих фундаментальных протоколов было бы невозможно реализовать централизованное управление и удаленный доступ.

    ---

    Канальный уровень: Ethernet и Wi-Fi

    Канальный уровень отвечает за физическую среду передачи данных. В умных домах и офисах доминируют две технологии: проводной Ethernet и беспроводной Wi-Fi. Выбор между ними — одно из первых и важнейших проектных решений инженера.

    > 💡 Подсказка: Для критически важной инфраструктуры, такой как контроллер, сервер с Node-RED или IP-шлюзы (DALI, KNX), всегда отдавайте предпочтение проводному подключению Ethernet. Это обеспечивает максимальную надежность, безопасность и минимальные задержки.

    Ethernet

    Ethernet — это технология для построения проводных локальных сетей. Она характеризуется высокой скоростью, стабильностью и безопасностью. - `100BASE-T` (Fast Ethernet): Скорость до 100 Мбит/с. Более чем достаточно для большинства устройств автоматизации (контроллеры, релейные модули).

    - `1000BASE-T` (Gigabit Ethernet): Скорость до 1 Гбит/с. Рекомендуется для "позвоночника" (backbone) сети, соединения коммутаторов, подключения серверов и сетевых хранилищ (NAS), а также IP-камер высокого разрешения.

    - Cat 5e: Наиболее распространенный тип кабеля "витая пара". Поддерживает гигабитные скорости на расстоянии до 100 метров. Является стандартом де-факто для большинства объектов.

    - Cat 6/6a: Имеет лучшие характеристики по помехозащищенности и поддерживает более высокие скорости (до 10 Гбит/с). Используется в сетях с высокими требованиями к производительности или в условиях сильных электромагнитных помех.

    - Применение: Питание IP-камер, сенсорных панелей управления (например, iRidium), VoIP-телефонов, некоторых Wi-Fi точек доступа.

    Wi-Fi

    Wi-Fi — технология для построения беспроводных локальных сетей. Ее главное преимущество — гибкость и отсутствие проводов. - 2.4 ГГц: Больший радиус действия, но более медленная скорость и сильная "зашумленность" из-за большого количества устройств (микроволновки, Bluetooth, соседские сети). Подходит для IoT-устройств с низким трафиком (умные розетки, беспроводные датчики), которым важен радиус покрытия.

    - 5 ГГц: Меньший радиус действия, но выше скорость и меньше помех. Идеален для устройств, требующих высокой пропускной способности (стриминг видео, смартфоны, ноутбуки).

    Критерии выбора среды передачи

    | Критерий | Ethernet (провод) | Wi-Fi (беспроводная) |

    | :------------ | :-------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |

    | Надежность | Высокая. Не подвержен радиопомехам, обрывам связи (кроме физического обрыва). | Средняя. Зависит от качества сигнала, помех, количества клиентов. |

    | Скорость | Стабильно высокая (100/1000 Мбит/с). | Нестабильная. Зависит от расстояния до роутера, препятствий, помех. |

    | Задержка (Ping) | Низкая (менее 1 мс в локальной сети). | Выше, чем у Ethernet (5-50 мс и более), может "скакать". |

    | Безопасность| Высокая. Требуется физический доступ к кабелю. | Требует настройки. Уязвима к взлому при слабом пароле и устаревшем шифровании. |

    | Гибкость | Низкая. Требует прокладки кабеля. | Высокая. Позволяет легко перемещать устройства. |

    | Применение | Контроллеры, серверы, IP-шлюзы, IP-камеры, стационарные ПК. | Смартфоны, планшеты, ноутбуки, беспроводные датчики, медиаплееры. |

    ---

    Сетевой уровень: IP-адресация и маршрутизация

    Если канальный уровень обеспечивает связь "точка-точка" в пределах одной комнаты, то сетевой уровень строит глобальные маршруты между городами. Здесь главную роль играют три компонента: IP-адрес, маска подсети и шлюз по умолчанию. Правильная настройка этих параметров на каждом устройстве — залог стабильной работы всей системы.

    > ⚠️ Внимание: Серверы и устройства, к которым требуется постоянный доступ по сети (например, наш контроллер, сервер с Node-RED), должны иметь статические IP-адреса. В противном случае, после перезагрузки роутера адрес может измениться, что приведет к потере связи с системой автоматизации.

    Основы IPv4

    Протокол IPv4 (Internet Protocol version 4) использует 32-битные адреса, которые для удобства записываются в виде четырех десятичных чисел, разделенных точками (например, `192.168.1.10`).

    Для локальных сетей выделены специальные приватные (частные) диапазоны адресов, которые не используются в глобальном интернете. Это позволяет избежать конфликтов и создавать свои сети без необходимости регистрации.

    В 99% случаев на объектах (умные дома, офисы) вы будете работать с диапазоном `192.168.x.x`.

    Маска подсети

    Маска подсети — это "трафарет", который, при наложении на IP-адрес, позволяет определить, какая часть адреса является адресом сети, а какая — адресом конкретного устройства (хоста) в этой сети. - IP-адрес: `192.168.1.10`

    - Маска: `255.255.255.0`

    Шлюз по умолчанию (Default Gateway)

    Шлюз по умолчанию — это IP-адрес маршрутизатора (роутера) в вашей локальной сети. Его задача — пересылать трафик, предназначенный для других сетей (включая Интернет), за пределы локальной сети. 1. Контроллер "видит", что `8.8.8.8` не находится в его локальной сети (`192.168.1.x`).

    2. Он не знает, куда отправить пакет, поэтому он отправляет его на адрес, указанный как "шлюз по умолчанию" (например, `192.168.1.1` — адрес роутера).

    3. Роутер, в свою очередь, уже знает, как доставить этот пакет в Интернет.

    Без правильно указанного шлюза устройство сможет общаться только с другими устройствами в своей локальной сети, но не будет иметь доступа в Интернет.

    DHCP vs. Статическая IP-адресация

    - Плюсы: Простота подключения. Не нужно ничего настраивать вручную на клиентах (смартфонах, ноутбуках).

    - Минусы: Адрес может измениться после перезагрузки. Это недопустимо для серверов и контроллеров.

    - Плюсы: Адрес постоянен и предсказуем. Вы всегда знаете, как обратиться к своему контроллеру.

    - Минусы: Требует ручной настройки. Необходимо вести учет выданных адресов, чтобы избежать конфликтов (когда два устройства получают один и тот же IP).

    Практическое правило:
  • Статический IP: Контроллеры, серверы, IP-шлюзы, сетевые хранилища, IP-камеры.
  • DHCP: Ноутбуки, смартфоны, планшеты, гостевые устройства.
  • ---

    Транспортный уровень: TCP vs. UDP

    Транспортный уровень отвечает за доставку данных между конкретными программами на устройствах. Представьте, что на вашем контроллере одновременно работают веб-сервер для интерфейса и Modbus TCP клиент для опроса счетчиков. Транспортный уровень должен гарантировать, что веб-страница уйдет к вашему браузеру, а Modbus-запрос — к счетчику, и их данные не перепутаются. Для этого используются протоколы TCP и UDP, а также концепция портов.

    TCP (Transmission Control Protocol)

    TCP — это протокол с установлением соединения, ориентированный на надежность. 1. Установление соединения: Прежде чем передавать данные, клиент и сервер выполняют "трехстороннее рукопожатие" (SYN, SYN-ACK, ACK), чтобы убедиться, что оба готовы к обмену.

    2. Гарантированная доставка: TCP разбивает большие данные на сегменты, нумерует их, отправляет и ждет от получателя подтверждения (ACK). Если подтверждение не пришло, сегмент отправляется повторно.

    - Контроль ошибок и порядка: На принимающей стороне TCP проверяет контрольные суммы, чтобы убедиться в отсутствии искажений, и собирает сегменты в правильном порядке.

    UDP (User Datagram Protocol)

    UDP — это протокол без установления соединения, ориентированный на скорость. 1. Нет соединения: Данные (дейтаграммы) просто отправляются по указанному адресу без предварительных "договоренностей".

    2. Нет гарантий: UDP не гарантирует доставку, не проверяет порядок и не отправляет пакеты повторно. Пакет может потеряться, продублироваться или прийти не по порядку.

    Понятие "Порта"

    Порт — это число от 1 до 65535, которое используется для идентификации конкретной программы или службы на устройстве. Если IP-адрес — это адрес дома, то порт — это номер квартиры в этом доме. Стандартные порты в системах автоматизации:

    | Протокол | Стандартный порт | Назначение |

    | :---------- | :--------------- | :--------------------------------------------- |

    | HTTP | 80 | Веб-интерфейсы устройств, REST API |

    | HTTPS | 443 | Защищенные веб-интерфейсы и API |

    | Modbus TCP| 502 | Опрос промышленных устройств по IP-сети |

    | MQTT | 1883 | Нешифрованный канал для телеметрии |

    | MQTTS | 8883 | Шифрованный (TLS) канал для телеметрии |

    | KNXnet/IP | 3671 | Туннелирование и маршрутизация KNX-телеграмм |

    ---

    Прикладные протоколы в системах автоматизации

    На верхнем, прикладном уровне, работают протоколы, которые определяют язык общения между устройствами для решения конкретных задач. В нашей платформе мы будем постоянно сталкиваться со следующими протоколами.

    MQTT

    MQTT (Message Queuing Telemetry Transport) — это легковесный протокол, работающий по принципу "издатель-подписчик" (publish-subscribe). Он идеально подходит для мира IoT и умного дома. - Брокер (Broker): Центральный сервер, который принимает сообщения от издателей и рассылает их подписчикам. На нашем контроллере эту роль выполняет встроенный MQTT-брокер.

    - Клиент (Client): Любое устройство (датчик, контроллер, приложение на смартфоне), которое может публиковать сообщения (издатель) или подписываться на них (подписчик).

    - Топик (Topic): Строковый идентификатор, похожий на адрес канала, по которому передаются сообщения. Например: `/devices/wb-msw-v3_21/controls/Temperature`.

    1. Датчик температуры (издатель) отправляет свои показания брокеру в топик `/office/room1/temperature`.

    2. Панель управления и сценарий в Node-RED (подписчики), которые ранее подписались на этот топик, мгновенно получают это сообщение от брокера.

    Пример сообщения `msg.payload` в Node-RED после получения данных из MQTT-топика:

    {
    

    "value": 24.5,

    "source": "/devices/wb-msw-v3_21/controls/Temperature",

    "ts": 1678886400000,

    "unit": "°C"

    }

    Modbus TCP

    Modbus TCP — это IP-версия протокола Modbus, который, как мы рассматривали в уроке `COURSE-01-M04-L02`, является стандартом в промышленной автоматизации. - Сеть Ethernet/Wi-Fi.

    - IP-адрес и порт `502` для идентификации устройства.

    - Протокол TCP для надежной доставки запросов и ответов.

    HTTP/REST API

    HTTP (HyperText Transfer Protocol) — это протокол, на котором работает весь веб. В системах автоматизации он используется для двух основных целей:
  • Веб-интерфейсы: Доступ к страницам настройки и управления устройствами (например, веб-интерфейс нашего контроллера).
  • REST API (Representational State Transfer): Это архитектурный стиль для построения API (программных интерфейсов), который использует стандартные HTTP-методы (`GET`, `POST`, `PUT`, `DELETE`) для взаимодействия с ресурсами.
  • - Чтобы получить состояние реле, вы можете отправить `GET`-запрос на URL вида `http://192.168.1.10/api/relays/1`.

    - Чтобы включить реле, вы отправляете `POST`-запрос на тот же URL с телом сообщения в формате JSON.

    Пример `msg.payload` для узла `http request` в Node-RED для включения света:

    {
    

    "command": "on",

    "brightness": 100

    }

    Такой подход широко используется для интеграции с облачными сервисами (Яндекс.Алиса, Google Home), панелями управления (iRidium) и другими сторонними системами.

    KNXnet/IP

    KNXnet/IP — это стандарт, который определяет, как передавать телеграммы протокола KNX (европейский стандарт автоматизации зданий) через IP-сети. Он выполняет роль моста между традиционной шиной KNX на витой паре и IP-миром.

    ---

    Резюме: TCP/IP в работе инженера умного дома

    Мы рассмотрели четыре уровня стека TCP/IP, и теперь можем свести их роль в работе инженера в единую картину. Грамотное проектирование IP-сети — это не побочная задача, а фундамент для стабильной и масштабируемой системы автоматизации.

    Роль уровней TCP/IP в практической задаче:
  • Прикладной уровень: Вы решаете, что хотите управлять светом через MQTT. Вы формируете команду `"on"` в топик `/devices/my_relay/controls/Switch/on`.
  • Транспортный уровень: Node-RED упаковывает это сообщение в TCP-сегмент и отправляет его на IP-адрес MQTT-брокера (например, `127.0.0.1` — на самом себе) и порт `1883`.
  • Сетевой уровень: ОС контроллера добавляет IP-заголовок с адресами отправителя и получателя.
  • Канальный уровень: Сетевая карта контроллера преобразует этот IP-пакет в Ethernet-кадр с MAC-адресами и отправляет его в виде электрических сигналов по кабелю "витая пара" в коммутатор.
  • Сводная таблица применения прикладных протоколов:

    | Протокол | Тип взаимодействия | Типичное применение в экосистеме HI | Ключевая особенность |

    | :------------ | :---------------------- | :----------------------------------------------------------------- | :------------------------------------------------------------- |

    | MQTT | Издатель-подписчик | Обмен данными между датчиками, контроллером и интерфейсами. | Гибкость, масштабируемость, разъединение устройств. |

    | Modbus TCP| Клиент-сервер | Опрос счетчиков электроэнергии, модулей ввода-вывода, вентустановок. | Промышленный стандарт, прямой опрос устройств. |

    | HTTP API | Запрос-ответ | Интеграция с облачными сервисами, панелями управления, веб-сервисами. | Универсальность, основа для RESTful-взаимодействий. |

    | KNXnet/IP | Туннелирование/Маршрутизация | Интеграция с оборудованием стандарта KNX через IP-сеть. | Стандарт для "моста" между KNX TP и IP. |

    Понимание этих принципов позволяет инженеру не просто соединять устройства, а осознанно проектировать сетевую инфраструктуру, диагностировать проблемы ("Почему панель не видит контроллер?") и выбирать правильные инструменты для интеграции разнородных систем.

    В следующем уроке мы перейдем к беспроводным технологиям малого радиуса действия, таким как Zigbee и LoRaWAN, которые открывают новые возможности для построения распределенных сетей датчиков.