Компьютерные сети
IP-адреса: почтовые индексы интернета
Каждую секунду миллиарды пакетов находят путь к нужному компьютеру среди миллиардов устройств. Как? Благодаря IP-адресам - уникальным «почтовым индексам» интернета.
- **Geo-blocking:** Netflix определяет вашу страну по IP и блокирует контент
- **DDoS-атаки:** Знание IP сервера позволяет направить на него трафик
- **Troubleshooting:** `ping 8.8.8.8` - первый шаг диагностики сети
Предварительные знания
Структура IPv4-адреса
**IPv4-адрес** - это 32-битное число, которое уникально идентифицирует устройство в сети. Это как почтовый адрес для компьютера: без него письмо (пакет) не дойдёт.
32 бита делятся на **4 октета** (по 8 бит каждый). Каждый октет - число от 0 до 255. Это даёт примерно 4.3 миллиарда уникальных адресов (2³² = 4,294,967,296).
Почему именно 32 бита? В 1980-х 4 миллиарда адресов казались бесконечностью. Сегодня IPv4 исчерпаны - поэтому появился IPv6 со 128 битами (340 ундециллионов адресов).
Сколько уникальных адресов может быть в IPv4?
Десятичная запись с точками
**Dotted-decimal notation** - стандартный способ записи IPv4. Четыре десятичных числа, разделённых точками: `192.168.1.1`. Это удобно для людей, хотя компьютеры работают с бинарным представлением.
Каждый октет независим. Переход от 192.168.1.255 к следующему адресу даёт 192.168.2.0 - как счётчик километров в машине, где 999 переходит в 1000.
**Лайфхак:** Если видите IP вроде `192.168.x.x` или `10.x.x.x` - это частные адреса, они не маршрутизируются в интернете. `8.8.8.8` или `1.1.1.1` - публичные.
Какой из этих IPv4-адресов невалидный?
Бинарное представление
Компьютеры хранят IP как **32 бита подряд**. Понимание бинарного представления критично для работы с подсетями, масками и troubleshooting.
**Быстрый способ:** запомните ключевые числа - 128, 192, 224, 240, 248, 252, 254, 255. Это суммы степеней двойки слева направо, часто встречаются в масках подсетей.
На собеседованиях часто просят перевести IP в бинарный вручную. Потренируйтесь с 255, 128, 192, 224 - они встречаются в масках постоянно.
Чему равен октет 11111111 в десятичной системе?
IP vs MAC: два типа адресов
**MAC-адрес** (L2) - физический, прошит в железо, работает в локальной сети. **IP-адрес** (L3) - логический, назначается, работает между сетями. Оба нужны для доставки пакета.
**Аналогия:** MAC - это серийный номер паспорта (неизменный), IP - это почтовый адрес (меняется при переезде). Чтобы доставить письмо, нужны оба: адрес для маршрута, паспорт для идентификации получателя.
При отправке в другую сеть MAC-адрес назначения будет MAC **роутера**, а не конечного получателя. IP остаётся тем же. MAC меняется на каждом хопе, IP - нет.
IP-адрес прошит в сетевую карту, как MAC
IP-адрес назначается программно (вручную или через DHCP) и может меняться
MAC идентифицирует железо, IP - логическое расположение в сети. Ноутбук дома и в офисе имеет разные IP, но тот же MAC.
Что происходит с MAC и IP адресами при прохождении через роутер?
Ключевые идеи
- **IPv4 = 32 бита** = 4 октета по 8 бит = ~4.3 млрд адресов
- **Dotted-decimal:** удобная запись для людей (192.168.1.1)
- **Бинарный вид:** как IP хранится в компьютере, критичен для подсетей
- **IP vs MAC:** IP - логический (L3, end-to-end), MAC - физический (L2, hop-by-hop)
Связанные темы
IP-адреса - основа сетевого уровня:
- Подсети и маски — Как делить IP-пространство на сегменты
- ARP-протокол — Связывает IP с MAC для локальной доставки
- DHCP — Автоматически назначает IP-адреса
Вопросы для размышления
- Почему 4.3 миллиарда адресов оказалось недостаточно для современного интернета?
- Если MAC меняется на каждом роутере, как пакет знает куда идти дальше?
- Что произойдёт, если два устройства получат одинаковый IP в одной сети?