О разделе

Бэкенд-разработчику обязательно понимать, как устроены сети и виртуализация. Без этого нельзя:

  • задеплоить приложение (нужно понимать VM, контейнер, IP, порты);
  • отладить «у меня работает, а на проде нет» (firewall, NAT, DNS, MTU);
  • спроектировать инфраструктуру (подсети, VPC в AWS, VLAN);
  • общаться с DevOps-инженерами на одном языке.
Цель страницы: объяснить базу сетей и виртуализации так, чтобы у тебя в голове сложилась правильная картина: что такое MAC vs IP, почему есть OSI и TCP/IP одновременно, как пакет проходит от твоего ноутбука до сервера Google и обратно, зачем нужны подсети и VLAN.
Карта раздела
БлокЧто узнаешь
ВиртуализацияЧто такое VM, гипервизор Type 1 / Type 2 / Hybrid, чем отличается от контейнера
Основы сетейPAN/LAN/WAN, топологии, hub/switch/router/gateway/modem
Модели OSI и TCP/IP7 уровней OSI vs 4–5 TCP/IP, как пакет «упаковывается» (encapsulation)
АдресаMAC (локально), IPv4 (глобально), IPv6 (будущее)
ПротоколыARP, TCP, UDP, ICMP, порты
ПодсетиМаски, CIDR, NAT, VLSM — как делят сети
VLANЛогическое разделение сети, 802.1Q tagging
Аналогия для всей темы: сеть — это почтовая система. MAC — это твоё имя в комнате. IP — это адрес здания и квартиры. Порт — номер двери. TCP — заказное письмо с уведомлением. UDP — открытка. ARP — звонок соседу: «эй, кто такой Сергей?». Switch — почтальон внутри здания. Router — почтовое отделение между городами.
Виртуализация — что это

Виртуализация — это создание программной копии чего-то физического (компьютера, сети, диска), которая ведёт себя как настоящая, но живёт внутри другого компьютера.

Virtualization overview

Зачем: один физический сервер стоит дорого и обычно загружен на 10-20%. Если на нём запустить 5 виртуальных серверов — он начнёт «окупаться». Плюс изоляция: один сервис упал → другие живут. Плюс мобильность: VM-файл можно скопировать на другой сервер.
Виды виртуализации

Types of virtualization

ТипЧто виртуализируетсяПример
Hardware (Server)Целый компьютер (CPU + RAM + диск)VMware ESXi, KVM, Hyper-V
DesktopРабочий стол отдельно от железаCitrix, VDI
ApplicationПриложение запускается без установкиMicrosoft App-V, Docker (отчасти)
NetworkНесколько физ. сетей видны как одна (или наоборот)VLAN, VPC, SDN
StorageНесколько дисков как один большойSAN, RAID, S3, Ceph
MobileВиртуализация на телефонахAndroid dual-instance
Full Virtualization vs Paravirtualization
ПризнакFull VirtualizationParavirtualization
Гостевая ОС знает, что она в VM?Нет — думает, что на реальном железеДа — специально модифицирована
Как работаетГипервизор «переводит» инструкции на лету (binary translation)ОС вызывает гипервизор напрямую (hypercalls)
СкоростьМедленнее (доп. перевод)Быстрее
СовместимостьЛюбая ОС без измененийНужна модификация гостя
Сегодня граница размыта — Intel VT-x и AMD-V добавили в CPU инструкции для виртуализации, поэтому full virtualization стала быстрой.
VM и Гипервизоры
Что такое VM

Virtual Machine (VM) — это файл (точнее, набор файлов) на диске, который имитирует целый компьютер: своя ОС, своё «железо», свои настройки сети.

3 ключевых свойства VM:

  • Partitioning — на одном хосте могут жить много VM, делят CPU/RAM/диск.
  • Isolation — VM не видят друг друга (если так настроено), их можно безопасно изолировать.
  • Encapsulation — VM — это файлы. Можно скопировать на другой сервер, сделать снапшот, бэкап.
Гипервизор — это что

Гипервизор — программа (или прошивка / железо), которая создаёт и запускает VM. Это «прослойка», которая делит ресурсы реального компа между виртуальными.

Hypervisor concept

Аналогия: представь, что у тебя есть один большой дом (сервер). Гипервизор — это управляющий, который сдаёт комнаты квартирантам (VM). Каждый квартирант думает, что живёт в своей отдельной квартире, но на самом деле они делят одни и те же ресурсы (вода, электричество, плита).
3 типа гипервизоров
ТипГде живётСкоростьПримеры
Type 1 — Native / Bare MetalПрямо на железе, без хостовой ОССамый быстрыйVMware ESXi, KVM, Hyper-V, Citrix XenServer
Type 2 — HostedВнутри обычной ОС (Windows/Mac/Linux)МедленнееVirtualBox, VMware Workstation, Parallels Desktop, QEMU
Type 3 — HybridТонкий гипервизор + служебная ОССреднеMicrosoft Hyper-V (в Win Server), Xen
┌─────────────── Type 1 (Bare Metal) ──────────────┐ │ │ │ ┌───────┐ ┌───────┐ ┌───────┐ │ │ │ VM 1 │ │ VM 2 │ │ VM 3 │ ← гостевые ОС │ │ └───────┘ └───────┘ └───────┘ │ │ ─────────── Hypervisor ────────── │ │ ─────────── Hardware (CPU/RAM/Disk) ───── │ └────────────────────────────────────────────────────┘ ┌─────────────── Type 2 (Hosted) ──────────────────┐ │ │ │ ┌───────┐ ┌───────┐ │ │ │ VM 1 │ │ VM 2 │ ← гостевые ОС │ │ └───────┘ └───────┘ │ │ ──────── Hypervisor (VirtualBox) ──── │ │ ──────── Host OS (Windows/Mac/Linux) ──── │ │ ──────── Hardware ────── │ └────────────────────────────────────────────────────┘
На практике: VirtualBox на твоём ноутбуке — это Type 2 (поверх macOS). А продакшен-серверы у хостеров (DigitalOcean, AWS EC2) — это Type 1 (KVM/Xen прямо на железе).
VM vs Container — путаница

Часто путают VM и Docker-контейнер. Главное различие:

VMContainer (Docker)
Что внутриПолная ОС + ядро + приложениеТолько приложение + библиотеки. Ядро общее с хостом
РазмерГигабайты (полный диск ОС)Мегабайты
ЗапускМинуты (загрузка ОС)Миллисекунды
ИзоляцияПолная (отдельное ядро)Процессная (общее ядро Linux)
Когда выбиратьРазные ОС (Windows + Linux), сильная изоляцияМикросервисы, CI/CD, скорость
Практика — установить VM в VirtualBox
  1. Скачать VirtualBox с virtualbox.org.
  2. Скачать ISO с Ubuntu Server / Desktop с ubuntu.com.
  3. Создать VM, указать ISO как загрузочный диск, выделить 4 ГБ RAM и 20 ГБ диска.
  4. Установить Ubuntu, попробовать команды управления: Start, Stop, Pause, Save State.
  5. Сделать клон VM (Clone) — увидишь, что копия запускается независимо.
  6. Сделать снапшот (Snapshot), что-то сломать, восстановить из снапшота.
История компьютерных сетей

Полезно знать, как мы пришли к современному Интернету — это объясняет, почему многое сделано именно так.

1920s — Teletype (TTY)

Электромеханическая печатная машинка, которая позволяла обмениваться текстом по телефонной линии. Звуковой сигнал переводился в текст и наоборот.

  • Ограничение: только point-to-point (двое говорят между собой). Не масштабируется.
  • Использовалось в новостных агентствах, телеграфе.
  • Наследие: современные терминалы в Linux до сих пор называются «TTY» (/dev/tty).
1967 — Идея пакетной коммутации

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

Почему это революция: один кабель теперь может обслуживать тысячи разговоров одновременно. Если кабель оборвался — пакеты пойдут другим путём. Это фундамент всего Интернета.
1969 — ARPANET

ARPA (Advanced Research Projects Agency, США) построило первую packet-switched сеть.

  • 29 октября 1969 — первая передача данных между UCLA и Stanford Research Institute.
  • Хотели послать «login», но система упала после «lo» — официально первое сетевое сообщение.
  • Использовал первую версию IP (Internet Protocol).
  • Это основа современного Интернета.
1980 — USENET

Первая публичная сеть — работает и сегодня. Принцип: как email, но «один → многим». Сообщения группируются в newsgroups (форумы).

Культурное наследие: из USENET в массы пошли понятия nickname, smiley, moderator, spam, troll, ban. По сути это прародитель Reddit и всех форумов.

Протокол: NNTP (Network News Transfer Protocol).

1980-90s — Fidonet

Любительская сеть на основе модемов и телефонных линий. Стоила копейки (звонок ночью был дешёвым) и дала миллионам людей доступ к глобальному общению до массового Интернета.

Сегодня практически вымерла, но научила людей строить глобальные сообщества.

Интернет — сеть сетей

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

Раннее подключение: модемы по телефонной линии (dial-up). Тот самый звук «писк-шипение» при подключении — это была согласовываемая модуляция: модем превращал биты данных в аналоговый звук.

Ключевые понятия Интернета
  • Data Packets — данные режутся, отправляются, собираются обратно.
  • IP Address — уникальный идентификатор (напр. 192.168.0.1).
  • DNS (Domain Name System) — переводит имена (google.com) в IP (142.250.185.14).
DNS как телефонная книга: ты помнишь имя «Сергей», но не помнишь номер. DNS — это справочник, где по имени находят номер.
Инфраструктура Интернета
  • Internet Hosts — центральные узлы, связывающие провайдеров.
  • ISPs (Internet Service Providers) — дают доступ конечным пользователям.
  • Типы подключения: dial-up (устар.), DSL, кабельное, LTE/5G, оптоволокно.
  • Протоколы: определяют правила обмена (TCP/IP, HTTP, etc.).
