📡 TCP/IP
1. Что такое TCP/IP?
TCP/IP (Transmission Control Protocol/Internet Protocol) — это набор протоколов, используемых для связи между устройствами в сети. Это основная технология, которая делает возможным работу интернета.
TCP/IP не является одним протоколом, а представляет собой стек протоколов, которые работают вместе, чтобы передавать данные между компьютерами.
2. Уровни модели TCP/IP
Модель TCP/IP состоит из 4 уровней:
Уровень | Описание |
---|---|
Прикладной уровень (Application Layer) | Взаимодействует напрямую с приложениями пользователя (например, браузер, почтовый клиент). Протоколы: HTTP, FTP, SMTP, DNS. |
Транспортный уровень (Transport Layer) | Обеспечивает доставку данных между хостами. Протоколы: TCP, UDP. |
Сетевой уровень (Internet Layer или Network Layer) | Отвечает за маршрутизацию пакетов между устройствами в разных сетях. Протокол: IP. |
Интерфейсный уровень (Network Interface Layer) | Работает с физической передачей данных по сети. Протоколы: Ethernet, Wi-Fi, ARP. |
⚠️ Важно: Модель TCP/IP отличается от более общей семиуровневой модели OSI, но концептуально они схожи.
3. Как работает TCP/IP?
Данные проходят через все уровни стека при отправке и обратно при получении:
Пример: Вы заходите на сайт example.com
- Прикладной уровень: Браузер формирует запрос (HTTP GET).
- Транспортный уровень: Запрос разбивается на порции и оборачивается в TCP-заголовок.
- Сетевой уровень: Каждому пакету добавляется IP-адрес назначения.
- Интерфейсный уровень: Пакеты преобразуются в электрические сигналы и отправляются по сети (через Ethernet или Wi-Fi).
На сервере происходит обратный процесс: - Полученные данные поднимаются по уровням, - Извлекаются из заголовков, - И передаются веб-серверу для обработки.
4. Основные протоколы TCP/IP
🔹 TCP (Transmission Control Protocol)
- Надёжный протокол с установлением соединения.
- Гарантирует доставку данных в правильном порядке.
- Используется для: веб-страниц (HTTP), электронной почты (SMTP), файлов (FTP).
🔹 UDP (User Datagram Protocol)
- Быстрый, но ненадёжный протокол без установления соединения.
- Не гарантирует доставку, но имеет меньшее время задержки.
- Используется для: видеозвонков, онлайн-игр, потокового видео.
🔹 IP (Internet Protocol)
- Отвечает за адресацию и маршрутизацию пакетов.
- IP-адрес уникально идентифицирует устройство в сети.
- Версии: IPv4 (например,
192.168.0.1
) и IPv6 (например,2001:0db8::1
).
🔹 ICMP (Internet Control Message Protocol)
- Используется для диагностики и уведомления об ошибках.
- Пример: команда
ping
.
🔹 ARP (Address Resolution Protocol)
- Связывает IP-адреса с MAC-адресами устройств в локальной сети.
5. IP-адреса и подсети
IPv4
- Формат: 4 группы чисел от 0 до 255, разделённых точками:
192.168.0.1
. - Общее количество адресов: около 4 млрд.
- Поддерживает классы и маски подсетей (CIDR).
IPv6
- Формат: 8 групп шестнадцатеричных чисел:
2001:0db8:85a3::8a2e:0370:7334
. - Гораздо больше доступных адресов.
- Лучше подходит для современных сетей.
CIDR (Classless Inter-Domain Routing)
Пример: 192.168.1.0/24
- /24
означает, что первые 24 бита — это сетевая часть, остальные — хостовая.
6. Порты и их использование
- Порт — это виртуальный канал, через который приложение получает данные.
- Диапазоны портов:
- 0–1023: Известные порты (например, 80 — HTTP, 443 — HTTPS, 22 — SSH).
- 1024–49151: Зарегистрированные порты.
- 49152–65535: Динамические / частные порты.
Примеры портов:
Порт | Протокол | Назначение |
---|---|---|
80 | TCP | HTTP |
443 | TCP | HTTPS |
22 | TCP | SSH |
53 | TCP/UDP | DNS |
25 | TCP | SMTP |
123 | UDP | NTP |
7. Полезные команды для работы с TCP/IP
# Проверить IP-адрес и сетевые интерфейсы
ipconfig # Windows
ifconfig / ip a # Linux/macOS
# Проверить соединение с сервером
ping example.com
# Трассировка маршрута к серверу
tracert example.com # Windows
traceroute example.com # Linux/macOS
# Показать таблицу маршрутизации
route print # Windows
ip route show # Linux
# Посмотреть активные сетевые подключения
netstat # Windows/Linux
ss # Linux
# Отправка HTTP-запросов вручную
telnet example.com 80
nc example.com 80
curl example.com
8. FAQ
❓ Чем отличается TCP от UDP?
- TCP — надёжный, с установлением соединения, используется для точной передачи данных.
- UDP — быстрый, без подтверждения, используется там, где важна скорость, а не точность.
❓ Что такое IP-адрес?
- Это уникальный номер устройства в сети, необходимый для маршрутизации данных.
❓ Что такое порт?
- Это "виртуальный канал", позволяющий различным приложениям использовать одну и ту же сеть.
❓ Как проверить, открыт ли порт?
telnet example.com 80
nc -zv example.com 80
nmap -p 80 example.com