# TCP/IP

> Стек сетевых протоколов, на котором построен интернет; IP обеспечивает адресацию и маршрутизацию пакетов, TCP и UDP — доставку данных между программами.

Источник: https://llmdocs.ru/wiki/tcp-ip/ · обновлено 2026-11-09 · лицензия CC BY-SA 4.0

- **Полное название**: Internet Protocol Suite
- **Авторы**: Винтон Серф, Роберт Кан
- **Первая публикация**: 1974
- **Внедрение в ARPANET**: 1 января 1983
- **Уровни**: канальный, межсетевой, транспортный, прикладной
- **Основные протоколы**: IP (v4, v6), TCP, UDP, ICMP
- **Стандартизация**: IETF (документы RFC)
**TCP/IP** (англ. *Internet Protocol Suite* — «набор протоколов интернета») — семейство сетевых протоколов, на котором работает интернет и почти все локальные сети. Название составлено из двух главных протоколов: **IP** (*Internet Protocol*) отвечает за адресацию и доставку пакетов между сетями, а **TCP** (*Transmission Control Protocol*) — за надёжную передачу потока данных между программами. Рядом с ними работают [UDP](https://llmdocs.ru/wiki/udp.md), ICMP и множество прикладных протоколов — [HTTP](https://llmdocs.ru/wiki/http.md), [DNS](https://llmdocs.ru/wiki/dns.md), [SSH](https://llmdocs.ru/wiki/ssh.md).

Также TCP/IP называют четырёхуровневую модель, которая описывает этот стек и служит практической альтернативой [модели OSI](https://llmdocs.ru/wiki/osi-model.md).

## История

В начале 1970-х в США работала сеть ARPANET, но она не умела соединяться с другими сетями — радио- и спутниковыми. В 1974 году Винтон Серф и Роберт Кан опубликовали статью «Протокол для межсетевого взаимодействия пакетных сетей» с идеей единого протокола поверх разнородных сетей.[1] Позже монолитный протокол разделили на два: IP для маршрутизации и TCP для надёжной доставки; так стало возможным добавить UDP для задач, которым надёжность не нужна.

Спецификации IP и TCP вышли как RFC 791 и RFC 793 в 1981 году.[2] 1 января 1983 года ARPANET полностью перешла на TCP/IP — эту дату часто называют днём рождения интернета. Реализация стека в BSD Unix, свободно распространявшаяся университетам, сделала TCP/IP стандартом де-факто. В 2004 году Серф и Кан получили премию Тьюринга. Спецификация TCP в 2022 году была собрана заново в RFC 9293.[3]

## Уровни

| Уровень | Задача | Протоколы | Аналог в OSI |
|---|---|---|---|
| Прикладной | обмен данными приложений | HTTP, DNS, [TLS](https://llmdocs.ru/wiki/tls.md), SMTP, SSH | 5–7 |
| Транспортный | доставка между процессами (порты) | [TCP](https://llmdocs.ru/wiki/tcp.md), [UDP](https://llmdocs.ru/wiki/udp.md), [QUIC](https://llmdocs.ru/wiki/quic.md) (поверх UDP) | 4 |
| Межсетевой | адресация и маршрутизация пакетов | IPv4, [IPv6](https://llmdocs.ru/wiki/ipv6.md), ICMP | 3 |
| Канальный | передача в пределах одной сети | Ethernet, Wi-Fi, ARP | 1–2 |

Описание модели с этими четырьмя уровнями дано в RFC 1122.[5]

## IP

IP доставляет **пакеты** — порции данных с заголовком, где указаны адрес отправителя и получателя. Каждый маршрутизатор по пути смотрит на адрес назначения и решает, куда переслать пакет дальше. IP работает по принципу «наилучшей попытки» (*best effort*): пакеты могут теряться, дублироваться и приходить не по порядку, и протокол этого не исправляет.

Используются две версии: IPv4 с 32-битными адресами (около 4,3 млрд) и [IPv6](https://llmdocs.ru/wiki/ipv6.md) со 128-битными.[6] Адреса IPv4 давно исчерпаны, и нехватку компенсирует [NAT](https://llmdocs.ru/wiki/nat.md) — трансляция многих внутренних адресов в один внешний. Адресация и разбиение на подсети описаны в статье [IP-адрес и подсети (CIDR)](https://llmdocs.ru/wiki/ip-cidr.md).

## TCP и UDP

Программы на одном компьютере различаются **портами** — числами от 0 до 65535. Пара «IP-адрес и порт» с обеих сторон однозначно определяет соединение: веб-сервер слушает порт 443, а браузер подключается со случайного порта.

| | TCP | UDP |
|---|---|---|
| Соединение | устанавливается тройным рукопожатием | нет |
| Надёжность | подтверждения, повторная передача, порядок | нет |
| Управление потоком и перегрузкой | есть | нет |
| Единица | поток байтов | отдельные датаграммы |
| Применение | веб, почта, SSH, базы данных | DNS, видеозвонки, игры, QUIC |

TCP устанавливает соединение обменом SYN — SYN-ACK — ACK, нумерует байты, подтверждает полученное, повторяет потерянное и регулирует скорость, чтобы не перегрузить сеть.[3] UDP просто отправляет датаграммы — быстро и без гарантий.[4] На UDP построен [QUIC](https://llmdocs.ru/wiki/quic.md), основа HTTP/3: он переносит надёжность и шифрование в пространство пользователя и избавляется от задержек TCP.

## Путь запроса

Когда браузер открывает `https://example.com`:

1. [DNS](https://llmdocs.ru/wiki/dns.md) превращает имя в IP-адрес.
2. TCP устанавливает соединение с портом 443 (или QUIC — по UDP).
3. TLS шифрует канал.
4. HTTP-запрос делится на сегменты, сегменты упаковываются в IP-пакеты, пакеты — в Ethernet- или Wi-Fi-кадры.
5. Маршрутизаторы пересылают пакеты от сети к сети до сервера, где всё распаковывается в обратном порядке.

## Инструменты

```bash
ip addr                       # адреса интерфейсов (Linux)
ip route                      # таблица маршрутизации
ping -c 4 example.com         # доступность по ICMP
traceroute example.com        # путь пакетов через маршрутизаторы
ss -tlnp                      # какие процессы слушают TCP-порты
nc -vz example.com 443        # открыт ли порт
sudo tcpdump -i any port 53   # перехват пакетов DNS
```

Для анализа трафика с графическим интерфейсом используют Wireshark, а для HTTP-уровня — [curl](https://llmdocs.ru/wiki/curl.md).

## См. также

- [Модель OSI](https://llmdocs.ru/wiki/osi-model.md)
- [TCP](https://llmdocs.ru/wiki/tcp.md)
- [UDP](https://llmdocs.ru/wiki/udp.md)
- [IP-адрес и подсети (CIDR)](https://llmdocs.ru/wiki/ip-cidr.md)
- [DNS](https://llmdocs.ru/wiki/dns.md)

## Источники

1. [V. Cerf, R. Kahn — A Protocol for Packet Network Intercommunication (IEEE, 1974)](https://ieeexplore.ieee.org/document/1092259)
2. [RFC 791 — Internet Protocol](https://www.rfc-editor.org/rfc/rfc791)
3. [RFC 9293 — Transmission Control Protocol (TCP)](https://www.rfc-editor.org/rfc/rfc9293)
4. [RFC 768 — User Datagram Protocol](https://www.rfc-editor.org/rfc/rfc768)
5. [RFC 1122 — Requirements for Internet Hosts: Communication Layers](https://www.rfc-editor.org/rfc/rfc1122)
6. [RFC 8200 — Internet Protocol, Version 6 (IPv6) Specification](https://www.rfc-editor.org/rfc/rfc8200)