Главное: Teletype → packet switching → ARPANET → Интернет. Каждый шаг решал ограничение предыдущего. Сегодняшний Интернет — это сеть сетей, в которой пакеты с IP-адресами летят через тысячи устройств.
Типы сетей по размеру

Сети классифицируют по географическому покрытию. Каждый тип решает свою задачу.

PAN → LAN → MAN → WAN 10м здание город страна / мир (Bluetooth, Ethernet, ISP-сеть города, Интернет)

PAN — Personal Area Network

Что: очень маленькая сеть вокруг одного человека (~10 м).

Примеры: Bluetooth-наушники, мышь, клавиатура, AirDrop между Mac/iPhone.

Зачем знать: понимаешь, чем Bluetooth отличается от Wi-Fi.

LAN — Local Area Network

Что: сеть в пределах здания (офис, дом, кампус). До ~16 млн устройств теоретически.

Технологии: Ethernet (по кабелю), Wi-Fi (по воздуху — это WLAN).

Адреса: приватные IP (192.168.x.x, 10.x.x.x).

Зачем знать: когда коллега говорит «зайди по локалке на сервер», он про LAN.

MAN — Metropolitan Area Network

Что: сеть масштаба города.

Примеры: городской провайдер (Beeline, Kazakhtelecom), кабельное ТВ, муниципальный оптоволоконный backbone.

Роль: мост между LAN (офисы города) и WAN (глобальной сетью).

WAN — Wide Area Network

Что: сеть масштаба страны / континента / мира. Интернет — это самый большой WAN.

Технологии: магистральные оптические каналы, спутники, подводные кабели.

Кто строит: крупные провайдеры (Tier-1, Tier-2 ISPs), Google/Meta/Amazon (свои частные WAN).

WLAN — Wireless LAN

То же что LAN, но по воздуху (Wi-Fi). Минусы по сравнению с проводным LAN:

  • медленнее при множестве клиентов;
  • помехи (микроволновка может рубить сигнал);
  • безопасность — трафик можно «снифать из воздуха», нужен WPA2/WPA3.

VPN — Virtual Private Network

Что: «виртуальный приватный кабель», проложенный поверх публичного Интернета. Трафик шифруется в туннеле.

Зачем 2 типа:

  • Personal VPN (NordVPN, Surfshark) — приватность, обход блокировок.
  • Corporate VPN (OpenVPN, WireGuard, Cisco AnyConnect) — сотрудник из дома получает доступ к внутренней сети офиса как будто он там физически.
Аналогия: VPN — это тоннель внутри обычной дороги. Машины снаружи (Интернет) едут по асфальту и видят твой автомобиль. Машины в тоннеле — едут отдельно, и никто снаружи не видит, что внутри.
Топологии — как соединены устройства

Топология — это «карта» того, как провода и устройства соединены между собой.

  • Физическая топология — как реально лежат кабели.
  • Логическая топология — как данные «текут» между устройствами (может отличаться от физической).

Point-to-Point

Два устройства, один кабель. Просто, надёжно, но не масштабируется.

[ PC-A ]──────────[ PC-B ]

Bus

Один общий кабель, к нему подключены все. Устаревшее (Ethernet 10BASE2).

[PC1]──[PC2]──[PC3]──[PC4] Общий кабель (bus)

Минус: если кабель порвётся в середине — вся сеть упадёт. Все устройства слышат весь трафик (security risk).

Star (самая популярная сегодня)

Все устройства подключены к центральному узлу (switch / hub / router).

[PC2] │ [PC1]──[ Switch ]──[PC3] │ [PC4]

Плюс: один кабель упал — остальные работают. Легко искать неисправность.

Минус: упал центральный switch — упало всё.

Ring

Каждое устройство связано с двумя соседями, образуя кольцо. Данные идут в одну сторону.

[PC1]───────[PC2] │ │ [PC4]───────[PC3]

Минус: один узел сломался — кольцо разорвалось. Решение: Dual Ring (два кольца, одно резервное).

Mesh — на этом построен Интернет

Каждое устройство связано с многими другими (не обязательно со всеми).

[A]═══[B] ║ ╳ ║ [C]═══[D]

Плюс: отказ одного устройства/линка не ломает сеть — данные пойдут другим путём.

Минус: очень дорого (много кабелей).

Где: магистральные сети Интернета — Partial Mesh.

Hybrid

Реальные корпоративные сети — комбинация Star + Mesh + Ring. Часто древовидная структура.

Сетевые устройства

Каждое устройство работает на определённом OSI-уровне. Чем выше уровень — тем «умнее» устройство и тем больше понимает о трафике.

Иерархическая модель корпоративной сети

Большие корпоративные сети строят по трёхуровневой модели (Cisco hierarchical model):

┌─────────────────────────────┐ │ CORE LAYER (магистраль) │ ←─ высокоскоростные │ - L3 Switches │ switch'и + router'ы │ - Routers │ между зданиями/сайтами └──────────┬──────────────────┘ │ ┌────────────────┴───────────────┐ │ DISTRIBUTION LAYER │ ←─ соединяет этажи / отделы │ - L3 Switches │ управляемые switch'и, │ - Routers │ VLAN routing, ACL └────┬──────────────────┬─────────┘ │ │ ┌────────────┴────┐ ┌────────┴────────┐ │ ACCESS LAYER │ │ ACCESS LAYER │ ←─ к чему подключены │ - L2 Switches │ │ - L2 Switches │ конечные устройства │ - PCs, printers │ │ - PCs │ (этаж в офисе) └─────────────────┘ └────────────────┘
УровеньГдеЧто делаетУстройства
AccessЭтаж офисаПодключает конечные устройства (ПК, принтеры, IP-телефоны)Обычные switch'и
DistributionМежду этажами / отделамиОбъединяет access switch'и, фильтрует трафик, маршрутизация VLANУправляемые / L3 switch'и
CoreBackbone здания / сайтаМагистраль — связывает distribution-узлы на максимальной скоростиМощные L3 switch'и и router'ы
Зачем такое разделение: легче масштабировать (добавил этаж — поставил один access switch), легче находить и изолировать сбои, можно применять разные политики безопасности на разных уровнях.
Карта устройств по уровням
Уровень OSIУстройствоЧто умеет
L1 (Physical)NIC (отчасти), Repeater, Hub, ModemПросто гонит биты / сигналы
L2 (Data Link)NIC (полностью), Bridge, SwitchПонимает MAC-адреса, ходит внутри LAN
L3 (Network)Router, L3 SwitchПонимает IP, маршрутизирует между сетями
Все уровниGatewayПереводит между разными протоколами

NIC (Network Interface Card)

Это «сетевая карта» — деталь в твоём ноутбуке/сервере, которая физически подключает к сети. Имеет уникальный MAC-адрес.

Где живёт:

  • External — внешняя (USB Wi-Fi-адаптер).
  • Internal — PCI-карта на материнской плате.
  • Integrated — встроена в чипсет (все современные ноутбуки).

Эволюция коннекторов NIC:

КоннекторГде использовалсяСкорость
AUI (Attachment Unit Interface)10BASE5 (Thick Ethernet, толстый коаксиал)10 Mbps
BNC (Bayonet Connector)10BASE2 (Thin Ethernet, тонкий коаксиал)10 Mbps
RJ-45 (8P8C)Современный Ethernet — то, что ты видишь в кабеле LANдо 10 Gbps
Fiber (SC, LC, ST)Магистральные сети, ЦОДыдо 100 Gbps на 40 км

OSI: работает на L1 (Physical) + L2 (Data Link). Это «гибридное» устройство.

Repeater

Что: регенерирует и усиливает сигнал, чтобы кабель мог быть длиннее.

OSI: L1 (Physical). Не понимает ничего о содержимом — просто усиливает.

Зачем: у Ethernet есть ограничение по длине кабеля (~100 м). Repeater позволяет «продлить» сеть дальше.

Минус: не фильтрует ничего — повторяет всё, включая шум.

Сегодня: почти не используется отдельно, функция встроена в switch'и и Wi-Fi extender'ы.

Hub (устарел)

Получил пакет — отправил всем подключённым. Тупой повторитель. Все слышат всех → коллизии, security.

Аналогия: hub = громкоговоритель в комнате. Кто-то сказал — все услышали, включая тех, кому не предназначалось.

Сейчас не используется — везде switches.

