Skip to content

📡 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

  1. Прикладной уровень: Браузер формирует запрос (HTTP GET).
  2. Транспортный уровень: Запрос разбивается на порции и оборачивается в TCP-заголовок.
  3. Сетевой уровень: Каждому пакету добавляется IP-адрес назначения.
  4. Интерфейсный уровень: Пакеты преобразуются в электрические сигналы и отправляются по сети (через 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

9. Полезные ссылки