Интернет состоит из миллиардов устройств, которые ежедневно обмениваются данными. Чтобы информация попадала именно туда, куда нужно, используются два фундаментальных механизма:

  • IP-адрес - определяет устройство в сети.
  • Порт - определяет конкретное приложение или сервис на этом устройстве.

Можно представить аналогию с почтой:

  • IP-адрес - это адрес дома.
  • Порт - номер квартиры.
  • TCP/UDP - способ доставки.
  • Данные - само письмо.

Без IP невозможно найти компьютер, а без порта невозможно понять, какой программе предназначены полученные данные.

IP (Internet Protocol) - это протокол сетевого уровня, который отвечает за адресацию устройств и маршрутизацию пакетов между сетями.

Каждое устройство в сети получает уникальный IP-адрес.

Например: 192.168.1.15 или 2001:db8::1234


IPv4

IPv4 появился в начале 1980-х годов и используется до сих пор.

Он состоит из 32 бит. Записывается четырьмя числами:

192.168.0.1

Каждое число занимает 8 бит (0 - 255).

Например:

11000000
10101000
00000000
00000001

что соответствует 192.168.0.1

Размер адресного пространства IPv4

Всего возможно: 2^32 = 4 294 967 296 адресов.

На момент создания Интернета казалось, что этого количества хватит навсегда.

Однако сегодня:

  • смартфоны;
  • ноутбуки;
  • телевизоры;
  • камеры;
  • серверы;
  • IoT-устройства

полностью исчерпали этот запас. Поэтому появился IPv6.

- Структура IPv4

Например, 192.168.10.15 обычно делится на: Сеть + Хост

Например:

192.168.10 | 15

Какая часть относится к сети, определяется маской подсети.

Частные IPv4-адреса

Некоторые диапазоны нельзя использовать в Интернете.

Они предназначены для локальных сетей.

  • 10.0.0.0/8 большие локальные сети
  • 172.16.0.0/12 корпоративные сети
  • 192.168.0.0/16 домашние сети

Поэтому большинство домашних компьютеров имеют адреса вроде: 192.168.1.20 или 10.0.0.50

Такие адреса работают только внутри локальной сети.

Публичный IP

Публичный IP виден всему Интернету.

Например:

95.86.xxx.xxx

Именно к нему подключаются другие компьютеры.

Обычно домашний роутер имеет один публичный IP, а все устройства внутри используют частные адреса через технологию NAT.


IPv6

IPv6 был разработан как замена IPv4.

Главная причина появления: закончились IPv4-адреса.

Размер IPv6

IPv6 состоит из 128 бит. Всего адресов: 2^128

Это примерно:

340 ундециллионов

340 282 366 920 938 463 463 374 607 431 768 211 456

Этого хватит практически навсегда.

Запись IPv6

IPv6 записывается шестнадцатеричными числами.

Например:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Каждая группа содержит 16 бит.

Сокращение IPv6

IPv6 допускает сокращения.

Было: 2001:0db8:0000:0000:0000:0000:1428:57ab

Можно записать: 2001:db8::1428:57ab

Правила:

  • ведущие нули удаляются;
  • последовательность нулевых блоков можно заменить на :: (только один раз в адресе).

Преимущества IPv6

По сравнению с IPv4:

  • практически бесконечное количество адресов;
  • отсутствует проблема нехватки IP;
  • более эффективная маршрутизация;
  • встроенная поддержка IPsec;
  • отсутствие необходимости в массовом использовании NAT;
  • автоматическая настройка адресов (SLAAC).

Что такое порт

IP определяет устройство.

Но на одном компьютере одновременно работают десятки программ.

Как понять, какой программе предназначен пакет? Для этого существует порт.

Порт - это логический номер приложения.

Он занимает: 16 бит

Поэтому существует: 0 - 65535 портов.

Зачем нужны порты

Например:

Компьютер имеет IP: 192.168.1.100

Одновременно работают: Chrome, SSH, Discord, FTP.

Когда приходит пакет:

192.168.1.100:443

операционная система понимает: 443 => HTTPS

И передает пакет браузеру.

Диапазоны портов

Все порты делятся на три категории.

  • Well-known Ports (0 - 1023)
  • Registered Ports (1024 - 49151)
  • Dynamic / Private Ports (49152 - 65535)

Well-known Ports

Используются системными службами и наиболее известными сетевыми сервисами.

Например: HTTP, HTTPS, SSH, FTP, DNS.

Registered Ports

Используются зарегистрированными приложениями.

Например: игровые серверы, базы данных, корпоративное ПО, серверные приложения.

Dynamic / Private Ports

Используются временно операционной системой.

Например:

Когда браузер открывает сайт:

Ваш компьютер

192.168.1.10:53142
=>
142.250.xxx.xxx:443

Порт 53142 создается временно только для этого соединения.

Наиболее известные порты

  • 20 FTP Передача данных
  • 21 FTP Управление
  • 22 SSH Безопасное удалённое подключение
  • 23 Telnet Удалённый доступ (устарел)
  • 25 SMTP Отправка электронной почты
  • 53 DNS Разрешение доменных имён
  • 67 DHCP Сервер DHCP
  • 68 DHCP Клиент DHCP
  • 69 TFTP Упрощённая передача файлов
  • 80 HTTP Веб-сайты
  • 110 POP3 Получение почты
  • 123 NTP Синхронизация времени
  • 143 IMAP Получение почты
  • 161 SNMP Управление сетевыми устройствами
  • 162 SNMP Trap Уведомления SNMP
  • 179 BGP Межсетевой обмен маршрутами
  • 389 LDAP Каталог пользователей
  • 443 HTTPS Защищённые веб-сайты
  • 445 SMB Общие папки Windows
  • 465 SMTPS SMTP через TLS
  • 514 Syslog Журналирование
  • 587 SMTP Submission Отправка почты клиентами
  • 636 LDAPS LDAP через TLS
  • 993 IMAPS IMAP через TLS
  • 995 POP3S POP3 через TLS

TCP и UDP используют свои таблицы портов

Важно понимать, что порт 53 TCP и 53 UDP - это разные конечные точки.

Например:

DNS

53 UDP
53 TCP

Они существуют одновременно.

То же самое касается большинства других сервисов.


Кто распределяет IP-адреса и номера портов

За глобальное управление пространством IP-адресов, номеров автономных систем (ASN) и реестром известных номеров портов отвечает IANA (Internet Assigned Numbers Authority).

IANA не выдает адреса интернет-провайдерам напрямую. Вместо этого она распределяет крупные блоки адресов между пятью региональными интернет-регистраторами (Regional Internet Registries, RIR).

  • AFRINIC Африка
  • APNIC Азиатско-Тихоокеанский регион
  • ARIN США, Канада и часть Карибского бассейна
  • LACNIC Латинская Америка и Карибский регион
  • RIPE NCC Европа, Ближний Восток и Центральная Азия

Далее схема распределения выглядит следующим образом:

IANA
Regional Internet Registry (RIR)
Интернет-провайдер (ISP)
Организация или пользователь

Помимо IP-адресов, IANA также ведет официальный реестр Well-known Ports, где закреплены стандартные номера портов за сетевыми протоколами и сервисами (например, 80 - HTTP, 443 - HTTPS, 22 - SSH).


Source: Orkhan Alishov's notes