Bridge (предок switch'а)

Что: соединяет и фильтрует трафик между двумя сегментами сети. Использует MAC-таблицу, чтобы решить — пропускать кадр дальше или нет.

OSI: L2 (Data Link).

Типы:

  • Transparent — невидим для устройств, сам строит MAC-таблицу.
  • Translating — соединяет разные среды (Ethernet ↔ Wi-Fi).
  • Encapsulating — оборачивает кадры одного протокола в другой.

Плюсы:

  • Уменьшает количество коллизий, разделяя collision domains.
  • Может фильтровать битые или слишком большие кадры.

Минус: добавляет задержку (анализирует кадры).

Сегодня: почти заменён switch'ами. Switch — это, по сути, многопортовый bridge.

Switch (основа любой LAN)

Получил пакет — посмотрел MAC получателя — отправил только нужному порту. Хранит MAC-таблицу (порт ↔ MAC).

Аналогия: switch = почтальон в общежитии. Получил конверт с именем Васи — отнёс именно Васе, остальным жильцам не показывает.

Работает на L2. IP его не интересует — только MAC.

Методы коммутации:

  • Store-and-Forward — полностью принять кадр, проверить на ошибки, потом отправить. Надёжно, но с задержкой.
  • Cut-Through — отправить сразу как только увидели MAC получателя. Быстро, но может пропустить битый кадр.
  • Fragment-Free — принять первые 64 байта (там обычно ошибки), потом форвардить. Компромисс.

Router

Получил пакет — посмотрел IP получателя — посмотрел routing table — решил, в какой следующий узел («next hop») отправить.

Аналогия: router = почтовое отделение. Получило письмо «в Москву» — отправило в международный сортировочный центр, дальше тот разберётся.

Работает на L3. Связывает разные сети между собой (LAN ↔ Интернет).

Дома твой Wi-Fi-роутер — это маленький router + switch + Wi-Fi access point + DHCP-сервер + NAT в одном корпусе.

L3 Switch (Multilayer)

Switch с функциями router'а. Работает на L2 + L3. Очень быстрый (специальные ASIC-чипы), но менее гибкий чем настоящий router.

Где: большие корпоративные LAN с несколькими VLAN — нужно быстро маршрутизировать между VLAN'ами без покупки дорогого роутера.

Gateway

Устройство (или софт), которое переводит между разными протоколами. Может работать на любых уровнях OSI.

Примеры: домашний роутер часто называют «default gateway» (он шлюз в Интернет); API Gateway в облаке; firewall как gateway между Интернетом и внутренней сетью.

Modem

Modulator + Demodulator. Переводит цифровой сигнал → аналоговый (для телефонной линии, DSL, кабельного ТВ) и обратно.

Сегодня чаще встретишь интегрированный modem + router от провайдера в коробке.

Модель OSI — 7 уровней

OSI (Open Systems Interconnection) — это теоретическая модель того, как устройства должны общаться по сети. Она не используется напрямую в коде, но это «язык», на котором говорят все сетевики.

Зачем нужна: до OSI каждый производитель железа делал свои протоколы. Cisco не общался с IBM. OSI ввела общий стандарт: «каждый делает свой уровень, лишь бы стыковался с соседним». Теперь Mac общается с Linux-сервером, который общается с Cisco-роутером — все понимают друг друга.
7 уровней (сверху вниз)
#УровеньЧто делаетЕдиница данных (PDU)Примеры
7ApplicationСервис для пользователяDataHTTP, FTP, SMTP, DNS
6PresentationФормат, шифрование, сжатиеDataTLS, JPEG, ASCII↔Unicode
5SessionСессии, контроль диалогаDataNetBIOS, RPC
4TransportНадёжная доставка end-to-endSegmentTCP, UDP
3NetworkМаршрутизация между сетямиPacketIP, ICMP, ARP
2Data LinkДоставка внутри одной сетиFrameEthernet, Wi-Fi, PPP
1PhysicalБиты в провод/радиоBitsКабель, разъёмы, сигналы
Мнемоника на английском: All People Seem To Need Data Processing (Application, Presentation, Session, Transport, Network, Data link, Physical).
Пример: ты пишешь email
  1. L7 Application: Outlook формирует email через протокол SMTP.
  2. L6 Presentation: текст кодируется в UTF-8, прикреплённое фото — в JPEG, всё это шифруется через TLS.
  3. L5 Session: устанавливается сессия с почтовым сервером (логин, токен).
  4. L4 Transport: TCP режет email на сегменты, нумерует, ждёт подтверждений о доставке.
  5. L3 Network: IP добавляет к каждому сегменту твой IP + IP сервера, выбирает маршрут.
  6. L2 Data Link: Ethernet оборачивает пакет в кадр, добавляет MAC твоего ноута + MAC роутера.
  7. L1 Physical: кадр превращается в электросигнал в кабеле / радиоволну в Wi-Fi.

На сервере процесс идёт наоборот (снизу вверх): сигналы → биты → кадр → пакет → сегмент → email.

Какие уровни нужны разработчику чаще всего
  • L7 — каждый день (HTTP, JSON, REST, GraphQL).
  • L4 — часто (TCP vs UDP, порты, firewall).
  • L3 — иногда (IP, маршруты в VPN/AWS).
  • L2 — редко (MAC, VLAN — больше DevOps/сетевики).
  • L1 — почти никогда (если не работаешь с железом).
  • L5/L6 — почти забыты, их функции «размазали» по L4 и L7.
Модель TCP/IP — 4 уровня (или 5)

TCP/IP — это практическая модель, на которой реально построен Интернет. В отличие от OSI это не теория, а живой набор протоколов.

Почему две модели: OSI придумали комитетом, она оказалась слишком сложной. TCP/IP родилась из практики (ARPANET → Интернет), она проще и победила. Сегодня OSI используют для понимания, а TCP/IP — для реальной работы.
4 уровня TCP/IP
УровеньСоответствует OSIЧто делаетПротоколы
ApplicationL5+L6+L7Сервис для приложенийHTTP, FTP, SMTP, DNS, DHCP
TransportL4End-to-end доставка, портыTCP, UDP
InternetL3Маршрутизация по IPIP, ICMP, ARP
Link (Network Interface)L1+L2Локальная доставка, кадрыEthernet, Wi-Fi, PPP
5-уровневая «гибридная» версия

В учебниках часто рисуют 5 уровней — это TCP/IP, но с разделением Link на Physical и Data Link (чтобы было проще сравнивать с OSI).

┌─────────────────┬─────────────────┐ │ OSI (7 ур.) │ TCP/IP (5 ур.) │ ├─────────────────┼─────────────────┤ │ 7. Application │ │ │ 6. Presentation │ 5. Application │ │ 5. Session │ │ ├─────────────────┼─────────────────┤ │ 4. Transport │ 4. Transport │ ├─────────────────┼─────────────────┤ │ 3. Network │ 3. Internet │ ├─────────────────┼─────────────────┤ │ 2. Data Link │ 2. Data Link │ ├─────────────────┼─────────────────┤ │ 1. Physical │ 1. Physical │ └─────────────────┴─────────────────┘
Главное отличие OSI vs TCP/IP
OSITCP/IP
ТипТеоретическая модельРеальные протоколы
Уровней74 (или 5 в гибриде)
Где используетсяУчебники, теорияИнтернет, реальные системы
Кто придумалISO (международный комитет)DARPA + DoD (военные США)
Инкапсуляция и Декапсуляция

Когда твои данные идут вниз по уровням (от приложения к проводу), каждый уровень добавляет свой заголовок. Это называется инкапсуляция — как матрёшка.

Когда данные приходят на другой стороне и идут вверх — каждый уровень снимает свой заголовок. Это декапсуляция.

Аналогия: ты пишешь письмо. Запечатываешь в конверт с адресом квартиры. Конверт кладёшь в посылку с адресом города. Посылку грузят в контейнер с маршрутом. Получатель распаковывает: вынимает посылку, открывает конверт, читает письмо.
Инкапсуляция (отправитель, сверху вниз)
УровеньЧто добавляетПолучается
ApplicationПолезные данные (HTTP request, JSON)Data
Transport (TCP)+ порт источника, порт получателя, sequence numberSegment
Internet (IP)+ IP источника, IP получателя, TTLPacket
Data Link (Ethernet)+ MAC источника, MAC получателя, CRC checksumFrame
Physicalпревращает в сигналы (электричество / свет / радио)Bits
[ App data ] ↓ [ TCP hdr | App data ] ← Segment ↓ [ IP hdr | TCP hdr | App data ] ← Packet ↓ [ Eth hdr | IP hdr | TCP hdr | App data | CRC ] ← Frame ↓ 01010110010110101001010101011110... ← Bits (в провод)
Декапсуляция (получатель, снизу вверх)

Зеркальный процесс. Каждый уровень читает свой заголовок (например: «это мой IP? да!»), удаляет его и передаёт «начинку» наверх.

Важно для отладки: когда ты в браузере открываешь сайт, реально летит большой кадр с 4 вложенными заголовками. Любой из них может быть «не таким» — поэтому полезно понимать, что внутри что.
MAC-адрес

MAC (Media Access Control) — это уникальный идентификатор сетевой карты (NIC). Прошивается производителем при изготовлении.

Аналогия: MAC — это серийный номер на корпусе твоего ноутбука. Уникален во всём мире. В отличие от IP, который меняется (дома один, в кафе другой), MAC обычно прибит к железу.
Формат MAC
  • Длина: 48 бит = 6 байт.
  • Запись: 6 пар hex через двоеточие или дефис.
  • Пример: D4:6A:6D:89:1F:22
ЧастьЧтоПример
Первые 3 байта (OUI)Идентификатор производителя (выдаёт IEEE)D4:6A:6D = Lenovo
Последние 3 байтаСерийник конкретной NIC у производителя89:1F:22
По первым 3 байтам можно узнать производителя любой сетевой карты — есть онлайн-базы OUI lookup.
Где используется

MAC работает только в пределах одной локальной сети (LAN). Когда пакет пересекает router — MAC меняется на каждом hop'е.

  • В LAN-кадре указан MAC отправителя и MAC получателя в той же подсети.
  • При переходе через router: router принимает кадр (с его MAC как получатель), снимает Ethernet-заголовок, выбирает следующий hop, упаковывает в новый кадр с новым MAC получателя.
  • IP при этом не меняется на всём пути (если нет NAT).
MAC spoofing — можно ли изменить

Технически MAC «прошит», но ОС позволяет его подменить (Locally Administered Address). Используется для:

  • обхода ограничений по MAC (некоторые сети пускают только «известные» MAC);
  • анонимности;
  • тестирования.
IPv4 — основной адрес Интернета

IPv4 — это адрес, по которому твой компьютер находят в Интернете. 32 бита, 4 октета по 8 бит. Пример: 192.168.1.1.

Аналогия: IP = почтовый адрес. MAC = имя жильца. Когда тебе пишут письмо, на конверте — адрес дома (IP). А внутри дома почтальон (switch) уже разбирается, кому конкретно отдать (MAC).
Структура

32 бита = 4 байта = 4 октета. Каждый октет = число от 0 до 255 (потому что 2⁸ = 256).

192 . 168 . 1 . 100 ↓ ↓ ↓ ↓ 11000000.10101000.00000001.01100100 ← в бинарном виде

Всего адресов: 2³² ≈ 4.3 млрд. Звучит много — но не хватило!

Старая система: классы (Classful)

В 1981 IPv4 разделили на 5 классов по первым битам:

КлассДиапазонХостов в сетиГде
A0–127.x.x.x~16 млнГигантские сети (gov, гиганты)
B128–191.x.x.x~65kКрупные организации
C192–223.x.x.x254Малые сети
D224–239.x.x.x—Multicast (групповая рассылка)
E240–255.x.x.x—Экспериментальный
Проблема классов: компании надо 300 машин — дают класс B на 65000. Из них 64700 пропадает зря. Так быстро «съели» все адреса.
Особые адреса
  • 127.0.0.1 — localhost («сам себе»). Пингуй сам себя для проверки сетевого стека.
  • 0.0.0.0 — «любой адрес» (часто используется как «слушать на всех интерфейсах»).
  • 255.255.255.255 — broadcast (всем в локальной сети).
IPv4 заголовок (что внутри пакета)
ПолеРазмерЧто
Version4 бита= 0100 для IPv4
IHL (Header Length)4 битаДлина заголовка (мин 20 байт, макс 60)
ToS / DSCP8 битType of Service — приоритет (QoS)
Total Length16 битПолная длина пакета (до 65 535 байт)
Identification16 битID для сборки фрагментов
Flags3 битаМожно ли фрагментировать (DF), есть ли ещё фрагменты (MF)
Fragment Offset13 битГде в исходном пакете этот фрагмент
TTL (Time To Live)8 битСчётчик хопов. Каждый router −1. Дошёл до 0 → пакет уничтожается.
Protocol8 битЧто внутри: TCP=6, UDP=17, ICMP=1
Header Checksum16 битКонтрольная сумма заголовка
Source IP32 битIP отправителя
Destination IP32 битIP получателя
Фрагментация — что это

У каждого канала есть MTU (Maximum Transmission Unit) — максимальный размер пакета. Для Ethernet это обычно 1500 байт.

Если пакет больше MTU — IP режет его на куски (фрагменты). Получатель собирает обратно.

Хочешь отправить пакет 4520 байт. MTU = 1500. Payload 4500 + заголовок 20 = 4520 Делится на 4 фрагмента: ┌────────────┬────────────┬────────────┬────────────┐ │ Fragment 1 │ Fragment 2 │ Fragment 3 │ Fragment 4 │ │ 1480 байт │ 1480 байт │ 1480 байт │ ~60 байт │ │ offset 0 │ offset 185 │ offset 370 │ offset 555 │ │ MF=1 │ MF=1 │ MF=1 │ MF=0 │ └────────────┴────────────┴────────────┴────────────┘ ↑ (MF=0 → это последний фрагмент) Получатель собирает обратно по Identification + Offset.
На практике: фрагментация — это плохо для производительности. Если хоть один фрагмент потеряется — пересобрать не получится, придётся слать заново весь пакет. Поэтому современные системы используют Path MTU Discovery и сразу режут данные на куски размером меньше MTU.
IPv6 — адреса будущего

IPv6 придумали в 90-х, когда поняли что IPv4 кончится. У IPv6 — 128 бит (вместо 32). Это 2¹²⁸ ≈ 3.4 × 10³⁸ адресов — хватит на каждую песчинку на Земле.

Зачем нужен: IPv4 исчерпан примерно в 2011-2015 годах. NAT (см. далее) помог отсрочить кризис, но это костыль. IPv6 — настоящее решение: адресов столько, что NAT не нужен, каждое устройство может иметь свой публичный IP.
Формат IPv6
  • 128 бит = 8 групп по 16 бит (8 «хекстетов»).
  • В hex: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • Сокращения:
    • Лидирующие нули в хекстете можно убрать: 0db8 → db8
    • Подряд идущие нули можно заменить на :: (только один раз в адресе!).
Полная форма: 2001:0db8:0000:0000:0000:ff00:0042:8329 После сжатия: 2001:db8::ff00:42:8329
Типы IPv6-адресов
ТипПрефиксАналог в IPv4
Global UnicastобычныеПубличный IP
Unique Local (ULA)fc00::/7 (fc или fd)Приватные IP (10.x, 192.168.x)
Link-Localfe80::/10Работает только в LAN, обязательный у каждого IPv6-устройства
IPv6 заголовок (упрощённый по сравнению с IPv4)
ПолеРазмерЧто
Version4 бита= 0110 для IPv6
Traffic Class8 битПриоритет (аналог ToS в IPv4)
Flow Label20 битПомечает поток для real-time (VoIP, видео) — все пакеты идут одним маршрутом
Payload Length16 битРазмер данных
Next Header8 битТранспортный протокол: TCP, UDP, ICMPv6
Hop Limit8 битТо же что TTL в IPv4
Source Address128 битIP отправителя
Destination Address128 битIP получателя
Всего 8 полей против 13 в IPv4 → router'ам проще и быстрее обрабатывать. И фиксированный размер 40 байт (в IPv4 — переменный 20–60).
Главные плюсы IPv6
  • Безграничный пул адресов → не нужен NAT.
  • Автоконфигурация (SLAAC) — устройство может само выбрать IP без DHCP.
  • IPsec встроен — шифрование «из коробки».
  • Заголовок проще (8 полей vs 13 в IPv4) → router'ы работают быстрее.
  • Flow Label — улучшенный QoS для VoIP и видео.
  • Нет broadcast — заменён на multicast и anycast (эффективнее).
IPv4 vs IPv6
ПризнакIPv4IPv6
Длина32 бита128 бит
Запись192.168.1.12001:db8::1
Пул~4.3 млрд (исчерпан)~3.4 × 10³⁸ (бесконечно)
NATНужен (костыль)Не нужен
КонфигурацияDHCP или вручнуюАвтоконфиг (SLAAC) + DHCPv6
БезопасностьIPsec опциональноIPsec обязателен
BroadcastЕстьЗаменён на multicast/anycast
Заголовок20–60 байт, 13 полей40 байт, 8 полей
На практике сегодня: большинство сетей работают в dual-stack — поддерживают и IPv4 и IPv6 одновременно. Google в 2024 говорит, что >40% трафика к нему уже идёт по IPv6.
ARP — мост между IP и MAC

ARP (Address Resolution Protocol) отвечает на вопрос: «я знаю IP получателя, а какой у него MAC?»

Зачем нужен: чтобы отправить кадр Ethernet, нужен MAC получателя. Приложение знает только IP (например, 192.168.1.5). ARP это «справочное бюро» внутри LAN.
Как работает
  1. ARP Request (broadcast — слышат все в LAN): «Кто такой 192.168.1.5? Ответь.»
  2. Все хосты получают запрос. У кого нет такого IP — игнорируют.
  3. Хост с 192.168.1.5 отвечает: «Это я, мой MAC — D4:6A:6D:89:1F:22.»
  4. Отправитель сохраняет пару (IP → MAC) в ARP-таблице на несколько минут.
  5. Все последующие отправки идут сразу, без повторного запроса.
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │ PC-A │── "Who has 192.168.1.5?" → │ PC-X │ │ PC-Y │ │ PC-Z │ └───────┘ (broadcast, всем сразу) └───────┘ └───────┘ └───────┘ ↓ ┌───────┐ "Это я, │ PC-A │← "192.168.1.5 → MAC AA:BB:CC:DD:EE:FF" ←───────── MAC..." └───────┘
Формат ARP-сообщения (28 байт)
ПолеРазмерЧто
Hardware Type2 байтаТип физической сети. Для Ethernet = 1
Protocol Type2 байтаКакой протокол сетевого уровня. Для IPv4 = 0x0800 (2048)
Hardware Size1 байтДлина MAC в байтах = 6
Protocol Size1 байтДлина IP в байтах = 4 для IPv4
Operation2 байта1 = Request («кто такой?»), 2 = Reply («это я»)
Sender MAC6 байтMAC отправителя
Sender IP4 байтаIP отправителя
Target MAC6 байтMAC получателя (в Request пустой — мы его и спрашиваем)
Target IP4 байтаIP получателя
Особые виды ARP
ВидЧто делаетЗачем
Gratuitous ARP«Бесплатный» ARP — устройство само объявляет свою пару IP/MAC, никто не спрашивалОбнаружить конфликт IP (если кто-то уже использует) или обновить ARP-таблицы у других
RARP (Reverse ARP)Наоборот: «Я знаю свой MAC, какой у меня IP?»Устарел, заменён DHCP
ARP таблицы

Каждое устройство хранит свою ARP-таблицу (IP → MAC):

  • Static — добавляется вручную администратором (защита от spoofing).
  • Dynamic — выучивается автоматически, истекает через таймаут (обычно несколько минут).
ARP spoofing — самая популярная атака в LAN

ARP не проверяет, кто отвечает. Поэтому злоумышленник в твоей сети может ответить раньше: «192.168.1.5 — это я!» — и весь твой трафик пойдёт через него. Это MITM-атака (Man-In-The-Middle).

Защита: Dynamic ARP Inspection на switch'ах, статические ARP-таблицы, VPN.

В IPv6 ARP заменён на NDP (Neighbor Discovery Protocol). Делает то же самое, но безопаснее.

Как посмотреть свою ARP-таблицу:

arp -a              # Mac/Windows/Linux
ip neigh show       # Linux (новая команда)
TCP — надёжная доставка

TCP (Transmission Control Protocol) — это «заказное письмо с уведомлением». Гарантирует, что все байты дошли в правильном порядке, без потерь и дубликатов.

Аналогия: TCP = телефонный звонок. Сначала «алло, ты меня слышишь?» (handshake). Потом разговор — каждую фразу подтверждаешь («угу», «понял»). Если связь оборвётся — заметишь сразу.
3-way handshake

Прежде чем что-то передать, TCP устанавливает соединение:

Client Server │ │ │── SYN (seq=100) ────────────────→│ "Привет, давай поговорим, мой seq=100" │ │ │←─── SYN-ACK (seq=500, ack=101) ──│ "Ок, мой seq=500, я слышал твой 100, жду 101" │ │ │── ACK (ack=501) ────────────────→│ "Ок, жду твой 501" │ │ Connection established │ │ │── DATA (seq=101) ───────────────→│ │←──────────────── ACK (ack=...) ──│
Поэтому когда говорят «TCP — соединение установлено» — это не просто метафора. Реально 3 пакета пролетели прежде чем данные начали идти.
Механизмы надёжности
МеханизмЧто делает
Sequence numbersКаждому байту — свой номер. Получатель собирает в правильном порядке.
ACKПолучатель подтверждает «я получил байты до N включительно».
RetransmissionЕсли ACK не пришёл за timeout — отправитель шлёт пакет заново.
Sliding windowМожно отправить несколько пакетов, не дожидаясь ACK после каждого. Получатель говорит «у меня буфер на 64 КБ» — отправитель не льёт больше.
Flow controlНе дать перегрузить медленного получателя.
Congestion controlЕсли сеть забита — снизить скорость отправки (алгоритмы Reno, Cubic, BBR).
TCP flags (важные)
  • SYN — синхронизация (начало соединения)
  • ACK — подтверждение
  • FIN — корректное закрытие соединения
  • RST — резкий разрыв (что-то пошло не так)
  • PSH — «не буферизуй, отдай приложению немедленно»
Типы подтверждений (ACK)
ТипКак работает
Cumulative ACK (по умолчанию)«Я получил всё до байта N». Если потерян один пакет — нужно перепосылать всё начиная с него.
Selective ACK (SACK)«Я получил с 0 до 1000, а потом с 1500 до 2000. Перешли только 1000–1500». Эффективнее на потерях.
TCP-заголовок (полная структура)
ПолеРазмерЧто
Source Port16 битПорт приложения-отправителя
Destination Port16 битПорт приложения-получателя
Sequence Number32 битНомер первого байта в этом сегменте
Acknowledgment Number32 битСледующий ожидаемый байт от собеседника
Header Length4 битДлина заголовка (бывает разной из-за опций)
Flags9 битURG, ACK, PSH, RST, SYN, FIN, ECE, CWR, NS
Window Size16 битСколько ещё байт готов принять (flow control)
Checksum16 битКонтрольная сумма для проверки ошибок
Urgent Pointer16 битУказатель на «срочные» данные (если URG=1)
Options0–40 байтSACK, window scaling, timestamps, MSS и т.д.
Плюсы и минусы TCP
ПлюсыМинусы
Гарантия доставкиТяжёлый — нужен handshake
Гарантия порядкаБольше overhead (заголовок 20-60 байт)
Обнаружение и исправление ошибокМедленнее для real-time
Flow / congestion controlHead-of-line blocking (потерянный пакет тормозит всё)
Где используется TCP: HTTP/HTTPS (веб), SMTP/IMAP/POP3 (email), FTP/SFTP (файлы), SSH (терминал) — везде, где важно, чтобы дошли все байты в порядке.
UDP — быстро, без гарантий

UDP (User Datagram Protocol) — «открытка». Отправил и забыл. Никаких подтверждений, никакой гарантии доставки.

Аналогия: UDP = SMS / открытка. Бросил в ящик, не знаешь — дошло или нет. Зато быстро и без церемоний.
Что есть и чего нет
ЕстьНет
Порт отправителя, порт получателяHandshake
Длина пакетаПодтверждения
Контрольная сумма (опционально в IPv4, обязательно в IPv6)Гарантия доставки
Заголовок 8 байт (vs 20+ в TCP)Гарантия порядка
Flow / congestion control
Когда выбирать UDP

Когда скорость важнее надёжности:

  • Видео-стриминг (YouTube, Netflix) — лучше пропустить кадр, чем поставить на паузу.
  • VoIP / видеозвонки (Zoom, WhatsApp) — то же самое: лучше потерять долю секунды звука, чем тормозить.
  • Онлайн-игры — игроку важнее текущая позиция врага, чем «история всех ранее пропущенных позиций».
  • DNS — запрос/ответ маленький, быстрый, нет смысла на handshake.
  • DHCP — выдача IP, тоже короткое сообщение.
QUIC и HTTP/3 — современный протокол поверх UDP. Берёт скорость UDP + сам реализует надёжность как у TCP. Уже используется в Chrome, YouTube, Cloudflare. Будущее веба — это UDP-based транспорт.
ICMP — диагностика сети

ICMP (Internet Control Message Protocol) — не передаёт «полезные» данные. Это «служебный канал» для сообщений об ошибках и диагностики.

Аналогия: ICMP — это почтальон, который возвращается с конвертом и говорит «такого адреса нет» или «доставлено». Без него ты бы не знал, что пакет не дошёл.
Самые важные типы сообщений
TypeЧто значитГде встречается
0 — Echo Reply«Я живой» (ответ на ping)ping
8 — Echo Request«Ты живой?» (сам ping)ping
3 — Destination Unreachable«Не могу доставить» (host down, port closed, etc.)отлов проблем
5 — Redirect«Есть лучший маршрут, обнови routing table»динамическая маршрутизация
11 — Time Exceeded«TTL дошёл до 0» — пакет уничтоженtraceroute
Полезные команды
# Проверить, доступен ли хост
ping google.com
ping 8.8.8.8

# Показать путь до сервера (через какие routers идёт)
traceroute google.com         # Linux/Mac
tracert google.com            # Windows

# Расширенная диагностика (ping + traceroute + loss %)
mtr google.com                # Linux/Mac
Как работает traceroute: отправляет пакеты с TTL=1, 2, 3... Каждый router на пути отвечает «Time Exceeded» при TTL=0. Так traceroute узнаёт каждого участника пути.
Безопасность: ICMP часто блокируют на firewall'ах (защита от Ping flood DDoS). Если ping до сервера не работает, это не значит, что сервер мёртв — может просто ICMP закрыт.
Порты — двери в твоё устройство

Порт — это число от 0 до 65535, которое говорит «к какому приложению на устройстве относится этот трафик».

Аналогия: IP = адрес дома. Порт = номер двери / квартиры. На одном IP может быть много «дверей» — каждая ведёт в своё приложение.
3 диапазона портов
ДиапазонТипКто использует
0 – 1023Well-knownСтандартные сервисы (HTTP, SSH, DNS). Требуют root-прав.
1024 – 49151RegisteredIANA закрепила за конкретными сервисами (MySQL 3306, PostgreSQL 5432)
49152 – 65535Dynamic / EphemeralВременные. ОС выдаёт клиенту при исходящем соединении.
Порты, которые ты должен знать наизусть
ПортПротоколСервис
20, 21TCPFTP (передача файлов)
22TCPSSH / SFTP
25TCPSMTP (отправка email)
53UDP/TCPDNS
67, 68UDPDHCP
80TCPHTTP
110TCPPOP3 (приём email)
143TCPIMAP (приём email)
443TCPHTTPS
3306TCPMySQL
5432TCPPostgreSQL
6379TCPRedis
3389TCPRDP (удалённый рабочий стол Windows)
Что происходит когда ты открываешь сайт
Твой Chrome: 192.168.1.5:52144 ←─ случайный ephemeral port │ ▼ Сайт example.com: 93.184.216.34:443 ←─ стандартный HTTPS TCP-соединение: (192.168.1.5, 52144) ↔ (93.184.216.34, 443)

Это 4 числа однозначно идентифицируют соединение. Поэтому на одном IP сервер может держать сотни тысяч одновременных соединений — у каждого свой набор (client_ip, client_port, server_ip, server_port).

Полезные команды
# Какие порты слушает машина
sudo lsof -i -P -n | grep LISTEN     # Mac/Linux
sudo ss -tulpn                        # Linux
netstat -an | grep LISTEN             # Windows

# Кто занял порт 8000
lsof -i :8000

# Проверить, открыт ли порт на удалённом сервере
nc -zv example.com 443
telnet example.com 443
Зачем подсети

Subnetting — это разделение одной большой IP-сети на несколько маленьких.

Зачем:
  • Экономия адресов — выдать ровно столько, сколько нужно (а не целый класс).
  • Скорость — broadcast в большой сети грузит все устройства. В маленькой подсети broadcast не «гуляет» дальше.
  • Безопасность — разные отделы (бухгалтерия, разработка) в разных подсетях, между ними firewall.
  • Управление — проще отлавливать проблемы.
Атрибуты любой подсети

У каждой подсети 4 ключевых параметра:

АтрибутЧто этоПример (для 192.168.1.0/24)
Network addressИдентификатор подсети (все биты хоста = 0)192.168.1.0
Broadcast addressАдрес «всем в подсети» (все биты хоста = 1)192.168.1.255
First hostПервый юзабельный адрес192.168.1.1
Last hostПоследний юзабельный адрес192.168.1.254
Mask / PrefixГде кончается «сеть» и начинается «хост»255.255.255.0 = /24
Минус 2 в подсчёте хостов: network address и broadcast «съедают» 2 адреса из доступных. Поэтому формула: 2^(32 − prefix) − 2.
Маска подсети и CIDR

Subnet mask — это последовательность 32 бит, где единицы означают «это сетевая часть», а нули — «это часть хоста».

Как читать маску
IP: 192.168.1.100 Маска: 255.255.255.0 → /24 В бинарном виде: IP: 11000000.10101000.00000001.01100100 Маска: 11111111.11111111.11111111.00000000 ←─ 24 единицы ─→ ←─ 8 нулей ─→ (сетевая часть) (часть хоста) Network: 11000000.10101000.00000001.00000000 = 192.168.1.0 Broadcast: 11000000.10101000.00000001.11111111 = 192.168.1.255
Простое правило: чем больше единиц в маске → тем меньше адресов в подсети.
CIDR notation — короткая запись

Вместо «маска 255.255.255.0» пишут «/24» — это просто количество единиц в маске.

CIDRМаскаХостовПрименение
/8255.0.0.0~16 777 214Гигантские сети
/16255.255.0.065 534Средние корпорации
/24255.255.255.0254Малые офисы, дома
/27255.255.255.22430Маленький отдел
/29255.255.255.2486Несколько серверов
/30255.255.255.2522Линк между двумя router'ами
/32255.255.255.2551Один конкретный host
Формулы для расчёта
# Сколько хостов в подсети
hosts = 2^(32 − prefix) − 2

# Например, для /24:
2^(32-24) − 2 = 256 − 2 = 254 хоста

# Размер блока (block size) в последнем октете
block_size = 256 − (последний октет маски)

# Например, для маски 255.255.255.192 (/26):
block_size = 256 − 192 = 64
# → подсети начинаются с .0, .64, .128, .192
Бинарная арифметика для подсетей

Чтобы конвертировать число в бинарный вид: делим на 2, записываем остатки, читаем снизу вверх.

Пример: 156 в бинарный 156 ÷ 2 = 78 остаток 0 ←─┐ 78 ÷ 2 = 39 остаток 0 │ 39 ÷ 2 = 19 остаток 1 │ 19 ÷ 2 = 9 остаток 1 │ читаем 9 ÷ 2 = 4 остаток 1 │ снизу 4 ÷ 2 = 2 остаток 0 │ вверх 2 ÷ 2 = 1 остаток 0 │ 1 ÷ 2 = 0 остаток 1 ──┘ 156 = 10011100

Обратно: бинарное число → сумма степеней 2 для каждой 1.

10011100 ↓ 1·128 + 0·64 + 0·32 + 1·16 + 1·8 + 1·4 + 0·2 + 0·1 = 128 + 16 + 8 + 4 = 156
Запомни магические числа октета: 128, 64, 32, 16, 8, 4, 2, 1. Любое число от 0 до 255 — это сумма каких-то из них.
Пример 1 — простая /24

Дано: IP 192.168.156.3/24.

ПараметрРасчётРезультат
Маска/24 = 24 единицы255.255.255.0
Network addressобнуляем 4-й октет192.168.156.0
Broadcastвсе 1 в 4-м октете192.168.156.255
First hostnetwork + 1192.168.156.1
Last hostbroadcast − 1192.168.156.254
Хостов2^8 − 2254

Интуиция: 24 единицы маски «закрепили» первые 3 октета — это «адрес сети». Последний октет свободен → 256 вариантов, минус 2 (network + broadcast) = 254 хоста.

Пример 2 — сложнее, /21

Дано: IP 192.168.156.3/21. Что мы можем сказать?

ПараметрРасчётРезультат
Маска/21 = 21 единица255.255.248.0
Block size в 3-м октете256 − 2488
Сети начинаются.0, .8, .16, ..., .152, .160, ...наш .156 попадает в блок .152–.159
Network address192.168.152.0192.168.152.0
Broadcast192.168.159.255192.168.159.255
First host192.168.152.1192.168.152.1
Last host192.168.159.254192.168.159.254
Хостов2^11 − 22046
Приватные сети и NAT

Приватные IP-адреса — это специальные диапазоны, которые «не выходят в Интернет». Их используют внутри LAN. Один и тот же приватный IP может быть у миллионов разных компаний — конфликта нет, потому что они «не видят» друг друга.

Зачем: публичных IPv4 адресов не хватает. Не каждое устройство нужно делать видимым в Интернет (твой принтер, смарт-ТВ, камера видеонаблюдения). Решение: приватные адреса внутри + один публичный на выходе.
3 приватных блока (RFC 1918, 1996)
БлокДиапазонАдресовГде используют
10.0.0.0/810.0.0.0 – 10.255.255.25516 777 216Гигантские корпорации, AWS VPC
172.16.0.0/12172.16.0.0 – 172.31.255.2551 048 576Средние организации, Docker
192.168.0.0/16192.168.0.0 – 192.168.255.25565 536Домашние Wi-Fi, малые офисы
Твой домашний Wi-Fi почти 100% использует 192.168.0.x или 192.168.1.x. Если зайти в админку роутера — увидишь это там.
NAT — Network Address Translation

NAT — это переводчик между приватной сетью и Интернетом. Живёт обычно на роутере.

┌────────────── ВНУТРИ ДОМА ─────────────────────┐ │ │ │ Laptop 192.168.1.5 ───┐ │ │ │ │ │ Phone 192.168.1.6 ───┤ │ │ ├──→ [Router/NAT] ──→ Internet │ TV 192.168.1.7 ───┤ ↓ │ │ │ 77.243.80.138 │ │ Все имеют разные │ (один публич- │ │ приватные IP │ ный IP на всех) │ └───────────────────────────────────────────────┘ Как видит сайт Google: "Все запросы идут с 77.243.80.138"
Как NAT отличает «чьи» ответы

NAT хранит таблицу трансляций: какой внутренний клиент с каким портом куда обратился.

ВнутриСнаружиНазначение
192.168.1.5:5432177.243.80.138:11001google.com:443
192.168.1.6:3344577.243.80.138:11002youtube.com:443

Когда ответ приходит на 77.243.80.138:11001 — NAT смотрит таблицу, переводит обратно в 192.168.1.5:54321 и отправляет на ноутбук.

Минусы NAT
  • Ломает end-to-end — извне нельзя инициировать соединение к устройству за NAT (только наоборот).
  • Проблемы для P2P / VoIP — нужны костыли типа STUN/TURN.
  • Усложняет debugging.

В IPv6 NAT не нужен — адресов хватает всем.

FLSM vs VLSM

Когда делишь сеть на подсети, есть две стратегии:

FLSM — Fixed Length Subnet Mask

Все подсети — одного размера. Берём самую большую нужную и применяем ко всем.

Пример: нужно 6 подсетей в 192.168.156.0/24. Делим на /27 (по 32 адреса = 30 хостов в каждой):

192.168.156.0/27 ─ хостов: .1–.30, broadcast .31 192.168.156.32/27 ─ хостов: .33–.62, broadcast .63 192.168.156.64/27 ─ хостов: .65–.94, broadcast .95 192.168.156.96/27 ─ хостов: .97–.126, broadcast .127 192.168.156.128/27 ─ хостов: .129–.158, broadcast .159 192.168.156.160/27 ─ хостов: .161–.190, broadcast .191

Плюс: просто.

Минус: если одной подсети нужно 28 хостов, а другой 5 — обеим даём по 30, и в маленькой 25 адресов пропадает.

VLSM — Variable Length Subnet Mask

Каждой подсети — своя маска. По потребности.

Пример: в той же сети /24 нужны:

  • 1 подсеть на 28 хостов → /27 (32 адреса)
  • 3 подсети по 16 хостов → /28 (16 адресов каждая)
  • 2 подсети по 8 хостов → /29 (8 адресов каждая)
  • Линки между роутерами по 2 адреса → /30

Плюс: ничего не пропадает, использование адресов в 4-5 раз эффективнее.

Минус: сложнее планировать (но опытные сетевики делают на автомате).

Сегодня все нормальные протоколы маршрутизации (OSPF, EIGRP, BGP) поддерживают VLSM. FLSM остался только в очень старых системах и учебниках.
VLAN — виртуальные локальные сети

VLAN (Virtual LAN) — это способ логически разделить один физический switch на несколько независимых сетей.

Зачем: представь офис с одним switch. К нему подключены бухгалтерия, разработка, гостевой Wi-Fi. По дефолту все слышат друг друга (один broadcast domain). VLAN разделяет: бухгалтерия в VLAN 10, разработка в VLAN 20, гости в VLAN 30. Между собой не общаются. Без покупки трёх отдельных switch'ей.
Как это работает — IEEE 802.1Q tagging

К каждому Ethernet-кадру switch добавляет тег с номером VLAN. Это 32-битное поле между Source MAC и EtherType.

Обычный кадр: [Dst MAC][Src MAC][EtherType][Data][CRC] 802.1Q-кадр (с VLAN-тегом): [Dst MAC][Src MAC][0x8100][TCI:VLAN10][EtherType][Data][CRC] │ │ TPID 12 бит = VLAN ID (от 1 до 4094) (маркер, что есть тег)

Тег содержит:

  • TPID (16 бит) — всегда 0x8100, говорит «это VLAN-tagged кадр».
  • PCP (3 бита) — приоритет (QoS).
  • DEI (1 бит) — можно ли дропнуть при перегрузке.
  • VLAN ID (12 бит) — номер VLAN. Доступно 4094 (0 и 4095 зарезервированы).
Access vs Trunk порты
AccessTrunk
Куда подключаютКонечные устройства (ПК, принтеры)Между switch'ами или switch ↔ router
Кадры на проводеБез тега (untagged)С тегом (tagged)
Что делает switchДобавляет тег на входе, убирает на выходеПропускает кадры с тегами как есть
Сколько VLAN1 (один порт = одна VLAN)Много VLAN через один порт
┌──────┐ ┌──────────┐ ┌──────────┐ ┌──────┐ │ PC-A │────────│ Switch-1 │═══════════════│ Switch-2 │─────────│ PC-B │ └──────┘ access └──────────┘ trunk └──────────┘ access └──────┘ VLAN 10 (добавляет (тегированные (убирает VLAN 10 untagged VLAN 10 тег) кадры идут тег) untagged с метками)
3 сценария общения

Сценарий 1: PC-A и PC-B в одной VLAN на одном switch — общаются напрямую (внутри switch без тегов).

Сценарий 2: PC-A и PC-B в одной VLAN на разных switch'ах — switch-1 тегирует, кадр идёт через trunk, switch-2 снимает тег, отдаёт PC-B.

Сценарий 3 (важный!): PC-A в VLAN 10, PC-B в VLAN 20 — не общаются напрямую. Switch отбросит кадр. Чтобы связать VLAN — нужен router (или L3 switch).

VLAN 10 ─┐ ├──→ Router / L3 Switch ←── VLAN 20 VLAN 10 ─┘ ↑ (снимает один тег, маршрутизирует по IP, ставит другой тег)
Static vs Dynamic VLAN
Static VLANDynamic VLAN
Назначение портаВручную админомАвтоматически на основе MAC / типа устройства
Переехал на другой портАдмин должен переназначитьSwitch сам определит и назначит правильную VLAN
Где применяютМалые/средние офисыБольшие корпорации, где люди постоянно перемещаются
Как работает Dynamic VLAN через VMPS

VMPS (VLAN Management Policy Server) — центральный сервер с политиками: «такой MAC → VLAN 10», «такой тип устройства → VLAN 20».

  1. Пользователь подключает устройство к свободному порту.
  2. Switch отправляет запрос на VMPS: «вот MAC D4:6A:6D:89:1F:22, какая ему VLAN?»
  3. VMPS смотрит политику и отвечает: «VLAN 10».
  4. Switch автоматически назначает этот порт в VLAN 10 и начинает тегировать кадры.

Плюс: сотрудник может сесть за любой стол — попадёт в свою VLAN автоматически.

Минус: требует дополнительной инфраструктуры (VMPS-сервер).

Зачем использовать VLAN
  • Уменьшение broadcast-доменов — меньше «шума» в сети.
  • Безопасность — бухгалтерия и разработка изолированы.
  • Гибкость — переехал сотрудник на другой этаж, всё ещё в той же VLAN.
  • Дешевле — не надо покупать отдельные switch'и для каждого отдела.
DHCP — Dynamic Host Configuration Protocol
Назначение

DHCP — сетевой сервис, который позволяет устройствам в сети динамически получать IP-адрес, маску подсети, шлюз по умолчанию, адреса DNS-серверов и десятки других сетевых параметров без ручной настройки на каждом устройстве. Работает по клиент-серверной модели: на сервере настраивается пул доступных адресов, клиент при подключении запрашивает один из них «в аренду» на определённое время.

Где применяется: end-user устройства (ноутбуки, смартфоны, IoT) — всегда через DHCP. Где НЕ применяется: сетевая инфраструктура (роутеры, свитчи, серверы, принтеры) — обычно со статическими адресами, чтобы их IP не менялся при перезагрузке.

Три метода назначения адресов
МетодКак работаетГде применяется
Manual AllocationАдминистратор заранее задаёт соответствие MAC → IP в таблице сервера. DHCP только передаёт назначенный адрес устройству.Когда нужен фиксированный IP по железу (принтер с фиксированным адресом)
Automatic AllocationDHCP-сервер назначает IP из пула постоянно (без срока аренды). Адрес остаётся за устройством навсегда.Редко — жёсткое присваивание без удобства lease
Dynamic AllocationDHCP арендует IP из пула на ограниченное время (lease). По окончании lease адрес возвращается в пул, если клиент не продлил.Самый частый случай — стандарт для домашних и корпоративных сетей
Процесс получения адреса — DORA

Аббревиатура для четырёх шагов lease origination process: Discover → Offer → Request → Acknowledge. Использует UDP, порт 67 на сервере, 68 на клиенте.

Шаг 1: DHCPDISCOVER  (broadcast от клиента)
  Клиент: «Мне нужен IP! Есть кто из DHCP-серверов?»
  Ethernet:  src=MAC_клиент, dst=FF:FF:FF:FF:FF:FF (broadcast)
  IP:        src=0.0.0.0,    dst=255.255.255.255  (broadcast)
  UDP:       src=68,          dst=67
  DHCP:      CIADDR=0.0.0.0, CHADDR=MAC_клиент

Шаг 2: DHCPOFFER  (unicast от сервера)
  Сервер: «Я DHCP-сервер. Предлагаю тебе адрес 192.168.1.10/24»
  IP:        src=192.168.1.254 (сервер), dst=192.168.1.10 (предлагаемый)
  UDP:       src=67, dst=68
  DHCP:      YIADDR=192.168.1.10, mask=255.255.255.0

Шаг 3: DHCPREQUEST  (broadcast от клиента)
  Клиент: «Беру адрес 192.168.1.10 от сервера X»
  → Снова broadcast! Это чтобы ДРУГИЕ DHCP-серверы узнали,
    что их предложение не выбрано — и вернули свои адреса в пул.

Шаг 4: DHCPACK  (unicast от сервера)
  Сервер: «Подтверждаю, адрес твой на 24 часа (lease time)»
Lease Renewal и дополнительные сообщения

После получения адреса клиент использует его до конца lease. Когда проходит половина lease time, клиент шлёт DHCPREQUEST напрямую (unicast) серверу, чтобы продлить аренду. Сервер отвечает DHCPACK — lease обновляется.

СообщениеКто шлётЗачем
DHCPDISCOVERКлиент (broadcast)«Ищу DHCP-сервер»
DHCPOFFERСервер«Предлагаю IP»
DHCPREQUESTКлиент«Беру этот IP» (или продлеваю аренду)
DHCPACKСервер«Подтверждаю, владей»
DHCPNAKСервер«Не могу выдать (адрес занят/неподходящий)»
DHCPRELEASEКлиент«Возвращаю адрес досрочно» (при shutdown)
DHCPINFORMКлиент«Уже имею IP, но прошу другие настройки (DNS и т.п.)»
DHCPDECLINEКлиент«Полученный IP уже занят в сети (по ARP-проверке)»
Configuration elements: pool и options

Address pool — диапазон IP, которые сервер может выдавать. Задаётся одним из трёх способов:

  • Range start → end: 192.168.0.100 — 192.168.0.149;
  • Start + max users: start=192.168.0.100, max=50;
  • Network/mask + excluded: 192.168.0.0/24 минус список исключений (для шлюза, серверов).

DHCP Options — дополнительные параметры, передаваемые клиенту вместе с IP. Полный список — ecanet.ir/dhcp-option-list. Самые частые:

OptionЧто передаёт
1Subnet Mask (маска подсети)
3Default Gateway (шлюз)
6DNS Servers (адреса DNS, обычно 1-3 штуки)
15Domain Name (домен по умолчанию для коротких имён)
51IP Address Lease Time (срок аренды в секундах)
66TFTP Server (для PXE-загрузки)
DHCPv4 Message Format — структура пакета
+-------------+-------------+----------------+-------------+
| OP Code (1) | HW Type (1) | HW Addr Len(1) | Hops (1)    |
+-------------+-------------+----------------+-------------+
|              Transaction Identifier (XID, 4 bytes)        |
+-------------------------------+---------------------------+
|         Seconds (2 bytes)     |       Flags (2 bytes)     |
+-------------------------------+---------------------------+
|         Client IP Address (CIADDR, 4 bytes)               |
|         Your IP Address   (YIADDR, 4 bytes) ← назначаемый |
|         Server IP Address (SIADDR, 4 bytes)               |
|         Gateway IP        (GIADDR, 4 bytes) ← для relay   |
|         Client HW Address (CHADDR, 16 bytes) ← MAC        |
|         Server Name       (SNAME, 64 bytes)               |
|         Boot Filename     (BOOT, 128 bytes)               |
+-----------------------------------------------------------+
|         DHCP Options (variable) — здесь options 1, 3, 6...|
+-----------------------------------------------------------+
ПолеНазначение
OP Code1 = запрос (BOOTREQUEST), 2 = ответ (BOOTREPLY)
HW TypeТип сетевого железа: 1 = Ethernet, 15 = frame relay, 20 = serial
HW Addr LengthДлина MAC: для Ethernet = 6 байт
HopsСчётчик пересылок через DHCP-relay (для multi-subnet)
Transaction ID (XID)Случайный ID, чтобы клиент мог сматчить ответ со своим запросом
FlagsОдин бит — broadcast flag (клиент просит ответ broadcast'ом)
CIADDRТекущий IP клиента (заполнен только при renewal, иначе 0.0.0.0)
YIADDR«Your» IP — адрес, который сервер предлагает/подтверждает клиенту
SIADDRIP следующего сервера в bootstrap-цепочке (для PXE)
GIADDRIP DHCP-relay-агента — для маршрутизации между подсетями
CHADDRMAC клиента — ключ для матчинга и manual-allocation
DHCP Spoofing Attack — Rogue DHCP Server

Суть атаки: злоумышленник подключается к локальной сети и запускает свой DHCP-сервер. Когда жертва шлёт DHCPDISCOVER (broadcast), оба сервера (легитимный и rogue) отправляют DHCPOFFER. Клиент выбирает первый пришедший ответ — если rogue быстрее, побеждает он.

Что атакующий может подменить:

  • Wrong Default Gateway — указать свой компьютер как шлюз → весь трафик пойдёт через атакующего (Man-in-the-Middle), он читает/модифицирует данные;
  • Wrong DNS Server — направить DNS-запросы на фальшивый сервер → пользователь видит подменные сайты (phishing);
  • Wrong IP / mask — выдать невалидные параметры → DoS, клиент не может работать в сети.

Защита: на свитчах включается DHCP Snooping — функция, которая разрешает DHCPOFFER только с заранее доверенных портов (где подключён настоящий DHCP-сервер). Любой ответ с недоверенного порта дропается.

DHCP Starvation Attack — Pool Exhaustion

Суть атаки: злоумышленник заваливает легитимный DHCP-сервер тысячами фейковых DHCPDISCOVER, каждый раз с новым (поддельным) MAC-адресом. Сервер выдаёт каждому запросу адрес из пула, пока пул не исчерпан — легитимные клиенты не могут получить IP.

Часто это первая фаза двойной атаки: сначала starvation истощает легитимный сервер, потом запускается rogue server (см. выше) — и все новые клиенты получают конфиг от атакующего.

Защита: на свитчах включается Port Security — ограничение количества MAC-адресов на порт. Атакующий не сможет генерировать неограниченное число фейковых MAC с одного физического порта.

DHCPv6 — три метода для IPv6

В IPv6 нет broadcast'ов (заменены multicast'ом), поэтому DHCP работает по-другому. Существует три метода динамической конфигурации IPv6-адресов:

1. DHCPv6 Only (Stateful DHCPv6)

Аналогично DHCPv4: сервер выдаёт IP + параметры, поддерживает state (помнит какому клиенту что выдано). Клиент шлёт запрос на multicast-адрес FF02::1:2 (все DHCPv6-серверы) вместо broadcast.

2. SLAAC (Stateless Address Autoconfiguration)

Без DHCP-сервера вообще! Клиент сам конструирует свой IPv6-адрес. Источник prefix-информации — любой роутер в той же сети.

Шаг 1: Router Solicitation (RS) — multicast ff02::2 (all routers)
        Клиент: «Нужна информация об адресе!»

Шаг 2: Router Advertisement (RA) — multicast ff02::1 (all nodes)
        Роутер: «Вот префикс сети и его длина: 2001:db8::/64»

Шаг 3: Клиент строит полный адрес сам:
        - префикс (64 бита) от роутера +
        - host-ID (64 бита) — генерирует сам

Два способа сгенерировать host-ID (IID):

  • EUI-64: из 48-битного MAC расширяют до 64 бит, вставляя FF:FE в середину и инвертируя 7-й бит. Гарантирует уникальность по физике, но раскрывает MAC.
  • Randomly generated: случайное 64-битное число от ОС. Privacy extensions (RFC 4941) — стандарт в современных Windows/macOS/Linux.

3. SLAAC + DHCPv6 (Stateless DHCPv6)

Гибрид: IP-адрес клиент получает через SLAAC, а остальные параметры (DNS, NTP, домен) — через DHCPv6. Часто применяется когда роутер сам не умеет отдавать DNS через RA.

Практика: настройка DHCP сервера на Linux (isc-dhcp-server)
# /etc/dhcp/dhcpd.conf

default-lease-time 600;        # 10 минут по умолчанию
max-lease-time     7200;       # до 2 часов максимум
authoritative;                # отвечать NAK на чужие renewal

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;     # pool (100 адресов)
    option routers 192.168.1.1;              # option 3: default gateway
    option subnet-mask 255.255.255.0;          # option 1
    option domain-name-servers 8.8.8.8, 1.1.1.1;  # option 6
    option domain-name "corp.example.com";     # option 15
}

