Компьютерная сеть — это узлы (компьютеры, телефоны, серверы, принтеры), соединенные каналами связи и сетевым оборудованием, которые обмениваются данными по общим правилам — протоколам. Ниже разберем, какими бывают сети по масштабу и топологии, как данные проходят через уровни модели TCP/IP, как узел по IP-адресу, маске и шлюзу решает, куда отправить пакет, и как по шагам найти причину, если связи нет.
Содержание
- Мини-словарь: кто есть кто в сети
- Виды компьютерных сетей по масштабу
- Топологии: как соединены узлы
- Как данные идут по сети: модели OSI и TCP/IP
- IP-адрес, маска и шлюз
- Как посмотреть сетевые настройки своего компьютера
- Диагностика: ping, traceroute и что они на самом деле проверяют
- Выводы
- Где применяется / связь с практикой
- FAQ
Код и вывод команд проверены 23 сентября 2026 года: Python 3.14 и контейнер Ubuntu 24.04. Адреса в вашей сети будут другими.
Мини-словарь: кто есть кто в сети
Эти термины часто путают, а от них зависит понимание всего остального:
| Термин | Что делает | Уровень |
|---|---|---|
| Узел (хост) | Отправляет и получает данные: ПК, телефон, сервер | — |
| Коммутатор (switch) | Передает кадры между устройствами одной локальной сети по MAC-адресам | канальный |
| Маршрутизатор (router) | Передает пакеты между разными сетями по IP-адресам | сетевой |
| Точка доступа Wi-Fi | Подключает беспроводные устройства к локальной сети | канальный |
| Протокол | Правила обмена: формат сообщений и порядок действий (IP, TCP, DNS, HTTP) | любой |
Домашний «роутер» обычно совмещает маршрутизатор, коммутатор и точку доступа в одной коробке, в офисе это отдельные устройства.
Виды компьютерных сетей по масштабу
Границы между видами условные: их задают не метры, а владелец сети и технологии.
| Вид | Охват | Типичные технологии | Пример |
|---|---|---|---|
| PAN (персональная) | Несколько метров вокруг человека | Bluetooth, USB | Телефон и беспроводные наушники |
| LAN (локальная) | Квартира, офис, этаж, здание | Ethernet, Wi-Fi | Домашняя сеть за роутером |
| MAN (городская) | Город или район | Оптика провайдера, Metro Ethernet | Сеть городского провайдера |
| WAN (глобальная) | Регионы, страны, континенты | Магистральная оптика, каналы операторов | Интернет, сеть филиалов банка |
Отдельно стоит WLAN — это беспроводная локальная сеть (обычно Wi-Fi), то есть разновидность LAN, а не еще один масштаб. Не путайте WLAN (Wireless LAN) и WAN (Wide Area Network): это разные понятия, отличающиеся одной буквой.
Сеть банка с филиалами в разных городах — это несколько LAN, связанных через WAN (каналы оператора или туннели через интернет).
Топологии: как соединены узлы
Физическая топология — как проложены кабели и радиоканалы, логическая — как движутся данные. Они могут не совпадать.
| Топология | Как устроена | Плюсы | Минусы | Где сейчас |
|---|---|---|---|---|
| Шина | Все узлы на одном общем кабеле | Мало кабеля | Обрыв кабеля кладет сегмент, коллизии | Историческая (ранний Ethernet на коаксиале) |
| Кольцо | Каждый узел связан с двумя соседями | Предсказуемая очередность передачи | Разрыв без резервного кольца ломает связь | Некоторые оптические и промышленные сети |
| Звезда | Все узлы подключены к центральному коммутатору | Сбой одного кабеля не задевает остальных | Центр — единая точка отказа | Почти любая современная LAN |
| Дерево | Звезды, соединенные иерархией коммутаторов | Легко расширять по этажам и зданиям | Отказ верхнего уровня отрезает ветку | Офисные и кампусные сети |
| Ячеистая (mesh) | Узлы связаны несколькими путями | Есть обходные маршруты | Дороже и сложнее в настройке | Магистрали операторов, mesh-системы Wi-Fi |
Важная поправка к распространенному объяснению: в центре «звезды» стоит коммутатор, а не сервер. Сервер — просто один из узлов на лучах, и его отказ не останавливает передачу данных между остальными компьютерами.
По ролям узлов сети бывают одноранговые (каждый компьютер и клиент, и сервер) и клиент-серверные (выделенные серверы обслуживают клиентов). Это деление про роли программ, а не про кабели.
Как данные идут по сети: модели OSI и TCP/IP
Передачу делят на уровни: каждый решает свою задачу и пользуется услугами уровня ниже. Модель OSI из семи уровней — учебная и справочная, в ней удобно называть проблемы («проблема на втором уровне»). Реально работающий стек интернета описывает модель TCP/IP из четырех уровней.
| TCP/IP | Уровни OSI | Задача | Примеры |
|---|---|---|---|
| Прикладной | 7, 6, 5 | Смысл данных для программ | HTTP, DNS, SMTP, SSH |
| Транспортный | 4 | Доставка между программами по портам | TCP, UDP |
| Сетевой (межсетевой) | 3 | Адресация и маршрут между сетями | IP, ICMP |
| Канальный (доступ к сети) | 2, 1 | Передача кадра по конкретной среде | Ethernet, Wi-Fi |
Соответствие уровней в таблице упрощенное: протоколы не всегда укладываются в один уровень OSI, а TLS, например, по-разному относят к разным уровням. Для диагностики этой модели хватает.
Пример цепочки: вы открываете сайт. Браузер формирует HTTP-запрос (прикладной уровень), TCP доставляет его на порт 443 сервера (транспортный), IP ведет пакет через цепочку маршрутизаторов (сетевой), а Ethernet или Wi-Fi передают кадр до ближайшего устройства (канальный).
IP-адрес, маска и шлюз
Чтобы узел мог работать в IP-сети, ему нужны три параметра (обычно их выдает DHCP-сервер, чаще всего — домашний роутер):
- IP-адрес — адрес узла. В IPv4 это 32 бита, записанные четырьмя числами от 0 до 255:
192.168.1.37. - Маска подсети — какая часть адреса обозначает сеть, а какая — узел.
255.255.255.0то же самое, что префикс/24: первые 24 бита — номер сети. - Шлюз по умолчанию — адрес маршрутизатора в той же сети, через который уходят пакеты в другие сети.
Для локальных сетей выделены частные диапазоны: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Из интернета напрямую они недоступны, наружу такие узлы выходят через трансляцию адресов (NAT) на роутере. Кроме IPv4 используется IPv6 с 128-битными адресами, но логика «адрес + префикс + шлюз» там та же.
Главное решение, которое узел принимает для каждого пакета: получатель в моей сети или нет. Если в моей — отправить напрямую, если нет — отправить шлюзу. Вот как это вычисляется модулем ipaddress из стандартной библиотеки Python:
import ipaddress
def plan(host_cidr, gateway, targets):
iface = ipaddress.ip_interface(host_cidr) # адрес узла + длина префикса
net = iface.network
gw = ipaddress.ip_address(gateway)
print(f"Узел {iface.ip}, маска {iface.netmask}, сеть {net}")
if gw not in net:
print(f" Ошибка: шлюз {gw} вне сети {net}, наружу узел не выйдет")
return
for dst in targets:
if ipaddress.ip_address(dst) in net:
print(f" {dst:>14} -> своя сеть, отправка напрямую")
else:
print(f" {dst:>14} -> чужая сеть, отправка через шлюз {gw}")
targets = ["192.168.1.200", "192.168.2.10", "203.0.113.10"]
plan("192.168.1.37/24", "192.168.1.1", targets) # правильная настройка
plan("192.168.1.37/25", "192.168.1.1", targets) # маска /25 вместо /24
plan("192.168.1.37/24", "192.168.0.1", targets) # шлюз из другой сети
Результат запуска на Python 3.14:
Узел 192.168.1.37, маска 255.255.255.0, сеть 192.168.1.0/24
192.168.1.200 -> своя сеть, отправка напрямую
192.168.2.10 -> чужая сеть, отправка через шлюз 192.168.1.1
203.0.113.10 -> чужая сеть, отправка через шлюз 192.168.1.1
Узел 192.168.1.37, маска 255.255.255.128, сеть 192.168.1.0/25
192.168.1.200 -> чужая сеть, отправка через шлюз 192.168.1.1
192.168.2.10 -> чужая сеть, отправка через шлюз 192.168.1.1
203.0.113.10 -> чужая сеть, отправка через шлюз 192.168.1.1
Узел 192.168.1.37, маска 255.255.255.0, сеть 192.168.1.0/24
Ошибка: шлюз 192.168.0.1 вне сети 192.168.1.0/24, наружу узел не выйдет
Что показывают три сценария:
- При маске
/24сеть — это192.168.1.0—192.168.1.255: сосед.200доступен напрямую, все остальное идет через шлюз. - Маска
/25делит ту же сеть пополам (.0—.127), и узел.37считает соседа.200чужим. Пакеты к нему уходят шлюзу, связь становится лишним кругом через роутер или пропадает совсем — зависит от настроек маршрутизатора. - Шлюз из другой сети недостижим: узел не может отправить ему кадр напрямую, поэтому локальная сеть работает, а интернет — нет.
Адрес 203.0.113.10 взят из диапазона, зарезервированного для документации, поэтому в примере он ни с кем реальным не пересечется.
Типичная ошибка: адрес узла вместо адреса сети
import ipaddress
print(ipaddress.ip_network("192.168.1.37/24"))
Результат:
ValueError: 192.168.1.37/24 has host bits set
ip_network ждет адрес сети (с нулевой узловой частью), а .37 — это адрес узла. Исправление: для настроек конкретного узла берите ip_interface("192.168.1.37/24").network, а если нужен именно объект сети — ip_network("192.168.1.37/24", strict=False). Оба варианта вернут 192.168.1.0/24.
Как посмотреть сетевые настройки своего компьютера
| Задача | Windows | Linux | macOS |
|---|---|---|---|
| Адрес и маска | ipconfig /all |
ip addr |
ifconfig |
| Шлюз и маршруты | route print |
ip route |
netstat -rn |
| Проверка доступности | ping узел |
ping -c 4 узел |
ping -c 4 узел |
| Путь до узла | tracert узел |
traceroute узел или tracepath узел |
traceroute узел |
| Проверка DNS | nslookup имя |
nslookup имя или dig имя |
nslookup имя |
| Проверка TCP-порта | Test-NetConnection узел -Port 443 |
nc -vz узел 443 |
nc -vz узел 443 |
В Linux ping без -c шлет запросы бесконечно, до Ctrl+C; в Windows по умолчанию отправляет четыре. Некоторые утилиты (traceroute, dig, nc) в минимальных сборках Linux нужно доставить из пакетов.
Вывод ip -4 addr и ip route в контейнере Ubuntu 24.04 (строки сокращены):
2: eth0@if741: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
inet 172.17.0.10/16 brd 172.17.255.255 scope global eth0
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.10
Читается так: адрес узла 172.17.0.10, префикс /16, шлюз по умолчанию 172.17.0.1, а вся сеть 172.17.0.0/16 доступна напрямую через интерфейс eth0.
Диагностика: ping, traceroute и что они на самом деле проверяют
ping отправляет ICMP-запрос и ждет ответ. Он проверяет, что узел достижим по IP и отвечает на ICMP, но не проверяет, что работает нужный сервис. Верно и обратное: многие серверы и фаерволы блокируют ICMP, поэтому отсутствие ответа на ping еще не значит, что узел выключен.
PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data.
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from 172.17.0.1: icmp_seq=2 ttl=64 time=0.143 ms
--- 172.17.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1020ms
Главное в выводе: packet loss (доля потерянных пакетов) и time (время туда и обратно). В проводной LAN это обычно доли миллисекунды или единицы миллисекунд, до серверов в других странах — десятки и сотни, в зависимости от расстояния и загрузки каналов.
traceroute (в Windows — tracert) показывает маршрутизаторы по пути. Утилита шлет пакеты с растущим TTL, и каждый маршрутизатор, на котором TTL обнулился, сообщает о себе. Строка * * * значит, что этот узел не ответил, а не обязательно обрыв:
traceroute to 1.1.1.1 (1.1.1.1), 5 hops max, 60 byte packets
1 172.17.0.1 0.017 ms 0.009 ms 0.003 ms
2 * * *
3 * * *
Первый шаг — шлюз контейнера, дальше узлы виртуальной сети на пробы не отвечают. В Linux и macOS traceroute по умолчанию шлет UDP-пакеты, а Windows tracert — ICMP, поэтому результаты с разных систем могут отличаться.
Порядок проверки, если «нет интернета»
Идите снизу вверх по уровням, каждый шаг сужает зону поиска:
- Есть ли подключение: кабель, Wi-Fi, индикатор на интерфейсе (
ip addr: статусUP). - Есть ли корректный адрес, маска и шлюз (
ipconfig /allилиip addrиip route). - Отвечает ли шлюз:
ping <адрес шлюза>. - Идут ли пакеты за пределы сети:
pingпо IP-адресу внешнего узла,tracerouteдо него. - Работает ли DNS:
nslookup example.com. - Открыт ли нужный порт сервиса:
nc -vz <узел> 443илиTest-NetConnection.
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
Адрес вида 169.254.x.x |
Узел не получил настройки от DHCP | Проверить подключение к роутеру, перезапросить адрес |
| Шлюз не отвечает | Неверная маска или шлюз, проблемы с кабелем или Wi-Fi | Сверить настройки с роутером, проверить физическое подключение |
| Ping по IP есть, сайты по именам не открываются | Не работает DNS | Проверить DNS-серверы в настройках, nslookup |
Name or service not known |
Имя не резолвится (опечатка или DNS) | Проверить имя и DNS |
Connection refused |
Узел доступен, но на порту никто не слушает | Проверить, запущен ли сервис и на каком порту |
Последние две строки — реальные ответы утилит в Ubuntu 24.04: ping: nonexistent-host.invalid: Name or service not known и nc: connect to 127.0.0.1 port 8080 (tcp) failed: Connection refused.
Про безопасность: все команды выше только читают состояние и ничего не меняют. Не отключайте фаервол «для проверки» и не сканируйте порты чужих узлов без разрешения владельца — в корпоративной сети это воспринимается как атака.
Выводы
- Компьютерная сеть — узлы, каналы и оборудование, которые обмениваются данными по протоколам; коммутатор связывает устройства внутри сети, маршрутизатор — разные сети.
- По масштабу выделяют PAN, LAN, MAN и WAN; WLAN — беспроводная LAN, а не отдельный масштаб. Большинство современных LAN построены звездой или деревом вокруг коммутаторов.
- OSI — справочная модель из семи уровней, TCP/IP — рабочий стек интернета из четырех.
- По IP-адресу и маске узел решает, отправить пакет напрямую или шлюзу; ошибка в маске или шлюзе ломает связь частично или полностью.
- Диагностику ведите снизу вверх: интерфейс, адрес, шлюз, внешний IP, DNS, порт. Ping и traceroute проверяют достижимость по IP, но не работу сервиса.
Где применяется / связь с практикой
Адресация и маршрутизация нужны не только сетевым инженерам: разработчик выясняет, почему контейнер не видит базу, тестировщик — почему API отвечает по IP, но не по имени.
Освойте тему на практике
Системно освоить адресацию, коммутацию и маршрутизацию можно на курсе «Network Engineer. Basic». А на открытых уроках Otus можно бесплатно послушать преподавателей и понять, подходит ли вам направление.
FAQ
Чем интернет отличается от локальной сети?
Локальная сеть объединяет устройства одной организации или квартиры, интернет — это глобальная сеть, связывающая сети множества независимых операторов. Домашняя LAN выходит в интернет через роутер провайдера.
Нужен ли IPv6, если все работает на IPv4?
Адресов IPv4 не хватает на все устройства, поэтому операторы переходят на IPv6, и у многих провайдеров он уже включен. Узел может работать сразу с обоими протоколами.
Можно ли узнать внешний IP-адрес командой ipconfig или ip addr?
Обычно нет: они показывают адрес узла в локальной сети (часто частный, вида 192.168.x.x). Внешний адрес принадлежит роутеру или оборудованию провайдера после NAT, его видят сервисы в интернете.



