← Назад к вопросам

Для чего нужен IP-адрес?

1.0 Junior🔥 161 комментариев
#Сети и протоколы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Ответ: IP-адрес — уникальный идентификатор в сети

IP-адрес (Internet Protocol) — это уникальный числовой идентификатор, который однозначно определяет устройство в компьютерной сети. Это основная концепция сетевого уровня (Layer 3 модели OSI).

Основная функция

IP-адрес нужен для маршрутизации пакетов между компьютерами в сети:

Отправитель (192.168.1.100)
        ↓
  IP заголовок с IP адресами
        ↓
  Маршрутизатор проверяет адрес получателя
        ↓
  Маршрутизатор пересылает пакет в нужном направлении
        ↓
Получатель (8.8.8.8)

Практическое применение

1. Идентификация узлов в сети

192.168.1.1   — маршрутизатор
192.168.1.100 — компьютер
8.8.8.8       — DNS сервер Google

Каждое устройство имеет уникальный адрес, как домашний адрес в городе.

2. Маршрутизация пакетов

Пакет содержит IP-адреса отправителя и получателя:

struct IPv4Header {
    uint8_t version_ihl;      // версия и длина заголовка
    uint8_t dscp_ecn;         // тип сервиса
    uint16_t total_length;    // размер пакета
    uint16_t identification;
    uint16_t flags_offset;
    uint8_t ttl;              // время жизни
    uint8_t protocol;         // ICMP, TCP, UDP
    uint16_t checksum;
    uint32_t source_ip;       // IP отправителя
    uint32_t destination_ip;  // IP получателя
    // данные...
};

Маршрутизатор смотрит на destination_ip и решает, куда отправить пакет.

Версии IP

IPv4 (4 байта = 32 бита)

192.168.1.1
↑   ↑   ↑ ↑
1 байт каждый
Всего ~4 млрд адресов

IPv6 (16 байт = 128 бит)

2001:0db8:85a3:0000:0000:8a2e:0370:7334
Всего ~340 ундециллионов адресов

Иерархия сетей

IP-адреса организованы иерархически с помощью маски подсети:

192.168.1.0/24
  ↑         ↑
  адрес     маска (24 бита — адрес сети, 8 бит — адреса хостов)

Получается: 192.168.1.0 — 192.168.1.255 (256 адресов)

Связь с другими протоколами

TCP/UDP выше IP (Layer 4)

Приложение (HTTP, SSH) — Layer 7
    ↓
TCP/UDP — Layer 4 (использует IP для доставки)
    ↓
IP — Layer 3 (маршрутизирует по адресам)
    ↓
Ethernet — Layer 2 (использует MAC адреса локальной сети)

Backend разработка

В C++ сервере нужно работать с IP адресами:

#include <arpa/inet.h>

// Парсинг IP
struct in_addr addr;
inet_pton(AF_INET, "192.168.1.1", &addr);

// Получение IP клиента
char client_ip[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &client_addr.sin_addr, client_ip, INET_ADDRSTRLEN);

Итог

IP-адрес — уникальный идентификатор узла в сети ✅ Необходим для маршрутизации пакетов от отправителя к получателю ✅ Иерархическая организация позволяет масштабировать сети ✅ IPv4 и IPv6 — две версии протокола с разной ёмкостью ✅ Backend часто работает с IP для логирования, контроля доступа, балансировки нагрузки

Для чего нужен IP-адрес? | PrepBro