# Manual allocation — фиксированный IP для конкретного MAC:
host office-printer {
    hardware ethernet 00:1A:2B:3C:4D:5E;
    fixed-address 192.168.1.50;
}
Особые случаи
1. Два DHCP-сервера в одной подсети. Возможен либо специально (для high availability — failover-режим), либо случайно (домашний роутер + admin случайно поднял ещё один). Без координации клиенты получают случайные адреса от обоих, возникают конфликты IP.
2. Lease time слишком короткий. Lease=60 секунд — каждую минуту renewal, нагрузка на сервер. Стандарт: 8-24 часа для офисов, 1-7 дней для домашних сетей.
3. Lease time слишком длинный. Lease=7 дней в гостевой WiFi — пул исчерпывается быстро (мобильные устройства подключаются и уходят, адреса висят). Для guest-сетей: 1-2 часа.
4. DHCP не работает через роутер (между подсетями). DHCPDISCOVER — broadcast, роутеры его не пропускают. Решение: DHCP Relay Agent (RFC 1542) — IP-helper-address на роутере: ловит broadcast и unicast'ом пересылает в другую подсеть, где живёт сервер.
5. Конфликт IP (DHCPDECLINE). Клиент получил адрес, но при ARP-проверке обнаружил, что IP уже в сети (другой статически-настроенный хост). Шлёт DHCPDECLINE, сервер метит адрес как «bad» и выдаёт другой. Лечится правильной настройкой excluded-list в DHCP-конфиге.
6. Утечка приватных IP через rogue DHCP в публичной сети. В кафе/аэропорту атакующий может поднять rogue DHCP. Защита на клиенте — VPN с момента подключения.
7. DHCP option overload. SNAME и Boot Filename поля могут переиспользоваться для дополнительных options, если основное option-поле переполнено. Редкость, но возможна — некоторые old-school PXE-серверы так делают.
8. EUI-64 раскрывает MAC. SLAAC с EUI-64 включает MAC адрес сетевой карты прямо в IPv6-адрес — позволяет трекать устройство через смену сетей. Все современные ОС используют privacy extensions (random IID), но в IoT-устройствах часто EUI-64 ещё активен.
Шпаргалка — всё на одной странице
Виртуализация
  • VM = полный компьютер в файле. Гипервизор Type 1 (bare metal: ESXi, KVM) / Type 2 (hosted: VirtualBox).
  • VM vs Container: VM = своя ОС, гигабайты, минуты. Container = только приложение, общее ядро, секунды.
