IP
IP
IP (Internet Protocol) — сетевой протокол, отвечающий за то, чтобы пакет данных с одного адреса дошёл до другого через произвольное число промежуточных узлов. Все остальные протоколы интернета (TCP, UDP, HTTP, DNS, всё что угодно) едут поверх IP как груз в кузове.
История
- 1969 — запускается ARPANET, первая сеть с коммутацией пакетов между университетами США. Работает на протоколе NCP (Network Control Program). NCP умел связывать только компьютеры внутри ARPANET и жёстко зависел от её топологии.
- Май 1974 — Винт Серф (Vint Cerf) и Боб Кан (Bob Kahn) публикуют статью «A Protocol for Packet Network Intercommunication» в IEEE Transactions on Communications. Это фундамент того, что позже станет TCP/IP. Идея: научить разные сети (радио-сети, спутниковые, ARPANET) обмениваться пакетами так, будто это одна большая сеть.
- 1978 — единый протокол разделяют на два: TCP отвечает за надёжность и порядок, IP — только за адресацию и маршрутизацию. С этого момента их можно менять независимо.
- Сентябрь 1981 — Джон Постель (Jon Postel) публикует RFC 791 — спецификацию IPv4 в её финальном виде. Именно эти 32-битные адреса ты видишь до сих пор: 128.70.171.249.
- 1 января 1983 — «flag day»: ARPANET за один день переключается с NCP на TCP/IP. Это первый и последний раз, когда весь интернет разом поменял протокол. Больше так никто делать не рискнёт.
- 1990-е — становится понятно, что 4,3 миллиарда адресов IPv4 не хватит. RFC 1918 (1996) описывает «частные» диапазоны для внутренних сетей, а параллельно рождается IPv6.
- Декабрь 1998 — RFC 2460, первая рабочая версия IPv6 (128-битные адреса, ~3,4×10³⁸ штук). Актуальная спецификация — RFC 8200 (2017).
- 3 февраля 2011 — IANA (International Assigned Numbers Authority) раздаёт последние /8-блоки IPv4 региональным регистраторам. Формально свободные адреса заканчиваются.
- Сегодня — новые адреса покупают на вторичном рынке (стоимость одного IPv4 колеблется, но за последние годы держалась примерно в диапазоне $30–60). IPv6 распространяется медленно: по оценкам Google, к 2026 году доля IPv6-трафика на его сервисы — около 45–50%. Точную цифру ищи в отчёте «Google IPv6 Statistics».
Что это такое
IP живёт на третьем уровне модели OSI — сетевом. Что это значит: он не заботится, куда именно пакет попадёт на компьютере-получателе (это забота TCP/UDP), не заботится, что за железо между ними (это забота Ethernet, Wi-Fi, LTE), и вообще не заботится, дойдёт ли пакет.
IP — connectionless (без предварительного соединения) и best-effort (по мере сил). Что это означает на практике:
- Отправитель кидает пакет в сеть и забывает про него.
- Роутер, получивший пакет, читает адрес назначения и передаёт его следующему роутеру. Никаких подтверждений.
- Пакет может потеряться, продублироваться, прийти позже других или вообще не прийти.
- Порядок пакетов не гарантируется.
Это выглядит убого, пока не поймёшь фокус: эту убогость специально оставили, чтобы протокол был простым и работал через любые сети — от радио с помехами до оптики между Нью-Йорком и Стокгольмом. Всю надёжность (подтверждения, порядок, ретрансмиссию) прикручивают сверху — это делает TCP. Кому надёжность не нужна (например, видеозвонок, где потеря нескольких кадров лучше задержки) — использует UDP.
Разница между IP-адресом и IP-протоколом: адрес — это идентификатор точки в сети (число). Протокол — это правила, по которым пакеты между этими точками путешествуют. Обычно, когда говорят «айпи», имеют в виду адрес, но помни, что за ним стоит целый протокол.
Аналогии из жизни
Почтовая система с открытками. Ты пишешь открытку, кидаешь в ящик. На ней адрес получателя. Почта передаёт её из отделения в отделение, каждое смотрит только на адрес и решает, куда везти дальше. Гарантий, что дойдёт, нет. Порядок нескольких открыток не гарантируется. — Где ломается: почта хотя бы обычно сохраняет порядок и почти никогда не теряет открытки; IP теряет пакеты гораздо охотнее. И почта не выкинет твоё письмо, если оно уже 50 отделений пробыло в пути; IP выкидывает — это как раз механизм TTL, о котором ниже.
Такси-эстафета без брони. Ты садишься к таксисту, называешь адрес. Он довозит тебя до границы своего района и передаёт следующему таксисту, тот — следующему. Никто не гарантирует, что ты доедешь: любой из них может сломаться, застрять в пробке или высадить тебя. Если через час ты не появился, никто искать не будет. — Где ломается: в реальном такси ты платишь, поэтому мотивация довезти есть; IP работает без денег, только по договорённости операторов сетей.
Разговор в шумной толпе через посредников. Ты просишь соседа передать сообщение через двух-трёх человек до конкретного адресата в другом конце зала. Посредники повторяют, не переспрашивая. Часть слов теряется, что-то приходит в другом порядке, что-то повторяется дважды. Чтобы понять — ты собираешь ответы, восстанавливаешь порядок сам. Это работа TCP. — Где ломается: в реальной толпе есть шанс, что посредник переспросит; IP-роутеры не переспрашивают никогда.
Как это работает
Смотрим на IP-пакет. У него всегда есть заголовок (в IPv4 обычно 20 байт) и тело (полезная нагрузка). В заголовке важнейшие поля:
- Version — 4 или 6.
- Source address — откуда пакет.
- Destination address — куда пакет.
- TTL (Time To Live) — счётчик оставшихся «прыжков». Каждый роутер уменьшает его на 1. Когда TTL = 0, пакет выбрасывается. Так протокол защищается от бесконечных петель, если маршрутизация где-то сломалась.
- Protocol — какой транспорт внутри: TCP (номер 6), UDP (17), ICMP (1) и т.д.
- Header Checksum — контрольная сумма только заголовка (не тела).
- Fragmentation info — если пакет больше, чем помещается в физический канал (MTU, Maximum Transmission Unit), IP может разбить его на фрагменты и на другой стороне собрать обратно.
Путь пакета выглядит так:
[Твой ноутбук: 192.168.1.42]
↓ (пакет с dest = 172.217.16.14)
[Домашний роутер] ← NAT: подменяет src на публичный IP провайдера
↓
[Роутер провайдера] → [Магистраль] → [Ещё несколько роутеров]
↓
[Роутер Google]
↓
[Сервер Google: 172.217.16.14]
На каждом шаге происходит одно и то же: роутер смотрит destination, ищет его в своей routing table (таблица маршрутизации — «в какую сторону слать пакеты для такой-то подсети»), уменьшает TTL, передаёт дальше. Всё. Никакой памяти о том, что этот же пакет шёл вчера, никакой связи с предыдущим или следующим пакетом.
Если TTL добрался до нуля — роутер выбрасывает пакет и (обычно) отправляет отправителю ICMP-сообщение «Time exceeded». Именно на этом построен traceroute: он посылает пакеты с TTL = 1, 2, 3… и по ICMP-ответам узнаёт, кто на каждом хопе.
Если пакет попал в сеть с меньшим MTU — роутер (в IPv4) может фрагментировать: разрезать на куски, каждому дать свой заголовок, номер фрагмента и флаг «есть ли ещё». На принимающей стороне IP собирает всё обратно. В IPv6 роутеры не фрагментируют — если пакет слишком большой, они возвращают ICMPv6 «Packet Too Big», и отправитель сам режет мельче. Это упрощает жизнь роутерам, но требует, чтобы Path MTU Discovery работал.
Про адрес
IPv4 — 32 бита, обычно записывают четырьмя числами 0–255 через точку: 128.70.171.249. Всего адресов 2³² ≈ 4,3 млрд. Часть из них зарезервирована:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16— приватные диапазоны (RFC 1918), внутри локальных сетей.127.0.0.0/8— loopback, «сам себе»:127.0.0.1= localhost.169.254.0.0/16— link-local, автоконфигурация без DHCP.224.0.0.0/4— multicast.
IPv6 — 128 бит, восемь групп по 4 hex-цифры: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Нули сжимаются: 2001:db8:85a3::8a2e:370:7334.
CIDR-нотация (Classless Inter-Domain Routing, 1993). Запись 192.168.1.0/24 означает: первые 24 бита — префикс сети (192.168.1.), последние 8 бит — адреса внутри неё (256 штук, из них 254 доступны для хостов). До 1993 года использовались жёсткие классы A/B/C (8/16/24 бита префикса) — оказалось расточительно.
Где встречается в обычной жизни
- Геолокация сайтов. Когда Netflix говорит «этот контент недоступен в вашей стране», он смотрит на твой IP, ищет в базе (RIPE, ARIN и коммерческие GeoIP) страну регистрации адреса — и решает, что показать. VPN «обходит» это тем, что подменяет IP на адрес другой страны.
- Роутер дома. Твой ноутбук получает адрес вроде
192.168.1.42— это приватный, внутренний. В интернет ты выходишь через NAT (Network Address Translation): роутер подставляет всем устройствам один и тот же публичный IP провайдера. Поэтому Netflix видит один и тот же IP от тебя, планшета и умной колонки. - «Смени Wi-Fi на мобильный интернет — сайт начал работать». Причина — у мобильного оператора другой IP, и защита сайта (Cloudflare, Qrator) считает адрес Wi-Fi подозрительным.
- Скорость интернета «падает» вечером. Часто это не «падение скорости», а перегруженный узел маршрутизации у провайдера. Пакеты стоят в очереди на роутере, TTL иногда даже до нуля добирается — отсюда потери.
- «Заблокировали» человека на форуме. Часто блокируют не аккаунт, а IP — поэтому смена сети или VPN «расколдовывает».
Где встречается в IT и бизнесе
- Rate limiting. Сервисы ограничивают запросы «не больше N в минуту с одного IP». Именно поэтому парсеры сайтов используют пулы прокси — чтобы разложить трафик по многим IP и не упереться в лимит.
- CDN и anycast. Cloudflare, AWS CloudFront, Akamai держат по всему миру сотни точек. Все они анонсируют один и тот же IP (это называется anycast) — пакет попадёт в ближайшую по маршрутизации, и клиент из Москвы получит ответ из Стокгольма или Франкфурта, а не из Виргинии.
- WAF и антифрод. Cloudflare, Qrator, AWS WAF классифицируют IP: датацентр (плохо для «человеческого» трафика), residential (жилой, доверия больше), мобильный (много абонентов делят один IP). Оценка репутации IP — половина работы защиты от ботов.
- Analytics. Yandex Metrika и Google Analytics используют IP как один из сигналов для склеивания визитов, определения региона и грубой оценки уникальности до появления cookie.
- Firewall/security-groups. В облачных инфраструктурах правила безопасности почти всегда описывают «с каких IP можно ходить на такой-то порт». Ошибка в правилах — самая частая причина «сервер невидим из интернета».
Кто пользуется
Все. Каждое устройство, подключённое к сети — хотя бы к домашнему Wi-Fi — имеет IP-адрес. Активных публичных IPv4-адресов в мире, по разным оценкам, около 3,7 млрд, и в BGP-таблицах магистральных роутеров сейчас более 950 тысяч маршрутов (искать в отчётах CIDR Report или потоке от University of Oregon).
Из конкретики:
- Cloudflare — своя сеть в более чем 300 городах, около 20% всех веб-сайтов мира ходят через них. Все — на anycast-IP.
- Google — обрабатывает трафик через собственную опорную сеть B4 и передаёт данные, по своим отчётам, в среднем через 4–6 хопов внутри своей сети до пользователя.
- Ростелеком, МегаФон, МТС — российские операторы, каждый владеет несколькими крупными блоками IP, распределяет их между абонентами через DHCP и NAT.
- AWS — публикует диапазоны своих IP отдельным файлом
ip-ranges.json(обновляется несколько раз в день). На нём построены половина корпоративных firewall-правил в мире.
Альтернативы и конкуренты
- IPX/SPX (Novell) — работал в локальных сетях в 80-е и 90-е. Плюс: не требовал ручной настройки адресов. Минус: не умел в глобальную сеть, полностью вымер к 2000-м.
- X.25 (эпоха телефонных сетей передачи данных). Плюс: строгие гарантии доставки на уровне сети. Минус: сложный, тяжёлый, дорогой. Заменён IP по всем фронтам.
- AppleTalk — свой стек Apple в 80-е и 90-е. Плюс: очень удобная автоконфигурация. Минус: только Apple. К 2009 году Apple сам отказался.
- IPv6 vs IPv4 — не альтернатива, а следующая версия. Плюс IPv6: практически неограниченное количество адресов, никакого NAT, встроенный IPsec. Минус: тяжело идёт из-за инерции — миллионы устройств и приложений привыкли к IPv4.
В реальности альтернатив у IP нет: любой значимый сетевой протокол — надстройка над ним.
Когда НЕ стоит использовать
Ситуации, где «сам IP» плохо подходит:
- Идентификация пользователя. IP не равен человеку. За одним публичным IP может сидеть офис на 500 человек через NAT, а один человек может за день сменить пять IP (Wi-Fi дома, LTE в метро, гостевой Wi-Fi в кафе). Считать «уникальных посетителей» по IP — почти всегда ошибка.
- Как канал жёсткой географической привязки. Базы GeoIP ошибаются на 5–20%, особенно на мобильных операторах, VPN и корпоративных сетях. Если нужно «показывать только пользователям из Москвы» — понимай, что часть москвичей ты отсечёшь и часть немосквичей пропустишь.
- Для защиты от DDoS «в лоб» списком IP. Атака на 10 миллионов IP делает такой список бесполезным. Нужны поведенческие фильтры, а не IP-фильтры.
- Когда достаточно приватных сетей. Внутри дата-центра часто вообще не нужен публичный IP: сервисы говорят между собой через приватные адреса + service mesh, а наружу «торчит» только несколько балансировщиков.
Связанные понятия
- TCP — транспортный протокол над IP, добавляет надёжность, порядок и управление скоростью.
- UDP — транспортный протокол над IP, ничего не добавляет — быстро и без гарантий.
- ICMP — служебный протокол над IP, для сообщений об ошибках и диагностики (ping, traceroute — это ICMP).
- DNS — переводит имена (
example.com) в IP-адреса. - DHCP — автоматически выдаёт IP-адреса устройствам в локальной сети.
- NAT — механизм подмены IP на границе локальной сети, позволяет многим устройствам делить один публичный адрес.
- BGP — протокол, по которому магистральные роутеры договариваются, как маршрутизировать пакеты между автономными системами (сетями провайдеров).
- MTU — максимальный размер пакета, влезающий в один кадр канала.
Литература и источники
- W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols (2-е изд., 2011, en). Библия сетевика. Начни с глав про IP и ICMP.
- Kurose & Ross. Computer Networking: A Top-Down Approach (en, есть в русском переводе). Учебник, по которому учат сети в большинстве вузов США.
- RFC 791 — оригинальная спецификация IPv4 (Jon Postel, 1981). Читается за час, полезно один раз в жизни глянуть, чтобы почувствовать «сколько на самом деле надо, чтобы описать интернет».
- RFC 8200 — актуальная спецификация IPv6 (2017).
- Wikipedia: «Интернет-протокол» (ru), «Internet Protocol» (en), «IPv4», «IPv6», «CIDR» — точки входа с ссылками.
- Cloudflare Learning Center (learning.cloudflare.com) — короткие статьи «What is an IP address», «What is DNS», «What is Anycast». Хорошо для быстрого освежения.
- Google IPv6 Statistics (искать по этому запросу, официальный домен
google.com/intl/en/ipv6/statistics.html) — свежие данные по проникновению IPv6.
Где встретилось у меня
Вчера собирал номера подменников с сайта недвижимости — приходилось гонять запросы через VPN и разные прокси (мобильные, домашние, датацентровые), чтобы обойти защиту Qrator и посмотреть, зависит ли выдаваемый номер от IP визитёра. Причём именно IP оказался тем, что защита оценивает первым: мобильный IP МегаФона Qrator режет так же, как и датацентровый — вопрос не в конкретной сети, а в репутации диапазона. Плюс по ходу дела разбирался с гипотезой «отложенный мисроутинг» — когда человек звонит через день по записанному ранее номеру, IP уже другой, а телефон тот же, и это тоже часть картины.
Краткое резюме
- IP — сетевой протокол, отвечающий только за адресацию и маршрутизацию пакетов между хостами. Не гарантирует ни доставку, ни порядок — это принципиальный выбор в его дизайне.
- Живёт с 1974 года, окончательно закрепился в 1983-м, IPv4 (32 бита) переполнился в 2011-м. IPv6 (128 бит) распространяется медленно.
- Всё остальное в интернете (TCP, UDP, HTTP, DNS, DoH, gRPC, WebSocket) — надстройка над IP.
- IP-адрес — это не человек. Один IP делят офис, семья, оператор мобильной связи. Один человек за день использует много IP.
- Практика: любая защита, любой rate limit, любая геолокация, любой CDN опирается на IP-адрес и его репутацию.