Интернет состоит из миллиардов устройств, которые ежедневно обмениваются данными. Чтобы информация попадала именно туда, куда нужно, используются два фундаментальных механизма:
Можно представить аналогию с почтой:
Без 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 адресов.
На момент создания Интернета казалось, что этого количества хватит навсегда.
Однако сегодня:
полностью исчерпали этот запас. Поэтому появился IPv6.
- Структура IPv4
Например, 192.168.10.15 обычно делится на: Сеть + Хост
Например:
192.168.10 | 15
Какая часть относится к сети, определяется маской подсети.
- Частные IPv4-адреса
Некоторые диапазоны нельзя использовать в Интернете.
Они предназначены для локальных сетей.
Поэтому большинство домашних компьютеров имеют адреса вроде: 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 определяет устройство.
Но на одном компьютере одновременно работают десятки программ.
Как понять, какой программе предназначен пакет? Для этого существует порт.
Порт - это логический номер приложения.
Он занимает: 16 бит
Поэтому существует: 0 - 65535 портов.
- Зачем нужны порты
Например:
Компьютер имеет IP: 192.168.1.100
Одновременно работают: Chrome, SSH, Discord, FTP.
Когда приходит пакет:
192.168.1.100:443
операционная система понимает: 443 => HTTPS
И передает пакет браузеру.
- Диапазоны портов
Все порты делятся на три категории.
# Well-known Ports
Используются системными службами и наиболее известными сетевыми сервисами.
Например: HTTP, HTTPS, SSH, FTP, DNS.
# Registered Ports
Используются зарегистрированными приложениями.
Например: игровые серверы, базы данных, корпоративное ПО, серверные приложения.
# Dynamic / Private Ports
Используются временно операционной системой.
Например:
Когда браузер открывает сайт:
Ваш компьютер 192.168.1.10:53142 => 142.250.xxx.xxx:443
Порт 53142 создается временно только для этого соединения.
- Наиболее известные порты
- TCP и UDP используют свои таблицы портов
Важно понимать, что порт 53 TCP и 53 UDP - это разные конечные точки.
Например:
DNS 53 UDP 53 TCP
Они существуют одновременно.
То же самое касается большинства других сервисов.
Кто распределяет IP-адреса и номера портов
За глобальное управление пространством IP-адресов, номеров автономных систем (ASN) и реестром известных номеров портов отвечает IANA (Internet Assigned Numbers Authority).
IANA не выдает адреса интернет-провайдерам напрямую. Вместо этого она распределяет крупные блоки адресов между пятью региональными интернет-регистраторами (Regional Internet Registries, RIR).
Далее схема распределения выглядит следующим образом:
IANA Regional Internet Registry (RIR) Интернет-провайдер (ISP) Организация или пользователь
Помимо IP-адресов, IANA также ведет официальный реестр Well-known Ports, где закреплены стандартные номера портов за сетевыми протоколами и сервисами (например, 80 - HTTP, 443 - HTTPS, 22 - SSH).
Source: Orkhan Alishov's notes