Типы сетей

PAN (Bluetooth) → LAN (офис) → MAN (город) → WAN (мир). WLAN = беспроводная LAN. VPN = шифрованный тоннель в Интернете.

OSI vs TCP/IP
OSI (7)TCP/IP (4)Что
Application + Presentation + SessionApplicationHTTP, DNS, SMTP
TransportTransportTCP, UDP, порты
NetworkInternetIP, ARP, ICMP
Data Link + PhysicalLinkEthernet, Wi-Fi, MAC
Адреса
MACIPv4IPv6
Длина48 бит32 бит128 бит
ПримерD4:6A:6D:89:1F:22192.168.1.12001:db8::1
Где работаетLAN (один сегмент)ГлобальноГлобально
АналогияИмя жильцаАдрес квартирыАдрес квартиры в новом городе
Протоколы
ПротоколУровеньЧто делаетПример
ARPL2/L3IP → MAC внутри LAN«Кто 192.168.1.5? Скажи MAC»
TCPL4Надёжно, с порядком, handshakeHTTP, SSH, Email
UDPL4Быстро, без гарантийВидео, VoIP, DNS, игры
ICMPL3Диагностика, ошибкиping, traceroute
IPL3Маршрутизация по адресуВсе пакеты
Порты ключевые
20/21 FTP    22 SSH    25 SMTP    53 DNS    67/68 DHCP
80 HTTP    443 HTTPS    110 POP3    143 IMAP
3306 MySQL    5432 PostgreSQL    6379 Redis    3389 RDP
Подсети — формулы
Хостов в подсети = 2^(32 − prefix) − 2
Block size в октете = 256 − (последний октет маски)

