Learning Platform
Troubleshooting
Глоссарий

Глоссарий — Computer Networks для Junior

Справочник ключевых терминов курса Computer Networks для Junior.

11 категорий · 82 терминов

Адресация и идентификация

IP

IP (Internet Protocol)
Термин

Сетевой протокол уровня L3 (Network) в стеке TCP/IP, отвечающий за маршрутизацию пакетов между host'ами через несколько сетей. Connectionless и unreliable: не гарантирует доставку, порядок и отсутствие дубликатов -- это задача транспортного уровня (TCP). Каждый пакет содержит source и destination IP-адреса, по которым промежуточные роутеры решают, в какой интерфейс отправить пакет дальше (longest prefix match). Существуют две версии: IPv4 (32 бита, ~4.3 млрд адресов, исчерпан) и IPv6 (128 бит, фактически неисчерпаем). Для DE и backend важно: IP -- это адрес интерфейса, а не машины (у host'а может быть несколько IP), и в большинстве случаев приватный IP сидит за NAT.

Подробнее в уроках:

IPv4

IPv4 (Internet Protocol version 4)
Термин

Четвёртая версия IP, 32-битный адрес в dotted decimal нотации (192.168.1.10). Адресное пространство ~4.3 млрд, исчерпано в 2011 году на уровне IANA. Структура заголовка: 20 байт минимум (Version, IHL, TOS, Total Length, Identification, Flags+Fragment Offset, TTL, Protocol, Header Checksum, Src IP, Dst IP, опции). MTU обычно 1500 байт на Ethernet. Несмотря на дефицит, IPv4 до сих пор доминирует благодаря NAT: миллионы private IP за одним публичным. Для разработчика типичные сценарии IPv4 -- 10.0.0.0/8 во внутренних сетях, 127.0.0.1 как loopback, 0.0.0.0 для bind на все интерфейсы.

Подробнее в уроках:

IPv6

IPv6 (Internet Protocol version 6)
Термин