Маски популярные:
  /24 = 255.255.255.0    → 254 хоста (типичный офис)
  /27 = 255.255.255.224  → 30 хостов
  /29 = 255.255.255.248  → 6 хостов
  /30 = 255.255.255.252  → 2 хоста (point-to-point)

Приватные диапазоны (RFC 1918):
  10.0.0.0/8         (16М)
  172.16.0.0/12      (1М)
  192.168.0.0/16     (65K)
VLAN кратко
  • VLAN — логическое разделение switch на отдельные сети.
  • 802.1Q tag — 32-битное поле в кадре, содержит VLAN ID (1–4094).
  • Access port = untagged (для ПК). Trunk port = tagged (между switch'ами).
  • Между разными VLAN общение — только через router.
Команды на каждый день
# Свой IP
ip addr        # Linux
ifconfig       # Mac (старая) / Linux
ipconfig       # Windows

# Маршруты
ip route       # Linux
netstat -nr    # Mac/BSD
route print    # Windows

# ARP таблица
arp -a
ip neigh

# DNS lookup
nslookup google.com
dig google.com
host google.com

# Доступность хоста
ping 8.8.8.8
traceroute google.com
mtr google.com

# Открытые порты на машине
sudo ss -tulpn
sudo lsof -i -P -n | grep LISTEN

# Открыт ли порт удалённо
nc -zv example.com 443
nmap -p 80,443 example.com

# Текущие TCP-соединения
ss -t
netstat -ant
Главное: сети — это не магия. Это конвейер с конвертами: приложение пишет письмо → транспорт (TCP/UDP) кладёт в пронумерованный пакет → IP делает на нём адрес → Ethernet/Wi-Fi кладёт в коробку с MAC и грузит на «грузовик». На той стороне всё распаковывается в обратном порядке. Всё остальное (router, switch, NAT, VLAN, ARP) — это вариации на тему «куда какую коробку положить и как разрулить очередь на дороге».