Шестая версия IP с 128-битным адресом (~3.4 * 10^38 адресов). Записывается как 8 групп hex по 16 бит через двоеточие: 2001:0db8:85a3:0000:0000:8a2e:0370:7334; разрешено сокращение нулей (2001:db8:85a3::8a2e:370:7334). Не имеет broadcast (заменён на multicast), нет fragmentation на роутерах (только на host'е), упрощённый заголовок, встроенный IPsec в спецификации. Адаптация постепенная: dual-stack (IPv4 + IPv6 параллельно), tunneling. На практике большинство современных мобильных сетей и облачных провайдеров уже IPv6-native, но в legacy DC всё ещё IPv4.

Подробнее в уроках:

MAC address

MAC address (Media Access Control)
Термин

48-битный (6 байт) аппаратный адрес сетевого интерфейса L2 (Data Link). Записывается как 6 hex-октетов через двоеточие или дефис: aa:bb:cc:dd:ee:ff. Первые 3 байта (OUI) идентифицируют производителя, последние 3 -- уникальный номер интерфейса. В отличие от IP, MAC не маршрутизируется -- работает только внутри одного broadcast-домена (LAN). Frame на L2 содержит source MAC + destination MAC. Switch ведёт MAC-таблицу: какой MAC за каким портом. MAC может быть изменён программно (spoofing) -- частая атака для обхода фильтров.

Подробнее в уроках:

CIDR

CIDR (Classless Inter-Domain Routing)
Термин

Способ обозначения подсети через slash-нотацию: 192.168.1.0/24 значит, что первые 24 бита -- адрес сети, последние 8 -- хосты. Заменил исторические классы A/B/C (с фиксированными границами /8, /16, /24). CIDR позволяет создавать подсети любой длины: /22 это 1024 адреса, /29 это 8 адресов (6 usable, 2 зарезервированы под network и broadcast). Маска /24 равна 255.255.255.0. Для routing table CIDR используется в longest prefix match: маршрут /28 победит /24 при выборе. На практике инженер пишет /24, /22, /16 для VPC subnets в AWS/GCP.

Подробнее в уроках:

Subnet

Subnet (subnetwork)
Термин

Логическое разделение IP-сети на меньшие сегменты через subnet mask. Все host'ы внутри подсети могут общаться напрямую на L2 без роутера; для выхода за пределы нужен default gateway. Mask определяет границу network/host битов: 255.255.255.0 = /24 = 256 адресов (254 usable). Subnetting нужен для изоляции (production vs staging), безопасности (firewall между subnets), масштабирования (broadcast не уходит за subnet), оптимизации (минимизация broadcast domain). В AWS VPC subnet -- это базовый строительный блок, привязанный к AZ.

Подробнее в уроках:

Gateway

Default Gateway
Термин

IP-адрес роутера, через который host отправляет пакеты в сети, не входящие в его собственную подсеть. Когда destination IP не попадает ни под один маршрут в routing table, пакет уходит в default gateway (маршрут 0.0.0.0/0). В типичном home Wi-Fi gateway -- это сам router (обычно 192.168.1.1 или 192.168.0.1). В корпоративной сети gateway часто отдельный L3-switch или firewall. На Linux/macOS gateway показывает netstat -rn или ip route show default.

Подробнее в уроках:

NAT

NAT (Network Address Translation)
Термин

Механизм трансляции IP-адресов на границе сети, чаще всего из приватных (RFC 1918) в публичные. Когда пакет из 192.168.1.42 идёт в интернет, router заменяет src IP на свой публичный, запоминает соответствие (source IP + port -> public IP + port) в NAT-таблице и подменяет обратно для ответных пакетов. Это позволяет тысячам приватных host'ов делить один публичный IP. Типы: full cone (любой внешний может слать на mapped port), restricted cone, port-restricted, symmetric (для каждого dst создаётся отдельный mapping -- ломает P2P). NAT усложняет inbound-соединения -- отсюда port forwarding, UPnP, hole punching, STUN/TURN.

Подробнее в уроках:

Port

Port (TCP/UDP port)
Термин

16-битный (0-65535) идентификатор endpoint на host'е, по которому ОС различает, в какое приложение отдавать пакет. Адрес соединения = IP + port (socket). Well-known ports 0-1023 (требуют root для bind), registered 1024-49151, ephemeral 49152-65535 (выделяются клиенту динамически). Стандартные: 22 (SSH), 53 (DNS), 80 (HTTP), 443 (HTTPS), 3306 (MySQL), 5432 (PostgreSQL), 6379 (Redis), 9092 (Kafka). Один порт = одно слушающее приложение на интерфейсе. Несколько клиентов могут одновременно подключаться к одному серверному порту -- ОС различает их по 4-tuple (src IP, src port, dst IP, dst port).

Подробнее в уроках:

Socket

Socket (Berkeley socket)
Термин

Абстракция в ОС, представляющая endpoint сетевого соединения. Уникально идентифицируется 4-tuple: (local IP, local port, remote IP, remote port) для TCP, или 2-tuple для listening UDP. Berkeley API даёт системные вызовы: socket() создать, bind() привязать к адресу, listen() начать слушать (TCP), accept() принять входящее соединение, connect() подключиться, send/recv обменяться данными, close() закрыть. На уровне ядра socket -- это file descriptor, поэтому в Unix всё работает через read/write/poll/epoll. В Python обёртка -- модуль socket в stdlib.

Подробнее в уроках:

Транспортный уровень: TCP и UDP

TCP

TCP (Transmission Control Protocol)
Термин

Транспортный протокол L4, обеспечивающий надёжную, упорядоченную, потоковую передачу данных между двумя endpoint'ами. Connection-oriented: сначала three-way handshake (SYN, SYN-ACK, ACK), потом обмен сегментами с sequence numbers и ACK, в конце четырёхэтапное закрытие (FIN, ACK, FIN, ACK). Гарантирует: данные дойдут (retransmission при потере), в порядке (по sequence number), без дублей (по ack), и с flow + congestion control. Header ~20 байт. На TCP работают HTTP/1.1, HTTP/2, SSH, SMTP, IMAP, FTP, большинство БД. Цена надёжности: handshake latency (1 RTT), head-of-line blocking, в плохих сетях ретрансмиты убивают throughput.

Подробнее в уроках:

UDP

UDP (User Datagram Protocol)
Термин

Транспортный протокол L4, connectionless и unreliable. Не делает handshake, не гарантирует доставку, порядок и отсутствие дубликатов -- просто шлёт datagrams. Header ровно 8 байт: src port, dst port, length, checksum. Каждый datagram самодостаточен. Используется там, где важна latency и допустимы потери: DNS (короткий запрос + ответ), VoIP / video calls (потеря кадра лучше задержки), streaming media, online games, NTP, DHCP, QUIC (поверх UDP реализован свой reliability). При необходимости reliability (как в QUIC) её реализуют на application layer.

Подробнее в уроках:

Three-way handshake

TCP Three-way handshake
Термин

Процесс установки TCP-соединения через обмен тремя пакетами: (1) клиент шлёт SYN с initial sequence number ISN_c, (2) сервер отвечает SYN-ACK с ISN_s и ack = ISN_c+1, (3) клиент шлёт ACK = ISN_s+1. После этого соединение в состоянии ESTABLISHED и можно отправлять данные. Зачем три пакета: чтобы обе стороны убедились, что и приём, и отправка работают двусторонне. ISN выбирается псевдослучайно для защиты от SYN-spoofing. Latency handshake'а = 1 RTT -- это причина, по которой TCP медленнее UDP при коротких запросах. Атака SYN flood: посылается много SYN без завершения handshake, забивая очередь полусоединений.

Подробнее в уроках:

Sequence number

Sequence Number (TCP)
Термин

32-битный счётчик байт в TCP, по которому получатель собирает поток в правильном порядке. Начальное значение (ISN) выбирается псевдослучайно при handshake. Каждый сегмент имеет seq = байт-номер первого байта данных в сегменте. Получатель шлёт ACK с номером следующего ожидаемого байта. Если приходят сегменты с разрывом (пропуск), получатель буферизирует их и шлёт duplicate ACK -- это сигнал отправителю об потере и триггер fast retransmit. После 4 ГБ передачи sequence number wraps around (через 2^32 байт).

Подробнее в уроках:

ACK

ACK (Acknowledgement)
Термин

Подтверждение получения данных в TCP. ACK number в заголовке = номер следующего ожидаемого байта. Это cumulative ACK: ACK 1000 означает 'все байты до 999 включительно получены'. ACK обычно идёт piggyback с данными в обратном направлении или как pure ACK без payload. Если отправитель не получил ACK в течение RTO (retransmission timeout), он повторно отправит сегмент. Selective ACK (SACK, RFC 2018) -- расширение, в котором получатель указывает диапазоны полученных out-of-order сегментов, чтобы отправитель не ретрансмитил уже доставленные данные.

Подробнее в уроках:

Sliding window

Sliding Window (TCP)
Термин

Механизм потокового управления передачей, при котором отправитель может слать сразу несколько unacknowledged сегментов в пределах окна (window size, передаётся в каждом ACK). После получения ACK окно сдвигается вправо. Это позволяет утилизировать пропускную способность канала: вместо stop-and-wait (один пакет -- один ACK) можно держать в полёте BDP (bandwidth-delay product) байт. Window size в TCP header -- 16 бит (макс 64 KB), для высокоскоростных сетей используется TCP window scaling option (множитель 2^n).

Подробнее в уроках:

Flow control

TCP Flow control
Термин

Механизм, не дающий быстрому отправителю переполнить буфер медленного получателя. Реализован через receive window: получатель в каждом ACK сообщает, сколько ещё байт он готов принять. Если приложение медленно читает данные из буфера, окно уменьшается. При window = 0 отправитель останавливается и периодически шлёт window probe, пока получатель не освободит место. Это решает локальную проблему 'producer faster than consumer'. Отдельно от flow control работает congestion control, который заботится о состоянии сети между host'ами.

Подробнее в уроках:

Congestion control

TCP Congestion control
Термин

Механизм, не дающий отправителю переполнить промежуточные роутеры на пути к получателю. Реализован через congestion window (cwnd), которое растёт при успешных ACK и резко уменьшается при потерях (interpret packet loss as congestion). Классические алгоритмы: slow start (экспоненциальный рост cwnd с 1 MSS), congestion avoidance (линейный рост после порога ssthresh), fast retransmit (по 3 dup ACK), fast recovery. Современные: CUBIC (default в Linux), BBR (Google), DCTCP (для DC). При потерях TCP замедляется -- именно поэтому plot throughput имеет 'зубцы пилы'.

Подробнее в уроках:

Segment

TCP Segment
Термин

Единица данных TCP, состоящая из TCP-заголовка (20-60 байт) и payload. Сегмент инкапсулируется в IP-пакет. Максимальный размер payload -- MSS (Maximum Segment Size), обычно = MTU - 40 (IP + TCP заголовки) = 1460 байт для Ethernet с MTU 1500. MSS согласовывается во время handshake. Если приложение пишет в socket 100 KB, TCP разрежет это на ~70 сегментов. Сегментация позволяет проходить через сети с разным MTU без fragmentation на L3.

Подробнее в уроках:

Datagram

UDP Datagram
Термин

Единица данных UDP: 8 байт заголовка + payload. Каждый datagram независим, шлётся как один IP-пакет (если влезает в MTU) или фрагментируется на L3. Максимальный размер UDP datagram теоретически 65507 байт (65535 - 20 IP - 8 UDP), но на практике лучше держать < MTU чтобы избежать fragmentation. Если фрагментирован, потеря одного фрагмента = потеря всего datagram. В отличие от TCP segment, у datagram нет sequence number и нет ACK -- application layer должен сам это реализовать, если нужно.

Подробнее в уроках:

MTU

MTU (Maximum Transmission Unit)
Термин

Максимальный размер payload на L2 frame в байтах. На Ethernet стандарт 1500 байт (всего frame 1518 с заголовками). Jumbo frames -- до 9000 байт, используются в DC для повышения throughput. PPPoE снижает MTU до 1492 из-за заголовка. Если IP-пакет больше MTU, он фрагментируется (IPv4) или дроп с ICMP 'Fragmentation Needed' (IPv6). MTU mismatch -- частая проблема: туннели (VPN, GRE) уменьшают эффективный MTU; если PMTUD не работает (ICMP заблокирован), получается black hole -- пакеты пропадают молча.

Подробнее в уроках:

Сетевые модели

OSI model

OSI Model (Open Systems Interconnection)
Термин

Семиуровневая референсная модель ISO/IEC 7498-1: L1 Physical (биты по проводу), L2 Data Link (frames, MAC), L3 Network (packets, IP), L4 Transport (segments/datagrams, TCP/UDP), L5 Session (логические сессии -- redko используется), L6 Presentation (encoding, encryption -- редко), L7 Application (HTTP, SMTP, DNS). На практике L5-L6 чаще объединяют с L7. Модель полезна для рассуждений и общения ('это работает на L4' = transport), но реальный стек -- TCP/IP, у которого 4 уровня. Запоминается мнемоникой 'Please Do Not Throw Sausage Pizza Away'.

Подробнее в уроках:

TCP/IP stack

TCP/IP Stack
Термин

Четырёхуровневая практическая модель: Link (L2-L1 OSI: Ethernet, Wi-Fi, ARP), Internet (L3: IP, ICMP), Transport (L4: TCP, UDP, QUIC), Application (L5-7 OSI: HTTP, DNS, SSH, SMTP). Реальный стек, используемый в Unix-системах. Каждый уровень предоставляет сервис верхнему через интерфейс (socket API между Transport и Application). Пакет инкапсулируется сверху вниз: HTTP -> TCP segment -> IP packet -> Ethernet frame -> биты. На приёмной стороне раскапсулируется обратно.

Подробнее в уроках:

Encapsulation

Encapsulation (Network)
Термин

Процесс обёртывания данных одного уровня в заголовок другого. HTTP-запрос (Application) кладётся в TCP-сегмент (Transport: добавляет TCP header), который кладётся в IP-пакет (Network: добавляет IP header), который кладётся в Ethernet frame (Link: добавляет Ethernet header + FCS). Каждый уровень не знает о деталях верхних -- IP не знает, что внутри TCP, а TCP не знает, что внутри HTTP. На принимающей стороне идёт de-encapsulation: уровни последовательно снимают свои заголовки и передают payload наверх. Это даёт layered architecture: можно менять реализацию L4 (TCP -> QUIC), не трогая L3.

Подробнее в уроках:

DNS

DNS

DNS (Domain Name System)
Термин

Иерархическая распределённая система, разрешающая доменные имена (example.com) в IP-адреса. Работает поверх UDP (порт 53) для коротких запросов, TCP для больших ответов и zone transfer. Структура иерархическая: root (.), TLD (com, org, ru), authoritative servers конкретного домена. Запрос проходит через recursive resolver (8.8.8.8, 1.1.1.1, провайдерский), который ходит по иерархии. Резолв кэшируется на нескольких уровнях по TTL. DNS -- единственная критическая инфраструктура интернета: если ляжет, никто не достучится до сайтов (хотя IP-адреса работают).

Подробнее в уроках:

A record

A Record (DNS)
Термин

DNS-запись, отображающая доменное имя в IPv4-адрес. Самая распространённая запись. Может быть несколько A records на одно имя (DNS round-robin) -- resolver вернёт все, клиент выберет одну. TTL определяет, как долго resolver может кэшировать ответ (от секунд до дней). Пример: example.com -> 93.184.216.34. Для IPv6 аналог -- AAAA-запись. На практике dig +short example.com покажет все A-записи.

Подробнее в уроках:

AAAA record

AAAA Record (DNS)
Термин

DNS-запись, отображающая доменное имя в IPv6-адрес. Аналог A-записи для IPv6. Имя 'AAAA' (читается 'quad-A') потому что IPv6 в 4 раза длиннее IPv4 (128 vs 32 бит). Если у домена есть и A и AAAA записи -- это dual-stack, клиент с IPv6-стеком предпочтёт AAAA (Happy Eyeballs algorithm), но fallback на IPv4 при проблемах. dig AAAA example.com покажет IPv6-адрес.

Подробнее в уроках:

CNAME

CNAME (Canonical Name)
Термин

DNS-запись, создающая алиас одного домена на другой. www.example.com CNAME example.com значит 'www -- это синоним example.com, иди резолвь его'. Resolver следует цепочке CNAME, пока не упрётся в A или AAAA. Ограничения: нельзя класть CNAME на apex домена (example.com сам по себе), нельзя сочетать с другими записями на том же имени (например, MX и CNAME несовместимы). Активно используется в CDN: www.mysite.com CNAME mysite.cdn-provider.net.

Подробнее в уроках:

MX record

MX Record (Mail Exchanger)
Термин

DNS-запись, указывающая mail-сервер для домена. Содержит priority (меньше -- выше приоритет) и hostname почтового сервера. При отправке письма на [email protected] отправитель ищет MX-записи example.com и шлёт SMTP на сервер с минимальным priority. Если он не отвечает -- на следующий по приоритету. Несколько MX обеспечивают отказоустойчивость. Hostname в MX должен резолвиться в A/AAAA (не CNAME).

Подробнее в уроках:

TTL

TTL (Time To Live)
Термин

В контексте DNS: время в секундах, в течение которого resolver может кэшировать запись. Низкий TTL (60-300 сек) даёт быстрый rollout изменений, но повышает нагрузку на authoritative DNS. Высокий TTL (3600-86400) снижает нагрузку, но изменения распространяются медленно. Перед миграцией DNS заранее снижают TTL до 60. Помимо DNS, TTL есть в IP-заголовке -- счётчик max hops для предотвращения loops, уменьшается на 1 на каждом роутере.

Подробнее в уроках:

HTTP и протоколы прикладного уровня

HTTP

HTTP (HyperText Transfer Protocol)
Термин

Прикладной протокол клиент-серверной модели, основа Web. Stateless: каждый запрос самодостаточен. Версии: HTTP/1.1 (1997, текстовый, до сих пор основной для server-to-server), HTTP/2 (2015, бинарный, multiplexing поверх одного TCP), HTTP/3 (2022, поверх QUIC/UDP). Работает поверх TCP (80) или TLS (443). Структура запроса: method + path + headers + body. Структура ответа: status code + headers + body. Методы: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.

Подробнее в уроках:

HTTPS

HTTPS (HTTP over TLS)
Термин

HTTP, обёрнутый в TLS-туннель. Поверх TCP делается TLS-handshake (обмен сертификатами, согласование cipher, выработка симметричного ключа), затем HTTP идёт по зашифрованному каналу. Защищает от пассивного прослушивания, MITM и tampering. Default-порт 443. Browsers с 2018 года помечают HTTP-сайты как 'Not Secure'. Современный web почти полностью HTTPS -- HTTP редиректится на HTTPS через 301 + HSTS-header.

Подробнее в уроках:

HTTP/2

HTTP/2 (RFC 7540)
Термин

Версия HTTP с 2015 года, бинарный формат вместо текстового. Главные улучшения: multiplexing -- много запросов параллельно в одном TCP-соединении (без head-of-line на application layer, но остаётся на TCP), HPACK сжатие заголовков, server push (deprecated в большинстве browsers), приоритеты streams. Решает проблему HTTP/1.1, где для параллелизма открывали 6 соединений на домен. В реальности достиг широкого adoption -- 50%+ web. Минус: head-of-line blocking на уровне TCP всё ещё убивает performance при потерях.

Подробнее в уроках:

HTTP/3

HTTP/3 (RFC 9114)
Термин

Версия HTTP с 2022 года, работает поверх QUIC (UDP-based транспорт с встроенной TLS 1.3) вместо TCP. Решает head-of-line blocking на транспортном уровне: потеря пакета в одном stream не блокирует другие. Connection migration: можно сменить сеть (Wi-Fi -> 4G) без переустановки соединения. 0-RTT для повторных подключений. Сейчас 25%+ web, активно используется Google, Cloudflare. Минус: некоторые firewalls/NAT блокируют UDP, fallback на HTTP/2 нужен.

Подробнее в уроках:

QUIC

QUIC (Quick UDP Internet Connections, RFC 9000)
Термин

Транспортный протокол поверх UDP, разработанный Google, стандартизирован IETF в 2021. Объединяет функции TCP (надёжность, congestion control), TLS (шифрование) и часть HTTP/2 (multiplexing) в одном протоколе. Преимущества: 1-RTT handshake (или 0-RTT для повторов), per-stream reliability (нет head-of-line), connection migration, всегда зашифрован. Является транспортом для HTTP/3. По метрикам Google -- ускорение 3-8% для коротких запросов, ещё больше в плохих сетях.

Подробнее в уроках:

Multiplexing

Multiplexing (HTTP/2, HTTP/3)
Термин

Возможность отправлять несколько логических потоков (streams) параллельно через одно физическое соединение. В HTTP/1.1 на каждый запрос нужно своё TCP-соединение или очередь (head-of-line blocking). В HTTP/2 multiplexing на одном TCP -- много параллельных streams. В HTTP/3/QUIC streams независимы и на транспортном уровне -- потеря пакета в одном не влияет на другие. Это решает проблему параллельной загрузки ресурсов веб-страницы (CSS, JS, images) без open-and-close сотен соединений.

Подробнее в уроках:

Head-of-line blocking

Head-of-Line (HoL) Blocking
Термин

Ситуация, когда первый элемент очереди блокирует обработку всех последующих. В HTTP/1.1: запросы шлются последовательно (или браузер открывает 6 параллельных соединений). В HTTP/2 решена на application layer (multiplexing), но осталась на транспортном TCP: потеря одного пакета задерживает все streams, потому что TCP ждёт ретрансмит чтобы передать данные in-order. В HTTP/3/QUIC решена полностью: каждый stream имеет независимый ordering.

Подробнее в уроках:

TLS и безопасность

TLS

TLS (Transport Layer Security)
Термин

Криптографический протокол, обеспечивающий confidentiality, integrity и authentication между клиентом и сервером. Версии: TLS 1.2 (2008, до сих пор широко), TLS 1.3 (2018, упрощённый handshake -- 1 RTT, обязательное forward secrecy). TLS 1.0/1.1 deprecated. Handshake TLS 1.3: ClientHello (cipher suites + key share) -> ServerHello (выбор + сертификат) -> Finished, далее данные шифруются. Сертификат подписан CA из доверенного root store ОС. Self-signed cert в production -- красный флаг.

Подробнее в уроках:

SSL

SSL (Secure Sockets Layer)
Термин

Устаревший предшественник TLS, разработан Netscape в 1990-х (SSL 2.0 в 1995, SSL 3.0 в 1996). SSL 2.0 и 3.0 deprecated (последний -- через атаку POODLE в 2014). С 1999 заменён TLS 1.0, далее TLS 1.1/1.2/1.3. В разговорной речи 'SSL' и 'TLS' часто используются как синонимы, но технически правильно говорить TLS. 'SSL certificate' -- это X.509-сертификат для TLS, название историческое.

Подробнее в уроках:

Certificate

X.509 Certificate
Термин

Электронный документ, привязывающий публичный ключ к идентификатору (домен, организация). Структура: subject (на кого выдан), issuer (кто выдал, обычно CA), validity period, public key, extensions (SAN -- alternative names, key usage), и подпись issuer'а. Browser проверяет: подпись валидна, не expired, hostname совпадает с SAN, не в CRL/OCSP revocation. Цепочка доверия: server cert -> intermediate CA -> root CA (в trust store ОС). Получить можно через Let's Encrypt бесплатно.

Подробнее в уроках:

CA

CA (Certificate Authority)
Термин

Организация, выпускающая сертификаты и подписывающая их своим приватным ключом. Root CA -- топ цепочки, их публичные ключи зашиты в ОС/browser. Когда CA подписывает сертификат сервера, клиент может верифицировать подпись по root key из своего trust store. Известные CA: Let's Encrypt (бесплатно, автоматизация через ACME), DigiCert, GlobalSign, Sectigo. Корпоративные внутренние CA выдают сертификаты для internal сервисов -- их root cert нужно добавить в trust store. Компрометация root CA -- катастрофа (например, DigiNotar в 2011).

Подробнее в уроках:

PKI

PKI (Public Key Infrastructure)
Термин

Совокупность ролей, политик, аппаратуры, ПО и процедур для управления цифровыми сертификатами и публично-ключевой криптографией. Включает CA (выпуск сертификатов), RA (registration authority -- верификация запросов), CRL/OCSP (revocation), trust stores, политики использования. Чисто web PKI -- иерархия CA, доверие которой зашито в browser. Корпоративный PKI -- внутренние CA для service-to-service mTLS, code signing, S/MIME. Управление приватным ключом root CA -- задача с HSM (Hardware Security Module) и многоступенчатой аутентификацией.

Подробнее в уроках:

MITM

MITM (Man-in-the-Middle)
Термин

Атака, при которой злоумышленник встраивается между клиентом и сервером, перехватывая и (опционально) модифицируя трафик. Способы: ARP poisoning (подмена ARP), DNS spoofing (фейковый IP в DNS-ответе), захват промежуточного хопа, фейковая Wi-Fi точка. TLS делает MITM практически невозможным: сертификат сервера не пройдёт верификацию у клиента, потому что подписан другим CA. Корпоративные SSL inspection proxy (Zscaler, Palo Alto) делают 'легитимный MITM' путём установки своего root CA на endpoint.

Подробнее в уроках:

DDoS

DDoS (Distributed Denial of Service)
Термин

Атака, направленная на исчерпание ресурсов жертвы (bandwidth, CPU, соединения) множеством скоординированных источников (botnet, amplification). Типы: volumetric (затопление трафиком, измеряется в Gbps), protocol (SYN flood, fragmentation, измеряется в Mpps), application layer (HTTP flood, slowloris). Защита: anti-DDoS провайдеры (Cloudflare, AWS Shield, Akamai), rate-limiting, blackholing атакующих IP, CDN. Современные DDoS могут превышать 1 Tbps.

Подробнее в уроках:

Firewall

Firewall
Термин

Устройство или ПО, фильтрующее сетевой трафик по правилам (allow/deny по IP, port, protocol). Stateless: смотрит каждый пакет независимо (быстрее, проще, меньше defenсе). Stateful: отслеживает состояние соединений (различает new/established/related, может ловить отклонения). Примеры реализаций: iptables/nftables (Linux netfilter), Windows Firewall, hardware Cisco/Palo Alto, облачные Security Groups (AWS), Network ACLs. Также есть application-layer firewall (WAF) для HTTP -- режут SQL injection, XSS.

Подробнее в уроках:

VPN

VPN (Virtual Private Network)
Термин

Зашифрованный туннель между двумя сетевыми точками, создающий иллюзию прямого подключения к удалённой сети. Использует: IPsec (стандарт, сложен), OpenVPN (TLS-based, гибкий), WireGuard (новый, быстрый, минималистичный), L2TP/PPTP (устаревшие). Сценарии: remote access (сотрудник к корпсети), site-to-site (соединение офисов), consumer VPN (анонимизация, обход блокировок). Split tunneling -- разделение трафика: что идёт в туннель, что в обычный интернет.

Подробнее в уроках:

WireGuard

WireGuard
Термин

Современный VPN-протокол (2016, mainline Linux kernel с 5.6 в 2020). Минималистичный: ~4000 строк кода (vs ~600k у OpenVPN), что упрощает аудит. Использует современную криптографию: ChaCha20 + Poly1305 для шифрования, Curve25519 для key exchange, BLAKE2s для hashing. UDP-only, не attempts to look like HTTP. Конфигурация декларативная: peer = public key + endpoint + allowed IPs. Быстрее IPsec и OpenVPN на одинаковом железе. Stateless по дизайну -- работает за NAT через keepalive.

Подробнее в уроках:

IPsec

IPsec (Internet Protocol Security)
Термин

Набор протоколов для шифрования и аутентификации IP-пакетов на L3. Состоит из: AH (Authentication Header -- integrity без encryption), ESP (Encapsulating Security Payload -- encryption + integrity), IKE (Internet Key Exchange -- согласование ключей). Режимы: transport (шифруется только payload) и tunnel (весь IP-пакет внутри нового, для site-to-site VPN). Стандарт для enterprise VPN, реализован во всех ОС. Минусы: сложность настройки, проблемы с NAT (обходятся через NAT-T).

Подробнее в уроках:

ARP poisoning

ARP Poisoning (ARP Spoofing)
Термин

Атака на L2, при которой злоумышленник шлёт фейковые ARP-ответы в локальную сеть, ассоциируя свой MAC с IP жертвы (часто -- gateway). После этого трафик жертв идёт через атакующего, который видит/модифицирует его (MITM). Защита: статические ARP-записи для критичных host'ов, DAI (Dynamic ARP Inspection) на switch'ах, мониторинг (arpwatch). На свич, который видит несколько ARP-ответов на один IP, можно настроить алерт.

Подробнее в уроках:

DNS spoofing

DNS Spoofing (DNS Cache Poisoning)
Термин

Атака, при которой атакующий инжектит фейковый DNS-ответ в кэш resolver'а (или клиента), чтобы перенаправить трафик на свой сервер. Способы: race condition на ответе (Kaminsky 2008), компрометация authoritative server, MITM с подменой ответа. Защита: DNSSEC (криптографическая подпись DNS-записей), DoH/DoT (DNS через TLS, против MITM), random source ports (против Kaminsky-style).

Подробнее в уроках:

Packet sniffing

Packet Sniffing
Термин

Перехват и анализ сетевых пакетов на интерфейсе. Требует raw socket access (root на Linux). Инструменты: tcpdump (CLI), Wireshark (GUI), tshark. На switched LAN видишь только свой трафик + broadcast (если не настроен port mirroring). На Wi-Fi monitor mode видит весь трафик в эфире (но шифрованный, без ключа). TLS-трафик сниффится, но contents зашифрованы -- видны только metadata (адреса, порты, SNI). Используется для дебага сети, security analysis, обучения протоколам.

Подробнее в уроках:

Маршрутизация и интернет

BGP

BGP (Border Gateway Protocol)
Термин

Протокол маршрутизации между autonomous systems (между ISP). 'Клей интернета': каждая AS объявляет соседям, какие префиксы у неё есть, и выбирает best path по политикам (preference, AS-path, MED). Работает поверх TCP/179. Не использует metrics типа hop count -- решения принимает по политикам и AS-path length. Уязвим к BGP hijacking: AS может ошибочно или злоумышленно анонсировать чужие префиксы (например, инцидент Pakistan Telecom + YouTube в 2008). Защита: RPKI (Resource Public Key Infrastructure).

Подробнее в уроках:

OSPF

OSPF (Open Shortest Path First)
Термин

Внутренний протокол маршрутизации (IGP), работающий внутри AS. Link-state: каждый router знает топологию всей AS, считает shortest path Dijkstra'ом. Делит AS на areas для масштабирования. Сходится быстро при изменениях, но требует CPU и памяти на router'ах. Используется в крупных enterprise сетях, реже в ISP (там обычно IS-IS). Аналоги: RIP (старый, distance-vector), EIGRP (Cisco-proprietary, hybrid).

Подробнее в уроках:

AS

AS (Autonomous System)
Термин

Группа IP-сетей под единым административным контролем (например, ISP, крупная корпорация, облачный провайдер). Идентифицируется ASN (Autonomous System Number, 16- или 32-битный). Внутри AS -- свой IGP (OSPF, IS-IS, EIGRP). Между AS -- BGP. Примеры: Cloudflare AS13335, Google AS15169, AT&T AS7018. Интернет -- это ~70000+ AS, обменивающихся маршрутами через BGP.

Подробнее в уроках:

ISP

ISP (Internet Service Provider)
Термин

Организация, продающая доступ к интернету. Tier 1 ISP -- глобальные backbone (NTT, Telia, Level 3), peering между собой без оплаты. Tier 2 -- региональные, покупают transit у Tier 1. Tier 3 -- locals, покупают всё. На клиентской стороне ISP даёт CPE (модем, router), public IP (часто динамический), внешнюю связность. Bandwidth измеряется в Mbps/Gbps по плану. Между ISP -- peering point (IXP) для прямого обмена трафиком без uplink через Tier 1.

Подробнее в уроках:

IXP

IXP (Internet Exchange Point)
Термин

Физическая точка обмена трафиком между несколькими ISP / AS. Каждый участник подключается к общей фабрике (обычно switched LAN), обмен трафиком по BGP с peering-партнёрами. Снижает стоимость (не платить за transit) и latency (короче путь). Крупные IXP: DE-CIX (Frankfurt, ~10 Tbps), AMS-IX (Amsterdam), LINX (London), MSK-IX (Москва). Контентные провайдеры (Google, Netflix, Cloudflare) ставят CDN-кэши непосредственно в IXP для быстрого доступа местных пользователей.

Подробнее в уроках:

ICMP

ICMP (Internet Control Message Protocol)
Термин

Протокол L3 для control messages в IP-сети. Не для передачи данных приложений -- для диагностики и сообщений об ошибках. Типы сообщений: Echo Request/Reply (ping), Destination Unreachable (host/network/port), Time Exceeded (для traceroute), Redirect, Fragmentation Needed (для PMTUD). ICMP-пакет инкапсулируется в IP, без UDP/TCP. Часто блокируется firewall (особенно ping), что осложняет диагностику и ломает PMTUD.

Подробнее в уроках:

ping

ping (utility)
Термин

Утилита для проверки доступности host'а через ICMP Echo Request/Reply. Показывает: отвечает ли host, RTT (round-trip time), packet loss. Использование: ping example.com, ping -c 10 8.8.8.8 (10 запросов на Linux). Не показывает работоспособность TCP/UDP-сервисов -- сервер может пинговаться, но HTTP не работать. На Windows используется ICMP type 8/0. Если ping не идёт, не значит, что host недоступен -- ICMP может быть заблокирован firewall'ом.

Подробнее в уроках:

traceroute

traceroute (tracert on Windows)
Термин

Утилита, показывающая маршрут пакета от source до destination, hop за hop. Работает так: шлёт пакеты с увеличивающимся TTL (1, 2, 3, ...). Каждый router на пути, увидев TTL=0, шлёт обратно ICMP Time Exceeded -- так мы узнаём его IP. На Linux по умолчанию использует UDP к высокому порту; mtr более интерактивная. Звёздочки (***) на hop -- router не отвечает (может быть rate-limit ICMP, не настроен Time Exceeded, или firewall). Не гарантирует, что обратный путь такой же -- routing асимметричен.

Подробнее в уроках:

Балансировка и proxies

Reverse proxy

Reverse Proxy
Термин

Сервер, принимающий запросы от клиентов и форвардящий их на backend-сервера, скрывая последних. Функции: load balancing, SSL termination (TLS заканчивается на reverse proxy, backend идёт plain HTTP), caching, compression, security (WAF). Популярные реализации: NGINX, HAProxy, Envoy, Traefik, AWS ALB. Клиент видит только адрес reverse proxy, не знает, сколько backend'ов за ним. В отличие от forward proxy (стоит со стороны клиента, для outbound), reverse стоит со стороны сервера.

Подробнее в уроках:

Load balancer

Load Balancer
Термин

Устройство или сервис, распределяющее запросы между несколькими backend-серверами. Цель: scalability (больше серверов -- больше пропускной способности), redundancy (отказ одного backend не убивает сервис), health checks (не слать запросы упавшим). Типы по уровню: L4 (на основе IP+port, видит TCP/UDP), L7 (на основе HTTP-заголовков, URL, cookies). Алгоритмы: round-robin, least-connections, weighted, consistent hashing. Реализации: hardware (F5, Citrix NetScaler), software (HAProxy, NGINX), облачные (AWS NLB/ALB, GCP).

Подробнее в уроках:

L4 (Layer 4) load balancing

L4 Load Balancing
Термин

Балансировка на транспортном уровне: принимает решения по IP-адресам и портам (TCP/UDP), не разбираясь в HTTP. Быстрее L7 (меньше парсинга), но и менее гибкая (нельзя роутить по URL). Использует методы: DNAT (destination NAT -- меняет dst IP), Direct Server Return (ответ идёт мимо балансировщика напрямую), L2 forwarding. Применяется для не-HTTP трафика (БД, mail, gaming) и для high-throughput сценариев. Примеры: AWS NLB, HAProxy в mode tcp, LVS (Linux Virtual Server).

Подробнее в уроках:

L7 (Layer 7) load balancing

L7 Load Balancing
Термин

Балансировка на application layer: принимает решения на основе HTTP-заголовков, URL, cookies, тела запроса. Может делать: routing /api/v1/users в один cluster, /api/v2/orders в другой; sticky sessions через cookies; request rewriting; A/B testing; rate-limiting per-user. Тяжелее L4 (нужно парсить HTTP), но даёт rich функциональность. Реализации: NGINX, Envoy, HAProxy в mode http, AWS ALB. Современный microservice ingress (Istio, Linkerd) -- всегда L7.

Подробнее в уроках:

CDN

CDN (Content Delivery Network)
Термин

Распределённая сеть кэширующих серверов по всему миру, ускоряющая доставку статического контента (картинки, CSS, JS, video) и API. При запросе пользователя CDN отвечает с ближайшего edge-server'а вместо origin-сервера за океаном -- снижается latency, разгружается origin, защищается от DDoS. Крупные CDN: Cloudflare, Akamai, Fastly, CloudFront. Работают через DNS (anycast IP) или CNAME на CDN-домен. Поддерживают cache invalidation, edge functions, image optimization.

Подробнее в уроках:

Инструменты диагностики

tcpdump

tcpdump
Термин

CLI-утилита для захвата и фильтрации сетевых пакетов на интерфейсе. Использует libpcap. Требует root (или CAP_NET_RAW). Базовое использование: tcpdump -i en0 'port 80' (захват HTTP на интерфейсе en0). Поддерживает BPF-фильтры: 'host 8.8.8.8 and tcp port 53'. Запись в файл: -w capture.pcap, чтение: -r. Опции вывода: -n (не резолвить DNS), -v / -vv / -vvv (verbose), -A (показывать payload как ASCII), -X (hex + ASCII). Запись pcap-файла можно открыть в Wireshark для подробного анализа.

Подробнее в уроках:

Wireshark

Wireshark
Термин

GUI-приложение для захвата и анализа сетевых пакетов. Самый популярный инструмент для дебага сетей. Поддерживает 3000+ протоколов с детальной декомпозицией: видишь каждое поле в заголовке. Display filter (отдельный от capture filter): http.host == 'example.com', tcp.flags.reset == 1. Follow TCP/HTTP Stream -- собрать payload одного соединения. CLI-вариант: tshark. Бесплатный, open-source. Может анализировать pcap-файлы, захваченные через tcpdump на сервере.

Подробнее в уроках:

dig

dig (Domain Information Groper)
Термин

CLI-утилита для DNS-запросов, более гибкая чем nslookup. Использование: dig example.com -- A-запись, dig MX example.com -- MX, dig +short -- только ответ, dig +trace -- полный путь от root, dig @8.8.8.8 example.com -- использовать конкретный resolver. Вывод секции: ANSWER (ответ), AUTHORITY (NS), ADDITIONAL (glue records). Часто используется для дебага DNS-проблем: проверить, какие A-записи отдаёт authoritative, какой TTL, есть ли DNSSEC. На Windows нет dig из коробки -- ставится через BIND-tools.

Подробнее в уроках:

nslookup

nslookup
Термин

Утилита для DNS-запросов, проще чем dig. Кросс-платформенная (есть в Windows, Linux, macOS). Базовое: nslookup example.com -- A-запись от системного resolver, nslookup example.com 8.8.8.8 -- от Google DNS. Поддерживает type=A, type=MX, type=NS и т.д. Менее verbose чем dig, но достаточно для быстрых проверок. На Linux/macOS чаще предпочитают dig.

Подробнее в уроках:

netstat

netstat (network statistics)
Термин

Старая утилита для показа сетевых соединений, routing table, статистики интерфейсов. Использование: netstat -tunlp (TCP + UDP, listening, не резолвить, показать процесс) на Linux, netstat -an на macOS. Депрекейтнута в большинстве distro в пользу ss. На macOS netstat -rn показывает routing table. Знание netstat нужно для legacy-систем; в новом коде -- ss или lsof.

Подробнее в уроках:

ss

ss (socket statistics)
Термин

Современная замена netstat, быстрее и информативнее. Использование: ss -tunlp -- открытые TCP+UDP listening сокеты с процессами, ss -t state established -- активные TCP, ss -K (kill) -- закрыть соединение. Использует netlink API ядра напрямую (быстрее /proc). Стандарт в современных Linux distro. На macOS нет ss, используется lsof -i или netstat.

Подробнее в уроках:

openssl

openssl (CLI)
Термин

Универсальный CLI-инструмент для работы с TLS и криптографией. Часто используется для дебага TLS: openssl s_client -connect example.com:443 -servername example.com (показать сертификат, версию протокола, cipher). Поддерживает: создание самоподписанных сертификатов (req -x509), CSR (req -new), проверку дат (x509 -dates), просмотр приватных ключей, расшифровку. Незаменим при настройке HTTPS и mTLS. Поставляется с OpenSSL библиотекой -- основой TLS на Linux.

Подробнее в уроках:

curl

curl
Термин

CLI-утилита для отправки HTTP-запросов и других протоколов (FTP, SMTP, telnet, file). Использование: curl -v https://api/v1/users (verbose с заголовками), curl -X POST -d '{"name":"Lev"}' -H 'Content-Type: application/json' (POST с JSON), curl --resolve example.com:443:1.2.3.4 (override DNS). Для дебага: --trace, --trace-time. Не следует редиректам без -L. Поддерживает HTTP/2 (--http2), HTTP/3 (--http3, требует свежей сборки). De facto стандарт для тестирования API из shell.

Подробнее в уроках:

wget

wget
Термин

Утилита для скачивания файлов по HTTP/HTTPS/FTP. В отличие от curl, оптимизирована для рекурсивного скачивания (зеркалирование сайтов): wget -r -np example.com/dir/. Удобна для batch-загрузки: -i urls.txt -- скачать URL'ы из файла. Резюмирует прерванные загрузки (-c). На macOS нужно ставить через brew, на Linux обычно предустановлен. Для interactive дебага API чаще используется curl, для скачивания файла -- wget.

Подробнее в уроках:

Базовые сервисы: DHCP

DHCP

DHCP (Dynamic Host Configuration Protocol)
Термин

Протокол, автоматически назначающий IP-параметры host'у при подключении к сети: IP-адрес, маска, gateway, DNS-серверы, lease time. Работает на UDP/67-68. Процесс DORA: Discover (broadcast от клиента 'кто даст IP?'), Offer (от сервера 'возьми этот IP'), Request (клиент 'беру'), Acknowledgement (сервер 'окей'). Lease time -- срок аренды (обычно 24 часа); клиент пытается продлить за половину lease. Если DHCP-сервер падает, существующие клиенты работают до конца lease, новые -- не подключатся.

Подробнее в уроках: